Upload
api-3735749
View
1.570
Download
2
Embed Size (px)
DESCRIPTION
Clase Teórica del día Jueves
Citation preview
11
Diseño de Diseño de Base de Datos Base de Datos RelacionalesRelacionales
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.
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
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.”
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
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
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
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
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
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?
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
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)
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
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
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
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
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
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
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
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.
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 ? ?
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
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.
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
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)
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.
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
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.
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.
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. . .
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.
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
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.
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.
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.
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.
3737
Relación de Formas NormalesRelación de Formas Normales
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
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.
4040
Proceso de NormalizaciónProceso de Normalización
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
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
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
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
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))
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
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
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)
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.
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.
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. . .
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.