SlideShare una empresa de Scribd logo
1 de 83
Descargar para leer sin conexión
Diseño Lógico de Bases de
Datos – Modelo Relacional
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 2
Índice
1. El modelo relacional.
2. Transformación E/R al modelo relacional.
3. Normalización.
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 3
Objetivos
Aplicar reglas de integridad.
Identificar reglas de normalización.
Identificar y documentar reglas que no se pueden plasmar
en el diseño lógico
1. El Modelo Relacional
1. Las relaciones en el modelo relacional
2. Otros conceptos del modelo relacional
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 5
1. El Modelo Relacional
El objetivo principal del modelo relacional es proteger al
usuario de la obligación de conocer las estructuras de
datos físicas con las que se representa la información de
una BBDD, así se permite que la BBDD pueda
implementarse en cualquier gestor de BBDD relacional
(SQL). Las características de este modelo es:
La relación es el elemento fundamental del modelo. Estas
relaciones se pueden operar mediante el Álgebra
Relacional.
El modelo relacional es independiente de la forma en que se
almacenan los datos y de la forma de representarlos, por
tanto la BBDD se puede representar en cualquier SGBD .
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 6
1. El Modelo Relacional
Al estar fundamentado en una fuerte base matemática, se
puede demostrar la eficacia del modelo a la hora de operar
conjuntos de datos.
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 7
1.1. Las Relaciones en Mod. Relacional
Se define una relación como un conjunto de atributos,
cada uno de los cuales pertenece a un dominio, y que
posee un nombre que identifica la relación. Se representa
gráficamente por una tabla con columnas (atributos) y
filas (tuplas). El conjunto de tuplas de una relación
representa el cuerpo de la relación y el conjunto de
atributos y el nombre representan el esquema.
Actualmente los modelos lógicos más extendidos con
diferencia son el modelo relacional y los diagramas de
clases que utiliza UML para modelar las BBDD orientadas a
objetos. El modelo relacional de Cood se ajusta a la
perfección al modelo E/R de Chen.
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 8
1.1. Las Relaciones en Mod. Relacional
MATRÍCULA NOMBRE APELLIDOS CURSO NOTA
3256 José Pérez de Lastra 1 5,25
0101 María Anúnez Sastre 2 7,80
8743 Lourdes Sánchez Argote 1 4,50
1234 Antonio Soria Madrid 3 6,35
5674 Luis González Silos 1 3,25
0678 Pilar Alcántara Badajoz 2 5,50
0346 Dolores Almiz Márquez 3 7,30
2985 Manuel Rivas Fuentes 3 3,50
Atributos
RELACIÓN ALUMNOS Nombre
Esquema
Tuplas
Cuerpo
Estado
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 9
1.2. Otros conceptos
Vamos a definir los conceptos necesarios para transformar
el modelo conceptual (diagrama E/R) en el modelo lógico
(modelo relacional).
Atributos: características que describen a una entidad o
relación.
Dominio: conjunto de valores permitidos para un atributo.
Por ejemplo, cadena de caracteres, número enteros, los
valores Sí o No, etc.
Restricciones de semántica: condiciones que deben
cumplir los datos para su correcto almacenamiento. Hay
varios tipos:
Restricciones de clave: es el conjunto de atributos que
identifican de forma única a una entidad.
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 10
1.2. Otros conceptos
Restricciones de valor único (UNIQUE): impide que un atributo
tenga un valor repetido. Todos los atributos clave cumplen esta
restricción. Puede ser que algún atributo que no sea clave sea
necesaria esta restricción, por ejemplo, el número de bastidor
de un coche, que no es clave principal, lo es matrícula, no se
puede repetir.
Restricciones de integridad referencial: se da cuando una tabla
tiene una referencia a algún valor de otra tabla. En este caso la
restricción exige que exista el valor referenciado a la otra tabla.
Por ejemplo, no se puede poner una nota a un alumno que no
exista.
Restricciones de dominio: exige que el valor que puede tomar
un campo este dentro del dominio definido. Por ejemplo, si se
establece que un campo DNI pertenece al dominio de los
números de 9 dígitos + 1 letra no es posible insertar un DNI sin
letra.
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 11
1.2. Otros conceptos
Restricciones de verificación (CHECK): permite comprobar
si un valor de un atributo es válido conforme a una
expresión.
Restricción de valor NULO (NULL o NOT NULL): un
atributo puede ser obligatorio si no admite el valor NULO
o NULL. Si admite como valor el valor NULL el atributo es
opcional.
Disparadores o triggers: son procedimientos que se
ejecutan para hacer una tarea concreta en el momento
de insertar, modificar o eliminar información de un tabla.
Restricciones genéricas adicionales o aserciones
(ASSERT): permite validar cualquiera de los atributos de
una o varias tablas.
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 12
1.2. Otros conceptos
Clave: una clave es un conjunto de atributos que identifican
de forma única una ocurrencia de entidad. Las claves pueden
ser simples (atómicas) o compuestas. Hay varios tipos de
claves:
Superclave: identifican a una entidad. Por ejemplo, para un
empleado, las superclaves posibles son el DNI, o el
DNI+Nombre o el DNI+Nombre+Número de la Seguridad
Social, etc.
Clave Candidata: La clave candidata de una relación es el
conjunto de atributos que determinan unívoca y mínimamente
cada tupla. Siempre hay una clave candidata pues por definición
no puede haber dos tuplas iguales En una relación pueden
existir varias claves candidatas.
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 13
1.2. Otros conceptos
EMPLEADOS (CÓDIGO, DNI, DIRECCIÓN, TFNO, SUELDO,
COMISIÓN)
En esta relación podrían ser claves candidatas tanto código
como DNI
Clave Primaria: es la clave candidata elegida pro el diseñador
como clave definitiva, en el ejemplo anterior se elegiría Código
y se representa subrayada. A la clave candidata no elegida
como clave primaria se le llama clave alternativa.
Clave Ajena o Foránea: es un atributo de una entidad, que es
clave en otra entidad
Por ejemplo,
EMPLEADOS (CÓD-EMP, DNI, NOMBRE, TFNO, …,, COD-
DEP(FK))
DEPARTAMENTOS (COD-DEP, NOMBRE, LOCALIDAD)
COD-DEP: clave ajena que referencia a COD-DEP
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 14
1.2. Otros conceptos
Por ejemplo
EDITORIAL (cod_edit, nombre, dirección, ciudad)
LIBRO (código, título, idioma, …, cod_edit(FK))
ESCRIBE (cod_autor(FK), cod_libro(FK))
AUTOR (cod_autor, nombre, nacionalidad)
Cod_edit: clave ajena que referencia a cod_edit de la
tabla EDITORIAL.
COD-LIBRO: clave ajena que referencia a código de
la tabla LIBRO.
Cod_autor: clave ajena que referencia a cod_autor de
la tabla AUTOR.
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 15
1.2. Otros conceptos
Para las claves ajenas existe la regla de Integridad referencial
que establece que los valores de la clave ajena o bien coinciden
con los de la clave primaria a la que referencian o bien son
nulos. Por tanto, para cada clave ajena se debe especificar si
puede o no tomar valores nulos. Además es necesario
determinar las consecuencias de ciertas operaciones (borrado y
modificación) realizadas sobre tuplas de la relación referenciada.
Se puede distinguir entre:
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 16
1.2. Otros conceptos
Operación restringida (RESTRICT): el borrado o modificación
de tuplas de la relación que contienen la clave primaria referenciada
sólo se permite si no existen tuplas con dicha clave en la relación
que contiene la clave ajena. Por ejemplo, en el caso anterior esto
implicaría que sólo podemos borrar una editorial en el que no haya
ningún libro de esa editorial, si no, el sistema impediría el borrado.
Operación con transmisión en cascada (CASCADE): el
borrado o modificación de tuplas de la relación que contienen la
clave primaria referenciada lleva consigo el borrado o modificación
en cascada de las tuplas de la relación que contienen la clave ajena.
Por ejemplo, en el caso anterior al modificar el código de una
editorial, se debe modificar también dicho código en todos los libros
de nuestra Base de Datos que sean de dicha editorial.
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 17
1.2. Otros conceptos
Operación con puesta a nulos (SET NULL): el borrado o
modificación de tuplas de la relación que contienen la clave primaria
referenciada lleva consigo “poner a nulos” los valores de las claves
ajenas de la relación que referencia. Por ejemplo, en el caso
anterior cuando se borra una editorial, a todos aquellos libros que
sean de esa editorial y que se encuentran en la relación LIBROS se
les coloca el atributo cod_edit a nulo. Esta opción sólo es posible
cuando el atributo que es clave ajena admite el valor nulo.
Operación con puesta a valor por defecto (SET DEFAULT): el
borrado o modificación de tuplas de la relación que contienen la
clave primaria referenciada lleva consigo “poner al valor por defecto
a la clave ajena de la relación que referencia; valor por defecto que
habrá sido definido al crear la tabla correspondiente.
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 18
1.2. Otros conceptos
Operación que desencadena un procedimiento de usuario: el
borrado o modificación de tuplas de la relación que contienen la
clave primaria referenciada lleva consigo la puesta en marcha de un
procedimiento definido por el usuario.
Las opciones seleccionadas para el borrado y modificación son
independientes.
2. Transformación de un diagrama
E/R al modelo relacional
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 20
2. Transformación del modelo E/R al
modelo relacional
Transformación del modelo E/R en relacional
REGLAS DE
TRANSFORMACIÓN
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 21
La transformación del modelo conceptual (E/R) al
modelo lógico (relacional) se basa en las siguientes
reglas:
Toda entidad se transforma en una tabla.
Todo atributo se transforma en columna dentro de una tabla.
Los atributos AIP (atributo identificador principal), se
convierten en Clave Primaria y los AIA (atributos identificador
alternativo) en Clave alternativa.
Toda relación N:M se transforma en una tabla que tendrá
como clave primaria la concatenación de los atributos clave
de las entidades que asocia
2. Transformación del modelo E/R al
modelo relacional
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 22
En el diagrama E/R, las tablas generadas son:
CLIENTES (Cod_cliente, Nombre, Dirección)
ARTÍCULOS (Cod_articulo, Precio, Stock, Denominación)
COMPRAS (Cod_cliente(FK), Cod_articulo(FK), Uni_vend,
Fecha_venta)
2. Transformación del modelo E/R al
modelo relacional
CLIENTE ARTÍCULO
COMPR
A
(0,n) (1,n)
Dirección Cod_articulo precio
Denominación
nombre
Cod_cliente
N:M
Uni_vend
stock
Fecha_venta
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 23
Transformación de entidades fuertes:
Para cada entidad A, entidad fuerte, con atributos (a1,
a2,...,an) e crea una tabla A (con el nombre en plural) con n
columnas correspondientes a los atributos de A, donde cada
fila de la tabla A corresponde a una ocurrencia de la entidad
A. La clave primaria de la tabla A la forman los atributos
clave de la entidad A.
2. Transformación del modelo E/R al
modelo relacional
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 24
En el diagrama E/R, las tablas generadas son:
CATEGORÍAS (código, descripción)
PRODUCTOS (código, nombre,precio)
CATEGORÍA PRODUCTO
pertenec
e
(1,1) (0,n)
Descripción código
nombre
precio
Código 1:N
2. Transformación del modelo E/R al
modelo relacional
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 25
Relaciones con cardinalidad 1:N: existen dos soluciones
Transformar la relación en una tabla: se hace como si se
tratara de una relación N:M. Esta solución se realiza cuando
se prevé que en un futuro la relación se convertirá en N:M y
cuando la relación tiene atributos propios. También se
crea una nueva tabla cuando la participación es
opcional, es decir, (0,1) y (0,N). La clave de esta tabla es
la de la entidad del lado muchos.
2. Transformación del modelo E/R al
modelo relacional
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 26
FACTURAS (Num_factura, Fecha-emisión, Total-factura)
ALBARANES (Num_albarán, Fecha-venta, Total-alabarán)
FAT-ALB (Num_factura(FK), Num_albarán(FK), Descuento)
Donde Num-albarán es la Clave Principal, y tanto
Num_albaran como Num-factura son claves ajenas que
referencian a sus respectivas tablas
2. Transformación del modelo E/R al
modelo relacional
FACTURA ALBARÁN
asocia
(0,1) (0,n)
Fecha_emisió
n
Num_albará
n
Fecha_venta
Total_albarán
Num_factura 1:N
Total_factura descuento
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 27
Relaciones con cardinalidad 1:N: existen dos soluciones
Propagar la clave: este caso se aplica cuando la
cardinalidad es obligatoria, es decir, cuando tenemos
participaciones (1,1) y (0,N) ó (1,N). Se propaga el atributo
principal de la entidad que tienen de cardinalidad máxima 1 a
la que tiene de cardinalidad máxima N, desapareciendo el
nombre de la relación. Si existen atributos propios en la
relación, estos también se propagarán
2. Transformación del modelo E/R al
modelo relacional
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 28
EDITORIALES (Nombre, Director, Dirección)
REVISTAS (Título, Editor, Ejemplares, Nombre(FK))
Donde NOMBRE es una clave ajena que referencia a la tabla
EDITORIAL
2. Transformación del modelo E/R al
modelo relacional
REVISTA EDITORIAL
edita
({0/1},N) (1,1)
editor nombre
director
dirección
Título 1:N
ejemplares
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 29
TEMAS (Cod_tema, Descripción)
LIBROS (Cod_libro, Autor, Isbn, Título, Num_ejemplares,
Cod_tema(FK))
Se propaga la clave, de la entidad TEMAS a la entidad
LIBROS.
2. Transformación del modelo E/R al
modelo relacional
TEMA LIBRO
clasifica
(1,1) (0,n)
descripcion Cod_libro
Num_ejemplare
s
Título
Cod_tema 1:N
ISBN
Autor
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 30
En la transformación de relaciones 1:1 se tiene en cuenta las
participaciones de las entidades que participan. Existen dos soluciones:
Transformar la relación en una tabla: si las entidades poseen
participación (0,1), la relación se convierte en una tabla.
Propagar la clave: si una de las entidades posee participación (0,1) y la
otra (1,1), conviene propagar la clave de la entidad con participación (1,1) a
la tabla resultante de la entidad de participación (0,1). Si ambas entidades
poseen participaciones (1,1), se puede propagar la clave de cualquiera de
ellas a la tabla resultante de la otra. En este caso, también se pueden añadir
los atributos de una entidad a otra, resultando una única tabla con todos los
atributos de las entidades y de la relación, si los hubiera, eligiendo como
clave primaria una de las dos.
2. Transformación del modelo E/R al
modelo relacional
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 31
EMPLEADOS (Nif,nombre, Ocupación, Nivel, Fecha_Nac,
Hobbies, Dirección)
Donde NIF será la Clave Principal.
2. Transformación del modelo E/R al
modelo relacional
Fecha_nac.
EMPLEADO
DATOS
EMPLEADO
(1,1) (1,1)
nombre NIF
hobbie
s
NIF
1:1
dirección
nivel
ID
ocupación
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 32
EMPLEADOS (Nif, Nombre,Ocupación, Nivel)
ELECTRODOMÉSTICOS (Código, nombre, Marca,
Modelo, Nif(FK))
Donde NIF será la C. Ajena que referencia a EMPLEADO
2. Transformación del modelo E/R al
modelo relacional
marca.
EMPLEADO ELECTRODO
MÉSTICO
mantien
e
(1,1) (0,1)
nombre CODIGO
modelo
NIF
1:1
nombre
nivel ocupación
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 33
Ejercicios 1
Un empleado ocupa un solo puesto de trabajo, y ese
puesto de trabajo es ocupado por un solo empleado o
por ninguno. De los empleados queremos guardar su
código, nombre, dirección y teléfono. Del puesto de
trabajo el código, descripción, oficina, despacho y
mesa. Realiza el Modelo E/R y transfórmalo al Modelo
Relacional.
2. Transformación del modelo E/R al
modelo relacional
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 34
Ejercicios 2
Se desea mecanizar la biblioteca de un centro educativo. En la
biblioteca existen fichas de autores y libros. Un autor puede escribir
varios libros, y un libro puede ser escrito por varios autores. Un
libro está formado por ejemplares que son los que se prestan a los
usuarios. Así un libro tiene muchos ejemplares y un ejemplar
pertenece solo a un libro. De los ejemplares nos interesa saber la
localización dentro de la biblioteca, los ejemplares son prestados a
los usuarios, un usuario puede tomar prestados varios ejemplares y
un ejemplar puede ser prestado a varios usuarios. Del préstamo nos
interesa saber la fecha de préstamo y la de devolución
2. Transformación del modelo E/R al
modelo relacional
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 35
Relaciones Reflexivas o recursivas: son relaciones
binarios en las que participa un tipo de entidad. En el
proceso de convertir una relación reflexiva a tabla hay que
tener en cuenta sobre todo la cardinalidad. Lo normal es
que toda relación reflexiva se convierta en dos tablas, una
para la entidad y otra para la relación. Se puede presentar
los siguientes pasos:
Si la relación es 1:1, la clave de la entidad se repite, con lo
que la tabla resultante tendrá dos veces ese atributo, una
como clave primaria y otra como clave ajena de ella misma.
No se crea la segunda tabla
2. Transformación del modelo E/R al
modelo relacional
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 36
Si la relación es 1:N, podemos tener dos casos:
Caso de que la entidad muchos sea siempre obligatoria se
procede como en el caso 1:1
Si no es obligatoria, se crea una nueva tabla cuya clave será
la de la entidad del lado muchos, y además se propaga la
clave a la nueva tabla como clave ajena.
Si es N:N se trata igual que en las relaciones binarias. La
tabla resultante de la relación contendrá dos veces la clave
primaria de la entidad del lado muchos, más los atributos
de las relaciones si los hubiera. La clave de esta nueva
tabla será la combinación de las dos.
2. Transformación del modelo E/R al
modelo relacional
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 37
Ejemplo1:
Consideramos la relación Empleado-dirige-empleado. Un
empleado puede dirigir a muchos empleados o a ninguno si
es el que dirige. Y un empleado es dirigido por un director o
por ninguno si el es el que dirige. En este caso no ha
obligatoriedad en la entidad muchos. El Modelo E/R es:
2. Transformación del modelo E/R al
modelo relacional
EMPLEADO Dirige
(0,N)
(0,1)
1:N
Cod_emple Dirección
Nombre
Tlf
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 38
La tabla dirige tiene como clave primaria el código de
empleado, que a su vez será clave ajena. Además se le
añade el código de empleado pero, en este caso, tendrá el
papel de director, que a su vez será clave ajena a la tabla
EMPLEADO. El resultado será:
EMPLEADO (cod_emple, dirección, teléfono, nombre)
Dirige (cod_emple, cod_emple-director(FK))
2. Transformación del modelo E/R al
modelo relacional
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 39
Ejemplo2:
Consideramos la relación una pieza se compone de muchas
piezas, que a su vez están compuestas de otras piezas, es
decir Pieza_Compone_Pieza. El Modelo E/R es:
2. Transformación del modelo E/R al
modelo relacional
PIEZA COMPONE
(1,N)
(1,N)
N:N
Cod_pieza Descripción
tamaño
color
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 40
PIEZA (cod_pieza, descripción, tamaño, color)
COMPONE_PIEZA (cod_pieza_comp(FK), cod_pieza)
Cod_pieza_comp es clave ajena
2. Transformación del modelo E/R al
modelo relacional
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 41
Transformación de otros elementos del modelo E-R
Jerarquías al modelo relacional
El modelo relacional no dispone de mecanismos fáciles de usar
que permitan la representación de relaciones jerárquicas, por lo
tanto se tienen que eliminar. Para pasar estas relaciones al
modelo relacional se aplicará una de las siguientes reglas:
2. Transformación del modelo E/R al
modelo relacional
ANIMAL
DELFÍNÁGUILAGATO
tipo
código
color comida
ala
s
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 42
Integrar todas las entidades en una única eliminando a los
subtipo. Esta nueva entidad contendrá todos los atributos del
supertipo, todos los de los subtipos, y los atributos discriminativos
para distinguir a qué subentidad pertenece cada atributo. Todas las
relaciones se mantiene con la nueva entidad.
ANIMALES (código,tipo, color, alas, comida)
Eliminación del supertipo, transfiriendo los atributos del
supertipo a cada uno de los subtipos. El atributo de la relación se
puede o no transferir. Las relaciones del supertipo se consideran
para cada uno de los subtipos. Solo puede ser aplicada para
jerarquías totales y exclusivas.
GATOS (código, tipo, color)
AGUILAs (código, tipo, alas)
DELFINES (código, tipo, comida)
2. Transformación del modelo E/R al
modelo relacional
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 43
Insertar una relación 1:1 entre el supertipo y cada uno de los
subtipos. Los atributos se mantienen y cada subtipo se identificará
con la clave ajena del supertipo. El supertipo mantendrá una
relación 1:1 con cada subtipo. Los subtipos mantendrán, si la
relación es exclusiva, la cardinalidad mínima 0, y si es inclusiva 0 ó
1.
ANIMALES (código, tipo)
GATOS (código (FK), tipo, color)
AGUILAS (código(FK), tipo, alas)
DELFINES (código(FK), tipo, comida)
2. Transformación del modelo E/R al
modelo relacional
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 44
Transformación de otros elementos del modelo E/R
Relaciones N-arias
En este tipo de relaciones ser agrupan 3 o más entidades y para
pasar al modelo de datos relacional cada entidad se convierte
en tabla, así como la relación, que va a contener los atributos
propios de ella más las claves de todas las entidades. La clave
de la tabla resultante será la concatenación de las claves de las
entidades. Hay que tener en cuenta que:
Su la relación es N:N:N, es decir, si todas las entidades
participan con cardinalidad N, la clave de la tabla resultante es la
unión de las claves de las entidades que relaciona. Esa tabla
incluirá los atributos de la relación si lo hubiera.
2. Transformación del modelo E/R al
modelo relacional
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 45
Ejemplo
PROFESORES (cod_profesor, dirección, nombre, tlf, especialidad)
CURSOS (cod_curso, descripción, nivel, turno)
ASIGNATURAS(Cod_asignatura, nombre)
IMPARTE (cod_profesor(FK), cod_curso(FK), cod_asignatura(FK))
2. Transformación del modelo E/R al
modelo relacional
PROFESOR CURSO
Imparte
(1,N) (1,N)
Cod_profesor Nombre
Tlf
Especialidad
Dirección
Cod_curso
Turno
N:N:N
Nivel
ASIGNATURA
Nombre
Cod_asignatura
(1,N)
Descripción
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 46
Ejemplo
CLIENTES (cod_cliente, nombre),
EMPLEADO (cod_empleado, tlf, salario, fecha_alta)
COCHES(Cod_coche, modelo, matrícula, precio)
VENTA (cod_coche(FK), cod_cliente(FK), cod_empleado(FK),
forma_pago, fecha_venta)
2. Transformación del modelo E/R al
modelo relacional
EMPLEADO COCHE
Venta
(1,1) (1,N)
Cod_empleado Nombre
Tlf Fecha_alta
Salario
Cod_coche
precio
1:N:N
modelo
Matrícula
CLIENTES
Nombre
Cod_cliente
(1,N)
Forma_pago
Fecha_venta
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 47
Resumen
2. Transformación del modelo E/R al
modelo relacional
MODELO ENTIDAD RELACIÓN MODELO RELACIONAL
ENTIDAD TABLA
BINARIAS
1:N Propagar la clave: clave ajena (tabla con N), o bien otra tabla
1:1 Propagar la clave: clave ajena, o bien otra tabla o bien uniendo las dos entidades en una tabla
N:N Otra tabla nueva, con clave primaria igual a la suma de las claves primarias de las dos tablas
REFLEXIVA
S
1:N Clave ajena o bien otra tabla
1:1 Clave ajena o bien otra tabla
N:N Otra tabla nueva, relación con clave principal igual a la clave principal de la entidad duplicada
TERNARIAS
Se crea una tabla nueva y a la hora de elegir la clave se tendrá en cuenta:
1. 1.- Concatenación de claves primarias de las entidades, con grado diferente a 1 (N,N,N...)
2. 2.- Si alguna tiene cardinalidad máxima 1, al menos ha de haber (N-1) claves primarias de otras
(N-1) entidades, y han de participar en la relación las claves primarias de las entidades con
cardinalidad máxima 1.
Relaciones
EJERCICIO 1 y 2
3. Normalización
1. Teoría de la Normalización.
2. Noción intuitiva de las Formas Normales.
3. Primera Forma Normal.
4. Segunda Forma Normal.
5. Tercera Forma Normal.
6. Forma Normal de Boyce-Cood.
7. Otras Formas Normales.
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 49
La Teoría de la normalización define una serie de reglas que
debe cumplir un modelo relacional para garantizar:
Que no existen redundancias en la base de datos, con lo que se
disminuye el espacio requerido para el almacenamiento de la
información y se reducen los problemas de integridad de la
información almacenada en la base de datos.
Que se representa de forma coherente los objetos y relaciones
existentes en el sistema.
Que el rendimiento de las operaciones de actualización es el
máximo posible.
Que las operaciones de consulta son fiables y su rendimiento es el
máximo posible
3.1. Teoría de la Normalización
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 50
A este conjunto de reglas se les denomina Reglas de
normalización de relaciones. Se dice que una relación está en
una determinada forma normal si satisface un cierto conjunto
específico de restricciones impuestas por la regla de
normalización correspondiente.
La sucesiva aplicación de las reglas de normalización,
empezando por la Primera Forma Normal, da lugar a un mayor
número de relaciones en el esquema que satisfacen dichas
reglas.
3.1. Teoría de la Normalización
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 51
La primera forma normal 1FN prohíbe que en un registro
haya grupos repetitivos, es decir, “todos los campos
deben ser atómicos”. Por ejemplo, dado el siguiente
registro que no se encuentra en 1FN existen tres
opciones en 1FN, a, b y c (más adelante veremos cuál
es la mejor en cada ocasión):
3.2. Noción intuitiva de las F.N.
COD_EMP NOMBRE IDIOMA
5050 M. DORADO ITALIANO
ESPAÑOL
6969 P. SUAREZ ESPAÑOL
… … …
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 52
a)
b)
3.2. Noción intuitiva de las F.N.
COD_EMP NOMBRE IDIOMA
5050 M. DORADO ITALIANO
5050 M. DORADO ESPAÑOL
6969 P. SUAREZ ESPAÑOL
COD_EMP NOMBRE COD_EMP IDIOMA
5050 M. DORADO 5050 ITALIANO
6969 P. SUAREZ 5050 ESPAÑOL
6969 ESPAÑOL
… … … …
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 53
c)
3.2. Noción intuitiva de las F.N.
COD_EMP NOMBRE IDIOMA1 IDIOMA2
5050 M. DORADO ITALIANO ESPAÑOL
6969 P. SUAREZ ESPAÑOL
… … … …
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 54
Decimos que un registro está en Segunda Forma Normal (2FN)
si, además de estar en 1FN, todos los campos que no forman
parte de ninguna clave suministran información acerca de la
clave completa. Por ejemplo, en el registro
VENTAS(COD_PIEZA, COD_ALMACEN, CANTIDAD,
DIRECCION_ALMACEN)
donde la clave está formada por los campos COD_PIEZA y
COD_ALMACEN, la dirección del almacén DIRECCION_ALMACEN es
un hecho acerca sólo del almacén no de la pieza, por lo que el
registro no está en 2FN. Para conseguirlo tendríamos que
descomponer en:
N_VENTAS(COD_PIEZA, COD_ALMACEN(FK), CANTIDAD)
ALMACENES(COD_ALMACEN, DIRECCION_ALMACEN)
3.2. Noción intuitiva de las F.N.
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 55
Decimos que un registro está en Tercera Forma Normal (3FN) si,
además de estar en 2FN, todos los campos que no forman parte
de ninguna clave deben facilitar información sólo acerca de la(s)
clave(s), y no acerca de otros campos. En otras palabras, sus
campos deben ser mutuamente independientes y completamente
dependientes de la(s) clave(s). Por ejemplo, el registro
siguiente, cuya clave es COD_EMPLEADO no esta en 3FN puesto
que el nombre del departamento es un hecho acerca del código
del departamento que no es clave.
EMPLEADOS(COD_EMPLEADO, COD_DEPARTAMENTO,
NOMBRE_DEPARTAMENTO)
3.2. Noción intuitiva de las F.N.
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 56
Para conseguir la 3FN realizamos la siguiente
descomposición:
N_EMPLEADOS(COD_EMPLEADO, COD_DEPARTAMENTO(FK))
DEPARTAMENTOS (COD_DEPARTAMENTO,
NOMBRE_DEPARTAMENTO)
3.2. Noción intuitiva de las F.N.
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 57
Dependencias funcionales
Son de primordial importancia a la hora de encontrar y
eliminar la redundancia de los datos almacenados en las
tablas de una base de datos relacional, se centran en el
estudio de las dependencias que presenta cada atributo de
una relación con respecto al resto de atributos de la misma.
Dada una relación R que contiene los atributos X e Y se dice
que Y depende funcionalmente de X (X Y) si y sólo si
en todo momento cada valor de X tiene asociado un solo
valor de Y. Esto es lo mismo que decir que si dos tuplas de R
tienen el mismo valor para su atributo X forzosamente han
de tener el mismo valor para el atributo Y.
3.2. Noción intuitiva de las F.N.
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 58
Tipos de dependencias:
Dependencias completa y parcial: Dado un atributo
compuesto X formado por los atributos X1 y X2, se dice
que el atributo Y tiene una dependencia funcional
completa con respecto a X si : X1 Y; X2 Y; Y-/ X(Y
no implica X) pero X Y
Por el contrario dado un atributo compuesto X formado
por los atributos X1 y X2, se dice que el atributo Y tiene
una dependencia funcional parcial con respecto a X si
X1- Y o X2 -/ Y y X Y.
3.2. Noción intuitiva de las F.N.
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 59
Tipos de dependencias:
Dependencia Transitiva: dados los atributos X, Y y Z
de la relación R en la que existen las siguientes
dependencias funcionales X Y; Y Z; se dice que Z
tiene una dependencia transitiva respecto a X a través de
Y:X Z. Por ejemplo: Nombre de alumnos Dirección;
dirección Ciudad; Nombre de alumno Ciudad.
3.2. Noción intuitiva de las F.N.
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 60
Existen seis niveles de normalización de una relación, que se
muestran en la figura. Una relación se encuentra en un grado u
otro de normalización si cumple una serie de propiedades
(restricciones) que se explican a continuación.
3.2. Noción intuitiva de las F.N.
1FN
2FN
3FN
FNBC
4FN
5FN
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 61
Las tres primeras formas normales las definió Codd y se basan
en las dependencias funcionales que existen entre los atributos
de la relación. Más tarde, y debido a que todavía existían
anomalías, redefinió la 3FN y la llamó FNBC. Posteriormente se
definieron dos niveles más de normalización, la 4FN y la 5FN.
De esta forma, las relaciones en 1FN tienen más redundancia de
datos que los niveles superiores, y por lo tanto más anomalías
de actualización de datos. Y la 5FN es el grado de normalización
máximo que puede alcanzar una relación.
3.2. Noción intuitiva de las F.N.
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 62
Se dice que una relación está en 1FN si y sólo si los valores que
componen cada atributo de una tupla son atómicos, es decir,
cada atributo de la relación toma un único valor del dominio
correspondiente, o lo que es lo mismo, no existen grupos
repetitivos.
La tabla estará en 1FN si tiene un solo valor en la intersección de
cada fila con cada columna. Un conjunto de relaciones se
encuentra en 1FN si ninguna de ellas tiene grupos repetitivos.
Si una relación no está en 1FN, hay que eliminar de ellas los
grupos repetitivos. Un grupo repetitivo será el atributo o grupo
de atributos que tiene múltiplos valores para cada tupla de la
relación. Hay dos formas de eliminar los grupos repetitivos:
3.3. Primera Forma Normal.
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 63
Repetir los atributos con un solo valor para cada valor del grupo
repetitivo. De este modo se introducen redundancias ya que se
duplican valores, pero estas redundancias se eliminarán después
mediante las restantes formas normales.
La segunda forma de eliminar los grupos repetitivos consiste en
poner cada uno de ellos en una relación a parte, heredando la clave
primaria de la relación en al que se encontraban.
3.3. Primera Forma Normal.
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 64
Ejemplo. Consideramos la tabla Alumno, con clave primaria
Cod_Alumno, en la que el atributo Tlf puede tomar varios
valores: el móvil, el de casa, el del padre, el de la madre, etc.
Esta tabla no está en 1FN, ya que hay dos alumnos con varios
tlfs
3.3. Primera Forma Normal.
COD_ALUMNO NOMBRE APELLIDO TLF DIRECCIÓN
1111 PEPE GARCÍA 678-900600
91-2233441
91-1231232
C/ Las Cañas, 45
2222 MARÍA SUÁREZ 91-7008001 C/Mayor, 12
3333 JUAN GIL 91-7562324
660-111222
C/La plaza
4444 FRANCISCO MONTOYA 678-556443 C/La arboleda
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 65
Definir como clave primaria de la tabla Cod_Alumno y el Tlf, con
el fin de que cada atributo tomo un único valor en la tupla
correspondiente
Tabla alumno primera transformación a 1FN
3.3. Primera Forma Normal.
COD_ALUMNO TLF NOMBRE APELLIDO DIRECCIÓN
1111 678-900600 PEPE GARCÍA C/ Las Cañas, 45
1111 91-2233441 PEPE GARCÍA C/ Las Cañas, 45
1111 91-1231232 PEPE GARCÍA C/ Las Cañas, 45
2222 91-7008001 MARÍA SUÁREZ C/Mayor, 12
3333 91-7562324 JUAN GIL C/La plaza
3333 660-111222 JUAN GIL C/La plaza
4444 678-556443 FRANCISCO MONTOYA C/La arboleda
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 66
O también se eliminan los grupos repetitivos (TLF) y
se crea una relación (tabla) junto con la clave inicial.
Tabla alumno segunda transformación a 1FN
3.3. Primera Forma Normal.
COD_ALUMNO NOMBRE APELLIDO DIRECCIÓN
1111 PEPE GARCÍA C/ Las Cañas, 45
2222 MARÍA SUÁREZ C/Mayor, 12
3333 JUAN GIL C/La plaza
4444 FRANCISCO MONTOYA C/La arboleda
COD_ALUMNO (FK) TLF
1111 678-900600
1111 91-2233441
1111 91-1231232
2222 91-7008001
3333 91-7562324
3333 660-111222
4444 678-556443
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 67
La aplicación de esta regla es muy sencilla, simplemente consiste
en descomponer los atributos multivaluados. Estos atributos dan
lugar a una nueva relación cuya clave primaria es la
concatenación de la clave primaria de la entidad en la que se
sitúa el atributo multivaluado más el nombre del atributo
multivaluado.
Supongamos un modelo E/R con la siguiente entidad:
3.3. Primera Forma Normal.
Recambio
Cod_recambio descripcion
proveedor
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 68
Aplicando la regla 1 obtenemos la relación:
RECAMBIO(cod_recambio,descripción, proveedor)
donde proveedor es un atributo multivaluado (para un mismo recambio
puedo tener varios proveedores).
Para cumplir la 1FN realizaríamos la siguiente descomposición:
RECAMBIO(cod_recambio,descripción)
PROVEEDOR(cod_recambio (FK), proveedor)
3.3. Primera Forma Normal.
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 69
Se dice que una relación se encuentra en 2FN si y sólo si
satisface la 1FN, y cada atributo de la relación que no está
en la clave depende funcionalmente de forma completa de
la clave primaria de la relación. La 2FN se aplica a las
relaciones que tienen claves primarias compuestas por dos
o más atributos.
Si una relación está en 1FN y su clave primaria es simple
(tiene un solo atributo), entonces también está en 2FN.
Las relaciones que no están en 2FN pueden sufrir
anomalías cuando se realizan actualizaciones.
3.4. Segunda Forma Normal.
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 70
Para pasar una relación en 1FN a 2FN hay que eliminar las
dependencias parciales de la clave primaria. Para ello se
eliminan los atributos, que son funcionalmente
dependientes, y se ponen en una nueva relación con una
copia de su determinante (los atributos de la clave
primaria de los que dependen).
Se crearán dos tabla para eliminar las dependencias
funcionales, una de ellas tendrá los atributos que
dependen funcionalmente de la clave, y la otra los
atributos que forman parte de la clave de la que dependen
3.4. Segunda Forma Normal.
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 71
Ejemplo: supongamos que tenemos una relación ALUMNO en la
que representamos los datos de los alumnos y las notas en cada
una de las asignaturas en que está matriculado. La clave es el
número de matrícula Cod_Alumno y la asignatura Asignatura.
3.4. Segunda Forma Normal.
COD_ALUMNO NOMBRE APELLIDO ASIGNATURA NOTA CURSO AULA
1111 PEPE GARCÍA LENGUA I 5 1 15
1111 PEPE GARCÍA IDIOMAS 5 2 16
2222 MARÍA SUÁREZ IDIOMAS 7 2 16
2222 MARÍA SUÁREZ CIENCIAS 7 2 14
3333 JUAN GIL PLÁSTICA 6 1 18
3333 JUAN GIL MATEMÁTICAS I 6 1 12
4444 FRANCISCO MONTOYA LENGUA II 4 2 11
4444 FRANCISCO MONTOYA MATEMÁTICAS I 6 1 12
4444 FRANCISCO MONTOYA CIENCIAS 8 1 14
Tabla ALUMNO para transformarla en 2FN
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 72
Es obvio que todos los atributos no dependen de la clave completa
(COD_ALUMNO, ASIGNATURA). En primer lugar, hay que ver las
dependencias funcionales de cada uno de los atributos con respecto a
los atributos de la clave y el resto de atributos:
Nombre y Apellidos, sólo dependen de Cod_Alumno
Los atributos Curso y Aula están relacionados con Asignatura, es
decir, existe una dependencia entre Asignatura Curso,
Asignatura Aula. Una asignatura pertenece a un curso y se
imparte en un aula.
El atributo Nota depende funcionalmente de la clave, pues para que
haya una nota tienen que haber una asignatura y un alumno
3.4. Segunda Forma Normal.
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 73
Vista las dependencias funcionales llegamos a la siguiente
conclusión para que la relación Alumno esté en 2FN necesitamos
crear tres relaciones: ALUMNO, ASIGNATURAS Y NOTAS
3.4. Segunda Forma Normal.
COD_ALUMNO NOMBRE APELLIDO
1111 PEPE GARCÍA
2222 MARÍA SUÁREZ
3333 JUAN GIL
444 FRANCISCO MONTOYA
ASIGNATURA CURSO AULA
LENGUA I 1 15
IDIOMAS 2 16
CIENCIAS 2 14
PLÁSTICA 1 18
MATEMÁTICAS I 1 12
LENGUA II 2 11Tabla ALUMNO, en 2FN
Tabla ASIGNATURA, en 2FN
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 74
3.4. Segunda Forma Normal.
COD_ALUMNO(FK) ASIGNATURA(FK) NOTA
1111 LENGUA I 5
1111 IDIOMAS 5
2222 IDIOMAS 7
2222 CIENCIAS 7
3333 PLÁSTICA 6
3333 MATEMÁTICAS I 6
4444 LENGUA II 4
4444 MATEMÁTICAS I 6
444 CIENCIAS 8
Tabla NOTA, en 2FN
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 75
Se dice que una relación se encuentra en 3FN si y sólo está en
2FN, y cada atributo que no está en la clave primaria no
depende transitivamente de la clave primaria. Es decir, los
atributos de la relación no dependen unos de otros, dependen
únicamente de la clave, esté formado por uno o más atributos.
La dependencia X Z es transitiva si existen las dependencias
X Y Y Z, siendo X, Y, atributos o conjuntos de atributos de
una misma relación.
Para pasar una relación de 2FN a 3FN hay que eliminar las
dependencias transitivas. Para ello se eliminan los atributos que
dependen transitivamente y se ponen en una nueva relación con
una copia de su determinante (el atributo o atributos no clave de
los que dependen).
3.5. Tercera Forma Normal.
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 76
Ejemplo: supongamos que tenemos una relación LIBROS en la que
representamos los datos de las editoriales de los mismos
Tabla LIBROS, para transformar a 3FN
Veamos las dependencias con respecto a la clave:
TÍTULO Y EDITORIAL dependen directamente del código del libro
El PAÍS, aunque es parte, también depende del libro, está más
ligado a la Editorial a la que pertenece el libro. Por esta razón, la
relación libros no está en 3FN. La solución sería:
3.5. Tercera Forma Normal.
COD_LIBRO TÍTULO EDITORIAL PAÍS
12345 DISEÑO DE BD RELACIONALES RAMA ESPAÑA
34562 INSTALACIÓN Y MANTENIMIENTO DE EQUIPOS MCGRAW-HILL ESPAÑA
72224 FUNDAMENTOS DE PROGRAMACIÓN SANTILLANA ESPAÑA
34522 BASE DE DATOS OO ADDISON EEUU
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 77
Tabla Libros, en 3FN
3.5. Tercera Forma Normal.
COD_LIBRO TÍTULO EDITORIAL (FK) EDITORIAL PAÍS
12345 DISEÑO DE BD RELACIONALES RAMA RAMA ESPAÑA
34562 INSTALACIÓN Y MANTENIMIENTO DE
EQUIPOS
MCGRAW-HILL MCGRAW-HILL ESPAÑA
72224 FUNDAMENTOS DE PROGRAMACIÓN SANTILLANA SANTILLANA ESPAÑA
34522 BASE DE DATOS OO ADDISON ADDISON EEUU
Tabla Editorial en 3FN
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 78
Ejercicio: Normalizar hasta la 3FN
3.5. Tercera Forma Normal.
DNI NOMBRE APELLIDOS DIRECCIÓN CP POBLACIÓN PROVINCIA
413246-B JUAN RAMOS C/Las Cañas, 59
C/Pilón 12
19005
45589
Guadalajara
Caleruela
Guadalajara
Toledo
23456-J PEDRO PÉREZ C/Victoria, 3
C/El altozano
28804
10392
Alcalá de Henares
Berrocalejo
Madrid
Cáceres
34561-B MARÍA RODRÍGUEZ C/Sanz Vázquez,2 19004 Guadalajara Guadalajara
222346-J JUAN CABELLO C/El ensanche, 3
C/ Los abedules10
28802
10300
Alcalá de Henares
Navalmoral
Madrid
Cáceres
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 79
La forma normal de Boyce-Codd (FNBC) es conceptualmente
distinta, y mucho más sencilla, a la 2FN y 3FN. Las relaciones que
satisfacen la FNBC satisfacen la 2FN y 3FN. La FNBC se basa en el
concepto de determinante funcional, y está soportada en las
características de las claves candidatas de las relaciones.
Se denomina determinante funcional a uno o a un conjunto de
atributos de una relación R del cual depende funcionalmente de
forma completa algún otro atributo de la misma relación.
La FNBC se puede expresar de la siguiente manera:
Una relación R satisface la FNBC si, y sólo si, se encuentra en 1FN, y
cada determinante funcional es una clave candidata de la relación R.
3.6. Forma Normal de Boyce-Codd (FNBC)
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 80
Del análisis de las últimas relaciones obtenidas se puede deducir
que todas las relaciones se encuentran en FNBC, puesto que:
Los únicos determinantes funcionales son las claves para cada una de
las relaciones, puesto que en ninguna relación existen claves
alternativas.
En todas las relaciones, las únicas dependencias funcionales son las
existentes entre los atributos no primos de cada relación y la clave de
la misma.
Pero se pueden dar casos en los que una relación se encuentre en
3FN pero no satisfaga la FNBC.
3.6. Forma Normal de Boyce-Codd (FNBC)
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 81
Ejemplo: supongamos que tenemos una relación EMPLEADOS en
la que representamos los datos de los empleados de una fábrica.
Tabla EMPLEADOS, para transformar a FNBC
Observando los atributos de esta relación podemos ver que
Num_Seg y el grupo Nombre-Apellidos son claves candidatas
(determinantes). Esta relación se transforma en dos tablas: una
contendrá la clave junto con las claves candidatas (EMPLEADOS) y
la otra la clave con el resto de campo (EMPL_TRABAJO)
3.6. Forma Normal de Boyce-Codd (FNBC)
DNI Nº_SEG NOMBRE APELLIDOS DEPARTAMENTO PUESTO SALARIO
413245-B 28-11111 JUAN RAMOS COMPRAS GERENTE 2.300
23456-J 28-22222 PEDRO PÉREZ NÓMINAS AUXILIAR 1.200
123123-C 28-33333 MARÍA GIL ALMACÉN CONSERJE 1.530
435613-H 28-44444 ANTONIO SANZ COMPRAS GESTIÓN 2.200
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 82
Tabla EMPLEADOS EN FNBC
Tabla EMPLE_TRABAJO EN FNBC
3.6. Forma Normal de Boyce-Codd (FNBC)
DNI Nº_SEG NOMBRE APELLIDOS
413245-B 28-11111 JUAN RAMOS
23456-J 28-22222 PEDRO PÉREZ
123123-C 28-33333 MARÍA GIL
435613-H 28-44444 ANTONIO SANZ
DNI(FK) DEPARTAMENTO PUESTO SALARIO
413245-B COMPRAS GERENTE 2.300
23456-J NÓMINAS AUXILIAR 1.200
123123-C ALMACÉN CONSERJE 1.530
435613-H COMPRAS GESTIÓN 2.200
Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 83
Existen más formas normales (4FN, 5FN, 6FN, etc), cuyo alcance
excede de este curso y cuya aplicación en el mundo real es
únicamente teórica.
3.7. Otras Formas Normales

Más contenido relacionado

La actualidad más candente

Patrones estructurales
Patrones estructuralesPatrones estructurales
Patrones estructuralesAutentia
 
Algoritmos de enrutamiento
Algoritmos de enrutamientoAlgoritmos de enrutamiento
Algoritmos de enrutamientoyeiko11
 
Red en estrella y en Árbol
Red en estrella y en ÁrbolRed en estrella y en Árbol
Red en estrella y en ÁrbolAndreaRamirez113
 
Otras relaciones y modelos bases de datos
Otras relaciones y modelos bases de datosOtras relaciones y modelos bases de datos
Otras relaciones y modelos bases de datosEmer Gio
 
Caracteristicas de un vtp
Caracteristicas de un vtpCaracteristicas de un vtp
Caracteristicas de un vtpErika Vazquez
 
diagrama de colaboracion
diagrama de colaboraciondiagrama de colaboracion
diagrama de colaboracionstill01
 
Sistemas operativos en red
Sistemas operativos en redSistemas operativos en red
Sistemas operativos en redJomicast
 
Reporte de la instalacion y uso de una red en el sector productivo
Reporte de la instalacion  y uso de una red en el sector productivoReporte de la instalacion  y uso de una red en el sector productivo
Reporte de la instalacion y uso de una red en el sector productivoALOMACRAL
 
Conmutacion de circuitos y paquetes
Conmutacion de circuitos y paquetesConmutacion de circuitos y paquetes
Conmutacion de circuitos y paquetesJarvey Gonzalez
 
Programación de Base de Datos - Unidad 4 Representacion de la info
Programación de Base de Datos - Unidad 4 Representacion de la infoProgramación de Base de Datos - Unidad 4 Representacion de la info
Programación de Base de Datos - Unidad 4 Representacion de la infoJosé Antonio Sandoval Acosta
 
Java pilas (Stacks) y colas (Queues)
Java pilas (Stacks) y colas (Queues)Java pilas (Stacks) y colas (Queues)
Java pilas (Stacks) y colas (Queues)Juan Astudillo
 
Base de Datos: Modelo Entidad-Relacion
Base de Datos: Modelo Entidad-RelacionBase de Datos: Modelo Entidad-Relacion
Base de Datos: Modelo Entidad-RelacionDiego Torres
 

La actualidad más candente (20)

Patrones estructurales
Patrones estructuralesPatrones estructurales
Patrones estructurales
 
Algoritmos de enrutamiento
Algoritmos de enrutamientoAlgoritmos de enrutamiento
Algoritmos de enrutamiento
 
Tema 2
Tema 2Tema 2
Tema 2
 
Red en estrella y en Árbol
Red en estrella y en ÁrbolRed en estrella y en Árbol
Red en estrella y en Árbol
 
Otras relaciones y modelos bases de datos
Otras relaciones y modelos bases de datosOtras relaciones y modelos bases de datos
Otras relaciones y modelos bases de datos
 
Caracteristicas de un vtp
Caracteristicas de un vtpCaracteristicas de un vtp
Caracteristicas de un vtp
 
diagrama de colaboracion
diagrama de colaboraciondiagrama de colaboracion
diagrama de colaboracion
 
Active directory
Active directoryActive directory
Active directory
 
Exposicion de router
Exposicion de routerExposicion de router
Exposicion de router
 
Sistemas operativos en red
Sistemas operativos en redSistemas operativos en red
Sistemas operativos en red
 
Dis02
Dis02Dis02
Dis02
 
Reporte de la instalacion y uso de una red en el sector productivo
Reporte de la instalacion  y uso de una red en el sector productivoReporte de la instalacion  y uso de una red en el sector productivo
Reporte de la instalacion y uso de una red en el sector productivo
 
Star uml
Star umlStar uml
Star uml
 
Conmutacion de circuitos y paquetes
Conmutacion de circuitos y paquetesConmutacion de circuitos y paquetes
Conmutacion de circuitos y paquetes
 
Frame Relay
Frame RelayFrame Relay
Frame Relay
 
colecciones en java
colecciones en javacolecciones en java
colecciones en java
 
Dominio de base de datos
Dominio de base de datosDominio de base de datos
Dominio de base de datos
 
Programación de Base de Datos - Unidad 4 Representacion de la info
Programación de Base de Datos - Unidad 4 Representacion de la infoProgramación de Base de Datos - Unidad 4 Representacion de la info
Programación de Base de Datos - Unidad 4 Representacion de la info
 
Java pilas (Stacks) y colas (Queues)
Java pilas (Stacks) y colas (Queues)Java pilas (Stacks) y colas (Queues)
Java pilas (Stacks) y colas (Queues)
 
Base de Datos: Modelo Entidad-Relacion
Base de Datos: Modelo Entidad-RelacionBase de Datos: Modelo Entidad-Relacion
Base de Datos: Modelo Entidad-Relacion
 

Similar a Diseño Lógico Bases de Datos Relacional

Similar a Diseño Lógico Bases de Datos Relacional (20)

El modelo de datos relacional (Base de Datos)
El modelo de datos relacional (Base de Datos)El modelo de datos relacional (Base de Datos)
El modelo de datos relacional (Base de Datos)
 
Normalizacin De Una Base De Datos
Normalizacin De Una Base De DatosNormalizacin De Una Base De Datos
Normalizacin De Una Base De Datos
 
Modelo relacional
Modelo relacionalModelo relacional
Modelo relacional
 
Base de datos
Base de datosBase de datos
Base de datos
 
Diseño Lógico
Diseño LógicoDiseño Lógico
Diseño Lógico
 
clase 3-MODELO RELACIONAL.ppt
clase 3-MODELO RELACIONAL.pptclase 3-MODELO RELACIONAL.ppt
clase 3-MODELO RELACIONAL.ppt
 
Bases de Datos Cap:III El modelo relacional
Bases de Datos Cap:III El modelo relacionalBases de Datos Cap:III El modelo relacional
Bases de Datos Cap:III El modelo relacional
 
Modo relacional
Modo relacionalModo relacional
Modo relacional
 
Unidad III: Modelo Lógico de BD
Unidad III: Modelo Lógico de BDUnidad III: Modelo Lógico de BD
Unidad III: Modelo Lógico de BD
 
Diseño Lógico de la base de datos
Diseño Lógico de la base de datosDiseño Lógico de la base de datos
Diseño Lógico de la base de datos
 
Modelo Relacional
Modelo RelacionalModelo Relacional
Modelo Relacional
 
Modelo relacional
Modelo relacionalModelo relacional
Modelo relacional
 
Diapositivas sql.
Diapositivas sql.Diapositivas sql.
Diapositivas sql.
 
Modelos de-datos
Modelos de-datosModelos de-datos
Modelos de-datos
 
Base de datos
Base de datosBase de datos
Base de datos
 
modelo de datos
modelo de datos modelo de datos
modelo de datos
 
Modelos de datos y BDD
Modelos de datos y BDD Modelos de datos y BDD
Modelos de datos y BDD
 
Diseño relacional
Diseño relacionalDiseño relacional
Diseño relacional
 
modelos de datos
modelos de datos modelos de datos
modelos de datos
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 

Último

REPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdf
REPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdfREPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdf
REPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdfIrapuatoCmovamos
 
Los artistas mexicanos con más ventas de discos en la historia (2024).pdf
Los artistas mexicanos con más ventas de discos en la historia (2024).pdfLos artistas mexicanos con más ventas de discos en la historia (2024).pdf
Los artistas mexicanos con más ventas de discos en la historia (2024).pdfJC Díaz Herrera
 
El Teatro musical (qué es, cuál es su historia y trayectoria...)
El Teatro musical (qué es, cuál es su historia y trayectoria...)El Teatro musical (qué es, cuál es su historia y trayectoria...)
El Teatro musical (qué es, cuál es su historia y trayectoria...)estebancitoherrera
 
SUNEDU - Superintendencia Nacional de Educación superior Universitaria
SUNEDU - Superintendencia Nacional de Educación superior UniversitariaSUNEDU - Superintendencia Nacional de Educación superior Universitaria
SUNEDU - Superintendencia Nacional de Educación superior Universitariachayananazcosimeon
 
Técnica palatina baja, anestesiología dental
Técnica palatina baja, anestesiología dentalTécnica palatina baja, anestesiología dental
Técnica palatina baja, anestesiología dentalIngrid459352
 
Data Warehouse.gestion de bases de datos
Data Warehouse.gestion de bases de datosData Warehouse.gestion de bases de datos
Data Warehouse.gestion de bases de datosssuser948499
 
Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,
Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,
Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,juberrodasflores
 
Las mujeres más ricas del mundo (2024).pdf
Las mujeres más ricas del mundo (2024).pdfLas mujeres más ricas del mundo (2024).pdf
Las mujeres más ricas del mundo (2024).pdfJC Díaz Herrera
 
LA LEY DE LAS XII TABLAS en el curso de derecho
LA LEY DE LAS XII TABLAS en el curso de derechoLA LEY DE LAS XII TABLAS en el curso de derecho
LA LEY DE LAS XII TABLAS en el curso de derechojuliosabino1
 
bases-cye-2024(2) una sola descarga en base de feria de
bases-cye-2024(2) una sola descarga en base de feria debases-cye-2024(2) una sola descarga en base de feria de
bases-cye-2024(2) una sola descarga en base de feria deCalet Cáceres Vergara
 
HABILESASAMBLEA Para negocios independientes.pdf
HABILESASAMBLEA Para negocios independientes.pdfHABILESASAMBLEA Para negocios independientes.pdf
HABILESASAMBLEA Para negocios independientes.pdfGEINER22
 
tipos de organización y sus objetivos y aplicación
tipos de organización y sus objetivos y aplicacióntipos de organización y sus objetivos y aplicación
tipos de organización y sus objetivos y aplicaciónJonathanAntonioMaldo
 
Cuáles son las características biológicas que están marcadas en tu individual...
Cuáles son las características biológicas que están marcadas en tu individual...Cuáles son las características biológicas que están marcadas en tu individual...
Cuáles son las características biológicas que están marcadas en tu individual...israel garcia
 
REPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdf
REPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdfREPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdf
REPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdfIrapuatoCmovamos
 
Critica 1 Grupo 10 RodrigoBenitez_GinaGadea_AlexisGonzález.pdf
Critica 1 Grupo 10 RodrigoBenitez_GinaGadea_AlexisGonzález.pdfCritica 1 Grupo 10 RodrigoBenitez_GinaGadea_AlexisGonzález.pdf
Critica 1 Grupo 10 RodrigoBenitez_GinaGadea_AlexisGonzález.pdfRodrigoBenitez38
 
triptico-de-las-drogas en la adolescencia
triptico-de-las-drogas en la adolescenciatriptico-de-las-drogas en la adolescencia
triptico-de-las-drogas en la adolescenciaferg6120
 
CUESTIONARIO A ADICCION A REDES SOCIALES.pdf
CUESTIONARIO A ADICCION A REDES SOCIALES.pdfCUESTIONARIO A ADICCION A REDES SOCIALES.pdf
CUESTIONARIO A ADICCION A REDES SOCIALES.pdfEDUARDO MAMANI MAMANI
 
PREGRADO-PRESENCIAL-FASE-C-202401 (1).pdf
PREGRADO-PRESENCIAL-FASE-C-202401 (1).pdfPREGRADO-PRESENCIAL-FASE-C-202401 (1).pdf
PREGRADO-PRESENCIAL-FASE-C-202401 (1).pdfluisccollana
 
Unidad 3 Elementos y compuestos. Física y química
Unidad 3 Elementos y compuestos. Física y químicaUnidad 3 Elementos y compuestos. Física y química
Unidad 3 Elementos y compuestos. Física y químicaSilvia García
 
La importancia de las pruebas de producto para tu empresa
La importancia de las pruebas de producto para tu empresaLa importancia de las pruebas de producto para tu empresa
La importancia de las pruebas de producto para tu empresamerca6
 

Último (20)

REPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdf
REPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdfREPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdf
REPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdf
 
Los artistas mexicanos con más ventas de discos en la historia (2024).pdf
Los artistas mexicanos con más ventas de discos en la historia (2024).pdfLos artistas mexicanos con más ventas de discos en la historia (2024).pdf
Los artistas mexicanos con más ventas de discos en la historia (2024).pdf
 
El Teatro musical (qué es, cuál es su historia y trayectoria...)
El Teatro musical (qué es, cuál es su historia y trayectoria...)El Teatro musical (qué es, cuál es su historia y trayectoria...)
El Teatro musical (qué es, cuál es su historia y trayectoria...)
 
SUNEDU - Superintendencia Nacional de Educación superior Universitaria
SUNEDU - Superintendencia Nacional de Educación superior UniversitariaSUNEDU - Superintendencia Nacional de Educación superior Universitaria
SUNEDU - Superintendencia Nacional de Educación superior Universitaria
 
Técnica palatina baja, anestesiología dental
Técnica palatina baja, anestesiología dentalTécnica palatina baja, anestesiología dental
Técnica palatina baja, anestesiología dental
 
Data Warehouse.gestion de bases de datos
Data Warehouse.gestion de bases de datosData Warehouse.gestion de bases de datos
Data Warehouse.gestion de bases de datos
 
Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,
Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,
Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,
 
Las mujeres más ricas del mundo (2024).pdf
Las mujeres más ricas del mundo (2024).pdfLas mujeres más ricas del mundo (2024).pdf
Las mujeres más ricas del mundo (2024).pdf
 
LA LEY DE LAS XII TABLAS en el curso de derecho
LA LEY DE LAS XII TABLAS en el curso de derechoLA LEY DE LAS XII TABLAS en el curso de derecho
LA LEY DE LAS XII TABLAS en el curso de derecho
 
bases-cye-2024(2) una sola descarga en base de feria de
bases-cye-2024(2) una sola descarga en base de feria debases-cye-2024(2) una sola descarga en base de feria de
bases-cye-2024(2) una sola descarga en base de feria de
 
HABILESASAMBLEA Para negocios independientes.pdf
HABILESASAMBLEA Para negocios independientes.pdfHABILESASAMBLEA Para negocios independientes.pdf
HABILESASAMBLEA Para negocios independientes.pdf
 
tipos de organización y sus objetivos y aplicación
tipos de organización y sus objetivos y aplicacióntipos de organización y sus objetivos y aplicación
tipos de organización y sus objetivos y aplicación
 
Cuáles son las características biológicas que están marcadas en tu individual...
Cuáles son las características biológicas que están marcadas en tu individual...Cuáles son las características biológicas que están marcadas en tu individual...
Cuáles son las características biológicas que están marcadas en tu individual...
 
REPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdf
REPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdfREPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdf
REPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdf
 
Critica 1 Grupo 10 RodrigoBenitez_GinaGadea_AlexisGonzález.pdf
Critica 1 Grupo 10 RodrigoBenitez_GinaGadea_AlexisGonzález.pdfCritica 1 Grupo 10 RodrigoBenitez_GinaGadea_AlexisGonzález.pdf
Critica 1 Grupo 10 RodrigoBenitez_GinaGadea_AlexisGonzález.pdf
 
triptico-de-las-drogas en la adolescencia
triptico-de-las-drogas en la adolescenciatriptico-de-las-drogas en la adolescencia
triptico-de-las-drogas en la adolescencia
 
CUESTIONARIO A ADICCION A REDES SOCIALES.pdf
CUESTIONARIO A ADICCION A REDES SOCIALES.pdfCUESTIONARIO A ADICCION A REDES SOCIALES.pdf
CUESTIONARIO A ADICCION A REDES SOCIALES.pdf
 
PREGRADO-PRESENCIAL-FASE-C-202401 (1).pdf
PREGRADO-PRESENCIAL-FASE-C-202401 (1).pdfPREGRADO-PRESENCIAL-FASE-C-202401 (1).pdf
PREGRADO-PRESENCIAL-FASE-C-202401 (1).pdf
 
Unidad 3 Elementos y compuestos. Física y química
Unidad 3 Elementos y compuestos. Física y químicaUnidad 3 Elementos y compuestos. Física y química
Unidad 3 Elementos y compuestos. Física y química
 
La importancia de las pruebas de producto para tu empresa
La importancia de las pruebas de producto para tu empresaLa importancia de las pruebas de producto para tu empresa
La importancia de las pruebas de producto para tu empresa
 

Diseño Lógico Bases de Datos Relacional

  • 1. Diseño Lógico de Bases de Datos – Modelo Relacional
  • 2. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 2 Índice 1. El modelo relacional. 2. Transformación E/R al modelo relacional. 3. Normalización.
  • 3. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 3 Objetivos Aplicar reglas de integridad. Identificar reglas de normalización. Identificar y documentar reglas que no se pueden plasmar en el diseño lógico
  • 4. 1. El Modelo Relacional 1. Las relaciones en el modelo relacional 2. Otros conceptos del modelo relacional
  • 5. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 5 1. El Modelo Relacional El objetivo principal del modelo relacional es proteger al usuario de la obligación de conocer las estructuras de datos físicas con las que se representa la información de una BBDD, así se permite que la BBDD pueda implementarse en cualquier gestor de BBDD relacional (SQL). Las características de este modelo es: La relación es el elemento fundamental del modelo. Estas relaciones se pueden operar mediante el Álgebra Relacional. El modelo relacional es independiente de la forma en que se almacenan los datos y de la forma de representarlos, por tanto la BBDD se puede representar en cualquier SGBD .
  • 6. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 6 1. El Modelo Relacional Al estar fundamentado en una fuerte base matemática, se puede demostrar la eficacia del modelo a la hora de operar conjuntos de datos.
  • 7. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 7 1.1. Las Relaciones en Mod. Relacional Se define una relación como un conjunto de atributos, cada uno de los cuales pertenece a un dominio, y que posee un nombre que identifica la relación. Se representa gráficamente por una tabla con columnas (atributos) y filas (tuplas). El conjunto de tuplas de una relación representa el cuerpo de la relación y el conjunto de atributos y el nombre representan el esquema. Actualmente los modelos lógicos más extendidos con diferencia son el modelo relacional y los diagramas de clases que utiliza UML para modelar las BBDD orientadas a objetos. El modelo relacional de Cood se ajusta a la perfección al modelo E/R de Chen.
  • 8. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 8 1.1. Las Relaciones en Mod. Relacional MATRÍCULA NOMBRE APELLIDOS CURSO NOTA 3256 José Pérez de Lastra 1 5,25 0101 María Anúnez Sastre 2 7,80 8743 Lourdes Sánchez Argote 1 4,50 1234 Antonio Soria Madrid 3 6,35 5674 Luis González Silos 1 3,25 0678 Pilar Alcántara Badajoz 2 5,50 0346 Dolores Almiz Márquez 3 7,30 2985 Manuel Rivas Fuentes 3 3,50 Atributos RELACIÓN ALUMNOS Nombre Esquema Tuplas Cuerpo Estado
  • 9. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 9 1.2. Otros conceptos Vamos a definir los conceptos necesarios para transformar el modelo conceptual (diagrama E/R) en el modelo lógico (modelo relacional). Atributos: características que describen a una entidad o relación. Dominio: conjunto de valores permitidos para un atributo. Por ejemplo, cadena de caracteres, número enteros, los valores Sí o No, etc. Restricciones de semántica: condiciones que deben cumplir los datos para su correcto almacenamiento. Hay varios tipos: Restricciones de clave: es el conjunto de atributos que identifican de forma única a una entidad.
  • 10. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 10 1.2. Otros conceptos Restricciones de valor único (UNIQUE): impide que un atributo tenga un valor repetido. Todos los atributos clave cumplen esta restricción. Puede ser que algún atributo que no sea clave sea necesaria esta restricción, por ejemplo, el número de bastidor de un coche, que no es clave principal, lo es matrícula, no se puede repetir. Restricciones de integridad referencial: se da cuando una tabla tiene una referencia a algún valor de otra tabla. En este caso la restricción exige que exista el valor referenciado a la otra tabla. Por ejemplo, no se puede poner una nota a un alumno que no exista. Restricciones de dominio: exige que el valor que puede tomar un campo este dentro del dominio definido. Por ejemplo, si se establece que un campo DNI pertenece al dominio de los números de 9 dígitos + 1 letra no es posible insertar un DNI sin letra.
  • 11. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 11 1.2. Otros conceptos Restricciones de verificación (CHECK): permite comprobar si un valor de un atributo es válido conforme a una expresión. Restricción de valor NULO (NULL o NOT NULL): un atributo puede ser obligatorio si no admite el valor NULO o NULL. Si admite como valor el valor NULL el atributo es opcional. Disparadores o triggers: son procedimientos que se ejecutan para hacer una tarea concreta en el momento de insertar, modificar o eliminar información de un tabla. Restricciones genéricas adicionales o aserciones (ASSERT): permite validar cualquiera de los atributos de una o varias tablas.
  • 12. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 12 1.2. Otros conceptos Clave: una clave es un conjunto de atributos que identifican de forma única una ocurrencia de entidad. Las claves pueden ser simples (atómicas) o compuestas. Hay varios tipos de claves: Superclave: identifican a una entidad. Por ejemplo, para un empleado, las superclaves posibles son el DNI, o el DNI+Nombre o el DNI+Nombre+Número de la Seguridad Social, etc. Clave Candidata: La clave candidata de una relación es el conjunto de atributos que determinan unívoca y mínimamente cada tupla. Siempre hay una clave candidata pues por definición no puede haber dos tuplas iguales En una relación pueden existir varias claves candidatas.
  • 13. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 13 1.2. Otros conceptos EMPLEADOS (CÓDIGO, DNI, DIRECCIÓN, TFNO, SUELDO, COMISIÓN) En esta relación podrían ser claves candidatas tanto código como DNI Clave Primaria: es la clave candidata elegida pro el diseñador como clave definitiva, en el ejemplo anterior se elegiría Código y se representa subrayada. A la clave candidata no elegida como clave primaria se le llama clave alternativa. Clave Ajena o Foránea: es un atributo de una entidad, que es clave en otra entidad Por ejemplo, EMPLEADOS (CÓD-EMP, DNI, NOMBRE, TFNO, …,, COD- DEP(FK)) DEPARTAMENTOS (COD-DEP, NOMBRE, LOCALIDAD) COD-DEP: clave ajena que referencia a COD-DEP
  • 14. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 14 1.2. Otros conceptos Por ejemplo EDITORIAL (cod_edit, nombre, dirección, ciudad) LIBRO (código, título, idioma, …, cod_edit(FK)) ESCRIBE (cod_autor(FK), cod_libro(FK)) AUTOR (cod_autor, nombre, nacionalidad) Cod_edit: clave ajena que referencia a cod_edit de la tabla EDITORIAL. COD-LIBRO: clave ajena que referencia a código de la tabla LIBRO. Cod_autor: clave ajena que referencia a cod_autor de la tabla AUTOR.
  • 15. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 15 1.2. Otros conceptos Para las claves ajenas existe la regla de Integridad referencial que establece que los valores de la clave ajena o bien coinciden con los de la clave primaria a la que referencian o bien son nulos. Por tanto, para cada clave ajena se debe especificar si puede o no tomar valores nulos. Además es necesario determinar las consecuencias de ciertas operaciones (borrado y modificación) realizadas sobre tuplas de la relación referenciada. Se puede distinguir entre:
  • 16. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 16 1.2. Otros conceptos Operación restringida (RESTRICT): el borrado o modificación de tuplas de la relación que contienen la clave primaria referenciada sólo se permite si no existen tuplas con dicha clave en la relación que contiene la clave ajena. Por ejemplo, en el caso anterior esto implicaría que sólo podemos borrar una editorial en el que no haya ningún libro de esa editorial, si no, el sistema impediría el borrado. Operación con transmisión en cascada (CASCADE): el borrado o modificación de tuplas de la relación que contienen la clave primaria referenciada lleva consigo el borrado o modificación en cascada de las tuplas de la relación que contienen la clave ajena. Por ejemplo, en el caso anterior al modificar el código de una editorial, se debe modificar también dicho código en todos los libros de nuestra Base de Datos que sean de dicha editorial.
  • 17. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 17 1.2. Otros conceptos Operación con puesta a nulos (SET NULL): el borrado o modificación de tuplas de la relación que contienen la clave primaria referenciada lleva consigo “poner a nulos” los valores de las claves ajenas de la relación que referencia. Por ejemplo, en el caso anterior cuando se borra una editorial, a todos aquellos libros que sean de esa editorial y que se encuentran en la relación LIBROS se les coloca el atributo cod_edit a nulo. Esta opción sólo es posible cuando el atributo que es clave ajena admite el valor nulo. Operación con puesta a valor por defecto (SET DEFAULT): el borrado o modificación de tuplas de la relación que contienen la clave primaria referenciada lleva consigo “poner al valor por defecto a la clave ajena de la relación que referencia; valor por defecto que habrá sido definido al crear la tabla correspondiente.
  • 18. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 18 1.2. Otros conceptos Operación que desencadena un procedimiento de usuario: el borrado o modificación de tuplas de la relación que contienen la clave primaria referenciada lleva consigo la puesta en marcha de un procedimiento definido por el usuario. Las opciones seleccionadas para el borrado y modificación son independientes.
  • 19. 2. Transformación de un diagrama E/R al modelo relacional
  • 20. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 20 2. Transformación del modelo E/R al modelo relacional Transformación del modelo E/R en relacional REGLAS DE TRANSFORMACIÓN
  • 21. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 21 La transformación del modelo conceptual (E/R) al modelo lógico (relacional) se basa en las siguientes reglas: Toda entidad se transforma en una tabla. Todo atributo se transforma en columna dentro de una tabla. Los atributos AIP (atributo identificador principal), se convierten en Clave Primaria y los AIA (atributos identificador alternativo) en Clave alternativa. Toda relación N:M se transforma en una tabla que tendrá como clave primaria la concatenación de los atributos clave de las entidades que asocia 2. Transformación del modelo E/R al modelo relacional
  • 22. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 22 En el diagrama E/R, las tablas generadas son: CLIENTES (Cod_cliente, Nombre, Dirección) ARTÍCULOS (Cod_articulo, Precio, Stock, Denominación) COMPRAS (Cod_cliente(FK), Cod_articulo(FK), Uni_vend, Fecha_venta) 2. Transformación del modelo E/R al modelo relacional CLIENTE ARTÍCULO COMPR A (0,n) (1,n) Dirección Cod_articulo precio Denominación nombre Cod_cliente N:M Uni_vend stock Fecha_venta
  • 23. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 23 Transformación de entidades fuertes: Para cada entidad A, entidad fuerte, con atributos (a1, a2,...,an) e crea una tabla A (con el nombre en plural) con n columnas correspondientes a los atributos de A, donde cada fila de la tabla A corresponde a una ocurrencia de la entidad A. La clave primaria de la tabla A la forman los atributos clave de la entidad A. 2. Transformación del modelo E/R al modelo relacional
  • 24. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 24 En el diagrama E/R, las tablas generadas son: CATEGORÍAS (código, descripción) PRODUCTOS (código, nombre,precio) CATEGORÍA PRODUCTO pertenec e (1,1) (0,n) Descripción código nombre precio Código 1:N 2. Transformación del modelo E/R al modelo relacional
  • 25. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 25 Relaciones con cardinalidad 1:N: existen dos soluciones Transformar la relación en una tabla: se hace como si se tratara de una relación N:M. Esta solución se realiza cuando se prevé que en un futuro la relación se convertirá en N:M y cuando la relación tiene atributos propios. También se crea una nueva tabla cuando la participación es opcional, es decir, (0,1) y (0,N). La clave de esta tabla es la de la entidad del lado muchos. 2. Transformación del modelo E/R al modelo relacional
  • 26. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 26 FACTURAS (Num_factura, Fecha-emisión, Total-factura) ALBARANES (Num_albarán, Fecha-venta, Total-alabarán) FAT-ALB (Num_factura(FK), Num_albarán(FK), Descuento) Donde Num-albarán es la Clave Principal, y tanto Num_albaran como Num-factura son claves ajenas que referencian a sus respectivas tablas 2. Transformación del modelo E/R al modelo relacional FACTURA ALBARÁN asocia (0,1) (0,n) Fecha_emisió n Num_albará n Fecha_venta Total_albarán Num_factura 1:N Total_factura descuento
  • 27. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 27 Relaciones con cardinalidad 1:N: existen dos soluciones Propagar la clave: este caso se aplica cuando la cardinalidad es obligatoria, es decir, cuando tenemos participaciones (1,1) y (0,N) ó (1,N). Se propaga el atributo principal de la entidad que tienen de cardinalidad máxima 1 a la que tiene de cardinalidad máxima N, desapareciendo el nombre de la relación. Si existen atributos propios en la relación, estos también se propagarán 2. Transformación del modelo E/R al modelo relacional
  • 28. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 28 EDITORIALES (Nombre, Director, Dirección) REVISTAS (Título, Editor, Ejemplares, Nombre(FK)) Donde NOMBRE es una clave ajena que referencia a la tabla EDITORIAL 2. Transformación del modelo E/R al modelo relacional REVISTA EDITORIAL edita ({0/1},N) (1,1) editor nombre director dirección Título 1:N ejemplares
  • 29. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 29 TEMAS (Cod_tema, Descripción) LIBROS (Cod_libro, Autor, Isbn, Título, Num_ejemplares, Cod_tema(FK)) Se propaga la clave, de la entidad TEMAS a la entidad LIBROS. 2. Transformación del modelo E/R al modelo relacional TEMA LIBRO clasifica (1,1) (0,n) descripcion Cod_libro Num_ejemplare s Título Cod_tema 1:N ISBN Autor
  • 30. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 30 En la transformación de relaciones 1:1 se tiene en cuenta las participaciones de las entidades que participan. Existen dos soluciones: Transformar la relación en una tabla: si las entidades poseen participación (0,1), la relación se convierte en una tabla. Propagar la clave: si una de las entidades posee participación (0,1) y la otra (1,1), conviene propagar la clave de la entidad con participación (1,1) a la tabla resultante de la entidad de participación (0,1). Si ambas entidades poseen participaciones (1,1), se puede propagar la clave de cualquiera de ellas a la tabla resultante de la otra. En este caso, también se pueden añadir los atributos de una entidad a otra, resultando una única tabla con todos los atributos de las entidades y de la relación, si los hubiera, eligiendo como clave primaria una de las dos. 2. Transformación del modelo E/R al modelo relacional
  • 31. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 31 EMPLEADOS (Nif,nombre, Ocupación, Nivel, Fecha_Nac, Hobbies, Dirección) Donde NIF será la Clave Principal. 2. Transformación del modelo E/R al modelo relacional Fecha_nac. EMPLEADO DATOS EMPLEADO (1,1) (1,1) nombre NIF hobbie s NIF 1:1 dirección nivel ID ocupación
  • 32. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 32 EMPLEADOS (Nif, Nombre,Ocupación, Nivel) ELECTRODOMÉSTICOS (Código, nombre, Marca, Modelo, Nif(FK)) Donde NIF será la C. Ajena que referencia a EMPLEADO 2. Transformación del modelo E/R al modelo relacional marca. EMPLEADO ELECTRODO MÉSTICO mantien e (1,1) (0,1) nombre CODIGO modelo NIF 1:1 nombre nivel ocupación
  • 33. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 33 Ejercicios 1 Un empleado ocupa un solo puesto de trabajo, y ese puesto de trabajo es ocupado por un solo empleado o por ninguno. De los empleados queremos guardar su código, nombre, dirección y teléfono. Del puesto de trabajo el código, descripción, oficina, despacho y mesa. Realiza el Modelo E/R y transfórmalo al Modelo Relacional. 2. Transformación del modelo E/R al modelo relacional
  • 34. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 34 Ejercicios 2 Se desea mecanizar la biblioteca de un centro educativo. En la biblioteca existen fichas de autores y libros. Un autor puede escribir varios libros, y un libro puede ser escrito por varios autores. Un libro está formado por ejemplares que son los que se prestan a los usuarios. Así un libro tiene muchos ejemplares y un ejemplar pertenece solo a un libro. De los ejemplares nos interesa saber la localización dentro de la biblioteca, los ejemplares son prestados a los usuarios, un usuario puede tomar prestados varios ejemplares y un ejemplar puede ser prestado a varios usuarios. Del préstamo nos interesa saber la fecha de préstamo y la de devolución 2. Transformación del modelo E/R al modelo relacional
  • 35. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 35 Relaciones Reflexivas o recursivas: son relaciones binarios en las que participa un tipo de entidad. En el proceso de convertir una relación reflexiva a tabla hay que tener en cuenta sobre todo la cardinalidad. Lo normal es que toda relación reflexiva se convierta en dos tablas, una para la entidad y otra para la relación. Se puede presentar los siguientes pasos: Si la relación es 1:1, la clave de la entidad se repite, con lo que la tabla resultante tendrá dos veces ese atributo, una como clave primaria y otra como clave ajena de ella misma. No se crea la segunda tabla 2. Transformación del modelo E/R al modelo relacional
  • 36. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 36 Si la relación es 1:N, podemos tener dos casos: Caso de que la entidad muchos sea siempre obligatoria se procede como en el caso 1:1 Si no es obligatoria, se crea una nueva tabla cuya clave será la de la entidad del lado muchos, y además se propaga la clave a la nueva tabla como clave ajena. Si es N:N se trata igual que en las relaciones binarias. La tabla resultante de la relación contendrá dos veces la clave primaria de la entidad del lado muchos, más los atributos de las relaciones si los hubiera. La clave de esta nueva tabla será la combinación de las dos. 2. Transformación del modelo E/R al modelo relacional
  • 37. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 37 Ejemplo1: Consideramos la relación Empleado-dirige-empleado. Un empleado puede dirigir a muchos empleados o a ninguno si es el que dirige. Y un empleado es dirigido por un director o por ninguno si el es el que dirige. En este caso no ha obligatoriedad en la entidad muchos. El Modelo E/R es: 2. Transformación del modelo E/R al modelo relacional EMPLEADO Dirige (0,N) (0,1) 1:N Cod_emple Dirección Nombre Tlf
  • 38. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 38 La tabla dirige tiene como clave primaria el código de empleado, que a su vez será clave ajena. Además se le añade el código de empleado pero, en este caso, tendrá el papel de director, que a su vez será clave ajena a la tabla EMPLEADO. El resultado será: EMPLEADO (cod_emple, dirección, teléfono, nombre) Dirige (cod_emple, cod_emple-director(FK)) 2. Transformación del modelo E/R al modelo relacional
  • 39. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 39 Ejemplo2: Consideramos la relación una pieza se compone de muchas piezas, que a su vez están compuestas de otras piezas, es decir Pieza_Compone_Pieza. El Modelo E/R es: 2. Transformación del modelo E/R al modelo relacional PIEZA COMPONE (1,N) (1,N) N:N Cod_pieza Descripción tamaño color
  • 40. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 40 PIEZA (cod_pieza, descripción, tamaño, color) COMPONE_PIEZA (cod_pieza_comp(FK), cod_pieza) Cod_pieza_comp es clave ajena 2. Transformación del modelo E/R al modelo relacional
  • 41. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 41 Transformación de otros elementos del modelo E-R Jerarquías al modelo relacional El modelo relacional no dispone de mecanismos fáciles de usar que permitan la representación de relaciones jerárquicas, por lo tanto se tienen que eliminar. Para pasar estas relaciones al modelo relacional se aplicará una de las siguientes reglas: 2. Transformación del modelo E/R al modelo relacional ANIMAL DELFÍNÁGUILAGATO tipo código color comida ala s
  • 42. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 42 Integrar todas las entidades en una única eliminando a los subtipo. Esta nueva entidad contendrá todos los atributos del supertipo, todos los de los subtipos, y los atributos discriminativos para distinguir a qué subentidad pertenece cada atributo. Todas las relaciones se mantiene con la nueva entidad. ANIMALES (código,tipo, color, alas, comida) Eliminación del supertipo, transfiriendo los atributos del supertipo a cada uno de los subtipos. El atributo de la relación se puede o no transferir. Las relaciones del supertipo se consideran para cada uno de los subtipos. Solo puede ser aplicada para jerarquías totales y exclusivas. GATOS (código, tipo, color) AGUILAs (código, tipo, alas) DELFINES (código, tipo, comida) 2. Transformación del modelo E/R al modelo relacional
  • 43. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 43 Insertar una relación 1:1 entre el supertipo y cada uno de los subtipos. Los atributos se mantienen y cada subtipo se identificará con la clave ajena del supertipo. El supertipo mantendrá una relación 1:1 con cada subtipo. Los subtipos mantendrán, si la relación es exclusiva, la cardinalidad mínima 0, y si es inclusiva 0 ó 1. ANIMALES (código, tipo) GATOS (código (FK), tipo, color) AGUILAS (código(FK), tipo, alas) DELFINES (código(FK), tipo, comida) 2. Transformación del modelo E/R al modelo relacional
  • 44. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 44 Transformación de otros elementos del modelo E/R Relaciones N-arias En este tipo de relaciones ser agrupan 3 o más entidades y para pasar al modelo de datos relacional cada entidad se convierte en tabla, así como la relación, que va a contener los atributos propios de ella más las claves de todas las entidades. La clave de la tabla resultante será la concatenación de las claves de las entidades. Hay que tener en cuenta que: Su la relación es N:N:N, es decir, si todas las entidades participan con cardinalidad N, la clave de la tabla resultante es la unión de las claves de las entidades que relaciona. Esa tabla incluirá los atributos de la relación si lo hubiera. 2. Transformación del modelo E/R al modelo relacional
  • 45. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 45 Ejemplo PROFESORES (cod_profesor, dirección, nombre, tlf, especialidad) CURSOS (cod_curso, descripción, nivel, turno) ASIGNATURAS(Cod_asignatura, nombre) IMPARTE (cod_profesor(FK), cod_curso(FK), cod_asignatura(FK)) 2. Transformación del modelo E/R al modelo relacional PROFESOR CURSO Imparte (1,N) (1,N) Cod_profesor Nombre Tlf Especialidad Dirección Cod_curso Turno N:N:N Nivel ASIGNATURA Nombre Cod_asignatura (1,N) Descripción
  • 46. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 46 Ejemplo CLIENTES (cod_cliente, nombre), EMPLEADO (cod_empleado, tlf, salario, fecha_alta) COCHES(Cod_coche, modelo, matrícula, precio) VENTA (cod_coche(FK), cod_cliente(FK), cod_empleado(FK), forma_pago, fecha_venta) 2. Transformación del modelo E/R al modelo relacional EMPLEADO COCHE Venta (1,1) (1,N) Cod_empleado Nombre Tlf Fecha_alta Salario Cod_coche precio 1:N:N modelo Matrícula CLIENTES Nombre Cod_cliente (1,N) Forma_pago Fecha_venta
  • 47. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 47 Resumen 2. Transformación del modelo E/R al modelo relacional MODELO ENTIDAD RELACIÓN MODELO RELACIONAL ENTIDAD TABLA BINARIAS 1:N Propagar la clave: clave ajena (tabla con N), o bien otra tabla 1:1 Propagar la clave: clave ajena, o bien otra tabla o bien uniendo las dos entidades en una tabla N:N Otra tabla nueva, con clave primaria igual a la suma de las claves primarias de las dos tablas REFLEXIVA S 1:N Clave ajena o bien otra tabla 1:1 Clave ajena o bien otra tabla N:N Otra tabla nueva, relación con clave principal igual a la clave principal de la entidad duplicada TERNARIAS Se crea una tabla nueva y a la hora de elegir la clave se tendrá en cuenta: 1. 1.- Concatenación de claves primarias de las entidades, con grado diferente a 1 (N,N,N...) 2. 2.- Si alguna tiene cardinalidad máxima 1, al menos ha de haber (N-1) claves primarias de otras (N-1) entidades, y han de participar en la relación las claves primarias de las entidades con cardinalidad máxima 1. Relaciones EJERCICIO 1 y 2
  • 48. 3. Normalización 1. Teoría de la Normalización. 2. Noción intuitiva de las Formas Normales. 3. Primera Forma Normal. 4. Segunda Forma Normal. 5. Tercera Forma Normal. 6. Forma Normal de Boyce-Cood. 7. Otras Formas Normales.
  • 49. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 49 La Teoría de la normalización define una serie de reglas que debe cumplir un modelo relacional para garantizar: Que no existen redundancias en la base de datos, con lo que se disminuye el espacio requerido para el almacenamiento de la información y se reducen los problemas de integridad de la información almacenada en la base de datos. Que se representa de forma coherente los objetos y relaciones existentes en el sistema. Que el rendimiento de las operaciones de actualización es el máximo posible. Que las operaciones de consulta son fiables y su rendimiento es el máximo posible 3.1. Teoría de la Normalización
  • 50. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 50 A este conjunto de reglas se les denomina Reglas de normalización de relaciones. Se dice que una relación está en una determinada forma normal si satisface un cierto conjunto específico de restricciones impuestas por la regla de normalización correspondiente. La sucesiva aplicación de las reglas de normalización, empezando por la Primera Forma Normal, da lugar a un mayor número de relaciones en el esquema que satisfacen dichas reglas. 3.1. Teoría de la Normalización
  • 51. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 51 La primera forma normal 1FN prohíbe que en un registro haya grupos repetitivos, es decir, “todos los campos deben ser atómicos”. Por ejemplo, dado el siguiente registro que no se encuentra en 1FN existen tres opciones en 1FN, a, b y c (más adelante veremos cuál es la mejor en cada ocasión): 3.2. Noción intuitiva de las F.N. COD_EMP NOMBRE IDIOMA 5050 M. DORADO ITALIANO ESPAÑOL 6969 P. SUAREZ ESPAÑOL … … …
  • 52. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 52 a) b) 3.2. Noción intuitiva de las F.N. COD_EMP NOMBRE IDIOMA 5050 M. DORADO ITALIANO 5050 M. DORADO ESPAÑOL 6969 P. SUAREZ ESPAÑOL COD_EMP NOMBRE COD_EMP IDIOMA 5050 M. DORADO 5050 ITALIANO 6969 P. SUAREZ 5050 ESPAÑOL 6969 ESPAÑOL … … … …
  • 53. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 53 c) 3.2. Noción intuitiva de las F.N. COD_EMP NOMBRE IDIOMA1 IDIOMA2 5050 M. DORADO ITALIANO ESPAÑOL 6969 P. SUAREZ ESPAÑOL … … … …
  • 54. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 54 Decimos que un registro está en Segunda Forma Normal (2FN) si, además de estar en 1FN, todos los campos que no forman parte de ninguna clave suministran información acerca de la clave completa. Por ejemplo, en el registro VENTAS(COD_PIEZA, COD_ALMACEN, CANTIDAD, DIRECCION_ALMACEN) donde la clave está formada por los campos COD_PIEZA y COD_ALMACEN, la dirección del almacén DIRECCION_ALMACEN es un hecho acerca sólo del almacén no de la pieza, por lo que el registro no está en 2FN. Para conseguirlo tendríamos que descomponer en: N_VENTAS(COD_PIEZA, COD_ALMACEN(FK), CANTIDAD) ALMACENES(COD_ALMACEN, DIRECCION_ALMACEN) 3.2. Noción intuitiva de las F.N.
  • 55. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 55 Decimos que un registro está en Tercera Forma Normal (3FN) si, además de estar en 2FN, todos los campos que no forman parte de ninguna clave deben facilitar información sólo acerca de la(s) clave(s), y no acerca de otros campos. En otras palabras, sus campos deben ser mutuamente independientes y completamente dependientes de la(s) clave(s). Por ejemplo, el registro siguiente, cuya clave es COD_EMPLEADO no esta en 3FN puesto que el nombre del departamento es un hecho acerca del código del departamento que no es clave. EMPLEADOS(COD_EMPLEADO, COD_DEPARTAMENTO, NOMBRE_DEPARTAMENTO) 3.2. Noción intuitiva de las F.N.
  • 56. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 56 Para conseguir la 3FN realizamos la siguiente descomposición: N_EMPLEADOS(COD_EMPLEADO, COD_DEPARTAMENTO(FK)) DEPARTAMENTOS (COD_DEPARTAMENTO, NOMBRE_DEPARTAMENTO) 3.2. Noción intuitiva de las F.N.
  • 57. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 57 Dependencias funcionales Son de primordial importancia a la hora de encontrar y eliminar la redundancia de los datos almacenados en las tablas de una base de datos relacional, se centran en el estudio de las dependencias que presenta cada atributo de una relación con respecto al resto de atributos de la misma. Dada una relación R que contiene los atributos X e Y se dice que Y depende funcionalmente de X (X Y) si y sólo si en todo momento cada valor de X tiene asociado un solo valor de Y. Esto es lo mismo que decir que si dos tuplas de R tienen el mismo valor para su atributo X forzosamente han de tener el mismo valor para el atributo Y. 3.2. Noción intuitiva de las F.N.
  • 58. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 58 Tipos de dependencias: Dependencias completa y parcial: Dado un atributo compuesto X formado por los atributos X1 y X2, se dice que el atributo Y tiene una dependencia funcional completa con respecto a X si : X1 Y; X2 Y; Y-/ X(Y no implica X) pero X Y Por el contrario dado un atributo compuesto X formado por los atributos X1 y X2, se dice que el atributo Y tiene una dependencia funcional parcial con respecto a X si X1- Y o X2 -/ Y y X Y. 3.2. Noción intuitiva de las F.N.
  • 59. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 59 Tipos de dependencias: Dependencia Transitiva: dados los atributos X, Y y Z de la relación R en la que existen las siguientes dependencias funcionales X Y; Y Z; se dice que Z tiene una dependencia transitiva respecto a X a través de Y:X Z. Por ejemplo: Nombre de alumnos Dirección; dirección Ciudad; Nombre de alumno Ciudad. 3.2. Noción intuitiva de las F.N.
  • 60. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 60 Existen seis niveles de normalización de una relación, que se muestran en la figura. Una relación se encuentra en un grado u otro de normalización si cumple una serie de propiedades (restricciones) que se explican a continuación. 3.2. Noción intuitiva de las F.N. 1FN 2FN 3FN FNBC 4FN 5FN
  • 61. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 61 Las tres primeras formas normales las definió Codd y se basan en las dependencias funcionales que existen entre los atributos de la relación. Más tarde, y debido a que todavía existían anomalías, redefinió la 3FN y la llamó FNBC. Posteriormente se definieron dos niveles más de normalización, la 4FN y la 5FN. De esta forma, las relaciones en 1FN tienen más redundancia de datos que los niveles superiores, y por lo tanto más anomalías de actualización de datos. Y la 5FN es el grado de normalización máximo que puede alcanzar una relación. 3.2. Noción intuitiva de las F.N.
  • 62. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 62 Se dice que una relación está en 1FN si y sólo si los valores que componen cada atributo de una tupla son atómicos, es decir, cada atributo de la relación toma un único valor del dominio correspondiente, o lo que es lo mismo, no existen grupos repetitivos. La tabla estará en 1FN si tiene un solo valor en la intersección de cada fila con cada columna. Un conjunto de relaciones se encuentra en 1FN si ninguna de ellas tiene grupos repetitivos. Si una relación no está en 1FN, hay que eliminar de ellas los grupos repetitivos. Un grupo repetitivo será el atributo o grupo de atributos que tiene múltiplos valores para cada tupla de la relación. Hay dos formas de eliminar los grupos repetitivos: 3.3. Primera Forma Normal.
  • 63. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 63 Repetir los atributos con un solo valor para cada valor del grupo repetitivo. De este modo se introducen redundancias ya que se duplican valores, pero estas redundancias se eliminarán después mediante las restantes formas normales. La segunda forma de eliminar los grupos repetitivos consiste en poner cada uno de ellos en una relación a parte, heredando la clave primaria de la relación en al que se encontraban. 3.3. Primera Forma Normal.
  • 64. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 64 Ejemplo. Consideramos la tabla Alumno, con clave primaria Cod_Alumno, en la que el atributo Tlf puede tomar varios valores: el móvil, el de casa, el del padre, el de la madre, etc. Esta tabla no está en 1FN, ya que hay dos alumnos con varios tlfs 3.3. Primera Forma Normal. COD_ALUMNO NOMBRE APELLIDO TLF DIRECCIÓN 1111 PEPE GARCÍA 678-900600 91-2233441 91-1231232 C/ Las Cañas, 45 2222 MARÍA SUÁREZ 91-7008001 C/Mayor, 12 3333 JUAN GIL 91-7562324 660-111222 C/La plaza 4444 FRANCISCO MONTOYA 678-556443 C/La arboleda
  • 65. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 65 Definir como clave primaria de la tabla Cod_Alumno y el Tlf, con el fin de que cada atributo tomo un único valor en la tupla correspondiente Tabla alumno primera transformación a 1FN 3.3. Primera Forma Normal. COD_ALUMNO TLF NOMBRE APELLIDO DIRECCIÓN 1111 678-900600 PEPE GARCÍA C/ Las Cañas, 45 1111 91-2233441 PEPE GARCÍA C/ Las Cañas, 45 1111 91-1231232 PEPE GARCÍA C/ Las Cañas, 45 2222 91-7008001 MARÍA SUÁREZ C/Mayor, 12 3333 91-7562324 JUAN GIL C/La plaza 3333 660-111222 JUAN GIL C/La plaza 4444 678-556443 FRANCISCO MONTOYA C/La arboleda
  • 66. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 66 O también se eliminan los grupos repetitivos (TLF) y se crea una relación (tabla) junto con la clave inicial. Tabla alumno segunda transformación a 1FN 3.3. Primera Forma Normal. COD_ALUMNO NOMBRE APELLIDO DIRECCIÓN 1111 PEPE GARCÍA C/ Las Cañas, 45 2222 MARÍA SUÁREZ C/Mayor, 12 3333 JUAN GIL C/La plaza 4444 FRANCISCO MONTOYA C/La arboleda COD_ALUMNO (FK) TLF 1111 678-900600 1111 91-2233441 1111 91-1231232 2222 91-7008001 3333 91-7562324 3333 660-111222 4444 678-556443
  • 67. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 67 La aplicación de esta regla es muy sencilla, simplemente consiste en descomponer los atributos multivaluados. Estos atributos dan lugar a una nueva relación cuya clave primaria es la concatenación de la clave primaria de la entidad en la que se sitúa el atributo multivaluado más el nombre del atributo multivaluado. Supongamos un modelo E/R con la siguiente entidad: 3.3. Primera Forma Normal. Recambio Cod_recambio descripcion proveedor
  • 68. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 68 Aplicando la regla 1 obtenemos la relación: RECAMBIO(cod_recambio,descripción, proveedor) donde proveedor es un atributo multivaluado (para un mismo recambio puedo tener varios proveedores). Para cumplir la 1FN realizaríamos la siguiente descomposición: RECAMBIO(cod_recambio,descripción) PROVEEDOR(cod_recambio (FK), proveedor) 3.3. Primera Forma Normal.
  • 69. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 69 Se dice que una relación se encuentra en 2FN si y sólo si satisface la 1FN, y cada atributo de la relación que no está en la clave depende funcionalmente de forma completa de la clave primaria de la relación. La 2FN se aplica a las relaciones que tienen claves primarias compuestas por dos o más atributos. Si una relación está en 1FN y su clave primaria es simple (tiene un solo atributo), entonces también está en 2FN. Las relaciones que no están en 2FN pueden sufrir anomalías cuando se realizan actualizaciones. 3.4. Segunda Forma Normal.
  • 70. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 70 Para pasar una relación en 1FN a 2FN hay que eliminar las dependencias parciales de la clave primaria. Para ello se eliminan los atributos, que son funcionalmente dependientes, y se ponen en una nueva relación con una copia de su determinante (los atributos de la clave primaria de los que dependen). Se crearán dos tabla para eliminar las dependencias funcionales, una de ellas tendrá los atributos que dependen funcionalmente de la clave, y la otra los atributos que forman parte de la clave de la que dependen 3.4. Segunda Forma Normal.
  • 71. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 71 Ejemplo: supongamos que tenemos una relación ALUMNO en la que representamos los datos de los alumnos y las notas en cada una de las asignaturas en que está matriculado. La clave es el número de matrícula Cod_Alumno y la asignatura Asignatura. 3.4. Segunda Forma Normal. COD_ALUMNO NOMBRE APELLIDO ASIGNATURA NOTA CURSO AULA 1111 PEPE GARCÍA LENGUA I 5 1 15 1111 PEPE GARCÍA IDIOMAS 5 2 16 2222 MARÍA SUÁREZ IDIOMAS 7 2 16 2222 MARÍA SUÁREZ CIENCIAS 7 2 14 3333 JUAN GIL PLÁSTICA 6 1 18 3333 JUAN GIL MATEMÁTICAS I 6 1 12 4444 FRANCISCO MONTOYA LENGUA II 4 2 11 4444 FRANCISCO MONTOYA MATEMÁTICAS I 6 1 12 4444 FRANCISCO MONTOYA CIENCIAS 8 1 14 Tabla ALUMNO para transformarla en 2FN
  • 72. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 72 Es obvio que todos los atributos no dependen de la clave completa (COD_ALUMNO, ASIGNATURA). En primer lugar, hay que ver las dependencias funcionales de cada uno de los atributos con respecto a los atributos de la clave y el resto de atributos: Nombre y Apellidos, sólo dependen de Cod_Alumno Los atributos Curso y Aula están relacionados con Asignatura, es decir, existe una dependencia entre Asignatura Curso, Asignatura Aula. Una asignatura pertenece a un curso y se imparte en un aula. El atributo Nota depende funcionalmente de la clave, pues para que haya una nota tienen que haber una asignatura y un alumno 3.4. Segunda Forma Normal.
  • 73. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 73 Vista las dependencias funcionales llegamos a la siguiente conclusión para que la relación Alumno esté en 2FN necesitamos crear tres relaciones: ALUMNO, ASIGNATURAS Y NOTAS 3.4. Segunda Forma Normal. COD_ALUMNO NOMBRE APELLIDO 1111 PEPE GARCÍA 2222 MARÍA SUÁREZ 3333 JUAN GIL 444 FRANCISCO MONTOYA ASIGNATURA CURSO AULA LENGUA I 1 15 IDIOMAS 2 16 CIENCIAS 2 14 PLÁSTICA 1 18 MATEMÁTICAS I 1 12 LENGUA II 2 11Tabla ALUMNO, en 2FN Tabla ASIGNATURA, en 2FN
  • 74. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 74 3.4. Segunda Forma Normal. COD_ALUMNO(FK) ASIGNATURA(FK) NOTA 1111 LENGUA I 5 1111 IDIOMAS 5 2222 IDIOMAS 7 2222 CIENCIAS 7 3333 PLÁSTICA 6 3333 MATEMÁTICAS I 6 4444 LENGUA II 4 4444 MATEMÁTICAS I 6 444 CIENCIAS 8 Tabla NOTA, en 2FN
  • 75. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 75 Se dice que una relación se encuentra en 3FN si y sólo está en 2FN, y cada atributo que no está en la clave primaria no depende transitivamente de la clave primaria. Es decir, los atributos de la relación no dependen unos de otros, dependen únicamente de la clave, esté formado por uno o más atributos. La dependencia X Z es transitiva si existen las dependencias X Y Y Z, siendo X, Y, atributos o conjuntos de atributos de una misma relación. Para pasar una relación de 2FN a 3FN hay que eliminar las dependencias transitivas. Para ello se eliminan los atributos que dependen transitivamente y se ponen en una nueva relación con una copia de su determinante (el atributo o atributos no clave de los que dependen). 3.5. Tercera Forma Normal.
  • 76. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 76 Ejemplo: supongamos que tenemos una relación LIBROS en la que representamos los datos de las editoriales de los mismos Tabla LIBROS, para transformar a 3FN Veamos las dependencias con respecto a la clave: TÍTULO Y EDITORIAL dependen directamente del código del libro El PAÍS, aunque es parte, también depende del libro, está más ligado a la Editorial a la que pertenece el libro. Por esta razón, la relación libros no está en 3FN. La solución sería: 3.5. Tercera Forma Normal. COD_LIBRO TÍTULO EDITORIAL PAÍS 12345 DISEÑO DE BD RELACIONALES RAMA ESPAÑA 34562 INSTALACIÓN Y MANTENIMIENTO DE EQUIPOS MCGRAW-HILL ESPAÑA 72224 FUNDAMENTOS DE PROGRAMACIÓN SANTILLANA ESPAÑA 34522 BASE DE DATOS OO ADDISON EEUU
  • 77. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 77 Tabla Libros, en 3FN 3.5. Tercera Forma Normal. COD_LIBRO TÍTULO EDITORIAL (FK) EDITORIAL PAÍS 12345 DISEÑO DE BD RELACIONALES RAMA RAMA ESPAÑA 34562 INSTALACIÓN Y MANTENIMIENTO DE EQUIPOS MCGRAW-HILL MCGRAW-HILL ESPAÑA 72224 FUNDAMENTOS DE PROGRAMACIÓN SANTILLANA SANTILLANA ESPAÑA 34522 BASE DE DATOS OO ADDISON ADDISON EEUU Tabla Editorial en 3FN
  • 78. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 78 Ejercicio: Normalizar hasta la 3FN 3.5. Tercera Forma Normal. DNI NOMBRE APELLIDOS DIRECCIÓN CP POBLACIÓN PROVINCIA 413246-B JUAN RAMOS C/Las Cañas, 59 C/Pilón 12 19005 45589 Guadalajara Caleruela Guadalajara Toledo 23456-J PEDRO PÉREZ C/Victoria, 3 C/El altozano 28804 10392 Alcalá de Henares Berrocalejo Madrid Cáceres 34561-B MARÍA RODRÍGUEZ C/Sanz Vázquez,2 19004 Guadalajara Guadalajara 222346-J JUAN CABELLO C/El ensanche, 3 C/ Los abedules10 28802 10300 Alcalá de Henares Navalmoral Madrid Cáceres
  • 79. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 79 La forma normal de Boyce-Codd (FNBC) es conceptualmente distinta, y mucho más sencilla, a la 2FN y 3FN. Las relaciones que satisfacen la FNBC satisfacen la 2FN y 3FN. La FNBC se basa en el concepto de determinante funcional, y está soportada en las características de las claves candidatas de las relaciones. Se denomina determinante funcional a uno o a un conjunto de atributos de una relación R del cual depende funcionalmente de forma completa algún otro atributo de la misma relación. La FNBC se puede expresar de la siguiente manera: Una relación R satisface la FNBC si, y sólo si, se encuentra en 1FN, y cada determinante funcional es una clave candidata de la relación R. 3.6. Forma Normal de Boyce-Codd (FNBC)
  • 80. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 80 Del análisis de las últimas relaciones obtenidas se puede deducir que todas las relaciones se encuentran en FNBC, puesto que: Los únicos determinantes funcionales son las claves para cada una de las relaciones, puesto que en ninguna relación existen claves alternativas. En todas las relaciones, las únicas dependencias funcionales son las existentes entre los atributos no primos de cada relación y la clave de la misma. Pero se pueden dar casos en los que una relación se encuentre en 3FN pero no satisfaga la FNBC. 3.6. Forma Normal de Boyce-Codd (FNBC)
  • 81. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 81 Ejemplo: supongamos que tenemos una relación EMPLEADOS en la que representamos los datos de los empleados de una fábrica. Tabla EMPLEADOS, para transformar a FNBC Observando los atributos de esta relación podemos ver que Num_Seg y el grupo Nombre-Apellidos son claves candidatas (determinantes). Esta relación se transforma en dos tablas: una contendrá la clave junto con las claves candidatas (EMPLEADOS) y la otra la clave con el resto de campo (EMPL_TRABAJO) 3.6. Forma Normal de Boyce-Codd (FNBC) DNI Nº_SEG NOMBRE APELLIDOS DEPARTAMENTO PUESTO SALARIO 413245-B 28-11111 JUAN RAMOS COMPRAS GERENTE 2.300 23456-J 28-22222 PEDRO PÉREZ NÓMINAS AUXILIAR 1.200 123123-C 28-33333 MARÍA GIL ALMACÉN CONSERJE 1.530 435613-H 28-44444 ANTONIO SANZ COMPRAS GESTIÓN 2.200
  • 82. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 82 Tabla EMPLEADOS EN FNBC Tabla EMPLE_TRABAJO EN FNBC 3.6. Forma Normal de Boyce-Codd (FNBC) DNI Nº_SEG NOMBRE APELLIDOS 413245-B 28-11111 JUAN RAMOS 23456-J 28-22222 PEDRO PÉREZ 123123-C 28-33333 MARÍA GIL 435613-H 28-44444 ANTONIO SANZ DNI(FK) DEPARTAMENTO PUESTO SALARIO 413245-B COMPRAS GERENTE 2.300 23456-J NÓMINAS AUXILIAR 1.200 123123-C ALMACÉN CONSERJE 1.530 435613-H COMPRAS GESTIÓN 2.200
  • 83. Tema3: Diseño Lógico de Bases de Datos - Modelo Relacional 83 Existen más formas normales (4FN, 5FN, 6FN, etc), cuyo alcance excede de este curso y cuya aplicación en el mundo real es únicamente teórica. 3.7. Otras Formas Normales