Angel Alberto Vargas Cano Diseño Lógico de Datos Ingeniero de Sistemas 1. DISEÑO LOGICO DE DATOS El diseño lógico de la base de datos es el proceso que determina la estructura lógica de datos necesaria para soportar los recursos de información en una organización. Este proceso de diseño lógico ayuda a implementar la base de datos para satisfacer los requerimientos del usuario. En esta fase se aplica un diseño lógico botton-down, el cual esta soportado por medio del análisis relacional de datos o normalización. El análisis relacional de datos permite empezar por definir elementos de datos usados por la organización, para luego normalizar las relaciones en que ellos participan y finalmente obtener un nuevo diagrama lógico de datos (diagrama entidad-relación), el cual validándolo con el obtenido en fase de análisis, servirá para generar el diseño físico de la base de datos. 1.1. AGRUPACION DE ELEMENTOS DE DATOS EN RELACIONES PRIMARIAS Una relación primaria es una lista de elementos de datos que es registrada o grabada para que sea normalizada más tarde. Basados en el modelo lógico de datos, se puede empezar por agrupar los elementos de datos en relaciones primarias, o sea darle atributos a las entidades. El diagrama del modelo lógico de datos ayuda a determinar que relaciones primarias se necesita definir: Cada entidad de datos en el modelo lógico de datos tiene una correspondencia uno a uno con una relación primaria. Identificar los elementos de datos asociados con cada entidad, como elementos de datos de una relación primaria. Crear una relación primaria para cada relación muchos a muchos en el diagrama lógico de datos. 1.2. NORMALIZACION DE DATOS El proceso de normalización de datos consiste en aplicar rigurosas reglas de dependencia de datos a los elementos de datos en el sistema. El resultado es un conjunto de registros lógicos de la base de datos sin redundancia y no ambiguos. Cada tipo de registro es identificado por una llave única y por elementos de datos que son dependientes bajo esa llave. La normalización es una técnica para descomponer estructuras de datos en pequeñas unidades. Es estas pequeñas unidades, cada atributo depende totalmente de la llave primaria de la entidad donde reside. La normalización depende de la comprensión funcional de los datos en una organización y como se relacionan entre ellos. Manual de Diseño de Bases de Datos - Proceso de Normalización Página 1 de 8 Angel Alberto Vargas Cano Diseño Lógico de Datos Ingeniero de Sistemas Algunos de los beneficios de la normalización son los siguientes: Ayuda al diseñador a entender mejor a la empresa. Minimiza la inconsistencia de los datos y su redundancia. Minimiza el impacto de los futuros cambios de los datos. Minimiza el mantenimiento de los datos. Previene de las modificaciones anómalas. Antes de comenzar con la normalización de los datos se debe: Conocer el negocio. Conocer exactamente lo que los usuarios esperan que el sistema haga. Entender a fondo la semántica de los elementos (datos) y los grupos afectados en el diseño. 1.2.1. CONCEPTOS BASICOS DE NORMALIZACION Llave: es el atributo o conjunto de atributos de una entidad que sirve de identificador. También se le denomina llave primaria o clave. Si una entidad posee varios atributos o conjuntos de los mismos, que independientemente sirven para identificarla se tomará una llave según se desee y las otras se ignoran. Dependencia: es el estado de estar en función de otro. Dependencia funcional: un atributo de una entidad es funcionalmente dependiente de otro, si y solo si, cada valor del segundo determina el valor del primero. Dado los ítem de datos A y B , B es funcionalmente dependiente de A si para cualquier valor de A existe uno y solamente un valor B asociado con A. Este es el resultado deseado de la primera forma normal. Ejemplo: el atributo B es funcionalmente dependiente de A si el valor de A determina el valor de B. si conoces un nombre de empleado o su número, puede determinar su dirección. Determinante: un atributo es determinante si esta en la cara izquierda de una dependencia funcional. De acuerdo con el anterior ejemplo, A es determinante de B. Dependencia funcional completa: un atributo es dependiente completamente de un conjunto de atributos , si funcionalmente depende de la totalidad pero no de cualquier parte de ellos. Este es el resultado para la segunda forma normal. Manual de Diseño de Bases de Datos - Proceso de Normalización Página 2 de 8 Angel Alberto Vargas Cano Diseño Lógico de Datos Ingeniero de Sistemas Independencia mutua: dos atributos de una entidad son mutuamente independientes, si ninguno depende directamente del otro. Dependencia transitiva: un atributo de una entidad tiene dependencia funcional transitiva de la llave, si y solo si no depende directamente de esta. Es decir, que es la dependencia de un atributo con otro que no sea la llave. Dado A, B y C, si B es funcionalmente dependiente de A, y si C es funcionalmente dependiente de B, entonces C es transitivamente dependiente de A. La eliminación de las dependencias transitivas es el resultado deseado de la tercera forma normal. Llave única: es un ítem de datos o combinación de ítem de datos cuyo valor identifica una única ocurrencia de una entidad. Llave principal: es un ítem de datos que es usado para representar a la entidad en la base de datos. Una llave principal de una entidad, también es llave principal para su correspondiente relación. Llave secundaria: es un ítem de datos que se usa en ciertas funciones del sistema para acceder a una ocurrencia de la entidad. Llave extranjera: (foreign key) es un ítem de datos de una entidad que se usa como llave principal de otra entidad. Una llave extranjera se usa para relacionar dos entidades. Llave compuesta: es una llave principal de una entidad, que se compone de dos o más llaves extranjeras. Una entidad que tiene una llave compuesta, es una típica entidad unión para deshacer una relación de muchos a muchos (n:n). Datos no llave: son todos los ítem de datos de una entidad que no son llaves únicas, llaves principales, llaves secundarias o llaves extranjeras. 1.2.2. FORMAS NORMALES 1.2.2.1. PRIMERA FORMA NORMAL (1FN) Un registro esta en primera forma normal, si y solo si todos sus atributos son unitarios, esto es, no repetitivos. Es decir que una relación está en 1FN cuando todos sus archivos no son descomponibles. Para determinar si una entidad está en 1FN, se debe hacer la siguiente pregunta: ¿Están todos los atributos en la entidad relacionados uno a uno y están todos los atributos dependientes de la llave primaria?. Manual de Diseño de Bases de Datos - Proceso de Normalización Página 3 de 8 Angel Alberto Vargas Cano Diseño Lógico de Datos Ingeniero de Sistemas 1.2.2.2. SEGUNDA FORMA NORMAL (2FN) Un registro esta en 2FN, si y solo si está en 1FN y cada atributo no llave es funcionalmente dependiente de la llave primaria en su totalidad. Para determinar si una entidad está en 2FN, se debe responder la siguiente pregunta: ¿Está la entidad en la 1FN y están todos los atributos en la entidad directamente dependientes de la llave de entrada?. 1.2.2.3. TERCERA FORMA NORMAL (3FN) Un registro esté es 3FN, si y solo si está es 2FN y para cada atributo no llave no existe dependencia transitiva de la llave. Para determinar si una entidad está en 3FN, se debe responder la siguiente pregunta: ¿Está la entidad en la 2FN y están todos los atributos en tablas independientes uno de otros?. 1.2.3. PROCESO DE NORMALIZACION A TERCERA FORMA NORMAL (3FN) 1.2.3.1. PASO No.1: LISTA DE DATOS NO NORMALIZADOS La lista de los atributos creados para satisfacer las funciones del negocio están en entidades de datos no normalizados. Para listar las entidades no normalizadas, efectuar los siguientes pasos: 1. Listar atributos por cada entidad. Por cada entidad en el diagrama LDS, listar todos los atributos. 2. Identificar la llave primaria. Por cada entidad, elegir entre los atributos aquel que identifique unívocamente a cada ocurrencia. Se identifica este atributo como llave primaria. Si no hay atributo que identifique únicamente una entidad, puede ser necesario combinar dos o más atributos para crear una llave única. 3. Borrar campos calculados. Elegir entre los atributos los campos calculados que cambias cuando la base de datos es actualizada. Borrar estos atributos en el diseño si se está seguro que su ausencia no va a incidir en la eficiencia del proceso que los requiera. Sus valores serán calculados en la programación. 1.2.3.2. PASO No.2: LISTA DE DATOS EN PRIMERA FORMA NORMAL La 1FN trata con los tipos de entidades. Todas las ocurrencias de un tipo de entidad debe contener el mismo número de atributos. Para normalizar entidades a 1FN, se deben borrar grupos repetitivos, así: 1. Por cada grupo repetitivo identificado, crear una nueva entidad. 2. Listar los atributos. Manual de Diseño de Bases de Datos - Proceso de Normalización Página 4 de 8 Angel Alberto Vargas Cano Diseño Lógico de Datos Ingeniero de Sistemas 3. Identificar la llave primaria, generalmente conformada por la llave principal de la entidad origen y el atributo o atributos que identifican el grupo repetitivo. 1.2.3.3. PASO No.3: LISTA DE DATOS EN SEGUNDA FORMA NORMAL La segunda y tercera forma normal tratan sobre las relaciones entre las llaves y los atributos no llave. Un atributo no llave debe suministrar un hecho alrededor de toda la llave. Para la 2FN, se deben seguir los siguientes pasos: 1. Identificar las entidades con las llaves compuestas de más de un atributo. 2. Borrar atributos parcialmente dependientes, así: 2.1. Localizar cualquier atributo que sea dependiente de solamente parte de una llave compuesta. 2.2. Borrar esos atributos y crear una nueva entidad. Crear una nueva relación para relacionar la nueva entidad con la entidad desde la cual ha sido borrado. 1.2.3.4. PASO No.4: LISTA DE DATOS EN TERCERA FORMA NORMAL La 3FN trata las relaciones entre los atributos no llave. Para llevar a cabo la 3FN, se deben seguir los siguientes pasos: 1. Examinar las relaciones entre las posibles combinaciones de atributos en la entidad, buscando las posibles interdependencias de los datos. 2. Borrar esos atributos y crear una nueva entidad. 3. Marcar el atributo o atributos llave en la nueva entidad. El atributo o atributos llave llegará a ser llave externa en la nueve entidad original. 1.2.3.5. PASO No.5: TEST PARA LA TERCERA FORMA NORMAL Antes de dar por finalizadas las entidades, se deben hacer dos preguntas: 1. ¿dado un valor para la llave de una entidad en 3FN hay solamente un posible valor para un atributo de la llave? 2. ¿son todos los atributos directamente dependientes del valor de la llave? 1.2.4. VALIDACION DE RELACIONES NORMALIZADAS La tarea de normalización está basada en principios matemáticos perfectos, sin embargo, conocer los datos y el sentido y objetivo de la aplicación, contribuye a una buena práctica. Se pueden establecer errores en normalización, cuestionando a las siguientes preguntas: Manual de Diseño de Bases de Datos - Proceso de Normalización Página 5 de 8 Diseño Lógico de Datos Angel Alberto Vargas Cano Ingeniero de Sistemas 1. ¿Para cada valor único de la llave, puede cada atributo poseer uno y solamente un valor? 2. ¿Es el valor de cada atributo directamente dependiente de la llave? 3. ¿Los datos dependen solamente de la llave, o se presentan datos candidatos a llaves? 2. EJERCICIOS 2.1. EJERCICIO No.1: Normalizar los siguientes datos, usando el proceso de normalización a 3FN e identificar las entidades y atributos: IddeAlumno Identificación del Alumno NomAlumno Nombre del alumno DirAlumno Dirección del alumno TelAlumno Teléfono del Alumno Ciudad Conformado (Iddeciudad, ciudad) EstCivil Conformado (IddeEstCivil, Estado civil) IddeFamiliar Identificación del familiar NomFamiliar Nombre del familiar Parentesco Conformado(IddeParentesco, parentesco) Carrera Carrera Profesional(IddeCarrera, Carrera) Semestre Semestre que esta cursando Asignatura Conformado (IddeAsignatura, Asignatura) Nota1 Primera Nota Nota2 Segunda Nota Nota3 Tercera Nota Examen Examen final Definitiva Nota Definitiva La base de datos diseñada debe permitir: 1. Conocer las asignaturas vistas por el alumno con sus respectivas notas. 2. Guardar la información de todos los familiares del alumno 3. Guardar información de varios teléfonos del estudiante. Manual de Diseño de Bases de Datos - Proceso de Normalización Página 6 de 8 Diseño Lógico de Datos Angel Alberto Vargas Cano Ingeniero de Sistemas 4. Es posible que un alumno esté cursando una o dos carreras y asignaturas de varios semestres. 2.2. EJERCICIO No.2: Normalizar a 3FN e identificar las relaciones entre entidades para la siguiente lista de atributos. IddeLibro Identificación del libro NomLibro Nombre o titulo del libro Temas Principales temas del libro IddePropietario Identificación del propietario NomPropirtario Nombre del propietario IddeAutor Identificación del autor NomAutor Nombre del autor IddeEditorial Identificación de la editorial NomEditorial Nombre de la Editorial IddeUbicación Identificación del estante de ubicación del libro dentro de la biblioteca Grupo Grupo al que pertenece el libro (Ciencias, matemáticas, física..etc.) 2.3. EJERCICIO No.3: Se desea crear una base de datos que permita almacenar la información relacionada con la venta y facturación de productos en una empresa comercial. Para ello se tiene la siguiente lista de atributos: NumFactura FecFactura FecVencto FecPago VrTotFac IddeEstFactura Identificador estado de la factura DesEstFactura Descripción del estado de la factura IddeCliente Identificación del cliente NomCliente Nombre del cliente Manual de Diseño de Bases de Datos - Proceso de Normalización Página 7 de 8 Diseño Lógico de Datos Angel Alberto Vargas Cano Ingeniero de Sistemas TelCliente Teléfono del cliente DirCliente Dirección del cliente IddeCiudad Identificación de la ciudad NomCiudad Nombre de la ciudad IddeArticulo Identificación del articulo NomArticulo Nombre del articulo CantFact Cantidad a facturar por articulo VrPrecio Precio por unidad del articulo VrTotArticulo Valor total del articulo a facturar IddeProveedor Identificador del proveedor NomProvee Nombre del proveedor TelProvee Teléfono del proveedor DirProvee Dirección del proveedor Y las siguientes reglas: 1. Los clientes y los proveedores son compañías que se identifican a través de un código, nombre, uno o varios teléfonos, dirección y ciudad. 2. El estado de un factura en algún momento determinado puede ser: vigente, anulada, cancelada (pagada). 3. En una factura se pueden facturar varios artículos. 4. El valor total por articulo corresponde al producto de la cantidad por el precio. 5. El valor total de la factura corresponde a la suma de todos los valores facturados por articulo para dicha factura. 6. Se mantiene vigente un solo precio por articulo y puede ser modificado en cualquier momento. 7. El precio de venta de cada articulo se debe almacenar en cada factura. 8. Un proveedor puede suministrar varios artículos y un articulo puede ser provisto por varios proveedores. Aplicar todo los pasos para normalizar la base de datos a 3FN Manual de Diseño de Bases de Datos - Proceso de Normalización Página 8 de 8