Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Introducción
Entre los objetivos que se deben alcanzar en el diseño de una BD están los
siguientes:
Para la derivación del DER se parte del conjunto de DFD que representan la
parte del sistema a automatizar. Se recorre el DFD desde el nivel de contexto
hacia el nivel de fondo, buscando todos los accesos a archivos desde procesos
(tanto de lectura como de escritura). Seguidamente se hace un censo de los
accesos a archivos desde los procesos que son primitivas funcionales. A
continuación se muestra en la figura 1 un ejemplo de un DFD con dos niveles
donde se representan los flujos de accesos a archivos (los flujos entre procesos
no se describen por ser irrelevantes al objeto de estudio de este trabajo).
Luego se remplazan los flujos de datos en el Censo de Accesos por los conjuntos
mínimos de datos requeridos para completar el propósito del acceso,
asociando la llave requerida para cada acceso. Esta información se toma de las
definiciones de los flujos definidos en el Diccionario de Datos (DD). De esta
manera se crean los Censos Lógicos de Lecturas y Escrituras.
11 Num_Consignación Num_Espacio_Disponible+Nombre_Agente+
{Localidad_Almacén+{Num_Bulto}}
1 Num_Consignación Código_Autorización
4 Nombre_Barco {Num_Consignación+Nombre_Agente+
Valor_Total_en_Barco+{Num_Bulto+
Valor_Bulto+Código_Despacho
+Descripción_Despacho}}
5 Nombre_Barco Dia_Arribo+Valor_Total_en_Barco+
Nombre_Compañia
7 Num_Consignación Nombre_Agente
9 Num_Consignación Num_Espacio_Disponible+
{Localidad_Almacén}+{Num_Bulto}
R1={Num_Consignación+Código_Autorización}
R2={Nombre_Barco+Num_Consignación+Nombre_Agente+
Código_Autorización}
R4={Nombre_Barco+{Num_Consignación+Nombre_Agente+
Valor_Total_en_Barco+{Num_Bulto+Valor_Bulto+
Código_Despacho+Descripción_Despacho}}}
R5={Nombre_Barco+Dia_Arribo+Valor_Total_en_Barco+Nombre_Compañia}
R6={Nombre_Barco+Dia_Arribo+Valor_Total_en_Barco+Nombre_Compañia+
{Num_Consignación+Valor_Consignación+{Num_Bulto+Valor_Bulto+
Código_Despacho+Descripción_Despacho}}}
R7={Num_Consignación+Nombre_Agencia}
R8={Localidad_Almacén+Indicador_de_Localidad}
R9={Num_Consignación+Número_de_Espacio_Disponible
+{Localidad_Almacén+{Num_Bulto}}}
R10={Localidad_Almacén+Indicador_Localidad}
R11={Num_Consignación+Número_Espacio_Disponible+Nombre_Agente+
{Localidad_Almacén+{Num_Bulto}}}
R12={Localidad_Almacén+Indicador_Localidad}
4to Paso: Llevar la Base de Datos a 1ra Forma Normal. Para lograr esto
hay que eliminar los grupos repetitivos. Se analiza cada relación
comenzando por los grupos repetitivos más externos y creando una nueva
relación por cada grupo repetitivo interno que se ha eliminado. La llave para la
nueva relación es creada concatenando la llave de la relación anterior y la llave
del grupo repetitivo. A continuación se muestra el resultado de aplicar la 1ra
Forma Normal a las relaciones de la Base.
N1R2=*EQUIVALENTE A R2*
{Nombre_Barco+Num_Consignación+Nombre_Agente+
Código_Autorización}
N1R4=*DERIVADA DE R4*
{Nombre_Barco+Num_Consignación+Nombre_Agente+
Valor_Total_en_Barco}
N1R5=*DERIVADA DE R4
{Nombre_Barco+Num_Consignación+Num_Bulto+Valor_Bulto+
Código_Despacho+Descripción_Despacho}
N1R6=*EQUIVALENTE A R5*
{Nombre_Barco+Dia_Arribo+Valor_Total_en_Barco+Nombre_Compañia}
N1R7=*DERIVADO DE R6*
{Nombre_Barco+Dia_Arribo+Valor_Total_en_Barco+Nombre_Compañia}
*DUPLICADO*
N1R8=*DERIVADO DE R6*
{Nombre_Barco+Num_Consignación+Valor_Consignación}
N1R9=*DERIVADO DE R6*
{Nombre_Barco+Num_Consignación+Num_Bulto+Valor_Bulto+
Código_Despacho+Descripción_Despacho}
*DUPLICADO*
N1R10=*EQUIVALENTE A R7*
{Num_Consignación+Nombre_Agente}
N1R11=*EQUIVALENTE A R8*
{Localidad_Almacén+Indicador_Localidad}
N1R12=*DERIVADO DE R9*
{Num_Consignación+Número_Espacio_Disponible}
N1R13=*DERIVADO DE R9*
{Num_Consignación+Localización_Almacén}
N1R14=*DERIVADO DE R9*
{Num_Consignación+Localidad_Almacén+Num_Bulto}
N1R15=*DERIVADO DE R11*
{Num_Consignación+Número_Espacio_Disponible+Nombre_Agente}
N1R16=*DERIVADO DE R11*
{Num_Consignación+Localización_Almacén} *DUPLICADO*
N1R17=*DERIVADO DE R11*
{Num_Consignación+Localidad_Almacén+Num_Bulto}
*DUPLICADO*
5to Paso: Llevar la Base a 2da Forma Normal. Para que las
relaciones estén en 2da Forma Normal tienen que estar en 1ra y además
cada atributo no llave tiene que tener una dependencia funcional completa
de la llave primaria. Para lograr esto se analiza cada una de las relaciones y
si no cumple la 2FN se separa la relación de tal forma que cada atributo quede
relacionado con la llave que realmente describe. Por ejemplo:
N1R5={Nombre_Barco+Num_Consignación+Num_Bulto+Valor_Bulto+
Código_Despacho+Descripción_Despacho}
N2R51={Nombre_Barco+Num_Consignación+Num_Bulto}
N2R52={Num_Bulto+Valor_Bulto+Código_Despacho+Descripción_Despacho}
N2R2=*DERIVADA DE N1R2*
{Nombre_Barco+Num_Consignación}
N2R3=*DERIVADA DE N1R2*
{Num_Consignación+Nombre_Agente+Código_Autorización}
N2R4=*DERIVADA DE N1R4*
{Nombre_Barco+Valor_Total_en_Barco}
N2R5=*DERIVADA DE N1R4*
{Nombre_Barco+Num_Consignación} *DUPLICADA*
N2R6=*DERIVADA DE N1R4*
{Num_Consignación+Nombre_Agente}
N2R7=*DERIVADA DE N1R5*
{Nombre_Barco+Num_Consignación+Num_Bulto}
N2R8=*DERIVADA DE N1R5*
{Num_Bulto+Valor_Bulto+Código_Despacho+Descripción_Despacho}
N2R9=*EQUIVALENTE A N1R6*
{Nombre_Barco+Dia_Arribo+Valor_Total_en_Barco+Nombre_Compañia}
N2R10=*DERIVADO DE N1R8*
{Nombre_Barco+Num_Consignación} *DUPLICADA*
N2R11=*DERIVADO DE N1R8*
{Num_Consignación+Valor_Consignación}
N2R12=*EQUIVALENTE A N1R10*
{Num_Consignación+Nombre_Agente} *DUPLICADO*
N2R13=*EQUIVALENTE A N1R11*
{Localidad_Almacén+Indicador_Localidad}
N2R14=*DERIVADO DE N1R12*
{Num_Consignación+Número_de_Espacio_Disponible}
N2R15=*DERIVADO DE N1R13*
{Num_Consignación+Localidad_Almacén}
N2R16=*DERIVADO DE N1R14*
{Num_Consignación+Localidad_Almacén+Num_Bulto}
El próximo paso ser combinar las relaciones que tengan la misma llave
primaria.
{Num_Consignación+Valor_Consignación+Nombre_Agente+
Código_Autorización+Valor_Total_en_Barco+
Número_Espacio_Disponible}
N2R2C=*EQUIVALENTE A N2R2*
{Nombre_Barco+Num_Consignación}
N2R3C=*EQUIVALENTE A N2R7*
{Nombre_Barco+Num_Consignación+Num_Bulto}
N2R4C=*EQUIVALENTE A N2R8*
{Num_Bulto+Valor_Bulto+Código_Despacho+Descripción_Despacho}
N2R7C=*EQUIVALENTE A N2R15*
{Num_Consignación+Localización_Almacén}
N2R8C=*EQUIVALENTE A N2R16*
{Num_Consignación+Localización_Almacén+Num_Bulto}
6to Paso: Llevar la Base a 3ra Forma Normal (3FN). Las relacione se
encuentran en 3FN si se encuentran en 2FN y cada atributo no llave no depende
transitivamente de la llave primaria. En nuestro caso se procede a analizar cada
una de las relaciones de la Base, cuando aparezcan dependencias transitivas de
un atributo no llave con la llave primaria, se procede a crear nuevas relaciones
donde se relacione el atributo con el objeto que el describe. Por ejemplo:
N2R4C={Num_Bulto+Valor_Bulto+Código_Despacho+Descripción_Despacho}
N3R1=*DERIVADA DE N2R4C*
{Num_Bulto+Valor_Bulto+Código_Despacho}
N3R2=*DERIVADA DE N2R4C*
{Código_Despacho+Descripción_Despacho}
Las relaciones entre entidades como su nombre lo indica son las relaciones que
existen entre las entidades a través de sus atributos comunes. Los ejemplos de
relaciones entre entidades se mostrarán a continuación asignándoles un nombre
nemotécnico:
Bibliografía
Gane, Chris, and Trish Sarson, Structured System Analysis: tools and
techniques.