Bibliografa: Fundamentos de sistemas de bases de datos Ramez Elmasri y Shamkant B. Navathe Fundamentos de bases de datos Henry F. y Abraham Silverschatz Sistemas de Bases de Datos. Diseo, Implementacin y Admn Peter Rob y Carlos Coronel Modelos de datos Alto nivel o Conceptuales De implementacin o Lgicos Bajo nivel o Fsicos El Modelo Relacional cae dentro de la clasificacin de Modelos de Datos de Implementacin o Lgicos. El objetivo es llevar nuestro modelo entidad-relacin inicial al servidor de Bases de Datos Proceso del diseo de Bases de Datos Minimundo Recoleccin de anlisis de requerimientos Diseo Conceptual Diseo Lgico Diseo Fsico Modelo Entidad-Relacin Modelo Relacional Independiente Del SGBD Especfico para Cada SGBD LUGARES_DEPTOS NUMEROD LUGARD 1 Tlaquepaue 4 Guadalajara 5 Zapopan 5 Zapotlanejo 5 Guadalajara PROYECTO NOMBREP NUMEROP LUGARP NUMD ProductoX 1 Guadalajara 5 ProductoY 2 Zapotlanejo 5 ProductoZ 3 Tlaquepaque 5 Automatizacin 10 Guadalajara 4 Reorganizacin 20 Tlaquepaque 1 NuevasPrestaciones 30 Zapopan 4 DEPARTAMENTO NOMBRED NUMEROD NSSGTE FECHAINICGTE Investigacin 5 333445555 22-MAY-78 Administracin 4 987654321 01-ENE-85 Direccin 1 888665555 19-JUN-71 TRABAJA_EN NSS NUMP HORAS 123456789 1 32.5 123456789 2 7.5 666884444 3 40.0 453453453 1 20.0 453453453 2 20.0 333445555 2 10.0 333445555 3 10.0 333445555 10 10.0 333445555 20 10.0 999887777 30 30.0 999887777 10 10.0 987987987 10 35.0 987987987 30 5.0 987987987 30 20.0 987987987 20 15.0 888665555 20 NULO El Modelo Relacional fue introducido en 1970 por Ted Codd (IBM). Representa la BD como una Coleccin de Relaciones. Una Relacin se visualiza como una tabla de valores. Conceptos bsicos del Modelo Relacional LUGARES_DEPTOS NUMEROD LUGARD 1 Tlaquepaue 4 Guadalajara 5 Zapopan 5 Zapotlanejo 5 Guadalajara PROYECTO NOMBREP NUMEROP LUGARP NUMD ProductoX 1 Guadalajara 5 ProductoY 2 Zapotlanejo 5 ProductoZ 3 Tlaquepaque 5 Automatizacin 10 Guadalajara 4 Reorganizacin 20 Tlaquepaque 1 NuevasPrestaciones 30 Zapopan 4 DEPARTAMENTO NOMBRED NUMEROD NSSGTE FECHAINICGTE Investigacin 5 333445555 22-MAY-78 Administracin 4 987654321 01-ENE-85 Direccin 1 888665555 19-JUN-71 TRABAJA_EN NSS NUMP HORAS 123456789 1 32.5 123456789 2 7.5 666884444 3 40.0 453453453 1 20.0 453453453 2 20.0 333445555 2 10.0 333445555 3 10.0 333445555 10 10.0 333445555 20 10.0 999887777 30 30.0 999887777 10 10.0 987987987 10 35.0 987987987 30 5.0 987987987 30 20.0 987987987 20 15.0 888665555 20 NULO Cada Fila representa una coleccin de valores de datos relacionados entre s. Dichos valores son hechos del mundo real. El nombre de la tabla y columnas ayudan a interpretar su significado. Conceptos bsicos del Modelo Relacional ESTUDIANTE Nombre NSS TelParticular Direccin TelOficina Edad Prom Benjamn Baeza 305-61-2435 36-46-23-89 Balboa 2918 Nulo 10 3.21 Karla Armenta 381-62-1245 36-56-72-35 Maz 125 Nulo 18 2.89 Diego Domnguez 422-11-2320 36-51-28-74 Espina 3452 36-22-11-67 25 3.53 Carlos Corts 489-22-1100 38-56-23-45 Libertad 265 36-45-79-34 28 3.25 Los elementos del modelo relacional son llamados Relaciones, Tuplas y Atributos. Tradicionalmente, en las aplicaciones DBMS (SGBD) son conocidos como tablas, registros (o filas) y campos (o columnas). Atributos Nombre de la relacin Tuplas Conceptos bsicos del Modelo Relacional ESTUDIANTE Nombre NSS TelParticular Direccin TelOficina Edad Prom Benjamn Baeza 305-61-2435 36-46-23-89 Balboa 2918 Nulo 10 3.21 Karla Armenta 381-62-1245 36-56-72-35 Maz 125 Nulo 18 2.89 Diego Domnguez 422-11-2320 36-51-28-74 Espina 3452 36-22-11-67 25 3.53 Dominio: Conjunto de valores atmicos, es decir: no indivisibles: Nmeros de Seguro Social, Calificaciones, Edades, Nmeros Telefnicos, etc. Debe tener un Nombre, Tipo de Datos y Formato. Grado de una Relacin: Nmero de atributos n del esquema R. Cardinalidad de una Relacin: Nm. de tuplas que la forman. Cardinalidad de la relacin: 3 El atributo NSS cuyo dominio son los nmeros del seguro social Grado de la relacin: 7 Nombre de La relacin Conceptos bsicos del Modelo Relacional Esquema de relacin : R(A 1 , A 2 , ..., A n ) Tupla de grado n : t=<v 1 ,v 2 , ..., v n > Valor de t para el atributo A i : t[A i ] Dominio de A i : dom(A i ) Subtupla de t : t[A 1 , A 2 , ..., A z ] Ejemplo: Esquema de relacin : Clientes(nombreCli, dniCli, domicilio) Dominio de dniCli : Nmeros enteros postivos Tupla : t=<Johnson, 1, La Reina n7> Valor de tupla : t[nombreCli] Subtupla : t[nombreCli, domicilio] Notacin del Modelo Relacional Un Esquema de Relacin R se compone de un nombre de relacin R, y una lista de atributos A 1 , A 2 A 3 , .., A n ; cada uno de los cuales es el nombre de un papel desempeado por un dominio D o dom(A i ). Un esquema de relacin se define dentro del catlogo. Un Ejemplar de Relacin o relacin r(R) es un subconjunto del producto cartesiano de los dominios que definen a R. Cambia constantemente con el tiempo. Esquemas y Ejemplares de Relacin Un Esquema de Relacin es relativamente esttico (no cambia mucho con el tiempo), mientras que un Ejemplar de Relacin en un momento dado refleja el estado actual de la relacin. Es posible que varios atributos tengan el mismo dominio, siempre y cuando indiquen diferentes papeles (o roles) como en los atributos TelParticular y TelOficina de la siguiente relacin: Esquemas de Relacin ESTUDIANTE Nombre NSS TelParticular Direccin TelOficina Edad Benjamn Baeza 305-61-2435 36-46-23-89 Balboa 2918 Nulo 10 Karla Armenta 381-62-1245 36-56-72-35 Maz 125 Nulo 18 Diego Domnguez 422-11-2320 36-51-28-74 Espina 3452 36-22-11-67 25 Un Ejemplar de Relacin o relacin r(R) es un subconjunto del producto cartesiano de los dominios que definen a R: r(R) dom(A 1 ) X dom(A 2 ) X X dom(A n ) Ejemplares de Relacin r1 A 1 A 2 a d c e r2 A 1 A 2 b d c d A 1 A 2 a d a e b d b e c d c e r3 A 1 A 2 a e b e Dado el esquema de relacin R(A 1 ,A 2 ), donde los dominios de los atributos A 1 y A 2 son: dom(A 1 ) = {a,b,c} dom(A 2 ) = {d,e} El producto cartesiano de los dominios que definen a R { dom(A 1 ) X dom(A 2 ) } dara: Los ejemplares de relacin: r 1 (R), r 2 (R) y r 3 (R): Cumplen con la definicin anterior, pues son todos subconjuntos de los dominios que definen a R El producto cartesiano se refiere a todas las combinaciones posibles que se pueden presentar con los dominios de R Ejemplares de Relacin ESTUDIANTE Nombre NSS TelParticular Direccin TelOficina Edad Benjamn Baeza 305-61-2435 36-46-23-89 Balboa 2918 Nulo 10 Karla Armenta 381-62-1245 36-56-72-35 Maz 125 Nulo 18 Diego Domnguez 422-11-2320 36-51-28-74 Espina 3452 36-22-11-67 25 Carlos Corts 489-22-1100 38-56-23-45 Libertad 265 36-45-79-34 28 Sobre las Tuplas Por ser una relacin un conjunto de tuplas, se infiere que cada tupla es diferente. Una Relacin se define como un conjunto de tuplas. Ya que en la teora matemtica de conjuntos los elementos no estn ordenados, las tuplas de una relacin no tienen orden especfico. En el modelo Relacional no se admiten atributos multivaluados o atributos compuestos. Una Tupla se define como una lista ordenada de valores, as que el orden de los valores de una tupla s es importante. ESTUDIANTE Nombre NSS TelParticular Direccin TelOficina Edad Benjamn Baeza 305-61-2435 36-46-23-89 Balboa 2918 Nulo 10 Karla Armenta 381-62-1245 36-56-72-35 Maz 125 Nulo 18 Diego Domnguez 422-11-2320 36-51-28-74 Espina 3452 36-22-11-67 25 Carlos Corts 489-22-1100 38-56-23-45 Libertad 265 36-45-79-34 28 Sobre los atributos Esquema de BD Relacional NUMEROD LUGARD Un esquema de base de datos relacional es un conjunto de esquemas de relaciones y un conjunto de restricciones de integridad. NSSE NUMP HORAS NOMBREP NUMEROP LUGARP NUMD NSS NOMBRE_DEPENDIENTE SEXO FECHAN PARENTESCO NOMBREP INIC APELLIDO NSS FECHAN DIRECCION SEXO SALARIO NSSUPER ND NOMBRED NUMEROD NSSGTE FECHAINICGTE EMPLEADO DEPARTAMENTO LUGARES_DEPTOS PROYECTO TRABAJA_EN DEPENDIENTE Conjunto de esquema de relaciones. Falta definir el conjunto de restricciones de integridad LUGARD NUMEROD HORAS NUMP NSSE NUMD LUGARP NUMEROP NOMBREP PARENTESCO FECHAN SEXO NOMBRE_DEPENDIENTE NSS SEXO DIRECCION FECHAN NSS APELLIDO INIC ND NSSUPER SALARIO NOMBREP FECHAINICGTE NSSGTE NUMEROD NOMBRED EMPLEADO DEPARTAMENTO LUGARES_DEPTOS PROYECTO TRABAJA_EN DEPENDIENTE Esquema de BD Relacional Los esquemas de bases de datos son almacenados en el catlogo del SGBD Ejemplar de una BD Relacional EMPLEADO NOMBREP INIC APELLIDO NSS FECHAN DIRECCION SEXO SALARIO NSSUPER ND Jos B Silva 123456789 09-ENE-55 Fresno 731, Guadalajara M 30000 333445555 5 Federico T Vizcarra 333445555 08-DIC-45 Valle 638, Len M 40000 888665555 5 Alicia J Zapata 999887777 19-JUL-58 Castillo 3321, Monterrey F 25000 987654321 4 Jazmn S Valds 987654321 20-JUN-31 Bravo 291, Guadalajara F 43000 888665555 4 Ramn K Nieto 666884444 15-SEP-52 Independencia 35, Len M 38000 333445555 5 Josefa A Esparza 453453453 31-JUL-62 Cancin 1450, Zapopan F 25000 333445555 5 Ahmed V Jabbar 987987987 29-MAR-59 Dallas 980, Tlaquepaque M 25000 987654321 4 Jaime E Botello 888665555 10-NOV-27 Sorgo 450, Zapopan M 55000 Nulo 1 LUGARES_DEPTOS NUMEROD LUGARD 1 Tlaquepaue 4 Guadalajara 5 Zapopan 5 Zapotlanejo 5 Guadalajara El ejemplar de BD cambia constantemente con el tiempo. DEPENDIENTE NSS NOMBRE_DEPENDIENTE SEXO FECHAN PARENTESCO 333445555 Alicia F 05-ABR-76 HIJA 333445555 Teodoro M 25-OCT-73 HIJO 333445555 Jobita F 03-MAY-48 CONYUGE 987654321 Abdiel M 29-FEB-32 CONYUGE 123456789 Miguel M 01-ENE-78 HIJO 123456789 Alicia F 31-DIC-78 HIJA 123456789 Elizabeth F 05-MAY-57 CONYUGE PROYECTO NOMBREP NUMEROP LUGARP NUMD ProductoX 1 Guadalajara 5 ProductoY 2 Zapotlanejo 5 ProductoZ 3 Tlaquepaque 5 Automatizacin 10 Guadalajara 4 Reorganizacin 20 Tlaquepaque 1 NuevasPrestaciones 30 Zapopan 4 DEPARTAMENTO NOMBRED NUMEROD NSSGTE FECHAINICGTE Investigacin 5 333445555 22-MAY-78 Administracin 4 987654321 01-ENE-85 Direccin 1 888665555 19-JUN-71 TRABAJA_EN NSS NUMP HORAS 123456789 1 32.5 123456789 2 7.5 666884444 3 40.0 453453453 1 20.0 453453453 2 20.0 333445555 2 10.0 333445555 3 10.0 333445555 10 10.0 333445555 20 10.0 999887777 30 30.0 999887777 10 10.0 987987987 10 35.0 987987987 30 5.0 987987987 30 20.0 987987987 20 15.0 888665555 20 NULO Restricciones de Dominio. El valor de cada atributo A debe ser un valor atmico del dominio dom(A) para ese atributo. Restricciones de clave. Debido a que en un conjunto todos los elementos son diferentes, todas las tuplas en una relacin son diferentes. Una Clave est formada por uno o ms atributos y describe a una tupla unvocamente (le da carcter de unicidad). Restriccin de Integridad de Entidades. Puesto que una clave primaria identifica unvocamente a una relacin, no puede ser nula. Tipos de Restricciones Restriccin de Integridad Referencial. Una tupla en una relacin que haga referencia a otra relacin deber referirse a una tupla existente en esa relacin. Restricciones de Integridad Semntica (opcionales). Se imponen a partir de determinadas reglas de negocios, por ejemplo: Un empleado no debe exceder el salario de un supervisor. Tipos de Restricciones (cont.) Restricciones de clave NUMEROD LUGARD NSSE NUMP HORAS NOMBREP NUMEROP LUGARP NUMD NSS NOMBRE_DEPENDIENTE SEXO FECHAN PARENTESCO NOMBREP INIC APELLIDO NSS FECHAN DIRECCION SEXO SALARIO NSSUPER ND NOMBRED NUMEROD NSSGTE FECHAINICGTE EMPLEADO DEPARTAMENTO LUGARES_DEPTOS PROYECTO TRABAJA_EN DEPENDIENTE Cada uno de los esquemas de relacin que conforman el esquema de BD debe tener uno o ms atributos claves, que sirven para identificar de manera nica a una tupla. Tipos de Claves Superclave. Es un conjunto de uno o ms atributos que tomados colectivamente, permiten identificar de manera nica a una entidad. Clave Candidata. Una superclave mnima, tal que no contenga otras superclaves. Tipos de Claves Clave Primaria. Clave candidata que es elegida para identificar una entidad, buscando que los atributos que la conforman nunca cambien. Clave Fornea. Se dice de la clave primaria de la cual dependen otras entidades (como las entidades dbiles). Clave Parcial. En el caso de una entidad dbil, es un atributo que se utiliza como discriminador y que junto con la clave fornea forma la clave principal. NUM_ECO MATRICULA SERIE_MOTOR MARCA MODELO CHOFER Tcnicamente, el conjunto de todos los atributos forman una superclave, porque le dan unicidad a la relacin Pero igual cumplen los siguientes subconjuntos: num_eco, matricula; maticula, serie_motor; serie_motor, marca; Etc,etc. VEHICULO SuperClaves Claves Candidatas y Claves Primarias En VEHICULO se pueden encontrar dos superclaves mnimas (no se pueden dividir en otras superclaves): matricula y serie_motor Como ambas describen unvocamente a la entidad se les denomina claves candidatas Es probable que el atributo matricula cambie con el tiempo (como en un robo de placas), se elige pues el atributo serie_motor como clave primaria (o clave principal). NUM_ECO MATRICULA SERIE_MOTOR MARCA MODELO CHOFER VEHICULO Claves Forneas El atributo chofer se puede considerar como clave fornea, si en lugar de escribir nombres de personas como valores, se indican cdigos que hacen referencia al nombre del chofer (o nmero del seguro social) en otra relacin. NUM_ECO MATRICULA SERIE_MOTOR MARCA MODELO CHOFER VEHICULO NOMBREP INIC APELLIDO NSS FECHAN DIRECCION SEXO SALARIO NSSUPER ND EMPLEADO Son aquellas que no describen unvocamente a una relacin. La relacin DEPENDIENTE no cuenta con una clave primaria o principal propia. Su clave principal la forman: la clave fornea NSS y la clave parcial NOMBRE_DEPENDIENTE. NOMBRE_DEPENDIENTE por s solo no puede ser clave principal puesto que sus valores se pueden repetir. NOMBREP INIC APELLIDO NSS FECHAN DIRECCION SEXO SALARIO NSSUPER ND EMPLEADO NSS NOMBRE_DEPENDIENTE SEXO FECHAN PARENTESCO DEPENDIENTE Clave parcial o atributo discriminador Claves Parciales Clave fornea Restriccin de Integridad Referencial LUGARD NUMEROD HORAS NUMP NSSE NUMD LUGARP NUMEROP NOMBREP PARENTESCO FECHAN SEXO NOMBRE_DEPENDIENTE NSS SEXO DIRECCION FECHAN NSS APELLIDO INIC ND NSSUPER SALARIO NOMBREP FECHAINICGTE NSSGTE NUMEROD NOMBRED EMPLEADO DEPARTAMENTO LUGARES_DEPTOS PROYECTO TRABAJA_EN DEPENDIENTE Vincula a 2 relaciones, mediante una llave fornea en una relacin que apunta a una llave primaria en otra relacin Operaciones del Modelo Relacional Insertar Eliminar Modificar Seleccionar Proyectar Reunin Unin Interseccin Diferencia Producto Cartesiano Teora de Conjuntos Algebra Relacional Operaciones de Actualizacin Operaciones de BD Relacionales Propias del Sistema Gestor de Base de Datos (SGBD) Operaciones de Actualizacin Insertar.- Aade una nueva tupla o registro en una relacin de Base de Datos. Eliminar.- Elimina una tupla o registro de una relacin en una Base de datos. Modificar.- Modifica uno o ms atributos de una relacin en una BD. Equivale en realidad a la combinacin de las operaciones Eliminar e Insertar. Operaciones de Actualizacin PROYECTO NOMBREP NUMEROP LUGARP NUMD ProductoX 1 Guadalajara 5 ProductoY 2 Zapotlanejo 5 ProductoZ 3 Tlaquepaque 5 Automatizacin 10 Guadalajara 4 NuevasPrestaciones 30 Zapopan 4 Insertar.- proporciona una lista de atributos para una nueva tupla t que se ha de insertar en la relacin R. No deber violar ninguno de los cuatro tipos de restricciones (de Dominio, de Clave, Integridad de Entidades, Integridad Referencial). Insertar < ProductoW, 3, Zapotlanejo, 4 > Insertar < ProductoH, 4, Guadalajara, 5 > Es aceptada Viola la restriccin de clave, pues ya existe otra tupla con el mismo valor de NUMEROP NOMBREP INIC APELLIDO NSS SEXO SALARIO NSSUPER ND Jos B Silva 123456789 M 30000 333445555 5 Federico T Vizcarra 333445555 M 40000 888665555 5 Josefa A Esparza 453453453 F 25000 333445555 5 Ahmed V Jabbar 987987987 M 25000 987654321 4 Jaime E Botello 888665555 M 55000 Nulo 1 Eliminar.- Solo puede violar la integridad referencial, si las claves forneas (externas) de otras tuplas de la BD hacen referencia a la tupla que se ha de eliminar. Eliminar la tupla EMPLEADO con NSS = 123456789 No es aceptable pues dos tuplas de TRABAJA_EN hacen referencia a esta tupla EMPLEADO TRABAJA_EN Operaciones de Actualizacin NSS NUMP HORAS 123456789 1 32.5 123456789 2 7.5 987987987 30 5.0 987987987 20 15.0 888665555 20 NULO NOMBREP INIC APELLIDO NSS SEXO SALARIO NSSUPER ND Jos B Silva 123456789 M 30000 333445555 5 Federico T Vizcarra 333445555 M 40000 888665555 5 Josefa A Esparza 453453453 F 25000 333445555 5 Ahmed V Jabbar 987987987 M 25000 987654321 4 Jaime E Botello 888665555 M 55000 Nulo 1 Modificar.- Modificar un atributo que sea clave primaria puede violar las restricciones de integridad, puesto que equivale a eliminar una tupla e insertar una nueva en su lugar. Modificar un atributo que no sea clave primaria o clave externa (fornea) casi nunca causa problemas, solo hay que constatar que sea del tipo de datos correcto y que est en el dominio. Modificar la tupla EMPLEADO con NSS = 123456789 Cambindolo a 987654321 Viola la Integridad Referencial, pues en la tabla TRABAJA_EN hay una clave externa que hace referencia a NSS. EMPLEADO TRABAJA_EN Operaciones de Actualizacin NSS NUMP HORAS 123456789 1 32.5 123456789 2 7.5 987987987 30 5.0 987987987 20 15.0 888665555 20 NULO Preguntas: