Ces03

54
Modelamiento de Modelamiento de Bases de Datos Bases de Datos Expositor: Julio E. Flores Expositor: Julio E. Flores Manco Manco

description

Modelamiento de Datos

Transcript of Ces03

Page 1: Ces03

Modelamiento deModelamiento deBases de DatosBases de Datos

Expositor: Julio E. Flores MancoExpositor: Julio E. Flores Manco

Page 2: Ces03

Etapas del ModelamientoEtapas del Modelamiento• Conceptos previosConceptos previos• Importancia de un Método Formal para el Importancia de un Método Formal para el

Modelamiento.Modelamiento.• Las relaciones que resultan de la observación del mundo real Las relaciones que resultan de la observación del mundo real

o de la transformación del esquema ER elaborado en la etapa o de la transformación del esquema ER elaborado en la etapa del modelo conceptual, pueden presentar algunos problemas, del modelo conceptual, pueden presentar algunos problemas, derivados de fallas en la percepción del sistema, en el diseño derivados de fallas en la percepción del sistema, en el diseño del esquema ER o en el paso al modelo relacional; entre estos del esquema ER o en el paso al modelo relacional; entre estos problemas cabe destacar los siguientes:problemas cabe destacar los siguientes:

• Incapacidad para almacenar ciertos hechos.Incapacidad para almacenar ciertos hechos.• Redundancia, y por lo tanto, posibilidad de incoherencias.Redundancia, y por lo tanto, posibilidad de incoherencias.• Ambigüedades.Ambigüedades.• Pérdida de información (aparición de tuplas huérfanas)Pérdida de información (aparición de tuplas huérfanas)• Pérdida de dependencias funcionales, es decir, de ciertas restricciones Pérdida de dependencias funcionales, es decir, de ciertas restricciones

de integridad que dan lugar a interdependencias entre los datos.de integridad que dan lugar a interdependencias entre los datos.• Aparición, en la base de datos, de estados que no son válidos en el Aparición, en la base de datos, de estados que no son válidos en el

mundo real, es decir, anomalías de inserción, borrado y modificación.mundo real, es decir, anomalías de inserción, borrado y modificación.

Page 3: Ces03

Ejemplo de un modelo Ejemplo de un modelo inadecuadoinadecuado

Autor Nacionalidad CodLibro Titulo Editorial Año

Date, C. Norteamérica 98987 Database

Addison-W 1990

Date, C. Norteamérica 97777 SQL Atandard Addison-W 1986

Date, C. Norteamérica 98987 A Guide to Ingres Addison-W 1988

Codd, E. Norteamérica 7890 Relation Mod. Addison-W 1990

Gardarin Francesa 12345 Base de Datos Paraninfo 1986

Valduriez Francesa 67890 Comparación BD Eyrolles 1984

Kim, W. Norteamérica 11223 O-O Database ACM Press 1989

Lochovsky Canadiense 11223 O-O Database ACM Press 1989

Page 4: Ces03

En este modelo En este modelo observamosobservamos::• Gran cantidad de Gran cantidad de redundanciaredundancia; ya que la nacionalidad ; ya que la nacionalidad

del autor se repite por cada ocurrencia del mismo, y del autor se repite por cada ocurrencia del mismo, y algo análogo sucede cuando un libro tiene más de un algo análogo sucede cuando un libro tiene más de un autor, con la editorial y el año de publicación.autor, con la editorial y el año de publicación.

• Anomalías de modificación; ya que, inadvertidamente Anomalías de modificación; ya que, inadvertidamente podemos, por ejemplo, cambiar el nombre de la podemos, por ejemplo, cambiar el nombre de la editorial en una tupla sin modificarlo en el resto de las editorial en una tupla sin modificarlo en el resto de las que corresponden al mismo libro, lo que da lugar a que corresponden al mismo libro, lo que da lugar a incoherencias.incoherencias.

• Anomalías de inserción; ya que si se quisiera incluir Anomalías de inserción; ya que si se quisiera incluir información sobre algún autor del que no hubiera información sobre algún autor del que no hubiera ningún libro en la base de datos, no sería posible, al ningún libro en la base de datos, no sería posible, al formar el atributo formar el atributo cod_librocod_libro parte de la clave primaria parte de la clave primaria de la relación, tampoco podríamos introducir obras de la relación, tampoco podríamos introducir obras anónimas. Además, la inserción de un libro que tuviera anónimas. Además, la inserción de un libro que tuviera dos autores obligaría a incluir dos tuplas en la base de dos autores obligaría a incluir dos tuplas en la base de datos.datos.

• Anomalías de borrado, ya que si quisiéramos dar de Anomalías de borrado, ya que si quisiéramos dar de baja un libro, también se perderían datos sobre sus baja un libro, también se perderían datos sobre sus autores y, viceversa.autores y, viceversa.

Page 5: Ces03

Esta relación presenta todos estos Esta relación presenta todos estos problemas, y alguno más, debido a problemas, y alguno más, debido a que atenta contra un principio básico que atenta contra un principio básico en todo diseño:en todo diseño:

“ “hechos distintos se deben hechos distintos se deben almacenar en objetos distintos”almacenar en objetos distintos”

En este caso, en relaciones distintas, En este caso, en relaciones distintas, con lo cual se habrían evitado con lo cual se habrían evitado redundancia, y por tanto, anomalías redundancia, y por tanto, anomalías de actualización.de actualización.

Page 6: Ces03

Dependencias Dependencias FuncionalesFuncionalesAl intentar dibujar las relaciones entre elementos Al intentar dibujar las relaciones entre elementos

datos, se debe conocer cuáles atributos son datos, se debe conocer cuáles atributos son dependientes de otros atributos. dependientes de otros atributos.

La frase La frase funcionalmente dependientefuncionalmente dependiente se debe se debe interpretar de la siguiente manera :interpretar de la siguiente manera :– Si Salario es funcionalmente dependiente de Si Salario es funcionalmente dependiente de

IdEmpleado, entonces IdEmpleado identifica a Salario. IdEmpleado, entonces IdEmpleado identifica a Salario. En otras palabras, si conocemos el valor del código del En otras palabras, si conocemos el valor del código del empleado IdEmpleado, podemos empleado IdEmpleado, podemos identificaridentificar el valor el valor del Salario asociado con éste.del Salario asociado con éste.

Page 7: Ces03

Dependencia Funcional CompletaDependencia Funcional Completa

Se dice que B tiene Se dice que B tiene dependencia dependencia funcional completa o plenafuncional completa o plena de A, si de A, si depende funcionalmente de A, pero no depende funcionalmente de A, pero no depende de ningún subconjunto de A.depende de ningún subconjunto de A.

Page 8: Ces03

Dependencia funcional transitivaDependencia funcional transitiva

Se dice que C tiene dependencia transitiva Se dice que C tiene dependencia transitiva respecto de A, a través de B si:respecto de A, a través de B si:

Page 9: Ces03

Ejemplo :Ejemplo :Supongamos que tenemos la entidad Supongamos que tenemos la entidad

TRABAJADOR con los siguientes atributos:TRABAJADOR con los siguientes atributos:

Código ( COD )Nombre ( NOM )Categoría ( CAT )Sueldo ( SUE )Fecha_Ingreso ( FIN )

Page 10: Ces03

El análisis nos indica que:El análisis nos indica que:• Conocido el Código podemos obtener el Nombre, la Categoría, Conocido el Código podemos obtener el Nombre, la Categoría,

el Sueldo y la Fecha_ingreso; es decir todos los atributos el Sueldo y la Fecha_ingreso; es decir todos los atributos dependen funcionalmente del Código. Por lo tanto, Código es dependen funcionalmente del Código. Por lo tanto, Código es candidato a clave.candidato a clave.

• Conocido el Nombre podemos obtener el Nombre, la Categoría, Conocido el Nombre podemos obtener el Nombre, la Categoría, el Sueldo y la Fecha_ingreso; todos los atributos dependen el Sueldo y la Fecha_ingreso; todos los atributos dependen funcionalmente del Nombre, es decir, Nombre es candidato a funcionalmente del Nombre, es decir, Nombre es candidato a clave.clave.

• Conocida la Categoría solo podemos determinar el Sueldo, Conocida la Categoría solo podemos determinar el Sueldo, pues existen muchos trabajadores con la misma Categoría. pues existen muchos trabajadores con la misma Categoría. Entonces, solo Sueldo es funcionalmente dependiente de Entonces, solo Sueldo es funcionalmente dependiente de Categoría.Categoría.

• Conocido el Sueldo solo podemos determinar la Categoría, Conocido el Sueldo solo podemos determinar la Categoría, pues existen muchos trabajadores con el mismo Sueldo. pues existen muchos trabajadores con el mismo Sueldo. Entonces, solo Categoría es funcionalmente dependiente de Entonces, solo Categoría es funcionalmente dependiente de Sueldo.Sueldo.

• Conocida la Fecha_Ingreso no podemos determinar ninguno de Conocida la Fecha_Ingreso no podemos determinar ninguno de los otros atributos.los otros atributos.

Page 11: Ces03

NORMALIZACIONNORMALIZACION

• La Normalización es un proceso que permite reemplazar las La Normalización es un proceso que permite reemplazar las relaciones complejas entre los Datos por relaciones más sencillas relaciones complejas entre los Datos por relaciones más sencillas de tal manera que se facilita la comprensión y el desarrollo del de tal manera que se facilita la comprensión y el desarrollo del procesamiento de datos.procesamiento de datos.

• La idea básica de la normalización es reducir una estructura de La idea básica de la normalización es reducir una estructura de datos compleja (multidimensional) a un grupo de entidades y datos compleja (multidimensional) a un grupo de entidades y relaciones mas simples.relaciones mas simples.

• Los objetivos principales de la Normalización son facilitar la Los objetivos principales de la Normalización son facilitar la actualización de la Base de Datos, eliminar las redundancias y las actualización de la Base de Datos, eliminar las redundancias y las anomalías de actualización, de manera tal que se maneje anomalías de actualización, de manera tal que se maneje adecuadamente la integridad y consistencia de los datos. El adecuadamente la integridad y consistencia de los datos. El modelo normalizado finalmente debe corresponder y reflejar la modelo normalizado finalmente debe corresponder y reflejar la realidad a partir de la cual se diseño.realidad a partir de la cual se diseño.

• La integridad de datos, se puede asociar en general a La integridad de datos, se puede asociar en general a restricciones que permitan asegurar que los cambios o restricciones que permitan asegurar que los cambios o actualizaciones que efectúan los usuarios en la Base de Datos, no actualizaciones que efectúan los usuarios en la Base de Datos, no resulten en una pérdida de consistencia de éstas, es decir se debe resulten en una pérdida de consistencia de éstas, es decir se debe contar con mecanismos que permitan proteger la Base de Datos.contar con mecanismos que permitan proteger la Base de Datos.

Page 12: Ces03

• El concepto de la Normalización de los datos tuvo El concepto de la Normalización de los datos tuvo su origen en la teoría relacional numérica y fue su origen en la teoría relacional numérica y fue planteada formalmente por Edgard F. Codd. Codd planteada formalmente por Edgard F. Codd. Codd encontró en esta teoría una forma elegante de encontró en esta teoría una forma elegante de presentar un método para el trabajo de modelar presentar un método para el trabajo de modelar los datos; esta es la razón por la cual de debe los datos; esta es la razón por la cual de debe seguir estos procedimientos, llamados formas seguir estos procedimientos, llamados formas normales, de manera rígida y en forma ordenada. normales, de manera rígida y en forma ordenada. Esto quiere decir que primero se debe pasar a la Esto quiere decir que primero se debe pasar a la Primera Forma normal, luego a la Segunda Forma Primera Forma normal, luego a la Segunda Forma Normal luego a la Tercera y así sucesivamente. Normal luego a la Tercera y así sucesivamente. No se debe alterar esta secuencia.No se debe alterar esta secuencia.

• Codd planteo inicialmente la Primera Forma Codd planteo inicialmente la Primera Forma Normal (1FN) , la Segunda Forma Normal (2FN) y Normal (1FN) , la Segunda Forma Normal (2FN) y la Tercera Forma Normal (3FN), posteriormente la Tercera Forma Normal (3FN), posteriormente en 1971 Heath reformuló la 3FN y en 1977 Fagin en 1971 Heath reformuló la 3FN y en 1977 Fagin definió la Cuarta Forma Normal (4FN).definió la Cuarta Forma Normal (4FN).

Page 13: Ces03

• La presentación formal de la teoría de la La presentación formal de la teoría de la Normalización exige un bagaje matemático, Normalización exige un bagaje matemático, con sus correspondientes algoritmos, y es con sus correspondientes algoritmos, y es solo indispensable en una formación solo indispensable en una formación académica universitaria. No pretendo académica universitaria. No pretendo desarrollar esta formalización, si no mas desarrollar esta formalización, si no mas bien presentar estas ideas de una manera bien presentar estas ideas de una manera intuitiva para que los lectores a quienes va intuitiva para que los lectores a quienes va dirigido este trabajo, que por lo general son dirigido este trabajo, que por lo general son personas que quieren llegar directo “al personas que quieren llegar directo “al grano”, puedan comprender esta teoría de grano”, puedan comprender esta teoría de manera muy simple y práctica. manera muy simple y práctica.

• A continuación plantearemos las principales A continuación plantearemos las principales formas normales, desde el punto de vista formas normales, desde el punto de vista que nos hemos propuesto que nos hemos propuesto

Page 14: Ces03

PRIMERA FORMA NORMAL PRIMERA FORMA NORMAL ( 1FN )( 1FN )• Una entidad se encuentra en la primera Una entidad se encuentra en la primera

forma normal si todos sus atributos son forma normal si todos sus atributos son simples (no descomponibles), y si no tiene simples (no descomponibles), y si no tiene grupos repetitivos.grupos repetitivos.

• Un atributo que forma parte del grupo Un atributo que forma parte del grupo repetitivo es aquel que no permite repetitivo es aquel que no permite presentar a la entidad en forma Planar. presentar a la entidad en forma Planar. Esto quiere decir que no se puede dibujar Esto quiere decir que no se puede dibujar a la entidad en un plano debido a que a la entidad en un plano debido a que puede admitir varios valores en una puede admitir varios valores en una misma instancia de la entidad; esto es en misma instancia de la entidad; esto es en una misma celda.una misma celda.

Page 15: Ces03

Para obtener la 1FN debemos proceder Para obtener la 1FN debemos proceder de la siguiente manera:de la siguiente manera:

• Identificar la clave primaria en la entidad Identificar la clave primaria en la entidad complejacompleja

• Identificar los grupos repetitivos en la Identificar los grupos repetitivos en la entidad compleja.entidad compleja.

• Rescribir la entidad compleja original sin Rescribir la entidad compleja original sin los grupos repetitivos.los grupos repetitivos.

• Crear una segunda entidad con los grupos Crear una segunda entidad con los grupos repetitivosrepetitivos

• Añadir la clave de la primera entidad (la Añadir la clave de la primera entidad (la original) a la segunda entidad.original) a la segunda entidad.

Page 16: Ces03

Para observar con mayor claridad la Para observar con mayor claridad la forma de aplicar las formas normales forma de aplicar las formas normales voy a plantear un caso práctico, y en él voy a plantear un caso práctico, y en él iremos desarrollando las diferentes iremos desarrollando las diferentes formas normales. Supongamos que al formas normales. Supongamos que al estudiar una realidad de un negocio se estudiar una realidad de un negocio se nos presenta un documento como el nos presenta un documento como el que se muestra a continuación:que se muestra a continuación:

Page 17: Ces03
Page 18: Ces03

Identificar la clave primaria en la Identificar la clave primaria en la entidad complejaentidad compleja

Lo primero que debemos hacer es, a partir Lo primero que debemos hacer es, a partir del documento obtenido de la realidad, del documento obtenido de la realidad, capturar los Atributos que se presentan capturar los Atributos que se presentan en este, en una entidad compleja en en este, en una entidad compleja en forma de datos, y establecer un nombre forma de datos, y establecer un nombre apropiado a cada atributo reconocido.apropiado a cada atributo reconocido.

Page 19: Ces03

Entidad Compleja

Page 20: Ces03

A continuación determinaremos la A continuación determinaremos la Clave Primaria (PK), usando los Clave Primaria (PK), usando los criterios de Unicidad y de Minimidad criterios de Unicidad y de Minimidad reconocemos como PK al Atributo reconocemos como PK al Atributo NroBol. Con el NroBol podemos NroBol. Con el NroBol podemos identificar unívocamente a identificar unívocamente a cualquiera de las diferentes boletas cualquiera de las diferentes boletas que conforman las instancias de la que conforman las instancias de la entidad compleja.entidad compleja.

Page 21: Ces03

Identificar los grupos repetitivos Identificar los grupos repetitivos en la entidad compleja.en la entidad compleja.

Luego debemos identificar a los atributos Luego debemos identificar a los atributos que forman el Grupo Repetitivo, para lo que forman el Grupo Repetitivo, para lo cual utilizaremos un método práctico cual utilizaremos un método práctico que consiste en tratar de representar a que consiste en tratar de representar a la entidad compleja como una Tabla con la entidad compleja como una Tabla con filas y columnas, donde cada fila filas y columnas, donde cada fila representa una instancia de la entidad, representa una instancia de la entidad, y las columnas sus atributos.y las columnas sus atributos.

Page 22: Ces03
Page 23: Ces03

• Los atributos que forman el grupo repetitivo no se Los atributos que forman el grupo repetitivo no se pueden representar en el plano (dos dimensiones)pueden representar en el plano (dos dimensiones)

Page 24: Ces03

• Como se puede observar los atributos que forman Como se puede observar los atributos que forman parte del grupo repetitivo son desde IdProd hasta parte del grupo repetitivo son desde IdProd hasta Subtotal que son los atributos que tienen varios Subtotal que son los atributos que tienen varios datos para una misma celda. Por ejemplo en la datos para una misma celda. Por ejemplo en la celda que corresponde a la columna del celda que corresponde a la columna del Idproducto en la primera fila debe estar el dato Idproducto en la primera fila debe estar el dato P104, pero también en esta misma fila deberían P104, pero también en esta misma fila deberían estar los datos P089 y P133, ya que corresponden estar los datos P089 y P133, ya que corresponden a la misma Boleta o sea a la misma instancia; a la misma Boleta o sea a la misma instancia; estos datos no se podrían ubicar mas abajo, en al estos datos no se podrían ubicar mas abajo, en al siguiente fila, por que estos lugares corresponden siguiente fila, por que estos lugares corresponden a otra fila ó a otra instancia. Luego estos tres a otra fila ó a otra instancia. Luego estos tres datos deben ubicarse en la misma celda datos deben ubicarse en la misma celda yuxtaponiéndose entre ellos; por lo tanto los yuxtaponiéndose entre ellos; por lo tanto los datos de este atributo no permiten representar a datos de este atributo no permiten representar a la entidad en un plano sino más bien en una la entidad en un plano sino más bien en una representación espacial.; luego este atributo se representación espacial.; luego este atributo se dice forma parte del grupo repetitivo. dice forma parte del grupo repetitivo.

• Lo anterior también se aplica para los atributos Lo anterior también se aplica para los atributos ProductoProducto, , CantidCantid, , PUPU, y , y SubTotalSubTotal

Page 25: Ces03

Rescribir la entidad compleja Rescribir la entidad compleja original sin los grupos repetitivos.original sin los grupos repetitivos.

• La entidad compleja anterior quedaría sin los atributos La entidad compleja anterior quedaría sin los atributos que conforman el grupo repetitivo. A esta entidad que conforman el grupo repetitivo. A esta entidad resultante le llamaremos momentáneamenteresultante le llamaremos momentáneamente

• Entidad “Entidad “AA” :” :

Page 26: Ces03

Crear una segunda entidad con los grupos Crear una segunda entidad con los grupos repetitivos y repetitivos y Añadir la clave de la primera entidad (la Añadir la clave de la primera entidad (la original) a la segunda entidad.original) a la segunda entidad.

Con los atributos extraídos se forma otra entidad, Con los atributos extraídos se forma otra entidad, agregándole la PK de la entidad A, de manera que agregándole la PK de la entidad A, de manera que se conserva la relación entre estas dos entidades se conserva la relación entre estas dos entidades resultantes. A esta entidad la llamaremosresultantes. A esta entidad la llamaremos

Entidad “Entidad “BB”.”.

Luego tenemos como resultado de aplicar la 1FN a la entidad compleja, las entidades “A” y “B” , las cuales se encuentran en primera forma normal, lo cual quiere decir que se pueden representar dichas entidades en “forma planar”.

Page 27: Ces03

SEGUNDA FORMA NORMAL ( 2FN SEGUNDA FORMA NORMAL ( 2FN ) )

• Para pasar una entidad a la segunda Para pasar una entidad a la segunda forma norma, el primer requisito es que ya forma norma, el primer requisito es que ya se encuentre en primera forma normal; se encuentre en primera forma normal; luego se deben eliminar los atributos que luego se deben eliminar los atributos que tengan Dependencias parciales.tengan Dependencias parciales.

• Con estos atributos extraídos se den Con estos atributos extraídos se den formar otras entidades. Una entidad se formar otras entidades. Una entidad se encuentra en la segunda forma normal si encuentra en la segunda forma normal si ya está en la 1FN y además cada atributo ya está en la 1FN y además cada atributo no clave es completamente dependiente no clave es completamente dependiente de la Clave primaria.de la Clave primaria.

• Dependencia ParcialDependencia Parcial..

Page 28: Ces03

Supongamos que tenemos una entidad como la Supongamos que tenemos una entidad como la siguiente, donde la PK es compuesta y está formada siguiente, donde la PK es compuesta y está formada por los atributos A y B:por los atributos A y B:

Page 29: Ces03

• El atributo C depende funcionalmente de El atributo C depende funcionalmente de la PK; esto quiere decir que para la PK; esto quiere decir que para identificar plenamente al atributo C se identificar plenamente al atributo C se necesitan conocer a todos los atributos necesitan conocer a todos los atributos que conforman la PK ( A y B ). Lo mismo se que conforman la PK ( A y B ). Lo mismo se aplica para el atributo D de la figura.aplica para el atributo D de la figura.

• Por otro lado el atributo E se puede Por otro lado el atributo E se puede identificar tan solo conociendo el atributo identificar tan solo conociendo el atributo B, sin necesidad de conocer el atributo A. B, sin necesidad de conocer el atributo A. Luego se puede afirmar que el atributo E Luego se puede afirmar que el atributo E tiene una dependencia funcional parcial de tiene una dependencia funcional parcial de la PK.la PK.

Page 30: Ces03

• En nuestro caso ejemplo, tenemos dos En nuestro caso ejemplo, tenemos dos entidades A y B resultantes que se entidades A y B resultantes que se encuentran en Primera Forma Normal; luego encuentran en Primera Forma Normal; luego son candidatas a aplicarles la Segunda son candidatas a aplicarles la Segunda Forma Normal.Forma Normal.

• En el caso de la entidad A, podemos En el caso de la entidad A, podemos observar que la PK está formada por un solo observar que la PK está formada por un solo atributo, luego es imposible encontrar atributo, luego es imposible encontrar alguna dependencia parcial de cualquier alguna dependencia parcial de cualquier atributo que se identifique con la PK, ya que atributo que se identifique con la PK, ya que al depender funcionalmente de la PK al depender funcionalmente de la PK dependerá de toda, no de una parte de ella.dependerá de toda, no de una parte de ella.

Page 31: Ces03

Por ejemplo un cliente ( IdCli ) se identifica Por ejemplo un cliente ( IdCli ) se identifica con un número de boleta ( NroBol ) no con un número de boleta ( NroBol ) no puede ser con una parte del número de puede ser con una parte del número de boleta boleta

Page 32: Ces03

Podemos concluir entonces que, si una Podemos concluir entonces que, si una entidad ya está en 1FN, y su PK es simple, entidad ya está en 1FN, y su PK es simple, ( formada por un solo atributo ), no tendrá ( formada por un solo atributo ), no tendrá dependencias parciales, luego ya se dependencias parciales, luego ya se encuentra en 2FN. O como corolario, que solo encuentra en 2FN. O como corolario, que solo existirá posibilidad de encontrar existirá posibilidad de encontrar dependencias parciales en una entidad, si su dependencias parciales en una entidad, si su PK es compuesta ( formada por más de un PK es compuesta ( formada por más de un atributo ).atributo ).

En la entidad B debemos encontrar la PK En la entidad B debemos encontrar la PK para luego buscar dependencias parciales. para luego buscar dependencias parciales. La PK debe cumplir con el criterio de La PK debe cumplir con el criterio de unicidad, luego graficamos a la entidad en unicidad, luego graficamos a la entidad en una tabla donde cada fila es una instancia:una tabla donde cada fila es una instancia:

Page 33: Ces03
Page 34: Ces03

• Aquí se puede observar que el Aquí se puede observar que el NroBolNroBol se puede se puede repetir en diferentes instancias de la entidad B, repetir en diferentes instancias de la entidad B, esto se debe a que es una Clave Foránea (FK). esto se debe a que es una Clave Foránea (FK). Pero con solo este atributo no se puede identificar Pero con solo este atributo no se puede identificar plenamente a una instancia en particular de esta plenamente a una instancia en particular de esta entidad. Por ejemplo si tuviéramos el entidad. Por ejemplo si tuviéramos el NroBolNroBol 356 356 tendríamos tres casos que cumplen con este valor. tendríamos tres casos que cumplen con este valor. Luego, se debe recurrir a otro atributo adicional Luego, se debe recurrir a otro atributo adicional para formar la PK.para formar la PK.

• Un posible candidato podría ser el atributo Un posible candidato podría ser el atributo ProductoProducto; Si tenemos el NroBol 356 y el Producto ; Si tenemos el NroBol 356 y el Producto Arroz del Norte, identificamos inmediatamente a la Arroz del Norte, identificamos inmediatamente a la primera fila de la tabla. La cuarta fila no podría ser primera fila de la tabla. La cuarta fila no podría ser por pertenece a otra boleta ( 357 ). Por lo tanto la por pertenece a otra boleta ( 357 ). Por lo tanto la combinación combinación NroBolNroBol + + ProductoProducto cumple con el cumple con el criterio de Unicidad.criterio de Unicidad.

Page 35: Ces03

• Otra posible combinación sería Otra posible combinación sería NroBolNroBol + + idProdidProd, y como podemos observar también , y como podemos observar también cumple con el primer criterio de Minimidad. cumple con el primer criterio de Minimidad. Pero además es mas pequeña que la Pero además es mas pequeña que la primera candidata; Por lo tanto también primera candidata; Por lo tanto también cumple con el criterio de Minimidad. cumple con el criterio de Minimidad.

• Finalmente elegimos a la combinación Finalmente elegimos a la combinación NroBolNroBol + + idProdidProd como la PK de la entidad como la PK de la entidad B:B:

• A continuación graficamos a la entidad A continuación graficamos a la entidad identificando a su PK, para investigar si identificando a su PK, para investigar si existen dependencias parciales.existen dependencias parciales.

Page 36: Ces03

En el grafico se puede observar que los atributos Producto (Nombre del producto ) y Unidad (unidad en que se comercializa el producto), se pueden identificar solo con conocer el idProd ( el código del producto debe ser único por producto ). Luego no necesitan al toda la PK para ser identificados, por lo tanto tienen dependencia funcional parcial de la PK.

Page 37: Ces03

Para pasar a la Para pasar a la 2FN2FN se deben eliminar los se deben eliminar los atributos que originen dependencias atributos que originen dependencias parciales:parciales:

Entidad B1Entidad B1

Page 38: Ces03

Y con los atributos eliminados tenemos:Y con los atributos eliminados tenemos:

Entidad B2Entidad B2

Aquí podemos observar que también se llevo al atributo del cual dependían funcionalmente en la entidad B, esto asegura la relación entre las entidades resultantes. Además identificamos al atributo IdProd como PK en esta nueva entidad resultante B2.Hasta este momento, en este ejemplo, tenemos tres entidades resultantes en 2FN : A, B1, y B2.

Page 39: Ces03

TERCERA FORMA NORMAL TERCERA FORMA NORMAL ( 3FN )( 3FN )Una entidad se encuentra en la Tercera Una entidad se encuentra en la Tercera

Forma Normal si ya está en la Forma Normal si ya está en la 2FN2FN, y , y además no tiene atributos con además no tiene atributos con dependencia Transitivadependencia Transitiva; es decir, ; es decir, atributos que se pueden obtener a atributos que se pueden obtener a partir de otros.partir de otros.

Para obtener la 3FN se deben seguir los Para obtener la 3FN se deben seguir los siguientes pasos:siguientes pasos:– Remover los atributos transitivosRemover los atributos transitivos– Formar nuevas entidades con estos Formar nuevas entidades con estos

atributos y encontrar en estas su clave atributos y encontrar en estas su clave primariaprimaria

Page 40: Ces03

En nuestro ejemplo anterior, notamos En nuestro ejemplo anterior, notamos que las entidades B1 y B2 tienen que las entidades B1 y B2 tienen dependencias funcionales directas, dependencias funcionales directas, luego no existen dependencias luego no existen dependencias transitivas, por lo tanto estas entidades transitivas, por lo tanto estas entidades ya se encuentran en tercera Forma ya se encuentran en tercera Forma Normal.Normal.En el caso de la entidad A debemos En el caso de la entidad A debemos investigar las dependencias funcionales investigar las dependencias funcionales de sus atributos, para ello trazamos las de sus atributos, para ello trazamos las líneas de dependencia respectivas:líneas de dependencia respectivas:

Page 41: Ces03

Podemos reconocer dos atributos con dependencias transitivas; Cliente (el nombre del cliente) se puede identificar con el IdCli (código del cliente), a su vez el IdCli se puede identificar con el NroBol (el número de boleta), que la PK de la entidad; así podemos afirmar que el atributo Cliente tiene una dependencia transitiva de la PK. Del mismo modo se puede afirmar que el atributo NomVend tiene otra dependencia transitiva de la PK.

Page 42: Ces03

A continuación procedemos a eliminar estas A continuación procedemos a eliminar estas dependencias transitivas de la entidad A y dependencias transitivas de la entidad A y obtenemos la siguiente entidad resultante:obtenemos la siguiente entidad resultante:

Entidad A1Entidad A1

Page 43: Ces03

A continuación con los atributos extraídos A continuación con los atributos extraídos formamos otras entidades:formamos otras entidades: Entidad A2 Entidad A2

Entidad A3

Page 44: Ces03

• Observaremos que, en la entidad A2 se ha Observaremos que, en la entidad A2 se ha incluido también el atributo IdCli del cual incluido también el atributo IdCli del cual dependía en la entidad A. Esto asegura la dependía en la entidad A. Esto asegura la relación entre las entidades resultantes. relación entre las entidades resultantes. Además el atributo IdCli es ahora PK en la Además el atributo IdCli es ahora PK en la entidad A2.entidad A2.

• Del mismo modo se observa que en la Del mismo modo se observa que en la entidad A3 la PK es ahora NomVend.entidad A3 la PK es ahora NomVend.

• Cuando se tiene, que las entidades Cuando se tiene, que las entidades resultantes solo tienen dependencias resultantes solo tienen dependencias directas y totales (obsérvese las líneas de directas y totales (obsérvese las líneas de dependencia), podemos afirmar que el dependencia), podemos afirmar que el proceso de normalización ha terminado.proceso de normalización ha terminado.

• Como resultado final entonces tenemos en Como resultado final entonces tenemos en este caso cinco entidades:este caso cinco entidades:

A1A1 A2A2 A3A3 B1B1 B2B2

Page 45: Ces03

A continuación se debe poner nombres más A continuación se debe poner nombres más específicos, que reflejen su esencia, (en específicos, que reflejen su esencia, (en singular), a estas entidades resultantes:singular), a estas entidades resultantes:

• A1A1 BoletaBoleta

• A2A2 ClienteCliente

• A3A3 VendedorVendedor

• B1B1 DetalleBoletaDetalleBoleta

• B2B2 Producto Producto

Page 46: Ces03

El siguiente paso es construir el El siguiente paso es construir el Diagrama Entidad Relación con estas Diagrama Entidad Relación con estas entidades resultantes del proceso de entidades resultantes del proceso de normalización. normalización. Primero se dibujan las entidades con Primero se dibujan las entidades con sus atributos indicado en la parte sus atributos indicado en la parte superior del cuadrilátero que superior del cuadrilátero que representa a cada entidad a la PK en representa a cada entidad a la PK en un recuadro. Las claves foráneas se un recuadro. Las claves foráneas se deben indicar para establecer luego las deben indicar para establecer luego las relaciones.relaciones.

Page 47: Ces03

El diagrama debe mostrar lo siguiente:El diagrama debe mostrar lo siguiente:

Page 48: Ces03

• Luego hay que definir el tipo de relación a Luego hay que definir el tipo de relación a establecer entre las entidades; por ejemplo establecer entre las entidades; por ejemplo vamos determinar el tipo de relación que vamos determinar el tipo de relación que existe entre la entidad VENDEDOR y la existe entre la entidad VENDEDOR y la entidad BOLETA, que como ya se había entidad BOLETA, que como ya se había determinado en el proceso de la determinado en el proceso de la Normalización, el nexo entre estas dos Normalización, el nexo entre estas dos entidades es el atributo IdVend.entidades es el atributo IdVend.

• Se observa que el atributo nexo es PK en la Se observa que el atributo nexo es PK en la entidad VENDEDOR y , a su vez es FK en la entidad VENDEDOR y , a su vez es FK en la entidad BOLETA; por esta razón, para esta entidad BOLETA; por esta razón, para esta relación en particular VENDEDOR es la relación en particular VENDEDOR es la Entidad Padre, y BOLETA es la Entidad Hija.Entidad Padre, y BOLETA es la Entidad Hija.

Page 49: Ces03

Además para determinar una instancia en Además para determinar una instancia en particular en la entidad Hija no se necesita particular en la entidad Hija no se necesita conocer IdVend (al vendedor); luego podemos conocer IdVend (al vendedor); luego podemos especificar un número de boleta, por ejemplo especificar un número de boleta, por ejemplo 356 y ya podemos esa boleta ; no hubo 356 y ya podemos esa boleta ; no hubo necesidad de especificar el vendedor necesidad de especificar el vendedor (IdVend). Además si solo tuviéramos como (IdVend). Además si solo tuviéramos como dato el código del vendedor (IdVend) no dato el código del vendedor (IdVend) no podríamos particularizar una boleta, pues podríamos particularizar una boleta, pues pueden existir muchas boletas relacionadas pueden existir muchas boletas relacionadas con un mismo vendedor. Por lo tanto con un mismo vendedor. Por lo tanto podemos afirmar que la relación existente podemos afirmar que la relación existente entre VENDEDOR y BOLETA es una entre VENDEDOR y BOLETA es una RELACIÓN NO IDENTIFICADORARELACIÓN NO IDENTIFICADORA. .

Page 50: Ces03

A continuación tazamos la línea de A continuación tazamos la línea de relación entre las dos entidades:relación entre las dos entidades:

Page 51: Ces03

• La línea de relación parte de la entidad La línea de relación parte de la entidad Padre, señalando a la PK con Cardinalidad Padre, señalando a la PK con Cardinalidad uno, y llegando a la entidad Hija con uno, y llegando a la entidad Hija con Cardinalidad uno o muchos. Esta Cardinalidad uno o muchos. Esta Cardinalidad inicial podrá variarse luego Cardinalidad inicial podrá variarse luego verificando las reglas de negocio de la verificando las reglas de negocio de la realidad que estamos modelando.realidad que estamos modelando.

• Nótese que en una relación identificadora, la Nótese que en una relación identificadora, la entidad Hija tiene a la FK como un atributo entidad Hija tiene a la FK como un atributo común más.común más.

• En el caso de la relación entre CLIENTE y En el caso de la relación entre CLIENTE y BOLETA también se cumple algo similar, y BOLETA también se cumple algo similar, y luego se determina que la relación existente luego se determina que la relación existente entre esta dos entidades también es una entre esta dos entidades también es una RELACION NO IDENTIFICADORA.RELACION NO IDENTIFICADORA.

Page 52: Ces03

Con respecto a la relación entre BOLETA y Con respecto a la relación entre BOLETA y DETALLEBOLETA, el atributo que sirve de nexo DETALLEBOLETA, el atributo que sirve de nexo entre las entidades en el atributo entre las entidades en el atributo NroBolNroBol podemos anotar que para identificar una podemos anotar que para identificar una instancia de DETALLEBOLETA se necesita conocer instancia de DETALLEBOLETA se necesita conocer un número de boleta (NroBol), si este dato será un número de boleta (NroBol), si este dato será imposible ubicar una instancia en imposible ubicar una instancia en DETALLEBOLETA. Luego la relación existente DETALLEBOLETA. Luego la relación existente entre esta dos entidades en una RELACION entre esta dos entidades en una RELACION IDENTIFICADORA por que con la PK de BOLETA IDENTIFICADORA por que con la PK de BOLETA podremos identificar alguna instancia que podremos identificar alguna instancia que represente a algún detalle de la venta de un represente a algún detalle de la venta de un Producto. Luego se hace también necesario Producto. Luego se hace también necesario conocer el producto que se vendió en dicha conocer el producto que se vendió en dicha boleta (IdProd). De esto último entonces también boleta (IdProd). De esto último entonces también se infiere que la relación existente entre se infiere que la relación existente entre PRODUCTO y DETALLEBOLETA es también una PRODUCTO y DETALLEBOLETA es también una RELACIÓN IDENTIFICADORA.RELACIÓN IDENTIFICADORA.

Page 53: Ces03

Finalmente llegaremos al siguiente Finalmente llegaremos al siguiente Diagrama Entidad Relación (E-R):Diagrama Entidad Relación (E-R):

Page 54: Ces03

• Podemos señalar que para la Relación Podemos señalar que para la Relación Identificadora la FK en la entidad Hija figura Identificadora la FK en la entidad Hija figura como parte de la PK.como parte de la PK.

• Podemos también afirmar que la entidad Podemos también afirmar que la entidad DETALLEBOLETA tiene instancias que solo DETALLEBOLETA tiene instancias que solo podrán existir si existen Boletas y Productos, podrán existir si existen Boletas y Productos, luego esta entidad es una Entidad luego esta entidad es una Entidad DEPENDIENTE ó también conocida como DEPENDIENTE ó también conocida como DEBIL.DEBIL.

• En cambio las otras entidades no necesitan En cambio las otras entidades no necesitan de atributos foráneos para identificar a cada de atributos foráneos para identificar a cada una de sus respectivas instancias. Luego una de sus respectivas instancias. Luego podemos afirmar que son Entidades podemos afirmar que son Entidades INDEPENDIENTES o también conocidas como INDEPENDIENTES o también conocidas como FUERTES.FUERTES.