Sei sulla pagina 1di 33

Procesamiento de base de datos: Fundamentos, Deseo e Implementacin Captulo 4 Diseo de base de datos Utilizando de normalizacin

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

Objetivos
Disear bases de datos actualizables para almacenar datos recibidos de otra fuente Utilizar SQL para acceder la estructura de las tablas. Entender las ventajas y desventajas de la normalizacin. Entender la denormalizacin. Disear una bases de datos de slo lectura para almacenar datos de bases de datos actualizables.

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

4-2

Objetivos
Reconocer y ser capaz de corregir los problemas de diseo comunes: El problema de multivalor, varias columnas El problema de valores inconsistentes El problema de los valores que faltan El problema de columna de observaciones de propsito general

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

4-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 sern almacenados como recibido, o deben transformarse para?
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall 4-4

Cuntas tablas hay?

Se deben almacenar estas dos tablas como son, o debemos combinarlas en una tabla nueva en la base de datos?
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall 4-5

Evaluar la estructura de tabla

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

4-6

Conteo de filas de una tabla


Para contar el nmero de filas de una tabla utilice la funcin incorporada de COUNT(*) en SQL: SELECT FROM COUNT(*) AS NumRows SKU_DATA;

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

4-7

Examen de las columnas


Para determinar el nmero y tipo de columnas en una tabla, utilice la instruccin SELECT de SQL Para limitar el nmero de filas recuperadas, utilice el SQL TOP {NumberOfRows} palabra clave: SELECT TOP (10) * FROM SKU_DATA;
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall 4-8

Comprobacin de la validez de las supuestas restricciones de integridad referencial

Dadas dos tablas con un supuesta restriccin de clave fornea:


SKU_DATA BUYER (SKU, SKU_Description, Department, Buyer) (BuyerName, Department)

Where SKU_DATA.Buyer must exist in BUYER.BuyerName

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

4-9

Comprobacin de la validez de las supuestas restricciones de integridad referencial Para encontrar los valores de claves extranjeros que violan la restriccin de los foreign key:
SELECT FROM WHERE Buyer SKU_DATA Buyer NOT IN (SELECT Buyer FROM SKU_DATA, BUYER WHERESKU_DATA.BUYER = BUYER.BuyerName);

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

4-10

Tipo de base de datos


Base de datos actualizable, o base de datos de slo lectura? Si se puede actualizar la base de datos, normalmente queremos tablas en BCNF. Si la base de datos es de slo lectura, no se podrn utilizar las tablas de la BCNF

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

4-11

Diseo de bases de datos de actualizable

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

4-12

Normalizacin: ventajas y desventajas

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

4-13

Tabla no normalizada: EQUIPMENT_REPAIR

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

4-14

Tablas normalizadas: ITEM and REPAIR

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

4-15

Copia de datos a tablas de nuevas


Para copiar datos de una tabla a otra, utilice el comando INSERT INTO TableName de SQL:
INSERT INTO ITEM SELECT DISTINCT ItemNumber, Type, AcquisitionCost FROM EQUIPMENT_REPAIR;
INSERT INTO REPAIR SELECT ItemNumber, RepairNumber, RepairDate, RepairAmmount FROM EQUIPMENT_REPAIR;
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall 4-16

Eleccin de no uso de BCNF


BCNF se utiliza para controlar las anomalas de dependencias funcionales. Hay veces cuando la BCNF no es deseable. El ejemplo clsico son cdigos postales:
Los cdigos postales casi nunca cambian. Cualquier anomala tiene probabilidad de ser capturada por las prcticas comerciales normales. No tener que utilizar SQL para unir datos de dos tablas aumentar la velocidad de procesamiento de la aplicacin.
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall 4-17

Dependencias multivalor
La anomalas de las dependencias multivalor son muy problemticas. Coloque siempre las columnas de una dependencia multivalor en una tabla separada (4NF).

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

4-18

Diseo de bases de datos de slo lectura

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

4-19

Bases de datos de slo lectura


Read-only databases son bases de datos nooperacionales utilizadas para extraer datos de bases de datos operacionales. Se utilizan para realizar consultas, informes y aplicaciones de minera de datos. Nunca se actualizan (en el sentido de la base de datos operativapueden tener nuevos datos importados de vez en cuando).

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

4-20

Denormalizacin
Para bases de datos de slo lectura, la normalizacin rara vez es una ventaja.
Application processing speed is more important.

Denormalizacin es la unin de los datos de tablas normalizados antes de almacenar los datos. La data es almacena en una tabla nonormalizada.
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall 4-21

Tablas normalizadas

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

4-22

Denormalizados de los datos Denormalizing the Data


INSERT INTO PAYMENT_DATA SELECT STUDENT.SID, Name, CLUB.Club, Cost, AmtPaid FROM STUDENT, PAYMENT, CLUB WHERE STUDENT.SID = PAYMENT.SID AND PAYMENT.Club = CLUB.Club;

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

4-23

Tablas personalizadas
Las bases de datos de slo lectura a menudo estn diseadas con muchas copias de los mismos datos, pero con cada copia personalizada para una aplicacin especfica.

Considere la tabla PRODUCT:


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

Tablas personalizadas
PRODUCT_PURCHASING (SKU, SKU_Description, VendorNumber, VendorName, VendorContact_1, VendorContact_2, VendorStreet, VendorCity, VendorState, VendorZip) PRODUCT_USAGE (SKU, SKU_Description, QuantitySoldPastYear, QuantitySoldPastQuarter, QuantitySoldPastMonth) PRODUCT_WEB (SKU, DetailPicture, ThumbnailPicture, MarketingShortDescription, MarketingLongDescription, PartColor) PRODUCT_INVENTORY (SKU, PartNumber, SKU_Description, UnitsCode, BinNumber, ProductionKeyCode)

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

4-25

Problemas comunes de diseo

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

4-26

El multivalor, problema de varias columnas


El multivalor multivalue, multicolumn problem se produce cuando varios valores de un atributo se almacenan en ms de una columna:
Esta es otra forma de una dependencia de multivalor. Solution = como la solucin de 4NF para dependencias multivalor, utilice una tabla independiente para almacenar los valores mltiples.
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall 4-27

EMPLOYEE (EmpNumber, Name, Email, Auto1_LicenseNumber, Auto2_LicenseNumber, Auto3_LicenseNumber)

Valores inconsistentes
Inconsistent values se producen cuando usuarios diferentes, o diferentes fuentes de datos, utilizan formas ligeramente diferentes del mismo valor de datos:
Codificaciones diferentes:
SKU_Description = 'Corn, Large Can' SKU_Description = 'Can, Corn, Large' SKU_Description = 'Large Can Corn

Diferente ortografa:
Coffee, Cofee, Coffeee
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall 4-28

Valores inconsistentes
Particularmente problemticos son los valores de las claves primarias y forneas. Para detectar:
Utilice la comprobacin de la integridad referencial ya discutido para comprobar las claves. Utilizar la clusula SQL GROUP BY en columnas sospechosas.
SELECT FROM GROUP BY SKU_Description, COUNT(*) AS NameCount SKU_DATA SKU_Description;
4-29

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

Valores que faltan Missing Values


Un missing value o null value es un valor que nunca se ha proporcionado.

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

4-30

Valores nulos
Loa valores nulos son ambiguos:
Puede indicar que un valor es inadecuado;;
DateOfLastChildbirth no es apropiado para un hombre..

Puede indicar que un valor es apropiado pero desconocido;


DateOfLastChildbirth es apropiado para una mujer, pero puede ser desconocido.

Puede indicar que un valor es apropiado y conocida, pero que nunca se ha introducido;
DateOfLastChildbirth es apropiado para una mujer y pueden ser conocidas, pero nadie lo ha grabado en la base de datos.
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall 4-31

Comprobacin de valores nulos


Use la palabra clave SQL IS NULL para comprobar los valores nulos:
SELECT FROM WHERE COUNT(*) AS QuantityNullCount ORDER_ITEM Quantity IS NULL;

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

4-32

La columna de observaciones de propsito general


Una columna de observaciones de propsito general general-purpose remarks column es una columna con un nombre como: Observaciones Remarks Comentarios Comments Notas Notes A menudo contiene datos importantes almacenados en una forma incoherente, verbal y detallada. Un uso tpico es almacenar datos de los intereses del cliente. Esta columna puede: Be used inconsistently Contener varios elementos de datos.
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall 4-33

Potrebbero piacerti anche