A continuación definimos formalmente las relaciones y otros conceptos que están vinculados a ellas, como por ejemplo dominio, esquema de relación, etc.
Un dominio D es un conjunto de valores atómicos. Por lo que respecta al modelo relacional, atómico significa indivisible; es decir, que por muy complejo o largo que sea un valor atómico, no tiene una estructuración interna para un SGBD relacional.
Los dominios pueden ser de dos tipos:
Dominio definido por el usuario |
Por ejemplo, el usuario puede definir un dominio para las edades de los empleadosque se denomine dom_edady que contenga los valores enteros que están entre 16 y 65. |
1) Dominios predefinidos, que corresponde a los tipos de datos que normalmente proporcionan los lenguajes de bases de datos, como por ejemplo los enteros, las cadenas de caracteres, los reales, etc.
2) Dominios definidos por el usuario, que pueden ser más específicos. Toda definición de un dominio debe constar, como mínimo, del nombre del dominio y de la descripción de los valores que forman parte de éste.
Un relación se compone del esquema (o intensión de la relación) y dela extensión
Si consideramos la representación tabular anterior (figura 1), el esquema correspondería a la cabecera de la tabla y la extensión correspondería al cuerpo:
Figura 2
Empleados |
|||
DNI |
nombre |
apellido |
sueldo |
40.444.255 |
Juan |
García |
2.000 |
33.567.711 |
Marta |
Roca |
2.500 |
55.898.425 |
Carlos |
Buendía |
1.500 |
El esquema de la relación consiste en un nombre de relación R y un conjunto de atributos {A1, A2, ..., An}.
Nombre y conjunto de atributos de la relación EMPLEADOS
Si tomamos como ejemplo la figura 1, el nombre de la relación es EMPLEADOS y el conjunto de atributos es {DNI, nombre, apellido, sueldo}.
Tomaremos la convención de denotar el esquema de la relación de la forma siguiente: R(A1, A2, ..., An), donde R es el nombre la relación y A1, A2, ..., An es una ordenación cualquiera de los atributos que pertenecen al conjunto {A1, A2, ..., An}.
Denotación del esquema de la relación EMPLEADOS
El esquema de la relación de la figura 1 se podría denotar, por ejemplo, como EMPLEADOS(DNI, nombre, apellido, sueldo), o también, EMPLEADOS(nombre, apellido, DNI, sueldo), porque cualquier ordenación de sus atributos se considera válida para denotar el esquema de una relación.
Un atributo Ai es el nombre del papel que ejerce un dominio D en un es-quema de relación. D es el dominio de Ai y se denota como dominio (Ai).
Dominio del atributo DNI
Según la figura 1, el atributo DNI corresponde al papel que ejerce el dominio númerosDNI en el esquema de la relación EMPLEADOS y, entonces, dominio(DNI) = númerosDNI.
Conviene observar que cada atributo es único en un esquema de relación, porque no tiene sentido que un mismo dominio ejerza dos veces el mismo papel en un mismo esquema. Por consiguiente, no puede ocurrir que en un esquema de relación haya dos atributos con el mismo nombre. En cambio, sí que se puede repetir un nombre de atributo en relaciones diferentes. Los dominios de los atributos, por el contrario, no deben ser necesariamente todos diferentes en una relación.
Ejemplo de atributos diferentes con el mismo dominio
Si tomamos como ejemplo el esquema de relación PERSONAS(DNI, nombre, apellido, telcasa, teltrabajo), los atributos telcasa y teltrabajo pueden tener el mismo dominio: dominio(telcasa)=
= teléfono y dominio(teltrabajo) = teléfono.
En este caso, el dominio teléfono ejerce dos papeles diferentes en el esquema de relación: el de indicar el teléfono particular de una persona y el de indicar el del trabajo.
La extensión de la relación de esquema R(A1, A2, ..., An) es un conjunto de tuplas ti (i = 1, 2, ..., m), donde cada tupla ti es, a su vez un conjunto 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, los atributos y las tuplas, respectivamente. |
Para simplificar, tomaremos la convención de referirnos a una tupla ti = {<A1:vi1>, <A2:vi2>, ..., <An:vin>} que pertenece a la extensión del esquema denotado como R(A1, A2, ..., An), de la forma siguiente: ti = <vi1, vi2, ..., vin>.
Si denotamos el esquema de la relación representada en la figura 1 como EMPLEADOS(DNI, nombre, apellido, sueldo), el conjunto de tuplas de su extensión será el de la figura siguiente:
Figura 3
Esta figura... |
... nos muestra la extensión de EMPLEADOS en forma de conjunto, mientras que las figuras anteriores nos la mostraban en forma de filas de una tabla. La representa- ción tabular es más cómoda,pero no refleja la definición de extensión con tanta exactitud. |
en una tupla ti = <vi1, vi2, ..., vin>, el valor vij es un valor nulo, entonces el valor del atributo Aj es desconocido para la tupla ti de la relación, o bien no es aplicable a esta tupla.
Ejemplo de valor nulo
Podríamos tener un atributo telcasa en la relación EMPLEADOS y se podría dar el caso de que un empleado no tuviese teléfono en su casa, o bien que lo tuviese, pero no se conociese su número. En las dos situaciones, el valor del atributo telcasa para la tupla correspondiente al empleado sería el valor nulo.
El grado de una relación es el número de atributos que pertenecen a su esquema.
Grado de la relación EMPLEADOS
El grado de la relación de esquema EMPLEADOS(DNI, nombre, apellido, sueldo), es 4.
La cardinalidad de una relación es el número de tuplas que pertenecena su extensión.
Cardinalidad de la relación EMPLEADOS
Observando la figura 3 se deduce que la cardinalidad de la relación EMPLEADOS es 3.