Professional Documents
Culture Documents
Parte 3
Normalizacin de Datos
Luis Sandoval
1
D Definiciones
A Base de Datos Relacional: Una coleccin de tablas.
Tabla: Una coleccin de columnas (atributos) que describen una
T
entidad. Los objetos son almacenados en filas de datos en la tabla.
Atributos: Una descripcin de la entidad.
Cada tabla tiene una Primary Key o llave.
A El ms pequeo identificador que puede identificar a todas las dems
columnas de la tabla
B
Primary keys pueden ser ms de una columna (claves mltiples)
A Filas
Primary key
o llave
Employee
Atributos
Tabla: Employee
S EmployeeID TaxpayerID
12512
15293
888-22-5552
222-55-3737
LastName
Cartom
Venetiaan
FirstName
Abdul
Roland
HomePhone
(603) 323-9893
(804) 888-6667
Address
252 South Street
937 Paramaribo Lane
E 22343
29387
293-87-4343
837-36-2933
Johnson
Stenheim
John
Susan
(703) 222-9384
(410) 330-9837
234 Main Street
8934 W. Maple
2
D Notacin
A Nombre de la tabla Columnas de la tabla
A
1 502-666-7777 Johnson Martha 125 Main Street Alvaton KY 42122
2 502-888-6464 Smith Jack 873 Elm Street Bowling Green KY 42101
3 502-777-7575 Washington Elroy 95 Easy Street Smiths Grove KY 42171
4 502-333-9494 Adams Samuel 746 Brown Drive Alvaton KY 42122
S
5 502-474-4746 Rabitz Victor 645 White Avenue Bowling Green KY 42102
6 616-373-4746 Steinmetz Susan 15 Speedway Drive Portland TN 37148
7 615-888-4474 Lasater Les 67 S. Ray Drive Portland TN 37148
8 615-452-1162 Jones Charlie 867 Lakeside Drive Castalian Springs TN 37031
E
9 502-222-4351 Chavez Juan 673 Industry Blvd. Caneyville KY 42721
10 502-444-2512 Rojo Maria 88 Main Street Cave City KY 42127
3
D Identificando Claves Mltiples
A Orders Cada Orden tiene slo
T OrderID
8367
Date
5-5-04
Customer
6794
un Cliente.
De este modo un Cliente
8368 5-6-04 9263
A OrderItems
no es parte de la Clave
B OrderID
8367
Item
229
Quantity
2 Cada Orden tiene muchos
E
4
D Client Billing
A Client Billing
T
Client(ClientID, Name, Address, BusinessType)
Partner(PartnerID, Name, Speciality, Office, Phone)
PartnerAssignment(PartnerID, ClientID, DateAcquired)
A
Billing(ClientID, PartnerID, Date/Time, Item, Description, Hours, AmountBilled)
B
Cada partner puede ser asignado a muchos clientes.
A Cada cliente puede ser asignado a muchos partners.
S
E
5
D Client BillingReglas Diferentes
A Client(ClientID, Name, Address, BusinessType)
T
Partner(PartnerID, Name, Speciality, Office, Phone) combinar
PartnerAssignment(PartnerID, ClientID, DateAcquired)
Billing(ClientID, PartnerID, Date/Time, Item, Description, Hours, AmountBilled)
A Cada cliente es asignado a solo un partner.
T 115
295
963
967
8-4-04 10:03
8-5-04 11:15
967
754
Stress analysis
New Design
2
3
$500
$750
115 963 8-8-04 09:30 967 Stress analysis 2.5 $650
A
B
Cada partner puede trabajar con muchos clientes.
Cada cliente puede trabajar con muchos partner.
Cada partner y clientes pueden trabajar muchos varias veces.
A Se ha identificado a Date/Time como clave.
E
7
D Ejemplo: Video Database
A Possible Keys Repeating section
T
A
B
A
S
E
8
D Entidades iniciales
A
Customers RentalTransaction
T Clave: CustomerID
Atributos
Clave : Assign
TransactionID
A Name
Address
Atributos
CustomerID
B
Phone Date
Videos VideosRented
Clave: VideoID Claves: TransactionID +
A Atributos
Title
VideoID
Atributos
S RentalPrice
Rating
VideoCopy#
E
Description
9
D Evaluacin Inicial del Formulario
A RentalForm(TransID, RentDate, CustomerID, Phone, Name, Address, City, State, ZipCode,
(VideoID, Copy#, Title, Rent ) )
Recolectar formularios
T desde usuarios
Escribir propiedades
A Encontrar grupos repetitivos
( . . .)
S
E
10
D Problemas con las Secciones Repetidas
A RentalForm(TransID, RentDate, CustomerID, Phone, Name, Address, City, State, ZipCode,
A
Seccin Repetida
Tenga en cuenta la duplicacin de datos.
Adems, qu ocurre si un cliente no ha
comprado una pelcula - dnde guardamos Causa duplicacin
B 1
los datos del cliente?
TransID RentDate
4/18/04
CustomerID
3
LastName
Washington
Phone
502-777-7575
Address
95 Easy Street
VideoID
1
Copy#
2
Title
2001: A Space Odyssey
Rent
$1.50
A
1 4/18/04 3 Washington 502-777-7575 95 Easy Street 6 3 Clockwork Orange $1.50
2 4/30/04 7 Lasater 615-888-4474 67 S. Ray Drive 8 1 Hopscotch $1.50
2 4/30/04 7 Lasater 615-888-4474 67 S. Ray Drive 2 1 Apocalypse Now $2.00
2 4/30/04 7 Lasater 615-888-4474 67 S. Ray Drive 6 1 Clockwork Orange $1.50
3 4/18/04 8 Jones 615-452-1162 867 Lakeside Drive 9 1 Luggage Of The Gods $2.50
3 4/18/04 8 Jones 615-452-1162 867 Lakeside Drive 15 1 Fabulous Baker Boys $2.00
S
3 4/18/04 8 Jones 615-452-1162 867 Lakeside Drive 4 1 Boy And His Dog $2.50
4 4/18/04 3 Washington 502-777-7575 95 Easy Street 3 1 Blues Brothers $2.00
4 4/18/04 3 Washington 502-777-7575 95 Easy Street 8 1 Hopscotch $1.50
4 4/18/04 3 Washington 502-777-7575 95 Easy Street 13 1 Surf Nazis Must Die $2.50
4 4/18/04 3 Washington 502-777-7575 95 Easy Street 17 1 Witches of Eastwick $2.00
E
11
D Problemas con Secciones Repetidas
A Name
Customer Rentals
Almacenar datos Phone
T repetidos
Reservar espacio
Address
City
State
A Perocunto?
Poco no puede ser
ZipCode
B
Espacio inutilizado 1. 6 1 Clockwork Orange 1.50
Una mejor definicin 2. 8 2 Hopscotch 1.50
elimina el problema 3.
A 4.
5.
{Unused Space}
E
12
D Primera Forma Normal
A RentalForm(TransID, RentDate, CustomerID, Phone, Name, Address, City, State, ZipCode,
(VideoID, Copy#, Title, Rent ) )
A repetida
RentalLine(TransID, VideoID, Copy#, . . .)
Cada transaccin puede tener muchos videos (key VideoID)
S Cada video puede ser arrendado en muchas transacciones(key
TransID)
E Por cada TransID and VideoID, hay una sola Copy# (Copy# no ser
una clave)
13
D Grupos repetidos anidados
A Tabla (Key1, . . . (Key2, . . . (Key3, . . .) ) )
T
Tabla1(Key1, . . .) TablaA (Key1,Key2 . . .(Key3, . . .) )
A
B Tabla2 (Key1, Key2 . . .) Tabla3 (Key1, Key2, Key3, . . .)
S Table1(Key1, aaa . . .)
Table2(Key1, Key2, bbb . .)
Table3(Key1, Key2, Key3, ccc. . .)
E
14
D Problemas con la primera forma normal(Data)
A TransID
1
2
3
RentDate
4/18/04
4/30/04
4/18/04
CustID
3
7
8
Phone
502-777-7575
615-888-4474
615-452-1162
LastName
Washington
Lasater
Jones
FirstName
Elroy
Les
Charlie
Address
95 Easy Street
67 S. Ray Drive
867 Lakeside Drive
City
Smith's Grove
Portland
Castalian Springs
State
KY
TN
TN
ZipCode
42171
37148
37031
T
4 4/18/04 3 502-777-7575 Washington Elroy 95 Easy Street Smith's Grove KY 42171
A
1 6 3 Clockwork Orange $1.50
Dependencia oculta: 2
2
8
2
1
1
Hopscotch
Apocalypse Now
$1.50
$2.00
Si un video aun no ha 2 6 1 Clockwork Orange $1.50
S
3 9 1 Luggage Of The Gods $2.50
sido rentado, cul es 3 15 1 Fabulous Baker Boys $2.00
su ttulo? 3 4 1 Boy And His Dog $2.50
4 3 1 Blues Brothers $2.00
E
4 8 1 Hopscotch $1.50
4 13 1 Surf Nazis Must Die $2.50
4 17 1 Witches of Eastwick $2.00
15
D Definicin de segunda forma normal
A Dependencia de TransID y VideoID
S
llave.
dependen de una parte de
la llave Si se cambia una parte de
una llave y la propiedad en
Dividir esas columnas en
E una tabla nueva.
cuestin no cambia, la tabla
no est en la 2FN.
16
D Ejemplo de segunda forma normal
A RentalLine(TransID, VideoID, Copy#, Title, Rent)
T
VideosRented(TransID, VideoID, Copy#)
A Videos(VideoID, Title, Rent)
B Title slo depende de VideoID
Cada VideoID slo puede tener un ttulo
A Rent depende de VideoID
En realidad, esta afirmacin es una regla de
S negocios.
Puede ser diferente en tiendas distintas.
T TransID
1
1
VideoID
1
6
Copy#
2
3
Videos(VideoID, Title, Rent)
A
2 2 1
VideoID Title Rent
2 6 1
1 2001: A Space Odyssey $1.50
2 8 1
2 Apocalypse Now $2.00
3 4 1
B 3
3
4
9
15
3
1
1
1
3
4
5
Blues Brothers
Boy And His Dog
Brother From Another Planet
$2.00
$2.50
$2.00
A
6 Clockwork Orange $1.50
4 8 1
7 Gods Must Be Crazy $2.00
4 13 1
8 Hopscotch $1.50
4 17 1
S (No cambia)
18
D Problemas con la segunda forma
normal(Data)
A RentalForm2(TransID, RentDate, CustomerID, Phone, Name, Address, City, State, ZipCode)
T TransID
1
2
RentDate
4/18/04
4/30/04
CustID
3
7
Phone
502-777-7575
615-888-4474
LastName
Washington
Lasater
FirstName
Elroy
Les
Address
95 Easy Street
67 S. Ray Drive
City
Smith's Grove
Portland
State
KY
TN
ZipCode
42171
37148
A
3 4/18/04 8 615-452-1162 Jones Charlie 867 Lakeside Drive Castalian Springs TN 37031
4 4/18/042 3 502-777-7575 Washington Elroy 95 Easy Street Smith's Grove KY 42171
E
19
D Definicin de Tercera forma normal
A Depend on TransID
A Algunas columnas
dependen de columnas que
el valor de la propiedad,
entonces se dice que esa
propiedad siempre depende
S
no son parte de la llave.
de la llave.
Dividir en nueva tabla.
Si se cambia la llave y la
Ejemplo: Nombre de
E Cliente no cambia por cada
transaccin.
propiedad en cuestin no
cambia, la tabla no est en
la 3FN.
20
D Ejemplo de Tercera forma normal
A RentalForm2(TransID, RentDate, CustomerID, Phone, Name, Address, City, State, ZipCode)
A
Customers(CustomerID, Phone, Name, Address, City, State, ZipCode )
A
1 4/18/04 3
2 4/30/04 7
3 4/18/04 8
4 4/18/04 3
A
CustomerID Phone LastName FirstName Address City State ZipCode
1 502-666-7777 Johnson Martha 125 Main Street Alvaton KY 42122
2 502-888-6464 Smith Jack 873 Elm Street Bowling Green KY 42101
3 502-777-7575 Washington Elroy 95 Easy Street Smith's Grove KY 42171
S
4 502-333-9494 Adams Samuel 746 Brown Drive Alvaton KY 42122
5 502-474-4746 Rabitz Victor 645 White Avenue Bowling Green KY 42102
6 615-373-4746 Steinmetz Susan 15 Speedway DrivePortland TN 37148
7 615-888-4474 Lasater Les 67 S. Ray Drive Portland TN 37148
E
8 615-452-1162 Jones Charlie 867 Lakeside Drive Castalian Springs TN 37031
9 502-222-4351 Chavez Juan 673 Industry Blvd. Caneyville KY 42721
10 502-444-2512 Rojo Maria 88 Main Street Cave City KY 42127
T
TransID
* RentDate
Customers CustomerID VideosRented
1 *
A CustomerID
Phone
LastName
TransID
VideoID
Copy#
*
B FirstName
Address
City
1
Videos
VideoID
A State
ZipCode
Title
Rent
23