Sei sulla pagina 1di 77

Procesamiento de base de datos: Fundamentos, Deseo e Implementacin

Captulo 6

Transformando Modelos de datos en Diseos de base de datos


KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall 6-1

Objetivos
Comprender cmo transformar los modelos de datos en los diseos de la base de datos. Identificar las claves primarias y comprender cundo utilizar una clave suplente. Comprender el uso de restricciones de integridad referencial. Entender el uso de acciones de integridad referencial. Representar entidades dbiles como tablas.

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

6-2

Objetivos
Representar los subtipos y supertipos como tablas. Representar relaciones recursivas como tablas. Representar relaciones ternarios como tablas. Poder implementar acciones de integridad referencial requeridas por la cardinalidad mnima.

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

6-3

Pasos para transformar un modelo de datos en un diseo de base de datos

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

6-4

Crear una tabla para cada entidad


EMPLOYEE (EmployeeNumber, EmployeeName, Phone, Email, HireDate, ReviewDate, EmpCode)
Primary key is designated by the key symbol

Note shadowless table

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

6-5

Seleccione la clave primaria


La clave primaria ideal debe ser corta, numrica y fija. Las claves suplentes renen el ideal, pero no tienen ningn significado para los usuarios.

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

6-6

Clave candidata especfica Specify Candidate (Alternate) Keys


Los trminos candidate key y alternate key son sinnimos. Las claves candidatas candidate keys son identificadores alternos de filas nicas en una tabla. Erwin utiliza AKn.m anotaciones, donde n es el nmero de la clave alterna, y m es el nmero de la columna en esa clave alterna.
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall 6-7

Clave candidata especfica Specify Candidate (Alternate) Keys

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

6-8

Especificar propiedades de columna: Null Status


Null status indica si el valor de la columna puede ser nulo NULL o no.

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

6-9

Especificar propiedades de columna : Tipo de data Data Type


Tipos de data genricos:
CHAR(n) VARCHAR(n) DATE TIME MONEY INTEGER DECIMAL
6-10

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

Especificar propiedades de columna : SQL Server 2008 Data Types

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

6-11

Especificar propiedades de columna : Oracle Database 11g Data Types

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

6-12

Especificar propiedades de columna : MySQL 5.1Data Types I

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

6-13

Especificar propiedades de columna : MySQL 5.1Data Types II

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

6-14

Especificar propiedades de columna : Valor predefinido Default Value


Un valor predefinido default value es el valor provisto por el DBMS cuando una nueva fila es creada.

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

6-15

Especificar propiedades de columna : Data Constraints


Restricciones de la data Data constraints son

limitaciones del valor de la data:

Domain constraint los valores de columna deben estar en un conjunto dado de valores especficos. Range constraint los valores de columna deben ser dentro de un determinado intervalo de valores. Intrarelation constraintlos valores de columna estn limitados en comparacin a los valores de otras columnas de la misma tabla. Interrelation constraint valores de columna estn limitados en comparacin a los valores de otras columnas de otras tablas [referential integrity constraints on foreign keys].
6-16

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

Verificacin de normalizacin Verify Normalization


Las tablas deben ser normalizadas basado en el modelo de la data. Verificar que todas las tablas esten en:
BCNF 4NF

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

6-17

Crear relaciones: 1:1 Strong Entity Relationships


Ponga la clave de una entidad en la otra entidad como una clave fornea.
Cualquiera de los diseos trabajarno parent, no child. Las consideraciones de cardinalidad mnima pueden ser importantes.
O-M requerir un diseo diferente a M-O. Un diseo ser ms preferido.

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

6-18

Crear relaciones : 1:1 Strong Entity Relationships

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

6-19

Crear relaciones : 1:N Strong Entity Relationships


Colocar la clave primaria de la tabla a un lado de la relacin en la tabla, en varias de las relaciones como en la clave fornea. Un lado es la tabla de parent y el lado de muchos es la tabla de child, por lo tanto, coloque la clave de parent en la tabla de child.
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall 6-20

Crear relaciones : 1:N Strong Entity Relationships

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

6-21

Crear relaciones : N:M Strong Entity Relationships


En una relacin de entidad fuerte de muchos a muchos-N:M no hay lugar para una clave fornea en las tablas..
A COMPANY puede suministrar muchas PARTs. A PART puede ser suministrado por muchas COMPANYs.

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

6-22

Crear relaciones: N:M Strong Entity Relationships


La solucin para crear una interseccin en una tabla intersection table, almacena datos a cerca de las filas correspondientes de cada entidad. La tabla de interseccin consta slo de las claves primarias de cada tabla que forma una clave primaria compuesta. Cada clave primaria de cada tabla se convierte en una clave fornea vinculada nuevamente a la tabla.
COMPANY_PART_INT (CompanyName, PartNumber)

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

6-23

Crear relaciones : N:M Strong Entity Relationships


COMPANY_PART_INT (CompanyName, PartNumber)

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

6-24

Relaciones utilizando ID-Dependent Entities: Cuatro usos de ID-Dependent Entities

Representando relaciones de muchos a muchos-N:M Asociacin de Relaciones Atributos multivalor Relaciones de archeotipos e instancias
Archetype/Instance Relationships

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

6-25

Relaciones utilizando ID-Dependent Entities: Association Relationships


Una interseccin de tabla: Mantiene las relaciones entre dos entidades fuertes en una relacin de muchos a muchos-N:M Contiene slo las claves principales de las dos entidades: Como una clave primaria compuesta Como claves forneas Una tabla asociada association table Posee todas las caractersticas de una interseccin. PLUS posee una o ms columnas de atributos especficos a las asociaciones de las otras dos entidades

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

6-26

Relaciones utilizando ID-Dependent Entities: Association Relationships


QUOTATION (CompanyName, PartNumber, Price)

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

6-27

Relaciones utilizando ID-Dependent Entities: Multivalued Attributes

As a data model

As a database design

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

6-28

Relaciones utilizando ID-Dependent Entities: Archetype/Instance Pattern

As a data model

As a database design

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

6-29

Relaciones utilizando Weak Entities: Archetype/Instance Pattern

As a data model

As a database design

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

6-30

Relaciones de entidad mixta Mixed Entity Relationships

As a data model

As a database design

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

6-31

Relaciones de entidad mixta : Modelo de SALES_ORDER

As a data model

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

6-32

Relaciones de entidad mixta :


Modelo de SALES_ORDER

As a database design

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

6-33

Relaciones de subtipo Subtype Relationships


As a data model As a database design

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

6-34

Relaciones recursivas: 1:1 Recursive Relationships


As a data model As a database design

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

6-35

Relaciones recursivas : 1:N Recursive Relationships


As a data model As a database design

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

6-36

Relaciones recursivas : N:M Recursive Relationships


As a data model As a database design

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

6-37

Representacin de las relaciones ternarias y de orden superior


Las relaciones ternarios y de orden superior pueden ser limitadas por la relacin binaria que las componen. MUST constraint requiere que una entidad debe combinarse con otra entidad en la relacin ternaria (o de orden superior). MUST NOT constraint requiere que ciertas combinaciones de dos entidades no se permiten que se produzca en la relacin ternaria (o de orden superior). MUST COVER constraint una relacin binaria especifica todas las combinaciones de dos entidades que deben aparecer en la relacin ternaria (o de orden superior).
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall 6-38

MUST Constraint

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

6-39

MUST NOT Constraint

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

6-40

MUST COVER Constraint

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

6-41

Diseo de cardinalidad mnima


Las relaciones pueden tener los siguientes tipos de cardinalidad mnima:
O-O: parent opcional y child opcional M-O: parent mandatorio y child opcional O-M: parent opcional y child mandatorio M-M: parent mandatorio y child mandatorio

Se utilizar el trmino action en el sentido de minimum cardinality enforcement action. Ninguna accin debe ser tomada para las relaciones O-O.
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall 6-42

Actualizaciones en cascada y eliminaciones


Una actualizacin en cascada cascading update ocurre cuando se aplica un cambio a la clave primaria de parents, entonces se aplicar a la clave fornea de childs. Las claves suplentes nunca se cambian y no hay necesidad para las actualizacones cuando estas son usadas. Una eliminacin en cascada cascading delete se produce cuando las filas asociadas a child son eliminadas junto con la eliminacin de una fila parent. Para las entidades fuertes, generally do not cascade deletes. Para las entidades dbiles, generally do cascade deletes.

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

6-43

Accin cuando el Parent Is es requerido [Figure 6-28(a)]

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

6-44

Accin cuando el Child es requerido [Figure 6-28(b)]

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

6-45

Programacin de la aplicacin: desencadenadores Application Programming: Triggers


La programacin de aplicaciones utilizada por SQL est incrustado en desencadenadores, almacena procedimientos, y otros cdigos del programa para realizar una tarea especfica. Un trigger es un programa almacenado es ejecutado por el BMS, siempre que se produzca un evento especificado en una tabla o una vista. Los desencadenadores se utilizan para aplicar medidas de represin de cardinalidad mnima especfica no programadas en el DBMS..
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall 6-46

Accciones para aplicar; para cumplir la cardinalidad mnima

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

6-47

Implementacin de acciones para relaciones de M-O


Ver la figura 6-28(a) (diapositiva 44 en esta presentacin) Asegrese de que:

El DBMS har valer la accin siempre y cuando:

Todo child tengan un parent. Las operaciones no deben crear orphans. Hasta que las restricciones de integridad referencial estn bien definidas. Que la columna de clave fornea no sea nula NOT NULL..
6-48

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

Implementacin de acciones para relaciones de M-O Vea la figura 6-28(b) (diapositiva 45 en esta presentacin) El DBMS no ofrece mucha ayuda. Los desencadenantes u otros cdigos de aplicacin tendrn que ser por escrito.

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

6-49

Implementacin de acciones para las relaciones de M-M


El peor de los mundos posibles:
Especialmente en las relaciones entre entidades fuertes. En las relaciones entre las entidades fuertes y dbiles del problema a menudo es ms fcil cuando todas las transacciones se inician desde el lado fuerte.

Todas las acciones en ambas figuras 6-28(a) y figura 6-28(b) deben ser aplicadas simultneamente. Ser necesaria la programacin de aplicaciones complicadas y de cuidado.
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall 6-50

Implementacin de acciones para las relaciones de M-O: DEPARTMENT and EMPLOYEE

DEPARMENT es parentEMPLOYEE es child. Accin en parent:


DEPARTMENT las filas pueden ser creadas. DEPARTMENT clave primaria cascade updates if not surrogate key. Si un DEPARTMENT es borrado, podremos eliminar el asociado EMPLOYEEs?
Si es cierto cascade deletes. Si es falsoprohibit associate employees.
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall 6-51

Implementacin de acciones para las relaciones de M-O : DEPARTMENT and EMPLOYEE

Acciones en child
Establezca restricciones de integridad referencial y clave externa a NOT NULL.
Un nuevo EMPLOYEE debe poseer un DEPARTMENT vlido o no permitir la insercin. Un EMPLOYEEs puede ser reasignado a un DEPARTMENT diferente si un DEPARTMENT es vlida, desactive la actualizacin.

EMPLOYEEs, pueden ser eliminados.


KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall 6-52

Implementacin de acciones para las relaciones de O-M: DEPARTMENT and EMPLOYEE DEPARMENT es parentEMPLOYEE es child. Debe haber al menos una fila de child para cada parent en todo momento. Acciones en parent:

DEPARTMENT slo se pueden crear filas cuando se crea una relacin a una fila de child REQUIERE UN DESENCADENADOR. DEPARTMENT slo se pueden actualizar las claves primarias si al menos un EMPLOYEE Tambin se actualiza la clave fornea REQUIERE UN DESENCADENADOR.. Puede un DEPARTMENT ser eliminado?
Ses el EMPLOYEE que se requiere.
6-53

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

Implementacin de acciones para las relaciones de O-M : DEPARTMENT and EMPLOYEE

Acciones en child
OK para insertar un nuevo EMPLOYEE. Debe haber un EMPLOYEE para cada departamento.
No se puede cambiar clave fornea de EMPLOYEE- (DEPARTMENT) if last EMPLOYEE en el DEPARTMENT. No puede eliminar un EMPLOYEE if last EMPLOYEE en el DEPARTMENT.

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

6-54

DEPARMENT es parentEMPLOYEE es child. Todos los anteriores se le aplica el mismo tiempo! (M-O y O-M) Esto crea conflictos que requieren programacin cuidadosa para evitar o solucionar problemas tales como: Al insertar un nuevo DEPARTMENT se ejecutar un desencadenador que intenta crear uno nuevo EMPLOYEE, pero la fila de EMPLOYEE est cotejada por el DBMS para validar el DEPARTMENT antes que la transaccin sea completada. Si se trata de eliminar un DEPARTMENT con cualquier EMPLOYEEs encontraremos el descencadenador trigger en EMPLOYEE el eliminar no permitir eliminar el ltimo EMPLOYEE, por lo que no podemos eliminar el DEPARMENT.
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall 6-55

Implementacin de acciones para las relaciones de M-M: DEPARTMENT and EMPLOYEE

Documentar el diseo de cardinalidad mnima Documentacin requerida Parents


COMPANY es parent, DEPARTMENT es child. La relacin es M-O. Esto puede hacerse a menudo en las herramientas de diseo de base de datos.

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

6-56

Documentar el diseo de cardinalidad mnima: Documentacin requerida Children

Necesita documentacin escrita. Puede utilizar la figura 6-2b(b) como un boilerplate document y rellenar para cada situacin especfica.

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

6-57

Documentar el diseo de cardinalidad mnima : Documentacin requerida Children


HOUSE es parent, INSPECTION es child. La relacin es O-M. Utilice la documentacin basada en la figura 628(b)vea la prxima diapositiva.

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

6-58

Documentar el diseo de cardinalidad mnima : Documentacin requerida Children

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

6-59

Resumen del diseo de cardinalidad mnima

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

6-60

Ver Galera de Ridge


Ver:
La Galera de Ridge es una pequea galera de arte que ha estado en el negocio durante 30 aos.

Vende obras de arte contemporneo Europeo y Amrica del Norte.


View Ridge tiene un propietario, tres vendedores, y dos empleados. View Ridge posee todo el arte que vende; no alberga ningn elemento sobre una base de envo.

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

6-61

Requisitos de aplicacin
Requisitos de aplicacin de View Ridge: Realizar un seguimiento de los clientes y artistas interesados. Registro de las compras de la Galera. Registro de las compras de arte de los clientes Lista de los artistas y obras que han aparecido en la Galera. Informe de cun rpido se han vendido obras de un artista y en qu margen. Mostrar el inventario actual en una pgina Web.
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall 6-62

Modelo de la data de View Ridge

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

6-63

Diseo de la base de datos 1 de View Ridge

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

6-64

Las claves suplentes son necesarios para:


CUSTOMER WORK TRANS

Diseo de la base de datos de View Ridge

Tambin podemos utilizar una clave suplente para ARTIST. Esto cambiar las relaciones de identificacin de las relaciones no identificadas. WORK y TRANS se convierten en entidades dbiles, non-ID-dependent. Claves forneas:
TRANS.CustomerID es NULL permite la adqusicin sin una venta inmediata a un cliente CUSTOMER. Todas las otras claves son forneas- NOT NULL.
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall 6-65

Diseo de la base de datos 2 de View Ridge

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

6-66

Aplicacin mnima de cardinalidad de las relaciones de View Ridge

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

6-67

Aplicacin mnima de cardinalidad : View Ridge M-O Relationships ARTIST-to-WORK

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

6-68

Aplicacin mnima de cardinalidad : View Ridge M-O Relationships WORK-to-TRANS

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

6-69

Aplicacin mnima de cardinalidad : View Ridge M-O Relationships CUSTOMER-to-CUSTOMER_ARTIST_INT

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

6-70

Aplicacin mnima de cardinalidad : View Ridge M-O Relationships ARTIST-to-CUSTOMER_ARTIST_INT

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

6-71

Aplicacin mnima de cardinalidad : View Ridge M-M Relationships

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

6-72

Diseo de la tabla de View Ridge ARTIST

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

6-73

Diseo de la tabla de View Ridge : WORK

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

6-74

Diseo de la tabla de View Ridge : TRANS

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

6-75

Diseo de la tabla de View Ridge : CUSTOMER

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

6-76

Diseo de la tabla de View Ridge : CUSTOMER_ARTIST_INT

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

6-77

Potrebbero piacerti anche