Procesamiento de Bases de Datos Kroenker Capitulo 4

download Procesamiento de Bases de Datos Kroenker Capitulo 4

of 33

Transcript of Procesamiento de Bases de Datos Kroenker Capitulo 4

  • 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