Sunteți pe pagina 1din 46

Procesamiento de base de datos:

Fundamentos, Deseo e Implementacin


Captulo 3
El modelo relacional y
normalizacin
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition
2010 Pearson Prentice Hall
3-1
Objetivos
Comprender la terminologa bsica relacional.
Conocer las caractersticas de las relaciones.
Entender la terminologa alterna utilizada para describir
el modelo relacional.
Identificar dependencias funcionales, determinantes y
atributos dependientes.
Identificar la clave primaria, candidato y claves
compuestas.
Identificar la posible insercin, eliminacin y
actualizacin de anomalas en una relacin.
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition
2010 Pearson Prentice Hall
3-2
Objetivos
Colocar a una relacin en forma normal de BCNF.
Comprender la importancia especial de la forma normal
de dominio/clave.
Identificar las dependencias multivalor.
Colocar a una relacin en la cuarta forma normal.
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition
2010 Pearson Prentice Hall 3-3
Premisas del captulo
Hemos recibido una o ms tablas de datos
existentes.
Los datos son almacenados en una base
de datos nueva.
PREGUNTA: Los datos son
alamacenados como recibidos , o deben
ser transformados para su
almacenamiento?
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition
2010 Pearson Prentice Hall
3-4
Cuntas tablas observa?
Deberamos almacenar estas tablas como son, o debemos nosotros
combinarlas en una tabla en nuestra base de datos nueva?
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition
2010 Pearson Prentice Hall
3-5
Primero debemos
Entender:
El modelo relacional
Terminologa del modelo relacional
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition
2010 Pearson Prentice Hall
3-6
Modelo relacional
Introducido en 1970
Creado por E.F. Codd
Ingeniero de IBM
El modelo utiliza las matemticas conocida
como: algebra relacional
Ahora el modelo estndar para los
productos comerciales de DBMS.
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition
2010 Pearson Prentice Hall
3-7
Trminos importantes del modelo
relacional
Entity
Relation
Functional dependency
Determinant
Candidate key
Composite key
Primary key
Surrogate key
Foreign key
Referential integrity
constraint
Normal form
Multivalued dependency
Entidad
Relacin
Dependencia funcional
Determinante
Clave candidata
Clave compuesta
Clave primaria
Clave sustituta
Clave fornea
Restriccin de integridad
referencial
Forma normal
Dependencia multivalor
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition
2010 Pearson Prentice Hall
3-8
Entidad-Entity
Una entidad es algo identificable que los
usuarios desean realizar dar seguimiento:
Clientes
Computadoras
Ventas
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition
2010 Pearson Prentice Hall
3-9
Relacin-Relation
Los productos de DBMS relacionales almacenan datos acerca de
las entidades en las relaciones, que son un tipo especial de tabla.
Una relacin es una tabla bidimensional que tiene las siguientes
caractersticas:
Las filas contienen datos acerca de una entidad.
Las columnas contienen datos acerca de los atributos de la entidad.
Todas las entradas de una columna son del mismo tipo.
Cada columna tiene un nombre nico.
Las celdas de la tabla mantienen un nico valor.
El orden de las columnas no es importante.
El orden de las filas no tiene importancia.
Ninguna de las dos filas puede ser idntica..
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition
2010 Pearson Prentice Hall
3-10
Una relacin
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition
2010 Pearson Prentice Hall
3-11
Las tablas que no relacionales:
Multiple Entries per Cell
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition
2010 Pearson Prentice Hall
3-12
Tablas que no son relacionales:
Table with Required Row Order
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition
2010 Pearson Prentice Hall
3-13
Una relacin con valores de
longitud de variables
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition
2010 Pearson Prentice Hall
3-14
Terminologa de alterna
Aunque no todas las tablas son relacionales, la tabla de
trminos y la relacin normalmente se utilizan
indistintamente.
Los siguientes conjuntos de trminos son equivalente:
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition
2010 Pearson Prentice Hall
3-15
Dependencia Funcional
Una dependencia funcional se produce cuando el valor
de un atributos (conjunto de atributos) determina el valor
de un segundo (conjunto de) atributo(s):
StudentID StudentName
StudentID (DormName, DormRoom, Fee)
El atributo en el lado izquierdo de la dependencia
funcional se llama el determinante.
La dependencias pueden estar basadas en ecuaciones:
ExtendedPrice = Quantity X UnitPrice
(Quantity, UnitPrice) ExtendedPrice
Las dependencias de la funcin no son ecuaciones!
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition
2010 Pearson Prentice Hall
3-16
Las dependencias de la funcin no son
ecuaciones
ObjectColor Weight
ObjectColor Shape
ObjectColor (Weight, Shape)
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition
2010 Pearson Prentice Hall
3-17
Factores determinantes de la composicin
Composite Determinants
Composite determinant = un factor
determinante de una dependencia
funcional que consiste en ms de un
atributo.
(StudentName, ClassName) (Grade)
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition
2010 Pearson Prentice Hall
3-18
Reglas de dependencia
funcional
If A (B, C), then A B and AC.
If (A,B) C, then neither A nor B
determines C by itself.
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition
2010 Pearson Prentice Hall
3-19
Dependencias funcionales en la
tabla de SKU_DATA
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition
2010 Pearson Prentice Hall
3-20
Dependencias funcionales en la
tabla de SKU_DATA
SKU (SKU_Description, Department, Buyer)
SKU_Description (SKU, Department, Buyer)
Buyer Department
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition
2010 Pearson Prentice Hall
3-21
Dependencias funcionales en la
tabla de ORDER_ITEM
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition
2010 Pearson Prentice Hall
3-22
Dependencias funcionales en la
tabla de ORDER_ITEM
(OrderNumber, SKU)
(Quantity, Price, ExtendedPrice)
(Quantity, Price) (ExtendedPrice)
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition
2010 Pearson Prentice Hall
3-23
Qu hace los valores determinates nicos?
Un factor determinante es nico en una relacin,
y slo si, determina todas las columnas en la
relacin.
No se puede encontrar los factores
determinantes de todas las dependencias
funcionales simplemente mediante la bsqueda
de valores nicos en una columna:
Limitaciones de conjunto de datos
Debe ser lgicamente un factor determinante
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition
2010 Pearson Prentice Hall
3-24
Claves-Keys
Una clave es una combinacin de una o
ms columnas que son utilizadas para
identificar filas en una relacin
Una clave compuesta es una clave que se
compone de dos o ms columnas.
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition
2010 Pearson Prentice Hall
3-25
Clave candidata y
clave primaria
Una clave candidata es una clave que
determina todas las otras columnas en una
relacin.
Una clave primaria es una clave de candidato
seleccionada como el principal medio de
identificacin de filas en una relacin
Hay slo una clave primaria por relacin.
La clave primaria puede ser una clave
compuesta.
La clave primaria ideal es corto, numrica y
nunca cambia.
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition
2010 Pearson Prentice Hall
3-26
Clave de suplente
Surrogate Keys
Una clave suplente es una columna
artificial agregada a una relacin para
servir como una clave principal.
Suministros de DBMS (DBMS supplied)
Corto, numerica, y nunca cambioes una
clave primaria ideal
Tiene valores artificiales que no tienen
significaro para los usuarios.
Normalmente est oculto en formularios e
informes
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition
2010 Pearson Prentice Hall
3-27
Clave de suplente
Surrogate Keys
NOTA: La clave primaria de la relacin se destaca a
continuacin:
RENTAL_PROPERTY sin clave de
suplente :
RENTAL_PROPERTY (Street, City,
State/Province, Zip/PostalCode, Country, Rental_Rate)
RENTAL_PROPERTY con clave de
suplente :
RENTAL_PROPERTY (PropertyID, Street, City,
State/Province, Zip/PostalCode, Country, Rental_Rate)
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition
2010 Pearson Prentice Hall
3-28
Clave fornea
Una clave fornea es la clave principal de
una relacin que se coloca en otra
relacin para formar un vnculo entre las
relaciones.
Una clave fornea puede ser una sola
columna o una clave compuesta.
The term refers to the fact that key values are
foreign to the relation in which they appear as
foreign key values .
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition
2010 Pearson Prentice Hall
3-29
Clave fornea
NOTA: En las relaciones a continuacin la clave primaria
de estas estn subrayadas y la clave fornea est en
cursiva:
DEPARTMENT (DepartmentName, BudgetCode, ManagerName)
EMPLOYEE (EmployeeNumber, EmployeeName, DepartmentName)
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition
2010 Pearson Prentice Hall
3-30
Las restricciones de integridad referencial
Referential Integrity Constraint
Una restriccin de integridad referencial
es una declaracin que limita los valores
de la clave fornea a las ya existentes
como los valores de clave primaria en la
relacin correspondiente.
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition
2010 Pearson Prentice Hall
3-31
Clave fornea con una
Referential Integrity Constraint
NOTA: En las relaciones a continuacin la clave primaria
de la relacin est subrayada y cualquier clave fornea
est en cursiv:
SKU_DATA (SKU, SKU_Description, Department, Buyer)
ORDER_ITEM (OrderNumber, SKU, Quantity, Price,
ExtendedPrice)
Where ORDER_ITEM.SKU must exist in SKU_DATA.SKU
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition
2010 Pearson Prentice Hall
3-32
Modificacin Anomalias
Anomala de eliminacin
Anomala de insercin
Anomala de actualizacin
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition
2010 Pearson Prentice Hall
3-33
Modificacin Anomalias
La tabla EQUIPMENT_REPAIR antes y despus de una
operacin de actualizacin incorrecta sobre
AcquisitionCost de Type = Drill Press
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition
2010 Pearson Prentice Hall
3-34
Forma Normal
Las relaciones se clasifican como forma normal
basado en qu modificacin de anomalas u
otros problemas que estn sujetos a:
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition
2010 Pearson Prentice Hall
3-35
Forma Normal
1NFuna tabla que califica como una relacin que se
encuentra en primera forma normal-1NF.
2NFuna relacin en segunda forma normal-2NF se da
si todos los atributos nonkey son dependientes
de todas las claves primarias.
3NFuna relacin est en tercera forma normal-3NF si
est en 2NF y no tiene determinantes excepto la
clave primaria.
Boyce-Codd Normal Form (BCNF)a relation is in
BCNF- Si cada determinante es una clave de candidato
(if every determinant is a candidate key).
I swear to construct my tables so that all nonkey
columns are dependent on the key, the whole key
and nothing but the key, so help me Codd.
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition
2010 Pearson Prentice Hall
3-36
Eliminacin de anomalas de modificacin
de dependencias funcionales en relaciones:
Put All Relations into BCNF
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition
2010 Pearson Prentice Hall
3-37
Poniendo una relacin en BCNF:
EQUIPMENT_REPAIR
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition
2010 Pearson Prentice Hall
3-38
Poniendo una relacin en BCNF:
EQUIPMENT_REPAIR
EQUIPMENT_REPAIR (ItemNumber, Type, AcquisitionCost,
RepairNumber, RepairDate, RepairAmount)
ItemNumber (Type, AcquisitionCost)
RepairNumber (ItemNumber, Type, AcquisitionCost,
RepairDate, RepairAmount)
ITEM (ItemNumber, Type, AcquisitionCost)
REPAIR (ItemNumber, RepairNumber, RepairDate, RepairAmount)
Where REPAIR.ItemNumber must exist in
ITEM.ItemNumber
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition
2010 Pearson Prentice Hall
3-39
Poniendo una relacin en BCNF:
New Relations
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition
2010 Pearson Prentice Hall
3-40
Poniendo una relacin en BCNF:
SKU_DATA
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition
2010 Pearson Prentice Hall
3-41
Poniendo una relacin en BCNF:
SKU_DATA
SKU_DATA (SKU, SKU_Description, Department, Buyer)
SKU (SKU_Description, Department, Buyer)
SKU_Description (SKU, Department, Buyer)
Buyer Department
SKU_DATA (SKU, SKU_Description, Buyer)
BUYER (Buyer, Department)
Where BUYER.Buyer must exist in SKU_DATA.Buyer
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition
2010 Pearson Prentice Hall
3-42
Poniendo una relacin en BCNF:
New Relations
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition
2010 Pearson Prentice Hall
3-43
Dependencias de multivalor
Multivalued Dependencies
Una dependencia multivalor se produce
cuando un determinante coincide con un
conjunto especfico de valores:
Employee Degree
Employee Sibling
PartKit Part
El determinante de una dependencia
multivalor nunca puede ser una clave
primaria.
.
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition
2010 Pearson Prentice Hall
3-44
Dependencias de multivalor
Multivalued Dependencies
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition
2010 Pearson Prentice Hall
3-45
Eliminacin de anomalas de
dependencias multivalor
Las dependencias multivalor no son un
problema si se encuentran en una relacin
independiente, por lo tanto:
Siempre poner las dependencias multivalor
en su propia relacin.
Esto se conoce como cuarta forma normal-
4NF-Fourth Normal Form (4NF).
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition
2010 Pearson Prentice Hall
3-46

S-ar putea să vă placă și