base datos f02

36
1 Semestre 5 Fascículo 2 Bases de Datos

Upload: vanesa-pasiive

Post on 12-Apr-2017

294 views

Category:

Engineering


0 download

TRANSCRIPT

Page 1: Base datos f02

1

Semestre 5

Fascículo

2

Bases de Datos

Page 2: Base datos f02

Bases de datos Semestre 5

Bases de datos

Page 3: Base datos f02

Bases de datos

Semestre 5

Tabla de contenido Página

Introducción 1

Conceptos previos 1

Mapa conceptual Fascículo 2 2

Logros 2

Modelaje Conceptual de los Datos 2

Modelos de Bases de Datos 3

Evolución de los modelos de datos 3

Lenguajes 6

Administración de Bases de Datos 6

Estructura de los Datos 7

Visión informal de una relación 7

Visión formal de una relación 8

Diferencias entre relaciones y archivos 9

Clave candidata, clave primaria y clave alternativa de las

relaciones 10

Claves foráneas de las relaciones 11

Creación de las relaciones de una base de datos 13

Operaciones del modelo relacional 13

Reglas de integridad 15

Regla de integridad de unicidad de la clave primaria 16

Regla de integridad de entidad de la clave primaria 16

Regla de integridad referencial 16

Regla de integridad de dominio 17

El álgebra relacional 18

Operaciones conjuntistas 19

Operaciones específicamente relacionales 22

Resumen 28

Bibliografía recomendada 29

Nexo 30

Seguimiento al autoaprendizaje 31

Créditos: 3

Tipo de asignatura: Teórico – Práctica

Page 4: Base datos f02

Bases de datos Semestre 5

Bases de datos

Copyright©2008 FUNDICIÓN UNIVERSITARIA SAN MARTÍN

Facultad de Universidad Abierta y a Distancia,

“Educación a Través de Escenarios Múltiples”

Bogotá, D.C.

Prohibida la reproducción total o parcial sin autorización

por escrito del Presidente de la Fundación.

La redacción de este fascículo estuvo a cargo de

JOHN FREDY ROJAS

Docente tutor – Programa de Ingeniería de Sistemas a Distancia.

Sede Bogotá, D.C.

Corrección de estilo

ADRIANA RODRÍGUEZ V.

Diseño gráfico y diagramación a cargo de

SANTIAGO BECERRA SÁENZ

ORLANDO DÍAZ CÁRDENAS

Impreso en: GRÁFICAS SAN MARTÍN

Calle 61A No. 14-18 - Tels.: 2350298 - 2359825

Bogotá, D.C., Noviembre de 2011

Page 5: Base datos f02

1

Fascículo No. 2

Semestre 5

Bases de datos

Bases de datos

Introducción

En este fascículo se dedicara al estudio del modelo de datos relacional y

del álgebra relacional.

SE profundizara en un modelo de datos concreto: el modelo relacional,

que actualmente tiene una gran relevancia. Sus conceptos fundamentales

están bien asentados y, además, los sistemas de gestión de bases de da-

tos relacionales son los más extendidos en su utilización práctica. Por es-

tos motivos pensamos que es importante conocerlo.

Se analizan también las operaciones del álgebra relacional, que sirven para

hacer consultas a una base de datos. Es preciso conocer estas operacio-

nes porque nos permiten saber qué servicios de consulta debe proporcio-

nar un lenguaje relacional. Otra aportación del álgebra relacional es que

facilita la comprensión de algunas de las construcciones del lenguaje SQL

que se estudiarán en fascículos posteriores. Además, constituye la base

para el estudio del tratamiento de las consultas que efectúan los DBMS

internamente (especialmente en lo que respecta a la optimización de con-

sultas).

Conceptos previos

Para una correcta comprensión de este fascículo el estudiante debe tener

claros los conceptos básicos de bases de datos y d elos sistemas maneja-

dores de bases de datos vistos en el fascículo anterior, de igual forma es

importante que tenga claro el concepto de teoría de conjuntos para asimi-

lar con mayor facilidad los conceptos asociados al algebra relacional.

Page 6: Base datos f02

2

Bases de datos

Bases de datos

Fascículo No. 2

Semestre 5

El modelo de Base de Datos

es el conjunto de herramien-

tas conceptuales (piezas)

que se utilizan para construir

el modelo de la realidad.

Mapa conceptual fascículo 2

Al finalizar el estudio del presente fascículo, el estudiante estará en capacidad

de:

Conocer los fundamentos del modelo de datos relacional.

Saber distinguir las características que debe tener un sistema de gestión de

bases de datos relacional para que sea coherente con los fundamentos del

modelo relacional.

Comprender las ventajas del modelo relacional que derivan del alto grado de

independencia de los datos que proporciona, y de la simplicidad y la unifor-

midad del modelo.

Conocer las operaciones del álgebra relacional.

Saber utilizar las operaciones del álgebra relacional para consultar una base

de datos.

Modelaje Conceptual de los Datos

Una Base de Datos es una representación de la realidad (de la parte de la

realidad que nos interesa en nuestro Sistema de Información). Dicho de

otro modo, una Base de Datos se puede considerar un modelo de la reali-

dad. El componente fundamental utilizado para modelar en un DBMS rela-

cional son las tablas (denominadas relaciones en el mundo teórico).

Sin embargo, en otros tipos de DBMS se utilizan otros componentes.

LogrosLogrosLogros

Page 7: Base datos f02

3

Bases de datos

Bases de datos

Fascículo No. 2

Semestre 5

Modelos de Bases de Datos

El conjunto de componentes o herramientas conceptuales que un DBMS

proporciona para modelar recibe el nombre de modelo de BD.

Los cuatro modelos de Bases de Datos más utilizados en los Sistemas de

Información son el modelo relacional, el modelo jerárquico, el modelo en

red y el modelo relacional con objetos.

Todo modelo de Base de Datos nos proporciona tres tipos de herramien-

tas:

a) Estructuras de datos con las que se puede construir las Bases de Datos:

tablas, árboles, etc.

b) Diferentes tipos de restricciones (o reglas) de integridad que el DBMS

tendrá que hacer cumplir a los datos: dominios, claves, etc.

c) Una serie de operaciones para trabajar con los datos. Un ejemplo de

ello, en el modelo relacional, es la operación SELECT, que sirve para se-

leccionar (o leer) las filas que cumplen alguna condición. Un ejemplo de

operación típica del modelo jerárquico y del modelo en red podría ser la

que nos dice si un determinado registro tiene “hijos” o no.

Evolución de los modelos de datos

De los cuatro modelos de Bases de Datos que hemos citado, el que apa-

reció primero, a principios de los años sesenta, fue el modelo jerárquico.

Sus estructuras son registros interrelacionados en forma de árboles. El

DBMS clásico de este modelo es el IMS/DL1 de IBM.

A principios de los setenta surgieron DBMS basados en un modelo en red.

Como en el modelo jerárquico, hay registros e interrelaciones, pero un re-

gistro ya no está limitado a ser “hijo” de un solo registro tipo. El comité

CODASYLDBTG propuso un estándar basado en este modelo, que fue

Page 8: Base datos f02

4

Bases de datos

Bases de datos

Fascículo No. 2

Semestre 5

adoptado por muchos constructores de DBMS1. Sin embargo, encontró la

oposición de IBM, la empresa entonces dominante. La propuesta de CO-

DASYL-DBTG ya definía tres niveles de esquemas.

Durante los años ochenta apareció una gran cantidad de DBMS basados

en el modelo relacional propuesto en 1969 por E.F. Codd, de IBM, y

prácticamente todos utilizaban como lenguaje nativo el SQL2

. El modelo

relacional se basa en el concepto matemático de relación, que aquí pode-

mos considerar de momento equivalente al término tabla (formada por filas

y columnas). La mayor parte de los Sistemas de Información que actual-

mente están en funcionamiento utilizan DBMS relacionales, pero algunos

siguen utilizando los jerárquicos o en red (especialmente en Sistemas de

Información antiguos muy grandes).

Así como en los modelos prerrelacionales (jerárquico y en red), las estruc-

turas de datos constan de dos elementos básicos (los registros y las inter-

relaciones), en el modelo relacional constan de un solo elemento: la tabla,

formada por filas y columnas. Las interrelaciones se deben modelizar utili-

zando las tablas.

Otra diferencia importante entre los modelos prerrelacionales y el modelo

relacional es que el modelo relacional se limita al nivel lógico (no hace ab-

solutamente ninguna consideración sobre las representaciones físicas). Es

decir, nos da una independencia física de datos total. Esto es así si habla-

mos del modelo teórico, pero los DBMS del mercado nos proporcionan

una independencia limitada.

Estos últimos años se está extendiendo el modelo de Base de Datos rela-

cional con objetos.

1 Por ejemplo, IDS de Bull, DMS de Univac y DBMS de Digital.

2 Por ejemplo, Oracle, DB2 de IBM, Informix, Ingres, Allbase de HP y SQL-Server de Sybase

Page 9: Base datos f02

5

Bases de datos

Bases de datos

Fascículo No. 2

Semestre 5

Se trata de ampliar el modelo relacional, añadiéndole la posibilidad de que

los tipos de datos sean tipos abstractos de datos, TAD. Esto acerca los

sistemas relacionales al paradigma de la OO. Los primeros DBMS relacio-

nales que dieron esta posibilidad fueron Oracle (versión 8), Informix (ver-

sión 9) e IBM/DB2/UDB.

Modelos Bases de Datos

Los más conocidos de estos tipos de modelos son los modelos semánti-

cos y los funcionales. Éstos nos proporcionan herramientas muy potentes

para describir las estructuras de la información del mundo real, la semánti-

ca y las interrelaciones, pero normalmente no disponen de operaciones

para tratarlas. Se limitan a ser herramientas de descripción lógica. Son

muy utilizados en la etapa del diseño de Bases de Datos y en herramientas

CASE. El más extendido de estos modelos es el conocido como modelo

ER (entity-relationship), que estudiaremos más adelante.

Actualmente, la práctica más extendida en el mundo profesional de los

desarrolladores de SI es la utilización del modelo ER durante el análisis y

las primeras etapas del diseño de los datos, y la utilización del modelo re-

lacional para acabar el diseño y construir la Base de Datos con un DBMS.

Page 10: Base datos f02

6

Bases de datos

Bases de datos

Fascículo No. 2

Semestre 5

Lenguajes

Para comunicarse con el SGBD, el usuario, ya sea un programa de aplica-

ción o un usuario directo, se vale de un lenguaje. Hay muchos lenguajes

diferentes, según el tipo de usuarios para los que están pensados y el tipo

de cosas que los usuarios deben poder expresar con ellos:

a) Habrá usuarios informáticos muy expertos que querrán escribir proce-

sos complejos y que necesitarán lenguajes complejos.

b) Sin embargo, habrá usuarios finales no informáticos, ocasionales (es-

porádicos), que sólo harán consultas. Estos usuarios necesitarán un

lenguaje muy sencillo, aunque dé un rendimiento bajo en tiempo de

respuesta.

c) También podrá haber usuarios finales no informáticos, dedicados o es-

pecializados. Son usuarios cotidianos o, incluso, dedicados exclusiva-

mente a trabajar con la Base de Datos. Estos usuarios necesitarán len-

guajes muy eficientes y compactos, aunque no sea fácil aprenderlos. Tal

vez serán lenguajes especializados en tipos concretos de tareas.

Administración de Bases de Datos

Hay un tipo de usuario especial: el que realiza tareas de administración y

control de la Base de Datos. Una empresa o institución que tenga Sistemas

de Información construidos en torno a Bases de Datos necesita que al-

guien lleve a cabo una serie de funciones centralizadas de gestión y admi-

nistración, para asegurar que la explotación de la Base de Datos es la co-

rrecta. Este conjunto de funciones se conoce con el nombre de adminis-

tración de Base de Datos, y los usuarios que hacen este tipo especial de

trabajo se denominan administradores de Bases de Datos (DBA).

Page 11: Base datos f02

7

Bases de datos

Bases de datos

Fascículo No. 2

Semestre 5

La estructura de los datos

del modelo relacional se

basa, en el concepto de

relación.

Estructura de los Datos

El modelo relacional proporciona una estructura de los datos que consiste

en un conjunto de relaciones con objeto de representar la información que

nos interesa del mundo real.

Visión informal de una relación

Se puede obtener una buena idea intuitiva de lo que es una relación si la

visualizamos como una tabla o un archivo. En la figura a continuación se

muestra la visualización tabular de una relación que contiene datos de em-

pleados.

Relación Empleados

Cada fila de la tabla contiene una colección de valores de datos relaciona-

dos entre sí; en nuestro ejemplo, son los datos correspondientes a un

mismo empleado. La tabla tiene un nombre (EMPLEADOS) y también tiene

un nombre cada una de sus columnas (DNI, nombre, apellido y sueldo). El

nombre de la tabla y los de las columnas ayudan a entender el significado

de los valores que contiene la tabla.

Page 12: Base datos f02

8

Bases de datos

Bases de datos

Fascículo No. 2

Semestre 5

Un relación se compone del

esquema (o intensión de la

relación) y de la extensión.

La estructura de los datos del modelo relacional se basa, pues, en el

concepto de relación.

Si definimos las relaciones de forma más precisa, nos daremos cuenta de

que presentan algunas características importantes que, en la visión super-

ficial que hemos presentado, quedan ocultas. Estas características son las

que motivan que el concepto de relación sea totalmente diferente del de

fichero, a pesar de que, a primera vista, relaciones y archivos puedan pa-

recer similares.

Visión formal de una relación

Un dominio D es un conjunto de valores atómicos. Por lo que respecta al

modelo relacional, atómico significa indivisible; es decir, que por muy

complejo o largo que sea un valor atómico, no tiene una estructuración

interna para un DBMS relacional.

Los dominios pueden ser de dos tipos:

Dominios predefinidos, que corresponde a los tipos de datos que nor-

malmente proporcionan los lenguajes de bases de datos, como por ejem-

plo los enteros, las cadenas de caracteres, los reales, etc.

Dominios definidos por el usuario, que pueden ser más específicos. To-

da definición de un dominio debe constar, como mínimo, del nombre del

dominio y de la descripción de los valores que forman parte de éste.

Si consideramos la representación tabular de la figura, el esquema corres-

pondería a la cabecera de la tabla y la extensión correspondería al cuerpo:

Esquema y Extensión

Page 13: Base datos f02

9

Bases de datos

Bases de datos

Fascículo No. 2

Semestre 5

El grado de una relación es

el número de atributos que

pertenecen a su esquema.

La cardinalidad de una rela-

ción es el número de tuplas

que pertenecen a su exten-

sión.

El esquema de la relación consiste en un nombre de relación R y un con-

junto de atributos {A1, A2, ..., An}.

Conviene observar que cada atributo es único en un esquema de relación,

porque no tiene sentido que un mismo dominio ejerza dos veces el mismo

papel en un mismo esquema.

Por consiguiente, no puede ocurrir que en un esquema de relación haya

dos atributos con el mismo nombre. En cambio, sí que se puede repetir un

nombre de atributo en relaciones diferentes.

Diferencias entre relaciones y archivos

A primera vista, relaciones y ficheros resultan similares. Los registros y los

campos que forman los ficheros se parecen a las tuplas y a los atributos de

las relaciones, respectivamente.

A pesar de esta similitud superficial, la visión formal de relación que hemos

presentado establece algunas características de las relaciones que las

hacen diferentes de los archivos clásicos.

Atomicidad de los valores de los atributos: los valores de los atributos

de una relación deben ser atómicos; es decir, no deben tener estructura

interna.

Esta característica proviene del hecho de que los atributos siempre deben

tomar un valor de su dominio o bien un valor nulo, y de que se ha estable-

cido que los valores de los dominios deben ser atómicos en el modelo re-

lacional.

El objetivo de la atomicidad de los valores es dar simplicidad y uniformidad

al modelo relacional.

Page 14: Base datos f02

10

Bases de datos

Bases de datos

Fascículo No. 2

Semestre 5

No-repetición de las tuplas: en un archivo clásico puede ocurrir que dos

de los registros sean exactamente iguales; es decir, que contengan los

mismos datos.

En el caso del modelo relacional, en cambio, no es posible que una rela-

ción contenga tuplas repetidas. Esta característica se deduce de la misma

definición de la extensión de una relación. La extensión es un conjunto de

tuplas y, en un conjunto, no puede haber elementos repetidos.

No-ordenación de las tuplas: de la definición de la extensión de una rela-

ción como un conjunto de tuplas se deduce también que estas tuplas no

estarán ordenadas, teniendo en cuenta que no es posible que haya una

ordenación entre los elementos de un conjunto.

La finalidad de esta característica es conseguir que, mediante el modelo

relacional, se puedan representar los hechos en un nivel abstracto que sea

independiente de su estructura física de implementación.

No-ordenación de los atributos: el esquema de una relación consta de

un nombre de relación R y un conjunto de atributos {A1, A2, ..., An}. Así

pues, no hay un orden entre los atributos de un esquema de relación, te-

niendo en cuenta que estos atributos forman un conjunto.

Clave candidata, clave primaria y clave alternativa de las relaciones

Toda la información que contiene una base de datos debe poderse identi-

ficar de alguna forma. En el caso particular de las bases de datos que si-

guen el modelo relacional, para identificar los datos que la base de datos

contiene, se pueden utilizar las claves candidatas de las relaciones.

Una superclave de una relación de esquema R(A1, A2, ..., An) es un sub-

conjunto de los atributos del esquema tal que no puede haber dos tuplas

en la extensión de la relación que tengan la misma combinación de valores

Page 15: Base datos f02

11

Bases de datos

Bases de datos

Fascículo No. 2

Semestre 5

Si una relación sólo tiene una

clave candidata, entonces

esta clave candidata debe ser

también su clave primaria.

para los atributos del subconjunto. Una superclave, por lo tanto, nos permi-

te identificar todas las tuplas que contiene la relación.

Una clave candidata de una relación es una superclave C de la relación

que cumple que ningún subconjunto propio de C es superclave.

Es decir, C cumple que la eliminación de cualquiera de sus atributos da un

conjunto de atributos que no es superclave de la relación. Intuitivamente,

una clave candidata permite identificar cualquier tupla de una relación, de

manera que no sobre ningún atributo para hacer la identificación.

Habitualmente, una de las claves candidatas de una relación se designa

clave primaria de la relación. La clave primaria es la clave candidata cuyos

valores se utilizarán para identificar las tuplas de la relación.

El diseñador de la base de datos es quien elige la clave primaria de entre

las claves candidatas.

Claves foráneas de las relaciones

Hasta ahora hemos estudiado las relaciones de forma individual, pero de-

bemos tener en cuenta que una base de datos relacional normalmente

contiene más de una relación, para poder representar distintos tipos de

hechos que suceden en el mundo real. Por ejemplo, podríamos tener una

pequeña base de datos que contuviese dos relaciones: una denominada

EMPLEADOS, que almacenaría datos de los empleados de una empresa, y

otra con el nombre DESPACHOS, que almacenaría los datos de los des-

pachos que tiene la empresa.

Debemos considerar también que entre los distintos hechos que se dan en

el mundo real pueden existir lazos o vínculos. Por ejemplo, los empleados

que trabajan para una empresa pueden estar vinculados con los despa-

Page 16: Base datos f02

12

Bases de datos

Bases de datos

Fascículo No. 2

Semestre 5

chos de la empresa, porque a cada empleado se le asigna un despacho

concreto para trabajar.

En el modelo relacional, para reflejar este tipo de vínculos, tenemos la po-

sibilidad de expresar conexiones entre las distintas tuplas de las relacio-

nes. Por ejemplo, en la base de datos anterior, que tiene las relaciones

EMPLEADOS y DESPACHOS, puede ser necesario conectar tuplas de

EMPLEADOS con tuplas de DESPACHOS para indicar qué despacho tiene

asignado cada empleado.

En ocasiones, incluso puede ser necesario reflejar lazos entre tuplas que

pertenecen a una misma relación. Por ejemplo, en la misma base de datos

anterior puede ser necesario conectar determinadas tuplas de EMPLEA-

DOS con otras tuplas de EMPLEADOS para indicar, para cada empleado,

quién actúa como su jefe.

El mecanismo que proporcionan las bases de datos relacionales para co-

nectar tuplas son las claves foráneas de las relaciones. Las claves foráneas

permiten establecer conexiones entre las tuplas de las relaciones. Para

hacer la conexión, una clave foránea tiene el conjunto de atributos de una

relación que referencian la clave primaria de otra relación (o incluso de la

misma relación).

Claves foraneas

Page 17: Base datos f02

13

Bases de datos

Bases de datos

Fascículo No. 2

Semestre 5

Las claves foráneas tienen por objetivo establecer una conexión con la cla-

ve primaria que referencian. Por lo tanto, los valores de una clave foránea

deben estar presentes en la clave primaria correspondiente, o bien deben

ser valores nulos. En caso contrario, la clave foránea representaría una re-

ferencia o conexión incorrecta.

De forma más precisa podemos decir que:

Una clave foránea de una relación R es un subconjunto de atributos del

esquema de la relación, que denominamos CF y que cumple las siguientes

condiciones:

1) Existe una relación S (S no debe ser necesariamente diferente de R) que

tiene por clave primaria CP.

2) Se cumple que, para toda tupla t de la extensión de R, los valores para

CF de t son valores nulos o bien valores que coinciden con los valores

para CP de alguna tupla s de S.

Y entonces, se dice que la clave foránea CF referencia la clave primaria CP

de la relación S, y también que la clave foránea CF referencia la relación S.

Creación de las relaciones de una base de datos

Hemos visto que una base de datos relacional consta de varias relaciones.

Cada relación tiene varios atributos que toman valores de unos ciertos

dominios; también tiene una clave primaria y puede tener una o más claves

foráneas. Los lenguajes de los DBMS relacionales deben proporcionar la

forma de definir todos estos elementos para crear una base de datos.

Operaciones del modelo relacional

Las operaciones del modelo relacional deben permitir manipular datos al-

macenados en una base de datos relacional y, por lo tanto, estructurados

en forma de relaciones. La manipulación de datos incluye básicamente dos

aspectos: la actualización y la consulta.

Page 18: Base datos f02

14

Bases de datos

Bases de datos

Fascículo No. 2

Semestre 5

La actualización de los datos consiste en hacer que los cambios que se

producen en la realidad queden reflejados en las relaciones de la base de

datos.

Existen tres operaciones básicas de actualización:

Inserción, que sirve para añadir una o más tuplas a una relación.

Borrado, que sirve para eliminar una o más tuplas de una relación.

Modificación, que sirve para alterar los valores que tienen una o más tu-

plas de una relación para uno o más de sus atributos.

La consulta de los datos consiste en la obtención de datos deducibles a

partir de las relaciones que contiene la base de datos.

La obtención de los datos que responden a una consulta puede requerir el

análisis y la extracción de datos de una o más de las relaciones que man-

tiene la base de datos.

Según la forma como se especifican las consultas, podemos clasificar los

lenguajes relacionales en dos tipos:

Lenguajes basados en el álgebra relacional. El álgebra relacional se ins-

pira en la teoría de conjuntos. Si queremos especificar una consulta, es

necesario seguir uno o más pasos que sirven para ir construyendo, me-

diante operaciones del álgebra relacional, una nueva relación que conten-

ga los datos que responden a la consulta a partir de las relaciones alma-

cenadas. Los lenguajes basados en el álgebra relacional son lenguajes

procedimentales, ya que los pasos que forman la consulta describen un

procedimiento.

Lenguajes basados en el cálculo relacional. El cálculo relacional tiene su

fundamento teórico en el cálculo de predicados de la lógica matemática.

Proporciona una notación que permite formular la definición de la relación

Page 19: Base datos f02

15

Bases de datos

Bases de datos

Fascículo No. 2

Semestre 5

Denominamos integridad la

propiedad de los datos de

corresponder a representa-

ciones plausibles del mundo

real.

donde están los datos que responden la consulta en términos de las rela-

ciones almacenadas. Esta definición no describe un procedimiento; por lo

tanto, se dice que los lenguajes basados en el cálculo relacional son len-

guajes declarativos (no procedimentales).

El lenguaje SQL, en las sentencias de consulta, combina construcciones

del álgebra relacional y del cálculo relacional con un predominio de las

construcciones del cálculo. Este predominio determina que SQL sea un

lenguaje declarativo.

Reglas de integridad

Una base de datos contiene unos datos que, en cada momento, deben

reflejar la realidad o, más concretamente, la situación de una porción del

mundo real.

En el caso de las bases de datos relacionales, esto significa que la exten-

sión de las relaciones (es decir, las tuplas que contienen las relaciones)

deben tener valores que reflejen la realidad correctamente.

Suele ser bastante frecuente que determinadas configuraciones de valores

para las tuplas de las relaciones no tengan sentido, porque no representan

ninguna situación posible del mundo real.

En general, las condiciones que garantizan la integridad de los datos pue-

den ser de dos tipos:

Las restricciones de integridad de usuario son condiciones específicas

de una base de datos concreta; es decir, son las que se deben cumplir en

una base de datos particular con unos usuarios concretos, pero que no

son necesariamente relevantes en otra base de datos.

Page 20: Base datos f02

16

Bases de datos

Bases de datos

Fascículo No. 2

Semestre 5

Las reglas de integridad de modelo, en cambio, son condiciones más

generales, propias de un modelo de datos, y se deben cumplir en toda

base de datos que siga dicho modelo.

Los DBMS deben proporcionar la forma de definir las restricciones de inte-

gridad de usuario de una base de datos; una vez definidas, deben velar

por su cumplimiento.

Regla de integridad de unicidad de la clave primaria

La regla de integridad de unicidad está relacionada con la definición de

clave primaria. Concretamente, establece que toda clave primaria que se

elija para una relación no debe tener valores repetidos.

Un DBMS relacional deberá garantizar el cumplimiento de esta regla de

integridad en todas las inserciones, así como en todas las modificaciones

que afecten a atributos que pertenecen a la clave primaria de la relación.

Regla de integridad de entidad de la clave primaria

La regla de integridad de entidad de la clave primaria dispone que los atri-

butos de la clave primaria de una relación no pueda tener valores nulos.

Esta regla es necesaria para que los valores de las claves primarias pue-

dan identificar las tuplas individuales de las relaciones. Si las claves prima-

rias tuviesen valores nulos, es posible que algunas tuplas no se pudieran

distinguir.

Un DBMS relacional tendrá que garantizar el cumplimiento de esta regla de

integridad en todas las inserciones y, también, en todas las modificaciones

que afecten a atributos que pertenecen a la clave primaria de la relación.

Regla de integridad referencial

La regla de integridad referencial está relacionada con el concepto de cla-

ve foránea.

Page 21: Base datos f02

17

Bases de datos

Bases de datos

Fascículo No. 2

Semestre 5

Concretamente, determina que todos los valores que toma una clave forá-

nea deben ser valores nulos o valores que existen en la clave primaria que

referencia.

La necesidad de la regla de integridad relacional proviene del hecho de

que las claves foráneas tienen por objetivo establecer una conexión con la

clave primaria que referencian. Si un valor de una clave foránea no estuvie-

se presente en la clave primaria correspondiente, representaría una refe-

rencia o una conexión incorrecta.

Un DBMS relacional tendrá que hacer cumplir esta regla de integridad. De-

berá efectuar comprobaciones cuando se produzcan las siguientes opera-

ciones:

Inserciones en una relación que tenga una clave foránea.

Modificaciones que afecten a atributos que pertenecen a la clave forá-

nea de una relación.

Borrados en relaciones referenciadas por otras relaciones.

Modificaciones que afecten a atributos que pertenecen a la clave prima-

ria de una relación referenciada por otra relación.

Una forma habitual de mantener estas reglas consiste en rechazar toda

operación de actualización que deje la base de datos en un estado en el

que alguna regla no se cumpla.

Regla de integridad de dominio

La regla de integridad de dominio está relacionada, como su nombre indi-

ca, con la noción de dominio. Esta regla establece dos condiciones.

La primera condición consiste en que un valor no nulo de un atributo Ai

debe pertenecer al dominio del atributo Ai; es decir, debe pertenecer a

dominio(Ai).

Page 22: Base datos f02

18

Bases de datos

Bases de datos

Fascículo No. 2

Semestre 5

Esta condición implica que todos los valores no nulos que contiene la base

de datos para un determinado atributo deben ser del dominio declarado

para dicho atributo.

La segunda condición de la regla de integridad de dominio es más com-

pleja, especialmente en el caso de dominios definidos por el usuario; los

DBMS actuales no la soportan para estos últimos dominios. Por estos mo-

tivos sólo la presentaremos superficialmente.

Esta segunda condición sirve para establecer que los operadores que

pueden aplicarse sobre los valores dependen de los dominios de estos

valores; es decir, un operador determinado sólo se puede aplicar sobre

valores que tengan dominios que le sean adecuados.

El álgebra relacional

El álgebra relacional se inspira en la teoría de conjuntos para especificar

consultas en una base de datos relacional.

Para especificar una consulta en álgebra relacional, es preciso definir uno

o más pasos que sirven para ir construyendo, mediante operaciones de

álgebra relacional, una nueva relación que contenga los datos que res-

ponden a la consulta a partir de las relaciones almacenadas. Los lenguajes

basados en el álgebra relacional son procedimentales, dado que los pasos

que forman la consulta describen un procedimiento.

Una característica destacable de todas las operaciones del álgebra rela-

cional es que tanto los operandos como el resultado son relaciones. Esta

propiedad se denomina cierre relacional.

Las operaciones del álgebra relacional han sido clasificadas según distin-

tos criterios; de todos ellos indicamos los tres siguientes:

Page 23: Base datos f02

19

Bases de datos

Bases de datos

Fascículo No. 2

Semestre 5

1) Según se pueden expresar o no en términos de otras operaciones.

a) Operaciones primitivas: son aquellas operaciones a partir de las cua-

les podemos definir el resto. Estas operaciones son la unión, la dife-

rencia, el producto cartesiano, la selección y la proyección.

b) Operaciones no primitivas: el resto de las operaciones del álgebra re-

lacional que no son estrictamente necesarias, porque se pueden ex-

presar en términos de las primitivas; sin embargo, las operaciones no

primitivas permiten formular algunas consultas de forma más cómo-

da. Existen distintas versiones del álgebra relacional, según las ope-

raciones no primitivas que se incluyen. Nosotros estudiaremos las

operaciones no primitivas que se utilizan con mayor frecuencia: la in-

tersección y la combinación.

2) Según el número de relaciones que tienen como operandos:

a) Operaciones binarias: son las que tienen dos relaciones como ope-

randos. Son binarias todas las operaciones, excepto la selección y la

proyección.

b) Operaciones unarias: son las que tienen una sola relación como ope-

rando. La selección y la proyección son unarias.

3) Según se parecen o no a las operaciones de la teoría de conjuntos:

a) Operaciones conjuntistas: son las que se parecen a las de la teoría

de conjuntos. Se trata de la unión, la intersección, la diferencia y el

producto cartesiano.

b) Operaciones específicamente relacionales: son el resto de las opera-

ciones; es decir, la selección, la proyección y la combinación.

Operaciones conjuntistas

Las operaciones conjuntistas del álgebra relacional son la unión, la inter-

sección, la diferencia y el producto cartesiano.

Page 24: Base datos f02

20

Bases de datos

Bases de datos

Fascículo No. 2

Semestre 5

La unión es una operación que, a partir de dos relaciones, obtiene una

nueva relación formada por todas las tuplas que están en alguna de las

relaciones de partida.

La unión es una operación binaria, y la unión de dos relaciones T y S se

indica T ∪ S.

Sólo tiene sentido aplicar la unión a relaciones que tengan tuplas similares.

La extensión de la relación resultante de T ∪ S es el conjunto de tuplas que

pertenecen a la extensión de T, a la extensión de S o a la extensión de am-

bas relaciones.

La intersección es una operación que, a partir de dos relaciones, obtiene

una nueva relación formada por las tuplas que pertenecen a las dos rela-

ciones de partida.

La intersección es una operación binaria; la intersección de dos relaciones

T y S se indica T ∩ S.

La intersección, como la unión, sólo se puede aplicar a relaciones que ten-

gan tuplas similares. Para poder hacer la intersección de dos relaciones,

es preciso, pues, que las relaciones sean compatibles.

Los atributos del esquema de la relación resultante de T ∩ S coinciden con

los atributos del esquema de la relación T.

La extensión de la relación resultante de T ∩ S es el conjunto de tuplas que

pertenecen a la extensión de ambas relaciones.

La diferencia es una operación que, a partir de dos relaciones, obtiene

una nueva relación formada por todas las tuplas que están en la primera

relación y, en cambio, no están en la segunda. La diferencia es una opera-

Page 25: Base datos f02

21

Bases de datos

Bases de datos

Fascículo No. 2

Semestre 5

En el producto cartesiano

que T y S no tienen ningún

nombre de atributo común.

ción binaria, y la diferencia entre las relaciones T y S se indica como T – S.

La diferencia, como ocurría en la unión y la intersección, sólo tiene sentido

si se aplica a relaciones que tengan tuplas similares. Para poder realizar la

diferencia de dos relaciones es necesario que las relaciones sean compa-

tibles.

Los atributos del esquema de la relación resultante de T – S coinciden con

los atributos del esquema de la relación T.

La extensión de la relación resultante de T – S es el conjunto de tuplas que

pertenecen a la extensión de T, pero no a la de S.

El producto cartesiano es una operación que, a partir de dos relaciones,

obtiene una nueva relación formada por todas las tuplas que resultan de

concatenar tuplas de la primera relación con tuplas de la segunda.

El producto cartesiano es una operación binaria. Siendo T y S dos relacio-

nes que cumplen que sus esquemas no tienen ningún nombre de atributo

común, el producto cartesiano de T y S se indica como T × S.

Si se quiere calcular el producto cartesiano de dos relaciones que tienen

algún nombre de atributo común, sólo hace falta redenominar previamente

los atributos adecuados de una de las dos relaciones.

Los atributos del esquema de la relación resultante de T × S son todos los

atributos de T y todos los atributos de S.

El producto cartesiano es una operación que raramente se utiliza de forma

explícita, porque el resultado que da no suele ser útil para resolver las con-

sultas habituales.

Page 26: Base datos f02

22

Bases de datos

Bases de datos

Fascículo No. 2

Semestre 5

Operaciones específicamente relacionales

Las operaciones específicamente relacionales son la selección, la proyec-

ción y la combinación.

La selección: Podemos ver la selección como una operación que sirve

para elegir algunas tuplas de una relación y eliminar el resto. Más concre-

tamente, la selección es una operación que, a partir de una relación, obtie-

ne una nueva relación formada por todas las tuplas de la relación de parti-

da que cumplen una condición de selección especificada.

La selección es una operación unaria. Siendo C una condición de selec-

ción, la selección de T con la condición C se indica como T(C).

Los atributos del esquema de la relación resultante de T(C) coinciden con

los atributos del esquema de la relación T.

La extensión de la relación resultante de T(C) es el conjunto de tuplas que

pertenecen a la extensión de T y que satisfacen la condición de selección

C. Una tupla t satisface una condición de selección C si, después de susti-

tuir cada atributo que hay en C por su valor en t, la condición C se evalúa

en el valor cierto.

Proyección: Podemos considerar la proyección como una operación que

sirve para elegir algunos atributos de una relación y eliminar el resto. Más

concretamente, la proyección es una operación que, a partir de una rela-

ción, obtiene una nueva relación formada por todas las (sub)tuplas de la

relación de partida que resultan de eliminar unos atributos especificados.

Combinación: La combinación es una operación que, a partir de dos rela-

ciones, obtiene una nueva relación formada por todas las tuplas que resul-

tan de concadenar tuplas de la primera relación con tuplas de la segunda,

y que cumplen una condición de combinación especificada.

Page 27: Base datos f02

23

Bases de datos

Bases de datos

Fascículo No. 2

Semestre 5

La combinación es una operación binaria. Siendo T y S dos relaciones cu-

yos esquemas no tienen ningún nombre de atributo común, y siendo B

una condición de combinación, la combinación de T y S según la condi-

ción B se indica T[B]S.

Si se quiere combinar dos relaciones que tienen algún nombre de atributo

común, sólo hace falta redenominar previamente los atributos repetidos de

una de las dos.

Los atributos del esquema de la relación resultante de T[B]S son todos los

atributos de T y todos los atributos de S.

La combinación natural de dos relaciones T y S se denota como T * S y

consiste básicamente en una equicombinación seguida de la eliminación

de los atributos superfluos; además, se considera por defecto que la con-

dición de combinación iguala todas las parejas de atributos que tienen el

mismo nombre en T y en S.

A continuación presentaremos un ejemplo que utilizaremos para ilustrar las

operaciones del álgebra relacional.

Supongamos que tenemos una base de datos relacional con las cuatro

relaciones siguientes:

1) La relación EDIFICIOS_EMP, que contiene datos de distintos edificios de

los que una empresa dispone para desarrollar sus actividades.

2) La relación DESPACHOS, que contiene datos de cada uno de los des-

pachos que hay en los edificios anteriores.

3) La relación EMPLEADOS_ADM, que contiene los datos de los emplea-

dos de la empresa que llevan a cabo tareas administrativas.

4) La relación EMPLEADOS_PROD, que almacena los datos de los em-

pleados de la empresa que se ocupan de tareas de producción.

Page 28: Base datos f02

24

Bases de datos

Bases de datos

Fascículo No. 2

Semestre 5

A continuación describimos los esquemas de las relaciones anteriores y

sus extensiones en un momento determinado:

• Esquema y extensión de EDIFICIOS_EMP:

• Esquema y extensión de DESPACHOS:

• Esquema y extensión de EMPLEADOS_ADM:

• Esquema y extensión de EMPLEADOS_PROD:

Se considera que los valores nulos de los atributos edificiodesp y número-

desp de las relaciones EMPLEADOS_PROD y EMPLEADOS_ADM indican

que el empleado correspondiente no tiene despacho.

Page 29: Base datos f02

25

Bases de datos

Bases de datos

Fascículo No. 2

Semestre 5

Ejemplo de unión

Si queremos obtener una relación R que tenga a todos los empleados de

la empresa del ejemplo anterior, llevaremos a cabo la unión de las relacio-

nes EMPLEADOS_ADM y EMPLEADOS_PROD de la forma siguiente:

R := EMPLEADOS_ADM ∪ EMPLEADOS_PROD.

Entonces la relación R resultante será la reflejada en la tabla siguiente:

Ejemplo de intersección

Si queremos obtener una relación R que incluya a todos los empleados de

la empresa del ejemplo que trabajan tanto en administración como en pro-

ducción, realizaremos la intersección de las relaciones EMPLEADOS_ADM

y EMPLEADOS_PROD de la forma siguiente:

R : = EMPLEADOS_ADM EMPLEADOS_PROD.

Entonces, la relación R resultante será:

Page 30: Base datos f02

26

Bases de datos

Bases de datos

Fascículo No. 2

Semestre 5

Ejemplo de diferencia

Si queremos obtener una relación R con todos los empleados de la em-

presa del ejemplo que trabajan en administración, pero no en producción,

haremos la diferencia de las relaciones EMPLEADOS_ADM y EMPLEA-

DOS_PROD de la forma siguiente:

R := EMPLEADOS_ADM – EMPLEADOS_PROD

Entonces la relación R resultante será:

Ejemplo de producto cartesiano

El producto cartesiano de las relaciones DESPACHOS y EDIFICIOS_EMP

del ejemplo se puede hacer como se indica (es necesario redenominar

atributos previamente):

EDIFICIOS (nombreedificio, supmediadesp) := EDICIOS_EMP(edificio,

supmediadesp).

R := EDIFICIOS × DESPACHOS.

Entonces, la relación R resultante será:

Page 31: Base datos f02

27

Bases de datos

Bases de datos

Fascículo No. 2

Semestre 5

Ejemplo de selección

Si queremos obtener una relación R con los despachos de la base de da-

tos del ejemplo que están en el edificio Marina y que tienen una superficie

de más de 12 metros cuadrados, haremos la siguiente selección:

R := DESPACHOS(edificio = Marina y superficie > 12).

La relación R resultante será:

Ejemplo de proyección

Si queremos obtener una relación R con el nombre y el apellido de todos

los empleados de administración de la base de datos del ejemplo, hare-

mos la siguiente proyección:

R := EMPLEADOS_ADM[nombre, apellido].

Entonces, la relación R resultante será:

Page 32: Base datos f02

28

Bases de datos

Bases de datos

Fascículo No. 2

Semestre 5

Ejemplo de combinación

Supongamos que se desea encontrar los datos de los despachos que tie-

nen una superficie mayor o igual que la superficie media de los despachos

del edificio donde están situados. La siguiente combinación nos propor-

cionará los datos de estos despachos junto con los datos de su edificio

(observad que es preciso redenominar previamente los atributos):

EDIFICIOS(nombreeedficio,supmediadesp) := EDIFICIOS_EMP(edificio,

supmediadesp),

R := EDIFICIOS[nombreedificio = edificio, supmediadesp . superficie]

DESPACHOS

Entonces, la relación R resultante será:

En este fascículo hemos presentado los conceptos fundamentales del mo-

delo relacional de datos y, a continuación, hemos explicado las operacio-

nes del álgebra relacional:

1) Los aspectos más relevantes del modelo relacional que hemos descrito

sonlos siguientes:

a) En lo que respecta a la estructura de los datos:

• Consiste en un conjunto de relaciones.

• Una relación permite almacenar datos relacionados entre sí.

• La clave primaria de una relación permite identificar sus datos.

• Las claves foráneas de las relaciones permiten referenciar claves

primarias

Page 33: Base datos f02

29

Bases de datos

Bases de datos

Fascículo No. 2

Semestre 5

• y, de este modo, establecer conexiones entre los datos de las re-

laciones.

b) En lo que respecta a la integridad de los datos:

• La regla de integridad de unicidad y de entidad de la clave prima-

ria: las claves primarias no pueden contener valores repetidos ni

valores nulos.

• La regla de integridad referencial: los valores de las claves foráne-

as deben existir en la clave primaria referenciada o bien deben ser

valores nulos.

• La regla de integridad de dominio: los valores no nulos de un atri-

buto deben pertenecer al dominio del atributo, y los operadores

que es posible aplicar sobre los valores dependen de los dominios

de estos valores.

2) El álgebra relacional proporciona un conjunto de operaciones para ma-

nipular relaciones. Estas operaciones se pueden clasificar de la forma

siguiente:

Operaciones conjuntistas: unión, intersección, diferencia y producto

cartesiano.

Operaciones específicamente relacionales: selección, proyección y

combinación.

Las operaciones del álgebra relacional pueden formar secuencias que

permiten resolver consultas complejas.

Chen, Peter. The Entity-Relationship Model-Toward a Unified View of Data.

ACM Transactions on Data Base Systems. Vol. 1, Number 1, 1976

Elmasri, Ramez y Navathe Shamkant B. Sistemas de Bases de Datos:

Conceptos Fundamentales. Addison-Wesley.

Page 34: Base datos f02

30

Bases de datos

Bases de datos

Fascículo No. 2

Semestre 5

J.C. Date. Introducción a los sistemas de Base de Datos. Volumen 1.

Quinta Edición.(Texto Guía)

Ullman, J.D.; Widom, J. "Introducción a los Sistemas de Bases de Datos".

Prentice Hall.

En el siguiente fascículo se trabajara con el lenguaje de consultas estructu-

radas SQL el cual nos va a permitir desde un DBMS acceder a las bases

de datos allí almacenadas realizando para tal fin consultas en este lenguaje

que son la representación de las operaciones de algebra relacional vistas

en este fascículo.

Page 35: Base datos f02

31

Bases de datos

Bases de datos

Fascículo No. 2

Semestre 5

Seguimiento al autoaprendizajeSeguimiento al autoaprendizajeSeguimiento al autoaprendizaje

Bases de datos - Fascículo No. 1

Nombre_______________________________________________________

Apellidos ________________________________ Fecha: _________________

Ciudad___________________________________Semestre: _______________

1. Dada la relación que corresponde a la siguiente representación tabular:

a) Indique qué conjunto de atributos tiene.

b) Diga qué dominio tiene cada uno de sus atributos.

c) Escriba todas las distintas formas de denotar su esquema de relación.

d) Elija una de las formas de denotar su esquema de relación y utilícela para

dibujar el conjunto de tuplas correspondiente a su extensión.

2. Indique cuáles son todas las superclaves de las siguientes relaciones:

a) DESPACHOS(edificio, número, superficie), que tiene como única clave can-

didata la siguiente: edificio, número.

b) EMPLEADOS(DNI, NSS, nombre, apellido), que tiene las siguientes claves

candidatas: DNI y NSS.

Page 36: Base datos f02

32

Bases de datos

Bases de datos

Fascículo No. 2

Semestre 5

3. Diga, para cada una de las siguientes operaciones de actualización, si se podr-

ía aceptar su aplicación sobre la base de datos que se ha utilizado en este

fascículo:

a) Insertar en EDIFICIOS_EMP la tupla <Nexus, 30>.

b) Insertar en DESPACHOS la tupla <Diagonal, NULO, 15>.

c) Insertar en EMPLEADOS_ADM la tupla <55.555.555, María, Puig, Diagonal,

500>.

d) Modificar en DESPACHOS la tupla <Marina, 230, 20> por <Marina, 120,

20>.

e) Borrar en EMPLEADOS_PROD la tupla <88.999.20, Pedro, González, NU-

LO, NULO>.