Data Base Design
Data Base Design
no e Implementaci
on de Bases Datos
Relacionales
n y adaptacio
Recopilacio n de los apuntes de los cursos de bases de datos
utilizados por el recopilador
Recopilador:
Julio J. Aguila G.
Autores: Cesar Guerrero Saldivia
Mauricio Marn
i
Contenidos
1 Introducci
on 1
1.1 Modelos de datos y definiciones . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 Vista general de un DBMS . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2.1 Lenguajes de bases de datos . . . . . . . . . . . . . . . . . . . . . . . 6
1.2.2 Usuarios de una base de datos . . . . . . . . . . . . . . . . . . . . . 7
1.2.3 Estructura fsica de un DBMS . . . . . . . . . . . . . . . . . . . . . 7
2 Modelo Entidad-Relaci
on 11
2.1 Tipos de atributos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2 Tipos de relaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3 Conceptos adicionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.4 Metodologa para desarrollar diagramas . . . . . . . . . . . . . . . . . . . . 19
2.5 Unas notas sobre la tipografa . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.6 Ejercicios propuestos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3 Modelo Relacional 25
3.1 Dominios, tuplas, atributos, relaciones . . . . . . . . . . . . . . . . . . . . . 25
3.1.1 Notacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.1.2 Restricciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.2 Bases de datos relacional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.3 Paso de modelo E-R a modelo relacional . . . . . . . . . . . . . . . . . . . . 32
3.4 Ejercicios propuestos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
iii
4.2.2 Creaci
on de relaciones . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.3 Ejemplo de aplicaci
on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.4 Ejercicios propuestos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5 Algebra Relacional 51
5.1 Notas sobre el modelo relacional . . . . . . . . . . . . . . . . . . . . . . . . 52
5.2
Algebra relacional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
5.2.1 Operadores fundamentales . . . . . . . . . . . . . . . . . . . . . . . . 53
5.2.2 Operadores derivados . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5.3 Nota final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
5.4 Ejercicios propuestos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Lista de Figuras
v
4.14 Crear referencia utilizando Men
u Relaciones . . . . . . . . . . . . . . . . . . 49
4.15 Diagrama E-R de la base de datos EMPRESA . . . . . . . . . . . . . . . . . . 50
Lista de Tablas
vii
5.18 Relacion generica W . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
5.19 Resultado de V
W . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
5.20 Resultado de W V . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
5.21 Ejemplo de relaci
on vaca . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Captulo 1
Introducci
on
El almacenamiento, manipulaci
on y recuperaci
on de informacion en forma eficiente, es
vital y estrategico para cualquier organizaci
on. Las bases de datos juegan un rol crtico en
casi todas las
areas donde las computadoras son usadas, incluyendo negocios, ingeniera,
medicina, leyes, educacion, etc.
En otras palabras, una base de datos tiene alguna fuente de la cual los datos son
derivados, alg
un grado de interaccion con eventos en el mundo real, y una audiencia que
est
a activamente interesada en el contenido de la base de datos.
Un Sistema Administrador de Base de Datos (SABD o DBMS por Data Base Manage-
ment System) es una colecci
on de programas que permite a los usuarios crear y mantener
una base de datos.
El uso de las base de datos es contrario al enfoque tradicional, en que cada sistema
1
2 Captulo 1. Introduccion
maneja sus propios datos y archivos. Al usar una base de datos, todos los datos se
almacenan en forma integrada, y est
an sujetos a un control centralizado. Las diversas
aplicaciones operan sobre este conjunto de datos.
Para obtener el promedio de una persona, o saber cuanta gente inscribe un curso
cada semestre, se debe leer secuencialmente todo el archivo.
Etc.
Cuando se tienen pocos datos no es mucha la perdida de tiempo y espacio, pero cuando
se trata de cientos de miles de datos, o peor a
un, millones de datos, el usuario se enfrenta
a un serio problema. Esta redundancia al definir y almacenar los datos implica espacio
de almacenamiento desperdiciado y esfuerzos redundantes para mantener actualizados los
datos.
Matrcula Nombre Semestre Curso 1 Nota 1 Curso 2 Nota 2 Curso 3 Nota3 ...
654564 Juan Perez 97/1 FI21A 4.5 MA22A 4.2 QI21A 4.3 ...
353090 Luis Gonz alez 97/1 FI33A R MA34A 4,6 CC30A 5.5 ...
672680 Jose Tapia 97/1 FI10A * CC10A * MA11A * ...
... ... ...
654564 Juan Perez 97/2 MA33A R SD20A 5.7 MA26A E ...
353090 Luis Gonz alez 97/2 CC31A 6,2 MA37A 4,5 CC31B R ...
672680 Jose Tapia 97/2 FI10A R CC10A R MA11A 4.2 ...
... ... ...
3
4 Captulo 1. Introduccion
Una caracterstica fundamental del enfoque de bases de datos es que proporciona cierto
nivel de abstraccion de los datos, al ocultar detalles de almacenamiento que la mayora de
los usuarios no necesitan conocer. Los modelos de datos son el principal instrumento para
ofrecer dicha abstraccion.
Un modelo de datos es un conjunto de conceptos que pueden ser usados para describir
la estructura de una bases de datos. Con el concepto de estructura de una bases de datos
se hace referencia a los tipos de datos, las relaciones y las restricciones que deben cumplirse
para esos datos. Por lo general, los modelos de datos contienen adem
as un conjunto de
operaciones basicas para especificar lecturas y actualizaciones de la base de datos.
Nivel Fsico Son los datos tal como son almacenados en el computador. Por ejemplo:
1.1. Modelos de datos y definiciones 5
Nivel Conceptual Se describen que datos se almacenan y las relaciones que existen entre
ellos. Usualmente el usuario trabaja en este nivel y no se preocupa de los detalles
del nivel fsico.
Independencia de datos l
ogica: es posible hacer varios cambios en el esquema con-
ceptual sin alterar los subesquemas.
Lenguaje de Manipulaci
on de Datos (DML por Data Management Language).
El primero grupo se refiere a los lenguajes que sirven para definir los esquemas de la
base de datos en cada nivel: por definicion, cada nivel requiere un lenguaje distinto. El
resultado de la compilacion de las instrucciones DDL son las tablas con la descripcion de
la base de datos. El esquema fsico lo define principalmente el DBMS.
El segundo grupo son los lenguajes que permiten acceder a la informacion almacenada
en la base de datos. Las operaciones tpicas de estos lenguajes son las siguientes:
Agregar informacion.
1.2. Vista general de un DBMS 7
Borrar informacion.
Respecto a los usuarios, el mas importante desde el punto de vista tecnico es el admi-
nistrador de la base de datos. Este usuario tiene entre sus funciones las siguientes:
En el mismo nivel tecnico, se encuentran los programadores de aplicaciones. Estos
u
ltimos interact
uan con el DBMS a traves del DML, incluyendo instrucciones del DML en
programas escritos en un lenguaje host como Pascal, C o alg
un lenguaje 4GL especialmente
dise
nado para este tipo de aplicaciones.
Desde el punto de vista funcional, existen tambien los usuarios casuales, quienes saben
de computaci
on e ingresan consultas directamente en el DML.
Finalmente desde el punto de vista de su utilidad, son los usuarios finales los que
interactuan directamente con los programas de aplicaci
on. Estos usuarios no necesitan
saber de computaci
on debido a que los desarrolladores les propocionan la interfaz adecuada
para su interacci
on.
Compilador DDL Recibe como entrada la definicion de la base de datos (en DDL) y
genera como salida tablas con la informacion de los esquemas (el diccionario de
datos).
Modelo Entidad-Relaci
on
El modelo Entidad-Relaci
on (E-R) fue presentado por Chen en 1976. Es uno de los modelos
de datos mas populares y se basa en una representaci
on del mundo real en que los datos se
describen como entidades, relaciones y atributos. Este modelo se desarroll
o para facilitar
el dise
no de las bases de datos.
El principal concepto del modelo E-R es la entidad, que es una cosa en el mundo
real con existencia independiente. Una entidad puede ser un objeto fsico (una persona,
un auto, una casa o un empleado) o un objeto conceptual (una compa
na, un puesto de
trabajo o un curso universitario). En el ejemplo del Captulo I, sobre las inscripciones y
notas de los alumnos de una carrera, se pueden identificar dos entidades: ALUMNO y CURSO.
Cada entidad tiene propiedades especficas que la describen llamadas atributos. Por
ejemplo, una sala de clases tiene un nombre (Sala TI I, Sala 31, Sala de Proyectos), una
ubicaci
on, un cupo maximo, etc. En el ejemplo sobre las inscripciones y notas, ALUMNO
posee los atributos Nombre y Matr
cula. Una entidad particular tiene un valor para cada
uno de sus atributos.
Cada uno de los atributos de una entidad posee un dominio, el que corresponde al
tipo del atributo. Por ejemplo, Matr
cula tiene como dominio al conjunto de los enteros
positivos y Nombre tiene como dominio al conjunto de caracteres.
Para todo conjunto de valores de una entidad, debe existir un atributo o combinacion
de atributos, que identifique a cada entidad en forma u
nica. Este atributo o combinacion
de atributos se denomina llave o clave primaria. Por ejemplo, el n
umero de matrcula
es una buena llave para la entidad alumno, no as el nombre, porque pueden existir dos
11
12 Captulo 2. Modelo Entidad-Relacion
Una relaci
on se puede definir como una asociaci
on entre entidades. Por ejemplo, en una
biblioteca la entidad LIBRO puede estar relacionada con la entidad PERSONA por medio de
on EST
la relaci A PEDIDO. La entidad ALUMNO puede estar relacionada con la entidad CURSO
por la relaci
on INSCRIBE. Una relaci
on tambien puede tener atributos. Por ejemplo, la
relaci
on INSCRIBE puede tener los atributos Semestre y Nota.
1. La empresa est
a organizada en departamentos. Cada departamento tiene un nom-
bre u
nico. un n
umero u
nico, y un empleado particular quien lo administra. Se
quiere saber la fecha en que el empleado administrador empez
o a hacerse cargo del
departamento. Un departamento puede tener varios locales.
3. Para cada empleado se desea tener su nombre, rut, direccion, salario, sexo y a
no
de nacimiento. Un empleado es asignado a un departamento, pero puede trabajar
en varios proyectos, los que no son necesariamente controlados por el mismo depar-
tamento. Se quiere saber el n
umero de horas semanales que un empleado trabaja
en cada proyecto. Se quiere adem
as saber cu
al es el supervisor directo de cada
empleado.
La Figura 2.1 muestra el modelo de esta base de datos, a traves de una notacion gr
afica
llamada diagrama E-R. En este diagrama los rectangulos representan conjuntos de enti-
dades, los elipses representan atributos y los rombos representan conjuntos de relaciones.
Usando la notaci
on gr
afica descrita, se puede hacer el diagrama E-R del ejemplo de las
inscripciones y notas de los alumnos de una carrera: ver Figura 2.2. El lector debe notar
2.1. Tipos de atributos 13
que este u
ltimo diagrama no tiene el mismo nivel de informacion que la Figura 2.1. . . Ve
la diferencia?
Una entidad define un conjunto de instancias particulares con los mismos atributos. Por
ejemplo: una entidad EMPLEADO con atributos Nombre, Edad y Sueldo, puede represen-
tar al siguiente conjunto de instancias particulares: (Juan Perez, 55, 800.000), (Federico
Pardo, 40, 550.000) y (Rodrigo Pozo, 25, 400.000). En los diagramas E-R, una entidad
se representa como una caja rectangular y los nombres de los atributos como elipses. Las
14 Captulo 2. Modelo Entidad-Relacion
Los atributos at
omicos o simples que no se pueden subdividir. Si no hay necesidad
de referirse a los elementos individuales de un nombre, entonces el nombre completo
puede considerarse un atributo simple. Generalmente, los atributos de valor simple
son los que tienen un solo valor para una entidad particular, e.g., Edad y Sueldo.
Los atributos multivaluados pueden tener un conjunto de valores para una misma
entidad. Por ejemplo: un atributo T
tulos Profesionales, donde una persona
puede que no tenga ninguno, tenga uno, dos o mas). Los atributos multivaluados
se representan con elipses dobles, como el atributo Localizaciones de la entidad
DEPARTAMENTO en la Figura 2.1.
Los atributos clave o llave son un tipo de atributo cuyos valores son distintos para
cada entidad individual, i.e., sus valores se usan para identificar cada entidad de
forma unvoca. Para una entidad PERSONA, un atributo clave tpico es el Rut. Algunas
veces, varios atributos juntos forman una clave (la combinacion debe ser distinta).
Estos atributos clave aparecen subrayados en los diagramas. En principio, todos los
conjuntos de entidades tienen una llave.
Finalmente, cada atributo tiene un conjunto de valores o dominio asociado, que especi-
fica el conjunto de valores que puede asignarse a cada instancia particular. Por ejemplo,
si las edades de los empleados pueden variar entre 16 y 70, entonces el dominio de Edad es
{x N, 16 x 70}. Los dominios, al igual que los valores de las instancias particulares
de las entidades, no se muestran en los diagramas. Sin perjuicio de lo anterior, el dise
nador
2.2. Tipos de relaciones 15
Como se ha mencionado, en los diagramas E-R, una entidad se representa como una caja
rectangular y las relaciones como rombos. Una relaci
on R entre n tipos de entidades
E1 , . . . , En define un conjunto de asociaciones entre estos tipos. Puede ser visto como un
conjunto de instancias de la relaci
on ri , donde cada ri asocia n entidades {e1 , . . . , en }, y
cada entidad ej en ri es un miembro del tipo de entidad Ej , 1 j n. En la practica,
la mayora de las relaciones son binarias como se muestran en los ejemplos.
Una relaci
on es un subconjunto del producto cartesiano E1 E2 . . . En . Por
ejemplo: algunas instancias de la relaci
on TRABAJA PARA del ejemplo EMPRESA podran ser
como las mostradas en la Figura 2.4
Una relaci
on podra tambien interpretarse como un conjunto de pares ordenados, en
este caso (e1, d1), (e2, d2), (e3, d1), (e4, d2), (e5, d3), (e6, d1), (e7, d3). Seg
un el n
umero de
instancias en las entidades relacionadas (o grado o raz
on de cardinalidad ), se pueden definir
tres tipos de relaciones:
Generalizaci
on y especializaci
on En el conjunto de entidades general se agrupan los
18 Captulo 2. Modelo Entidad-Relacion
8. Redactar los supuestos que sean necesarios para explicar la informacion faltante.
En esta recopilaci
on se ha mantenido la tipografa de uno de los textos originales, visto que
no toda las bibliografas respecto al tema coinciden en este punto. Para ayudar al lector
20 Captulo 2. Modelo Entidad-Relacion
en el dise
no de los ejercicios propuestos en la Seccion 2.6, se recomiendan las siguientes
convenciones:
Utilizar verbos para las relaciones. Los nombres de las relaciones pueden repetirse.
Los nombres tienen la misma utilidad que los identificadores en un lenguaje de progra-
macion, de hecho el lector podra aplicar las convenciones conocidas para alguno de ellos,
e.g. las convenciones de Java. En la fase de implementaci
on se espera que el lector decida
cu
ales son las reglas mas convenientes para su asignacion.
1. Compa
na de capacitaci
on: Soy el administrador de una compa
na de capa-
citaci
on que provee cursos en tecnicas de administracion. Ense
namos muchos cur-
sos, cada uno de los cuales tiene un codigo, un nombre y un precio. Introduccion a
Internet y Programaci
on Java son dos de nuestros cursos mas populares. Los cur-
sos se dictan entre uno a cuatro das. Un instructor puede ense
nar varios cursos.
Nosotros registramos el nombre y n
umero de telefono de los profesores. Cada curso
es ense
nado por un solo instructor. Creamos un curso y luego le asignamos un profe-
sor. Los estudiantes pueden tomar varios cursos a la vez, y muchos de ellos lo hacen.
Tambien registramos el nombre y telefono de cada estudiante. Algunos de nuestros
estudiantes e instructores no nos dan sus n
umeros telef
onicos.
3. Compa
na de videos: Soy el propietario de una peque
na tienda de videos. Te-
nemos alrededor de 3.000 cintas de las cuales necesitamos mantener su estado. Cada
una de nuestras cintas tiene un n
umero de identificacion. Para cada pelcula, nece-
sitamos conocer su ttulo y categora (comedia, suspenso, drama, accion, guerra,
etc.). Tenemos m
ultiples copias de muchas de nuestras pelculas. A cada pelcula
le asignamos un identificador y le asociamos las copias que la contienen y su for-
mato. Una pelcula puede ser formato CD o DVD. Siempre tenemos al menos una
copia para cada pelcula que nosotros rastreamos, y cada copia contiene una u
nica
pelcula. Nuestras copias son de larga duracion y no tenemos pelculas que requieran
m
ultiples copias. Frecuentemente nos preguntan por pelculas con actores populares
especficos. As que deseamos registrar las pelculas donde est
an los actores de moda.
No todas nuestras pelculas tienen actores famosos o de moda. Los clientes desean
conocer de cada actor su nombre real y fecha de cumplea
nos. Solo registramos los
actores que aparecen en pelculas de nuestro inventario. Tenemos cientos de clientes.
Solo arrendamos videos a gente asociada a nuestro video-club. Para cada socio,
registramos su nombre, apellido, telefono y direccion. Y, por supuesto cada socio
tiene su n
umero de socio. Luego, necesitamos conocer que copia ha retirado cada
cliente. Un cliente puede retirar varias copias al mismo tiempo. Solo registramos los
arriendos actuales, no los historicos.
5. Farmacias: Suponga una cadena de farmacias que posee varias bodegas en distintos
puntos de la ciudad. Cada sucursal posee un stock de cada tipo de medicamento,
los que son adquiridos a distintos laboratorios (cada medicamento es proporcionado
por un solo laboratorio). Las sucursales solicitan medicamentos a cualquiera de las
bodegas. Los medicamentos entregados por los laboratorios son almacenados en las
bodegas. Los documentos utilizados son notas de pedido y guas de entrega. Adem
as,
el detalle del tipo y cantidad de medicamentos vendidos van quedando registrados
en las boletas y facturas. Construya un diagrama E-R que permita llevar el control
del flujo de entrada (Laboratorios) y salida de medicamentos (ventas).
Ubicar el
area, dados los nombre de dos calles que se interceptan.
Determinar cu
antos taxis est
an en cada area, el promedio de taxis por area, el
area con mayor n
umero de taxis y el area con el menor n
umero de taxis.
problema el controlar las cosas. Siempre ocurre que en una de las tiendas se acaba
alg
un tem, mientras que en la otra rebalsamos del mismo tem Y los empleados!
Antes eramos mama y yo. Ahora tenemos otros seis, y ni siquiera podemos recordar
quien trabaja donde. Una cosa que definitivamente necesitamos saber es la cantidad
disponible de cada tem en cada tienda. La cantidad que se ha perdido tambien
sera u
til. Tambien tenemos que imprimir una lista de precios con todos los tems
que cada tienda vende, para saber por cuanto venderlos nos gusta mantener los
precios iguales en todas las tiendas. Tenemos que mantener un registro de los
nombres y n
umeros de telefono de los empleados, tambien, y necesitamos saber
en que estado viven para poder calcular sus impuestos correctamente (ejemplo de
USA, con impuestos diferentes por estado). Y tenemos que mantener un registro
del n
umero total de los diferentes tems, el n
umero de tiendas en cada estado, el
n
umero de empleados en cada tienda, y el n
umero total de empleados, para as
poder imprimir todo esto en el informe anual.
8. Del diagrama E-R que se muestra en la Figura 2.8, sobre un esquema simplificado
para el sistema de reservaciones de una lnea aerea. Extraiga, desde el diagrama
E-R, los requerimientos y restricciones que produjeron dicho esquema, i.e., aplicar
ingeniera inversa.
24 Captulo 2. Modelo Entidad-Relacion
Modelo Relacional
El modelo en s fue propuesto por primera vez en 1970 por Edgar Frank Codd (Ted
Codd), quien trabajo en su desarrollo durante las decadas de los sesenta y los setenta.
Su trabajo se present
o con el nombre A Relational Model of Data for Large Shared Data
Banks.
Como se ver
a en este captulo, existe una gran coherencia entre el modelo E-R y el
modelo relacional.
Definici
on Un dominio D es un conjunto de valores at
omicos. At
omico quiere decir que
cada valor en el dominio es indivisible. Es u
til dar nombres a los dominios, e.g.:
N
umeros telef
onicos locales: el conjunto de n
umeros de telefonos de 9 dgitos.
Ruts: n
umeros de 8 dgitos mas un car
acter que puede ser del 0 al 9 o K.
Tambien se puede especificar un tipo de datos o formato para cada dominio, e.g.
enteros, reales, cadenas de 4 dgitos, etc.
25
26 Captulo 3. Modelo Relacional
Un scheme de relaci
on R denotado por R(A1 , A2 , . . . , An ) est
a constituido por un
nombre de relaci
on R y una lista de atributos A1 , A2 , . . . , An . Cada atributo Ai es el
nombre de un rol jugado por el dominio D en el scheme de la relaci
on R. D se llama
el dominio de Ai y se denota dom(Ai ). Un scheme relacional se usa para describir una
relaci
on. R es el nombre de esta relaci
on. El grado de una relaci
on es el n
umero n de
atributos del scheme de la relaci
on. Por ejemplo:
dom(nombre) = Nombres.
umeros telef
dom(fono) = N onicos locales.
Definici
on Una relaci
on o instancia de relaci
on r del scheme de relaci
on
R(A1 , A2 , . . . , An ), denotado tambien como r(R) es un conjunto de n-tuplas r =
t1 , t2 , . . . , tm . Cada n-tupla t es una lista ordenada de n valores t =< v1 , . . . , vn >,
donde cada valor vi , 1 i n, es un elemento de dom(Ai ) o es un valor nulo. Vea
por ejemplo la instancia de la relaci
on ESTUDIANTE en la Tabla 3.1.
El n
umero total de tuplas en el producto cartesiano es:
3.1.1 Notaci
on
Un scheme de relaci
on R de grado n se denota R(A1 , A2 , . . . , An ).
3.1.2 Restricciones
Las restricciones de dominios especifican que el valor de cada atributo A debe ser un valor
at
omico del dominio dom(A). Una relaci
on se define como un conjunto de tuplas. Por
definicion todos los elementos de un conjunto son distintos. Luego todas las tuplas de
una relaci
on deben ser distintas. Esto implica que dos tuplas no pueden tener la misma
combinacion de valores para todos sus atributos. Pero puede haber otros subconjuntos
de atributos de un scheme de relaci
on R con la propiedad de que no haya dos tuplas en
28 Captulo 3. Modelo Relacional
t1 [S] 6= t2 [S]
El valor de un atributo clave se usa para identificar unvocamente una tupla en una
relaci
on. El hecho que un conjunto de atributos constituya una clase es una propiedad del
scheme de la relaci
on, y es invariante en el tiempo.
Las Tablas 3.2, 3.3, 3.4, 3.5, 3.6 y 3.7, muestran los datos que corresponden a una
instancia de la base de datos.
La restricci
on de integridad referencial se especifica entre dos relaciones y se usa para
mantener la consistencia entre tuplas de las dos relaciones. Informalmente, una tupla en
una relaci
on que hace referencia a otra relaci
on debe referirse a una tupla existente en esa
relaci
on. Por ejemplo, NDEPTO de EMPLEADO debe coincidir con el DNUMERO de
alguna tupla de la relaci
on DEPARTAMENTO. Para una definicion formal, se necesita el
concepto de llave for
anea o llave externa.
30
NPILA APPAT APMAT RUT FNAC DIRECCION SEXO SUELDO RUTSUPERV NDEPTO
Juan Perez Garca 12345678 9-1-55 Toesca 965 M 120 33344555 5
Alicia Zelaya Roa 99988777 19-7- Blanco 2120 F 105 98765432 4
58
Juana Besa Martnez 98765432 20-6- Mapocho F 240 88866555 4
31 2540
Francisco Cea Daza 33344555 8-12- Condell 221 M 310 88866555 5
45
Jaime Ramos Salas 88866555 10-11- Vitacura M 360 nulo 1
30 1015
DNUMERO DUBICACION
31
32 Captulo 3. Modelo Relacional
Definici
on Un conjunto de atributos F en el scheme de relaci
on R1 es una llave foranea
de R1 si satisface las siguientes reglas:
1. Los atributos en F tienen el mismo dominio que los atributos de la llave primaria
P de otro scheme de relaci
on R2 . Los atributos F se dice que referencian la
relaci
on R2 .
Por Ejemplo: NDEPTO en una tupla t1 de EMPLEADO debe coincidir con el valor
de una llave primaria DNUMERO en alguna tupla t2 de la relaci
on DEPARTA-
MENTO, o el valor de NDEPTO puede ser nulo si el empleado no pertenece a un
departamento.
Las Tablas 3.2, 3.3, 3.4, 3.5, 3.6 y 3.7, muestran los datos que corresponden a una instancia
del scheme de la base de datos EMPRESA. Como se ha mostrado en la seccion anterior, este
scheme cumple con las definiciones propuestas por el modelo relacional.
A partir de una descripcion como la dada al inicio del Captulo 2 de este documento,
la pregunta es: como obtener este scheme? A saber, se podra obtener de forma analtica
en funcion de la experiencia del dise
nador. Otra alternativa es utilizar una metodologa
matematica como la que se explicar
a en otro captulo. Finalmente, una combinacion de
ambas alternativas sugiere obtener el scheme a partir del diagrama E-R de la Figura 3.1,
aplicando un metodo de transformacion.
Dado el modelo E-R de la Figura 3.1, para obtener el scheme relacional equivalente,
se deben aplicar los siguientes pasos:
El lector podr
a comprobar que aplicando esta secuencia de pasos se obtiene el scheme
equivalente presentado mas arriba. Mas a
un, si se han seguido todos los pasos se
nalados se
debera obtener un scheme con la estructura preliminar al que se utilizara en la practica.
Por ejemplo: el siguiente codigo corresponde a una definicion basica para crear la base de
datos EMPLEADO en el administrador de bases de datos mysql:
N
otese que los nombres han cambiado en relaci
on al diagrama de la Figura 3.1.
Adem
as, los nombres de los atributos no siguen las convenciones dadas en el captulo
anterior. No es necesario detenerse en esto, el ejemplo ha sido transcrito literalmente
desde la fuente y se explicar
a a su debido tiempo las ventajas o desventajas de realizar
esto.
1. Notaci
on: dado el scheme de la base de datos EMPLEADO que aparece en este
captulo responda las preguntas y definiciones que se piden a continuacion:
(b) Cu
al es el grado de cada una de las relaciones?
(c) Cu
al es el n
umero de tuplas de cada una de las relaciones?
i. r = {t|t = t2 t = t5 }.
ii. t3 = {v8 = 360, v10 = 1}.
iii. dom(A10 ).
iv. dom(A7 ) dom(A7 ).
v. |dom(A8 )| |dom(A8 )|.
vi. t2 [A4 , A1 , A2 , A3 ].
vii. t[A1 , A2 ].
Compa
na de capacitacion.
Compa
na de videos.
Los Arcoch.
3. Los organizadores del Mundial 2018 han encargado a su empresa hacer una primera
aproximacion de una base de datos usando el modelo relacional. Para ello a usted
se le ha entregado la siguiente informacion que debe representar en la base de datos:
3.4. Ejercicios propuestos 37
El a
no y pas donde se han realizado los mundiales, la estaci
on (invierno, verano,
etc.), el nombre del presidente de la FIFA en ese instante y otros datos.
Los pases participantes y los jugadores de cada seleccion, indicando las carac-
tersticas personales de importancia (nombre, edad, en que equipo juega, etc.),
y posicion dentro del esquema del equipo. Es importante saber que un mismo
jugador puede estar en varios mundiales y jugar en posiciones diferentes (en un
mismo mundial juega en una misma posicion) pero siempre por el mismo pas.
Existen obreros que realizan un solo tipo de trabajo, como por ejemplo
descarga, limpieza, conducci
on de vehculos, etc. Existen Empresas Con-
tratistas que contratan a dichos obreros. A su vez las Compa
nas Navieras
contratan los servicios de una o mas empresas contratistas a la llegada de
un barco, de acuerdo al servicio que necesitan, por ejemplo, una compa
na
necesita 10 estibadores, 2 conductores y personal de limpieza. Los obreros
s
olo son contratados por las empresas contratistas (solo una). Una empresa
puede estar entregando servicios a varios barcos de distintas compa
nas.
5. Se necesita crear una base de datos relacional para la Municipalidad de Punta Arenas,
que permita llevar la mantenci
on de las empresas contratistas que realizan trabajos
para ella, para lo anterior tome en cuenta lo siguiente:
Las empresas tienen maquinarias, las cuales pueden ser usadas en las distintas
obras. Tambien es importante saber que las empresas pueden subcontratar a
otras.
7. Un empresario due
no de un Pub le solicit
o a su empresa redise
nar una base de
datos, la cual representa la informacion de su local comercial. Para esto tome en
cuenta lo siguiente: el Pub tiene personal que desarrolla una u
nica actividad como
barman, mesero, limpieza, etc. Los meseros atienden las mesas, las cuales tienen
codigo y alguna otra informacion (puede ser ubicaci
on); a las mesas se le asignan
distintos consumos (realizados por los clientes), los cuales se reflejan en la boleta
final (con la identificacion de la mesa, el empleado que la atendi
o y el detalle de
los consumos). Los consumos tienen codigos y nombres, como por ejemplo: Ruso
Negro, Clavo Oxidado, Manhattan, etc. Un consumo est
a compuesto por varios
ingredientes; tambien es importante saber cu
ales son sus ingredientes (interesa la
proporci
on o cantidad). Un consumo se puede repetir en varias mesas, y a su vez
una mesa puede tener varios consumos.
8. Se necesita crear una base de datos para una clnica con la siguiente informacion:
existen servicios (traumatologa, pediatra, rayos, etc.), usuarios que tienen aten-
ciones en dichos servicios, adem
as medicos y sus especialidades (pediatra, neu-
rologa, etc.; s
olo una especialidad por medico). Cada usuario tiene un k
ardex,
donde van las observaciones puestas por los medicos y los servicios en que ha es-
tado, puede haber sido mas de un medico o servicio. Las observaciones son puestas
3.4. Ejercicios propuestos 39
por cada medico, indicando fecha y hora de la atencion. No se debe olvidar los
datos personales de medicos y usuarios. La base de datos debe permitir mantener
eficientemente el k
ardex y sus observaciones.
9. A usted le corresponde ser parte del equipo organizador del Encuentro de Egresados
del Departamento de Ingeniera en Computaci
on. Se le ha solicitado el dise
no de
una base de datos para mantener la informacion concerniente a los egresados (datos
personales y carrera a la que perteneci
o), almacenando tambien el historial de los
empleos (o actividades) que ha realizado, as como las empresas donde ha estado.
Tome en cuenta lo siguiente:
Es importante saber cu
al es la carrera que estudio el egresado y en que empresa
est
a trabajando actualmente.
plo pediatra, obstetricia, traumatologa, etc. Existen Usuarios que piden presta-
ciones al Policlnico. Las horas se dan de acuerdo a un calendario fijado, donde se
indica las horas en que atender
a cada medico. Cada cliente y medico tiene su ficha
personal con sus datos.
Captulo 4
http://coba.dc.fi.udc.es/bd/bd2/MySQLWB/tutorialWB.html.
41
42 Captulo 4. MySQL Workbench: herramienta de dise
no
4.1 Introducci
on a MySQL Workbench
Existen versiones para Window, Linux y Mac. La pagina oficial de la aplicacion desde
donde se puede descargar el producto y obtener manuales, tutoriales, etc. es:
http://www.mysql.com/products/workbench/.
La herramienta se utiliza para realizar diagramas EER mediante las siguientes fun-
ciones: primero dise
nar el diagrama EER, implement
andolo sobre la herramienta y a partir
de el obtener el diagrama del esquema relacional. Todo esto se realiza de manera gr
afica
en la herramienta. A partir del diagrama se puede obtener de manera automatica un
archivo con sentencias DDL para MySQL donde se tienen las definiciones para la creacion
de tablas, vistas e ndices, incluyendo las claves primarias, las claves foraneas y a quienes
referencian. Si se desea, con algunas modificaciones, estos archivos pueden adaptarse a los
requerimientos de los usuarios cuando sea necesario.
4.2 C
omo crear un diagrama EER?
4.2.1 Creaci
on de tablas
Para crear una tabla se debe hacer click sobre el cono Insertar Tabla y click sobre la
posicion del lienzo en la que queremos ver la tabla, donde aparecera una imagen como la
mostrada en la Figura 4.3. Con doble click sobre la tabla creada se desplegara un men
u en
4.2. C
omo crear un diagrama EER? 43
la parte inferior de la interfaz, como se muestra en la Figura 4.4. Aqu podremos introducir
las propiedades de la tabla como el nombre de la tabla, las columnas, los ndices, las claves
externas, etc. En principio, no es necesario cambiar algunos de los valores que vienen por
defecto, o completar todas las propiedades.
44 Captulo 4. MySQL Workbench: herramienta de dise
no
En la pesta
na Columns del Men
u Tabla se pueden agregar los atributos de la tabla,
considerando lo siguiente:
NN a
nade la restricci
on NOT NULL para un atributo.
4.2.2 Creaci
on de relaciones
Para declarar las vinculaciones de clave foraneas o externas se utilizan las opciones que
aparecen en la Figura 4.6. Se muestra el Men
u Relaciones para crear los tipos de relaci
on
1:1, 1:N y N:M en un EER. El calificativo identificadora que aparece en las leyendas de
la figura indica si los atributos que forman parte de la clave externa (lado N de la relaci
on)
deben formar parte tambien de la clave primaria de dicha entidad, lo que ocurre si una
tabla proviene de un tipo de entidad debil o en el caso de atributos de tablas que provienen
de tipos de relaci
on N:M.
Existen al menos dos formas diferentes de crear relaciones entre tablas: a traves del
Men
u Tabla o usando el Men
u Relaciones. Para el caso 1:1 y 1:N se recomienda utilizar
el Men
u Tabla, con el cual se siguen los siguientes pasos:
2. Crear los atributos que van a hacer la funcion de clave foranea ( si no est
an definidos
ya).
3. Comprobar que existen los atributos en la tabla referenciada por la clave foranea.
Si no existen deben crearse antes de continuar.
4. En el men
u de tabla, desplegar la pesta
na Foreing Keys. Se obtiene una vista como
la mostrada en la Figura 4.7 con las siguientes opciones:
2. Se elige en el men
u de la izquierda el tipo de relaci
on que se desea.
4. Los retoques que se deseen hacer sobre la clave foranea se hacen siguiendo lo indicado
en el punto 4 indicado mas arriba.
Como nota final, el recopilador considera que una de las utilidades principales
de la aplicaci
on es su capacidad para exportar los diagramas hacia un script
de MySQL, o hacia im
agenes en formato PNG o PDF. Mas adelante se volvera
sobre esta herramienta para estudiar otras de sus caractersticas, considerando
los conceptos que son necesarios estudiar para su aplicacion.
4.3. Ejemplo de aplicaci
on 47
Se comenzar
a primero con la tabla DEPT y luego con la tabla EMP. Los pasos a seguir
se detallan a continuacion:
1. Click en el icono se
nalado con la flecha (insercion tabla) y luego click sobre el
lienzo. Para editar las propiedades de la tabla hacer doble click sobre la misma.
Ver Figura 4.9.
2. A
nadir los atributos a la tabla: en la pesta
na Table se cambia table1 por el nombre
DEPT; en la pesta
na Columns se a
nade una a una las columnas de la tabla (ver
Figura 4.10). N
otese que est
a indicado que la columna DEPTO es clave primaria
(al indicar que es clave primaria el checkbox de NN (Not Null ) se marca de forma
automatica).
3. Realizar los pasos 1 y 2 para la tabla EMP. La definicion de columnas se debe parecer
a la mostrada en la Figura 4.11.
4. Definir la restricci
on de clave foranea en la tabla EMP. Para esto se puede realizar lo
siguiente: a
nadir una columna mas a la tabla EMP con el nombre de DEPT; hacer
48 Captulo 4. MySQL Workbench: herramienta de dise
no
una flecha en la Figura 4.14 y hacer click, primero sobre la tabla EMP y luego sobre
la tabla DEPT. Luego se puede cambiar el nombre de la columna DEPT DEPTO
por DEPT y el resultado sera similar al que se obtuvo con el otro metodo.
1. Utilizando la herramienta MySQL Workbench obtenga los diagramas EER para los
problemas presentados en el Captulo 2:
Compa
na de capacitacion.
Compa
na de videos.
Los Arcoch.
50 Captulo 4. MySQL Workbench: herramienta de dise
no
Algebra Relacional
Algebra Relacional.
51
52
Captulo 5. Algebra Relacional
Se debe recordar que el modelo de E-R diferencia entre dos elementos de importancia:
las entidades y relaciones. Estos elementos son denominados de forma indistinta como
relaciones en el caso del modelo relacional1 . En la practica, las relaciones del modelo
relacional se representan como un conjunto de tablas, como se vio en los esquemas EER.
Sobre las relaciones se definen un conjunto de operaciones que permiten hacer consultas
sobre la base de datos. Al conjunto de operaciones as definido se le denomina Algebra
Relacional.
5.2
Algebra relacional
Operadores fundamentales.
Operadores derivados.
Por simplicidad, las relaciones seran representadas como tablas y por lo tanto el resul-
tado de los operadores sera mostrado como una tabla.
Uni
on Si R y S son relaciones, entonces R S denota al conjunto de tuplas que est
an
en R o S. Los atributos de R y S deben ser identicos en nombre y dominio2 . Ver
Tablas 5.2, 5.3 y 5.4.
A B
a1 b1
a2 b2
a3 b3
A B
a2 b2
a3 b3
a4 b4
A B
a1 b1
a2 b2
a3 b3
a4 b4
A B
a1 b1
A B
a4 b4
C D
c1 d1
c2 d2
E F
e1 f1
e2 f2
C D E F
c1 d1 e1 f1
c1 d1 e2 f2
c2 d2 e1 f1
c2 d2 e2 f2
Proyecci
on Si W es una relaci
on con atributos v1 , v2 , . . . , vn , entonces la proyecci
on
denotada por v ,v ,v
i j k
(W ) es el conjunto de valores vi , vj , vk para cada tupla de W.
Ver Tablas 5.10, 5.11 y 5.12.
C D E F
c1 d1 e1 f1
c1 d1 e2 f2
c2 d2 e1 f1
c2 d2 e2 f2
C
c1
c2
D F
d1 f1
d1 f2
d2 f1
d2 f2
Selecci
on Si W es una relaci
on con atributos v1 , v2 , . . . , vn , entonces la seleccion denotada
por (W ) es el conjunto de tuplas de W que satisfacen la condici
on . La condici
on
se construye con operadores l
ogicos o relacionales. Ver Tablas 5.13 y 5.14.
C D E F
c1 d1 e1 f1
c1 d1 e2 f2
C D E F
c1 d1 e2 f2
Intersecci
on Si R y S son relaciones, entonces R S denota al conjunto de tuplas que
est
an en R y tambien est
an en S. Esto es equivalente a realizar las siguientes opera-
ciones: R - (R - S). El lector puede comprobar que esta operaci
on si es conmutativa
a pesar de estar definida sobre una que no lo es. Como est
a basada en la diferencia
de relaciones, se requiere que los atributos de R y S sean identicos en nombre y
dominio. Ver Tabla 5.15.
A B
a2 b2
a3 b3
C D E F
c1 d1 e2 f2
c2 d2 e2 f2
E6=e1 U.
Tabla 5.16: Resultado de T
C
c1
C D E F
c1 d1 e1 f1
c1 d1 e2 f2
c2 d2 e1 f1
c2 d2 e2 f2
C D E F
c1 d1 e1 f1
c1 d1 e2 f2
x l+1 ,...,xn
(W) - x l+1 ,...,xn
(( xl+1 ,...,xn (W) V) - W),
D E F
d1 e1 f1
d1 e2 f2
C D E F
(a) Mostrar todas las tuplas de la tabla VENDEDOR donde la columna comisi
on
sea igual a 10%.
(c) Mostrar el rut y el nombre de todos los vendedores con comision del 10%.
(b) Nombre y salario de los empleados que trabajan en todos los proyectos.
(b) Mostrar todos los pares de medicamentos que sirven para una misma enfer-
medad.
(a) Cu
ales fueron las pelculas que se arrendaron en diciembre de 2014?
(b) Mostrar el rut y el nombre de los clientes que han arrendado pelculas del genero
Accion.
5.4. Ejercicios propuestos 59
(c) Mostrar el nombre de las pelculas que no tuvieron salida entre enero y febrero
de 2015.
SERVICIO( n
umero, nombre).
KARDEX( rut, nombre, apellido, fecha nacimiento).
FICHA DIAGNOSTICO( rut, fecha, n
umero, diagnostico).
(b) Que usuarios han tenido Apendicitis pero no fueron atendidos por el servicio
de Urgencia? Considerar entre el 1 y el 28 de febrero de 2015?
(c) Nombre de los usuarios que han recibido atencion en todos los servicios.
(a) Apellido y nombre de todos los alumnos que inscribieron asignaturas el segundo
semestre de 2014.
(b) Apellido y nombre de los alumnos que hayan cursado todas las asignaturas.
(a) Indicar los datos personales de todas aquellas personas que tengan alguna copia
del libro Dise
no de Bases de Datos Relacionales.
60
Captulo 5. Algebra Relacional
(b) Indicar los datos personales de aquellos lectores que hayan pedido todos los
libros del autor Herbert Schild.
(c) Indicar el nombre de todos los lectores que tengan libros atrasados a la fecha
de hoy.
CUENTA( n
umero, tipo, rut, fecha apertura, fecha u
ltimo movimiento, saldo).
DEPOSITO( codigo, n
umero, monto, fecha, sucursal).
GIRO( codigo, n
umero, monto, fecha, sucursal).
(b) Cu
antos clientes est
an sobregirados? (Saldo < 0).