Tema 2

103
El modelo relacional 1

description

El modelo relacional. Tema 2. 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. - PowerPoint PPT Presentation

Transcript of Tema 2

Page 1: Tema 2

El modelo relacional

1

Page 2: Tema 2

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

Page 3: Tema 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

Page 4: Tema 2

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

Page 5: Tema 2

Entidad ( entity ) Atributo ( attribute ) Dominio ( values set ) Relación ( relationship )

5

Conceptos básicos del modelo

5

Page 6: Tema 2

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

Page 7: Tema 2

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

Page 8: Tema 2

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

Page 9: Tema 2

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

Page 10: Tema 2

TIPOS DE ATRIBUTOS

Simples o Compuestos Básicos o Derivados Monovalorados o Multivalorados Opcionales

1010

Page 11: Tema 2

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

Page 12: Tema 2

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

Page 13: Tema 2

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

Page 14: Tema 2

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

Page 15: Tema 2

15

NOTACIÓN PARA ATRIBUTOS

15

Page 16: Tema 2

1616

Page 17: Tema 2

17

Otra posible notación…

17

Page 18: Tema 2

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

Page 19: Tema 2

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

Page 20: Tema 2

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

Page 21: Tema 2

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

Page 22: Tema 2

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

Page 23: Tema 2

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

Page 24: Tema 2

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

Page 25: Tema 2

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

Page 26: Tema 2

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

Page 27: Tema 2

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

Page 28: Tema 2

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

Page 29: Tema 2

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

Page 30: Tema 2

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

Page 31: Tema 2

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

Page 32: Tema 2

Comparación de notaciones

32

EMPLEADOLOCAL

VIDEOCLUBSUPERVISA1 N

EMPLEADO LOCALVIDEOCLUB

1:N

SUPERVISA(1,1) (0,n)

32

Page 33: Tema 2

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

Page 34: Tema 2

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

Page 35: Tema 2

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

Page 36: Tema 2

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

Page 37: Tema 2

Comparación de conceptos y notación

37

numprestamo

CLIENTE

PRESTAMO

POSEE 1:NE

dni

(1,1)

(0,n)

Dependencia en existencia

37

Page 38: Tema 2

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

Page 39: Tema 2

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

Page 40: Tema 2

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

Page 41: Tema 2

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

Page 42: Tema 2

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

Page 43: Tema 2

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.

Page 44: Tema 2

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

Page 45: Tema 2

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.

Page 46: Tema 2

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.

Page 47: Tema 2

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

Page 48: Tema 2

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.

Page 49: Tema 2

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

Page 50: Tema 2

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.

Page 51: Tema 2

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

Page 52: Tema 2

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.

Page 53: Tema 2

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

Page 54: Tema 2

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.

Page 55: Tema 2

55

Page 56: Tema 2

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.

Page 57: Tema 2

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.

Page 58: Tema 2

58

Page 59: Tema 2

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

Page 60: Tema 2

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.

Page 61: Tema 2

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.

Page 62: Tema 2

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.

Page 63: Tema 2

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.

Page 64: Tema 2

64

1.- Eliminación de identificadores externos

Page 65: Tema 2

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

Page 66: Tema 2

66

3.- Eliminación de atributos multivaluados.-

Requieren la introducción de entidades nuevas.

Page 67: Tema 2

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.

Page 68: Tema 2

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.

Page 69: Tema 2

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

Page 70: Tema 2

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.

Page 71: Tema 2

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

Page 72: Tema 2

72

Page 73: Tema 2

73

• Interrelaciones 1:1: Contemplamos 3 casos:o Si hay muchos valores nulos se crea una nueva relación.

Page 74: Tema 2

74

o Si sólo hay nulos en un lado se propaga la clave:

Page 75: Tema 2

75

o Si no hay nulos se propaga la clave:

CONDUCTORCOCHECONDUC

E(1,1) (1,1)

1:1

CONDUCTOR(DNI, ........,MATRICULA)

COCHE(MATRICULA,........)

DNIMATRICULA

Page 76: Tema 2

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.

Page 77: Tema 2

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

Page 78: Tema 2

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.

Page 79: Tema 2

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.

Page 80: Tema 2

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)

Page 81: Tema 2

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.

Page 82: Tema 2

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.

Page 83: Tema 2

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

Page 84: Tema 2

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

Page 85: Tema 2

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.

Page 86: Tema 2

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:

Page 87: Tema 2

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.

Page 88: Tema 2

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.

Page 89: Tema 2

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 )

Page 90: Tema 2

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

Page 91: Tema 2

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.

Page 92: Tema 2

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 }

Page 93: Tema 2

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 }

Page 94: Tema 2

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)

Page 95: Tema 2

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.

Page 96: Tema 2

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.

Page 97: Tema 2

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:

Page 98: Tema 2

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

Page 99: Tema 2

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})

Page 100: Tema 2

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.

Page 101: Tema 2

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})

Page 102: Tema 2

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.

Page 103: Tema 2

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