Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Manual de Asignatura
Basado en Competencias Profesionales
Base de Datos I
Enero 2012
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
5
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN
INTRODUCCIÓN
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
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
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
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.
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
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.
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
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).
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
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.
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:
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.
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:
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
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.
Secuela de la observación
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
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.
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.
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
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
CUESTIONARIO
REFERENCIAS
18
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN
EVALUADOR
(NOMBRE Y
FIRMA)
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.
19
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN
Identificar el modelo
Entidad-relación.
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
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.
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.
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
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:
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
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.
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.
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.
23
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN
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.
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
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
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.
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
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
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:
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
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
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
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
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
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:
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 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.
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.
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.
38
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓ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.
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.
Nombre Teléfono CP
Esteban Benítez Pérez 2654554 72600
39
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN
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.
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.
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
40
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓ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
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).
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:
41
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN
Numero_prestamo Importe
P-11 900
P-14 1500
P-15 1500
P-16 1300
P-17 1000
P-18 2000
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:
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
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:
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)
π 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
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
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
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.
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:
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:
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
Si se escribe:
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:
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:
46
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN
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:
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
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
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.
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.
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.
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:
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
Resultado de aprendizaje:
Elaborará un reporte a partir de un modelo relacional, que incluya:
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.
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.
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
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.
Ventajas de la normalización:
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
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.
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
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.
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.
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:
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
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:
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:
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
Inconvenientes:
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:
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.
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:
65
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN
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:
66
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN
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
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:
El comando CREATE TABLE se utiliza para la creación de tablas dentro de una base de datos. Su sintaxis es
la siguiente:
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)
);
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
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)
);
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
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)
);
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
Con el comando DROP, podemos eliminar el esquema de una base de datos. Por ejemplo borrar una
tabla:
La sentencia ALTER TABLE, se utiliza para agregar, borrar o modificar columnas en una tabla existente.
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
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
La cual indica que la base de datos ha sido creada con éxito. Como se ve a continuación:
SHOW DATABASES;
Para poder trabajar sobre la base de datos creada utililice el siguiente comando:
USE iniciobase;
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.
DESCRIBE mascotas;
SHOW DATABASES;
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:
REFERENCIAS
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
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:
MATERIALES Y EQUIPOS:
Computadora con programa MYSQL
PROCEDIMIENTO:
Entrar al monitor MySQL, escriba la instrucción: Mysql –u root –mysql
Muestres las tablas que tiene hasta ahora en su base de datos: SHOW TABLES;
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:
77
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN
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.
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
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
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
Objetivo: El alumno realizará scripts utilizando el Lenguaje de Manipulación de Datos (DML) para la
actualización y consulta de información.
Resultado de aprendizaje:
Elaborará un cuadernillo que contenga los scripts para generar:
81
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN
Ejemplo:
Si deseamos seleccionar el contenido de las columnas nombre y apellido_paterno, de la tabla Personas
hacemos:
Pero, si lo que necesitamos en seleccionar todas las columnas de la tabla persona, lo que escribimos es lo
siguiente:
La sintaxis para insertar datos en una tabla mediante una fila por vez es la siguiente:
Tabla Store_Information
82
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN
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:
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:
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:
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
UPDATE "nombre_tabla"
SET "columna_1" = [nuevo valor]
WHERE {condición}
Tabla Store_Information
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"
Tabla Store_Information
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}
Tabla Store_Information
y decidimos no mantener ninguna información sobre Los Ángeles en esta tabla. Para lograrlo, ingresamos
lo siguiente:
Tabla Store_Information
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:
Donde:
From significa “desde”, con esta orden hacemos referencia a la tabla que vamos a usar, el formato seria
así:
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:
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.
Where significa “donde” y la usaremos para hacer referencia a algo en concreto dentro de un campo de
la base de datos (tabla).
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:
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:
Esto selecciona todos los clientes con edades comprendidas entre los 28 y los 36 años.
Esto selecciona todos los campos de la tabla 'clientes', pero los registros de todos los clientes de las
provincias de 'MADRID', 'VALENCIA' o 'BARCELONA'.
Esto selecciona los campos 'nombre' y 'apellidos' de la tabla clientes, escogiendo a aquellos clientes que
sean de mayor de edad.
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)).
88
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN
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.
Calcula la media aritmética de un conjunto de valores de un campo numérico específico de una consulta.
Ejemplo:
89
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN
Devuelve el primer valor o el último del campo del conjunto de resultados devueltos por una consulta.
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:
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.
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 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.
Después de definir la vista, podremos utilizar resumenproductos como si fuese una tabla más. Por
ejemplo la sentencia:
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
92
BASE DE DATOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN
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:
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
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
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
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