Está en la página 1de 95

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

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


ELABORÓ: UNIVERSIDAD TECNOLÓGICA
AUTORES:
REVISORES:
APROBÓ: COMISION NACIONAL ACADÉMICA
FECHA DE ENTRADA EN VIGOR:
DE TIC
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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
2
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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

3
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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
4
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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

5
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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.

6
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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 Analítico


los Sistemas de Base de Disciplinado
Datos, Modelos de Base de Sistemático
Organizado
Datos (relacional,
Capaz de sintetizar
jerárquico, orientado a Hábil para el trabajo en
objetos y de red), equipo.
Terminología de Base de
datos, Principios y Actores
en BD.
Análisis de Identificar las técnicas de Determinar los Analítico
requerimientos de recolección de datos requerimientos para una Hábil para el trabajo en
base de datos. (observación, entrevista, base de datos. equipo
cuestionarios), clasificación Disciplinado
de datos y estructura básica Sistemático
de datos 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.

7
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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.
8
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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.

9
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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

10
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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.

11
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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
12
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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}


13
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

{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.

14
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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.

15
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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

16
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

vistos en clase.

INDICADOR O CUMPLE
DESCRIPCIÓN
VARIABLE SÍ NO PORCENTAJE
FORMA
Asignatura, Unidad temática, Nombre de la
Datos
actividad, Nombre del alumno(os), matrícula, 5
generales
nombre del profesor, fecha.
Ortografía y Ortografía sin errores.
10
redacción
Presentación Legible 5
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


Aspectos siguiente forma de entrega:
10
generales
Elabore el documento en un archivo de
Word estructurado de la siguiente manera:
- Portada
- Desarrollo
- Conclusión

CONTENIDO
Presentación Presenta todos los conceptos vistos en clase 40
Organiza su información para tener la
Desarrollo 20
correcta relación de los conceptos
Representa de manera correcta los
Representación 10
conceptos
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:

17
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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

18
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

LISTA DE COTEJO PRÁCTICA 1


INDICADOR O CUMPLE
DESCRIPCIÓN PORCENTAJE
VARIABLE SI NO
ACTITUD (SER)
Puntualidad Entrega del trabajo tiempo y forma establecida 5
El alumno participa activamente en su equipo
Trabajo en
aportando propuestas para la realización del 5
equipo
trabajo.
CONOCIMIENTO (SABER)
Requisitos de Identifica correctamente todos los instrumentos
20
Información para obtener información.
Identificó el instrumento más viable dependiendo
Requisitos de
del problema que se le planteo. 20
Información
HABILIDAD (SABER HACER)
El instrumento generado tiene el orden
Estructura 20
coherente para obtener la información necesaria
El instrumento generado le permitió obtener toda
Presentación la información necesaria para establecer sus 30
requerimientos de información
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

19
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Temas Saber Saber hacer Ser

Modelo de datos Describir los conceptos, Elaborar un Diagrama E-R Analítico


Entidad-Relación. función y representación acorde a los requisitos Hábil para el trabajo en
de: Entidades, Relaciones, establecidos. equipo
Disciplinado
Atributos (clasificación y
Sistemático
conjuntos). Organizado
Proactivo
Restricciones de asignación Hábil para comunicarse de
(De entidad, Cardinalidad, forma oral y escrita
participación) y Claves. Capaz de sintetizar

Identificar el modelo
Entidad-relación.

Modelo Entidad- Describir los conceptos , Elaborar un Diagrama EE- Analítico


Relación función y representación R acorde a los requisitos Hábil para el trabajo en
Extendido. de: subclase, superclase, establecidos. equipo
herencia, especialización y Disciplinado
generalización 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).

20
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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:

21
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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.
22
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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.

23
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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.

24
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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.

25
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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.

26
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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.

27
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

 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.

28
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

 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.

29
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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 CUMPLE
DESCRIPCIÓN
VARIABLE SÍ NO PORCENTAJE
FORMA
Puntualidad Entrega en tiempo y forma establecida 10
Ortografía y Ortografía sin errores.
10
redacción
De igual manera, se le pide que considere la
siguiente forma de entrega:

Elabore el documento en un archivo de


Aspectos
Word estructurado de la siguiente manera: 10
generales
- Portada
- Desarrollo
- Conclusión

CONTENIDO
Presentación Presenta los conceptos solicitados 40
Organiza su información para tener la
Desarrollo 20
correcta relación de los conceptos
Representa de manera correcta los
Representación 10
conceptos
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.
30
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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).

31
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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 CUMPLE
DESCRIPCIÓN
VARIABLE SÍ NO PORCENTAJE
FORMA
Puntualidad Entrega en tiempo y forma establecida 10
Ortografía y Ortografía sin errores.
10
redacción
De igual manera, se le pide que considere la
Aspectos
siguiente forma de entrega: 10
generales

32
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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
Organiza su información para tener la
Desarrollo 20
correcta relación de los conceptos
Representa de manera correcta los
Representación 10
conceptos
TOTAL 100

33
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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 Describir los conceptos, Establecer dominios para Analítico


modelo relacional función y representación las relaciones. Disciplinado
de: Dominios, atributos, Sistemático
tuplas y relaciones. Organizado
Capaz de sintetizar
Identificar las características
de las relaciones y notación
del modelo relacional.
Esquemas de bases Describir el concepto de Diseñar un modelo de Analítico
de datos relacionales clave (primaria y foránea). Base de Datos Relacional a Hábil para el trabajo en
partir de un modelo E-R o equipo
Describir el procedimiento EE-R. Disciplinado
para realizar la Sistemático
transformación de los Organizado
modelos E-R y EE-R a Tolerante
Modelo relacional. Proactivo
Capaz de sintetizar
Algebra Relacional Describir el procedimiento Realizar consultas a través Analítico
para realizar las del álgebra relacional. Hábil para el trabajo en
Operaciones básicas equipo
Disciplinado
(seleccionar, proyectar,
Sistemático
renombrar). Organizado
Tolerante
Describir el procedimiento Proactivo
para realizar las Capaz de sintetizar
Operaciones adicionales
(conjuntos, reunión,
división).

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.

34
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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
Esteban Benítez Pérez 2654554 72600 Relación
Luis Flores Aguilar 2547823 72450 Cliente
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

35
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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.

36
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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.


37
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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.

38
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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

39
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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.

40
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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)

41
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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 Nom_cliente Num_prestamo


Oscar C-102 Ramiro P-16
Raúl C-103 Raúl P-17
Joaquín C-104 Joaquín P-18
Martín C-105 Sandra P-19
Abril C-106 Guillermo P-20

42
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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
43
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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
44
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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 Prestatario

Numero_prestamo Nombre_sucursal Importe Nom_cliente Numero_prestamo


P-11 PLAZA DEL SOL 900 Ramiro P-16
P-14 CENTRO 1500 Raúl P-17
P-15 PLADA DORADA 1500 Joaquín P-15
P-16 PLAZA DORADA 1300 Sandra P-19
P-17 CENTRO 1000 Guillermo P-20
P-18 PLAZA LORETO 2000

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))

45
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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)))

46
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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 CUMPLE
DESCRIPCIÓN
VARIABLE SÍ NO PORCENTAJE
FORMA
Puntualidad Entrega en tiempo y forma establecida 10
Ortografía y Ortografía sin errores.
5
redacción
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
Aspectos
en el ejercicio 4) 20
generales
- Desarrollo:
Modelo Entidad - Relación ó Entidad
Relación – Extendido según sea el
caso
- Transformación al Modelo relacional
- Conclusión

CONTENIDO
Presentación Aplica las reglas de transformación 40
Organiza su información para tener la
Desarrollo 20
correcta relación de los conceptos
Representa de manera correcta los
Representación 5
conceptos
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
47
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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).

48
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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 CUMPLE
DESCRIPCIÓN
VARIABLE SÍ NO PORCENTAJE
FORMA
Puntualidad Entrega en tiempo y forma establecida 10
Ortografía y Ortografía sin errores.
5
redacción
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
Aspectos - Planteamiento del problema (dado
20
generales 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
49
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

CONTENIDO
Presentación Aplica las reglas de transformación 40
Organiza su información para tener la
Desarrollo 20
correcta relación de los conceptos
Representa de manera correcta los
Representación 5
conceptos
TOTAL 100

50
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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 Identificar los Determinar las restricciones Analítico


Integridad conceptos y de integridad en una BD Hábil para el trabajo en
aplicaciones de las Relacional. equipo
restricciones de Disciplinado
integridad (de dominio, Sistemático
de unicidad y de Organizado
integridad referencial). Proactivo
Capaz de sintetizar
Normalización Identificar el concepto y Normalizar un modelo de Analítico
niveles de datos. Hábil para el trabajo en
normalización. equipo
Disciplinado
Identificar el Sistemático
procedimiento para Organizado
realizar la Proactivo
normalización de un Hábil para comunicarse
modelo de datos de forma oral y escrita
empleando la 1FN, 2FN Capaz de sintetizar
y 3FN.

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.

51
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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

52
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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.

53
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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)

54
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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

55
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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:

urls
Usuarios
url_id relUserId url
user_id nombre empresa direccion_empresa
1 1 abc.com
1 José ABC 1 work lane
2 1 xyz.com
2 María XYZ 1 job street
3 2 abc.com
4 2 xyz.com

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
Urls
emprId empresa direccion_empresa
url_id RelUserId url
1 ABC 1 work lane 1 1 abc.com
2 XYZ 1 job street 2 1 xyz.com
3 2 abc.com
usuarios 4 2 xyz.com
user_id nombre relEmpresaId
empresa
1 Joe 1
emprId empresa direccion_empresa
2 Jill 2
1 ABC 1 work lane
2 XYZ 1 job street

56
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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 url_relations
user_id nombre relEmpresaId relationId relatedUrlId relatedUsedId
1 Joe 1 1 1 1
2 Jill 2 2 1 2
3 2 1
4 2 2
Urls
urlId url
1 abc.com
2 xyz.com

57
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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 CUMPLE
DESCRIPCIÓN
VARIABLE SÍ NO PORCENTAJE
FORMA
Puntualidad Entrega en tiempo y forma establecida 10
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
Aspectos
Relación – Extendido según sea el 25
generales
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

CONTENIDO
Presentación Aplica las reglas de normalización 50
Organiza su información para tener la
Desarrollo 10
correcta relación de los conceptos
Representa de manera correcta los
Representación 5
conceptos
TOTAL 100

58
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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 Definir el concepto, Seleccionar el SGBD de Analítico


SGBD. características y tipos acuerdo a las necesidades Hábil para el trabajo en
de SGBD. del proyecto. equipo
Disciplinado
Identificar los Sistemático
principales SGBD. Organizado
Proactivo
Capaz de sintetizar

Manipulación de una Identificar el entorno Manipular una base de Analítico


BD. de desarrollo del SGBD. datos a través de un SGBD. Hábil para el trabajo en
equipo
Identificar los Disciplinado
procedimientos para Sistemático
manipular una base de Organizado
datos empleando el Proactivo
SGBD. 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.

59
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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.

60
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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
61
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

 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.
62
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

 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:
63
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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 CUMPLE
DESCRIPCIÓN
VARIABLE SÍ NO PORCENTAJE
FORMA
Puntualidad Entrega en tiempo y forma establecida 10
La forma de entrega es la siguiente:

Aspectos Elabore el documento en un archivo de


25
generales Word estructurado de la siguiente manera:
- Portada
- Aplicación del mapa mental
CONTENIDO
Presentación Aplica los conceptos vistos en la unidad 50
64
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Organiza su información para tener la


Desarrollo 10
correcta relación de los conceptos
Representa de manera correcta los
Representación 5
conceptos
TOTAL 100

65
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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 Analítico


funcionalidad del SQL. Hábil para el trabajo en
equipo
Identificar las Disciplinado
características de los Sistemático
lenguajes de DDL y DML. Organizado
Proactivo
Hábil para comunicarse
de forma oral y escrita
Creación del Identificar las cláusulas y Crear el esquema de una Analítico
esquema de una BD. sintaxis del DDL para la BD a través del Lenguaje Hábil para el trabajo en
creación de BD (crea base SQL. equipo
de datos, crea tabla, Disciplinado
creación de índice, Sistemático
definición de restricciones, Organizado
definición de llave Proactivo
primaria y foránea) y
vistas.
Modificación del Identificar las cláusulas y Modificar el esquema de Analítico
esquema de una BD. sintaxis del DDL para la la BD mediante el Hábil para el trabajo en
modificación de BD (alter y Lenguaje SQL. equipo
drop). 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.

66
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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
Utilizado para modificar las tablas agregando campos o cambiando la definición de los
ALTER
campos.

Comandos DML
Comando Descripción
Utilizado para consultar registros de la base de datos que satisfagan un criterio
SELECT
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
Utilizada para especificar las condiciones que deben reunir los registros que se van a
WHERE
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

67
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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,

68
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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

69
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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:

70
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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.

71
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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.

72
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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

73
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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:

74
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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
75
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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 CUMPLE
DESCRIPCIÓN PORCENTAJE
VARIABLE SI NO
ACTITUD (SER)
Puntualidad Entrega del trabajo tiempo y forma establecida 10
CONOCIMIENTO (SABER)
Requisitos de Identifica correctamente todos los comandos
40
Información para realizar la práctica

HABILIDAD (SABER HACER)


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

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)

76
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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));

77
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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

78
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

LISTA DE COTEJO PRÁCTICA 3


INDICADOR O CUMPLE
DESCRIPCIÓN PORCENTAJE
VARIABLE SI NO
ACTITUD (SER)
Puntualidad Entrega del trabajo tiempo y forma establecida 10
CONOCIMIENTO (SABER)
Requisitos de Identifica correctamente todos los comandos
40
Información para realizar la práctica

HABILIDAD (SABER HACER)


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

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)

79
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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 CUMPLE
DESCRIPCIÓN
VARIABLE SÍ NO PORCENTAJE
FORMA
Realiza la actividad en el tiempo establecido
Puntualidad 25
por el profesor
CONTENIDO
Presentación Aplica los conceptos vistos en la unidad 20
Desarrollo Los resultados son los esperados 55
TOTAL 100

80
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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 Realizar consultas y vistas Analítico


sintaxis del DML para la de una base de datos con Hábil para el trabajo en
generación de consultas, SQL. equipo
manejo de vistas y Disciplinado
operaciones con los datos Sistemático
(select, view y funciones Organizado
de agregado). Proactivo
Capaz de sintetizar
Instrucciones de Identificar las cláusulas y Actualizar la BD mediante Analítico
actualización sintaxis del DML para la SQL. Hábil para el trabajo en
actualización de datos equipo
(insert, delete, update). 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

81
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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

82
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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.

83
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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

84
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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
85
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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

86
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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.

87
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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'.

88
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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

89
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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
90
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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.

91
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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:

92
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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

93
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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 2 ORTE 125 2-98-75-89 2 Dentista
GARCÍA
003-J JUAN GÓMEZ 16 OTIENTE 2-69-85-78 3 General
105
004-T TOMÁS RUÍZ 31 ORIENTE 2-96-85-74 4 Cardiólogo
174

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 2 SUR 178 2-41-52-36 3
GARCÍA
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.
94
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

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 CUMPLE
DESCRIPCIÓN
VARIABLE SÍ NO PORCENTAJE
FORMA
Realiza la actividad en el tiempo establecido
Puntualidad 25
por el profesor
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
Un dato puede
Nombre significativos que se conocerse con diferentes En algunos
Cantidad de
utilizan para tener una referencia nombres, El uso de los proceso solo se
espacio que
de cada elemento a través del Representa el dato en el sistema alias deben evitar permiten valores
necesita para cada
proceso total de desarrollo de confusión. Aquí se de datos
dato.
sistemas. registraran todos los específicos
alias

95

También podría gustarte