Base de Datos Libro 1_STC(CorregidoCarmen).pdf

Base de Datos I Código de Curso: TWB22B Versión 5.0 Guía del Estudiante Libro 1: Base de Datos I IBM IT Education Ser

Views 114 Downloads 156 File size 4MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Base de Datos I Código de Curso: TWB22B Versión 5.0

Guía del Estudiante

Libro 1: Base de Datos I

IBM IT Education Services Worldwide Certified Material

Información Sobre la Publicación Esta publicación ha sido producida usando Microsoft Word 2000 y Microsoft PowerPoint 2000 para Windows. Marcas Registradas IBM ® es una marca registrada por International Business Machines Corporation. Otras compañías, productos, y nombre de servicios pueden ser marcas registradas o marcas de servicios de otros. Trademarks of International Business Machines Corporation DB2 Marcas Registradas de otras Compañías Windows

Microsoft Corporation

Edición Octubre 2007 La información contenida en este documento no ha sido sometida a ninguna prueba formal de IBM y es distribuida básicamente “como es" sin ninguna garantía ya sea expresa o implícita. El uso de esta información o la implementación de cualquiera de estas técnicas es responsabilidad del comprador y dependerá de la habilidad de éste para su evaluación e integración en el ambiente operacional del comprador. A pesar de que cada tema ha sido revisado por IBM para su exactitud en una situación específica, no hay garantía de que obtener el mismo resultado o uno similar a éste en otra situación. Los compradores que intenten adaptar estas técnicas a sus propios ambientes lo hacen bajo su propio riesgo. Copyright International Business Machines Corporation, 2007. All rights reserved. Este documento no puede ser reproducido en su totalidad o en parte sin el previo permiso escrito de IBM. Instrucciones Especiales para la Impresión de este Curso: No elimine páginas en blanco que puedan aparecer al final de cada unidad ó entre unidades. Estas páginas fueron insertadas intencionalmente.

.

Guía del Estudiante

Base de Datos I

Contenido Descripción del Curso........................................................................................5 Descripción de Unidades ...................................................................................7 Volumen 1: Fundamentos de RDBMS .............................................................11 Unidad 1: Introducción al RDBMS...................................................................13 Objetivos de Aprendizaje

13

1. Historia de la Base de Datos

14

2. ¿Qué es una Base de Datos?

15

3. ¿Qué es un DBMS?

16

4. DBMS y la Independencia de Datos

16

5. Modelos de Datos

17

6. RDBMS

21

7. Ventajas de DBMS

23

Resumen

24

Unidad 1: Examen de Autoevaluación

25

Respuestas a la Unidad 1: Examen de Autoevaluación

27

Unidad 2: Diagrama Entidad Relación ............................................................29 Objetivos de Aprendizaje

29

1. Diseño de Base de Datos

30

2. Pasos para el Diseño de Base de Datos

30

3. Proceso de Diseño de Base de Datos

31

4. El Modelo Conceptual

32

5. Notaciones

34

6. Atributos

39

7. Claves

40

8. Otras Notaciones ER

42

9. Grado de una Relación

43

10. Construir un Modelo ER

44

11. Transformación del Diseño Conceptual a Diseño Lógico

45

Resumen

49

Unidad 2: Examen de Autoevaluación

50

Respuestas a la Unidad 2: Examen de Autoevaluación

52

Unidad 3: Normalización de la Base de Datos ...............................................53 Objetivos de Aprendizaje

53 i

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Base de Datos I

Guía del Estudiante

1. Normalización

54

2. Necesidad de Normalizar

56

3. Formas Normales

56

Resumen

64

Unidad 3: Examen de Autoevaluación

65

Respuestas a la Unidad 3: Examen de Autoevaluación

67

Unidad 4: Lab. de Diseño de Base de Datos ..................................................69 Objetivos de Aprendizaje

69

Ejercicio de Laboratorio

70

Unidad 5: Lab. de Modelado de Base de Datos.............................................71 Objetivos de Aprendizaje

71

1. Introducción a Azzurri Clay

72

2. Inicio de Sesión en Azzurri Clay

72

3. Creación de Tablas

81

4. Creación de Índices en las Tablas

86

5. Creación de Claves Únicas

88

6. Creación de Claves Foráneas

91

7. Ingeniería en Reversa de la Base de Datos

94

8. Generación de Scripts SQL

99

Resumen

102

Volumen 2: Lenguaje de Consulta Estructurado .........................................103 Unidad 1 – Lenguaje de Consulta Estructurado - Fundamentos...............105 Objetivos de Aprendizaje

105

1. Introducción

106

2. Tabla de Datos

109

3. DDL

110

4. DCL

111

5. DML

112

6. Agregar Datos

112

7. Eliminar Datos

113

8. Actualizar Datos

113

9. DQL La Sentencia SELECT

113

10. Selección Condicional

114

11. Funciones Agregadas

116 ii

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Guía del Estudiante

Base de Datos I

12. Condiciones Compuestas y Operadores Lógicos

117

13. Alias de los Nombres de Columnas

121

14. La Cláusula ORDER BY

122

15. Manejo de Valores NULOS (Null)

122

16. La Cláusula DISTINCT

123

Resumen

124

Unidad 1: Examen de Autoevaluación

125

Respuestas a la Unidad 1: Examen de Autoevaluación

127

Unidad 2: Lab. de Fundamentos de SQL ......................................................129 Objetivos de Aprendizaje

129

Ejercicios de Laboratorio

130

Unidad 3: SQL Avanzado ...............................................................................137 Objetivos de Aprendizaje

137

1. Introducción

138

2. Clave Primaria

138

3. Clave Foránea

138

4. Relación Padre-Hijo

139

5. La Condición para el JOIN

139

6. Extender una Consulta Simple a un JOIN

146

7. La Cláusula GROUP BY

147

8. La Cláusula HAVING

149

9. Escribir Subconsultas

150

10. Operación de Unión

152

Resumen

153

Unidad 3: Examen de Autoevaluación

154

Respuestas a la Unidad 3: Examen de Autoevaluación

156

Unidad 4: Laboratorio de SQL Avanzado .....................................................157 Objetivos de Aprendizaje

157

Ejercicios de Laboratorio

158

Volumen 3: Fundamentos de MySQL............................................................163 Unidad 1: Fundamentos de MySQL...............................................................165 Objetivos de Aprendizaje

165

1. Introducción

166 iii

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Base de Datos I

Guía del Estudiante

2. Licencia GPL

166

3. Historia de MySQL

167

4. Hitos Importantes en la Evaluación de MySQL

167

5. Características principales de MySQL

169

6. Porque seleccionar a MySQL

170

7. Deficiencias del MySQL

172

8. Motor de Almacenamiento de MySQL

172

9. Arquitectura de Hilos de MySQL

176

10. Seguridad en MySQL

177

11. Sistema de Privilegios de Acceso en MySQL

178

12. Clientes MySQL

179

Resumen

194

Unidad 1: Examen de Autoevaluación

195

Respuestas a Unidad 1: Examen de Autoevaluación

197

Unidad 2: Ejecución de Sentencias SQL con MySQL..................................199 Objetivos de Aprendizaje

199

1. Introducción al SQL

200

2. Ejecución de Sentencias SQL con el Programa mysql

200

3. Tipos de Datos en MySQL

203

4. Sentencias DDL

207

5. Sentencias DML

213

6. Sentencias DQL

215

7. Consultas Multitablas

223

8. Sub-consultas

227

9. Usuarios y Privilegios

227

10. Respaldo y Restauración de Base de Datos con el Cliente MySQL 231 11. Ejecución de Sentencias SQL con el MySQL Query Browser

232

Resumen

237

Unidad 2: Examen de Autoevaluación

238

Respuestas a Unidad 2: Examen de Autoevaluación

240

Unidad 3: Lab. de Ejecución de Sentencias SQL sobre MySQL.................241 Objetivos de Aprendizaje

241

Ejercicios de Laboratorio

242

iv © Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Guía del Estudiante

Base de Datos I

Descripción del Curso Nombre del Curso Base de Datos I.

Duración La duración del curso es de 48 horas.

Propósito El propósito de este curso es introducir al estudiante a los conceptos de los Sistemas Administradores de Bases de Datos Relacionales (RDMS) y al Lenguaje de Consulta Estructurado (SQL). El curso proporciona una visión general del diseño de bases de datos y sus ventajas. El curso discute los modelos conceptuales de bases de datos y las relaciones recursivas y exclusivas pertenecientes al diseño de base de datos. Este curso también proporcionara una explicación de los conceptos de normalización y forma normal en las bases de datos relacionales. La segunda parte trata SQL en detalle. Ofrece una visión general de las tablas de datos, funciones agregadas y la relación padre-hijo en SQL. Los estudiantes también obtendrán una introducción a SQL Avanzado. La tercera parte del curso explica los fundamentos de MySQL. En esta unidad se presenta a los estudiantes las capacidades, historia, características, motores de almacenamiento y arquitectura de hilos de MySQL. Se muestra cómo es implementada la seguridad en MySQL y las interfaces proporcionadas a los programadores, se describe la licencia GPL. Complementando con una sesión de ejercicios para ejecutar diferentes sentencias SQL. La cuarta parte se refiere a los fundamentos de PostgreSQL. Esta unidad lista las capacidades, historia, características, niveles de jerarquía, arquitectura, funcionamiento y catálogos del sistema de PostgreSQL. También se muestra cómo es implementada la seguridad en PostgreSQL, sistema de privilegios, describir copyleft y licencia BSD. Se establecen las similitudes y diferencias entre PostgreSQL y MySQL, complementando con una sesión de ejercicios para ejecutar diferentes sentencias SQL. La quinta parte especifica los fundamentos de DB2. Los estudiantes serán capaces de entender cómo se crean y administran los objetos de la bases de datos. El curso también explica conceptos tales como: diccionario de base de datos, acceso y seguridad de base de datos. Adicionalmente, proporciona varios ejercicios de laboratorio para mejorar las habilidades prácticas de los estudiantes en la administración de base de datos.

Libro 1: Base de Datos I

Descripción del Curso 5

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Base de Datos I

Guía del Estudiante

Audiencia Estudiantes, Profesionales y gente de Negocios.

Prerequisitos TWB15S.

Objetivos Después de completar este curso, Ud. será capaz de: •

Discutir los conceptos de RDBMS.



Entender el proceso de diseño de base de datos y el modelo conceptual.



Definir normalización y entender la necesidad de la normalización.



Discutir SQL y las tablas de datos.



Familiarizarse con SQL avanzado y sus conceptos, tales como, claves primarias y foráneas.



Entender los fundamentos de DB2 y sus capacidades.



Aprender a crear y administrar objetos de bases de datos.



Discutir los tipos de datos y las definiciones de columnas.



Aprender acerca del acceso a la base de datos y conceptos de seguridad.

Agenda Cada unidad en este curso es de dos horas de duración.

Descripción del Curso

Libro 1: Base de Datos I 6

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Guía del Estudiante

Base de Datos I

Descripción de Unidades Volumen 1: Fundamentos de RDBMS Unidad 1: Introducción al RDBMS Esta unidad proporciona los fundamentos de RDBMS. Comienza con una discusión simple acerca de bases de datos, sistemas administradores de bases de datos y el modelo de datos. Por otra parte, son discutidos los conceptos fundamentales de RDBMS, administración de transacciones y la necesidad de propiedades ACID.

Unidad 2: Diagrama Entidad Relación (ER) El diseño conceptual de bases de datos, en aplicaciones de bases de datos, se hace a través de diagramas ER. Esta unidad discute conceptos de diseño de bases de datos, los pasos del diseño de base de datos, entidades y sus relaciones. Esta unidad introduce los diagramas ER y sus notaciones. También se discuten las guías para el diseño conceptual.

Unidad 3: Normalización de la Base de Datos Esta unidad proporciona una base cuidadosa para el entendimiento de la normalización en bases de datos. La unidad discute la normalización, la necesidad e importancia de la normalización en bases de datos, el proceso de normalización y las diferentes clases de formas normales.

Unidad 4: Laboratorio de Diseño de Base de Datos Esta unidad permite revisar y aplicar los fundamentos conceptuales proporcionados en las Unidades 1, 2 y 3, a fin de identificar las diferentes entidades en un sistema y las relaciones entre estas entidades, dada la definición del problema. Esta unidad permite construir un diagrama ER para traducir el entendimiento conceptual en un diseño de tablas, además de realizar una operación de normalización. El propósito principal, es proporcionar un mejor entendimiento de la base de datos, al hacer un diseño completo de tablas en forma de un diagrama.

Unidad 5: Laboratorio de Modelado de Base de Datos En esta unidad se usa la herramienta Azzurri Clay para modelar base de datos. En ella, se construye el Modelado de Base de Datos, haciendo uso de claves primarias, foráneas, índices para representar las tablas que se usarán en el sistema a desarrollar, según un determinado dialecto SQL del manejador de Base de Datos a utilizar. Además, permite generar los scripts de las tablas modelada y aplicar ingeniería en reversa de tablas existentes en otras bases de datos.

Libro 1: Base de Datos I

Descripción de Unidades 7

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Base de Datos I

Guía del Estudiante

Volumen 2: Lenguaje de Consulta Estructurado Unidad 1 – Lenguaje de Consulta Estructurado - Fundamentos SQL es la espina dorsal de cualquier RDBMS moderno, en el desarrollo de aplicaciones y el uso de una base de datos. Esta unidad trata con los fundamentos del lenguaje de consulta estructurado, DDL, DML y DCL. De igual forma, está diseñada para aprender a escribir sentencias select simples y condicionales, además de usar las funciones agregadas. Los operados lógicos y el orden de precedencia también son discutidos.

Unidad 2: Laboratorio de Fundamentos sobre SQL Esta unidad está diseñada para identificar la herramienta de interfaz de usuario apropiada para escribir consultas y obtener datos de la base de datos. Proporciona la oportunidad de practicar la escritura de sentencias SELECT SQL simples para capturar datos de la base de datos.

Unidad 3: SQL Avanzado Esta unidad va más allá de los fundamentos de SQL, adicionalmente, se estudian ciertas características avanzadas de SQL. Los temas cubiertos incluyen diferentes operaciones JOIN, el uso de la cláusula GROUP BY y la cláusula HAVING, además de cómo escribir sub-consultas.

Unidad 4: Laboratorio de SQL Avanzado Esta unidad bosqueja el trasfondo conceptual establecido en las Unidades 1 y 3 (así como la familiaridad con SQL a través de Unidad 3), permite hacer operaciones aritméticas en las columnas de la cláusula SELECT, usar funciones agregadas en sentencias SQL, capturar registros de más de una tabla y escribir subconsultas dentro de consultas. También permite practicar el uso de algunas operaciones críticas para insertar, actualizar y eliminar registros en una tabla.

Volumen 3: Fundamentos de MySQL Unidad 1: Fundamentos de MySQL Esta unidad se basa en listar las capacidades, historia, características, motores de almacenamiento y arquitectura de hilos de MySQL. También se muestra cómo es implementada la seguridad en MySQL y las interfaces proporcionadas a los programadores. Por otra parte se describe la licencia GPL.

Unidad 2: Ejecución de Sentencias SQL con MySQL La unidad 2 proporciona información referente a cómo hacer las sentencias SQL con el programa mysql, los tipos de datos usados en MySQL, manejo de usuarios y privilegios, además de respaldo y restauración de base de datos con el cliente mysql.

Descripción de Unidades

Libro 1: Base de Datos I 8

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Guía del Estudiante

Base de Datos I

Unidad 3: Laboratorio de Ejecución de Sentencias SQL sobre MySQL El laboratorio consta de dos partes, en la primera se podrá practicar la creación de tabla a través del cliente mysql o el cliente MySQL Query Browser. La creación de las tablas se puede hacer por medio de un archivo txt o transcribiendo todas las instrucciones, al igual que la carga de los registro, la cual puede hacerse también por un archivo txt o realizando los insert uno por uno. La segunda parte consta de ejercicios a ser ejecutados.

Volumen 4: Fundamentos de PostgreSQL Unidad 1: Fundamentos de PostgreSQL El contenido de esta unidad se basa en listar las capacidades, historia, características, niveles de jerarquía, arquitectura, funcionamiento y catálogos del sistema de PostgreSQL. También, se muestra como es implementada la seguridad en PostgreSQL, sistema de privilegios, describir copyleft y licencia BSD. Entre otros tópicos, se establecen las similitudes y diferencias entre PostgreSQL y MySQL.

Unidad 2: Ejecución de Sentencias SQL con PostgreSQL En esta unidad se indica cómo hacer las sentencias SQL con el programa PostgreSQL, conocer los tipos de datos usados en PostgreSQL, manejo de usuarios y privilegios, respaldo y restauración de base de datos con el cliente PostgreSQL.

Unidad 3: Laboratorio de Ejecución de Sentencias SQL sobre PostgreSQL El laboratorio consta de dos partes, en la primera se podrá practicar la creación de tabla a través del cliente mysql o el cliente MySQL Query Browser. La creación de las tablas se puede hacer por medio de un archivo txt o transcribiendo todas las instrucciones. La carga de los registros puede hacerse por un archivo txt o haciendo los insert uno por uno. La segunda parte consta de ejercicios a ser ejecutados.

Volumen 5: Fundamentos de DB2, Administración, Seguridad y Programación en Base de Datos Unidad 1: Fundamentos de DB2 Esta unidad expone las capacidades y las diferentes facetas de DB2. Proporciona una visión general de la arquitectura de DB2 UDB. Se estudian las capacidades de DB2 y los productos que lo acompañan (servidores y cliente DB2). El uso de herramientas DB2 para ayudar al administrador de base de datos e interfaces para programadores DB2.

Libro 1: Base de Datos I

Descripción de Unidades 9

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Base de Datos I

Guía del Estudiante

Unidad 2: Laboratorio de Herramientas de DB2 UDB Esta unidad proporciona una presentación práctica de la interfaz de usuario DB2. Ayuda a trabajar con el centro de control, navegar a través de objetos de base de datos y ejecutar las herramientas desde el centro de control.

Unidad 3: Crear y Administrar Objetos de la Base de Datos Aquí se cubre uno de los principales tópicos de creación y administración de objetos de bases de datos. Adicionalmente, se explica cómo crear una tabla, crear una tabla con restricciones y las cinco restricciones importantes en este contexto. La unidad proporciona información sobre los tipos de datos, añadir y modificar columnas en una tabla, eliminar y truncar las tablas, crear y eliminar las vistas, además de tocar tópicos acerca de sinónimos y fotos.

Unidad 4: Laboratorio de Objetos de la Base de datos En esta unidad se desarrolla un laboratorio en el que se crea una tabla, una tabla con restricciones y se aprende a añadir y modificar columnas en una tabla en forma práctica. Se hace énfasis en tópicos como: eliminar y truncar una tabla, además de crear y eliminar una vista.

Unidad 5: Diccionario de Datos, Acceso y Seguridad de la Base de Datos El uso y consulta de las vistas del catálogo del sistema son discutidos en esta unidad. La unidad también ayuda a identificar autoridades básicas de bases de datos y privilegios. Se discute la administración y control del acceso a bases de datos.

Unidad 6: Laboratorio de Diccionario de Datos Esta unidad ayuda a identificar las vistas apropiadas del diccionario de datos, para los diferentes objetos. También permite ejecutar diferentes consultas contra vistas del diccionario de datos.

Unidad 7: Programación de Estructura, UDT y UDF Aquí se establece el fundamento para entender los tipos de datos y funciones definidas por el usuario. Se enseña a implementar los tipos de datos.

Unidad 8: Laboratorio de Programación de Estructura, UDT y UDF En esta unidad, se obtiene el entrenamiento práctico para declarar y escribir tipos de datos definidos por el usuario.

Descripción de Unidades

Libro 1: Base de Datos I 10

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Guía del Estudiante

Base de Datos I

Volumen 1: Fundamentos de RDBMS

Libro 1: Base de Datos I

Volumen 1: Fundamentos de RDBMS 11

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Guía del Estudiante

Base de Datos I

Unidad 1: Introducción al RDBMS Objetivos de Aprendizaje Al final de esta unidad usted será capaz de: •

Definir qué es una base de datos.



Describir el DBMS.



Enumerar los diversos modelos de datos.



Describir el RDBMS.



Describir los fundamentos de la Administración de Transacciones.



Explicar la necesidad de las características “ACID” de una transacción.

Libro 1: Base de Datos I

Unidad 1: Introducción al RDBMS 13

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Base de Datos I

Guía del Estudiante

1. Historia de la Base de Datos En los inicios de la programación, se manejaban grandes cantidades de datos, especialmente en las aplicaciones comerciales y de negocios. Estos datos se organizaban como archivos de datos en dispositivos de almacenamiento secundarios, tales como discos y cintas. Los archivos de datos se pueden ver como una colección de registros, y cada registro tiene un conjunto de campos. Cada campo de los registros es de algún tipo de dato que se define en el lenguaje de programación que se está utilizando, por ejemplo C o COBOL. Estos archivos de datos también se llaman archivos planos, pues pueden ser representados en dos dimensiones. Las relaciones en los archivos de datos deben ser manejadas por los programadores. Dependiendo de la aplicación, los archivos de datos se pueden organizar como archivos secuenciales o archivos de acceso aleatorio. Los archivos de datos se organizan dependiendo del dispositivo físico que se utilice. Por ejemplo, el mismo archivo de dato cuando está almacenado en una cinta magnética se accede de diferente manera, que cuando se almacena en un disco. El método para acceder a registros de un archivo de datos almacenado en un disco difiere, dependiendo de sí la longitud de registro es fija o variable. Por lo tanto, la definición del archivo de datos y los métodos para acceder a ellos dependen de la naturaleza del dispositivo en el que se crean y utilizan. Esto presenta un problema mayor cuando los programas se escriben para manipular datos en las aplicaciones. ¿Qué sucede si una organización pretende migrar sus actuales dispositivos de almacenamiento a la última tecnología? Con toda probabilidad, todos los programas (es decir, la lógica de las aplicaciones) deberán ser modificados, con cambios en la estructura de los archivos de datos y en su uso. El almacenamiento en un archivo plano tiene las siguientes desventajas: •

Concurrencia:

La concurrencia es un problema en los archivos planos, pues los datos pueden ser accedidos y modificados solamente por una persona a la vez. La solución a este problema es tener una cola de las aplicaciones que intentan acceder al archivo o tener más de una copia del mismo archivo, que permitan a las diferentes aplicaciones tener acceso a ellas. Sin embargo, la segunda solución se aplica solamente en el caso de acceso de sólo lectura. •

Integridad:

En un sistema de archivo plano, si más de una aplicación utiliza la misma información, los datos pueden corromperse (perder información). La posibilidad de corrupción de datos es mayor cuando grandes cantidades de datos son almacenadas en un sistema de archivo plano. Unidad 1: Introducción al RDBMS

Libro 1: Base de Datos I 14

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Guía del Estudiante



Base de Datos I

Relación entre Datos:

Es muy difícil establecer relaciones entre los datos en un archivo plano, pues no hay una estructura predefinida para el mismo. Los datos solamente pueden ser estructurados utilizando delimitadores entre ellos, lo que hace que relacionar los datos sea una tarea difícil para los desarrolladores de aplicaciones. •

Reutilización:

El archivo plano diseñado para un sistema particular no se puede reutilizar en otro sistema. El fuerte acoplamiento entre los datos y la aplicación hace virtualmente imposible integrar los mismos datos en otro sistema. •

Seguridad:

Los datos son menos seguros cuando están almacenados en un sistema de archivo plano, dado que los archivos pueden ser accedidos por cualquier usuario o cualquier otra aplicación. La implementación de un mecanismo de bloqueo de archivo es algo difícil. Además, la naturaleza de los datos que son ASCII puros, cuando están almacenados como archivo de texto, los hace vulnerables desde el punto de vista de seguridad. Los Sistemas de Administración de Base de Datos Relacional (Relational Database Management Systems - RDBMS) se ocupan de muchas de estas desventajas. Se explicarán primero algunos términos básicos de base de datos, y luego se discutirá acerca del RDBMS en la siguiente sección.

2. ¿Qué es una Base de Datos? Una base de datos es una colección organizada de datos relacionados. Hay tres palabras claves en esta definición. Estas son: •

Organizado: La palabra organizado hace referencia a la manera en que los datos deben ser almacenados. Solamente, si se organizan los datos, el usuario podrá localizarlos y recuperarlos eficientemente.



Colección: La colección hace referencia a un grupo de datos, y no tan sólo a uno en particular. Son generalmente datos que pertenecen a diversos tipos de datos. Algunos de los elementos de datos pueden ser números enteros, otros números reales, incluso otros pueden ser tipos de datos estructurados, tal como los tipos de datos de fecha.



Inter-relacionado: La interrelación entre los datos permite que una colección de datos proporcione información razonable y coherente. La información y los datos significan dos cosas distintas. Cuando los datos tienen sentido para un negocio se convierten en información. Es decir, los datos procesados se denominan información. Por ejemplo, un negocio puede tener datos de ventas. Cuando estos datos se convierten en ventas regionales considerados por trimestre, se transforman en información.

Una base de datos se utiliza para almacenar y recuperar datos. Físicamente, los datos se almacenan como archivos de datos en una computadora. Una colección de datos computarizados, que constituyen una base de datos, son almacenados como un archivo de datos en una computadora. Libro 1: Base de Datos I

Unidad 1: Introducción al RDBMS 15

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Base de Datos I

Guía del Estudiante

¿Entonces de qué manera una base de datos es diferente a los archivos de datos planos? La base de datos, en sí misma, quizás agrega muy poco valor a los archivos planos. Sin embargo, como Sistema de Administración de Base de Datos - DBMS, proporciona al creador de la base de datos y al usuario de aplicaciones ventajas de gran alcance.

3. ¿Qué es un DBMS? Se requiere un sistema para manejar la base de datos. El manejo de una base de datos implica no sólo recuperar datos de la base de datos, sino también agregar, modificar y eliminar información de la base de datos. Un conjunto de programas que ayudan a realizar estas operaciones se denomina Sistema de Administración de Base de Datos DBMS. De la descripción anterior, se puede definir el DBMS como un sistema que trabaja sobre las bases de datos y ayuda a los usuarios a administrar la base de datos de acuerdo a sus necesidades. Los siguientes son algunos puntos importantes acerca del DBMS: Un DBMS se puede entender simplemente como algo que provee al programador y al usuario las funcionalidades para crear una base de datos, agregar elementos a la base de datos, modificar su contenido, eliminar registros y ordenar los registros de la manera deseada. El DBMS proporciona al usuario comandos que le permiten realizar estas tareas, no teniendo que realizar programación de bajo nivel. La independencia de datos está garantizada en el caso de DBMS. A continuación se discute la independencia de datos.

4. DBMS y la Independencia de Datos El punto principal que distingue un archivo de datos de un DBMS, es la propiedad de independencia de datos que proporciona el DBMS. Existen dos niveles de independencia de datos: Independencia de datos física: La propiedad de la independencia de datos física implica la inmunidad de los programas de aplicación (que utilizan la base de datos) a los cambios en la organización física de la base de datos. Esto significa que una vez que los programas se escriben para crear y utilizar la base de datos, ellos permanecen igual aún cuando la organización física de la base de datos haya cambiado. Esto es una enorme ventaja para los desarrolladores e igualmente para los usuarios. Independencia de datos lógica: La propiedad de independencia de datos lógica es la capacidad de cambiar el esquema lógico de la base de datos, sin causar que las aplicaciones se reescriban. Unidad 1: Introducción al RDBMS

Libro 1: Base de Datos I 16

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Guía del Estudiante

Base de Datos I

Los siguientes son los diversos tipos de usuarios que utilizan los DBMS: •

Programadores de Aplicaciones: Trabajan con el DBMS a través de programas de aplicaciones escritos por ellos en lenguajes de alto nivel.



Usuarios Sofisticados: Interactúan con el DBMS a través de las sentencias SQL. Ellos no escriben programas de aplicación.



Usuarios Especializados: Son los usuarios sofisticados que escriben aplicaciones especializadas de base de datos que no vienen con las aplicaciones tradicionales de procesamiento de datos.



Usuarios Ingenuos: Son los usuarios no sofisticados que interactúan con el DBMS, utilizando programas de aplicaciones escritos previamente.



Administradores de Base de Datos: Son los usuarios que manejan y administran las actividades de la base de datos. Interactúan con el DBMS a través de las diversas utilidades administrativas proporcionadas por el mismo DBMS.

5. Modelos de Datos Un modelo de datos es la estructura subyacente de una base de datos. En esta unidad, se estudian los modelos lógicos basados en registros.

5.1 Modelos Lógicos Basados en Registros Los modelos lógicos basados en registros son llamados así porque la base de datos es estructurada en torno a registros de formato fijo, con varios campos o atributos. Los campos o atributos pueden ser de diferentes tipos de datos y cada campo es usualmente de una longitud fija. Los tres modelos de mayor aceptación basados en registros son los siguientes: •

Relacional.



De Red.



Jerárquico.

Se introduce el modelo jerárquico y de red, seguidamente se estudia en detalle el modelo relacional.

5.2 El Modelo Relacional En este modelo, se representan una o más tablas que contienen los datos y las relaciones entre los diferentes datos. Las siguientes son las características de una tabla: •

Una tabla es una colección de registros en una base de datos.



Una tabla tiene múltiples columnas.

Libro 1: Base de Datos I

Unidad 1: Introducción al RDBMS 17

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Base de Datos I

Guía del Estudiante



Cada columna tiene un nombre único y contiene conjuntos de datos.



Cada conjunto de datos se denomina fila.



Un valor se obtiene por la intersección de una fila y de una columna.

Sean las Tablas 1.1 y 1.2 acerca del Registro de Estudiantes y de Códigos de Disciplina presentadas a continuación: ID-Estudiante

NombreEstudiante

Hospedaje

Código-Disciplina

93PS274

James

Ram Bhawan

A1

97PS087

Alice

Meera Bhawan

A2

97PS086

Anitha

Meera Bhawan

A1

97PS085

Jose

Meera Bhawan

A2

Tabla 1.1: Tabla de RegistrosdeEstudiante Código-Disciplina

Disciplina

A1

Ingeniería Química

A2

Ingeniería Civil Tabla 1.2: Tabla de CodigosdeDisciplinas

La tabla RegistrosdeEstudiante contiene diversos detalles de un estudiante. Cada columna en la tabla representa una propiedad / atributo del estudiante. Las Tablas 1.1 y 1.2 son tablas ejemplo de una base de datos relacional. La segunda tabla contiene los nombres de las disciplinas para los diferentes códigos de disciplina. A partir de estas tablas, se sabe que el estudiante James tiene la identificación de estudiante 93PS274, vive en Ram Bhawan y pertenece a la disciplina de Ingeniería Química. El modelo relacional, que consiste de una colección de tablas que contienen los datos, forma la base de lo que se conoce como Sistemas de Administración de Base de Datos Relacionales (Relational Database Management Systems - RDBMS). El modelo relacional también tiene la ventaja del soporte de un modelo matemático formal, que se basa en el álgebra relacional y el cálculo relacional. El modelo relacional soporta formas eficientes de recuperación y administración de datos. Las operaciones relacionales como: seleccionar (select), proyectar (view), unir (join) y las operaciones de conjuntos como la unión y la intersección, son la base sobre la cual se construye el modelo relacional. Otra ventaja del modelo relacional es su capacidad de hacer cumplir las restricciones de integridad de datos.

Unidad 1: Introducción al RDBMS

Libro 1: Base de Datos I 18

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Guía del Estudiante

Base de Datos I

5.3 El Modelo de Red En este modelo, los datos se representan mediante una colección de registros y las relaciones entre los datos se representan por enlaces, que se pueden ver como punteros. Los registros en la base de datos, se organizan en una colección de grafos arbitrarios. La Figura 1.1 presenta el modelo de red.

Figura 1.1: Modelo de Red

Los conjuntos de registros en la Figura 1.1, utilizan la misma información presentada en el modelo relacional para mostrar una base de datos de red de ejemplo. Una base de datos de red es una colección de registros conectados a otros registros a través de enlaces. Este, fue uno de los primeros enfoques de bases de datos. Los sistemas comerciales de administración de base de datos que usaban el modelo de red fueron populares en los años 70 e incluso a inicios de los 80.

5.4 El Modelo Jerárquico El modelo jerárquico es similar al modelo de red. Las siguientes son las características de este modelo: •

Los datos se representan por una colección de registros y las relaciones entre los datos se representan por enlaces.



La única diferencia entre este modelo y el modelo de red, es que en el modelo jerárquico los archivos están organizados como una colección de árboles, en vez de una colección de grafos arbitrarios.

La Figura 1.2 es una representación esquemática del modelo jerárquico.

Libro 1: Base de Datos I

Unidad 1: Introducción al RDBMS 19

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Base de Datos I

Guía del Estudiante

Figura 1.2: Modelo Jerárquico

Los conjuntos de registros en la Figura 1.2 muestran un ejemplo de una base de datos jerárquica, utilizando la misma información dada en los modelos relacionales y de red. El modelo jerárquico es importante, principalmente debido al IMS (Information Management System) de IBM. El IMS es uno de los sistemas de base de datos de IBM más antiguo y ampliamente difundido.

5.5 Modelo Relacional vs. Otros Modelos El modelo relacional es el modelo más usado en los sistemas de procesamiento de datos comerciales. Los otros modelos, es decir jerárquico y de red, están estrechamente ligados con la implantación subyacente de la base de datos. Dado que el modelo relacional proporciona la ventaja adicional de independencia de datos, es más popular. El modelo relacional establece relaciones entre los registros según los valores que contienen, mientras que, en los modelos de red y los modelos jerárquicos, la relación entre los registros se mantiene a través de punteros o enlaces. Por lo tanto, las operaciones de datos en un modelo relacional son relativamente simples, comparadas con las operaciones de datos en los modelos jerárquicos y de red.

Unidad 1: Introducción al RDBMS

Libro 1: Base de Datos I 20

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Guía del Estudiante

Base de Datos I

6. RDBMS Ahora se sabe qué es un DBMS. Un RDBMS es un DBMS basado en el modelo relacional. Las siguientes son las funciones de un RDBMS: •

Organizar los datos y las relaciones entre los datos en tablas que se componen de columnas y filas.



Permitir la definición de las estructuras de datos, de las operaciones de almacenamiento y recuperación, además de las restricciones de integridad.



Utilizar las restricciones de integridad para mantener la integridad de los datos almacenados en las bases de datos relacionales.

En las bases de datos relacionales, ciertos campos se pueden designar como claves, lo que significa que las búsquedas por valores específicos de esos campos pueden utilizar la indexación (ordenar los registros de la tabla mediante las claves o índices creados) para acelerar la búsqueda. Los registros en diferentes tablas pueden ser enlazados si tienen el mismo valor en un campo particular en cada tabla.

6.1 Proveedores de RDBMS El mercado RDBMS está lleno de numerosos proveedores de RDBMS. Algunos de los proveedores más conocidos se listan en la Tabla 1.3 que se presenta a continuación: Proveedor Producto Última Versión IBM Oracle Corporation MySQL AB PostgreSQL Microsoft

DB2 UDB Oracle MySQL PostgreSQL Microsoft SQLServer

9.1 10 5.0.37 8.2.4 2005

Tabla 1.3: Proveedores RDBMS

Algunos de estos productos están disponibles tanto en ambiente Windows como en ambiente UNIX. Los productos DB2, Oracle, PostgreSQL, SQLServer mencionados arriba ya no son sólo considerados como RDBMS; también son clasificados como Sistemas de Administración de Base de Datos Relacional de Objetos (ORDBMS). A continuación se presenta el concepto de administración de transacciones.

6.2 Administración de Transacciones La administración de transacciones es un concepto muy importante en cualquier RDBMS. ¿Qué es una transacción? Es una colección de operaciones que realiza una única unidad lógica de trabajo. Una transacción es una unidad de trabajo en la cual una serie de operaciones ocurren entre las sentencias BEGIN TRANSACTION (COMIENZO DE TRANSACCIÓN) y END

Libro 1: Base de Datos I

Unidad 1: Introducción al RDBMS 21

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Base de Datos I

Guía del Estudiante

TRANSACTION (FIN DE TRANSACCIÓN) de una aplicación. Una transacción es atómica; es decir, se hace todo el trabajo o no se hace nada. Partiendo del ejemplo de una transacción de transferencia de fondos. Es una sola unidad lógica de trabajo, en donde se carga de una cuenta A y se acredita a otra cuenta B. Esta transacción implica dos operaciones simples: un débito y un crédito. La unidad lógica de trabajo (la transferencia de fondos) no está completa si no se realizan ambas operaciones. La transferencia de fondos debe suceder en su totalidad o no efectúa nada. Se tiene pues que, ambas operaciones ocurren o ni una ni la otra ocurre. Este requerimiento de todo o nada se llama atomicidad. La administración de transacciones implica algunas características importantes llamadas características ACID (Atomicity, Consistency, Isolation and Durability), éste es un mnemotécnico para: Atomicidad, Consistencia, Aislamiento y Durabilidad. Estas características se explican brevemente en la siguiente sección: •

Atomicidad: Las operaciones asociadas a una transacción comparten generalmente un objetivo común y son interdependientes. Si se ejecuta solamente un subconjunto de estas operaciones, el sistema podría comprometer el objetivo global de la transacción. La atomicidad elimina la posibilidad de procesar un subconjunto de operaciones.



Consistencia: Una transacción es una unidad de integridad porque preserva la consistencia de datos, transformando un estado consistente de datos en otro estado consistente. La consistencia requiere que los datos comprometidos en una transacción se preserven semánticamente. Algunas de las responsabilidades de mantener consistencia caen sobre el desarrollador de aplicaciones, que debe asegurarse de que todas las restricciones de integridad se cumplan en la aplicación. Por ejemplo, al desarrollar una aplicación que transfiere dinero de una cuenta a otra, hay una operación de débito que ocurre en la cuenta fuente, y una operación de crédito que ocurre en la cuenta destino. La transacción tiene los siguientes dos pasos: Paso 1: Debitar de la cuenta fuente. Paso 2: Acreditar a la cuenta destino. Si la transacción falla después del paso 1, una inconsistencia de datos ocurre debido a que la cantidad es debitada de la cuenta fuente, pero no se acredita a la cuenta destino. Para asegurarse de que se mantiene la consistencia de datos, el DBMS cancela la operación de débito, y se ejecuta una restitución (rollback) de la transacción para obtener el estado consistente inicial.



Aislamiento: Una transacción es también una unidad aislada. La administración de transacciones permite que las transacciones concurrentes se comporten como si cada una fuera la única transacción ejecutándose en el sistema. El aislamiento

Unidad 1: Introducción al RDBMS

Libro 1: Base de Datos I 22

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Guía del Estudiante

Base de Datos I

requiere que cada transacción parezca ser la única transacción que manipula la base de datos, aunque otras transacciones pueden estar ejecutándose concurrentemente. Una transacción nunca puede ver las etapas intermedias de otra transacción. •

Durabilidad: Una transacción es también una unidad de recuperación. Si una transacción tiene éxito, el sistema garantiza que persistirán sus actualizaciones, incluso si la computadora falla inmediatamente después de una ejecución exitosa. En el ejemplo anterior, si falla la computadora inmediatamente después de una transferencia exitosa de fondos, los nuevos valores de las cuentas A y B deben persistir. Este requisito de la persistencia se llama durabilidad.

7. Ventajas de DBMS Una vez introducidos los fundamentos del DBMS, se enumeran sus ventajas: • La redundancia de datos puede ser minimizada. Los datos en un lugar, pueden ser accedidos por muchas aplicaciones. • La integridad, la seguridad y la consistencia de los datos pueden ser aseguradas. La integridad de datos es administrada por las restricciones de integridad. El acceso de usuarios y la administración de privilegios de usuarios proporciona la seguridad de los datos. La administración de transacciones proporciona la consistencia de los datos. • El proceso de recuperación de datos puede hacerse más rápido mediante varios mecanismos que mejoran el rendimiento. • Se tienen operaciones para la manipulación de datos. • Los datos pueden ser distribuidos. Los datos son fácilmente adaptables a los cambios de los modelos del negocio.

Libro 1: Base de Datos I

Unidad 1: Introducción al RDBMS 23

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Base de Datos I

Guía del Estudiante

Resumen Ahora que ha completado esta unidad, usted debe ser capaz de: •

Definir qué es una base de datos.



Describir el DBMS.



Enumerar los diversos modelos de datos.



Describir el RDBMS.



Describir los fundamentos de la Administración de Transacciones - Transaction Management.



Explicar la necesidad de las características “ACID” de una transacción.

Unidad 1: Introducción al RDBMS

Libro 1: Base de Datos I 24

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Guía del Estudiante

Base de Datos I

Unidad 1: Examen de Autoevaluación 1) Una base de datos es una colección organizada de datos inter-relacionados. a) Verdadero b) Falso 2) ¿Cuáles de los siguientes son los modelos basados en registros de mayor aceptación? a) Jerárquico b) De Red c) Relacional d) Ninguna de las anteriores 3) En el modelo jerárquico, la relación entre los registros es a través de enlaces. a) Verdadero b) Falso 4) Enumere las características ACID. 5) El modelo jerárquico es una colección de árboles. a) Verdadero b) Falso 6) El modelo de red es un modelo basado en _________. a) Objetos b) Registros c) Campos d) Ninguna de las anteriores 7) Un(a) ___________________ es una única unidad lógica de trabajo. a) Registro b) Base de datos c) Transacción d) Campo

Libro 1: Base de Datos I

Unidad 1: Introducción al RDBMS 25

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Base de Datos I

Guía del Estudiante

8) _______________ es una forma de modelo de datos. a) Un modelo lógico basado en objetos. b) Un modelo lógico basados en registros. c) Un modelo físico. d) Todas las anteriores. 9) En el modelo basado en registros, la base de datos se estructura alrededor de los registros de formato variable de diversos tipos. a) Verdadero b) Falso 10) Una tabla es una colección de registros en una base de datos. a) Verdadero b)

Falso

Unidad 1: Introducción al RDBMS

Libro 1: Base de Datos I 26

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Guía del Estudiante

Base de Datos I

Respuestas a la Unidad 1: Examen de Autoevaluación 1) a 2) a, b y c 3) a 4) Atomicidad, Consistencia, Aislamiento (Isolation) y Durabilidad. 5) a 6) b 7) c 8) d 9) b 10) a

Libro 1: Base de Datos I

Unidad 1: Introducción al RDBMS 27

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Guía del Estudiante

Base de Datos I

Unidad 2: Diagrama Entidad Relación Objetivos de Aprendizaje Al finalizar esta unidad, usted será capaz de: •

Explicar los conceptos del diseño de base de datos.



Enumerar los pasos para el diseño de base de datos.



Discutir las entidades y sus relaciones.



Describir los diagramas Entidad – Relación (ER) y sus notaciones.



Indicar las pautas para construir un modelo ER.



Transformar Diseño Conceptual a Diseño Lógico.

Libro 1: Base de Datos I

Unidad 2: Diagrama Entidad Relación 29

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Base de Datos I

Guía del Estudiante

1. Diseño de Base de Datos Una base de datos relacional almacena todos sus datos dentro de tablas. Todas las operaciones sobre los datos se realizan sobre las propias tablas, que pueden producir tablas adicionales para almacenar el resultado. ¿Cómo se decide el número de tablas? ¿Qué datos se almacenan en una tabla en particular? Para contestar a estas preguntas, debe formular el diseño del contenido de las tablas que pueden almacenar los datos. A este proceso se le llama diseño de base de datos. En esta unidad y la siguiente se introduce el proceso de diseño de bases de datos.

2. Pasos para el Diseño de Base de Datos Los siguientes son los cuatro pasos esenciales del proceso del diseño de base de datos: •

Recolección y análisis de requerimientos.



Diseño conceptual.



Diseño lógico.



Diseño físico.

A continuación se explican brevemente cada uno de estos pasos:

2.1 Recolección y Análisis de Requerimientos Antes de desarrollar una base de datos para cualquier sistema, es necesario interactuar estrechamente con el sistema en particular o con los usuarios del sistema. Esto ayuda a desarrollar una comprensión completa de los datos que deben ser almacenados en la base de datos, y los procesos involucrados en la captura de esos datos. Los requerimientos de datos deben ser obtenidos y documentados a través de una serie de reuniones y entrevistas con los usuarios del sistema. Esta documentación servirá como entrada para el análisis necesario que se requiere para una comprensión conceptual completa del sistema.

2.2 Diseño Conceptual El siguiente paso consiste en formar una descripción concisa de los requerimientos de datos usando un modelo de datos de alto nivel. Esta descripción será independiente de los requerimientos de almacenamiento. Este paso implica identificar las entidades involucradas en el sistema, y entender las relaciones entre estas entidades. Las entidades y las relaciones se representan en forma de un diagrama, llamado el Diagrama Entidad Relación (ER). El diagrama ER se discute en detalle, más adelante en esta unidad.

Unidad 2: Diagrama Entidad Relación

Libro 1: Base de Datos I 30

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Guía del Estudiante

Base de Datos I

2.3 Diseño Lógico En la implementación, la mayoría de los sistemas de base de datos tienen un modelo de datos. Cualquier técnica adecuada de diseño conceptual especificará la correspondencia (mapping) del modelo conceptual a una variedad de modelos de implementación. La traducción de entidades y relaciones a tablas y otros objetos de la base de datos se hace en este nivel. Este proceso implica la normalización, además de otras consideraciones de diseño, y se explica en detalle en la Unidad 3 de este volumen.

2.4 Diseño Físico Algunos sistemas de base de datos permiten que el administrador de la base de datos tome decisiones sobre el almacenamiento físico. Estas decisiones se toman generalmente considerando el rendimiento y la disponibilidad de los recursos de hardware.

3. Proceso de Diseño de Base de Datos La Figura 2.1 es una representación esquemática de los cuatro pasos discutidos anteriormente. Nota: A excepción del paso 4 (diseño físico), el resto de los pasos son actividades independientes del DBMS.

Libro 1: Base de Datos I

Unidad 2: Diagrama Entidad Relación 31

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Base de Datos I

Guía del Estudiante

Figura 2.1: Proceso de Diseño de Base de Datos

4. El Modelo Conceptual Pertenece al dominio de la modelación del nivel más alto. Una de las maneras de crear un modelo conceptual es usando el diagrama ER. A continuación se discute acerca de las entidades y sus relaciones:

4.1 Entidades y Relaciones El mundo real consiste de un conjunto de objetos llamados entidades. Estos objetos no existen aislados, es decir existen relaciones entre ellos. Un diagrama ER es una forma de modelar esta información. Este modelo permite tender un puente sobre la brecha que existe entre la representación del mundo real, y la manera como debe ser modelada en un sistema de computadora. Las entidades representan agrupaciones de objetos del mundo real que son relevantes al sistema de información. Una entidad representa una colección de los objetos (cosas) del mundo real, los cuales se desean modelar y emplear para almacenar información. Aquí los miembros individuales (instancias) tienen ciertas características, por lo que cada objeto debe satisfacer cada una de las siguientes afirmaciones: Unidad 2: Diagrama Entidad Relación

Libro 1: Base de Datos I 32

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Guía del Estudiante

Base de Datos I



Puede ser identificado individualmente.



Desempeña un papel necesario en el sistema a ser desarrollado.



Puede ser descrito por uno o más elementos de datos.

Las propiedades o atributos de una entidad que son de interés para los usuarios determinan los elementos de datos que deben ser almacenados en la base de datos. Por ejemplo, considere un tipo de entidad ‘carro’, el cual puede tener los siguientes atributos: •

Nro-Reg (número de registro del carro).



Modelo.



Capacidad del motor.



Color.

Los datos reales se pueden describir como los valores de los atributos de las entidades, por ejemplo, el valor del tipo de atributo ‘Nro-Reg‘, del tipo de entidad ‘carro’ puede ser 4BZR6971. Un atributo único de una entidad se le denomina clave. También se conoce como identificador de la entidad, por ejemplo, el identificador de ‘carro’ será el ‘Nro-Reg’, mientras que el identificador de una entidad llamada ‘Estudiante’ puede ser el ‘NroEstudiante’. La clave debe identificar únicamente a un registro. A veces, se pueden utilizar dos o más atributos juntos para formar la clave. Tales claves se conocen como compuesto o claves compuestas. Las entidades no existen aisladas, sino que se asocian a través de relaciones. Las asociaciones en los datos, tales como ‘un cliente ha pedido ciertas mercancías’ se llaman relaciones. La relación, en este caso, es ‘ha pedido’.

4.2 Modelación de Datos El propósito principal de la identificación de entidades es generar un diagrama que muestre la naturaleza de las relaciones significativas que existen entre las entidades. Es decir, el diagrama será una representación del ‘mundo real’ y se denomina diagrama Entidad-Relación (ER). El diagrama ER se utiliza por las siguientes razones: •

Un modelo ER es una representación gráfica del sistema, además es un modelo de datos conceptual de alto nivel.



Un modelo ER también soporta la percepción de los datos por parte del usuario y es independiente de la plataforma particular del DBMS y del hardware.



Modelar un diagrama ER es una buena ayuda para diseñar bases de datos.

Libro 1: Base de Datos I

Unidad 2: Diagrama Entidad Relación 33

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Base de Datos I

Guía del Estudiante

4.3 Componentes de un Diagrama ER Los diagramas ER tienen dos componentes importantes, son estos: •

Entidades.



Relaciones.

Existen diferentes metodologías para el diseño de sistemas, siendo el modelo entidadrelación el modelo conceptual más utilizado para el diseño conceptual de bases de datos. Fue introducido por Peter Chen en 1976. El modelo entidad-relación está formado por un conjunto de conceptos que permiten describir la realidad mediante un conjunto de representaciones gráficas y lingüísticas. En todos los modelos, el sistema se divide en tres partes: •

Sus entidades componentes.



Los atributos o propiedades de estas entidades.



Las relaciones entre estas entidades.

5. Notaciones Se discute a continuación en detalle el concepto de entidades:

5.1 Entidades Un tipo de objeto es una entidad, representada por una caja rectangular, como se muestra en la Figura 2.2-a.

Figura 2.2-a: Notación de Entidad

Los grupos del mismo tipo de objetos se denominan tipos de entidad o conjunto de entidad. Hay dos tipos de entidades: •

Entidad fuerte.



Entidad débil.

Un tipo de entidad débil es dependiente de algún otro tipo de entidad para su existencia, por ejemplo, ‘Empleado’ es una entidad y ‘Dependiente’ es también una entidad. En este caso, ‘Dependiente’ se refiere a los hijos del empleado y a la esposa. En las dos entidades mencionadas ‘Empleado’ pertenece al tipo de entidad fuerte y ‘Dependiente’ pertenece al tipo de entidad débil. La entidad ‘Dependiente’ no tiene ninguna Unidad 2: Diagrama Entidad Relación

Libro 1: Base de Datos I 34

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Guía del Estudiante

Base de Datos I

importancia en el sistema, a menos que se asocie a un empleado, y por lo tanto, se considera un tipo de entidad débil. La Figura 2.2-b y la Figura 2.2-c son notaciones para los tipos de entidades fuertes y débiles.

Figura 2.2-b: Entidad Empleado (Fuerte)

Figura 2.2-c: Entidad Dependiente (Débil)

Las entidades débiles se representan mediante rectángulos de doble línea y las entidades fuertes se representan mediante un rectángulo de una línea.

5.2 Relaciones Las entidades son conectadas con otras entidades por relaciones. Una relación representa un conjunto de conexiones entre los objetos. En la notación de Chen, la forma de diamante representa una relación, como se muestra en la Figura 2.3.

Figura 2.3: Notación de Chen para la Relación

Un tipo de relación es una asociación significativa entre los tipos de entidad. La Figura 2.4 muestra una relación entre las dos entidades, Estudiantes y Examen.

Figura 2.4: Relación entre dos Entidades Libro 1: Base de Datos I

Unidad 2: Diagrama Entidad Relación 35

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Base de Datos I

Guía del Estudiante

5.3 Cardinalidad La cardinalidad especifica si una entidad está relacionada con una o más instancias de otra entidad en una misma relación. La relación entre dos entidades se puede clasificar en tres categorías las cuales se explican mediante los siguientes ejemplos: •

Relación Uno-a-Uno (1:1)

Por ejemplo, en algunas sociedades, un hombre puede casarse solamente con una mujer y una mujer puede casarse solamente con un hombre. La Figura 2.5 representa una relación 1:1 entre las dos entidades Hombre y Mujer. Observe el uso de las notaciones específicas en el diagrama. La Figura 2.5 muestra dos líneas dirigidas (flechas) que empiezan con la relación ‘casa’ a las entidades Hombre y Mujer. Una línea dirigida hacia una entidad especifica una sola relación. En el ejemplo dado, ambas entidades tienen una línea dirigida hacia ellas, lo que significa que ambas entidades comparten una sola relación.

Figura 2.5: Relación 1:1



Relación Uno-a-Muchos (1:M) o Relación Muchos-a-Uno (M:1)

Por ejemplo, una madre puede dar a luz a muchos niños, pero un niño puede tener solamente una madre biológica. Madre e hijo son las entidades en el ejemplo presentado. Observe la Figura 2.6. Una línea dirigida (flecha) a la entidad Madre y una línea no dirigida (no es flecha) a la entidad Hijo especifican la relación uno-amuchos (1:M) entre las entidades Madre e Hijo.

Figura 2.6: Relación 1:M



Relación Muchos-a-Muchos (M:N)

Más de una persona puede ser autor de un libro. Un autor puede escribir muchos libros. Las entidades Libro y Autor comparten una relación muchos-a-muchos. La Figura 2.7 muestra líneas no dirigidas (sin flecha) hacia las entidades Libro y Autor, que especifican la relación muchos-a-muchos entre las dos entidades.

Figura 2.7: Relación M:N

Unidad 2: Diagrama Entidad Relación

Libro 1: Base de Datos I 36

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Guía del Estudiante

Base de Datos I

5.4 Opcionalidad Una relación puede ser opcional o mandatoria. La opcionalidad puede ser diferente a cada lado de la relación. Considere un ejemplo de relación entre estudiante y curso. Un estudiante no puede existir sin un curso, pero un curso puede existir antes de que los estudiantes se hayan matriculado. De esta manera, en la relación estudiante-curso, hay una necesidad de descubrir qué entidad tiene participación mandatoria y qué entidad tiene participación opcional. La Figura 2.8 representa un diagrama de opcionalidad.

Figura 2.8: Diagrama de Opcionalidad

En la Figura 2.8, la entidad Curso es mandatoria para que la relación de estudiantecurso exista. La señal que representa mandatoria ‘|’ se coloca en el lado de la entidad Curso. La entidad Estudiante es opcional en la relación, pues el curso puede existir sin un estudiante. De tal manera que la señal de opcional, un círculo vacío, se coloca en el lado de la entidad Estudiante de la relación.

5.5 Diagrama ER A continuación se presenta un sistema ejemplo. Se van a identificar las entidades del sistema y las relaciones entre las entidades. Luego, se dibuja el diagrama ER para el sistema ejemplo.

5.6 Sistema de Orden de Compra •

El departamento de finanzas de una compañía tiene un sistema de órdenes de compra para mantener los detalles de cualquier orden de compra enviada a sus proveedores.



Una orden individual se envía sólo a un proveedor. Un proveedor puede obtener muchas otras órdenes de compra.



Una orden de compra proporcionará los detalles sobre los artículos que se han pedido.



Algunos artículos pueden ser suministrados por muchos proveedores, en cuyo caso, el sistema debe realizar el seguimiento a los proveedores que suministran los diversos artículos; por lo que sí un proveedor no cuenta con dicha mercancía, la orden puede ser enviada a una fuente alternativa.

Los siguientes son las entidades del sistema descrito: •

Proveedor.



Orden de Compra.

Libro 1: Base de Datos I

Unidad 2: Diagrama Entidad Relación 37

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Base de Datos I



Guía del Estudiante

Artículo.

Las Figuras 2.9, 2.10 y 2.11 son representaciones esquemáticas de las relaciones entre las entidades.

Figura 2.9: Relación (1:M) Proveedor:Orden de Compra

Figura 2.10: Relación (M:N) Proveedor:Artículo

Figura 2.11: Relación (M:N) Orden de Compra: Artículo

Un ejemplo de diagrama ER para el sistema anterior se muestra en la Figura 2.12.

Figura 2.12: Diagrama ER de un Sistema de Orden de Compra

Unidad 2: Diagrama Entidad Relación

Libro 1: Base de Datos I 38

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Guía del Estudiante

Base de Datos I

6. Atributos Todos los datos referentes a una entidad están contenidos en sus atributos. Un atributo es la propiedad de la entidad, cuyo valor tiene que ser almacenado en la base de datos. Cada instancia de una entidad tendrá el mismo conjunto de atributos, pero pueden contener valores diferentes. Los atributos pueden ser simples, como fecha de nacimiento o compuestos, como nombre, conteniendo el primer y segundo nombre. Pueden ser de valor único (cada persona tiene solamente una fecha de nacimiento) o multivaluados, como las calificaciones. La Figura 2.13 es la notación usada para representar atributos.

Figura 2.13: Notación de Atributos

La Figura 2.14 muestra cómo los atributos de una entidad se muestran en un diagrama ER.

Figura 2.14: Notación de Entidad y Atributos

Los tipos de entidad pueden tener una gran cantidad de atributos. Si todos los atributos se muestran en un diagrama ER, el diagrama se vuelve confuso. Por lo tanto, muchos atributos a menudo se dejan de lado por motivo de simplicidad. Es recomendable mostrar los atributos solamente si agregan información importante al diagrama ER o clarifican un punto.

Libro 1: Base de Datos I

Unidad 2: Diagrama Entidad Relación 39

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Base de Datos I

Guía del Estudiante

7. Claves Una clave es un elemento de los datos que identifica de manera única las ocurrencias individuales de un tipo de entidad, por ejemplo, el número de empleado o la identificación de un estudiante. Una clave candidata es un candidato potencial a convertirse en una clave primaria y se puede utilizar como identificador alternativo. Un tipo de entidad puede tener una o más posibles claves candidatas. El identificador seleccionado se conoce como clave primaria. Si los atributos se muestran en el diagrama ER, el nombre de cada atributo de la clave primaria se muestra subrayado. A continuación se presenta otro ejemplo: Los datos requeridos por HLX Products Ltd, para una base de datos que registre todos los detalles de los empleados, departamentos y los proyectos de la compañía se enumeran a continuación: •

La compañía está organizada en departamentos. Cada departamento tiene un nombre y un número. Un departamento está situado solamente en una ubicación.



Un departamento controla un número de proyectos, cada uno de los cuales tiene un nombre y un número. Los detalles del empleado incluyen número de seguro social, dirección, sueldo, sexo y fecha de nacimiento.



Un empleado pertenece a un departamento, pero puede trabajar en varios proyectos. Un empleado puede trabajar en un proyecto controlado por un departamento diferente al que él pertenece. Para propósitos del seguro, se requiere también los detalles de los dependientes del empleado. Los detalles requeridos son nombre, sexo, fecha de nacimiento y relación de dependencia con el empleado.

La Figura 2.16 es el diagrama ER para este problema.

Unidad 2: Diagrama Entidad Relación

Libro 1: Base de Datos I 40

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Guía del Estudiante

Base de Datos I

Figura 2.16: Diagrama ER

Libro 1: Base de Datos I

Unidad 2: Diagrama Entidad Relación 41

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Base de Datos I

Guía del Estudiante

8. Otras Notaciones ER La Tabla 2.1 muestra las notaciones que se usaron en esta unidad y también otras notaciones que se usan comúnmente para construir el diagrama ER.

Tabla 2.1: Diferentes Notaciones Usadas

Unidad 2: Diagrama Entidad Relación

Libro 1: Base de Datos I 42

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Guía del Estudiante

Base de Datos I

9. Grado de una Relación Una relación puede involucrar una o más entidades. El número de entidades que participan en una relación se conoce como el grado de la relación.

9.1 Relación Unaria Si el número de entidades que participan en una relación es uno, entonces la relación se llama una relación unaria. La relación del empleado-jefe es un ejemplo de una relación unaria, porque Empleado y Jefe están en el mismo tipo de entidad. El Jefe ‘supervisa’ al Empleado. Esta relación se muestra en la Figura 2.17.

Figura 2.17: Relación Unaria

La Figura 2.17 se debe leer como ‘Jefe supervisa a Empleado’. Jefe a Empleado es una relación uno-a-muchos. El jefe es un empleado, por lo tanto, la relación está conectada una vez más con la entidad Empleado.

9.2 Relación Binaria Si hay solamente dos entidades involucradas en una relación, es un tipo de relación binaria. Todos los ejemplos estudiados anteriormente son de relaciones binarias.

9.3 Relación N-aria En unos casos, dos o más entidades están involucradas en una relación. Las relaciones que involucran más de dos entidades se denominan relaciones N-arias. Si todas las entidades involucradas en una relación no se muestran en el diagrama, cierta información se puede perder o estar mal representada. Esto se llama una trampa de conexión (connection trap). No hay límite en el número de entidades que participan en una relación, cuando participan tres entidades en una relación se denomina relación ternaria. Sea un ejemplo de la compañía HLX Products, para el cual hay un nuevo requerimiento. La compañía desea registrar el número total de horas de computadora que cada empleado utiliza por computadora en cada proyecto. Vea la Figura 2.18.

Libro 1: Base de Datos I

Unidad 2: Diagrama Entidad Relación 43

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Base de Datos I

Guía del Estudiante

Figura 2.18: Relación Ternaria o Relación N-aria

10. Construir un Modelo ER Los siguientes son los pasos necesarios para construir el modelo ER: Paso 1: Identificar las entidades. Lea la especificación de requerimientos cuidadosamente y enumere todos los tipos de entidad potenciales. Estos son los objetos de interés en el sistema. Es mejor comenzar con una gran cantidad de entidades y descartar las entidades redundantes más adelante, si es necesario. Paso 2: Eliminar las entidades duplicadas. Asegúrese de que dos entidades sean realmente dos tipos de entidad separadas. Recuerde nunca incluir al propio sistema como tipo de entidad. Por ejemplo, cuando modela un sistema de una oficina, los tipos de entidades pueden ser los empleados, los puestos de trabajo y otros. No debe haber un tipo de entidad ‘oficina’, porque la oficina es el sistema. Paso 3: Enumerar los atributos de cada entidad. Verificar si los tipos de entidad son realmente necesarios o si son sólo atributos de otro tipo de entidad. Por ejemplo, ¿Es ‘número-telefónico’ una entidad o es sólo un atributo ‘número-telefónico’ de una entidad llamada Empleado? Si son atributos de otra entidad, entonces elimínelo de la lista de entidades. Paso 4: Marcar las claves primarias. Paso 5: Definir las relaciones. Unidad 2: Diagrama Entidad Relación

Libro 1: Base de Datos I 44

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Guía del Estudiante

Base de Datos I

Paso 6: Examinar cada tipo de entidad para ver cómo se relaciona con otras entidades. Paso 7: Describir la cardinalidad de las relaciones. Paso 8: Eliminar las relaciones redundantes. Modelar un diagrama ER es un proceso iterativo, así que implicará tener que dibujar varias versiones y refinar cada una hasta que se evolucione un producto final. No hay respuesta correcta a un problema, pero algunas soluciones son obviamente mejores que otras.

11. Transformación del Diseño Conceptual a Diseño Lógico 11.1

Tabla

La tabla es un objeto de Base de Datos utilizado para almacenar datos. Las tablas están conformadas en columnas y filas. •

Cada columna de la tabla representa un atributo o campo.



Las filas representan los registros de las tablas. NombreCol1

NombreCol2

NombreCol3

Fila 1 Fila 2 Tabla 2.2: Definición de Filas y Columnas

11.2

Clave Primaria

Una columna se define como clave primaria, si esa columna identifica unívocamente a cada uno de los registros de la tabla, dicha columna no puede tener un valor NULL. La restricción Clave Primaria asegura que no existirán valores duplicados en esa columna. Si el usuario trata de agregar un registro, cuyo valor en la columna de clave primaria es idéntico al de otro registro en la tabla, el registro no será insertado.

11.3

Clave Foránea

Una columna cuyos valores dependen de los valores de otra tabla se llama clave foránea. Sin embargo, una columna se llama clave foránea solamente si hace referencia a la columna de clave primaria de otra tabla. Las claves foráneas son la base para relacionar tablas.

Libro 1: Base de Datos I

Unidad 2: Diagrama Entidad Relación 45

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Base de Datos I

Guía del Estudiante

11.4 Transformación del Diseño Conceptual a Diseño Lógico según la relación que presentan Relación 1:1 Uno a Uno (1:1): Una instancia de la entidad Carro se relaciona con una única instancia de la entidad CertificadodeCirculacion y viceversa. Ejemplo de Relación 1:1

Modelo

Carro

Color

FechaEmision

IdCertifica

Serial

Certificadode Circulacion

tiene

Marca

Placa

Tipo Año

Idpropietario

Figura 2.19: Diagrama Entidad Relación, Carro...CertificadodeCirculacion

Clave foránea

Tabla Carro Serial Modelo Color Placa Año Marca IdCertificado

Tabla CertificadodeCirculacion IdCertificado IdPropietario Tipo FechaEmisión

Clave Primaria

Clave Primaria Figura 2.20: Representación en Tablas del Modelo Entidad Relación

Unidad 2: Diagrama Entidad Relación

Libro 1: Base de Datos I 46

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Guía del Estudiante

Base de Datos I

Relación 1:M o M:1 Uno a muchos (1:M o M:1): Una instancia de la entidad Carro se relaciona con muchas instancias de la entidad Puerta y una instancia de Puerta sólo puede estar relacionada con una instancia de Carro. Ejemplo de Relación 1:M

Modelo

Carro

Color

IdPuerta

Serial

Marca

Placa

Puerta

tiene

Tipo

Color

Año

Figura 2.21: Diagrama Entidad Relación, Carro...Puerta

Tabla Carro Serial Modelo

Color Placa Año Marca Clave Foránea

Clave Primaria

Clave Primaria

Tabla Puerta IdPuerta Tipo Color Serial

Figura 2.22: Representación en Tablas del Modelo Entidad Relación

Relación M:N Muchos a Muchos (M:N): Una instancia de la entidad Autor está relacionada con muchas instancias de la entidad Libro y viceversa.

Libro 1: Base de Datos I

Unidad 2: Diagrama Entidad Relación 47

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Base de Datos I

Guía del Estudiante

Ejemplo de Relación M:N

Titulo

Idautor

Idlibro

FechaNac

cant_pagina

Libro

Genero

Autor

tiene

Editorial

Direccion Nombre

Año

Apellido

Figura 2.23: Diagrama Entidad Relación, Libro...Autor

Idautor

Tabla Cliente Nombre Apellido

Direccion

FechaNac

Clave Primaria

Clave Primaria

Idlibro

Titulo

Tabla Libro cant_paginas Genero

Año

Editorial

Tabla Relación Clave Primaria Compuesta

Tabla Autor-Libro Idautor Idlibro

Figura 2.24: Representación en Tablas del Modelo Entidad Relación

Unidad 2: Diagrama Entidad Relación

Libro 1: Base de Datos I 48

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Guía del Estudiante

Base de Datos I

Resumen Ahora que ha completado esta unidad, usted debe ser capaz de: •

Explicar los conceptos del diseño de base de datos.



Enumerar los pasos del diseño de base de datos.



Discutir las entidades y sus relaciones.



Describir los diagramas ER y sus notaciones.



Indicar las pautas para construir un modelo ER.



Transformar Diseño Conceptual a Diseño Lógico.

Libro 1: Base de Datos I

Unidad 2: Diagrama Entidad Relación 49

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Base de Datos I

Guía del Estudiante

Unidad 2: Examen de Autoevaluación 1) El diagrama ER es parte del diseño físico. a) Verdadero b) Falso 2) El diseño conceptual es una actividad específica del DBMS. a) Verdadero b) Falso 3) Un ______________ representa las entidades en un diagrama ER. a) Cuadrado b) Rectángulo c) Círculo d) Flecha 4) Un ____________ representa una relación en la notación Chen. a) Rectángulo b) Cuadrado c) Diamante d) Círculo 5) ¿Cuáles de las siguientes son grados de una relación? a) Unario b) Binario c) N-ario d) Ninguna de las anteriores 6) Las ocurrencias individuales de un tipo de entidad se identifican de forma única por una clave. a) Verdadero b) Falso

Unidad 2: Diagrama Entidad Relación

Libro 1: Base de Datos I 50

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Guía del Estudiante

Base de Datos I

7) Si hay dos tipos de entidad implicados, es un tipo de relación ______. a) Decimal b) Binaria c) Byte d) Bit 8) Todos los datos relacionados a una entidad se guardan en sus _______. a) Atributos b) tipos de Entidad c) Tipos de dato d) Ninguna de las anteriores 9) La normalización es parte del diseño lógico. a) Verdadero b) Falso 10) La recolección y análisis de requerimientos son el segundo paso en el diseño de base de datos. a) Verdadero b) Falso

Libro 1: Base de Datos I

Unidad 2: Diagrama Entidad Relación 51

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Base de Datos I

Guía del Estudiante

Respuestas a la Unidad 2: Examen de Autoevaluación 1) b 2) b 3) b 4) c 5) a, b y c 6) a 7) b 8) a 9) a 10) b

Unidad 2: Diagrama Entidad Relación

Libro 1: Base de Datos I 52

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Guía del Estudiante

Base de Datos I

Unidad 3: Normalización de la Base de Datos Objetivos de Aprendizaje Al finalizar esta unidad, usted será capaz de: •

Explicar qué es la normalización.



Describir la importancia de la normalización en la base de datos.



Apreciar la necesidad de la normalización en la base de datos.



Discutir las diferentes formas normales.

Libro 1: Base de Datos I

Unidad 3: Normalización de la Base de Datos 53

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Base de Datos I

Guía del Estudiante

1. Normalización En los modelos de bases de datos relacionales, la normalización es el proceso de organizar los datos para reducir al mínimo la duplicación. La normalización generalmente implica el proceso de dividir una base de datos en dos o más tablas y de definir las relaciones entre ellas. La normalización se refiere al proceso de crear una estructura de base de datos relacional eficiente, confiable, flexible y apropiada para almacenar información. Este proceso de organizar los datos en tablas y de definir relaciones entre ellas, se denomina normalización. La estructura relacional en este contexto se refiere a la manera en que las tablas se relacionan una a otra. El objetivo de la normalización es aislar los datos, de forma tal que la adición, eliminación o la modificación del valor a un campo se pueda hacer sobre una sola tabla y luego ésta se propague al resto de la base de datos a través de las relaciones definidas. Se va a entender la normalización con algunos ejemplos: Asuma que se debe almacenar la información de los estudiantes y los cursos que ellos han tomado. Se sabe, que los datos están almacenados en forma de tablas en el RDBMS. La información se puede organizar según se muestra en la Tabla 3.1. Tabla Estudiante ID Estudiante S101 S102 S101 S103

Nombre Estudiante Joseph Daniel Jerry Jones Joseph Daniel Carl Baker

Ubicación Domicilio

ID Curso

New York

CS201

San José

CS202

New York

CS202

Washington

CS203

Curso Sistema de Administración de Base de Datos Análisis y Diseño Orientado a Objetos Análisis y Diseño Orientado a Objetos Ingeniería de Software

Tabla 3.1: Datos de la Tabla Estudiante

La Tabla 3.1 lista los estudiantes, la ubicación de sus domicilios y los cursos en que se han matriculado. Hay un requerimiento del negocio que solicita cambiar el nombre del curso de ‘Análisis y Diseño Orientado a Objetos’ a ‘Análisis Orientado a Objetos’. ¿Cómo puede ser incorporado este cambio? El primer paso es identificar todas las ocurrencias de ese nombre de curso y después reemplazarlo por el nombre dado. Considere otra situación. Si un estudiante cambia la ubicación de su domicilio, se debe identificar todas las ocurrencias del estudiante y cambiar la ubicación en todas partes. Unidad 3: Normalización de la Base de Datos

Libro 1: Base de Datos I 54

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Guía del Estudiante

Base de Datos I

La duplicación se hubiese podido evitar si se divide la tabla Estudiante en dos tablas diferentes y después se enlaza con una tabla relación. Observe las Tablas 3.2, 3.3 y 3.4. Tabla Estudiante IDEstudiante S101 S102 S103

NombreEstudiante Joseph Daniel Jerry Jones Carl Baker

UbicacionCasa New York San Jose Washington

Tabla 3.2: Datos de la Tabla Estudiante

Tabla Curso IDCurso CS201 CS202 CS203

Curso Sistema de Administración de Base de Datos Análisis y Diseño Orientado a Objetos Ingeniería de Software Tabla 3.3: Datos de la Tabla Curso

Tabla EstudianteCurso IDEstudiante S101 S101 S102 S103

IDCurso CS201 CS202 CS202 CS203

Tabla 3.4: Datos de la Tabla EstudianteCurso

La tabla EstudianteCurso es una tabla / relación que enlaza la tabla Estudiante a la tabla Curso. Ahora, si se desea cambiar el nombre de un curso o la ubicación del domicilio de un estudiante, se deben cambiar los datos en un solo lugar. De esta manera se evita la duplicación. Esto fue sólo una introducción a la normalización, las siguientes secciones profundizan este tema.

1.1

Descomposición sin Pérdida de Información (Loss-Less Joins)

En el ejemplo anterior, se dividió la Tabla 3.1 en tres tablas. Los datos deben ser analizados cuidadosamente antes de que se puedan dividir las tablas. La tabla debe dividirse de tal manera que si las tablas (resultantes) se unieran de nuevo (joined), se obtiene la tabla original. No debe haber pérdida de datos después de la normalización. Esta unión se denomina Descomposición sin Pérdida “Loss Less Join”.

Libro 1: Base de Datos I

Unidad 3: Normalización de la Base de Datos 55

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Base de Datos I

Guía del Estudiante

Ahora, se explicará porqué se debe normalizar.

2. Necesidad de Normalizar Existen varias ventajas para normalizar y algunas de ellas se listan a continuación:

2.1 Flexibilidad La normalización permite a la estructura de datos ser muy flexible y soportar diversas maneras de ver los datos. En el ejemplo anterior, la tabla EstudianteCurso permite que se identifiquen a los estudiantes matriculados en un curso en particular o los cursos matriculados por un estudiante.

2.2 Integridad de Datos La integridad de datos es una característica importante del RDBMS. La integridad de los datos no debe ser alterada en ningún instante. Las operaciones de modificación como la eliminación, inserción y la actualización no deben alterar la integridad de los datos, que daría como resultado una anomalía en la modificación. En el ejemplo anterior, se vio que para cambiar el nombre del curso, se cambiaron los datos en dos lugares. Si se cambian los datos en un lugar y se dejan los datos en el otro lugar sin cambiar, entonces la integridad de los datos se altera, lo que se denomina anomalía en la modificación. La integridad de los datos es asegurada a través de la normalización.

2.3 Eficiencia La normalización elimina los datos redundantes, para ahorrar espacio y para hacer el proceso de recuperación de datos más eficiente.

3. Formas Normales Las formas normales son una serie de pasos lógicos en el proceso de la normalización. Los siguientes son los diversos tipos de formas normales: •

Primera Forma Normal (1NF).



Segunda Forma Normal (2NF).



Tercera Forma Normal (3NF).



Cuarta Forma Normal (4NF).

3.1 1NF La relación entre las tablas se dice que está en 1NF si satisface las siguientes condiciones:

Unidad 3: Normalización de la Base de Datos

Libro 1: Base de Datos I 56

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Guía del Estudiante

Base de Datos I



Los campos de variables repetidas o grupos de variables repetidas deben ser eliminados.



Todas las filas contienen el mismo número de campos.

Sea el ejemplo en la Tabla 3.5. Id Fecha Orden Cliente Email Orden Cliente 1 11/30/1998 Joe Smith [email protected]

Grado Puntos Nombre Cant Precio Credito Item Reque Unitario A 1 Martillo 5 $25

1

11/30/1998

Joe Smith [email protected]

A

1

Sierra

10

$30

1

11/30/1998

Joe Smith [email protected]

A

1

Clavos

15

$40

2

12/3/1998

Sam

[email protected]

B

4

Sierra

20

$30

2

12/3/1998

Sam

[email protected]

B

4

Clavos

25

$40

Tabla 3.5: Tabla Orden con Grupos Repetidos

La Tabla 3.5 almacena los siguientes detalles: •

Cada orden que se realiza, es identificada por un IdOrden.



La fecha de la orden (FechaOrden).



Los detalles del cliente que ha pedido los artículos (Cliente, EmailCliente).



A cada cliente, dependiendo de su historia de crédito, se le asigna PuntosCredito. De acuerdo con PuntosCredito, se califica a un cliente. Por ejemplo, los clientes con los PuntosCredito de 1, 2 y 3 están en el Grado A. Los clientes con PuntosCredito de 4, 5 y 6 están en el Grado B. La tabla almacena PuntosCredito y Grado del cliente.



Los artículos pedidos (NombreItem).



La cantidad pedida por cada artículo (CantReque).



El precio unitario del artículo (PrecioUnitario).

Según la definición de 1NF, los campos de variables repetidas y los grupos de variables repetidas deben ser eliminados. ¿Qué es un grupo de variables repetidas? En la Tabla 3.5 Orden, los detalles del cliente se repiten por cada artículo que fue pedido. Por ejemplo, el cliente Joe Smith ha pedido martillo, clavo y sierra. Los detalles de este cliente se han repetido en la tabla tres veces, ya que ha pedido tres artículos. Esta clase de repetición en grupos de valores se llama grupo de variables repetidas. La tabla anterior no está en 1NF, pues viola la condición de repetición de grupo. Observe las desventajas de una tabla no normalizada. En la tabla anterior, si se cambia la dirección de correo electrónico (e-mail) del cliente Joe Smith, se debe cambiar en tres lugares. Así pues, si el cliente ha hecho tres órdenes y en cada orden ha pedido cinco

Libro 1: Base de Datos I

Unidad 3: Normalización de la Base de Datos 57

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Base de Datos I

Guía del Estudiante

artículos, entonces se debe cambiar su dirección de correo electrónico (e-mail) en 15 filas. El precio unitario de los artículos también se repite para cada orden, si el artículo se incluye en varias órdenes. Se aplica la 1NF en la tabla anterior sobre órdenes. Cuando se aplica la normalización, dará lugar a dos tablas, la Tabla 3.6 con clave primaria IdOrden y la Tabla 3.7 con clave primaria IdOrden y NombreItem (Clave Compuesta). IdOrden

FechaOrden

Cliente

EmailCliente

Grado

Puntos Credito

1

11/30/1998

Joe Smith

[email protected]

A

1

2

12/3/1998

Sam

[email protected]

B

4

Tabla 3.6: Tabla Orden en 1NF IdOrden

NombreItem Martillo

Cant Reque 5

Precio Unitario $25

1 1

Sierra

10

$30

1

Clavos

15

$40

2

Sierra

20

$30

2

Clavos

25

$40

Tabla 3.7: Tabla ArticuloOrden

La Tabla 3.6 y la Tabla 3.7 están en 1NF pues no hay grupos repetitivos.

3.2 2NF Un diseño relacional se dice que está en segunda forma normal (2NF) si, y sólo si, está en 1NF y cada columna que no está en la clave primaria es dependiente totalmente de la clave primaria. La 2NF sólo se aplica a las Tablas que tienen claves primarias compuestas (por dos o más columnas). Si una Tabla está en 1NF y su clave primaria es simple (tiene una sola columna), entonces también está en 2NF. Para pasar una Tabla en 1NF a 2NF hay que eliminar las dependencias parciales de la clave primaria. Para ello, se eliminan las columnas que no dependen completamente de la clave compuesta y se colocan en una nueva tabla con una copia de su determinante (las columnas de la clave primaria de las que dependen). La Tabla 3.6 está en 2NF, ya que la tabla tiene clave primaria simple, en este caso la tabla permanece igual, el siguiente paso es verificar la 3NF.

Unidad 3: Normalización de la Base de Datos

Libro 1: Base de Datos I 58

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Guía del Estudiante

Base de Datos I

Considere la Tabla 3.7 que enumera los artículos pedidos en cada orden. La columna clave en esta tabla es una clave compuesta por IdOrden y NombreItem. IdOrden y NombreItem, en combinación, identifican cada fila en la Tabla 3.7. Las otras columnas (CantReque y PrecioUnitario) son columnas no-clave. La columna cantidad requerida (CantReque) es totalmente dependiente de la clave compuesta por IdOrder y NombreItem. Sin embargo, la columna del precio (PrecioUnitario) no es totalmente dependiente de la clave compuesta, es dependiente de la columna NombreItem, aunque se mantiene en la tabla DetalleOrden una columna PrecioUnitarioVenta de Item, para asegurar tener el precio de venta del producto en ese momento, en el caso de que en un futuro aumenten los precios del ítem. Para hacer que la Tabla 3.7 cumpla con 2NF, se divide en dos tablas, las tablas DetalleOrden e Item. Vea las Tablas 3.8 y 3.9. DetalleOrden IdOrden 1 1 1 2 2

Cant Reque

IdItem 1 2 3 2 3

5 10 15 20 25

Precio Unitario Venta $25 $30 $40 $30 $40

Tabla 3.8: Tabla DetalleOrden en 2NF

Item IdItem 1

Nombre Item Martillo

Precio Unitario $25

2

Sierra

$30

3

Clavos

$40

Tabla 3.9: Tabla Item

Se agrega la columna IdItem la cual será el identificador de cada Item en la Tabla 3.9. La columna de PrecioUnitario es una característica de un artículo, y por lo tanto, se incluye en la tabla Item, se mantiene una columna PrecioUnitarioVenta en la Tabla 3.8 para garantizar información histórica de venta de un Item. La Tabla 3.8 tiene como clave primaria IdOrden e IdItem (Clave Compuesta) y la Tabla 3.9 tiene como clave primaria IdItem.

Libro 1: Base de Datos I

Unidad 3: Normalización de la Base de Datos 59

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Base de Datos I

Guía del Estudiante

3.3 3NF Para que un diseño relacional esté en 3NF, tiene que estar en 2NF y cada columna noclave tiene que ser mutuamente excluyente e independiente. No debe tener ninguna dependencia transitiva. Dependencia Transitiva: Tome un ejemplo para entender la dependencia transitiva. Asuma que se tienen tres columnas A, B y C en una tabla, donde A es la columna clave. La dependencia se puede especificar como A---> B, C. En esta relación, si B depende de A y C depende de B, entonces C también depende de A. Esta clase de dependencia se denomina dependencia transitiva. Si hay una dependencia transitiva, entonces se elimina separando la tabla, en la Tabla 1 que contiene las columnas A y B, y la Tabla 2 que contiene las columnas B y C. La Tabla 3.6 está en 2NF, pero no en 3NF. La columna clave de la tabla Orden (Tabla 3.6) es IdOrden. Según 3NF, todas las columnas no-clave tienen que ser mutuamente independientes. Las columnas no-clave PuntosCredito y Grado no son mutuamente independientes, así como las columnas cliente y emailCliente no son mutuamente independientes. Cada Grado se basa en PuntosCredito. A los clientes que tienen PuntosCredito 1, 2 y 3 se les asigna el Grado A. Los clientes que tienen PuntosCredito 4, 5 y 6 se les asigna el Grado B. Cuando se aplica 3NF en la Tabla 3.6, da lugar a tres tablas más: la tabla Cliente Tabla 3.10, la tabla PuntosCredito Tabla 3.11 y la Tabla 3.12 Orden. Cliente IdCliente

Cliente

EmailCliente

Puntos Credito

1

Joe Smith

[email protected]

1

2

Sam

[email protected]

4

Tabla 3.10: Tabla Cliente en 3NF

Unidad 3: Normalización de la Base de Datos

Libro 1: Base de Datos I 60

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Guía del Estudiante

Base de Datos I

PuntosCredito Puntos Credito

Grado

1

A

2

A

3

A

4

B

5

B

6

B

7

C

8

C

9

C

Tabla 3.11: PuntosCredito en 3NF

Tabla Orden IdOrden

FechaOrden

IdCliente

1

11/30/1998

1

2

12/3/1998

2

Tabla 3.12: Tabla Orden en 3NF

La tabla 3.10 Cliente contiene la información del cliente. A cada cliente se le asigna un IdCliente, que es la columna clave en la tabla. Este IdCliente se utiliza en la tabla Orden para cada orden. Vea la Tabla 3.12 La Tabla 3.11 PuntosCredito la columna clave en esta tabla es PuntosCredito para cada uno de los puntos se asigna un grado de descuento. Las Tablas 3.10, 3.11 y 3.12 ahora están en 3NF. Las Tablas 3.8 y 3.9 están en 3NF.

3.4 4NF Para que un diseño relacional esté en 4NF, tiene que estar en 3NF y la tabla no debe contener dos o más columnas independientes multivaluadas. A continuación otro ejemplo. Considere una tabla que debe almacenar los nombres de diversas personas, los países visitados por ellos y los premios que han recibido. Las columnas de la tabla se muestran en la Tabla 3.14.

Libro 1: Base de Datos I

Unidad 3: Normalización de la Base de Datos 61

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Base de Datos I

Guía del Estudiante Persona

PaisesVisitados

PremiosRecibidos

Tabla 3.14: Tabla que Contiene dos columnas Independientes Multi-Valuadas

En la tabla anterior ambas columnas son multivaluadas. Una persona puede visitar más de un país y puede obtener más de un premio. Si se almacena esta información en una sola tabla, daría lugar a la Tabla 3.15. Persona Scott Scott Scott Scott Scott

PaisesVisitados Germany France

PremiosRecibidos

Grammy Oscar Premio Noble

Tabla 3.15: Tabla que Contiene Valores en sólo una de las Columnas

Los campos en blanco en la Tabla 3.15 conducen a ambigüedades. Una entrada en blanco en la columna PaisesVisitados podría significar que la persona no ha visitado ningún país, o que el campo no es aplicable a la persona, o los datos son desconocidos, o como en este caso, los datos se pueden encontrar en otro registro. Sin embargo, las dos columnas son independientes, pues no se relacionan una con otra. Visitar países y recibir premios son dos entidades diferentes, por lo tanto, son independientes una de la otra. Ambas columnas son multivaluadas porque una persona puede visitar más de un país y puede recibir más de un premio. Aquí, se presentan dos relaciones de muchos-a-muchos, una entre Persona y PaisesVisitados y la otra entre Persona y PremiosRecibidos. En la 4NF, estas dos relaciones no se deben representar en una sola tabla como se presentó en la Tabla 3.15. En lugar de ello, se deben representar en dos tablas, como las Tablas 3.16 y 3.17. PaisesVisitados Persona

PaisesVisitados

Scott

Alemania

Scott

Francia Tabla 3.16: 4NF Datos de la Tabla PaisesVisitados

Unidad 3: Normalización de la Base de Datos

Libro 1: Base de Datos I 62

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Guía del Estudiante

Base de Datos I

PremiosRecibidos Persona

PremiosRecibidos

Scott

Grammy

Scott

Oscar

Scott

Premio Nobel

Tabla 3.17: 4NF Datos de la Tabla PremiosRecibidos

Las Tablas 3.16 y 3.17 están en 4NF. No contienen dos o más columnas independientes multivaluadas.

3.5 Conclusión El proceso de diseño de datos no es simple, tiene muchas complejidades que están más allá del alcance de esta unidad. Para comenzar, un conjunto inicial de elementos de datos y registros tienen que ser desarrollados y clasificados como candidatos a la normalización. Luego, los factores que afectan la normalización tienen que ser evaluados. Algunos de ellos se enumeran a continuación: •

Datos con un sólo valor contra multivaluados.



Dependencia completa de la clave.



Hechos independientes contra hechos dependientes.



La presencia de restricciones mutuas.



La presencia de representaciones no únicas o no singulares.

Finalmente, la conveniencia de la normalización tiene que ser evaluada, en términos de impacto en el rendimiento de las aplicaciones en el proceso de recuperación de datos.

Libro 1: Base de Datos I

Unidad 3: Normalización de la Base de Datos 63

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Base de Datos I

Guía del Estudiante

Resumen Ahora que ha completado esta unidad, usted debe ser capaz de: • Explicar qué es la normalización. • Describir la importancia de la normalización en la base de datos. • Apreciar la necesidad de la normalización en la base de datos. • Discutir las diferentes formas normales.

Unidad 3: Normalización de la Base de Datos

Libro 1: Base de Datos I 64

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Guía del Estudiante

Base de Datos I

Unidad 3: Examen de Autoevaluación 1) La normalización es el proceso de organizar datos para minimizar la duplicación. a) Verdadero b) Falso 2) 1NF no permite repetir campos en columnas. a) Verdadero b) Falso 3) Un diseño relacional está en 2NF si y solo si está en _________. a) 1NF b) 3NF c) 4NF d) Todas las anteriores 4) ¿En cuál de las formas siguientes se verifica que cada columna no clave es completamente dependiente de la clave primaria en su totalidad? a) 1NF b) 2NF c) 3NF d) 4NF 5) ¿En cuál de las formas siguientes se verifica que cada columna no clave es mutuamente independiente? a) 1NF b) 2NF c) 3NF d) 4NF 6) ¿En cuál de las formas siguientes se verifica que la tabla no contiene dos o más columnas independientes multivaluadas? a) 1NF b) 2NF c) 3NF d) 4NF

Libro 1: Base de Datos I

Unidad 3: Normalización de la Base de Datos 65

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Base de Datos I

Guía del Estudiante

7) La normalización se refiere al proceso de crear una estructura relacional eficiente, confiable, flexible y apropiada para almacenar información. a) Verdadero b) Falso 8) La normalización es parte del proceso de diseño ____________. a) Lógico b) Físico c) De almacenamiento d) Salida 9) ¿Cuál es el proceso de dividir una base de datos en dos o más tablas y de definir relaciones entre ellas? a) Diseño b) Normalización c) Almacenamiento d) Medida 10) La integridad de los datos se asegura en el proceso de normalización. a) Verdadero b) Falso

Unidad 3: Normalización de la Base de Datos

Libro 1: Base de Datos I 66

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Guía del Estudiante

Base de Datos I

Respuestas a la Unidad 3: Examen de Autoevaluación 1) a 2) a 3) a 4) b 5) c 6) d 7) a 8) a 9) b 10) a

Libro 1: Base de Datos I

Unidad 3: Normalización de la Base de Datos 67

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Guía del Estudiante

Base de Datos I

Unidad 4: Lab. de Diseño de Base de Datos Objetivos de Aprendizaje Al final de esta unidad usted será capaz de: •

Identificar las diversas entidades y las relaciones entre ellas en un sistema.



Construir un diagrama ER.



Traducir la comprensión conceptual a un diseño de tablas.



Realizar las operaciones de normalización.



Comprender el diseño de una tabla en la forma de un diagrama.

Libro 1: Base de Datos I

Unidad 4: Lab. de Diseño de Base de Datos 69

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Base de Datos I

Guía del Estudiante

Ejercicio de Laboratorio Definición del Problema: INFORME DE GASTOS. 1) Jones y David hacen un viaje oficial a Cincinnati. Incurren en gastos por su estadía de siete días en Cincinnati. Cada uno envía un informe de gastos por el viaje. Un INFORME DE GASTO tiene uno o más gastos enumerados como ITEMS. Jones incurrió en los siguientes gastos: •

Gastos de alojamiento.



Taxi desde el aeropuerto.



Taxi al aeropuerto.



Almuerzo.



Cena.

Su informe de gastos tendrá cinco ítems de Gastos. •

Cada GASTO pertenece a una Categoría. El dinero gastado en comida pertenece a la categoría de alimento, el dinero gastado en taxi pertenece a la categoría de transporte y el dinero gastado en alojamiento pertenece a la categoría de alojamiento.



Cada CATEGORÍA DE GASTO tiene un límite. El dinero gastado en la categoría de alimento no puede exceder de $1000, el dinero gastado en transporte no puede exceder de $ 3000 y el dinero gastado en alojamiento no puede exceder a $ 2500.



Cada EMPLEADO tiene un LÍMITE de gasto bajo cada CATEGORÍA DE GASTO. Aunque cada categoría de gasto tiene un límite, no todos los empleados son asignados bajo el mismo límite máximo de una categoría dada. Cada empleado tiene un límite de gasto bajo cada categoría de gasto, que varía de empleado a empleado. Bajo la categoría de Alimento, David tiene un límite de gasto de $500, mientras que Jones tiene un límite de $1000. El límite máximo bajo de esta categoría es $1000. El estado de un INFORME DE GASTOS puede ser: en espera de aprobación, aprobada o denegada.

Cuando David envía su informe de gastos, éste ingresa a la base de datos. En este punto, el estado del informe está ‘en espera de aprobación'. El encargado revisa el informe y lo cambia al estado de ‘aprobado ' o ‘denegado'. Para la definición del problema anterior realice las siguientes tareas: •

Identifique en el sistema las diversas entidades y las relaciones entre ellas.



Identifique los atributos para cada una de las entidades y señale cuáles son claves.



Construya un diagrama ER.

Unidad 4: Lab. de Diseño de Base de Datos

Libro 1: Base de Datos I 70

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Guía del Estudiante

Base de Datos I

Unidad 5: Lab. de Modelado de Base de Datos Objetivos de Aprendizaje Al finalizar esta unidad, usted será capaz de: • Utilizar la herramienta Azzurri Clay. • Conocer los procedimientos para crear tablas, índices, claves únicas y claves foráneas. • Aplicar ingeniería en reversa de una base de datos ya existente. • Generar scripts SQL de un modelo de base de datos.

Libro 1: Base de Datos I

Unidad 5: Lab. de Modelado de Base de Datos 71

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Base de Datos I

Guía del Estudiante

1. Introducción a Azzurri Clay Azzurri Clay, es una herramienta modeladora de Base de Datos que corre como un Plug-in en Eclipse. Tiene las siguientes propiedades: • Proporcionar una interfaz gráfica para modelar base de datos. • Permite aplicar ingeniería en reversa de base de datos existentes. • Generar sentencias SQL en el lenguaje apropiado para crear Base de Datos.

2. Inicio de Sesión en Azzurri Clay Para ingresar a Azzurri Clay hay que iniciar sesión en Eclipse 3.0 como lo muestra la Figura 5.1.

Figura 5.1: Inicio de Sesión en Eclipse 3.1

Luego de iniciar sesión en eclipse aparece la pantalla que muestra la Figura 5.2.

Unidad 5: Lab. de Modelado de Base de Datos

Libro 1: Base de Datos I 72

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Guía del Estudiante

Base de Datos I

Figura 5.2: Directorio de Trabajo (Workspace Launcher)

Si se tiene una carpeta para guardar los trabajos haga clic en para ubicarla. Si no existe un espacio de trabajo, puede crear uno mediante los siguientes pasos: Haga clic en Figura 5.3.

. Una vez seleccionado aparece la pantalla mostrada en la

Figura 5.3: Nuevo Directorio de Trabajo

Seleccione el directorio donde desea almacenar los archivos, haciendo clic en los directorios que muestra la Figura 5.4.

Libro 1: Base de Datos I

Unidad 5: Lab. de Modelado de Base de Datos 73

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Base de Datos I

Guía del Estudiante

Figura 5.4: Selección del Directorio

Para crear una nueva carpeta escriba el nombre de la misma en el espacio señalado en la Figura 5.5.

Figura 5.5: Asignando un Nombre a la Nueva Carpeta

Una vez seleccionado el nuevo directorio haga clic en y aparecerá en la pantalla una ventana que indica la ubicación del directorio en el que está trabajando, tal como lo muestra la Figura 5.6.

Figura 5.6: Selección del Directorio de Trabajo (Workspace Directory)

Una vez creada la carpeta, haga clic en

Unidad 5: Lab. de Modelado de Base de Datos

. Libro 1: Base de Datos I 74

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Guía del Estudiante

Base de Datos I

Una vez seleccionado el directorio a trabajar, aparece la pantalla de bienvenida a Eclipse 3.0, tal como se observa en la Figura 5.7. Para iniciar la sesión en este entorno, y aparecerá la ventana principal mostrada en la Figura 5.8.

haga clic en

Figura 5.7: Ventana para Comenzar a Trabajar en Eclipse

Figura 5.8: Ventana Principal de Eclipse

Libro 1: Base de Datos I

Unidad 5: Lab. de Modelado de Base de Datos 75

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Base de Datos I

Guía del Estudiante

Para comenzar a trabajar, se debe tener creado un proyecto. Selecciónelo al momento de empezar a crear los diagramas, si no se tiene un proyecto creado, debe crearlo siguiendo los pasos a continuación: Seleccione FileÆNewÆProject (ArchivoÆNuevoÆProyecto), como se observa en la Figura 5.9 (a) o haga clic derecho con el ratón sobre el área de trabajo y seleccione NewÆProject (NuevoÆProyecto), tal como lo muestra la Figura 5. 9 (b).

Figura 5.9 (a): Creación de un Nuevo Proyecto

Unidad 5: Lab. de Modelado de Base de Datos

Libro 1: Base de Datos I 76

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Guía del Estudiante

Base de Datos I

Figura 5.9 (b): Creación de un Nuevo Proyecto

Seguidamente, aparecerá una ventana donde se debe seleccionar la opción Java Project (Proyecto Java) como lo muestra la Figura 5.10. Haga clic en seguir al siguiente paso.

para

Figura 5.10: Selección de la opción Java Project

Asigne un nombre al proyecto en la caja de texto Project Name (Nombre del Proyecto). En Project Layout (Capa del Proyecto), seleccione Create separate source and output Libro 1: Base de Datos I

Unidad 5: Lab. de Modelado de Base de Datos 77

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Base de Datos I

Guía del Estudiante

folders (Crear fuentes y carpetas por separado) como se muestra en la Figura 5.11. para aceptar o rechazar la confirmación de la Luego, haga clic en perspectiva java, esto lo muestra la Figura 5.12.

Figura 5.11: Asignar un Nombre al Proyecto

Figura 5.12: Confirmación o Rechazo de Perspectiva Java

Una vez que se tiene un proyecto para trabajar, se puede iniciar la sesión en Azzurri Clay, como lo muestra la Figura 5.13.

Unidad 5: Lab. de Modelado de Base de Datos

Libro 1: Base de Datos I 78

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Guía del Estudiante

Base de Datos I

Figura 5.13: Iniciar Sesión de Azzurri Clay

Ubíquese en la carpeta Src (Fuente) y con el botón derecho del ratón haga clic en NewÆOther (NuevoÆOtros). Seguidamente, aparecerá la ventana mostrada en la Figura 5.13. Seleccione la opción Azzurri Clay Database Design Diagram (Diagrama de Diseño de Base de Datos Azzurri Clay) y haga clic en la Figura 5.14.

como se muestra en

Figura 5.14: Selección del Diagrama de Diseño de Base de Datos Azzurri Clay

Libro 1: Base de Datos I

Unidad 5: Lab. de Modelado de Base de Datos 79

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Base de Datos I

Guía del Estudiante

Seleccione un directorio donde trabajar, un nombre para el diagrama y el SQL Dialect . Dichas (Dialecto SQL) que se va a utilizar, luego haga clic en características se pueden seleccionar en la ventana que se observa en la Figura 5.15.

Figura 5.15 Selección de los parámetros necesarios para crear un Diagrama en Azzurri Clay

Unidad 5: Lab. de Modelado de Base de Datos

Libro 1: Base de Datos I 80

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Guía del Estudiante

Base de Datos I

Figura 5.16: Pantalla Principal de Clay

Azzurri Clay proporciona una barra de herramienta con la que es posible agregar tablas, hacer referencias foráneas y seleccionar elementos en el diagrama que se está realizando, observe la Figura 5.17.

Referencias de Clave Agregar Tabla Figura 5.17: Barra de Herramienta del Diagrama

3. Creación de Tablas Para agregar una tabla basta con hacer clic en Add Table (Agregar Tabla) y dibujar la tabla en el Espacio de Trabajo, al hacer esto, se podrá ver la ventana mostrada en la Figura 5.18.

Libro 1: Base de Datos I

Unidad 5: Lab. de Modelado de Base de Datos 81

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Base de Datos I

Guía del Estudiante

Figura 5.18: Pantalla con una Tabla Insertada

Haciendo clic derecho sobre la tabla aparece el siguiente submenú.

Figura 5.19: Submenú del Elemento Tabla

Unidad 5: Lab. de Modelado de Base de Datos

Libro 1: Base de Datos I 82

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Guía del Estudiante

Base de Datos I

Opción

Descripción

Undo

Deshacer la última acción.

Redo

Rehacer la última acción.

Copy Table TABLE_1

Copiar la tabla seleccionada (TABLE_1).

Paste Copy of Table TABLE_1

Pegar la copia de la tabla seleccionada (TABLE_1)

Edit Database Model

Permite cambiar el dialecto de SQL que se está usando en el diagrama actual.

Edit Schemas

Lista los Schema que se pueden usar.

Edit Table

Edita la configuración de la tabla seleccionada.

Edit Table Columns

Edita la configuración de las columnas de la tabla seleccionada.

Edit Table Indexes

Permite crear índices en la tabla seleccionada.

Edit Table Unique Keys

Permite crear claves únicas en la tabla seleccionada.

Delete

Borrar la tabla seleccionada.

Resize Table_1 to Default Size

Ajustar el tamaño del marco de la tabla al contenido.

Reverse Engineer Database

Iniciar proceso de Ingeniería en Reversa de una base de datos existente.

Generate SQL TABLE) Script

Generar los Script de la tabla seleccionada.

Save

(CREATE

Guarda el Diagrama que se está diseñando. Cuadro 5.1: Opciones del Submenú del Elemento Tabla

A cada tabla creada se le debe asignar un nombre en el espacio de Name (Nombre) en la pestaña Table (Tabla), tal como se observa en la Figura 5.20.

Libro 1: Base de Datos I

Unidad 5: Lab. de Modelado de Base de Datos 83

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Base de Datos I

Guía del Estudiante

Figura 5.20: Editor de Tablas - Datos de la Tabla

En la pestaña Columns (Columnas) se debe colocar toda la información referente a las columnas (Name, Data Type, Primary Key). El Cuadro 5.2 muestra las opciones para configurar los campos de la tabla que se está creando. Ver Figura 5.21.

Opción Add New Insert New Delete Description Name Alias Remarks Data Type Precision Scale Primary Key Mandatory

Auto-Increment Default

Descripción Agrega una nueva columna. Agrega una nueva columna y la inserta por encima de la columna seleccionada. Elimina la columna que esta seleccionada en ese momento. Abre una ventana para documentar las características de la columna. Espacio para colocar el nombre de la columna. Espacio para asignar otro nombre a la tabla que no afecta la generación de los scripts, ya que en los scripts aparecerá con el asignado en Name. Espacio para agregar un comentario de la columna que puede estar contenido en el scripts de la tabla que la contiene. Despliega una lista de tipos de datos para la columna que soporta el dialecto SQL seleccionado para el modelo. Indica el tamaño de los valores a contener en la columna. Indica la parte fraccional que pueden tener los valores a contener en la columna. Se activa cuando la columna seleccionada es la clave primaria. Se activa cuando la columna debe ser not null. Cuando se selecciona una columna como Primary Key, se activa automáticamente la opción Mandatory. Se usa cuando el dialecto SQL soporta el uso de la opción de autoincremento. Valor que se le quiera dar por defecto a una columna. Cuadro 5.2: Opciones para configurar los campos de la tabla

Unidad 5: Lab. de Modelado de Base de Datos

Libro 1: Base de Datos I 84

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Guía del Estudiante

Base de Datos I

Figura 5.21: Editor de Tablas – Datos de las Columnas

Para comprender mejor la creación de tablas, se pueden crear dos tablas la Tabla Empleado y la Tabla Dependiente_emp que almacena datos de las personas que dependen del empleado con los siguientes campos: Empleado

Dependiente_emp

idemp

entero

nombre

carácter

fechaing

fecha

iddepemp

entero

nombre

carácter

relacion

carácter

El atributo relacion es el parentesco que existe con el empleado, por ejemplo: hijo, padre, madre y esposa.

Libro 1: Base de Datos I

Unidad 5: Lab. de Modelado de Base de Datos 85

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Base de Datos I

Guía del Estudiante

4. Creación de Índices en las Tablas Al hacer clic en la opción Edit Table Indexes (Editar Tablas Índices), se despliega la ventana mostrada en la Figura 5.22. Seleccione Index ListÆ

para crear un nuevo

índice en la tabla, observe la Figura 5.23. Luego, haga clic en Column ListÆ para seleccionar la columna que será índice, ver Figura 5.24. Con esto, ya se ha creado el nuevo índice, haga clic en 5.25 y 5.26.

para que se complete la creación. Observe la Figura

Figura 5.22: Seleccionar Opción Edit Table Indexes (Editar Tablas Índices)

Unidad 5: Lab. de Modelado de Base de Datos

Libro 1: Base de Datos I 86

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Guía del Estudiante

Base de Datos I

Figura 5.23: Ventana para Crear Índices

Figura 5.24: Creación de un Nuevo Índice

Libro 1: Base de Datos I

Unidad 5: Lab. de Modelado de Base de Datos 87

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Base de Datos I

Guía del Estudiante

Figura 5.25: Selección de una Columna que será Índice

Figura 5.26: Índice Creado

5. Creación de Claves Únicas Al hacer clic en la opción Edit Table Unique Keys (Editar Claves Únicas de la Tabla) se despliega la ventana mostrada en la Figura 5.27. Aquí, seleccione Unique Key ListÆ

(Lista de Clave Única) para crear una nueva clave única en la tabla;

observe la Figura 5.28. Luego, haga clic en Key Column ListÆ (Lista de Columna Clave) para seleccionar la columna que será única, ver Figura 5.29 Con esto,

Unidad 5: Lab. de Modelado de Base de Datos

Libro 1: Base de Datos I 88

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Guía del Estudiante

Base de Datos I

ya se ha creado la nueva clave única, tal como se puede observar en la Figura 5.30. Haga clic en

para que se complete la creación.

Figura 5.27: Selección de la Opción Edit Table Unique Keys

Figura 5.28: Ventana para Crear Clave Única Libro 1: Base de Datos I

Unidad 5: Lab. de Modelado de Base de Datos 89

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Base de Datos I

Guía del Estudiante

Figura 5.29: Creación de una Nueva Clave Única

Figura 5.30: Selección de una Columna que será Clave Única

Unidad 5: Lab. de Modelado de Base de Datos

Libro 1: Base de Datos I 90

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Guía del Estudiante

Base de Datos I

Figura 5.31: Clave Única Creada

6. Creación de Claves Foráneas Luego de haber creado las tablas, agregue una Clave Foránea haciendo referencia de la tabla Empleado en la tabla Dependiente_emp. Para realizar esto, haga clic en Foreign Key Reference (Referencia de Clave Foránea) y dibuje la relación desde la tabla en la que se va hacer la referencia (Dependiente_emp) hasta la tabla a la que hace referencia (Empleado). Posteriormente, se crea de manera automática el campo idemp (Clave Primaria de Empleado) en la tabla Dependiente_emp, campo por el cual va a estar referenciada la tabla Empleado, tal como lo muestra la Figura 5.32.

Libro 1: Base de Datos I

Unidad 5: Lab. de Modelado de Base de Datos 91

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Base de Datos I

Guía del Estudiante

Figura 5.32: Tablas Creadas

Figura 5.33 Referencia de Clave Foránea

Para ver las propiedades de la Clave Foránea creada, haga clic sobre la relación y con el botón derecho despliegue el submenú de opciones que pueden efectuarse sobre la relación. Para editar las propiedades seleccione la opción Edit Foreign Key (Editar Clave Foránea), seguidamente aparecerá la ventana mostrada en la Figura 5.34. En la ventana desplegada se puede configurar la clave foránea recién creada, observe la Figura 5.35.

Unidad 5: Lab. de Modelado de Base de Datos

Libro 1: Base de Datos I 92

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Guía del Estudiante

Base de Datos I

Figura 5.34: Submenú de Claves Foráneas

Figura 5.35: Ventana para Configurar la Clave Foránea

Libro 1: Base de Datos I

Unidad 5: Lab. de Modelado de Base de Datos 93

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Base de Datos I

Guía del Estudiante

7. Ingeniería en Reversa de la Base de Datos Para trabajar con la Ingeniería en Reversa, haga clic derecho sobre el área de trabajo, de esta manera se despliega un submenú del cual se debe seleccionar la opción de Reverse Engineer Database (Ingeniería en Reversa de la Base de Datos), observe la Figura 5.36.

Figura 5.36: Submenú para Seleccionar Reverse Engineer Database

Una vez activada esta opción, se despliega una ventana para hacer la conexión al manejador de base de datos a utilizar, tal como se muestra en la Figura 5.37.

Figura 5.37: Establecer Conexión con un Tipo de Manejador de Base de Dato

En esta ventana se tienen dos opciones: Crear nuevas conexiones o usar una existente. Si hay que crear la conexión haga clic en la opción

y aparecerá una ventana

Unidad 5: Lab. de Modelado de Base de Datos

Libro 1: Base de Datos I 94

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Guía del Estudiante

Base de Datos I

para editar la conexión como la mostrada por la Figura 5.38. Para establecer dicha conexión hay que definir los parámetros que muestra el Cuadro 5.3, haga clic en

.

Figura 5.38: Editar Conexión

Parámetro

Descripción

Connection Type Alias URL User Password JDBC Driver

Seleccionar un tipo de conexión de las desplegadas. Nombre para identificar la conexión. La ruta en donde se encuentra la Base de Dato a utilizar. Nombre de Usuario. Password del Usuario. Especificación del Driver a utilizar según tipo de conexión.

Driver Location

Ruta donde se encuentran los driver instalados. Cuadro 5.3: Parámetros para Configurar las Conexiones

Una vez creada la conexión haga clic en para especificar el esquema bajo el cual se va a trabajar, observe las Figuras 5.39 y 5.40. Como el Driver que se está utilizando es el de MySQL aperece un resumen mostrando información de la conexión, puede observarse en el URL el esquema o base de datos al cual se conectará (jdbc:mysql://localhost/mysql)

Libro 1: Base de Datos I

Unidad 5: Lab. de Modelado de Base de Datos 95

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Base de Datos I

Guía del Estudiante

Figura 5.39: Selección del Esquema de Trabajo

Figura 5.40: Esquema de Trabajo

Unidad 5: Lab. de Modelado de Base de Datos

Libro 1: Base de Datos I 96

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Guía del Estudiante

Base de Datos I

Haga clic en para seleccionar las tablas a utilizar en el diagrama, tal como se observa en las Figuras 5.41 y 5.42. Una vez seleccionadas las tablas, haga clic en y aparecerá insertada en el área del diagrama la(s) tabla(s) seleccionadas anteriormente, observe la Figura 5.43.

Figura 5.41: Selección de Tablas para hacer Ingeniería en Reversa

Libro 1: Base de Datos I

Unidad 5: Lab. de Modelado de Base de Datos 97

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Base de Datos I

Guía del Estudiante

Figura 5.42: Tabla a ser Insertada en el Diagrama

Figura 5.43: Tabla USER_INFO Insertada en el Diagrama

Unidad 5: Lab. de Modelado de Base de Datos

Libro 1: Base de Datos I 98

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Guía del Estudiante

Base de Datos I

8. Generación de Scripts SQL Se pueden generar los Scripts SQL de todo el modelo de base de datos (al no tener seleccionado un elemento en el diagrama al hacer clic derecho) o solo de un elemento determinado del modelo de base de datos (al tener seleccionado el elemento “una tabla” al hacer clic derecho). Cuando se hace clic derecho sobre el área deseada (Área de Trabajo o Tabla) se despliega un submenú, donde se debe seleccionar la opción Generate SQL (CREATE TABLE) Scripts (Generar Scripts SQL), ver Figura 5.44. También se puede seleccionar la opción por Menú Clay ÆGenerate SQL (CREATE TABLE) Scripts, como lo muestra la Figura 5.45.

Figura 5.44: Submenú para Generar los Scripts SQL

Figura 5.45: Opción de la Barra de Menú

Libro 1: Base de Datos I

Unidad 5: Lab. de Modelado de Base de Datos 99

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Base de Datos I

Guía del Estudiante

Luego de seleccionar la opción antes mencionada, aparece una ventana donde se requiere asignar un nombre al script SQL a generar. Para ello, ubíquese en la caja de texto File Name e introduzca un nombre, observe la Figura 5.46.

Figura 5.46: Tabla Nombre del Archivo que contendrá las Sentencias SQL

aparecerá una ventana para especificar que DDL Seguidamente, haga clic en (Data Definition Language) de la(s) tabla(s) del diagrama se van a generar, opciones especiales, si es el caso, y el símbolo de terminación de las sentencias SQL, ver Figura 5.47.

Unidad 5: Lab. de Modelado de Base de Datos

Libro 1: Base de Datos I 100

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Guía del Estudiante

Base de Datos I

Figura 5.47: Especificaciones para Generar las Sentencias SQL

Una vez seleccionadas las opciones, haga clic en , inmediatamente aparecerá una nueva pestaña en el área de trabajo que contendrá las sentencias SQL como aparece en la Figura 5.48.

Figura 5.48: Sentencias SQL Generadas Libro 1: Base de Datos I

Unidad 5: Lab. de Modelado de Base de Datos 101

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Base de Datos I

Guía del Estudiante

Resumen Ahora que ha completado esta unidad, usted debe ser capaz de: •

Utilizar la herramienta Azzurri Clay.



Conocer los procedimientos para crear tablas, índices, claves únicas y claves foráneas.



Aplicar ingeniería en reversa de una base de datos ya existente.



Generar scripts SQL de un modelo de base de datos.

Unidad 1:Programación en C – Los Primeros Pasos

Volumen 1: Fundamentos de C

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos en parte o en su totalidad sin el previo permiso escrito de IBM.

102

Guía del Estudiante

Base de Datos I

Volumen 2: Lenguaje de Consulta Estructurado

Libro 1: Base de Datos I

Volumen 2: Lenguaje de Consulta Estructurado 103

© Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el permiso previo escrito de IBM

Guía del Estudiante

Base de Datos I

Unidad 1 – Lenguaje de Consulta Estructurado - Fundamentos Objetivos de Aprendizaje Al finalizar esta unidad, usted será capaz de: •

Explicar qué es SQL.



Explicar qué son DDL, DML y DCL.



Escribir una sentencia SELECT simple y una sentencia SELECT condicional.



Hacer uso de las funciones agregadas.



Listar los operadores lógicos y el orden de precedencia.



Discutir sobre los operadores usados en las sentencias SELECT.

Lenguaje de Consulta Estructurado Unidad 1: Lenguaje de Consulta Estructurado -Fundamentos © Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el permiso previo escrito de IBM

105

Base de Datos I

Guía del Estudiante

1. Introducción En el Volumen 1, se discutió acerca del diseño de datos y el almacenamiento de datos en tablas. A continuación, se explica cómo se insertan, modifican y eliminan datos de una tabla, así como, visualizar los datos de una tabla. En otras palabras, en esta unidad aprenderá a conectarse con una base de datos. El lenguaje usado para comunicarse con una base de datos se llama Lenguaje de Consulta Estructurado (Structured Query Language – SQL), el cual se ha consolidado como el lenguaje estándar de las bases de datos relacionales. Es un lenguaje muy fácil de usar y parece tan simple como el inglés. SQL es un lenguaje estandarizado que sirve para definir y manipular los datos de una base de datos relacional. De acuerdo con el modelo relacional de datos, la base de datos se crea como un conjunto de tablas y las relaciones se representan mediante valores en las tablas. IBM originalmente desarrolló SQL a comienzos de los setenta, llamado inicialmente Sequel, cambió después su nombre a SQL. En 1986, el American National Standard Institute (ANSI) y el International Standards Organization (ISO), presentó un estándar para SQL llamado SQL-86. Desde entonces, ha ido evolucionado a medida que se han desarrollado nuevas versiones. En 1992 el ANSI / ISO presentó el estándar SQL-92. Actualmente, está vigente el SQL-99 (SQL3) que es soportado por muchos RDBMS. Cada RDBMS viene con una herramienta de uso interactivo que permite al usuario ingresar sentencias SQL y pasarlas a la base de datos para su ejecución. Estas sentencias, técnicamente llamadas consultas (queries), ayudan a crear, acceder y dar mantenimiento a los distintos objetos de la base de datos. La Tabla 1.1 muestra las herramientas de ejecución de SQL disponibles en el MySQL para ejecutar sentencias SQL. Herramientas de Ejecución de SQL Query Browser Línea de Comandos Tabla 1.1: Las Herramientas de Ejecución de SQL

A continuación se presenta una pequeña descripción del uso tanto de la Línea de Comandos como del query browser de MySQL. Usando la instalación del MySQL disponible en el sistema, realice las siguientes tareas:

Inicie la consola (Konsole) e ingrese el siguiente comando mysql -h localhost -u mysqladmin -p. Posteriormente, ingrese el password mysqladmin. También en el menú de inicio puede iniciar la aplicación MySQL Query Browser. Unidad 1: Lenguaje de Consulta Estructurado - Fundamentos Lenguaje de Consulta Estructurado © Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el permiso previo escrito de IBM

106

Guía del Estudiante

Base de Datos I

Ejecute los comandos que le facilita la aplicación (\h y \c, ). Si se encuentra utilizando el MySQL Query Browser puede navegar a través de los diferentes objetos de la base de datos en el árbol de objetos ubicados del lado derecho de la pantalla.

Conéctese a la base de datos test, con cualquiera de los siguientes comandos, seguido por la tecla Enter: \u test o use test Para conectarse a la base de datos en el Query Browser, sólo tiene que seleccionarla en el árbol que aparece del lado derecho de la pantalla.

Ingrese las sentencias necesarias (CREATE, INSERT, UPDATE, DELETE o DROP) y luego presione la tecla Enter. Recuerde que cuando se trabaja bajo Línea de Comandos las sentencias deben finalizar con el carácter (;).

Si trabaja en el Query Browser, primero debe ubicarse en el área de procesamiento de mandatos.

Lenguaje de Consulta Estructurado Unidad 1: Lenguaje de Consulta Estructurado -Fundamentos © Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el permiso previo escrito de IBM

107

Base de Datos I

Guía del Estudiante

Área de Procesamiento de Mandatos

Figura 2.1: Área de Procesamiento de Mandatos

Luego ingrese la sentencia y presione las teclas Control + Enter o haga clic sobre el botón Execute.

Figura 2.2: Botón Execute

Los ejemplos de éste y los siguientes volúmenes han sido probados tanto en el Query Browser como en Línea de Comandos de MySQL. Hay una mínima diferencia entre Línea de Comandos y Query Browser. En Línea de Comandos se espera que las consultas finalicen con un carácter de terminación (;), pero esto no es necesario cuando se trabaja en Query Browser. Antes de estudiar los comandos SQL y presentar algunos ejemplos, se discuten las distintas partes del SQL. Unidad 1: Lenguaje de Consulta Estructurado - Fundamentos Lenguaje de Consulta Estructurado © Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el permiso previo escrito de IBM

108

Guía del Estudiante

Base de Datos I

El SQL tiene las siguientes partes: •

Lenguaje de Definición de Datos (Data Definition Language - DDL): El DDL del SQL proporciona comandos para definir los objetos de la base de datos. Una tabla, por ejemplo, es un objeto de la base de datos. Otros objetos de la base de datos incluyen vistas, índices y procedimientos almacenados.



Lenguaje de Manipulación de Datos (Data Manipulation Language - DML): El DML del SQL proporciona comandos para insertar, eliminar y modificar registros en la(s) tabla(s).



Lenguaje de Control de Datos (Data Control Language - DCL): Mientras que el DDL y el DML se refieren a la manipulación de datos dentro de la base de datos, el DCL del SQL proporciona comandos para manejar y controlar datos. Ayuda al administrador a controlar la seguridad y los accesos a los datos, es decir, ayuda a mantener, administrar y a realizar un control ordenado sobre los datos.



Lenguaje de Consulta de Datos (Data Query Language - DQL): El DQL del SQL proporciona comandos para recuperar datos desde tablas. La sentencia SELECT es un comando DQL. Se aprenderá acerca del comando SELECT más adelante en esta unidad.

A continuación se estudian las tablas de datos.

2. Tabla de Datos Esencialmente el objeto de mayor importancia en la base datos es la tabla, la cual es utilizada para almacenar datos. •

Dentro de una tabla, los datos se almacenan en la forma de filas y columnas.



Cada fila representa a un registro y cada columna se denomina un atributo, el cual representa a un campo.



Un campo es una característica o una propiedad de los datos que son representados.

Las características de una tabla se ilustran en la Tabla 1.2. Fila 1

NombreCol

NombreCol

NombreCol

Fila 2 Tabla 1.2: Tabla de un RDBMS

La tabla DireccionDeEmpleado mostrada en la Tabla 1.3 es un ejemplo de una tabla de un RDBMS. Esta tabla relaciona la dirección, nombre y número del Seguro Social (NSS) de una persona.

Lenguaje de Consulta Estructurado Unidad 1: Lenguaje de Consulta Estructurado -Fundamentos © Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el permiso previo escrito de IBM

109

Base de Datos I

Guía del Estudiante Tabla DireccionDeEmpleado

NSS

Nombre

Apellido

Direccion

Ciudad

Estado

512687458

Mike

Dennis

83 First Street

Dayton

Ohio

758420012

Susan

Ikelar

842 Vine Ave.

Cincinnati

Ohio

102254896

Rob

Heimann

33 Elm St.

Tarrytown

New York

876512563

Sarah

Connors

440 U.S. 110

Ann Arbor

Michigan

Tabla 1.3: La Tabla DireccionDeEmpleado

A continuación se discute sobre el DDL.

3. DDL Los siguientes son algunos de los comandos SQL en esta categoría: •

CREATE



ALTER



DROP

3.1 El Comando CREATE El comando CREATE se usa para crear objetos de la base de datos. Tablas, vistas e índices son algunos ejemplos de objetos de la base de datos. La sentencia CREATE se usa para describir la estructura de un objeto de la base de datos. Sintaxis para crear una Tabla: CREATE TABLE nombre_de_la_tabla ( nombre_de_la_columna1 tipo_de_dato, nombre_de_la_columna2 tipo_de_dato, ... nombre_de_la_columnan tipo_de_dato ); Por ejemplo, considere la tabla juguetes de la base de datos que se crea como sigue: CREATE TABLE juguetes ( id_comprador INTEGER NOT NULL, producto VARCHAR(40) NOT NULL, precio DOUBLE ); La sentencia anterior, cuando es ejecutada en una herramienta de SQL, crea una tabla con el nombre juguetes. La sentencia también incluye algunos nombres de columnas, Unidad 1: Lenguaje de Consulta Estructurado - Fundamentos Lenguaje de Consulta Estructurado © Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el permiso previo escrito de IBM

110

Guía del Estudiante

Base de Datos I

sus respectivos tipos de datos y las restricciones de tipo NOT NULL de las columnas. Se presentan los tipos de datos soportados por MySQL más adelante. Hay una palabra clave NOT NULL en la sentencia CREATE anterior. La palabra NOT NULL significa que la columna debe tener un valor en cada fila. NULL indica ningún valor o un valor no aplicable y es un concepto importante en cualquier RDBMS. A continuación se presenta un ejemplo para entender el concepto de NULL. Considere a un estudiante que no asistió a una prueba, y por lo tanto, no obtuvo ninguna nota para esa prueba. Si le pregunta por su nota en esa prueba, ¿qué respuesta daría?. Definitivamente no puede decir cero, ¡ya que no obtuvo la nota cero!. Una respuesta posible podría ser ‘sin nota’, indicando ningún valor o un valor no aplicable.

3.2 El Comando ALTER El comando ALTER se usa para modificar la estructura de objetos de la base de datos. Este comando se usa por ejemplo para agregar una nueva columna a una Tabla. El siguiente ejemplo muestra cómo las columnas pueden ser agregadas a una tabla. ALTER TABLE juguetes ADD COLUMN id_vendedor integer; Cuando la sentencia SQL anterior es ejecutada, una nueva columna llamada id_vendedor de tipo de dato numérico se agrega a la tabla juguetes.

3.3 El Comando DROP El comando DROP se usa para eliminar objetos de la base de datos. Por ejemplo: DROP TABLE juguetes; DROP VIEW vista_juguetes; DROP INDEX indice_juguetes; Los comandos SQL anteriores eliminan los siguientes objetos de la base de datos: la tabla juguetes, la vista vista_juguetes y el índice indice_juguetes.

4. DCL El Lenguaje de Control de Datos (DCL) es el lenguaje que se usa para controlar el acceso de datos. Muchos sistemas tienen grandes volúmenes de datos, que usan muchos usuarios. En tales situaciones, es importante el monitoreo y el control del acceso a los datos para garantizar la seguridad de los datos y prevenir el acceso ilegal a los mismos.

Los siguientes son algunos de los comandos SQL en esta categoría: Lenguaje de Consulta Estructurado Unidad 1: Lenguaje de Consulta Estructurado -Fundamentos © Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el permiso previo escrito de IBM

111

Base de Datos I



GRANT



REVOKE

Guía del Estudiante

Ejemplos de estos comandos se presentan más adelante.

5. DML El DML se usa para la manipulación de los datos: agregar, eliminar y actualizar los valores. Algunos de los comandos SQL en esta categoría se listan a continuación: •

INSERT: Se usa para agregar valores en la tabla.



DELETE : Se usa para eliminar valores de la tabla.



UPDATE: Se usa para actualizar o cambiar los valores presentes en la tabla.

6. Agregar Datos Como se mencionó anteriormente, el comando INSERT se usa para agregar datos a una tabla. La sintaxis de este comando es como sigue: INSERT into nombre_de_la_tabla (columna1,columna2 ) VALUES (valor1, valor2); El siguiente comando inserta una fila en una tabla: INSERT INTO juguetes (id_comprador, producto, precio, id_vendedor) VALUES (21, 'Barbie', 200.00, 01); La tabla juguetes contiene cuatro columnas: id_comprador, producto, precio y id_vendedor. La sentencia anterior contiene una lista de columnas ordenadas y una lista de valores ordenados para las columnas. A continuación se muestra otra forma de escribir la sentencia INSERT: INSERT INTO juguetes VALUES (21, 'Barbie', 200.00, 01); Esta sentencia no incluye los nombres de las columnas. Si los nombres de las columnas no se listan en una sentencia INSERT, entonces la cláusula VALUES debe contener los valores para todas las columnas en el mismo orden en el que están listadas las columnas en la tabla. El orden en el cual las columnas son creadas en una tabla es dependiente del orden en que fueron colocadas las columnas en la sentencia CREATE, cuando la tabla fue creada. La siguiente es otra variación de la sentencia INSERT: INSERT INTO juguetes (id_comprador, producto, id_vendedor) VALUES (02, 'Barbie',22); Unidad 1: Lenguaje de Consulta Estructurado - Fundamentos Lenguaje de Consulta Estructurado © Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el permiso previo escrito de IBM

112

Guía del Estudiante

Base de Datos I

La sentencia anterior no incluye todas las columnas de la tabla. La columna precio no está presente así que la tabla tendrá un valor NULL en la columna precio. El orden de las columnas en la sentencia INSERT anterior ha sido cambiado. Sin embargo, el orden de las columnas no importa si los nombres de las columnas se mencionan explícitamente y se enumeran los valores de las columnas correspondientes.

7. Eliminar Datos La fila que fue insertada en la sección anterior puede ser ahora eliminada de la base de datos usando el comando DELETE. La sintaxis del comando DELETE es como sigue: DELETE FROM nombre_de_la_tabla WHERE Condición; En el comando DELETE, la condición WHERE es opcional. Si la condición no es especificada, todas las filas son eliminadas. De otra forma, sólo las filas que satisfacen la condición serán eliminadas. Considere la siguiente sentencia: DELETE FROM juguetes WHERE producto = 'Barbie'; En este caso, no solo la última fila que se había agregado será eliminada sino también todas las filas que contienen el valor 'Barbie' en producto. Para eliminar solo la última fila agregada, se usará la siguiente instrucción: DELETE FROM juguetes WHERE producto = 'Barbie' AND id_comprador = 02 AND id_vendedor = 22;

8. Actualizar Datos A continuación, se actualiza el precio a los productos “Silla” de la tabla juguetes. La sintaxis del comando UPDATE es: UPDATE nombre_de_la_tabla SET Col1=valor1, Col2=valor2 WHERE Condición; Se puede hacer esto con la siguiente instrucción: UPDATE juguetes SET precio = 500.00 WHERE producto = 'Silla'; Esto coloca el precio de todas las sillas a 500.00.

9. DQL La Sentencia SELECT La sentencia SELECT se usa para recuperar datos de las tablas. La sentencia SELECT puede ser: Un simple SELECT o uno condicional. En una sentencia SELECT condicional, los datos recuperados se basan en una condición dada. Lenguaje de Consulta Estructurado Unidad 1: Lenguaje de Consulta Estructurado -Fundamentos © Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el permiso previo escrito de IBM

113

Base de Datos I



Guía del Estudiante

Seleccionar Datos de todas las Columnas de la Tabla La sintaxis básica de la sentencia SELECT es como sigue: SELECT * FROM nombre_de_la_tabla; La sentencia anterior se usa para obtener todas las columnas de la tabla. El * denota todas las columnas.



Seleccionar Datos de Ciertas Columnas de la Tabla

Lo siguiente es la sintaxis para obtener ciertas columnas específicas de la tabla: SELECT nombrecol1, nombrecol2, …, nombrecoln nombre_de_la_tabla;

FROM

Tabla DireccionDeEmpleado Nombre

Apellido

Dirección

Ciudad

Estado

Mike

Dennis

83 First Street

Dayton

Ohio

Susan

Ikelar

842 Vine Ave.

Cincinnati

Ohio

Rob

Heimann

33 Elm St.

Tarrytown

New York

Sarah

Connors

440 U.S. 110

Ann Arbor

Michigan

Tabla 1.4: Datos de la Tabla DireccionDeEmpleado

La Tabla 1.4 contiene datos sobre los empleados de una compañía. Para obtener las columnas Nombre, Ciudad y Estado listadas en la Tabla 1.4, se puede ejecutar la siguiente sentencia SQL: SELECT nombre, ciudad, estado FROM direcciondeempleado; Se muestra la capacidad de SQL para escoger los valores de ciertas columnas que son requeridas por el usuario.

10. Selección Condicional La sentencia SELECT proporciona todos los registros de la tabla. Si se requiere sólo aquellos registros en la tabla que satisfacen una condición específica, entonces se usa la sentencia SELECT condicional con la cláusula WHERE.

10.1 La Cláusula WHERE Lo siguiente es la sintaxis de la cláusula WHERE: SELECT * FROM nombre_de_la_tabla WHERE NOMBRE_COL = VALOR; La cláusula WHERE se usa para especificar que sólo ciertas filas de la tabla deben mostrarse. Ésta se usa junto a los operadores relacionales tales como mayor que, menor que o igual a. Se aprenderá más sobre los operadores relacionales más adelante. Unidad 1: Lenguaje de Consulta Estructurado - Fundamentos Lenguaje de Consulta Estructurado © Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el permiso previo escrito de IBM

114

Guía del Estudiante

Base de Datos I

10.2 Operadores Relacionales Útiles Hay seis operadores relacionales en SQL, como se muestra en la Tabla 1.5. = o != < > =

Igual Diferente Menor que Mayor que Menor o igual a Mayor o igual a

Tabla 1.5: Operadores Relacionales

Considere un ejemplo sobre el uso de operadores relacionales y la cláusula WHERE. Observe la Tabla 1.6, la cual contiene el detalle de los salarios y las posiciones de los empleados de una organización. IdNoEmpleado 010 105 152 215 244 300 335 400 441

EstadisticasDeEmpleados Salario Beneficios 75000 15000 65000 15000 60000 15000 60000 12500 50000 12000 45000 10000 40000 10000 32000 7500 28000 7500

Posicion Gerente Gerente Gerente Gerente Personal Personal Personal Principiante Principiante

Tabla 1.6: Tabla de Datos EstadisticasDeEmpleados

Para ver los idnoempleado de aquellos empleados que tienen un salario de $50,000 o más, se puede ejecutar la siguiente sentencia SQL: SELECT idnoempleado FROM estadisticasdeempleados WHERE salario >= 50000; Note que se usa el signo >= (mayor o igual a). Esto es porque se quiere ver la lista de aquellos empleados cuyos salarios son mayores o iguales a $50,000, listados todos juntos. El resultado del comando anterior será: IDNOEMPLEADO -----------010 105 152 215 244 La descripción WHERE salario >= 50000, se conoce como una condición, es decir, una operación la cual al evaluarse da verdadero o falso. Las condiciones se pueden usar también para columnas de texto. Observe la siguiente sentencia: Lenguaje de Consulta Estructurado Unidad 1: Lenguaje de Consulta Estructurado -Fundamentos © Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el permiso previo escrito de IBM

115

Base de Datos I

Guía del Estudiante

SELECT idnoempleado FROM estadisticasdeempleados WHERE posicion = 'Gerente'; Esta sentencia muestra los idnoempleado de todos los registros que cumplen con posicion= 'Gerente'. Cualquier texto que aparezca en la sentencia debe estar encerrado entre comillas simples ('). Note que el valor Gerente en la cláusula WHERE es sensible a las mayúsculas y minúsculas (case sensitive) y por lo tanto, debe ser comparado en la forma como está almacenado en la tabla.

11. Funciones Agregadas Las funciones agregadas, también conocidas como funciones de grupo, se usan en sentencias SQL para trabajar sobre conjuntos o grupos específicos de filas. A continuación se presentan las cinco funciones agregadas más importantes: •

SUM



AVG



MAX



MIN



COUNT

A continuación algunos ejemplos que ilustran el uso de las funciones agregadas en una sentencia SQL.

La Función SUM SELECT SUM(salario) FROM estadisticasdeempleados; La consulta anterior retorna el salario total de todos los empleados de la tabla. El resultado de la consulta es: 1___ 455000

La Función AVG SELECT AVG(salario) FROM estadisticasdeempleados; La consulta retorna el salario promedio de los empleados listados en la tabla. El resultado es: 1___ 50555

La Función MIN SELECT MIN(beneficios) FROM estadisticasdeempleados WHERE posicion = 'Gerente'; Unidad 1: Lenguaje de Consulta Estructurado - Fundamentos Lenguaje de Consulta Estructurado © Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el permiso previo escrito de IBM

116

Guía del Estudiante

Base de Datos I

La función MIN toma el nombre de la columna e identifica el valor mínimo disponible en esa columna para las filas que satisfacen una condición, si es dada. En la consulta anterior, la cláusula WHERE limita las filas a los empleados que son 'Gerente'. La función MIN identifica el mínimo beneficio ganado por un ‘Gerente’. La consulta anterior retorna el siguiente resultado: 1__ 12500

La Función COUNT SELECT COUNT(*) FROM estadisticasdeempleados WHERE posicion = 'Personal'; La consulta cuenta el número de empleados que pertenecen a la posición 'Personal'. En el ejemplo anterior, la función COUNT toma * como el nombre de una columna. El * denota todas las columnas en la tabla. En este caso, se refiere a las filas en la tabla que satisfacen la condición dada. El * se puede usar sólo con la función COUNT y no con otras funciones agregadas. Otras funciones agregadas toman los nombres de las columnas o expresiones como entrada. La consulta anterior retorna el siguiente resultado: 1 3 La función count sólo contabiliza los registros donde la columna seleccionada tenga valores distintos a null.

La Función MAX La función MAX() retorna el máximo valor para una columna dada, entre el conjunto de filas seleccionadas. Observe la siguiente sentencia. SELECT MAX(SALARIO) FROM estadisticasdeempleados; Esta consulta retorna el salario máximo ganado por un empleado listado en la tabla: 1__ 75000

12. Condiciones Compuestas y Operadores Lógicos El Operador AND El operador AND une dos o más condiciones y muestra todas las filas que satisfacen todas las condiciones en la cláusula WHERE. Por ejemplo, para mostrar todos los Lenguaje de Consulta Estructurado Unidad 1: Lenguaje de Consulta Estructurado -Fundamentos © Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el permiso previo escrito de IBM

117

Base de Datos I

Guía del Estudiante

empleados cuya posición sea ‘Personal’ y cuyo salario es mayor a $40,000, se puede escribir la siguiente consulta: SELECT idnoempleado FROM estadisticasdeempleados WHERE salario > 40000 AND posicion = 'Personal';

El Operador OR El operador OR une dos o más condiciones. Muestra todas las filas que satisfacen al menos una condición en la cláusula WHERE. Para mostrar todos los empleados que ganan un salario menor que $40,000 ó que obtienen beneficios menores que $10,000, se puede escribir la siguiente consulta: SELECT idnoempleado FROM estadisticasdeempleados WHERE salario < 40000 OR beneficios < 10000;

Combinar los Operadores AND y OR Es posible combinar los operadores AND y OR en una sola sentencia. Por ejemplo, para listar todos los ‘Gerente’ que ganan un salario mayor que $60,000 o que obtienen beneficios mayores que $12,000, se puede escribir la siguiente consulta: SELECT idnoempleado FROM estadisticasdeempleados WHERE posicion = 'Gerente' AND salario > 60000 OR beneficios > 12000; La sentencia SQL anterior usa los operadores AND y OR. El orden de precedencia es importante en este caso. En este caso, el operador AND precede al operador OR por lo que las condiciones con el operador AND se evalúan primero y luego se evalúan las condiciones con el operador OR. El orden en el cual la sentencia SQL anterior se ejecuta es el siguiente: posicion = 'Gerente' AND salario > 60000 = X X OR beneficios > 12000 Paso 1: Limita las filas a las personas que son gerente y ganan un salario mayor que $60,000. Paso 2: Limita las filas a las personas del Paso 1 o las personas que tienen beneficios mayor que $12,000. La sentencia SQL anterior puede ser también escrita de la siguiente forma: SELECT idnoempleado FROM estadisticasdeempleados WHERE (posicion = 'Gerente' AND salario > 60000) OR beneficios > 12000; Las condiciones que están entre paréntesis se evalúan primero. Estos sobreescriben cualquier orden de precedencia. Ahora observe la siguiente consulta y descubra lo que hace: Unidad 1: Lenguaje de Consulta Estructurado - Fundamentos Lenguaje de Consulta Estructurado © Copyright IBM Corp. 2007 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el permiso previo escrito de IBM

118

Guía del Estudiante

Base de Datos I

SELECT idnoempleado FROM estadisticasdeempleados WHERE posicion = 'Gerente' AND (salario > 60000 OR beneficios > 12000); Como se mencionó anteriormente, las condiciones entre paréntesis se evalúan primero, y luego las otras condiciones. Los pasos involucrados en la evaluación de la consulta anterior son los siguientes: salario > 60000 OR beneficios > 12000 = X WHERE posicion = 'Gerente' AND X Paso 1: Identifique las filas de las personas que ganan un salario mayor que $60,000 o beneficios mayores que $12,000. Paso 2: Identifique las personas que son gerente y que satisfacen el Paso 1.

El Operador IN El operador IN se usa para realizar comparaciones con una lista de valores. Por ejemplo, observe la siguiente consulta: SELECT idnoempleado FROM estadisticasdeempleados WHERE posicion='Gerente' OR posicion= 'Personal'; La consulta lista todos los empleados que son gerente o del personal. La consulta se puede escribir usando un operador IN. SELECT idnoempleado FROM estadisticasdeempleados WHERE posicion IN ('Gerente', 'Personal'); En la consulta anterior, mencionan las posiciones de los empleados en los que se está interesado como un conjunto de valores que tienen que ser comparados. Los valores están separados por comas y encerrados entre paréntesis después del operador IN. El operador IN verifica si la condición satisface alguno de los valores que están entre paréntesis.

El Operador BETWEEN El operador BETWEEN se usa para comprobar si cierto valor está dentro de un rango dado. Por ejemplo, asuma que se está interesado en encontrar a todos los empleados que ganan salarios dentro un rango de [$30,000 a $50,000]. ¿Cómo se escribe esta consulta? Rango del salario [30000 a 50000] SELECT idnoempleado FROM estadisticasdeempleados WHERE salario >= 30000 AND salario