Formalidades del Modelo Relacional de Datos

El concepto matem�tico que subyace bajo el modelo relacional es la relaci�n de la teor�a de conjuntos, la cual es un subconjunto del producto cartesiano de una lista de dominios. Esta relaci�n de la teor�a de conjuntos proporciona al modelo su nombre (no confundir con la relaci�n del Modelo Entidad-Relaci�n). Formalmente, un dominio es simplemente un conjunto de valores. Por ejemplo, el conjunto de los enteros es un dominio. Tambi�n son ejemplos de dominios las cadenas de caracteres de longitud 20 y los n�meros reales.

El producto cartesiano de los dominios D1, D2, ... Dk, escritos D1D2 � ... � Dk es el conjunto de las k-tuplas v1, v2, ... vk, tales que v1D1, v1D1, ... vkDk.

Por ejemplo, cuando tenemos k=2, D1={0,1} y D2={a,b,c} entonces D1D2 es {(0,a),(0,b),(0,c),(1,a),(1,b),(1,c)}.

Una Relaci�n es cualquier subconjunto del producto cartesiano de uno o m�s dominios: RD1D2 � ... � Dk.

Por ejemplo, {(0,a),(0,b),(1,a)} es una relaci�n; De hecho es un subconjunto de D1D2 mencionado antes.

Los miembros de una relaci�n se llaman tuplas. Cada relaci�n de alg�n producto cartesiano D1D2 � ... � Dk se dice que tiene nivel k y de este modo es un subconjunto de k-tuplas.

Una relaci�n se puede ver como una tabla (como ya dijimos, recuerde La Base de Datos de Proveedores y Art�culos donde cada tupla se representa como una fila y cada columna corresponde a un componente de la tupla. Dando nombres (llamados atributos) a las columnas, nos acercamos a la definici�n de un esquema relacional.

Un esquema relacional R es un conjunto finito de atributos A1, A2, ... Ak. Hay un dominio Di, para cada atributo Ai, 1 <= i <= k, de donde se toman los valores de los atributos. Entonces escribimos es esquema relacional como R(A1, A2, ... Ak).

Nota

Un esquema relacional es s�lo un juego de plantillas mientras que una relaci�n es un ejemplo de un esquema relacional. La relaci�n consiste en las tuplas (y pueden ser vistas como una tabla); no as� el esquema relacional.

Dominios contra Tipos de Datos

Ya hemos hablado de dominios en la secci�n anterior. Recalcar que el dominio es, formalmente, un conjunto de valores (por ejemplo el conjunto de los enteros o el de los n�meros reales). En t�rminos de sistemas de base de datos, hemos hablado de tipos de datos m�s que de dominios. Cuando hemos definido una tabla, hemos tomado una decisi�n sobre qu� atributos incluir. Adicionalmente, hemos decidido qu� juego de datos deber� ser almacenado en valores de los atributos. Por ejemplo, los valores de SNAME de la tabla SUPPLIER ser�n cadenas de caracteres, mientras que SNO almacenar� enteros. Definimos esto asignando un tipo de datos a cada atributo. El tipo de SNAME ser� VARCHAR(20) (este es el tipo SQL para cadenas de caracteres de longitud <= 20), el tipo de SNO ser� INTEGER. Con la asignaci�n de tipos de datos, tambi�n habremos seleccionado un dominio para un atributo. El dominio de SNAME es el conjunto de todas las cadenas de caracteres de longitud <= 20, mientras el dominio de SNO es el conjunto de todos los n�meros enteros.