Documentos de Académico
Documentos de Profesional
Documentos de Cultura
w w w. d m c . p e
Contenido General
Entidad
Relación
Cardinalidad
Diseñando la base de datos (V)
Diseño lógico: Esta basado en los siguientes principios:
1. Todo tipo de entidad del modelo conceptual se convierte en una tabla.
2. Todo tipo de relación entre tablas 1:N se traduce en una propagación de la clave (se crea una clave
primaria o foránea) o bien se crea una nueva tabla intermedia.
3. Todo tipo de relaciones entre tablas N:M (muchos a muchos) origina la creación de una nueva tabla
intermedia.
Aplicando a nuestro caso de estudio:
1 Aplicando la primera regla, obtenemos que
como existen seis entidades (autor, libro,
ejemplar, tema, idioma y socio), hemos de
crear seis tablas, una por cada entidad,
obteniendo las siguientes seis tablas con su
correspondiente clave primaria (PK:
Primary key)
Diseñando la base de datos (VI)
2 Apliquemos ahora la segunda regla. Tenemos dos relaciones 1:N, lo cual nos origina la
propagación de las claves. La propagación se efectúa desde la tabla de cardinalidad 1 a la tabla
de cardinalidad N. Además, la propagación es de clave primaria si la clave primaria de la tabla
a la que se propaga la clave no identifica unívocamente la entidad, en caso contrario se
propaga en forma de clave foránea (FK: Foreign key)
Sólo aquellos atributos que pertenezcan a las características propias de la entidad, tienen
dependencia funcional con la PK. En caso contrario, si no dependen funcionalmente de la clave
principal o pueden tomas múltiples valores, entonces no pertenecen a la entidad.
Normalización de datos (III)
Formas Normales
Primera Forma Normal: Una base de datos se considera que está en 1FN si cada atributo
(campo) de una tabla contiene un solo valor atómico (simple). Pasos:
1. Identificar los grupos repetitivos y no repetitivos (GR, GNR).
2. Remover los GR y crear una nueva entidad con ellos.
3. Llevar la clave a la nueva entidad
Grupos no
Repetidos
Grupos
Repetidos
Normalización de datos (IV)
Formas Normales
Segunda Forma Normal: Una tabla se considera que está en 2FN si está en 1FN y cada
atributo (campo) no clave depende de la clave completa, no de parte de ella. Una base de
datos estará en 2FN si todas sus tablas lo están.
La idea es identificar todas las tablas con una clave compuesta, pues todas las tablas con
clave simple están por defecto en 2FN si están en 1FN, y comprobar que cada uno de los
campos de esta tabla depende de la clave completa.
En nuestro ejemplo, la tabla FACTURA se encuentra en 2FN pues está en 1FN y su clave es
simple. Sin embargo la tabla DETALLE_FACT tiene que analizarse pues su clave es compuesta:
Normalización de datos (V)
Formas Normales
Tercera Forma Normal: Una tabla se considera que está en 3FN si está en 2FN y todos los
atributos que no son claves deben ser mutuamente independientes, es decir, un atributo no
debe depender de otro atributo no clave de su tabla.
Si un atributo que no es clave depende de otro atributo que no es clave, la tabla
posiblemente contiene datos acerca de mas de una entidad, contradiciendo el principio de
que cada tabla almacene información de una entidad.
Normalización de datos (VI)
Para que un diseño de datos tenga credibilidad y de suficiente soporte al cumplimiento de
requerimiento de los usuarios, se acepta hasta la 3FN, es decir, si el diseño se encuentra
normalizado hasta la 3FN entonces cumple con los requisitos del sistema. Este ejemplo
quedaría así:
Caso Práctico: Normalización (I)
A través del siguiente ejemplo se intenta afirmar los conocimientos de normalización con un
ejemplo de una base de datos para una pequeña biblioteca.
Caso Práctico: Normalización (II)
No se cumple el requisito de la Primera Forma Normal (1FN) de sólo tener campos atómicos,
pues el nombre del lector es un campo que puede (y conviene) descomponerse en apellido
paterno, apellido materno y nombres, tal como se muestra en la siguiente tabla:
Como se puede ver, hay cierta redundancia característica de Primera forma normal.
Caso Práctico: Normalización (III)
El título es completamente identificado por el código del libro, pero el nombre del lector en
realidad no tiene dependencia de este código, por tanto estos datos deben ser trasladados a otra
tabla. Se tiene que crear la columna CodLector para identificar a cada lector de forma única.
w w w. d m c . p e