Upload
jhpll
View
222
Download
0
Embed Size (px)
Citation preview
7/27/2019 Procesamiento de Bases de Datos Kroenker Capitulo 4
1/33
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall
Procesamiento de base de datos:Fundamentos, Deseo e
Implementacin
Captulo 4
Diseo de base de datosUtilizando de normalizacin
4-1
7/27/2019 Procesamiento de Bases de Datos Kroenker Capitulo 4
2/33
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall
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.
4-2
7/27/2019 Procesamiento de Bases de Datos Kroenker Capitulo 4
3/33
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall
Objetivos
Reconocer y ser capaz de corregir losproblemas 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 depropsito general
4-3
7/27/2019 Procesamiento de Bases de Datos Kroenker Capitulo 4
4/33
7/27/2019 Procesamiento de Bases de Datos Kroenker Capitulo 4
5/33
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall
Cuntas tablas hay?
Se deben almacenar estas dos tablas como son, o debemos combinarlas enuna tabla nueva en la base de datos?
4-5
7/27/2019 Procesamiento de Bases de Datos Kroenker Capitulo 4
6/33
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall
Evaluar la estructura de tabla
4-6
7/27/2019 Procesamiento de Bases de Datos Kroenker Capitulo 4
7/33
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall
Conteo de filas de una tabla
Para contar el nmero de filas de unatabla utilice la funcin incorporada de
COUNT(*) en SQL:
SELECT COUNT(*) AS NumRows
FROM SKU_DATA;
4-7
7/27/2019 Procesamiento de Bases de Datos Kroenker Capitulo 4
8/33
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall
Examen de las columnas
Para determinar el nmero y tipo decolumnas en una tabla, utilice lainstruccin SELECT de SQL
Para limitar el nmero de filasrecuperadas, utilice el SQL TOP{NumberOfRows} palabra clave:SELECT TOP (10) *FROM SKU_DATA;
4-8
7/27/2019 Procesamiento de Bases de Datos Kroenker Capitulo 4
9/33
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall
Comprobacin de la validez de las supuestasrestricciones de integridad referencial
Dadas dos tablas con un supuestarestriccin de clave fornea:
SKU_DATA (SKU, SKU_Description, Department, Buyer )BUYER (BuyerName, Department)
Where SKU_DATA.Buyer must exist in BUYER.BuyerName
4-9
7/27/2019 Procesamiento de Bases de Datos Kroenker Capitulo 4
10/33
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall
Comprobacin de la validez de las supuestasrestricciones de integridad referencial
Para encontrar los valores de claves extranjerosque violan la restriccin de los foreign key :SELECT Buyer
FROM SKU_DATA WHERE Buyer NOT IN
(SELECT BuyerFROM SKU_DATA, BUYER
WHERESKU_DATA.BUYER =BUYER.BuyerName);
4-10
7/27/2019 Procesamiento de Bases de Datos Kroenker Capitulo 4
11/33
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall
Tipo de base de datos
Base de datos actualizable, o base dedatos 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
4-11
7/27/2019 Procesamiento de Bases de Datos Kroenker Capitulo 4
12/33
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall
Diseo de bases de datos deactualizable
4-12
7/27/2019 Procesamiento de Bases de Datos Kroenker Capitulo 4
13/33
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall
Normalizacin:ventajas y desventajas
4-13
7/27/2019 Procesamiento de Bases de Datos Kroenker Capitulo 4
14/33
7/27/2019 Procesamiento de Bases de Datos Kroenker Capitulo 4
15/33
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall
Tablas normalizadas:ITEM and REPAIR
4-15
7/27/2019 Procesamiento de Bases de Datos Kroenker Capitulo 4
16/33
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall
Copia de datos a tablas denuevas
Para copiar datos de una tabla a otra,utilice el comando INSERT INTOTableName de SQL:
INSERT INTO ITEM SELECT DISTINCT ItemNumber, Type,
AcquisitionCostFROM EQUIPMENT_REPAIR;
INSERT INTO REPAIR SELECT ItemNumber, RepairNumber,
RepairDate, RepairAmmountFROM EQUIPMENT_REPAIR;
4-16
7/27/2019 Procesamiento de Bases de Datos Kroenker Capitulo 4
17/33
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall
Eleccin de no uso de BCNF
BCNF se utiliza para controlar las anomalas dedependencias 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 dela aplicacin.
4-17
7/27/2019 Procesamiento de Bases de Datos Kroenker Capitulo 4
18/33
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall
Dependencias multivalor
La anomalas de las dependenciasmultivalor son muy problemticas.
Coloque siempre las columnas de unadependencia multivalor en una tablaseparada (4NF).
4-18
7/27/2019 Procesamiento de Bases de Datos Kroenker Capitulo 4
19/33
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall
Diseo de bases de datos deslo lectura
4-19
7/27/2019 Procesamiento de Bases de Datos Kroenker Capitulo 4
20/33
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall
Bases de datos de slo lectura
Read-only databases son bases de datos no-operacionales utilizadas para extraer datos debases de datos operacionales.
Se utilizan para realizar consultas, informes yaplicaciones de minera de datos.
Nunca se actualizan (en el sentido de la base de
datos operativa pueden tener nuevos datosimportados de vez en cuando).
4-20
7/27/2019 Procesamiento de Bases de Datos Kroenker Capitulo 4
21/33
7/27/2019 Procesamiento de Bases de Datos Kroenker Capitulo 4
22/33
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall
Tablas normalizadas
4-22
7/27/2019 Procesamiento de Bases de Datos Kroenker Capitulo 4
23/33
7/27/2019 Procesamiento de Bases de Datos Kroenker Capitulo 4
24/33
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall
Tablas personalizadas
Las bases de datos deslo lectura a menudoestn diseadas conmuchas copias de losmismos datos, pero concada copia personalizadapara una aplicacinespecfica .
Considere la tablaPRODUCT:
4-24
7/27/2019 Procesamiento de Bases de Datos Kroenker Capitulo 4
25/33
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall
Tablas personalizadasPRODUCT_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)
4-25
7/27/2019 Procesamiento de Bases de Datos Kroenker Capitulo 4
26/33
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall
Problemas comunes de diseo
4-26
7/27/2019 Procesamiento de Bases de Datos Kroenker Capitulo 4
27/33
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall
El multivalor, problema de variascolumnas
El multivalor multivalue , multicolumn problemse produce cuando varios valores de un atributose almacenan en ms de una columna :EMPLOYEE (EmpNumber, Name, Email, Auto1_LicenseNumber,
Auto2_LicenseNumber, Auto3_LicenseNumber)
Esta es otra forma de una dependencia demultivalor.
Solution = como la solucin de 4NF para
dependencias multivalor, utilice una tablaindependiente para almacenar los valoresmltiples.
4-27
7/27/2019 Procesamiento de Bases de Datos Kroenker Capitulo 4
28/33
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall
Valores inconsistentes
Inconsistent values se producen cuandousuarios diferentes, o diferentes fuentesde 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
4-28
7/27/2019 Procesamiento de Bases de Datos Kroenker Capitulo 4
29/33
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall
Valores inconsistentes
Particularmente problemticos son los valoresde las claves primarias y forneas.
Para detectar:
Utilice la comprobacin de la integridad referencial yadiscutido para comprobar las claves.
Utilizar la clusula SQL GROUP BY en columnassospechosas.
SELECT SKU_Description, COUNT(*) AS NameCountFROM SKU_DATA GROUP BY SKU_Description;
4-29
7/27/2019 Procesamiento de Bases de Datos Kroenker Capitulo 4
30/33
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall
Valores que faltanMissing Values
Un missing value o null value es unvalor que nunca se ha proporcionado.
4-30
7/27/2019 Procesamiento de Bases de Datos Kroenker Capitulo 4
31/33
7/27/2019 Procesamiento de Bases de Datos Kroenker Capitulo 4
32/33
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall
Comprobacin de valores nulos
Use la palabra clave SQL IS NULL paracomprobar los valores nulos:
SELECT COUNT(*) AS QuantityNullCountFROM ORDER_ITEM
WHERE Quantity IS NULL;
4-32
7/27/2019 Procesamiento de Bases de Datos Kroenker Capitulo 4
33/33
KROENKE ANDAUER DATABASE PROCESSING 11th Editionll
La columna de observaciones de propsitogeneral
Una columna de observaciones de propsito generalgeneral-purpose remarks column es una columnacon un nombre como: Observaciones Remarks Comentarios Comments Notas Notes
A menudo contiene datos importantes almacenados enuna 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.
4 33