Libro Bases de Datos

download Libro Bases de Datos

of 86

Transcript of Libro Bases de Datos

  • 5/10/2018 Libro Bases de Datos

    1/86

    2010J,

    - .II

    Fundarnentos de. , r-En laactualidad la necesldad de rnariejar u n alto volumen tle datos es cada

    vez m~s creciente en las organlzaclones de-todos los nlveles, por 10-q~e serequierede ccnocirnientos que perrnltan, al profeslonal en Inf6rm~tica,.establecer con clatidad el. modelado, disefio e implementacltm-da unSistema' de Informacion con una Bases de Datos que se apegue alproblematratado con un maximo de lntegridad y confiabilidad ..

    "

    lng. Ricardo A, Lopez IPREUFOD - UPNFM

    Mayo 2010

  • 5/10/2018 Libro Bases de Datos

    2/86

    TABLA DE CONTEN IDOIN TR OD UC CI6 N . : 1

    CAP IT ULO I: CONCEPTUAUZANDO lAS BAS ES DE DATOS 2

    1 .1 CONCEPTOS GENERALES 21 .2 E VOLUCI6 N H IS T6 R lC A 31 .3 CARACTER fs nCAS DELASBASESDE DATOS 51 .4 S IS TE MA SD E G ES n6 N D E B AS ES D E D ATOS (SGBD) 81.4.1 TAREAS DE lOS SGBD .................................................................................................. 81.4.2 ARQUITECTURA ....................................................................................................................... 91.4.3 VENTAJAS Y DESVENTAJAS ..................... ................ .... ................ ............... .................... ............... 111.4.4lENGUAJES INTEGRADOS .............. ............... ......... ..... .... ............... ..... ............... ................ .... .... 131.4.5 COMPONENTES ............. ...................................... .................... ..... .... ..... ............... ........ 131.4.6 USUARIOS 151.5 CONTEXTO CON ANA uS IS Y D IS ENO DE SISTEMAS 161.6 EJERCICIOSPROPUESTOS , 18CAP ITULO II: MODELADO DE DATOS 19

    2 .1 DEFINICI6N 192.2 NIVELES 202 .3 MODELO ENnDAD RELAo6N (E-R ) 212.3.1 ELEMENTOS DE DIAGRAMACI6N 212.3.2 DEFINICl6N DE RESTRICCIONES E-R 242.3.3 EJEMPLO: TALLER 262.3.4 RECOMENDACIONES GENERALES ,: 272.3.5 EJERCICIOS PROPUESTOS 282.4 MODELO RELACIONAL 292.4.1 DESCRIPCI6N : 292.4.2 ELEMENTOS 292.4.3 RESTRICCIONES 312.4.4 QPERACIONES FUNDAMENTALES 312 .5 TRANSFORMACI6N DE E-R A RELACIONAL 34,2.5.1 EJEMPlO TALLER: RELACIONES, DIAGRAMA Y RESTRICCIONES 352.5.2 EJERCICIOS PROPUESTOS 36

  • 5/10/2018 Libro Bases de Datos

    3/86

    INTRODUCCION

    Datos, informacion, almacenamiento, seguridad, privacidad son conceptos que nos encontramosdurante nuestro desarrol lo acadernico y profesional. Todos ellos son usados independientementedel conjunto de programas de software 0 area en las organizaciones.

    Este trabajo es una compilacion de ideas de diversos autores sobre 10 que deberia de saber lapersona encargada de organizar, disei'iador y administrar de bases de datos de una institucion:durante el transcurso de la lectura se procurara brindar una base teorlca que formalice susconocimientos "sobre 10 que a la gestion de datos, su evolution, creacion, manlpulacion yconstruccion. Una de las caracteristicas de este material es que busca la independencia decualquier software de modelado y /0 de manejo de bases de datos.En el capitulo I: se formalizan todos los conceptos, descripciones y caracteristicas que rodean lateoria de base de datos.En el capitulo II: presenta que es un modelado, las estrategias para el modelado de datos en unaforma gradual; comenzando por la compresion del problema de la realidad, el disei'io del modeloconceptual (0 de alto nivel) hasta lIegar a un disefio logico que perrnitira ser construido en unsoftware de bases de datos.En el capitulo III: se presenta la teoria y el proceso de normalizaci6n como alternativa formal paradesarrollar el disefio relacional de un problema.En el capitulo IV: se aborda en detalle el lenguaje estructurado de consultas sobre el cual se basala manipulaci6n de informacion en la mayoria de los gestores de bases de datos en la actualidad.EI inforrnatico, formado bajo el contexto tecnol6gico actual, debe poseer la habilidad y capacidadde determinar cuando el volumen de informaci6n a manejar puede y debe implementarse bajo unescenario de un sistema de informaci6n; proponiendo el mejor disefio y mecanismos queaseguren la forma de entrega consisten al manejo de los datos.Bajo estos preceptos se presenta el siguiente trabajo que esperamos Ie ayude en su formacionacademica.

    ,

    Fundamentos de Bases de Datos (RA/' / Pagina 1

  • 5/10/2018 Libro Bases de Datos

    4/86

    TUlLO I: CONCEPTUAtlZANDO LAS BASE;;DE DATOS

    Antes de comenzar debemos de definir claramente una serie de conceptos que nos avudaran amanejar mejor la informaci6n presentada en este trabajo.

    Datos: Se Ie considera a la unidad minima a almacenar, esta se encuentra asociada a un grupoy en su forma individual no representa mayor valor. Representa hechos conocidos que puedenregist rarse.

    Informacion: Es la agrupacion de datos que permiten presentarse como resultado de unproceso y representan un valor.

    Base de Datos: existe una gran cantidad de definiciones, ahora propondre tres de las masampliamente conocidas:

    o Esun conjunto de datos relacionados entre sio Es una colecci6n de datos almacenados de forma permanente bajo una estructura

    aceptada por una 0 mas personas. Por ejemplo: bitacoras, hojas de registro, libretas,agendas de contactos, sistema de archivos, etc.

    ,) "Coleccion de datos interrelacionados almacenados en un conjunto sin redundanciasperjudiciales 0 innecesarias; su finalidad es servir a una aplicaci6n 0 mas, de la mejormanera posible; los datos se almacenan de modo que resulten independientes de losprogramas que los usan; se emplean metod os bien determinados para incluir nuevosdatos y para modificar 0extraer los datos almacenados. (Martin, 1975)."

    ':>Istt'rnade Gesti6n de Bases de Datos (SGBD): proveniente delmeles DBMS (Data Base Management System), son un softwarernuy especifico, dedicado a servir de interfaz entre la base dedatos, el usuario y las aplicaciones que la utilizan.

    Durante el transcursodel texto usaremosindistintamente OHMS ()S'(;BD.

    ')I'.tprna de Informacion: son el conjunto de componentesinterrelacionados que permiten en su forma general realizer el proceso de recoleccion,almalf'namiento, procesamiento y entrega y distribuci6n de resultados. Integrando en estes alei" diversav areas de la organizacion, con el fin de brindar informaci6n para la toma dedecislones. Existen diversas categorias que

    .. Gesti(Jn de 10

  • 5/10/2018 Libro Bases de Datos

    5/86

    (Velthuis, 2000) Reeonoce que las prineipales llneas de investigaci6n para los sistemas de bases dedatos, que se han eonvertido en el fundamento de los sistemas de informaci6n, empiezan desdeque se introduce a las computadoras en la automatizaci6n de la gesti6n de las empresas.Proponiendo as t 3 generaciones:Primera GeneracionSurge asi, a finales de los sesenta y principios de los setenta, la primera generaci6n de produetosde bases de datos principalmente eonstruidos a partir de los modelos de Jerarquico y de Red. Modelo ierarouico: fue el pionero, propuesto inicialrnente por IBM, las relaeiones de los datos

    se dan de pare a hijo(s). La conexion de esta relaci6n se realizaba a traves de enlaces(punteros), que partian de un primer nodo lIamado "ralz".

    ~.

    ( ~ 6 6 . . .Sus principales caracteristicas:

    Fueron los primeros en aparecer. Se puede visualizar como una estructura en arbol, Son bastante rigidas. Una vez disefiada la base de datos, es complejo

    cambiarla y, adernas, es necesario un conocimiento amplio de la forma en laque se han almacenado los datos para poder recuperarlos de forma efectiva.

    Dominaron el mercado en sus comienzos Fueron decayendo y actualmente no se encuentran en el mercado.

    Modelo Red: representa las entidades en forma de nodos de un grafo y las interrelacionesentre estas mediante areos que unen diehos nodos que pueden verse como punteros. .

    Fueron una evolucion del modelo jerarquico.(ada uno de los registros estan enlazados entre si, pero no necesariamentesiguiendo una estructura en arbol.Elimina parte de las rigideees del modelo jerarquico, pero aumenta lacomplejidad para modificar la estruetura de la base de datos.

    r R4>9i~tro~tlpo A. .L R~i)trO)t1pO B

    Sus principales caracterfsticas:

    .. Regi str (YotipoC

    C _) _) ...

    Fundamentos de Bases de Datos (HAl.) Pagina 3

  • 5/10/2018 Libro Bases de Datos

    6/86

    A pesar de su buen rendimiento, el nurnero de instalaciones ha side pequefioV , hoven dia, no se encuentran en el mercado.

    Segunda Generacion

    Cella de 1970, el Dr. Codd propuso el modele relacionalla cual viene a convertirse en el modelemavormente aceptado por los productos software de manejo de bases de datos de esta epoca yque hasta ahora domina el mercado.

    r TDblaA. R.ladonal J ~L I ; I

    Tabla B TabiD C

    ~~ . .

    Dado que desarrollaremos una seccion para la especificaci6n de los detalles de este modelo,tenemos que mencionar que la idea fundamental de este modelo es el uso de "relaciones'", estasrelaciones se basan fundamentalmente en conceptos rnatematicos como la ioqica de predicados Vlil teoria de conjuntos',"w, prinr.ipales caracteristicas:

    u Existe una representaci6n formal (teoria) que se encuentra atras del modelo.Los datos presentan como un conjunto de tablas bidimensionales compuestas de filasVcolumnas.

    o Son muy flexibles y de facil manejo) Un factor decisivo en la implantaci6n de los SGBDs relacionales, ha side el lenguaje

    para el manejo de datos estandar (SQl- Structured Query language).Esel modelo dominante en la actualidad.

    rercera generaci6n1 n los ultirnos afios vemos un avance espectacular en la tecnologia de bases de datos: multimedia,.,tivas, deductivas, orientadas a objetos, seguras, temporales, m6viles, paralelas, etc. Esta es"''''',!cli:hldii la nueva generaci6n de bases de datos y se caracteriza por proporcionar capacidadesdf' g{''>tilHI de datos, objetos V gesti6n de conocimiento que pretende responder a las necesidadesde aplicaciones tales como' CASE(lngenieria del software asistida por ordenador), SIG(sistemas deinformaci6n geografica), informaci6n textual, aplicaciones cientificas, sistemas medicos,publicacion digital, educaci6n V formaci6n, sistemas estadistlcos, comercio electr6nico, etc.,1Definiremos una relacion en este momento como la estructura sobre ta cual se almacenan los datos, lamayoria de las veces se puede comprender de una manera mas facit pensando en cad a relacion como sifUf'~e una tabla que esta compuesta por filas (registro 0 tupla) y columnas (tarnbien IIamadas campos)." "J una mayor compresi6n de estos refierase a un documento de Teoria de Conjuntos 0 a su texto basede !;j clase de Logica Formal.r II ndamentos de Bases de Datos (RAI.) Pagina 4

  • 5/10/2018 Libro Bases de Datos

    7/86

    Siguiendo a (Saravia, 2003), para poder aportar las caracteristicas de las Bases de datos debemosevaluar las estrategias que siguieron a los modelos de datos antes descritos. Estos son:EIenfoque tradicional

    Consistia en almacenar los datos en archivos individuales, exclusivos para cada aplkacionparticular, los datos pueden ser redundantes (repetidos innecesariamente) y la actualizarion de.los archivos era lenta. las aplicaciones eran orientadas a cubrir necesidades muy especificas deprocesamiento, por 1 0 que los programas como las estructuras de datos se centra ban en realizaruna tarea especifica.Durante esta etapa, cerca de los sesentas, las aplicaciones inforrnaticas acostumbraban a darsetotalmente en archivos sin relacion alguna entre ellos. Cada aplicacion utilizaba archivos paraactualizar y/o para consultar uno 0 dos ficheros maestros 0, excepcionalmente, mas de dos. Cadavez que se Ie queria afiadir una aplicaclon que requeria el uso de algunos de los datos que yaexistian y de otros nuevos, se disefiaba un fichero nuevo con todos los datos necesarios (algo queprovocaba redundancia) para evitar que los programas tuviesen que leer muchos ficheros.

    A medida que se fueron introduciendo las lineas redes y las terminales se requeria que variosusuarios consultar los mismos archivos de forma simultanea, las aplicaciones tuvieron queinterrelacionar sus archivos almacenados en un solo lugar. Estas caracteristicas exigianestructurasfisicas que diesen un acceso rapido, confiable y mejorar los sistemas de seguridad. -- --:. -- '-e , _ - .-:- -- '-;e , _ .-

    t . l i ' l l f . l ~ fldH.'f(l::; ~'fJ:l~9}li't'111o:::, II:'s'l.Itladc'$ 3

    EI software de gestion de ficheros era demasiado elemental para dar satisfaccion a todas estasnecesidades.

    3 Imagen adaptada de: hllp_/1r_~s_ttJd"nt,~'\I()fdfl~e'>'~(Jn1}_2010105i_06jgnloqu~ _tri1n"JClon,,1 y base dl'(~a!o,>/

    Fundamentos de Bases de Datos (I/AL) Pagina 5

  • 5/10/2018 Libro Bases de Datos

    8/86

    A esta evolucion de estructuras complejas y compartidos por varios procesos de forma sirnultanearecibieron al principio el nombre de Data Banks, y despues, a inicios de los afios setenta, el deBasesde datos (BO),

    Enfoque de base de datosEn In cual los datos son recogidos y almacenados una sola vez, con independencia de lostratamientos (programas); se mantiene un unico almacen de datos que se define una sola vez yposteriormente esaccedido por varios usuaries.;i

    -:~rp:=tclon . ' 1 to') rnodelos estan enfocados en los niveles de Disefio logico y Fisico, entre ellos tenemos alJe r arquico. Red Que entraron en desuso y actualmente su mayor representante el Relacional; del'1 1 'I: esraremos hablando en las proximas secciones.')1' c.ararter rzan porque son implementados en algun SGBD ya que estan mas orientados a lar onstruccion. Segun Elmasri (Elmasri, 2002) en cualquier modelo de datos logico es importantenistinguir entre la descripcion de la base de datos y la base de datos rnisma.ld descripcron se conoce como esquema de la base de datos, se especifica durante el disefio de la'base de datos y no es de esperar que se modifique muy a menudo.~d, datos rr-ale s de la base de datos pueden cambiar con mucha frecuencia, en un determinadorrurrnr-nto \E' denominan estado de la base de datos 0 instancia. fs posible tener muchos estadosriP I .J base de datos que correspondan a un esquema particular. Cada vel que insertamos 0(>llrnin;HlIOS 0 que rnodificamos el valor de un elemento de datos, pasarnos de un estado de labase de datos a otro.,IISGBD se encarga en parte de asegurar que todos los estados de la base de dalos sean estadosvalido s, p

  • 5/10/2018 Libro Bases de Datos

    23/86

    EI Modelo Entidad=-Relaclon fue desarrollado por Peter Chen en 1976 como metodologta graficapara el disefio de Bases de Datos, por 10que puede decirse que es un "rnetodo de representacionabstracta del mundo real centrado en las restricciones 0 propiedades logicas de una Base deDatos".EI Modelo de datos Entldad-Relacion (MER) se basa en una percepclon del mundo real, queconsiste en un conjunto de objetos basicos llamados entidades y de relaciones entre estos objetos.Se emplea para interpretar, especificar y documentar los requerimientos para sistemas deprocesamiento de bases de datos.

    2.3.1 Elementos de DiagramactonTomaremos el trabajo presentado por (Saravia, 2003) para presentar el conjunto de definicionesasociadas a cada elemento que el modelo permite.EntidadUna entidad es algo que puede identificarse en el ambiente de trabajo de los usuarios, debe ser unobjeto que existe y es distinguible de otros objetos. Una entidad con una existencia fisica es unapersona, un carro; 0 puede ser un objeto con una existencia conceptual: una cornpafiia, un trabajoo un curso de universidad.Las entidades se agrupan en c1ases de entidades oconjunto de entidades del mismo tipo, unac1asede entidad es la forma general 0descripcion de algo, por ejemplo un CLiENTE.

    I I I ITipo de Entidad (Fuerte) Tipo de Entidad Debit

    Los tipos de entidad se caracterizan por que todas las entidades de dicho conjunto tienen losmismos atributos. Se denomina una entidad fuerte cuando se puede identificar una Have (valor 0conjunto de valores) que 10hacen unico. Las entidades debiles, no tienen y dependen de otro Tipode entidad fuerte.

    Atributos:

    Las entidades tienen atributos 0 como se les llama en ocasiones, propiedades, que describen lascaracteristicas de una entidad, por ejemplo una entidad EMPLEADO, tiene sus propiedadesparticulares como: nombre, edad, direccion, sueldo, actividad, etc.

    Fundamentos de Bases de Datos (HAl.) Pagtna 21

  • 5/10/2018 Libro Bases de Datos

    24/86

    los atributos pueden clasificarse de acuerdo al valor 0valores que almacenan, y estes son: Simples 0At6micos: los atributos que no son divisibles, por ejemplo: Ciudad, sexo, edad.

    Compuestos: Cuando un atributo es dividido en pequeiias subpartes. los atributoscompuestos pueden formar una jerarquia de atributos.

    Atributo multivaluado: Cuando un atributo tiene una serie de valores para identificarse, por'~Iemplo el atributo color de un autom6vil.

    Atrtbutos derivados: Cuando los valores de un atributo son afines, y el valor para este tipo deatributo se puede derivar de los valores de otros atributos. Por ejemplo, la edad y la fecha delidcimiento de una persona; si conocemos la fecha de nacimiento, podemos determinar suedad, en este caso decimos que la edad es derivada de la fecha de nacimiento.

    _ - - - - _-----..f "

    Atributo lIave: Una entidad usualmente tiene un atributo sobre el cuallos valores son distintospara cada entidad individual, esta nos permite identificar de forma (mica a una entidad en el;!)njunto de entidades, por ejemplo, en la entidad ESTUDIANTE el atributo puede ser ~I,!urnero del carnet.'I, dlgunos cases varios atributos juntos pueden formar una lIave, significando que la.. n/.!indcion de los valores de los atributos debe ser distinta para cada entidadind.vidualmente.

    , Atributos Nulos: Un valor nulo se usa cuando una entidad no tiene valor para un atributo. Nulo

    puede tam bien indicar que el valor de un atributo es desconocido.

    Fundamentos de Bases de Datos IIIAII Pagina 22

  • 5/10/2018 Libro Bases de Datos

    25/86

    Atributos Complejos: son atributos compuestos 0 multivaluados, anidados de una maneraarbitraria.

    DominioCada atributo simple de un tipo de entidad es asociado con un conjunto de valores al quelIamamos Dominio de un atributo. En otros terrninos, Dominio de un atributo es el conjunto deposibles valores que puede tomar un atributo.

    Relaci6nUna relaci6n es cualquier asociaci6n que pueda establecerse entre entidades de la misma clase 0de clases diferentes. A esta relaci6n tambien se les conoce como vinculos.Cabe mencionar que estas relaciones a su vez pueden tener atributos asociados.o c

    Tipo de relaci6n Relaci6n de dependencia

    Una relaci6n puede encontrarse entre dos 0mas entidades. Segun la cantidad de entidades queparticipan de una relaci6n se Ie denomina grado.Relaci6n de grado 2(Binarias)

    Relaci6n de grado 3(Terciarias)

    No existe 1II1 numero11 1 ( 1 xi 1110 establecido decntidodes [n-arius], quepuede soport ar 1I1l0relncion, 01/1)(111(' serecomictuio se nianejende scr posible de t ipolnnorias.

    Fundamentos de Bases de Datos (HAL) Pagina 23

  • 5/10/2018 Libro Bases de Datos

    26/86

    los roles de una relaci6n son las funciones que desernpefian cada una de las clases de entidadesasociadas. En toda relaci6n binaria, existen dos roles diferentes correspondientes a las entidadesde cada una de las clases relacionadas. Suponiendo que A representa la clase de entidad formadapor todos los profesores de un centro de estudios universitario, y B la formada por todos losalumnos de dicho centro, entre las entidades de estas dos clases podrian estabtecerse variasrelaciones caracterizadas por los siguientes roles:

    ENTIDAD rol ENTIDADPROFESOR Da dase a ESTUDIANTEPROFESOR Estutor de ESTUDIANTEESTUDIANTE recibe clase de PROFESORESTUDIANTE Esdirigido por PROFESOR

    2.3.2 Definicion de Restricciones E-Rlos elementos expuestos anteriormente son la parte fundamental para la construcci6n de undisefio del modelo, pero debemos considerar otros elementos que permiten expresar algunascaracteristicas que deben ser tomadas en cuenta al momento de la construcci6n.Basados en (Silverchats, Korth, Sudarshan, 2002) un esquema de desarrollo E-R puede definirciertas restricciones en la que los contenidos de la base de datos se deben adaptar, estos limitanlas posibles combinaciones de las entidades que pueden participar en los tipos de relaciones.Entre estos tenemos:

    Raz6n de cardinalidad Restricciones de participaci6n y dependencias de existencia.

    Raz6n de CardinalidadLa cardinalidad expresa el nurnero de entidades de una clase que pueden asociarse a una entidadde la otra clase; normalmente se ve en relaci6n binaria de los tipos de Entidades. En funci6n deesta propiedad, se distinguen tres tipos de relaciones:

    Relaciones uno a uno (1: 1)

    ~ f_l ~~ 1~~~_1 ~ f2 ~

    Fundamentos de Bases de Datos (HAl.) Pagina 24

    L

  • 5/10/2018 Libro Bases de Datos

    27/86

    Relaciones uno a muchos (l:N) 0 (N:l)

    L_ E_l ~~-----1~~~--N----;-------E-2----~

    Relaciones muchos a muchos (N:M)

    L_~ E_l ~r------N~~~--M----;-------E-2----~

    Este tipo de restricci6n se fundamenta en la definici6n de atributos Claves para cada tipo deEntidad. Tal como explicamos en la secci6n anterior, en el modelo Entidad - Relaci6n losatributos pueden ser 0 no Claves, segun permitan 0 no la identificaci6n univoca de las entidadesde una clase 0 de las ocurrencias de una relaci6n. A continuaci6n se exponen los conceptosrelacionados:

    Clave candidata: conjunto de uno a mas atributos cuyos valores identifican univocamentecada entidad de la clase, sin que ningun subconjunto de ellos pueda realizar esta mismafunci6n. Una clave candidata es una superclave minima. Una clase de entidad 0 relaci6npuede tener varias claves candidatas.

    Clave primaria: Clave candidata de una clase de entidad 0 relaci6n que se elige comoidentificador univoco de sus entidades u ocurrencias.

    Clave alternativa: Cualquiera de las claves candidatas no elegidas por el disefiador de labase de datos.

    Restricciones de participaci6n y dependencias de existencia.Si la existencia de la entidad x depende de la existencia de la entidad V, entonces se dice que x esdependiente por existencia de V. Operativamente eso signiflca que si se suprime V, tarnbien sesuprime x.Hay dos clases de restricciones de participaci6n: total y parcial. Por ejemplo: Si la politica de unaempresa establece que todo empleado debe pertenecer a un departamento una entidadEMPlEADO s610puede existir si participa en una instancia del vinculo TRABAJA-PARA.Sedice quela participaci6n de EMPLEADOen "fRABAJA-PARAes una participaci6n total. La participacion totala veces recibe el nombre de dependencia de existencia.

    Fundamentos de Bases de Datos fRAI.) Pagina 25

  • 5/10/2018 Libro Bases de Datos

    28/86

    2.3.3 Ejemplo: Taller } INTomemos como ejemplo un pequefio disefio de un sistema para el control de revisiones de losvehfculos de un pequefio taller. Oentro de los lineamientos encontrados tenemos:

    Todos los carros deben de registrarse con informaci6n que 1 0 identifique (placa, modelo,color, etc.) incluyendo la informaci6n de su dueiio y la forma de contactarlo.

    Tenemos clientes que poseen mas de un vehkulo. Se requiere saber sobre las casas de repuesto que manejan refacciones segun el tipo de

    marca. Va que el taller tiene como politica solamente cambiar partes originales. Algunas de estas casas de repuestos distribuyen mas de un tipo de jna rca. Sobre la revisi6n a todo vehfculo se Ie toma la descripcion general del problema para

    despues realizarle un diagn6stico. AI final debemos controlar cuanto fue el monto totalfacturado por la revision y reparaclon (si se ocupo).

    Basado en estas premisas, podemos obtener el siguiente diagrama E-R

    Fundamentos de Bases de Datos (RAI.) Pagina 26

  • 5/10/2018 Libro Bases de Datos

    29/86

    L

    2.3.4 Recomendaciones generalesDe acuerdo con (Elmasri, 2002), en ocasiones es dificil decidir cuando un concepto particulardeberia ser modelado como un tipo de entidad, un atributo 0 un tipo de vinculo. En esta secci6n,damos algunas breves pautas para saber que elementos elegir en determinadas situaciones.En general, el proceso de disefio del esquema debe ria ser considerado como un proceso derefinamiento iterativo, donde se crea un disefio inicial y despues se retina hasta que se consigueel disefio mas adecuado. Algunos de los retinamientos que se suelen usar incluyen 1 0 siguiente: Establecer clara mente los Requerimientos (restricciones semantlcas) Apeguese a las necesidades del problema. Reconozca los tipos de entidades principales del mini mundo del problema tratado. Una caracteristica, en primer lugar, debe ser modelado como un atributo y de presentarse

    como una estructura compleja podria ser refinada en un tipo de entidad con un vinculo al tipooriginal.

    Diagrame todos los atributos ubicandolos en los tipos de entidad y/o tipos de vinculosiguiendo las especificaciones.

    Un atributo que existe en varios tipos de entidad y que representan 1 0 mismosernanticamente, puede refinarse en su propio tipo de entidad independiente. Por ejemplo,los empleados, alum nos y personal administrativo de una universidad pueden estar asociadosa un mismo departamento.

    Procure no basar su disefio en relaciones n-arias, se recomienda usar relaciones binarias. Nombres unlcos para las relaciones y las entidades dentro del esquema. Nombres unicos para' los atributos dentro de una entidad 0 relaci6n, no necesariamente

    dentro del esquema. Las relaciones deben darse entre al menos dos conjuntos de entidades, aunque no

    necesariamente distintos. EI nombre de un rol, debe ser unico y distinto tanto de la entidad como de la relaci6n. La lIave identifica una entidad dentro del conjunto de entidades.

    Se deben respetar reglas en las diagramaci6n, como por ejemplo:

    Usar nombres representativos a la realidad

    Lectura de izquierda a derecha y de arriba ah abajo

    Recomeodaciones l'I:ombres en sillgul;uEn MayusculaFn sustannvo

    hpos de enndad

    Nomenclaturas Alnbulos Primer tetra en mayuscuta reslo mrnuscula,Heiacoones Mayuscula

    En verbo

    vuelva a revisor e/ diseiio.

    Fundamentos de Bases de Datos (RAL) Pagina 27

  • 5/10/2018 Libro Bases de Datos

    30/86

    Recuerde que los Modelos E-R presenta subjetividad dado que un conjunto de informacion puedeser representado como un atributo (complejo) 0 como un tipo de entidad y/o relacion. En lasecclon de transforrnaclcn de este disefio conceptual a logico se abordaran recomendaciones parapoder lIevarlo a una implementacion en cualquier SGBD.

    2.3.5 Ejercicios Propuestos /'rDesarrolle, basandose en el modelo Entidad - Relacion, los siguientes ejercicios:#1. La empresa de formacion XForce, desea IIevar un control informatizado de los cursos queimparte internamente, as! como de los profesores que participan en dichos cursos. Para ello, noshan dado las siguientes especificaciones:

    De los empleados, de los que se desea conocer su codigo de empleado, nombre, Identidady fecha de antiguedad en la empresa. Y pueden impartir y recibir cursos, pero con larestricclon de que en un mismo curso no pueden participar como profesores y comoalumnos.

    Cada curse, del que se desea conocer de que trata (titulo), el numero de horas y el tern a 0los temas que trata, se identifica por un codigo de curso. Cada curso puede tener una serie de cursos cuya realizacion previa es obligato ria(prerrequisito) 0 recomendada.

    Cada curso se puede impartir una 0 varias veces, en diferentes fechas y en cada ediciondel mismo pueden participar diferentes empleados.

    Siempre es costumbre que algunos empleados no terminan el curso, por 1 0 que se debe demantener la informacion de quienes 1 0 completaron V cuates no.

    #2. En el gimnasio "Siempre en forma" se quiere implantar una base de datos para IIevar el controlde los socios, recursos utilizados, etc. Las especif icaciones que nos han dado son las siguientes:

    ,

    Existen varias salas, de las cuales se quiere guardar informacion como, los metroscuadrados que ocupa, ubicacion y el tipo de sala (general, muscular.' etc.). Cada sala seidentifica por un numero de sala.

    Hay salas que tienen aparatos y salas que no. En las salas se pueden 0no impartir clases. De cada aparato se quiere tener almacenado su codigo, descripcion y estado de

    conservation. Cada aparato esta asignado a una unica sala. De cada monitor (personal a cargo de impartir clases) se quiere conocer el Id, nombre,

    telefono, si tienen 0 no titulacion, experiencia profesional, as! como las clases que puedenimpartir [preparacion como monitor de aerobic, spelling, streching, etc.).

    De cada socio se quiere conocer el numero de socio, nombre, direccion, telefono,profesi6n y tipo de socio (empresarial, familiar, normal, etc.), su pago mensual, asi comolas c1asesa las que asiste.

    Tarnbien se quiere mantener informacion relacionada con las clases que se imparten(descripci6n y dia/hora en la que se imparten) y los alum nos que participan en elias; cadaclase se identifica por un codigo de clase. Cada clase tiene asignada una sala y es impartidapor un solo monitor.

    Fundamentos de Bases de Datos (RAL) Pagina 28

  • 5/10/2018 Libro Bases de Datos

    31/86

    2.4.1 Descripci6n ,/En las secciones anteriores hemos estudiado que existen distintos modelos segun los cuales lainformacion puede ser expresada. EI modelo E-R es una de los modelos conceptuales masutilizados pero, como se indico, este debe ser convertido a un modelo logico que pueda serimplementado en un SGBO.Actualmente, para la mayoria de las aplicaciones de gestion que utilizan bases de datos, el modelomas empleado es el modelo relacional, por su gran versatilidad, potencia y por los formalismosrnaternaticos sobre los que se basa.Existen dos formas de IIegar al modelo relacional, la primera es a traves de un modelo conceptualcomo el E-R y el segundo es usando un proceso mas complejo y formal que se denominanormalizocion, Ambos son explicados mas adelante en este documento.

    PROBLEMA

    E-R Norrnallzacion

    ModeloRelacional

    2.4.2 Elementos /"/'Antes de empezar a definir cada uno de los elementos que intervienen en este modelo, debernostener en cuenta la diferencia de la palabra relaci6n en ambos modelos. En el modelo relacionaluna relacion es una tabla mientras que en el E-R es la asociaclon que se produce entre dosentidades. Dicho de otro modo, las entidades del E-Rse denominan relaciones en este modelo.

    RelacionSegun el modelo relacional el elemento fundamental es 1 0 que se conoce como relaci6n, aunquemas habitualmente IIamado tabla, que consiste en una estructura bidimensional constituida portuplas (filas) y atributos (columnas). Almacena los datos referentes a una determinada entidad delmundo real.

    Fundamentos de Bases de Datos (HM.) Pagina 29

  • 5/10/2018 Libro Bases de Datos

    32/86

    Para ejemplificar su estructura:

    Dominio

    NOMBREDERELACI6N (Tabla)

    TUpla~

    Atributo 1 Atributo 2 Atributo 3 Atributo n_>---,_.,'Valor 1,1 , Valor 1,2 Valor 1,3 Valor 1,n'Valor 2,1 Valor 2,2 Valor 2,3 Valor 2,n'Valor 3,1 , Valor 3,2 Valor 3,3 Valor 3,n

    Nombre de la retaclon: identifica a la tabla como objeto unico y no puede ser repetidodentro la lista de objetos de la base de datos.

    Atributo: Representa una propiedad que posee esa relaci6n, es equivalente al atributo delmodele E-R. Mas informalmente se Ie conoce como campo 0 columna. Algunascaracteristicas

    o Un atributo toma valores de un dominioo Varios atributos distintos (de la misma 0 de diferentes relaciones) pueden tomar

    sus valores del mismo dominio.o Un atributo esta siempre asociado a una relaci6no Dos atributos en la misma tabla no pueden lIamarse igual.o Un atributo y un dominio pueden IIamarse igual.o Un atributo representa una propiedad de una relaci6no A diferencia del E-R, los atributos del modelo relacional solamente pueden ser

    simples y at6micos.o EIorden de los mismos en la tabla no es importante.

    Dominio: Un dominio contiene todos los posibles valores que puede tomar undeterminado atributo.

    o Dos atributos distintos pueden tener el mismo dominio. Un domino en realidad esun conjunto fin ito de valores del mismo tipo.

    o Los dominios poseen un nombre para poder referirnos a el y asi poder ser.reutilizable en mas de un atributo.

    o Asociado a un tipo de datos, define comportamiento los valores son at6micosrespecto del MR

    Tupla: representa por cada elemento individual (ejemplar, ocurrencia) de esa relaci6n.informalmente se Ie conoce como filas de la tabla 0 registros.

    Cardinalidad: Numero de tuplas de una relaci6n A con respecto a las tuplas en unarelaci6n B. Los tipos de cardinalid~d de asignaci6n son:o Uno-Uno (1:1)o Uno-Muchos (l:N)oEste modelo no soporta relaciones de tipo N:M. entre sus tobIas.

    Grado: Numero de atributos de una relaci6n.

    Fundamentos de Bases de Datos (lW) Pagina 30

    j

  • 5/10/2018 Libro Bases de Datos

    33/86

    L

    Las tuplas (registros) en una relacion son un conjunto en el sentido mate matico del terrnino, esdecir una coleccion no ordenada de elementos diferentes. Para distinguir una tupla de otra, serecurre al concepto de "lIave prima ria", 0 sea un atributo 0 conjunto de atributos que permitenidentificar univocamente una tupla en una relacicn.Tipos de Claves Clave candidata: Conjunto de atributos que identifican univocamente cada tupla de la

    relacion, Esdecir columnas cuvos valores no se repiten para esa tabla. Clave prima ria: Clave candidata que se escoge como identificador de las-tuplas. Se elige como

    prima ria la candidate que identifique mejor a cada tupla en el contexte de la base de datos. Clave alternativa: Cualquier clave candidata que no sea primaria. Clave externa, ajena 0 foranea: Atributo cuyos valores coinciden con una clave candidata

    (norrnalmente primaria) de otra tabla.

    2.4.3Restricciones .:Las restricciones son reglas que siempre deben cumplirse de modo de apoyar la integridad de labase de datos (es decir, que la base de datos cum pia fielmente con el mundo modelado). Estasrestricciones tratan con la consistencia. Restriccion de dominio: EI valor de cada atributo A debe ser un valor atornico del dominic

    dom(A). Entre estos tenemos:o Obligatoriedad (NOT NULL)o Unicidad (UNIQUE)o Verificaci6n y Rechazo (CHECK)o Disparador (TRIGGER)

    Restriccion de clave: dos tuplas no pueden tener la misma clave, en general al declare unatributo como !lave principal automaticamente se define como UNIQUE y NOT NULL

    Integridad referencial: Si una relacion R2 (relacion que referencia) tiene un descriptor que es laclave prima ria de la relacion Rl (relacion referenciada), todo valor de dicho descriptor debeconcordar con un valor de la clave prima ria de Rl 0 ser nulo. .

    2.4.4 Operaciones FundamentalesLas operaciones del Algebra Relacional se pueden clasificar en cuatro clases:

    1. Operaciones habituales de los conjuntos (union, intersecci6n V diferencia)2. Operaciones que suprimen partes de una relacion (Ia seleccion muestra algunas tuplas y la

    proveccion algunas columnas)3. Operaciones que combinan las tuplas de dos relaciones (el producto cartesiano combina

    pares de tuplas de dos relaciones y varias clases de reuniones que forman parejas, deforma selectiva, a partir de dos relaciones)

    Fundamentos de Bases de Datos (//AI.) Pagina 31

  • 5/10/2018 Libro Bases de Datos

    34/86

    Operacion renombrarniento que modifiea el esquema de una relacion (nombres deitributos y/ o nombre de la relacion

    SeleccionLa operacion seleccion seleceiona tuplas que satisfacen un predicado dado y produce unanueva relacion con un subconjunto de tuplas de la relacion original. Para denotar la

  • 5/10/2018 Libro Bases de Datos

    35/86

    Producto CartesianoLa operaci6n producto cartesiano, a producto, combina tuplas de dos relaciones formandonuevas tuplas que tienen como primera parte una tupla de una relaci6n y como segundaparte una tupla de la otra relaci6n.Para denotar el producto cartesiano se utiliza la notaci6n de maternaticas (X), lasrelaciones sabre las que se aplica aparecen a los lados del operador Define una relaci6n16gicaAND

    retactonr x relacion2

    RenombramientoLa operaci6n renombramiento permite poner nombre a una relaci6n (obtenida a traves deuna expresion] que no 10tenga.Para denotar la proyecci6n se utiliza la letra griega rho rninuscula (p) [tarnblen la particulaas en una lista de argumentos). EI nombre a dar a la relaci6n aparece como subindice de py el nombre a dar a los atributos como argumentosLa expresi6n sabre la que se aplica aparece entre parentesis

    p nombre(argumentos) [expresion]

    lntersecclonObtener relaciones del tipo y

    relacionl relacion2 U =relacionl-(relacionl-relacion2)

    Cuando se utiliza el producto cartesiano, se suele reducir forzando que los argumentos concontenidos iguales tengan valores igualesrelaci6n1 relaci6n2 =Orelac16nhrgumento=relacI6n2.argumento (relaci6n1 x relaci6n2)

    Estas operaciones se veran mas expresamente en el capitulo de SQL presentado en estedocumento.

    ,

    Fundamentos de Bases de Datos (RAt) Pagina 33

    L

  • 5/10/2018 Libro Bases de Datos

    36/86

    Una base de datos que se ajusta a un diagrama E-R puede representarse por medio de unacolecci6n de tablas. Para cada conjunto de entidades y para cada conjunto de relaciones en la basede datos debera analizarse la existencia de una 0 mas tablas a las que se Ie asigna' un nombrecorrespondiente. Cada tabla tiene un numero de columnas que, a su vez, tienen nombres unicos.En esta etapa de transformaci6n del esquema conceptual (ER) a un esquema relacional hay querecordar que este sigue siendo independiente del SGSD que se utilizara. EI paso se pod ria decirque es de tipo empirico, puesto que podemos tener Hneas 0 recomendaciones pero no unprocedimiento formal. Algunas de estas recomendaciones:

    1. Todo tipo de entidad fuerte se convierte en una tabla.2. Cada entidad genera una tabla en la que cada atributo (simple) ocupa una columna y la

    clave primaria sera la clave de la entidad.3. Los atributos multivaluados: para un atributo multivaluado se crea una tabla con una

    columna que corresponde a la clave prima ria de la entidad a la que pertenece el atributo.4. Los atributos compuestos: debera de definirse como la serie de atributos simples.5. Una entidad debit genera una tabla en la que cada atributo (simple) ocupa una columna y

    la clave prima ria sera la clave de la entidad de la que depende mas los atributos quefuncionan como discriminadores (si los hay).

    6. Las relaciones 1:1 no generan tabla. En muchos casos la entidad dependiente genera unatabla en la que la clave prima ria sera la clave de la entidad de la que depende.

    7. Las relaciones l:N se representa incluyendo en la tabla del extremo "varies" las columnasdela lIave prima ria del extrema "uno".

    8. Las relaciones N:M gene ran tabla que incluye las claves de las entidades que se relacionan .mas los atributos descriptivos de la relaci6n. En generalla clave de esta tabla es la uni6nde estas daves, aunque dependiendo del caso los atributos descriptivos tam bien puedenformar parte de Jaclave.

    Recuerde que los Modelos E-R son una representaci6n grafica de la realidad, no existe un metodaformal para pasar este a un disefio 16gico (ejemplo: reiocionatv; por tanto debe ser analizado yrefinado, para ello se combina con otra tecnica denominada normalizacion que veremos en lasecci6n posterior.

    Fundamentos de Bases de Datos (RA!.) Pagina 34

  • 5/10/2018 Libro Bases de Datos

    37/86

    2.5.1 Ejemplo Taller: relaciones, diagrama y restricciones .~.Tomemos como ejemplo el pequefio taller del ejercicio de la seccion anterior.EI diagrama relacional de un problema pretende mostrar las relaciones y las conexiones entreelias.CASAREPUESTO DUENO

    C1 MAR Ar-e- codCasa 1 1 '\

    Vended or CodMarca - IdentidadTeletono Marca NombresDireccion

    CorreoCASA MARCA VEHICULO TelFijon / "\ 1 CelularcodCasa n Placa r--codMarca ~ Color

    Dueno ~ n REVISIONr-AnoTipo n No_revisionn CodMarca PlacaFecha

    ./ ProblemaDiagnosticoEstatusValor _Facturado

    Como pod ran observar el diagrama relacional permite, entre otras cosas, identificar: Las integridad referencial que deberia existir, por ejemplo:

    o todo vehiculo debe estar asociado a una marcao No deberia borrarse un vehiculo al cual Vase Ie haya hecherevision

    Se identifica las lIaves primarias con mayor claridad:o Los atributos CodMarca, Identidad, Placa, No_Revision+Placa son atributos llaves

    dentro de su respectiva relaclon. Se identifica las lIaves foraneas 0extranjeras

    o codMarca es lIave foranea en la tabla VEHICULOo Placa es lIave foranea en la tabla REVISION

    Seve el grado de cardinalidad (existencia) de los atributos en cada lado de la relacion.

    Pero se ocultan detalles de irnplernentacion como:

    No se puede observar las restricciones asociadas al ~minio. En algunos casos, no se observa los tipos de datos asociados a cada atributo.

    Fundamentos de Bases de Datos (RAt) Pagina 3S

  • 5/10/2018 Libro Bases de Datos

    38/86

    Descripcion minima de cada tablaOtra de las tareas que se deben realizar, es la descripci6n de cada tabla. Esta nos avudara en elproceso de creaci6n en el SGBD que se procesen. Una estructura recomendada puede ser:Nombre de la tabla:lIave primaria:Llave secundaria:lIave foranea:Atributo Tipo Datos Tamafio Observaciones

    -Para simplificar agruparemos los tipos de datos en: Numerico Decimal

    Fecha L6gico AlfanurnericoEJEMPLO:Nombre de la tabla: _V-"-=EH:....:..:...=IC'-=U:..=L=O _Llave prima ria: -'=p..:..;:la::..::c=a;__ _Llave secundaria:Llave foranea:

    no tieneCodMarca dueno

    Atributo Tipo Datos Tarnafio ObservacionesPlaca Alfanurnerico 7Color Alfanurnerico 30Dueno Alfanumerico 13Ano Nurnerico 4,0 --Tipo Alfanumerico 2 TR=Turismo PI=Pickup

    CA=Camioneta MO = motaCM = cami6n

    CodMarca Numerico 3,0- -----

    Los tipos de datos de las lIaves foraneas deben respetarse en cuanto a los tipos definidos en sustablas principales, adicionalmente podemos ver que el atributo tipo en la columna deobservaciones posee una serie de restricciones que deberan respetarse como el conjunto devalores validos para ese dominio.

    Fundamentos de Bases de Datos tusu Pagina 36

  • 5/10/2018 Libro Bases de Datos

    39/86

    /2.5.2 Ejercicios PropuestosTome los ejercicios de la secci6n anterior (E-R) y realice la transformaci6n del modelo conceptualal modelo 16gico:

    Desarrollando el diccionario de datos Haga la descripci6n de cada tabla resultante Establezca las restricciones de dominio que apliquen Establezca las restricciones de dominio que apliquen Diagrame el modelo.

    ,

    Fundamentos de Bases de Datos (HAl.) Pagina 37

  • 5/10/2018 Libro Bases de Datos

    40/86

    CAPITULO HI: NORMJU.JZACl(ll\! DE BASES DE DATOS

    La definicion principal que debemos estudiar es la de Dependencia Funcional, ya que sobre esta sebasa todo el proceso de normalizacion. Miremos algunas definiciones.

    Def. 1: son propiedades inherentes al contenido semantico de los datos.Def. 2: Una dependencia funcional es una relaci6n muchos a uno desde un conjunto deatributos a otro que tiene una relaci6n. R(A,DF) donde A es el conjunto de atributos de larelaci6n, OF es el conjunto de dependencias entre los tributos.Def. 3: Sea R una relaci6n y sean X e Y subconjuntos arbitrarios del conjunto de atributosde R. Cuando se dice que Y es funcionalmente dependiente de X -en simbolos X -> Y- sl Ys610 sl cada valor de X en Resta asociado con, precisamente, un valor de Yen R.

    En otras palabras, cuando quiera que dos tuplas de R coinciden sobre un mismo valor de X, eliastambien coinciden sobre un mismo valor de Y.Las definiciones anteriores explican que para una relaci6n R es posible considerar un amplioconjunto de dependencias funcionales entre los atributos que la componen.Estas dependencias se establecen para todos los posibles valores legales de los atributosconsiderados. Esto significa que puede darse el caso que todas las tuplas que actualmente existenen la relaci6n cum plan con una determinada restriccion funcional, pero eso es algo que en larealidad no ocurre y es en este sentido que se habla de los valores legales de los atributos.

    t :~ ti ,I

    Estos son comportamientos an6malos que se pueden presentar al insertar, borrar y actualizar .datos en una base de datos relacional, producidos por un disefio deficiente.La mayo ria de estos problemas se basan enla redundancia de informacion que pueda existir enuna relacion. Observemos por ejemplo en la relacion de facturas

    No. Cllente Nombre Dlrecci6n Per. TotalFact99 08011980 Jose Peres Res Robles 2010-02-05 15000100 080119830 Ana Maria EI Manchen 2010-02-12 66.00101 08011980 Jose Peres Res. Robles 2010-03-07 50.00120 080119830 Ana Maria EI Manchen 2010-09-01 1800

    ._

    Podemos ver como el nombre, la direcci6n se repetiran cada vez que Ie facturemos a ese cliente.lo cual produce, adernas de un desperdicio de espacio, las siguientes anomalias.

    Fundamentos de Bases de Datos (RAL) Pagina 38

    L

  • 5/10/2018 Libro Bases de Datos

    41/86

    Tomemos como de ejemplo la relacionfactura propuesta anteriormente:Factura (numerofactura, cliente, nombre, direccion, fecha, total)

    Anomalias de inserclon;./ Laexistencia de un objeto requiere la existencia de otro objeto independiente.

    Encontramos que para afiadir un nuevo cliente, necesito crear forzosamente una factura para esecliente (Es decir, existe una dependencia directa entre ambos conjuntos de informaci6n cliente-factura).

    Anomalias de modificacion:./ Para cambiar el valor de un atributo, se necesita cambiarlo slmultanearnente en varios

    sitios, en lugar de en uno.

    Para cambiar la direcci6n de un cliente, hay que hacerlo en todas las facturas que tenga, a pesarque el cliente solo tiene una direccion (por la redundancia).

    AnomaHas de eliminaclon:./ Para borrar un registro, cuya existencia es un unico registro, se perderia la informacion del

    objeto en su totalidad.

    Supongamos que deseamos eliminar la unica factura asociada a un cliente, forzosamentedeberemos de eliminar al cliente en conjunto con su factura.Para solventar dichas anomalias se propone el proceso de normalizacion que tendria comoresultado inmediato la descomposici6n de la relacion en dos, con las cuales no se pierde elcontenido semantico de la relaci6n.

    Factura [numerofactura, cliente, nombre, direccion, fecha, total)Cliente (cliente, nombre, direccion)

    Cllente Nombre Dlreccl(m08011980 Jose Peres Res. Robles080119830 Ana Maria EI Manchen- +o. Cllente Per. Total

    Fact 150009 08011980 2010-0205~ 080119830 2010-0212 66.001-. -101 08011980 2010-03-07 5000'-- 120 080119830 201009-0'- -- 1800

    -

    Fundamentos de Bases de Datos (RAt.J Pagina 39

  • 5/10/2018 Libro Bases de Datos

    42/86

    Basados en las definiciones anteriores sobre 10 que es una dependencia funcional, debemosexplicar brevemente cada una de las dependencias que existen.Graticamente es posible representar una dependencia funcional mediante flechas, mediante laexpresion:

    x-s vPuede leerse como:Ydepende funciona/mente de X

    6X determina a Y

    PropiedadesSean A, B, C Y D son subconjuntos arbitrarios del conjunto de atributos que tiene la relacion R, yescribir AB significa la Union de A y B. Entonces tenemos:Reglas de inferencia de Armstrong

    1. Reflexividad: Si B es un subconjunto de A, entonces A -> B.2. Aumentacion: Si A -> B, entonces AC -> Be.3. Transitividad: Si A -> By B -> C, entonces A -> C.4. Autodeterrninacion: A -> A.5. Descornposlclon: Si A - o - BC, entonces A -> B Y A -> e.6. Union: SiA -> By A - c - C, entonces A -> Be.7. Composici6n: Si A -> By C -> D, entonces AC -> BD.

    Teorema de Unificaci6n General: u: uni6n y -: diferencia.Si A -> By C - D, entonces A u ( C - B) -> BD

    Oependencias funcionales de las claves

    Una clave candidata consiste de un conjunto de atributos K (no'vado) de la relaci6n R quesatisface las siguientes propiedades, independientes del tiempo:1. Unicidad: en cualquier momenta dado, no existen dos tuplas en R con el mismo valor

    de K.2. Minimalidad: si K es compuesto, no sera posible eliminar ningun componente de K sin

    destruir la propiedad de unicidad.Fundamentos de Bases de Datos (/lAI.) Pagina 40

  • 5/10/2018 Libro Bases de Datos

    43/86

    N6tese que la relaci6n tiene por 10menos una clave candidata, porque las relaciones no contienentuplas repetidas. Ahora bien, del conjunto de las claves candidatas de una relaci6n dada, se eligeuna y solo una como clave prima ria de esa relaci6n; las dernas, si existen se lIaman clavesalternativas.Revisando las definiciones anteriores y comparandolas con la definicion de dependencia funcionalpodemos decir que siempre existira una dependencia entre cualquier clave candidata y losatributos que no son 0 no componen dicha clave, pero que tambien pertenecen a la relaci6n.

    Ejemplos de Dependencias FuncionalesLas dependencias funcionales son representaciones sernanticas de las relaciones que existen entrelos datos en una realidad. Un buen ejemplo de esto es el nombre de una persona, el cual siempredependera de la identidad de esa persona; ya que aunque existiesen dos personas con el mismonombre, elias siempre tendran distinta identidad.En resumen:

    Tipo Descripcion SimbologiaRelaci6n Persona RAtributo identidad aAtributo nombre b

    Tal que:Y :

    R (a,b)a-?b

    Tomemos otro ejemplo, supongamos la situaci6n para un alum no de una Universidad con losatributos: carnet, nombre, identidad y carrera que estudia.En resumen:

    Tipo Descrlpclon SimbologiaRelaci6n Estudiante RAtributo Carnet aAtributo Nombre bAtributo identidad cAtributo carrera d

    Tal que:Y :

    R (a,b,c,d)a-?ba-?ca-?dc-?ac-?d

    Podemos observar que el carnet e identidad son claves candidatas dentro de la relaci6n, por tantoambas determinan al mismo grupo de atributos y asi mismas. Como disefiador, deberiaseleccionarse una de elias como identificador prima rio de la relaci6n.

    Fundamentos de Bases de Datos (//A/.) Pagina 41

  • 5/10/2018 Libro Bases de Datos

    44/86

    La teo ria de la norrnalizacion busca que las relaciones cumplan con un cierto conjunto derestricciones explicitas, de modo que sea posible asegurar ciertas propiedades deseables en losdatos.

    Las formas normales corresponden a un conjunto discreto de restricciones progresivas que hacenque una relaclon tenga un grado de norrnalizaclon en el momenta que cumple con algunsubconjunto de aquellas. EI sentido de progresi6n que determinan las formas normales esjustificado por las caracteristicas de las restricciones que elias imponen, donde, para que unarelacion acceda a la po_sibilidad de cumplir el siguiente conjunto de restricciones debe,previamente satisfacer las anteriores. Esto se puede ver desde el punto que hay ciertas relacionesa las cuales les.basta con cumplir un conjunto de restricciones y con ello alcanzar un grado denorrnalizacion suficiente. Mientras, por otro lado, existen otras relaciones que necesitan cumplircon otro conjunto mayor de restricciones para alcanzar este estado deseable en sus datos.

    R :

    a b ca1 br.bz.bs c1a2 b4,b5 c2

    an bn Cn

    As! las formas norm ales estan contenidas unas en otras formando un conjunto de reglas queprogresivamenteva asegurando calidad en las relaciones. Esto se alcanza mediante unprocedimiento de norrnallzacien en el cual una relaclon en una cierta forma normal, se puedeconvertir en una 0mas relaciones que estan en una forma mas deseable. Asi, el procedimiento 1 0podemos caracterizar como la reduccion sucesiva de un conjunto dado de relaciones a una formamas deseable.

    Cabe sefialar que el procedimiento es reversible; es decir, siempre es posible tomar la salida delprocedimiento (relaciones con un grado de normatizacion] y convertirlas otra vez en la entrada(antes de cumplir con las restricciones). Esto ultimo es importante ya que significa que no sepierde informacion durante el proceso de normalizacicn.

    3.4.1 Relaci6n UniversalEI primer paso, aunque no es parte de las formas normales, es el de listar el conjunto deinformacion que abarca el problema. Mostrandolos como si fueran todos parte de una unicarelacion 0 tabla.Este esquema permite visualizar lOOOS los atributos de informaci6n de una forma global y atmisrno tiempo pretende rellenar posibles valores que pueden tomar dichos atributos.

    Fundamentos de Bases de Datos (IIA/.) Vagina 42

  • 5/10/2018 Libro Bases de Datos

    45/86

    Recuerde que el proceso de normalizacion se basa en dos aspectos principales:1. Definicion de dependencias funcionales: que se basan en las relaciones que tienen los

    dominios de los atributos.2. Determinacion de !laves primarias.Tanto para el primero como para el segundo, se requiere se considere todas los posibles valoresque puede tornar un atributo.

    3.4.2 Primera Forma Normal Una relaclon esta en primera forma normal (1NF) si y solo si todos los dominios simples

    subyacentes contienen solo valores atornicos.las dependencias no participan directamente en la norrnalizacion para alcanzar la primera formanormal puesto que esta solo busca eliminar los grupos repetitivos. As] , el siguiente es un ejemplode este nivel de norrnalizacion sobre el atributo b:

    R :

    a B cal b1,b2,b3

    b4,bS c2c1

    a2

    R1:a b c

    al bl c1al b2 c1a1 b3 c1a2 b4 c2a2 bS c2

    Se puede apreciar que b presenta repeticiones de ocurrencias para R, al normalizar obtenemosR1, en la cual se han eliminado estas repeticiones.

    Fundamentos de Bases de Datos (RAf.) Pagina 43

  • 5/10/2018 Libro Bases de Datos

    46/86

    'tl.:~t'gllnda Forma NormalUna relacion esta en segunda forma normal (2NF) si y solo si esta en lNF y todos los atributosflO clave dependen par completo de la clave primaria.

    t ;,td forma aboga por relaciones en que solamente existan dependencias completas, lasdependencias parciales se presentan cuando a partir de una lIave compuesta, algun atributodepende directamente de un elemento de la lIave primaria.hN'.1 tieterrninor las dependencias [uncionoles completas y fa llave primaria.

    Dada: R( a.b.c.d.e, f)Con las OF: {a.b} -> C

    {a,b} -> fa - db -> e

    it'.,}? ' teolircr: en diagrama de dependencies

    R Il___lstf' paso no es requerido, podria seguirse can el siguiente sin necesidad del diagrama,pero so recomienda puesto que presenta mas clara mente las relaciones de los atributos.

    f'n' i utentiticor las dependencies parciales)Iguiendo can el ejemplo anterior podemos observer claramente, que dos dependencias'10 son cornpletas can respecto de la clave prima ria, as i es necesaria una proveccion quedt' c orno resultado dos 0mas relaciones que tengan esta caracteristica, por ejemplo:

    .nulanu-nto rie Buses de Datos (1IA11 Pagina 44

  • 5/10/2018 Libro Bases de Datos

    47/86

    R ab

    Rl ab

    Rl( ~.c ) con OF: {a,b} -> c,R2( a,d ) con OF: a -> d, a -> eR3( b,e ) con OF: a -> d, a -> e

    R3

    Observe dos caracteristicas de este proceso de descornposicion basado en formas normales: Primero: Oe descomponerse una relacion (R), esta debe de descartarse del modelo

    tomando solamente las relaciones resultantes (Rl, R2 Y R3) YSegundo: la descornposicion perrnitira la cornposicion a su forma original.

    Oe romperse uno de estos criterios, el proceso de des-norrnalizacion no podra lIevarse a caboy no podra regresarse a su relaci6n universal.

    ,

    Fundamentos de Bases de Datos (HAt.} Pagina 45

  • 5/10/2018 Libro Bases de Datos

    48/86

    3.4.4 Tercera Forma Normal Una relacion esta en tercera forma normal (3NF) si y solo si esta en 2NF y todos los atributos

    no clave dependen de manera no transitiva de la clave prima ria.Busca, para relaciones en 22 forma normal, aquellas en que existan dependencias transitivas conrespecto de la clave primaria. Asi, cualquier relacion que tenga este tipo de dependencia, debe serproyectada de modo que sea eliminada.Por ejemplo:

    R( a,b,c ) conOF: a -> b,

    a -> c,b -> C

    Se puede apreciar que la dependencia funcional a -> c es transitiva, ya que puede ser expresadamediante las otras dos que existen, esto es: a -> by b -> c.Para eliminar esto proyectamos sobre a,b y sobre b,c

    R

    Rl~ R 2Rl( a,b ) con OF: a -> b R2( b,c ) con DF: b -> c,

    Recuerde que al igual que la segunda forma normal, debe descartarse la relacion original yla descornposicion debe permitir la cornposicion.

    Fundamentos de Bases de Datos (RA/.) Pagina 46

  • 5/10/2018 Libro Bases de Datos

    49/86

    3.4.5 Forma Normal Boyce-CoddUna relacion esta en forma normal Boyce!Codd (BCNF) si y solo si todo determinante es unaclave candidata.

    Se debe definir el concepto de determinante como un atributo del cual depende funcionalmente(por completo) algun otro atributo. Por ejemplo, en el caso anterior, a es un determinante paratodos los atributos de Rl, tarnblen b es el determinante de todos los atributos de R2.Para la forma normal Boyce!Codd los unicos determinantes son las claves candidatas, es decir losatributos solo puede depender de las claves candidatas.Veamos un caso en que eso no ocurra, V sea necesaria una transformaci6n para normalizarlasegun la forma Bovce/Codd:

    R( a,b,c,d)donde existen las siguientes OF{a,b} -> d

    d -> c.

    R ab

    Esto se normaliza en Boyce!Codd como las siguientes dos relaciones:

    R l

    Rl(a, b, d) con OF{a,b} -> d, R2(d, c) con OF c -> b

    ab

    R ab

    R2

    Para algunos autores, aillegar a este punto del proceso de normalizacion, ya se tiene una base dedatos aceptable y libre de anornalias.

    Fundamentos de Bases de Datos (HAl.) Pagina 47

  • 5/10/2018 Libro Bases de Datos

    50/86

    3.4.6 Cuarta y Quinta Forma NormalCuarta Forma Normal Una relaci6n Resta en cuarta forma normal (4NF) si y s610si, siempre que existe una

    Oependencia Multivaluada en R, digamos A -> -> B, todos los atributos de R dependentarnbien funcionalmente de A. En otras palabras, las (micas dependencias (funcionales 0multivaluadas) en Rson de la forma K -> X (0 sea, una dependencia funcional con respecto auna clave candidata K de algun otro atributo X). 010que es equivalente: Resta en 4NF si estaen BCNF y todas las dependencias multivaluadas en Rson de hecho dependencias funcionales.

    Por ejemplo, si tenemos la siguiente relaci6n, con dependencias multivaluadas:R(a,b,c) donde existen las DMV a -> -> b

    a -> -> C,Entonces la normalizaci6n en cuarta forma normal nos lIeva a transformar esta relaci6n enotras en que todas las dependencias multivaluadas sean dependencias funcionales, estos610 10logramos al proyectarlas sobre distintas relaciones, por ejemplo:

    Rl(a,b) con OFa -c - b, yR2(a,c) con OFa -> c

    Quinta forma normal Una relaci6n esta en quinta forma normal (SNF) -Hamada tarnbien forma normal de

    proyecci6n/reuni6n (PJ/NF)- si y 5610sitoda dependencia de reuni6n en Res unaconsecuencia de las claves candidatas de R.

    ,

    Fundamentos de Bases de Datos (RAI.) Pagina 48

    l _

  • 5/10/2018 Libro Bases de Datos

    51/86

    Codd se percato de que existfan bases de datos en el mercado las cuales dedan ser relacionales,pero 10 unico que hadan era guardar la informacion en las tablas, sin estar estas tablasliteralmente normalizadas; entonces este publico 12 reglas que un verdadero sistema relacionaldeberia tener, en la practica algunas de elias son difkiles de realizar. Un sistema podraconsiderarse "mas relacional" cuanto mas siga estas reglas.Regia No. 1-La Regia de la informacion"Toda la informacion en un RDBMSs esta exptfcitamente representada de una sola manera por

    valores en una tabla".Cualquier cosa que no exista en una tabla no existe del todo. Toda la informacion, incluyendonombres de tablas, nombres de vistas, nombres de columnas, y los datos de las columnas debenestar almacenados en tablas dentro de las bases de datos. Las tablas que contienen talinformacion constituyen el Diccionario de Datos.

    Regia No.2 - La regia del acceso garantizado"Cada ftem de datos debe ser 16gicamente accesible al ejecutar una busqueda que combine el

    nombre de la tabla, su clave prima ria, y el nombre de la columna".Esto significa que dado un nombre de tabla, dado el valor de la clave primaria, y dado el nombrede la columna requerida, debera encontrarse uno y solamente un valor. Por esta raz6n ladefinicion de claves primarias para todas las tablas es practicarnente obligatoria.

    Regia No. 3-Tratamiento sistematico de los valores nulos

    "La informacion inaplicable 0 faltante puede ser representada a traves de valores nulos".Un RDBMS debe ser capaz de soportar el uso de valores nulos en el lugar de columnas cuyosvalores sean desconocidos 0 inaplicables.

    No.4 - La regia de la descripcion de la base de datos"La descripcion de la base de datos es almacenada de la misma manera que los datos ordinarios,

    esto es, en tablas y colurnnas, y debe ser accesible a los usuarios autorizados".La informaci6n de tablas, vistas, permisos de acceso de usuarios autorizados, etc, debe seralmacenada exactamente de la misma manera: En tablas. Estas tablas deben ser accesibles igualque todas las tablas, a traves de sentencias de SQL.

    5 ROBMS: Sistema Gestor de Bases de Datos RelacionalesFundamentos de Bases de Datos {1 IA1 . ] Pagina 49

  • 5/10/2018 Libro Bases de Datos

    52/86

    "Debe haber al menos un lenguaje que sea integral para soportar la definici6n de datos,manipulaci6n de datos, definici6n de vistas, restricciones de integridad, y control de

    autorizaciones y transacciones".

    Regia No.5 - La regia del sub-Ienguaje Integral

    Esto significa que debe haber por 10menos un lenguaje con una sintaxis bien definida que puedaser usado para administrar completamente la base de datos.

    Regia No.6 - La regia de la actualizaci6n de vistas"Todas las vistas que son te6ricamente actualizables, deben ser actualizables por el sistema

    mismo".La mayoria de las RDBMS permiten actualizar vistas simples, pero deshabilitan los intentos deactualizar vistas complejas.

    Regia No. 7 -La regia de insertar y actua/izar"La capacidad de manejar una base de datos con operandos simples aplica no solo para larecuperaci6n 0 consulta de datos, sino tarnbien para la inserci6n, actualizaci6n y borrado de

    datos".Esto significa que las clausulas SElECT, UPDATE, DElETE e INSERT deben estar disponibles yope rabies sobre los registros, independientemente del tipo de relaciones y restricciones que hayaentre las tablas.

    RegIa No.8 - La regia de independenc;a /is;ca"EI acceso de usuarios a la base de datos a traves de terminales 0 programas de aplicaci6n, debepermanecer consistente 16gicamente cuando quiera que haya cambios en los datos almacenados,

    o sean cambiados los metodos de acceso a los datos".EI comportamiento de los programas de aplicaci6n y de la actividad de usuarios via terminalesdeberia ser predecible basados en la definici6n 16gica de fa base de datos, y este comportamientodebe ria permanecer inalterado, independientemente de los cam bios en la definici6n fisica de esta.

    RegIa No. 9 - La regIa de independencio 16gica ,"Los programas de aplicaci6n y las actividades de acceso por terminal deben permanecer

    16gicamente inalteradas cuando quiera que se hagan cambios (segun los permisos asignados) enlas tablas de la base de datos".

    Fundamentos de Bases de Datos (HAL) P ag in ;) SO

  • 5/10/2018 Libro Bases de Datos

    53/86

    La independencia logica de los datos especifica que los programas de aplicaclon y las actividadesde terminal deben ser independientes de la estructura logica, por 1 0 tanto los cambios en laestructura logica no deben alterar 0modificar estos programas de aplicacion.

    RegIa No. 10-La regIa de la independencia de la integridad"Todas las restricciones de integridad deben ser definibles en los datos, y almacenables en el

    catalogo, no en el programa de aplicacion".Las reglas de integridad son: Ningun componente de una clave prima ria puede tener valores en blanco 0 nulos. (esta es la

    norma basica de integridad). Para cada valor de clave foranea debera existir un valor de clave prima ria concordante. La

    combinacion de estas reglas aseguran que haya Integridad referencial.

    RegIa No. 11 - La regIa de la distribuci6n"EI sistema debe poseer un lenguaje de datos que pueda soportar que la base de datos estedistribuida fisicamente en distintos lugares sin que esto afecte 0 altere a los programas de

    aplicacion" .EI soporte para bases de datos distribuidas significa que una colecclon arbitraria de relaciones,bases de datos corriendo en una mezcla de distintas maquinas y distintos sistemas operativos yque este conectada por una variedad de redes, pueda funcionar como si estuviera disponiblecomo en una unica base de datos en una sola rnaquina,

    RegIa No. 12-RegIa de la no-subversion"Si el sistema tiene lenguajes de bajo nivel, estos lenguajes de ninguna manera pueden ser usadospara violar la integridad de las reglas y restricciones expresadas en un lenguaje de alto nivel (como

    SQl)".

    Algunos productos solamente construyen una interfaz relacional para sus bases de datos Norelacionales, 1 0 que hace posible la subversi6n (violaclon) de las restricciones de integridad. Estono debe ser permitido.

    ,

    Fundamentos de Bases de Datos (HAl.) Pagina 51

  • 5/10/2018 Libro Bases de Datos

    54/86

    Tomaremos el trabajo de (Galvez y Varios, 2(09), que indica que cuando se decide suministraralguna herramienta al usuario, y se pretende que esta sea util, no sirve hacer presunciones sobre10 que el usuario sabe 0 no sabe. La experiencia demuestra que sea como sea: el usuario no sabe.La persona que disefia una base de datos requiere tener un conocimiento sobre el ambito delproblema; cuando queremos representar ese conocimiento ante el usuario cormm se deben usarlas herramientas que permitan verificar el nuevo diseiio y que este sea transformable en unesquema relacional de BB.DD.Podemos desarrollar dicho objetivo con dos paradigmas diferentes: 1) la creacion directa de undiagrama Entldad-Relacion, con todos sus componentes y 2) la expresion de dependenciasfuncionales (normanzacton).

    Entidad-Relaci6n NormalizacionPermite ver graficamente y en un lenguaje EI concepto de determinante debe ser"cornun" los elementos de informacion y explicado de forma asimilable por elcomo estos se entrelazan. usuario, 10 cual es dificil si carecemos de uncontexto similar al que esta inmersoGraficamente podemos ver un volumen de La existencia de una enorme cantidad deinformacion suficiente. datos basicos. Por ejemplo 100 mas 0

    menos atributos, sin agrupacion alguna ni' . --. contexto grafico que los englobe hace muy

    dificil especificar cuales se relacionan concuales.

    EI usuario esta acostumbrado solo a La informacion presentada al usuario esmanejar cosas tangibles y no a expresar conocida y manejada, no esta ajena a losrelaciones de composicion entre objetos que el domina.intangibles.EI averiguar si un atributo existe 0 no, no Todos los atributos son resultado directoes nada facil, ya que un mismo atributo de la informacion.puede ser descrito con caracteristicasligeramente diferentes, 1 0 que puede hacerimposible su reconocimiento de formaautomaticaUna vez que se "finaliza" el diagrama, es Durante el proceso de desarrollolabor del diseiiador buscar la "mejor" "automaticamente" se esta produciendo elforma de traduccion del modelo modelo relacional asociado.conceptual al modelo logico (relacional).

    Algunas representaciones del modelo E-Rno tienen equivalente al relacional. --

    Fundamentos de Bases de Datos (RAf.) Pagina 52

  • 5/10/2018 Libro Bases de Datos

    55/86

    Se desea un disefio de base de datos que permita manejar la informacion de matricula de losestudiantes de la Universidad, al recabar los datos que sedetectaron semanejan son: Carnet Identidad, NombreAlumno,

    Sexo Edad Area Clase Nombre Clase- Seccion Periodo Nota Estado Catedratico Titulo Sede

    Relation UniversalNo. Identldad Nombre S. Ed. Area Clase Nombre Sec Per. Nota M. Prof. T Se.

    Clase99 08011980 Jose Peres M 24 IE PGl Progra.l A 12005 50 R Erick Lie Esp

    IF10l SWEduc A 75 A Pacheco LicGN103 Espai'lol C 90 A Maria lic.

    12 080119830 Ana Maria F 22 I.E. PGl Progra.1 A 12005 66 A Erick Lic EspPGl SWEduc B 97 A Pacheco LicMT201 Estadis.l C 85 A Rosa Lic.

    55 080119760 PedroL6pez M 28 Admin SG101 Socioloqiat A 12005 90 A Juana Lic. JutiMT10l Mate. 1 A 81 A Rosa LicMT201 Estadis.l B 60 A Larissa Lic

    40 080119750 Ale Batres F 30 IE. PGl Progra 1 B 12005 77 A Er'.ck Lic JutiPGl SWEduc A 75 A Pacheco LicMT201 Estadis.l C 90 A Rosa

    99 080119800 Jose Peres M 24 IE PGl Progr a. 1 A 22005 100 A Pacheco Lic EspIF102 BO A 75 A Verenice licMT10l Mate. 1 B 90 A Larissa Lic.r - - u - 080119830 Aoa Maria F 22 I.E. PG2 Progra.2 U 22005 75 A Ricardo Ing. EspIF102 BO B 75 A Ricardo logMT101 Mate. 1 A 55 R luz Lie.

    40 080119750 Ale Batres F 30 IE. PG2 Progra.2 U , 22005 30 U Ricardo log. JutiPGl BO A 75 A Vereoice LicPH101 Psicoloqia U 100 A Francis Lic.--'---__-_ _ .__-- -_-.--.- - ..-----.-~~ .-

    Fundamentos de Bases de Datos (lIAf.} Pagina 53

  • 5/10/2018 Libro Bases de Datos

    56/86

    Primera Forma Normal Una relacion esta en primera forma normal ( lNF) si y solosi todos los dominios simples

    subyacentes contienen solo valores atornlcos.No. Identldad Nombre S. Ed. Area Cine Nombre Sec Per. Nota M. Prof. T Sed

    Clue99 08011980 Jose Peres M 24 I.E PG1 Progra. 1 A 12005 50 R Erick Lie Esp99 08011980 Jose Peres M 24 I.E IF101 SWEdue A 12005 75 A Pacheco lie Esp99 08011980 Jose Peres M 24 I.E. GN103 Espaflol C 12005 90 A Maria Lie. Esp12 080119830 Ana Maria F 22 I.E. PG1 Progr a. 1 A 12005 66 A Erick lie Esp12 080119830 Ana Maria F 22 I.E. PG1 SWEduc B 12005 97 A PacheCo Lie Esp12 080119830 Ana Maria F 22 IE. MT201 Estadistica C 12005 85 A Rosa Lie. Esp

    155 080119760 PedroL6pez M 28 Admin. SG101 Sociologia1 A 12005 90 A Juana lie. Juti55 080119760 Pedro L6pez M 28 Admin MT101 Mate. 1 A 12005 81 A Rosa lie. Juti55 080119760 Pedro l6pez M 28 Admin MT201 Estadis.1 B 12005 60 A Larissa lie. Juti40 080119750 Ale Batres F 30 I.E PG1 progra. 1 B 12005 77 A Erick lie Juti40 080119750 Ale Batres F 30 I.E. PG1 SWEdue A 12005 75 A Pacheco lie Juti40 080119750 Ale Batres F 30 I.E. MT201 Estadis.1 C 12005 90 A Rosa Juti99 080119800 Jose Peres M 24 I.E. PG1 Progra. 1 A 22005 100 A Pacheco lie Esp99 080119800 Jose Peres M 24 I.E. IF102 BO A 22005 75 A Verenice Lie Juti99 080119800 Jose Peres M 24 I.E. MT101 Mate. 1 B 22005 90 A Larissa lie. Juti12 080119830 Ana Maria F 22 I.E PG2 Progra.2 U 22005 75 A Ricardo Ing. Esp12 080119830 Ana Maria F 22 I.E IF102 BO B 22005 75 A Ricardo Ing. Esp12 080119830 Ana Maria F 22 I.E. MT101 Mate. 1 A 22005 55 R luz lie. Esp40 080119750 Ale Batres F 30 I.E. PG2 Progra.2 U 22005 30 U Ricardo Ing. Juti40 060119750 Ale Batres F 30 I.E. PG1 BO A 22005 75 A Verenice lie Juti40 080119750 Ale Batres F 30 I.E PH101 Psicologia U 22005 100 A Francis lie. Juti

    Segunda Forma Normal "Una relacion esta en segunda forma normal (2NF) si y solo si esta en IN F y todos los atributos

    no clave dependen por completo de la clave primaria."Paso 1: Determinar las dependencies funcionales completas y to ttave primaria.Para simplificar la lectura, usaremos alias para cada uno de los atributos.No. ldentldad Nombre S. Ed. Area Cine Nombre Sec Per. Nota M. Prof. T Sed

    .ClaseA B C 0 E F G H I J K L M N a

    Recuerde que este proceso implica relacionar el valor sernantico de cada atributo con el resto deellos, por ejemplo: (ada vez que encuentre el nurnero de carnet siempre se encontrara a misma persona

    (nombre, sexo, edad). Si la respuesta es verdadera entonces se dice que Registro ~nombre, registro ~ edad

    Fundamentos de Bases de Datos (RAt) Pagina 54

  • 5/10/2018 Libro Bases de Datos

    57/86

    Cada vez que encuentre el numero de camet siempre se encontrara a misma persona(nombre, sexo, edad). Si la respuesta es verdadera entonces se dice que Registro -7nombre, registro -7 edad

    Cada vez que encuentre el nurnero de carnet siempre se encontrara la misma asignatura.Como la respuesta es negativa, se dice que no hay dependencia funcional entre estosatributos.

    Cada vez que se encuentre el codigo de asignatura se encontrara el mismo nombre deaslgnatura. Si la respuesta es verdadera entonces se dice que codAsignatura -7nombreAsignatura.

    "Continuar para cada atributo" Por ultimo, se debe determinar cual es el atributo 0 conjunto de atributos que hacen que

    cada registro de la relacion universal sea unico. AI ver la relacion universal podemosdetectar que el estudiante en un periodo determinado solamente puede matricular unasola vez la misma clase en la misma seccion. ("Suponemos que la persona puede cambiarde seccion por causa de un retiro y un agregado").

    AI final de realizar todas las combinaciones posibles, encontraremos las siguientes dependenciasfuncionales:

    A BA->CA-> 0A --> EA-> FG --> HA-->O{A,G,I,J} ->K{A,G,I,J} --> L{A,G,I,J} --> M{A,G,I,J} --> NM->N

    Puesto A y B son lIaves candidatas, se toma a A (nurnero registro) como lIave principal. Portanto se obvian las relaciones de B como determinante de los dernas atributos

    Paso 2:Realizar el diagrama de dependencias funcionales.

    R ( A, G, I, J , B, C, D, E, F, H, K, L, M, N, 0)

    Fundamentos de Bases de Datos (HAl.} Pagina 55

  • 5/10/2018 Libro Bases de Datos

    58/86

    Tomemos algunos puntos importantes:

    Fundamentos de Bases de Datos (RAt.) Pagina 58

    EI atributo Area dentro de estudiantes, puede ocasionar redundancia V anomalfas puesto quese repite para cada sub-grupo de estudiantes. Pero va que este atributo no dependiafuncionalmente de ningun otro no se detecto hasta ahora. (Para solventar esto habria quecrear una relaci6n denominada "Area" con los atributos de Cod_Area V NomArea.)

    Podemos ver que el modelo es ideal basados en las premisas de informaci6n establecidas,pero una mala visi6n del problema en general puede ocasionar que hagamos caso omiso amas informaci6n que la establecida en la relaci6n universal. Por ejemplo: sabemos que lasclases tienen unidades valorativas asociadas, por tanto debera agregarse a la tabla.

    En ocasiones puede encontrarse con atributos cuvo contenido semantico no tienen relaci6ncon otro. PQr tanto este deberia tratarse como una relaci6n aparte.

    A favor podriamos indicar, que en los casos anteriores u otros, es mucho mas facil identificardonde pueden crearse nuevas relaciones v/ o atributos dentro del esquema general.

    Diagrama Relacional ResultanteAREA

    1 CodArea-----Nombre

    CLASE1

    AlUMNO ,---- Claser: '\ 1 MATRICULA NombreRegistro ~ UVIdentidad Registro nNombre n Clase ~Sexo Seccion, CATEDRATICOEdad Periodo cod_Catedraticon r----CodArea Nota 1 nombreSede Estado, n titulo-, IdCatedratico ~

    COIllO cjcrcicio, puetlesr('(I/i~(/r /0 desrripcionindividual de coda 11/10 deIns t ablas.

  • 5/10/2018 Libro Bases de Datos

    59/86

    ..~. / Iff,'.A partir de la factura abajo presentada, desarrollar todo el proceso de normaltzacion para losconjuntos de informacion ahi presentados hasta lIegar a la descripcion individual de cada tabla.

    ,

    Client.NombreDirecciOnLimite CreditoDlas Cr6dto

    FechaTIpo Facture Contado 0

    CrMito 0

    LA BUENISIMA S. de R.L.ComsyaguelB M.D.CRTN:MAMA-B

    ~~====--====== '..-_=o~=======_~== -==_JFACTuRANd. f a c t u r a l. . . . . _ _ '

    Oalos Factura

    Fecha Vence:Cantldad O.scrlpcl6n Preclo unltarlo TOTAL

    .... - ---- _ .. - '---.--~-.----.~-------~SJbtaal .~ __... . __ ..Descuenlo Comercial 0.00% :Descuenlo Legal ____. _Pc-~ .. _ . _ . _ L ~ ~ ~ _ ~ : : : ' ~ . _ ~ _ - = - ~_ _ : _ _ _ _ : _ ~ .Observaclon.s I Impuestos 12.00% 1""-----:-;TOTAL L. " - ' 1

    I LOSpagos efectuados tuera de tiempo causaraiinteres de 2%.!"La fsctum es beneficio de todos, Exljele"

    Fundamentos de Bases de Datos (IIAI.) Pagina S9

  • 5/10/2018 Libro Bases de Datos

    60/86

    Fundamentos de Bases de Datos (HAl) Pagina 60

    CA PITU l.O IV : EL ESTANDAR DE MANEJO DE DATOS - SQL

    Ellenguaje de consulta estructurado (SQL) es un lenguaje de base de datos normalizado, utilizadopor los motores de bases de datos tanto para crear objetos como manipular la base de datos. Estacompuesto por comandos, clausulas, operadores V funciones de agregado. Estos elementos secombinan en las instrucciones para crear, actualizar V manipular las bases de datos.Como va se vio en las secci~nes anteriores, los lenguajes esenciales que cuenta cualquiermanejador de bases de datos son los DOL V los DML. A contlnuacion se presenta mayor detalle deellos.HistoriaLa historia de SQL empieza en 1974 con la definicion, por parte de Donald Chamberlin V de otraspersonas que trabajaban en los laboratorios de investigacion de IBM, de un lenguaje para laespecificacion de las caracteristicas de las bases de datos que adoptaban el modelo relacional.Este lenguaje se lIamaba SEQUEL (Structured English Query language) V se implemento en unprototipo lIamado SEQUEL-XRM entre 1974 V 1975. Las experimentaciones con ese prototipocondujeron, entre 1976 V 1977, a una revision del lenguaje (SEQUELj2), que a partir de esemomenta cambio de nombre por motivos legales, convirtiendose en SQL. EI prototipo (Svstem R),basado en este lenguaje, se adopt6 V utiliz6 internamente en IBM V 1 0 adoptaron algunos de susclientes elegidos.Gracias al exlto de este sistema, que no estaba todavia comercializado, tarnbien otras compafiiasempezaron a desarrollar sus productos relacionales basados en SQL.A partir de 1981, IBM cornenzo a entregar sus productos relacionales V en 1983 ernpezo a venderDB2.En el curso de los afios ochenta, numerosas compafiias (por ejemplo Oracle V Sybase, solo por citaralgunos) comercializaron productos basados en SQL, que se convierte en el estandar industrial dehecho por 1 0 que respecta a las bases de datos relacionales.En 1986, el ANSI adopto SQl (sustancialmente adopto el dialecto SQL de IBM) como estandar paralos lenguajes relacionales V en 1987 se transform6 en estandar ISO.Esta version del estandar va con el nombre de SQLj86. En los afios siguientes, este ha sufridodiversas revisiones que han conducido primero a la version SQLj89 V, posteriormente, a la actualSQL/92.

  • 5/10/2018 Libro Bases de Datos

    61/86

    BeneficiosEI hecho de tener un estandar definido por un lenguaje para bases de datos relacionales abrepotencial mente el camino a la intercomunicabilidad entre todos los productos que se basan en el.Desde el punto de vista practice, por desgracia las cosas fueron de otro modo. Efectivamente, engeneral cada productor adopta e implementa en la propia base de datos s610 el coraz6n dellenguaje SQL (ANSI SQL), extendiendolo de manera individual segun la propia visi6n que cada cualtenga del mundo de las bases de datos.

    Comando DescnpclonCREATE Utilizado para crear nuevas tablas, vistas e indicesDROP Empleado para eliminar tablas e indicesALTER Utilizado para modificar las tablas agregando campos 0 cambiando la

    definici6n de los campos.

    Cabe mencionar que este tipo de instrucciones depende directamente del SGBD que se esteutilizando. La mayoria en la actualidad cuenta con asistentes graficos que permiten realizar estasacciones de forma mas amigable; aunque el prop6sito de esta secci6n en brindarle unacercamiento a las primitivas usadas por estos asistentes.

    4.4.1 Creaclon /

    CREATETABLE tabla (carnpo lcarnpoz

    tipo_dato(tamano) Restricci6n,tipo _dato(ta rnano) Restricci6n,

    D e o qu i '11 adelo nte, paralos ejemplos usarenios lasMAYUSCULAS destacandolos elementos ClueSOilparte de 1 ( 1s in tax is 0elelemento cue quereniosdestocar.

    Su sintaxis es:

    CONSTRAINT .... Yell minuscule loselementos que dependendirectamente de SII basede datos.,

    Fundamentos de Bases de Datos {lW.] Pagina 61

  • 5/10/2018 Libro Bases de Datos

    62/86

    Parte Descripciontabla Esel nombre de la tabla que se va a crear.campol Esel nombre del campo0e los campos que se van a crear en la nuevacampo2 tabla. Lanueva tabla debe contener, al menos, un campo.tipo dato Esel tipo de datos de campo en la nueva tabla. (Ver Tipos de Datos)tamafio Esel tamafio del campo 5010seaplica para campos de tipo texto.Restricci6n Esuna ctausula es opcional V permite realizar restricciones de dominio

    sobre el atributo. -CONSTRAINT Restricciones de integridad referencial vlo dominio

    Endonde:

    4.4.2 Modificaci6n /

    Modifica el disefio de una tabla ya existente, se pueden modificar los campos 0 los indicesexistentes. Su sintaxis es:ALTERTABLE tabla {

    ADD {COLUMN tipo de campo [(tamano)] [CONSTRAINT]}6

    DROP{COLUMN campo I CONSTRAINTnombre del indice}Endande:

    Parte Descripciontabla Esel nombre de la tabla que se desea modificar.campo Esel nombre del campo que se va a afiadlr 0 eliminar. --tipo Esel tipo de campo que seva a afiadlr.tamafio EItamafio del campo que seva a afiadir (s610para campos de texto).indice Esel nombre del indice del campo (cuando se crean campos) a el nombre

    del indice de la tabla que se desea eliminar.indice Esel nombre del indice del campo multicampo (cuando se crean campos) 0multicampa el nombre del indice de la tabla que se desea eliminar.

    Y las operaciones:Operaclon DescripcienADD Seutilize-para afiadir un nuevo campo a la taCOLUMN tipo de campo y opcionalmente el tamafio (ADD Se utiliza para agregar u~ indice de multicamDROP Seutiliza para borrar un campo. SeespecificCOLUMN campo.DROP Seutiliza para eliminar un indice. Seespecifi

    indice a continuaci6n de~pal~bra res~rvad

    bla, indicando el nombre, elpara campos de tipo texto).pas0de un unko campo.a unicamente el nombre delca unicamente el nombre dela CONSTRAINT.

    Fundamentos de Bases de Datos (RAI.) Pagina 62

  • 5/10/2018 Libro Bases de Datos

    63/86

    4.4.3 Borrado /"/

    Elimina completamente una tabla de la base de datos con toda su informacion.DROPTABLE tabla

    En donde:

    Parte Descrlpclontabla Esel nombre de la tabla que se desea modificar.

    Accion Comando DescripcionObtener SElECT UtiJizado para consultar registros de la base de datos que

    satisfagan un criterio determinadoGuardar INSERT Utilizado para cargar lotes de datos en la base de datos en una

    (mica operacion.Actualizar UPDATE UtiJizado para modificar los valores de los campos y registros

    especificadosBorrar DElETE Utilizado para eliminar registros de una tabla de una base de

    datos

    4.5.1 Selecci6n :Las consultas de seleccion se utiJizan para indicar al motor de datos que devuelva informacion delas bases de datos, esta informacion es devuelta en forma de conjunto de registros "virtuales" queson devueltos por el gestor.La sintaxis baslca de una consulta de seleccion es la siguiente:

    SElECT campos FROM tabla;En donde campos es la lista de campos que se deseen recuperar y tabla es el origen de los mismos,por ejemplo la consulta mas simple que soporta cualquier tabla:

    SELECT* FROM clientes;SELECTnombre, identidad FROM clientes; ,

    En donde el asterisco (*) representa la totalidad de campos que posee esa tabla, sino debeespecificarse el nombre de todos y cada uno de los atributos que se quiere consultar noimportando su orden.

    Fundamentos de Bases de Datos (HAl.) Pagina 63

  • 5/10/2018 Libro Bases de Datos

    64/86

    Existen adernas predicados, que se incluye entre el SELECTy el primer nombre del campo arecuperar, los posibles predicados son:

    Predicado DescrlpclonALL Devuelve todos los campos de la tablaTOP Devuelve un determinado numero de registros de la tablaDISTINCT Omite los registros cuyos campos seleccionados coincidan totalmenteDISTINCTROW Omite los registros duplicados basandose en la totalidad del registro y no solo enlos campos seleccionados.Alias Renombra los atributos de forma "virtual"

    All: Si no se incluye ninguno de los predicados se asume ALL. EI Motor de base de datosselecciona - todos los registros que cumplen las condiciones de la instruccion SQL. No seconveniente abusar de este predicado ya que obligamos al motor de la base de datos aanalizar la estructura de la tabla para averiguar los campos que contiene, es mucho masrapido indicar ellistado de campos deseados.

    SElECT ALL FROM empleados;SELECT* FROM empleados;

    TOP: Devuelve un cierto numero de registros que entran entre al principio 0 al final de unrango especificado. Supongamos que queremos recuperar los nombres de los 25 primerosestudiantes del curso 1994:

    SELECTTOP 25 nombre, ape/lido FROM estudiantesRecuerde que una tabla es un conjunto sin una ordenaci6n espedfica, por tanto la consultadevolvera un conjunto arbitrario de 25 registros de la tabla Estudiantes. Si se desea obtenerun resultado asociado a alguna logic a de ordenacion debera de usarse una clausula especialdenominada ORDER BY que se vera mas adelante.Cabe mencionar que esta instruccion no es reconocida por igual en los SGBD, por ejemplo enPostgres se denomina LIMIT y se encuentra al final de una lnstruccion SQL.

    DISTINCT: Omite los registros que contienen datos duplicados en los campos seleccionados .Para que los valores de cada campo listado en la instruccion SElECT se incluyan en la consultadeben ser unicos. Por ejemplo, varios empleados Iistados en la tabla Empleados pueden tenerel mismo apellido. Si dos registros contienen L6pez en el campo Apellido, la siguienteinstrucci6n SQL devuelve un unlco registro:

    , SElECT DISTINCT ape/lido FROM empleados;Con otras palabras el predicado DISTINCT devuelve aquellos registros cuyos campos indicadosen la clausula SElECT posean un contenido diferente. EI resultado de una consulta que utilizaDISTINCT no es actualizable y no refleja los cambios subsiguientes realizados por otrosusuarios.

    Fundamentos de Bases de Datos (RAt.) Pagina 64

  • 5/10/2018 Libro Bases de Datos

    65/86

    DISTINCTROW: Devuelve los registros diferentes de una tabla; a diferencia del predicadoanterior que s610 se fijaba en el contenido de los campos seleccionados, este 10 hace en elcontenido del registro completo independientemente de los campo indicados en la clausulaSELECT.

    SElECT DISTINCTROW apellido FROM empleados;Si la tabla empleados contiene dos registros: Antonio L6pez y Marta L6pez el ejemplo delpredicado DISTINCT devuelveun unico registro con el valor L6pez en el campo Apellido yaque busca no duplicados en dicho campo. Este ultimo ejemplo devuelve dos registros conel valor L6pez en el apellido ya que se buscan no duplicados en el registro completo.

    - Alias: En determinadas circunstancias es necesario asignar un nombre a alguna columnadeterminada de un conjunto devuelto, otras veces por simple capricho 0 por otrascircunstancias. Para resolver todas elias tenemos la palabra reservada AS que se encarga deasignar el nombre que deseamos a la columna deseada. Tornado como referencia el ejemploanterior podemos hacer que la columna devuelta por la consulta, en lugar de lIamarse apellido(igual que el campo devuelto) se lIame Empleado. En este caso procederiamos de la siguienteforma:

    SElECT ape/lido AS empleado FROM empleados;La instrucci6n SELECT permite adernas combinarse con una serie clausulas para producirresultados distintos.

    Clau5ula Descripci6nFROM Utilizada para especificar la tabla 0 tablas de las cuales se van a seleccionar los

    registrosWHERE Utilizada para especificar las condiciones que deben reunir los registros que se

    van a seleccionarGROUP BY Util izada para separar los registros seleccionados en grupos especificosHAVING Utilizada para expresar la condici6n que debe satisfacer cada g