el modelo relacional y el algebra relacional - dolors costal costa

58
El modelo relacional y el álgebra relacional Dolors Costal Costa P06/M2109/02148

Upload: richard-garcia

Post on 11-Oct-2015

26 views

Category:

Documents


3 download

DESCRIPTION

Modelo relacional

TRANSCRIPT

  • El modelo relacional y el lgebra relacionalDolors Costal Costa

    P06/M2109/02148

  • FUOC P06/M2109/02148 El modelo relacional y el lgebra relacional

    ndice

    Introduccin............................................................................................... 5

    Objetivos ...................................................................................................... 6

    1. Introduccin al modelo relacional.................................................. 7

    2. Estructura de los datos ....................................................................... 9

    2.1. Visin informal de una relacin........................................................ 9

    2.2. Visin formal de una relacin........................................................... 10

    2.3. Diferencias entre relaciones y ficheros.............................................. 12

    2.4. Clave candidata, clave primaria y clave alternativa

    de las relaciones ................................................................................. 14

    2.5. Claves forneas de las relaciones....................................................... 15

    2.6. Creacin de las relaciones de una base de datos............................... 18

    3. Operaciones del modelo relacional ................................................. 19

    4. Reglas de integridad............................................................................ 21

    4.1. Regla de integridad de unicidad de la clave primaria ....................... 22

    4.2. Regla de integridad de entidad de la clave primaria ......................... 23

    4.3. Regla de integridad referencial .......................................................... 24

    4.3.1. Restriccin.............................................................................. 26

    4.3.2. Actualizacin en cascada........................................................ 27

    4.3.3. Anulacin ............................................................................... 29

    4.3.4. Seleccin de la poltica de mantenimiento

    de la integridad referencial .................................................... 30

    4.4. Regla de integridad de dominio ........................................................ 31

    5. El lgebra relacional ........................................................................... 33

    5.1. Operaciones conjuntistas .................................................................. 36

    5.1.1. Unin ..................................................................................... 36

    5.1.2. Interseccin ............................................................................ 38

    5.1.3. Diferencia ............................................................................... 39

    5.1.4. Producto cartesiano................................................................ 40

    5.2. Operaciones especficamente relacionales ........................................ 41

    5.2.1. Seleccin................................................................................. 41

    5.2.2. Proyeccin.............................................................................. 42

    5.2.3. Combinacin ......................................................................... 43

    5.3. Secuencias de operaciones del lgebra relacional ............................. 46

    5.4. Extensiones: combinaciones externas............................................... 47

  • FUOC P06/M2109/02148 El modelo relacional y el lgebra relacional

    Resumen....................................................................................................... 51

    Ejercicios de autoevaluacin .................................................................. 53

    Solucionario................................................................................................ 55

    Glosario ........................................................................................................ 56

    Bibliografa................................................................................................. 58

  • FUOC P06/M2109/02148 5 El modelo relacional y el lgebra relacional

    Introduccin

    Esta unidad didctica est dedicada al estudio del modelo de datos relacional

    y del lgebra relacional.

    El concepto de modelo de datos se ha presentado en otra unidad didctica. En

    sta se profundiza en un modelo de datos concreto: el modelo relacional, que

    actualmente tiene una gran relevancia. Sus conceptos fundamentales estn

    bien asentados y, adems, los sistemas de gestin de bases de datos relaciona-

    les son los ms extendidos en su utilizacin prctica. Por estos motivos pensa-

    mos que es importante conocerlo.

    El estudio del modelo relacional sirve, adems, de base para los contenidos de

    otra unidad, dedicada al lenguaje SQL. Este lenguaje permite definir y mani-

    pular bases de datos relacionales. Los fundamentos del modelo relacional re-

    sultan imprescindibles para conseguir un buen dominio del SQL.

    En esta unidad se analizan tambin las operaciones del lgebra relacional,

    que sirven para hacer consultas a una base de datos. Es preciso conocer estas

    operaciones porque nos permiten saber qu servicios de consulta debe propor-

    cionar un lenguaje relacional. Otra aportacin del lgebra relacional es que fa-

    cilita la comprensin de algunas de las construcciones del lenguaje SQL que

    se estudiarn en otra unidad didctica de este curso. Adems, constituye la

    base para el estudio del tratamiento de las consultas que efectan los SGBD in-

    ternamente (especialmente en lo que respecta a la optimizacin de consultas).

    Este ltimo tema queda fuera del mbito del presente curso, pero es relevante

    para estudios ms avanzados sobre bases de datos.

    Consultad el conceptode modelo de datos en la unidad didctica Introduccin a las bases de datos de este curso.

    Las construcciones del SQL se estudian en la unidaddidctica El lenguaje SQL.

  • FUOC P06/M2109/02148 6 El modelo relacional y el lgebra relacional

    Objetivos

    En los materiales didcticos de esta unidad encontraris las herramientas in-

    dispensables para alcanzar los siguientes objetivos:

    1. Conocer los fundamentos del modelo de datos relacional.

    2. Saber distinguir las caractersticas que debe tener un sistema de gestin de

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

    modelo relacional.

    3. Comprender las ventajas del modelo relacional que derivan del alto grado

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

    uniformidad del modelo.

    4. Conocer las operaciones del lgebra relacional.

    5. Saber utilizar las operaciones del lgebra relacional para consultar una base

    de datos.

  • FUOC P06/M2109/02148 7 El modelo relacional y el lgebra relacional

    1. Introduccin al modelo relacional

    Un sistema de gestin de bases de datos relacional (SGBDR) da apoyo a la

    definicin de datos mediante la estructura de los datos del modelo relacional,

    as como a la manipulacin de estos datos con las operaciones del modelo;

    adems, asegura que se satisfacen las reglas de integridad que el modelo rela-

    cional establece.

    Los principios del modelo de datos relacional fueron establecidos por E.F. Codd

    en los aos 1969 y 1970. De todos modos, hasta la dcada de los ochenta no se

    empezaron a comercializar los primeros SGBD relacionales con rendimientos

    aceptables. Cabe sealar que los SGBD relacionales que se comercializan actual-

    mente todava no soportan todo lo que establece la teora relacional hasta el l-

    timo detalle.

    El principal objetivo del modelo de datos relacional es facilitar que la base de

    datos sea percibida o vista por el usuario como una estructura lgica que consis-

    te en un conjunto de relaciones y no como una estructura fsica de implemen-

    tacin. Esto ayuda a conseguir un alto grado de independencia de los datos.

    Un objetivo adicional del modelo es conseguir que esta estructura lgica

    con la que se percibe la base de datos sea simple y uniforme. Con el fin de

    proporcionar simplicidad y uniformidad, toda la informacin se representa

    de una nica manera: mediante valores explcitos que contienen las rela-

    ciones (no se utilizan conceptos como por ejemplo apuntadores entre las

    relaciones). Con el mismo propsito, todos los valores de datos se conside-

    ran atmicos; es decir, no es posible descomponerlos.

    Hay que precisar que un SGBD relacional, en el nivel fsico, puede emplear

    cualquier estructura de datos para implementar la estructura lgica formada

    El modelo relacional es un modelo de datos y, como tal, tiene en cuen-

    ta los tres aspectos siguientes de los datos:

    1) La estructura, que debe permitir representar la informacin que nos

    interesa del mundo real.

    2) La manipulacin, a la que da apoyo mediante las operaciones de ac-

    tualizacin y consulta de los datos.

    3) La integridad, que es facilitada mediante el establecimiento de re-

    glas de integridad; es decir, condiciones que los datos deben cumplir.

    El concepto de modelo de datos se ha explicado en la unidad didctica Introduccin a las basesde datosde este curso.

    El concepto de SGBD ha sido presentado en la unidad didctica Introduccin a las bases de datos de este curso.

  • FUOC P06/M2109/02148 8 El modelo relacional y el lgebra relacional

    por las relaciones. En particular, a nivel fsico, el sistema puede utilizar apun-

    tadores, ndices, etc. Sin embargo, esta implementacin fsica queda oculta al

    usuario.

    En los siguientes apartados estudiaremos la estructura de los datos, las operacio-

    nes y las reglas de integridad del modelo relacional. Hay dos formas posibles de

    enfocar el estudio de los contenidos de este mdulo. La primera consiste en se-

    guirlos en orden de exposicin. De este modo, se van tratando todos los elemen-

    tos de la teora del modelo relacional de forma muy precisa y en un orden

    lgico. Otra posibilidad, sin embargo, es empezar con la lectura del resumen fi-

    nal del mdulo y leer despus todo el resto de los contenidos en el orden nor-

    mal. El resumen describe los aspectos ms relevantes de la teora relacional que

    se explican y, de este modo, proporciona una visin global de los contenidos

    del mdulo que, para algunos estudiantes, puede ser til comprender antes de

    iniciar un estudio detallado.

  • FUOC P06/M2109/02148 9 El modelo relacional y el lgebra relacional

    2. Estructura de los datos

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

    de relacin.

    2.1. Visin informal de una relacin

    En primer lugar, presentaremos el concepto de relacin de manera informal. Se

    puede obtener una buena idea intuitiva de lo que es una relacin si la visuali-

    zamos como una tabla o un fichero. En la figura 1 se muestra la visualizacin

    tabular de una relacin que contiene datos de empleados. Cada fila de la tabla

    contiene una coleccin de valores de datos relacionados entre s; en nuestro

    ejemplo, son los datos correspondientes a un mismo empleado. La tabla tiene

    un nombre (EMPLEADOS) y tambin tiene un nombre cada una de sus colum-

    nas (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. Cada co-

    lumna contiene valores de un cierto dominio; por ejemplo, la columna DNI

    contiene valores del dominio nmerosDNI.

    Figura1

    El modelo relacional proporciona una estructura de los datos que con-

    siste en un conjunto de relaciones con objeto de representar la informa-

    cin que nos interesa del mundo real.

    Conjunto de relaciones

    Una base de datos relacional consta de un conjunto de relaciones, cada una de las cuales se puede visualizar de este modo tan sencillo. La estructura de los datos del modelo relacional resulta fcil de entender para el usuario.

  • FUOC P06/M2109/02148 10 El modelo relacional y el lgebra relacional

    Si definimos las relaciones de forma ms precisa, nos daremos cuenta de que

    presentan algunas caractersticas importantes que, en la visin superficial que

    hemos presentado, quedan ocultas. Estas caractersticas son las que motivan

    que el concepto de relacin sea totalmente diferente del de fichero, a pesar de

    que, a primera vista, relaciones y ficheros puedan parecer similares.

    2.2. Visin formal de una relacin

    A continuacin definimos formalmente las relaciones y otros conceptos que

    estn vinculados a ellas, como por ejemplo dominio, esquema de relacin, etc.

    Los dominios pueden ser de dos tipos:

    1) Dominios predefinidos, que corresponde a los tipos de datos que normal-

    mente proporcionan los lenguajes de bases de datos, como por ejemplo los en-

    teros, las cadenas de caracteres, los reales, etc.

    2) Dominios definidos por el usuario, que pueden ser ms especficos. Toda

    definicin de un dominio debe constar, como mnimo, del nombre del domi-

    nio y de la descripcin de los valores que forman parte de ste.

    Si consideramos la representacin tabular anterior (figura 1), el esquema co-

    rrespondera a la cabecera de la tabla y la extensin correspondera al cuerpo:

    Figura 2

    Un dominio D es un conjunto de valores atmicos. Por lo que respecta

    al modelo relacional, atmico significa indivisible; es decir, que por muy

    complejo o largo que sea un valor atmico, no tiene una estructuracin

    interna para un SGBD relacional.

    Un relacin se compone del esquema (o intensin de la relacin) y de

    la extensin.

    Dominio definidopor el usuario

    Por ejemplo, el usuario puede definir un dominio para las edades de los empleados que se denomine dom_edad y que contenga los valores enteros que estn entre 16 y 65.

    Empleados

    DNI nombre apellido sueldo

    40.444.255 Juan Garca 2.000

    33.567.711 Marta Roca 2.500

    55.898.425 Carlos Buenda 1.500

    Esquema

    Extensin

    El esquema de la relacin consiste en un nombre de relacin R y un

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

  • FUOC P06/M2109/02148 11 El modelo relacional y el lgebra relacional

    Nombre y conjunto de atributos de la relacin EMPLEADOS

    Si tomamos como ejemplo la figura 1, el nombre de la relacin es EMPLEADOS y el conjuntode atributos es {DNI, nombre, apellido, sueldo}.

    Tomaremos la convencin de denotar el esquema de la relacin de la forma

    siguiente: R(A1, A2, ..., An), donde R es el nombre la relacin y A1, A2, ..., Anes una ordenacin cualquiera de los atributos que pertenecen al conjunto

    {A1, A2, ..., An}.

    Denotacin del esquema de la relacin EMPLEADOS

    El esquema de la relacin de la figura 1 se podra denotar, por ejemplo, como EMPLEA-DOS(DNI, nombre, apellido, sueldo), o tambin, EMPLEADOS(nombre, apellido, DNI, sueldo),porque cualquier ordenacin de sus atributos se considera vlida para denotar el esquema deuna relacin.

    Dominio del atributo DNI

    Segn la figura 1, el atributo DNI corresponde al papel que ejerce el dominio nmerosDNI enel esquema de la relacin EMPLEADOS y, entonces, dominio(DNI) = nmerosDNI.

    Conviene observar que cada atributo es nico en un esquema de relacin, por-

    que 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 relacin haya dos atributos con el mismo nombre. En cambio, s que se

    puede repetir un nombre de atributo en relaciones diferentes. Los dominios de

    los atributos, por el contrario, no deben ser necesariamente todos diferentes

    en una relacin.

    Ejemplo de atributos diferentes con el mismo dominio

    Si tomamos como ejemplo el esquema de relacin PERSONAS(DNI, nombre, apellido, telcasa,teltrabajo), los atributos telcasa y teltrabajo pueden tener el mismo dominio: dominio(telcasa)== telfono y dominio(teltrabajo) = telfono.

    En este caso, el dominio telfono ejerce dos papeles diferentes en el esquema de relacin: elde indicar el telfono particular de una persona y el de indicar el del trabajo.

    Para simplificar, tomaremos la convencin de referirnos a una tupla ti = {,

    , ..., } que pertenece a la extensin del esquema denotado como

    R(A1, A2, ..., An), de la forma siguiente: ti = .

    Un atributo Ai es el nombre del papel que ejerce un dominio D en un es-

    quema de relacin. D es el dominio de Ai y se denota como dominio (Ai).

    La extensin de la relacin de esquema R(A1, A2, ..., An) es un con-

    junto de tuplas ti (i = 1, 2, ..., m), donde cada tupla ti es, a su vez un con-

    junto de pares ti = {, ... >An:vin>} y, para cada par

    , se cumple que vij es un valor de dominio(Aj), o bien un valor

    especial que denominaremos nulo.

    Algunos autores...

    ... denominan tablas, columnas y filas a las relaciones, losatributos y las tuplas, respectivamente.

  • FUOC P06/M2109/02148 12 El modelo relacional y el lgebra relacional

    Si denotamos el esquema de la relacin representada en la figura 1 como EM-

    PLEADOS(DNI, nombre, apellido, sueldo), el conjunto de tuplas de su extensin

    ser el de la figura siguiente:

    Figura 3

    Si en una tupla ti = , el valor vij es un valor nulo, entonces el

    valor del atributo Aj es desconocido para la tupla ti de la relacin, o bien no es

    aplicable a esta tupla.

    Ejemplo de valor nulo

    Podramos tener un atributo telcasa en la relacin EMPLEADOS y se podra dar el caso de queun empleado no tuviese telfono en su casa, o bien que lo tuviese, pero no se conociese sunmero. En las dos situaciones, el valor del atributo telcasa para la tupla correspondiente alempleado sera el valor nulo.

    Grado de la relacin EMPLEADOS

    El grado de la relacin de esquema EMPLEADOS(DNI, nombre, apellido, sueldo), es 4.

    Cardinalidad de la relacin EMPLEADOS

    Observando la figura 3 se deduce que la cardinalidad de la relacin EMPLEADOS es 3.

    2.3. Diferencias entre relaciones y ficheros

    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.

    El grado de una relacin es el nmero de atributos que pertenecen a

    su esquema.

    La cardinalidad de una relacin es el nmero de tuplas que pertenecen

    a su extensin.

    Esta figura...

    ... nos muestra la extensin de EMPLEADOS en forma de conjunto, mientras que las figuras anteriores nos la mostraban en forma de filasde una tabla. La representa-cin tabular es ms cmoda, pero no refleja la definicin de extensin con tanta exactitud.

  • FUOC P06/M2109/02148 13 El modelo relacional y el lgebra relacional

    A pesar de esta similitud superficial, la visin formal de relacin que hemos pre-

    sentado establece algunas caractersticas de las relaciones que las hacen diferen-

    tes de los ficheros clsicos. A continuacin describimos estas caractersticas:

    1) Atomicidad de los valores de los atributos: los valores de los atributos de

    una relacin deben ser atmicos; es decir, no deben tener estructura interna.

    Esta caracterstica proviene del hecho de que los atributos siempre deben to-

    mar un valor de su dominio o bien un valor nulo, y de que se ha establecido

    que los valores de los dominios deben ser atmicos en el modelo relacional.

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

    modelo relacional.

    2) No-repeticin de las tuplas: en un fichero clsico puede ocurrir que dos de

    los registros sean exactamente iguales; es decir, que contengan los mismos da-

    tos. En el caso del modelo relacional, en cambio, no es posible que una relacin

    contenga tuplas repetidas. Esta caracterstica se deduce de la misma definicin

    de la extensin de una relacin. La extensin es un conjunto de tuplas y, en un

    conjunto, no puede haber elementos repetidos.

    3) No-ordenacin de las tuplas: de la definicin de la extensin de una rela-

    cin como un conjunto de tuplas se deduce tambin que estas tuplas no esta-

    rn ordenadas, teniendo en cuenta que no es posible que haya una ordenacin

    entre los elementos de un conjunto.

    La finalidad de esta caracterstica es conseguir que, mediante el modelo rela-

    cional, se puedan representar los hechos en un nivel abstracto que sea inde-

    pendiente de su estructura fsica de implementacin. Ms concretamente,

    aunque los SGBD relacionales deban proporcionar una implementacin fsica

    que almacenar las tuplas de las relaciones en un orden concreto, esta ordena-

    cin no es visible si nos situamos en el nivel conceptual.

    Ejemplo de no-ordenacin de las tuplas

    En una base de datos relacional, por ejemplo, no tiene sentido consultar la primera tuplade la relacin EMPLEADOS.

    4) No-ordenacin de los atributos: el esquema de una relacin consta de un

    nombre de relacin R y un conjunto de atributos {A1, A2, ..., An}. As pues, no

    hay un orden entre los atributos de un esquema de relacin, teniendo en

    cuenta que estos atributos forman un conjunto.

    Como en el caso anterior, el objetivo de esta caracterstica es representar los he-

    chos en un nivel abstracto, independientemente de su implementacin fsica.

    Ejemplo de no-ordenacin de los atributos

    El esquema de relacin EMPLEADOS(DNI, nombre, apellido, sueldo) denota el mismo esquemade relacin que EMPLEADOS(nombre, apellido, DNI, sueldo).

    El concepto de extensin de una relacin se ha explicado en el subapartado 2.2. de estaunidad didctica.

    El concepto de esquema de una relacin se ha explicado en el subapartado 2.2. de esta unidad didctica.

  • FUOC P06/M2109/02148 14 El modelo relacional y el lgebra relacional

    2.4. Clave candidata, clave primaria y clave alternativa

    de las relaciones

    Toda la informacin que contiene una base de datos debe poderse identificar

    de alguna forma. En el caso particular de las bases de datos que siguen el mo-

    delo relacional, para identificar los datos que la base de datos contiene, se pue-

    den utilizar las claves candidatas de las relaciones. A continuacin definimos

    qu se entiende por clave candidata, clave primaria y clave alternativa de una re-

    lacin. Para hacerlo, ser necesario definir el concepto de superclave.

    Una superclave, por lo tanto, nos permite identificar todas las tuplas que con-

    tiene la relacin.

    Algunas superclaves de la relacin EMPLEADOS

    En la relacin de esquema EMPLEADOS(DNI, NSS, nombre, apellido, telfono), algunas de lassuperclaves de la relacin seran los siguientes subconjuntos de atributos: {DNI, NSS, nombre,apellido, telfono}, {DNI, apellido}, {DNI} y {NSS}.

    Es decir, C cumple que la eliminacin de cualquiera de sus atributos da un

    conjunto de atributos que no es superclave de la relacin. Intuitivamente, una

    clave candidata permite identificar cualquier tupla de una relacin, de manera

    que no sobre ningn atributo para hacer la identificacin.

    Claves candidatas de EMPLEADOS

    En la relacin de esquema EMPLEADOS(DNI, NSS, nombre, apellido, telfono), slo hay dos cla-ves candidatas: {DNI} y {NSS}.

    El diseador de la base de datos es quien elige la clave primaria de entre las

    claves candidatas.

    Una superclave de una relacin de esquema R(A1, A2, ..., An) es un

    subconjunto de los atributos del esquema tal que no puede haber dos

    tuplas en la extensin de la relacin que tengan la misma combinacin

    de valores para los atributos del subconjunto.

    Una clave candidata de una relacin es una superclave C de la rela-

    cin que cumple que ningn subconjunto propio de C es superclave.

    Habitualmente, una de las claves candidatas de una relacin se designa

    clave primaria de la relacin. La clave primaria es la clave candidata cu-

    yos valores se utilizarn para identificar las tuplas de la relacin.

    Por ejemplo, ...

    ... si se almacena informacin sobre los empleados de una empresa, es preciso tener la posibilidad de distinguir qu datos corresponden a cada uno de los diferentes empleados.

    Observad que...

    ... toda relacin tiene, por lo menos, una superclave, quees la formada por todos los atributos de su esquema. Esto se debe a la propiedad que cumple toda relacin de no tener tuplas repetidas.En el ejemplo de EMPLEA-DOS(DNI, NSS, nombre, apellido, telfono) esta super-clave sera: {DNI, NSS, nombre, apellido, telfono}.

    Notad que, ...

    ... puesto que toda relacintiene por lo menos una super-clave, podemos garantizarque toda relacin tiene como mnimo una clave candidata.

    Relacin con una clave candidata

    Si una relacin slo tiene una clave candidata, entonces esta clave candidata debe ser tambin su clave primaria. Ya que todas las relacionestienen como mnimo una clave candidata, podemos garanti-zar que, para toda relacin, ser posible designar una clave primaria.

  • FUOC P06/M2109/02148 15 El modelo relacional y el lgebra relacional

    Utilizaremos la convencin de subrayar los atributos que forman parte de la

    clave primaria en el esquema de la relacin. As pues, R(A1, A2, ..., Ai, ..., An)

    indica que los atributos A1, A2, ..., Ai forman la clave primaria de R.

    Eleccin de la clave primaria de EMPLEADOS

    En la relacin de esquema EMPLEADOS(DNI, NSS, nombre, apellido, telfono), donde hay dosclaves candidatas, {DNI} y {NSS}, se puede elegir como clave primaria {DNI}. Lo indicaremossubrayando el atributo DNI en el esquema de la relacin EMPLEADOS(DNI, NSS, nombre, ape-llido, telfono). En este caso, la clave {NSS} ser una clave alternativa de EMPLEADOS.

    Es posible que una clave candidata o una clave primaria conste de ms de un

    atributo.

    Clave primaria de la relacin DESPACHOS

    En la relacin de esquema DESPACHOS(edificio, nmero, superficie), la clave primaria est for-mada por los atributos edificio y nmero. En este caso, podr ocurrir que dos despachos dife-rentes estn en el mismo edificio, o bien que tengan el mismo nmero, pero nunca pasarque tengan la misma combinacin de valores para edificio y nmero.

    2.5. Claves forneas de las relaciones

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

    mos tener en cuenta que una base de datos relacional normalmente contiene

    ms de una relacin, para poder representar distintos tipos de hechos que su-

    ceden en el mundo real. Por ejemplo, podramos tener una pequea base de

    datos que contuviese dos relaciones: una denominada EMPLEADOS, que alma-

    cenara datos de los empleados de una empresa, y otra con el nombre DESPA-

    CHOS, que almacenara los datos de los despachos que tiene la empresa.

    Debemos considerar tambin que entre los distintos hechos que se dan en el

    mundo real pueden existir lazos o vnculos. Por ejemplo, los empleados que tra-

    bajan para una empresa pueden estar vinculados con los despachos de la empre-

    sa, porque a cada empleado se le asigna un despacho concreto para trabajar.

    En el modelo relacional, para reflejar este tipo de vnculos, tenemos la posibi-

    lidad de expresar conexiones entre las distintas tuplas de las relaciones. 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 pertene-

    cen a una misma relacin. Por ejemplo, en la misma base de datos anterior puede

    Las claves candidatas no elegidas como primaria se denominan claves

    alternativas.

  • FUOC P06/M2109/02148 16 El modelo relacional y el lgebra relacional

    ser necesario conectar determinadas tuplas de EMPLEADOS con otras tuplas de

    EMPLEADOS para indicar, para cada empleado, quin acta como su jefe.

    El mecanismo que proporcionan las bases de datos relacionales para conectar

    tuplas son las claves forneas de las relaciones. Las claves forneas permiten es-

    tablecer conexiones entre las tuplas de las relaciones. Para hacer la conexin,

    una clave fornea tiene el conjunto de atributos de una relacin que referencian

    la clave primaria de otra relacin (o incluso de la misma relacin).

    Claves forneas de la relacin EMPLEADOS

    En la figura siguiente, la relacin EMPLEADOS(DNI, nombre, apellido, telfono, DNIjefe, edi-ficiodesp, nmerodesp), tiene una clave fornea formada por los atributos edificiodesp y nme-rodesp que se refiere a la clave primaria de la relacin DESPACHOS(edificio, nmero, superficie).Esta clave fornea indica, para cada empleado, el despacho donde trabaja. Adems, el atribu-to DNIjefe es otra clave fornea que referencia la clave primaria de la misma relacin EMPLEA-DOS, e indica, para cada empleado, quien es su jefe.

    Las claves forneas tienen por objetivo establecer una conexin con la clave

    primaria que referencian. Por lo tanto, los valores de una clave fornea deben

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

    nulos. En caso contrario, la clave fornea representara una referencia o co-

    nexin incorrecta.

    Ejemplo

    En la relacin de esquema EMPLEADOS(DNI, nombre, apellido, DNIjefe, edificiodesp, nmero-desp), la clave fornea {edificiodesp, nmerodesp} referencia la relacin DESPACHOS(edificio,nmero, superficie). De este modo, se cumple que todos los valores que no son nulos de losatributos edificiodesp y nmerodesp son valores que existen para los atributos edificio y nmerode DESPACHOS, tal y como se puede ver a continuacin:

    Relacin DESPACHOS:

    DESPACHOS

    edificio nmero superficie

    Marina 120 10

    Marina 122 15

    Marina 230 20

    Diagonal 120 10

  • FUOC P06/M2109/02148 17 El modelo relacional y el lgebra relacional

    Relacin EMPLEADOS

    Supongamos que hubiese un empleado con los valores . Puesto que no hay ningn despacho con los valores Pars y 400 para edificioy nmero, la tupla de este empleado hace una referencia incorrecta; es decir, indica un despa-cho para el empleado que, de hecho, no existe.

    Es preciso sealar que en la relacin EMPLEADOS hay otra clave fornea, {DNIjefe}, que refe-rencia la misma relacin EMPLEADOS, y entonces se cumple que todos los valores que noson nulos del atributo DNIjefe son valores que existen para el atributo DNI de la misma rela-cin EMPLEADOS.

    A continuacin estableceremos de forma ms precisa qu se entiende por clave

    fornea.

    De la nocin que hemos dado de clave fornea se pueden extraer varias con-

    secuencias:

    1) Si una clave fornea CF referencia una clave primaria CP, el nmero de atri-

    butos de CF y de CP debe coincidir.

    Ejemplo de coincidencia del nmero de atributos de CF y CP

    En el ejemplo anterior, tanto la clave fornea {edificiodesp, nmerodesp} como la clave primariaque referencia {edificio, nmero} tienen dos atributos. Si no sucediese as, no sera posible quelos valores de CF existieran en CP.

    2) Por el mismo motivo, se puede establecer una correspondencia (en concre-

    to, una biyeccin) entre los atributos de la clave fornea y los atributos de la

    clave primaria que referencia.

    EMPLEADOS

    DNI nombre apellido DNIjefe edificiodesp nmerodesp

    40.444.255 Juan Garca NULO Marina 120

    33.567.711 Marta Roca 40.444.255 Marina 120

    55.898.425 Carlos Buenda 40.444.255 Diagonal 120

    77.232.144 Elena Pla 40.444.255 NULO NULO

    Una clave fornea de una relacin R es un subconjunto de atributos

    del esquema de la relacin, que denominamos CF y que cumple las si-

    guientes condiciones:

    1) Existe una relacin 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 extensin 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 fornea CF referencia la clave primaria

    CP de la relacin S, y tambin que la clave fornea CF referencia la rela-

    cin S.

    Conviene subrayar que, ...

    ... tal y como ya hemos mencionado, el modelo relacional permite representar toda la informacin mediante valores explcitos que contie-nen las relaciones, y no le hace falta nada ms. De este modo, las conexiones entre tuplas de las relaciones se expresan con los valores explcitos de las claves forneas de las re-laciones, y no son necesarios conceptos adicionales (por ejemplo, apuntadoresentre tuplas), para establecer estas conexiones. Esta caracte-rstica da simplicidad y unifor-midad al modelo.

  • FUOC P06/M2109/02148 18 El modelo relacional y el lgebra relacional

    Ejemplo de correspondencia entre los atributos de CF y los de CP

    En el ejemplo anterior, a edificiodesp le corresponde el atributo edificio, y a nmerodesp le co-rresponde el atributo nmero.

    3) Tambin se deduce de la nocin de clave fornea que los dominios de sus

    atributos deben coincidir con los dominios de los atributos correspondientes

    a la clave primaria que referencia. Esta coincidencia de dominios hace que sea

    posible que los valores de la clave fornea coincidan con valores de la clave

    primaria referenciada.

    Ejemplo de coincidencia de los dominios

    En el ejemplo anterior, se debe cumplir que dominio(edificiodesp) = dominio(edificio) y tam-bin que dominio(nmerodesp) = dominio(nmero).

    Observad que, de hecho, esta condicin se podra relajar, y se podra permitir

    que los dominios no fuesen exactamente iguales, sino que slo fuesen, y de

    alguna forma que convendra precisar, dominios compatibles. Para simpli-

    ficarlo, nosotros supondremos que los dominios deben ser iguales en todos los

    casos en que, segn Date (2001), se aceptaran dominios compatibles.

    Ejemplo de atributo que forma parte de la clave primaria y de una clavefornea

    Puede suceder que algn atributo de una relacin forme parte tanto de la clave primariacomo de una clave fornea de la relacin. Esto se da en las relaciones siguientes: EDIFI-CIOS(nombreedificio, direccin), y DESPACHOS(edificio, nmero, superficie), donde {edificio}es una clave fornea que referencia EDIFICIOS.

    En este ejemplo, el atributo edificio forma parte tanto de la clave primaria como de la clavefornea de la relacin DESPACHOS.

    2.6. Creacin de las relaciones de una base de datos

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

    relacin tiene varios atributos que toman valores de unos ciertos dominios;

    tambin tiene una clave primaria y puede tener una o ms claves forneas. Los

    lenguajes de los SGBD relacionales deben proporcionar la forma de definir

    todos estos elementos para crear una base de datos.

    Ms adelante se ver con detalle la sintaxis y el significado de las sentencias de de-

    finicin de la base de datos para el caso concreto del lenguaje SQL.

    Lectura recomendada

    Encontraris explicaciones detalladas sobre la coincidencia de dominios en la obra siguiente: C.J. Date (2001). Introduccin a los sistemas de bases de datos (7 ed., cap. 19). Prentice Hall.

    El lenguaje SQL se explica en la unidad didctica El lenguaje SQL de este curso.

  • FUOC P06/M2109/02148 19 El modelo relacional y el lgebra relacional

    3. Operaciones del modelo relacional

    Las operaciones del modelo relacional deben permitir manipular datos alma-

    cenados en una base de datos relacional y, por lo tanto, estructurados en for-

    ma de relaciones. La manipulacin de datos incluye bsicamente dos aspectos:

    la actualizacin y la consulta.

    Ejemplo de actualizacin

    Si una base de datos contiene, por ejemplo, informacin de los empleados de una empresa,y la empresa contrata a un empleado, ser necesario reflejar este cambio aadiendo los datosdel nuevo empleado a la base de datos.

    Existen tres operaciones bsicas de actualizacin:

    a) Insercin, que sirve para aadir una o ms tuplas a una relacin.

    b) Borrado, que sirve para eliminar una o ms tuplas de una relacin.

    c) Modificacin, que sirve para alterar los valores que tienen una o ms tu-

    plas de una relacin para uno o ms de sus atributos.

    Ejemplo de consulta

    Si una base de datos contiene, por ejemplo, informacin de los empleados de una empresa,puede interesar consultar el nombre y apellido de todos los empleados que trabajan en undespacho situado en un edificio que tiene por nombre Marina.

    La obtencin de los datos que responden a una consulta puede requerir el an-

    lisis y la extraccin de datos de una o ms de las relaciones que mantiene la

    base de datos.

    Segn la forma como se especifican las consultas, podemos clasificar los lengua-

    jes relacionales en dos tipos:

    1) Lenguajes basados en el lgebra relacional. El lgebra relacional se inspi-

    ra en la teora de conjuntos. Si queremos especificar una consulta, es necesario

    La actualizacin 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.

    La consulta de los datos consiste en la obtencin de datos deducibles

    a partir de las relaciones que contiene la base de datos.

    La sintaxis y el funcionamiento de las operaciones de actualizacin y consulta, en el caso concreto del lenguaje relacional SQL, se estudian con detalle en la unidad El lenguaje SQL de este curso.

  • FUOC P06/M2109/02148 20 El modelo relacional y el lgebra relacional

    seguir uno o ms pasos que sirven para ir construyendo, mediante operaciones

    del lgebra relacional, una nueva relacin que contenga los datos que respon-

    den a la consulta a partir de las relaciones almacenadas. Los lenguajes basados

    en el lgebra relacional son lenguajes procedimentales, ya que los pasos que

    forman la consulta describen un procedimiento.

    2) Lenguajes basados en el clculo relacional. El clculo relacional tiene su

    fundamento terico en el clculo de predicados de la lgica matemtica. Pro-

    porciona una notacin que permite formular la definicin de la relacin don-

    de estn los datos que responden la consulta en trminos de las relaciones

    almacenadas. Esta definicin no describe un procedimiento; por lo tanto, se

    dice que los lenguajes basados en el clculo relacional son lenguajes declara-

    tivos (no procedimentales).

    El lenguaje SQL, en las sentencias de consulta, combina construcciones del lge-

    bra relacional y del clculo relacional con un predominio de las construcciones

    del clculo. Este predominio determina que SQL sea un lenguaje declarativo.

    El estudio del lgebra relacional presenta un inters especial, pues ayuda a en-

    tender qu servicios de consulta debe proporcionar un lenguaje relacional, faci-

    lita la comprensin de algunas de las construcciones del lenguaje SQL y tambin

    sirve de base para el tratamiento de las consultas que efectan los SGBD inter-

    namente. Este ltimo tema queda fuera del mbito del presente curso, pero es

    necesario para estudios ms avanzados sobre bases de datos.

    El lgebra relacional se explicaen el apartado 5 de estaunidad didctica.

  • FUOC P06/M2109/02148 21 El modelo relacional y el lgebra relacional

    4. Reglas de integridad

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

    la realidad o, ms concretamente, la situacin de una porcin del mundo real.

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

    las relaciones (es decir, las tuplas que contienen las relaciones) deben tener va-

    lores 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

    situacin posible del mundo real.

    Un sueldo negativo

    En la relacin de esquema EMPLEADOS(DNI, nombre, apellido, sueldo), una tupla que tieneun valor de 1.000 para el sueldo probablemente no tiene sentido, porque los sueldos no pue-den ser negativos.

    Como es evidente, para que los datos sean ntegros, es preciso que cumplan

    varias condiciones.

    El hecho de que los sueldos no puedan ser negativos es una condicin que se debera cumpliren la relacin EMPLEADOS.

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

    ser de dos tipos:

    1) Las restricciones de integridad de usuario son condiciones especficas 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 necesaria-

    mente relevantes en otra base de datos.

    Restriccin de integridad de usuario en EMPLEADOS

    ste sera el caso de la condicin anterior, segn la cual los sueldos no podan ser negativos.Observad que esta condicin era necesaria en la base de datos concreta de este ejemplo por-que apareca el atributo sueldo, al que se quera dar un significado; sin embargo, podra no sernecesaria en otra base de datos diferente donde, por ejemplo, no hubiese sueldos.

    2) Las reglas de integridad de modelo, en cambio, son condiciones ms ge-

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

    datos que siga dicho modelo.

    Ejemplo de regla de integridad del modelo de datos relacional

    En el caso del modelo de datos relacional, habr una regla de integridad para garantizarque los valores de una clave primaria de una relacin no se repitan en tuplas diferentes

    Denominamos integridad la propiedad de los datos de corresponder a

    representaciones plausibles del mundo real.

  • FUOC P06/M2109/02148 22 El modelo relacional y el lgebra relacional

    de la relacin. Toda base de datos relacional debe cumplir esta regla que, por lo tanto, esuna regla de integridad del modelo.

    Los SGBD deben proporcionar la forma de definir las restricciones de integri-

    dad de usuario de una base de datos; una vez definidas, deben velar por su

    cumplimiento.

    Las reglas de integridad del modelo, en cambio, no se deben definir para cada

    base de datos concreta, porque se consideran preestablecidas para todas las base

    de datos de un modelo. Un SGBD de un modelo determinado debe velar por el

    cumplimiento de las reglas de integridad preestablecidas por su modelo.

    A continuacin estudiaremos con detalle las reglas de integridad del modelo

    relacional, reglas que todo SGBD relacional debe obligar a cumplir.

    4.1. Regla de integridad de unicidad de la clave primaria

    La regla de integridad de unicidad est relacionada con la definicin de clave

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

    una relacin no debe tener valores repetidos.

    Ejemplo

    Tenemos la siguiente relacin:

    En esta relacin, dado que la clave primaria est formada por edificio y nmero, no hay ningndespacho que repita tanto edificio como nmero de otro despacho. Sin embargo, s se repitenvalores de edificio (por ejemplo, Marina); y tambin se repiten valores de nmero (120). A pe-sar de ello, el edificio y el nmero no se repiten nunca al mismo tiempo.

    A continuacin explicamos esta regla de forma ms precisa.

    Un SGBD relacional deber garantizar el cumplimiento de esta regla de inte-

    gridad en todas las inserciones, as como en todas las modificaciones que afec-

    ten a atributos que pertenecen a la clave primaria de la relacin.

    DESPACHOS

    edificio nmero superficie

    Marina 120 10

    Marina 122 15

    Marina 230 20

    Diagonal 120 10

    La regla de integridad de unicidad de la clave primaria establece que

    si el conjunto de atributos CP es la clave primaria de una relacin R, en-

    tonces la extensin de R no puede tener en ningn momento dos tuplas

    con la misma combinacin de valores para los atributos de CP.

    La forma de definir estas restricciones con el lenguaje SQL se explica en la unidadEl lenguaje SQL de este curso.

    Es preciso destacar que el mismo concepto de clave primaria implica esta condicin. El concepto de clave primaria se ha explicado en el subapartado 2.4. de estaunidad didctica.

  • FUOC P06/M2109/02148 23 El modelo relacional y el lgebra relacional

    Ejemplo

    Tenemos la siguiente relacin:

    En esta relacin no se debera poder insertar la tupla , ni modificar la tu-pla , de modo que pasara a ser .

    4.2. Regla de integridad de entidad de la clave primaria

    La regla de integridad de entidad de la clave primaria dispone que los atributos

    de la clave primaria de una relacin no pueden tener valores nulos.

    Ejemplo

    Tenemos la siguiente relacin:

    En esta relacin, puesto que la clave primaria est formada por edificio y nmero, no hay nin-gn despacho que tenga un valor nulo para edificio, ni tampoco para nmero.

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

    tificar las tuplas individuales de las relaciones. Si las claves primarias tuviesen

    valores nulos, es posible que algunas tuplas no se pudieran distinguir.

    Ejemplo de clave primaria incorrecta con valores nulos

    En el ejemplo anterior, si un despacho tuviese un valor nulo para edificio porque en un mo-mento dado el nombre de este edificio no se conoce, por ejemplo , la claveprimaria no nos permitira distinguirlo del despacho ni del despacho. No podramos estar seguros de que el valor desconocido de edificio noes ni Marina ni Diagonal.

    A continuacin definimos esta regla de forma ms precisa.

    DESPACHOS

    edificio nmero superficie

    Marina 120 10

    Marina 122 15

    Marina 230 20

    Diagonal 120 10

    DESPACHOS

    edificio nmero superficie

    Marina 120 10

    Marina 122 15

    Marina 230 20

    Diagonal 120 10

    La regla de integridad de entidad de la clave primaria establece que

    si el conjunto de atributos CP es la clave primaria de una relacin R, la

    extensin de R no puede tener ninguna tupla con algn valor nulo para

    alguno de los atributos de CP.

  • FUOC P06/M2109/02148 24 El modelo relacional y el lgebra relacional

    Un SGBD relacional tendr que garantizar el cumplimiento de esta regla de in-

    tegridad en todas las inserciones y, tambin, en todas las modificaciones que

    afecten a atributos que pertenecen a la clave primaria de la relacin.

    Ejemplo

    En la relacin DESPACHOS anterior, no se debera insertar la tupla .Tampoco debera ser posible modificar la tupla de modo que pasara a ser.

    4.3. Regla de integridad referencial

    La regla de integridad referencial est relacionada con el concepto de clave fo-

    rnea. Concretamente, determina que todos los valores que toma una clave fo-

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

    referencia.

    Ejemplo

    Si tenemos las siguientes relaciones:

    Relacin DESPACHOS:

    Relacin EMPLEADOS:

    donde edificiodesp y nmerodesp de la relacin EMPLEADOS forman una clave fornea que re-ferencia la relacin DESPACHOS. Debe ocurrir que los valores no nulos de edificiodesp y n-merodesp de la relacin EMPLEADOS estn en la relacin DESPACHOS como valores de edificioy nmero. Por ejemplo, el empleado tiene el valorMarina para edificiodesp, y el valor 120 para nmerodesp, de modo que en la relacin DESPA-CHOS hay un despacho con valor Marina para edificio y con valor 120 para nmero.

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

    claves forneas tienen por objetivo establecer una conexin con la clave pri-

    maria que referencian. Si un valor de una clave fornea no estuviese presente

    DESPACHOS

    edificio nmero superficie

    Marina 120 10

    Marina 122 15

    Marina 230 20

    Diagonal 120 10

    EMPLEADOS

    DNI nombre apellido edificiodesp nmerodesp

    40.444.255 Juan Garca Marina 120

    33.567.711 Marta Roca Marina 120

    55.898.425 Carlos Buenda Diagonal 120

    77.232.144 Elena Pla NULO NULO

    Observad que todo lo que impone la regla de integridad referencial viene implicado por la misma nocin de clave fornea que se ha explicado en el subapartado 2.5 de esta unidad.

  • FUOC P06/M2109/02148 25 El modelo relacional y el lgebra relacional

    en la clave primaria correspondiente, representara una referencia o una co-

    nexin incorrecta.

    Referencia incorrecta

    Supongamos que en el ejemplo anterior hubiese un empleado con los valores . Ya que no hay un despacho con los valores Valencia y 325 paraedificio y nmero, la tupla de este empleado hace una referencia incorrecta; es decir, indica undespacho para el empleado que, de hecho, no existe.

    A continuacin explicamos la regla de modo ms preciso.

    Un SGBD relacional tendr que hacer cumplir esta regla de integridad. Deber

    efectuar comprobaciones cuando se produzcan las siguientes operaciones:

    a) Inserciones en una relacin que tenga una clave fornea.

    b) Modificaciones que afecten a atributos que pertenecen a la clave fornea

    de una relacin.

    c) Borrados en relaciones referenciadas por otras relaciones.

    d) Modificaciones que afecten a atributos que pertenecen a la clave primaria

    de una relacin referenciada por otra relacin.

    Ejemplo

    Retomamos el ejemplo anterior, donde edificiodesp y nmerodesp de la relacin EMPLEADOSforman una clave fornea que referencia la relacin DESPACHOS:

    Relacin DESPACHOS:

    La regla de integridad referencial establece que si el conjunto de atribu-

    tos CF es una clave fornea de una relacin R que referencia una relacin

    S (no necesariamente diferente de R), que tiene por clave primaria CP, en-

    tonces, para toda tupla t de la extensin de R, los valores para el conjunto

    de atributos CF de t son valores nulos, o bien valores que coinciden con

    los valores para CP de alguna tupla s de S.

    En el caso de que una tupla t de la extensin de R tenga valores para CF

    que coincidan con los valores para CP de una tupla s de S, decimos que

    t es una tupla que referencia s y que s es una tupla que tiene una clave

    primaria referenciada por t.

    DESPACHOS

    edificio nmero superficie

    Marina 120 10

    Marina 122 15

    Marina 230 20

    Diagonal 120 10

  • FUOC P06/M2109/02148 26 El modelo relacional y el lgebra relacional

    Relacin EMPLEADOS:

    Las siguientes operaciones provocaran el incumplimiento de la regla de integridadreferencial:

    Insercin de en EMPLEADOS.

    Modificacin de de EMPLEADOS por.

    Borrado de de DESPACHOS.

    Modificacin de de DESPACHOS por .

    Un SGBD relacional debe procurar que se cumplan las reglas de integridad del

    modelo. Una forma habitual de mantener estas reglas consiste en rechazar

    toda operacin de actualizacin que deje la base de datos en un estado en el

    que alguna regla no se cumpla. En algunos casos, sin embargo, el SGBD tiene

    la posibilidad de aceptar la operacin y efectuar acciones adicionales compen-

    satorias, de modo que el estado que se obtenga satisfaga las reglas de integri-

    dad, a pesar de haber ejecutado la operacin.

    Esta ltima poltica se puede aplicar en las siguientes operaciones de actuali-

    zacin que violaran la regla de integridad:

    a) Borrado de una tupla que tiene una clave primaria referenciada.

    b) Modificacin de los valores de los atributos de la clave primaria de una tu-

    pla que tiene una clave primaria referenciada.

    En los casos anteriores, algunas de las polticas que se podrn aplicar sern las

    siguientes: restriccin, actualizacin en cascada y anulacin. A continua-

    cin explicamos el significado de las tres posibilidades mencionadas.

    4.3.1. Restriccin

    La poltica de restriccin consiste en no aceptar la operacin de actualizacin.

    EMPLEADOS

    DNI nombre apellido edificiodesp nmerodesp

    40.444.255 Juan Garca Marina 120

    33.567.711 Marta Roca Marina 120

    55.898.425 Carlos Buenda Diagonal 120

    77.232.144 Elena Pla NULO NULO

    Ms concretamente, la restriccin en caso de borrado, consiste en no

    permitir borrar una tupla si tiene una clave primaria referenciada por al-

    guna clave fornea.

  • FUOC P06/M2109/02148 27 El modelo relacional y el lgebra relacional

    Ejemplo de aplicacin de la restriccin

    Supongamos que tenemos las siguientes relaciones:

    Relacin CLIENTES:

    Relacin PEDIDOS_PENDIENTES

    * {numcliente} referencia CLIENTES.

    a) Si aplicamos la restriccin en caso de borrado y, por ejemplo, queremos borrar al clientenmero 10, no podremos hacerlo porque tiene pedidos pendientes que lo referencian.

    b) Si aplicamos la restriccin en caso de modificacin y queremos modificar el nmero delcliente 15, no ser posible hacerlo porque tambin tiene pedidos pendientes que lo referen-cian.

    4.3.2. Actualizacin en cascada

    La poltica de actualizacin en cascada consiste en permitir la operacin de ac-

    tualizacin de la tupla, y en efectuar operaciones compensatorias que propa-

    guen en cascada la actualizacin a las tuplas que la referenciaban; se acta de

    este modo para mantener la integridad referencial.

    De forma similar, la restriccin en caso de modificacin consiste en

    no permitir modificar ningn atributo de la clave primaria de una tupla

    si tiene una clave primaria referenciada por alguna clave fornea.

    CLIENTES

    numcliente ...

    10

    15

    18

    PEDIDOS_PENDIENTES

    numped ... numcliente*

    1.234 10

    1.235 10

    1.236 15

    Ms concretamente, la actualizacin en cascada en caso de borrado

    consiste en permitir el borrado de una tupla t que tiene una clave pri-

    maria referenciada, y borrar tambin todas las tuplas que referencian t.

    De forma similar, la actualizacin en cascada en caso de modifica-

    cin consiste en permitir la modificacin de atributos de la clave prima-

    ria de una tupla t que tiene una clave primaria referenciada, y modificar

    del mismo modo todas las tuplas que referencian t.

  • FUOC P06/M2109/02148 28 El modelo relacional y el lgebra relacional

    Ejemplo de aplicacin de la actualizacin en cascada

    Supongamos que tenemos las siguientes relaciones:

    Relacin EDIFICIOS:

    Relacin DESPACHOS:

    * {edificio} referencia EDIFICIOS.

    a) Si aplicamos la actualizacin en cascada en caso de borrado y, por ejemplo, queremos bo-rrar el edificio Diagonal, se borrar tambin el despacho Diagonal 120 que hay en el edificio,y nos quedar:

    Relacin EDIFICIOS:

    Relacin DESPACHOS:

    * {edificio} referencia EDIFICIOS.

    b) Si aplicamos la actualizacin en cascada en caso de modificacin, y queremos modificarel nombre del edificio Marina por Mar, tambin se cambiar Marina por Mar en los despa-chos Marina 120, Marina 122 y Marina 230, y nos quedar:

    Relacin EDIFICIOS:

    Relacin DESPACHOS:

    * {edificio} referencia EDIFICIOS.

    EDIFICIOS

    nombreedificio ...

    Marina

    Diagonal

    DESPACHOS

    edificio* nmero superficie

    Marina 120 10

    Marina 122 15

    Marina 230 20

    Diagonal 120 10

    EDIFICIOS

    nombreedificio ...

    Marina

    DESPACHOS

    edificio* nmero superficie

    Marina 120 10

    Marina 122 15

    Marina 230 20

    EDIFICIOS

    nombreedificio ...

    Mar

    DESPACHOS

    edificio* nmero superficie

    Mar 120 10

    Mar 122 15

    Mar 230 20

  • FUOC P06/M2109/02148 29 El modelo relacional y el lgebra relacional

    4.3.3. Anulacin

    Esta poltica consiste en permitir la operacin de actualizacin de la tupla y en

    efectuar operaciones compensatorias que pongan valores nulos a los atributos

    de la clave fornea de las tuplas que la referencian; esta accin se lleva a cabo

    para mantener la integridad referencial.

    Puesto que generalmente los SGBD relacionales permiten establecer que un

    determinado atributo de una relacin no admite valores nulos, slo se puede

    aplicar la poltica de anulacin si los atributos de la clave fornea s los ad-

    miten.

    Ejemplo de aplicacin de la anulacin

    El mejor modo de entender en qu consiste la anulacin es mediante un ejemplo. Tenemoslas siguientes relaciones:

    Relacin VENDEDORES:

    Relacin CLIENTES:

    * {vendedorasig} referencia VENDEDORES.

    Ms concretamente, la anulacin en caso de borrado consiste en per-

    mitir el borrado de una tupla t que tiene una clave referenciada y, ade-

    ms, modificar todas las tuplas que referencian t, de modo que los

    atributos de la clave fornea correspondiente tomen valores nulos.

    De forma similar, la anulacin en caso de modificacin consiste en

    permitir la modificacin de atributos de la clave primaria de una tupla

    t que tiene una clave referenciada y, adems, modificar todas las tuplas

    que referencian t, de modo que los atributos de la clave fornea corres-

    pondiente tomen valores nulos.

    VENDEDORES

    numvendedor ...

    1

    2

    3

    CLIENTES

    numcliente ... vendedorasig*

    23 1

    35 1

    38 2

    42 2

    50 3

  • FUOC P06/M2109/02148 30 El modelo relacional y el lgebra relacional

    a) Si aplicamos la anulacin en caso de borrado y, por ejemplo, queremos borrar al vendedornmero 1, se modificarn todos los clientes que lo tenan asignado, y pasarn a tener un va-lor nulo en vendedorasig. Nos quedar:

    Relacin VENDEDORES:

    Relacin CLIENTES:

    * {vendedorasig} referencia VENDEDORES.

    b) Si aplicamos la anulacin en caso de modificacin, y ahora queremos cambiar el nmerodel vendedor 2 por 5, se modificarn todos los clientes que lo tenan asignado y pasarn atener un valor nulo en vendedorasig. Nos quedar:

    Relacin VENDEDORES:

    Relacin CLIENTES:

    * {vendedorasig} referencia VENDEDORES.

    4.3.4. Seleccin de la poltica de mantenimiento

    de la integridad referencial

    Hemos visto que en caso de borrado o modificacin de una clave primaria re-

    ferenciada por alguna clave fornea hay varias polticas de mantenimiento de

    la regla de integridad referencial.

    VENDEDORES

    numvendedor ...

    2

    3

    CLIENTES

    numcliente ... vendedorasig*

    23 NULO

    35 NULO

    38 2

    42 2

    50 3

    VENDEDORES

    numvendedor ...

    5

    3

    CLIENTES

    numcliente ... vendedorasig*

    23 NULO

    35 NULO

    38 NULO

    42 NULO

    50 3

    La forma de definir estas polticas de mantenimiento de la integridad con el lenguaje SQL se explica en la unidadEl lenguaje SQL de este curso.

  • FUOC P06/M2109/02148 31 El modelo relacional y el lgebra relacional

    El diseador puede elegir para cada clave fornea qu poltica se aplicar en

    caso de borrado de la clave primaria referenciada, y cul en caso de modifica-

    cin de sta. El diseador deber tener en cuenta el significado de cada clave

    fornea concreta para poder elegir adecuadamente.

    4.4. Regla de integridad de dominio

    La regla de integridad de dominio est relacionada, como su nombre indica,

    con la nocin de dominio. Esta regla establece dos condiciones.

    Esta condicin implica que todos los valores no nulos que contiene la base de

    datos para un determinado atributo deben ser del dominio declarado para di-

    cho atributo.

    Ejemplo

    Si en la relacin EMPLEADOS(DNI, nombre, apellido, edademp) hemos declarado que domi-nio(DNI) es el dominio predefinido de los enteros, entonces no podremos insertar, por ejem-plo, ningn empleado que tenga por DNI el valor Luis, que no es un entero.

    Recordemos que los dominios pueden ser de dos tipos: predefinidos o defini-

    dos por el usuario. Observad que los dominios definidos por el usuario resul-

    tan muy tiles, porque nos permiten determinar de forma ms especfica

    cules sern los valores admitidos por los atributos.

    Ejemplo

    Supongamos ahora que en la relacin EMPLEADOS(DNI, nombre, apellido, edademp) hemosdeclarado que dominio(edademp) es el dominio definido por el usuario edad. Supongamostambin que el dominio edad se ha definido como el conjunto de los enteros que estn entre16 y 65. En este caso, por ejemplo, no ser posible insertar un empleado con un valor de 90para edademp.

    La segunda condicin de la regla de integridad de dominio es ms compleja,

    especialmente en el caso de dominios definidos por el usuario; los SGBD ac-

    tuales no la soportan para estos ltimos dominios. Por estos motivos slo la

    presentaremos superficialmente.

    La primera condicin 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).

    Esta segunda condicin sirve para establecer que los operadores que

    pueden aplicarse sobre los valores dependen de los dominios de estos

    valores; es decir, un operador determinado slo se puede aplicar sobre

    valores que tengan dominios que le sean adecuados.

    Aplicacin de polticas diferentes

    Puede ocurrir que, para una determinada clave fornea, la poltica adecuada en casode borrado sea diferente de la adecuada en caso de modifica-cin. Por ejemplo, puede ser necesario aplicar la restriccin en caso de borrado y la actua-lizacin en cascada en caso de modificacin.

    Recordad que los conceptosde dominio predefinido y dominio definido por el usuario se han explicadoen el subapartado 2.2 de esta unidad didctica.

    Lectura complementaria

    Para estudiar con ms detalle la segunda condicin de la regla de integridad de dominio, podis consultar la siguiente obra:C.J. Date (2001). Introduccin a los sistemasde bases de datos (7 ed.,cap. 19). Prentice Hall.

  • FUOC P06/M2109/02148 32 El modelo relacional y el lgebra relacional

    Ejemplo

    Analizaremos esta segunda condicin de la regla de integridad de dominio con un ejemploconcreto. Si en la relacin EMPLEADOS(DNI, nombre, apellido, edademp) se ha declarado quedominio(DNI) es el dominio predefinido de los enteros, entonces no se permitir consultartodos aquellos empleados cuyo DNI sea igual a Elena (DNI = Elena). El motivo es que notiene sentido que el operador de comparacin = se aplique entre un DNI que tiene por domi-nio los enteros, y el valor Elena, que es una serie de caracteres.

    De este modo, el hecho de que los operadores que se pueden aplicar sobre los

    valores dependan del dominio de estos valores permite detectar errores que se

    podran cometer cuando se consulta o se actualiza la base de datos. Los domi-

    nios definidos por el usuario son muy tiles, porque nos permitirn determi-

    nar de forma ms especfica cules sern los operadores que se podrn aplicar

    sobre los valores.

    Ejemplo

    Veamos otro ejemplo con dominios definidos por el usuario. Supongamos que en la conoci-da relacin EMPLEADOS(DNI, nombre, apellido, edademp) se ha declarado que dominio(DNI)es el dominio definido por el usuario nmerosDNI y que dominio(edademp) es el dominio de-finido por el usuario edad. Supongamos que nmerosDNI corresponde a los enteros positivosy que edad corresponde a los enteros que estn entre 16 y 65. En este caso, ser incorrecto,por ejemplo, consultar los empleados que tienen el valor de DNI igual al valor de edademp.El motivo es que, aunque tanto los valores de DNI como los de edademp sean enteros, sus do-minios son diferentes; por ello, segn el significado que el usuario les da, no tiene sentidocompararlos.

    Sin embargo, los actuales SGBD relacionales no dan apoyo a la segunda con-

    dicin de la regla de integridad de dominio para dominios definidos por el

    usuario. Si se quisiera hacer, sera necesario que el diseador tuviese alguna

    forma de especificar, para cada operador que se desease utilizar, para qu com-

    binaciones de dominios definidos por el usuario tiene sentido que se aplique.

    El lenguaje estndar SQL no incluye actualmente esta posibilidad.

  • FUOC P06/M2109/02148 33 El modelo relacional y el lgebra relacional

    5. El lgebra relacional

    Como ya hemos comentado en el apartado dedicado a las operaciones del mo-

    delo relacional, el lgebra relacional se inspira en la teora de conjuntos para

    especificar consultas en una base de datos relacional.

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

    ms pasos que sirven para ir construyendo, mediante operaciones de lgebra

    relacional, una nueva relacin que contenga los datos que responden a la con-

    sulta a partir de las relaciones almacenadas. Los lenguajes basados en el lge-

    bra relacional son procedimentales, dado que los pasos que forman la consulta

    describen un procedimiento.

    La visin que presentaremos es la de un lenguaje terico y, por lo tanto, incluire-

    mos slo sus operaciones fundamentales, y no las construcciones que se podran

    aadir a un lenguaje comercial para facilitar cuestiones como por ejemplo el or-

    den de presentacin del resultado, el clculo de datos agregados, etc.

    Las operaciones del lgebra relacional han sido clasificadas segn distintos cri-

    terios; de todos ellos indicamos los tres siguientes:

    1) Segn se pueden expresar o no en trminos de otras operaciones.

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

    demos definir el resto. Estas operaciones son la unin, la diferencia, el produc-

    to cartesiano, la seleccin y la proyeccin.

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

    nal que no son estrictamente necesarias, porque se pueden expresar en trmi-

    nos de las primitivas; sin embargo, las operaciones no primitivas permiten

    formular algunas consultas de forma ms cmoda. Existen distintas versiones

    del lgebra relacional, segn las operaciones no primitivas que se incluyen. No-

    sotros estudiaremos las operaciones no primitivas que se utilizan con mayor fre-

    cuencia: la interseccin y la combinacin.

    2) Segn el nmero de relaciones que tienen como operandos:

    a) Operaciones binarias: son las que tienen dos relaciones como operandos.

    Son binarias todas las operaciones, excepto la seleccin y la proyeccin.

    Una caracterstica 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.

    Consultad el apartado 3 de esta unidad didctica.

    Implicaciones del cierre relacional

    El hecho de que el resultado de una operacin del lgebra relacional sea una nuevarelacin tiene implicaciones importantes:1. El resultado de una opera-cin puede actuar comooperando de otra operacin.2. El resultado de una operacin cumplir todas las caractersticas que ya conocemos de las relaciones: no-ordenacin de las tuplas, ausencia de tuplas repetidas, etc.

  • FUOC P06/M2109/02148 34 El modelo relacional y el lgebra relacional

    b) Operaciones unarias: son las que tienen una sola relacin como operan-

    do. La seleccin y la proyeccin son unarias.

    3) Segn se parecen o no a las operaciones de la teora de conjuntos:

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

    conjuntos. Se trata de la unin, la interseccin, la diferencia y el producto

    cartesiano.

    b) Operaciones especficamente relacionales: son el resto de las operaciones;

    es decir, la seleccin, la proyeccin y la combinacin.

    Como ya hemos comentado anteriormente, las operaciones del lgebra relacional

    obtienen como resultado una nueva relacin. Es decir que si hacemos una opera-

    cin del lgebra como por ejemplo EMPLEADOS_ADM EMPLEADOS_PROD

    para obtener la unin de las relaciones EMPLEADOS_ADM y EMPLEADOS_PROD,

    el resultado de la operacin es una nueva relacin que tiene la unin de las tuplas

    de las relaciones de partida.

    Esta nueva relacin debe tener un nombre. En principio, consideramos que su

    nombre es la misma expresin del lgebra relacional que la obtiene; es decir,

    la misma expresin EMPLEADOS_ADM EMPLEADOS_PROD. Puesto que este

    nombre es largo, en ocasiones puede ser interesante cambiarlo por uno ms

    simple. Esto nos facilitar las referencias a la nueva relacin, y ser especial-

    mente til en los casos en los que queramos utilizarla como operando de otra

    operacin. Usaremos la operacin auxiliar redenominar con este objetivo.

    En el ejemplo, para dar el nombre EMPLEADOS a la relacin resultante de la

    operacin EMPLEADOS_ADM EMPLEADOS_PROD, haramos:

    EMPLEADOS := EMPLEADOS_ADM EMPLEADOS_PROD.

    Cada operacin del lgebra relacional da unos nombres por defecto a los atri-

    butos del esquema de la relacin resultante, tal y como veremos ms adelante.

    En algunos casos, puede ser necesario cambiar estos nombres por defecto por

    otros nombres. Por este motivo, tambin permitiremos cambiar el nombre de

    la relacin y de sus atributos mediante la operacin redenominar.

    La operacin redenominar, que denotaremos con el smbolo :=, permi-

    te asignar un nombre R a la relacin que resulta de una operacin del

    lgebra relacional; lo hace de la forma siguiente:

    R := E,

    siendo E la expresin de una operacin del lgebra relacional.

    Las operaciones del lgebra relacional clasificadas segn sean conjuntistas o especficamente relacionales se estudian en los subapartados 5.1 y 5.2 de esta unidad.

  • FUOC P06/M2109/02148 35 El modelo relacional y el lgebra relacional

    A continuacin presentaremos un ejemplo que utilizaremos para ilustrar las

    operaciones del lgebra relacional. Despus veremos con detalle las opera-

    ciones.

    Supongamos que tenemos una base de datos relacional con las cuatro rela-

    ciones siguientes:

    1) La relacin EDIFICIOS_EMP, que contiene datos de distintos edificios de los

    que una empresa dispone para desarrollar sus actividades.

    2) La relacin DESPACHOS, que contiene datos de cada uno de los despachos

    que hay en los edificios anteriores.

    3) La relacin EMPLEADOS_ADM, que contiene los datos de los empleados de

    la empresa que llevan a cabo tareas administrativas.

    4) La relacin EMPLEADOS_PROD, que almacena los datos de los empleados

    de la empresa que se ocupan de tareas de produccin.

    A continuacin describimos los esquemas de las relaciones anteriores y sus ex-

    tensiones en un momento determinado:

    Esquema y extensin de EDIFICIOS_EMP:

    Esquema y extensin de DESPACHOS:

    Utilizaremos tambin la operacin redenominar para cambiar el esquema

    de una relacin. Si una relacin tiene el esquema S(B1, B2, ..., Bn) y que-

    remos cambiarlo por R(A1, A2, ..., An), lo haremos de la siguiente forma:

    R(A1, A2, ..., An) := S(B1, B2, ..., Bn).

    EDIFICIOS_EMP

    edificio supmediadesp

    Marina 15

    Diagonal 10

    DESPACHOS

    edificio nmero superficie

    Marina 120 10

    Marina 230 20

    Diagonal 120 10

    Diagonal 440 10

  • FUOC P06/M2109/02148 36 El modelo relacional y el lgebra relacional

    Esquema y extensin de EMPLEADOS_ADM:

    Esquema y extensin de EMPLEADOS_PROD:

    Se considera que los valores nulos de los atributos edificiodesp y nmerodesp de

    las relaciones EMPLEADOS_PROD y EMPLEADOS_ADM indican que el emplea-

    do correspondiente no tiene despacho.

    5.1. Operaciones conjuntistas

    Las operaciones conjuntistas del lgebra relacional son la unin, la interseccin,

    la diferencia y el producto cartesiano.

    5.1.1. Unin

    La unin de las relaciones EMPLEADOS_ADM y EMPLEADOS_PROD proporciona una nuevarelacin que contiene tanto a los empleados de administracin como los empleados de pro-duccin; se indicara as: EMPLEADOS_ADM EMPLEADOS_PROD.

    Slo tiene sentido aplicar la unin a relaciones que tengan tuplas similares.

    Por ejemplo, se puede hacer la unin de las relaciones EMPLEADOS_ADM y EMPLEADOS_PRODporque sus tuplas se parecen. En cambio, no se podr hacer la unin de las relacionesEMPLEADOS_ADM y DESPACHOS porque, como habis podido observar en las tablas,las tuplas respectivas son de tipo diferente.

    EMPLEADOS_ADM

    DNI nombre apellido edificiodesp nmerodesp

    40.444.255 Juan Garca Marina 120

    33.567.711 Marta Roca Marina 120

    EMPLEADOS_PROD

    DNI nombreemp apellidoemp edificiodesp nmerodesp

    33.567.711 Marta Roca Marina 120

    55.898.425 Carlos Buenda Diagonal 120

    77.232.144 Elena Pla Marina 230

    21.335.245 Jorge Soler NULO NULO

    88.999.210 Pedro Gonzlez NULO NULO

    La unin es una operacin que, a partir de dos relaciones, obtiene una

    nueva relacin formada por todas las tuplas que estn en alguna de las

    relaciones de partida.

    La unin es una operacin binaria, y la unin de dos relaciones T y S se

    indica T S.

  • FUOC P06/M2109/02148 37 El modelo relacional y el lgebra relacional

    Ms concretamente, para poder aplicar la unin a dos relaciones, es preciso

    que las dos relaciones sean compatibles. Decimos que dos relaciones T y S son

    relaciones compatibles si:

    Tienen el mismo grado.

    Se puede establecer una biyeccin entre los atributos de T y los atributos de

    S que hace corresponder a cada atributo Ai de T un atributo Aj de S, de

    modo que se cumple que dominio(Ai) = dominio(Aj).

    Ejemplo de relaciones compatibles

    Las relaciones EMPLEADOS_ADM y EMPLEADOS_PROD tienen grado 5. Podemos establecerla siguiente biyeccin entre sus atributos:

    A DNI de EMPLEADOS_ADM le corresponde DNIemp de EMPLEADOS_PROD.

    A nombre de EMPLEADOS_ADM le corresponde nombreemp de EMPLEADOS_PROD.

    A apellido de EMPLEADOS_ADM le corresponde apellidoemp de EMPLEADOS_PROD.

    A edificiodesp de EMPLEADOS_ADM le corresponde edificiodesp de EMPLEADOS_PROD.

    A nmerodesp de EMPLEADOS_ADM le corresponde edificiodesp de EMPLEADOS_PROD.

    Adems, supondremos que los dominios de sus atributos se han declarado de forma que secumple que el dominio de cada atributo de EMPLEADOS_ADM sea el mismo que el dominiode su atributo correspondiente en EMPLEADOS_PROD.

    Por todos estos factores, podemos llegar a la conclusin de que EMPLEADOS_ADM yEMPLEADOS_PROD son relaciones compatibles.

    A continuacin, pasaremos a definir los atributos y la extensin de la relacin

    resultante de una unin.

    Ejemplo de unin

    Si queremos obtener una relacin R que tenga a todos los empleados de la empresadel ejemplo anterior, llevaremos a cabo la unin de las relaciones EMPLEADOS_ADMy EMPLEADOS_PROD de la forma siguiente:

    R := EMPLEADOS_ADM EMPLEADOS_PROD.

    Entonces la relacin R resultante ser la reflejada en la tabla siguiente:

    Los atributos del esquema de la relacin resultante de T S coinci-

    den con los atributos del esquema de la relacin T.

    La extensin de la relacin resultante de T S es el conjunto de tu-

    plas que pertenecen a la extensin de T, a la extensin de S o a la exten-

    sin de ambas relaciones.

    R

    DNI nombre apellido edificiodesp nmerodesp

    40.444.255 Juan Garca Marina 120

    33.567.711 Marta Roca Marina 120

    55.898.425 Carlos Buenda Diagonal 120

    No-repeticin de tuplas

    Notad que en caso de que una misma tupla est en las dos relaciones que se unen, el resultado de la unin no la tendr repetida. El resultado de la unin es una nueva rela-cin por lo que no puede tener repeticiones de tuplas.

  • FUOC P06/M2109/02148 38 El modelo relacional y el lgebra relacional

    El hecho de que los atributos de la relacin resultante coincidan con los atri-

    butos de la relacin que figura en primer lugar en la unin es una convencin;

    tericamente, tambin habra sido posible convenir que coincidiesen con los

    de la relacin que figura en segundo lugar.

    5.1.2. Interseccin

    La interseccin de las relaciones EMPLEADOS_ADM y EMPLEADOS_PROD obtiene una nuevarelacin que incluye a los empleados que son al mismo tiempo de administracin y de pro-duccin: se indicara como EMPLEADOS_ADM EMPLEADOS_PROD.

    La interseccin, como la unin, slo se puede aplicar a relaciones que tengan

    tuplas similares. Para poder hacer la interseccin de dos relaciones, es preciso,

    pues, que las relaciones sean compatibles.

    A continuacin definiremos los atributos y la extensin de la relacin resul-

    tante de una interseccin.

    Ejemplo de interseccin

    Si queremos obtener una relacin R que incluya a todos los empleados de la empresa delejemplo que trabajan tanto en administracin como en produccin, realizaremos la inter-seccin de las relaciones EMPLEADOS_ADM y EMPLEADOS_PROD de la forma siguiente:

    R : = EMPLEADOS_ADM EMPLEADOS_PROD.

    R

    DNI nombre apellido edificiodesp nmerodesp

    77.232.144 Elena Pla Marina 230

    21.335.245 Jorge Soler NULO NULO

    88.999.210 Pedro Gonzlez NULO NULO

    La interseccin es una operacin que, a partir de dos relaciones, obtiene

    una nueva relacin formada por las tuplas que pertenecen a las dos re-

    laciones de partida.

    La interseccin es una operacin binaria; la interseccin de dos relacio-

    nes T y S se indica T S.

    Los atributos del esquema de la relacin resultante de T S coinci-

    den con los atributos del esquema de la relacin T.

    La extensin de la relacin resultante de T S es el conjunto de tu-

    plas que pertenecen a la extensin de ambas relaciones.

  • FUOC P06/M2109/02148 39 El modelo relacional y el lgebra relacional

    Entonces, la relacin R resultante ser:

    Observad que se ha tomado la convencin de que los atributos de la relacin

    que resulta coincidan con los atributos de la relacin que figura en primer lugar.

    5.1.3. Diferencia

    La diferencia EMPLEADOS_ADM menos EMPLEADOS_PROD da como resultado una nueva re-lacin que contiene a los empleados de administracin que no son empleados de produccin,y se indicara de este modo: EMPLEADOS_ADM EMPLEADOS_PROD.

    La diferencia, como ocurra en la unin y la interseccin, slo tiene sentido si

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

    rencia de dos relaciones es necesario que las relaciones sean compatibles.

    A continuacin definimos los atributos y la extensin de la relacin resultante

    de una diferencia.

    Ejemplo de diferencia

    Si queremos obtener una relacin R con todos los empleados de la empresa del ejemplo quetrabajan en administracin, pero no en produccin, haremos la diferencia de las relacionesEMPLEADOS_ADM y EMPLEADOS_PROD de la forma siguiente:

    R := EMPLEADOS_ADM EMPLEADOS_PROD

    Entonces la relacin R resultante ser:

    Se ha tomado la convencin de que los atributos de la relacin resultante co-

    incidan con los atributos de la relacin que figura en primer lugar.

    R

    DNI nombre apellido edificiodesp nmerodesp

    33.567.711 Marta Roca Marina 120

    La diferencia es una operacin que, a partir de dos relaciones, obtiene una

    nueva relacin formada por todas las tuplas que estn en la primera rela-

    cin y, en cambio, no estn en la segunda. La diferencia es una operacin

    binaria, y la diferencia entre las relaciones T y S se indica como T S.

    Los atributos del esquema de la relacin resultante de T S coinci-

    den con los atributos del esquema de la relacin T.

    La extensin de la relacin resultante de T S es el conjunto de tuplas

    que pertenecen a la extensin de T, pero no a la de S.

    R

    DNI nombre apellido edificiodesp nmerodesp

    40.444.255 Juan Garca Marina 120

  • FUOC P06/M2109/02148 40 El modelo relacional y el lgebra relacional

    5.1.4. Producto cartesiano

    Si calculamos el producto cartesiano de EDIFICIOS_EMP y DESPACHOS, obtendremos unanueva relacin que contiene todas las concatenaciones posibles de tuplas de EDIFICIOS_EMPcon tuplas de DESPACHOS.

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

    nombre de atributo comn, slo hace falta redenominar previamente los atri-

    butos adecuados de una de las dos relaciones.

    A continuacin definimos los atributos y la extensin de la relacin resultante

    de un producto cartesiano.

    Ejemplo de producto cartesiano

    El producto cartesiano de las relaciones DESPACHOS y EDIFICIOS_EMP del ejemplo se puedehacer como se indica (es necesario redenominar atributos previamente):

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

    R := EDIFICIOS DESPACHOS.

    Entonces, la relacin R resultante ser:

    El producto cartesiano es una operacin que, a partir de dos relaciones,

    obtiene una nueva relacin formada por todas las tuplas que resultan

    de concatenar tuplas de la primera relacin con tuplas de la segunda.

    El producto cartesiano es una operacin binaria. Siendo T y S dos rela-

    ciones que cumplen que sus esquemas no tienen ningn nombre de

    atributo comn, el producto cartesiano de T y S se indica como T S.

    Los atributos del esquema de la relacin resultante de T S son todos

    los atributos de T y todos los atributos de S*.

    La extensin de la relacin resultante de T S es el conjunto de todas

    las tuplas de la forma para las que se cum-

    ple que pertenece a la extensin de T y que pertenece a la extensin de S.

    R

    nombreedificio supmediadesp edificio nmero superficie

    Marina 15 Marina 120 10

    Marina 15 Marina 230 20

    Marina 15 Diagonal 120 10

    Marina 15 Diagonal 440 10

    Diagonal 10 Marina 120 10

    * Recordad que T y S no tienen ningn nombre de atributo comn.

  • FUOC P06/M2109/02148 41 El modelo relacional y el lgebra relacional

    Conviene sealar que el producto cartesiano es una operacin que raramente

    se utiliza de forma explcita, porque el resultado que da no suele ser til para

    resolver las consultas habituales.

    A pesar de ello, el producto cartesiano se incluye en el lgebra relacional por-

    que es una operacin primitiva; a partir de la cual se define otra operacin del

    lgebra, la combinacin, que se utiliza con mucha frecuencia.

    5.2. Operaciones especficamente relacionales

    Las operaciones especficamente relacionales son la seleccin, la proyeccin

    y la combinacin.

    5.2.1. Seleccin

    Para obtener una relacin que tenga todos los despachos del edificio Marina que tienen msde 12 metros cuadrados, podemos aplicar una seleccin a la relacin DESPACHOS con unacondicin de seleccin que sea edificio = Marina y superficie > 12; se indicara DESPA-CHOS(edificio = Marina y superficie > 12).

    En general, la condicin de seleccin C est formada por una o ms clusulas

    de la forma:

    Ai v,

    o bien:

    Ai Aj,

    R

    nombreedificio supmediadesp edificio nmero superficie

    Diagonal 10 Marina 230 20

    Diagonal 10 Diagonal 120 10

    Diagonal 10 Diagonal 440 10

    Podemos ver la seleccin como una operacin que sirve para elegir al-

    gunas tuplas de una relacin y eliminar el resto. Ms concretamente, la

    seleccin es una operacin que, a partir de una relacin, obtiene una

    nueva relacin formada por todas las tuplas de la relacin de partida

    que cumplen una condicin de seleccin especificada.

    La seleccin es una operacin unaria. Siendo C una condicin de se-

    leccin, la seleccin de T con la condicin C se indica como T(C).

  • FUOC P06/M2109/02148 42 El modelo relacional y el lgebra relacional

    donde Ai y Aj son atributos de la relacin T, es un operador de comparacin*y v es un valor. Adems, se cumple que:

    En las clusulas de la forma Ai v, v es un valor del dominio de Ai.

    En las clusulas de la forma Ai, Aj, Ai y Aj tienen el mismo dominio.

    Las clusulas que forman una condicin de seleccin se conectan con los si-

    guientes operadores booleanos: y () y o ().

    A continuacin definimos los atributos y la extensin de la relacin resultante

    de una seleccin.

    Ejemplo de seleccin

    Si queremos obtener una relacin R con los despachos de la base de datos del ejemplo queestn en el edificio Marina y que tienen una superficie de ms de 12 metros cuadrados, ha-remos la siguiente seleccin:

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

    La relacin R resultante ser:

    5.2.2. Proyeccin

    Los atributos del esquema de la relacin resultante de T(C) coinciden

    con los atributos del esquema de la relacin T.

    La extensin de la relacin resultante de T(C) es el conjunto de tuplas

    que pertenecen a la extensin de T y que satisfacen la condicin de se-

    leccin C. Una tupla t satisface una condicin de seleccin C si, despus

    de sustituir cada atributo que hay en C por su valor en t, la condicin C

    se evala en el valor cierto.

    R

    edificio nmero superficie

    Marina 230 20

    Podemos considerar la proyeccin como una operacin que sirve para

    elegir algunos atributos de una relacin y eliminar el resto. Ms concre-

    tamente, la proyeccin es una operacin que, a partir de una relacin,

    obtiene una nueva relacin formada por todas las (sub)tuplas de la re-

    lacin de partida que resultan de eliminar unos atributos especificados.

    * Es decir, =, , , o .

  • FUOC P06/M2109/02148 43 El modelo relacional y el lgebra relacional

    Para obtener una relacin que tenga slo los atributos nombre y apellido de los empleados deadministracin, podemos hacer una proyeccin en la relacin EMPLEADOS_ADM sobre estosdos atributos. Se indicara de la forma siguiente: EMPLEADOS_ADM [nombre, apellido].

    A continuacin definiremos los atributos y la extensin de la relacin resul-

    tante de una proyeccin.

    Ejemplo de proyeccin

    Si queremos obtener una relacin R con el nombre y el apellido de todos los empleados deadministracin de la base de datos del ejemplo, haremos la siguiente proyeccin:

    R := EMPLEADOS_ADM[nombre, apellido].

    Entonces, la relacin R resultante ser:

    5.2.3. Combinacin

    La proyeccin es una operacin unaria. Siendo {Ai, Aj, ..., Ak} un subcon-

    junto de los atributos del esquema de la relacin T, la proyeccin de T

    sobre {Ai, Aj, ..., Ak} se indica como T[Ai, Aj, ..., Ak].

    Los atributos del esquema de la relacin resultante de T[Ai, Aj, ..., Ak]

    son los atributos {Ai, Aj, ..., Ak}.

    La extensin de la relacin resultante de T[Ai, Aj, ..., Ak] es el conjun-

    to de todas las tuplas de la forma , donde se cumple

    que t es una tupla de la extensin de T y donde t.Ap denota el valor para

    el atributo Ap de la tupla t.

    R

    nombre apellido

    Juan Garca

    Marta Roca

    La combinacin es una operacin que, a partir de dos relaciones, obtie-

    ne una nueva relacin formada por todas las tuplas que resultan de con-

    cadenar tuplas de la primera relacin con tuplas de la segunda, y que

    cumplen una condicin de combinacin especificada.

    La combinacin es una operacin binaria. Siendo T y S dos relaciones

    cuyos esquemas no tienen ningn nombre de atributo comn, y siendo

    B una condicin de combinacin, la combinacin de T y S segn la con-

    dicin B se indica T[B]S.

    Eliminacin de las tuplas repetidas

    Notad que la proyeccin elimina implcitamente todas las tuplas repetidas. El resulta-do de una proyeccin es una relacin vlida y no puede tener repeticiones de tuplas.

  • FUOC P06/M2109/02148 44 El modelo relacional y el lgebra relacional

    Para conseguir una relacin que