Procesamiento de base de datos: Fundamentos, Deseño e Implementación

Documentos relacionados
El modelo relacional y normalización

TRANSACT-SQL, DISEÑO Y PROGRAMACIÓN DE BASES DE DATOS EN SQL SERVER 2008

ÍNDICE. Introducción... Capítulo 1. Novedades de Access

FUNCIONES EN SQL SERVER

Unidad III: Lenguaje de manipulación de datos (DML) 3.1 Inserción, eliminación y modificación de registros

Modificación de datos

1. Lenguaje de Definición de Datos. 2. Lenguaje de Manipulación de. Datos. M. C. Gustavo Alfonso Gutiérrez Carreón

Bases de Datos SQL 1 SQL. Jorge Pérez R. Universidad de Talca, II Semestre 2006

Consultas con combinaciones

Sistemas de Datos Curso: Ernesto Chinkes. Subconsultas Stored Procedures - Triggers

CURSO DE SQL SERVER 2005

ACERCA DE LOS AUTO RES... III AGRADECIMIENTOS... xi INTRODUCCION... Xl

8 SQL SERVER 2008 RA-MA

OPTIMIZACIÓN DE CONSULTAS EN SQL. Análisis de Consultas y Transacciones Ajuste de Indices Ajuste de Consultas

Vistas en InformiX Sistemas de Bases de Datos II EMT CETP A/S Leonardo Carámbula

A.1. Definiciones de datos en SQL

: COMPUTACIÓN E INFORMATICA : Ingeniería de Software Ingeniería de Redes y Comunicaciones : Administración de Bases de Datos I : T-INF127

MANUAL BÁSICO DEL LENGUAJE SQL

Tema 33. El lenguaje SQL

1.264 Tema 7. Introducción a SQL

Bases de Datos 2. Teórico

CONSULTAS BASICAS EN SQL SERVER

ACCESS 2010 FÁCIL - ONLINE - EN LÍNEA

ÍNDICE INTRODUCCIÓN...17

GESTORES GESTORES DE BASES DE DATOS

SENTENCIAS Y CONSULTAS EN SQL SERVER

6- Combinación de tablas

SINTAXIS DE SQL-92. <definición de esquema >::= CREATE SCHEMA <cláusula de nombre de esquema> [ <elemento de esquema>... ]

Introducción SQL. Ges2ón y Modelación de Datos María Constanza Pabón

RICHARD ALEXANDER BETANCUR SIERRA

Se considera a Oracle como uno de los sistemas de bases de datos más completos, destacando su:

Sql Basico. Seminar Introduction

8 MICROSOFT SQL SERVER 2008 R2. CURSO PRÁCTICO RA-MA

Práctica A: Trabajo con subconsultas

Bases de Datos Relacionales

Base de datos I Facultad de Ingeniería. Escuela de computación.

MICROSOFT ACCESS 2007 (COMPLETO)

Procedimientos para agrupar y resumir datos

Vistas en MS SQL Server. Bases de Datos I Universidad Católica II Cuatrimestre

ÍNDICE INTRODUCCIÓN...13

Bases de Datos: Structured Query Language (SQL)

BASES DE DATOS - SQL. Javier Enciso

Computación Web (Curso 2015/2016)

LENGUAJE DE CONSULTA ESTRUCTURADO (SQL)

Práctica A: Procedimientos para agrupar y resumir datos

LENGUAJE DE CONSULTA ESTRUCTURADO - SQL CONTENIDO

En este curso se presenta un análisis profundo de la base de datos MySQL para los sistemas operativos Windows y Linux.

SQL Los fundamentos del lenguaje

Tema: Combinación de tablas

Access SQL: DDL y DML. Una empresa de Ingeniería precisa una base de datos para la gestión de sus proyectos.

Acceso a bases de datos MySQL con PHP

1. DML. Las subconsultas

Tema: USO DE COMBINACIONES EXTERNAS.

Práctica 3. Consultas SQL

Unidad. Lenguaje SQL. (Structured Query Language)

Diseño de bases de datos

Datos Agregados por medio de Funciones de Grupo. Copyright Oracle Corporation, All rights reserved.

Repaso de Conceptos Básicos de Bases de Datos

Restricciones de Integridad

SQL (Structured Query Language)

Structured Query Language (SQL) Fundamentos de Bases de Datos InCo

Concepto de vista. (con ciertas limitaciones). nivel físico) Una vista es una tabla virtual (no tiene una correspondencia a

BASE DE DATOS QUÉ ES UNA BASE DE DATOS?

COMANDOS DE SQL, OPERADORES, CLAUSULAS Y CONSULTAS SIMPLES DE SELECCIÓN

SQL (DML) Carlos A. Olarte Gestión y Modelación de SQL Datos (DML)

Curso SQL Nivel Avanzado 1. Miguel Jurado García

MANUAL BÁSICO DEL LENGUAJE SQL

LAS SUBCONSULTAS SQL SERVER Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

5- Uso de sentencias avanzadas

Diseño de Bases de Datos Bases de Datos Documentales Grao en Información e Documentación Curso 2013/2014

T12 Vistas y tablas temporales

Oracle Database: Programación con PL/SQL

Sub consultas avanzadas

m047a Curso Programando una Base de Datos SQL Server 2008, 36 h Creación B.D. y Constraints

LENGUAJE SQL. En Mysql se utiliza un subconjunto de SQL (update, insert into, delete, select, truncate,etc).

SQL Server FEMEPA SQL Server 2000

PROGRAMANDO BASES DE DATOS PostgreSQL INTRODUCCIÓN INTRODUCCIÓN A LAS BASES DE DATOS (L1)

Ficheros y Bases de Datos Curso Primer Parcial. 7 de FEBRERO de Nombre:

Bases de datos 1. Teórico: Modelo Relacional

SQL (Structured Query Language)- DML

Consultas SQL INNER JOIN

UNIVERSIDAD AUTONOMA DE LOS ANDES UNIANDES LENGUAJE SQL. SQL es un estándar un lenguaje estructurado para consultas

INDICE Primera Parte. Panorámica general de SQL 2. Rápido repaso de SQL 3. SQL en Perspectiva

1. Dadas las tablas ALUM y NUEVOS, insertar en la tabla ALUM los nuevos alumnos.

Tema: Uso de sentencias SQL

8283: Administración y programación en Microsoft SQL Server 2012

LENGUAJE DE MANIPULACIÓN DE DATOS

Formato para prácticas de laboratorio

Objetos de la Base de Datos

Constraints (Restricciones) Copyright Oracle Corporation, All rights reserved.

UNIDAD 1.- PARTE 1 MANIPULACIÓN AVANZADA DE DATOS CON SQL. BASES DE DATOS PARA APLICACIONES. Xochitl Clemente Parra Armando Méndez Morales

EL ENTORNO DE TRABAJO SQL ORACLE

Asignatura: Administración de Bases de Datos

ÍNDICE. Introducción... XVII. Capítulo 1. Oracle 10g y el Grid Computing... 1

Lenguaje para descripción de datos

Bases de Datos. Diseño y Programación Avanzada de Aplicaciones. Curso

Escuela Técnica Superior de Ingeniería Informática Departamento de Lenguajes y Sistemas Informáticos. Triggers

Base de Datos SQL Server

SERVICIO NACIONAL DE APRENDIZAJE SENA

FORMACIÓN E-LEARNING. Curso de Lenguaje SQL para Oracle

Transcripción:

Procesamiento de base de datos: Fundamentos, Deseño e Implementación Capítulo 4 Diseño de base de datos Utilizando de normalización 4-1

Objetivos Diseñar 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 normalización. Entender la denormalización. Diseñar una bases de datos de sólo lectura para almacenar datos de bases de datos actualizables. 4-2

Objetivos Reconocer y ser capaz de corregir los problemas de diseño 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 propósito general 4-3

Premisas del capítulo Hemos recibido una o más tablas de datos existentes. Los datos son almacenados en una base de datos nueva. PREGUNTA: Los datos serán almacenados como recibido, o deben transformarse para? 4-4

Cuántas tablas hay? Se deben almacenar estas dos tablas como son, o debemos combinarlas en una tabla nueva en la base de datos? 4-5

Evaluar la estructura de tabla 4-6

Conteo de filas de una tabla Para contar el número de filas de una tabla utilice la función incorporada de COUNT(*) en SQL: SELECT FROM COUNT(*) AS NumRows SKU_DATA; 4-7

Examen de las columnas Para determinar el número y tipo de columnas en una tabla, utilice la instrucción SELECT de SQL Para limitar el número de filas recuperadas, utilice el SQL TOP {NumberOfRows} palabra clave: SELECT TOP (10) * FROM SKU_DATA; 4-8

Comprobación de la validez de las supuestas restricciones de integridad referencial Dadas dos tablas con un supuesta restricción de clave foránea: SKU_DATA BUYER (SKU, SKU_Description, Department, Buyer) (BuyerName, Department) Where SKU_DATA.Buyer must exist in BUYER.BuyerName 4-9

Comprobación de la validez de las supuestas restricciones de integridad referencial Para encontrar los valores de claves extranjeros que violan la restricción de los foreign key : SELECT FROM WHERE Buyer SKU_DATA Buyer NOT IN (SELECT Buyer FROM SKU_DATA, BUYER WHERESKU_DATA.BUYER = BUYER.BuyerName); 4-10

Tipo de base de datos Base de datos actualizable, o base de datos de sólo lectura? Si se puede actualizar la base de datos, normalmente queremos tablas en BCNF. Si la base de datos es de sólo lectura, no se podrán utilizar las tablas de la BCNF 4-11

Diseño de bases de datos de actualizable 4-12

Normalización: ventajas y desventajas 4-13

Tabla no normalizada: EQUIPMENT_REPAIR 4-14

Tablas normalizadas: ITEM and REPAIR 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 FROM INSERT INTO REPAIR SELECT FROM DISTINCT ItemNumber, Type, AcquisitionCost EQUIPMENT_REPAIR; ItemNumber, RepairNumber, RepairDate, RepairAmmount EQUIPMENT_REPAIR; 4-16

Elección de no uso de BCNF BCNF se utiliza para controlar las anomalías de dependencias funcionales. Hay veces cuando la BCNF no es deseable. El ejemplo clásico son códigos postales: Los códigos postales casi nunca cambian. Cualquier anomalía tiene probabilidad de ser capturada por las prácticas comerciales normales. No tener que utilizar SQL para unir datos de dos tablas aumentará la velocidad de procesamiento de la aplicación. 4-17

Dependencias multivalor La anomalías de las dependencias multivalor son muy problemáticas. Coloque siempre las columnas de una dependencia multivalor en una tabla separada (4NF). 4-18

Diseño de bases de datos de sólo lectura 4-19

Bases de datos de sólo 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 minería de datos. Nunca se actualizan (en el sentido de la base de datos operativa pueden tener nuevos datos importados de vez en cuando). 4-20

Denormalización Para bases de datos de sólo lectura, la normalización rara vez es una ventaja. Application processing speed is more important. Denormalización es la unión de los datos de tablas normalizados antes de almacenar los datos. La data es almacena en una tabla nonormalizada. 4-21

Tablas normalizadas 4-22

Denormalizados de los datos Denormalizing the Data INSERT INTO PAYMENT_DATA SELECT FROM WHERE AND STUDENT.SID, Name, CLUB.Club, Cost, AmtPaid STUDENT, PAYMENT, CLUB STUDENT.SID = PAYMENT.SID PAYMENT.Club = CLUB.Club; 4-23

Tablas personalizadas Las bases de datos de sólo lectura a menudo están diseñadas con muchas copias de los mismos datos, pero con cada copia personalizada para una aplicación específica. Considere la tabla PRODUCT: 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) 4-25

Problemas comunes de diseño 4-26

El multivalor, problema de varias columnas El multivalor multivalue, multicolumn problem se produce cuando varios valores de un atributo se almacenan en más de una columna: EMPLOYEE (EmpNumber, Name, Email, Auto1_LicenseNumber, Auto2_LicenseNumber, Auto3_LicenseNumber) Esta es otra forma de una dependencia de multivalor. Solution = como la solución de 4NF para dependencias multivalor, utilice una tabla independiente para almacenar los valores múltiples. 4-27

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 ortografía: Coffee, Cofee, Coffeee 4-28

Valores inconsistentes Particularmente problemáticos son los valores de las claves primarias y foráneas. Para detectar: Utilice la comprobación de la integridad referencial ya discutido para comprobar las claves. Utilizar la cláusula SQL GROUP BY en columnas sospechosas. SELECT FROM GROUP BY SKU_Description, COUNT(*) AS NameCount SKU_DATA SKU_Description; 4-29

Valores que faltan Missing Values Un missing value o null value es un valor que nunca se ha proporcionado. 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. 4-31

Comprobación 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; 4-32

La columna de observaciones de propósito general Una columna de observaciones de propósito 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 típico es almacenar datos de los intereses del cliente. Esta columna puede: Be used inconsistently Contener varios elementos de datos. 4-33