You are on page 1of 77

Prctica de la

Normalizacin
Sergio Ilarri

Contexto (I)
Problema a
modelar

Modelo
(E)ER

Normalizacin

Modelo
Relacional

Propiedades
2 Noviembre, 2005 - Sergio Il

Entidades
Atributos

Relaciones
(datos)

Contexto (II)
Mundo
real
Diseo conceptual Diseo lgico

Modelado
de datos
Normalizacin

Denormalizacin

Diseo
fsico
Base de datos

2 Noviembre, 2005 - Sergio Il

Diseo de BDs
Dos

aproximaciones:

Bottom-up (sntesis)
Top-down (anlisis)

2 Noviembre, 2005 - Sergio Il

Relaciones

DiseaBD:
Entrada: conjunto de atributos
Salida:
conjunto de relaciones
atributos de cada relacin

Todas
Nombre nico

las tablas son relaciones?:

Atributos monovaluados

Requisitos
(genricos)

Filas nicas
Atributos (columnas) con nombre nico
Orden de filas/columnas irrelevantes

2 Noviembre, 2005 - Sergio Il

Joins de Relaciones
Customer ID

Company Name Contact

Invoice ID

Invoice Date Order Date

Invoice ID

Inventory ID

Inventory ID

Item ID

Quantity

Caffeinated

Phone Number

Customer ID

Unit Price

Price

Credit Limit

Employee ID Customer PO

Discount

On Hand

2 Noviembre, 2005 - Sergio Il

Parece Fcil, Pero...


Problemas:
Redundancia
Anomalas:
Actualizacin
Insercin
Borrado

Creacin
Mantenimiento
Modificacin

Solucin:
Normalizar (identificar y eliminar anomalas)

2 Noviembre, 2005 - Sergio Il

Objetivo
Mejorar
Evitar

y validar el diseo lgico

duplicaciones de datos:

descomposicin de relaciones

Desarrollado

inicialmente por E.F. Codd


Relaciones bien estructuradas
Normalizacin:

proceso consistente en asegurar que cada


tabla trata de un solo concepto

2 Noviembre, 2005 - Sergio Il

Es Necesaria?
Un

modelo E/R bien diseado evita la necesidad de usarla

Gua

para evitar fallos (principiantes)

Modo

de probar la correccin del diseo


Formalizan el sentido comn
Posibilidad de automatizacin
2 Noviembre, 2005 - Sergio Il

Ejemplo

Employees
Sno

SName

SAddress

Position

Bno

Tel_No

Fax_No

S11

Jane Doe

11 Wood St.

Manager

B5

817-256-2234

817-256-2231

S23

Ann Martin

114 S. Main

Deputy

B4

972-456-8970

972-456-8842

S2

Leslie King

112 S. Main

Deputy

B4

972-456-8970

972-456-8842

S15

Matt Hoffa

29 Market St.

Assistant

B8

317-869-4511

317-869-1123

S45

Jill Emory

11 S. Elm

Manager

B4

972-456-8970

972-456-8842

Clave primaria
Nuevo empleado en sucursal B4
Nueva sucursal
Despiden al primer empleado
Cambia el nmero de telfono de B4
2 Noviembre, 2005 - Sergio Il

Formas Normales
1FN
2FN
3FN
Boyce-Codd

MALAS

4FN
5FN

Dependencias funcionales

Dependencias multivaluadas
Dependencias de join
BUENAS

2 Noviembre, 2005 - Sergio Il

Relacin Formas Normales


Relaciones en 2FN
Relaciones en 3FN
Relations inenBCNF
Relaciones
BCFN
Relaciones
Relations
in 4NF
en
4FN

2 Noviembre, 2005 - Sergio Il

Conceptos Bsicos
Clave
Clave

candidata:

clave primaria
claves secundarias
Clave

extranjera (ajena)

2 Noviembre, 2005 - Sergio Il

Dependencia Funcional
A

determinante
Ejemplos:

ISBN BookTitle
EmpID, Course_Title DateCompleted
SSN Name, Address, Birthdate

A
Casos

R sii A es clave candidata

triviales (se excluyen):

B es subconjunto de A

2 Noviembre, 2005 - Sergio Il

Obtencin de Dependencias
Funcionales
A

Cules

son las dependencias


funcionales?

Hay

algo que se pueda deducir de los


datos?

De

una instancia de una relacin slo


pueden obtenerse contraejemplos

2 Noviembre, 2005 - Sergio Il

Dependencias Funcionales:
Reglas de Inferencia
Amstrong

Cierre

de F
2 Noviembre, 2005 - Sergio Il

Primera Forma Normal (I)


No

atributos multivaluados

Todas

las relaciones

Ejemplo:
PROJECTS(PROJECT_ID, HOURS)
EMP_PROJ(SSN, E_NAME, PROJECTS)

EMP_PROJ(SSN, PROJECT_ID)
PROJ_HOURS(PROJECT_ID, HOURS)
EMP (SSN, E_NAME)

Algunos

prohben atributos compuestos (ej: nmero de


cuenta de 20 dgitos, una fecha)
2 Noviembre, 2005 - Sergio Il

Primera Forma Normal (II)


Cmo

evitar atributos multivaluados:

en relacin aparte con clave primaria la combinacin


expandir la clave con el atributo multivaluado
sustituir por varios atributos

Cmo

evitar relaciones anidadas:

propagar la clave primaria

2 Noviembre, 2005 - Sergio Il

Est en 1FN? (I)


Sno

SName

SAddress

Position

Bno

Tel_No

Fax_No

S11

Jane Doe

11 Wood St.

Manager

B5

817-256-2234

817-256-2231

S23

Ann Martin

114 S. Main

Deputy

B4

972-456-8970

972-456-8842

S2

Leslie King

112 S. Main

Deputy

B4

972-456-8970

972-456-8842

S15

Matt Hoffa

29 Market St.

Assistant

B8

317-869-4511

317-869-1123

S2

Leslie King

112 S. Main

Deputy

B4

972-456-8970

972-456-8842

2 Noviembre, 2005 - Sergio Il

Est en 1FN? (II)


Sno

SName

SAddress

Position

Bno

Tel_No

Fax_No

S11

Jane Doe

11 Wood St.

Manager

B5

817-256-2234

817-256-2231

S23

Ann Martin

114 S. Main

Deputy,
Assistant

B4

972-456-8970

972-456-8842

S2

Leslie King

112 S. Main

Deputy

B4

972-456-8970

972-456-8842

S15

Matt Hoffa

29 Market St.

Assistant

B8

317-869-4511

317-869-1123

S45

Jill Emory

11 S. Elm

Manager

B4

972-456-8970

972-456-8842

2 Noviembre, 2005 - Sergio Il

Paso a Primera Forma Normal (I)


Orders

Order
Number
12489

Order
Date
9/02/01

Part
Number
AX12

Number of
Units

12491

9/02/01

12494

9/04/01

BT04
BZ66
CB03

1
1
4

11

2 Noviembre, 2005 - Sergio Il

Paso a Primera Forma Normal


(II)
Orders

Order
Number
12489

Order
Date
9/02/01

Part
Number
AX12

Number of
Units

12491

9/02/01

BT04

12491

9/02/01

BZ66

12494

9/04/01

CB03

11

2 Noviembre, 2005 - Sergio Il

Es 1FN Suficiente?
Employee(EmpID,

Name, DeptName, Salary, CourseTitle,

DateCompleted)

Problemas:
Insercin: insertar un empleado que no est en ningn curso
Borrado: si borramos el ltimo empleado que est en cierto curso
Modificacin de los datos de un empleado

Dependencias

funcionales:

EmpID, CourseTitle DateCompleted


EmpID Name, DeptName, Salary

2 Noviembre, 2005 - Sergio Il

Segunda Forma Normal (I)


1FN

y no dependencias funcionales parciales

atributos no clave que dependen de parte de la clave

1FN

equivale a 2FN si:

no hay atributos no claves


la clave es atmica

Employee

no est en 2FN:

EmpID Name, DeptName, Salary

2 Noviembre, 2005 - Sergio Il

Segunda Forma Normal (II)


Cmo

pasar a 2FN:

asociar los atributos implicados slo con la parte de la clave de la que depende

2 Noviembre, 2005 - Sergio Il

Paso a Segunda Forma


Normal

EmpID

Name DeptName Salary

EmpID

Dependencias
funcionales
completas

CourseTitle DateCompleted

2 Noviembre, 2005 - Sergio Il

Ejemplo (I)
Student:

Student_ID, Activity, Fee


Clave: Student_ID, Activity
Dependencias funcionales:Activity Fee
Student_ I D
222-22-2020
232-22-2111
222-22-2020
255-24-2332

Activity
Swimming
Golf
Golf
Hiking

Fee
30
100
100
50

2 Noviembre, 2005 - Sergio Il

Ejemplo (II)
STUDENT_ACTIVITY
Student_ID Activity

ACTIVITY_COST
Activity Fee

Student_ I D
222-22-2020
232-22-2111
222-22-2020
255-24-2332

Activity
Swimming
Golf
Golf
Hiking

Clave: Student_ID,
Activity
Clave: Activity
Activity Fee

Activity
Swimming
Golf
Hiking

2 Noviembre, 2005 - Sergio Il

Fee
30
100
50

Otro Ejemplo (I)


Orders

Order
Number

Order
Date

Part
Number

Part
Number Quoted
Descript. of Units Price

12489

9/02/01

AX12

Iron

12491

9/02/01

BT04

Gas Grill 1

$149.99

12491

9/02/01

BZ66

Washer

$399.99

12494

9/04/01

CB03

Bike

$279.99

12500

9/05/01

BT04

Gas Grill 1

$149.99

11

2 Noviembre, 2005 - Sergio Il

$14.95

Otro Ejemplo (II)

Orders (Order Number, Order Date, Part Number,


Part Description, Number of Units, Quoted Price)
Dependencias funcionales:
Order Number Order Date
Part Number Part Description
Order Number, Part Number Number of Units, Quoted Price

Order
Number

Order
Date

Part
Number

Part
Number
Descript. of Units

2 Noviembre, 2005 - Sergio Il

Quoted
Price

Otro Ejemplo (III)


Orders

Parts

Order Line

Order
Number

Order
Date

Part
Number

Part
Descript.

Order
Number

Part
Number

Number
of Units

Quoted
Price

12489

9/02/01

AX12

Iron

12489

AX12

11

$14.95

12491

9/02/01

BT04

Gas Grill

12491

BT04

$149.99

12494

9/04/01

BZ66

Washer

12491

BZ66

$399.99

12494

CB03

$279.99

12500

BT04

$149.99

12500

9/05/01

CB03

Bike

2 Noviembre, 2005 - Sergio Il

Un Tercer Ejemplo (I)


Student_Teacher:

Student_ID, Subject, Teacher


Clave: Student_ID, Teacher
Dependencias funcionales:
Teacher Subject
Student_ID
Subject
222-22-2020 Economy
232-22-2111 Management
222-22-2020 Economy
222-22-2111 Marketing
255-24-2332 Marketing

Teacher
Leigh
Gowan
Roberts
Reynolds
Reynolds

2 Noviembre, 2005 - Sergio Il

Un Tercer Ejemplo (II)


STUDENT_TEACHE
R
Key: Student_ID,
Student_ID Teacher
Teacher
TEACHER_SUBJECT Key: Teacher
Teacher Subject
Teacher Subject
Student_ID
222-22-2020
232-22-2111
222-22-2020
222-22-2111
255-24-2332

Teacher
Leigh
Gowan
Roberts
Reynolds
Reynolds

Teacher
Leigh
Gowan
Roberts
Reynolds

2 Noviembre, 2005 - Sergio Il

Subject
Economy
Management
Economy
Marketing

Es 2FN suficiente? (I)


Customer(CustomerID,

Dependencias

Name, Salesperson, Region)

funcionales:

CustomerID Name, Salesperson


Salesperson Region

Problemas:
Insercin: insertar un vendedor que no tenga cliente
Borrado: si borramos el ltimo cliente de cierto vendedor
Modificacin: de la regin de un vendedor
Redundancia: repetir la regin cada vez que aparezca un vendedor

2 Noviembre, 2005 - Sergio Il

Es 2FN suficiente? (II)

2 Noviembre, 2005 - Sergio Il

Tercera Forma Normal


2FN
Dependencia

y no dependencias transitivas

transitiva:

dependencia funcional entre atributos no clave


atributo no clave que depende indirectamente
dependencia ms especfica que la de la clave

Qu

pasa con los atributos clave que dependen


indirectamente de la clave?

2 Noviembre, 2005 - Sergio Il

Ejemplo de Dependencia
Transitiva

CustomerID Salesperson Region


Atributo no clave
2 Noviembre, 2005 - Sergio Il

Paso a Tercera Forma Normal

2 Noviembre, 2005 - Sergio Il

Ejemplo (I)
Student:

Student_ID, Building, Fee


Clave: Student_ID
Dependencias funcionales:
Student_ID Building
Building Fee

Student_ I D
222-22-2020
232-22-2111
222-22-5554
255-24-2332
330-25-7789

Building
Dabney
Liles
The Range
Dabney
The Range

Fee
1200
1000
1100
1200
1100

2 Noviembre, 2005 - Sergio Il

Ejemplo (II)
STUDENT_HOUSIN
G
Building
Student_ID

Clave: Student_ID

BUILDING_COST

Clave: Building

Building

Fee

Student_ID Building

Building Fee

Building
Dabney
Liles
The Range

2 Noviembre, 2005 - Sergio Il

Fee
1200
1000
1100

Otro Ejemplo (I)

Customer
Customer
Number

Cust Last
Name

Cust First
Name

Balance

Credit
Limit

Sales Rep
Number

Slsr Last
Name

Slsr First
Name

124

Adams

Sally

$824.45

$1000

03

Jones

Mary

256

Samuels

Ann

$21.43

$1500

06

Smith

William

311

Charles

Don

$345.54

$1000

12

Diaz

Miguel

315

Daniels

Tom

$770.45

$750

06

Smith

William

405

Williams

Al

$450.56

$1500

12

Diaz

Miguel

2 Noviembre, 2005 - Sergio Il

Otro Ejemplo (II)


Customer

Sales Rep

Customer
Number

Cust Last
Name

Cust First
Name

Balance

Credit
Limit

Sales Rep
Number

Sales Rep
Number

Slsr Last
Name

Slsr First
Name

124

Adams

Sally

$824.45

$1000

03

03

Jones

Mary

256

Samuels

Ann

$21.43

$1500

06

06

Smith

William

311

Charles

Don

$345.54

$1000

12

12

Diaz

Miguel

315

Daniels

Tom

$770.45

$750

06

405

Williams

Al

$450.56

$1500

12

2 Noviembre, 2005 - Sergio Il

Es 3FN suficiente? (I)


Student(IDStudent,

Subject, Teacher, Score)

IDStudent

Subject

Teacher

Score

123

Physics

Hawking

4.0

123

Music

Mahler

3.3

456

Lit

Michener

3.2

789

Music

Bach

3.7

678

Physics

Hawking

3.5

2 Noviembre, 2005 - Sergio Il

Es 3FN suficiente? (II)


IDStudent

Subject

En

1FN?
En 2FN?
En 3FN?
Teacher

Teacher

Score

S
S
S

Subject

no es dependencia transitiva

2 Noviembre, 2005 - Sergio Il

Es 3FN suficiente? (III)


IDStudent

Subject

Teacher

Score

123

Physics

Hawking

4.0

123

Music

Mahler

3.3

456

Lit

Michener

3.2

789

Music

Bach

3.7

678

Physics

Hawking

3.5

Cambio

del profesor de Fsica


Insercin de un profesor de Economa
Borrado del estudiante 789
2 Noviembre, 2005 - Sergio Il

Problemas

Forma Normal de Boyce-Codd


Todo

determinante de dependencias funcionales debe ser clave

Por

qu no es la 4FN?

Si

un atributo no contribuye a la descripcin de una clave,


colocarlo en otra relacin

IDStudent Teacher
Teacher

Score

Subject
2 Noviembre, 2005 - Sergio Il

Proceso de Normalizacin
no
relacin

Entidad

1FN

Eliminar atributos
multivaluados y
compuestos
Eliminar dependencias
parciales

2FN
Eliminar dependencias
transitivas
3FN
BoyceCodd

Eliminar dependencias
de claves no
candidatas

2 Noviembre, 2005 - Sergio Il

Ejemplo de Normalizacin (I)


Atributos
Puppy Number
Puppy Name
Kennel Code
Kennel Name
Kennel Location
Trick ID 1n
Trick Name 1n
Trick Where Learned 1n
Skill Level 1n

2 Noviembre, 2005 - Sergio Il

Ejemplo de Normalizacin (II)


Una

relacin para cada grupo de atributos relacionados


Dar a cada relacin una clave primaria
Evitar atributos multivaluados

Puppy
PuppyTable
Table
Puppy
PuppyNumber
Number(PK)
(PK)
Puppy
Name
Puppy Name
Kennel
KennelCode
Code
Kennel
Name
Kennel Name
Kennel
KennelLocation
Location
Trick
TrickTable
Table
Puppy
PuppyNumber
Number(PK)
(PK)
Trick
ID
(PK)
Trick ID (PK)
Trick
TrickName
Name
Trick
Where
Trick WhereLearned
Learned
Skill
SkillLevel
Level

2 Noviembre, 2005 - Sergio Il

Ejemplo de Normalizacin (III)

Eliminar dependencias
parciales:

TrickID

Trick Name

Trick Table

Puppy #

Trick ID

Trick Name Where Learned Skill Level

52

27

Roll Over

16

53

16

Nose Stand

54

27

Roll Over

Tricks
Tricks

Puppy
PuppyTricks
Tricks

Puppy
PuppyTable
Table

Trick
TrickID
ID(PK)
(PK)
Trick
Name
Trick Name

Puppy
PuppyNumber
Number(PK)
(PK)
Trick
ID
(PK)
Trick ID (PK)
Trick
TrickWhere
WhereLearned
Learned
Skill
Level
Skill Level

Puppy
PuppyNumber
Number(PK)
(PK)
Puppy
Name
Puppy Name
Kennel
KennelCode
Code
Kennel
Name
Kennel Name
Kennel
KennelLocation
Location

2 Noviembre, 2005 - Sergio Il

Ejemplo de Normalizacin (IV)

Puppy
PuppyTable
Table

Puppies
Puppies

Puppy
PuppyNumber
Number(PK)
(PK)
Puppy
Name
Puppy Name
Kennel
KennelCode
Code
Kennel
KennelName
Name
Kennel
Location
Kennel Location

Puppy
PuppyNumber
Number(PK)
(PK)
Puppy
Name
Puppy Name
Kennel
KennelCode
Code
Kennels
Kennels

Todo determinante debe


ser clave candidata:
Puppy Number

Puppy Name
Kennel Code Kennel
Name, Kennel Location

Kennel
KennelCode
Code(PK)
(PK)
Kennel
Name
Kennel Name
Kennel
KennelLocation
Location
Tricks
Tricks
Trick
TrickID
ID(PK)
(PK)
Trick
Name
Trick Name

Puppy
PuppyTricks
Tricks
Puppy
PuppyNumber
Number(PK)
(PK)
Trick
ID
(PK)
Trick ID (PK)
Trick
TrickWhere
WhereLearned
Learned
Skill
Level
Skill Level

2 Noviembre, 2005 - Sergio Il

Objetivos de Diseo (I)


1)

Descomposicin si prdida

2 Noviembre, 2005 - Sergio Il

Objetivos de Diseo (II)


Ejemplo:
EMP_PROJ(SSN, PNUMBER, HOURS, ENAME, PNAME, PLOCATION)
descompuesto en:
EMP_LOCS(ENAME, PLOCATION)
EMP_PROJ1(SSN, PNUMBER, HOURS, PNAME, PLOCATION)

Problema:

tuplas espreas
2 Noviembre, 2005 - Sergio Il

Objetivos de Diseo (III)


2)

Conservacin de dependencias:

evitar joins para comprobar dependencias funcionales

3)

Evitar redundancias (formas normales):

desperdicio de espacio
inconsistencias

2 Noviembre, 2005 - Sergio Il

Ejemplo
R=(A,

B, C):

AB
BC

a) R1(A, B), R2(B, C)


b) R1(A, B), R2(A, C)

Con b) no se conserva la dependencia B C


2 Noviembre, 2005 - Sergio Il

Otro Ejemplo

Banquero(NSUCURSAL, NCLIENTE, NBANQUERO)


NBANQUERO NSUCURSAL (no est en FNBC)
NSUCURSAL, NCLIENTE NBANQUERO

2 Noviembre, 2005 - Sergio Il

Otro Ejemplo (II)


SucursalBanquero(NBANQUERO, NSUCURSAL)
ClienteBanquero(NCLIENTE , NBANQUERO)

NBANQUERO

1
2
3
4

NSUCURSAL

1
1
3
3

NCLIENTE

1
1

NBANQUERO

3
4

No se conserva: NSUCURSAL, NCLIENTE NBANQUERO


2 Noviembre, 2005 - Sergio Il

BCFN y Preservacin de
Dependencias
A veces,

no puede obtenerse BCFN y conservar las


dependencias al mismo tiempo (ver ejemplo anterior)

Aunque

siempre se puede obtener una descomposicin


3FN sin prdidas

2 Noviembre, 2005 - Sergio Il

BCFN y Preservacin de
Dependencias: Ejemplo
R=(A,

B, C):

F = {AB C, C B}

candidatas: (A, B), (A, C)


No est en BCFN (C B)
Claves
Al

descomponer se perder AB C

2 Noviembre, 2005 - Sergio Il

De Ah la Utilidad de 3FN...
Siempre

se puede obtener una descomposicin en 3FN:

sin prdidas (conservar junta una clave candidata)


conservando las dependencias

Coste:
BCFN:

3FN:

algo de redundancia

todo atributo depende completamente de la clave

todo atributo no clave depende completamente de la

clave
2 Noviembre, 2005 - Sergio Il

Es suficiente con BCFN? (I)


Stars
name

street

city

title

C. Fisher 123 Maple Str. Hollywood

Star Wars

C. Fisher

Star Wars

5 Locust Ln.

Malibu

C. Fisher 123 Maple Str. Hollywood

Empire Strikes Back

C. Fisher

Empire Strikes Back

5 Locust Ln.

Malibu

C. Fisher 123 Maple Str. Hollywood

Return of the Jedi

C. Fisher

Return of the Jedi

5 Locust Ln.

Malibu

2 Noviembre, 2005 - Sergio Il

Es suficiente con BCFN? (II)


Hay

que asociar todas las direcciones con todas


las pelculas

Redundancia

En

(informacin de direcciones)

BCFN?

Problemas

S (todo es clave)

2 Noviembre, 2005 - Sergio Il

Dependencias Multivaluadas
A B
Generalizacin
Declaracin

de la dependencia funcional

de la independencia entre conjuntos de

atributos:

relacin entre A y B independiente de entre A y R-B

Si A B,
Casos

entonces A R-B

triviales (se excluyen):

B subconjunto de A
AB=R

2 Noviembre, 2005 - Sergio Il

Dependencias Multivaluadas:
Algunas Reglas de Inferencia
Transitividad:
Si A B y A C, entonces A C

Complementariedad:
Si A B, entonces A R (A B)

Unin:
Si A B y A C, entonces A B, C

2 Noviembre, 2005 - Sergio Il

Cuarta Forma Normal


Todo

determinante de dependencias multivaluadas debe


ser clave

Mientras

haya dependencias multivaluadas

descomponer la relacin en dos relaciones


R1: Determinante, atributos determinados
R2: Determinante, atributos que no estn en R1
para cada descomposicin, comprobar nuevas dependencias

2 Noviembre, 2005 - Sergio Il

Ejemplo (I)
Stars
name

street

city

title

C. Fisher 123 Maple Str. Hollywood

Star Wars

C. Fisher 5 Locust Ln.

Star Wars

Malibu

C. Fisher 123 Maple Str. Hollywood Empire Strikes Back


C. Fisher 5 Locust Ln.

Malibu

Empire Strikes Back

C. Fisher 123 Maple Str. Hollywood

Return of the Jedi

C. Fisher 5 Locust Ln.

Return of the Jedi

Malibu

2 Noviembre, 2005 - Sergio Il

Ejemplo (I)
Stars
name

street

city

title

C. Fisher 123 Maple Str. Hollywood

Star Wars

C. Fisher 5 Locust Ln.

Star Wars

Malibu

C. Fisher 123 Maple Str. Hollywood Empire Strikes Back


C. Fisher 5 Locust Ln.

Malibu

Empire Strikes Back

C. Fisher 123 Maple Str. Hollywood

Return of the Jedi

C. Fisher 5 Locust Ln.

Return of the Jedi

Malibu

2 Noviembre, 2005 - Sergio Il

Ejemplo (II)
name
Hay

street, city

que repetir:

cada direccin para cada pelcula


cada pelcula para cada direccin

name

street

Hechos
independientes

city

C. Fisher 123 Maple Str. Hollywood


C. Fisher 5 Locust Ln.

Malibu

C. Fisher 123 Maple Str. Hollywood

title
Star Wars
Empire Strikes Back
Return of the Jedi

2 Noviembre, 2005 - Sergio Il

EXTENSIN
INCOMPLETA

Ejemplo (III)
Descomponer

en:

R1(name, street, city)


R2(name, title)

2 Noviembre, 2005 - Sergio Il

Otro Ejemplo (I)

Todos

los atributos son clave => BCFN

Anomalas:
insertar un nuevo profesor de bases de datos

2 Noviembre, 2005 - Sergio Il

Otro Ejemplo (II)


teacher
course book
course

2 Noviembre, 2005 - Sergio Il

Ejercicio 1
Normalizar

a 4FN la relacin R(A,B,C,D), donde:

AB
AC

Clave: A,

B, C, D (no dependencias funcionales)


AB y AC violan 4FN
R1(A, B), R2(A, C, D)
AC

viola R2:

R21(A, C), R22(A, D)

2 Noviembre, 2005 - Sergio Il

Ejercicio 2
R(A,B,C)
AB
(a,b1,c1), (a,b2,c2), y (a,b3,c3) son tuplas de R
Qu tuplas sabemos que deben estar en R?

Pista: A determina

los valores de B con independencia de C (para


cualquier valor de C)

Respuesta:

todas las tuplas de la forma (a, b, c) con b=b1,b2,b3 y


c=c1,c2,c3 (9 tuplas)
2 Noviembre, 2005 - Sergio Il

Ms Formas Normales
5FN

= Forma normal de proyeccin-join

generalizacin de las dependencias multivaluadas: dependencias de join

Restricciones

ms generales llevan a la forma normal de


Dominio/Clave

Problemas

de estas formas normales:

es difcil razonar con ellas


no hay un conjunto de reglas de inferencia completo y correcto

2 Noviembre, 2005 - Sergio Il

raramente
usadas

Nota al Margen
Cuando

se realiza diseo por sntesis, lo que se hace es deducir


relaciones entre atributos a partir de las dependencias existentes

El

diseo por sntesis, sin embargo, no goza de mucha popularidad, entre otras
cosas por el elevado nmero de dependencias que pueden estar implicadas

2 Noviembre, 2005 - Sergio Il

Presentacin Disponible en...


http://webdiis.unizar.es/~silarri/

2 Noviembre, 2005 - Sergio Il

FIN

2 Noviembre, 2005 - Sergio Il

You might also like