El modelo relacional
1
En este tema analizaremos los dos modelos de datos más usados hoy día en el diseño de bases de datos. Estos son:
• El modelo entidad/relación.• El modelo relacional.
Modelo de datos.- Es un esquema teórico mediante el cual se pueden expresar las propiedades de una realidad que se analiza con el objetivo de representarla en una base de datos.
Es decir, un modelo de datos nos permite reducir una determinada realidad a algo almacenable.
2
Es un modelo de representación gráfica que gira en torno a dos conceptos principales: entidades y relaciones.
El ME/R fue desarrollado por Peter P. Chen en los setenta y se ha convertido en una referencia para el diseño previo de BBDD relacionales.
Generalmente, cuando se quiere construir una base de datos, se debe recabar información (mediante entrevistas u otros medios) sobre el funcionamiento de la empresa u organización, para saber qué datos son los que hay que almacenar.
3
Una vez se ha recabado la información, esta se analiza para generar el ME/R.
Es decir, es tarea del diseñador de la base de datos analizar la realidad de lo que se quiera guardar información y crear a partir de ese análisis un modelo que represente a dicha realidad.
4
Entidad ( entity ) Atributo ( attribute ) Dominio ( values set ) Relación ( relationship )
5
Conceptos básicos del modelo
5
Cosa u objeto del mundo real con existencia propia y distinguible del resto.
Objeto con existencia... física o real (una persona, un libro, un empleado) abstracta o conceptual (una asignatura, un viaje)
“Persona, lugar, cosa, concepto o suceso, real o abstracto, de interés para la empresa” (ANSI, 1977)
6
ENTIDADES
6
7
Clases de entidad: Regulares o fuertes
Tienen existencia por si mismas: EMPLEADO
Débiles
Su existencia depende de otra entidad: FAMILIAR depende de EMPLEADO
7
También... Ocurrencia Realización Ejemplar Entidad
concreta o individual
8
PELICULA
titulo = El señor de los anillos
genero = Fantasía
nacionalidad = EEUU
añoestreno = 2001
p2
...
titulo = Amelie
genero = Comedia
nacionalidad = Francia
añoestreno = 2001
p4
...
titulo = Amores perros
genero = Drama
nacionalidad = Méjico
añoestreno = 1999
p3
...
Instancia de entidad:
8
Propiedad o característica de una entidad Una entidad particular es descrita por los
valores de sus atributos:
9
titulo = El alquimista impaciente
genero = Thriller
nacionalidad = España
añoestreno = 2002
p1
...
nss = 1122334455
dni = 87654321
nombre = Cristina Aliaga Gil
nacionalidad = España
e1
...
ATRIBUTOS
9
TIPOS DE ATRIBUTOS
Simples o Compuestos Básicos o Derivados Monovalorados o Multivalorados Opcionales
1010
Atributos compuestos Pueden dividirse en otros con significado
propio
Valor compuesto = concatenación de valores de componentes
Atributos simples No divisibles. Atómicos
11
fechanacim
dia mes año
direccion
calle ciudad provincia codpostal
genero
11
Atributos derivados Valor calculado a partir de otra información ya
existente (atributos, entidades relacionadas) Son información redundante...
edad [de EMPLEADO], cálculo a partir de fechanacim atributo derivado del valor de otro
atributonumcopias [de una PELICULA], cuenta del número de
entidades COPIA relacionadas con cada película concreta
atributo derivado de entidades relacionadas
Atributos básicosfechanacim [de cada EMPLEADO]nacionalidad [de una PELICULA]
1212
Atributos monovalorados o sencillos (monovaluados) sólo un valor para cada entidad
fechanacim [de un EMPLEADO particular]
añoestreno [de cada PELICULA concreta]
Atributos multivalorados o múltiples (multivaluados) más de un valor para la misma entidad
nacionalidad [ PELICULA coproducida por varios países ]
telefono [ EMPLEADO con varios teléfonos de contacto] pueden tener límites superior e inferior
del número de valores por entidadnacionalidad (1-2)telefono (0-3)
13
(min,max)
13
El nulo (null value) es usado cuando...
Se desconoce el valor de un atributo para cierta entidad
El valor existe pero faltaaltura [de un EMPLEADO]
No se sabe si el valor existe o no telefono [de un EMPLEADO]
La entidad no tiene ningún valor aplicable para el atributo:
fechaalquiler [de una película en stock]
14
15
NOTACIÓN PARA ATRIBUTOS
15
1616
17
Otra posible notación…
17
Atributo con valor distinto para cada instancia de un tipo de entidaddni en EMPLEADO
Una clave identifica de forma única cada entidad concreta atributo identificador
Notación
18
EMPLEADO
DNI
18
Claves candidatas (IC)Conjunto de atributos que pueden ser claveClaves o Identificadores Candidatos de EMPLEADO: dni nss (nombre, fechanacim)
Clave principal o primaria (IP) Elegido (por el diseñador) de entre los
identificadores candidatos (IC), para ser el medio principal de identificación de las instancias del tipo de entidaddni en EMPLEADO
19
TIPOS DE CLAVE
19
La Clave primaria (IP) puede ser: Sencilla Compuesta
Clave alternativa o secundaria (IA) El resto de candidatas que no son clave
principal nss y (nombre, fechanacim) en EMPLEADO
2020
21
En el MER es obligatorio que todo tipo de entidad tenga un identificador
(0,3)
(1,2)
(0,1)EMPLEADO
nombre
fechanacim telefono
calleprovinciaciudad
codpostal
edadnss
dni
altura
nacionalidad
n-f
dirección
IP
NOTACIÓN PARA ATRIBUTOS CLAVE
21
Conjunto de valores Cada atributo simple está asociado a un
dominio, que especifica sus valores válidos
22
No suele representarse, aunque una forma de hacerlo sería:
Atributo Dominio Descripción Dominio
nombre NOMBRES cadenas de hasta 30 caracteres alfabéticos
telefono TELEFONOS cadenas de hasta 9 caracteres numéricos
altura MEDIDAS números reales entre 0 y 2’5 (metros)
... ... ...
TELEFONOS
NOMBRES
telefono
nombre
MEDIDASaltura
EMPLEADO
DOMINIOS (VALUES SET)
22
También “interrelación” Asociación, vínculo o correspondencia
entre instancias de entidades relacionadas de alguna manera en el “mundo real” el director “Alejandro Amenábar” ha rodado la película
“Mar adentro” el empleado 87654321 trabaja en el local de
videoclub “principal” la película “El imperio contraataca” es una continuación
de la película “La guerra de las galaxias”
23
RELACIÓN (RELATIONSHIP)
23
24
J. Médem
C. Saura
F. Trueba
S. Segura
A. Amenábar
Vacas
Tesis
Belle Epoque
Torrente
Tierra Abre los ojos
Los otros
Tipo de Relación: conjunto de instancias
Tipo de Entidad: conjunto de instancias
Instancia del tipo de
relación
DIRECTOR HA RODADO PELÍCULA
24
Estructura genérica o abstracción del conjunto de relaciones existentes entre dos o más tipos de entidadun DIRECTOR ha rodado PELICULA’s
Notación
25
DIRECTOR PELICULAHA_RODADO
TIPO DE RELACIÓN
25
Número de tipos de entidad que participan en el tipo de relación Binaria: grado 2 (el más frecuente) Ternaria: grado 3 Reflexiva (o recursiva): grado 1
26
ACTOR PELICULAACTUA_EN
CLIENTE PELICULA
LOCAL_VIDEOCLUB
ALQUILA
PELICULACONTINUACIONDE
GRADO DE UNA RELACIÓN
26
Limitan las posibles combinaciones de entidades que pueden participar en las relaciones
Extraídas de la situación real que se modela“Una película debe haber sido dirigida por uno y sólo
un director”“Un director ha dirigido al menos una película y puede
haber dirigido muchas”
27
RESTRICCIONES SOBRE RELACIONES
27
Número máximo de ocurrencias o instancias de un tipo de entidad que pueden estar relacionadas con una ocurrencia o instancia del otro tipo de entidad
Notación Etiqueta (1:1, 1:N, M:N…) junto al tipo de relación, o Flecha en sentido “... a N”
28
ACTOR
PELICULA
M:N ACTUA_EN
EMPLEADO
LOCAL_VIDEOCLUB
encargado
sucursal
trabajador
lugar trabajo
TRABAJA_EN SUPERVISA1:N1:1
CARDINALIDAD
Tipos de correspondencia más comunes: 1:1 (“uno a uno”) 1:N (“uno a muchos”) M:N (“muchos a muchos”)
29
ACTOR
PELICULA
personaje
film
M
ACTUA_EN
N
EMPLEADO
LOCAL_VIDEOCLUB
encargado
sucursal
1
trabajador
lugar trabajo
1
TRABAJA_EN SUPERVISA
N1
TIPO DE CORRESPONDENCIA
29
Números mínimo y máximo de ocurrencias de una entidad que pueden estar interrelacionadas con una ocurrencia de otra u otra entidades que participan en la interrelación.
Notación (min, max) en la línea que une entidad y
relación
30
Empleado Dirige Departamento(1,1) (0,1)
1:1 Part. Total
REPRESENTACIÓN DE CARDINALIDAD DE ENTIDADES
30
La cardinalidad con la que una entidad participa en una relación especifica el número mínimo y el número máximo de correspondencias en las que puede tomar parte cada ocurrencia de dicha entidad.
La participación de una entidad en una relación es obligatoria (total) si la existencia de cada una de sus ocurrencias requiere la existencia de, al menos, una ocurrencia de la otra entidad participante. Si no, la participación es opcional (parcial).
3131
Comparación de notaciones
32
EMPLEADOLOCAL
VIDEOCLUBSUPERVISA1 N
EMPLEADO LOCALVIDEOCLUB
1:N
SUPERVISA(1,1) (0,n)
32
Cardinalidad de tipos de entidad recursivos
33
1:1(0,1)
(0,1)
PELICULA SECUELA DEprecuela
continuación
N
1subalterno
superior (0,1)
(0,n)EMPLEADO JEFE DE
33
Conceptualmente pertenecen a la relación Un atributo de una M:N es propio de la relación Un atributo de una 1:1 o 1:N “se puede llevar” a
uno de los tipos de entidad participantes
34
PELICULA(0,m)ACTUA_EN
(1,n)ACTOR
salariopapel
M:N
ATRIBUTOS DE RELACIÓN
34
Dependencia en existencia (entre entidades) Si desaparece una instancia del tipo de
entidad regular deben desaparecer las instancias de la entidad débil que dependen de ella
Etiqueta “E” en el tipo de relación débil
Dependencia en identificación Además de la dependencia en existencia... Una instancia del tipo de entidad débil no se
puede identificar por sí misma Su clave es (clave_entidad_regular, clave_parcial) Etiqueta “ID” en el tipo de relación débil
35
CLASES DE DEPENDENCIA
35
36
PERMISO_CONDUCCION es débil, pues depende en existencia de EMPLEADO, pero no depende en identificación
COPIA es débil, pues depende en existencia de PELICULA, y también depende en identificación
numcopia
titulo
COPIA
1:NTIENE
ID
PELICULA
idcopia
numlicencia
EMPLEADO
PERMISOCONDUCCION
POSEE1:NE
dni
tipo
Tipo de
Relación
Débil
36
Comparación de conceptos y notación
37
numprestamo
CLIENTE
PRESTAMO
POSEE 1:NE
dni
(1,1)
(0,n)
Dependencia en existencia
37
Comparación de conceptos y notación
38
numpago
PRESTAMO
PAGO
TIENE1:1ID
numprestamo
(1,1)
(0,n)
idpago
Dependencia en identificación
Entidad Débil de otra entidad
débil
38
39
CLIENTE
CINTAVIDEO
LOCALVIDEOCLUB
ALQUILA(0,1)
(0,n)
(0,m)
Para representar la cardinalidad de cada entidad en la relación, debemos decidir la cantidad mínima y máxima de instancias de la entidad que se relaciona con una instancia de cada una de las otras entidades relacionadas.
fecha
TIPOS DE RELACIÓN CON CLAVE SUPERIOR A DOS
39
GENERALIZACIÓN Y ESPECIALIZACIÓN
En ocasiones es necesario dividir una entidad en subconjuntos, generalmente por dos motivos:
• Porque sólo determinados miembros de la entidad participan en una relación.
• Porque sólo determinados miembros de la entidad poseen ciertos atributos.
EMPLEADO
SECRETARIO GERENTE COMERCIAL CLIENTEAtiende
NivelFechanombramiento 40
A la entidad que especializamos, la llamamos supertipo.A cada una de las entidades en que se divide el supertipo la llamamos subtipo.
Toda instancia de cualquiera de los subtipos es también una instancia del supertipo. Pero puede haber instancias del supertipo que no sean instancias de ningún subtipo.
En el ejemplo de antes, un secretario o un vendedor también tienen todos los atributos de empleado y pueden participar en las relaciones en las que participe la entidad empleado.También puede haber empleados que no sean secretarios, ni gerentes ni vendedores.
41
42
VEHÍCULO
CAMIÓN
FABRICANTE
SIDECAR
FABRICA
LLEVA
numBastidor
precio
numEjes
tonelaje numPuer
numPlazas
cilindrada
ID
(1,1)(1,n)
(1,1) (0,1)
TURISMO
N:1
1:1
MOTOCICLETA
43
El modelo relacional persigue los siguientes objetivos:• Independencia física: El modo de almacenar datos no debe influir en su manipulación lógica y, por tanto, un cambio en el almacenamiento físico no influye en los datos almacenados y sus relaciones.•Independencia lógica: Añadir, eliminar o modificar cualquier elemento de la BD no debe repercutir en los accesos simultáneos a otros elementos de la misma BD.•Flexibilidad: Ofrecer a cada usuario los datos de la forma más adecuada a la correspondiente aplicación o perfil. •Uniformidad: Las estructuras lógicas de los datos presentan un aspecto uniforme (tablas), lo que facilita su uso y manipulación. •Sencillez: Las características anteriores, así como unos lenguajes de usuario muy sencillos, producen como resultado que el modelo relacional (MR) sea fácil de comprender y de utilizar.
44
La estructura básica del modelo es la RELACIÓN y se puede representar en forma de tabla de dos dimensiones.Una relación tiene un nombre, un conjunto de atributos que representan sus propiedades y un conjunto de tuplas que incluyen los valores que cada uno de los atributos toma para cada elemento de la relación.Como se ha dicho, una relación se representa mediante una tabla bidimensional (las columnas son los atributos de la relación y las filas son las tuplas).
45
La relación debe cumplir las siguientes condiciones: • Debe tener un solo tipo de fila, cuyo formato queda definido por el esquema de la relación, por lo tanto todas las filas tienen las mismas columnas.• Cada fila debe ser única y no pueden existir filas duplicadas.• Cada columna debe ser única y no pueden existir columnas duplicadas.• Cada columna debe estar identificada por un nombre específico.• El valor de una columna para una fila debe ser único, no pueden existir múltiples valores en una posición de una columna.• Los valores de una columna deben pertenecer al dominio que representa, y es posible que un mismo dominio se utilice para definir los valores de varias columnas.
46
En el modelo relacional los atributos pueden tomar valores de dos tipos de dominios diferentes:
• Dominios generales o continuos: Contienen todos los posibles valores entre un máximo y un mínimo predefinido. Ejemplos:
DNI: todos los números enteros y positivos de 8 dígitos.Peso de material: todos los números reales y positivos.Saldo de una cuenta: los números reales, positivos y
negativos.• Dominios restringidos o discretos: aquellos que contienen ciertos valores específicos entre un máximo y un mínimo predefinido. Ejemplos:
Estado civil: compuesto por soltero, casado, viudo y divorciado.Provincia: una de las provincias españolas.
47
Se denomina GRADO de una relación al número de atributos que contiene.Se llama CARDINALIDAD de una relación al número de tuplas que contiene.
El ejemplo muestra una relación llamada ALUMNO, que consta de los atributos Cod_matrícula, Nombre, Ciudad y Cod_grupo (grado 4). Cada fila de la tabla muestra una tupla correspondiente a los datos de un alumno (cardinalidad 5).El dominio de Cod_matricula sería “códigos” formado por un conjunto de cadenas de longitud 3 caracteres.
COD_MATRICULA NOMBRE CIUDAD COD_GRUPO
101 José Salamanca 11
102 Pepe Ciudad Real 11
203 Maria Madrid 23
500 Ignacio Barcelona 54
54 Leticia Munich --
48
Reglas de integridad
El modelo relacional debe satisfacer una serie de reglas de integridad mediante las cuales se garantiza la consistencia de la información que pueda ser manejada:
• En una relación no puede haber 2 tuplas iguales (obligatoriedad de clave primaria).
• El orden de las tuplas y el de atributos no es relevante. (Aunque es recomendable que las tuplas estén en orden tomando como referencia un atributo, normalmente el primero, que deberá coincidir con lo que llamamos clave de la relación).
• Cada atributo sólo puede tomar un único valor del dominio sobre el cual está definido.
49
• Ningún atributo que forme parte de la clave primaria de una relación puede tomar un valor nulo (regla de integridad de entidad o de clave).
• Se pueden imponer , en teoría, otra serie de restricciones que garanticen la integridad del modelo y por lo tanto de la información almacenada en la BD, restricciones concernientes son:
o Los valores permitidos para los atributos que forman parte de las relaciones existentes en el esquema. Por ejemplo, valor máximo y mínimo, lista de valores, etc...
o Condiciones que determinan el valor que pueden tomar los atributos. Estas condiciones pueden definirse en base a diferentes predicados: en función del valor de otros atributos de la misma o diferente relación, o al estado de la base de datos, o en base al usuario, etc...
50
Claves
En una relación, es necesario poder determinar una tupla concreta, lo cual es posible mediante la clave.
Clave es un atributo o conjunto de atributos cuyos valores distinguen unívocamente una tupla específica de una tabla o relación. Una de las condiciones de una tabla relacional o relación es que no pueden existir filas (tuplas) duplicadas, ello implica que siempre tiene que existir al menos una clave, que en el peor de los casos estará formada por todos los atributos. Si una tabla dispone de varias claves, a éstas se le denominan CLAVES CANDIDATAS, puesto que más adelante entre todas ellas tendremos que elegir una que será la que por excelencia identifique la tupla. A esta clave se le denomina CLAVE PRINCIPAL o primaria y al resto CLAVES ALTERNATIVAS o secundarias.
51
EjemploDNI NOMBRE DIRECCIÓN CIUDAD
493 Pedro C/ Col, 9 Jaén
181 Luis C/ Pez, 7 Madrid
830 María C/ Paz, 12 Madrid
341 Ana Pza. Mayor, 5 Salamanca
679 Juan C/ Sol, 5 Madrid
911 Pilar C/ Mar, 51 Sevilla
DNI N_MATRIC MARCA MODELO COLOR KM723 M-3443 Ford Fiesta Blanco 579181 M-5996 Seat Ibiza Rojo 39901524 M-4283 Opel Corsa Blanco 34567524 M-2103 Opel Corsa Verde 21345181 M-3911 BMW 318 Gris 42354911 SE-6720 Renault R-21 Rojo 34521308 M-4283 Opel Corsa Blanco 34567
Personal
Coches- personal
52
En personal la clave es DNI, puesto que cualquier valor del dominio de dicho atributo identifica a una única tupla. En coches-personal se representan coches que pueden disponer un individuo determinado. Un coche que se identifica por el N_Matrícula puede estar compartida por varios individuos, por lo tanto, el N_Matrícula no identifica a una tupla determinada puesto que el coche se puede encontrar en distintos individuos (véase el coche del DNI 524 y 308).El DNI tampoco nos sirve para localizar una única tupla puesto que un individuo puede disponer de más de un coche (ej. DNI 524). Lógicamente tampoco serán los demás ya que distintos coches pueden tener la misma marca, el mismo modelo, el color o incluso los mismos km.Así, la clave debe estar formada por más de un atributo y será DNI junto con N_Matrícula. Esto quiere decir que de todas las tuplas que tenga la tabla se distinguirán entre si mediante los valores concatenados del DNI y N_Matrícula o lo que es igual, si conocemos el valor de un DNI y de un número de matricula asociado, identificaremos a una única tupla.
53
Cuando vayamos a analizar la clave principal, tendremos en cuenta sobre su dominio las siguientes consideraciones:
• Sus valores no pueden ser nulos.
• La memoria que ocupen debe ser mínima.
• Su codificación ser sencilla.
• El contenido de sus valores no debe variar.
• Puede ser que se utilicen en otras tablas para crear una interrelación (mediante lo que se llama claves ajenas).
54
Se denomina CLAVE AJENA a aquel atributo o conjunto de atributos que en la tabla donde se encuentran no son clave, y sus valores se corresponden con la clave principal de otra tabla (o la misma). El domino de la clave ajena y de la clave principal de la tabla a la que hace referencia se tiene que corresponder, es decir, ser compatible. Por lo tanto el atributo DNI por ser clave principal de “personal” y estar en una columna de la relación “coches-personal”: es clave ajena de ésta última tabla. Las claves ajenas son un concepto muy importante, puesto que la integridad de la base de datos se mantiene o se elimina en una gran parte mediante las transacciones que se realizan sobre dichas claves.
55
56
Restricciones
Los mecanismos que proporciona el modelo relacional para recoger restricciones de usuario son las siguientes:
• Restricción de clave primaria (PRIMARY KEY) permite declarar un atributo o conjunto de atributos como la clave primaria de una relación.
• La restricción de unicidad (UNIQUE) nos permite definir claves alternativas (los valores de uno o varios atributos no pueden repetirse en diferentes tuplas de una relación) • La restricción de obligatoriedad (NOT NULL) permite declarar si uno o varios atributos de una relación deben tomar siempre un valor, es decir, no pueden tomar valores nulos.
57
• La restricción de clave ajena (FOREIGN KEY), también denominada integridad referencial, se usa para, mediante claves ajenas (conjunto de atributos en una relación que es una clave primaria en otra o la misma relación) enlazar relaciones de la base de datos.
La integridad referencial nos indica que los valores de la clave ajena en la relación hijo deben corresponderse con los valores de la clave primaria en la relación padre o bien ser nulos si se admiten nulos. Los atributos que son clave ajena en una relación no necesitan tener los mismos nombres que los atributos de la clave primaria con la cual ellos se corresponden.
58
59
Además, es necesario determinar las consecuencias de ciertas operaciones (borrado y modificación) realizadas sobre tuplas de la relación referenciada, es decir, las opciones de borrado y modificación sobre claves ajenas. Las posibilidades para una operación de actualización (borrado o modificación) son:
o Borrado / modificación en cascada (CASCADE): el borrado (o modificación) de una tupla en la relación padre ocasiona un borrado (o modificación) de todas las tuplas relacionadas en la relación hija (tuplas cuya clave ajena coincida con el valor de la clave primaria de la tupla eliminada o modificada en la relación padre).
60
o Borrado / modificación restringido (RESTRICT): en este caso si existen tuplas en la relación hija relacionadas con la tupla de la relación padre sobre la que se realiza la operación, entonces no se permitirá llevar a cabo dicha operación. o Borrado / modificación con puesta a nulos (SET NULL): esta posibilidad nos permite poner el valor de la clave ajena referenciada a NULL cuando se produce el borrado o modificación de una tupla en la relación padre.
61
o Borrado / modificación con puesta a un valor por defecto (SET DEFAULT): su funcionamiento es similar al caso anterior, con la excepción de que el valor al que se ponen las claves ajenas referenciadas es un valor por defecto que se habrá especificado en la definición de la tabla correspondiente. Las opciones de borrado y modificación pueden ser distintas para una determinada clave ajena de una relación; por ejemplo, es posible definir el borrado en cascada y la modificación restringida.
62
• Restricciones definidas por los usuarios: Los usuarios pueden definir restricciones y reglas propias, mediante las herramientas de los distintos SGBD. Estas restricciones pueden ser:
o Comprobaciones (checks) para verificar una condición antes de realizar la operación de lectura o escritura en una tabla.
o Aserciones (asserts) para lo mismo que las comprobaciones pero implicando varias tablas.
o Disparadores (triggers) para que el SGBD realice determinadas acciones cuando se cumpla una condición concreta.
63
Transformación del ME/R al MR
Antes de hacer esta transformación habrá que preparar el esquema Entidad Relación para que su correspondencia con el modelo relacional sea sencilla.
Esta preparación consiste en:
1.- Eliminación de identificadores externos (este paso se asocia también con la eliminación de algunas interrelaciones).
2.- Eliminación de atributos compuestos del esquema.
3.- Eliminación de atributos multivaluados del esquema.
64
1.- Eliminación de identificadores externos
65
PERSONA
fechaNac
dni
dirección
nombre
calle
ciudad
provincia
dni
PERSONA
fechaNacnombre
calle
ciudad
provincia
PERSONA
fechaNac
dni
dirección
nombre
A) “Eliminar” atributo compuesto y considerar todos sus componentes como atributos simples.
B) “Eliminar” los componentes y considerar el atributo compuesto como un único atributo
A
B
2.- Eliminación de atributos compuestos
66
3.- Eliminación de atributos multivaluados.-
Requieren la introducción de entidades nuevas.
67
Transformación de entidadesCada tipo de entidad se convierte en una relación.
La relación se llamará igual que el tipo de entidad de donde proviene.
68
Transformación de interrelaciones
Dependiendo del tipo de correspondencia de la interrelación variará la manera de realizar la transformación en el esquema relacional, por eso desglosamos esta regla en subreglas:
• Interrelaciones N:M
Se transforma en una relación que tendrá como clave primaria la concatenación de los identificadores principales de los tipos de entidad que asocia y además tendrá los atributos propios de la interrelación.
69
AUTOR LIBRO
fechaFin
(0,n)(1,m) titulo
nomAutor
codAutor
isbn
AUTOR(codAutor, nomAutor, ...)
ESCRIBE(codAutor, isbn, fechaFin, derechosAutor)
LIBRO(isbn, titulo, ...)
ESCRIBE
Fk
FK
derechosAutor
70
• Interrelaciones 1:N (uno a muchos): Contemplamos 2 casos:o PROPAGACIÓN DE CLAVE: el identificador de la entidad de cardinalidad 1 se añade a la otra relación como clave ajena.
71
o CREAR NUEVA RELACIÓN: Podemos convertir la interrelación 1:N en una nueva relación si:
I. Aparecen valores nulos.II. Puede que en un futuro se transforme en una relación
N:MIII. La interrelación tiene atributos propios
72
73
• Interrelaciones 1:1: Contemplamos 3 casos:o Si hay muchos valores nulos se crea una nueva relación.
74
o Si sólo hay nulos en un lado se propaga la clave:
75
o Si no hay nulos se propaga la clave:
CONDUCTORCOCHECONDUC
E(1,1) (1,1)
1:1
CONDUCTOR(DNI, ........,MATRICULA)
COCHE(MATRICULA,........)
DNIMATRICULA
76
• Interrelaciones ternarias N:M:P
Se crea una relación con las claves de cada una de las entidades implicada.RELACIÓN (clave1, clave2, clave3, atributo1, ......,atributoN).
• Atributos de una interrelaciónSi la interrelación se transforma en una relación, todos sus atributos pasan a ser columnas de la relación. La transformación es directa y no hay pérdida de semántica.En caso de que la interrelación se transforme mediante propagación de clave, sus atributos migran junto a la relación que corresponda, pero suele ser mejor crear una nueva relación para representar la interrelación que tiene atributos.
77
Transformación de dependencias• En existencia: Propagar las claves creando una clave ajena con nulos no permitidos en la relación de la entidad dependiente y obligar a modificación y borrado en cascada.
FAMILIAREMPLEADO
1 N
(1,1) (0,n)
EMPLEADO ( nifEmp, nomEmp, ...)
FAMILIAR ( nifFam, nifEmp, ... )
FK nulos no permitidos: NOT NULLON DELETE CASCADEON UPDATE CASCADE
nifFamnifEmpnomEmp TIENE
E
78
• En identificación: igual que en el caso de dependencia en existencia y además la clave primaria de la relación de entidad débil, debe ser la concatenación de las claves de las dos entidades participantes en la interrelación.
79
Transformación de generalizaciones
a) Englobar todos los atributos del supertipo y de los subtipos en una sola relación. Se utiliza cuando la diferencia de especialización es muy pequeña.
b) Crear tantas relaciones como subtipos, que contengan además los atributos comunes del supertipo. También se utiliza cuando hay muchos atributos distintos.
80
a) DOCUMENTO(código, titulo, idioma, tipo, código_editorial, año_edición)
b) DOCUMENTO(código, titulo, idioma)ARTICULO(código)LIBRO(código, código_editorial, año_edición)
c) ARTICULO(código, titulo, idioma)LIBRO(código, titulo, idioma, código_editorial, año_edición)
81
Notación Un esquema relacional se representa mediante un grafo, conocido como grafo relacional. Se trata de un grafo dirigido cuyos nodos son las relaciones de la BD y los arcos representan las restricciones de clave ajena, y en el que aparecerán además de las distintas relaciones con sus atributos y las restricciones de clave ajena las restricciones de clave primaria, unicidad y obligatoriedad. Las convenciones empleadas para la representación de este grafo son: El nombre de las tablas estará representado en mayúsculas (igual que los atributos) y en negrita. Primero aparece el nombre de la relación y después los atributos entre paréntesis.
82
Las claves primarias aparecen subrayadas Las claves alternativas aparecen en negrita Las claves ajenas están representadas en letra cursiva y referencian a la relación en la que son clave primaria mediante una flecha. Los atributos que pueden tomar valores nulos aparecen con asterisco. Las opciones de integridad referencial son:
• B:C, Borrado en Cascada• B:N, Borrado con puesta a Nulos• B:D, Borrado con puesta a valor por defecto• B:R, Borrado restringido• M:C, Modificación en cascada• M:N, Modificación con puesta a Nulos• M:D, Modificación con puesta a valor por defecto• M:R, Modificación Restringida.
Normalización
Podemos enfrentarnos al diseño de una base de datos relacional de dos formas:
A) Aplicando inicialmente al Mundo Real un modelo semántico (p.ej. E/R) para obtener un esquema conceptual, y transformar éste en un modelo relacional.
B) Podemos plasmar directamente en el modelo relacional nuestra concepción del Mundo real.
83
84
En general la primera forma produce un esquema relacional estructurado y con poca redundancia, pero pueden presentar algunos problemas derivados de fallos en:
• La percepción del mundo real• El diseño del esquema E/R• El paso al modelo relacional
Estos posibles fallos de diseño hacen conveniente (necesario si optamos por la opción B) aplicar un conjunto de reglas que nos permitan asegurar que un esquema relacional cumple ciertas propiedades.
Reglas --> Formas Normales --> Teoría de la normalización
85
Los objetivos de esta teoría de la normalización son:
• Eliminar redundancias superfluas, disminuyendo el espacio requerido para el almacenamiento y, por tanto, reduciendo posibles problemas de integridad en la información almacenada en la base de datos.• Optimizar las operaciones de actualización de la base de datos.• Representar de forma coherente los objetos y relaciones existentes en el dominio del problema y cuya información es almacenada en la base de datos.• Optimizar y garantizar la fiabilidad de las consultas sobre la información mantenida en la base de datos.
86
• Redundancia de información: ciudad, distancia (ciudad); precio (artículo).
• Anomalías de modificación: podemos tener el mismo artículo con dos precios o la misma ciudad con dos distancias. inconsistencias
• Anomalías de inserción: ¿Podemos registrar nuevo artículo?, ¿Nuevo cliente?, ¿Nueva ciudad, distancia?
• Anomalías de borrado: Si eliminamos tupla de pedido de artículo A3 o cliente C4 pérdida de información.
En esta tabla podemos encontrar:
87
Este diseño elimina todos los problemas anteriores de redundancia y anomalías. La normalización es el proceso que nos llevará de un diseño arriesgado a uno seguro.
88
Dependencias funcionales
Definición formal: Dada una relación R, se dice que el atributo y que pertenece a esa relación es funcionalmente dependiente de otro atributo x (que también pertenece a esa relación) y se expresa de la forma x y si, y solo si, cada valor de x tiene asociado a él exactamente un valor de y para cualquier estado o extensión de la relación R.Podemos añadir que: “siempre que dos o más tuplas de R coincidan en sus valores de x , también para esas tuplas, existirá una coincidencia en los valores del atributo y”.
Para hablar de normalización expresaremos las relaciones o tablas asi: R(A, DF) donde R es el nombre de la tabla, A es el conjunto de atributos de esa tabla y DF es el conjunto de las dependencias funcionales de esa tabla.
89
• Ejemplo: R ( A, DF ).R (Relación): pedidosA (Atributos): {artículo, cliente, cantidad, precio, ciudad,
distancia}. DF (Dependencias funcionales): ({artículo, cliente} {cantidad,
precio, ciudad, distancia},artículo precio,cliente {ciudad, distancia},ciudad distancia )
90
Ejemplos de dependencias funcionales:
Población Nº Habitantes
Fecha Nacimiento Horóscopo
DNI Nombre, Apellidos, fecha_nacimiento
Provincia Comunidad_autónoma
A X lo llamaremos determinante o implicante y a Y lo llamaremos implicado.
Dos atributos son equivalentes si:XY y YX lo que se puede representar XY
91
La dependencia X Y es:
DF completa si, y solo si, y depende funcionalmente de x y no de ningún subconjunto de los atributos que formen parte del atributo x.
DF trivial si Y es un subconjunto de X Nombre_profesor Nombre_profesorCód_curso, Cod_edición Cod_curso
DF elemental si Y es un único atributo y no está contenido dentro de X, se trata de una dependencia completa y no trivial.
Nombre_profesor DNI_profesorDF transitiva Dado el esquema R(X,Y,Z) en la que existen las siguientes dependencias funcionales:
XYYZY -/-> X X Z transitivamente a través de Y.
92
Cálculo de claves candidatasLlamamos superclave de la relación R a un conjunto no vacío de atributos que determinan a todos los de la relación.El cierre transitivo de un atributo X se define como el conjunto de atributos determinados por X, se denota como X+. El cierre transitivo de la clave debe determinar a todos los atributos.Se denomina Clave candidata de una relación a una superclave que cumple que ningún subconjunto de la misma determina a todos los atributos de la relación.
Ejemplo:
R({A,B,C,D} , {A B, D ; B C })
Clave candidataA+ ={ A, B, D, C }B+={ B, C }C+={ C }D+={ D }
93
Atributos principales o primarios:
• Un atributo es principal (o primario) cuando forma parte de alguna de las claves candidatas de la relación.
• Un atributo es no principal (o no primario) cuando no forma parte de ninguna de las claves candidatas
R({A,B,C,D} , {A B, D ; B C })
A+ ={ A, B, D, C } Atributo principalB+={ B, C }C+={ C } Atributos no principalesD+={ D }
94
Formas normales básicas
La teoría de la normalización se centra en lo que se conoce como “Formas Normales”. Se dice que un esquema relacional está en una determinada forma normal si satisface un conjunto específico de restricciones.
Codd propuso en 1970 tres formas normales basadas en las Dependencias Funcionales. (1FN, 2FN y 3FN)
Debido a que en 3FN aún persisten ciertos problemas en determinadas relaciones en 1974 Boyce y Codd introdujeron una definición más restrictiva de la 3FN que se denominó Forma Normal de Boyce-Codd (FNBC)
95
Relaciones en 5ªFN
Relaciones en 4ªFN
Relaciones en FNBC
Relaciones en 3ªFN
Relaciones en 2ªFN
Relaciones normalizadas
Relaciones
Cuando una relación está en una forma normal determinada, a la vez satisface todas las restricciones impuestas por las formas normales menores.
96
• Una relación está en 1FN cuando los dominios de cada atributo están formados por valores atómicos.
• Es una restricción inherente al modelo relacional, por lo que su cumplimiento es obligatorio.
• En una relación no se admiten grupos o valores multivaluados.
97
COD-EMPLEADO NOMBRE IDIOMA
10111 PEDROESPAÑOLITALIANO
10112 JUAN ESPAÑOL
Tablas en 1ª FN:
a)
b)
c)
COD-EMPLEADO
NOMBRE IDIOMA
10111 PEDRO ESPAÑOL
10111 PEDRO ITALIANO
10112 JUAN ESPAÑOL
COD-EMPLEADO
NOMBRE
10111 PEDRO
10112 JUAN
COD-EMPLEADO
IDIOMA
10111 ESPAÑOL
10111 ITALIANO
10112 ESPAÑOL
COD-EMPLEADO
NOMBRE IDIOMA1 IDIOMA2
10111 PEDRO ESPAÑOL ITALIANO
10112 JUAN ESPAÑOL
Problema:
98
Una Relación está en 2FN si:• Está en 1FN• Cada atributo no primario depende funcionalmente de manera total de la clave completa de la relación.
Ejemplo:
Prestan(cod_estudiante, cod_libro, editorial)
clave: cod_estudiante,cod_librocod_libro editorial NO ESTA EN 2FN
No se cumple cuando algún atributo no principal depende funcionalmente de algún subconjunto de la clave.LAS RELACIONES CON UN SOLO ATRIBUTO COMO CLAVE ESTÁN AL MENOS EN 2FN
99
Ejemplo:
PEDIDOS (articulo, cliente, cantidad, precio, ciudad, distancia) no está en 2FN, ya que precio depende de articulo y distancia depende de ciudad.
PEDIDOS se descompone en: PEDIDOS'({artículo,cliente, cantidad}, {[artículo,cliente] cantidad}) ARTICULOS ({artículo, precio}, {artículo precio} ) CLIENTES({cliente,ciudad,distancia},{clienteciudad,ciudaddistancia})
3ª Forma normal3ª Forma normalUna relación está en 3FN si:
• Está en 2FN.• No existe ningún atributo no primario (no forma parte de la clave) que dependa transitivamente de alguna clave de la relación.
La 3FN no se cumple cuando existen atributos no primarios que dependen funcionalmente de otros atributos no primarios.
Estudiante(Cod_Estudiante, Cod_Proyecto, Nom_proyecto )Cod_proyecto nom_proyecto NO ESTA EN 3FN
Se puede afirmar que toda relación con dos atributos se encuentra automáticamente en 3FN, así como toda relación cuyos atributos son todos principales, o bien cuando hay un único atributo no principal.
Una relación está en 3FN si:• Está en 2FN.• No existe ningún atributo no primario (no forma parte de la clave) que dependa transitivamente de alguna clave de la relación.
La 3FN no se cumple cuando existen atributos no primarios que dependen funcionalmente de otros atributos no primarios.
Estudiante(Cod_Estudiante, Cod_Proyecto, Nom_proyecto )Cod_proyecto nom_proyecto NO ESTA EN 3FN
Se puede afirmar que toda relación con dos atributos se encuentra automáticamente en 3FN, así como toda relación cuyos atributos son todos principales, o bien cuando hay un único atributo no principal.
Ejemplo:
CLIENTES (cliente, ciudad, distancia) distancia depende transitivamente de cliente no está en 3FN
CLIENTES la descomponemos en:CLIENTES' ({cliente, ciudad}, {cliente ciudad})CIUDADES ({ciudad, distancia}, {ciudad distancia})
Ejemplo:
CLIENTES (cliente, ciudad, distancia) distancia depende transitivamente de cliente no está en 3FN
CLIENTES la descomponemos en:CLIENTES' ({cliente, ciudad}, {cliente ciudad})CIUDADES ({ciudad, distancia}, {ciudad distancia})
Forma normal de Boyce-Codd (FNBC)Forma normal de Boyce-Codd (FNBC)
Una relación está en FNBC si todo determinante es clave candidata
ASISTE(Cod_curso, Nom_Curso, Cod_Estudiante, Calificación)
Una relación está en FNBC si todo determinante es clave candidata
ASISTE(Cod_curso, Nom_Curso, Cod_Estudiante, Calificación)
Cod_curso Nom_CursoCod_curso,Cod_Estudiante CalificaciónNom_Curso,Cod_Estudiante Calificación
Claves candidatas: (Cod_curso,Cod_Estudiante) (Nom_Curso,Cod_Estudiante)
Asiste está en 3FN (sólo hay un atributo no principal) pero no está en FNBC ya que tanto Cod_Curso como Nom_Curso son
determinantes pero no son claves.
Si una relación cuyas claves no están solapadas se encuentran en 3FN también lo estarán en FNBC.La existencia de claves candidatas solapadas no lleva consigo que la relación no esté en FNBC.
Ejemplo:Se_Matricula (A={Cod_Curso, Cod_Edición, Cod_Estudiante, Fecha}
DF={Cod_Curso,Cod_Edición,Cod_EstudianteFecha, Cod_Edición,Cod_Estudiante,FechaCod_Curso })
Claves candidatas: (Cod_Curso,Cod_Edición,Cod_Estudiante) (Cod_Edición,Cod_Estudiante,Fecha)
Como sólo ellos son descriptores y son claves Se_Matricula está en FNBC
Si una relación cuyas claves no están solapadas se encuentran en 3FN también lo estarán en FNBC.La existencia de claves candidatas solapadas no lleva consigo que la relación no esté en FNBC.
Ejemplo:Se_Matricula (A={Cod_Curso, Cod_Edición, Cod_Estudiante, Fecha}
DF={Cod_Curso,Cod_Edición,Cod_EstudianteFecha, Cod_Edición,Cod_Estudiante,FechaCod_Curso })
Claves candidatas: (Cod_Curso,Cod_Edición,Cod_Estudiante) (Cod_Edición,Cod_Estudiante,Fecha)
Como sólo ellos son descriptores y son claves Se_Matricula está en FNBC