dise o de bases relacionales n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Diseño de bases relacionales PowerPoint Presentation
Download Presentation
Diseño de bases relacionales

Loading in 2 Seconds...

play fullscreen
1 / 22

Diseño de bases relacionales - PowerPoint PPT Presentation


  • 81 Views
  • Uploaded on

Diseño de bases relacionales. Bases de datos. Primera forma normal. Los dominios deben de ser atómicos Ejemplos de dominios no atómicos conjunto de nombres, atributos compuestos Número de identificación como CS101 que pueden dividirse en partes

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Diseño de bases relacionales' - fleur


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
primera forma normal
Primera forma normal

Los dominios deben de ser atómicos

Ejemplos de dominios no atómicos

conjunto de nombres, atributos compuestos

Número de identificación como CS101 que

pueden dividirse en partes

un esquema de relación R esta en primera forma normal si los

dominios de todos los atributos son atómicos

Los valores no-atómicos 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 están en primera forma normal

primera forma normal cont
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 número el cual es

una cadena de la forma CS0012 o EE1127

Si los dos primeros caracteres son extraídos para encontrar

el departamento, el dominio de los números no es atómico.

Hacer esto es una mala idea: lleva a codificar información en

el programa de aplicación en lugar de en la base de datos.

objetivo inventar una teor a para lo siguiente
Objetivo - inventar una teoría para lo siguiente

Decida si una relación particular R esta en "buena" forma.

En el caso de que una relación R no este en "buena" forma, descomponerla en un conjunto de relaciones {R1, R2, ..., Rn} tales que:

cada relación este en "buena" forma

la descomposición sea sin reunión con pérdida

Nuestra teoría esta basada en:

dependencias funcionales

dependencias multivaluadas

ligaduras de los dominios
Ligaduras de los dominios

La ligadura de dominio permite la verificación de valores al momento de agregar datos a la base de datos. Solo aquellos que cumplan con la ligadura serán aceptados como datos válidos, los demás serán 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 (valuenot null)

integridad referencial
Integridad referencial

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

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

La última denominación proviene de que lo anterior puede expresarse como:

Pa (r2)  PK1 (r2)

modificaci n de la base de datos
Modificación 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[a], es decir

t2[a] PK1 (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:

sa = t1[K] (r2)

Actualizar: Hay que considerara dos casos: las actualizaciones de la relación que realiza la referencia (r2) y las actualizaciones de la relación a la que se hace referencia (r1).

- si se actualiza la tupla t2 de la relación r2 y esta actualización modifica los valores de la clave externa a, se realiza una comprobación parecida al caso de la inserción. El sistema debe asegurar que

t2’[a] PK (r1)

- si se actualiza la tupla t1 de la relación r1 y esta actualización modifica los valores de la clave externa primaria (K), se realiza una comprobación parecida al caso del borrado. El sistema debe asegurar que

sa = t1[K] (r2)

dependencias funcionales
Dependencias funcionales

Sea R un esquema de relación. Sean a R y b R. La dependencia fucnionala  b, se cumple en R si en cualquier relación legal r(R), para todos las pares de tuplas t1 y t2 de r tales que t1[a] = t2[a] también ocurre t1[b] = t2[b].

Considere el esquema

esquema-información-préstamo =

(nombre-sucursal, número-préstamo, nombre-cliente, importe)

Se esperan las siguientes dependencias funcionales

número-préstamo  importe

número-préstamo  nombre-sucursal

pero no

número-préstamo  nombre-cliente

utilizaci n
Utilización

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.

Se satisface A  C

No se satisface C  A

Se satisface AB  D

ejemplo bancario
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

número-préstamo  importe

número-préstamo  nombre-sucursal

Esquema esquema-prestatario No hay

Esquema esquema-cuenta

número-préstamo  nombre-sucursal

número-préstamo  saldo

Esquema esquema-impositor No hay

cierre de un conjunto de dependencias funcionales
Cierre de un conjunto de dependencias funcionales

Sea un esquema de relación 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 lógicamente.

El cierre de un conjunto de dependencias funcionales F es el conjunto de todas las dependencias funcionales implicadas lógicamente por F. Se denota por F+.

reglas de inferencia
Reglas de inferencia

Regla de reflexividad. Si a es un conjunto de atributos y ba, entonces se cumple que a b.

Regla de aumentatividad. Si se cumple que a b y g es un conjunto de atributos, entonces se cumple que ga gb.

Regla de transitividad. Si se cumple que a b y b g, entonces a g.

Estas reglas se conocen como axiomas de Armstrong. Se agregan las siguientes reglas deducibles a partir de las anteriores.

Regla de la unión. Si se cumple que a b y a g, entonces se cumple a bg.

Regla de la descomposición. Si se cumple que a bg, entonces se cumple que a b y que a g.

Regla de la seudotransitividad. Si se cumple que a b y que gb d, entonces se cumple ag d.

cierre de los conjuntos de atributos
Cierre de los conjuntos de atributos

Para comprobar si un conjunto a es una superclave hay que preparar un algoritmo para calcular el conjunto de los atributos determinados funcionalmente por a.

Se denomina cierre de a sobre F al conjunto de todos los atributos determinados funcionalmente por a bajo un conjunto de dependencias funcionales F; se denota por a+.

Algoritmo en pseudo Pascal

resultado : = a;while (cambios en resultado) dofor each dependencia funcional b gin F do beginifb resultado then resultado := resultado g;end

ejemplo
Ejemplo

Para el esquema de relación 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 dependencia resultado

1 A  B ABG2 A  C ABCG3 CG  H ABCGH4 CG  I ABCGHI

forma normal de boyce codd
Forma normal de Boyce-Codd

Un esquema de relación R esta en BCNF con respecto a un conjunto de

dependencias funcionales si todas las dependencias funcionales en F+

de la forma

ab

donde a R y b R, por lo menos una de las siguientes se cumple:

ab es trivial (o sea ba)

a 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

descomposici n de un esquema en bcnf
Descomposición de un esquema en BCNF

Suponga que tenemos un esquema R y una dependencia no trivial ab

causa una violación de BCNF

Descomponenmos R en:

(ab)

(R-(b-a))

En nuestro ejemplo

a = numero_prestamo

b = cantidad

y prestatario_prestamo se reemplaza por

(ab) = (numero_prestamo,cantidad)

(R-(b-a)) = (cliente_id, numero_prestamo)

bcnf y conservaci n de las dependencias
BCNF y conservación de las dependencias

Ligaduras, incluyendo las dependencias funcionales, son costosas para

verificar en la práctica a que pertenezcan a una sola relación

Si es suficiente probar solo aquellas dependencias en cada relación

individual de la descomposición de manera de asegurar que todas las

dependencias funcionales se cumplan, entonces esa descomposición

conserva las dependencias.

Debido a que no siempre es posible obtener ambas BCNF y conservación

de las dependencias, la consideramos una forma normal débil, conocida como tercera forma normal.

tercera forma normal
Tercera forma normal

Un esquema de relación R esta en tercera forma normal (3NF) si para

todas:

ab en F+

por lo menos una de las siguientes se cumple:

ab es trivial (o sea ba)

a es superllave para R

Cada atributo A en b - a esta contenido en una llave

candidata para R. (note: cada atributo puede ser en una llave candidata diferente)

Se una relación esta en BCNF esta en 3NF (ya que en BCNF una de las

primeras dos condiciones de arriba se debe cumplir)

La tercera condición es una relajación mínima de BCNF para asegurar

la conservación de dependencias.

objetivos de normalizaci n
Objetivos de Normalización

Sea R un esquema de relación con un conjunto F de dependencias

funcionales.

Decida si un esquema de relación R esta en "buena" forma.

En el caso de que el esquema de relación R no este en "buena" forma, descompóngalo en un conjunto de esquemas de relación {R1, R2, ...,Rn} tales que:

cada esquema de relación este en buena forma

la descomposición es una descomposición sin pérdida

Preferiblemente, la descomposición debe ser tal que conserve las dependencias.

que tan buena es bcnf
¿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 enseñar 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 enseña)

que tan buena es bcnf cont
¿Que tan buena es BCNF? (cont.)

curso maestro libro

base de datos Avi DB concepts

base de datos Avi Ullman

base de datos Hank DB concepts

base de datos Hank Ullman

base de datos Sudarsha DB concepts

base de datos Sudarsha Ullman

Sistemas oper. Avi OS concepts

Sistemas oper. Avi Stallings

Sistemas oper. Pete OS concepts

Sistemas oper. Pete Stallings

No hay dependencias funcionales no-triviales y por lo tanto la relación está en BCNF

Anomalias de inserción - o sea si Marilyn es una nueva maestra que

puede enseñar dases de datos, se deben insertar dos tuplas

(bases de datos, Marilyn, DB concepts)

(bases de datos, Marilyn, Ullman)

que tan buena es bcnf cont1
¿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 libro

base de datos DB concepts

base de datos Ullman

Sistemas oper. OS concepts

Sistemas oper. Shaw

libro