Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Ligaduras de Integridad

Descargar como ppt, pdf o txt
Descargar como ppt, pdf o txt
Está en la página 1de 22

Diseo de bases relacionales

Bases de datos

Primera forma normal


Los dominios deben de ser atmicos Ejemplos de dominios no atmicos conjunto de nombres, atributos compuestos Nmero de identificacin como CS101 que pueden dividirse en partes un esquema de relacin R esta en primera forma normal si los dominios de todos los atributos son atmicos Los valores no-atmicos complican el almacenamiento y producen almacenamiento redundante (repetido) de los datos Ejemplo:. conjunto de cuentas guardado con cada cliente, y conjunto de propietarios guardado con cada cuenta Suponemos todas las relaciones estn en primera forma normal

Primera forma normal (cont.)


La atomicidad es realmente una propiedad de como los elementos de un dominio son usados. Ejemplo: Las cadenas se consideran normalmente indivisibles Suponga que a los estudiantes se les da un nmero el cual es una cadena de la forma CS0012 o EE1127 Si los dos primeros caracteres son extrados para encontrar el departamento, el dominio de los nmeros no es atmico. Hacer esto es una mala idea: lleva a codificar informacin en el programa de aplicacin en lugar de en la base de datos.

Objetivo - inventar una teora para lo siguiente


Decida si una relacin particular R esta en "buena" forma. En el caso de que una relacin R no este en "buena" forma, descomponerla en un conjunto de relaciones {R1, R2, ..., Rn} tales que: cada relacin este en "buena" forma la descomposicin sea sin reunin con prdida Nuestra teora esta basada en: dependencias funcionales dependencias multivaluadas

Ligaduras de los dominios


La ligadura de dominio permite la verificacin de valores al momento de agregar datos a la base de datos. Solo aquellos que cumplan con la ligadura sern aceptados como datos vlidos, los dems sern rechazados.

En SQL se utiliza la sentencia check para establecer la ligadura de dominios, ejemplos: create domain sueldo-por-hora numeric(7,1) constraint comprobacion-valor-sueldo check (value >= 800) create domain numero-cuenta char(10) constraint comprobacion-numero-cuenta-nulo check (value not null)

Integridad referencial
Sean r1(R1) y r2(R2) dos relaciones con claves primarias K1 y K2. Se dice que un subconjunto de R es una clave externa que hace referencia a K1 de la relacin r1 si se exige que para cada t2 de r2 haya una tupla t1 en r1 tal que t1[K1] = t2[]

Las exigencias de este tipo se denominan ligaduras de integridad referencial o dependencias de subconjunto.

La ltima denominacin proviene de que lo anterior puede expresarse como: (r2) K1 (r2)

Modificacin de la base de datos


insertar. Si se inserta una tupla t2 en r2, el sistema debe asegurar que hay una tupla t1 en r1 tal que t1[K] = t2[], es decir t2[] K1 (r2) borrar. Si se borra una tupla t1 en r1, el sistema debe calcular el conjunto de tuplas de r2 que hacen referencia a r1: = t1[K] (r2) Actualizar: Hay que considerara dos casos: las actualizaciones de la relacin que realiza la referencia (r2) y las actualizaciones de la relacin a la que se hace referencia (r1). - si se actualiza la tupla t2 de la relacin r2 y esta actualizacin modifica los valores de la clave externa , se realiza una comprobacin parecida al caso de la insercin. El sistema debe asegurar que t2[] K (r1) - si se actualiza la tupla t1 de la relacin r1 y esta actualizacin modifica los valores de la clave externa primaria (K), se realiza una comprobacin parecida al caso del borrado. El sistema debe asegurar que = t1[K] (r2)

Dependencias funcionales
Sea R un esquema de relacin. Sean R y R. La dependencia fucnional , se cumple en R si en cualquier relacin legal r(R), para todos las pares de tuplas t1 y t2 de r tales que t1[] = t2[] tambin ocurre t1[] = t2[].

Considere el esquema esquema-informacin-prstamo = (nombre-sucursal, nmero-prstamo, nombre-cliente, importe) Se esperan las siguientes dependencias funcionales nmero-prstamo importe nmero-prstamo nombre-sucursal pero no nmero-prstamo nombre-cliente

Utilizacin
1. para especificar las ligaduras del conjunto de relaciones legales. As solo habr que preocuparse por las relaciones que satisfagan un conjunto dado de dependencias funcionales. 2. Para examinar las relaciones y comprobar si son legales bajo un conjunto dado de dependencias funcionales.

A a1 a1 a2 a2 a3

B b1 b2 b2 b3 b3

C c1 c1 c2 c2 c3

D d1 d2 d2 d3 d4

Se satisface A C No se satisface C A Se satisface AB D

Ejemplo bancario
Esquema esquema-sucursal nombre-sucursal ciudad-sucursal nombre-sucursal activo Esquema esquema-cliente nombre-cliente ciudad-cliente nombre-cliente calle-cliente Esquema esquema-prestamo nmero-prstamo importe nmero-prstamo nombre-sucursal Esquema esquema-prestatario No hay Esquema esquema-cuenta nmero-prstamo nombre-sucursal nmero-prstamo saldo Esquema esquema-impositor No hay

Cierre de un conjunto de dependencias funcionales


Sea un esquema de relacin R = (A, B, C, G, H, I) y el conjunto de dependencias funcionales A B A C CG H CG I B H A H est implicada lgicamente. El cierre de un conjunto de dependencias funcionales F es el conjunto de todas las dependencias funcionales implicadas lgicamente por F. Se denota por F+.

Reglas de inferencia
Regla de reflexividad. Si es un conjunto de atributos y , entonces se cumple que . Regla de aumentatividad. Si se cumple que y es un conjunto de atributos, entonces se cumple que . Regla de transitividad. Si se cumple que y , entonces . Estas reglas se conocen como axiomas de Armstrong. Se agregan las siguientes reglas deducibles a partir de las anteriores. Regla de la unin. Si se cumple que y , entonces se cumple . Regla de la descomposicin. Si se cumple que , entonces se cumple que y que . Regla de la seudotransitividad. Si se cumple que y que , entonces se cumple .

Cierre de los conjuntos de atributos


Para comprobar si un conjunto es una superclave hay que preparar un algoritmo para calcular el conjunto de los atributos determinados funcionalmente por . Se denomina cierre de sobre F al conjunto de todos los atributos determinados funcionalmente por a bajo un conjunto de dependencias funcionales F; se denota por +. Algoritmo en pseudo Pascal resultado : = ; while (cambios en resultado) do for each dependencia funcional in F do begin if resultado then resultado := resultado ; end

Ejemplo
Para el esquema de relacin R = (A, B, C, G, H, I) y el conjunto de dependencias funcionales A B A C CG H CG I B H Aplicamos el algoritmo para calcular (AG)+: paso 1 2 3 4 dependencia A B A C CG H CG I resultado ABG ABCG ABCGH ABCGHI

Forma normal de Boyce-Codd


Un esquema de relacin R esta en BCNF con respecto a un conjunto de dependencias funcionales si todas las dependencias funcionales en F+ de la forma donde R y R, por lo menos una de las siguientes se cumple: es trivial (o sea ) es superllave de R Ejemplo de un esquema no en BCNF: prestatario_prestamo = (cliente_id, numero_prestamo, cantidad) debido a que numero_prestamo cantidad en prestatario_prestamo se cumple pero numero_prestamo no es superclave

Descomposicin de un esquema en BCNF


Suponga que tenemos un esquema R y una dependencia no trivial causa una violacin de BCNF Descomponenmos R en: ( ) (R-(-)) En nuestro ejemplo = numero_prestamo = cantidad y prestatario_prestamo se reemplaza por ( ) = (numero_prestamo,cantidad) (R-(-)) = (cliente_id, numero_prestamo)

BCNF y conservacin de las dependencias


Ligaduras, incluyendo las dependencias funcionales, son costosas para verificar en la prctica a que pertenezcan a una sola relacin Si es suficiente probar solo aquellas dependencias en cada relacin individual de la descomposicin de manera de asegurar que todas las dependencias funcionales se cumplan, entonces esa descomposicin conserva las dependencias. Debido a que no siempre es posible obtener ambas BCNF y conservacin de las dependencias, la consideramos una forma normal dbil, conocida como tercera forma normal.

Tercera forma normal


Un esquema de relacin R esta en tercera forma normal (3NF) si para todas: en F+ por lo menos una de las siguientes se cumple: es trivial (o sea ) es superllave para R Cada atributo A en - esta contenido en una llave candidata para R. (note: cada atributo puede ser en una llave candidata diferente) Se una relacin esta en BCNF esta en 3NF (ya que en BCNF una de las primeras dos condiciones de arriba se debe cumplir) La tercera condicin es una relajacin mnima de BCNF para asegurar la conservacin de dependencias.

Objetivos de Normalizacin
Sea R un esquema de relacin con un conjunto F de dependencias funcionales. Decida si un esquema de relacin R esta en "buena" forma. En el caso de que el esquema de relacin R no este en "buena" forma, descompngalo en un conjunto de esquemas de relacin {R1, R2, ...,Rn} tales que: cada esquema de relacin este en buena forma la descomposicin es una descomposicin sin prdida Preferiblemente, la descomposicin debe ser tal que conserve las dependencias.

Que tan buena es BCNF?


Hay esquemas de bases de datos en BCNF que no parecen suficientemente normalizados Considere la base de datos clases(curso, maetro, libro) tal que (c, m, b) elemento de clases significa que m es calificado para ensear c, y b es el libro de texto para c. La base de datos se supone que lista para cada curso un conjunto de maestros cualquiera de ellos puede ser el instructor, y un conjunto de libros, todos los cuales son requeridos para el curso (sin importar quien lo ensea)

Que tan buena es BCNF? (cont.)


curso base de datos base de datos base de datos base de datos base de datos base de datos Sistemas oper. Sistemas oper. Sistemas oper. Sistemas oper. maestro Avi Avi Hank Hank Sudarsha Sudarsha Avi Avi Pete Pete libro DB concepts Ullman DB concepts Ullman DB concepts Ullman OS concepts Stallings OS concepts Stallings

No hay dependencias funcionales no-triviales y por lo tanto la relacin est en BCNF Anomalias de insercin - o sea si Marilyn es una nueva maestra que puede ensear dases de datos, se deben insertar dos tuplas (bases de datos, Marilyn, DB concepts) (bases de datos, Marilyn, Ullman)

Que tan buena es BCNF? (cont.)


Por lo tanto es mejor descomponer clases en: curso maestro base de datos Avi base de datos Hank base de datos Sudarshan Sistemas oper. Avi Sistemas oper. Jim Maestros curso base de datos base de datos Sistemas oper. Sistemas oper. libro libro DB concepts Ullman OS concepts Shaw

También podría gustarte