Professional Documents
Culture Documents
Notas de Curso
Miguel Murgua
miguelmurgua@gmail.com
Mxico, D.F.
Mayo, 2004
Junio, 2005
Contenido
I Introduccin......................................................................6
I. Conceptos Bsicos de Bases de Datos...........................................6
1.1 Panorama de las Bases de Datos.............................................................. 6
1.2 Modelos de Datos: 3 Niveles...................................................................... 9
1.3 Los Lenguajes en las Bases de Datos ..................................................... 12
1.4 Arquitectura general de un DBMS............................................................ 14
Preguntas....................................................................................................... 16
3. Vistas ............................................................................................93
Definicin de vistas ........................................................................................ 93
Modificabilidad de las Vistas .......................................................................... 95
Algoritmo VU .................................................................................................. 96
3. Integridad....................................................................................127
Integridad de dominio................................................................................... 127
Integridad intra-relacional............................................................................. 129
Integridad referencial ................................................................................... 129
Integridad semntica intra-relacional ........................................................... 130
Anlisis de consistencia en bases de datos geogrficas.............................. 130
Afirmaciones ................................................................................................ 131
Disparadores................................................................................................ 132
4. Autorizaciones ............................................................................132
5. Catlogo .....................................................................................135
On-line.......................................................................................................... 135
Concurrencia................................................................................................ 135
Descripcin de dominios, relaciones base y vistas ...................................... 137
Restricciones de integridad .......................................................................... 138
Funciones definidas por el usuario............................................................... 139
Datos de autorizacin .................................................................................. 139
Estadsticas.................................................................................................. 139
Bibliografa .......................................................................156
Pginas WWW .................................................................157
Temarios ...................................................................................................... 157
I Introduccin
I. Conceptos Bsicos de Bases de Datos
1.1 Panorama de las Bases de Datos
Los DBMS dan facilidades para realizar varias tareas comnmente asociadas a la
informacin de una base de datos, como son la definicin de la estructura de las tablas
donde se almacenar la informacin, el tipo de datos a almacenar, la creacin de pantallas
de captura, la generacin de reportes, clasificaciones, filtros, actualizaciones, entre otras.
Por ejemplo, para una base de datos de una escuela, el DBMS debe dar facilidades para:
Registro de calificaciones.
Impresin de listas de los grupos.
Captura de calificaciones finales.
Correccin de calificaciones.
Reportes de materias que adeuda un estudiante.
Promedios de calificaciones por materia.
Las ventajas de los DBMS con respecto a los sistemas de archivos son:
Independencia de Datos
Eficiencia en el Acceso
Integridad y Seguridad
Administracin de Datos
Acceso Concurrente
Recuperacin de Crash
Desarrollo de Aplicaciones en tiempos reducidos
Abstraccin de datos
Uno de los objetivos de los sistemas de bases de datos es mostrar una visin abstracta de
los datos, es decir, se esconden ciertos detalles de cmo se almacenan y manejan los datos,
para mostrar slo aquellos aspectos de utilidad prctica al usuario.
Esa visin abstracta de los datos puede clasificarse en tres niveles:
Nivel fsico. Se describe el almacenamiento digital de los datos en la memoria principal y
secundaria de la computadora. Se debe de considerar la arquitectura y atributos de los
sistemas y medios de almacenamiento.
Nivel conceptual. Se describe la informacin que se almacena en la base de datos, hasta
cierto punto independientemente del sistema fsico en el que se implemente. En este nivel,
la informacin ya tiene un carcter semntico concreto y directo para los usuarios (v.g. un 7
no se ve como una representacin decimal de 0111 en binario, sino como la calificacin de
un alumno en cierta materia).
Nivel de visin. Aunque en el nivel conceptual se describe la manera de almacenar
informacin que tiene un significado concreto en el dominio de aplicacin, en el nivel de
visin se centra an ms en el significado para el usuario. La informacin se clasifica de
acuerdo al tipo de usuario, cambiando el formato de presentacin y seleccionando slo
aquella de inters directo.
Modelos de datos
Los modelos de datos son herramientas para describir la estructura de una base de datos:
los datos y las relaciones entre ellos, la semntica asociada y las restricciones de
consistencia.
Se clasifican en tres grupos segn el nivel de abstraccin.
Nivel SEMNTICO:
Niveles conceptual y de visin. Permiten expresar restricciones de datos explcitamente.
Hay muchos modelos, entre ellos:
UML
Modelo entidad-relacin
Modelo orientado a objetos
Modelo binario
Modelo semntico de datos
Modelo infolgico
Modelo funcional de datos
Nivel LGICO
Los modelos lgicos basados en registros correspondes a los niveles de abstraccin
conceptual y fsico. Se llaman basados en registros porque la base de la representacin son
los registros de formato fijo, donde cada campo normalmente es de longitud fija, lo que
simplifica su implementacin. En el modelo orientado a objetos se utilizan registros de
longitud variable, generando una estructura ms rica en el nivel fsico.
Los tres modelos de datos ms aceptados actualmente son el relacional y el de objetos. Los
modelos de red y jerrquico se consideran, como ya se comento, un escaln histrico para
la concepcin del relacional.
10
Nivel FSICO
Los modelos fsicos corresponden al nivel de abstraccin fsico. Hay muy pocos modelos
fsicos en uso, a diferencia de los modelos lgicos; dos de los ms conocidos son el modelo
unificado y la memoria de elementos.
Nivel de abstraccin
Fsico
Conceptual
Visin
Esquema
Esquema fsico
Esquema conceptual
Esquema externo
En el nivel de visin pueden existir varios subesquemas, ya que su funcin es brindar una
forma especializada de acceso a la informacin a cada tipo de usuario.
11
Haciendo una analoga con los lenguajes de alto nivel,el esquema corresponde a la nocn
de tipo, mientras que la instancia a la de valor que adquiere determinada variable.
Independencia de datos
Independencia de datos es la capacidad de modificar la definicin de un esquema sin
afectar la definicin de un nivel superior.
Independencia Lgica: Modificar el esquema conceptual sin provocar que se necesiten
escribir los programas de aplicacin.
Independencia Fsica: Modificar el esquema fsico sin provocar que se necesiten escribir
los programas de aplicacin.
La independencia lgica es ms difcil de lograr que la fsica, pues los programas de
aplicacin son fuertemente dependientes de los datos que acceden.
La independencia de datos es anloga a los tipos abstractos de datos de los lenguajes de
programacin.
Los DBMS pueden responder a una amplia gama de preguntas sin necesidad de mucho
esfuerzo por parte del usuario. Estas preguntas a la BD se llaman Queries. Los lenguajes
para trabajar con datos se pueden dividir en dos tipos, o bien tiene dos funciones:
Lenguaje de definicin de datos
Lenguaje de manipulacin de datos
12
Lenguaje de consulta: subconjunto del DML que permite slo consultas, pero no
modificaciones.
El lenguaje usado actualmente como DML y DDL es SQL. Aunque existen sistemas cion
otros lenguajes, se puede de decir que para fines prcticos SQL es el lenguaje que
utilizan los DBMS.
Los fundamentos para los lenguajes de queries son el Clculo Relacional y el lgebra
Relacional, ambos son equivalentes, el primero es declarativo, mientras que el segundo se
concibe con base en operadores.
13
14
Gestor de Base de Datos. Interfaz entre los datos de bajo nivel y los programas de
aplicacin y consultas al sistema:
Mtodos de acceso
Administrador del buffer
Administrador de espacio en disco: Asignacin de espacio en disco. Estructuras de
datos usadas para representar informacin.
Administrador de Recuperacin. Todos los sistemas informticos estn sujetos a fallas
lgicas y fsicas (dao del disco, alteraciones en el suministro de energa, errores de
software, etc.), el DBMS debe ser capaz de detectar estas fallas y tomar las medidas
necesarias para reestablecer la base de datos, normalmente mediante copias de seguridad o
bitcoras (archivos log).
Control de Concurrencia. Cuando varios usuarios actualizan la base de datos es posible que
no se conserve la consistencia de los datos. El DBMS debe controlar estas concurrencias,
que es los que permite a los usuarios pensar como si ellos estuvieran trabajando de manera
aislada.
Administrador de transacciones
Administrador de Bloqueos. protocolo de bloqueo
15
Preguntas
1.
2.
3.
4.
5.
16
2. El Modelo Entidad-Relacin
Generalidades del Modelo Entidad-Relacin
El modelo entidad relacin es un modelo lgico basado en objetos que resuelve el
problema de la descripcin de datos en los niveles conceptual y de visin. Consiste en un
conjunto de objetos bsicos llamados Relaciones y Entidades.
Entidades y Relaciones
Entidad. Objeto que existe y es distinguible de otros. Puede ser fsico (v.g. persona o libro)
o abstracto (v.g. da festivo o conceptos).
Conjunto de Entidades. Grupo de entidades del mismo tipo, por ejemplo, el conjunto
(ALUMNO) de todas las personas que toman cursos en la FAR. Los conjuntos
de entidades no necesariamente deben ser disjuntos, por ejemplo ALUMNO y
PROFESOR pueden compartir entidades.
Atributo. Caractersticas de las entidades. Una entidad est representada por un conjunto de
atributos. Los atributos representan el uso de un dominio. Por ejemplo,
Nombre_alumno es una atributo del conjunto de entidades ALUMNO.
Dominio. Conjunto de valores permitidos para cada atributo. Por ejemplo, el dominio del
atributo calificacin podra ser el conjunto de todos los reales entre 0 y 10.
Relacin. Asociacin entre dos o ms entidades.
17
PROVEEDOR
Nombre_proveedor
OFIMAX
LUMEN
EXPENDIO LUPITA
MAGO DE OZ
Telfono
645 4523
234 5467
545 3421
534 6756
Nombre_proveedor
LUMEN
Telfono
234 5467
Formalmente:
Dados los conjuntos D1, D2, ..., Dn, se dice que R es una relacin
sobre estos n conjuntos si es un conjunto de n elementos ordenados
(d1, d2, ..., dn) tales que d1 D1, d2 D2, ..., dn Dn.
Los conjuntos D1, D2, ..., Dn son los dominios de R.
El valor n es el grado de R.
Dada esa definicin, el trmino relacin, tambin suele usarse para denotar a una
tabla o conjunto de entidades, pues si:
D1= Nombre_proveedor
D2= Telfono
entonces, la siguiente es una relacin:
PROVEEDOR
Nombre_proveedor
OFIMAX
LUMEN
EXPENDIO LUPITA
MAGO DE OZ
Telfono
645 4523
234 5467
545 3421
534 6756
18
R= {di, dj}
Cardinalidad de una relacin. Nmero de entidades que contiene una relacin.
Conjunto de Relaciones
Conjunto de relaciones: Conjunto de relaciones del mismo tipo.
Por ejemplo, la relacin CATALOGO entre las entidades PROVEEDOR y
PRODUCTO:
PRODUCTO
Nombre_producto
LAPIZ
GOMA
CHOCOLATE
CHAMOI
CATALOGO PROVEEDOR
Nombre_proveedor
OFIMAX
LUMEN
EXPENDIO LUPITA
MAGO DE OZ
Telfono
645 4523
234 5467
545 3421
534 6756
Nombre_proveedor
OFIMAX
LUMEN
EXPENDIO LUPITA
LUMEN
EXPENDIO LUPITA
EXPENDIO LUPITA
MAGO DE OZ
EXPENDIO LUPITA
19
Cardinalidad de asignacin
Cardinalidad de asignacin: Nmero de entidades con las que puede asociarse otra
entidad, dentro de un conjunto de relaciones.
Si A y B son conjuntos de entidades, la cardinalidad de asignacin de un conjunto
de relaciones entre ellas, puede ser:
1:1
1:N
N:M
20
...
DIRECCION
Calle_y_nmero
Colonia
...
ALUMNO
Nombre_alumno
...
CATALOGO PROVEEDOR
Nombre_proveedor
OFIMAX
LUMEN
EXPENDIO LUPITA
MAGO DE OZ
Telfono
645 4523
234 5467
545 3421
534 6756
21
Claves
Superclave. Conjunto de atributos que permiten distinguir de forma nica a una entidad
dentro del conjunto de entidades. Por ejemplo, {Rfc} es una superclave de la
entidad CONTRIBUYENTE, tambin {Rfc, Nombre} es una superclave, pero
{Nombre} no es una superclave, pues varios contribuyentes pueden tener el
mismo nombre.
Clave candidata. Superclave, tal que ningn sobconjunto propio es una superclave. El
concepto de clave candidata sirve para definir conjuntos con cardinalidad
mnima de atributos que identifiquen a las entidades. Pueden existir varias
claves candidatas para cada entidad.
Clave primaria. Clave candidata que elige el diseador para distinguir a las entidades
dentro del conjunto de entidades.
Clave alterna. Clave candidata que no es la clave primaria.
Conjunto dbil de entidades. Conjunto de entidades para el que no se puede definir una
clave candidata.
Conjunto fuerte de entidades. Conjunto de entidades para el que s se puede definir al
menos una clave candidata.
Entidad dominante. Entidad que pertenece a un conjunto fuerte de entidades.
Entidad subordinada. Entidad que pertenece a un conjunto dbil de entidades.
Discriminador. Conjunto de atributos que el diseador crea de manera artificial para
permitir distinguir de manera nica a cada entidad de un conjunto dbil de
entidades.
Por ejemplo, el conjunto dbil de entidades
TRANSACCION = {Nmero_de_cuenta,
Nmero_transaccin,
Fecha}
contiene el atributo Nmero_transaccin como discriminador. As, la clave
primaria de un conjunto dbil de entidades est formada por la clave primaria
del conjunto de entidades fuerte del que depende su existencia y el
discriminador.
22
Por ejemplo,
{Nmero_de_cuenta, Nmero_transaccin }
distingue entidades TRANSACCION dentro de una misma CUENTA.
Atributos de relaciones
Sea R un conjunto de relaciones que involucran a los conjuntos de
entidades E1, E2, ...En y sea Ei los atributos que conforman a la clave
primaria de Ei, entonces los atributos de R son:
la clave primaria de E1,
la clave primaria de E2,
...
y
la clave primaria de En
es decir:
{E1, E2, ..., En}
R puede tener atributos descriptivos (adicionales), por lo que el
conjunto de atributos de la relacin R sera:
{E1, E2, ..., En, a1, a2, ..., an}
E1=PRODUCTO
Nombre_producto
LAPIZ
GOMA
CHOCOLATE
CHAMOI
Clase
PAPELERIA
PAPELERIA
DULCERIA
DULCERIA
E2=PROVEEDOR
Clase
PAPELERIA
PAPELERIA
DULCERIA
DULCERIA
Nombre_proveedor
OFIMAX
LUMEN
EXPENDIO LUPITA
MAGO DE OZ
Telfono
645 4523
234 5467
545 3421
534 6756
23
PEDIDO
E1
E2
Nombre_producto
LAPIZ
CHOCOLATE
Nombre_proveedor
LUMEN
LUPITA
a1
Cantidad
100
20
Reglas de integridad
La interpretacin del mundo real que se hace de una relacin, lleva a considerar la
imposicin de reglas de integridad. Es decir, hay cosas que el modelo terico permite, pero
que no se dan en la realidad.
1: Integridad de la Entidad. Ningn valor de un componente de la llave primaria puede ser
nulo.
2: Integridad de Referencia. Sea D un dominio primario y R una relacin con atributo A
que se define sobre D. Cada valor de A en R debe ser un valor de la llave
primaria de alguna relacin con llave primaria sobre D.
Dominio Primario. Dominio para el que existe una llave primaria de un slo
atributo.
Clave fornea. Atributo con las propiedades de A.
Extensin. Conjunto de tuplas que tiene una relacin en un instante dado.
Comprensin. Esquema de la relacin.
24
Diagramas E-R
Los elementos usados en los diagramas Entidad-Relacin son:
25
EJERCICIOS
1. Defina un esquema para el control de un negocio.
2. Realiza un diagrama E-R. Utilice adecuadamente la simbologa revisada en clase.
3. Indique algunos ejemplos de atributos que podran definirse como entidades y viceversa,
de acuerdo a diferentes necesidades de control.
4. Ejemplifique: relaciones recursivas, atributos multivaluados y compuestos, restricciones
de participacin total y parcial.
26
Dominios y Atributos
Atributo. Caractersticas de las entidades. Una entidad est representada por un conjunto de
atributos. Los atributos representan el uso de un dominio. Por ejemplo,
Nombre_alumno es una atributo del conjunto de entidades ALUMNO.
Dominio. Conjunto de valores permitidos para cada atributo. Por ejemplo, el dominio del
atributo calificacin podra ser el conjunto de todos los reales entre 0 y 10.
Cada atributo simple de un tipo de entidad est asociado con un conjunto de valores o
dominio.
El atributo A de un tipo de entidad E cuyo conjunto de valores es V, puede definirse como
una funcin de E hacia el conjunto potencia de V:
A: E P(V)
El conjunto potencia P(V) de un conjunto V es el conjunto de todos los subconjuntos de V.
Atributo derivado. Atributo que puede ser calculado a partir de otro almacenado. Por
ejemplo, la Edad puede derivarse del atributo Fecha_de_nacimiento.
Atributo almacenado. Atributo que se graba fsicamente en los archivos y que puede servir
de base para calcular otros. Por ejemplo el atributo Sueldo puede servir para
calcular el Impuesto.
Atributo compuesto. Atributo que est formado por otros atributos. Por ejemplo,
Direccin puede componerse de Calle, Nmero, Colonia y Cp.
Atributo multivaluado. Atributo que puede adquirir ms de un valor para una misma
entidad. Por ejemplo, el atributo Color de un coche puede tener hasta 3
valores.
27
Cardinalidad de asignacin. Nmero de entidades con las que puede asociarse otra entidad,
mediante un conjunto de relaciones.
Restriccin de participacin. Especifica si la existencia de una entidad depende de la de
otra via relacin. Puede ser total o parcial.
Dependencia de existencia (participacin total). Especifica que toda entidad est
relacionada a alguna(s) de la del otro conjunto. Por ejemplo, todo
MUNICIPIO pertenece a un ESTADO.
Participacin parcial. Especifica que algunas entidades (pero no necesariamente
todas) estn relacionadas a alguna(s) de la del otro conjunto. Por
ejemplo, algunos MUNICIPIOS tienen PUERTOS
Restriccin estructural. Cardinalidad de asignacin y restricciones de participacin.
Restriccin estructural
Restriccin de participacin
Cardinalidad
total
parcial
1:1
1:N
N:M
28
Papel. Una entidad que participa en una relacin, desempea un papel. El nombre del tipo
de la entidad no necesariamente es el mismo que el del papel (v.g. en las
relaciones recursivas).
DIRECCION
PROYECTO
SUPERVISION
EMPLEADO
Director
EMPLEADO
Supervisor
Supervisado
Relacin recursiva. Relacin en la que participan entidades del mismo conjunto (tipo). Una
entidad que participa en una relacin recursiva puede tener dos papeles
distintos.
29
1969
1970
1971
1976
1979
1990
30
31
Tuplas
32
Adems, una base de datos puede ser utilizada por cientos o miles de usuarios,
por lo que debe existir un significado comn para todos los datos que accecen.
No existe una interpretacin precisa, aceptada e independiente del contexto
para los renglones repetidos.
En general, cada tupla o rengln asociado al nombre de la relacin a la que
pertenece implica una aseveracin. Por ejemplo, cada rengln de la relacin
ALUMNO es una aseveracin de que una persona en especfico es un alumno
de la escuela. Este hecho hace a las bases de datos relacionales compatibles
con las bases de conocimientos.
33
34
ALUMNO
Numerocuenta
950001
950002
970001
970002
950003
950004
950005
970003
970004
970005
Nombre-alumno
Oscar Martnez
Mario Snchez
Emilio Vera
Isabel Valderrama
Ma. Elena Caedo
Carmen Daz
Jorge Soto
Miguel Romero
Jos Malo
Salvador Pascual
MATERIA
Clave-materia
01002
01003
02001
02002
03001
03002
02003
EXAMEN
Numerocuenta
950001
950005
970002
970005
Nombre-materia
Algebra
Clculo
Estadstica
Botnica
Fsica relativista
Partculas
elementales
Bioqumica
Clavemateria
02002
03001
01002
03002
AoCarrera
ingreso
95 Biologa
95 Biologa
97 Biologa
97 Matemticas
95 Matemticas
95 Biologa
95 Fsica
97 Biologa
97 Matemticas
97 Fsica
12 Biologa
Orden-de-pago Fechaexamen
3567
6/2/97
3678
4/2/97
3676
5/6/97
3789
3/6/97
35
HISTORIA
Numero-cuenta
950001
950002
950002
950004
950004
970003
970003
36
D1 x D2 x D3 x D4
37
Esquemas de relaciones
38
39
ALUMNO
Numero-cuenta Nombre-alumno
Ao-ingreso
MATERIA
Clave-materia
Nivel
Nombre-materia
Carrera
Crditos Carrera
EXAMEN
Numero-cuenta
Clave-materia Orden-de-pago
HISTORIA
Numero-cuenta
Fecha-examen
Por ejemplo, las bases de conocimiento son ricas, mientras que la mayora de
las comerciales son extensas.
40
Notacin
41
Integridad de Dominio
Integridad de Claves
Integridad de la Entidad
Integridad Referencial
42
insert
update
delete
43
44
Aceptacin
Las nuevas versiones del Modelo Relacional son ms proscriptivas, es decir,
se imponen ms restricciones. Estas imposiciones permitirn, dice Codd,
avanzar de un estado primitivo a uno bsico. Lo analoga a la discusin en
programacin en la que Dijkstra rechazaba el uso del comando GO TO.
La versin modificada Tasmania del modelo de Codd incorpora nuevas
caractersticas que dan potencia adicional a su primera versin, sin embargo,
se ha integrado parcialmente en una segunda versin con la finalidad de dar
oportunidad a los desarrolladores de asimilar estas adiciones.
Nuevas caractersticas
La segunda versin incorpora ms aspectos sobre la semntica. Por ejemplo,
se hace una distincin explcita entre los conceptos columna y dominio y hace
una distincin entre los tipos de datos bsicos y los extendidos. Adems, se da
una descripcin, semntica, de las caractersticas de un lenguaje relacional.
Aunque en la versin original ya se haban definido tres valores de verdad,
TRUE, FALSE, MAYBE, se extienden a 4:
TRUE,
FALSE,
MAYBE BUT APPLICABLE y
MAYBE BUT INAPPLICABLE.
MAYBE BUT APPLICABLE hace referencia a valores que no se han
introducido a la base de datos, mientras que MAYBE BUT INAPPLICABLE
hace referencia a valores que no se encuentran debido a que la propiedad es
inaplicable al objeto.
45
Matemticas
Modelo Relacional
Concepto de relacin
Valores sin restricciones
Valores atmicos
Terminologa
Relacin de grado n
Atributo
Columna de tabla-R
Dominio
Tipo de dato
Tupla
Rengln de tabla-R
Cardinalidad de relacin
46
47
Transaccin
Cada una de las actividades anteriores, se debe poder realizar con xito para
poder ejecutar la transaccin, basta con que alguna de ellas falle, para que no
se realice la transaccin.
Existen dos estrategias para el manejo de transacciones:
1) Almacenar cada resultado de la transaccin en una copia temporal, y
utilizarla despus de que se verific cada una de las acciones para
actualizar la base de datos.
2) Almacenar la descripcin de cada accin de la transaccin en un
archivo log para tener una manera de revertir las acciones en el
momento de que una falle.
48
49
DBMS relacionales
50
La relacin universal
En 1988 surgi la propuesta de utilizar una sola relacin para las bases de
datos: la relacin universal. La relacin universal es un join (equi-join) de
todas las tablas-R, basada en las claves.
La idea de la relacin universal se gener quiz, por la necesidad de no
realizar operaciones join.
El DBMS no debe tratar a la base de datos como una sola relacin universal
aunque s debe poder generarla como una de las posibles vistas.
Algunas de las desventajas del enfoque de la relacin universal son:
Prdida de espacio
La relacin universal desperdicia mucho espacio de almacenamiento debido,
principalmente, a los valores inaplicable.
Dependencia de datos
Se ve involucrado de manera mayor aspectos de almacenamiento fsico, por lo
que al modificar el esquema fsico afectar al lgico.
Dependencia lgica
Al modificar el esquema, es muy probable que se requieran modificar los
programas de aplicacin.
Slo un tipo de join
Una de las ventajas del modelo relacional respecto a la relacin universal es
que permite join de varios tipos, y no slo equi-join basada en claves.
Dificultad para modificar el esquema
Cuando se desea agregar informacin a la base de datos, por ejemplo, agregar
una columna, es muy complicado hacerlo con el esquema de la relacin
universal. Mientras que con el enfoque relacional, se puede agregar fcilmente
o incluso, crear nuevas tablas-R.
51
1) Los dominios son el elemento fundamental que hace que una base de
datos tenga unidad
Si dos relaciones no comparten ningn dominio, no pueden relacionarse. Una
base de datos, concebida como un conjunto de relaciones CR y otro de
dominios CD, puede dividirse en dos bases de datos sin prdida de
informacin, si no comparten ningn dominio, formalmente:
Si
CR es un conjunto de relaciones;
CD un conjunto de dominios;
cr CR;
cd CD
y
1) las relaciones en cr utilizan slo los dominios en cd
2) las relaciones en CR-cr utilizan slo los dominios en CD-cd
Entonces:
la base de datos se puede dividir en dos (CR-cr, CD-cd) y (cr, cd) sin
prdida de informacin.
Adems, los dominios permiten detectar las comparaciones que tienen sentido
y las que no lo tienen.
52
53
Recuerde que
54
Lenguaje formal
El lgebra relacional es un leguaje puro de procedimiento, es decir, es un
lenguaje definido formalmente del que se pueden hacer diversos tipos de
implementaciones.
Las operaciones son cerradas
Las operaciones del lgebra relacional involucran como operandos a una o dos
relaciones y siempre devuelven como resultado otra relacin, es decir son
cerradas. Manejar bases de datos con lenguajes que no respeten la
cerradura es casi imposible.
La propiedad de cerradura del lgebra relacional facilita el uso del lenguaje,
pues en una misma expresin se pueden contatenar los resultados de las
operaciones hacindolos participar como operandos de otras operaciones.
Lenguaje flexible y potente
Los operadores relacionales permiten a los usuarios consultar informacin de
una base de datos de una manera flexible y potente, pero sin necesidad de que
tenga conocimientos de programacin.
Diseado para trabajar con tablas-R
Cada operador relacional del modelo relacional est diseado para trabajar
sobre relaciones que no tienen renglones duplicados y para generar relaciones
sin renglones duplicados.
55
Los operadores
unin,
interseccin,
diferencia y
producto cartesiano
Operadores bsicos
proyeccin
theta-seleccin
theta-seleccin extendido
producto cartesiano*
unin
diferencia
interseccin
producto natural*
theta-join
theta-join extendido
natural-join
divisin
*Estos operadores ya no se consideran indispensables en la segunda versin.
56
Operadores de manipulacin
asignacin relacional
insert
update
delete
Operadores avanzados
framing
extend
semi-join
outer-join
outer-union
outer-difference
outer-interseccin
T-joins
user-defined-selects
user-defined-joins
recursive-join
57
Proyeccin
Carrera
Biologa
Biologa
Biologa
Matemtica
s
Matemtica
s
Biologa
Fsica
Biologa
Matemtica
s
Fsica
58
59
Theta-Seleccin
R[a=cte]
SELECT a1, a2,... FROM R WHERE a1=cte;
Nombrealumno
Isabel
Valderrama
Ma.Elena
Caedo
Jos Malo
Aoingreso
Carrera
97 Matemtica
s
95 Matemtica
s
97 Matemtica
s
En SQL:
SELECT * FROM Alumno WHERE carrera=Matemticas
60
Z ALUMNO [Ao_ingreso=97]
El resultado:
Numerocuenta
970001
970002
970003
970004
970005
NombreAoalumno
ingreso
Emilio Vera
Isabel
Valderrama
Miguel Romero
Jos Malo
Salvador
Pascual
Carrera
97 Biologa
97 Matemtic
as
97 Biologa
97 Matemtic
as
97 Fsica
En SQL:
SELECT * FROM Alumno WHERE ao_ingreso=97
61
En SQL:
SELECT DISTINCT nombre_alumno
FROM Alumno
WHERE carrera=Matemticas
62
Select y Theta-Select
1. EQUALITY
2. INEQUALITY
3. LESS THAN
4. LESS THAN OR EQUAL TO
5. GREATHER THAN
6. GREATHER THAN OR EQUAL TO
7. GREATEST LESS THAN
8. GREATEST LESS THAN OR EQUAL TO
9. LEAST GREATER THAN
10. LEAST GREATER THAN OR EQUAL TO
Por ejemplo, se pueden buscar las materias que tengan asignados 10 ms
crditos. As, se utiliza una theta-seleccin en donde la theta es GREATHER
THAN OR EQUAL TO (>=).
En notacin de predicados:
crditos>=10 (materia)
Nombre-materia Nivel
Clculo
Fsica relativista
Bioqumica
Crditos
1
4
2
10
10
12
63
En SQL:
SELECT * FROM Materia WHERE crditos>=10
En este caso, el DBMS debe verificar que los dominios de ambas columnas
sean los mismos.
En el caso de que en la comparacin intervengan valores calculados se deber
verificar que ambos sean del mismo tipo de dato bsico.
64
Theta-seleccin extendido
Si
entonces
R[A @ x] y R[A @ B] pueden ser operaciones theta-seleccin vlidas y
tambin pueden considerarse como trminos de comparacin si
ambos
se conectan mediante un OR, NOT, AND IMPLIES.
Por ejemplo, la pregunta los alumnos de Matemticas de la generacin 97
puede expresarse utilizando theta-seleccin extendida:
carrera=Matemticas ^ ao-ingreso=97 (alumno)
o bien:
Z ALUMNO [Carrera=Matemticas ^ Ao_ingreso=97]
El resultado:
Numerocuenta
970002
970004
Nombrealumno
Isabel
Valderrama
Jos Malo
Aoingreso
Carrera
97 Matemticas
97 Matemticas
En SQL:
SELECT *
FROM Alumno
WHERE carrera = Matemticas AND ao_ingreso=97
Esa pregunta tambin puede expresarse en trminos de theta-seleccin (no
extendida):
carrera=Matemticas ( ao-ingreso=97 (alumno))
65
x
Los operadores de seleccin y proyeccin actan sobre una relacin, es decir,
son unarios. Un operador que permite combinar informacin de dos relaciones
-binario- es el producto cartesiano.
Por ejemplo, si se quiere encontrar a los registros de los alumnos que han
cursado la materia Bioqumica as como su nmero de cuenta, se debe
extraer informacin de las tablas alumno y materia.
La relacin resultado de un producto cartesiano tiene por esquema a la unin
de los atributos de las relaciones que se estn operando. As, la relacin
r=alumno x materia tiene el esquema:
esquema-r(nmero-cuenta, nombre-alumno, ao-ingreso, carrera, clavemateria, nombre-materia, nivel, crditos)
66
alumno.numero-cuenta=examen.numero.cuenta(alumno x examen)
Z (ALUMNO x EXAMEN)
[ALUMNO.Nmero_cuenta=EXAMEN.Nmero_cuenta]
67
Alumno.
Numero-cuenta
950001
950002
970001
970002
950003
950004
950005
970003
970004
970005
950001
950002
970001
970002
950003
950004
950005
970003
970004
970005
950001
950002
970001
970002
950003
950004
Nombre-alumno Ao-ingreso
Oscar Martnez
Mario Snchez
Emilio Vera
Isabel
Ma.Elena
Camen Daz
Jorge Soto
Miguel Romero
Jos Malo
Salvador Pascual
Oscar Martnez
Mario Snchez
Emilio Vera
Isabel
Ma.Elena
Camen Daz
Jorge Soto
Miguel Romero
Jos Malo
Salvador Pascual
Oscar Martnez
Mario Snchez
Emilio Vera
Isabel
Ma.Elena
Camen Daz
Carrera
95
95
97
97
95
95
95
97
97
97
95
95
97
97
95
95
95
97
97
97
95
95
97
97
95
95
Biologa
Biologa
Biologa
Matemticas
Matemticas
Biologa
Fsica
Biologa
Matemticas
Fsica
Biologa
Biologa
Biologa
Matemticas
Matemticas
Biologa
Fsica
Biologa
Matemticas
Fsica
Biologa
Biologa
Biologa
Matemticas
Matemticas
Biologa
Examen.
Numero-cuenta
950001
950001
950001
950001
950001
950001
950001
950001
950001
950001
950005
950005
950005
950005
950005
950005
950005
950005
950005
950005
970002
970002
970002
970002
970002
970002
Clavemateria
02002
02002
02002
02002
02002
02002
02002
02002
02002
02002
03001
03001
03001
03001
03001
03001
03001
03001
03001
03001
01002
01002
01002
01002
01002
01002
Orden-de-pago Fecha-examen
3567
3567
3567
3567
3567
3567
3567
3567
3567
3567
3678
3678
3678
3678
3678
3678
3678
3678
3678
3678
3676
3676
3676
3676
3676
3676
68
02-Jun-97
02-Jun-97
02-Jun-97
02-Jun-97
02-Jun-97
02-Jun-97
02-Jun-97
02-Jun-97
02-Jun-97
02-Jun-97
02-Apr-97
02-Apr-97
02-Apr-97
02-Apr-97
02-Apr-97
02-Apr-97
02-Apr-97
02-Apr-97
02-Apr-97
02-Apr-97
06-May-97
06-May-97
06-May-97
06-May-97
06-May-97
06-May-97
...continuacin
Alumno.
Numero-cuenta
950005
970003
970004
970005
950001
950002
970001
970002
950003
950004
950005
970003
970004
970005
Nombre-alumno Ao-ingreso
Jorge Soto
Miguel Romero
Jos Malo
Salvador Pascual
Oscar Martnez
Mario Snchez
Emilio Vera
Isabel
Ma.Elena
Camen Daz
Jorge Soto
Miguel Romero
Jos Malo
Salvador Pascual
Carrera
95
97
97
97
95
95
97
97
95
95
95
97
97
97
Fsica
Biologa
Matemticas
Fsica
Biologa
Biologa
Biologa
Matemticas
Matemticas
Biologa
Fsica
Biologa
Matemticas
Fsica
Examen.
Numero-cuenta
970002
970002
970002
970002
970005
970005
970005
970005
970005
970005
970005
970005
970005
970005
Clavemateria
01002
01002
01002
01002
03002
03002
03002
03002
03002
03002
03002
03002
03002
03002
Orden-de-pago Fecha-examen
Examen.
Numero-cuenta
950001
950005
970002
970005
Clavemateria
02002
03001
01002
03002
Orden-de-pago Fecha-examen
3676
3676
3676
3676
3789
3789
3789
3789
3789
3789
3789
3789
3789
3789
06-May-97
06-May-97
06-May-97
06-May-97
06-Mar-97
06-Mar-97
06-Mar-97
06-Mar-97
06-Mar-97
06-Mar-97
06-Mar-97
06-Mar-97
06-Mar-97
06-Mar-97
Alumno.
Numero-cuenta
950001
950005
970002
970005
Nombre-alumno Ao-ingreso
Oscar Martnez
Jorge Soto
Isabel
Salvador
Carrera
95
95
97
97
Biologa
Fsica
Matemticas
Fsica
3567
3678
3676
3789
02-Jun-97
02-Apr-97
06-May-97
06-Mar-97
Resultado de:
alumno.numero-cuenta=examen.numero.cuenta(alumno x examen)
Z (ALUMNO x EXAMEN) [ALUMNO.Nmero_cuenta=EXAMEN.Nmero_cuenta]
69
Z ((ALUMNO x EXAMEN)
[ALUMNO.Nmero_cuenta=EXAMEN.Nmero_cuenta])
[ALUMNO.Nombre_alumno, ALUMNO.Fecha_examen]
El resultado:
Nombre-alumno Fechaexamen
Oscar Martnez
02-Jun-97
Jorge Soto
02-Apr-97
Isabel Valderrama
06-May-97
Salvador Pascual
06-Mar-97
70
Renombrar
SELECT * FROM R AS S
71
Unin
R union S
SELECT * FROM R UNION S
El operador unin es binario: permite agregar las tuplas de dos relaciones.
Por ejemplo, la pregunta los nmeros de cuenta de los alumnos que han
cursado la materia 02002 o que han hecho un examen puede responderse
auxilindose del operador unin, pues es necesario encontrar tuplas de la tabla
examen as como de la tabla historia:
numero-cuenta(clave-materia=02002 (examen))
numero-cuenta(clave-materia=02002 (historia))
En lgebra relacional:
Z (EXAMEN[Clave_materia=02002])[Nmero_cuenta] unin
(HISTORIA[Clave_materia=02002])[Nmero_cuenta]
En SQL
SELECT numero_cuenta
FROM Examen
WHERE clave_materia=02002
UNION
SELECT numero_cuenta
FROM Historia
WHERE clave_materia=02002;
El resultado:
Numerocuenta
950001
950004
970003
72
Compatibilidad de unin
Se refiere a que los renglones de las relaciones a unir sean del mismo tipo para
asegurar que el resultado de sea una relacin, es decir una tabla-R.
Es decir, existe la restriccin de que las relaciones que intervienen en una
operacin de unin deben de tener el mismo esquema. As, para aplicar la
operacin unin s r, las relaciones s y r deben de tener el mismo esquema.
Si S y T son dos relaciones, son compatibles para la unin si:
tiene el mismo grado y
es posible establecer un mapeo uno a uno, entre las columnas en S y
T, tal que las columnas de cada par tengan el mismo dominio.
El DBMS debe ser capaz de definir ese mapeo cuando todas las
columnas de la relacin tengan un dominio distinto.
En el caso de que exista cuando menos una columna en una relacin que
tenga un dominio que no tenga ninguna columna de la otra relacin, el
DBMS deber enviar un mensaje de error.
En el caso de que s se pueda establecer el mapeo y de que existan ms
de una posibilidad de conformarlo, el DBMS deber preguntarlo al
usuario.
Finalmente, el DBMS podr aceptar un mapeo explcito del usuario,
caso en el que el DBMS deber verificar que sea vlido.
El operador unin relacional no es tan general como en matemticas, pues el
relacional permite unir, por ejemplo, nmeros de cuenta con nmeros de
cuenta, nombres de alumnos con nombres de alumnos, etc., mientras que en
matemticas, la unin s permite unir, por ejemplo, nmeros de cuenta con
nombres de alumnos.
La unin tambin elimina renglones duplicados en la relacin resultado.
73
Diferencia
Por la manera en que opera, la diferencia da como resultado una tabla sin
renglones repetidos.
Las dos relaciones operandos que intervienen en una diferencia deben de
cumplir los requisitos de compatibilidad de unin.
74
75
Operaciones no bsicas
Las operaciones definidas en las secciones anteriores son las bsicas, es decir
que con ellas se tiene toda la potencia del lgebra relacional, sin embargo, para
fines prcticos, se definen otras operaciones muy utilizadas que se construyen
a partir de stas bsicas.
Interseccin
Para mostrar que no es una operacin bsica del lgebra relacional, obsrvese
que la interseccin puede calcularse a partir de la diferencia:
r s = r (r s)
Las dos relaciones operandos que intervienen en una interseccin deben de
cumplir los requisitos de compatibilidad de unin.
Bases de Datos. Miguel Murgua. FAR.
76
Producto natural
|x|
77
Por ejemplo, encontrar los nombres de los alumnos y los nombres de las
materias que hayan aprobado con ms de 8.0:
nombre-alumno, nombre-materia ( calificacion>8 (alumno |x| materia |x| historia))
Nombre-alumno nombremateria
Oscar Martnez
Estadstica
Mario Snchez
Estadstica
Carmen Daz
Botnica
Carmen Daz
Bioqumica
Miguel Romero
Bioqumica
78
Theta Join
Z R [ R.atributo=S.atributo ] S
SELECT *
FROM R
JOIN S ON R.A=S.A
79
El resultado:
Nombrealumno
Oscar Martnez
Mario Snchez
Mario Snchez
Carmen Daz
Carmen Daz
Miguel Romero
Miguel Romero
Clavemateria
02001
02001
02003
02002
02003
02002
02003
80
Join natural
81
Divisin
El operador divisin sirve para encontrar las tuplas que satisfacen una relacin
para todo. Por ejemplo, encontrar los nmeros de cuenta de los alumnos
que han cursado todas la materias de la carrera de Biologa.
La expresin, utilizando divisin, que contesta esa pregunta es:
numero-cuenta, clave-materia (historia) clave-materia ( carrera=Biologa (materia))
As, una expresin del tipo:
rs
tiene como esquema a R-S. Si r tiene como esquema a R=(A1, A2) y s a
S=(A2), entonces r s da como resultado una relacin con los valores A1
tales que el par (A1,A2) aparecen en r para todos los valores de A2 que
aparecen en s.
Por ejemplo:
r
A1
a
a
a
a
b
b
b
c
c
c
rs
s
A2
x
y
z
w
v
x
z
x
z
w
A2
x
z
w
A1
a
c
82
Formalmente:
r s = R-S (r) - R-S (( R-S(r) x s) - r
donde r(R) y s(S) son relaciones y S R
Obsrvese que:
( R-S(r) x s)
tiene esquema R, pues rxs tiene esquema RS y si a ese producto se
aplica una proyeccin R-S se obtiene el esquema R. Adems es
condicin necesaria que coincidan los esquemas para poder operar una
diferencia.
La expresin
R-S (( R-S(r) x s) - r)
da como resultado una relacin de esquema R-S y obtiene todas las
tuplas que deben eliminarse de r para cumplir con la definicin de la
divisin, pues obtiene todas las tuplas en r que no tienen una igual en s.
As, si observamos la expresin:
numero-cuenta, clave-materia (historia) clave-materia ( carrera=Biologa (materia))
dar como resultado los nmeros de cuenta (i.e. {numero-cuenta, clave-materia} {clave-materia}) que estn asociados a cada una de las claves de materia que
se encuentren en:
clave-materia ( carrera=Biologa (materia))
As, la respuesta a los nmeros de cuenta de los alumnos que han cursado
todas la materias de la carrera de Biologa, puede mostrarse
esquemticamente:
83
nmero-cuenta
950001
950002
950002
950004
950004
970003
970003
relacin
R
S
T
clave-materia
02001
02001
02003
02002
02003
02002
02003
clave-materia
02002
02003
esquema
Esquema-R
Esquema-S
Esquema-R - Esquema-S
T
=
nmero-cuenta
950004
970003
(nmero_cuenta, clave_materia)
(clave_materia)
(nmero_cuenta)
84
Divisin (Reforzamiento)
S = {A2}
R-S = {A1}
R-S(r) x s
A1
a
b
c
A2
x
z
w
A1
a
a
a
b
b
b
c
c
c
A2
x
z
w
x
z
w
x
z
w
( R-S(r) x s) - r
R-S(r) x s
A1
a
a
a
b
b
b
c
c
A2
x
z
w
x
z
w
x
z
( R-S(r) x s) - r
r
-
A1
a
a
a
a
b
b
b
c
A2
x
y
z
w
v
x
z
x
A1
b
A2
w
85
c
c
z
w
Recuerde que:
R-S (r) - R-S (( R-S(r) x s) - r)
R-S(r)
A1
a
b
c
R-S(( R-S(r) x s) - r)
-
A1
b
Asignacin
ZR
SELECT * FROM R INTO S
SELECT * FROM R AS S
86
87
Ejercicios I
88
Ejercicios II
89
Asignacin
ZR
SELECT * FROM R INTO S
SELECT * FROM R AS S
90
Insercin
insert
ZZR
INSERT INTO R VALUES (v1, v2, ..., vn)
El operador insert permite agregar un rengln o una coleccin de renglones a
una relacin. Aunque fsicamente se insertan en algn orden, para el modelo
relacional no es importante si se insertan al inicio o al final o en algn otro
orden.
Si la coleccin de renglones a insertar contiene renglones que estn
duplicados, entonces, el DBMS debe insertar slo uno de ellos.
Si la coleccin de renglones a insertar incluye alguno de los de la relacin en
que se insertan, entonces, el DBMS no debe insertarlo.
Como una relacin no debe tener renglones que repitan la llave primaria,
entonces no debern de insertarse los renglones que ocasionen este problema.
Si la relacin en al que se insertan tiene ndices, stos deben de actualizarse
automticamente, para que los nuevos renglones sean incluidos.
Si los renglones a insertar se obtienen de una expresin del lgebra relacional,
entonces se puede utilizar la unin y la asignacin para subsitutir a la
insercin:
Z Z UNION E
91
Actualizacin
update
UPDATE R SET A=a WHERE B=b;
92
Borrar
delete
DELETE R WHERE P
El operador delete permite eliminar renglones de una relacin. El caso
particular de borrar cero renglones no debe tratarse especialmente.
El usuario puede especificar los renglones mediante una lista de llaves
primarias o mediante una expresin de seleccin vlida.
Los ndices existentes deben de actualizarse automticamente.
La integridad referencial puede daarse si existen llaves forneas con valores
que coincidan con las llaves primarias de los renglones eliminados.
DELETE EXAMEN
WHERE ORDEN_DE_PAGO=NULL;
3. Vistas
Definicin de vistas
93
a) tablas-R
b) vistas
c) tablas-R y vistas
Por ejemplo, se puede definir una vista que considere a los alumnos de la
carrera de Biologa. Esa vista puede estar representada en el catlogo bajo la
frmula:
ALUMNO [Carrera=Biologa]
VISTA_1
Numerocuenta
950001
950002
970001
950004
970003
NombreAoCarrera
alumno
ingreso
Oscar Martnez
95 Biologa
Mario Snchez
95 Biologa
Emilio Vera
97 Biologa
Carmen Daz
95 Biologa
Miguel Romero
97 Biologa
Nombre...
alumno
Oscar Martnez ...
Nmero_cuen ...
ta
950001
...
Calificaci
n
8.2
970003
...
94
Modificabilidad
El trmino modificable se refiere a que una vista pueda aceptar operaciones
de delete, update e insert.
No todas las vistas son modificables, pues en algunos casos, el dar esas
libertades puede producir daos en la integridad.
Por ejemplo, si una vista se define como una proyeccin de atributos no
primos, entonces no est definido cmo operar un delete.
95
Algoritmo VU
La vista anterior no puede aceptar delete, pues cada rengln de la vista pueden
corresponder a ms de uno en la relacin base (HISTORIA), as, la
eliminacin de un rengln en la vista podra considerar la eliminacin de
varios en la relacin base.
En trminos generales, una vista es modificable en trminos de tres
operadores: delete, update e insert.
Para cada uno de esos operadores se puede definir si la vista es modificable.
As, se puede definir para cada vista si se le pueden borrar tuplas, insertar
tuplas o actualizar componentes.
El modelo relacional define el algoritmo VU (View Updatability) para definir
si una vista es modificable o no en cada uno de los tres aspectos: delete,
update e insert.
El algoritmo VU debe estar implementado en los DBMS y puede ejecutarse al
momento de definir una vista. Es decir, el algoritmo VU opera en tiempo de la
definicin de la vista, no en el de la ejecucin.
El algoritmo VU recibe como parmetros la definicin de la vista en un
lenguaje relacional y el conjunto de restricciones de integridad. Con esos dos
elementos se puede decidir la modificabilidad de la vista.
El DBMS debe de almacenar en el catlogo los estados reportados por el VU
para la modificabilidad de cada vista.
Bases de Datos. Miguel Murgua. FAR.
96
B
22
22
50
10
10
10
22
22
ALUMNO
Numerocuenta
Nombrealumno
Aoingreso
Carrera
97
98
Una relacin est en primera forma normal (1FN) si todos los valores de los
atributos son atmicos.
Generalmente esta propiedad es inherente a la definicin de relacin.
Una relacin est en segunda forma normal (2FN) si est en 1FN y cada
atributo no-primo depende completamente de la llave primaria.
Dependencia completa se refiere a que si en la llave primaria participa ms
de un atributo, entonces el atributo debe depender de la combinacin de todos
los atributos de la llave y no slo de alguno de ellos.
Por ejemplo, CALIFICACION depende completamente de la llave primaria:
1.- (ALUMNO#, GRUPO#) CALIFICACION
mientras que SALON no:
4.- GRUPO# SALON
99
Ntese que para que una relacin que est en 1FN no est en 2NF debe tener
una llave compuesta.
100
Una relacin est en tercera forma normal (3FN) si est en 2FN y cada
atributo no-primo depende no-transitivamente la llave primaria.
101
A B,
puede descomponerse sin prdida de informacin en las proyecciones:
R1(A,B) y
R2(A,C)
que se conoce como el teorema de Heath, descrito en 1971.
No se pierde informacin en la descomposicin, pues la relacin original se
puede reconstruir reuniendo (join) las proyecciones.
102
103
La relacin:
INSCRIPCION(ALUMNO#, MATERIA, PROFESOR)
104
Una relacin est en cuarta forma normal (4FN) si y slo s, siempre que
exista una dependencia multivaluada en R, A B, todos los atributos de R
son funcionalmente dependientes de A.
105
PRODUCTO
PC
PC
PC
MAINFRAME
MAINFRAME
MAINFRAME
PC
PC
MINI
MINI
MAINFRAME
MAINFRAME
PAIS
FRANCIA
ITALIA
UK
FRANCIA
ITALIA
UK
FRANCIA
IRLANDA
FRANCIA
IRLANDA
ITALIA
FRANCIA
PRODUCE
COMPAIA
IBM
IBM
DEC
DEC
ICL
PRODUCTO
PC
MAINFRAME
PC
MINI
MAINFRAME
EXPORTA
COMPANY
IBM
IBM
IBM
DEC
DEC
ICL
ICL
PAIS
FRANCIA
ITALIA
UK
FRANCIA
IRLANDA
ITALIA
FRANCIA
106
Dependencia multivaluada
PRODUCTO
PC
MAINFRAME
DEC
PC
MINI
MAINFRAME
ICL
PAIS
FRANCIA
ITALIA
UK
FRANCIA
IRLANDA
ITALIA
FRANCIA
107
108
Limitaciones de la normalizacin
109
110
P
P1
P2
P1
P1
J
J2
J1
J1
J1
PJ
P
P1
P2
P1
P1
P
P1
P2
P1
P1
J
J2
J1
J1
J1
y el join de SP y PJ:
SP join PJ
S
S1
S1
S1
S2
P
P1
P1
P2
P1
J
J2
J1
J1
J2
111
S2
P1
J1
J
J1
J1
J2
112
113
114
1NF
Valores atmicos
2NF
3NF
BCNF
4NF
5NF
115
Dependencias Funcionales
116
Axiomas de Armstrong
Reflexividad:
Si es un conjunto de atributos y ,
entonces se cumple
Aumento:
Si se cumple y es un conjunto de atributos,
entonces se cumple
Transitividad:
Si se cumple y se cumple ,
entonces se cumple
Ejemplo:
Considrese a la relacin R:
R(A, B, C, G, H, I)
y al conjunto de F dependencias funcionales:
AB
AC
Bases de Datos. Miguel Murgua. FAR.
117
CG H
CG I
BH
transitividad A B y B H;
CG HI, unin
CG H y CG I;
AG I,
AG CG aumento A C y G.
AG I transitividad AG CG y CG I
118
Anlisis
119
Sntesis
120
Ejercicios
121
NombreEmpleado
SalarioEmpleado
100A
100A
100B
200A
200B
200C
200C
200D
Juan
Samuel
Samuel
Juan
Juan
Pedro
Samuel
Pedro
6400
5100
5100
6400
6400
2800
5100
2800
IDProyecto SalarioEmpleado
(IDProyecto, NombreEmpleado) SalarioEmpleado
NombreEmpleado SalarioEmpleado
SalarioEmpleado IDProyecto
SalarioEmpleado IDProyecto, NombreEmpleado
122
Cliente
ClvCliente
1
2
3
4
5
6
Nombre
...
RecomendadoPor
NULL
1
1
3
3
4
123
Relaciones recursivas
Relacin recursiva: Relacin que existe entre entidades de la misma clase.
1:1
Persona
A
B
C
D
E
Se relaciona hacia
B
D
E
A
nulo
Persona
B
D
E
A
Se relaciona desde
A
E
C
D
1:N
Cliente
A
B
C
D
E
No normalizado:
Cliente
A
A
B
B
C
D
E
Recomendado por
nulo
A
B
B
A
Recomienda a
B
E
C
D
nulo
nulo
nulo
N:M
Dos tablas:
Bases de Datos. Miguel Murgua. FAR.
124
Empresa
A
B
C
D
E
Atributos...
...
...
...
...
...
y
Tabla de interseccin:
Empresa
A
B
C
D
E
Vende a
C
D
B
A
A
125
Redes
Equipo
ClvEquipo
Nombre
Tcnico
...
Partidos
ClvEquipoCasa
ClvEquipoVisita
...
Una red tambin puede servir para representar listas de materiales, por
ejemplo, para indicar de qu partes estn formadas otras partes.
Listas
Una lista de elementos del mismo tipo puede representarse con una relacin
recursiva 1:1.
Por ejemplo, una lista de los clientes que se han ido incorporando a la cartera
se puede representar agregando un campo ClvSigCliente. Obviamente, en
muchos casos se puede aadir un campo que establezca un criterio de orden,
por ejemplo la fecha de la primera venta.
126
3. Integridad
El mantenimiento de la integridad de una base de datos, est relacionado con
el mantenimiento de la consistencia de los datos y con su validez. Este es un
aspecto muy importante, sobre todo en bases de datos en ambientes
multiusuarios.
Algunos manejadores comerciales contienen un subsistema de integridad que
monitorea las operaciones de actualizacin con el fin de detectar violaciones a
la integridad. Cuando se detecta una violacin a la integridad, el sistema
realiza algunas acciones apropiadas, como rechazar la operacin causante de la
violacin, reportar la violacin y, de ser necesario, regresar a la base de datos
a un estado consistente.
Sin embargo, los subsistemas de integridad en general son primitivos, por lo
que esta tarea queda principalmente en manos del implementador.
Podemos agrupar a las diferentes estrategias del mantenimiento de la
integridad en:
Reglas de integridad de dominio.
Su objetivo es mantener valores correctos de los atributos. Por ejemplo, la
regla de integridad de entidad verifica que los valores de los atributos que
pertenecen a la llave primaria no deben ser nulos.
Reglas de integridad de Intra-relacin.
Verifican la validez entre los valores de los atributos de una misma relacin y
el mantenimiento de llaves nicas.
Reglas de integridad de referencia.
Mantienen la validez y consistencia entre relaciones.
Integridad de dominio
127
Una regla de integridad de dominio es simplemente una definicin del tipo del
dominio. La integridad de dominio est relacionada con el concepto de
verificacin de tipo de los lenguajes de programacin.
La definicin del tipo de un dominio debe ser lo ms precisa posible con el fin
de evitar violaciones a la integridad de dominio. Por ejemplo, el dominio del
atributo EDAD puede definirse como:
DOMINIO DOM_EDAD = ENTERO
pero es ms conveniente an definirlo como:
DOMINIO DOM_EDAD = ENTERO-POSITIVO
y an mejor como:
DOMINIO DOM_EDAD = ENTERO-POSITIVO:[0-150]
128
ALUMNO.Nombre=MATERIA.Nombre
129
Verificar la consistencia entre los valores de dos atributos de cada tupla. Por
ejemplo, los atributos EDAD y ANTIGEDAD de una tabla con datos de
profesores, deben de cumplir la restriccin
EDAD > ANTIGEDAD
o ms especficamente:
EDAD > ANTIGEDAD + C
donde C es un valor constante que es la edad mnima a la que un profesor
comienza a laborar.
La integridad semntica debe de fundamentarse en el anlisis sobre el
significado de los atributos dentro del dominio de aplicacin, es decir, en el
significado de las interrelaciones entre atributos.
ClvEstado
Lat
Lon
...
ClvEstado
Lat
Lon
Altitud
...
130
(La altitud registrada en Altitud debe ser igual a la altitud del punto (Lat,Lon)
en el mapa.)
El estado ClvEstado debe contener a Altitud en sus intervales de altitudes
Entre registros
Dos registros con el mismo (Lat,Lon) deben coincidir en sus valores ClvEstado
y Altitud.
Afirmaciones
131
Disparadores
Filosofa afirmativa
En el modelo relacional, el enfoque en cuanto a autorizacin es afirmativo,
es decir, se expresa explcitamente los permisos, mientras que en muchos
enfoques no relacionales se expresa explcitamente los accesos denegados.
132
Supngase que un usuario tiene acceso s una vista V y a actualizar los valores
de una de sus columnas A. de una vista. El DBA debe poder bloquear las
actualizaciones que hacen que algunos renglones salgan de la vista.
una vista
un ndice
Bases de Datos. Miguel Murgua. FAR.
133
134
5. Catlogo
El catlogo almacena la descripcin de la estructura de la base de datos.
Forma parte del diccionario de datos. El diccionario de datos adems
almacena informacin sobre los programas de aplicacin.
El catlogo debe soportar las siguientes caractersticas:
On-line
Concurrencia
Descripcin de dominios, relaciones base y vistas
Restricciones de integridad definidas por el usuario
Restricciones de integridad referencial
Funciones definidas por el usuario
Datos de autorizacin
Estadsticas
On-line
Concurrencia
135
136
Los dominios, las relaciones, las vistas las restricciones de integridad y las
funciones definidas por el usuario se describen cada una por separado, pues su
existencia es independiente:
Muchas relaciones puden utilizar un mismo dominio.
Las vistas pueden hacer referencias a ms de una relacin base.
Las restricciones de integridad pueden involucrar a ms de una
relacin.
Dominios
Para cada dominio, el catlogo debe almacenar:
Relaciones base
Para cada tabla R, se debe almacenar:
el nombre de la tabla R
sinnimos si los tiene
el nombre de cada columna
para cada columna, el nombre de un dominio previamente definido
si se permiten valores ausentes
si se requiere que los valores sean distintos
restricciones adicionales a las aplicables al dominio
si forma parte de la llave primaria
para cada llave fornea, las columnas y su secuenia de las que se
compone.
Vistas
Bases de Datos. Miguel Murgua. FAR.
137
el nombre de la vista
sinnimos, si los hay
el nombre de cada columna
la expresin en lenguaje relacional que define a la vista
si se permite la insercin de renglones
si se permite borrar renglones
para cada columna, si se permite la actualizacin de valores
Restricciones de integridad
su nombre
el evento que la dispara
la condicin lgica a probar
las acciones ante un intento de violacin
138
su nombre
el cdigo fuente
el cdigo compilado
los nombres de las relaciones de las que la funcin requiere acceso
de lectura
si la funcin tiene una inversa, su nombre
el cdigo fuente y compilado de la funcin inversa
Datos de autorizacin
Estadsticas
139
Metodologa general
1) Anlisis de requerimientos
Datos requeridos para el dominio de aplicacin.
Descripcin informal de la informacin a almacenar, tanto de los objetos como
de sus relaciones.
Generalizacin de las vistas sinnimas.
Identificacin de sinnimos y homnimos (tanto de vistas como de objetos y
relaciones).
Identificacin de los procesos y operaciones que la BD deber realizar.
2) Modelacin EER de los requerimientos
Definicin de: Entidades, Atributos y Relaciones.
Identificacin de Claves.
Diagramas ER.
Cardinalidades del las relaciones.
3) Transformacin del modelo EER al esquema relacional
Mapear el modelo EER a un conjunto de relaciones.
Poner atencin en la cardinalidad y el tipo de relacin (1:1; 1:N; N:M).
4) Normalizacin del esquema relacional
Descripcin de las dependencias funcionales para cada relacin.
Reducir cada relacin al ms conveniente estado de normalizacin.
140
Operadores lgicos
Los operadores lgicos permiten crear enunciados compuestos a partir de enunciados
simples. Por ejemplo el operador y o conjuncin puede utilizarse para unir las
proposiciones:
P = Los habitantes de Michoacn tienen un ingreso promedio de 4 salarios mnimos.
Q = Loa habitantes de Michoacn tiene una edad promedio de 20 aos.
P y Q = Los habitantes de Michoacn tienen un ingreso promedio de 4 salarios mnimos y
una edad promedio de 20 aos.
El significado es que se dan ambos elementos de la frmula, que los dos elementos simples
son verdaderos. En la tabla n se muestran las notaciones ms frecuentes para los operadores
lgicos. En espaol, las palabras adems, an, aunque, pero, sin embargo y
tambin tienen un significado de conjuncin, sin embargo, dan un matiz a la oracin, que
desafortunadamente se pierde en lgica al sustituirlos por el operador y. En la tabla n se
ejemplifica en tres diferentes lenguajes el uso de la conjuncin.
El operador o o disyuncin tambin conecta a dos elementos, pero su significado es
que se cumple alguno de los dos elementos (o ambos). En espaol, la palabra o tiene dos
significados, uno exclusivo y otro inclusivo. El inclusivo se utiliza cuando se desea
connotar que cuando menos uno de los dos elementos es verdadero, es decir, ya sea que los
dos sean verdaderos, o slo uno, por ejemplo, La mayora de los clientes tiene coche o
casa. El exclusivo se utiliza cuando se desea expresar que slo uno de los dos es
141
142
Smbolo
Nombres
Y
AND
CONJUNCI
ON
Tabla n. Operadores lgicos
O
OR
DISYUNCIO
N
NO
NOT
NEGACION
->
IMPLICACION
SI ... ENTONCES ...
LENGUA SENTENCIA
JE
ESPAO
L
Dbase
SQL
Tablas de verdad
Una tabla de verdad es una manera de conocer los posibles valores de verdad que puede
adquirir una frmula compuesta, dependiendo de los valores de verdad que adquiere cada
uno de sus elementos simples. Para cada variable se crea una columna y cada rengln
representa un caso de sustitucin. Por ejemplo, en la tabla de verdad del operador y, en el
encabezado se colocan las frmulas, y en los siguientes renglones se especifican las
posibles combinaciones de valores de verdad de cada frmula simple, para as calcular el
valor de verdad de la frmula compuesta; en particular, en el segundo rengln se especifica
el valor de verdad Verdadero para las frmulas simples P y Q, el valor de verdad
resultante para la frmula compuesta P^Q tambin es Verdadero.
143
Y (AND)
P
V
V
F
F
Q
V
F
V
F
P^Q
V
F
F
F
O (OR)
P
V
V
F
F
Q
V
F
V
F
PvQ
V
V
V
F
IMPLICACIN
P
Q
V
V
V
F
F
V
F
F
P -> Q
V
F
V
V
NEGACION
P
P
V
F
F
V
144
Tautologas
Las tautologas son expresiones lgicas que siempre son verdaderas. Lo son por su
estructura, independientemente del significado. Cuando se hace una consulta a una base de
datos y esa consulta es una tautologa, entonces el resultado sern todos los registros de la
base de datos, pues todos los registros cumplirn la condicin. Por ejemplo, la siguiente
consulta es una tautologa:
COUNT FOR COCHE=COMPACTO .OR. (.NOT. COCHE=COMPACTO)
por lo que el resultado ser el nmero de registros de la base de datos, pues todos cumplirn
la condicin de coche compacto O coche no compacto
Reglas de inferencia
Las tablas de verdad son una manera de verificar el valor de verdad de una frmula
compuesta, dado los valores de verdad de las frmulas simples, o bien, una manera de
probar que un conjunto de premisas son vlidas respecto a una conclusin. Pero cuando el
nmero de premisas es grande se vuelve imprctico ese mtodo, en su lugar se utiliza el
mtodo de deduccin. El mtodo de deduccin permite establecer la validez de
conclusiones a partir de las premisas y reglas de inferencia.
Las reglas de inferencia son argumentos para los que ya se ha establecido su validez. Las
reglas de inferencia son un medio para deducir conclusiones vlidas a partir de premisas
vlidas. Las reglas de inferencia son:
1) Modus Ponens
2) Modus Tolens
3) Silogismo hipottico
4) Silogismo disyuntivo
5) Dilema constructivo
6) Dilema destructivo
7) Simplificacin
8) Conjuncin
9) Adicin
A continuacin se enuncia cada una de las reglas de inferencia, ejemplificndolas mediante
proposiciones del espaol. Las proposiciones de los ejemplos muestran la utilidad de las
reglas de inferencia al construir consultas a bases de datos.
145
1) Modus Ponens
P->Q
P
-----Q
P=gana ms de tres salarios mnimos
Q= es sujeto de crdito
1) Si gana ms de tres salarios mnimos entonces es sujeto de crdito
2) Gana ms de tres salario mnimos
Por lo tanto:
3) Es sujeto de crdito
2) Modus Tolens
P -> Q
Q
-----P
1) Si gana ms de tres salarios mnimos entonces es sujeto de crdito
2) No es sujeto de crdito
Por lo tanto:
3) No gana ms de tres salarios mnimos
3) Silogismo hipottico
P -> Q
Q -> R
-----P -> R
1) Si gana ms de tres salarios mnimos entonces es sujeto de crdito
2) Si es sujeto de crdito entonces enviar correspondencia
Por lo tanto:
3) Si gana ms de tres salarios mnimos entonces enviar correspondencia
146
4) Silogismo disyuntivo
P v Q
P
-----Q
1) Gana ms de tres salarios mnimos o no es sujeto de crdito
2) No gana ms de tres salario mnimos
Por lo tanto:
3) Es sujeto de crdito
5) Dilema constructivo
(P -> Q) ^ (R -> S)
PvR
-----QvS
1) Si gana ms de tres salarios mnimos entonces es sujeto de crdito
y Si tiene coche lujoso entonces enviar correspondencia
2) Gana ms de tres salarios mnimos o tiene coche lujoso
Por lo tanto:
3) Es sujeto de crdito o enviar correspondencia
6) Dilema destructivo
(P -> Q) ^ (R -> S)
Q v S
-----P v R
1) Si gana ms de tres salarios mnimos entonces es sujeto de crdito
y Si tiene coche lujoso entonces enviar correspondencia
2) No es sujeto de crdito o no enviar correspondencia
Por lo tanto:
3) No gana ms de tres salarios mnimos o no tiene coche lujoso
7) Simplificacin
P^Q
Bases de Datos. Miguel Murgua. FAR.
147
-----P
1) Gana ms de tres salarios mnimos y tiene coche
Por lo tanto:
2) Gana ms de tres salario mnimos
8) Conjuncin
P
Q
-----P^Q
1) Gana ms de tres salarios mnimos
2) Tiene coche
Por lo tanto:
3) Gana ms de tres salario mnimos y tiene coche
9) Adicin
P
-----Pv Q
1) Gana ms de tres salarios mnimos
Por lo tanto:
3) Gana ms de tres salario mnimos o tiene coche
148
Equivalencias lgicas
Una frmula es equivalente a otra cuando sus tablas de verdad son iguales, es decir, que
cuando una frmula es verdadera, dado ciertos valores de verdad a sus frmulas simples,
tambin la otra es verdadera, y cuando una frmula es falsa la otra tambin lo es. En la
Tabla n se muestran las equivalencias lgicas bsicas.
10
<->
<->
<->
<->
<->
<->
<->
<->
<->
P v Q
P ^ Q
QvP
Q^R
(P v Q) v R
(P ^ Q) ^ R
(P^Q) v (P^R)
(PvQ) ^ (PvR)
P
Teoremas de De Morgan
14
(P ^ Q)
(P v Q)
PvQ
P^R
P v (Q v R)
P ^ (Q ^ R)
P ^ (Q v R)
P v (Q ^ R)
P
15
P -> Q
<->
Q -> P
Transposicin
16
P -> Q
<->
P v Q
Implicacin material
17
<->
<->
(P -> Q) ^ (Q -> P)
(P ^ Q) v (P ^ Q)
PvP
Equivalencia material
18
P <-> Q
P <-> Q
P
19
<->
P^P
Tautologa
11
12
13
Conmutacin
Asociacin
Distribucin
Doble negacin
Exportacin
149
2. Lgica de predicados
Lenguaje de 1er orden o de predicados
Smbolos:
Propios del lenguaje
Predicados
P1, P2, P3, ...
Funciones
f, g, h, ...
Constantes
c1, c2, c3, ...
Otros smbolos:
Variables
X, Y, Z
Cuantificadores
Universal
Existencial
Conectivos , ^, v, ,
Igualdad
=
Auxiliares
( ) .
Hay representaciones del lenguaje de Lgica de 1er orden donde no hay funciones y son
vistas como relaciones.
La interpretacin de los otros smbolos es siempre la misma, la de los smbolos propios
del lenguaje es la que permite hacer referencia a lo que se quiere representar.
Una frmula es ...
Se dice que una variable es libre cuando no est dentro del alcance de un cuantificador, de
otra manera, se dice que est cuantificada.
Un enunciado es una frmula que no tiene variables libres, por ejemplo:
x(P(x))
P(x)
si es un enunciado
no es enunciado
Al interpretar un enunciado, ste es verdadero o es falso, lo que no sucede con las frmulas
que no son enunciados.
Reglas de la negacin:
xA xA
xA xA
Donde A es una FBF
Bases de Datos. Miguel Murgua. FAR.
150
Reglas de cuantificacin
151
2. IE
1. IU
3. Conm
5. Simp
4, 6 MP
3 Simp
8, 7 Conj
9 GE
152
Para realizar una operacin anloga a la seleccin, por ejemplo obtener las tuplas en que el
ao de ingreso sea 97, se puede escribir de la siguiente manera:
{ t | s alumno(s[nombre-alumno]=t[nombre-alumno]
^ s[ao-ingreso]=97)}
153
Encontrar los nmeros de cuenta de los alumnos que hayan cursado o hecho examen de la
materia con clave 02002.
{ t | s historia(s[numero-cuenta]=t[numero-cuenta]
^ s[clave-materia]=02002)
v u examen(u[numero-cuenta]=t[numero-cuenta]
^ u[clave-materia]=02002)}
Encontrar los nmeros de cuenta de los alumnos que hayan cursado y hecho examen de la
materia con clave 02002.
{ t | s historia(s[numero-cuenta]=t[numero-cuenta]
^ s[clave-materia]=02002)
^ u examen(u[numero-cuenta]=t[numero-cuenta]
^ u[clave-materia]=02002)}
Es decir, el nmero de cuenta aparece en alguna tupla de la relacin historia asociado a la
clave de la materia 02002 y el nmero de cuenta aparece en alguna tupla de la relacin
examen asociado a la clave de la materia 02002
Encontrar los nmeros de cuenta de los alumnos que hayan cursado pero no hecho examen
de la materia con clave 02002.
{ t | s historia(s[numero-cuenta]=t[numero-cuenta]
^ s[clave-materia]=02002)
^ u examen(u[numero-cuenta]=t[numero-cuenta]
^ u[clave-materia]=02002)}
Est mal:
Encontrar el nmero de la orden de pago de exmenes que han hecho los alumnos de
Biologa.
{ t | s alumno(s[carrera]=Biologa
u examen(u[numero-cuenta]=s[numero-cuenta]
^ u[clave-materia]= t[clave-materia])) }
Nmeros de cuenta de los alumnos que han cursado todas las materias de Biologa:
{t | x materia(x[carrera=Biologa]
y historia(x[clave-materia]=y[clave-materia]
^ y[nmero-cuenta]=t[nmero-cuenta]))}
Bases de Datos. Miguel Murgua. FAR.
154
Nombres de los alumnos que han cursado todas las materias de Biologa:
{t | x materia(x[carrera=Biologa]
y historia(x[clave-materia]=y[clave-materia]
^ z alumno(y[nmero-cuenta]=z[nmero-cuenta]))}
^ z[nombre]=t[nombre])))}
155
Bibliografa
DATE, C. J. 1986.
Introduccin a los Sistemas de Bases de Datos. Addison-Wesley. Mxico.
HUGHES, J.G. 1991.
Object-Oriented Databases. Prentice Hall. UK.
KORTH, H., SILVERSCHATZ, A, & SUDARSHAN. 2003.
Fundamentos de bases de datos. Cuarta Edicin. McGraw-Hill.
KROENKE, D. M. 1996.
Procesamiento de Bases de Datos. Prentice Hall. Mxico.
PIATETSKY-SHAPIRO, G & W.J. FRAWLEY. 1991.
Knowledge Discovery in Databases. AAAI Press. 525 p.
RAMAKRISHNAN, R. & J. GEHRKE. 2003
Database Management Systems. Tercera Ed. McGrawHill.
TECHGUIDE.COM. 2000.
A practical guide to achieving enterprise data quality. The Technology Guide
Series, techquide.com.
ULLMAN, J.D. 1979.
Principles of Databases Systems. Computer Science Press. Washington.
156
Pginas WWW
Temarios
FCA Licenciado en Informtica
http://server.contad.unam.mx/planes/info/basesdt.html
Modelo Relacional
Acorden de Normalizacin:
http://www.cba.neu.edu/~mwarkentin/normaliz.htm
UCB DBMS Research Group
ftp://s2k-ftp.cs.berkeley.edu/pub/postgres/otherdbms.html
SQL Standard Home Page
http://www.jcc.com/sql_stnd.html
157
% Seleccion: Carrera=biologia
q0:alumno(Cuenta,Nombre,Ingreso,biologia),
print(Cuenta), print(-),
print(Nombre), print(-),
print(Ingreso),print(-),nl,
fail.
% Seleccion: Materias con m s de 8 creditos
q1:materia(Clv,Nombre,Nivel,Creditos),
Creditos > 8,
print(Clv),print(-),
print(Nombre),print(-),
print(Nivel),print(-),
print(Creditos),print(-),nl,
fail.
158
159
B) Resultado de Querys
?- consult('escuela.pro').
?- q1.
'Q0: Seleccion: Carrera=biologia'
950001-'Oscar Martnez'-95950002-'Mario Snchez'-95950004-'Camen Daz'-95970001-'Emilio Vera'-97970003-'Miguel Romero'-97?- q1.
'Q1: Seleccion: Materias con ms de 8 creditos'
1003-calculo-1-102003-bioquimica-2-123001-fisica_relativista-4-103002-particulas_elementales-3-9?- q2.
'Q2: Proyeccion: Numero de cuenta y Nombres'
950001-'Oscar Martnez'
950002-'Mario Snchez'
950003-'Ma.Elenea Caedo'
950004-'Camen Daz'
950005-'Jorge Soto'
970001-'Emilio Vera'
970002-'Isabel Valderrama'
970003-'Miguel Romero'
970004-'Jos Malo'
970005-'Salvador Pascual'
?- q3.
'Q3: Producto cartesiano alumno x materia'
950001-'Oscar Martnez'-95-biologia-1002-algebra-2-7950001-'Oscar Martnez'-95-biologia-1003-calculo-1-10950001-'Oscar Martnez'-95-biologia-2001-estadistica-1-5950001-'Oscar Martnez'-95-biologia-2002-botanica-3-8950001-'Oscar Martnez'-95-biologia-2003-bioquimica-2-12950001-'Oscar Martnez'-95-biologia-3001-fisica_relativista-4-10950001-'Oscar Martnez'-95-biologia-3002-particulas_elementales-3-9950002-'Mario Snchez'-95-biologia-1002-algebra-2-7950002-'Mario Snchez'-95-biologia-1003-calculo-1-10950002-'Mario Snchez'-95-biologia-2001-estadistica-1-5950002-'Mario Snchez'-95-biologia-2002-botanica-3-8950002-'Mario Snchez'-95-biologia-2003-bioquimica-2-12950002-'Mario Snchez'-95-biologia-3001-fisica_relativista-4-10950002-'Mario Snchez'-95-biologia-3002-particulas_elementales-3-9950003-'Ma.Elenea Caedo'-95-matematicas-1002-algebra-2-7950003-'Ma.Elenea Caedo'-95-matematicas-1003-calculo-1-10950003-'Ma.Elenea Caedo'-95-matematicas-2001-estadistica-1-5950003-'Ma.Elenea Caedo'-95-matematicas-2002-botanica-3-8950003-'Ma.Elenea Caedo'-95-matematicas-2003-bioquimica-2-12950003-'Ma.Elenea Caedo'-95-matematicas-3001-fisica_relativista-4-10950003-'Ma.Elenea Caedo'-95-matematicas-3002-particulas_elementales-3-9950004-'Camen Daz'-95-biologia-1002-algebra-2-7-
160
950004-'Camen Daz'-95-biologia-1003-calculo-1-10950004-'Camen Daz'-95-biologia-2001-estadistica-1-5950004-'Camen Daz'-95-biologia-2002-botanica-3-8950004-'Camen Daz'-95-biologia-2003-bioquimica-2-12950004-'Camen Daz'-95-biologia-3001-fisica_relativista-4-10950004-'Camen Daz'-95-biologia-3002-particulas_elementales-3-9950005-'Jorge Soto'-95-fisica-1002-algebra-2-7950005-'Jorge Soto'-95-fisica-1003-calculo-1-10950005-'Jorge Soto'-95-fisica-2001-estadistica-1-5950005-'Jorge Soto'-95-fisica-2002-botanica-3-8950005-'Jorge Soto'-95-fisica-2003-bioquimica-2-12950005-'Jorge Soto'-95-fisica-3001-fisica_relativista-4-10950005-'Jorge Soto'-95-fisica-3002-particulas_elementales-3-9970001-'Emilio Vera'-97-biologia-1002-algebra-2-7970001-'Emilio Vera'-97-biologia-1003-calculo-1-10970001-'Emilio Vera'-97-biologia-2001-estadistica-1-5970001-'Emilio Vera'-97-biologia-2002-botanica-3-8970001-'Emilio Vera'-97-biologia-2003-bioquimica-2-12970001-'Emilio Vera'-97-biologia-3001-fisica_relativista-4-10970001-'Emilio Vera'-97-biologia-3002-particulas_elementales-3-9970002-'Isabel Valderrama'-97-matematicas-1002-algebra-2-7970002-'Isabel Valderrama'-97-matematicas-1003-calculo-1-10970002-'Isabel Valderrama'-97-matematicas-2001-estadistica-1-5970002-'Isabel Valderrama'-97-matematicas-2002-botanica-3-8970002-'Isabel Valderrama'-97-matematicas-2003-bioquimica-2-12970002-'Isabel Valderrama'-97-matematicas-3001-fisica_relativista-4-10970002-'Isabel Valderrama'-97-matematicas-3002-particulas_elementales-39970003-'Miguel Romero'-97-biologia-1002-algebra-2-7970003-'Miguel Romero'-97-biologia-1003-calculo-1-10970003-'Miguel Romero'-97-biologia-2001-estadistica-1-5970003-'Miguel Romero'-97-biologia-2002-botanica-3-8970003-'Miguel Romero'-97-biologia-2003-bioquimica-2-12970003-'Miguel Romero'-97-biologia-3001-fisica_relativista-4-10970003-'Miguel Romero'-97-biologia-3002-particulas_elementales-3-9970004-'Jos Malo'-97-matematicas-1002-algebra-2-7970004-'Jos Malo'-97-matematicas-1003-calculo-1-10970004-'Jos Malo'-97-matematicas-2001-estadistica-1-5970004-'Jos Malo'-97-matematicas-2002-botanica-3-8970004-'Jos Malo'-97-matematicas-2003-bioquimica-2-12970004-'Jos Malo'-97-matematicas-3001-fisica_relativista-4-10970004-'Jos Malo'-97-matematicas-3002-particulas_elementales-3-9970005-'Salvador Pascual'-97-fisica-1002-algebra-2-7970005-'Salvador Pascual'-97-fisica-1003-calculo-1-10970005-'Salvador Pascual'-97-fisica-2001-estadistica-1-5970005-'Salvador Pascual'-97-fisica-2002-botanica-3-8970005-'Salvador Pascual'-97-fisica-2003-bioquimica-2-12970005-'Salvador Pascual'-97-fisica-3001-fisica_relativista-4-10970005-'Salvador Pascual'-97-fisica-3002-particulas_elementales-3-9-
161
?- q4.
'Q4: Interseccion: Numero de cuenta de alumnos que han hecho examen '
'
y cursado % la misma materia'
950001
?- q5.
'Q5: Producto natural: Alumnos que han hecho examen'
'Oscar Martnez'
'Isabel Valderrama'
'Jorge Soto'
'Salvador Pascual'
?- q6.
'Q6: Diferencia: Alumnos que han hecho examen sin haber cursado '
'
la materia'
970002
950005
970005
?- q7.
'Q7: Ejemplo: Nombres de alumnos y materias '
'
que han acrediatdo con mas de 8'
'Oscar Martnez'-estadistica
'Mario Snchez'-estadistica
'Camen Daz'-botanica
'Camen Daz'-bioquimica
'Miguel Romero'-bioquimica
?- q8.
'Q8: Ejemplo OR: Nombre de los alumnos que han cursado '
'
o hecho examen de la materia con clave 02002'
'Camen Daz'
'Miguel Romero'
'Oscar Martnez'
?-
162