Sei sulla pagina 1di 16

Malos Dise Diseos

Normalizacin de Bases de Datos Relacionales


Bases de Datos Ingenier Ingeniera T Tcnica en Inform Informtica de Sistemas

Qu puede salir mal cuando se hace un mal diseo de una base de datos relacional?

Esquema_prestamo= (nombre_sucursal, ciudad_sucursal, activo, nombre_cliente, numero_prestamo, importe) (Plaza Roja, Santiago, 50000, Santos, P-27, 4500)

Introducci Introduccin

Muchos Problemas
Repeticin de la Informacin por ejemplo, repetir ciudad_sucursal y activo para cada prstamo de cada sucursal Desaprovecha espacio, complica actualizacin Imposibilidad de Representar Informacin por ejemplo, no se puede representar el activo de una sucursal sino tiene concedido al menos un prstamo Valores nulos, complica actualizacin (Plaza Roja, Santiago, 50000, Santos, P-27, 4500) nombre_sucursal
Introducci Introduccin

ndice
Normalizacin Primera Forma Normal Dependencias Funcionales Segunda Forma Normal Tercera Forma Normal Forma Normal de Boyce-Codd Descomponer Relaciones Otras Formas Normales Diseo de Bases de Datos Relacionales
3 Introducci Introduccin 4

activo numero_prestamo

Definici Definicin

Normalizacin
Normalizaci Normalizacin de Bases de Datos Relacionales Bases de Datos Ingenier Ingeniera T Tcnica en Inform Informtica de Sistemas

La normalizacin es una tcnica, desarrollada inicialmente por E.F. Codd en 1972, para disear la estructura lgica de una base de datos en el modelo relacional

La normalizacin es un proceso en el cual se va comprobando el cumplimiento de una serie de reglas, o restricciones, por parte de un esquema de relacin; cada regla que se cumple aumenta el grado de normalizacin del esquema de relacin; si una regla no se cumple, el esquema de relacin se debe descomponer en varios esquemas de relacin que s la cumplan por separado
Normalizaci Normalizacin 6

Formas Normales
Un esquema de relacin est en una determinada forma normal si satisface un cierto conjunto de restricciones Universo de Relaciones 1FN 2FN 3FN FNBC 4FN 5FN Boyce y Cood, 1974 Fagin, 1977 Fagin, 1979
7

Cumplimiento Obligatorio
El modelo relacional slo requiere un conjunto de esquemas de relacin en primera forma normal Las restantes formas normales son opcionales

Cood, 1972 Para evitar anomalas de actualizacin, es recomendable llegar al menos hasta la tercera forma normal o, mejor an, hasta la forma normal de Boyce-Codd

En realidad, son ideas sencillas


Normalizaci Normalizacin Normalizaci Normalizacin 8

Primera Forma Normal

Primera Forma Normal


Normalizaci Normalizacin de Bases de Datos Relacionales Bases de Datos Ingenier Ingeniera T Tcnica en Inform Informtica de Sistemas

Un esquema de relacin est en primera forma normal (1FN) si, y slo si, los dominios de todos los atributos de la relacin son atmicos

Universo de Relaciones 1FN 2FN 3FN FNBC 4FN 5FN

Primera Forma Normal

10

Dominios At Atmicos
Un dominio es atmico si se considera que los elementos del dominio son unidades indivisibles

Normalizaci Normalizacin 1FN


La primera formal normal se defini para prohibir los atributos multivalorados, los atributos compuestos y sus combinaciones Cuando un esquema de relacin no est en primera forma normal, se divide en otros esquemas de relacin, repartiendo sus atributos entre los resultantes Se elimina el (los) atributo(s) que viola(n) la 1FN del esquema original Se coloca el (los) atributo(s) que viola(n) la 1FN en un esquema aparte junto con la superclave del esquema de partida
Primera Forma Normal 12

En muchos dominios en los que las entidades tienen una estructura compleja, la imposicin de la representacin en primera forma normal representa una carga innecesaria para el programador de las aplicaciones, que tiene que escribir cdigo para convertir los datos a su forma atmica Los sistemas modernos de bases de datos soportan muchos tipos de valores no atmicos
Primera Forma Normal 11

Ejemplo Pedidos
Esquema_ordenes = (id_orden, fecha, id_cliente, nombre_cliente, provincia, numero_item, descripcion_item, cantidad, precio) 1FN Esquema_ordenes = (id_orden, fecha, id_cliente, nombre_cliente, provincia) Esquema_pedidos = (id_orden, numero_item, descripcion_item, cantidad, precio)

Dependencias Funcionales
Normalizaci Normalizacin de Bases de Datos Relacionales Bases de Datos Ingenier Ingeniera T Tcnica en Inform Informtica de Sistemas

Primera Forma Normal

13

Definici Definicin
Las dependencias funcionales son restricciones que se aplican sobre el conjunto de relaciones legales de un modelo relacional (una relacin es legal si satisface las restricciones impuestas)

Sem Semntica
La dependencia funcional es una nocin semntica

Se trata de una generalizacin del concepto de clave

Desempean un papel fundamental en la diferenciacin entre buenos y malos diseos de bases de datos
Dependencias Funcionales 15 Dependencias Funcionales 16

Obtenci Obtencin de Dep. Func. Func.


La existencia o no de dependencias funcionales entre los atributos de un esquema de relacin no viene determinada por reglas abstractas sino por los modelos mentales del usuario y por las reglas de la organizacin para la cual se desarrolla la base de datos

Superclave
Sea R el esquema de una relacin; El subconjunto K de R es una superclave de R si ... en cualquier relacin legal r(R), para todos los pares de tuplas t1 y t2 de r tales que t1t2, t1[K]t2[K] Ningn par de tuplas puede tener los mismos valores para los atributos de la superclave

Cada dependencia funcional es una regla de integridad


Dependencias Funcionales 17

Una superclave es un conjunto de uno o ms atributos que, tomados colectivamente, permiten identificar de forma nica una entidad en un conjunto de entidades
Dependencias Funcionales 18

Dependencia Funcional
Considrese el esquema de una relacin R y sean R y R La dependencia funcional se cumple, para el esquema R, si en cualquier relacin legal r(R) para todos los pares de tuplas t1 y t2 de r tales que t1[]=t2[] se cumple que t1[]=t2[] depende funcionalmente de determina funcionalmente a K es una superclave de R si K R

Ejemplo
Esquema_prestamo= (nombre_sucursal, ciudad_sucursal, activo, nombre_cliente, numero_prestamo, importe) nombre_sucursal ciudad_sucursal nombre_sucursal activo numero_prestamo importe numero_prestamo nombre_sucursal nombre_cliente numero_prestamo nombre_sucursal nombre_cliente
Dependencias Funcionales 20

Notacin: conjunto de atributos y A atributo


Dependencias Funcionales 19

Uso Dependencias Funcionales


Probar las relaciones y ver si son legales segn un conjunto de dependencias funcionales Si una relacin r es legal segn un conjunto F de dependencias funcionales se dice que r satisface F Especificar las restricciones de un conjunto de relaciones legales definidas segn un esquema de relacin Si se desea que las relaciones que responden a un esquema de relacin R satisfagan un conjunto F de dependencias funcionales se dice que F se cumple en R Es posible que una dependencia se satisfaga pero no se cumpla
Dependencias Funcionales 21

Ejemplo
AC CA AB D AA BB CC DD
Dependencias Funcionales

A a1 a1 a2 a2 a3 Dependencias triviales

B b1 b2 b2 b3 b3

C c1 c1 c2 c2 c2

D d1 d2 d2 d3 d4

es trivial si
22

Implicaci Implicacin L Lgica


Dado un conjunto F de dependencias funcionales, pueden existir otras dependencias funcionales (no definidas en el conjunto original) implicadas lgicamente por el conjunto F AB AC CG H Dado un esquema relacional R, una dependencia funcional f de R est implicada lgicamente por un conjunto de dependencias funcionales F de R si cada ejemplar de la relacin r(R) que satisfaga F satisface tambin f CG I BH

Ejemplo
R = (A, B, C, G, H, I)

La dependencia funcional A H est implicada lgicamente: t1[A]=t2[A] A B t1[B]=t2[B] B H t1[H]=t2[H] A H

Dependencias Funcionales

23

Dependencias Funcionales

24

Cierre
Sea F un conjunto de dependencias funcionales; El cierre de F, denotado por F+, es el conjunto de todas las dependencias funcionales implicadas lgicamente por F

Axiomas de Armstrong
Las reglas de inferencia definidas por Armstrong proporcionan una tcnica sencilla para calcular el cierre, F+, de un conjunto de dependencias funcionales F (mediante su aplicacin repetida)

Dado F se puede calcular directamente F+ a partir de la definicin de dependencia funcional Si F es de gran tamao, este proceso podra ser prolongado y difcil

Regla de la Reflexividad: Si Regla de la Aumentatividad: Si Regla de la Transitividad: Si y para , , y conjuntos de atributos


25 Dependencias Funcionales 26

Dependencias Funcionales

Axiomas de Armstrong
Los axiomas de Armstrong son correctos porque no generan dependencias funcionales incorrectas Los axiomas de Armstrong son completos porque permiten generar todo el cierre de un conjunto de dependencias funcionales

Reglas Adicionales
Para simplificar el uso de los axiomas de Armstrong se les aaden una serie de reglas adicionales (demostrables mediante los propios axiomas de Armstrong) Regla de la Unin: Si y Regla de la Descomposicin: Si y Regla de la Pseudotransitividad: Si y para , , y conjuntos de atributos

Los axiomas de Armstrong son difciles de utilizar directamente para el clculo del cierre de un conjunto de dependencias funcionales

Dependencias Funcionales

27

Dependencias Funcionales

28

Ejemplo
R = (A, B, C, G, H, I) F = {A B, A C, CG H, CG I, B H} Algunos miembros de F+ A H: A B, B H y la regla de la transitividad CG HI: CG H, CG I y la regla de la unin AG I: A C, CG I y la regla de la pseudotransitividad

Algoritmo de C Clculo de F+
F+ = F Repetir Para cada f F+ Aplicar Reflexividad y Aumentatividad a f Aadir resultado a F+ Para cada f1, f2 F+ Si f1 y f2 se puede combinar por Transitividad Aadir resultado a F+ Hasta que F+ no cambie

Dependencias Funcionales

29

Dependencias Funcionales

30

Superclave
Para comprobar si un conjunto de atributos es una superclave hay que disear un algoritmo para el clculo del conjunto de atributos determinados funcionalmente por dicho conjunto de atributos

Cierre de Atributos
Sea un conjunto de atributos; El conjunto de atributos determinados funcionalmente por bajo un conjunto de dependencias funcionales F se denomina cierre de bajo F y se denota + F +

Hacerlo calculando el cierre y tomando todas las dependencias funcionales con el conjunto de atributos como trmino de la izquierda puede ser costoso si el cierre es de gran tamao

El conjunto de atributos determinados funcionalmente por un atributo no slo resulta til para comprobar si un atributo es una superclave
31 Dependencias Funcionales 32

Dependencias Funcionales

Algoritmo de C Clculo de +
Res = Repetir Para cada dependencia funcional F Si Res Entonces Res = Res U Hasta que Res no cambie

Ejemplo
R = (A, B, C, G, H, I) F = {A B, A C, CG H, CG I, B H}

(AG)+

AG ABG (A B) ABCG (A C) ABCGH (CG H) ABCGHI (CG I)

Dependencias Funcionales

33

Dependencias Funcionales

34

Usos del Cierre de Atributos


Posibles usos del clculo del cierre de atributos: Comprobar superclaves: Para comprobar si es una superclave, se calcula + y se comprueba si + contiene todos los atributos de R Comprobar dependencias funcionales: Para comprobar si se cumple la dependencia funcional , se comprueba si + Calcular el cierre de F: Para cada R se halla el cierre + y, para cada S +, se genera una dependencia funcional S

Actualizaciones
Supngase que se tiene un conjunto de dependencias funcionales F de un esquema de relacin R Siempre que un usuario lleve a cabo una actualizacin de una relacin legal r, definida mediante ese esquema de relacin R, el sistema de bases de datos debe asegurarse de que la actualizacin no viole ninguna dependencia funcional (el sistema debe retroceder la actualizacin si viola alguna dependencia funcional del conjunto F) Se puede reducir el esfuerzo empleado en la verificacin de las violaciones comprobando un conjunto simplificado de dependencias funcionales que tenga el mismo cierre que F
35 Dependencias Funcionales 36

Dependencias Funcionales

Atributos Raros
Un atributo, de una dependencia funcional, es raro si se puede eliminar sin modificar el cierre del conjunto de dependencias funcionales Considrese un conjunto F de dependencias funcionales y la dependencia funcional de F El atributo A es raro en si A y F implica lgicamente a (F - { }) U {(-A) } El atributo A es raro en si A y (F - { }) U { (-A)} implica lgicamente a F AB C AC

Ejemplo
B es raro en AB C porque F = {AB C, A C} implica lgicamente a (F - { }) U {(-B) }={A C} U {A C}

AB CD AC

C es raro en AB CD porque (F - { }) U { (-C)}={A C} U {AB D} implica lgicamente a F = {AB CD, A C}

Dependencias Funcionales

37

Dependencias Funcionales

38

Algoritmo Comp. Atrib. Atrib. Raro


Sea R el esquema de la relacin y F el conjunto de dependencias funcionales que se cumplen en R Considrese el atributo A de la dependencia F Si A ; sea = - {A}; hay que comprobar si se puede inferir a partir de F Se calcula + bajo F y si + incluye todos los atributos de , entonces A es raro en Si A ; sea F = (F { }) U { ( - A)}; hay que comprobar si se puede inferir A a partir de F Se calcula + bajo F y si + incluye a A, entonces A es raro en
Dependencias Funcionales 39

Recubrimiento Can Cannico


El recubrimiento cannico Fc de F es un conjunto de dependencias funcionales tales que: F implica lgicamente a todas las dependencias de Fc Fc implica lgicamente a todas las dependencias de F Adems, Fc debe tener las siguientes propiedades: Ninguna dependencia funcional de Fc contiene atributos raros El lado izquierdo de cada dependencia funcional de Fc es nico Fc tiene el mismo cierre que F
Dependencias Funcionales 40

Algoritmo de C Clculo del RC


Fc = F Repetir Utilizar la regla de la unin para reemplazar las dependencias funcionales de Fc de la forma 1 1 y 1 2 con 1 12 Encontrar una dependencia funcional de Fc con un atributo raro en o en Eliminar el atributo raro de Hasta que Fc no cambie Es posible que el recubrimiento cannico no sea nico
Dependencias Funcionales 41

Ejemplo
R = (A, B, C) F = {A BC, B C, A B, AB C} Fc = {A BC, B C, A B, AB C} A BC y A B entonces Fc = {A BC, B C, AB C} A es raro en AB C entonces Fc = {A BC, B C} C es raro en A BC entonces Fc = {A B, B C}

Dependencias Funcionales

42

Segunda Forma Normal

Segunda Forma Normal


Normalizaci Normalizacin de Bases de Datos Relacionales Bases de Datos Ingenier Ingeniera T Tcnica en Inform Informtica de Sistemas

Un esquema de relacin est en segunda forma normal (2FN) si, y slo si, est en primera forma normal (1FN) y, adems cada atributo del esquema de relacin que no est en la clave primaria depende funcionalmente de la clave primaria completa y no slo de una parte de esta
Universo de Relaciones 1FN 2FN 3FN FNBC 4FN 5FN

Segunda Forma Normal

44

Definici Definicin Formal 2FN


Un esquema de relacin R est en segunda forma normal (2FN) si cada atributo A de R cumple al menos una de las siguientes condiciones: A aparece en una clave candidata A no es parcialmente dependiente de una clave candidata

Clave Primaria Simple


La segunda forma normal (2FN) slo se aplica a los esquemas de relacin que tienen claves primarias compuestas por dos o ms atributos Si un esquema de relacin est en primera forma normal (1FN) y su clave primaria es simple (un solo atributo) entonces est en segunda forma normal (2FN)

Una dependencia funcional se denomina dependencia parcial si hay un subconjunto de tal que
Segunda Forma Normal 45 Segunda Forma Normal 46

Normalizaci Normalizacin 2FN


Cuando un esquema de relacin no est en segunda forma normal, se la puede normalizar repartindola entre varias relaciones en 2FN en las que los atributos que dependen de una parte de la clave formarn una nueva relacin que tendr esa parte de la clave como clave primaria Dado que se puede demostrar que cada dependencia parcial es una dependencia transitiva y la normalizacin 3FN elimina las dependencias transitivas, la normalizacin 2FN est en desuso
Segunda Forma Normal 47

Ejemplo Pedidos
Esquema_ordenes = (id_orden, fecha, id_cliente, nombre_cliente, provincia) Esquema_pedidos = (id_orden, numero_item, descripcion_item, cantidad, precio) 2FN Esquema_ordenes = (id_orden, fecha, id_cliente, nombre_cliente, provincia) Esquema_pedidos = (id_orden, numero_item, cantidad) Esquema_articulos = (numero_item, descripcion_item, precio)
Segunda Forma Normal 48

Tercera Forma Normal

Tercera Forma Normal


Normalizaci Normalizacin de Bases de Datos Relacionales Bases de Datos Ingenier Ingeniera T Tcnica en Inform Informtica de Sistemas

Un esquema de relacin est en tercera forma normal (3FN) si, y slo si, est en segunda forma normal (2FN) y, adems cada atributo del esquema de relacin que no est en la clave primaria slo depende funcionalmente de la clave primaria, y no de ningn otro atributo
Universo de Relaciones 1FN 2FN 3FN FNBC 4FN 5FN

Tercera Forma Normal

50

Definici Definicin Formal 3FN


Un esquema de relacin R est en tercera forma normal (3FN) respecto a un conjunto de dependencias funcionales F si para todas las dependencias funcionales de F+ de la forma , donde R y R, se cumple al menos una de las siguientes condiciones: es una dependencia funcional trivial ( ) es una superclave de R Cada atributo de - est contenido en alguna clave candidata de R

Ejemplo Pedidos
Esquema_ordenes = (id_orden, fecha, id_cliente, nombre_cliente, provincia) Esquema_pedidos = (id_orden, numero_item, cantidad) Esquema_articulos = (numero_item, descripcion_item, precio) 3FN Esquema_ordenes = (id_orden, fecha, id_cliente) Esquema_clientes = (id_cliente, nombre_cliente, provincia) Esquema_pedidos = (id_orden, numero_item, cantidad) Esquema_articulos = (numero_item, descripcion_item, precio)
51 Tercera Forma Normal 52

Tercera Forma Normal

Forma Normal de BoyceBoyce-Codd

Forma Normal de Boyce-Codd


Normalizaci Normalizacin de Bases de Datos Relacionales Bases de Datos Ingenier Ingeniera T Tcnica en Inform Informtica de Sistemas

Un esquema de relacin est en forma normal de Boyce-Codd (FNBC) si, y slo si, est en tercera forma normal (3FN) y, adems cada atributo del esquema de relacin que determine otros atributos est en una superclave
Universo de Relaciones 1FN 2FN 3FN FNBC 4FN 5FN

Forma Normal de BoyceBoyce-Codd

54

Definici Definicin Formal FNBC


Un esquema de relacin R est en forma normal de Boyce-Codd (FNBC) respecto a un conjunto de dependencias funcionales F si para todas las dependencias funcionales de F+ de la forma , donde R y R, se cumple al menos una de las siguientes condiciones: es una dependencia funcional trivial ( ) es una superclave de R

Referencia
La forma normal de Boyce-Codd, versin algo ms restrictiva de la tercera forma normal, es una de las formas normales ms deseables para un buen diseo de bases de datos

No siempre se puede conseguir

Forma Normal de BoyceBoyce-Codd

55

Forma Normal de BoyceBoyce-Codd

56

Comprobaci Comprobacin FNBC


Comprobacin de FNBC en una relacin: Para comprobar si la dependencia no trivial provoca una violacin de FNBC hay que calcular + (el cierre de los atributos de ) y comprobar si incluye a todos los atributos de R; es decir, si es una superclave de R

Ejemplo
Esquema_cliente = (nombre_cliente, calle_cliente, ciudad_cliente) nombre_cliente calle_cliente ciudad_cliente Esquema_sucursal = (nombre_sucursal, ciudad_sucursal, activo) nombre_sucursal ciudad_sucursal activo Esquema_info_prestamo = (nombre_sucursal, nombre_cliente, numero_prestamo, importe) numero_prestamo nombre_sucursal importe No es una superclave

SI

Para comprobar si un esquema de relacin R est en FNBC basta con comprobar nicamente las dependencias del conjunto de dependencias funcionales F (no es necesario verificar F+)
Forma Normal de BoyceBoyce-Codd 57

Forma Normal de BoyceBoyce-Codd

58

Descomponer Esquemas

Descomponer Relaciones
Normalizaci Normalizacin de Bases de Datos Relacionales Bases de Datos Ingenier Ingeniera T Tcnica en Inform Informtica de Sistemas

Cuando un esquema de relacin no cumple una determinada forma normal se debe descomponer en varios esquemas de relacin que s cumplan la forma normal Una descomposicin poco cuidadosa puede llevar a un mal diseo Propiedades deseables de la descomposicin: Reunin sin prdidas Conservacin de las dependencias
Descomponer Relaciones 60

Descomposici Descomposicin
Un conjunto de esquemas de relacin {R1, R2, , Rn} es una descomposicin de un esquema de relacin R si R = R1 U R2 U U Rn

Reuni Reunin de la Descomposici Descomposicin


Sea r una relacin del esquema R y sea ri = R (r) para i = 1, 2, , n
i

{r1, r2, , rn} es la base de datos que resulta de descomponer R en {R1, R2, , Rn} {R1, R2, , Rn} es una descomposicin de R si para i = 1, 2, , n; cada Ri es un subconjunto de R cada atributo de R aparece en al menos un Ri Se cumple que: r r1 r2 rn

Descomponer Relaciones

61

Descomponer Relaciones

62

Ejemplo
Esquema_prestamo= (nombre_sucursal, ciudad_sucursal, activo, nombre_cliente, numero_prestamo, importe)

Descomposici Descomposicin sin P Prdidas


Sea C un conjunto de restricciones (las dependencias funcionales F son una parte) de la base de datos y R un esquema de relacin Una descomposicin {R1, R2, , Rn} de R es una descomposicin de reunin sin prdida si, para todas las relaciones r del esquema R que son legales bajo C r = r1 r2 rn ri = R (r) para i = 1, 2, , n
i

Esquema_sucursal_cliente= (nombre_sucursal, ciudad_sucursal, activo, nombre_cliente) Esquema_cliente_prestamo= (nombre_cliente, numero_prestamo, importe)

Esquema_sucursal= (nombre_sucursal, ciudad_sucursal, activo) Esquema_info_prestamo= (nombre_sucursal, nombre_cliente, numero_prestamo, importe) Descomponer Relaciones 63

Descomponer Relaciones

64

Ejemplo
Esquema_prestamo= (nombre_sucursal, ciudad_sucursal, activo, nombre_cliente, numero_prestamo, importe)

Criterio Des. Reu. Reu. Sin Per.


Sea R un esquema de relacin, sea F un conjunto de dependencias funcionales de R y sea {R1, R2} una descomposicin de R La descomposicin {R1, R2} es una descomposicin de reunin sin prdidas de R si al menos una de las siguientes dependencias funcionales est en F+: U U R1 R2 R1 R1 R2 R2

Esquema_sucursal_cliente= (nombre_sucursal, ciudad_sucursal, activo, nombre_cliente) Esquema_cliente_prestamo= (nombre_cliente, numero_prestamo, importe)

Esquema_sucursal= Sin (nombre_sucursal, ciudad_sucursal, activo) Esquema_info_prestamo=, (nombre_sucursal, nombre_cliente, numero_prestamo, importe) Descomponer Relaciones 65

Con Prdidas

Los atributos de la interseccin de la descomposicin forman una superclave de alguna de las relaciones resultantes de la descomposicin
Descomponer Relaciones 66

Conservaci Conservacin de Dependencias


Cuando se lleva a cabo una actualizacin en la base de datos el sistema debe poder comprobar que la actualizacin no crea ninguna relacin ilegal

Restricci Restriccin
Sea F un conjunto de dependencias funcionales del esquema R y sea {R1, R2, , Rn} una descomposicin de R

Para comprobar de manera eficiente las actualizaciones, se deben disear esquemas de bases de datos relacionales que permitan la validacin de las actualizaciones sin que haga falta calcular las reuniones

La restriccin de F a Ri es el conjunto Fi de las dependencias funcionales de F+ que slo incluyen atributos de Ri

El conjunto de restricciones F1, F2, , Fn es el conjunto de dependencias que pueden calcularse de forme eficiente (sin calcular reuniones)
67 Descomponer Relaciones 68

Descomponer Relaciones

Desc. Conserva Dependencias


Sea F = F1 U F2 U U Fn (F es un conjunto de dependencias funcionales del esquema R pero, en general, F F)

Ejemplo DSP y CD
Esquema_prestamo= (nombre_sucursal, ciudad_sucursal, activo, nombre_cliente, numero_prestamo, importe) nombre_sucursal ciudad_sucursal activo numero_prestamo nombre_sucursal importe Esquema_sucursal= (nombre_sucursal, ciudad_sucursal, activo) Esquema_info_prestamo= (numero_prestamo, nombre_sucursal, nombre_cliente, importe) Esquema_prestamo=, (numero_prestamo, nombre_sucursal, importe) Esquema_prestatario= (nombre_cliente, numero_prestamo) 69 Descomponer Relaciones 70

Se llaman descomposiciones que conservan las dependencias a aquellas descomposiciones en las cuales F+ = F+

Cada dependencia de F est lgicamente implicada por F


Descomponer Relaciones

Descomposici Descomposicin FNBC


Aunque para comprobar si un esquema de relacin est en FNBC es suficiente analizar el conjunto de dependencias funcionales F, cuando se analiza una descomposicin este procedimiento no funciona se necesita analizar alguna dependencia que est en F+

Algoritmo Descomp. Descomp. FNBC


res = {R} Calcular F+ Mientras (NOT hecho) Hacer Si hay un Esquema Ri en res que no est en FNBC Entonces Sea una dependencia funcional no trivial que se cumple en Ri tal que R no est en F+ y = res = (res Ri) U (Ri-) U (,) Si no hecho = cierto
71 Descomponer Relaciones 72

hecho = falso

Para comprobar si una relacin Ri de una descomposicin de R est en FNBC hay que comprobar que +, en cada subconjunto de atributos de Ri, no incluye ningn atributo de Ri- o incluye a todos los atributos de Ri
Descomponer Relaciones

Ejemplo FNBC
Esquema_prestamo= (nombre_sucursal, ciudad_sucursal, activo, nombre_cliente, numero_prestamo, importe) nombre_sucursal ciudad_sucursal activo numero_prestamo nombre_sucursal importe Clave candidata: (numero_prestamo, nombre_cliente) Esquema_sucursal= (nombre_sucursal, ciudad_sucursal, activo) Esquema_info_prestamo= (numero_prestamo, nombre_sucursal, nombre_cliente, importe) Esquema_prestamo=, (numero_prestamo, nombre_sucursal, importe) Esquema_prestatario= (nombre_cliente, numero_prestamo) Descomponer Relaciones 73

Caract. Caract. Algoritmo FNBC


El algoritmo utiliza dependencias testigo que demuestran la violacin de FNBC La descomposicin que genera este algoritmo es una descomposicin de reunin sin prdidas No todas las descomposiciones FNBC conservan las dependencias

FNBC

Descomponer Relaciones

74

Objetivos de Dise Diseo


Los tres objetivos de diseo habituales son: Reunin sin Prdidas FNBC
Esencial para evitar prdidas de informacin

Algoritmo Descomp. Descomp. 3FN


Sea Fc un recubrimiento cannico de F i=0 Para cada dependencia funcional de Fc Hacer Si ninguno de los esquemas Rj (j=1,2,,i) contiene Entonces i=i+1 Ri= Si ninguno de los esquemas Rj (j=1,2,,i) contiene una clave candidata de R Entonces i=i+1
75

Conservacin de las Dependencias

La Tercera Forma Normal, relajacin leve de la FNBC, garantiza que siempre existe una descomposicin que conserva las dependencias
Descomponer Relaciones

Ri=cualquier clave candidata de R


76

Descomponer Relaciones

Ejemplo 3FN
Esquema_info_asesor= (nombre_sucursal, nombre_cliente, nombre_asesor, numero_sucursal) nombre_asesor nombre_sucursal numero_sucursal nombre_cliente nombre_sucursal nombre_asesor

Caract. Caract. Algoritmo 3FN


Es un algoritmo de sntesis ya que va aadiendo esquemas, en lugar de realizar una verdadera descomposicin El resultado no es nico puesto que el recubrimiento cannico no es nico y adems depende del orden en el que se considere las dependencias

3FN
Esquema_asesor_sucursal= (nombre_asesor, nombre_sucursal, numero_sucursal) Esquema_asesor= (nombre_cliente, nombre_sucursal, nombre_asesor)

Descomponer Relaciones

77

Descomponer Relaciones

78

FNBC vs. 3FN


Siempre resulta posible obtener un diseo en 3FN sin sacrificar la reunin sin prdidas o la conservacin de dependencias Dado que 3FN no elimina todas las dependencias transitivas pueden aparecer problemas de necesidad de datos nulos y/o repeticin de informacin

Otras Formas Normales


Normalizaci Normalizacin de Bases de Datos Relacionales Bases de Datos Ingenier Ingeniera T Tcnica en Inform Informtica de Sistemas 79

Descomponer Relaciones

Cuarta Forma Normal


Esquema_prestamo= (numero_prestamo, nombre_cliente, calle_cliente ,ciudad_cliente) nombre_cliente calle_cliente ciudad_cliente y nombre_cliente no es una superclave

Dependencias Multivaloradas
Sea R un esquema de relacin y sean R y R; La dependencia multivalorada se cumple en R si, en toda relacin legal r(R), para todo par de tuplas t1 y t2 de r tales que t1[]=t2[], existen unas tuplas t3 y t4 de r tales que t1[]=t2[]=t3[]=t4[] t3[]=t1[] t4[]=t2[] t3[R-]=t2[R-] t4[R-]=t1[R-]

No FNBC

clientes ricos buenos clientes! tienen varios domicilios nombre_cliente calle_cliente ciudad_cliente
Esquema_prestamo= (numero_prestamo, nombre_cliente, calle_cliente ,ciudad_cliente)

Si FNBC
pero aparece el problema de la repeticin de informacin

Otras Formas Normales

81

Otras Formas Normales

82

Funcionales vs. Multivaloradas


Las dependencias funcionales se suelen denominar dependencias de generacin de igualdad y las dependencias multivaloradas se suelen denominar dependencias de generacin de tuplas tuplas A A B B A A
Otras Formas Normales

Definici Definicin Formal 4FN


Un esquema de relacin R est en cuarta forma normal (4FN) respecto a un conjunto F de dependencias funcionales y multivaloradas si para todas las dependencias multivaloradas de F+ de la forma , donde R y R, se cumple al menos una de las siguientes condiciones: X Z Z X
83 Otras Formas Normales

tuplas

A A

B C B C

es una dependencia multivalorada trivial ( U = R) es una superclave de R

Si , entonces
84

Otras Formas Normales


Hay otro tipo de restricciones denominadas dependencias de reunin que generalizan las dependencias multivaloradas y llevan a la forma normal de reunin por proyeccin (FNRP) Hay otro tipo de restricciones ms generales que llevan a la forma normal de dominios y claves (FNDC)

Diseo de Bases de Datos Relacionales


Normalizaci Normalizacin de Bases de Datos Relacionales Bases de Datos Ingenier Ingeniera T Tcnica en Inform Informtica de Sistemas 85

Otras Formas Normales

Normalizaci Normalizacin y Dise Diseo BDR


Modos de obtener un esquema R: R puede haber sido generado al convertir un diagrama E-R en un conjunto de tablas R puede haber sido una sola relacin que contuviera todos los atributos que resulten de inters R puede haber sido el resultado de algn diseo ad hoc de relaciones

Nor. vs. EE-R


Cuando se define con cuidado un diagrama E-R, identificando correctamente todas las entidades, las tablas generadas a partir del diagrama E-R no necesitan ms normalizacin

La mayor parte de las dependencias que violan formas normales surgen de un mal diseo del diagrama E-R las dependencias funcionales pueden ayudar a detectar un mal diseo E-R si las relaciones generadas no se hallan en la forma normal deseada, el problema se puede solucionar en el diagrama E-R
87 Dise Diseo de Bases de Datos Relaciones 88

Dise Diseo de Bases de Datos Relaciones

Nor. vs. Relaci Relacin Universal


La nica manera de escribir una relacin universal para algunos casos es incluir valores nulos en la relacin universal implica varias dificultades Los nombres de los atributos deben ser nicos en la relacin universal

Desnormalizaci Desnormalizacin
A veces, los diseadores de bases de datos escogen un esquema que tiene informacin redundante; es decir, que no est normalizada Se utiliza la redundancia para mejorar el rendimiento de aplicaciones concretas (especialmente crticas en tiempo); la penalizacin es el trabajo extra dedicado a mantener consistentes los datos redundantes

Vistas materializadas: vistas cuyo resultado se almacena en la base de datos que se actualiza cuando se actualizan las relaciones implicadas
Dise Diseo de Bases de Datos Relaciones 89 Dise Diseo de Bases de Datos Relaciones 90

Tablas Cruzadas
Esquema_beneficios= (id_empresa, ao, importe) id_empresa ao importe Esquema_beneficios_2004 = (id_empresa, Esquema_beneficios_2003 = (id_empresa, Esquema_beneficios_2002 = (id_empresa, Esquema_beneficios_2001 = (id_empresa, id_empresa importe importe) importe) importe) importe)

FNBC

Esquema_empresa_ao = (id_empresa, beneficios_2004, beneficios_2003, beneficios_2002, beneficios_2001) id_empresa beneficios_2004, beneficios_2003, beneficios_2002, beneficios_2001

Vicio derivado de las Hojas de Clculo


Dise Diseo de Bases de Datos Relaciones 91

Potrebbero piacerti anche