departamento de diseÑo e imagen - utpuebla.edu.mx · 1.5 actores en los sistemas de bases de...

95
ELABORÓ: UNIVERSIDAD TECNOLÓGICA REVISÓ: UNIVERSIDAD(ES) TECNOLÓGICA(S) AUTORES: REVISORES: APROBÓ: COMISION NACIONAL ACADÉMICA DE TIC FECHA DE ENTRADA EN VIGOR: Universidad Tecnológica de Puebla Tecnologías de la Información y Comunicación Manual de Asignatura Basado en Competencias Profesionales Base de Datos I Enero 2012

Upload: trananh

Post on 07-Oct-2018

221 views

Category:

Documents


0 download

TRANSCRIPT

ELABORÓ: UNIVERSIDAD TECNOLÓGICA REVISÓ: UNIVERSIDAD(ES) TECNOLÓGICA(S)

AUTORES:

REVISORES: APROBÓ: COMISION NACIONAL ACADÉMICA

DE TIC FECHA DE ENTRADA EN VIGOR:

Universidad Tecnológica de Puebla Tecnologías de la Información y Comunicación

Manual de Asignatura Basado en Competencias Profesionales

Base de Datos I

Enero 2012

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

2

Contenido

INTRODUCCIÓN .................................................................................. 6

UNIDAD TEMÁTICA I FUNDAMENTOS DE BASES DE DATOS. ......................... 7

1.1 Conceptos Básicos. ................................................................................................................. 8

1.2 Modelos de Bases de Datos .................................................................................................... 9

1.2.1 Modelos Físicos De Datos ................................................................................. 9

1.2.2 Modelos Lógicos Basados En Registros ......................................................... 10

1.2.3 Modelos Lógicos Basados En Objetos ............................................................ 11

1.3 Definición de Base de Datos y Sus Términos ................................................................... 12

1.4 Objetivo de los Sistemas de Base de Datos. .................................................................... 12

1.5 Actores en los Sistemas De Bases De Datos ..................................................................... 14

1.6 Análisis de requerimientos de Base de Datos ................................................................. 14

1.6.1 Técnicas de Recolección de Datos ............................................................. 15

1.7 Actividad 1 Conceptos Básicos ......................................................................................... 16

1.8 Práctica 1 Requerimientos de Información ...................................................................... 17

2. UNIDAD TEMÁTICA II MODELO ENTIDAD – RELACIÓN (E-R) ................... 19

2.1 El Modelo Entidad-Relación ................................................................................................ 21

2.1.1 Entidades y Atributos ....................................................................................... 21

2.1.2 Relaciones ....................................................................................................... 21

2.1.3 Restricciones De Asignación ........................................................................... 22

2.1.4 Llave Primaria y Secundarias .......................................................................... 24

2.2 Modelo Entidad Relación Extendido (EE-R) ....................................................................... 25

2.2.1 Generalización. ............................................................................................... 25

2.2.2 Especialización. ............................................................................................... 27

2.3 Actividad 2 Modelo Entidad – Relación ............................................................................. 30

UNIDAD TEMÁTICA III MODELO RELACIONAL .................................. 34

3.1 Conceptos del modelo Relacional. ....................................................................................... 35

3.1.1 Atributos .......................................................................................................... 35

3.1.2 Dominios. ........................................................................................................ 36

3.1.3 Tuplas. ............................................................................................................. 36

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

3

3.1.4 Relaciones ....................................................................................................... 36

3.1.5 Clave primaria, alternativa y Foránea ............................................................. 38

3.2 Transformación del modelo E-R, EE-R al Modelo Relacional. ........................................... 38

3.2.1 Manejo de Entidad Débiles. ............................................................................. 39

3.3 Esquema de una relación. ..................................................................................................... 39

3.4 Álgebra Relacional ............................................................................................................... 40

3.4.1 Operación de Selección o Restricción. ............................................................ 41

3.4.2 Operación de Proyección. ............................................................................... 41

3.4.3 Composición de operaciones relacionales ...................................................... 42

3.4.4 Operación Unión ............................................................................................ 42

3.4.5 Operación diferencia de conjuntos .................................................................. 44

3.4.6 Operación Producto Cartesiano. ..................................................................... 44

3.5 Actividad 3 Transformación al modelo relacional ............................................................... 47

3.6 Actividad 4 Transformación del ER al Relacional. ............................................................. 47

UNIDAD TEMÁTICA IV DISEÑO DE BD RELACIONALES. ............... 51

4.1 Restricciones de Integridad. ................................................................................................. 51

4.2 Restricciones Semánticas. .................................................................................................... 52

4.3 Integridad Referencial .......................................................................................................... 52

4.4 Integridad De Entidad. .......................................................................................................... 54

4.5 Normalización de Base de Datos .......................................................................................... 54

4.5.1 Primera Forma Normal (1FN) .......................................................................... 55

4.5.2 Segunda Forma Normal (2FN) ........................................................................ 56

4.5.3 Tercera Forma Normal (3FN). ......................................................................... 56

4.6 Actividad 5 Normalización .................................................................................................. 58

UNIDAD TEMÁTICA 5 SISTEMA GESTOR DE BASES DE DATOS

(SGBD)............................................................................................ 59

5.1 Fundamentos de los SGBD .................................................................................................. 59

5.2 Ventajas De Un SGBD ......................................................................................................... 62

5.3 Estructura Global De Un Sistema De Base De Datos .......................................................... 62

5.3 Actividad 6 Sistema Gestor de Base de Datos ..................................................................... 64

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

4

UNIDAD TEMÁTICA 6 LENGUAJE DE DEFINICIÓN DE DATOS (SQL-DDL) ... 66

6.1 Componentes del SQL .......................................................................................................... 67

6.2 Comandos DDL .................................................................................................................... 68

6.2.1 Creación de una Base de Datos ...................................................................... 68

6.2.2 Creación de una Tabla .................................................................................... 68

6.2.3 Tipos de Datos. ............................................................................................... 69

6.2.4 Restricción NOT NULL. ................................................................................... 70

6.2.5 Restricción PRIMARY KEY ............................................................................. 70

6.2.6 Restricción FOREIGN KEY ............................................................................. 71

6.2.7 Eliminar una Base de Datos o una Tabla ........................................................ 72

6.2.8 Modificar una Tabla dentro de una Base de Datos. ........................................ 72

6.2.9 Verificar la estructura de una tabla. ................................................................. 73

6.3 Práctica 2 Creación, modificación y eliminación de una BD y de una tabla. .................... 73

6.4 Práctica 3 Creación, modificación y eliminación de una BD y de una tabla. .................... 77

6.5 Actividad 7 Modificación de una tabla................................................................................. 80

UNIDAD TEMÁTICA 7 LENGUAJE DE MANIPULACIÓN DE DATOS

(SQL-DML) ...................................................................................... 81

7.1 Consultas Básicas ................................................................................................................. 81

7.2 Cláusula Insert. ..................................................................................................................... 82

7.3 Cláusula Update .................................................................................................................... 84

7.4 Cláusula Delete-From ........................................................................................................... 85

7.5 Consultas Especializadas ...................................................................................................... 86

7.5.1 La cláusula SELECT ....................................................................................... 86

7.5.3 La orden Where ............................................................................................... 87

7.6 Funciones de Agregado de SQL ........................................................................................... 89

7.6.1 Función Avg .................................................................................................... 89

7.6.2 Función Count ................................................................................................. 89

7.6.3 Funciones First Y Last ..................................................................................... 90

7.6.4 Funciones Mín y Máx. ..................................................................................... 90

7.6.5 Función Sum. .................................................................................................. 90

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

5

7.7 Cláusula Having Y Group By. .............................................................................................. 90

7.8 Vistas en SQL ....................................................................................................................... 91

7.9 Actividad 8 Consultas y Creación de vistas. ........................................................................ 94

REFERENCIAS .................................................................................. 95

ANEXOS ............................................................................................. 95

Anexo 1. Formato Requerimientos de Información. .................................................................. 95

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

6

INTRODUCCIÓN

El siguiente documento integra información acerca temas relacionados con la asignatura de Base de Datos. El objetivo principal del documento es brindar al alumno información que le permita trabajar sobre el diseño conceptual que recoja la semántica de un determinado universo de discurso, este proceso es muy creativo y no existe un procedimiento definido, sin embargo es posible seguir una serie de recomendaciones para facilitar el mismo. Para permitir implementar el modelado en un DDL (Lenguaje de Definición de datos) y posteriormente obtener información a través de un DML (Lenguaje de Manipulación de Datos). Además de propiciar la realización de trabajos futuros aplicados a su entorno, permitiéndoles solucionar problemas en función de los conocimientos adquiridos de automatización de sistemas. Además de motivar en él, el autoestudio, la investigación y la auto práctica.

Con la finalidad de que el alumno pueda aplicar algunos de los conocimientos adquiridos durante el desarrollo de la asignatura, en este manual se integran prácticas que le permitirán comprender conceptos y procesos de realización de Bases de Datos. DESARROLLO El manual está compuesto por 7 unidades temáticas:

I. Fundamentos de Bases de Datos

II. Modelo Entidad-Relación (E-R)

III. Modelo relacional

IV. Diseño de BD Relacionales

V. Sistema Gestor de Bases de Datos (SGBD)

VI. Lenguaje de definición de datos (SQL-DDL)

VII. Lenguaje de manipulación de datos (SQL-DML)

Cada uno de estas unidades cuenta con información que sustenta cada uno de los temas contenido en la unidad. Esta información en su mayoría ha sido colectada de libros, sitios de internet, para brindar al alumno información seria y de calidad. Se integran prácticas a los temas para fortalecer el aprendizaje significativo del alumno.

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

7

Unidad Temática I Fundamentos de Bases de Datos.

Objetivo: El alumno determinará los requerimientos de información para establecer el alcance de la Base de datos.

Temas Saber Saber hacer Ser

Conceptos Básicos Identificar los Objetivos de

los Sistemas de Base de

Datos, Modelos de Base de

Datos (relacional,

jerárquico, orientado a

objetos y de red),

Terminología de Base de

datos, Principios y Actores

en BD.

Analítico Disciplinado Sistemático Organizado Capaz de sintetizar Hábil para el trabajo en equipo.

Análisis de requerimientos de base de datos.

Identificar las técnicas de recolección de datos (observación, entrevista, cuestionarios), clasificación de datos y estructura básica de datos

Determinar los requerimientos para una base de datos.

Analítico Hábil para el trabajo en equipo Disciplinado Sistemático Organizado Tolerante Proactivo Hábil para comunicarse de forma oral y escrita Capaz de sintetizar

Resultado de aprendizaje: Elaborará a partir de un problema planteado, un listado de requerimientos de la base de datos, que incluya:

Clasificación de los datos de acuerdo a su función.

Estructura básica de los datos.

Técnica de recolección empleada.

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

8

1.1 Conceptos Básicos.

El almacenamiento y control de información es una tarea común que se realiza en las grandes empresas, instituciones, organizaciones, pequeñas oficinas y hasta en nuestra vida personal. Anteriormente podíamos ver los grandes archiveros con cientos de folders que una secretaria intentaba mantener organizados. Al tratar de automatizar el proceso de manejo de estos archivadores manuales, con objeto de proporcionar un acceso más eficiente a la información surgió la idea de crear los sistemas de archivos como un conjunto de programas que manejaran sus propios datos de manera descentralizada; es decir; cada departamento manejaba su propia información. Esto hizo que existiera como primer inconveniente una gran cantidad de información repetida. Y otros más, que se explican a continuación:

• Separación y aislamiento de los datos: Cuando los datos se separan en distintos archivos, es más complicado acceder a ellos, ya que el programador de aplicaciones debe sincronizar el procesamiento de los distintos archivos implicados para asegurar que se extraen los datos correctos.

• Duplicación de datos. La redundancia de datos existente en los sistemas de archivos hace que se desperdicie espacio de almacenamiento y lo que es más importante: puede llevar a que se pierda la consistencia de los datos. Se produce una inconsistencia cuando copias de los mismos datos no coinciden.

• Dependencia de datos. Ya que la estructura física de los datos (la definición de los archivos y de los registros) se encuentra codificada en los programas de aplicación, cualquier cambio en dicha estructura es difícil de realizar. El programador debe identificar todos los programas afectados por este cambio, modificarlos y volverlos a probar, lo que cuesta mucho tiempo y está sujeto a que se produzcan errores. A este problema, tan característico de los sistemas de archivos, se le denomina también falta de independencia de datos lógica-física.

• Formatos de archivos incompatibles. Ya que la estructura de los archivos se define en los programas de aplicación, es completamente dependiente del lenguaje de programación. La incompatibilidad entre archivos generados por distintos lenguajes hace que los archivos sean difíciles de procesar de modo conjunto.

• Consultas fijas y proliferación de programas de aplicación. Desde el punto de vista de los usuarios finales, los sistemas de archivos fueron un gran avance comparados a los sistemas manuales. A consecuencia de esto, creció la necesidad de realizar distintos tipos de consultas de datos. Sin embargo, los sistemas de archivos son muy dependientes del programador de aplicaciones: cualquier consulta o informe que se quiera realizar debe ser programado por él.

Los inconvenientes de los sistemas de archivos se pueden atribuir a dos factores:

1. La definición de los datos se encuentra codificada dentro de los programas de aplicación, en lugar de estar almacenada aparte y de forma independiente.

2. No hay control sobre el acceso y la manipulación de los datos más allá de lo impuesto por los programas de aplicación.

Por lo que surge el manejo de información en bases de datos. Una base de datos es una recopilación de información relativa a un asunto o un propósito particular, como el seguimiento de pedidos de clientes o el mantenimiento de una colección de música.

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

9

1.2 Modelos de Bases de Datos

El modelo: es una colección de herramientas conceptuales para describir los datos, las relaciones que existen entre ellos, semántica asociada a los datos y restricciones de consistencia, todo bajo una representación gráfica. Los modelos de bases de datos son entonces, un conjunto de conceptos, reglas y convenciones que nos permiten describir y manipular (consultar y actualizar) los datos de un cierto mundo real que deseamos almacenar en una base de datos. En el estado actual de la técnica es conveniente, en el diseño de bases de datos distinguir la fase del modelado conceptual, que es la descripción del mundo real (empresa o administración) independiente del Sistema Gestor de Bases de Datos (SGBD) que se vaya a utilizar y la fase del diseño lógico, en la cual se ha de obtener un esquema que responda a la estructura lógica especifica del SGBD que se aplique en cada caso, por lo que dicho esquema está sometido a las restricciones del SGBD. La realización de modelos se considera importante porque sirve para:

Mejorar la comprensión de un problema.

Compartir información relevante y hacer trabajo de equipo.

Elaborar conclusiones y tomar decisiones bien fundadas.

Comunicar y plasmar nuestras percepciones de la realidad.

Abordar con éxito la solución de un problema. Los componentes esenciales de un modelo de datos son:

Componentes Estáticos: Definen las estructuras de datos válidas.

Componentes Dinámicos: Definen las reglas de comportamiento y transformación de los datos. Los modelos de datos se dividen en tres grupos:

1. Modelos físicos de datos. 2. Modelos lógicos basados en registros. 3. Modelos lógicos basados en objetos

1.2.1 Modelos Físicos De Datos

Se usan para describir a los datos en el nivel más bajo, aunque existen muy pocos modelos de este

tipo, básicamente capturan aspectos de la implementación de los sistemas de base de Datos. Existen dos clasificaciones de este tipo:

1. Modelo Unificador 2. Memoria de Elementos.

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

10

1.2.2 Modelos Lógicos Basados En Registros

Se utilizan para describir datos en los niveles conceptual y físico; se utilizan para especificar la estructura lógica completa de las bases de datos y proporcionan una descripción de alto nivel de implementación, tienen un número fijo de campos, atributos y longitud fija, entre estos encontramos el modelo de red, modelo jerárquico y modelo relacional:

Modelo de red.

Este modelo representa los datos mediante colecciones de registros y sus relaciones se representan por medio de ligas o enlaces, los cuales pueden verse como punteros. Los registros se organizan en un conjunto de gráficas arbitrarias.

Ejemplo:

Modelo jerárquico

Es similar al modelo de red en cuanto a las relaciones y datos, ya que estos se representan por medio de registros y sus ligas. La diferencia radica en que están organizados por conjuntos de árboles en lugar de gráficas arbitrarias.

Modelo relacional

En este modelo se representan los datos y las relaciones entre estos, a través de una colección de tablas, en las cuales los renglones (tuplas) equivalen a cada uno de los registros que contendrá la base

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

11

de datos y las columnas corresponden a las características (atributos) de cada registro localizado en la tupla;

Consideremos una empresa que requiere controlar a los vendedores y las ventas que ellos realizan; de este problema determinamos que los objetos o entidades principales a estudiar son el empleado (vendedor) y el artículo (que es el producto en venta).

1.2.3 Modelos Lógicos Basados En Objetos

Se usan para describir datos en los niveles conceptual y de visión, es decir, con este modelo representamos los datos de tal forma como nosotros los captamos en el mundo real, tienen una capacidad de estructuración bastante flexible y permiten especificar restricciones de datos explícitamente. Entre los modelos que encontramos de este tipo son Modelo Entidad-Relación, Modelo Entidad-Relación Extendido y Modelo Orientado a Objetos.

Modelo Entidad-Relación.- Colección de objetos básicos llamados entidades y se pueden relacionar entre sí. Una persona, cosa, etc. Cada entidad tiene atributos. Tienen relación que es la asociación entre varias entidades.

Modelo Entidad –Relación extendido.- El Modelo Entidad-Relación Extendido incluye todos los conceptos del Entidad-Relación e incorpora los conceptos de Subclase y Superclase con los conceptos asociados de Especialización y Generalización. Otro nuevo concepto incluido por el EE-R es el de Categoría. Asociado a estos conceptos está el importante mecanismo de Herencia de atributos.

Modelo 0rientado a 0bjetos.- Un objeto tiene fragmentos de código que operan en el objeto, llamados métodos. Un objeto puede acceder a los datos de otro mediante un paso de mensaje. No requieren nivel físico.

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

12

1.3 Definición de Base de Datos y Sus Términos

Para diseñar una base de datos debemos establecer un proceso que nos permita plasmar el mundo real mediante una serie de datos. En primer lugar la imagen que obtenemos del mundo real se denomina modelo conceptual y consiste en una serie de elementos que definen lo que queremos plasmar del mundo real en una base de datos.

Comenzando con algunos conceptos básicos para el mejor entendimiento del mismo, se manejarán definiciones de términos que involucran a las bases de datos:

Datos: Conjunto de caracteres con algún significado, pueden ser numéricos, alfabéticos, o alfanuméricos.

Información: Es un conjunto ordenado de datos los cuales son manejados según la necesidad del usuario, para que un conjunto de datos pueda ser procesado eficientemente y pueda dar lugar a información, primero se debe guardar lógicamente en archivos.

Campo: Es la unidad más pequeña a la cual uno puede referirse en un programa. Desde el punto de vista del programador representa una característica de un individuo u objeto.

Registro: Colección de campos de iguales o de diferentes tipos.

Archivo: Colección de registros almacenados siguiendo una estructura homogénea.

En otras palabras una base de datos es un conjunto exhaustivo no redundante de datos estructurados y organizados independientemente de su utilización y su implementación. Las bases de datos proporcionan la infraestructura requerida para los sistemas de apoyo a la toma de decisiones y para los sistemas de información estratégicos, ya que estos sistemas explotan la información contenida en las bases de datos de la organización para apoyar el proceso de toma de decisiones o para lograr ventajas competitivas. Por este motivo es importante conocer la forma en que están estructurados las bases de datos y su manejo.

En este marco se puede definir una base de datos como:

“Conjunto o colección de archivos interrelacionados, cuyo contenido engloba a la información concerniente de una organización, de tal manera que los datos estén disponibles para los usuarios, una de las finalidades de las bases de datos es eliminar la redundancia o por lo menos minimizarla”.

1.4 Objetivo de los Sistemas de Base de Datos.

Las funciones principales de un sistema de base de datos es disminuir los siguientes aspectos: Redundancia e inconsistencia de datos. Puesto que los archivos que mantienen almacenada la información son creados por diferentes tipos de programas de aplicación existe la posibilidad de que si no se controla detalladamente el almacenamiento, se pueda originar un duplicado de información, es decir que la misma información sea más de una vez en un dispositivo de almacenamiento. Esto aumenta

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

13

los costos de almacenamiento y acceso a los datos, además de que puede originar la inconsistencia de los datos, es decir, diversas copias de un mismo dato no concuerdan entre sí. Por ejemplo: que se actualiza la dirección de un cliente en un archivo y que en otros archivos permanezca la anterior. Dificultad para tener acceso a los datos. Un sistema de base de datos debe contemplar un entorno de datos que le facilite al usuario el manejo de los mismos. Supóngase un banco, y que uno de los gerentes necesita averiguar los nombres de todos los clientes que viven dentro del código postal 78733 de la ciudad. El gerente pide al departamento de procesamiento de datos que genere la lista correspondiente. Puesto que esta situación no fue prevista en el diseño del sistema, no existe ninguna aplicación de consulta que permita este tipo de solicitud, esto ocasiona una deficiencia del sistema. Aislamiento de los datos. Puesto que los datos están repartidos en varios archivos, y estos no pueden tener diferentes formatos, es difícil escribir nuevos programas de aplicación para obtener los datos apropiados. Anomalías del acceso concurrente. Para mejorar el funcionamiento global del sistema y obtener un tiempo de respuesta más rápido, muchos sistemas permiten que múltiples usuarios actualicen los datos simultáneamente. En un entorno así la interacción de actualizaciones concurrentes puede dar por resultado datos inconsistentes. Para prevenir esta posibilidad debe mantenerse alguna forma de supervisión en el sistema. Problemas de seguridad. La información de toda empresa es importante, aunque unos datos lo son más que otros, por tal motivo se debe considerar el control de acceso a los mismos, no todos los usuarios pueden visualizar alguna información, por tal motivo para que un sistema de base de datos sea confiable debe mantener un grado de seguridad que garantice la autentificación y protección de los datos. En un banco por ejemplo, el personal de nominas solo necesita ver la parte de la base de datos que tiene información respecto a los distintos empleados del banco y no a otro tipo de información. Instancias y esquemas. Con el paso del tiempo la información que se va acumulando y desechando en la base de datos, ocasiona que está cambie.

Instancia. Es el estado que presenta una base de datos en un tiempo dado. Veámoslo como una fotografía que tomamos de la base de datos en un tiempo t, después de que transcurre el tiempo t la base de datos ya no es la misma. Esquema. Es la descripción lógica de la base de datos, proporciona los nombres de las entidades y sus atributos especificando las relaciones que existen entre ellos. Es un banco en el que se inscriben los valores que irán formando cada uno de los atributos. El esquema no cambia, los que varían son los datos y con esto tenemos una nueva instancia.

Ejemplo: Considerando el ejemplo del vendedor que vende artículos, esquema e instancia según nuestro ejemplo, quedaría:

Esquema {Vendedor: Nombre, puesto, salario, RFC}

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

14

{Articulo: Clave, costo, descripción}

Instancia:

Como podemos observar el esquema nos muestra la estructura en el cual se almacenaran los datos, en este caso en registros cuyos nombres de campos son: por parte del vendedor (Nombre, puesto, salario, RFC) y por el artículo (Clave, costo, descripción); La instancia representa a una serie de datos almacenados en los registros establecidos por el esquema, estos datos varían, no permanecen fijos en el tiempo.

1.5 Actores en los Sistemas De Bases De Datos

Denominado por sus siglas como: DBA, Database Administrator. Es la persona encargada y que tiene el control total sobre el sistema de base de datos, sus funciones principales son:

Podemos definir a los usuarios como toda persona que tenga todo tipo de contacto con el sistema de base de datos desde que este se diseña, elabora, termina y se usa.

Los usuarios que accedan una base de datos pueden clasificarse como:

Programadores de aplicaciones. Los profesionales en computación que interactúan con el sistema por medio de llamadas en DML (Lenguaje de Manipulación de Datos), las cuales están incorporadas en un programa escrito en un lenguaje de programación (Por ejemplo, COBOL, PL/I, Pascal, C, etc.)

Usuarios sofisticados. Los usuarios sofisticados interactúan con el sistema sin escribir programas. En cambio escriben sus preguntas en un lenguaje de consultas de base de datos.

Usuarios especializados. Algunos usuarios sofisticados escriben aplicaciones de base de datos especializadas que no encajan en el marco tradicional de procesamiento de datos.

Usuarios ingenuos. Los usuarios no sofisticados interactúan con el sistema invocando a uno de los programas de aplicación permanentes que se han escrito anteriormente en el sistema de base de datos, podemos mencionar al usuario ingenuo como el usuario final que utiliza el sistema de base de datos sin saber nada del diseño interno del mismo por ejemplo: un cajero

1.6 Análisis de requerimientos de Base de Datos La recolección de datos se refiere al uso de una gran diversidad de técnicas y herramientas que pueden ser utilizadas por el analista para desarrollar los sistemas de información, los cuales pueden ser la observación, las entrevistas, el cuestionario, la encuesta, el diagrama de flujo y el diccionario de datos. Estos instrumentos se aplican en un momento en particular, con la finalidad de buscar información que será útil.

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

15

1.6.1 Técnicas de Recolección de Datos

Los analistas utilizan una variedad de métodos a fin de recopilar los datos sobre una situación existente, como la observación, entrevistas y cuestionarios entre otros. Cada uno tiene ventajas y desventajas. Generalmente, se utilizan dos o tres para complementar el trabajo de cada una y ayudar a asegurar una investigación completa.

Observación.

La observación, permite al analista determinar que se está haciendo, como se está haciendo, quien lo hace, cuando se lleva a cabo, cuánto tiempo toma, dónde se hace y por qué se hace. Preparación para la observación 1. Determinar y definir aquella que va a observarse.

2. Estimular el tiempo necesario de observación.

3. Obtener la autorización para llevar a cabo la observación.

4. Explicar a las personas que van a ser observadas lo que se va a hacer y las razones para ello.

Secuela de la observación 1. Documentar y organizar formalmente las notas, impresionistas, etc.

2. Revisar los resultados y conclusiones junto con la persona observada, el supervisar inmediato y

posiblemente otro de sistemas.

Entrevista.

Las entrevistas se utilizan para recabar información en forma verbal, a través de preguntas que propone el analista. Quienes responden pueden ser gerentes o empleados, los cuales son usuarios actuales del sistema existente, usuarios potenciales del sistema propuesto o aquellos que proporcionarán datos o serán afectados por la aplicación propuesta. El analista puede entrevistar al personal en forma individual o en grupos. En otras palabras, la entrevista es un intercambio de información que se efectúa cara a cara. Es un canal de comunicación entre el analista y la organización; sirve para obtener información acerca de las necesidades y la manera de satisfacerlas, así como consejo y comprensión por parte del usuario para toda idea o método nuevos.

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

16

Preparación de la Entrevista 1. Determinar la posición que ocupa de la organización el futuro entrevistado, sus responsabilidades

básicas, actividades, etc.

2. Preparar las preguntas que van a plantearse, y los documentos necesarios.

3. Fijar un límite de tiempo y preparar la agenda para la entrevista.

4. Elegir un lugar donde se puede conducir la entrevista con la mayor comodidad.

5. Hacer la cita con la debida anticipación.

La entrevista es una forma de conversación, no de interrogación, al analizar las características de los sistemas con personal seleccionado cuidadosamente por sus conocimientos sobre el sistema, los analistas pueden conocer datos que no están disponibles en ningún otra forma. Son valiosas las opiniones, comentarios, ideas o sugerencia en relación a como se podría hacer el trabajo; la entrevista a veces es la mejor forma para conocer las actividades de las empresas. La entrevista puede descubrir rápidamente malos entendidos, falsa expectativa o incluso resistencia potencial para las aplicaciones de desarrollo; más aún, a menudo es más fácil calendarizar una entrevista con los gerentes de alto nivel, que pedirle que llenen cuestionario.

Cuestionarios Los cuestionarios proporcionan una alternativa muy útil para la entrevista; sin embargo, existen ciertas características que pueden ser apropiadas en algunas situaciones e inapropiadas en otra. Al igual que la entrevistas, deben diseñarse cuidadosamente para una máxima efectividad.

Cuestionario Abierto Al igual que las entrevistas, los cuestionarios pueden ser abiertos y se aplican cuando se quieren conocer los sentimientos, opiniones y experiencias generales; también son útiles al explorar el problema básico, por ejemplo, un analista que utiliza cuestionarios para estudiar los métodos de verificación de crédito, es un medio. El formato abierto proporciona una amplia oportunidad para quienes respondan escriba las razones de sus ideas. Algunas personas sin embargo, encuentran más fácil escoger una de un conjunto de respuestas preparadas que pensar por sí mismas.

Cuestionario Cerrado El cuestionario cerrado limita las respuestas posibles del interrogado. Por medio de un cuidadoso estilo en la pregunta, el analista puede controlar el marco de referencia. Este formato es el método para obtener información sobre los hechos.

1.7 Actividad 1 Conceptos Básicos INSTRUCCIONES

Desarrollar un mapa conceptual del tema: “Conceptos básicos” deberá incluir todos los conceptos

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

17

vistos en clase.

INDICADOR O

VARIABLE DESCRIPCIÓN

CUMPLE

SÍ NO PORCENTAJE

FORMA

Datos generales

Asignatura, Unidad temática, Nombre de la actividad, Nombre del alumno(os), matrícula, nombre del profesor, fecha.

5

Ortografía y redacción

Ortografía sin errores.

10

Presentación Legible 5

Aspectos generales

Portada con los datos generales, encabezado y pie de página a partir de la segunda página especificando el nombre de la carrera y nombre de la actividad.

De igual manera, se le pide que considere la siguiente forma de entrega:

Elabore el documento en un archivo de Word estructurado de la siguiente manera:

- Portada - Desarrollo - Conclusión

10

CONTENIDO

Presentación Presenta todos los conceptos vistos en clase 40

Desarrollo Organiza su información para tener la correcta relación de los conceptos

20

Representación Representa de manera correcta los conceptos

10

TOTAL 100

1.8 Práctica 1 Requerimientos de Información

NOMBRE DE LA PRÁCTICA: Requerimientos de Información

UNIDAD TEMÁTICA: I. Fundamentos de Bases de Datos.

TEMA: Análisis de requerimientos de base de datos.

OBJETIVO DE LA PRÁCTICA: Implementar un instrumento que le permita obtener información y establecer los requerimientos para resolver el problema planteado.

TIEMPO DE LA PRÁCTICA: 2 Hrs FECHA:

DESCRIPCIÓN:

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

18

El alumno deberá diseñar y construir un instrumento que permita obtener datos para establecer los requerimientos a partir de los cuales se construirá el modelo entidad – relación. Problemas sugeridos:

1. Determine qué datos necesita para llevar el inventario de productos de una tiendita de abarrotes.

2. Determine qué datos necesita si quiere llevar el control de los datos personales del grupo donde está usted inscrito.

3. Determine qué datos necesita si desea realizar un control de los oficios que se emiten en la dirección de la carrera.

Entregue por escrito en el formato previamente establecido y dado por el profesor de asignatura sus requerimientos de información. (Revise anexo 1)

MATERIALES Y EQUIPOS: Computadora

PROCEDIMIENTO: 1. Organizarse en equipo máximo de 3 personas

2. Analice y determine los requerimientos de información necesarios para resolver el

problema planteado por el profesor.

3. Presente su reporte de trabajo bajo las siguientes condiciones:

Elabore su reporte en un documento en un archivo de Word con letra arial de 10 o 12

pts. para el texto y de 12 o 14 pts. para títulos y estructurar el contenido de la siguiente

manera:

Portada

Índice

Introducción

Desarrollo

Conclusión

Bibliografía

La extensión máxima del documento a entregar es de 6 hojas, incluyendo portada.

CUESTIONARIO

REFERENCIAS

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

19

LISTA DE COTEJO PRÁCTICA 1

INDICADOR O

VARIABLE DESCRIPCIÓN

CUMPLE PORCENTAJE

SI NO

ACTITUD (SER) Puntualidad Entrega del trabajo tiempo y forma establecida 5

Trabajo en equipo

El alumno participa activamente en su equipo aportando propuestas para la realización del trabajo.

5

CONOCIMIENTO (SABER) Requisitos de Información

Identifica correctamente todos los instrumentos para obtener información.

20

Requisitos de Información

Identificó el instrumento más viable dependiendo del problema que se le planteo.

20

HABILIDAD (SABER HACER)

Estructura El instrumento generado tiene el orden coherente para obtener la información necesaria

20

Presentación El instrumento generado le permitió obtener toda la información necesaria para establecer sus requerimientos de información

30

TOTAL 100

EVALUACIÓN: LA AUSENCIA PARCIAL O TOTAL DE ALGÚN INCISO TENDRÁ UNA PENALIZACIÓN ACORDE A LA

PUNTUACIÓN SEÑALADA EN CADA INCISO

OBSERVACIÓN:

EVALUADOR

(NOMBRE Y

FIRMA)

2. Unidad Temática II Modelo Entidad – Relación (E-R)

Objetivo: El alumno realizará el modelo E-R y el modelo Entidad Relación Extendido (EE-R) para diseñar un esquema de la base de datos, de acuerdo a los requerimientos establecidos.

Temas Saber Saber hacer Ser

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

20

Temas Saber Saber hacer Ser

Modelo de datos Entidad-Relación.

Describir los conceptos,

función y representación

de: Entidades, Relaciones,

Atributos (clasificación y

conjuntos).

Restricciones de asignación

(De entidad, Cardinalidad,

participación) y Claves.

Identificar el modelo

Entidad-relación.

Elaborar un Diagrama E-R acorde a los requisitos establecidos.

Analítico Hábil para el trabajo en equipo Disciplinado Sistemático Organizado Proactivo Hábil para comunicarse de forma oral y escrita Capaz de sintetizar

Modelo Entidad-Relación Extendido.

Describir los conceptos , función y representación de: subclase, superclase, herencia, especialización y generalización

Elaborar un Diagrama EE-R acorde a los requisitos establecidos.

Analítico Hábil para el trabajo en equipo Disciplinado Sistemático Organizado Proactivo Hábil para comunicarse de forma oral y escrita Capaz de sintetizar

Resultado de aprendizaje: Elaborará un documento a partir de un problema planteado que contenga:

Diagrama entidad-relación (E-R)

Diagrama entidad-relación extendido (EE-R).

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

21

2.1 El Modelo Entidad-Relación Denominado por sus siglas como: E-R; Este modelo representa a la realidad a través de entidades, que son objetos que existen y que se distinguen de otros por sus características, por ejemplo: un alumno se distingue de otro por sus características particulares como lo es el nombre, o el numero de control asignado al entrar a una institución educativa, así mismo, un empleado, una materia, etc.

2.1.1 Entidades y Atributos

Las entidades pueden ser de dos tipos:

Tangibles. Son todos aquellos objetos físicos que podemos ver, tocar o sentir.

Intangibles: Todos aquellos eventos u objetos conceptuales que no podemos ver, aun sabiendo que existen.

Las características de las entidades se llaman atributos, por ejemplo el nombre, dirección teléfono, grado, grupo, etc. son atributos de la entidad alumno; Clave, número de seguro social, departamento, etc., son atributos de la entidad empleado.

2.1.2 Relaciones

Una entidad se puede asociar o relacionar con más entidades a través de relaciones, Una relación es la asociación que existe entre dos a más entidades.

Por ejemplo, consideremos una empresa que requiere controlar a los vendedores y las ventas que ellos realizan; de este problema determinamos que los objetos o entidades principales a estudiar son el empleado (vendedor) y el artículo (que es el producto en venta), y las características o atributos que los identifican son:

Empleado: Artículo:

Nombre Descripción Puesto Costo Salario Clave R.F.C.

La relación entre ambas entidades la podemos establecer como Venta.

Bueno, ahora nos falta describir como se representa un modelo E-R gráficamente, la representación es muy sencilla, se emplean símbolos, los cuales son:

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

22

Símbolo Representa

Así nuestro ejemplo anterior quedaría representado de la siguiente forma:

2.1.3 Restricciones De Asignación

Existen 4 tipos de relaciones que pueden establecerse entre entidades, las cuales establecen con cuantas entidades de tipo B se pueden relacionar una entidad de tipo A:

2.1.3.1 Relación uno a uno.

Se presenta cuando existe una relación como su nombre lo indica uno a uno, denominado también relación de matrimonio. Una entidad del tipo A solo se puede relacionar con una entidad del tipo B, y viceversa;

Por ejemplo: la relación asignación de automóvil que contiene a las entidades EMPLEADO, AUTO, es una relación 1 a 1, ya que asocia a un empleado con un único automóvil por lo tanto ningún empleado posee más de un automóvil asignado, y ningún vehículo se asigna a más de un trabajador.

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

23

Es representado gráficamente de la siguiente manera:

A: Representa a una entidad de cualquier tipo diferente a una entidad B.

R: en el diagrama representa a la relación que existe entre las entidades.

El extremo de la flecha que se encuentra punteada indica el uno de la relación, en este caso, una entidad A ligada a una entidad B.

2.1.3.2 Relación uno a muchos.

Significa que una entidad del tipo A puede relacionarse con cualquier cantidad de entidades del tipo B, y una entidad del tipo B solo puede estar relacionada con una entidad del tipo A.

Su representación gráfica es la siguiente:

Nótese en este caso que el extremo punteado de la flecha de la relación de A y B, indica una entidad A conectada a muchas entidades B.

2.1.3.3 Muchos a uno.

Indica que una entidad del tipo B puede relacionarse con cualquier cantidad de entidades del tipo A, mientras que cada entidad del tipo A solo puede relacionarse con solo una entidad del tipo B.

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

24

2.1.3.4 Muchos a muchos.

Establece que cualquier cantidad de entidades del tipo A pueden estar relacionados con cualquier cantidad de entidades del tipo B.

A los tipos de relaciones antes descritos, también se le conoce como cardinalidad.

La cardinalidad nos especifica los tipos de relaciones que existen entre las entidades en el modelo E-R y establecer con esto las validaciones necesarias para conseguir que los datos de la instancia (valor único en un momento dado de una base de datos) correspondan con la realidad.

2.1.4 Llave Primaria y Secundarias

La distinción de una entidad entre otra se debe a sus atributos, lo cual lo hacen único. Una llave primaria es aquel atributo el cual consideramos clave para la identificación de los demás atributos que describen a la entidad. Por ejemplo, si consideramos la entidad ALUMNO de la UTP, podríamos tener los siguientes atributos: Nombre, Cuatrimestre, Especialidad, Dirección, Teléfono, Número de registro, de todos estos atributos el que podremos designar como llave primaria es el número de registro, ya que es diferente para cada alumno y éste nos identifica en la institución.

Claro que puede haber más de un atributo que pueda identificarse como llave primaria en este caso se selecciona la que consideremos más importante, los demás atributos son denominados llaves secundarias.

Una clave o llave primaria es indicada gráficamente en el modelo E-R con una línea debajo del nombre del atributo.

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

25

2.2 Modelo Entidad Relación Extendido (EE-R)

2.2.1 Generalización.

La generalización consiste en identificar todos aquellos atributos iguales de un conjunto de entidades para formar una entidad(es) global(es) con dichos atributos semejantes, dicha entidad(es) global(es) quedara a un nivel más alto al de las entidades origen.

Ejemplo: Tomando el ejemplo del libro de fundamentos de base de datos de Henry F. Korth. Donde: Se tiene las entidades Cta_Ahorro y Cta_Cheques, ambas tienen los atributos semejantes de No_Cta y Saldo, aunque además de estos dos atributos, Cta_Ahorro tiene el atributo Tasa_Interes y Cta_Cheques el atributo Saldo_Deudor. De todos estos atributos podemos juntar (generalizar) No_Cta y Saldo que son iguales en ambas entidades.

Entonces tenemos:

Podemos leer esta gráfica como: La entidad Cta_Ahorro hereda de la entidad CUENTA los atributos No_Cta y saldo, además del atributo de TasaInteres, de forma semejante Cta_cheque tiene los atributos de No_Cta, Saldo y SaldoDeudor.

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

26

Como podemos observar la Generalización trata de eliminar la redundancia (repetición) de atributos, al englobar los atributos semejantes. La entidad(es) de bajo nivel cuentan (heredan) todos los atributos correspondientes.

El proceso de especialización nos permite lo siguiente: • Definir un conjunto se subclases a partir de una entidad. • Asociar atributos específicos a cada subclase. • Establecer relaciones específicas entre cada subclase con otras entidades o subclases. Podemos pensar en un proceso inverso de abstracción en el cual suprimimos las diferencias entre las distintas entidades, identificando sus características comunes, y generalizando dichas entidades en una sola superclase de la cual las entidades iniciales serían subclases especiales. Por ejemplo, supongamos las entidades COCHE y CAMION de la figura 2(a); podremos generalizarlas en la entidad VEHICULO, como se muestra en la figura 2(b). Tanto COCHE como CAMION serán ahora subclases de la superclase generalizada VEHICULO. Usamos el término generalización para referirnos al proceso de definición de una entidad generalizada a partir de unas entidades dadas.

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

27

2.2.2 Especialización. El proceso por el que se definen las diferentes subclases de una superclase se conoce como especialización. El conjunto de subclases se define basándonos en características diferenciadoras de las ocurrencias de entidad de la superclase. Por ejemplo, el conjunto se subclases {SECRETARIA, INGENIERO, TECNICO} es una especialización de la superclase EMPLEADO mediante la distinción del tipo de trabajo en cada ocurrencia de entidad. Podemos tener varias especializaciones de una misma entidad basándonos en distintos criterios. Por ejemplo, otra especialización de EMPLEADO podría dar lugar a las subclases ASALARIADO y SUBCONTRATADO, dependiendo del tipo de contrato.

La especialización de un tipo de entidad en un conjunto de subtipos puede ser total o parcial

Especialización total. Representa el hecho de que las entidades que son reconocidas en el problema que se está representando son de alguno de los subtipos especializados, no existiendo entidades que no pertenezcan a alguno, varios o todos estos subtipos de entidad.

Especialización parcial: representa el hecho de que pueden existir entidades que pertenezcan al tipo de entidad y no a ninguno de los subtipos en los cuales este tipo de entidad está especializado. Es decir, describe un refinamiento incompleto del problema que se representa, debido a un conocimiento incompleto del mismo y/o una simplificación de la representación del mismo.

Por lo tanto se pueden representar cuatro tipos de interrelaciones jerárquicas que se representarían mediante el modelo EE-R:

Total sin solapamiento: La siguiente figura muestra el tipo de entidad Persona el cual puede ser especializada en dos subtipos de entidad Hombre y Mujer de forma tal y sin solapamiento. Una entidad persona podrá pertenecer al subtipo Hombre o al subtipo Mujer necesariamente; es decir, no existirá una Persona que no sea de alguno de estos dos subtipos y además de forma exclusiva, por lo que una entidad pertenecerá a uno y sólo uno de estos subtipos.

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

28

Parcial sin solapamiento: La siguiente figura muestra un ejemplo de especialización parcial exclusiva. En este caso se ha considerado un tipo de entidad Enfermedad que puede ser especializada en dos subtipos Vírica y Bacteriana. Este diagrama representa el hecho de que en el problema se consideran un conjunto de entidades Enfermedad las cuales pertenecerán bien a alguno de los subtipos considerados Vírica o Bacteriana, pero que además existirán entidades Enfermedad las cuales no puedes ser clasificadas en ninguno de estos subtipos debido, posiblemente, al desconocimiento del valor del atributo Tipo utilizado como discriminador.

Total con solapamiento: La siguiente figura representa un refinamiento total con solapamiento en el que un tipo de entidad Empresa se ha redefinido en dos subtipos Pública y Privada. Se está representando el hecho de que podrán existir en el dominio del problema entidades que puedan ser consideradas tanto del tipo Pública como Privada, o bien de ambos tipos al mismo tiempo y, además el hecho de que no podrán existir entidades que no puedan ser especializadas en alguno de estos dos subtipos.

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

29

Parcial con solapamiento: en la siguiente figura se representa a un tipo de entidad Persona que puede ser refinado en dos subtipos Trabajador y Estudiante de forma parcial con solapamiento. Este ejemplo representa que una entidad Persona puede ser del tipo Trabajador y/o del tipo Estudiante y que además pueden existir entidades Persona que no puedan clasificarse en ninguno de estos dos subtipos.

En los dos últimos ejemplos, los subtipos de entidad incorporan nuevos atributos mediante los cuales pueden diferenciarse entidades pertenecientes a los distintos subtipos (o del tipo de entidad general en el caso en que la especialización no sea total). Igualmente podrían existir atributos pertenecientes al tipo de interrelación jerárquica cuya función fuera de esta diferenciación de las entidades pertenecientes a los subtipos.

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

30

2.3 Actividad 2 Modelo Entidad – Relación INSTRUCCIONES

Dados los siguientes planteamientos identifique: Entidades, Relaciones y Atributos Cardinalidades Llaves primarias, foreneas y candidatas. 1. Representa los posibles atributos de la entidad Trabajador y la entidad Familiar así como

también la relación que existe entre las dos entidades utilizando la simbología del modelo E-R.

2. Se requiere representar en una base de datos los libros y los autores de una biblioteca

teniendo en cuenta que un libro puede ser escrito por varios autores, utiliza la simbología del

modelo E-R para esquematizar las entidades, atributos y la relación que existe.

3. Representa la relación que existe entre los autobuses y los conductores de una línea de

transporte, en la que el conductor puede conducir varios autobuses y un autobús puede ser

conducido por varios conductores, utiliza la simbología del modelo E-R para esquematizar las

entidades, atributos y la relación que existe.

INDICADOR O

VARIABLE DESCRIPCIÓN

CUMPLE

SÍ NO PORCENTAJE

FORMA

Puntualidad Entrega en tiempo y forma establecida 10

Ortografía y redacción

Ortografía sin errores.

10

Aspectos generales

De igual manera, se le pide que considere la siguiente forma de entrega:

Elabore el documento en un archivo de Word estructurado de la siguiente manera:

- Portada - Desarrollo - Conclusión

10

CONTENIDO

Presentación Presenta los conceptos solicitados 40

Desarrollo Organiza su información para tener la correcta relación de los conceptos

20

Representación Representa de manera correcta los conceptos

10

TOTAL 100

INSTRUCCIONES

Dados los siguientes planteamientos Genere el modelo Entidad – Relación o el modelo Entidad – Relación Extendido, según sea el caso.

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

31

Planteamientos:

Diseñar una base de datos que contenga información relativa a todas las carreteras de un

determinado país. Sabiendo que: 1. En dicho país las carreteras se encuentran divididas en tramos. 2. Un tramo siempre pertenece a una única carretera y no puede cambiar de carretera. 3. Un tramo puede pasar por varios términos municipales, siendo un dato de interés 4. el km. del tramo por el que entra en dicho termino municipal y el km. por el 5. que sale. 6. Existen una serie de aéreas en las que se agrupan los tramos, cada uno de los cuales no

puede pertenecer a más de un área.

Se desea diseñar una base de datos para una Universidad que contenga información sobre los

Alumnos, las Asignaturas y los Profesores. Teniendo en cuenta las siguientes restricciones: 1. Una asignatura puede estar impartida por muchos profesores (no a la vez) ya que pueden

existir grupos. 2. Un profesor puede dar clases de muchas asignaturas. 3. Un alumno puede estar matriculado en muchas asignaturas. 4. No existen asignaturas con el mismo nombre. 5. Un alumno no puede estar matriculado en la misma asignatura con dos profesores

distintos.

Diseñar una base de datos para una sucursal bancaria que contenga información sobre los

clientes, las cuentas, las sucursales y las transacciones producidas. Teniendo en cuenta las siguientes restricciones:

1. Una transacción viene determinada por su número de transacción, la fecha y la cantidad. 2. Un cliente puede tener muchas cuentas. 3. Una cuenta puede tener muchos clientes. 4. Una cuenta sólo puede estar en una sucursal.

Diseñar una base de datos que refleje toda la información necesaria para la gestión de las líneas

de metro de una determinada ciudad. Los supuestos semánticos considerados son los siguientes: 1. Una línea está compuesta por una serie de estaciones en un orden determinado, siendo

muy importante recoger la información de ese orden. 2. Cada estación pertenece al menos a una línea, pudiendo pertenecer a varias. 3. Una estación nunca deja de pertenecer a una línea a la que anteriormente pertenecía (P/E

La Merced, que pertenece a la línea 1, nunca podrá dejar de pertenecer a esta línea). 4. Cada estación puede tener varios accesos, pero consideramos que un acceso solo puede

pertenecer a una estación. 5. Un acceso nunca podrá cambiar de estación. 6. Cada línea tiene asignados una serie de trenes, no pudiendo suceder que un tren este

asignado a mas de una línea, pero sí que no esté asignado a ninguna (P/E si se encuentra en reparación).

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

32

Diseñar una base de datos que refleje toda la información la información necesaria para

almacenar la información relativa a algunos aspectos del campeonato de fútbol considerando los

supuestos semánticos siguientes: 1. Un jugador pertenece a un único equipo y no hay dos jugadores con el mismo nombre. 2. Un jugador puede actuar en varios puestos distintos, pero en un determinado partido sólo

puede jugar en un puesto. 3. Es obligatorio en todo momento que un jugador pertenezca a un equipo determinado y no

podrá cambiar de equipo a lo largo del campeonato.

Diseñar una base de datos que guarde la información de una empresa dedicada al alquiler de

automóviles. Los supuestos semánticos son los siguientes: 1. Un determinado cliente puede tener en un momento dado varias reservaciones de

alquiler. 2. Una reservación la realiza un único cliente, pero puede involucrar a varios coches. 3. Es importante registrar la fecha de comienzo de la reservación y la de terminación. 4. Todo coche tiene siempre asignado un determinado de garaje, que no puede cambiar. 5. En la base de datos pueden existir clientes que no hayan hecho ninguna reserva.

Diseñar una base de datos que guarde la información de una compañía: los empleados,

departamentos y proyectos de una empresa, de acuerdo con los siguientes requisitos: 1. La compañía está organizada en departamentos. Cada departamento tiene un nombre

único, un número único y un empleado que la dirige e interesa guardar la fecha en que dicho empleado comenzó a dirigir el departamento.

2. Un departamento puede estar distribuido en vario lugares. 3. Cada departamento controla un cierto número de proyectos, cada uno de los cuales tiene

un nombre y un número únicos, y se realiza en un sólo lugar. 4. Se almacena el nombre, número de la Seguridad Social, dirección, salario, sexo y fecha de

nacimiento de cada empleado. Todo empleado está asignado a un departamento, pero puede trabajar en varios proyectos que no tienen porque ser del mismo departamento. Nos interesa saber el número de horas que un empleado trabaja en cada proyecto a los que está asignado.

5. También se quiere guardar la información de los familiares de cada empleado para administrar el seguro que poseen. Almacenaremos el nombre, sexo y fecha de nacimiento y su parentesco con el empleado.

INDICADOR O

VARIABLE DESCRIPCIÓN

CUMPLE

SÍ NO PORCENTAJE

FORMA

Puntualidad Entrega en tiempo y forma establecida 10

Ortografía y redacción

Ortografía sin errores.

10

Aspectos generales

De igual manera, se le pide que considere la siguiente forma de entrega:

10

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

33

Elabore el documento en un archivo de Word estructurado de la siguiente manera:

- Portada - Planteamiento del problema - Desarrollo (Solución) - Conclusión

CONTENIDO

Presentación Presenta los conceptos solicitados 40

Desarrollo Organiza su información para tener la correcta relación de los conceptos

20

Representación Representa de manera correcta los conceptos

10

TOTAL 100

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

34

Unidad Temática III MODELO RELACIONAL

Objetivo: El alumno transformará un diagrama E-R o EE-R a un modelo relacional para realizar consultas.

Temas Saber Saber hacer Ser

Conceptos del modelo relacional

Describir los conceptos, función y representación de: Dominios, atributos, tuplas y relaciones. Identificar las características de las relaciones y notación del modelo relacional.

Establecer dominios para las relaciones.

Analítico Disciplinado Sistemático Organizado Capaz de sintetizar

Esquemas de bases de datos relacionales

Describir el concepto de clave (primaria y foránea). Describir el procedimiento para realizar la transformación de los modelos E-R y EE-R a Modelo relacional.

Diseñar un modelo de Base de Datos Relacional a partir de un modelo E-R o EE-R.

Analítico Hábil para el trabajo en equipo Disciplinado Sistemático Organizado Tolerante Proactivo Capaz de sintetizar

Algebra Relacional Describir el procedimiento

para realizar las

Operaciones básicas

(seleccionar, proyectar,

renombrar).

Describir el procedimiento

para realizar las

Operaciones adicionales

(conjuntos, reunión,

división).

Realizar consultas a través del álgebra relacional.

Analítico Hábil para el trabajo en equipo Disciplinado Sistemático Organizado Tolerante Proactivo Capaz de sintetizar

Resultado de aprendizaje: Realizará un reporte a partir de un problema planteado que contenga:

Transformación de un diagrama E-R o EE-R a un modelo relacional que incluya: Definición de dominios (tipo de datos), Claves primarias y foráneas, Relaciones.

Diseño de consultas empleando álgebra relacional.

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

35

3.1 Conceptos del modelo Relacional.

El modelo relacional ofrece una manera única de representar los datos: como una tabla bidimensional denominada relación, dicha relación contiene atributos:

Nombre Telefono CP Relación Cliente

Esteban Benítez Pérez 2654554 72600 Luis Flores Aguilar 2547823 72450 Virginia Pérez Ruiz 2356897 78458

3.1.1 Atributos

Los atributos sirven de nombre a las columnas de la relación; es decir, generalmente describen el significado de las entradas de las columnas situada debajo de ellos.

Nombre Telefono CP

Existen diferentes tipos de atributos como son:

Atributos simples y compuestos. Los atributos simples no están divididos en otros atributos. Los atributos compuestos, en cambio, se pueden dividir en subpartes, por ejemplo: Nombre podría estar estructurado como un atributo compuesto que consiste en nombre, apellido-paterno, apellido-materno.

Atributos univalorados y multivalorados. Los atributos univalorados tienen un solo valor para una entidad concreta, por ejemplo el atributo CP para una entidad cliente específico, referencia un único código postal. Se considera un atributo multivalorado porque en ocasiones un atributo tiene un conjunto de valores para una entidad específica, en el caso de un conjunto de entidades empleado con el atributo nombre-subordinado, cualquier empleado particular puede tener, uno o más subordinados.

Atributos nulos. Se usa cuando una entidad no tiene un valor para un atributo. Por ejemplo, si un empleado en particular no tiene subordinados, el valor nombre-subordinado para este empleado será nulo.

Atributo derivado. El valor para este tipo de atributo se puede derivar de los valores de otros atributos o entidades. Por ejemplo: considérese que el conjunto de entidades empleado tiene como atributos fecha-comienzo y antigüedad, que representan el primer día en que el empleado comenzó a trabajar para el banco y el tiempo total en que el empleado lleva trabajando para el

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

36

banco, respectivamente, el valor de antigüedad se puede derivar del valor de fecha-comienzo y de la fecha actual. En este caso, fecha comienzo se puede referenciar como un atributo base o atributo almacenado.

3.1.2 Dominios.

Un dominio D es un conjunto finito de valores homogéneos y atómicos V1, V2, …, Vn, caracterizado por un nombre, decimos valores homogéneos porque son todos del mismo tipo y atómicos porque son indivisibles en lo que al modelo se refiere; es decir, si se descompusiesen, perderían la semántica a ellos asociada.

Por ejemplo podemos definir el dominio materias, cuyo conjunto de valores podría ser: Bases de Datos, Sistemas Operativos, Lenguajes de programación, matemáticas, etc.

3.1.3 Tuplas.

A los renglones de una relación, si no son el renglón del encabezado que contiene los atributos, se les da el nombre de tuplas. Una tupla tiene un componente para cada uno de los atributos de la relación.

Las tuplas representan los objetos y la relación a la que pertenecen representa su clase.

3.1.4 Relaciones

El elemento central del modelo relacional es la relación. Una relación tiene un nombre, un conjunto de atributos que representan sus propiedades y un conjunto de tuplas que incluyen los valores que cada uno de los atributos toma para cada elemento de la relación. No se deben confundir los conceptos de tabla y de relación, ya que una tabla es solo una forma de representar a una relación. Y además:

No puede haber dos tuplas iguales.

El orden de las tuplas no es significativo.

El orden de los atributos no es significativo.

Cada atributo solo puede tomar un único valor de su dominio correspondiente.

3.1.4.1 Relaciones nominadas.

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

37

Las relaciones nominadas o con nombre, además se dividen en otros dos grupos por su duración:

a) Persistentes

Son aquellas relaciones cuya definición (esquema de relación) permanece en la base de datos, borrándose solamente mediante una acción explícita del usuario.

o Base: Existen por sí mismas, no en función de otras relaciones y se crean especificando explícitamente su esquema de relación (nombre y conjunto de pares: atributo/dominio). Sus extensiones (ocurrencias de la relación), al igual que su definición, también se encuentran almacenadas.

o Vistas: Son relaciones derivadas que se definen dando un nombre a una expresión de consulta. Se pueden tomar como relaciones virtuales, en el sentido de que no tienen datos almacenados, sino que lo único que se almacena es su definición en términos de otras relaciones con nombre, las cuales pueden ser relaciones base, vistas o instantáneas.

o Instantáneas: son relaciones derivadas al igual que las vistas; es decir, se definen en

términos de otras relaciones nominadas, pero tienen datos propios almacenados, los cuales son el resultado de ejecutar la consulta especificada o de guardar una relación base.

b) Temporales

Una relación temporal desaparece de la base de datos en un cierto momento sin necesidad de una acción de borrado específica por el usuario.

o Autónomas: este tipo de relación no se deriva de otra, al igual que las relaciones base.

o Vistas temporales; similar a una vista pero de forma temporal. o Instantáneas temporales: similar a una instantánea pero de forma temporal.

3.1.4.2 Relaciones sin nombre Son los resultados de las consultas que no se materializan sino que se entregan al usuario que ha realizado la consulta.

Resultado final de una consulta.

Resultados intermedios de una consulta.

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

38

3.1.5 Clave primaria, alternativa y Foránea

Una clave candidata de una relación es un conjunto de atributos que identifican unívoca y mínimamente cada tupla de la relación. Por la propia definición de relación siempre hay, al menos una clave candidata, ya que una relación es un conjunto de tuplas, entonces no existen dos tuplas iguales y, por tanto, el conjunto de todos los atributos siempre tiene que identificar unívocamente a cada tupla.

Una relación puede tener más de una clave candidata, entre las cuales se debe distinguir las claves:

Clave primaria: es aquella candidata que el usuario escogerá, por consideraciones ajenas al

modelo relacional, para identificar las tuplas de la relación. Cuando sólo existe una clave

candidata, ésta será la clave primaria.

Claves alternativas o secundarias: son aquellas claves candidatas que no han sido escogidas

como clave primaria.

Clave Foránea: Se denomina clave foránea o ajena de una relación (R1) a un conjunto no vacío de

atributos cuyos valores han de coincidir con los valores de la clave primaria de otra relación(R2).

La clave ajena y la correspondiente clave primaria deben estar definidas sobre el mismo dominio.

3.2 Transformación del modelo E-R, EE-R al Modelo Relacional.

La transformación obedece a las siguientes reglas:

Cada entidad del modelo E-R se transforma en una tabla.

Todo atributo de una entidad en el modelo E-R se transforma en un campo dentro la tabla,

manteniendo las claves primarias.

Las relaciones con cardinalidad máxima N:M se transforman en una nueva tabla, cuya llave

primaria estará formada por la unión de los atributos primarios de las entidades que relaciona.

En las relaciones 1:N se pueden dar dos casos:

o Generan una propagación de llave primaria.

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

39

o Generan una nueva relación.

Los atributos multivaluados dan lugar a una nueva relación cuya clave primaria es la llave

primaria de la entidad a la que pertenece mas el nombre del atributo multivaluado.

3.2.1 Manejo de Entidad Débiles.

Cuando un conjunto entidad débil aparece en un diagrama E/R, hay que hacer tres cosas en forma diferente:

La relación del conjunto entidad débil W también habrá de incluir no sólo los atributos de W, sino también los atributos llave de los restantes conjuntos entidad que contribuyan a formar la llave de W.

Las relaciones en que aparezca el conjunto entidad débil W habrán de utilizar como llave de Métodos sus atributos llave, entre ellos los de otros conjuntos entidad que contribuyan a la llave de W.

Cuando se introducen atributos adicionales para construir la llave de un conjunto entidad débil, se tendrá mucho cuidado para no utilizar dos veces un mismo nombre.

3.3 Esquema de una relación.

Se pueden distinguir dos conceptos ligados a la notación de la relación:

Intención de una relación: Parte definitoria y estática de la relación, es a lo que se le llama esquema de relación. Es invariable en el tiempo.

Cliente (nombre: int; teléfono: varchar(60), CP:varchar(10))

Extensión: Conjunto de tuplas que en un instante determinado, satisfacen el esquema de la relación y se encuentran almacenadas en la base de datos. Normalmente se le llama simplemente relación. Cambia en el transcurso del tiempo.

Nombre Teléfono CP Esteban Benítez Pérez 2654554 72600

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

40

Luis Flores Aguilar 2547823 72450 Virginia Pérez Ruiz 2356897 78458

Tanto el esquema como las tuplas de una relación son conjuntos, no listas; y de ahí que no importe el orden en que sean presentadas. Se pueden enumerar las tuplas en cualquiera de sus órdenes posibles y la relación sigue siendo la misma.

Esteban Benítez Pérez 2654554 72600

2654554 Esteban Benítez Pérez 72600

2654554 72600 Esteban Benítez Pérez

A la cantidad de tuplas que existen dentro de la relación se le conoce como cardinalidad; es decir, es el número total de renglones de la relación.

3.4 Álgebra Relacional

El algebra relacional es un lenguaje de consulta procedimental. Consta de un conjunto de operaciones que toman como entrada una o dos relaciones y producen como resultado una nueva relación.

Las ocho operaciones se agrupan en dos como sigue

Operadores tradicionales: o Unión o Intersección o Diferencia o Producto Cartesiano.

Operadores Especiales: o Restricción o selección o Proyección o Reunión o División

Las operaciones selección, proyección y renombramiento se denominan operaciones unarias porque trabajan sobre una sola relación. Las otras operaciones operan sobre pares de relaciones y se denominan por lo tanto binarias.

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

41

3.4.1 Operación de Selección o Restricción.

La operación de restricción selecciona tuplas que satisfacen un predicado dado. Se utiliza la letra griega sigma (σ) para denotar la selección. El predicado aparece como subíndice. La relación del argumento se da entre paréntesis. Por tanto, para seleccionar las tuplas de la relación préstamo en que la sucursal es <<Plaza Dorada>> hay que escribir

σnombre_sucursal=<<Plaza Dorada>> (préstamo)

Si la relación préstamo es como se muestra a continuación

Numero_prestamo Nombre_sucursal Importe

P-11 PLAZA DEL SOL 900

P-14 CENTRO 1500

P-15 PLADA DORADA 1500

P-16 PLAZA DORADA 1300

P-18 PLAZA LORETO 2000

La relación que resultará de la consulta anterior es:

Numero_prestamo Nombre_sucursal Importe

P-15 PLADA DORADA 1500

P-16 PLAZA DORADA 1300

En general, se permiten las comparaciones que utilizan , =, <, <=, >, >= en el predicado de la selección. Además, se pueden combinar varios predicados en uno mayor utilizando las conectivas y (^) y o (v).

σ nombre_sucursal=<<Plaza Dorada>> ^importe >1200 (préstamo)

3.4.2 Operación de Proyección.

Supóngase que se desea hacer una lista de todos los números del préstamo y del importe de los mismos, pero sin que aparezcan los nombres de las sucursales. La operación proyección permite producir esta relación. La operación es unaria que devuelve su relación de argumentos, excluyendo algunos argumentos. Dado que las relaciones son conjuntos, se eliminan todas las filas duplicadas. Las proyecciones se denotan con la letra mayúscula pi (π). Se crea una lista de los atributos que se desea que aparezcan en el resultado como subíndice. La relación de argumentos se escribe a continuación entre paréntesis. Por tanto la consulta para crear la lista de todos los números de préstamo y del importe de los mismos puede escribirse como:

π numero_prestamo, importe (préstamo)

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

42

Y la relación que resulta es:

Numero_prestamo Importe

P-11 900

P-14 1500

P-15 1500

P-16 1300

P-17 1000

P-18 2000

3.4.3 Composición de operaciones relacionales

Es importante el hecho de que el resultado de una operación relacional sea también una relación. Considérese la consulta más compleja <<Encontrar los clientes que viven en el centro>> hay que escribir:

π nombre_cliente ,( σ colonia_cliente =<<Centro>>(Cliente))

Téngase en cuenta, en vez de dar en el argumento la operación proyección el nombre de una relación se da una expresión que se evalúa como una relación.

En general dado que el resultado de la operación del algebra relacional es del mismo tipo (relación) que los datos de entrada, las operaciones del algebra relacional pueden componerse para formar una expresión del algebra relacional.

La composición de operaciones del algebra relacional para formar expresiones es igual a la de las operaciones aritméticas

3.4.4 Operación Unión

Considérese una consulta para averiguar el nombre de todos los clientes del banco que tienen una cuenta o un préstamo o ambas cosas. Obsérvese que la relación cliente no contiene esa información, dado que los clientes no necesitan tener ni cuenta ni préstamo en el banco. Para contestar a esta consulta hace falta la información de las relaciones impositoras y prestatarias que a continuación se dan:

Nom_cliente Num_cuenta

Oscar C-102

Raúl C-103

Joaquín C-104

Martín C-105

Abril C-106

Nom_cliente Num_prestamo

Ramiro P-16

Raúl P-17

Joaquín P-18

Sandra P-19

Guillermo P-20

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

43

Se conoce la manera de averiguar los nombres de todos los clientes con préstamo en el banco

π nom_cliente (prestatario)

También se conoce la manera de averiguar el nombre de todos los clientes en el banco:

π nom_cliente (impositor)

Para contestar a la consulta hace falta la unión de estos dos conjuntos; es decir, hacen falta todos los nombres de clientes que aparecen en alguna de las dos relaciones o en ambas. Estos datos se pueden averiguar mediante la operación binaria unión, denotada, como en la teoría de conjuntos, por U. por tanto la expresión buscada es:

π nom_cliente (prestatario) U π nom_cliente (impositor)

La relación resultante de esta consulta aparece en la siguiente tabla:

Nom_cliente

Abril

Guillermo

Joaquín

Martín

Oscar

Ramiro

Raúl

Sandra

Téngase en cuenta que en el resultado hay ocho tuplas, aunque hay cinco prestatarios y cinco impositores distintos. Esta discrepancia aparente se debe a que Joaquín y Raúl son ala vez prestatarios e impositores. Dado que las relaciones son conjuntos, se eliminan los valores duplicados.

Obsérvese que en este ejemplo se toma la unión de dos conjuntos, ambos consistentes en valores nom_cliente. En general, se debe asegurar que las uniones se realicen entre relaciones compatibles.

Por lo tanto para que una operación unión relación1 U relación2 sea válida hay que exigir que se cumplan dos condiciones:

Las relaciones 1 y 2 deben ser de la misma aridad. Es decir, deben tener el mismo número de atributos.

Los dominios de los atributos i-ésimos de relación1 y de relación2 deben ser iguales para todo i

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

44

3.4.5 Operación diferencia de conjuntos

Las operaciones diferencias de conjuntos, denotada por ( - ) signo menos , permite buscar las tuplas que estén en una relación perno no en la otra. La expresión relación1 – relación2 da como resultado una relación que contiene las tuplas que están en relación1 pero no en la relación2.

Se puede buscar todos los clientes del banco que tienen abierta una cuenta pero no tienen concedido ningún préstamo escribiendo.

π nom_cliente (impositor) _ π nom_cliente (prestatario)

La relación resultante de esta consulta es:

Nom_cliente

Abril

Martín

Oscar

Como en el caso de la operación de unión, hay que asegurarse de que las diferencias de conjuntos se realicen en relaciones compatibles. Por lo tanto para que la operación diferencia de conjuntos sea válida hay que exigir que las relaciones sean de la misma aridad y que los dominios de los atributos i-ésimos de las relaciones sean iguales.

3.4.6 Operación Producto Cartesiano.

La operación denotada por un aspa (x) permite combinar la información de cualquiera de dos relaciones. El producto cartesiano de las relaciones r1 y r2 como r1 x r2.

Recuérdese que las relaciones se definen como subconjuntos del producto cartesiano de un conjunto de dominios. A partir de esta definición ya se debe tener una intuición sobre la definición del producto cartesiano. Sin embargo, dado que el mismo nombre de atributo puede aparecer tanto en r1 como en r2, hay que crear un esquema de denominación para distinguir entre ambos atributos. En este caso se logra adjuntando al atributo el nombre de la relación de la que proviene originalmente. Por ejemplo. El esquema de relación de r=prestatario x préstamo es:

(prestatario.nom_cliente, prestatario.Num_prestamo, préstamo.nombre_sucursal, prestamo.num_prestamo, prestamo.importe)

Con este esquema se puede distinguir entre prestatario.num_prestamo y prestamo.num_prestamo. Para los atributos que solo aparecen en uno de los dos esquemas se suele omitir el prefijo con el nombre de la

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

45

relación. Esta simplificación no genera ambigüedad alguna. Por tanto, se puede escribir el esquema de la relación como de r como:

(nom_cliente, prestatario.Num_prestamo, nombre_sucursal, prestamo.num_prestamo, importe)

El acuerdo de denominaciones precedente exige que las relaciones que sean argumentos de la operación de producto cartesiano tengan nombres diferentes. Esta exigencia causa problemas en algunos casos, como cuando se desea calcular el producto cartesiano de una relación consigo misma. Se producen un problema similar si se utiliza el resultado de una expresión del algebra relacional en un producto cartesiano, dado que hará falta un nombre para la relación para poder hacer referencia a sus atributos.

Supóngase que desea averiguar los nombres de todos los clientes que tienen concedido un préstamo en la sucursal de Plaza Dorada. Se necesita para ello información de las relaciones préstamo y prestatario

Préstamo

Numero_prestamo Nombre_sucursal Importe

P-11 PLAZA DEL SOL 900

P-14 CENTRO 1500

P-15 PLADA DORADA 1500

P-16 PLAZA DORADA 1300

P-17 CENTRO 1000

P-18 PLAZA LORETO 2000

Prestatario

Nom_cliente Numero_prestamo

Ramiro P-16

Raúl P-17

Joaquín P-15

Sandra P-19

Guillermo P-20

Si se escribe:

σ nombre_sucursal=<<Plaza Dorada>> (prestatario x préstamo)

Teniendo una relación que solo atañe a la sucursal de Plaza dorada. Sin embargo la columna nom_cliente puede contener clientes que no tengan concedido ningún préstamo en la sucursal mencionada (Si no se ve el motivo por el cual esto es cierto, recuérdese que el producto cartesiano toma todos los emparejamientos posibles de una tupla de prestatario con una tupla de préstamo).

Dado que la operación de producto cartesiano asocia todas las tuplas de préstamo con todas las tuplas de prestatario, se sabe que , si un cliente tiene concedido un préstamo en la sucursal de Plaza Dorada, hay alguna tupla prestatario X préstamo que contiene el nombre y que prestatario.numero_prestamo = prestamo.numero_prestamo. Por tanto si escribimos:

π prestatario.numero_prestamo=prestamo.numero_prestamo(σ nombre_sucursal=<<Plaza Dorada>> (prestatario x préstamo))

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

46

Sólo se obtienen las tuplas de prestatario X préstamo que corresponden a los clientes que tienen concedido un préstamo en la sucursal de Plaza Dorada.

Finalmente, dado que sólo se desea obtener nom_cliente, se realiza una proyección:

π nom_cliente(σ prestatario.numero_prestamo=prestamo.numero_prestamo(σ nombre_sucursal=<<Plaza Dorada>> (prestatario x préstamo)))

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

47

3.5 Actividad 3 Transformación al modelo relacional INSTRUCCIONES

Con los problemas planteado en la actividad 2 página (29) y siguiendo las reglas de transformación realice la transformación al modelo relacional del ejercicio que se le haya asignado

INDICADOR O

VARIABLE DESCRIPCIÓN

CUMPLE

SÍ NO PORCENTAJE

FORMA

Puntualidad Entrega en tiempo y forma establecida 10

Ortografía y redacción

Ortografía sin errores.

5

Aspectos generales

De igual manera, se le pide que considere la siguiente forma de entrega:

Elabore el documento en un archivo de Word estructurado de la siguiente manera:

- Portada - Planteamiento del problema (dado

en el ejercicio 4) - Desarrollo:

Modelo Entidad - Relación ó Entidad Relación – Extendido según sea el caso

- Transformación al Modelo relacional - Conclusión

20

CONTENIDO

Presentación Aplica las reglas de transformación 40

Desarrollo Organiza su información para tener la correcta relación de los conceptos

20

Representación Representa de manera correcta los conceptos

5

TOTAL 100

3.6 Actividad 4 Transformación del ER al Relacional. INSTRUCCIONES

Dados los siguientes planteamientos genere el modelo Entidad – Relación o el modelo E-R extendido y a partir de si diagrama genere el modelo Relacional:

Ejercicio 1:

El departamento de formación de una empresa desea construir una base de datos para planificar

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

48

y gestionar la formación de sus empleados. La empresa organiza cursos internos de formación de los que se desea conocer el código del curso, el nombre, una descripción, el número de horas de duración y el costo del curso. Un curso puede tener como prerrequisito haber realizado otro(s) previamente, y, a su vez la realización de un curso puede ser prerrequisito de otros. Un curso que es un prerrequisito de otro puede serlo de forma obligatoria o sólo recomendable. Un mismo curso tiene diferentes ediciones, es decir, se imparte en diferentes lugares, fechas y con diferentes horarios (intensivo, de mañana o de tarde). En una misma fecha de inicio sólo puede impartirse una edición de un curso. Los cursos se imparten por personal de la propia empresa. De los empleados se desea almacenar su código de empleado, nombre y apellidos, dirección, teléfono, CURP, fecha de nacimiento, nacionalidad, sexo, salario, así como si está o no capacitado para impartir cursos. Un mismo empleado puede ser docente en una edición de un curso y alumno en otro curso, pero nunca puede ser ambas cosas a la vez.

Ejercicio 2: La comunidad de Guadalajara desea guardar información sobre los alojamientos rurales que existen en dicha comunidad. Para ello decide crear una base de datos que recoja las siguientes consideraciones: Un alojamiento rural se identifica por un nombre (“Villa Aurora”, “Las Rosas”, etc…), tiene una dirección, un teléfono y una persona de contacto que pertenece al personal de alojamiento. En cada alojamiento trabajan una serie de personas que se identifican por un código de personal. Se requiere conocer el nombre completo, la dirección y el CURP. Aunque en un alojamiento trabajen varias personas, una persona sólo puede trabajar en un alojamiento. Los alojamientos se alquilan por habitaciones y se desea conocer, cuántas habitaciones componen el alojamiento, de qué tipo (individuales, dobles, triples) es cada una de estas habitaciones, si poseen cuarto de baño y el precio. En algunos de estos alojamientos se realizan actividades multiaventura organizadas para huéspedes (senderismo, bicicleta de montaña, etc…) . Estas actividades se realizan un día a la semana en un alojamiento, además de que se identifican por un código. Es de interés también saber el nombre de la actividad, el día que se realiza, la descripción y el nivel de dificultad de dicha actividad en una escala del (1-10).

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

49

Ejercicio 3: El Ministerio de Educación y Ciencia desea mantener información acerca de todos los cuadros que se encuentran en las pinacotecas mexicanas y toda la información relacionada con ellos. De cada pinacoteca se desea saber el nombre (único), la ciudad en la que se encuentra, la dirección y los metros cuadrados que tiene. Cada pinacoteca tiene una serie de cuadros de los que se quiere guardar su código, nombre, medidas, fecha en que fue pintado y técnica utilizada para pintarlo. Cada cuadro es pintado por un determinado pintor (nombre, país, ciudad, fecha de nacimiento y fecha de fallecimiento). Un pintor puede tener a otro como maestro, un maestro puede serlo de varios (o de ninguno). Los pintores pueden pertenecer o no a una escuela de la que se desea saber su nombre, en que país y fecha en que apareció. Los pintores pueden tener también uno o varios mecenas que los protegen de los que se desea saber (nombre, país, ciudad de nacimiento, fecha de fallecimiento, fecha en que se inicia y fecha en que termina el mecenazgo). A su vez un mismo mecenas puede serlo de varios pintores. Se desea recoger la relación que existe entre un pintor y su mecenas.

INDICADOR O

VARIABLE DESCRIPCIÓN

CUMPLE

SÍ NO PORCENTAJE

FORMA

Puntualidad Entrega en tiempo y forma establecida 10

Ortografía y redacción

Ortografía sin errores.

5

Aspectos generales

De igual manera, se le pide que considere la siguiente forma de entrega:

Elabore el documento en un archivo de Word estructurado de la siguiente manera:

- Portada - Planteamiento del problema (dado

en el ejercicio 4) - Desarrollo:

Modelo Entidad - Relación ó Entidad Relación – Extendido según sea el caso

- Transformación al Modelo relacional - Conclusión

20

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

50

CONTENIDO

Presentación Aplica las reglas de transformación 40

Desarrollo Organiza su información para tener la correcta relación de los conceptos

20

Representación Representa de manera correcta los conceptos

5

TOTAL 100

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

51

UNIDAD TEMÁTICA IV DISEÑO DE BD RELACIONALES.

Objetivo: El alumno realizará la normalización de la BD considerando las restricciones de integridad para evitar la redundancia e inconsistencia de datos

Temas Saber Saber hacer Ser

Restricciones de Integridad

Identificar los conceptos y aplicaciones de las restricciones de integridad (de dominio, de unicidad y de integridad referencial).

Determinar las restricciones de integridad en una BD Relacional.

Analítico Hábil para el trabajo en equipo Disciplinado Sistemático Organizado Proactivo Capaz de sintetizar

Normalización Identificar el concepto y niveles de normalización. Identificar el procedimiento para realizar la normalización de un modelo de datos empleando la 1FN, 2FN y 3FN.

Normalizar un modelo de datos.

Analítico Hábil para el trabajo en equipo Disciplinado Sistemático Organizado Proactivo Hábil para comunicarse de forma oral y escrita Capaz de sintetizar

Resultado de aprendizaje: Elaborará un reporte a partir de un modelo relacional, que incluya:

El procedimiento de la Normalización empleando hasta la 3FN.

Modelo normalizado en la 3FN.

Definición de restricciones de integridad, de acuerdo al modelo.

4.1 Restricciones de Integridad.

Las restricciones de integridad garantizan que el contenido de la base de datos es conforme con las reglas establecidas para presentar el Universo del Discurso. La integridad de una base de datos significa la existencia de dos componentes importantes que son la exactitud y la completitud. Es decir, que la integridad de base de datos garantiza que todos los datos son correctos (validos) y relevantes.

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

52

Existen una serie de características de una relación que han de cumplirse obligatoriamente, por lo que se trata de restricciones inherentes, y estas son las siguientes:

No hay dos tuplas iguales (de donde se deduce la obligatoriedad de la clave primaria).

El orden de las tuplas no es significativo.

El orden de los atributos no es significativo.

Cada atributo sólo puede tomar un único valor del dominio sobre el que está definido, no admitiendo por tanto los grupos repetitivos.

Ningún atributo que forme parte de la clave primaria de una relación puede tomar un valor nulo.

4.2 Restricciones Semánticas.

Las restricciones semánticas son facilidades que el modelo ofrece a los usuarios a fin de que éstos puedan reflejar en el esquema, lo más fielmente posible, la semántica del mundo real.

Sin embargo, estas restricciones semánticas, no son muchas veces suficientes para captar toda la semántica del universo del discurso que se está tratando de modelar.

Las principales restricciones semánticas del modelo relacional son las siguientes:

Clave primaria: La declaración de un atributo como clave primaria de una relación es una restricción semántica que responde a la necesidad del usuario de imponer que los valores del conjunto de atributos que constituyen la llave primaria no se repitan en la relación ni tampoco tomen valores nulos.

Unicidad (UNIQUE): mediante la cual se indica que los valores de un conjunto de atributos no pueden repetirse en una relación. Esta restricción permite la definición de claves alternativas.

Obligatoriedad (NOT NULL): se indica que el conjunto de atributos no admite valores nulos.

Integridad referencial (FOREIGN KEY): Todo el valor de llave foránea debe concordar con un valor de la clave primaria referenciada.

4.3 Integridad Referencial

Establece que una tupla de relación que haga referencia a otra relación debe referirse a una tupla existente en esa relación. En otras palabras: La integridad referencial requiere que una llave externa contenga ya sea un valor nulo o la llave de una tupla dominante existente de la entidad a la que hace referencia.

La integridad referencial es importante porque las llaves externas son el único mecanismo para mantener relaciones. Por consiguiente la integridad referencial protege contra errores que puedan alterar relaciones legítimas o crear agrupaciones no validas

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

53

La integridad referencial es una importante restricción semántica que viene impuesta por el mundo real, siendo el usuario quien la define al describir el esquema relacional, y el modelo la reconoce sin necesidad de que se programa ni de que se tenga que escribir ningún procedimiento para obligar a su cumplimiento.

Además de definir las claves ajenas, hay que determinar las consecuencias que pueden tener ciertas operaciones (borrar y modificar) realizadas sobre las tuplas de la relación referenciada; pudiendo distinguir las siguientes opciones:

Operación restringida: el borrado de las tuplas de la relación que contiene la clave referenciada sólo se permite si no existen tuplas con ese valor en la relación que contiene la clave ajena.

Operación con transmisión en cascada (CASCADE): el borrado de tuplas de la relación que contiene la clave candidata referenciada, lleva consigo el borrar en cascada las tuplas de la relación que contiene la clave ajena.

Operación con puesta a nulos (SET NULL): el borrado de tuplas de la relación que contiene la clave candidata referenciada lleva consigo poner a nulos los valores de las claves ajenas de la relación que referencia. Esta opción sólo es posible cuando el atributo que es clave ajena admite valores nulos.

Operación con puesta a valor por defecto (SET DEFAULT): el borrar tuplas de la relación que contiene la clave candidata referenciada lleva consigo poner el valor por defecto a la clave ajena de la relación que referencia, valor por defecto que habría sido definido al crear la tabla correspondiente.

Existen otras restricciones llamadas de rechazo, en las que el usuario formula una condición mediante un predicado definido sobre un conjunto de atributos de tuplas o de dominios, el cual debe ser verificado por los correspondientes objetos en toda operación de actualización para que el nuevo estado constituya una ocurrencia válida del esquema; en caso de que la operación intente violar la condición se impide que la operación se lleve a cabo (es decir, se produce un rechazo de la operación).

Se pueden distinguir dos restricciones de rechazo, según la condición afecte a un único elemento de la base de datos o a más de uno.

Verificación (CHECK): comprueba, en toda operación de actualización, si el predicado es cierto o falso y en el segundo caso, rechaza la operación. Estas restricciones se definen sobre un único elemento y puede o no tener nombre.

Aserción (ASSERTION): actúa de forma idéntica a la anterior, pero a diferencia de ella se puede afectar a varios elementos y su definición por tanto, no va unida a la de un determinado elemento, por lo que siempre ha de tener un nombre, ya que la aserción es un elemento más del esquema que tiene vida por sí mismo.

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

54

4.4 Integridad De Entidad.

Establecen que ningún valor de clave primaria puede ser nulo, esto es porque el valor de la clave primaria se usa para identificar las tuplas

Debido a que un valor clave es sustituto fundamental para una tupla, es razonable insistir en que los valores clave nunca sean nulos. Esta restricción se denomina integridad de entidad.

La integridad de entidad requiere que una tupla nunca deba contener valores nulos en sus atributos de llave.

4.5 Normalización de Base de Datos

Normalización es un proceso que clasifica relaciones, objetos y formas de relación, en base a las características que cada uno posee. Si se identifican ciertas reglas se aplica una categoría; si no cumplen las reglas, se descomponen repartiendo sus atributos entre esquemas de relación más pequeños que cumplen las condiciones establecidas.

Objetivos de la normalización de un diseño:

Eliminar anomalías de actualización.

Conservar la información (descomposición sin pérdida de información).

Conservar las dependencias funcionales.

No crear dependencias nuevas o interrelaciones inexistentes.

Facilidad de uso.

Eficiencia.

Ventajas de la normalización:

La cantidad de espacio requerido para almacenar los datos es la menor posible.

Evita anomalías en inserciones, modificaciones y borrados.

Mejora la independencia de datos.

Mayor rapidez en la ordenación y en la creación de índices.

Menos índices por tabla.

Evita restricciones artificiales en la estructura de los datos.

Por ejemplo:

Normalización CERO (No aplicada ninguna regla de normalización)

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

55

usuarios

nombre empresa direccion_empresa url1 url2

Joe ABC 1 Work Lane abc.com xyz.com

Jill XYZ 1 Job Street abc.com xyz.com

Observe los campos url1 y url2 ¿Qué haremos cuando en nuestra aplicación necesitemos una tercera url? ¿Quieres tener que añadir otro campo/columna a tu tabla y tener que reprogramar toda la entrada de datos? Obviamente no, se debe crear sistema funcional que pueda crecer y adaptarse fácilmente a los

nuevos requisitos.

4.5.1 Primera Forma Normal (1FN)

Los datos tienen que ser atómicos.

Eliminar los grupos repetitivos de las tablas individuales.

Crear una tabla separada por cada grupo de datos relacionados.

Identificar cada grupo de datos relacionados con una clave primaria.

Sin embargo se está rompiendo un punto de la 1FN cuando repetimos los campos url1 y url2, también se repite la clave primaria. La regla tres básicamente significa que tenemos que poner un campo tipo contador autoincrementable para cada registro. De otra forma, si tuviéramos dos usuarios llamados de la misma forma como los diferenciaríamos. Una vez que se aplica el primer nivel de F/N tenemos la siguiente tabla:

Usuarios

user_id nombre empresa dirección_empresa url

1 Joe ABC 1 work lane abc.com

1 Joe ABC 1 work lane Xyz.com

2 Jill XYZ 1 job street abc.com

2 Jill XYZ 1 job street Xyz.com

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

56

4.5.2 Segunda Forma Normal (2FN)

Crear tablas separadas para aquellos grupos de datos que se aplican a varios registros.

Relacionar estas tablas mediante una clave externa.

Hemos separado el campo url en otra tabla, de forma que podemos añadir más en el futuro si tener que duplicar los demás datos. También vamos a usar nuestra clave primaria para relacionar estos campos:

Ahora se tienen tablas separadas y la clave primaria en la tabla usuarios, user_id, está relacionada ahora con la clave externa en la tabla urls, relUserId. Pero si quiere añadir otro empleado a la empresa ABC, se duplicarían el nombre de la empresa y su dirección, entonces se aplica la 3FN.

4.5.3 Tercera Forma Normal (3FN).

Eliminar aquellos campos que no dependan de la clave.

Empresa

emprId empresa direccion_empresa

1 ABC 1 work lane

2 XYZ 1 job street

usuarios

user_id nombre relEmpresaId

1 Joe 1

2 Jill 2

urls

url_id relUserId url

1 1 abc.com

2 1 xyz.com

3 2 abc.com

4 2 xyz.com

Usuarios

user_id nombre empresa direccion_empresa

1 José ABC 1 work lane

2 María XYZ 1 job street

Urls

url_id RelUserId url

1 1 abc.com

2 1 xyz.com

3 2 abc.com

4 2 xyz.com

empresa

emprId empresa direccion_empresa

1 ABC 1 work lane

2 XYZ 1 job street

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

57

Ahora las tablas de usuarios y urls pueden crecer todo lo que quieran sin duplicación ni corrupción de datos. La mayoría de los desarrolladores dicen que el tercer nivel de F/N es suficiente, que nuestro esquema de datos puede manejar fácilmente los datos obtenidos de una cualquier empresa en su totalidad, y en la mayoría de los casos esto será cierto.

Sin embargo en nuestra tabla urls, el campo url tiene valores duplicados. Esto es perfectamente aceptable si la entrada de datos de este campo es solicitada al usuario en nuestra aplicación para que teclee libremente su url, y por lo tanto es sólo una coincidencia que Joe y Jill teclearon la misma url. ¿Pero qué pasa si en lugar de entrada libre de texto usáramos un menú desplegable con 20 o incluso más urls predefinidas? Entonces tendríamos que llevar nuestro diseño de BD al siguiente nivel de F/N, el cuarto, muchos desarrolladores lo pasan por alto porque depende mucho de un tipo muy específico de relación, la relación 'varios-con-varios', la cual aún no hemos encontrado en nuestra aplicación.

Observa las tablas de la 1FN. Suponemos que ponemos el campo url en una tabla separada, y cada vez que introducimos un registro en la tabla usuarios también introducimos una sola fila en la tabla urls. Entonces tendríamos una relación uno-a-uno: cada fila en la tabla usuarios tendría exactamente una fila correspondiente en la tabla urls. Para los propósitos de nuestra aplicación no sería útil la normalización.

En la 2FN. Nuestras tablas permiten a un sólo usuario tener asociadas varias urls. Esta es una relación uno-con-varios, el tipo de relación más común, y hasta que se nos presentó el dilema del Tercer Nivel de F/N. la única clase de relación que necesitamos.

La relación varios-con-varios, sin embargo, es ligeramente más compleja. Observa en nuestro ejemplo del Tercer Nivel de F/N que tenemos a un usuario relacionado con varias urls. Como dijimos, vamos a cambiar la estructura para permitir que varios usuarios estén relacionados con varias urls y así tendremos una relación varios-con-varios. Veamos como quedarían nuestras tablas antes de seguir con este planteamiento:

usuarios

user_id nombre relEmpresaId

1 Joe 1

2 Jill 2

url_relations

relationId relatedUrlId relatedUsedId

1 1 1

2 1 2

3 2 1

4 2 2 Urls

urlId url

1 abc.com

2 xyz.com

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

58

Para disminuir la duplicación de los datos, hemos creado una tabla que sólo tiene claves externas y primarias url_relations. Hemos sido capaces de remover las entradas duplicadas en la tabla urls creando la tabla url_relations.

4.6 Actividad 5 Normalización INSTRUCCIONES

De los ejercicios propuestos en la actividad 4. Una vez creado el modelo Relacional del ejercicio de la actividad 4 asignado por el maestro de grupo aplique las formas normales (como mínimo las tres primeras).

INDICADOR O

VARIABLE DESCRIPCIÓN

CUMPLE

SÍ NO PORCENTAJE

FORMA

Puntualidad Entrega en tiempo y forma establecida 10

Aspectos generales

La forma de entrega es la siguiente:

Elabore el documento en un archivo de Word estructurado de la siguiente manera:

- Portada - Planteamiento del problema (dado

en el ejercicio 4). - Modelo Entidad - Relación ó Entidad

Relación – Extendido según sea el caso

- Transformación al Modelo relacional - Aplicación de las tres formas

normales. El documento debe reflejar perfectamente la separación de las tres formas normales

- Conclusión

25

CONTENIDO

Presentación Aplica las reglas de normalización 50

Desarrollo Organiza su información para tener la correcta relación de los conceptos

10

Representación Representa de manera correcta los conceptos

5

TOTAL 100

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

59

UNIDAD TEMÁTICA 5 SISTEMA GESTOR DE BASES DE DATOS (SGBD)

Objetivo: El alumno realizará la gestión de la BD a través de un SGBD para aprender su funcionamiento.

Temas Saber Saber hacer Ser

Fundamentos de los SGBD.

Definir el concepto, características y tipos de SGBD. Identificar los principales SGBD.

Seleccionar el SGBD de acuerdo a las necesidades del proyecto.

Analítico Hábil para el trabajo en equipo Disciplinado Sistemático Organizado Proactivo Capaz de sintetizar

Manipulación de una BD.

Identificar el entorno de desarrollo del SGBD. Identificar los procedimientos para manipular una base de datos empleando el SGBD.

Manipular una base de datos a través de un SGBD.

Analítico Hábil para el trabajo en equipo Disciplinado Sistemático Organizado Proactivo Capaz de sintetizar

Resultado de aprendizaje: Realizará un documento que incluya ejercicios prácticos de manipulación de una base de datos a través

de un SGB:

Creación, modificación y eliminación de una base de datos.

Creación, modificación y eliminación de una tabla.

Creación, modificación y eliminación de datos.

5.1 Fundamentos de los SGBD

El sistema de gestión de la base de datos (SGBD) es una aplicación que permite a los usuarios definir, crear y mantener la base de datos, y proporciona acceso controlado a la misma.

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

60

Propósito:

El propósito general de los sistemas de gestión de base de datos es el de manejar de manera clara, sencilla y ordenada un conjunto de datos.

Objetivos:

Existen distintos objetivos que deben cumplir los SGBD:

Abstracción de la información. Los SGBD ahorran a los usuarios detalles acerca del almacenamiento físico de los datos. Da lo mismo si una base de datos ocupa uno o cientos de archivos, este hecho se hace transparente al usuario.

Independencia. La independencia de los datos consiste en la capacidad de modificar el esquema (físico o lógico) de una base de datos sin tener que realizar cambios en las aplicaciones que se sirven de ella.

Redundancia mínima. Un buen diseño de una base de datos logrará evitar la aparición de información repetida o redundante. De entrada, lo ideal es lograr una redundancia nula; no obstante, en algunos casos la complejidad de los cálculos hace necesaria la aparición de redundancias.

Consistencia. En aquellos casos en los que no se ha logrado esta redundancia nula, será necesario vigilar que aquella información que aparece repetida se actualice de forma coherente, es decir, que todos los datos repetidos se actualicen de forma simultánea.

Seguridad. La información almacenada en una base de datos puede llegar a tener un gran valor. Los SGBD deben garantizar que esta información se encuentra asegurada frente a usuarios malintencionados, que intenten leer información privilegiada; frente a ataques que deseen manipular o destruir la información; o simplemente ante las torpezas de algún usuario autorizado pero despistado. Normalmente, los SGBD disponen de un complejo sistema de permisos a usuarios y grupos de usuarios, que permiten otorgar diversas categorías de permisos.

Integridad. Se trata de adoptar las medidas necesarias para garantizar la validez de los datos almacenados. Es decir, se trata de proteger los datos ante fallos de hardware, datos introducidos por usuarios descuidados, o cualquier otra circunstancia capaz de corromper la información almacenada.

Respaldo y recuperación. Los SGBD deben proporcionar una forma eficiente de realizar copias de seguridad de la información almacenada en ellos, y de restaurar a partir de estas copias los datos que se hayan podido perder.

Control de la concurrencia. En la mayoría de entornos (excepto quizás el doméstico), lo más habitual es que sean muchas las personas que acceden a una base de datos, bien para recuperar información, bien para almacenarla. Y es también frecuente que dichos accesos se realicen de forma simultánea. Así pues, un SGBD debe controlar este acceso concurrente a la información, que podría derivar en inconsistencias.

Tiempo de respuesta. Lógicamente, es deseable minimizar el tiempo que el SGBD tarda en darnos la información solicitada y en almacenar los cambios realizados.

El SGBD es también conocido como Manejador de Bases de Datos o DBMS por sus siglas en Inglés.

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

61

La figura muestra el SGBD denotado por DBMS como interfase entre la base de datos física y las peticiones del usuario. El SGBD interpreta las peticiones de entrada/salida del usuario y las manda al sistema operativo para la transferencia de datos entre la unidad de memoria secundaria y la memoria principal.

En sí, un sistema gestor de base de datos es el corazón de la base de datos ya que se encarga del control total de los posibles aspectos que la puedan afectar.

Todos los SGBD no presentan la misma funcionalidad, depende de cada producto existen SGBD libres y comerciales entre los más comunes tenemos:

SGBD libres:

PostgreSQL MySQL Firebird SQLite Sybase ASE Express Edition para Linux (Edición gratuita para Linux)

SGBD comerciales:

dBase FileMaker Fox Pro IBM DB2 Universal Database (DB2 UDB) IBM Informix MAGIC Microsoft SQL Server Open Access Oracle Paradox PervasiveSQL Progress (DBMS) Sybase ASE Sybase ASA

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

62

Sybase IQ WindowBase

5.2 Ventajas De Un SGBD

Ventajas:

1. Facilidad de manejo de grandes volúmenes de información. 2. Gran velocidad en muy poco tiempo. 3. Independencia del tratamiento de información. 4. Seguridad de la información (acceso a usuarios autorizados), protección de información, de

modificaciones, inclusiones, consulta. 5. No hay duplicidad de información, comprobación de información en el momento de introducir la

misma. 6. Integridad referencial el terminar los registros.

Inconvenientes:

1. El costo de actualización del hardware y software son muy elevados. 2. Costo (salario) del administrador de la base de datos es costoso. 3. El mal diseño de esta puede originar problemas a futuro. 4. Un mal adiestramiento a los usuarios puede originar problemas a futuro. 5. Si no se encuentra un manual del sistema no se podrán hacer relaciones con facilidad. 6. Generan campos vacíos en exceso. 7. El mal diseño de seguridad genera problemas en esta.

5.3 Estructura Global De Un Sistema De Base De Datos

Un sistema de base de datos se encuentra dividido en módulos cada uno de los cuales controla una parte de la responsabilidad total de sistema. En la mayoría de los casos, el sistema operativo proporciona únicamente los servicios más básicos y el sistema de la base de datos debe partir de esa base y controlar además el manejo correcto de los datos. Así el diseño de un sistema de base de datos debe incluir la interfaz entre el sistema de base de datos y el sistema operativo.

Los componentes funcionales de un sistema de base de datos, son:

Gestor de archivos. Gestiona la asignación de espacio en la memoria del disco y de las estructuras de datos usadas para representar información.

Manejador de base de datos. Sirve de interfaz entre los datos y los programas de aplicación. Procesador de consultas. Traduce las proposiciones en lenguajes de consulta a instrucciones de

bajo nivel. Además convierte la solicitud del usuario en una forma más eficiente. Compilador de DDL. Convierte las proposiciones DDL en un conjunto de tablas que contienen

metadatos, estas se almacenan en el diccionario de datos.

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

63

Archivo de datos. En él se encuentran almacenados físicamente los datos de una organización. Diccionario de datos. Contiene la información referente a la estructura de la base de datos. Índices. Permiten un rápido acceso a registros que contienen valores específicos.

Una forma gráfica de representar los componentes antes mencionados y la relación que existe entre ellos sería la siguiente.

El SGBD es la aplicación que interacciona con los usuarios de los programas de aplicación y la base de datos. En general, un SGBD proporciona los siguientes servicios:

Permite la definición de la base de datos mediante el lenguaje de definición de datos. Este lenguaje permite especificar la estructura y el tipo de los datos, así como las restricciones sobre los datos. Todo esto se almacenará en la base de datos.

Permite la inserción, actualización, eliminación y consulta de datos mediante el lenguaje de manejo de datos. El hecho de disponer de un lenguaje para realizar consultas reduce el problema de los sistemas de archivos, en los que el usuario tiene que trabajar con un conjunto fijo de consultas, o bien, dispone de un gran número de programas de aplicación costosos de gestionar.

Proporciona un acceso controlado a la base de datos mediante:

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

64

o un sistema de seguridad, de modo que los usuarios no autorizados no puedan acceder a la base de datos;

o un sistema de integridad que mantiene la integridad y la consistencia de los datos; o un sistema de control de concurrencia que permite el acceso compartido a la base de

datos; o un sistema de control de recuperación que restablece la base de datos después de que

se produzca un fallo del hardware o del software; o un diccionario de datos o catálogo accesible por el usuario que contiene la descripción de

los datos de la base de datos.

A diferencia de los sistemas de archivos, el SGBD gestiona la estructura física de los datos y su almacenamiento. Con esta funcionalidad, el SGBD se convierte en una herramienta de gran utilidad. Sin embargo, desde el punto de vista del usuario, se podría discutir que los SGBD han hecho las cosas más complicadas, ya que ahora los usuarios ven más datos de los que realmente quieren o necesitan, puesto que ven la base de datos completa. Conscientes de este problema, los SGBD proporcionan un mecanismo de vistas que permite que cada usuario tenga su propia vista o visión de la base de datos. El lenguaje de definición de datos permite definir vistas como subconjuntos de la base de datos.

Las vistas, además de reducir la complejidad permitiendo que cada usuario vea sólo la parte de la base de datos que necesita, tienen otras ventajas:

Las vistas proporcionan un nivel de seguridad, ya que permiten excluir datos para que ciertos usuarios no los vean.

Las vistas proporcionan un mecanismo para que los usuarios vean los datos en el formato que deseen.

Una vista representa una imagen consistente y permanente de la base de datos, incluso si la base de datos cambia su estructura.

5.3 Actividad 6 Sistema Gestor de Base de Datos INSTRUCCIONES

Genere un mapa mental o conceptual con los conceptos vistos en la unidad

INDICADOR O

VARIABLE DESCRIPCIÓN

CUMPLE

SÍ NO PORCENTAJE

FORMA

Puntualidad Entrega en tiempo y forma establecida 10

Aspectos generales

La forma de entrega es la siguiente:

Elabore el documento en un archivo de Word estructurado de la siguiente manera:

- Portada - Aplicación del mapa mental

25

CONTENIDO

Presentación Aplica los conceptos vistos en la unidad 50

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

65

Desarrollo Organiza su información para tener la correcta relación de los conceptos

10

Representación Representa de manera correcta los conceptos

5

TOTAL 100

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

66

Unidad Temática 6 Lenguaje de Definición de Datos (SQL-DDL)

Objetivo: El alumno construirá una BD utilizando el Lenguaje de Definición de Datos (DDL) para la creación y modificación de su esquema

Temas Saber Saber hacer Ser

Introducción a SQL. Identificar el concepto y funcionalidad del SQL. Identificar las características de los lenguajes de DDL y DML.

Analítico Hábil para el trabajo en equipo Disciplinado Sistemático Organizado Proactivo Hábil para comunicarse de forma oral y escrita

Creación del esquema de una BD.

Identificar las cláusulas y sintaxis del DDL para la creación de BD (crea base de datos, crea tabla, creación de índice, definición de restricciones, definición de llave primaria y foránea) y vistas.

Crear el esquema de una BD a través del Lenguaje SQL.

Analítico Hábil para el trabajo en equipo Disciplinado Sistemático Organizado Proactivo

Modificación del esquema de una BD.

Identificar las cláusulas y sintaxis del DDL para la modificación de BD (alter y drop).

Modificar el esquema de la BD mediante el Lenguaje SQL.

Analítico Hábil para el trabajo en equipo Disciplinado Sistemático Organizado Proactivo

Resultado de aprendizaje: Realizará un documento que incluya ejercicios prácticos de manipulación de una base de datos a través

de un SGB:

Creación, modificación y eliminación de una base de datos.

Creación, modificación y eliminación de una tabla.

Creación, modificación y eliminación de datos.

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

67

6.1 Componentes del SQL

El lenguaje SQL está compuesto por comandos, cláusulas, operadores y funciones de agregado. Estos elementos se combinan en las instrucciones para crear, actualizar y manipular las bases de datos.

Existen dos tipos de comandos SQL:

Los DLL que permiten crear y definir nuevas bases de datos, campos e índices.

Los DML que permiten generar consultas para ordenar, filtrar y extraer datos de la base de datos.

Comandos DLL

Comando Descripción

CREATE Utilizado para crear nuevas tablas, campos e índices

DROP Empleado para eliminar tablas e índices

ALTER Utilizado para modificar las tablas agregando campos o cambiando la definición de los campos.

Comandos DML

Comando Descripción

SELECT Utilizado para consultar registros de la base de datos que satisfagan un criterio determinado

INSERT Utilizado para cargar lotes de datos en la base de datos en una única operación.

UPDATE Utilizado para modificar los valores de los campos y registros especificados

DELETE Utilizado para eliminar registros de una tabla de una base de datos

Cláusulas

Las cláusulas son condiciones de modificación utilizadas para definir los datos que desea seleccionar o manipular.

Cláusula Descripción

FROM Utilizada para especificar la tabla de la cual se van a seleccionar los registros

WHERE Utilizada para especificar las condiciones que deben reunir los registros que se van a seleccionar

GROUP BY Utilizada para separar los registros seleccionados en grupos específicos

HAVING Utilizada para expresar la condición que debe satisfacer cada grupo

ORDER BY Utilizada para ordenar los registros seleccionados de acuerdo con un orden específico

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

68

6.2 Comandos DDL

6.2.1 Creación de una Base de Datos

Primeramente podemos consultar cual de las bases de datos tenemos ya creadas. Para ello utilizamos el comando SHOW. Todos los comandos SQL terminan con un punto y coma (;).

Ejemplo: mysql> SHOW DATABASES; +----------+ | Database | +----------+ | mysql | | test |

+------------------+

Ahora Utilizando el comando CREATE DATABASE, es como construimos una nueva Base de Datos. Debemos asignar el identificador de la base de datos delante del comando. mysql> CREATE DATABASE zoologico;

Query OK, 1 row affected (0.00 sec)

Al verificar utilizamos nuevamente el comando SHOW: mysql> SHOW DATABASES; +----------+ | Database | +----------+ | mysql | | test | | zoologico|

+------------------+

6.2.2 Creación de una Tabla

El comando CREATE TABLE se utiliza para la creación de tablas dentro de una base de datos. Su sintaxis es la siguiente:

CREATE TABLE table_name ( column_name1 data_type, column_name2 data_type,

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

69

column_name3 data_type, .... );

Dónde table_name, es el identificador de la nueva tabla. column_name1, es el nombre del atributo o identificador del primer campo de la tabla. Y finalmente data_type, es el tipo de dato para cada columna o atributo.

Ejemplo:

CREATE TABLE Personas (

Id_P int, nombre varchar(255), apellido varchar(255), dirección varchar(255), Ciudad varchar(255) );

6.2.3 Tipos de Datos.

Numéricos exactos

bigint

bit

decimal

int

money

numeric

smallint

smallmoney

tinyint

Numéricos aproximados

float

real

Fecha y Hora

date

datetime

datetime2

datetimeoffset

smalldatetime

time

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

70

Cadena de caracteres

char

text

varchar

Cadena de caracteres unicode

nchar

ntext

nvarchar

Cadenas binarias

binary

image

varbinary

6.2.4 Restricción NOT NULL.

La restricción NOT NULL, obliga a una columna a no aceptar valores nulos. Es decir, el campo está siempre obligado a contener un valor, lo impide que no se pueda agregar un registro o actualizar sin colocar un valor en éste campo.

Ejemplo:

CREATE TABLE Personas (

Id_P int NOT NULL, nombre varchar(255) NOT NULL, apellido varchar(255), dirección varchar(255), Ciudad varchar(255) );

6.2.5 Restricción PRIMARY KEY

La restricción PRIMARY KEY, identifica de manera única a cada registro dentro de una tabla. El campo primario debe contener valores únicos, no puede contener valores nulos. Cada tabla debe tener siempre un campo primario y solo uno.

Ejemplo 1:

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

71

CREATE TABLE Personas (

Id_P int NOT NULL, nombre varchar(255) NOT NULL, apellido varchar(255), dirección varchar(255), Ciudad varchar(255),

PRIMARY KEY (Id_P) );

Ejemplo 2:

CREATE TABLE Personas (

Id_P int NOT NULL PRIMARY KEY, nombre varchar(255) NOT NULL, apellido varchar(255), dirección varchar(255), Ciudad varchar(255) );

6.2.6 Restricción FOREIGN KEY

Un campo Foreign Key de una tabla apunta a un campo Primary Key de otra tabla. Esta restricción previene la inserción de datos no válidos en el campo Ferign Key, ya que sus valores tienen que corresponder a uno de los valores del campo al que apunta.

Ejemplo:

CREATE TABLE Orden ( Id_orden int NOT NULL, NoOrden int NOT NULL, Id_P int, PRIMARY KEY (Id_orden), FOREIGN KEY (Id_P) REFERENCES Personas (Id_P) );

Donde Id_P es también el campo primary key de la tabla personas.

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

72

6.2.7 Eliminar una Base de Datos o una Tabla

Con el comando DROP, podemos eliminar el esquema de una base de datos. Por ejemplo borrar una tabla:

DROP TABLE table_name;

Donde table_name es el nombre de la tabla a eliminar.

O bien eliminar una basa de datos completamente.

DROP DATABASE database_name;

Donde database_name es el nombre de la Base de Datos a eliminar.

6.2.8 Modificar una Tabla dentro de una Base de Datos.

La sentencia ALTER TABLE, se utiliza para agregar, borrar o modificar columnas en una tabla existente.

Sintaxis para agregar una columna:

ALTER TABLE table_name ADD column_name datatype;

Donde: table_name, es el nombre de la tabla a modificar y column_name es la columna a agregar

especificando el tipo de datos para la nueva columna datatype.

Sintaxis para borrar una columna:

ALTER TABLE table_name

DROP COLUMN column_name

Sintaxis para cambiar el tipo de datos para una columna.

ALTER TABLE table_name

ALTER COLUMN column_name datatype;

Donde column_name es la columna a modificar y datatype es el nuevo tipo de datos para esa

columna.

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

73

6.2.9 Verificar la estructura de una tabla.

Para poder constatar que nuestra tabla se ha creado tal y como se ha indicado, utilizaremos el comando DESCRIBE.

Ejemplo:

mysql> DESCRIBE personas;

Field Type Null Key Default Extra

Id_P int(11) NO PRI NULL

nombre varchar(255) NO

NULL

apellido varchar(255) YES

NULL

dirección varchar(255) YES

NULL

Ciudad varchar(255) YES

NULL

6.3 Práctica 2 Creación, modificación y eliminación de una BD y de una tabla.

NOMBRE DE LA PRÁCTICA: Creación, modificación y eliminación de una base de datos. Y de una tabla.

UNIDAD TEMÁTICA: Lenguaje de Definición de Datos

TEMA: Creación, modificación y eliminación de una base de datos

OBJETIVO DE LA PRÁCTICA: El aprenda los conceptos básicos de para la manipulación de una base de datos.

TIEMPO DE LA PRÁCTICA: 2 Hrs FECHA:

DESCRIPCIÓN:

El alumno realizará la creación de la tabla mascotas, utilizando su usuario y la base de datos llamada iniciobase. La información de la tabla mascota será: Nombre de la mascota que será de tipo carácter de 20, propietario de la mascota que será igual carácter y de una longitud de 20, la especia de la mascota tipo carácter de 20 de longitud, sexo, carácter de 1, nacimiento y fallecimiento, que corresponden a la fecha de nacimiento y fallecimiento del animalito, la cual va a ser de tipo fecha.

MATERIALES Y EQUIPOS: Computadora

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

74

PROCEDIMIENTO: En primer lugar entrar al monitor MySQL, escriba la instrucción: Mysql –u root –mysql

Crearemos una base de datos con el nombre de: iniciobase.

create database iniciobase;

Sí la instrucción es correcta le debe de aparecer la siguiente oración:

Query OK, 1 row affected (0.00 sec)

La cual indica que la base de datos ha sido creada con éxito. Como se ve a continuación:

Mostraremos las bases de datos que este usuario tiene asignadas:

SHOW DATABASES;

Para poder trabajar sobre la base de datos creada utililice el siguiente comando:

USE iniciobase;

Para proceder ahora a crear la tabla mascotas utilice la siguiente sintaxis:

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

75

Utilizaremos el comando SHOW TABLES para comprobar que se ha creado la tabla mascotas.

Y para conocer la estructura que esta tabla almaceno utilizaremos el comando

DESCRIBE mascotas;

Para borrar la base de datos “iniciobase” utilize el siguiente comando: DROP DATABASE iniciobase; Muestre las bases de datos con las cuales cuenta con el siguiente comando: SHOW DATABASES; Crearemos una segunda base de datos llamada “nomina” Una vez creada la base de datos NOMINA, la seleccionaremos para poder crear en ella la tabla empleado:

Una vez activada la base de datos NOMINA crearemos la tabla empleado indicando que no se permitirán valores nulos para el atributo idempleado y que este mismo atributo es la llave

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

76

primaria. La claúsula not null es obligatoria para los atributos que forman parte de una llave primaria:

Create table empleado ( -> idempleado mediumint unsigned not null, -> nombre varchar(20), -> sueldo int unsigned, -> primary key(idempleado)); Muestre una lista de las tablas existentes en la base de datos. Muestre la descripción de la tabla empleado. Por último muestre las bases de datos con las cuales cuenta.

CUESTIONARIO

REFERENCIAS

LISTA DE COTEJO PRÁCTICA 2

INDICADOR O

VARIABLE DESCRIPCIÓN

CUMPLE PORCENTAJE

SI NO

ACTITUD (SER) Puntualidad Entrega del trabajo tiempo y forma establecida 10

CONOCIMIENTO (SABER) Requisitos de Información

Identifica correctamente todos los comandos para realizar la práctica

40

HABILIDAD (SABER HACER)

Estructura Aplica con la sintaxis correcta los comandos para generar la práctica

40

TOTAL 100

EVALUACIÓN: LA AUSENCIA PARCIAL O TOTAL DE ALGÚN INCISO TENDRÁ UNA PENALIZACIÓN ACORDE A LA

PUNTUACIÓN SEÑALADA EN CADA INCISO

OBSERVACIÓN:

EVALUADOR

(NOMBRE Y

FIRMA)

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

77

6.4 Práctica 3 Creación, modificación y eliminación de una BD y de una tabla.

NOMBRE DE LA PRÁCTICA: Creación, modificación y eliminación de una base de datos. Y de una tabla.

UNIDAD TEMÁTICA: Lenguaje de Definición de Datos

TEMA: Creación, modificación y eliminación de una base de datos

OBJETIVO DE LA PRÁCTICA: El aprenda los conceptos básicos de para la manipulación de una base de datos.

TIEMPO DE LA PRÁCTICA: 2 Hrs FECHA:

DESCRIPCIÓN:

Utilice la base de datos creada en la práctica de la unidad V “nomina” y cree las tablas faltantes para que su BD quede como siguiente:

Empleado

Trabaja

Depto

PK idEmpleado mediumint

FK IdEmpleado mediumint

PK IdDepto mediumint

Nombre char (20)

FK IdDepto mediumint

Depto char (20)

Sueldo int

FechaIngreso Date

MATERIALES Y EQUIPOS: Computadora con programa MYSQL

PROCEDIMIENTO: Entrar al monitor MySQL, escriba la instrucción: Mysql –u root –mysql

Cargue la base de datos nomina: USE nomina;

Muestres las tablas que tiene hasta ahora en su base de datos: SHOW TABLES;

Muestre la estructura de la tabla Empleado: DESCRIBE empleado;

Borre la tabla Empleado para definirla indicando que no se permitirán valores nulos para el atributo idempleado y que este mismo atributo es la llave primaria. La claúsula not null es obligatoria para los atributos que forman parte de una llave primaria:

Create table empleado ( -> idempleado mediumint unsigned not null, -> nombre varchar(20), -> sueldo int unsigned, -> primary key(idempleado));

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

78

Genere las tablas faltantes (trabaja y Depto) de la siguiente manera:

CREATE TABLE Depto (IdDepto mediumint primary key, Depto char(20)); CREATE TABLE Trabaja (FechaIngreso date, IdEmpleado mediumint, index(IdEmpleado), foreign key (IdEmpleado) references Empleado(IdEmpleado), IdDepto mediumint, index(IdDepto), foreign key (IdDepto) references Depto(IdDepto)); type=Innodb; Utilice el comando SHOW TABLES; para visualizar las tablas que tiene ahora en su base de datos y el comando DESCRIBE; para visualizar la estructura de las tablas creadas. Ahora inserte datos a la tablas para que queden de la siguiente forma:

Empleado

Departamento

IdEmpleado Nombre Sueldo

IdDepto Depto

1 Juan Pérez Pérez 10000

1 Compras

2 Pedro Maldonado Torres 5000

2 Ventas

3 María Torres Ortíz 8500

3 Recursos Materiales

4 Carmen Salinas Juárez 13100

5 Carlos López López 9500

Trabaja

IdEmpleado IdDepto FechaIngreso

1 2 25-feb-10

2 2 14-may-08

3 3 10-ago-05

4 1 09-oct-11

5 1 04-dic-11

CUESTIONARIO

REFERENCIAS

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

79

LISTA DE COTEJO PRÁCTICA 3

INDICADOR O

VARIABLE DESCRIPCIÓN

CUMPLE PORCENTAJE

SI NO

ACTITUD (SER) Puntualidad Entrega del trabajo tiempo y forma establecida 10

CONOCIMIENTO (SABER) Requisitos de Información

Identifica correctamente todos los comandos para realizar la práctica

40

HABILIDAD (SABER HACER)

Estructura Aplica con la sintaxis correcta los comandos para generar la práctica

40

TOTAL 100

EVALUACIÓN: LA AUSENCIA PARCIAL O TOTAL DE ALGÚN INCISO TENDRÁ UNA PENALIZACIÓN ACORDE A LA

PUNTUACIÓN SEÑALADA EN CADA INCISO

OBSERVACIÓN:

EVALUADOR

(NOMBRE Y

FIRMA)

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

80

6.5 Actividad 7 Modificación de una tabla INSTRUCCIONES

Crea la base de datos empresa y la tabla empleado

Campo Tipo Longitud

CLAVE CHAR 5

NOMBRE CHAR 35

SUELDO INT

Telefono CHAR 30

Realice las siguientes actividades: 1. Cambiar el nombre de la columna NOMBRE por el de NOM: 2. Cambiar el nombre y el tipo del campo CLAVE: 3. Agregar la columna el campo ANTIGÛEDAD de tipo entero: 4. Renombrar el nombre de la tabla EMPLEADO por el de VENDEDOR: 5. Eliminar una columna

INDICADOR O

VARIABLE DESCRIPCIÓN

CUMPLE

SÍ NO PORCENTAJE

FORMA

Puntualidad Realiza la actividad en el tiempo establecido por el profesor

25

CONTENIDO

Presentación Aplica los conceptos vistos en la unidad 20

Desarrollo Los resultados son los esperados 55

TOTAL 100

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

81

UNIDAD TEMÁTICA 7 LENGUAJE DE MANIPULACIÓN DE DATOS (SQL-DML)

Objetivo: El alumno realizará scripts utilizando el Lenguaje de Manipulación de Datos (DML) para la actualización y consulta de información.

Temas Saber Saber hacer Ser

Consultas y vistas Identificar las cláusulas y sintaxis del DML para la generación de consultas, manejo de vistas y operaciones con los datos (select, view y funciones de agregado).

Realizar consultas y vistas de una base de datos con SQL.

Analítico Hábil para el trabajo en equipo Disciplinado Sistemático Organizado Proactivo Capaz de sintetizar

Instrucciones de actualización

Identificar las cláusulas y sintaxis del DML para la actualización de datos (insert, delete, update).

Actualizar la BD mediante SQL.

Analítico Hábil para el trabajo en equipo Disciplinado Sistemático Organizado Proactivo Capaz de sintetizar

Resultado de aprendizaje: Elaborará un cuadernillo que contenga los scripts para generar:

Consultas con funciones de agregado.

Inserción, eliminación y actualización de registros.

Creación, modificación y borrado de vistas.

7.1 Consultas Básicas

Técnicamente hablando, las consultas a la base de datos se realizan a través de un lenguaje de manipulación de datos (DML – Data Manipulation Language). La consulta básica en SQL es llamada

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

82

select – from – where El bloque de consulta tiene la siguiente forma: SELECT < lista de atributos> FROM < lista de tablas> WHERE <condición>

A la hora de usar la instrucción Select, debemos tener en cuenta que:

Ésta instrucción no modifica la base de datos ni su contenido.

Todos los sistemas que usan SQL , tiene esta instrucción disponible.

La sintaxis mínima de Select es Select * from Tabla. from se utiliza para especificar cuál de las tablas es la que vamos a usar

Ejemplo:

Si deseamos seleccionar el contenido de las columnas nombre y apellido_paterno, de la tabla Personas hacemos:

SELECT nombre, apellido_paterno FROM Personas;

Pero, si lo que necesitamos en seleccionar todas las columnas de la tabla persona, lo que escribimos es lo siguiente:

SELECT * FROM Personas;

7.2 Cláusula Insert.

Una vez creada la estructura de la base de datos, lo que sigue es poder insertar datos a las mismas tablas. En SQL, hay fundamental y básicamente dos formas para insertar datos en una tabla: Una es insertar una fila por vez, y la otra es insertar filas múltiples por vez.

La sintaxis para insertar datos en una tabla mediante una fila por vez es la siguiente:

INSERT INTO "nombre_tabla" ("columna1", "columna2",...) VALUES ("valor1", "valor2", ...)

Suponiendo que tenemos una tabla con la siguiente estructura,

Tabla Store_Information

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

83

Column Name Data Type

store_name char(50)

Sales float

Date datetime

y ahora deseamos insertar una fila adicional en la tabla que represente los datos de ventas para Los Ángeles el 10 de enero de 1999. En ese día, este negocio tenía $900 dólares estadounidenses en ventas. Por lo tanto, utilizaremos la siguiente escritura SQL:

INSERT INTO Store_Information (store_name, Sales, Date) VALUES ('Los Angeles', 900, '10-Jan-1999')

El segundo tipo de INSERT INTO nos permite insertar filas múltiples en una tabla. A diferencia del ejemplo anterior, donde insertamos una única fila al especificar sus valores para todas las columnas, ahora utilizamos la instrucción SELECT para especificar los datos que deseamos insertar en la tabla. Si está pensando si esto significa que está utilizando información de otra tabla, está en lo correcto. La sintaxis es la siguiente:

INSERT INTO "tabla1" ("columna1", "columna2", ...) SELECT "columna3", "columna4", ... FROM "tabla2"

Note que esta es la forma más simple. La instrucción entera puede contener fácilmente cláusulas WHERE, GROUP BY, y HAVING, así como también uniones y alias que se verán más adelante.

Entonces por ejemplo, si deseamos tener una tabla Store_Information, que recolecte la información de ventas para el año 1998, y ya conoce en donde reside la fuente de datos en tabla Sales_Information table, ingresaremos:

INSERT INTO Store_Information (store_name, Sales, Date) SELECT store_name, Sales, Date FROM Sales_Information WHERE Year(Date) = 1998

Aquí hemos utilizado la sintaxis de Servidor SQL para extraer la información anual por medio de una fecha. Otras bases de datos relacionales pueden tener sintaxis diferentes. Por ejemplo, en Oracle, utilizará to_char (date,'yyyy')=1998.

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

84

7.3 Cláusula Update

Una vez que hay datos en la tabla, podríamos tener la necesidad de modificar los mismos. Para hacerlo, utilizamos el comando UPDATE. La sintaxis para esto es,

UPDATE "nombre_tabla" SET "columna_1" = [nuevo valor] WHERE {condición}

Por ejemplo, digamos que actualmente tenemos la tabla a continuación:

Tabla Store_Information

store_name Sales Date

Los Angeles 1500 05-Jan-1999

San Diego 250 07-Jan-1999

Los Angeles 300 08-Jan-1999

Boston 700 08-Jan-1999

y notamos que las ventas para Los Ángeles el 08/01/1999 es realmente de 500 en vez de 300 dólares estadounidenses, y que esa entrada en particular necesita actualizarse. Para hacerlo, utilizamos el siguiente SQL:

UPDATE Store_Information SET Sales = 500 WHERE store_name = "Los Angeles" AND Date = "08-Jan-1999"

La tabla resultante se vería:

Tabla Store_Information

store_name Sales Date

Los Angeles 1500 05-Jan-1999

San Diego 250 07-Jan-1999

Los Angeles 500 08-Jan-1999

Boston 700 08-Jan-1999

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

85

En este caso, hay sólo una fila que satisface la condición en la cláusula WHERE. Si hay múltiples filas que satisfacen la condición, todas ellas se modificarán.

También es posible UPDATE múltiples columnas al mismo tiempo. La sintaxis en este caso se vería como la siguiente:

UPDATE "nombre_tabla" SET colonne 1 = [[valor1], colonne 2 = [valor2] WHERE {condición}

7.4 Cláusula Delete-From

A veces podemos desear deshacernos de los registros de una tabla. Para ello, utilizamos el comando DELETE FROM. La sintaxis para esto es,

DELETE FROM "nombre_tabla" WHERE {condición}

Por ejemplo, digamos que actualmente tenemos la siguiente tabla:

Tabla Store_Information

store_name Sales Date

Los Angeles 1500 05-Jan-1999

San Diego 250 07-Jan-1999

Los Angeles 300 08-Jan-1999

Boston 700 08-Jan-1999

y decidimos no mantener ninguna información sobre Los Ángeles en esta tabla. Para lograrlo, ingresamos lo siguiente:

DELETE FROM Store_Information WHERE store_name = "Los Angeles"

Ahora el contenido de la tabla se vería,

Tabla Store_Information

store_name Sales Date

San Diego 250 07-Jan-1999

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

86

Boston 700 08-Jan-1999

7.5 Consultas Especializadas

7.5.1 La cláusula SELECT

Una consulta es el método para acceder a los datos en las bases de datos. Con las consultas se puede modificar, borrar, mostrar y agregar datos en una base de datos. Para esto se utiliza un lenguaje de consultas. Una consulta SQL básica puede constar con un máximo de seis cláusulas, de las cuales sólo dos son obligatorias (SELECT y FROM). Las cláusulas se especifican en el siguiente orden: SELECT < lista de atributos > FROM < lista de tablas > WHERE < condición > GROUP BY < atributo(s) de agrupación > HAVING < condición de agrupación > ORDER BY < lista de atributos > Donde: SELECT: indica qué atributos o funciones se van a recuperar. FROM: especifica todas las relaciones (tablas) que se necesitan en la consulta. WHERE: especifica las condiciones, si es que hacen falta, para seleccionar tuplas de esas relaciones, incluyendo las condiciones de reunión. GROUP BY: especifica atributos de agrupación. HAVING: especifica una condición que deben cumplir los grupos seleccionados, no las tuplas individuales. Las funciones agregadas integradas COUNT, SUM, MIN, MAX y AVG se usan junto con la agrupación. ORDER BY: especifica un orden para presentar el resultado de una consulta. La Estructura típica para las consultas SQL a bases de datos.

7.5.2 La orden From

From significa “desde”, con esta orden hacemos referencia a la tabla que vamos a usar, el formato seria así:

Select * from tabla

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

87

Con esto especificamos que seleccionamos (select) todos (*) desde la tabla, la tabla será sustituida por el nombre de nuestra tabla o base de datos, supongamos que tenemos una tabla llamada Clientes y que dentro tenemos los datos de todos nuestros clientes, para poder hacer uso de ellas, haríamos esto:

Select * From clientes

Lo que hemos hecho es seleccionar con el Select todos los registros (clientes) que tiene la base de datos, pues le hemos puesto el asterisco (*) que significa que lo extraiga todo, o sea que extraiga todos los clientes que tuviéramos en ese momento dentro de la base de clientes, pues con el from le decimos que de donde tiene que extraerlo todo es desde la base clientes.

7.5.3 La orden Where

Where significa “donde” y la usaremos para hacer referencia a algo en concreto dentro de un campo de la base de datos (tabla).

Supongamos que tenemos la base de datos de clientes y la hemos seleccionado:

Select * from clientes

Esto como ya sabemos nos extrae a todos los clientes que en ese momento haya dentro de la base de datos Clientes, pero y si nosotros quisiéramos solo los que se llamasen por ejemplo JUAN, tendríamos que extraerlos todos y tener que comprobarlos uno a uno y ver como se llaman, pero con la clausula Where no es necesario, pues lo hace por nosotros.

Where solo necesita dos parámetros, el nombre del campo donde tiene que buscar y lo que tiene que buscar, lo demás lo hace sola.

Entonces, en nuestra base de datos Clientes, tendríamos un campo que se llama Nombre y dentro de él, están los nombres de cada uno de los clientes en sus respectivas fichas.

Para sacar a aquellos que se llamasen JUAN, solo tendríamos que hacer esto:

Select * from clientes where nombre='JUAN'

Puede ser que en vez de estas comillas ', sean comillas dobles ", o también que no use comillas, o sea que irá el nombre directamente, esto depende del programa que estemos usando, pero no habrá mas problemas al respecto.

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

88

Esta orden, lo que hace es extraer uno a uno todos los clientes e ir comprobando que en el campo Nombre, se encuentre o no JUAN, si se encuentra, entonces lo seleccionará para mostrarlo después, si no estuviera dicho nombre entonces lo ignoraría, como es obvio el ahorro de tiempo es muy grande.

Pero además, la clausula Where tiene unos parámetros para hacer más completo su uso:

SELECT * FROM clientes WHERE edad>=28 AND edad<=36

Esto selecciona todos los clientes con edades comprendidas entre los 28 y los 36 años.

SELECT * FROM clientes WHERE provincia='MADRID' OR provincia='VALENCIA OR provincia= 'BARCELONA'

Esto selecciona todos los campos de la tabla 'clientes', pero los registros de todos los clientes de las provincias de 'MADRID', 'VALENCIA' o 'BARCELONA'.

SELECT nombre, apellidos FROM clientes WHERE edad>=18

Esto selecciona los campos 'nombre' y 'apellidos' de la tabla clientes, escogiendo a aquellos clientes que sean de mayor de edad.

SELECT * FROM clientes WHERE edad BETWEEN 18 AND 45

Esto selecciona todos los clientes con edades comprendidas entre los 18 y los 45 años.

SELECT * FROM cuentas WHERE fecha=#7/1/97#

Esto selecciona los apuntes de 'cuentas' realizados el 1 de Julio de 1997 (la fecha ha de indicarse en inglés (mes/día/año)).

SELECT * FROM cuentas WHERE fecha BETWEEN #7/1/97# AND #7/31/97#

Selecciona los apuntes de 'diario' realizados en Julio de 1.997.

SELECT * FROM clientes WHERE nombre LIKE 'JU*'

Esto selecciona los clientes cuyo nombre comience con los caracteres 'JU'.

SELECT * FROM clientes WHERE apellidos LIKE '*AM'

Esto selecciona los clientes cuyos apellidos terminen con los caracteres 'AM'.

SELECT * FROM clientes WHERE apellidos LIKE '*GARCI*'

Esto selecciona los clientes cuyos apellidos contengan, en cualquier posición, los caracteres 'GARCI'.

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

89

7.6 Funciones de Agregado de SQL Las funciones de agregado realizan un cálculo sobre un conjunto de valores y devuelven un solo valor. Si exceptuamos la función COUNT, todas las funciones de agregado ignoran los valores NULL. Las funciones de agregado se suelen utilizar con la cláusula GROUP BY de la instrucción SELECT. Todas las funciones de agregado son deterministas. Esto significa que las funciones de agregado devuelven el mismo valor cada vez que se las llama con un conjunto específico de valores de entrada. Con las funciones de agregado de SQL, se pueden determinar varias estadísticas relacionadas con conjuntos de valores. Estas funciones se pueden utilizar en las consultas, para agregar expresiones en la propiedad SQL de un objeto QueryDef o al crear un objeto de conjunto de registros basado en una consulta SQL. Función Promedio (Avg) Función Cuenta (Count) Funciones Primero (First), Último (Last) Funciones Mín (Min), Máx (Max) Funciones DesvEst (StDev), DesvEstP (StDevP) Función Suma (Sum) Funciones Var, VarP.

7.6.1 Función Avg

Calcula la media aritmética de un conjunto de valores de un campo numérico específico de una consulta. Ejemplo: SELECT AVG(column_name) FROM table_name.

7.6.2 Función Count

Calcula el número de registros que devuelve una consulta. SELECT COUNT(column_name) FROM table_name

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

90

7.6.3 Funciones First Y Last

Devuelve el primer valor o el último del campo del conjunto de resultados devueltos por una consulta. SELECT FIRST(column_name) FROM table_name SELECT LAST(column_name) FROM table_name

7.6.4 Funciones Mín y Máx.

Devuelven el mínimo o el máximo de un conjunto de valores de un campo especificado en una consulta. SELECT MIN(column_name) FROM table_name SELECT MAX(column_name) FROM table_name

7.6.5 Función Sum.

Devuelve la suma de un conjunto de valores de un campo específico de una consulta. SELECT SUM(column_name) FROM table_name.

7.7 Cláusula Having Y Group By. Group by, combina los registros con valores idénticos, en la lista de campos especificados, en un único registro. Para cada registro se crea un valor sumario si se incluye una función SQL agregada, como por ejemplo Sum o Count, en la instrucción SELECT. Su sintaxis es: SELECT campos FROM tabla WHERE criterio GROUP BY campos_del_grupo GROUP BY es opcional. Los valores de resumen se omiten si no existe una función SQL agregada en la instrucción SELECT. Los valores Null en los campos GROUP BY se agrupan y no se omiten. No obstante, los valores Null no se evalúan en ninguna de las funciones SQL agregadas. Se utiliza la cláusula WHERE para excluir aquellas filas que no desea agrupar, y la cláusula HAVING para filtrar los registros una vez agrupados. A menos que contenga un dato Memo u Objeto OLE, un campo de la lista de campos GROUP BY puede referirse a cualquier campo de las tablas que aparecen en la cláusula FROM, incluso si el campo no ésta

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

91

incluido en la instrucción SELECT, siempre y cuando la instrucción SELECT incluya al menos una función SQL agregada. Todos los campos de la lista de campos de SELECT deben o bien incluirse en la cláusula GROUP BY o como argumentos de una función SQL agregada. Una vez que GROUP BY ha combinado los registros, HAVING muestra cualquier registro agrupado por la cláusula GROUP BY que satisfaga las condiciones de la cláusula HAVING. HAVING es similar a WHERE, determina qué registros se seleccionan. Una vez que los registros se han agrupado utilizando GROUP BY, HAVING determina cuáles de ellos se van a mostrar. SELECT "nombre_columna 1", SUM("nombre_columna 2") FROM "nombre_tabla" GROUP BY "nombre_columna 1" HAVING (condición de función aritmética)

7.8 Vistas en SQL

Muchas bases de datos relacionales que se utilizan en aplicaciones del mundo real tienen esquemas complejos y formados por muchas tablas. En ocasiones, es conveniente que algunos grupos o perfiles de usuarios tengan una vista parcial de ese esquema, o que tengan una visión de la misma con una estructura diferente a la del esquema que realmente está almacenado. Precisamente para estos casos, el lenguaje SQL permite definir vistas.

Una vista es esencialmente una consulta almacenada que devuelve un conjunto de resultados y a la que se le pone un nombre. Una vista es una “tabla virtual”, aparece como una tabla más del esquema, aunque realmente no lo es.

La sintaxis general para crear una vista es la siguiente:

CREATE VIEW view_name [(column_list)] AS sentencia_select

La idea es muy simple, solamente le damos nombre (view_name) a una consulta. Opcionalmente, los atributos de la relación resultante de la sentencia_select pueden renombrarse mediante etiquetas en column_list.

Un ejemplo

Tomemos como ejemplo una aplicación muy simple de gestión de pedidos en un supermercado virtual. El esquema relacional sería el que se muestra en la siguiente figura.

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

92

En ese esquema, la información aparece descompuesta en tablas. Sin embargo, para un usuario en un departamento de marketing, podría ser que le fuese más útil tener la información de las ventas de los productos acumuladas, simplemente.

CREATE VIEW resumenproductos AS select p.id, p.nombre, sum(cantidad) AS total from producto as p, lineas_pedido as l where (l.producto = p.id) group by l.producto order by total desc

Después de definir la vista, podremos utilizar resumenproductos como si fuese una tabla más. Por ejemplo la sentencia:

select * from resumenproductos

Nos devolverá el resultado de la consulta que define la vista.

Como segundo ejemplo, puede que una persona en Contabilidad solamente necesite el resumen económico de los pedidos. En ese caso, podremos definir una vista como la siguiente utilizando una subconsulta correlacionada:

CREATE VIEW resumenpedidos (usuario, nombre, pedido, fecha, total) AS SELECT c.usuario, c.nombre, p.numpedido, p.fecha, (SELECT SUM(precio*cantidad) FROM LINEAS_PEDIDO as x WHERE (x.cliente = p.cliente) and (x.pedido=p.numpedido))FROM CLIENTES as C, PEDIDOS as PWHERE p.cliente = c.usuario

El resultado sería como el siguiente:

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

93

usuario nombre pedido Fecha total

agarcia Ana Garcia 1 2008-11-05 40

jlopez Juan Lopez 1 2008-02-10 65

jlopez Juan Lopez 2 2008-02-11 null

Nótese que cuando un pedido no tiene líneas asociadas, aparecerá un nulo en la subconsulta. La consulta puede hacerse también mediante agrupamiento con la siguiente consulta:

SELECT c.usuario, c.nombre, p.numpedido, p.fecha, sum(cantidad*precio) FROM clientes as c, pedidos as p, lineas_pedido as l WHERE (c.usuario = p.cliente) and (p.cliente = l.cliente) and (p.numpedido=l.pedido) GROUP BY p.cliente, p.numpedido

En este caso se evita la aparición de nulos, ya que la cláusula GROUP BY no creará un subgrupo en el caso de que no haya líneas de pedido.

Lógicamente, los beneficios de las vistas se obtienen al combinar su definición con el sistema de permisos del gestor de base de datos. Siguiendo el ejemplo, daríamos permiso a los usuarios en Marketing sobre la vista resumenproductos, y permisos a los usuarios de Contabilidad sobre resumenpedidos.

Dado que las vistas aparecen como tablas, pueden aparecer en otras consultas. Es importante tener esto en cuenta cuando se están diseñando consultas, dado que puede afectar al rendimiento. Para ello, algunos gestores de bases de datos tienen sintaxis extendidas para controlar cómo se representan internamente las vistas.

Por ejemplo, MySQL tiene una cláusula ALGORITHM que puede acompañarse de tres valores: MERGE,TEMPTABLE o UNDEFINED, con el siguiente significado:

Con MERGE, el texto de las sentencias que hagan referencia a una vista se fusiona con el texto de la definición de la vista, de modo que las partes de la definición de la vista reemplazan a las partes correspondientes de la sentencia.

Con TEMPTABLE, los resultados de la vista se recuperan en una tabla temporal, que se usa después para ejecutar la consulta.

El uso de TEMPTABLE consume un espacio temporal adicional, pero puede tener un mejor rendimiento ya que después de hacer la copia de los datos en la tabla temporal, se usa ésta y se libera la tabla o tabla

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

94

7.9 Actividad 8 Consultas y Creación de vistas. INSTRUCCIONES

Genere la base de datos Hospital

Paciente

Cat_Especialidad

REGP Nombre Dirección Telefono

REGES Especialidad

001-A ANA LÓPEZ 3 SUR 104 2-98-76-89

1 Pediatría

002-D DANIEL GARCÍA

2 ORTE 125 2-98-75-89

2 Dentista

003-J JUAN GÓMEZ 16 OTIENTE 105

2-69-85-78

3 General

004-T TOMÁS RUÍZ 31 ORIENTE 174

2-96-85-74

4 Cardiólogo

Medico REGM NOM_D DIR TEL REGES

F01 LUIS RUIZ 3 SUR 102 2-36-25-14 2

J02 JORGE PÉREZ 3 ORTE 123 2-78-96-54 2

G03 OSCAR GARCÍA

2 SUR 178 2-41-52-36 3

S04 SONIA JUÁREZ 3 SUR 897 2-47-25-98 4

Cat_Examenes

Examenes

REGE TIPO COSTO

REGP PEGE REGM

1 SANGUÍNEO 450

001-A 4 F01

2 RAYOS X 720

002-D 2 J02

3 ULTRASONIDO 450

003-J 3 G03

4 GENERAL 730

004-T 4 F01

Realice las siguientes actividades:

1. Construya sus tablas con llaves primarias y foráneas 2. Inserta los registros indicados a las tablas correspondientes. 3. Realiza la siguientes consultas:

a) Despliega los datos del paciente cuya clave sea 003-J b) Selecciona los nombres de los MÉDICOS cuyo nombre contenga la letra “O” y

ordena en forma ascendente. c) Agrega 2 registros a la tabla exámenes. d) ¿Cuál es el examen más costoso?, asigna un alias para desplegar el resultado. e) ¿Cuál es el promedio de los costos de los exámenes? f) Elimina de la tabla EXÁMENES un registro.

BASE DE DATOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

95

g) Modifica la dirección y el teléfono del paciente se llame “ANA LÓPEZ”. h) ¿Qué costos de exámenes oscilan entre 400 y 500? i) ¿Cuál es la suma total de los exámenes? j) Genere una vista donde visualice el nombre del médico y su especialidad. k) Genere una vista donde muestre el nombre del paciente que exámenes le mando

a realizar que medico y su especialidad.

INDICADOR O

VARIABLE DESCRIPCIÓN

CUMPLE

SÍ NO PORCENTAJE

FORMA

Puntualidad Realiza la actividad en el tiempo establecido por el profesor

25

CONTENIDO

Presentación Aplica los conceptos vistos en la unidad 20

Desarrollo Los resultados son los esperados 55

TOTAL 100

REFERENCIAS

ANEXOS

Anexo 1. Formato Requerimientos de Información.

Descripción de Datos

Nombre Descripción Alias Longitud Valores

Nombre significativos que se utilizan para tener una referencia de cada elemento a través del proceso total de desarrollo de sistemas.

Representa el dato en el sistema

Un dato puede conocerse con diferentes nombres, El uso de los alias deben evitar confusión. Aquí se registraran todos los alias

Cantidad de espacio que necesita para cada dato.

En algunos proceso solo se permiten valores de datos específicos