Está en la página 1de 24

Tema 3: El modelo relacional de Base de Datos

La estructura relacional Restricciones de integridad Lenguajes de Consulta Algebra relacional Paso de Diagrama E/R a Modelo Relacional

La estructura de datos relacional

El concepto de tabla: tuplas, atributos y dominios


El modelo de datos relacional organiza y representa los datos en forma de tablas o relaciones. Base de datos relacional: coleccin de tablas cada una de las cuales tiene un nombre nico. Atributo
Id_trabajador 1235 1412 2920 3231 1540 1311 3001 Nombre M. Lpez J.L. Calvo N. Marn O. Pons M.A. Vila J.C. Cubero D. Snchez Tarifa_hr 12,50 13,75 10,00 17,40 11,75 15,50 8,20 Tipo_de_oficio Electricista Fontanero Carpintero Albail Fontanero Electricista Albail Id_supv 1311 1520 Nulo Nulo Nulo Nulo 3231

Dominio Figura 1: Tabla Trabajadores


Nicols Marn Ruiz, Mara Jos Martn Bautista Departamento de Ciencias de la Computacin e Inteligencia Artificial Universidad de Granada

Tupla

Tema 3 pgina 2

La estructura de datos relacional

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:

Nombre_de_la_relacin(atributo1, ..., atributon)

Por ejemplo, podemos considerar la siguiente base de datos:

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

La estructura de datos relacional

Esquema de la base de datos: conjunto de tablas que representan nuestro problema.

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

Claves de una relacin

Superclave: Cualquier conjunto de atributos que identifica unvocamente a cada tupla de una relacin.

Clave de una relacin: superclave minimal.

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

considerarse como una clave. Id_trabajador por s slo es una clave.

Nicols Marn Ruiz, Mara Jos Martn Bautista Departamento de Ciencias de la Computacin e Inteligencia Artificial Universidad de Granada

Tema 3 pgina 5

Claves de una relacin


En una relacin dada puede que ms de un conjunto de atributos puedan ser elegidos como clave. Estos conjuntos de atributos se llaman claves candidatas.

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

Claves de una relacin

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.

Trabajador(id_trabajador, nombre, trf_hr, tipo_de_oficio, id_supv)


Claves externas: tipo_de_oficio referencia a Oficios e id_supv referencia a Trabajadores

Edificios(id_edificio, dir_edificio, tipo, nivel_calidad, categoria)

Asignaciones(id_trabajador, id_edificio, fecha_inicio, num_dias)


Claves externas: id_trabajador referencia a Trabajadores e id_edificio referencia a Edificios

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 7

Restricciones de integridad: Integridad de Entidad

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

Restricciones de Integridad: Integridad Referencial

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.

Son normalmente de ms alto nivel que los lenguajes estndar de programacin.

Los lenguajes de consulta pueden clasificarse en lenguajes procedimentales o no procedimentales.

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

Operaciones del lgebra 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,

seleccin, proyeccin, reunin, divisin y asignacin.

Nicols Marn Ruiz, Mara Jos Martn Bautista Departamento de Ciencias de la Computacin e Inteligencia Artificial Universidad de Granada

Tema 3 pgina 11

Paso de Diagrama E/R al Modelo Relacional: Tipos de Entidad

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.

Cuenta nmero saldo

NUM_CTA 250 365 214 410 100

SALDO 15000 2550 4200 1000 500

Cliente nombre s_social calle ciudad

NOMBRE Lpez Snchez Pereira Medina Romero

S_SOCIAL 27/48129 24/31200 40/31903 12/71240 45/7324

CALLE Arabial Mayor Sol Alta Gran Va

CIUDAD GRANADA MOTRIL ALMUECAR ADRA GUADIX

Nicols Marn Ruiz, Mara Jos Martn Bautista Departamento de Ciencias de la Computacin e Inteligencia Artificial Universidad de Granada

Tema 3 pgina 12

Paso de Diagrama E/R al Modelo Relacional: Tipos de Entidad

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}

Tiene Cuenta nmero (CP) 1..1 saldo


0..*

Movimiento nmero (CP) fecha cantidad

NUM_CTA 259 630 401 700 259


6

NUM_MOV 5 11 22 69 6

FECHA 11-5-93 11-5-93 23-5-93 25-5-93 5-6-93

CANTIDAD +500 -5500 -200 +900 -12000

Nicols Marn Ruiz, Mara Jos Martn Bautista Departamento de Ciencias de la Computacin e Inteligencia Artificial Universidad de Granada

Tema 3 pgina 13

Paso de Diagrama E/R al Modelo Relacional: Tipos de Entidad


Claves de un TIPO DE ENTIDAD FUERTE La clave primaria de la tabla correspondiente est constituida por los atributos que forman la clave primaria en el tipo de entidad.

Cliente nombre s_social (CP) calle ciudad Cliente(nombre,s_social, calle, ciudad)

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.

Tiene Cuenta nmero (CP) saldo


1..1 0..*

Movimiento nmero (CP) fecha cantidad

Movimiento(num_cta, num_mov, fecha, cantidad)


num_cta 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 14

Paso de Diagrama E/R al Modelo Relacional: Tipos de Relacin

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..*

Cuenta nmero (CP) saldo

fecha

SEG_SOCIAL 37/48129 24/31200 40/31903 12/71240 37/48129


Nicols Marn Ruiz, Mara Jos Martn Bautista Departamento de Ciencias de la Computacin e Inteligencia Artificial Universidad de Granada

NUM_CTA 259 630 401 199 700

FECHA 14-4-91 12-8-90 13-7-85 12-6-90 13-12-89

Tema 3 pgina 15

Paso de Diagrama E/R al Modelo Relacional: Tipos de Relacin


Traduccin de un TIPO DE RELACIN

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

Paso de Diagrama E/R al Modelo Relacional: Tipos de Relacin


TrabajaEn Sucursal nmero(CP) direccin ... 1..1 1..* Empleados nmero(CP) D.N.I. direccin ...

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

Cliente nombre s_social (CP) calle ciudad 1..*

Cta_Cliente 0..* fecha

Cuenta nmero (CP) saldo

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

Paso de Diagrama E/R al Modelo Relacional: Herencia

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.

Empleados nmero(CP) D.N.I. direccin ...

Empleados(nmero, D.N.I., direccin) Gestor(nmero, mesa, rea) Cajero(nmero, caja, turno)

Gestor mesa rea ...

Cajero caja turno ...

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

Paso de Diagrama E/R al Modelo Relacional: Herencia

Traduccin de relaciones de HERENCIA


Sea cual sea la alternativa, la clave primaria es la de la superclase, tanto en la tabla creada para la superclase (en su caso) como en cada una de las tablas de las subclases.

Empleados nmero(CP) D.N.I. direccin ...

Empleados(nmero, D.N.I., direccin) Gestor(nmero, mesa, rea) Cajero(nmero, caja, turno)

Gestor mesa rea ...

Cajero caja turno ...

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

Omisin de la creacin de tablas

Tipos de relacin con cardinalidades superiores muchos a uno


Si la relacin es binaria de uno a muchos entre los tipos de entidad E1 y E2, sin atributos descriptivos, se puede omitir la creacin de la tabla para el tipo relacin si en la tabla de E2 se aaden los atributos de la clave de E1.

Tipos de relacin con cardinalidades superiores uno a uno


Si la relacin es binaria de uno a uno entre E1 y E2, sin atributos descriptivos, se puede omitir la creacin de la tabla para el tipo relacin si en una de las dos tablas (la de E1 o la de E2) se aade la clave primaria de la otra.

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..*

Ingrediente nombre (CP) composicin

cantidad

Equipo Nacional Pertenece 0..* 1..1 pas (CP) color marca

Instalacin nombre tipo categora localizacin

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

También podría gustarte