Está en la página 1de 11

Modelo relacional de datos Modelo relacional de datos

Objetivos
• Comprender los principios estructurales del modelo de
Contenidos
datos relacional formal 2.1 Presentación y orígenes del modelo relacional
• Entender los conceptos integridad de entidad e 2.2 Estructura de datos relacional
integridad referencial, y apreciar su importancia
• Entender los significados e implicaciones del concepto 2.3 Características generales de integridad de datos
nulo en el modelo relacional 2.4 Manipulación de datos: lenguajes relacionales
• Comprender el concepto vista relacional, y la
problemática asociada a la modificación de datos a 2.4.1 Álgebra relacional
través de vistas 2.4.2 Cálculo relacional de tuplas
• Conocer los lenguajes formales álgebra relacional y
cálculo relacional de tuplas, así como el lenguaje
2.4.3 SQL-92
relacional estándar SQL-92
Tema 2. Modelo relacional de datos 1 Tema 2. Modelo relacional de datos 2

Modelo relacional de datos Presentación y orígenes del MR

Bibliografía • Introducido por Codd, 1970

[EN 2002] Elmasri, R.; Navathe, S.B.: Fundamentos de Sistemas de • Es un Modelo de Datos Lógico - de Representación -
Bases de Datos. 3ª Edición. Addison-Wesley. (Cap. 7, 8 y 9) (basado en registros)
[EN 1997] Elmasri, R.; Navathe, S.B.: Sistemas de bases de datos.
Conceptos fundamentales. 2ª Edición. Addison-Wesley • El modelo más usado en las aplicaciones comerciales de
Iberoamericana. (Cap. 6 y 7) procesamiento de datos convencional
[D 2001] Date, C.J.: Introducción a los sistemas de bases de datos. 7ª Edición.
Prentice-Hall. (Cap. 3 al 9)
[SKS 1998] Korth, H; Silberschatz, A., Sudarshan, S.: Fundamentos de bases de
• Dividido en 3 partes:
datos. 3ª Edición. McGraw-Hill. (Cap. 3 y 4) 1. Estructura de Datos
...
2. Integridad de Datos (características generales)
3. Manipulación de Datos

Tema 2. Modelo relacional de datos 3 Tema 2. Modelo relacional de datos 4


Estructura de datos relacional Estructura de datos relacional
Base de Datos = Conjunto de Relaciones La relación PELICULA
Géneros Años Países
Títulos Nombres Tiempo

dominios
• Relación Ciencia-ficción, 2002, 1997, Italia,Argentina,
--- --- --- --- Drama,Thriller, 1999, 2001, España, EEUU, --- ---
– Estructura de datos fundamental del modelo --- --- --- --- Comedia... 1994, 1972... Francia,Japón.. --- ---
– Tiene un nombre y representa una entidad genérica
– Conjunto de tuplas título director género rodaje nacionalidad duración
• Cada tupla representa una entidad concreta
Amores Perros A. González Drama 2000 México 145
– Compuesta de atributos con nombre (y dominio)
The Matrix A. Wachowsky Ciencia-ficción 1999 EEUU 138

cardinalidad
• Cada atributo representa un atributo de la entidad
– Representada mediante una tabla con filas y columnas Torrente S. Segura Comedia 1997 España 110
tuplas
Nos miran N. López Policiaco 2001 España 118
• Modelo basado en Teoría matemática
Amelie J. P. Jeunet Comedia 2001 Francia 122
– Analogía entre “Relación” (concepto matemático) y “Tabla”
Los lunes al sol F. León Drama 2002 España 117
– Teoría de Conjuntos y Lógica de Predicados de 1er orden
» Sólida Base Formal
atributos
grado
Tema 2. Modelo relacional de datos 5 Tema 2. Modelo relacional de datos 6

Estructura de datos relacional Estructura de datos relacional


Términos básicos Definiciones formales: DOMINIO
Procesamiento • Conjunto de valores atómicos del mismo tipo, de
Modelo Relacional
de Archivos donde toman su valor los atributos
Formal SQL-92
Relación Tabla Archivos
– La definición de dominios forma parte de la definición de la BD
– Cada atributo definido sobre un ÚNICO dominioÕ OBLIGATORIO
Si la tupla t está en la relación
Tupla R, entonces t∈R
Fila Registro concreto – Si A, B representan un mismo concepto, A y B con mismo dominio
Debe tener un nombre único cabecera de Nombre de – Dominio D puede contener valores no tomados por ningún atributo
Atributo dentro de cada relación Columna Campo de registro
{valores de A} ⊆ Dominio(A)
Cardinalidad nº de tuplas en una relación =

Grado nº atributos en una relación =


• Comparaciones Restringidas a Dominio
– La comparación de dos atributos sólo tiene sentido si ambos toman
colección de valores permitidos valores del mismo dominio
Dominio =
para ciertos atributos
– Si el SGBD soporta dominios, podrá detectar este tipo de errores

Tema 2. Modelo relacional de datos 7 Tema 2. Modelo relacional de datos 8


Estructura de datos relacional Estructura de datos relacional
Definiciones formales: RELACIÓN (1) Definiciones formales: RELACIÓN (2)
Una relación R, sobre conjunto de dominios D1, D2 ... Dn Un esquema de relación:
se compone de dos partes: PELICULA (titulo:Titulos, duracion:Tiempo, director:Nombres, estreno:Fechas)

Un estado de la relación:
• Esquema o Cabecera { { (titulo:Torrente), (duracion:110), (director:S.Segura), (estreno:1997) }
Conjunto de pares Atributo:Dominio { (titulo:The Matrix), (duracion:138), (director:A.Wachowski), (estreno:1999) }
{ (A1:D1), (A2:D2) ... (An:Dn) } ... }
– Cada Aj tiene asociado sólo un Dj • El estado de una relación es variable en el tiempo
– Los Di no tienen por qué ser distintos entre sí – nuevas tuplas, modificación o borrado de existentes

• El esquema no suele variar


• Estado, Cuerpo o Instancia
Ö costoso:
– Conjunto de tuplas que contiene en un instante concreto · reescritura de “miles” de tuplas
– tupla = conjunto de pares Atributo:Valor · ¿valores de nuevos atributos para tuplas ya existentes?
{ { (A1:vi1), (A2:vi2) ... (An:vin) } }, donde i=1..m – Suele incluir un conjunto de Reglas de Integridad (se verá)
Tema 2. Modelo relacional de datos 9 Tema 2. Modelo relacional de datos 10

Estructura de datos relacional Estructura de datos relacional


Definiciones formales: RELACIÓN (3) Definiciones formales: RELACIÓN (4)
• Propiedades de una Relación • FORMAS NORMALES
R está en <determinada> FN si
1. No existen tuplas repetidas
cumple <cierto> conjunto de condiciones o restricciones
2. Las tuplas no están ordenadas necesarias para estar bien diseñada

3. Los atributos no están ordenados de acuerdo con el modelo relacional de datos.

esquema = conjunto de pares Atributo:Dominio


• Toda relación ha de estar en 1FN (estructura de datos simple)
4. Los valores de atributos son Atómicos
dominio = conjunto de valores atómicos
ƒ Intersección fila/columna = un solo valor (no lista de valores)
ƒ Si R cumple esta propiedad, R está en 1FN

Tema 2. Modelo relacional de datos 11 Tema 2. Modelo relacional de datos 12


Estructura de datos relacional Estructura de datos relacional
Definiciones formales: RELACIÓN (5) Definiciones formales: BD RELACIONAL (1)
• Relación vs. Tabla • Percibida por usuarios como una colección de relaciones
– Relación: Representación abstracta de un elemento de datos – de diversos grados (nº de atributos)
– que varían con el tiempo (nº de tuplas, estado)
– Tabla: Representación concreta de tal elemento abstracto
• Las relaciones (tablas) son la estructura lógica de la BD
– Niveles externo y conceptual ANSI/X3/SPARC
– Ventajas
ƒ Representación muy sencilla (tabla) del elemento abstracto • Toda BDR cumple el Principio de Información:
básico (relación) del Modelo Relacional Todo contenido de información de la BD está representado
ƒ Fácil de utilizar, entender, razonar... de una y sólo una forma: como valores explícitos
– Inconveniente dentro de posiciones de columnas dentro de filas dentro de tablas
ƒ Aparente orden entre filas y entre columnas de la tabla • Conexión lógica entre Relaciones (vínculo o interrelación)
– Representada mediante valores
– No existen punteros (visibles al usuario)
Tema 2. Modelo relacional de datos 13 Tema 2. Modelo relacional de datos 14

Estructura de datos relacional Características generales de


integridad de datos
Definiciones formales: BD RELACIONAL (2)
• Todo estado de BD refleja la realidad
• En una BDR distinguimos... – es un modelo de una porción del mundo real (minimundo)
– Esquema de base de datos
ƒ Descripción de la base de datos • Algunas configuraciones de valores NO tienen SENTIDO
ƒ Conjunto de esquemas de relación – pues no representan ningún estado posible del minimundo
2 personas distintas con el mismo DNI
PELICULA ( titulo:Títulos, director:Nombres, género:Géneros,
rodaje:Años, nacionalidad:Países, duración:Tiempo ) Un empleado sin NSS
ACTOR ( nombre:Nombres, nombreArtistico: Nombres, Un alumno con -29 años
agente:Nombres, cache:Dinero ) Una película sin director
DIRECTOR ( nombre:Nombres, nacionalidad:Países, operaPrima:Títulos )
... Ö Definición de la BD (esquema) necesita incluir
– Estado o instancia de base de datos REGLAS DE INTEGRIDAD
ƒ Visión del contenido de la base de datos en cierto instante
ƒ Conjunto de estados de relación

Tema 2. Modelo relacional de datos 15 Tema 2. Modelo relacional de datos 16


Características generales de Características generales de
integridad de datos integridad de datos
Reglas de integridad Superclave y Clave de una relación
• Informan al SGBD de restricciones del mundo real Sea R una relación R(A1:D1 , A2:D2 ,... An:Dn )
• Así, el SGBD evita configuraciones de datos imposibles • Una superclave de R es un subconjunto SK de atributos
• Aumentan la capacidad expresiva del modelo relacional tal que cumple la restricción de Unicidad:
• Cumplen que:
• Forman parte de la base de datos No existen dos tuplas distintas con la misma
• Se cumplen para cualquier estado de la BD combinación de valores para SK
• No varían con el tiempo • Una clave de R es una superclave tal que cumple la
• Son específicas de cada BD particular, pero el restricción de Irreductibilidad:
Modelo Relacional incluye... Ningún subconjunto de CK cumple la r. Unicidad
características generales de integridad
importantes y necesarias en toda BD • Clave Simple (1 atributo) o Compuesta (varios atributos)
Claves Candidatas y Primarias • Cada clave es una restricción de integridad
Tema 2. Modelo relacional de datos Claves Ajenas (o foráneas o externas) 17 Tema 2. Modelo relacional de datos 18

Características generales de Características generales de


integridad de datos integridad de datos
Superclave y Clave: Ejemplos Clave Candidata, Primaria y Alternativa
• Claves como restricción de integridad • Si R tiene varias claves Ö Claves Candidatas
CLIENTE (codCliente, nombre, ciudad, telefono,...) Claves (ACTOR) = { {nombre}, {nombreArtistico} }
¿Qué implicaciones tiene establecer como clave... Claves (EMPLEADO) = { {dni}, {nombre, fechaNac}, {nss} }
a) CK = {codCliente, ciudad}
b) CK = {codCliente} …? • La Clave Primaria (Primary Key, PK ) es la clave candidata
elegida para identificar las tuplas de R
• Varias claves en una relación Clave Primaria (ACTOR) = {nombreArtistico}
«Relación para registrar las visitas de pacientes a sus médicos de familia. Un mismo Clave Primaria (EMPLEADO) = {nss}
paciente puede visitar a su médico varias veces en un mismo día»
• Las Claves Alternativas (Alternative Keys, AK) son el resto
VISITAMEDICA (nssPaciente, historial, fecha, hora, numVisita, medico, observ)
de claves candidatas
Claves (VISITAMEDICA)={ {nssPaciente, numVisita}, {nssPaciente, fecha, hora},
{historial, numVisita}, {historial, fecha, hora} } Claves Alternativas (ACTOR) = {nombre}
Claves Alternativas (EMPLEADO) = { {dni}, {nombre, fechaNac} }

Tema 2. Modelo relacional de datos 19 Tema 2. Modelo relacional de datos 20


Características generales de Características generales de
integridad de datos integridad de datos
Clave Ajena (Externa o Foránea) Clave Ajena (Externa o Foránea) (2)

• Conjunto de atributos FK de una relación R2, tal que: • Cada componente de una FK debe estar definido
1. Existe otra relación R1 con clave primaria PK , y sobre el mismo dominio que el correspondiente
2. Cada valor de FK en R2 es idéntico al de PK en alguna tupla de R1 atributo de la PK a la que referencia
Conjunto de atributos de una relación que hace referencia a PACIENTE (nss, nombre, dirección, ...)
la clave primaria de otra relación (o la misma) HISTORIAL (nss, especialidad, fechaApert, ...)
VISITA (nss, especialidad, numVisita, fecha, ...)
• PELICULA (título, género, duración, director, ...)
DIRECTOR (nombre, nacionalidad, ...) • Clave Ajena Simple o Compuesta
• EMPLEADO (codEmp, nombre, jefe, nss, ...) • El uso de Claves Ajenas facilita...
– Eliminación de la Redundancia: Integridad entre archivos
• LIBRO (título, isbn, autor, editorial, edición, año, ...)
– Mecanismo del Modelo Relacional de datos para establecer
ESCRITOR (dni, nombre, ...)
VÍNCULOS ENTRE RELACIONES
ARTICULO (título, tema, autor, revista, página, ...)

Tema 2. Modelo relacional de datos 21 Tema 2. Modelo relacional de datos 22

Características generales de Características generales de


integridad de datos integridad de datos
Clave Ajena (Externa o Foránea) (3) Clave Ajena (Externa o Foránea) (4)

CUENTA número saldo ... • Restricción de Integridad Referencial


Cada cliente sólo puede tener
200 35000 Todo valor de una FK debe coincidir
una cuenta a su nombre.
Una cuenta puede tener más de
505 40000 con un valor en la correspondiente PK
821 50000 – La BD no debe contener claves ajenas sin correspondencia:
un cliente como titular.
... Si una tupla en una relación hace referencia a otra relación, debe
referirse a una tupla existente en esa relación
CLIENTE nombre dirección ciudad cuenta
Vínculo FK
García, A Gran Vía, 6 Murcia 200 Cliente-Cuenta ARTICULO ESCRITOR
López, B Ronda Norte, 3 Murcia 821 • 1 Puede existir algún valor de PK al que NO haga referencia
Azorín, C Paseo Nuevo, 9 Valencia 505 ningún valor de la FK
Pérez, C Plaza Mayor, 2 Valencia 505 – ESCRITOR que no haya escrito artículos: ninguna tupla de ARTICULO
... hará referencia a la tupla correspondiente a dicho escritor
Tema 2. Modelo relacional de datos 23 Tema 2. Modelo relacional de datos 24
Características generales de Características generales de
integridad de datos integridad de datos
Clave Ajena (Externa o Foránea) (y 5) Mantenimiento de la Integridad Referencial
• Diagrama Referencial • Las operaciones que no satisfacen –violan– la Integridad
– Expresión de la existencia de Claves Ajenas Referencial, dejan la BD en un estado incorrecto
• Camino Referencial Ejemplo de un Hotel:
– ¿Qué pasaría si se eliminara la tupla (501, D, ...) en HABITACIÓN?
LIBRO título isbn autor editorial ... EDITORIAL nombre dirección ...
– ¿Y si se eliminara la tupla (100, D, ...)?
– ¿Y si se anotara la ocupación de la habitación 900?
ESCRITOR dni nombre ... editorial
OCUPACIÓN codClie habit ... HABITACIÓN numHabit tipo ...
ARTICULO título tema autor revista pág ... CLI04 100 115 I
CLI02 420 420 I
EMPL codEmp ... dep DEPTO codDep ... dire CLI05 115 100 D
• Ciclo Referencial
CLI10 100 304 D
– Camino que empieza y acaba en la misma relación
– Caso especial: Autorreferencia 405 I
EMPLEADO codEmp ... jefe
501 D
Tema 2. Modelo relacional de datos 25 Tema 2. Modelo relacional de datos 26

Características generales de Características generales de


integridad de datos integridad de datos
Mantenimiento de la Integridad Referencial (2) Mantenimiento de la Integridad Referencial (3)
• ¿Cómo evita el SGBD esos estados incorrectos? R2 ⎯→ R1
El SGBD puede... Operación: Eliminar una tupla t de R1 que es referenciada
‰ Rechazar toda operación que pueda provocar un estado ilegal, por otras de R2
o Ejemplo: Eliminar la tupla (100, D, ...) de HABITACIÓN
‰ Aceptar (y ejecutar) tales operaciones, pero Acciones posibles:
realizar acciones que restauren la integridad de los datos 1. Rechazar la operación (acción por defecto)
Sólo permite borrar t si ninguna otra tupla hace referencia a t
Ù Diseñador de la BD puede especificar al SGBD
2. Cascada. Propagar la eliminación
Acciones de Mantenimiento 1º Borrar todas las tuplas de R2 que referencian a t
de la Integridad Referencial 2º Eliminar t
para que la BD SIEMPRE alcance un estado final legal 3. Establecer nulos – (* se verá después *)

Tema 2. Modelo relacional de datos 27 Tema 2. Modelo relacional de datos 28


Características generales de Características generales de
integridad de datos integridad de datos
Mantenimiento de la Integridad Referencial (4) Mantenimiento de la Integridad Referencial (5)
R2 ⎯→ R1 Operación: Modificar el valor de la PK de una tupla t de R1
Operación: Modificar el valor de una FK a un valor no que es referenciada por otras tuplas de R2
existente en la PK de R1 Ejemplo: Modificar la tupla (100, D,...) a (130, D,...) en HABITACIÓN
Ejemplo: Modificar (CLI02, 420,...) a (CLI02, 900,...) en OCUPACIÓN Acciones posibles:
Acción: 1. Rechazar la operación (acción por defecto)
1. Rechazar la operación (SIEMPRE) Sólo permite modificar la PK de t si ninguna tupla referencia a t
2. Cascada. Propagar la modificación
Õ Intento de violación de la restricción de Integridad - Toda tupla de R2 que referencia a t seguirá haciendolo:
Referencial modificar su valor de FK al nuevo valor de la PK de t
- Modificar el valor de la clave primaria de t
3. Establecer nulos – (* se verá después *)

Tema 2. Modelo relacional de datos 29 Tema 2. Modelo relacional de datos 30

Características generales de Características generales de


integridad de datos integridad de datos
Mantenimiento de la Integridad Referencial (6) Mantenimiento de la Integridad Referencial (y 7)
R2 ⎯→ R1 • Encadenamiento de eliminaciones (análogo para Modificación)
Operación: Inserción de una tupla t en R2 cuyo valor de FK R2 → R1, Acción de Eliminación en Cascada R3 → R2 → R1
no se corresponde con ningún valor de la PK en R3 → R2, Acción de Eliminación X
- Eliminar una tupla de R1 Ö eliminar tuplas de R2 que la referencian
ninguna tupla de R1
- Pero existen tuplas en R3 que referencian esas tuplas de R2...
Ejemplo: Insertar una tupla (CLI03, 555, ...) en OCUPACIÓN ¿cómo afecta la Acción de Eliminación X en esta operación?
Acciones posibles: ƒ Si X = en CASCADA, no-problem! Ö eliminar esas tuplas de R3
- Rechazar la operación (SIEMPRE) ƒ Si X = RECHAZAR Ö La operación completa fallará
• Las operaciones de actualización en una BD son siempre
Õ Intento de violación de la restricción de Integridad atómicas: se realiza “TODO o NADA”
Referencial PROFESOR → ÁREA → DEPARTAMENTO
ASIGNATURA → TITULACIÓN → UNIVERSIDAD

Tema 2. Modelo relacional de datos 31 Tema 2. Modelo relacional de datos 32


Características generales de Características generales de
integridad de datos integridad de datos
Nulos Implicaciones de los nulos en la integridad
• En el mundo real existe... • Nulo y Claves Primarias
– información perdida fechaNacimiento desconocida
– ausencia de información ¿tiene teléfono? Restricción de Integridad de Entidad:
– valores no aplicables a ciertos atributos fechJubilac a empleado activo Ningún atributo componente de una
• Para representar estas situaciones en los sistemas de BD clave primaria puede contener nulo
se utiliza el NULO (null) EMPLEADO (codEmp, nss, nombre, telefono, depto, jefe...)
¿Qué pasaría si codEmp pudiera contener NULO?
– Si una tupla tiene un atributo que contiene un nulo,
significa que el valor real de tal atributo es desconocido
• Nulo y Claves Ajenas
– Es posible especificar si un atributo puede o no contener nulo
El Modelo Relacional permite nulo
0 nulo no es un valor en sí mismo, como valor de clave ajena
sino un indicador de ausencia de información depto = null Ö empleados no asignados a ningún departamento
" No hay dos nulos iguales (num_telefono NULL ≠ edad NULL) jefe = null Ö empleados sin jefe

Tema 2. Modelo relacional de datos 33 Tema 2. Modelo relacional de datos 34

Características generales de Características generales de


integridad de datos integridad de datos
Implicaciones de los nulos en la integridad (2) Implicaciones de los nulos en la integridad (3)
• Hemos de extender la definición de clave ajena • Hay que extender algunas acciones de mantenimiento de
Sea R2 una relación. FK es una clave ajena en R2 si es un la Integridad Referencial: R2 ⎯→ R1
subconjunto de sus atributos tal que: Operación: Eliminar una tupla t de R1 que es referenciada
1. Existe otra relación R1 con clave primaria PK y por otras de R2
2. En todo momento, cada valor de FK en R2
Acciones posibles:
a) es NULO, o
1. Rechazar la operación (acción por defecto)
b) es idéntico a un valor de PK en alguna tupla de R1
2. Cascada. Propagar la eliminación
3. Establecer nulos
• Restricción de Integridad Referencial 1 Sólo si la FK de R2 permite NULO
La Base de Datos no debe contener valores no nulos - Toda tupla de R2 que referencia a t pasa a contener NULL en FK
de clave ajena sin correspondencia - Eliminar la tupla t

Tema 2. Modelo relacional de datos 35 Tema 2. Modelo relacional de datos 36


Características generales de Características generales de
integridad de datos integridad de datos
Implicaciones de los nulos en la integridad (y 4) Resumiendo, el SGBD se encarga de...
R2 ⎯→ R1 • Comprobar las claves candidatas (primaria y alternativas):
No existen dos tuplas distintas con igual valor para una clave
Operación: Modificar el valor de la PK de una tupla t de R1
 Definición de BD : indicar los Atributos Componentes de las Claves Candidatas
que es referenciada por otras tuplas de R2
• Comprobar la restricción de Integridad de entidad
Acciones posibles: Ningún atributo componente de una clave primaria contiene nulo
1. Rechazar la operación (acción por defecto)  Definición de BD : indicar los Atributos Componentes de la Clave Primaria
2. Cascada. Propagar la modificación
• Comprobar la restricción de Integridad Referencial...
3. Establecer nulos El valor de la clave ajena en cualquier tupla, o es nulo, o coincide con
1 Sólo si la FK de R2 permite NULO un valor de clave primaria de alguna tupla en la relación referenciada
- Toda tupla de R2 que referencia a t pasa a contener NULL en FK  Definición de BD : indicar los Atributos Componentes de las Claves Ajenas
- Modificar el valor de la PK de t • ... y mantenerla frente operaciones que puedan violar la integridad
 Definición de BD : indicar Acciones de Mantenimiento de la Integridad Referencial

Tema 2. Modelo relacional de datos 37 Tema 2. Modelo relacional de datos 38

Esquema “PRODUCTORA”

PELICULA (codP:CODPEL, titulo:TITULOS, año:AÑO, genero:GENEROS, guion:CODGUI,


director:CODDIR, directorFotog:CODDIR, distrib:CODDIS, nacio:PAISES,
estreno:FECHA, numOscar:enteros(2), taquilla:DINERO)
DIRECTOR (codDir:CODDIR, nombre:NOMBRES, apellidos:APELLIDOS, nacio:PAISES,
• Ejemplo de una Base de Datos y Definición de fechaNacim:FECHA, operaPrima:CODPEL)
algunos dominios DIREC_FOTOG (codDF:CODDIR, nombre:NOMBRES, apellidos:APELLIDOS, nacionalidad:PAISES,
fechaNacim:FECHA, ultTrabajo:CODPEL)
GUION (codG:CODGUI, titulo: TITULOS, resumen: TEXTO,
nomAutorPpal:NOMBRES, fechaFin:FECHA, fechaEntrega:FECHA)
DISTRIBUIDORA (codDis:CODDIS, nombre:NOMBRES, cif:NIF, direccion:DOMICILIO,
telefono:TELEFONOS, porcentaje:PORCENT)
ACTOR (codA:CODACT, nombre:NOMBRES, nomReal:NOMBRES, nacionalidad:PAISES,
fechaNacim:FECHA, sexo:SEXOS, agencia:CODAGE, cache:DINERO)
AGENCIA (codAg:CODAGE, nombre:NOMBRES, direccion:DOMICILIO, telefono:TELEFONOS)
ACTUA_EN (actor:CODACT, film:CODPEL, papel:TIPO_PAPEL, paga:DINERO)

Tema 2. Modelo relacional de datos 39 Tema 2. Modelo relacional de datos 40


Dominio Definición del Dominio
CODPEL enteros(3)
CODGUI enteros(3)
CODDIR enteros(3)
CODDIS enteros(2)
CODACT enteros(4)
CODAGE enteros(2)
SEXOS { M, F }
TEXTO cadena caracteres variable (500)
PORCENT enteros (2)
DINERO enteros(9)
NIF cadena caracteres fija (12)
TITULOS cadena caracteres variable (120)
GENEROS {comedia,drama,terror,suspense,accion,romantica,gore,pulp,roadmovie}
PAISES {españa,francia,gran_bretaña,eeuu,australia,alemania,la_india,argentina}
AÑOS AÑO
FECHAS FECHA
NOMBRES cadena caracteres variable (35)
APELLIDOS cadena caracteres variable (80)
DOMICILIOS cadena caracteres variable (50)
TELEFONOS cadena caracteres variable (15)
TIPO_PAPEL {protagonista, secundario, reparto, figuracion}
Tema 2. Modelo relacional de datos 41