Diseño Lógico: NormalizaciónDBD-200… · Al diseñar una BD relacional, podemos obtener...

30
1 © José María Cavero 2010 DBDySI-1 Temario 2 o cuatrimestre Diseño Lógico Diseño Lógico Estándar Diseño Lógico Específico Normalización Seguridad en BD Diseño Físico y Administración de Bases de Datos Otras tecnologías de Bases de Datos Bases de Datos Distribuidas Almacenes de Datos Práctica Diseño de una BD usando una herramienta CASE Desarrollo de una aplicación con conexión a una BD © José María Cavero 2010 Diseño Lógico: Normalización Diseño de Bases de Datos y Seguridad de la Información www.kybele.es

Transcript of Diseño Lógico: NormalizaciónDBD-200… · Al diseñar una BD relacional, podemos obtener...

Page 1: Diseño Lógico: NormalizaciónDBD-200… · Al diseñar una BD relacional, podemos obtener diferentes esquemas La teoría de la normalización consigue una formalización en el diseño

1

© José María Cavero 2010DBDySI-1

Temario

2o cuatrimestre

Diseño Lógico

Diseño Lógico Estándar

Diseño Lógico Específico

Normalización

Seguridad en BD

Diseño Físico y Administración de Bases de Datos

Otras tecnologías de Bases de Datos

Bases de Datos Distribuidas

Almacenes de Datos

Práctica

Diseño de una BD usando una herramienta CASE

Desarrollo de una aplicación con conexión a una BD

© José María Cavero 2010

Diseño Lógico:

Normalización

Diseño de Bases de Datos y

Seguridad de la Información

www.kybele.es

Page 2: Diseño Lógico: NormalizaciónDBD-200… · Al diseñar una BD relacional, podemos obtener diferentes esquemas La teoría de la normalización consigue una formalización en el diseño

2

© José María Cavero 2010DBDySI-3

Tecnología y Diseño de Bases de Datos

M. Piattini, E. Marcos, C. Calero y B. Vela

Ed.: RA-MA, 2006 Octubre

Introducción a los Sistemas de Bases de Datos

C. J. Date

Ed.: Prentice Hall, Séptima Edición, 2001

Diseño de Bases de Datos. Problemas Resueltos.

A. de Miguel et al.

Ed.: RA-MA, 2001

Bibliografía

© José María Cavero 2010DBDySI-4

Índice

1. Introducción

2. Dependencias Funcionales

3. Teoría de la Normalización

4.1. Formas Normales

4.2. Descomposición y Síntesis

4. Ejercicios

Page 3: Diseño Lógico: NormalizaciónDBD-200… · Al diseñar una BD relacional, podemos obtener diferentes esquemas La teoría de la normalización consigue una formalización en el diseño

3

© José María Cavero 2010DBDySI-5

Índice

1. Introducción

2. Dependencias Funcionales

3. Teoría de la Normalización

4.1. Formas Normales

4.2. Descomposición y Síntesis

4. Ejercicios

© José María Cavero 2010DBDySI-6

Introducción: “Objetivos”

Código Nombre Ciudad Provincia

01 Juan Móstoles Madrid

02 María Móstoles Madrid

03 Pepe Navalcarnero Madrid

04 Antonio Valmojado Toledo

EMPLEADOS

Decidir si una R es “correcta”

Si no, descomponer en {R1, R2…Rn}, tal que:

Las relaciones sean “correctas”

Descomposición “sin pérdidas”

Código Nombre Provincia

01 Juan Madrid

02 María Madrid

03 Pepe Madrid

04 Antonio Toledo

Ciudad Provincia

Móstoles Madrid

Navalcarnero Madrid

Valmojado Toledo

EMPLEADOS_1

CIUDADES

Page 4: Diseño Lógico: NormalizaciónDBD-200… · Al diseñar una BD relacional, podemos obtener diferentes esquemas La teoría de la normalización consigue una formalización en el diseño

4

© José María Cavero 2010DBDySI-7

Introducción: un ejemplo

ESTUDIANTE (Cód_E, Nombre_E, Ciudad)

SOLICITA (Cód_B, Cód_E, Fecha)

BECA (Cód_B, Nombre_B, Requisito)

ESTUDIANTE

BECA

Solicita

Cód_EstudianteNombreCiudad

Fecha

Cód_BecaNombreRequisito

© José María Cavero 2010DBDySI-8

Introducción: un ejemplo

Cód_E Cód_B Fecha

E2 B2 12/11/08

E2 B1 14/10/08

E2 B3 15/09/08

E3 B3 21/09/08

E1 B2 11/11/08

E3 B2 10/10/08

E1 B1 12/11/08

Cód_E Nombre_E Ciudad

E1 Juan Madrid

E2 María Madrid

E3 Pepe Soria

Cód_B Nombre_B Requisito

B1 Beca1 IT

B2 Beca2 IT

B3 Beca3 II

Estudiante Solicita Beca

Cód_E Nombre_E Ciudad Cód_B Nombre_B Requisito Fecha

E2 María Madrid B2 Beca2 IT 12/11/08

E2 María Madrid B1 Beca1 IT 14/10/08

E2 María Madrid B3 Beca3 II 15/09/08

E3 Pepe Soria B3 Beca3 II 21/09/08

E1 Juan Madrid B2 Beca2 IT 11/11/08

E3 Pepe Soria B2 Beca2 IT 10/10/08

E1 Juan Madrid B1 Beca1 IT 12/11/08

Estudiante_Solicita_Beca

Page 5: Diseño Lógico: NormalizaciónDBD-200… · Al diseñar una BD relacional, podemos obtener diferentes esquemas La teoría de la normalización consigue una formalización en el diseño

5

© José María Cavero 2010DBDySI-9

Al diseñar una BD relacional, podemos obtener

diferentes esquemas

La teoría de la normalización consigue una

formalización en el diseño lógico

Representación adecuada de la realidad y

problemas de diseños inadecuados

La teoría de la normalización permite afrontar el

problema de diseño de bases de datos

relacionales de una manera rigurosa y objetiva

Introducción: diseño

© José María Cavero 2010DBDySI-10

Formas de abordar el proceso de modelado:

A) Obteniendo el esquema relacional directamente

B) Realizando el proceso de diseño en dos fases

Posibles problemas: Incapacidad para almacenar ciertos hechos.

Redundancias y, por tanto, posibilidad de inconsistencias

Ambigüedades

Pérdida de información (aparición de tuplas espurias)

Pérdida de dependencias funcionales

Existencia de valores nulos (inaplicables)

Aparición de estados que no son válidos en el mundo real

Introducción: diseño

Page 6: Diseño Lógico: NormalizaciónDBD-200… · Al diseñar una BD relacional, podemos obtener diferentes esquemas La teoría de la normalización consigue una formalización en el diseño

6

© José María Cavero 2010DBDySI-11

Anomalías:

Inserción

Borrado

Modificación

Introducción: diseño “correcto”

Cód_E Nombre_E Ciudad Cód_B Nombre_B Requisito Fecha

E2 María Madrid B2 Beca2 IT 12/11/08

E2 María Madrid B1 Beca1 IT 14/10/08

E2 María Madrid B3 Beca3 II 15/09/08

E3 Pepe Soria B3 Beca3 II 21/09/08

E1 Juan Madrid B2 Beca2 IT 11/11/08

E3 Pepe Soria B2 Beca2 IT 10/10/08

E1 Juan Madrid B1 Beca1 IT 12/11/08

Estudiante_Solicita_Beca

© José María Cavero 2010DBDySI-12

Índice

1. Introducción

2. Dependencias Funcionales

3. Teoría de la Normalización

4.1. Formas Normales

4.2. Descomposición y Síntesis

4. Ejercicios

Page 7: Diseño Lógico: NormalizaciónDBD-200… · Al diseñar una BD relacional, podemos obtener diferentes esquemas La teoría de la normalización consigue una formalización en el diseño

7

© José María Cavero 2010DBDySI-13

Dependencias entre los datos

MAT Nombre Apellido Población Provincia Asignatura Conv Nota

001 Juan Pérez Móstoles Madrid DBD Sep/09 NP

001 Juan Pérez Móstoles Madrid DBD Jun/10 SB

002 María García Alcorcón Madrid Redes Jun/10 AP

003 Eva Gómez Madrid Madrid DBD Sep/09 NOT

003 Eva Gómez Madrid Madrid Redes Jun/10 NOT

003 Eva Gómez Madrid Madrid SSOO Jun/10 NOT

004 Luis Martín Valmojado Toledo DBD Sep/09 SUSP

NOTAS

© José María Cavero 2010DBDySI-14

Son semántica

Dependencias entre los datos

MAT Nombre Apellido Población Provincia

001 Juan Pérez Móstoles Madrid

002 María García Alcorcón Madrid

003 Eva Gómez Madrid Madrid

004 Luis Martín Valmojado Toledo

ESTUDIANTE

Page 8: Diseño Lógico: NormalizaciónDBD-200… · Al diseñar una BD relacional, podemos obtener diferentes esquemas La teoría de la normalización consigue una formalización en el diseño

8

© José María Cavero 2010DBDySI-15

¿A -> B?, ¿B -> C?, ¿C -> B?

Dependencias entre los datos

A B C D E

001 B1 1 1254 X

002 B2 7 5478 Y

003 B3 54 2568 Z

004 B4 0 3698 F

005 B3 54 4758 X

006 B6 21 2678 S

007 B3 54 2147 S

008 B2 7 2147 T

T1

© José María Cavero 2010DBDySI-16

¿A -> B?, ¿B -> C?, ¡C-/>B!

Dependencias entre los datos

A B C D E

001 B1 1 1254 X

002 B2 7 5478 Y

003 B3 54 2568 Z

004 B4 0 3698 F

005 B3 54 4758 X

006 B6 21 2678 S

007 B3 54 2147 S

008 B2 7 2147 T

009 B8 7 4789 Q

T1

Page 9: Diseño Lógico: NormalizaciónDBD-200… · Al diseñar una BD relacional, podemos obtener diferentes esquemas La teoría de la normalización consigue una formalización en el diseño

9

© José María Cavero 2010DBDySI-17

Las dependencias son propiedades inherentes al

contenido semántico de los datos; forman parte de las

restricciones de usuario del modelo relacional y se han

de cumplir para cualquier extensión de un esquema de

relación

Sin pérdida de generalidad vamos a considerar que el

esquema relacional está compuesto por un único

esquema de relación: R (A,DEP), donde:

A: conjunto de atributos de la relación

DEP: cjto. de dependencias existentes entre los atributos

Existen distintos tipos: funcionales, multivaluadas,

jerárquicas y de combinación

Dependencias entre los datos

© José María Cavero 2010DBDySI-18

Sea el esquema de relación R(A,DF), y sean X, Y dos

subconjuntos de A, a los que llamamos descriptores.

Se dice que Y depende funcionalmente de X o que X implica

o determina a Y, y se denota como X Y si, y sólo si, a cada

valor x del atributo X, le corresponde un único valor y del

atributo Y.

Un determinante o implicante es un conjunto de

atributos del que depende funcionalmente otro conjunto

de atributos al que llamamos implicado.

Por ejemplo: Cód_Estudiante Nombre

Dos descriptores X e Y son equivalentes si:

X Y Y X, o bien, X Y (Cód_Estudiante DNI)

Dependencias funcionales

Page 10: Diseño Lógico: NormalizaciónDBD-200… · Al diseñar una BD relacional, podemos obtener diferentes esquemas La teoría de la normalización consigue una formalización en el diseño

10

© José María Cavero 2010DBDySI-19

DF: ejemplo

Cód_E Nombre_E Ciudad Cód_B Nombre_B Requisito Fecha

E2 María Madrid B2 Beca2 IT 12/11/08

E2 María Madrid B1 Beca1 IT 14/10/08

E2 María Madrid B3 Beca3 II 15/09/08

E3 Pepe Soria B3 Beca3 II 21/09/08

E1 Juan Madrid B2 Beca2 IT 11/11/08

E3 Pepe Soria B2 Beca2 IT 10/10/08

E1 Juan Madrid B1 Beca1 IT 12/11/08

Estudiante_Solicita_Beca

En esta extensión,

Cód_E Nombre_E

Cód_E, Cód_B Fecha

Fecha Ciudad

Y, ¿para toda extensión válida?

© José María Cavero 2010DBDySI-20

DF: ejemplo

Cód_E Nombre_E Ciudad País

E1 Juan Madrid España

E2 María Madrid España

E3 Pepe Soria España

Estudiante

Si Cód_E es clave, se satisface:

Cód_E {Cód_E, Nombre_E, Ciudad, País}

Si A B y A no es una clave candidata,

involucrará cierta redundancia

¿Interesa reducir el número de dependencias?

Page 11: Diseño Lógico: NormalizaciónDBD-200… · Al diseñar una BD relacional, podemos obtener diferentes esquemas La teoría de la normalización consigue una formalización en el diseño

11

© José María Cavero 2010DBDySI-21

Dependencia funcional X Y es trivial si Y X

Ej: Cód_Curso, Cód_Edición Cód_Curso

Cierre de un conjunto de dependencias:

DF+: conjunto de todas las dependencias funcionales

implicadas por DF.

Primera aproximación: axiomas de Armstrong:

Reflexividad: si Y X, entonces X Y

Aumento: si X Y, entonces XZ YZ

Transitividad: si X Y y Y Z, entonces X Z

Dependencias funcionales

© José María Cavero 2010DBDySI-22

Podemos calcular DF+ aplicando los axiomas

Calcular el cierre de un subconjunto tal que X sea

implicante: cierre transitivo de un descriptor X de R

respecto al conjunto de dependencias DF, (X+DF)

Dado R(A, DF), se define X+DF como un subconjunto de

los atributos de A tales que X X+DF DF+, siendo X+

DF máximo en el sentido de que la adición de cualquier

atributo vulneraría la condición anterior

Consecuencias: cálculo de SK y K

Algoritmo de Ullman

Cierre de un descriptor

Page 12: Diseño Lógico: NormalizaciónDBD-200… · Al diseñar una BD relacional, podemos obtener diferentes esquemas La teoría de la normalización consigue una formalización en el diseño

12

© José María Cavero 2010DBDySI-23

R (A, B, C, D, E, F, DF), donde DF=A B, B A,

C A, D C, (E, C) D, A F, C F, hallar el

cierre del descriptor (E, C)

E, C E, C

E, C E, C, D

E, C E, C, D, A

E, C E, C, D, A, B

E, C E, C, D, A, B, F

Por tanto,

(E, C)+ = E, C, D, A, B, F

Cierre transitivo de un descriptor: ejemplo

© José María Cavero 2010DBDySI-24

Dado DF, X Y DF+ sii Y X+DF

DF1 y DF2 son equivalentes si DF+1 = DF+

2.

Si para toda dependencia X YDF2 se cumple que Y

X+DF1, entonces toda dependencia de DF2 está en

DF1 y por tanto DF1 es un recubrimiento de DF2

Si para toda dependencia Z WDF1 se cumple que

W Z+DF2, entonces toda dependencia de DF1 está en

DF2 y por tanto DF2 es un recubrimiento de DF1 está

Si se cumplen ambas condiciones, DF1 y DF2

son mutuamente recubrimientos, luego son

equivalentes

Equivalencia de conjuntos de DF

Page 13: Diseño Lógico: NormalizaciónDBD-200… · Al diseñar una BD relacional, podemos obtener diferentes esquemas La teoría de la normalización consigue una formalización en el diseño

13

© José María Cavero 2010DBDySI-25

Sea R (X, Y, Z), con X Y, Y Z, Y X

Z tiene una dependencia transitiva respecto a X a través

de Y (X Z)

Si Z Y, la dependencia transitiva es estricta.

Ej: DIRECCIÓN (CP, Localidad, Provincia)

con CP Localidad, Localidad Provincia

Además, Localidad CP

Entonces, CP Provincia

Por tanto, CP Provincia

Además, como Provincia Localidad, se da una

dependencia transitiva estricta.

Dependencia funcional transitiva

© José María Cavero 2010DBDySI-26

De todos los posibles conjuntos equivalentes a

un conjunto dado de dependencias, hay algunos

de ellos que son mínimos, por lo que se dice

que son recubrimientos irredundantes (también

llamados minimales) del conjunto dado de

dependencias:

Un único atributo en el implicado

Irreducible por la izquierda (no atributos extraños)

Sin DF redundantes

Cálculo del recubrimiento irredundante

Page 14: Diseño Lógico: NormalizaciónDBD-200… · Al diseñar una BD relacional, podemos obtener diferentes esquemas La teoría de la normalización consigue una formalización en el diseño

14

© José María Cavero 2010DBDySI-27

Se calcula el cierre X+DF de X

Si X+DF A, X no es clave

Si X+DF A, X es una superclave. Si para algún

subconjunto X’i del descriptor, X’i+

DF A, X no es clave

En caso contrario X es una clave candidata.

Determinación de si un descriptor es

clave de una relación

© José María Cavero 2010DBDySI-28

Sea R(A,DF) eliminando descriptores equivalentes

Aspectos a tener en cuenta

a) Todo atributo independiente forma parte de todas las claves

b) Los descriptores equivalentes dan lugar a varias claves

c) Ningún atributo implicado que no es implicante forma parte

de ninguna clave

d) Todo atributo implicante pero no implicado forma parte de

todas las claves (siempre que no tenga otros equivalentes)

e) Aquellos atributos que son implicantes e implicados pueden

formar parte de alguna clave

Algoritmo para la obtención de las

claves candidatas

Page 15: Diseño Lógico: NormalizaciónDBD-200… · Al diseñar una BD relacional, podemos obtener diferentes esquemas La teoría de la normalización consigue una formalización en el diseño

15

© José María Cavero 2010DBDySI-29

Paso 1. Eliminación de descriptores independientes

Paso 2. Eliminación de descriptores equivalentes

Paso 3. Determinación de un descriptor (en el que no

haya implicados) que sea clave de Rsie

Paso 4. Determinación de un descriptor de Rsie (en el

que puede haber implicados siempre que sean también

implicantes)

Paso 5. Tratamiento de atributos independientes para

obtener una clave de la relación original

Paso 6. Tratamiento de descriptores equivalentes

Algoritmo para la obtención de las

claves candidatas

© José María Cavero 2010DBDySI-30

Índice

1. Introducción

2. Dependencias Funcionales

3. Teoría de la Normalización

4.1. Formas Normales

4.2. Descomposición y Síntesis

4. Ejercicios

Page 16: Diseño Lógico: NormalizaciónDBD-200… · Al diseñar una BD relacional, podemos obtener diferentes esquemas La teoría de la normalización consigue una formalización en el diseño

16

© José María Cavero 2010DBDySI-31

Dado un conjunto A de atributos y el conjunto D

de dependencias existentes entre ellos que

constituyen un esquema de relación R(A, D), se

trata de transformar, por medio de sucesivas

proyecciones, este esquema de partida en un

conjunto de n esquemas de relación {Ri (Ai, Di)}n

i=1 , tales que cumplan unas determinadas

condiciones:

El conjunto de esquemas Ri deberán ser equivalentes a

R y mejores que el esquema de partida

Teoría de la normalización

© José María Cavero 2010DBDySI-32

Descomposición sin pérdida de información

Cód_E Cód_B Fecha

E2 B2 12/11/08

E2 B1 14/10/08

E2 B3 15/09/08

E3 B3 21/09/08

E1 B2 11/11/08

E3 B2 10/10/08

E1 B1 12/11/08

Cód_E Nombre_E Ciudad

E1 Juan Madrid

E2 María Madrid

E3 Pepe Soria

Cód_B Nombre_B Requisito

B1 Beca1 IT

B2 Beca2 IT

B3 Beca3 II

Estudiante Solicita Beca

Cód_E Nombre_E Ciudad Cód_B Nombre_B Requisito Fecha

E2 María Madrid B2 Beca2 IT 12/11/08

E2 María Madrid B1 Beca1 IT 14/10/08

E2 María Madrid B3 Beca3 II 15/09/08

E3 Pepe Soria B3 Beca3 II 21/09/08

E1 Juan Madrid B2 Beca2 IT 11/11/08

E3 Pepe Soria B2 Beca2 IT 10/10/08

E1 Juan Madrid B1 Beca1 IT 12/11/08

Estudiante*Solicita*Beca

Page 17: Diseño Lógico: NormalizaciónDBD-200… · Al diseñar una BD relacional, podemos obtener diferentes esquemas La teoría de la normalización consigue una formalización en el diseño

17

© José María Cavero 2010DBDySI-33

Descomposición con pérdida de información

Cód_E Nombre_E Ciudad Fecha

E2 María Madrid 12/11/08

E2 María Madrid 14/10/08

E2 María Madrid 15/09/08

E3 Pepe Soria 21/09/08

E1 Juan Madrid 11/11/08

E3 Pepe Soria 10/10/08

E1 Juan Madrid 12/11/08

Cód_E Nombre_E Ciudad Cód_B Nombre_B Requisito Fecha

E2 María Madrid B2 Beca2 IT 12/11/08

E2 María Madrid B1 Beca1 IT 12/11/08

E2 María Madrid B1 Beca1 IT 14/10/08

E2 María Madrid B3 Beca3 II 15/09/08

E3 Pepe Soria B3 Beca3 II 21/09/08

E1 Juan Madrid B2 Beca2 IT 11/11/08

E3 Pepe Soria B2 Beca2 IT 10/10/08

E1 Juan Madrid B1 Beca1 IT 12/11/08

E1 Juan Madrid B2 Beca2 IT 12/11/08

Estudiante_Nueva

Estudiante_Nueva*Beca_Nueva

Beca_Nueva

Cód_B Nombre_B Requisito Fecha

B2 Beca2 IT 12/11/08

B1 Beca1 IT 14/10/08

B3 Beca3 II 15/09/08

B3 Beca3 II 21/09/08

B2 Beca2 IT 11/11/08

B2 Beca2 IT 10/10/08

B1 Beca1 IT 12/11/08

© José María Cavero 2010DBDySI-34

Descomposición con pérdida de información

Cód_E Nombre_E Ciudad Fecha

E2 María Madrid 12/11/08

E2 María Madrid 14/10/08

E2 María Madrid 15/09/08

E3 Pepe Soria 21/09/08

E1 Juan Madrid 11/11/08

E3 Pepe Soria 10/10/08

E1 Juan Madrid 12/11/08

Cód_E Nombre_E Ciudad Cód_B Nombre_B Requisito Fecha

E2 María Madrid B2 Beca2 IT 12/11/08

E2 María Madrid B1 Beca1 IT 12/11/08

E2 María Madrid B1 Beca1 IT 14/10/08

E2 María Madrid B3 Beca3 II 15/09/08

E3 Pepe Soria B3 Beca3 II 21/09/08

E1 Juan Madrid B2 Beca2 IT 11/11/08

E3 Pepe Soria B2 Beca2 IT 10/10/08

E1 Juan Madrid B1 Beca1 IT 12/11/08

E1 Juan Madrid B2 Beca2 IT 12/11/08

Estudiante_Nueva

Estudiante_Nueva*Beca_Nueva

Beca_Nueva

Cód_B Nombre_B Requisito Fecha

B2 Beca2 IT 12/11/08

B1 Beca1 IT 14/10/08

B3 Beca3 II 15/09/08

B3 Beca3 II 21/09/08

B2 Beca2 IT 11/11/08

B2 Beca2 IT 10/10/08

B1 Beca1 IT 12/11/08

Page 18: Diseño Lógico: NormalizaciónDBD-200… · Al diseñar una BD relacional, podemos obtener diferentes esquemas La teoría de la normalización consigue una formalización en el diseño

18

© José María Cavero 2010DBDySI-35

Índice

1. Introducción

2. Dependencias Funcionales

3. Teoría de la Normalización

4.1. Formas Normales

4.2. Descomposición y Síntesis

4. Ejercicios

© José María Cavero 2010DBDySI-36

Un esquema de relación está en una cierta forma normal

si satisface un conjunto de restricciones

Cuanto más alta sea la forma normal menores serán los

problemas en el mantenimiento de la BD

Codd propuso inicialmente tres formas normales

basadas en las DF: 1FN, 2FN y 3FN

En 1974 introdujo una definición más restrictiva de la

3FN que se denominó Forma Normal de Boyce-Codd

(FNBC).

La 4FN se basa dependencias multivaluadas y la 5FN

en las dependencias de proyección-combinación

Formas normales

Page 19: Diseño Lógico: NormalizaciónDBD-200… · Al diseñar una BD relacional, podemos obtener diferentes esquemas La teoría de la normalización consigue una formalización en el diseño

19

© José María Cavero 2010DBDySI-37

Formas normales

1FN2FN

3FN

FNBC

4FN

5FN

DKFN

6FN

© José María Cavero 2010DBDySI-38

Una relación está en 1FN cuando cada atributo

sólo toma un valor del dominio simple

subyacente

Primera forma normal

Estudiante (Código, Nombre, Beca)

Código Nombre Beca

E1 JuanBeca1

Beca2

E2 María Beca3

E3 PepeBeca2

Beca3

Tabla, no relación

Grupos repetitivos

Código Nombre Beca

E1 Juan Beca1

E1 Juan Beca2

E2 María Beca3

E3 Pepe Beca2

E3 Pepe Beca3

1FN

Page 20: Diseño Lógico: NormalizaciónDBD-200… · Al diseñar una BD relacional, podemos obtener diferentes esquemas La teoría de la normalización consigue una formalización en el diseño

20

© José María Cavero 2010DBDySI-39

Una relación está en 2FN si:

Está en 1FN.

Cada atributo no principal tiene DF completa respecto de

cada una de las claves.

No se cumple cuando algún atributo no principal

depende funcionalmente de algún subcjto de la clave

Cualquier relación binaria, cualquier relación cuyas

claves son simples y cualquier relación en la que todos

sus atributos son principales, está en 2FN

Siempre se pueden obtener esquemas en 2FN sin

pérdida de información ni de dependencias.

Segunda forma normal

© José María Cavero 2010DBDySI-40

ESTUDIANTE_BECA (AT, DEP) donde:

AT = {Cod_Estudiante, Cod_Beca, Fecha_Sol, Título}

DEP = {Cod_Estudiante, Cod_Beca Fecha_Sol

Cod_Estudiante Título}

Transformamos en:

ESTUDIANTE_BECA1 (AT1, DEP1) donde:

AT1 = {Cod_Estudiante, Cod_Beca, Fecha_Sol }

DEP1 = {Cod_Estudiante, Cod_Beca Fecha_Sol }

ESTUDIANTE (AT2, DEP2) donde:

AT2 = {Cod_Estudiante, Título}

DEP2 = {Cod_Estudiante Título}

Segunda forma normal: ejemplo

Page 21: Diseño Lógico: NormalizaciónDBD-200… · Al diseñar una BD relacional, podemos obtener diferentes esquemas La teoría de la normalización consigue una formalización en el diseño

21

© José María Cavero 2010DBDySI-41

Un esquema de relación R, está en 3FN si, y sólo si:

Está en 2FN.

No existe ningún atributo no principal que dependa

transitivamente de alguna clave de R.

No se cumple cuando existen atr. no principales que

dependen funcionalmente de otros atr. no principales

Toda relación binaria y toda relación que tiene, como

mucho, un atr. no principal, está en 3FN

Siempre se pueden obtener esquemas de relación en

3FN sin pérdida de información ni de DF

Tercera forma normal

© José María Cavero 2010DBDySI-42

ESTUDIANTE (AT, DEP) donde:

AT = {Cod_Estudiante, Cod_Proyecto,

Nombre_Proyecto}

DEP = {Cod_Proyecto Nombre_Proyecto

Cod_Estudiante Cod_Proyecto}

ESTUDIANTE1 (AT1,DEP1) donde:

AT1={Cod_Estudiante, Cod_Proyecto}

DEP1={Cod_Estudiante Cod_Proyecto}

PROYECTO (AT2,DEP2) donde:

AT2={Cod_Proyecto, Nombre_Proyecto}

DEP2={Cod_Proyecto Nombre_Proyecto}

Tercera forma normal: ejemplo

Page 22: Diseño Lógico: NormalizaciónDBD-200… · Al diseñar una BD relacional, podemos obtener diferentes esquemas La teoría de la normalización consigue una formalización en el diseño

22

© José María Cavero 2010DBDySI-43

Posibles problemas si 3FN y claves candidatas

compuestas que se solapan

Se dice que una relación se encuentra en FNBC si, y

sólo si, todo determinante es una clave candidata.

ASISTE (Cod_Curso, Nom_Curso, Cod_Estud, Calif)

Cod_Curso Nom_Curso,

Cod_Curso, Cod_Estudiante Calificación

Se repite nombre y código por cada estudiante

Si 3FN y claves no solapadas, también en FNBC

Toda relación binaria está en FNBC.

En la transformación pueden perderse DF

Forma normal de Boyce-Codd

© José María Cavero 2010DBDySI-44

SE_MATRICULA1 (Cod_Curso, Cod_Edición,

Cod_Estudiante, Fecha)

Cod_Curso, Cod_Edición, Cod_Estudiante Fecha

Cod_Edición,Cod_Estudiante,Fecha Cod_Curso

Claves candidatas:

(Cod_Curso, Cod_Edición, Cod_Estudiante)

(Cod_Edición,Cod_Estudiante,Fecha)

Se solapan ya que comparten los atributos Cod_Edición

y Cod_Estudiante; sin embargo, debido a que los únicos

determinantes son los dos descriptores anteriores, que

son claves candidatas, la relación sí se encuentra en

FNBC.

Forma normal de Boyce-Codd: ejemplo

Page 23: Diseño Lógico: NormalizaciónDBD-200… · Al diseñar una BD relacional, podemos obtener diferentes esquemas La teoría de la normalización consigue una formalización en el diseño

23

© José María Cavero 2010DBDySI-45

CLASE (AT,DEP) donde:

AT={Cod_Estudiante, Cod_Profesor, Materia}

DEP={Cod_Estudiante, Materia Cod_Profesor

Cod_Profesor Materia}

CLASE1 (AT1,DEP1) donde:

AT1={Cod_Estudiante, Cód_Profesor}

DEP1={}

CLASE2 (AT2,DEP2) donde:

AT2={Cod_Profesor, Materia}

DEP2={Cod_Profesor Materia}

Pérdida de DF

Forma normal de Boyce-Codd: ejemplo

© José María Cavero 2010DBDySI-46

Índice

1. Introducción

2. Dependencias Funcionales

3. Teoría de la Normalización

4.1. Formas Normales

4.2. Descomposición y Síntesis

4. Ejercicios

Page 24: Diseño Lógico: NormalizaciónDBD-200… · Al diseñar una BD relacional, podemos obtener diferentes esquemas La teoría de la normalización consigue una formalización en el diseño

24

© José María Cavero 2010DBDySI-47

Aspectos a tener en cuenta:

Avanzar en las formas normales

Conservación de los atributos

Conservación de las dependencias

Conservación de la información (lossless join)

El proceso de descomposición

© José María Cavero 2010DBDySI-48

COD_E CP CIUDAD

E1 28008 Madrid

E2 28008 Madrid

COD_E CP

E1 28008

E2 28008

CP CIUDAD

28008 Madrid

28008 Madrid

COD_E CP

E1 28008

E2 28008

COD_E CIUDAD

E1 Madrid

E2 Madrid

COD_E CP

CP CIUDAD

COD_E CP CP CIUDAD

COD_E CP ¿CP CIUDAD?

Conservación de las dependencias

Page 25: Diseño Lógico: NormalizaciónDBD-200… · Al diseñar una BD relacional, podemos obtener diferentes esquemas La teoría de la normalización consigue una formalización en el diseño

25

© José María Cavero 2010DBDySI-49

La descomposición implica separar un esquema

en otros, en un proceso reversible.

COD_E PUESTO CIUDAD

E1 Administrativo Madrid

E2 Administrativo Móstoles

COD_E PUESTO

E1 Administrativo

E2 Administrativo

COD_E CIUDAD

E1 Madrid

E2 Móstoles

COD_E PUESTO

E1 Administrativo

E2 Administrativo

PUESTO CIUDAD

Administrativo Madrid

Administrativo Móstoles

COD_E PUESTO CIUDAD

E1 Administrativo Madrid

E1 Administrativo Móstoles

E2 Administrativo Madrid

E2 Administrativo Móstoles

COD_E PUESTO CIUDAD

E1 Administrativo Madrid

E2 Administrativo Móstoles

Descomposición sin pérdida de

información (lossless join)

© José María Cavero 2010DBDySI-50

Comprobación de descomposición sin pérdida

de información

Una descomposición D = {R1, R2} es sin

pérdida (lossless join) con respecto a un

conjunto de DF sii

(A1∩A2)→(A1-A2) ó

(A1∩A2)→(A2-A1)

Descomposición sin pérdida de

información (lossless join)

Page 26: Diseño Lógico: NormalizaciónDBD-200… · Al diseñar una BD relacional, podemos obtener diferentes esquemas La teoría de la normalización consigue una formalización en el diseño

26

© José María Cavero 2010DBDySI-51

Descomposición en 3FN conservando DF y la

información

1. Encontrar un recubrimiento mínimo

2. Para cada conjunto de DF de la forma X→Ai, un

esquema R({X,A1…Am},{X→A1,… X→Am}

3. Si ningún esquema contiene una clave de R, crear un

esquema con la clave.

Algoritmo de síntesis

© José María Cavero 2010DBDySI-52

1. Hallar un recubrimiento minimal DFm

2. Determinar la(s) clave(s), así como los atributos principales y no principales

3. Identificar la FN en que se encuentra la relación

Si se desea llegar a una forma normal más avanzada:

4. Agrupar las DF que tengan el mismo implicante y/o eq.

5. Obtener proy. indep sobre cada una de las DF (o de los grupos), de forma que los atributos que aparecen en la DF constituyen una nueva relación y los atr.no ppales, así como la DF, desaparezcan de la relación origen.

6. Proseguir esta descomposición repitiendo el paso 5 hasta que no pueda continuarse porque todas las DF estén implicadas por una clave.

El proceso de descomposición

Page 27: Diseño Lógico: NormalizaciónDBD-200… · Al diseñar una BD relacional, podemos obtener diferentes esquemas La teoría de la normalización consigue una formalización en el diseño

27

© José María Cavero 2010DBDySI-53

R ({a, b, c, d} { ab, bc, cd})

R1 ({a, b} {a b}) R’({a, c, d} {c d})

R2 ({c, d} {c d}) R3 ({a, d}{})

ab

cd

Clave: a

Clave: a, c

Clave: a, c

R ({a, b, c, d} { ab, bc, cd})

R1 ({c, d} {c d}) R’({a, b, c} {a b, b c})

R2 ({b, c} {b c}) R3 ({a, b}{a b})

cd

b c

Clave: a

Clave: a

Clave: a

Descomposición

incorrecta

Descomposición

correcta

El proceso de descomposición

© José María Cavero 2010DBDySI-54

Índice

1. Introducción

2. Dependencias Funcionales

3. Teoría de la Normalización

4.1. Formas Normales

4.2. Descomposición y Síntesis

4. Ejercicios

Page 28: Diseño Lógico: NormalizaciónDBD-200… · Al diseñar una BD relacional, podemos obtener diferentes esquemas La teoría de la normalización consigue una formalización en el diseño

28

© José María Cavero 2010DBDySI-55

o Sea R1 el esquema de relación siguiente:

o R1({A,B,C,D},

{AB,

B,DA})

o Y sea R2 un esquema de relación una de cuyas extensiones válidas es:

Ejercicios

A B C D

A1 B1 C1 D1

A2 B1 C2 D1

a. R1 y R2 son equivalentes

b. R1 y R2 no son equivalentes

c. R1 y R2 no son equivalentes, pero lo serían si sustituimos en R1 la

dependencia B,DA por CA

d. La extensión dada es válida en R1, pero no tenemos información suficiente

para asegurar que sean equivalentes

e. R1 y R2 serían equivalentes si R1 no tuviera ninguna dependencia

© José María Cavero 2010DBDySI-56

o Sea R el esquema de relación R({A,B,C},{A→B}).

o Dadas las siguientes extensiones:

Ejercicios

A B C

A1 B1 C1

A2 B1 C2

a. E1 es válida en R

b. E2 es válida en R

c. E3 es válida en R

d. a) y b) son correctas

e. a) y c) son correctas

A B C

A1 B1 C1

A1 B2 C2

A B C

A1 B1 C1

A1 B1 C2

Page 29: Diseño Lógico: NormalizaciónDBD-200… · Al diseñar una BD relacional, podemos obtener diferentes esquemas La teoría de la normalización consigue una formalización en el diseño

29

© José María Cavero 2010DBDySI-57

a) R ({A,B,C,D,

{A,BC,

BD,

DA)

b) R ({A,B,C,D,

{AB,

B,C,DA)

Ejercicios

© José María Cavero 2010DBDySI-58

c) R ({CANTANTE, GALA, CANCIÓN, COMPOSITOR, FECHA,

NOMINADO

{CANTANTE, GALACANCIÓN,

CANTANTE, CANCIÓNGALA,

CANTANTE, CANCIÓN NOMINADO,

CANCIÓN CANTANTE, GALA, NOMINADO,

CANCIÓN, COMPOSITOR FECHA)

Ejercicios

Page 30: Diseño Lógico: NormalizaciónDBD-200… · Al diseñar una BD relacional, podemos obtener diferentes esquemas La teoría de la normalización consigue una formalización en el diseño

30

© José María Cavero 2010DBDySI-59

d) R ({A, B, C, D, E, F

{A, BE,

A, EB,

A, E C,

E, F D,

E A,

E B,

E C)

Ejercicios

© José María Cavero 2010DBDySI-60

e) R({A,B,C,D,E,F,G},

{A,B,D E,

E D,

E A,

F A,

E F,

C G,

D E,

EC B})

Ejercicios