Clase Fundamentos de Bases de Datos

52
1 Diseño de Diseño de Base de Datos Base de Datos Relacionales Relacionales

description

Clase Teórica del día Jueves

Transcript of Clase Fundamentos de Bases de Datos

Page 1: Clase Fundamentos de Bases de Datos

11

Diseño de Diseño de Base de Datos Base de Datos RelacionalesRelacionales

Page 2: Clase Fundamentos de Bases de Datos

22

¿Que es una Base de datos?¿Que es una Base de datos?

Conjunto unificado de información, que Conjunto unificado de información, que será compartida por diferentes usuarios será compartida por diferentes usuarios de la organizaciónde la organización

La función básica de una base de datos La función básica de una base de datos es permitir el almacenamiento y la es permitir el almacenamiento y la recuperación de la información necesaria, recuperación de la información necesaria, para que las personas de la organización para que las personas de la organización puedan tomar decisiones.puedan tomar decisiones.

Page 3: Clase Fundamentos de Bases de Datos

33

Diseño de una BDDiseño de una BD Los modelos conceptuales se basan en un Los modelos conceptuales se basan en un

criterio intuitivo de lo que ocurre en el mundo criterio intuitivo de lo que ocurre en el mundo real y como este mundo real debe ser modeladoreal y como este mundo real debe ser modelado

Si bien son intuitivos, son de fácil aplicación y Si bien son intuitivos, son de fácil aplicación y además muy efectivos en sus resultadosademás muy efectivos en sus resultados

Page 4: Clase Fundamentos de Bases de Datos

44

Diseño de una BDDiseño de una BD Central al diseño relacional es la idea de Central al diseño relacional es la idea de

dependencia de datosdependencia de datos

““Un modelo mal diseñado se transforma Un modelo mal diseñado se transforma en el talón de aquiles de un sistema.”en el talón de aquiles de un sistema.”

Page 5: Clase Fundamentos de Bases de Datos

55

Diseño de una BDDiseño de una BD La Teoría es útilLa Teoría es útil

Como control de nuestros diseñosComo control de nuestros diseños Para comprender algunas cosas que no pueden ser Para comprender algunas cosas que no pueden ser

representadas en el Modelo ERrepresentadas en el Modelo ER Para comprender las consecuencias de conceptos Para comprender las consecuencias de conceptos

tales como redundancia (que puede ser utilizado para tales como redundancia (que puede ser utilizado para mejorar la eficiencia de los sistemas)mejorar la eficiencia de los sistemas)

Distinguimos un conjunto (incompleto) de estas Distinguimos un conjunto (incompleto) de estas restricciones para el modelo, que pueden restricciones para el modelo, que pueden implementarse en varios SGBD relaciones implementarse en varios SGBD relaciones actualmente en el mercadoactualmente en el mercado

Page 6: Clase Fundamentos de Bases de Datos

66

Restricciones de IntegridadRestricciones de Integridad Restricciones de DominioRestricciones de Dominio Restricciones de Integridad ReferencialRestricciones de Integridad Referencial

Test que permite controlar operaciones de Test que permite controlar operaciones de actualización actualización

Inserción, Borrado (cascada), ModificaciónInserción, Borrado (cascada), Modificación ClaveClave

AsercionesAserciones Predicados que debe satisfacer la base de datosPredicados que debe satisfacer la base de datos El sistema controla su validez lo que puede ocasionar El sistema controla su validez lo que puede ocasionar

una gran sobrecarga si no se utiliza con cuidadouna gran sobrecarga si no se utiliza con cuidado

Page 7: Clase Fundamentos de Bases de Datos

77

Restricciones de IntegridadRestricciones de Integridad DisparadoresDisparadores

Acciones que se ejecutan como efecto lateral ante Acciones que se ejecutan como efecto lateral ante una operación una operación

Deben especificarse:Deben especificarse:• Bajo qué operaciones tendrían que ejecutarseBajo qué operaciones tendrían que ejecutarse• Cuáles son las acciones que debería realizarCuáles son las acciones que debería realizar

Dependencias FuncionalesDependencias Funcionales El valor de un conjunto de atributos determina El valor de un conjunto de atributos determina

unívocamente el valor de otro conjunto de atributosunívocamente el valor de otro conjunto de atributos Noción como generalización de claveNoción como generalización de clave

Page 8: Clase Fundamentos de Bases de Datos

88

Claves de un EsquemaClaves de un Esquema

Clave o LlaveClave o Llave Conjunto de atributos de un esquema que Conjunto de atributos de un esquema que

permite distinguir unívocamente las tuplas de permite distinguir unívocamente las tuplas de una relación. una relación.

Si el conjunto tiene un subconjunto propio con Si el conjunto tiene un subconjunto propio con la misma propiedad lo llamamos SuperClavela misma propiedad lo llamamos SuperClave

En término de DFEn término de DF K es clave de R, si K K es clave de R, si K R y K R y K

Page 9: Clase Fundamentos de Bases de Datos

99

¿Qué es un mal diseño?¿Qué es un mal diseño? Un mal diseño lleva a:Un mal diseño lleva a:

Repetir InformaciónRepetir Información Inhabilidad para representar cierta informaciónInhabilidad para representar cierta información

Supongamos un esquema Supongamos un esquema Proveedor ( Nombre_Proveedor,Proveedor ( Nombre_Proveedor, Dirección_Proveedor,Dirección_Proveedor, Item,Item, Item_Precio_Unitario )Item_Precio_Unitario )

Problemas en el diseño:Problemas en el diseño: RedundanciaRedundancia

• La dirección del Proveedor se repite por cada item La dirección del Proveedor se repite por cada item provistoprovisto

Page 10: Clase Fundamentos de Bases de Datos

1010

¿Qué es un mal diseño?¿Qué es un mal diseño? Problemas en el diseño:Problemas en el diseño:

Potencial inconsistencia (anomalías de Potencial inconsistencia (anomalías de actualización)actualización)• ¿cómo actualizamos la dirección de un ¿cómo actualizamos la dirección de un

proveedor?proveedor? Anomalías de InserciónAnomalías de Inserción

• ¿cuál es la dirección de un proveedor qué aún ¿cuál es la dirección de un proveedor qué aún no ha provisto items?no ha provisto items?

Anomalías de BorradoAnomalías de Borrado• Si borro el último item provisto, ¿cómo guardo Si borro el último item provisto, ¿cómo guardo

la dirección del proveedor?la dirección del proveedor?

Page 11: Clase Fundamentos de Bases de Datos

1111

Un Buen DiseñoUn Buen Diseño Objetivos de un buen diseñoObjetivos de un buen diseño

Evitar datos redundantesEvitar datos redundantes Asegurar que se representen las Asegurar que se representen las

relaciones entre los datosrelaciones entre los datos Facilitar el control de que las Facilitar el control de que las

actualizaciones de la base de datos actualizaciones de la base de datos resulten en una violación de las resulten en una violación de las restricciones de integridadrestricciones de integridad

Page 12: Clase Fundamentos de Bases de Datos

1212

¿Qué es un mal diseño?¿Qué es un mal diseño? Corrección del problemaCorrección del problema

Reemplazar el esquema con dos nuevos Reemplazar el esquema con dos nuevos esquemas:esquemas:

Proveedor ( Nombre_Proveedor,Proveedor ( Nombre_Proveedor, Dirección_Proveedor)Dirección_Proveedor)Provee ( Nombre_Proveedor,Provee ( Nombre_Proveedor, Item,Item, Item_Precio_Unitario )Item_Precio_Unitario )

Veamos como soluciona los problemasVeamos como soluciona los problemas RedundanciaRedundancia Anomalías (Inserción, Modificación y Borrado)Anomalías (Inserción, Modificación y Borrado)

Page 13: Clase Fundamentos de Bases de Datos

1313

¿Qué es un mal diseño?¿Qué es un mal diseño? Nuevo ProblemaNuevo Problema

¿Cómo recupero la información inicial? (cuando ¿Cómo recupero la información inicial? (cuando los datos estaban en una sola tabla)los datos estaban en una sola tabla)

Utilizando la operación JOINUtilizando la operación JOIN Nueva_Proveedor = Proveedor Nueva_Proveedor = Proveedor ►◄ Provee►◄ Provee Nueva_Proveedor ( Nombre_Proveedor,Nueva_Proveedor ( Nombre_Proveedor, Dirección_Proveedor,Dirección_Proveedor, Item,Item, Item_Precio_Unitario)Item_Precio_Unitario)

Ejemplo con ValoresEjemplo con Valores

Page 14: Clase Fundamentos de Bases de Datos

1414

Buen Diseño: Pautas informalesBuen Diseño: Pautas informales

Conocer la semántica de los atributosConocer la semántica de los atributos Diseñe un esquema de relación de modo que Diseñe un esquema de relación de modo que

sea fácil de explicar su signifsea fácil de explicar su significicado. ado. No combine atributos de varios tipos de No combine atributos de varios tipos de

entidades y tipos de relaciones (modelo entidades y tipos de relaciones (modelo EER) R) en una sola relación (modelo relacionalen una sola relación (modelo relacional))

Reducir los valores redundantes en las Reducir los valores redundantes en las tuplastuplas Diseñe los esquemas de las relaciones de Diseñe los esquemas de las relaciones de

modo que no haya anomalmodo que no haya anomalíías de as de actualizaciónactualización

Page 15: Clase Fundamentos de Bases de Datos

1515

Buen Diseño: Pautas informalesBuen Diseño: Pautas informales

Reducir los valores nulos en las tuplasReducir los valores nulos en las tuplas Hasta donde sea posible, evite incluir en una Hasta donde sea posible, evite incluir en una

relación atributos cuyos valores prelación atributos cuyos valores puuedan ser nulos. edan ser nulos. Si no es posible evitar los nulos, asegúrese de que Si no es posible evitar los nulos, asegúrese de que se apliquen sólo en casos excepcionales y no a la se apliquen sólo en casos excepcionales y no a la mayoría de las tupmayoría de las tupllas de una relaciónas de una relación

Prohibir tuplas espuriasProhibir tuplas espurias Diseñe los esquemas de relación de manera que Diseñe los esquemas de relación de manera que

puedan reunirse mediante condpuedan reunirse mediante condiciiciones de igualdad ones de igualdad sobre atributos que sean claves primarias o sobre atributos que sean claves primarias o candidatas, a fin de garantizar que no se formarán candidatas, a fin de garantizar que no se formarán tuptupllas espuriasas espurias

Page 16: Clase Fundamentos de Bases de Datos

1616

Tuplas espurias o erróneasTuplas espurias o erróneas

Supongamos el esquemaSupongamos el esquemaEstudiante (Legajo, Nombre, Ciudad, Estudiante (Legajo, Nombre, Ciudad, Provincia)Provincia)

Legajo Nombre Ciudad Provincia10 Jorge Neuquén Neuquén20 Analía Plottier Neuquén30 Carlos Cipolletti Río Negro40 María Centenario Neuquén

Page 17: Clase Fundamentos de Bases de Datos

1717

Tuplas espurias o erróneasTuplas espurias o erróneas

Solución al problema de redundancia Solución al problema de redundancia Estudiante (Legajo, Nombre, Provincia)Estudiante (Legajo, Nombre, Provincia) Dirección (Provincia, Ciudad)Dirección (Provincia, Ciudad)

Legajo Nombre Provincia10 Jorge Neuquén20 Analía Neuquén30 Carlos Río Negro40 María Neuquén

Ciudad ProvinciaNeuquén NeuquénPlottier Neuquén

Centenario NeuquénCipolletti Río Negro

Page 18: Clase Fundamentos de Bases de Datos

1818

Tuplas espurias o erróneasTuplas espurias o erróneasLegajo Nombre Provincia

10 Jorge Neuquén20 Analía Neuquén30 Carlos Río Negro40 María Neuquén

Ciudad ProvinciaNeuquén NeuquénPlottier Neuquén

Centenario NeuquénCipolletti Río Negro

►◄

Legajo Nombre Provincia Ciudad10 Jorge Neuquén Neuquén10 Jorge Neuquén Plottier10 Jorge Neuquén Centenario20 Analía Neuquén Neuquén20 Analía Neuquén Plottier20 Analía Neuquén Centenario30 Carlos Río Negro Cipolletti40 María Neuquén Neuquén40 María Neuquén Plottier40 María Neuquén Centenario

Tuplas Espurias

Page 19: Clase Fundamentos de Bases de Datos

1919

Tuplas espurias o erróneasTuplas espurias o erróneas Se trata de las tuplas adicionales que no Se trata de las tuplas adicionales que no

estaban en la relación originalestaban en la relación original Representan información errónea o agregada Representan información errónea o agregada

que no es válidaque no es válida Se obtiene porque el join se realizó entre dos Se obtiene porque el join se realizó entre dos

tablas cuyos esquemas no fueron elegidos tablas cuyos esquemas no fueron elegidos como un “buen” diseñocomo un “buen” diseño

Esto se debe a que el atributo que relaciona Esto se debe a que el atributo que relaciona ambos esquemas no es una clave primaria o ambos esquemas no es una clave primaria o clave candidata en cualquiera de las relacionesclave candidata en cualquiera de las relaciones

Page 20: Clase Fundamentos de Bases de Datos

2020

Preservación de DependenciasPreservación de Dependencias Si actualizamos una relación de una BD. ¿Podemos Si actualizamos una relación de una BD. ¿Podemos

fácilmentefácilmente controlar si una dependencia funcional controlar si una dependencia funcional XXY esY es violada? violada?

Sólo podríamos hacerlo si Sólo podríamos hacerlo si X X YY están contenidos en algún están contenidos en algún conjunto de atributosconjunto de atributos

La La proyecciónproyección de un conjunto de dependencias funcionales de un conjunto de dependencias funcionales FF en un conjunto de atributos en un conjunto de atributos ZZ, , FFZZ es es

{{XXYY | | XXYYF F + + and and X X Y Y Z Z }} Una decomposición Una decomposición RR11, …, , …, RRkk preserva dependencias preserva dependencias si si

F F ++ = ( = ( FFRR1 1 ... ... FFRRk k ) ) ++

Lo que significa que la descomposición no ha perdido alguna Lo que significa que la descomposición no ha perdido alguna dependencia funcional esencial.dependencia funcional esencial.

Conservaríamos así las restricciones de integridad de la Conservaríamos así las restricciones de integridad de la relación R original.relación R original.

Page 21: Clase Fundamentos de Bases de Datos

2121

Ejemplo de PreservaciónEjemplo de Preservación El esquema de relación ProveedorEl esquema de relación Proveedor

{ Nombre, Dirección, Ciudad, CP, Item, Precio }{ Nombre, Dirección, Ciudad, CP, Item, Precio }

Conjunto de dependencias funcionalesConjunto de dependencias funcionales Nombre Nombre Dirección, Ciudad Dirección, Ciudad Dirección, Ciudad Dirección, Ciudad CP CP Nombre,Item Nombre,Item Precio Precio

Considerar la descomposición Considerar la descomposición {Nombre, Dirección, Ciudad, CP} {Nombre, Dirección, Ciudad, CP} {Nombre, Item, Precio}{Nombre, Item, Precio}

¿Es Join sin Pérdida?¿Es Join sin Pérdida? ¿Preserva dependencias?¿Preserva dependencias? ¿Cómo cambia si se reemplaza la primera ¿Cómo cambia si se reemplaza la primera

dependencia condependencia conNombre, Dirección Nombre, Dirección Ciudad Ciudad ? ?

Page 22: Clase Fundamentos de Bases de Datos

2222

Esquema: Esquema: {estudiante, profesor, tema}{estudiante, profesor, tema}

Conjunto de DF: Conjunto de DF: profesor profesor tema tema estudiante, tema estudiante, tema profesor profesor

La Descomposición: La Descomposición: {estudiante, profesor} {estudiante, profesor} {profesor, tema}{profesor, tema}

¿Es join sin pérdida?¿Es join sin pérdida? ¿Tiene preservación de dependencias?¿Tiene preservación de dependencias?

Ejemplo de Preservación IIEjemplo de Preservación II

Page 23: Clase Fundamentos de Bases de Datos

2323

Formas NormalesFormas Normales Definición de Forma NormalDefinición de Forma Normal

Es una restricción al Es una restricción al esquema de BDesquema de BD que presumible- que presumible-mente evita ciertas propiedades indeseables en la mente evita ciertas propiedades indeseables en la BDBD..

Se definen primero para un esquema de relación en el Se definen primero para un esquema de relación en el esquema de la BD y se extienden hasta aplicar al esquema de la BD y se extienden hasta aplicar al esquema de BD como un todoesquema de BD como un todo

1º FN1º FN Un esquema relacional R está en primera forma Un esquema relacional R está en primera forma

normal (1FN) si el valor de dom(A) para cada atributo normal (1FN) si el valor de dom(A) para cada atributo de R es atómicode R es atómico

Los valores del dominio no pueden ser listas, conjunto Los valores del dominio no pueden ser listas, conjunto de valores o valores compuestos.de valores o valores compuestos.

Page 24: Clase Fundamentos de Bases de Datos

2424

1era Forma Normal1era Forma Normal

ProfesorID# Nombre Apellido Módulos

12345

23456

34567

45678

56789

67890

78901

. . .

Fred

Sarah

Joe

Mary

Edward

Cyril

Mei Ti

. . .

Jones

Smith

Clegg

Windsor

Griswald

Coombs

Quinn

. . .

IT, Business, History

Chemistry, Physics, IT

Maths, Physics, Art

Maths, Physics, Geography

Maths, PE, Gen Studies

History, French, PE

Chemistry, Biology

. . .

Query: (Encontrar todos los profesores de Física)AtributosMultivaluados

Una relación está en 1º Forma Normal si no tiene atributos con valores multivaluados

Page 25: Clase Fundamentos de Bases de Datos

2525

1era forma Normal1era forma NormalProfesorID# Nombre Apellido Modulo 1

12345

23456

34567

45678

56789

67890

78901

. . .

Fred

Sarah

Joe

Mary

Edward

Cyril

Mei Ti

. . .

Jones

Smith

Clegg

Windsor

Griswald

Coombs

Quinn

. . .

IT Business History

Chemistry Physics IT

Maths Physics Art

Maths Physics Geography

Maths PE Gen Studies

History French PE

Chemistry Biology

. . .

Modulo 2 Modulo 3

Atomic Attributes (still search multiple columns)

Page 26: Clase Fundamentos de Bases de Datos

2626

Formas NormalesFormas Normales Dependencia Funcional Parcial / TotalDependencia Funcional Parcial / Total

Sea F un conjunto de DF y Sea F un conjunto de DF y X X Y Y en F en F++. . Y es Y es parcialmente dependienteparcialmente dependiente de X en F si de X en F si X X Y Y

no esno es reducido a izquierdo, ie reducido a izquierdo, ie X’ X’ X / X’ X / X’ Y Y FF++..

Y es Y es totalmente dependientetotalmente dependiente de X en F si de X en F si X X Y Y eses reducido a izquierdo, ie reducido a izquierdo, ie X’ X’ X / X’ X / X’ Y Y F F

Atributo Primario o PrimoAtributo Primario o Primo Sea R un esquema de Relación, y A Sea R un esquema de Relación, y A R, F un R, F un

conjunto de DF sobre R. A es conjunto de DF sobre R. A es primoprimo en R con en R con respecto a F si A pertenece a alguna clave de R. respecto a F si A pertenece a alguna clave de R. De lo contrario A es De lo contrario A es nono primo. primo.

Page 27: Clase Fundamentos de Bases de Datos

2727

Formas NormalesFormas Normales 2º FN2º FN

Un esquema relacional R está en segunda forma Un esquema relacional R está en segunda forma normal (2FN) cuando todos los atributos no normal (2FN) cuando todos los atributos no primos tienen dependencia total respecto de cada primos tienen dependencia total respecto de cada una de las claves.una de las claves.

Un esquema de base de datos está en segunda Un esquema de base de datos está en segunda forma normal respecto a un conjunto de forma normal respecto a un conjunto de dependencias funcionales F si cada esquema de dependencias funcionales F si cada esquema de relación Ri en R está en 2FN con respecto a F. relación Ri en R está en 2FN con respecto a F.

Ejemplo Ejemplo

Page 28: Clase Fundamentos de Bases de Datos

2828

2da Forma Normal2da Forma NormalProfesorID# Nombre Apellido Módulo

1234512345123452345623456234563456734567345674567845678. . .

FredFredFredSarahSarahSarahJoeJoeJoeMaryMary. . .

JonesJonesJonesSmithSmithSmithCleggCleggCleggWindsorWindsor. . .

ITBusiness HistoryChemistryPhysicsITMathsPhysicsArtMathsPhysics. . .

No hay grupos repetitivos, pero hay problemas.

La Información está duplicada.

(La información estácontenida en lascorrespondenciasentre atributos)

Depende de ID#(parte de la clave primaria)

Una relación está en 2º Forma Normal si está en 1º Forma Normal y ningún atributo no primo es dependiente de una parte de una clave.

Page 29: Clase Fundamentos de Bases de Datos

2929

2da Forma Normal2da Forma Normal

MóduloID# Módulo

BS001HI001PH002. . .

Business HistoryPhysics. . .

ProfesorID# Nombre Apellido

12345234563456745678. . .

FredSarahJoeMary. . .

JonesSmithCleggWindsor. . .

En esta propuesta, las tablas representan “cosas”o conceptos que tienenclaro significado. Por un lado el “Profesor”, por elotro los “Módulos”.

Estas son las “entidades”sobre las cuales se ha hablado en la modelización conceptual.

Page 30: Clase Fundamentos de Bases de Datos

3030

2º Forma Normal2º Forma Normal

MóduloID# Módulo

BS001HI001PH002. . .

Business HistoryPhysics. . .

ProfesorID# Nombre Apellido

12345234563456745678. . .

FredSarahJoeMary. . .

JonesSmithCleggWindsor. . .

Profesor/MóduloTID# MID#

1234512345123452345623456234563456734567345674567845678. . .

IT003BS001HI001CH002PH002IT003MA002PH002AR001MA002PH002. . .

Page 31: Clase Fundamentos de Bases de Datos

3131

Formas NormalesFormas Normales Dependencia Funcional TransitivaDependencia Funcional Transitiva

Sea F un conjunto de DF y Sea F un conjunto de DF y X X Y Y en F en F++, y A un , y A un atributo de R. atributo de R.

A es A es transitivamente dependientetransitivamente dependiente de X en R con de X en R con respecto a F si hay un subconjunto Y de R tal que respecto a F si hay un subconjunto Y de R tal que X X Y Y F F y y ((Y Y X X)) y y Y Y A A sobre F y A sobre F y A XY. XY.

• EjemploEjemplo

3º FN3º FN Un esquema relacional R está en tercera forma Un esquema relacional R está en tercera forma

normal (3FN) cuando está en 1FN y no hay normal (3FN) cuando está en 1FN y no hay atributos no primos en R que tengan dependencia atributos no primos en R que tengan dependencia transitiva respecto de cada una de las claves de R.transitiva respecto de cada una de las claves de R.

Page 32: Clase Fundamentos de Bases de Datos

3232

Formas NormalesFormas Normales 3º FN3º FN

Un esquema de base de datos está en tercera Un esquema de base de datos está en tercera forma normal con respecto a F si cada esquema forma normal con respecto a F si cada esquema de relación Ri de R está en tercera forma normal de relación Ri de R está en tercera forma normal con respecto a F.con respecto a F.

EjemploEjemplo El esquema relacional R está en 3FN si para cada El esquema relacional R está en 3FN si para cada

dependencia funcional X dependencia funcional X A que vale en R, se A que vale en R, se cumple lo siguiente:cumple lo siguiente:• A A X (trivial), X (trivial), • X es una superclave para el esquema R, o X es una superclave para el esquema R, o • A es miembro de alguna de las claves de RA es miembro de alguna de las claves de R

Page 33: Clase Fundamentos de Bases de Datos

3333

Formas NormalesFormas Normales 3º FN3º FN

Un esquema de base de datos está en tercera Un esquema de base de datos está en tercera forma normal respecto a un conjunto de forma normal respecto a un conjunto de dependencias funcionales F si cada esquema de dependencias funcionales F si cada esquema de relación Rrelación Rii en R está en 3FN con respecto a F. en R está en 3FN con respecto a F.

TeoremaTeorema Cualquier esquema de relación R que está en Cualquier esquema de relación R que está en

3FN con respecto al conjunto de dependencias 3FN con respecto al conjunto de dependencias funcionales F está también en 2FN con respecto a funcionales F está también en 2FN con respecto a F.F.

Demostración: Una dependencia parcial implica Demostración: Una dependencia parcial implica una dependencia transitiva.una dependencia transitiva.

Page 34: Clase Fundamentos de Bases de Datos

3434

3ra Forma Normal3ra Forma NormalProfesorID# Nombre Módulo

1234512121113452645621156222563566731367111672137812178. . .

JonesBrownPaulSylvesterMikeSmithCleggMarshallDominicWindsorMatt. . .

ITBu HiChPhITMaPhArMaPh

Nombre del Módulo

Information TechnologyBusiness Studies History of ArtChemistryPhysicsITMathsPhysicsArtMathsPhysics. . .

Estos atributos no dependen de ID#

Una relación está en 3º Forma Normal si está en 2º Forma Normal y no existen atributos noprimos que dependen transitivamente de algunade las claves.

Page 35: Clase Fundamentos de Bases de Datos

3535

Formas NormalesFormas Normales Forma Normal de Boyce CoddForma Normal de Boyce Codd

El esquema relacional R está en FNBC si para cada El esquema relacional R está en FNBC si para cada dependencia funcional X dependencia funcional X Y no trivial que vale en R, Y no trivial que vale en R,

X es una superclave para el esquemaX es una superclave para el esquema Por definición, un esquema en FNBC también está en Por definición, un esquema en FNBC también está en

3FN3FN

FNBC es la más deseable de las restricciones FNBC es la más deseable de las restricciones de una descomposición pero puede demostrarse de una descomposición pero puede demostrarse que no siempre puede obtenerse esta que no siempre puede obtenerse esta descomposición y mantener todas las descomposición y mantener todas las propiedades (LJ y PD)propiedades (LJ y PD)

FNBC es más estricta que 3FN.FNBC es más estricta que 3FN.

Page 36: Clase Fundamentos de Bases de Datos

3636

Formas NormalesFormas Normales Siempre es posible partir de un esquema de relación R que no Siempre es posible partir de un esquema de relación R que no

se encuentra en 3FN con respecto a un conjunto F de se encuentra en 3FN con respecto a un conjunto F de dependencias funcionales y descomponerlo en un esquema de dependencias funcionales y descomponerlo en un esquema de base de datos relacional que está en 3FN con respecto a Fbase de datos relacional que está en 3FN con respecto a F

Descomponer un esquema de base de datos relacional significa Descomponer un esquema de base de datos relacional significa “romper” el esquema relacional inicial en un par de esquemas “romper” el esquema relacional inicial en un par de esquemas R1 y R2 (posiblemente que se intersectan) tales que la relación R1 y R2 (posiblemente que se intersectan) tales que la relación r(R) que satisface a F se descompone sin pérdida en R1 y R2. r(R) que satisface a F se descompone sin pérdida en R1 y R2. Es decirEs decir

RR1 1 (r) (r) RR2 2 (r)(r) = r= r

Podemos repetir el proceso en cada RPodemos repetir el proceso en cada Rii si alguno de ellos no ha si alguno de ellos no ha

alcanzado la forma normal buscada.alcanzado la forma normal buscada.

Page 37: Clase Fundamentos de Bases de Datos

3737

Relación de Formas NormalesRelación de Formas Normales

Page 38: Clase Fundamentos de Bases de Datos

3838

NormalizaciónNormalización

Forma Original No Normalizada

1NF

2NF

3NF

1º Forma Normal

2º Forma Normal

3º Forma Normal

Ejemplo de Pasos de una propuesta del

proceso de Normalización

Page 39: Clase Fundamentos de Bases de Datos

3939

Proceso de NormalizaciónProceso de Normalización

Técnica formal para analizar una relación basada Técnica formal para analizar una relación basada en sus claves primarias y las dependencias en sus claves primarias y las dependencias funcionales que existen entre los atributos del funcionales que existen entre los atributos del esquema.esquema.

Usualmente se ejecuta en una serie de pasos. Usualmente se ejecuta en una serie de pasos. Cada paso corresponde a una forma normal Cada paso corresponde a una forma normal específica (es posible), con propiedades conocidas.específica (es posible), con propiedades conocidas.

En la medida que avanza el proceso, las relaciones En la medida que avanza el proceso, las relaciones se hacen más restringidas (más fuertes) en su se hacen más restringidas (más fuertes) en su formato y también menos vulnerables a las formato y también menos vulnerables a las anomalías de actualización.anomalías de actualización.

Page 40: Clase Fundamentos de Bases de Datos

4040

Proceso de NormalizaciónProceso de Normalización

Page 41: Clase Fundamentos de Bases de Datos

4141

Algoritmo de Descomposición BCNFAlgoritmo de Descomposición BCNF

resultado:= {R}Hecho:= falseCalcular F+Mientras (not Hecho) do Si (Algún esquema S no está en BCNF) Entonces Sea A B una df no trivial válida en S tal que A S no pertenece a F+, A y B disjuntos resultado:= (resultado - S) (S -B) {AB} Sino Hecho:=true Fin Mientras

Page 42: Clase Fundamentos de Bases de Datos

4242

Algoritmo de Descomposición 3FNAlgoritmo de Descomposición 3FN

Sea F un cubrimiento mínimoi:=0Para cada A B en F hacer Si ningún esquema Rj 1 j i contiene AB Entonces i:= i+1 Ri:= {A,B} Si ningún esquema Rj, 1 j i contiene una clave para R Entonces i:= i+1 Ri:= alguna clave para R

Page 43: Clase Fundamentos de Bases de Datos

4343

ResumenResumen Siempre existe una descomposición en 3NF Siempre existe una descomposición en 3NF

con las propiedades de join sin pérdida y con las propiedades de join sin pérdida y preservación de dependencias.preservación de dependencias.

Siempre es posible encontrar una Siempre es posible encontrar una descomposición en FNBC que sea join sin descomposición en FNBC que sea join sin pérdida, pero no siempre es posible encontrar pérdida, pero no siempre es posible encontrar alguna que preserva todas las dependencias.alguna que preserva todas las dependencias.

Ejemplo de DescomposiciónEjemplo de Descomposición

Page 44: Clase Fundamentos de Bases de Datos

4444

Algoritmo: Determinación de ClaveAlgoritmo: Determinación de Clave

Definiciones PreviasDefiniciones Previas Atributos Esenciales: sólo lado izquierdoAtributos Esenciales: sólo lado izquierdo Atributos Posibles: ambos ladosAtributos Posibles: ambos lados Atributos No Esenciales: sólo lado derechoAtributos No Esenciales: sólo lado derecho

Propiedades:Propiedades: Un atributo esencial pertenece a cualquier claveUn atributo esencial pertenece a cualquier clave Un atributo no esencial no pertenece a ninguna claveUn atributo no esencial no pertenece a ninguna clave Para un atributo posible no es posible afirmar si Para un atributo posible no es posible afirmar si

pertenece o no a alguna clave, excepto si esta incluido pertenece o no a alguna clave, excepto si esta incluido en la clausura del conjunto de atributos esenciales. En en la clausura del conjunto de atributos esenciales. En ese caso, no pertenece a alguna claveese caso, no pertenece a alguna clave

Page 45: Clase Fundamentos de Bases de Datos

4545

Metas del Proceso de Metas del Proceso de NormalizacióNormalizaciónn

Obtener los atributos correctos (Obtener los atributos correctos (Buscar los Buscar los atributos correctosatributos correctos))

Obtener las entidades correctas Obtener las entidades correctas ((Dependencias funcionalesDependencias funcionales))

Obtener las relaciones correctas Obtener las relaciones correctas ((Dependencias MultivaluadasDependencias Multivaluadas))

Page 46: Clase Fundamentos de Bases de Datos

4646

En términos de las formas normales, la En términos de las formas normales, la normalización se expresa como:normalización se expresa como: 1ra Forma Normal elimina los grupos 1ra Forma Normal elimina los grupos

repetitivos.repetitivos. 2da + 3ra Forma Normal elimina todas 2da + 3ra Forma Normal elimina todas

las dependencias funcionales entre los las dependencias funcionales entre los atributos no primos.atributos no primos.

4ta Forma Normal elimina todas las 4ta Forma Normal elimina todas las dependencias multivaludasdependencias multivaludas

Proceso de NormalizaciónProceso de Normalización

Page 47: Clase Fundamentos de Bases de Datos

4747

1era Forma Normal1era Forma Normal

ProfesorID# Nombre Apellido Módulos

12345

23456

34567

45678

56789

67890

78901

. . .

Fred

Sarah

Joe

Mary

Edward

Cyril

Mei Ti

. . .

Jones

Smith

Clegg

Windsor

Griswald

Coombs

Quinn

. . .

IT, Business, History

Chemistry, Physics, IT

Maths, Physics, Art

Maths, Physics, Geography

Maths, PE, Gen Studies

History, French, PE

Chemistry, Biology

. . .

Query: (Encontrar todos los profesores de Física)AtributosMultivaluados

Una relación está en 1º Forma Normal si no tiene atributos con valores multivaluados

Page 48: Clase Fundamentos de Bases de Datos

4848

1era forma Normal1era forma NormalProfesorID# Nombre Apellido Modulo 1

12345

23456

34567

45678

56789

67890

78901

. . .

Fred

Sarah

Joe

Mary

Edward

Cyril

Mei Ti

. . .

Jones

Smith

Clegg

Windsor

Griswald

Coombs

Quinn

. . .

IT Business History

Chemistry Physics IT

Maths Physics Art

Maths Physics Geography

Maths PE Gen Studies

History French PE

Chemistry Biology

. . .

Modulo 2 Modulo 3

Atomic Attributes (still search multiple columns)

Page 49: Clase Fundamentos de Bases de Datos

4949

2da Forma Normal2da Forma NormalProfesorID# Nombre Apellido Módulo

1234512345123452345623456234563456734567345674567845678. . .

FredFredFredSarahSarahSarahJoeJoeJoeMaryMary. . .

JonesJonesJonesSmithSmithSmithCleggCleggCleggWindsorWindsor. . .

ITBusiness HistoryChemistryPhysicsITMathsPhysicsArtMathsPhysics. . .

No hay grupos repetitivos, pero hay problemas.

La Información está duplicada.

(La información estácontenida en lascorrespondenciasentre atributos)

Depende de ID#(parte de la clave primaria)

Una relación está en 2º Forma Normal si está en 1º Forma Normal y ningún atributo no primo es dependiente de una parte de una clave.

Page 50: Clase Fundamentos de Bases de Datos

5050

2da Forma Normal2da Forma Normal

MóduloID# Módulo

BS001HI001PH002. . .

Business HistoryPhysics. . .

ProfesorID# Nombre Apellido

12345234563456745678. . .

FredSarahJoeMary. . .

JonesSmithCleggWindsor. . .

En esta propuesta, las tablas representan “cosas”o conceptos que tienenclaro significado. Por un lado el “Profesor”, por elotro los “Módulos”.

Estas son las “entidades”sobre las cuales se ha hablado en la modelización conceptual.

Page 51: Clase Fundamentos de Bases de Datos

5151

2º Forma Normal2º Forma Normal

MóduloID# Módulo

BS001HI001PH002. . .

Business HistoryPhysics. . .

ProfesorID# Nombre Apellido

12345234563456745678. . .

FredSarahJoeMary. . .

JonesSmithCleggWindsor. . .

Profesor/MóduloTID# MID#

1234512345123452345623456234563456734567345674567845678. . .

IT003BS001HI001CH002PH002IT003MA002PH002AR001MA002PH002. . .

Page 52: Clase Fundamentos de Bases de Datos

5252

3ra Forma Normal3ra Forma NormalProfesorID# Nombre Módulo

1234512121113452645621156222563566731367111672137812178. . .

JonesBrownPaulSylvesterMikeSmithCleggMarshallDominicWindsorMatt. . .

ITBu HiChPhITMaPhArMaPh

Nombre del Módulo

Information TechnologyBusiness Studies History of ArtChemistryPhysicsITMathsPhysicsArtMathsPhysics. . .

Estos atributos no dependen de ID#

Una relación está en 3º Forma Normal si está en 2º Forma Normal y no existen atributos noprimos que dependen transitivamente de algunade las claves.