Sie sind auf Seite 1von 162

Bases de Datos

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

2. El Modelo Entidad-Relacin .........................................................17


Generalidades del Modelo Entidad-Relacin ................................................. 17
Dominios y Atributos ...................................................................................... 27
Restriccin en las relaciones.......................................................................... 28
Relaciones (papeles y recursividad) .............................................................. 29

II El Modelo Relacional de Bases de Datos ....................30


1. Introduccin al Modelo Relacional................................................30
Antecedentes y orgenes del Modelo Relacional ........................................... 30
Conceptos del Modelo Relacional .................................................................. 31
Tuplas ............................................................................................................ 32
Diagrama E-R para una escuela .................................................................... 36
Otra definicin de relacin.............................................................................. 37
Esquemas de relaciones ................................................................................ 38
Esquema de una Base de Datos.................................................................... 40
Notacin ......................................................................................................... 41

2. Principales caractersticas del Modelo Relacional .......................42


Restricciones del Modelo Relacional.............................................................. 42
Relacin: el nico tipo de dato compuesto..................................................... 43
Crticas al modelo Entidad-Relacin .............................................................. 44
Evolucin del Modelo Relacional ................................................................... 45
Diferencias entre las Matemticas y en el Modelo Relacional del concepto de
relacin y terminologa ................................................................................... 46
Objetivos del Modelo Relacional .................................................................... 47
Interrelacin de informacin entre relaciones distintas .................................. 47
Transaccin.................................................................................................... 48
SQL (Structured Query Language) ................................................................ 49
DBMS relacionales......................................................................................... 50
La relacin universal ...................................................................................... 51
Razones para soportar dominios ................................................................... 52
Recuerde que ............................................................................................ 54

Bases de Datos. Miguel Murgua. FAR.

III lgebra Relacional ......................................................55


1. Operadores bsicos del lgebra Relacional ................................55
Introduccin.................................................................................................... 55
Los operadores .............................................................................................. 56
Proyeccin ..................................................................................................... 58
Theta-Seleccin ............................................................................................. 60
Combinando seleccin y proyeccin .............................................................. 62
Select y Theta-Select ..................................................................................... 63
Theta-seleccin extendido ............................................................................. 65
Producto cartesiano ....................................................................................... 66
Renombrar ..................................................................................................... 71
Unin.............................................................................................................. 72
Compatibilidad de unin................................................................................. 73
Diferencia ....................................................................................................... 74
Definicin formal del lgebra relacional.......................................................... 75
Interseccin.................................................................................................... 76
Producto natural............................................................................................. 77
Theta Join ...................................................................................................... 79
Theta Join extendido ...................................................................................... 81
Join natural..................................................................................................... 81
Divisin........................................................................................................... 82
Divisin (Reforzamiento) ................................................................................ 85
Asignacin...................................................................................................... 86
Ejercicios I...................................................................................................... 88
Ejercicios II..................................................................................................... 89

2. Modificacin de la Base de Datos ................................................90


Asignacin...................................................................................................... 90
Insercin......................................................................................................... 91
Actualizacin .................................................................................................. 92
Borrar ............................................................................................................. 93

3. Vistas ............................................................................................93
Definicin de vistas ........................................................................................ 93
Modificabilidad de las Vistas .......................................................................... 95
Algoritmo VU .................................................................................................. 96

IV Diseo de bases de Datos Relacionales .......................97


1. Normalizacin ...............................................................................97
Dependencia funcional................................................................................... 97
1a. forma normal ............................................................................................ 99
2a. forma normal ............................................................................................ 99
3a. forma normal .......................................................................................... 101
Forma normal de Boyce-Codd ..................................................................... 103
4a. forma normal .......................................................................................... 105
Dependencia multivaluada ........................................................................... 107
Limitaciones de la normalizacin ................................................................. 109
Dependencia de reunin (join) ..................................................................... 110
5NF o PR/NF (forma normal de proyeccin-reunin)................................... 111
Bases de Datos. Miguel Murgua. FAR.

Resumen de Formas Normales ................................................................... 115


Dependencias Funcionales .......................................................................... 116
Axiomas de Armstrong ................................................................................. 117
Anlisis......................................................................................................... 119
Sntesis ........................................................................................................ 120
Ejercicios...................................................................................................... 121

2. rboles, redes y relaciones recursivas .......................................123


rboles ......................................................................................................... 123
Relaciones recursivas .................................................................................. 124
Redes........................................................................................................... 126

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

V Lgica y Clculo Relacional de Tuplas ......................141


1. Lgica .........................................................................................141
Operadores lgicos ...................................................................................... 141
Tablas de verdad ......................................................................................... 143
Tautologas .................................................................................................. 145
Reglas de inferencia .................................................................................... 145
Equivalencias lgicas ................................................................................... 149

2. Lgica de predicados .................................................................150


Lenguaje de 1er orden o de predicados....................................................... 150
Reglas de la negacin:................................................................................. 150
Reglas de cuantificacin .............................................................................. 151

3. Clculo relacional de tuplas........................................................153

Bibliografa .......................................................................156
Pginas WWW .................................................................157
Temarios ...................................................................................................... 157

Bases de Datos. Miguel Murgua. FAR.

Modelo Relacional........................................................................................ 157

ANEXO 1. Prolog como Base de Datos ..........................158


A) Cdigo del Programa .................................................................158
B) Resultado de Querys .................................................................160

Bases de Datos. Miguel Murgua. FAR.

I Introduccin
I. Conceptos Bsicos de Bases de Datos
1.1 Panorama de las Bases de Datos

Orgenes del modelo relacional


La era de las bases de datos relacionales se inicia con la publicacin de una serie de
artculos de Codd; el primero es:
Codd, E. F. 1970. A relational model of data for large shared data banks.
Communications of the ACM 13:377-387.
Previo al modelo relacional existan otros, los ms populares eran el modelo de red y el
modelo jerrquico. Actualmente se puede decir que esos modelos fueron un camino
recorrido que llev al modelo relacional. Aunque los modelos jerrquico y de red son la
base de algunos DBMS usados en la actualidad, se puede decir, en general, que esos
modelos son historia.
A inicios de los aos 60s se construy lo que se puede considerar el primer DBMS, el
sistema Integrated Data Store, por Charles Bachman de la General Electric que sent las
bases del modelo de red. A finales los aos 60s nace el IMS (Information Management
System) de IBM y que fue base del modelo de jerrquico.
El modelo relacional soluciona varios de los problemas no resueltos por otros modelos
previos, sin embargo, se debe de considerar que el correcto planteamiento de los problemas
es en s un avance hacia su solucin. As, los modelos jerrquico y de red pueden
considerarse como escalones en la construccin de modelos eficientes de bases de datos.
El modelo relacional es robusto debido a la formalidad con que se plantea, pues est
fundamentado matemticamente en el lgebra de relaciones. En la actualidad, una de las
principales alternativas al modelo relacional es el modelo orientado a objetos, sin embargo,
el modelo relacional an se considera ms importante por su fundamento, la cantidad de
usuarios, herramientas y sistemas comerciales existentes.

Bases de Datos. Miguel Murgua. FAR.

Los Turing Award


Los reconocimientos Turing Award son el equivalente en computacin al premio Nobel.
El rea de Bases de Datos ha recibido ya tres de sos reconocimientos: el primero para
Bachman, por haber puesto las bases del modelo de red; el segundo para Codd por su
Modelo Relacional, y el tercero para James Gray por sus trabajos sobre el concepto de
transaccin en Bases de Datos.

Objetivos de los DBMS


Los sistemas manejadores de bases de datos (DBMS por sus siglas en ingls) son un tipo
de sistemas informticos enfocados a la tarea del almacenamiento y recuperacin de
informacin, por lo que pueden ser sujetos a las metodologas de desarrollo de sistemas,
por ejemplo UML. Existe una amplia gama de DBMS comerciales, como por ejemplo MSAccess, MS-SQL_Server, Oracle, Informix o Sybase; Tambin existen alternativas de
DBMS libres como MySQL o PosgreSQL.
Los DBMS pueden ser vistos como esqueletos de bases de datos, en los que slo es
necesario incorporar los datos especficos de nuestra aplicacin, por ejemplo, los nombres
de los alumnos de una escuela, las calificaciones para cada materia, las claves de los grupos
y los nombres de los profesores. Sin embargo, tambin es necesario definir la estructura
de los datos, es decir el modelo de datos. Ese modelo de datos debe construirse de acuerdo
a las necesidades de informacin, ya que para un mismo dominio (escuela o un sistema de
control de inventario, por ejemplo) existen varias maneras de definir el modelo de acuerdo
al nivel de precisin que se requiera.
Los principales objetivos de los DBMS son:

Almacenamiento de grandes volmenes de informacin.


Procesamiento de la informacin (generacin de reportes, anlisis, reportes
ejecutivos).
Seguridad, eficiencia y oportunidad en la informacin.

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.

Bases de Datos. Miguel Murgua. FAR.

Generacin de historias acadmicas.


Se puede generar un programa para cada tarea que funcione de manera independiente para
constituir un sistema procesador de archivos. Pero se tienen los problemas de:
Redundancia e inconsistencia de datos. Las direcciones de los clientes pueden estar
almacenados en dos archivos (por ejemplo, en el de cuentas de ahorro y en el de cuentas
de cheques), lo que hace que ocupen doble espacio, adems de que se puede generar la
situacin de que se actualice slo en un archivo generando una inconsistencia.
Dificultad en el acceso. Casi todas las consultas son planeadas. Para hacer consultas no
planeadas se necesitan escribir nuevos programas.
Aislamiento de los datos. Los datos estn repartidos en varios archivos, por lo que pueden
tener diferentes formatos y es necesario escribir programas para cada nuevo proceso.
Seguridad. No todos los usuarios del sistema deben tener acceso a todas las operaciones
(v.g. actualizacin de saldos, ver ciertas cuentas, etc.).
Integridad. Los valores de los campos de las tablas deben satisfacer ciertas restricciones
de dominio. Por ejemplo, las cuentas de ahorro no deben contener cantidades negativas.

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

La independencia de datos se refiere a que los programas de aplicacin estn aislados de la


forma en que estructuran los datos, y a su vez, la forma en que estructuran los datos tiene
cierta independencia de cmo se almacenan fsicamente. Se logra gracias a la existencia de
esquemas, que se revisarn ms adelante.

Bases de Datos. Miguel Murgua. FAR.

1.2 Modelos de Datos: 3 Niveles

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.

Semntico: Modelos basados en objetos


Lgico:
Modelos lgicos basados en registros
Fsico:
Modelos fsicos de datos

Bases de Datos. Miguel Murgua. FAR.

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

De los anteriores, los ms usados en la actualidad son el modelo entidad relacin y el


orientado a objetos. Algunos conceptos manejados en el modelo entidad relacin son:
Entidades
Relaciones
Conjunto de Entidades
Conjunto de Relaciones
Cardinalidad de Asignacin
Diagrama E-R
Conceptos manejados en el modelo orientado a objetos son:
Clases
Instancias
Mtodos
Mensaje
Herencia
Polimorfismo

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.

Bases de Datos. Miguel Murgua. FAR.

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.

Esquema: operacin de los niveles de abstraccin


Los niveles de abstraccin de datos son una estrategia para organizar los datos
considerando desde la plataforma fsica hasta el nivel de usuario. Los esquemas son las
estructuras diseadas para resolver cada nivel de abstraccin, as, los sistemas de bases de
datos soportan varios esquemas:

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.

Figura 2. Los tres niveles de esquemas en los modelos de Bases de Datos.

El esquema es en s una estructura capaz de almacenar un conjunto de datos. Uno de los


problemas que debe resolver una base de datos es el cambio de la informacin a travs del
tiempo, por esa razn se define el concepto de instancia, que es una coleccin de datos
almacenada en un determinado instante. Por lo que la instancia, por definicin cambiaa
travs del tiempo, mientras que el esquema, el diseo global de la BD, normalmente no
cambia o cambia poco y en intervalos de tiempo mucho mayores.
Bases de Datos. Miguel Murgua. FAR.

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.

1.3 Los Lenguajes en las Bases de Datos

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

Lenguaje de definicin de datos


DDL (data definition language): Lenguaje de definicin de datos. Especifica un esquema
de base de datos. El resultado de la compilacin de un conjunto de instrucciones de DDL
son un conjunto de tablas cuya definicin se almacena en el diccionario de datos (o
directorio). El diccionario contiene metadatos (datos sobre los datos).

Lenguaje de manipulacin de datos


DML (data manipulation language): Lenguaje que permite a los usuarios acceder los datos
y permite:
Recuperar informacin almacenada en la BD
Incorporar nueva informacin
Borrar informacin
Bases de Datos. Miguel Murgua. FAR.

12

Modificar informacin almacenada en la BD

Se pueden dividir en dos tipos:

Procedimentales (qu datos y cmo obtenerlos)


No procedimentales (qu datos y no cmo obtenerlos)

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.

El administrador de la base de datos


La persona que se encarga del control central del sistema es el administrador de la base de
datos (DBA). Sus funciones son:

Definicin del esquema.


Definicin de la estructura de almacenamiento y del mtodo de acceso.
Modificacin del esquema y de la organizacin fsica.
Concesin de autorizaciones para el acceso a los datos.
Especificacin de las restricciones de integridad.
Aspectos de seguridad

Usuarios de bases de datos


Se pueden clasificar en cuatro:
Programadores de aplicaciones. Generan programas de aplicacin en DML, en ocasiones
inmerso en algn lenguaje de alto nivel.
Usuarios sofisticados. No escriben programas de aplicacin, pero s realizan preguntas
sofisticadas en el lenguaje DML.
Usuarios especializados. Usuarios interesados en aplicaciones sofisticadas, como sistemas
expertos, sistemas de Informacin para Ejecutivos, Sistemas Multimedia (video, sonido,
etc.).
Usuarios finales. nicamente hacen uso de los programas o queries ya establecidos.
Bases de Datos. Miguel Murgua. FAR.

13

1.4 Arquitectura general de un DBMS


En la figura 3 se muestra la arquitectura bsica de un DBMS, los diferentes mdulos se
pueden agrupar en cuatro grandes clases:
Mquina de evaluacin
Gestor de Base de Datos
Administrador de Recuperacin
Control de Concurrencia

Figura 3. Arquitectura de un DBMS (tomada de Ramakrishnan y Gehrke, 2003).

Mquina de evaluacin. Traduce instrucciones del lenguaje de consultas a instrucciones de


bajo nivel que entiende el gestor de base de datos. Intenta transformarla en una pregunta
equivalente pero eficiente.
Parser
Optimizador
Plan de ejecucin
Evaluador. Traduce las instrucciones del DML a comandos de manipulacin de
archivos de bajo nivel.

Bases de Datos. Miguel Murgua. FAR.

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

Otros elementos que administra el DBMS son:


Precompilador DML. Convierte las instrucciones de DML en un programa de
aplicacin, en llamadas normales a procedimientos en lenguaje de alto nivel.
Compilador DDL. Convierte instrucciones de DDL (Data Definition Language) en
un conjunto de tablas con metadatos.
Archivos de Datos. Almacenan la base de datos.
Diccionario de Datos. Almacenan metadatos: datos o informacin sobre la
estructura de la base de datos.
ndices. Proporcionan acceso rpido a los datos.

Bases de Datos. Miguel Murgua. FAR.

15

Preguntas
1.
2.
3.
4.
5.

Cules son los niveles de esquemas de una BD?


Qu relacin tiene la independencia de datos y los esquemas?
Cules son las ventajas de usar un DBMS?
Identifica cada ventaja con los datos que manipulas en tu trabajo
Explica el concepto de TRANSACCION y su importancia en el manejo de
informacin.
6. Explica la arquitectura de los DBMS.
7. Define con tus palabras los siguientes conceptos:
BD Relacional
Bloqueo
Concurrencia
DBA
DBMS
DML
Esquema
Independencia de Datos
Nivel de abstraccin
Protocolo de bloqueo
Recuperacin
Registro de Transacciones
SQL

Bases de Datos. Miguel Murgua. FAR.

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.

Bases de Datos. Miguel Murgua. FAR.

17

Por ejemplo, a continuacin se muestra una relacin entre las entidades


PROVEEDOR y PRODUCTO:
PRODUCTO
Nombre_producto
LAPIZ
GOMA
CHOCOLATE
CHAMOI

PROVEEDOR
Nombre_proveedor
OFIMAX
LUMEN
EXPENDIO LUPITA
MAGO DE OZ

Telfono
645 4523
234 5467
545 3421
534 6756

Que puede representarse por la tupla:


Nombre_producto
LAPIZ

Nombre_proveedor
LUMEN

Telfono
234 5467

y podra significar, por ejemplo, que LUMEN vende el producto LAPIZ.

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

Se dice que PROVEEDOR es una relacin de grado 2 y tiene una cardinalidad de 4


(nmero de tuplas).
Posteriormente se revisar otra definicin de relacin.
Bases de Datos. Miguel Murgua. FAR.

18

Relacin binaria. Relacin de grado 2, i.e. entre dos entidades:

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

que puede representarse por la tabla:


CATALOGO
Nombre_producto
LAPIZ
LAPIZ
LAPIZ
GOMA
GOMA
CHOCOLATE
CHOCOLATE
CHAMOI

Nombre_proveedor
OFIMAX
LUMEN
EXPENDIO LUPITA
LUMEN
EXPENDIO LUPITA
EXPENDIO LUPITA
MAGO DE OZ
EXPENDIO LUPITA

Un conjunto de relaciones puede definirse como un subconjunto de:

R={(e1, e2,... en) | e1 E1, e2 E2, ... en En,}


donde:
Bases de Datos. Miguel Murgua. FAR.

19

e1, e2,... en son entidades;


E1, E2,... En son conjuntos de entidades y
(e1, e2,... en) es una relacin.

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

Si la entidad aA est asociada a lo ms con una bB y la entidad bB est


asociada a lo ms con una aA.

1:N

Si la entidad aA est asociada a lo ms con una bB y la entidad bB est


asociada con un nmero cualquiera de entidades aA.

N:M

Si la entidad aA est asociada con un nmero cualquiera de entidades bB


y la entidad bB est asociada con un nmero cualquiera de entidades aA.

Dependencia de existencia. La entidad x es dependiente por existencia de y, si es necesaria


la existencia de la entidad y para la existencia de x. (Si se borra y, tambin se
debe borrar x). Se dice que y es la entidad dominante y x la entidad
subordinada.

Bases de Datos. Miguel Murgua. FAR.

20

Cardinalidad de asignacin: ejemplos

Cardinalidad de asignacin 1:1


ALUMNO
Nombre_alumno

...

DIRECCION
Calle_y_nmero

Colonia

...

Cardinalidad de asignacin 1:N


CARRERA
Nombre_carrera

ALUMNO
Nombre_alumno

...

Cardinalidad de asignacin N:M


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

Dependencia de existencia: ALUMNO (entidad subordinada) podra ser dependiente de


CARRERA (entidad dominante).

Bases de Datos. Miguel Murgua. FAR.

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.

Bases de Datos. Miguel Murgua. FAR.

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

Por ejemplo, los atributos de la relacin PEDIDO


Bases de Datos. Miguel Murgua. FAR.

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.

Por ejemplo, considerando los conjuntos de entidades PRODUCTO y PROVEEDOR de


la tabla 2.1:
E1 = PRODUCTO
E2 = PROVEEDOR
(E1)= NOMBRE_PRODUCTO
(E2)= NOMBRE_PROVEEDOR
a1 = CANTIDAD
Entonces, el conjunto de atributos de R es:
R= PEDIDO = {(E1), (E2), a1}

El conjunto de atributos de un conjunto R de relaciones es una superclave.


Bases de Datos. Miguel Murgua. FAR.

24

La clave primaria de un conjunto de relaciones depende de la cardinalidad de la asignacin.


Relacin normalizada. Relacin en la que todo valor de cada atributo es atmico, no
compuesto por un conjunto de valores.

Diagramas E-R
Los elementos usados en los diagramas Entidad-Relacin son:

Se puede indicar la cardinalidad grficamente por:


Una a muchas
Muchas a una
Muchas a muchas
Una a una

Bases de Datos. Miguel Murgua. FAR.

25

De los diagramas E-R a Tablas


Cada conjunto de entidades y cada conjunto de relaciones se puede representar mediante
una tabla.
Conjunto fuerte de entidades. Cada atributo corresponde a una columna y cada entidad a un
rengln (tupla o fila).
Conjunto dbil de entidades. Cada atributo se representa por una columna y se deben
aadir una columna por cada atributo de la clave primaria del conjunto de entidades fuerte
del que depende.
Conjuntos de relaciones. Una tabla con una columna por cada atributo.

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.

Bases de Datos. Miguel Murgua. FAR.

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.

Bases de Datos. Miguel Murgua. FAR.

27

Restriccin en las relaciones

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

Bases de Datos. Miguel Murgua. FAR.

28

Relaciones (papeles y recursividad)

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

Ejemplos de papeles que puede desempear un EMPLEADO


ENTIDAD
RELACION
ENTIDAD
EMPLEADO
PARTICIPACION
PROYECTO
Colaborador
EMPLEADO

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.

Bases de Datos. Miguel Murgua. FAR.

29

II El Modelo Relacional de Bases de Datos


1. Introduccin al Modelo Relacional

Antecedentes y orgenes del Modelo Relacional

1969

Primera publicacin de Codd sobre el modelo relacional

1970

Publicacin de Codd que consolida al modelo relacional

1971

Codd publica sus 1NF, 2NF y 3NF

1970-1988 Codd publica varios artculos para consolidar el modelo


1976

Ronald Fagin inventa 4NF y 5NF

1976

Chen publica su modelo Entidad-Relacin

1979

Codd presenta la versin extendida de su modelo

1990

Codd sintetiza su segunda versin que es un subconjunto


de su versin extendida

Bases de Datos. Miguel Murgua. FAR.

30

Conceptos del Modelo Relacional

Informalmente, en el modelo relacional una relacin es una tabla. Cada


rengln de la tabla puede interpretarse como una coleccin de datos que
describen una entidad del mundo real.
Los nombres de las tablas y de las columnas se utilizan para ayudar a
interpretar el significado de cada valor. Por ejemplo, la tabla ALUMNO
contiene datos de los alumnos de la escuela y cada rengln representa una
entidad del mundo real. Los nombres de cada columna especifican cmo
interpretar los valores de cada rengln. Todos los valores de una columna son
del mismo tipo de dato.
En la terminologa del modelo relacional, a cada rengln se le llama tupla, al
encabezado de cada columna atributo y a la tabla relacin. El tipo de datos
que describe los tipos de valores que pueden aparecer en cada columna se la
llama dominio.

Dominio. Un dominio D es un conjunto de valores atmicos. Por atmico se


entiende que cada valor es indivisible. Por ejemplo, el dominio de
los nmeros de cuenta es el conjunto de las cadenas de 6 dgitos; el
dominio de las calificaciones son los reales entre 0 y 10.

Relacin. Una relacin r de un esquema de relacin R(A1, A2 ..., An), tambin


denotada por r(R), es un conjunto de n-tuplas r={t1, t2, ..., tm}. Cada
n-tupla t es una lista ordenada de valores <v1,v2, ...,vn> donde cada
valor vi 1 i n es un elemento del dominio dom(Ai) o es un valor
especial nulo.

Bases de Datos. Miguel Murgua. FAR.

31

Tuplas

Orden de las tuplas en una relacin

El orden de las tuplas en una relacin no es parte de la definicin de la


relacin, pues en teora, una relacin es un conjunto de tuplas y
matemticamente, los elementos de un conjunto no estn ordenados.

Figura. Las tuplas son elementos de un conjunto (coleccin no ordenada).

Aunque en la implementacin fsica de una relacin, los renglones si tiene un


orden, en el sentido de que se puede distinguir al primero y al segundo, etc. o
al sucesor y al predecesor, una relacin intenta representar hechos en un nivel
abstracto o lgico.
En un archivo fsico, una relacin puede estar ordenada por diversos criterios,
por ejemplo, por los valores de un atributo; sin embargo, una relacin
ordenada con dos criterios distintos sigue siendo la misma relacin.

Figura. Un conjunto de tuplas es el mismo, aunque las tuplas se ordenen de


manera diferente.
Bases de Datos. Miguel Murgua. FAR.

32

Cuando una relacin se concibe como una tabla:


Cada rengln representa una tupla de R.
El orden de los renglones no es importante
Todos los renglones se distinguen de los dems por su contenido.
Renglones repetidos

Las tablas que tienen renglones repetidos no representan relaciones,


particularmente son llamadas relaciones corruptas o relaciones impropias.
Existen varias razones para no permitir tuplas repetidas:
Reducen la optimizacin de los comandos relacionales.
Generan problemas conceptuales severos al usuario as como
restricciones.

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.

Bases de Datos. Miguel Murgua. FAR.

33

Orden de los valores en una tupla


De acuerdo a una de las definiciones de relacin, una n-tupla es una lista
ordenada de n valores, por lo que el orden de los valores en la tupla si es
importante, y por lo tanto, tambin lo es el orden de los atributos en la
definicin de un esquema de relacin.
Adicionalmente, una tupla puede ser considerada como un conjunto de pares
(<atributo>,<valor>), donde cada par da el valor de mapeo de un atributo Ai
un valor vi del dom(Ai). As las siguientes tuplas son idnticas:
t= <(Numero-cuenta, 950001), (Nombre-alumno, Oscar
Martnez), (Ao-ingreso, 95), (Carrera,Biologa)>
t= < (Nombre-alumno, Oscar Martnez), (Carrera,Biologa),
(Numero-cuenta, 950001), (Ao-ingreso, 95)>

Con esa concepcin de tupla, el orden de los atributos dentro de ella no es


importante. De hecho, existen razones adicionales para nombrar, de manera
nica, a las columnas:
El nombre de las columnas dan al usuario una idea del significado de
los datos que almacena.
Permite a los usuario no tener que recordar el orden de cada columna.
De una manera de distinguir el significado de la columna del de su
dominio, pues una columna usa a un dominio.

Bases de Datos. Miguel Murgua. FAR.

34

Instancia de la base de datos con


esquema ESCUELA

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

Nivel Crditos Carrera


2
7 Matemticas
1
10 Matemticas
1
5 Biologa
3
8 Biologa
4
10 Fsica
3
9 Fsica
2

12 Biologa

Orden-de-pago Fechaexamen
3567
6/2/97
3678
4/2/97
3676
5/6/97
3789
3/6/97

Bases de Datos. Miguel Murgua. FAR.

35

HISTORIA
Numero-cuenta
950001
950002
950002
950004
950004
970003
970003

Clave-materia Semestre-curso Calificacion


02001
96
8.2
02001
96
9
02003
96
7
02002
96
9
02003
95
10
02002
95
8
02003
96
9

Diagrama E-R para una escuela

Bases de Datos. Miguel Murgua. FAR.

36

Otra definicin de relacin

Si se considera a la tabla ALUMNO, se puede observar que tiene los atributos


Numero-cuenta, Nombre-alumno, Ao-ingreso y Carrera.
Para cada atributo existe un conjunto de posibles valores: su dominio. Por
ejemplo, el dominio del atributo Carrera son todos los nombres de las
carreras que se imparten en la escuela.
As, podemos definir los dominios D1, D2 D3 y D4, donde D1 es el conjunto
de todos los nmeros de cuenta, D2 de todos los nombres posibles de alumnos,
D3 todos los aos y D4 todas las carreras.
Cada uno de los renglones de la tabla ALUMNO consta de cuatro valores (v1,
v2, v3, v4), donde v1 es el nmero de cuenta, v2 el nombre del alumno, v3 el
ao de ingreso y v4 la carrera. Por lo anterior, la tabla ALUMNO es un
subconjunto de:

D1 x D2 x D3 x D4

Desde el punto de vista matemtico, una relacin se define como un


subconjunto del producto cartesiano de una lista de dominios.

En la terminologa matemtica, los trminos de relacin y tupla son anlogos


a los de tabla y fila en el Modelo Relacional..
La relacin ALUMNO tiene 10 tuplas. Sea t la primera tupla de la relacin, se
usar la notacin t[Nombre-del-atributo] para indicar el valor de ese atributo
en la tupla, as t[Nombre-alumno]=Oscar Martnez, t[Ao-ingreso]=95.
Es necesario que todos los dominios de todos los atributos de todas las
relaciones sean atmicos, es decir, que los valores sean unidades indivisibles.

Bases de Datos. Miguel Murgua. FAR.

37

Esquemas de relaciones

Esquema de una relacin. El esquema de una relacin es la estructura de


atributos que contiene, por ejemplo, el esquema de la relacin
ALUMNO es (Numero-cuenta, Nombre-alumno, Ao-ingreso,
Carrera).

En general, se usar la notacin esquema-alumno para referirse al esquema


de la relacin alumno, as:
esquema-alumno=(Numero-cuenta, Nombre-alumno, Ao-ingreso,
Carrera)
Tambin, se indicar que una relacin se construye sobre un esquema
mediante:
nombre-de-la-relacion(nombre-del-esquema)
As, si se quiere indicar que la relacin ALUMNO tiene el esquema esquemaalumno se escribe:
alumno (esquema_alumno)

El esquema de la relacin EXAMEN es


esquema-examen = (Numero-cuenta, Clave-materia, Orden-de-pago, Fechaexamen)

El hecho de que pueda aparecer el mismo atributo en diferentes relaciones


permite relacionar a las tuplas entre esas relaciones.
Para la explicacin de los conceptos sobre el modelo relacional se utilizarn
como ejemplo el conjunto de relaciones ESCUELA, derivadas de la figura.
As, se tienen las relaciones ALUMNO, MATERIA, HISTORIA y EXAMEN.
Sus esquemas son:

Bases de Datos. Miguel Murgua. FAR.

38

esquema-alumno = (Numero-cuenta, Nombre-alumno, Ao-ingreso,


Carrera)
esquema-materia = (Clave-materia, Nombre-materia, nivel, Crditos,
Carrera)
esquema-examen = (Numero-cuenta, Clave-materia, Orden-de-pago,
Fecha-examen)
esquema-historia = (Numero-cuenta, Clave-materia, Semestre-curso,
Calificacin)
con claves primarias:
Numero-cuenta
Clave-materia
Numero-cuenta, Clave-materia
Numero-cuenta, Clave-materia
respectivamente.

Bases de Datos. Miguel Murgua. FAR.

39

Esquema de una Base de Datos

Esquema de una base de datos relacional. El esquema de una base de datos


relacional es el conjunto de esquemas de relaciones
S={ R1, R2, ..., Rm } y un conjunto de restricciones de integridad RI.

Por ejemplo, el esquema de la base de datos ESCUELA es:

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

Clave-materia Semestre-curso Calificacion

Fecha-examen

Bases de datos ricas. Bases de datos relacionales con muchas relaciones


y generalmente pocas tuplas.
Bases de datos extensas. Bases de datos relacionales con pocas
relaciones y generalmente muchas tuplas.

Por ejemplo, las bases de conocimiento son ricas, mientras que la mayora de
las comerciales son extensas.

Bases de Datos. Miguel Murgua. FAR.

40

Notacin

Se utilizar la siguiente notacin para describir al modelo relacional:


Un esquema de relacin de grado n se denota por R(A1, A2 ..., An).
Una n-tupla ten una relacin r(R) se denota por t= <v1,v2, ...,vn donde
vi es el valor correspondiente al atributo Ai.
t[Ai] se refiere al valor vi en t para el atributo Ai.
t[Au,Aw, ..., Az] donde Au, Aw, ...,Az es una lista de atributos de R, se
refiere a la subtupla de valores <vu,vw, ...,vz> de t correspondientes a
los atributos especificados en la lista.
Las letras Q, R y S denotan nombres de relaciones.
Las letras q, r, s denotan instancias de relaciones.
Las letras t, u, v denotan tuplas.
En general, el nombre de una relacin, como por ejemplo
ALUMNO, indica el conjunto actual de tuplas en esa relacin
(estado actual de la relacin o instancia), mientras que
ALUMNO(Numero-de-cuenta, Nombre-alumno, ...) se refiere al
esquema.

Bases de Datos. Miguel Murgua. FAR.

41

2. Principales caractersticas del Modelo Relacional


Restricciones del Modelo Relacional

El Modelo Relacional contempla la imposicin de restricciones que se asocian


a un esquema, algunas de ellas son:

Integridad de Dominio
Integridad de Claves
Integridad de la Entidad
Integridad Referencial

A continuacin se explica cada tipo:


Integridad de Dominio. Todo valor del atributo A debe ser un valor
atmico que pertenece al dominio dom(A) de ese atributo.
Integridad de Claves. No pueden existir un par de tuplas que tengan los
mismos valores en cada uno de sus atributos.
Integridad de la Entidad. Ningn valor de un componente de la llave
primaria puede ser nulo.
Dominio Primario. Dominio para el que existe una llave primaria de un
slo atributo.
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.

Las restricciones de integridad de referencia pueden expresarse mediante


flechas sobre el esquema de la base de datos, que conectan a atributos entre los
esquemas de las relaciones.

Bases de Datos. Miguel Murgua. FAR.

42

Relacin: el nico tipo de dato compuesto

En el modelo relacional todas las operaciones se realizan sobre relaciones y


como resultado producen relaciones.
El nico tipo de dato compuesto en el modelo relacional es la relacin, pues
los valores de los dominios en cada relacin deben ser atmicos
La razn por la que el modelo relacional permite slo un tipo de dato
compuesto es que los datos compuestos agregan complejidad sin agregar
poder.
Por ejemplo, las cuatro operaciones bsicas de un lenguaje de manipulacin de
datos (DML) son:
retrieve

insert

update

delete

Si existieran n tipos de datos compuestos, entonces se requeriran 4n


comandos para cubrir las operaciones bsicas.
En general, en los modelos de bases de datos relacionales hay una tendencia a
crear cada vez ms y ms tipos de datos compuestos y con ella se complican
ms los lenguajes de manipulacin de datos, hacindolos ms difciles de usar
o programar.

Bases de Datos. Miguel Murgua. FAR.

43

Crticas al modelo Entidad-Relacin

El modelo Entidad Relacin fu propuesto posteriormente al Modelo


Relacional. Codd, en su segunda versin del Modelo Relacional, critica al
modelo ER diciendo:
Slo se describen aspectos de la estructura, no de las operaciones sobre
estas estructuras ni de restricciones de integridad. Por lo tanto no es un
modelo de datos.
La distincin de entidades y relaciones no ha sido definida con
precisin, como consecuencia, una entidad persona es otra relacin
persona.
An si esta distincin se puede definir, aadira complejidad sin aadir
poder.

Bases de Datos. Miguel Murgua. FAR.

44

Evolucin del Modelo Relacional

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.

Bases de Datos. Miguel Murgua. FAR.

45

Diferencias entre las Matemticas y en el Modelo Relacional del


concepto de relacin y terminologa

Matemticas

Modelo Relacional

Concepto de relacin
Valores sin restricciones

Valores atmicos

Columnas sin nombres

Cada columna tiene un nombre

Las columnas se diferencian por Las columnas se diferencian por


posicin
nombre y dominio
Constantes
Varan en el tiempo

Terminologa
Relacin de grado n

Tabla-R con n columnas

Atributo

Columna de tabla-R

Dominio

Tipo de dato

Tupla

Rengln de tabla-R

Cardinalidad de relacin

Nmero de renglones en una tabla-R

Bases de Datos. Miguel Murgua. FAR.

46

Objetivos del Modelo Relacional

Simplificar la interaccin de los usuarios con los datos:


para bases de datos extensas,
que no estn familiarizados con la programacin,
que conciben las interacciones independientemente de los dems
usuarios.
Incrementar la productividad de los usuarios que son programadores
profesionales
Soportar herramientas ms poderosas para el administrador de la base
de datos, para controlar el acceso de los usuarios a la informacin: quin
accesa qu informacin y para qu propsito, as como para controlar la
integridad de la base de datos.

Interrelacin de informacin entre relaciones distintas

Comparacin de valores vs. apuntadores


En el modelo relacional las relaciones no se asocian mediante ligas explcitas
o apuntadores, como se hace en modelos anteriores. El principio fundamental
del modelo relacional es que la interrelacin se realiza mediante comparacin
de valores. Dos valores se pueden compara slo si pertenecen al mismo
dominio.
Aparentemente, la restriccin de que los valores a comparar sean del mismo
dominio se ve innecesaria, pero en realidad es una manera de proteger al
usuario de cometer errores cuando los operadores de relaciones incorporan
esta restriccin.

Bases de Datos. Miguel Murgua. FAR.

47

Transaccin

Una transaccin es un conjunto de actividades que involucran cambios en la


base de datos. Cada una se debe ejecutar si se desea realizar cambios
permanentes a la base de datos, y no se debe ejecutar ninguna si alguna de
ellas falla.
La coleccin de actividades est representada por una secuencia de comandos
relacionales, en donde se marca el inicio de la transaccin y el fin de ella, el
final es un comando que realiza fsicamente los cambios (COMIT).
Por ejemplo, la transaccin para transferir $1000.00 de una cuenta de cheques
a una de ahorro debe de:

verificar que exista dinero disponible en la cuenta de cheques,


restar $1000.00 a la cuenta de cheques,
verificar que exista la cuenta de ahorro y
aumentar en $1000.00 a la cuenta de ahorro.

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.

Bases de Datos. Miguel Murgua. FAR.

48

SQL (Structured Query Language)

SQL es un lenguaje relacional de datos creado por IBM en 1972.


Est basado en los principios del Modelo Relacional.
No incluye todas las caractersticas del modelo.
Algunas de las caractersticas estn implementadas de manera
incorrecta.

Uno de los errores de implementacin del SQL es que permite la existencia de


renglones duplicados, esto tiene repercusiones serias en la base de datos. De
hecho, SQL no soporta ms de la mitad del modelo relacional.
Aunque se han desarrollado otros lenguajes relacionales, se ha prestado ms
atencin al SQL debido a que se ha adoptado como un estndar ANSI, adems
de que muchos DBMS lo soportan.

Bases de Datos. Miguel Murgua. FAR.

49

DBMS relacionales

Se suele hablar mucho sobre la condicin relacional de un producto DBMS.


Por ejemplo, los vendedores alegan que su producto es relacional.
El que un DBMS sea relacional no solo implica que pueda manipular datos
relacionndolos mediante claves primarias y claves forneas, implica de
hecho que cumpla con todas las caractersticas del modelo relacional.
Al respecto hay una regla cero que dice:
Todo sistema del que se diga que es relacional debe tener la
capacidad de manejar bases de datos totalmente de manera
relacional, no importando si brinda capacidades adicionales.
Es decir, si un producto provee de capacidades adicionales o novedosas, es
relacional slo si manipula los datos de acuerdo al modelo relacional.
Para evaluar un producto DBMS se debe de observar la fidelidad al modelo
relacional, por lo que debe de soportar las operaciones de insert, update y
delete en un plano relacional.
Como otra consecuencia, un DBMS relacional, debe de poder manipular
relaciones con cualquier nmero de tuplas, incluyendo una o cero tuplas, es
decir, se deben de poder aplicar las operaciones insert, update y delete a
relaciones con cero o una tuplas, sin tratamiento especial, ya que el modelo
relacional no marca casos especiales para ello.

Bases de Datos. Miguel Murgua. FAR.

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.

Bases de Datos. Miguel Murgua. FAR.

51

Razones para soportar dominios

Una de las deficiencias ms serias de los DBMS es que no tienen un soporte


adecuado de dominios. Si un DBMS no soporta dominios, tampoco podr
soportar otras caractersticas importantes del modelo.

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.

2) Son necesarios para declarar el tipo de dato permitido en cada


columna
En el diccionario de datos se debe almacenar una descripcin extensa del tipo
de dato almacenado. Sin el soporte del dominio, esta descripcin debe
repetirse para cuanta columna tenga el mismo tipo de dato.
3) Son necesarios para soportar integridad de dominio
Bases de Datos. Miguel Murgua. FAR.

52

La integridad de dominio se refiere a la restriccin de que todos los valores de


una columna pertenezcan al dominio que se asoci a esa columna. Algunos
tipos de restricciones de dominio son: a) tipo de datos regulares; b) intervalo
de valores permitido; c) aplicabilidad de la funcin sucesor o predecesor
(operadores > y <).

4) Permiten restringir la aplicabilidad de operadores


Para cada comparacin entre valores, el DBMS debe verificar que esos valores
sean semnticamente comparables. Si un usuario necesita comparar peras con
manzanas, entonces el DBA deber dar autorizacin, pero slo por un
periodo corto de tiempo, para que deshabilite, por ejemplo, el DOMAIN
CHECK.
5) Permiten especificar de forma implcita las columnas en las que se
buscar un valor
Los dominios permiten especificar un grupo de columnas de manera implcita,
lo que facilita las consultas. Por ejemplo, si se desea buscar todos los registros
en los que est involucrada una cierta persona, no importando el papel que
desempee en la relacin, se puede indicar que busque sobre un dominio y no
sobre columnas especficas. Actualmente, SQL no soporta esta caracterstica.
6) Facilitan algunas restricciones de integridad definidas por el usuario
Por ejemplo, si se requiere que los valores de una columna C1 sean un
subconjunto de los valores contenidos en la columna C2, entonces C1 y C2
deben tomar valores de un mismo dominio.
7) El concepto de dominio participa en muchas definiciones del modelo
relacional
Incluyendo las definiciones de dominio primario, llave fornea, integridad de
dominio, integridad referencial, entre otras.
8) Son necesarios para realizar las operaciones de UNION o similares

Bases de Datos. Miguel Murgua. FAR.

53

Cuando se realiza una UNION de S con R, es necesario que ambas tablas


tengan el mismo nmero de columnas, pero adems, que exista un mapeo
uno a uno entre las columnas de R y S, debiendo tener cada par el mismo
dominio. Si todas las columnas de R tiene un dominio diferente, entonces el
DBMS deber saber hacer el mapeo de las columnas entre R y S, dejando
menos trabajo al usuario.
9) Permiten la generacin de los ndices basados en dominios
Los ndices basados en dominios, aunque no son parte del modelo relacional,
son una herramienta que aumenta el desempeo del DBMS. Indican, para cada
columna, de qu dominio extraen sus valores, permiten encontrar todas las
ocurrencias de un valor.

Recuerde que

Toda relacin es un conjunto.


No todo conjunto es una relacin.
Toda relacin puede concebirse como una tabla.
No toda tabla es una representacin correcta de una relacin.

Bases de Datos. Miguel Murgua. FAR.

54

III lgebra Relacional


1. Operadores bsicos del lgebra Relacional
Introduccin

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.

Bases de Datos. Miguel Murgua. FAR.

55

Los operadores

Clasificacin de los operadores


Para su estudio los operadores se dividen en tres grupos:
Operadores bsicos
Operadores de manipulacin
Operadores avanzados
Cuatro operadores provienen directamente de la teora de conjuntos, aplicables
a las relaciones porque las relaciones se definen como un conjunto de tuplas,
ellos son:

unin,
interseccin,
diferencia y
producto cartesiano

Los dems operadores se desarrollan especficamente para el lgebra


relacional.

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.

Bases de Datos. Miguel Murgua. FAR.

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

Bases de Datos. Miguel Murgua. FAR.

57

Proyeccin

R[a1, a2, ...]


SELECT a1, a2,... FROM R;

Es un operador unario que omite algunas columnas, eliminando los renglones


repetidos que se pudieran generar.
En la notacin de clculo de predicados, la proyeccin de las columnas
Nombre_alumno y Carrera de la tabla ALUMNO se escribe:
nombre-alumno, carrera (alumno)
En notacin algebraica:
Z ALUMNO [Nombre_alumno, Carrera]
En SQL:
SELECT nombre_alumno, carrera FROM Alumno;
El resultado:
Nombre-alumno
Oscar Martnez
Mario Snchez
Emilio Vera
Isabel Valderrama
Ma.Elena Caedo
Carmen Daz
Jorge Soto
Miguel Romero
Jos Malo
Salvador Pascual

Carrera
Biologa
Biologa
Biologa
Matemtica
s
Matemtica
s
Biologa
Fsica
Biologa
Matemtica
s
Fsica

Bases de Datos. Miguel Murgua. FAR.

58

Se puede explicar al operador de proyeccin en dos etapas, en la primera se


genera una tabla (que no es una tabla-R) con las columnas que formarn parte
del resultado, y en la segunda etapa se eliminan los renglones repetidos. Por
ejemplo, si se desea obtener una lista de las carreras:
carrera (alumno)
o en notacin algebraica:
Z ALUMNO [Carrera]
Primero se genera una tabla con la columna Carrera, pero con renglones
repetidos:
Carrera
Biologa
Biologa
Biologa
Matemtica
s
Matemtica
s
Biologa
Fsica
Biologa
Matemtica
s
Fsica

Despus se genera la tabla-R resultado, eliminando los renglones repetidos:


Carrera
Biologa
Matemtica
s
Fsica

SQL no elimina renglones repetidos, a menos de que explcitamente se incluya


el comando DISTINCT.
En SQL:
SELECT DISTINCT carrera FROM Alumno;
Bases de Datos. Miguel Murgua. FAR.

59

Theta-Seleccin

R[a=cte]
SELECT a1, a2,... FROM R WHERE a1=cte;

La seleccin es un operador unario. Selecciona tuplas que satisfacen un


predicado. Por ejemplo, si se desea obtener los registros dela tabla ALUMNO
que cursan la carrera de Matemticas, se debe cumplir la condicin
Carrera=Matemticas.
En notacin de predicados:
carrera=Matemticas (alumno)
En notacin algebraica:
Z ALUMNO [Carrera=Matemticas]
El resultado:
Numerocuenta
970002
950003
970004

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

Otro ejemplo, los alumnos de la generacin 97:


ao-ingreso=97 (alumno)
En notacin algebraica:
Bases de Datos. Miguel Murgua. FAR.

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

Bases de Datos. Miguel Murgua. FAR.

61

Combinando seleccin y proyeccin

Ahora podemos combinar los operadores seleccin y proyeccin. Por ejemplo,


se pueden obtener los nombres de los alumnos que cursan la carrera de
Matemticas:
nombre-alumno ( carrera=Matemticas (alumno))

Z (ALUMNO [Carrera=Matemticas]) [Nombre_alumno]


El resultado:
Nombre-alumno
Isabel
Valderrama
Ma.Elena Caedo
Jos Malo

En SQL:
SELECT DISTINCT nombre_alumno
FROM Alumno
WHERE carrera=Matemticas

La seleccin produce un resultado con el mismo esquema de relacin que su


operando, mientras que la proyeccin si modifica el esquema, regresando
como resultado una relacin con menor nmero de columnas.
Ambos operadores pueden regresar una relacin resultado con cardinalidad
menor a la del operando, pues en la seleccin es uno de sus objetivos y en la
proyeccin debido a la eliminacin de renglones repetidos.

Bases de Datos. Miguel Murgua. FAR.

62

Select y Theta-Select

Normalmente, si se omite el prefijo theta al operador theta-select se


sobrentiende que la seleccin se realiza mediante una igualdad (=), por
ejemplo:
Z ALUMNO [Carrera=Matemticas]
pero theta-select puede realizarse utilizando otros operadores, donde theta
puede ser alguno de los siguientes comparadores:

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)

Z MATERIA [Crditos >=10]


El resultado:
Clavemateria
01003
03001
02003

Nombre-materia Nivel
Clculo
Fsica relativista
Bioqumica

Bases de Datos. Miguel Murgua. FAR.

Crditos
1
4
2

10
10
12

63

En SQL:
SELECT * FROM Materia WHERE crditos>=10

En la seleccin tambin pueden realizarse comparaciones entre columnas, lo


cual significa que se deben comparar los valores de esos atributos en cada
registro. Es decir, se pueden construir expresiones del estilo:
atributo1=atributo2 (alumno)
Por ejemplo, suponiendo la existencia de una relacin RESUMEN que
contiene los totales de alumnos acreditados y no acreditados en cada materia:
Z RESUMEN [Aprobados >= Reprobados]
En SQL:
SELECT * FROM Materia WHERE aprobados >= reprobados

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.

Bases de Datos. Miguel Murgua. FAR.

64

Theta-seleccin extendido

Si

@ denota cualquiera de los 10 comparadores revisados anteriormente,


A y B son columnas de la relacin R y
x una variable del lenguaje o una constante

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

Bases de Datos. Miguel Murgua. FAR.

65

Z (ALUMNO [Carrera=Matemticas ]) [Ao_ingreso=97]


Producto cartesiano

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)

Si existen atributos con el mismo nombre en ambas tablas, se antepone como


prefijo el nombre de la relacin para distinguir a cada uno, por ejemplo, para
distinguir el atributo nmero-cuenta de la tabla alumno y de la tabla examen,
se escribe:
alumno.nmero-cuenta
examen.nmero-cuenta
Lo anterior funciona slo si los nombres de las relaciones son distintos. En el
caso de los nombres de las relaciones involucradas sean iguales, entonces, se
agregar un nmero subfijo, por ejemplo:
alumno1.nmero-cuenta
alumno2.nmero-cuenta

El operador producto cartesiano puede ser til para responder la pregunta


encontrar las tuplas de los alumnos que hayan presentado un examen:

Bases de Datos. Miguel Murgua. FAR.

66

alumno.numero-cuenta=examen.numero.cuenta(alumno x examen)

Z (ALUMNO x EXAMEN)
[ALUMNO.Nmero_cuenta=EXAMEN.Nmero_cuenta]

Bases de Datos. Miguel Murgua. FAR.

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

Resultado de alumno x examen


contina...

Bases de Datos. Miguel Murgua. FAR.

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

Resultado de alumno x examen

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]

Bases de Datos. Miguel Murgua. FAR.

69

Tambin se puede aplicar la proyeccin a


alumno.nombre-alumno, fecha-examen
( alumno.numero-cuenta=examen.numero.cuenta(alumno x examen))

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

El producto cartesiano es conmutativo, as, si S y R son relaciones, se puede


establecer la siguiente equivalencia:
SxT=TxS
El producto cartesiano no es muy utilizado en la prctica, sino ms bien puede
implementarse como un caso especial del operador theta-join, que se
explicar ms adelante.
El producto cartesiano es til como una herramienta conceptual, pero no es
necesario que se implemente en los DBMS. Sin embargo, se deber poder
substituir como el resultado de un caso extremo de otro operador (v.g. thetajoin).

Bases de Datos. Miguel Murgua. FAR.

70

Renombrar

SELECT * FROM R AS S

La operacin renombrar permite evitar ambigedades cuando se hace


referencia a un mismo atributo pero con diferente uso, por ejemplo, al intentar
contestar Nombres de los alumnos que tengan la misma carrera que Emilio
Vera.
Con la siguiente expresin se encuentra la carrera de Emilio Vera:
carrera ( nombre-alumno=Emilio Vera(alumno))
Pero para encontrar los nombres de los alumnos con esa carrera, se debe hacer
referencia otra vez al atributo nombre-alumno:
p(alumno x carrera ( nombre-alumno=Emilio Vera(alumno)))
donde p es un predicado que indica que el valor de carrera en alumno es el
mismo que el que se obtiene en carrera.
Por esa razn es necesario cambiar de nombre a una relacin para poder hacer
esa distincin.
La operacin:
x(r)
renombra a la relacin r con x.
carrera
( alumno2.carrera=alumno.carrera
(alumno x carrera ( nombre-alumno=Emilio Vera( alumno2(alumno)))))

Bases de Datos. Miguel Murgua. FAR.

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

Bases de Datos. Miguel Murgua. FAR.

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.

Bases de Datos. Miguel Murgua. FAR.

73

Diferencia

SELECT * FROM R MINUS S


El operador diferencia encuentra tuplas que estn en una relacin pero no en
otra. As, R S devuelve una relacin con las tuplas que se encuentran en R y
que no estn en S. Por ejemplo, encontrar los nmeros de cuenta de los
alumnos que no han hecho exmenes:
numero-cuenta (alumno) numero-cuenta (examen)
Z ALUMNO[Nmero_cuenta] EXAMEN[Nmero_cuenta]
SELECT numero_cuenta FROM Alumno
WHERE numero_cuenta
MINUS
SELECT numero_cuenta FROM Examen;
bien:
SELECT numero_cuenta FROM Alumno
WHERE numero_cuenta
NOT IN
(SELECT numero_cuenta FROM Examen);
El resultado:
Numero-cuenta
950002
970001
950003
950004
970003
970004

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.

Bases de Datos. Miguel Murgua. FAR.

74

Definicin formal del lgebra relacional

El lgebra relacional forma sus expresiones a partir de operadores y de


relaciones.
Una expresin general del lgebra relacional se construye a partir de
subexpresiones.
Si E1 y E2 son expresiones del lgebra relacional, entonces las siguientes
tambin lo son:
E1 E2
E1 E2
E1 x E2
p(E1) donde P es un predicado con atributos de E1.
s(E1) donde s es una lista que consta de algunos de los atributos de E1.
x(E1) donde x es el nuevo nombre de la relacin E1.

Bases de Datos. Miguel Murgua. FAR.

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

SELECT * FROM R INTERSECT S


La interseccin sirve para encontrar las tuplas que se encuentran en dos
relaciones a la vez. Por ejemplo, encontrar las claves de las materias que ya
han sido cursadas por algn alumno y para las que se ha presentado al menos
un examen:
clave-materia (historia) clave-materia (examen)
Z HISTORIA[Clave_materia] interseccin
EXAMEN[Clave_materia ]
SELECT clave_materia
FROM Historia
INTERSECT
SELECT clave_materia
FROM Examen;
El resultado:
Clave-materia
02002

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|

Aunque el producto natural no es parte explcita del modelo relacional, es


conveniente su explicacin para formalizar otras operaciones as como para
entenderlas mejor.
Reconsidrese la pregunta encontrar las tuplas de los alumnos que hayan
presentado un examen:
alumno.numero-cuenta=examen.numero.cuenta(alumno x examen)
Como puede observarse, tpicamente a una operacin de producto cartesiano
se le aplica una seleccin.
El producto natural realiza automticamente una seleccin sobre los
atributos en comn, poniendo la restriccin de que los valores sean iguales en
los atributos de ambas tablas.
As al realizar el producto natural
alumno |x| examen
se seleccionan automticamente slo aquellas tuplas que coincidan en el
atributo numero-cuenta, pues ese atributo es comn a ambas relaciones. Si hay
ms de un atributo en comn, entonces las tuplas debern coincidir en ambos
valores de cada par de atributos.
Adicionalmente, el producto natural realiza una proyeccin sobre la unin
de los atributos, evitando repetir columnas. As, para el ejemplo anterior, el
esquema de la relacin resultante del producto natural es:
(numero-cuenta, nombre-alumno, ao-ingreso, carrera, clave-materia, ordende-pago, fecha-examen)
Como puede observarse, el atributo numero-cuenta no se repite en el esquema.

Bases de Datos. Miguel Murgua. FAR.

77

El producto natural es una operacin muy importante en el modelo


relacional, pues es una de las principales maneras de relacionar tablas en la
prctica.
Formalmente el producto natural se define como:
r|x|s = RS( rA1=sA1^ rA2=sA2^ ... ^rAn=sAn r x s)
donde R y S son los conjuntos de atributos de las relaciones r y s
respectivamente
y A1, A2, ... An R S
Es decir, el producto natural es una proyeccin de una seleccin de un
producto cartesiano.
La operacin producto natural es asociativa, es decir:
(r |x| s) |x| t = r |x| (s |x| t)
por lo que se puede escribir como:
r |x| s |x| t

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

Bases de Datos. Miguel Murgua. FAR.

78

Theta Join

Z R [ R.atributo=S.atributo ] S
SELECT *
FROM R
JOIN S ON R.A=S.A

En la prctica, los operadores de producto cartesiano y de producto natural


son incluidos en el de join.
El operador join realiza la misma accin que el producto natural, pero se
deben indicar explcitamente las columnas de ambas relaciones a comparar,
pues en el producto natural las columnas a comparar son aquellas que tienen
el mismo nombre.
Por ejemplo, si se desea obtener una tabla de los nombres de los alumnos junto
con las claves de las materias que han cursado se debe extraer informacin de
las tablas ALUMNO e HISTORIA y comparar el nmero de cuenta:
Z ALUMNO[Nmero_cuenta=Nmero_cuenta ]HISTORIA
La expresin anterior regresa una relacin de grado n+m, siendo n y m los
grados de ALUMNO e HISTORIA.

Si se desea obtener nicamente las columnas de nombre_alumno y


clave_materia, es necesario realizar una proyeccin:
Z (ALUMNO[Nmero_cuenta=Nmero_cuenta ]HISTORIA)
[Nombre_alumno, Clave_materia]
SELECT nombre_alumno, clave_materia
FROM Historia
JOIN Examen
ON Historia.nmero_cuenta=Examen.nmero_cuenta;

Bases de Datos. Miguel Murgua. FAR.

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

Anlogamente al operador theta seleccin, el operador theta join hace uso de


los 10 comparativos listados en la explicacin del primero.
Cuando de habla del operador join se sobrentiende que se est comparando
mediante EQUALITY.
Al operador theta join que compara mediante EQUALITY se le llama equi
join.
El equi join es conmutativo, es decir:
R[A=B]S = S[B=A]R

Bases de Datos. Miguel Murgua. FAR.

80

Theta Join extendido

La extensin del theta join es anloga a la de la seleccin, es decir, aade la


posibilidad de utilizar los conectivos lgicos NOT, OR, AND e IMPLIES.
Mediante un theta join extendido se pueden averiguar los casos en que un
alumno que haya cursado y hecho examen de la misma materia
Z HISTORIA [HISTORIA.Calificacin<EXAMEN.Calificacin ^
HISTORIA.Nmero_cuenta=EXAMEN.Nmero_cuenta ^
HISTORIA.Clave_materia=EXAMEN.Clave_materia]
EXAMEN

Join natural

En el equi join, las columnas que se comparan aparecen en el resultado


aadiendo redundancia, ya que ambas columnas contienen exactamente los
mismos valores, esta redundancia no se d con los otros 9 tipos de theta join.
Con la finalidad de eliminar esa redundancia en el equi join se define el join
natural, en el que se elimina una de las columnas que se usan en la
comparacin.
El join natural genera una relacin resultado de grado menor que el equi
join, utilizando los mismos operandos.

Bases de Datos. Miguel Murgua. FAR.

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

Bases de Datos. Miguel Murgua. FAR.

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:

Bases de Datos. Miguel Murgua. FAR.

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

Bases de Datos. Miguel Murgua. FAR.

T
=

nmero-cuenta
950004
970003

(nmero_cuenta, clave_materia)
(clave_materia)
(nmero_cuenta)

84

Divisin (Reforzamiento)

A continuacin se ejemplifica la equivalencia de la divisin:


r s = R-S (r) - R-S (( R-S(r) x s) - r)
Esquemas:
R = {A1, A2}

S = {A2}

R-S = {A1}

Ntese que R-S(r) x s tiene esquema R, pues S R.


R-S(r) x s
R-S(r)

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

Bases de Datos. Miguel Murgua. FAR.

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

R-S (r) - R-S (( R-S(r) x s) - r)


A1
a
c

Asignacin

ZR
SELECT * FROM R INTO S
SELECT * FROM R AS S

El operador asignacin es til para expresar consultas complejas, pues


permite dividir la pregunta en mdulos.
Por ejemplo, para expresar de una manera ms entendible a la equivalencia de
la divisin en trminos de operaciones bsicas se pueden realizar las siguientes
asignaciones:
A <- R-S (r)
B <- A - R-S (( R-S(r) x s) - r

La asignacin se puede observar en dos mbitos:


Uno en donde la variable a la que se asigna slo se requiere de manera
temporal, por ejemplo, como medio para realizar un query complejo.

Bases de Datos. Miguel Murgua. FAR.

86

Otro, donde se desea que el valore de la variable (la relacin asignada)


se almacene en la base de datos, sta operacin requiere una
modificacin al diccionario de datos, es decir al esquema de la base de
datos, adems de que se deber especificar la(s) columna(s) que
conforma a la llave primaria.

Bases de Datos. Miguel Murgua. FAR.

87

Ejercicios I

1. Considere la siguiente pregunta:


Clave de las materias que han sido cursadas por todos los alumnos
Qu operador relacional ayuda a contestar esta pregunta directamente?
Cul es una equivalencia en SQL de ese query?
2. En que sentido los operadores de diferencia, unin e interseccin no son
equivalentes a su contraparte en la teora de conjuntos?
3. Qu es compatibilidad de unin?
A qu operadores aplica?
Porqu el modelo relacional lo pone como una restriccin en esos casos?
4. Qu significa que los operadores del modelo relacional sean cerrados?
Cmo esa propiedad ayuda en la prctica?
5. Es ms complicado actualizar llaves primarias que otros atributos? Por
qu?

Bases de Datos. Miguel Murgua. FAR.

88

Ejercicios II

1. Construya una tabla de los operadores relacionales indicando si son unarios


o binarios y si son o no conmutativos. Asimismo, indique si es requisito
que los operandos cumplan la restriccin de compatibilidad de unin.
2. Para el esquema de una base de datos de un negocio que desarroll,
muestre una consulta en donde se utilice el producto natural de tres
tablas.
3. Construya la consulta equivalente del ejercicio anterior pero utilizando
producto cartesiano.
4. Explique la equivalencia de la operacin divisin utilizando slo
operaciones bsicas.
5. Construya una expresin del lgebra relacional para obtener los nombres
de las materias que ha cursado Carmen Daz.
6. Construya una expresin del lgebra relacional para obtener los nombres
de los alumnos que han cursado Bioqumica pero no Estadstica.

Bases de Datos. Miguel Murgua. FAR.

89

2. Modificacin de la Base de Datos

Asignacin

ZR
SELECT * FROM R INTO S
SELECT * FROM R AS S

El operador asignacin es til para expresar consultas complejas, pues


permite dividir la pregunta en mdulos.
Por ejemplo, para expresar de una manera ms entendible a la equivalencia de
la divisin en trminos de operaciones bsicas se pueden realizar las siguientes
asignaciones:
A R-S (r)
B A - R-S (( R-S(r) x s) - r

La asignacin se puede observar en dos mbitos:


Uno en donde la variable a la que se asigna slo se requiere de manera
temporal, por ejemplo, como medio para realizar un query complejo.
Otro, donde se desea que el valore de la variable (la relacin asignada)
se almacene en la base de datos, sta operacin requiere una
modificacin al diccionario de datos, es decir, al esquema de la base de
datos, adems de que se deber especificar la(s) columna(s) que
conforma a la llave primaria.

Bases de Datos. Miguel Murgua. FAR.

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

donde E es una expresin del lgebra relacional.


SQL:
INSERT INTO HISTORIA
VALUES (970003, 02001, 97, 9);

Bases de Datos. Miguel Murgua. FAR.

91

Actualizacin

update
UPDATE R SET A=a WHERE B=b;

El operador update substituye a la eliminacin e insercin de renglones


cuando se desean cambiar los valores de una porcin pequea de las
columnas.
La informacin necesaria para realizar una actualizacin es:
el nombre de la relacin a actualizar,
la especificacin de los renglones a actualizar, y
los nombres de las columnas que se desean actualizar en los
renglones y los nuevos valores de esos componentes.
Para identificar a los renglones que se desean actualizar, el usuario puede
brindar una lista de las claves primarias, o una condicin vlida para el
operador seleccin.
Los ndices existentes deben de actualizarse.
La integridad referencial puede daarse si se actualizan las llaves primarias o
las llaves forneas.

Actualizacin de llaves primarias


El modelo relacin define un operador para este caso especial: primary-key
update.
Este operador busca en todas las columnas de la base de datos que tengan el
mismo dominio de la columna que el usuario desea actualizar y cambia, en
cascada, todos los valores que coincidan (llaves forneas).
SQL: UPDATE MATERIA
SET NOMBRE_MATERIA=Clculo Integral
WHERE NOMBRE_MATERIA=Clculo;

Bases de Datos. Miguel Murgua. FAR.

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;

delete with cascade deletion


En el modelo relacional se define el operador delete with cascade deletion
que produce una propagacin de la eliminacin de renglones ligados mediante
llaves forneas que coinciden con las llaves primarias de los renglones
eliminados.

3. Vistas
Definicin de vistas

Las vistas permiten personalizar la interface con cada tipo de usuario.


Tambin permiten confinar la interaccin con la Base de Datos a una o ms
vistas como la nica manera de acceder a los datos.
Las vistas relaciones virtuales representadas por su nombre y su definicin.
La definicin de una vista puede estar basada en:

Bases de Datos. Miguel Murgua. FAR.

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

Otro ejemplo de vista es el equi-join entre ALUMNO e HISTORIA sobre el


atributo Nmero_de_cuenta.
ALUMNO [Nmero_de_cuenta=Nmero_de_cuenta] HISTORIA
VISTA_2
Numerocuenta
950001
....
970003

Nombre...
alumno
Oscar Martnez ...

Nmero_cuen ...
ta
950001
...

Calificaci
n
8.2

Miguel Romero ...

970003

Bases de Datos. Miguel Murgua. FAR.

...

94

Modificabilidad de las Vistas

Las vistas no deben definirse en trminos de procedimientos (v.g.


involucrando loops), esto hace que los usuarios puedan definir vistas aunque
no sean programadores.
Las vistas se definen utilizando lenguaje relacional.
La definicin de las vistas deben de poder almacenarse en el catlogo, pues en
general, son de inters para una comunidad de usuarios y no solo para un
usuario en particular.
El DBMS y el lenguaje relacional no deben hacer distincin en el tratamiento
de relaciones y de vistas, excepto porque:
algunas vistas no aceptan insercin de renglones, eliminacin y/o
actualizacin.
algunas vistas no tienen llaves primarias, por lo que no aceptan
aquellos operadores que requieren de una llave primaria en sus
operandos.

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.

Bases de Datos. Miguel Murgua. FAR.

95

Algoritmo VU

Considrese la siguiente definicin de una vista:


VISTA_3:
HISTORIA [Clave_materia, Calificacin]
Clave-materia Calificacio
n
02001
8.2
02001
9
02003
7
02002
9
02003
10
02002
8
02003
9

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

IV Diseo de bases de Datos Relacionales


1. Normalizacin
Dependencia funcional

Dada una relacin R, su atributo B es funcionalmente dependiente del


atributo A (denotado por A B) si y slo s, siempre que dos tuplas de R
coinciden en su valor A, tambin lo hacen en su valor B.
Tambin se dice que A determina funcionalmente a B.
Por ejemplo:
A
1
1
2
3
3
3
4
4

B
22
22
50
10
10
10
22
22

Las dependencias funcionales definen una de las maneras en que se


relacionan entre s los atributos.
Pueden ser vistas como un conjunto de restricciones al modelo de datos, ya
que son condiciones que se deben de cumplir en el modelo de datos.

ALUMNO
Numerocuenta

Nombrealumno

Aoingreso

Bases de Datos. Miguel Murgua. FAR.

Carrera

97

En esa relacin el atributo NOMBRE_ALUMNO es funcionalmente


dependiente del NUMERO_CUENTA, pues para cada valor de
NUMERO_CUENTA hay slo uno de NOMBRE_ALUMNO.
Obsrvese que la dependencia funcional es direccional, por ejemplo, se
permite que para cada valor de NOMBRE_ALUMNO si haya ms de uno en
NUMERO_CUENTA.

Supngase que se tiene una relacin con el siguiente esquema:


HISTORIA(ALUMNO#, GRUPO#, MATERIA, PROFESOR,
SALON, CALIFICACION)
con llave primaria (ALUMNO#, GRUPO#); en la que se cumplen las
siguientes relaciones funcionales:
1.- (ALUMNO#, GRUPO#) CALIFICACION
Lo que implica que para cada par de valores ALUMNO#, GRUPO#
existe un slo valor de CALIFICACION.
2.- GRUPO# MATERIA
3- GRUPO# PROFESOR
4.- GRUPO# SALON
Lo que implica que para cada valor GRUPO# hay un slo valor de
MATERIA, PROFESOR y SALON.
5.- PROFESOR SALON
y para cada valor de PROFESOR hay slo uno de SALON.

Las dependencias funcionales son un elemento importante en el diseo de


bases de datos relacionales, pues ponen restricciones al modelo por construir.
Adems, en varios de los conceptos de normalizacin la dependencia
funcional est involucrada como idea fundamental.

Bases de Datos. Miguel Murgua. FAR.

98

1a. forma normal

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.

2a. forma normal

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

As, para transformar la relacin HISTORIA a 2FN es necesario separar los


atributos que dependan parcialmente de la llave:
CALIF (ALUMNO#, GRUPO#, CALIFICACION)
CURSO (GRUPO#, MATERIA, PROFESOR, SALON)

La descomposicin garantiza que se haga sin prdida de informacin, es


decir, que no contenga menos informacin que:
HISTORIA(ALUMNO#, GRUPO#, MATERIA, PROFESOR,
SALON, CALIFICACION)
Bases de Datos. Miguel Murgua. FAR.

99

Ntese que para que una relacin que est en 1FN no est en 2NF debe tener
una llave compuesta.

La relacin HISTORIA, que est 1NF pero no en 2NF, tiene la dificultad de


que:
No se puede registrar un curso sin que se conozca cuando menos un
alumno que est inscrito. Pues no se puede tener un valor nulo en el
atributo ALUMNO#.
Si se desea actualizar el nombre del PROFESOR se deber hacerlo en
varias tuplas de la relacin.
Si todos los alumnos de un curso se dan de baja entonces se perder
la informacin de ese curso.

Bases de Datos. Miguel Murgua. FAR.

100

3a. forma normal

Una relacin est en tercera forma normal (3FN) si est en 2FN y cada
atributo no-primo depende no-transitivamente la llave primaria.

Por ejemplo, el atributo SALON es dependiente transitivamente del atributo


GRUPO#, pues:
3- GRUPO# PROFESOR, y
5.- PROFESOR SALON
As, la relacin CURSO no est en 3NF:
CURSO (GRUPO#, MATERIA, PROFESOR, SALON)
y presenta los siguientes problemas:
En el caso de que los salones sean cubculos personalizados, no se
puede asignar un cubculo (SALON) a un PROFESOR hasta se habr
un curso.
Si el PROFESOR cambia de cubculo, habr que actualizarlo en cada
grupo asignado a ese profesor.
Si un profesor deja de dar clases, entonces no se tiene informacin de
l y en qu cubculo encontrarlo.
Para transformarla a 3NF, se debe dividir la relacin CURSO para evitar que
SALON dependa transitivamente de la llave primaria:
CALIF (ALUMNO#, GRUPO#, CALIFICACION)
CURSO (GRUPO#, MATERIA, PROFESOR)
CATEDRA (PROFESOR, SALON)

En este proceso de partir la relacin original en otras, se conoce como


descomposicin sin prdida de informacin.
En general, una relacin R(A,B,C) en la que existe una dependencia funcional
Bases de Datos. Miguel Murgua. FAR.

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.

Bases de Datos. Miguel Murgua. FAR.

102

Forma normal de Boyce-Codd

Una relacin est en la forma normal de Boyce-Codd (BCFN) si y slo s


cada determinante es una llave candidata.
Un determinante es un atributo o grupo de ellos, de los que algunos otros
atributos son funcionalmente dependientes, es decir, si:
A B,
entonces A es un determinante.

Como ejemplo, considrese una escuela en la que:


cada materia puede ser impartida por varios profesores,
cada profesor ensea slo una materia,
cada estudiante toma varias materias y tiene slo un profesor para una
materia dada.
Lo anterior puede representarse mediante el esquema:
INSCRIPCION(ALUMNO#, PROFESOR, MATERIA)
con clave primaria (ALUMNO#, PROFESOR) y las dependencias:
PROFESOR MATERIA
ALUMNO# PROFESOR
Esa relacin no est en 2NF, pues existe la dependencia parcial:
PROFESOR MATERIA
lo cual se puede resolver mediante:
INSCRIPCION(ALUMNO#, MATERIA, PROFESOR)

Bases de Datos. Miguel Murgua. FAR.

103

La relacin:
INSCRIPCION(ALUMNO#, MATERIA, PROFESOR)

s est en 2NF y an en 3NF, pero no en BCFN, pues se tiene la dependencia:


PROFESOR MATERIA
y PROFESOR no es una llave candidata (y es un determinante, por lo que
viola la definicin de BCFN).
Como puede observarse, existe redundancia en el hecho de que cada profesor
slo imparte una materia, y en esa relacin aparecer el PROFESOR junto con
la MATERIA que imparte cada que un alumno toma una clase con l.
Lo anterior puede resolverse mediante la descomposicin:
CLASE(ALUMNO#, PROFESOR)
PROFESOR(PROFESOR, MATERIA)

Bases de Datos. Miguel Murgua. FAR.

104

4a. forma normal

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.

Como ejemplo considrese la relacin:


PROVEEDOR(COMPAIA, PRODUCTO, PAIS)
con llave primaria (COMPAIA, PRODUCTO, PAIS) sin dependencias
funcionales; y que significa que una COMPAIA vende un PRODUCTO en
cierto PAIS.
Esa relacin est en BCFN. Sin embargo, es evidente la redundancia de
informacin cuando cada empresa vende todos sus productos a cada pas al
que exporta. Por ejemplo, si IBM vende computadoras a Francia, entonces
vende todo sus productos en Francia.
As, si quisiramos agregar el hecho de que IBM exporta a Espaa, tendramos
que agregar una tupla <IBM, p. Espaa> para cada producto p que produce
IBM.
Ahora considrese la siguiente descomposicin sin prdida de informacin:
PRODUCE(COMPAIA, PRODUCTO)
EXPORTA(COMPAIA, PAIS)
con claves primarias COMPAIA, PRODUCTO) y (COMPAIA, PAIS)
respectivamente.
La redundancia no era debida a la existencia de dependencias transitivas ni
parciales, sino a las dependencias multivaluadas:
COMPAIA PRODUCTO
COMPAIA PAIS

Bases de Datos. Miguel Murgua. FAR.

105

Ejemplos de tuplas de la relacin PROVEEDOR


COMPAIA
IBM
IBM
IBM
IBM
IBM
IBM
DEC
DEC
DEC
DEC
ICL
ICL

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

Alternativa, despus de aplicar 4 forma normal:

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

Bases de Datos. Miguel Murgua. FAR.

106

Dependencia multivaluada

Dada una relacin R(A, B. C), la dependencia multivaluada


A B
se cumple en R s y slo s, el conjunto de los valores de B que corresponden a
un par dado (valor de A, valor de C) en R depende slo del valor de A y es
independiente de C.

La relacin PROVEEDOR se puede considerar como una combinatoria entre


los atributos COMPAIA-PRODUCTO-PAIS
COMPAIA
IBM

PRODUCTO
PC
MAINFRAME

DEC

PC
MINI
MAINFRAME

ICL

PAIS
FRANCIA
ITALIA
UK
FRANCIA
IRLANDA
ITALIA
FRANCIA

Es decir, se exige la existencia de tuplas dada la existencia de otras, por


ejemplo, dado que existen las tuplas
<IBM, PC, FRANCIA> y
<IBM, MAINFRAME, ITALIA>
entonces tambin deben existir las tuplas:
<IBM, PC, ITALIA> y
<IBM, MAINFRAME, FRANCIA>
En general, si en una relacin se cumple A B, entonces se cumple que
dado que existen la tuplas:
<a, b1, c1 > y
<a, b2, c2 >

Bases de Datos. Miguel Murgua. FAR.

107

tambin deben existir las tuplas:


<a, b1, c2 > y
<a, b2, c1 >

Una dependencia multivaluada se da en relaciones de 3 o ms atributos, pues


la definicin hace referencia a relaciones entre A, B y C. Se puede demostrar
que siempre que se da:
A B
tambin se da:
A C
por lo que suele usarse la notacin:
A B | C
Ntese que si una relacin R no satisface una dependencia multivaluada, se
puede construir una R que s la satisfaga aadiendo tuplas a R. Por lo que se
dice que mientras que las dependencias funcionales son restrictivas (por
ejemplo dado A B y la tupla < a, b1> no puede existir la tupla < a, b2>), las
dependencias multivaluadas son generadoras de tuplas.

Bases de Datos. Miguel Murgua. FAR.

108

Limitaciones de la normalizacin

El proceso de normalizacin ayuda a representar los hechos en la Base de


datos de una manera ms cercana al mundo real.
Sin embargo, en ocasiones no es necesario normalizar al extremo las
relaciones de la base de datos, inclusive, ser conveniente mantener algunas
sin normalizar.
Por ejemplo, la relacin:
CLIENTE (NOMBRE, CALLE, CIUDAD, PC)
con llave primaria (NOMBRE), no est en 3NF, pues se dan las
dependencias transitivas:
NOMBRE CP
CP CALLE
CP CIUDAD
Aunque una relacin normalizada soluciona aspectos de actualizacin de la
informacin, en ocasiones incrementa los problemas de recuperacin o
consulta, ya que en una base de datos normalizada la informacin se tendr
que recuperar de varias relaciones, por lo que una no-normalizada podr
tener mejor desempeo.

Bases de Datos. Miguel Murgua. FAR.

109

Dependencia de reunin (join)

El concepto de dependencia de reunin es necesario para entender la 5a forma


normal.
La dependencia de reunin es un concepto ms general que el de dependencia
funcional y an que el de multivaluada.
As como una dependencia funcional puede ser vista como un caso especial de
la dependencia multivaluada, la dependencia multivaluada es un caso especial
de la de reunin.
Se dice que una relacin R satisface una dependencia de reunin (A, B) si A
join B reproducen exactamente a R.
Considrese a la relacin PROVEEDOR:
(S#, Noms, Estado, Ciudad)
con claves candidatas S# y Noms. La relacin PROVEEDOR satisface la
dependncia re reunin:
((S#, Noms, Estado), (S#, Ciudad))
pues (S#, Noms, Estado) join (S#, Ciudad) reproduce a PROVEEDOR.
Tambin satisface la dependencia de reunin:
((S#, Noms,), (S#, Estado), (Noms, Ciudad))
pues (S#, Noms) join (S#, Estado) join (S#, Ciudad) tambin reproduce a
PROVEEDOR.

Bases de Datos. Miguel Murgua. FAR.

110

5NF o PR/NF (forma normal de proyeccin-reunin)

Quinta forma normal:


Una relacin R est en quinta forma normal (5NF) (tambin llamada de
proyeccin-reunin) si y slo si toda dependencia de reunin en R est
implicada por las llaves candidatas de R.

Considere la relacin SPJ(S, P, J) con llave primaria (S,P,J):


SPJ
S
S1
S1
S2
S1

P
P1
P2
P1
P1

J
J2
J1
J1
J1

La relacin SPJ no contiene dependencias funcionales ni dependencias


multivaluadas, por lo que se encuentra en 4NF, sin embargo, se observa
redundancia en la informacin, pudindose producir anomalas al actualizarla.
Considrese las proyecciones SP y PJ:
SP
S
S1
S1
S2
S1

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

Bases de Datos. Miguel Murgua. FAR.

111

S2

P1

J1

como puede observarse SP join PJ no reproduce a SPJ, pues contiene una


tupla de ms.
Ahora considere a la proyeccin SJ:
SJ
S
S2
S1
S1

J
J1
J1
J2

El join SP join PJ join SJ reproduce a SPJ, por lo que existe la dependencia de


reunin (SP, PJ, SJ), y por lo tanto SPJ no est en 5NF.
En general:
Si

<s1, p1> aparce en SP


<p1, j1> aparce en PJ
<s1, j1> aparce en SJ
entonces
<s1, p1, j1> aparece en SPJ.
o bien:
Si

<s1, p1, j2>,


<s1, p2, j1>,
<s2, p1, j1> aparecen en R
entonces
<s1, p1, j1> tambin debe aparecer en R.

Es decir, la dependencia de reunin es un tipo de restriccin adicional a la


dependencia funcional y a la multivaluada.

Bases de Datos. Miguel Murgua. FAR.

112

Cuando existe una dependencia de reunin en una relacin, s debe


descomponerse para as transformar a 5NF.

Bases de Datos. Miguel Murgua. FAR.

113

DK/NF (Dependencia de dominio-clave)

Forma normal de dominio-clave:


Una relacin est en forma normal de dominio-clave si cada restriccin en la
afinidad es consecuencia lgica de la definicin de las claves y dominios.

Cuando se disea una base de datos y se intenta normalizarla se hace


respecto a un conjunto de restricciones. Por ejemplo, para normalizar a 2NF,
3NF y BCNF se deben de considerar las dependencias funcionales en el
modelo de datos; para normalizar a 4NF se deben de considerar las
dependencias multivaluadas; para normalizar a 5NF se deben de considerar las
dependencias de reunin.
Sin embargo, existen otros tipos de restricciones que se imponen al modelo,
entendiendo por restriccin cualquier regla que gobierna los valores estticos
de atributos.
De manera informal, una relacin est en forma normal de dominio-clave si al
aplicar las restricciones de clave y de dominio se provoca que se cumplan
todas las restricciones.

Bases de Datos. Miguel Murgua. FAR.

114

Resumen de Formas Normales

1NF

Valores atmicos

2NF

Los atributos no primos dependen completamente de la llave


primaria

3NF

No hay dependencias transitivas

BCNF

Cada determinante es una clave candidata

4NF

No hay dependencias multivaluadas

5NF

Dependencias de reunin implicadas por las llaves candidatas

Bases de Datos. Miguel Murgua. FAR.

115

Dependencias Funcionales

Adems de que es til conocer el conjunto de dependencias funcionales que se


utilizarn como restriccin para disear la estructura de la base de datos,
tambin es til conocer todas las posibles dependencias funcionales que se
puedan derivar lgicamente.
Es decir, dado un conjunto F de dependencias funcionales, se pueden deducir
otras, siguiendo un conjunto de reglas deductivas, y se dice que F implica
lgicamente a dicho conjunto.

Cierre de un conjunto de dependencias funcionales


El cierre de F es el conjunto de dependencias funcionales F+ que F implica
lgicamente.
Para calcular el cierre F+ dado un conjunto F, se utilizan los axiomas de
Armstrong, que son un conjunto de reglas de transformacin, para las que se
ha demostrado su validez.
Los axiomas de Armstrong son seguros porque no generan dependencias
funcionales incorrectas y son completos porque para un conjunto F de
dependencias funcionales permiten generar F+ completo.

Bases de Datos. Miguel Murgua. FAR.

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

Otras reglas que se deducen a partir de los axiomas de Armstrong son:


Unin:
Si se cumple y se cumple ,
entonces se cumple
Descomposicin:
Si se cumple ,
entonces se cumplen y
Pseudotransitividad:
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

Podemos generar algunos miembros de F+:


A H,

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

Bases de Datos. Miguel Murgua. FAR.

118

Anlisis

La metodologa para diseo de bases de datos relacionales se puede clasificar


en dos tipos de estrategias: Anlisis y Sntesis.

Los ejemplos revisados en clase sobre las diferentes etapas de normalizacin,


utilizan una estrategia analtica porque dada una relacin se iba dividiendo,
generando relaciones con menor nmero de atributos, con la finalidad de
avanzar en el proceso.
Anlisis significa distinguir y separar las partes de un todo hasta llegar a
conocer sus principios o elementos.
En el caso extremo de la metodologa de anlisis, se parte de una relacin
universal y se va dividiendo para ir cumpliendo con diferentes grados de
normalizacin.
Casos intermedios y ms comunes son partir de un conjunto de relaciones en
las que cada una se estudia para establecer si cumple con una determinada
forma normal.
En el anlisis se generan conceptos ms especficos a partir de conceptos
generales. Por ejemplo, a partir de Curso se pueden descubrir las relaciones
Alumno, Profesor y Saln.

Bases de Datos. Miguel Murgua. FAR.

119

Sntesis

Sntesis significa formar un todo mediante la reunin de sus partes.


En la sntesis se generan conceptos ms generales a partir de conceptos
especficos. Por ejemplo, se puede generar el concepto (relacin) Curso a
partir de las relaciones Alumno, Profesor y Saln.
Caso terico extremo es partir de un conjunto de atributos y de dependencias
funcionales, e ir agregando a los atributos guiado por las restricciones de
dependencias funcionales.

Bases de Datos. Miguel Murgua. FAR.

120

Ejercicios

1.- Defina 30 trminos o conceptos del modelo relacional revisados en clase.


2.- Mencione algunas caractersticas del modelo relacional en las que est
involucrado el concepto de dominio.
3.- Considere a la relacin R(A, B, C, D, E) y dependencias funcionales:
A BD
CD E
BD
EA
a) Demuestre que (A, B, C) (A, D, E) es una descomposicin sin
prdida de informacin.
b) Demuestre que (A, B, C) (C, D, E) no es una descomposicin sin
prdida de informacin.
c) Normalice R hasta BCNF justificando cada paso.

4.- Para el ejemplo de la escuela revisado en clase, proponga un conjunto de


restricciones mediante dependencias funcionales, justificando cada una.

Bases de Datos. Miguel Murgua. FAR.

121

5.- Considere la relacin PROYECTO:


esquema:
PROYECTO(IDProyecto, NombreEmpleado, SalarioEmpleado)
extensin:
PROYECTO
IDProyecto

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

Suponga que todas las dependencias funcionales son evidentes en la extensin.


Cul de las siguientes dependencias funcionales se cumplen?
a) IDProyecto NombreEmpleado

IDProyecto SalarioEmpleado
(IDProyecto, NombreEmpleado) SalarioEmpleado
NombreEmpleado SalarioEmpleado
SalarioEmpleado IDProyecto
SalarioEmpleado IDProyecto, NombreEmpleado

b) En qu forma normal est? Explique.


c) El atributo SalarioEmpleado es un determinante?
d) El atributo NombreEmpleado es un determinante?
e) El atributo IDProyecto es un determinante?
f) Existen dependencias transitivas?
g) Considerando el conjunto de dependencias funcionales que se cumplen,
redisee normalizando.

Bases de Datos. Miguel Murgua. FAR.

122

2. rboles, redes y relaciones recursivas


rboles

Un rbol se puede representar mediante relaciones con cardinalidad de


asignacin 1:N.
Se representan almacenando la clave de padre en el hijo. Los nodos raz tienen
valor nulo en ese atributo. Cada nodo tiene cuando mucho un padre.
Por ejemplo, la estructura de divisin poltica puede representarse mediante un
rbol, implementndola como:
Pas 1:N Estado 1:N Municipio
lo que significa que un pas contiene varios estados y un estado contiene
varios municipios.
Si los diferentes niveles del rbol son del mismo tipo, entonces se puede
representar mediante relaciones recursivas.
Por ejemplo, si se tiene una relacin Cliente y se desea registrar qu persona
recomend a qu otra, entonces:
Cliente 1:N Cliente
que podra implementarse a travs de los campos ClvCliente y
RecomendadoPor:

Cliente
ClvCliente
1
2
3
4
5
6

Nombre

...

Bases de Datos. Miguel Murgua. FAR.

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

Bases de Datos. Miguel Murgua. FAR.

125

Redes

Anlogamente, una red se puede representar mediante cardinalidades de


asignacin N:M.
Si los nodos son del mismo tipo, entonces se debe representar mediante una
relacin recursiva, pero como la cardinalidad es N:M, entonces se debe de
aadir una relacin que contenga a las claves primaria y fornea.
Por ejemplo, si se quiere representar la red de partidos que han jugado una
serie de equipos, entonces se deben de relacionar por

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.

Bases de Datos. Miguel Murgua. FAR.

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

Una relacin se define como un subconjunto de un producto cartesiano de n


dominios D1, D2, ...Dn, no necesariamente distintos. As, los valores que
aparecen en la columna i de la relacin deben pertenecer a Di, es decir, cada
atributo de cada relacin R tiene un dominio subyacente Di, por lo que cada
valor candidato para R.A debe pertenecer a Di.
Bases de Datos. Miguel Murgua. FAR.

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]

Desafortunadamente, la mayora de los manejadores comerciales slo proveen


tipos simples para los dominios. Por ejemplo, ORACLE tiene los tipos
NUMBER (nmeros enteros y reales), CHAR (cadenas), DATE, TIME y
MONEY.
Varios atributos pueden tener el mismo dominio, por ejemplo, NOMBREALUMNO y PROFESOR tienen el dominio de los nombres de las personas.
Sin embargo, para efectos de implementacin, en la prctica se definen los
dominios como cadenas de caracteres.
Surge un problema cuando se definen a los dominios de NOMBRE-ALUMNO
y MATERIA como cadenas de caracteres, por ejemplo, el sistema no puede
detectar que la pregunta:
Todos los alumnos que tienen el nombre de alguna
de las materias que han cursado

es improcedente, pues contiene una comparacin entre dos atributos con


dominios diferentes:

Bases de Datos. Miguel Murgua. FAR.

128

ALUMNO.Nombre=MATERIA.Nombre

As, las restricciones de dominio sirven, no slo para validar la informacin


contenida en cada atributo, sino tambin para verificar que tienen sentido las
comparaciones incluidas en preguntas a la base de datos.
Integridad intra-relacional

Las reglas de integridad intra-relacin verifican la validez entre los atributos


de una relacin, por ejemplo llaves nicas o el hecho de que toda relacin no
debe contener dos tuplas con los mismos valores en todos sus atributos.
Cuando se agrega una tupla se debe checar que no exista otra tupla con los
mismos valores en todos sus atributos primos. Asimismo, tambin se debe
verificar esa condicin, no slo cuando se agregan tuplas, sino tambin
cuando se actualizan.
De hecho, actualizar los valores de los atributos primos es una operacin que
debe tomarse con cuidado, pues una operacin invlida tiene serias
consecuencias en la base de datos.
Integridad referencial

La integridad de referencia mantiene la validez de las relaciones entre las


tablas. Por ejemplo, verificar que las llaves forneas sean nulas o iguales a
alguna llave primaria de la tabla que se relaciona.
Las llaves forneas desempean un papel muy importante, pues mantienen
ciertas relaciones definidas en el modelo.
La cardinalidad de asignacin tambin es una restriccin de integridad. Las
cardinalidades 1:1, N:1 o N:M que se definen en un modelo, deben de
mantenerse en la implementacin, por ejemplo, una relacin con cardinalidad
1:1 no puede contener dos tuplas con los mismos valores en los atributos de la
llave fornea.
De manera general, la integridad referencial permite asegurar que un valor que
aparece en una relacin, tambin aparezca en otra.

Bases de Datos. Miguel Murgua. FAR.

129

Integridad semntica intra-relacional

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.

Anlisis de consistencia en bases de datos geogrficas

Dentro del registro

ClvEstado

Lat

Lon

...

El punto (Lat,Lon) debe de estar dentro de los lmites estatales de ClvEstado,


de acuerdo a una cartografa de referencia.

ClvEstado

Lat

Lon

Altitud

...

El punto (Lat,Lon) debe estar a una altitud igual a Altitud.


Bases de Datos. Miguel Murgua. FAR.

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

Una afirmacin puede verse como un procedimiento mediante el cual se


verifica que cierto atributo, o conjunto de ellos, cumpla con ciertas
restricciones.
Por ejemplo, verificar que un alumno no puede realizar ms de dos
extraordinarios para una misma materia. As, cuando se incorpora un registro
sobre un examen extraordinario habra que contar las ocurrencias para ese
mismo alumno en esa misma materia y slo se aceptara la operacin en el
caso de que el nmero de ocurrencias no supere a uno.
De hecho, las restricciones de integridad de dominio, referencial e intrarelacional pueden verse como casos especficos de afirmaciones.
En general, las afirmaciones realizan un consumo de recursos considerable. La
definicin original de SQL inclua la instruccin assert para definir
afirmaciones, pero fu eliminada de las implementaciones, y an del SQL
estndar actual, debido a la gran cantidad de tiempo que consume la
verificacin de una afirmacin.
Como alternativa a las afirmaciones, se puede establecer un programa de
validacin en el que el administrador defina un calendario para aplicar rutinas
de validacin, que detecten violaciones a la integridad. Esta estrategia tiene la
ventaja de que el tiempo de acceso en linea no disminuye, pero tiene la
desventaja de que es ms dificil reestablecer la integridad de la base de datos
das despus de hacer las actualizaciones que en el momento de la captura.

Bases de Datos. Miguel Murgua. FAR.

131

Disparadores

Los disparadores son estrategias de integridad en los que se pueden especificar


instrucciones a ejecutar cuando se cumple un conjunto de instrucciones
predeterminadas. Por ejemplo, aadir un registro en una tabla cuando se
incluya un valor que no exista.
Los disparadores son anlogos a los demonios del sistema operativo UNIX.
4. Autorizaciones
Los diferentes tipos de instituciones establecen diferentes procedimientos para
salvaguardar su informacin.
El enfoque de seguridad y autorizacin que se incorpora en el modelo
relacional es lo suficientemente flexible para que las instituciones puedan
mantener los procedimientos que utilizan, sin ningn cambio, o bien, con
pequeos cambios.
En los DBMS actuales, existe una relacin estrecha entre autorizacin y vistas.
Un beneficio de este enfoque es que disminuye la complejidad de la
implementacin.
Algunos usuarios pueden estar autorizados para manipular ciertas columnas o
renglones de una relacin, as, el alcance de la autorizacin puede expresarse
en trminos de una vista que contenga slo esos renglones y columnas. As,
pueden existir vistas slo por motivos de autorizacin, sin embargo, la
mayora de los DBMS son pobres en la implementacin de actualizacin de
vistas.

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.

Bloque de actualizacin que eliminan renglones de una vista

Bases de Datos. Miguel Murgua. FAR.

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.

Acciones que necesitan autorizacin de ms de un usuario


Algunas actividades o actualizacin de la base de datos son de crucial
importancia para la empresa, por ejemplo, eliminar los datos de toda una tabla,
para ese tipo de actividades se debe tener la autorizacin de DBA y del
gerente, por ejemplo.
Algunas de las actividades que pueden requerir la autorizacin de ms de un
usuario son:
alguna ejecucin del comando DROP (desechar)
alguna ejecucin del comando DELETE
algn cambio a los periodos de gracia

Eliminaciones retardadas (Periodos de gracia)


Las eliminacin de relaciones mediante la ejecucin del comando DROP
RELATION tiene como consecuencia almacenarla por un periodo mnimo de
7 das. Tambin las eliminacin de un porcentaje elevado de renglones
tambin pueden estar sujetas a esta estrategia. El default es un periodo de 7
das, pero se puede especificar un valor mayor.

Actividades autorizables: control de la base de datos


Algunas de las actividades que se deben de poder autorizar de manera
separada o combinada son:
crear y eliminar (drop) un dominio

una tabla R base

una columna de una tabla R existente

una vista

una restriccin de integridad

una funcin definida por el usuario

un ndice
Bases de Datos. Miguel Murgua. FAR.

133

crear una llave fornea en una tabla R


activar o desactivar una autorizacin
establecer el modo UP o DOWN para el redondeo de pseudofechas
(v.g. Febrero 30, Marzo 32, Enero 0)

Actividades autorizables: Querys y manipulacin

consultar una tabla R especfica


insertar renglones en una tabla R especfica
actualizar componentes especficos de una tabla R especfica
actualizar llaves primarias de tablas especficas
borrar renglones de tablas R especficas

Bases de Datos. Miguel Murgua. FAR.

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

El DBMS debe soportar un catlogo on-line basado en el modelo relacional.


La descripcin de la base de datos de debe representar exactamente como
datos ordinarios, permitiendo a los usuarios autorizados aplicar el mismo
lenguaje relacional para consultar la descripcin de la base de datos como se
puede hacer con los datos regulares.
Esta caracterstica por lo general la tienen todos los DBMS.
El que se permita usar el mismo lengaje y sobre un mismo tipo de estructura,
hace que el DBA y los usuarios autorizados a accesar el catlogo, tengan que
aprender un slo modelo de datos (estructura y lenguaje) y no dos ( uno para
datos ordinarios y otro para el catlogo), como suceda con manejadores prerelacionales.

Concurrencia

Bases de Datos. Miguel Murgua. FAR.

135

El catlogo debe soportar varias consultas al mismo tiempo (consultas


propiamente y actualizaciones).
Al catlogo lo pueden acceder usuarios o programas de aplicacin y se debe
de cuidar de no elevar el nmero de usuarios autorizados para actualizarlo, ya
que el DBMS lo accesa cuando se realizan consultas a datos regulares.

Bases de Datos. Miguel Murgua. FAR.

136

Descripcin de dominios, relaciones base y vistas

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:

el nombre del dominio


su tipo de datos base
el intervalo de valores permitido
y una indicacin de si el comparador MENOR QUE (<) es aplicable

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

Para cada vista, el catlogo debe registrar:

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

No es requisito registrar el dominio de las columnas de valores calculados, ya


que es difcil deducirlo, pero si es necesario indicar el tipo de datos base.

Restricciones de integridad

Restricciones de integridad definidas por el usuario


Las restricciones de integridad definidas por el usuario normalmente las
incorpora el DBA. Pueden representar reglas y polticas de la compaa o
regulaciones impuestas por el gobierno, o bien, pueden representar factores de
diseo que son necesarios debido al significado de los datos.
Para cada restriccin de integridad definida por el usuario, el catlogo debe
almacenar:

su nombre
el evento que la dispara
la condicin lgica a probar
las acciones ante un intento de violacin

Restricciones de integridad referencial


Para cada restriccin de integridad referencial, el catlogo debe almacenar:
su nombre
el evento que la dispara
Bases de Datos. Miguel Murgua. FAR.

138

las llaves involucradas


las acciones ante un intento de violacin

Funciones definidas por el usuario

Para cada funcin definida por el usuario, el catlogo debe almacenar:

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

El catlogo debe almacenar qu usuarios, terminales y progrmas de aplicacin


estn autorizados para tener acceso a qu parte de la base de datos, para qu
tipos de operaciones y bajo qu condiciones.
El modelo relaciones establece los accesos mediante acciones permitidas y no
mediante acciones denegadas, lo que significa que el usuaio no tiene ninn
permiso a menos que se indique en el catlogo explcitamente.

Estadsticas

El catlogo tambin debe almacenar informacin estadstica que se utiliza para


optimizar las consultas del lenguaje relacional:
el nmero de renglones en cada tabla R
el nmero de valores distintos en cada columna de cada tabla R

Bases de Datos. Miguel Murgua. FAR.

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.

Bases de Datos. Miguel Murgua. FAR.

140

V Lgica y Clculo Relacional de Tuplas


1. Lgica
La lgica es un conjunto de conocimientos fundamental para el manejo de bases de datos.
Las condiciones que se especifican al hacer una consulta a una base de datos pueden
contener operadores lgicos. Por ejemplo, seleccionar aquellos registros que cumplan con
la condicin A y la condicin B, pero que no cumplan la C:
Todos los municipios del estado de OAXACA que tengan una poblacin mayor a 10,000
ha. pero que la superficie sea menor a 50,000 km2.
Las sustituciones de condiciones de esta consulta son:
A = Municipio del estado de OAXACA
B = Poblacin > 10,000
C = Superficie < 50,000

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

Bases de Datos. Miguel Murgua. FAR.

141

verdadero, es decir que la verdad de un enunciado excluye la posibilidad de que el otro


tambin lo sea. Por ejemplo, en el enunciado:
P=Las personas que votaron por el PRI o por el PAN para el presidente de la repblica.
se entiende que cada persona emite un slo voto para presidente de la repblica, y que por
lo tanto ninguna persona puede votar por el PRI y por el PAN.
En el operador si ... entonces ... o implicacin, es importante el orden de los operandos.
A diferencia de la conjuncin y de la disyuncin, la implicacin no es conmutativa, es
decir, no es lo mismo
P -> Q que Q -> P
mientras que s es lo mismo
P y Q que Q y P
En la implicacin al elemento que est antes del operador se le llama antecedente y al que
est despus consecuente. As, en la frmula P -> Q, P es el antecedente y Q es el
consecuente. El significado ms general es que cuando el antecedente es verdadero el
consecuente es verdadero, sin embargo, como puede observarse en su tabla de verdad,
tambin tiene el significado de que cuando el consecuente es falso tambin es falso el
antecedente. Por ejemplo, el enunciado:
P = Si trabaja entonces gana ms de cero salarios mnimos

es verdadero cuando el antecedente es verdadero y tambin el consecuente. De hecho, es


falso solamente si el consecuente es falso y el antecedente verdadero, como as se puede
apreciar en la tabla de verdad del operador ->.
La negacin es un operador lgico unario, es decir, que afecta a slo un argumento, a
diferencia de la conjuncin, la disyuncin y la implicacin que son binarios. Una frmula
negada es verdadera si la frmula no negada es falsa y viceversa. Por ejemplo, si
P = Tiene coche compacto
la negacin de P es:
P = No tiene coche compacto

Bases de Datos. Miguel Murgua. FAR.

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

Nmero de personas que tienen coche compacto y que viven en el estado


de Aguascalientes

Dbase

COUNT FOR COCHE=COMPACTO .AND. EDO=AGS

SQL

SELECT * FROM PERSONA WHERE COCHE=COMPACTO AND


EDO=AGS GROUP COUNT

Tabla n. Ejemplificacin del operador lgico Y en tres lenguajes.

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.

Bases de Datos. Miguel Murgua. FAR.

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

Tablas de verdad para los operadores lgicos Y, O, IMPLICACION y NO.

Bases de Datos. Miguel Murgua. FAR.

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.

Bases de Datos. Miguel Murgua. FAR.

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

Bases de Datos. Miguel Murgua. FAR.

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

Bases de Datos. Miguel Murgua. FAR.

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

Tabla n. Equivalencias lgicas bsicas.

Bases de Datos. Miguel Murgua. FAR.

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

Instanciacin Universal (IU)


x x
v
donde v es cualquier smbolo individual
Ejemplo:
x (Hombre(x) Mortal(x) )
Hombre(scrates) Mortal(scrates)

Generalizacin Universal (GU)


y
x x
donde y denota cualquier individuo arbitrariamente elegido

Generalizacin Existencial (GE)


v
x x
donde v es cualquier smbolo individual

Instanciacin Existencial (IE)


x x
v
donde v es una constante individual diferente de y, que no aparece anteriormenteen el
contexto.

Bases de Datos. Miguel Murgua. FAR.

151

Ejemplo: demostracin formal:


Todos los perros son carnvoros; algunos animales son perros, por lo tanto algunos,
animales son carnvoros
1. x(Px Cx)
2. x(Ax ^ Px)
3. Aw ^ Pw
4. Pw Cw
5. Pw ^ Aw
6. Pw
7. Cw
8. Aw
9. Aw ^ Cw
10.x(Ax ^ Cx)

2. IE
1. IU
3. Conm
5. Simp
4, 6 MP
3 Simp
8, 7 Conj
9 GE

Bases de Datos. Miguel Murgua. FAR.

152

3. Clculo relacional de tuplas


{ t| P(t) }
El conjunto de las tuplas t tales que el predicado P(t) es verdadero. Por ejemplo:
{ t| t alumno }
obtiene a toda las tuplas de la relacin alumno. Si nicamente requiere un atributo de
todas las tuplas, por ejemplo nombre-alumno, es decir una operacin anloga a la
proyeccin del lgebra relacional, se debe hacer uso del cuantificador existencial,
escribiendo expresiones del tipo:
t r(P(t))
lo que se lle como existe una tupla t en la relacin r tal que el predicado P(t) es
verdadero. Para el problema en particular de encontrar los nombres de alumnos se puede
escribir de la siguiente manera:
{ t | s alumno(s[nombre-alumno]=t[nombre-alumno] ) }
pues se estn obteniendo las tuplas t, que como puede observarse en la expresin slo se
hace referencia al atributo nombre-alumno. Es decir, se estn obteniendo todas las tuplas
t[nombre-alumno] que cumplan con:
s alumno(s[nombre-alumno]=t[nombre-alumno]

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

es decir, el conjunto de tuplas t[nombre-alumno] tal que ao-ingreso en la relacin


alumno es 97 en aquellas tuplas en donde t[nombre-alumno]= nombre-alumno.
El esquema de la relacin anterior es (nombre-alumno), pues se est haciendo referencia
nicamente al atributo de t t [nombre-alumno].
Tambin podremos escribir una expresin que involucre a dos predicados, cada uno
haciendo referencia a relaciones diferentes, por ejemplo, encontrar los alumnos de la
carrera de Biologa

Bases de Datos. Miguel Murgua. FAR.

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

Bases de Datos. Miguel Murgua. FAR.

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.

Bases de Datos. Miguel Murgua. FAR.

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

Bases de Datos. Miguel Murgua. FAR.

157

ANEXO 1. Prolog como Base de Datos


A) Cdigo del Programa
esquema(alumno,'numero-cuenta','nombre-alumno','ao-ingreso','carrera').
esquema(materia,'clave-materia','nombre-materia','nivel','creditos').
esquema(examen,'numero-cuenta','clave-materia','orden-de-pago','fechaexamen').
esquema(historia,'numero-cuenta','clave-materia','semestrecurso','calificacion').
alumno(950001,'Oscar Martnez',95,biologia).
alumno(950002,'Mario S nchez',95,biologia).
alumno(950003,'Ma.Elenea Caedo',95,matematicas).
alumno(950004,'Camen Daz',95,biologia).
alumno(950005,'Jorge Soto',95,fisica).
alumno(970001,'Emilio Vera',97,biologia).
alumno(970002,'Isabel Valderrama',97,matematicas).
alumno(970003,'Miguel Romero',97,biologia).
alumno(970004,'Jos Malo',97,matematicas).
alumno(970005,'Salvador Pascual',97,fisica).
materia(01002,algebra,2,7).
materia(01003,calculo,1,10).
materia(02001,estadistica,1,5).
materia(02002,botancia,3,8).
materia(02003,bioquimica,2,12).
materia(03001,fisica_relativista,4,10).
materia(03002,particulas_elementales,3,9).
examen(950001,02002,3567,02-jun-97).
examen(970002,01002,3676,06-may-97).
examen(950005,03001,3678,02-abr-97).
examen(970005,03002,3789,06-mar-97).
historia(950001,02001,96,8.2).
historia(950002,02001,96,9).
historia(950002,02003,96,7).
historia(950004,02002,96,9).
historia(950004,02003,95,10).
historia(970003,02002,95,8).
historia(970003,02003,96,9).

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

Bases de Datos. Miguel Murgua. FAR.

158

% Proyeccion: Numero de cuenta y Nombres


q2:alumno(Cuenta,Nombre,_,_),
print(Cuenta),print(-),
print(Nombre),nl,
fail.
%Producto cartesiano alumno x materia
q3:alumno(Cuenta,Nombre,Ingreso,Carrera),
materia(Clv,Materia,Nivel,Creditos),
print(Cuenta),print(-),
print(Nombre),print(-),
print(Ingreso),print(-),
print(Carrera),print(-),
print(Clv),print(-),
print(Materia),print(-),
print(Nivel),print(-),
print(Creditos),print(-),nl,
fail.
% Interseccion: Numero de cuenta de alumnos que han hecho examen y
cursado
% la misma materia
q4:examen(Cuenta,_,_,_),
historia(Cuenta,_,_,_),
print(Cuenta),nl,
fail.
% Producto natural: Alumnos que han hecho examen
q5:examen(Cuenta,_,_,_),
alumno(Cuenta,Nombre,_,_),
print(Nombre),nl,
fail.
% Diferencia: Alumnos que han hecho examen sin haber cursado la materia
q6:examen(Cuenta,_,_,_),
not(historia(Cuenta,_,_,_)),
print(Cuenta),nl,
fail.
% Ejemplo: Nombres de alumnos y materias que han acrediatdo con mas de 8
q7:materia(Clv,Materia,_,_),
alumno(Cuenta,Alumno,_,_),
historia(Cuenta,Clv,_,Calif),
Calif>8,
print(Alumno),print(-),
print(Materia),nl,
fail.
% Ejemplo OR: Nombre de los alumnos que han cursado o hecho examen de la
%materia con clave 02002
q8:(historia(Cuenta,02002,_,_);
examen(Cuenta,02002,_,_)),
alumno(Cuenta,Nombre);
print(Nombre),nl,
fail.

Bases de Datos. Miguel Murgua. FAR.

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-

Bases de Datos. Miguel Murgua. FAR.

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-

Bases de Datos. Miguel Murgua. FAR.

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

Bases de Datos. Miguel Murgua. FAR.

162

Das könnte Ihnen auch gefallen