2. Objetivos
• Tablas, Columnas, Filas y Campos(Primera Forma Normal)
• Definición de Primary Key y Foreign Key
• Conversión de Entidades del Modelo Conceptual
• Conversión de Relaciones:
– 1:1
– 1:M
– M:M
– Ternaria
• Conversión de Relaciones Especiales
– Supertipo-Subtipo
– Dependencia
– Recursiva
• Resolución de la Ubicación de los Atributos de la Relación
3. Modelo Lógico
• El modelo lógico es el refinamiento del
Modelo Conceptual
• Aquí se reducen y/o aumentan entidades y
solo quedan aquellas que van a ser diseñadas
como tablas de la Base de Datos
4. Formas Normales (FN)
• En la teoría de bases de datos relacionales, las
formas normales (FN) proporcionan los
criterios para determinar el grado de
vulnerabilidad de una tabla a inconsistencias y
anomalías lógicas.
5. Tablas, Columnas, Filas y
Campos(Primera Forma Normal)
• Una tabla de base de datos relacional que se
adhiere a la 1FN es una que satisface cierto
conjunto mínimo de criterios.
• Estos criterios se refieren básicamente a
asegurarse que la tabla es una representación
fiel de una relación y está libre de "grupos
repetitivos".
6. Tablas, Columnas, Filas y
Campos(Primera Forma Normal)
• Una tabla está en 1FN si satisface las siguientes cinco condiciones:
1. No hay orden de arriba-a-abajo en las filas.
2. No hay orden de izquierda-a-derecha en las columnas.
3. No hay filas duplicadas.
4. Cada intersección de fila-y-columna contiene exactamente un
valor del dominio aplicable y nada más.
5. Todas las columnas son regulares es decir, las filas no tienen
componentes como IDs de fila, IDs de objeto, o timestamps
ocultos.
Cedula Nombre Dirección Teléfono
0876456324 Jorge Santos 1234 Av. 10 2345678
0964532748 Luis Tinoco 6543 Av. 4 2654345
1345234567 Ana Ramírez 34 Av. 6 2654567
Cedula
Nombre
Dirección
Teléfono
CLIENTE
7. Tablas, Columnas, Filas y
Campos(Primera Forma Normal)
• La violación de cualesquiera de estas condiciones
significaría que la tabla no es estrictamente
relacional, y por lo tanto no está en 1FN.
Cedula Nombre Apellido Dirección Teléfono
0876456324 Jorge Santos 1234 Av. 10 2345678
0964532748 Luis Tinoco 6543 Av. 4 2654345
1345234567 Ana Ramírez 34 Av. 6 2654567
Cedula
Nombre
Apellido
Dirección
Teléfono
CLIENTE
Tabla/fila/columna = archivo/registro/campo = relación/tupla/atributo
8. Tipos de Claves
• Una clave es una o más columnas de una tabla
que identifica una fila.
• Una clave única identifica una sola fila, una no
única identifica a varias filas.
• Una clave compuesta es una clave que
contiene dos o más atributos.
• Una tabla tiene una clave primaria única y
puede tener claves únicas adicionales
llamadas claves candidatas.
9. Primary Key – Clave primaria
• Es usada para:
– Representar la tabla en las relaciones
– Organizar el almacenamiento de tabla
– Generar índices
10. Foreign Key – Clave Foránea
• Una clave foránea es una referencia a una
clave en otra tabla.
• Las claves foráneas no necesitan ser claves
únicas en la tabla donde están y sí a donde
están referenciadas.
idEmpleado (pk)
Nombre
Dirección
Teléfono
idDepartamento(fk)
EMPLEADO
idDepartamento(pk)
Nombre
DEPARTAMENTO
trabaja
11. Conversión de entidades
del modelo conceptual
• Cada entidad del modelo conceptual se
transforma directamente en una tabla.
• Los atributos de la entidad pasan a ser
automáticamente las columnas de la tabla.
Entidad Tabla
Atributos Columnas
idCliente int (pk)
Nombre char(30)
Dirección char(50)
Teléfono int
CLIENTE
idCliente
Nombre
Dirección
Teléfono
CLIENTE
12. Conversión de Relaciones
• Cada relación de un modelo conceptual se
transforma directamente en una tabla.
• Los campos de esta tabla son las claves
primarias de todas las entidades que
participen en la relación más todos aquellos
atributos que pudiera tener la relación.
Relación Tabla
13. Simplificación del modelo lógico
• El número de tablas que componen la base de
datos debe mantenerse en el mínimo posible.
• Esto mismo es aplicable a las relaciones
binarias con cardinalidad uno a uno.
• Las tablas con un único atributo se pueden
eliminar.
14. Relaciones 1:1
• Si las entidades que se asocian poseen
cardinalidades (0,1), entonces la relación se
transforma en una tabla, además de las dos
tablas a las que se transforman cada una de
las entidades:
idHombre
Nombre
HOMBRE
idMujer
Nombre
MUJER
matrimonio
idHombre int (pk)
Nombre char(30)
HOMBRE
idMujer int (pk)
Nombre char(30)
MUJER
idMujer int (fk)
idHombre int (fk)
MATRIMONIO
idMujer= idMujeridHombre= idHombre
15. Relaciones 1:1
• Si una de las entidades que participa en la relacion posee
cardinalidad (0,1), mientras que en la otra es (1,1), conviene
propagar la clave de la entidad con cardinalidad (1,1) a la tabla
resultante de la entidad de cardinalidades (0,1) con el fin de evitar
que aparezcan valores nulos.
idEmpleado
Nombre
Dirección
Teléfono
EMPLEADO
idDepartamento
Nombre
DEPARTAMENTO
dirige
idEmpleado int (pk)
Nombre char(30)
Dirección char(50)
Teléfono int
EMPLEADO
idDepartamento int(pk)
Nombre char(30)
idEmpleado int (fk)
DEPARTAMENTO
idEmpleado= idEmpleado
16. Relaciones 1:1
• En el caso de que ambas entidades presenten cardinalidades (1,1),
se puede propagar la clave de cualquiera de ellas a la tabla
resultante de la otra, teniendo en cuenta en este caso los accesos
más frecuentes y prioritarios a los datos de las tablas.
codigo
Nombre
añoFundacion
EQUIPO
cedula
Nombre
Apellido
PRESIDENTE
tiene
codigo= codigo
Cedula char (12) (pk)
Nombre char(30)
Apellido char(30)
Codigo int (fk)
PRESIDENTE
Codigo int (pk)
Nombre char(50)
añoFundacion int
EQUIPO
cedula= cedula Cedula char (12) (pk)
Nombre char(30)
Apellido char(30)
PRESIDENTE
Codigo int (pk)
Nombre char(50)
añoFundacion int
Cedula char(12) (fk)
EQUIPO
17. Relaciones 1:M
• Las tablas obtenidas como transformación de
relaciones binarias con cardinalidad uno a varios
se pueden eliminar.
• Los atributos que formaban parte de la tabla
pasan a formar parte de la tabla que representa
la entidad con cardinalidad “varios”.
• Asimismo, si la relación tuviera atributos propios,
también pasarían a la tabla que representa la
entidad con cardinalidad “varios”.
18. Relaciones 1:M
idEmpleado int (pk)
Nombre char(30)
Dirección char(50)
Teléfono int
idDepartamento int(fk)
EMPLEADO
idDepartamento int (pk)
Nombre char(30)
DEPARTAMENTO
idDepartamento = idDepartamento
idEmpleado
Nombre
Dirección
Teléfono
EMPLEADO
idDepartamento
Nombre
DEPARTAMENTO
trabaja
21. Relaciones Ternarias
idCliente
Nombre
Direccion
Telefono
Ciudad
CLIENTE
idCliente int (pk)
Nombre char(30)
Direccion char(50)
Telefono int
Ciudad char(30)
CLIENTE
idFormaPago
descripcion
FORMADEPAGO
numFactura
montoTotal
FACTURA
paga
Fecha
hora
idFormaPago int (pk)
Descripcion char(50)
FORMADEPAGO
idFormaPago int (fk)
idCliente int (fk)
numFactura int (fk)
Fecha date
Hora time
PAGO
numFactura int (pk)
montoTotal numeric(20,2)
FACTURA
idCliente=idCliente
idFormaPago= idFormaPago
numFactura= numFactura
22. Conversión de Relaciones Especiales
Supertipo –Subtipo
(a) Englobar todos los atributos de la entidad y sus subtipos en una
sola tabla. (Adoptaremos esta solución cuando los subtipos se
diferencien en muy pocos atributos y las relaciones que los
asocian con el resto de entidades del modelo conceptual sean las
mismas para todos los subtipos.
(b) Crear una tabla para el supertipo y tantas tablas como subtipos
haya, con sus atributos correspondientes. Esta es la solución
cuando existen muchos atributos distintos entre los subtipos y se
quieren mantener de todas las maneras los atributos comunes a
todos ellos en una tabla.
(c) Considerar las tablas distintas para cada subtipo, que contengan
además los atributos comunes. Se elegirá esta opción cuando se
dieran las mismas condiciones que en el caso anterior (muchos
atributos distintos) y los accesos realizados sobre los datos de los
distintos subtipos siempre afectan a atributos comunes.
24. Supertipo –Subtipo
idCliente int (pk)
Nombre char(30)
Direccion char(50)
Telefono int
Ciudad char(30)
CLIENTE(b)
idCliente
Nombre
Direccion
Telefono
Ciudad
CLIENTE
RUC
Razon social
Empresa
Cedula
Estado civil
Persona
idCliente int(fk)
RUC char(14) (pk)
Razon social char(20)
Empresa
idCliente int (fk)
Cedula char(12) (pk)
EstadoCivil char(10)
Persona
28. Diccionario de Datos
• Es un documento que muestra una
descripción de los elementos que componen
cada tabla.
• Para cada atributo de la tabla se especifica:
Atributo Tipo de Dato Dominio Descripción