Documentos de Académico
Documentos de Profesional
Documentos de Cultura
La estructura relacional Restricciones de integridad Lenguajes de Consulta Algebra relacional Paso de Diagrama E/R a Modelo Relacional
Tupla
Tema 3 pgina 2
En general, Trabajadores contendr nicamente un subconjunto del conjunto de todas las filas posibles que es D1xD2xD3xD4xD5. Cualquier tabla de n columnas debe ser un subconjunto de D1xD2x...xDn-1xDn.
Para describir la estructura de una relacin de forma rpida, usaremos la siguiente notacin:
Trabajadores(id_trabajador,nombre,trf_hr,tipo_de_oficio,id_supv) Edificios(id_edificio, dir_edificio, tipo, nivel_calidad, categoria) Asignaciones(id_trabajador, id_edificio, fecha_inicio, num_dias) Oficios(tipo_de_oficio, prima, horas_por_sem)
Nicols Marn Ruiz, Mara Jos Martn Bautista Departamento de Ciencias de la Computacin e Inteligencia Artificial Universidad de Granada
Tema 3 pgina 3
Algunas veces no se conoce el valor de un atributo para una determinada tupla. En esos casos a ese atributo de esa tupla se le asigna un valor nulo.
Nicols Marn Ruiz, Mara Jos Martn Bautista Departamento de Ciencias de la Computacin e Inteligencia Artificial Universidad de Granada
Tema 3 pgina 4
Superclave: Cualquier conjunto de atributos que identifica unvocamente a cada tupla de una relacin.
Por ejemplo, en la relacin Trabajadores, el conjunto de atributos {id_trabajador, nombre} identifica unvocamente cada tupla. Sin embargo, no es minimal y no puede
Nicols Marn Ruiz, Mara Jos Martn Bautista Departamento de Ciencias de la Computacin e Inteligencia Artificial Universidad de Granada
Tema 3 pgina 5
Cuando hay ms de una clave candidata, hay que seleccionar una como principal. Esta clave recibe el nombre de clave primaria de la tabla.
Completamos la notacin para describir una relacin, subrayando los atributos que forman su clave primaria:
Trabajador(id_trabajador, nombre, trf_hr, tipo_de_oficio, id_supv) Edificios(id_edificio, dir_edificio, tipo, nivel_calidad, categoria) Asignaciones(id_trabajador, id_edificio, fecha_inicio, num_dias) Oficios(tipo_de_oficio, prima, horas_por_sem)
Nicols Marn Ruiz, Mara Jos Martn Bautista Departamento de Ciencias de la Computacin e Inteligencia Artificial Universidad de Granada
Tema 3 pgina 6
Clave externa (ajena): conjunto de atributos en una relacin que es una clave en otra (o incluso en la misma) relacin.
Podemos ver una clave externa como un conjunto de atributos de una relacin cuyos valores en las tuplas deben coincidir con valores de la clave primaria de las tuplas de otra relacin.
Tema 3 pgina 7
Integridad de entidad
No se debe permitir que una entidad sea representada en la base de datos si no se tiene una informacin completa de los atributos que son claves de la entidad-> la clave primaria, o una parte de la misma, no puede ser un valor nulo.
Un atributo que forma parte de la clave primaria de una tupla en una relacin no puede tener un valor nulo.
Nicols Marn Ruiz, Mara Jos Martn Bautista Departamento de Ciencias de la Computacin e Inteligencia Artificial Universidad de Granada
Tema 3 pgina 8
Integridad referencial:
Una base de datos en la que todos los valores no nulos de una clave externa referencian valores reales de la clave referenciada en la otra relacin cumple la regla de integridad referencial:
Toda clave externa puede o ser nula, o su valor debe corresponderse con el valor real de una clave en la relacin de referencia.
Nicols Marn Ruiz, Mara Jos Martn Bautista Departamento de Ciencias de la Computacin e Inteligencia Artificial Universidad de Granada
Tema 3 pgina 9
Lenguajes de consulta
Un lenguaje de consulta es un lenguaje que permite al usuario solicitar informacin de la base de datos.
En un lenguaje procedimental, el usuario da instrucciones al sistema para que realice una secuencia de operaciones en la base de datos para calcular el resultado deseado.
En un lenguaje no procedimental, el usuario describe la informacin deseada sin dar un procedimiento especfico para obtener esa informacin.
Nicols Marn Ruiz, Mara Jos Martn Bautista Departamento de Ciencias de la Computacin e Inteligencia Artificial Universidad de Granada
Tema 3 pgina 10
Algebra relacional
Manipulan relaciones. Usan una o dos relaciones existentes para crear una relacin nueva.
Esta nueva relacin puede entonces usarse como entrada para una nueva operacin.
El lgebra relacional consta de las siguientes nueve operaciones: unin, interseccin, diferencia, producto,
Nicols Marn Ruiz, Mara Jos Martn Bautista Departamento de Ciencias de la Computacin e Inteligencia Artificial Universidad de Granada
Tema 3 pgina 11
Traduccin de un TIPO DE ENTIDAD FUERTE Sea E un tipo de entidad fuerte con atributos a1, a2, ..., an. Representamos dicho tipo por medio de una tabla llamada E, donde cada tupla es una ocurrencia del tipo y est caracterizada por n columnas distintas, una por cada atributo.
Nicols Marn Ruiz, Mara Jos Martn Bautista Departamento de Ciencias de la Computacin e Inteligencia Artificial Universidad de Granada
Tema 3 pgina 12
Traduccin de un TIPO DE ENTIDAD DBIL Sea A un tipo de entidad dbil con atributos a1, a2, ..., an. Sea B el tipo de entidad fuerte del que A depende, y sean b1, b2, ..., bm los atributos de la clave primaria de B. Representamos A por una tabla con una columna por cada atributo del conjunto siguiente: {a1,a2, ..., an}{b1, b2, ..., bm}
NUM_MOV 5 11 22 69 6
Nicols Marn Ruiz, Mara Jos Martn Bautista Departamento de Ciencias de la Computacin e Inteligencia Artificial Universidad de Granada
Tema 3 pgina 13
Claves de un TIPO DE ENTIDAD DBIL La clave primaria de la tabla correspondiente est constituida por los atributos que forman la clave primaria en el tipo de entidad del que depende, ms los campos necesarios del tipo de entidad dbil del que deriva la tabla. Hay que generar tambin una clave externa.
Tema 3 pgina 14
Traduccin de un TIPO DE RELACIN Sea R un tipo de relacin que conecta los tipos de entidad E1, ..., Em. Entonces, la tabla para R contiene n columnas donde: n=n1+n2+...+nm+nR donde ni=nmero de atributos de la clave primaria del tipo de entidad Ei. nR=nmero de atributos propios del tipo de relacin. Si un tipo de entidad interviene varias veces, hay que cambiar el nombre de los atributos para evitar confusiones. Cliente nombre s_social (CP) calle ciudad
1..*
Tiene
0..*
fecha
Tema 3 pgina 15
TE1
Nombre
LI..LS LI..LS
TE2
....
La clave primaria de la tabla correspondiente depende de los lmites superiores que intervienen en la relacin: Caso 1: Todos los lmites superiores son * (relaciones muchos a muchos) La clave primaria est formada por la unin de todos los atributos que forman las claves primarias de los tipos de entidad que intervienen en la relacin. En su caso puede que haya que aadir algunos atributos de la relacin. Caso 2: Alguno de los lmites superiores es 1 (relaciones muchos a uno) La clave primaria est formada por la unin de todos los atributos que forman las claves primarias de los tipos de entidad que intervienen en la relacin con cardinalidad muchos. Si no hay, se toma como clave primaria cualquiera de las claves de los tipos que intervienen.
Nicols Marn Ruiz, Mara Jos Martn Bautista Departamento de Ciencias de la Computacin e Inteligencia Artificial Universidad de Granada
Tema 3 pgina 16
TrabajaEn(nm_suc, nm_emp) num_suc es una clave externa que apunta a la clave primaria de Sucursal num_emp es una clave externa que apunta a la clave primaria de Empleados
Cta_Cliente(s_social, num_cuenta, fecha) s_social es una clave externa que apunta a la clave primaria de Cliente num_cuenta es una clave externa que apunta a la clave primaria de Cuenta
Nicols Marn Ruiz, Mara Jos Martn Bautista Departamento de Ciencias de la Computacin e Inteligencia Artificial Universidad de Granada
Tema 3 pgina 17
Traduccin de relaciones de HERENCIA Existen dos tcnicas: 1) Crear una tabla por cada tipo de entidad, donde cada subclase incorpora adems los atributos de la superclase que forman la clave primaria. 2) Crear una tabla por cada por cada subclase, incluyendo en cada una todos los atributos de la superclase.
Las restricciones de obligatoriedad y exclusividad pueden impedir o aconsejar el uso de una u otra alternativa
Gestor(nmero, D.N.I, direccin, mesa, rea) Cajero(nmero, D.N.I., direccin, caja, turno)
Nicols Marn Ruiz, Mara Jos Martn Bautista Departamento de Ciencias de la Computacin e Inteligencia Artificial Universidad de Granada
Tema 3 pgina 18
Tanto en la tabla Gestor como en la tabla Cajero, nmero es una clave externa que apunta a la clave primaria de Empleados.
Gestor(nmero, D.N.I, direccin, mesa, rea) Cajero(nmero, D.N.I., direccin, caja, turno)
Nicols Marn Ruiz, Mara Jos Martn Bautista Departamento de Ciencias de la Computacin e Inteligencia Artificial Universidad de Granada
Tema 3 pgina 19
TrabajaEn Sucursal nmero(CP) direccin ... 1..1 1..* Empleados nmero(CP) D.N.I. direccin ...
Empleados(nmero, D.N.I., direccin, num_suc) num_suc es una clave externa que apunta a la clave primaria de Sucursal HAY QUE SOPESAR LOS NULOS QUE PUEDEN APARECER CON EL AHORRO QUE SUPONE LA NO DUPLICACIN DE UNA DE LA CLAVES
Nicols Marn Ruiz, Mara Jos Martn Bautista Departamento de Ciencias de la Computacin e Inteligencia Artificial Universidad de Granada
Tema 3 pgina 20
Ejemplos
Alimento cdigo (CP) nombre 1..* Consume 1..* Atleta nombre D.N.I.(CP) edad altura peso 1..* Participa 1..* Prueba cdigo (CP) ttulo fase (CP) fecha hora Compone 0..* 1..*
cantidad
0..*
Sede
1..*
Nicols Marn Ruiz, Mara Jos Martn Bautista Departamento de Ciencias de la Computacin e Inteligencia Artificial Universidad de Granada
Tema 3 pgina 21
Ejemplos
Tablas para tipos de entidad: Alimento(cdigo, nombre) Ingrediente(nombre, composicin) Atleta(nombre, D.N.I., edad, altura, peso) Equipo(pas, marca, color) Prueba(cdigo, ttulo) Instalacin(nombre, tipo, categora, localizacin) Tablas para tipos de relacin: Compone(cod_alimento, nom_ingrediente) Consume(cod_alimento, D.N.I., cantidad) Pertenece(cod_atleta, pas) Alternativa: Atleta(nombre, D.N.I., edad, altura, peso, pas) Participa(cod_atleta, cod_prueba) Sede(cod_prueba, nom_instalacin, fase, fecha, hora)
Nicols Marn Ruiz, Mara Jos Martn Bautista Departamento de Ciencias de la Computacin e Inteligencia Artificial Universidad de Granada
Tema 3 pgina 22
Ejemplos
Profesor D.N.I.(CP) nombre direccin {Obl,Y} P_Teora %aprobados disponibilidad 0..* hora Usa 1..1 Aula nmero (CP) capacidad 0..* Tiene cantidad 0..* cdigo (CP) tipo Material 0..* Alumno nombre D.N.I. (CP) telfono Fecha (CP) Hora (CP) 0..* 0..* Coche matrcula (CP) modelo color 1..1 1..1 Pupilo P_Prcticas fumador peligrosidad 1..1 Utiliza
Conduce
Nicols Marn Ruiz, Mara Jos Martn Bautista Departamento de Ciencias de la Computacin e Inteligencia Artificial Universidad de Granada
Tema 3 pgina 23
Ejemplos
Tablas para tipos de entidad: Alternativa 1: Profesor(D.N.I., nombre, direccin) P_Teora(D.N.I., %aprobados, disponibilidad) P_Prcticas(D.N.I., fumador, peligrosidad) Alternativa 2: Qu defecto tiene? P_Teora(D.N.I., nombre, direccin, %aprobados, disponibilidad) P_Prcticas(D.N.I., nombre, direccin, fumador, peligrosidad) Aula(nmero, capacidad) Alumno(D.N.I., nombre, telfono) Coche(matrcula, modelo, color) Material(cdigo, tipo) Tablas para tipos de relacin: Usa(D.N.I., num_aula, hora) Pupilo(D.N.I._Prof, D.N.I._Alumno) Alternativa: Alumno(D.N.I., nombre, telfono, D.N.I._Prof) Utiliza(D.N.I., matrcula) Alternativa: Coche(matrcula, modelo, color, D.N.I.) P_Prcticas(D.N.I., fumador, peligrosidad, matrcula) Conduce(D.N.I., matrcula, fecha, hora) Tiene(num_aula, cd_material, cantidad)
Nicols Marn Ruiz, Mara Jos Martn Bautista Departamento de Ciencias de la Computacin e Inteligencia Artificial Universidad de Granada
Tema 3 pgina 24