Capítulo 4
Modelo Lógico
Objetivos
• Tablas, Columnas, Filas y Campos(Primera Forma Normal)
• Definición de Primary Key y Foreign Key
• Conversión ...
Modelo Lógico
• El modelo lógico es el refinamiento del
Modelo Conceptual
• Aquí se reducen y/o aumentan entidades y
solo ...
Formas Normales (FN)
• En la teoría de bases de datos relacionales, las
formas normales (FN) proporcionan los
criterios pa...
Tablas, Columnas, Filas y
Campos(Primera Forma Normal)
• Una tabla de base de datos relacional que se
adhiere a la 1FN es ...
Tablas, Columnas, Filas y
Campos(Primera Forma Normal)
• Una tabla está en 1FN si satisface las siguientes cinco condicion...
Tablas, Columnas, Filas y
Campos(Primera Forma Normal)
• La violación de cualesquiera de estas condiciones
significaría qu...
Tipos de Claves
• Una clave es una o más columnas de una tabla
que identifica una fila.
• Una clave única identifica una s...
Primary Key – Clave primaria
• Es usada para:
– Representar la tabla en las relaciones
– Organizar el almacenamiento de ta...
Foreign Key – Clave Foránea
• Una clave foránea es una referencia a una
clave en otra tabla.
• Las claves foráneas no nece...
Conversión de entidades
del modelo conceptual
• Cada entidad del modelo conceptual se
transforma directamente en una tabla...
Conversión de Relaciones
• Cada relación de un modelo conceptual se
transforma directamente en una tabla.
• Los campos de ...
Simplificación del modelo lógico
• El número de tablas que componen la base de
datos debe mantenerse en el mínimo posible....
Relaciones 1:1
• Si las entidades que se asocian poseen
cardinalidades (0,1), entonces la relación se
transforma en una ta...
Relaciones 1:1
• Si una de las entidades que participa en la relacion posee
cardinalidad (0,1), mientras que en la otra es...
Relaciones 1:1
• En el caso de que ambas entidades presenten cardinalidades (1,1),
se puede propagar la clave de cualquier...
Relaciones 1:M
• Las tablas obtenidas como transformación de
relaciones binarias con cardinalidad uno a varios
se pueden e...
Relaciones 1:M
idEmpleado int (pk)
Nombre char(30)
Dirección char(50)
Teléfono int
idDepartamento int(fk)
EMPLEADO
idDepar...
Relaciones 1:M
idUsuario= idUsusario
idUsuario
password
nombre
apellido
USUARIO
idReservacion
fechaLlegada
horaLlegada
dia...
Relaciones M:M
idcliente
Nombre
Apellido
Dirección
Teléfono
CLIENTE
codProducto
Descripcion
PRODUCTOS
compra
fechaCompra
I...
Relaciones Ternarias
idCliente
Nombre
Direccion
Telefono
Ciudad
CLIENTE
idCliente int (pk)
Nombre char(30)
Direccion char(...
Conversión de Relaciones Especiales
Supertipo –Subtipo
(a) Englobar todos los atributos de la entidad y sus subtipos en un...
Supertipo –Subtipo
idCliente
Nombre
Direccion
Telefono
Ciudad
CLIENTE
RUC
Razon social
Empresa
Cedula
Estado civil
Persona...
Supertipo –Subtipo
idCliente int (pk)
Nombre char(30)
Direccion char(50)
Telefono int
Ciudad char(30)
CLIENTE(b)
idCliente...
Supertipo –Subtipo
(c)
idCliente
Nombre
CLIENTE
RUC
Razon social
Empresa
Cedula
Estado civil
Persona
RUC char(14) (pk)
idC...
Dependencia
Edificio Departamentotiene
idEdificio
Nombre
direccion
idDepartamento
Numero
Piso
Edificio Departamento
idEdif...
Recursiva
Supervisa
idEmpleado
Nombre
Apellido
Dirección
Teléfono
Empleado
idEmpleado int (pk)
Nombre char(30)
Apellido ch...
Diccionario de Datos
• Es un documento que muestra una
descripción de los elementos que componen
cada tabla.
• Para cada a...
Ejemplo de Diccionario de Datos
Upcoming SlideShare
Loading in …5
×

4 ml

381 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
381
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

4 ml

  1. 1. Capítulo 4 Modelo Lógico
  2. 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. 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. 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. 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. 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. 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. 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. 9. Primary Key – Clave primaria • Es usada para: – Representar la tabla en las relaciones – Organizar el almacenamiento de tabla – Generar índices
  10. 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. 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. 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. 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. 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. 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. 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. 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. 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
  19. 19. Relaciones 1:M idUsuario= idUsusario idUsuario password nombre apellido USUARIO idReservacion fechaLlegada horaLlegada diasPermanencia RESERVACION registra fechaReservacion horaReservacion idUsuario char(30)(pk) Password char(30) Nombre char(30) Apellido char(30) USUARIO idReservacion int (pk) fechaLlegada date horaLlegada time diasPermanencia int fechaReservacion date horaReservacion time idUsuario char(30) (fk) RESERVACION
  20. 20. Relaciones M:M idcliente Nombre Apellido Dirección Teléfono CLIENTE codProducto Descripcion PRODUCTOS compra fechaCompra Idcliente int (pk) Nombre char(30) Apellido char(30) Dirección char(50) Teléfono int CLIENTE codProducto int (pk) Descripcion char(50) PRODUCTOS idCompra (pk) idCliente int (fk) codProducto int(fk) fechaCompra date COMPRA idCliente=idCliente codProducto=codProducto
  21. 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. 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.
  23. 23. Supertipo –Subtipo idCliente Nombre Direccion Telefono Ciudad CLIENTE RUC Razon social Empresa Cedula Estado civil Persona idCliente int (pk) Nombre char(30) Direccion char(50) Telefono int Ciudad char(30) RUC char(14) Razon social char(20) Cedula char(12) EstadoCivil char(10) CLIENTE(a)
  24. 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
  25. 25. Supertipo –Subtipo (c) idCliente Nombre CLIENTE RUC Razon social Empresa Cedula Estado civil Persona RUC char(14) (pk) idCliente int (pk) Nombre char(30) Razon social char(20) Empresa Cedula char(12) (pk) idCliente int (pk) Nombre char(30) EstadoCivil char(10) Persona
  26. 26. Dependencia Edificio Departamentotiene idEdificio Nombre direccion idDepartamento Numero Piso Edificio Departamento idEdificio int (pk) Nombre char(30) direccion char(50) idDepartamento int (pk) Numero int Piso int idEdificio int (fk) idEdificio= idEdificio
  27. 27. Recursiva Supervisa idEmpleado Nombre Apellido Dirección Teléfono Empleado idEmpleado int (pk) Nombre char(30) Apellido char(30) Dirección char(50) Teléfono int idEmpleado2 int(fk) Empleado idEmpleado= idEmpleado2
  28. 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
  29. 29. Ejemplo de Diccionario de Datos

×