Licenciatura en Documentacin: Bases de datos documentais Curso 2011 2012
Autor: Juan Ramn Lpez Rodrguez 1
El modelo relacional
El modelo relacional constituye una alternativa para la organizacin y representacin de la informacin que se pretende almacenar en una base de datos. Se trata de un modelo terico matemtico que, adems de proporcionarnos los elementos bsicos de modelado (las relaciones), incluye un conjunto de operadores (definidos en forma de un lgebra relacional) para su manipulacin, sin ambigedad posible.
El carcter formal del modelo relacional hace relativamente sencilla su representacin y gestin por medio de herramientas informticas. No es casual, pues, que haya sido elegido como referencia para la construccin de la gran mayora de los Sistemas de Gestin de Bases de Datos comerciales disponibles en el mercado; ni tampoco que sea tambin habitualmente seleccionado como modelo de referencia para la elaboracin del esquema lgico de una base de datos, como tercer paso de la habitual metodologa de diseo de BDs (despus del anlisis de requerimientos y la elaboracin del esquema conceptual).
En el modelo relacional se basa en el concepto matemtico de relacin. En este modelo, la informacin se representa en forma de tablas o relaciones, donde cada fila de la tabla se interpreta como una relacin ordenada de valores (un conjunto de valores relacionados entre s). El siguiente ejemplo presenta una relacin que representa al conjunto de los departamentos de una determinada empresa, y que recoge informacin sobre los mismos.
Num Nombre Localidad D-01 Ventas A Corua D-02 I+D Ferrol Figura 1: relacin Departamentos
Definiciones
Formalmente, una relacin se define como un conjunto de n-tuplas; donde una n-tupla se define a su vez como un conjunto ordenado de valores atmicos (esto es, no divisibles ni descomponibles en valores mas pequeos.
En el ejemplo 1, la relacin mostrada incluye dos 3-tuplas: (D-01, Ventas, A Corua) y (D-02, I+D, Ferrol). Cada tupla incluye informacin sobre los departamentos de una determinada empresa con sede en Galicia: el identificador del departamento dentro de la empresa, su nombre, y la localidad donde tiene su sede. En cada tupla, los tres valores estn relacionados por el hecho de describir todos ellos al mismo departamento.
Cada relacin, vista como una tabla, consta de un conjunto de columnas; cada una de esas columnas recibe el nombre de atributo. A cada atributo de una relacin le corresponde un nombre, que debe ser nico dentro de la relacin, y un dominio: el conjunto de valores vlidos para un atributo; o, dicho de otra manera, el conjunto de valores que cada tupla de la relacin puede tomar para ese atributo.
En el caso de la relacin de nuestro ejemplo, los atributos de la misma seran Num, Nombre y Localidad. Cada uno de ellos tendr un dominio asociado: el conjunto de los Licenciatura en Documentacin: Bases de datos documentais Curso 2011 2012 Autor: Juan Ramn Lpez Rodrguez 2
identificadores vlidos de departamento (una cadena alfanumrica con formato D-xx), el conjunto de todos los nombres de departamento vlidos (cadenas de texto de cualquier longitud), y el conjunto de todas los nombres de localidades gallegas (dem), respectivamente.
El esquema de una relacin es una descripcin de su estructura interna (es decir, los atributos que la componen), en la forma siguiente:
R (A 1 , ... , A n )
siendo R el nombre de la relacin, y A 1 , ... , A n los nombres de sus n atributos. As, el esquema de la relacin Departamentos sera:
Departamentos (Num, Nombre, Localidad)
Podemos afirmar que el esquema de una relacin constituye su intensin, es decir, la parte invariante de la relacin. En nuestro ejemplo, el tipo de informacin que reflejaremos sobre los departamentos ser siempre la misma: el cdigo, nombre y localidad de cada uno.
Sin embargo, la informacin recogida en una relacin est expuesta constantemente al cambio: nuestra empresa puede sufrir reestructuraciones, apareciendo o desapareciendo departamentos, o viendo estos modificada su sede. Se dice que el conjunto de las tuplas que conforman una relacin constituye su extensin: la parte variable de la relacin. De acuerdo con la notacin expresada antes, podemos representar a cada tupla de una relacin R por medio del siguiente formato:
(v 1 , ... , v n )
siendo v 1 el valor de la tupla para el atributo A 1 , y v n el valor de la tupla para el atributo A n . Por ejemplo (D-01, Ventas, A Corua) sera la tupla correspondiente al departamento de Ventas en la relacin Departamentos.
A partir del esquema de la relacin es posible determinar su grado 1 : el nmero de atributos de los que consta. As, la relacin de nuestro ejemplo sera de grado 3.
Finalmente, es preciso revisar en detalle la definicin del concepto de relacin. Dicha definicin especifica que una relacin consiste en un conjunto de tuplas. Eso implica que no se puede aplicar un orden de ningn tipo a las tuplas de una relacin (no estn ordenadas). Eso implica que las dos relaciones que mostramos a continuacin son en realidad la misma relacin, presentada de dos maneras diferentes:
Figura 2: La misma relacin presentada con sus tuplas en diferente orden
1 Llegados a este punto, es necesario destacar la importancia de distinguir los conceptos de relacin, atributo y grado del modelo relacional y los de tipo de relacin, atributo y grado del modelo entidad- relacin. Pese a la desafortunada coincidencia de terminologa, se trata de conceptos diferentes con diferente significado. Num Nombre Localidad Num Nombre Localidad D-01 Ventas A Corua D-02 I+D Ferrol D-02 I+D Ferrol D-01 Ventas A Corua Licenciatura en Documentacin: Bases de datos documentais Curso 2011 2012 Autor: Juan Ramn Lpez Rodrguez 3
Nulos Hasta este punto, hemos presentado el elemento fundamental sobre el que se basa el modelo relacional: la relacin. Hemos visto que las relaciones estn constituidas por tuplas, y que cada tupla contiene informacin sobre un determinado objeto del mundo real, proporcionando valores a un conjunto de atributos establecidos en la definicin de la relacin. Desgraciadamente sucede que, en ocasiones, es complicado conocer los valores de esos atributos para un determinado objeto (para una determinada tupla). Por ejemplo, en el caso de la relacin Departamentos que venimos utilizando como referencia, puede suceder que un departamento de reciente creacin no tenga todava asociada una sede definitiva (ver ejemplo 3).
Num Nombre Localidad D-01 Ventas A Corua D-02 I+D Ferrol D-03 Contabilidad ? Figura 3: relacin Departamentos En todos los casos en los que el valor de un atributo para una determinada tupla no se conozca no exista el valor / el atributo no sea aplicable el modelo relacional permite el uso de un valor especial, no perteneciente a ningn dominio particular: el valor nulo
Num Nombre Localidad D-01 Ventas A Corua D-02 I+D Ferrol D-03 Contabilidad Nulo Figura 4: relacin Departamentos, con el uso de valores nulos Es necesario indicar que el uso de los valores nulos debe ser evitado en lo posible, ya que (por motivos cuya explicacin va ms all del objetivo de estas notas) suele dar lugar a problemas a la hora de manipular o acceder a la informacin. Restricciones de integridad Cada tupla de una relacin debe proporcionar valores a sus atributos. De cualquier manera? No. Para garantizar la consistencia y la facilidad de manipulacin de la informacin representada, existen una serie de reglas que deben ser cumplidas y que son un elemento constituyente del modelo relacional. A esas reglas de consistencia se las conoce, en la terminologa del modelo, como restricciones de integridad. Podemos distinguir varios tipos de restricciones: Restriccin de DOMINIO: Los dominios de los atributos de una relacin deben ser atmicos Esta restriccin exige que los valores de cualquier tupla de una relacin R correspondientes a los atributos A 1 , ..., A n de R deben ser valores atmicos. Esto es, esos valores no pueden ser descomponibles en valores ms pequeos o simples. Esta condicin pretende garantizar que todas las relaciones presenten un formato regular, que pueda ser fcilmente manipulable por Licenciatura en Documentacin: Bases de datos documentais Curso 2011 2012 Autor: Juan Ramn Lpez Rodrguez 4
medio de un sencillo procedimiento o algoritmo, implementado en la forma de un programa informtico. En el caso de nuestro ejemplo, estos dos casos no seran vlidos:
Num Nombre Localidad D-01 Ventas A Corua Ferrol D-02 I+D Ferrol Figura 5: relacin no vlida por uso de valor mltiple En la figura 5 se muestra un ejemplo de una relacin en la que una de sus tuplas, la correspondiente al departamento de Ventas, presenta un doble valor para el atributo Localidad. De esa forma se pretende representar el hecho de que Ventas tiene dos sedes: A Corua y Ferrol. Este formato viola la restriccin de dominio, ya que rompe la regularidad de la tabla (de la relacin). El nico formato de representacin posible de esa informacin sera el siguiente: Num Nombre Localidad D-01 Ventas A Corua D-02 I+D Ferrol D-01 Ventas Ferrol Figura 6: relacin corregida para ser correcta En la figura 6 se muestra otro ejemplo en el que ahora el atributo Localidad se usa para almacenar conjuntamente la sede de cada departamento y el correspondiente cdigo postal, aun cuando se espera que posteriormente estos dos elementos de informacin vayan a necesitar ser accedidos por separado. Se trata por lo tanto de un atributo compuesto que viola la restriccin de dominio, ya que rompe el modo de acceso regular al valor de un atributo: no se trata ya de recuperar simplemente al valor (la sede correspondiente a cada departamento), sino que ahora, en algunos casos, es necesario separar ese valor en sus elementos constituyentes (la localidad y el cdigo postal).
Num Nombre Localidad D-01 Ventas A Corua D-02 I+D 15528 Ferrol Figura 7: relacin no vlida por uso de valor compuesto Restriccin de CLAVE: En una relacin no puede haber ninguna tupla repetida Ningn conjunto admite, por definicin, la existencia de elementos repetidos en su contenido. Tratndose de un conjunto de tuplas, las relaciones requieren la misma exigencia. Que la extensin de una relacin no incluya tuplas repetidas, implica que todas las tuplas que contiene puedan ser diferenciadas entre s por el valor de al menos un atributo. Eso nos lleva al concepto de superclave de una relacin: cualquier subconjunto (propio o no) de atributos de la relacin, que nos permita Licenciatura en Documentacin: Bases de datos documentais Curso 2011 2012 Autor: Juan Ramn Lpez Rodrguez 5
diferenciar a cualesquiera dos tuplas que formen parte de su extensin a partir de los valores de las tuplas para esos atributos. Toda relacin cuenta con una o ms superclaves. En el peor de los casos, tendremos una superclave nica: aquella formada por el conjunto de todos los atributos de la relacin. En el caso de nuestro ejemplo, seran superclaves los siguientes conjuntos de atributos: (Num, Nombre, Localidad) (Num, Localidad) (Nombre, Localidad) No existen (ni pueden existir) dos tuplas en la relacin Departamentos para los que coincidan simultneamente los valores de nmero, nombre y localidad; ni siquiera los valores de nmero y localidad; o los de nombre y localidad. Sin embargo, hemos visto que dos tuplas de la relacin pueden coincidir en sus valores de nmero y nombre (ver Figura 6). Por lo tanto, los siguientes subconjuntos de atributos no constituyen una superclave de la relacin: (Num, Nombre) (Num) (Nombre) (Localidad) Para poder distinguir a dos tuplas cualesquiera de una relacin, sera necesario, en principio, comparar, uno por uno, los valores de todos y cada uno de sus atributos. Sin embargo, y por cuestiones prcticas, lo ideal sera seleccionar un subconjunto mnimo de los atributos suficiente para identificarlas. Llamamos claves candidatas de la relacin todas las superclaves mnimas o no descomponibles, es decir, aquellos conjuntos de atributos de los que ninguno puede ser eliminado sin provocar que el conjunto deje de ser una superclave de la relacin. En el caso de nuestro ejemplo, el conjunto (Num, Nombre, Localidad) contiene a las superclaves (Num, Localidad) y (Nombre, Localidad), y no sera, por lo tanto, superclave mnima de la relacin (si eliminamos Nombre o Localidad del conjunto, este seguir siendo clave candidata). S lo seran tanto (Num, Localidad) como (Nombre, Localidad): pueden existir tuplas diferentes con el mismo nmero, nombre o localidad (ver Figura 6). Pero nunca existirn dos tuplas en la relacin con el mismo nmero y localidad simultneamente, ni con el mismo nombre y sede. Todas las claves candidatas son superclaves mnimas, cuyos valores son suficientes para distinguir a dos tuplas cualesquiera de una relacin. A efectos prcticos, el modelo relacional recomienda seleccionar una sola de las posibles claves candidatas para ser utilizada cuando sea necesaria: la escogida ser la clave primaria de la relacin. En el ejemplo, podramos seleccionar entre (Num, Localidad) y (Nombre, Localidad). Cualquiera de las dos claves candidatas sera una correcta clave primaria de la relacin. La clave primaria de una relacin debe ser indicada en la representacin del esquema de la misma, subrayando los nombres de los atributos que forman parte de la misma. Licenciatura en Documentacin: Bases de datos documentais Curso 2011 2012 Autor: Juan Ramn Lpez Rodrguez 6
Departamentos (Num, Nombre, Localidad) Restriccin de INTEGRIDAD de ENTIDAD: Ninguna tupla de una relacin puede tomar valores nulos en los atributos que forman parte de su clave primaria La necesidad de esta restriccin es clara: dado que es la clave primaria la que nos permite distinguir a las tuplas entre s, los valores correspondientes a la clave deben ser conocidos en cada tupla para poder diferenciarla. En la figura 6 presentbamos una posible extensin de la relacin, en la que veamos que un mismo departamento poda tener sedes en dos o ms localidades. Suponiendo que dichas localidades fuesen desconocidas, la relacin de la Figura 6 presentara la siguiente extensin: Num Nombre Localidad D-01 Ventas D-02 I+D Ferrol D-01 Ventas Figura 8: relacin corregida para ser correcta Siendo desconocidos los valores de Localidad en ambas tuplas, es imposible distinguir a una de otra. Se trata por tanto de una relacin incorrecta, no vlida, debido a que viola la restriccin de integridad de entidad. Restricciones de INTEGRIDAD REFERENCIAL: Si una tupla de una relacin R 1 hace referencia a una relacin R 2 , debe referirse a una tupla que exista realmente en R 2 . Este tipo de restricciones permite garantizar la consistencia en el caso de relaciones que mantengan una cierta vinculacin. Por ejemplo, volvamos a nuestro ejemplo de la empresa. Supongamos que nuestra relacin Departamentos presenta, en un momento dado, la siguiente extensin: Num Nombre Localidad D-01 Ventas A Corua D-02 I+D Ferrol Figura 9: relacin Departamentos Y que adems, contamos tambin con una relacin Empleados que nos permite mantener informacin sobre los empleados de nuestra empresa, y cuya extensin es la que sigue: NSS Nombre NumD Localidad 1253 Juan D-01 A Corua 3356 Pedro D-02 Ferrol 9012 Mara D-03 Narn Figura 10: relacin Empleados La relacin pretende representar el nmero de seguridad social de cada empleado (mediante el atributo NSS, que acta como clave primaria), su nombre, y todos los datos relativos al departamento en el que trabaja. Para evitar problemas de redundancia, en lugar de representar todos los datos de cada departamento, se incluye una referencia a la tupla que le corresponde en la relacin Departamentos. Esa referencia se realiza por medio de los valores de la clave primaria de la tupla: el nmero de departamento (NumD) y la Licenciatura en Documentacin: Bases de datos documentais Curso 2011 2012 Autor: Juan Ramn Lpez Rodrguez 7
localidad donde tiene su sede (Localidad). Evidentemente, para que la referencia sea correcta y tengamos acceso a la informacin sobre el departamento al que pertenece un empleado, la tupla referenciada debe existir en la tabla Departamentos. En el caso del ejemplo, los departamentos referenciados en el caso de los empleados Juan y Pedro existen realmente. En cambio, no existe ningn departamento D03, con sede en Narn (al menos, este hecho no est reflejado en la tabla Departamentos) y, por lo tanto, no es posible averiguar nada acerca del departamento al que pertenece Mara (ni siquiera su nombre). La tupla correspondiente a Mara viola una restriccin de integridad referencial de Empleados con respecto a Departamentos. Los atributos NumD y Localidad de Empleados constituyen un ejemplo de clave fornea: son atributos de la relacin Empleados, pero constituyen tambin la clave primaria de Departamentos: ese es el motivo de que sean precisamente ellos los que se usen para referenciar al departamento de cada empleado. Dadas dos relaciones R 1 y R 2 , un conjunto de atributos A 1 ...A n de R 1 se dice clave fornea de R 1 con respecto a R 2 si A 1 ...A n es tambin la clave primaria de R 2 . Dicho de otra manera, A 1 ...A n es una clave fornea de R 1 con respecto a R 2 si ese conjunto de atributos figura tanto en el esquema de R 1 como en el de R 2 ; usndose en R 2 como clave primaria, y usndose en R 1 para referenciar a tuplas de R 2 . Hecha ya la definicin de clave fornea, podemos dar ya una definicin un poco ms formal de las restricciones de integridad referencial: Dadas dos relaciones R 1 y R 2 , los valores que tome cualquier clave fornea de R 1 con respecto a R 2 slo pueden ser valores que correspondan a la clave primaria de alguna tupla de R 2 . Esquema de una BD relacional Como decamos al principio, el modelo relacional es el seleccionado habitualmente como referencia para la elaboracin del esquema lgico de una base de datos. Una base de datos, desde el punto de vista relacional, est formada por un conjunto de relaciones. El esquema lgico de una base de datos consistir, pues, en la unin de los esquemas de todas las relaciones que componen la base de datos, conjuntamente con todas las restricciones de integridad que afectan a esas relaciones. Adems, para facilitar la identificacin de las claves forneas en las relaciones que las incluyan, estas se representarn grficamente junto con el esquema. Las claves forneas se destacan en la representacin del esquema conceptual de una base de datos unindolas mediante flechas dirigidas a las claves primarias que representan, tal y como se muestra en la figura 11.
Departamentos (Num, Nombre, Localidad)
Empleados (NSS, Nombre, NumD, Localidad) Figura 11: Esquema lgico de la BD, con representacin explcita de las claves forneas Licenciatura en Documentacin: Bases de datos documentais Curso 2011 2012 Autor: Juan Ramn Lpez Rodrguez 8
Bibliografa
- R. Elmasri y S. Navathe. Fundamentos de los Sistemas de Bases de Datos (3 edicin). Addison-Wesley, 2002. - A. Silberschatz, H. F. Korth y S. Sudarshan. Fundamentos de Bases de Datos (4 edicin). McGraw Hill, 2002