Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1
EL MODELO RELACIONAL
En captulos anteriores hemos estudiado que existen distintos modelos segn los cuales
la informacin puede ser almacenada y relacionada entre s. Actualmente, para la mayora de las
aplicaciones de gestin que utilizan bases de datos, el modelo ms empleado es el modelo
relacional, por su gran versatilidad, potencia y por los formalismos matemticos sobre los que se
basa.
Este modelo permite representar la informacin del mundo real de una manera intuitiva,
introduciendo conceptos cotidianos y fciles de entender por cualquier inexperto. Asimismo,
mantiene informacin sobre las propias caractersticas de la base de datos (metadatos), que
facilitan las modificaciones, disminuyendo los problemas ocasionados en las aplicaciones ya
desarrolladas. Por otro lado, incorpora mecanismos de consulta muy potentes, totalmente
independientes del S.G.B.D., e incluso de la organizacin fsica de los datos; el propio S.G.B.D.
es el encargado de optimizar estas preguntas en formato estndar, a sus caractersticas propias
de almacenamiento.
El modelo relacional fue propuesto por E. F. Codd en los laboratorios de IBM en
California. Se trata de un modelo lgico [Irene Luque Ruiz- Ed. Ra-ma], que establece una
estructura sobre los datos, aunque posteriormente stos puedan ser almacenados de mltiples
formas para aprovechar caractersticas fsicas concretas de la mquina sobre la que se implante
la base de datos realmente. Es algo as como guardar unos libros en una biblioteca; dependiendo
del nmero de salas de la biblioteca, del tamao y forma de cada una de ellas, su nmero de
estanteras, y en definitiva, de las caractersticas fsicas del recinto, podremos disponer los libros
de una forma u otra para hacer ms cmoda y fcil su consulta y acceso. Los libros son los
mismos, pero pueden ubicarse de muy distintas formas.
Vamos a estudiar entonces, las caractersticas concretas de este modelo de datos, sin entrar
para nada en cmo los almacena fsicamente cada ordenador, o cada S.G.B.D.
Estructura general.
El nombre de modelo relacional viene de la estrecha relacin que existe entre el elemento
bsico de este modelo, y el concepto matemtico de relacin. Podemos decir que una relacin R
sobre los conjuntos D
1
, D
2
, .., D
n
, se define como:
R D
1
D
2
... D
n
donde los conjuntos D
1
, D
2
, .., D
n
pueden ser cualesquiera, e incluso estar repetidos.
El model o rel aci onal .
2
Juan
Antonio
Pedro
Cocinero
Botones
100
200
500
700
1200
Nombre Oficio Sueldo
- Juan Cocinero 100
- Pedro Botones 700
- Juan Cocinero 200
- Pedro Cocinero 700
- Juan Cocinero 1200
Esto es una relacin.
Dado q ue se trata de un con ju nto
n o pued e haber elemen to s
repetid os.
Nombre
Oficio
Sueldo
Los conjuntos p ueden ser
cualesquiera, aunque en el momento en que
se trabaja con ordenadores, hay que imponer
ciertas restricciones de discretizacin.
Si nos fijamos en el dibujo adjunto,
podemos ver que una de estas relaciones no
es ms que una lista de lneas, donde cada
lnea est dividida en trozos.
Para observar bien el porqu ha
surgido el mtodo relacional, pensemos en
cmo almacenaramos las lneas de la lista
anterior, si los ordenadores no existiesen.
Para almacenar estas lneas, tendramos que emplear papel, de manera que en un folio
escribiramos todas las lneas de la lista, empezando por la primera y continuando en el folio
secuencialmente; si el folio se acaba, cogemos otro, y hacemos la misma operacin, de forma que,
al final, la lista est escrita o almacenada en varios folios. Este mtodo, que es el ms directo, tiene
el problema de qu ocurre cuando se desean introducir nuevas lneas. Inicialmente, la tarea parece
fcil, pues nos basta con seguir escribiendo lneas tras la ltima lnea de la ltima pgina, e ir
tomando nuevos folios a mediada que las pginas se vayan llenando. No obstante, este mtodo
slo es adecuado si las lneas no estn ordenadas segn un criterio. Si las lneas ya estn
ordenadas, y deseamos introducir una nueva, cmo lo hacemos?, escribiendo una lnea por
enmedio con letra ms pequea?, o bien escribiendo de nuevo todas las lneas, pero esta vez con
la que se desea insertar? Est claro que ninguna de estas posibilidades es una solucin factible.
Otra posibilidad de registrar esas lneas es utilizando una ficha de cartn para cada una de
ellas. Cada ficha de cartn ser parecida a las que el alumno rellena para el profesor de cada
asignatura a la que asiste, con la variante de que en lugar de poner el nombre, apellidos, direccin,
etc. del alumno, se pondr la informacin que nos interese guardar. de esta manera cada lnea
queda almacenada en una ficha de cartn. Si se desea insertar una nueva ficha basta con rellenarla
y meterla en su posicin adecuada. De la misma forma se puede proceder a la hora de eliminar
alguna ficha.
Pues bien, este ltimo mtodo es el que, a grandes rasgos, intenta utilizar el modelo
relacional. El modelo relacional representa las listas de lneas mediante registros o fichas cada una
de las cuales puede ser manejada individualmente y con independencia de las dems. No obstante,
a efectos de facilitar la visualizacin, puede ser posible ver todas las lneas juntas como si de una
El model o rel aci onal .
3
Nombre: Juan
Oficio: Cociner o
Sueldo: 100
Nombr e: Pedr o
Oficio: Botones
Sueldo: 700
Nombre: Juan
Oficio: Cociner o
Sueldo: 200
Nombr e: Pedr o
Oficio: Cociner o
Sueldo: 700
Nombre: Juan
Oficio: Cociner o
Sueldo: 1200
Nombre Precio Cdigo Men
15
23
17
34
12
21
07
Solomillo a la pimienta
Fondue Nechatel
Migas con chocolate
Ajo blanco con uvas
Paella valenciana
Mono a la cantonesa
Sopa de aleta de tiburn
1000
1500
850
850
1100
7500
525
No
No
S
S
S
No
S
PLATOS
lista se tratase. Ver figura.
De esta manera, tendremos varios
tipos de fichas: fichas de clientes, de
proveedores, de facturas, de albaranes, de
reservas, de empleados, de apuntes
contables, etc., cada una de las cuales
podemos almacenar en un cajn o en un
fichero independiente. De cada tipo de ficha
tendremos un montn de fichas rellenas: 100
200 clientes, 4 5 proveedores, miles de
facturas, etc. Por tanto, es interesante
distinguir entre un tipo de ficha, que no hace
referencia a ninguna ficha rellena en concreto (p.ej. una ficha de clientes), y una ficha concreta,
rellena con unos datos concretos (la ficha de Juan el Cocinero).
Pues bien, el modelo relacional plasma en un ordenador este mismo esquema,
aprovechando las enormes caractersticas de computacin y almacenamiento de las mquinas
actuales.
Concepto de tabla. Dominios y atributos.
Una tabla en el modelo relacional viene a ser como una de las listas descritas
anteriormente. Una tabla o relacin es una matriz rectangular que almacena lneas con una
estructura concreta:
La primera lnea de una tabla, es una cabecera que indica el nombre de cada columna. O sea,
cada columna tiene asignado un nombre nico, e indica que los temes almacenados en esa
columna deben pertenecer a un conjunto de valores concreto: Nmeros, Letras, Frases, etc.
Cada lnea (excepto la primera) recibe el nombre de tupla, y almacena temes concretos para
cada columna.
Todas las filas deben ser diferentes entre
s.
toma
como dominio por defecto el
Texto
Texto, y en concreto
de
de
50 caracteres
50 caracteres. Se pueden cambiar los
dominios a uno cualquiera dentro de las siguientes posibilidades:
Texto, Numrico, Fecha/Hora,
Texto, Numrico, Fecha/Hora,
Moneda,
Moneda,
S/No, Memo, Autonumrico, Objeto OLE,
S/No, Memo, Autonumrico, Objeto OLE, o
Hipervnculo
Hipervnculo. A su vez, cada uno de
estos tipos se puede dividir en otras clases, una de las cuales es la que se toma por defecto; p.ej.
el tipo
Numrico
Numrico
tiene a su vez los subtipos:
Byte, Entero,
Byte, Entero,
Entero largo, Simple
Entero largo, Simple y
Doble.
Doble. Si slo
escogemos
Numrico
Numrico, por defecto se toma el subtipo
Entero largo
Entero largo, que permite guardar nmeros
enteros (sin parte decimal) desde el -2.147.483.648 hasta el 2.147.483.647. Si el subtipo por
defecto no es el que se quiere puede especificarse otro.
Independientemente del dominio a que pertenezca un atributo, cualquier atributo puede
tomar un valor especial que designa la ausencia de dato; es el valor NULO (en ingls NULL o
NIL). Cuando, por cualquier circunstancia, se desconoce el valor de un atributo, como p.ej. la
direccin de un cliente, o bien ese atributo carece de sentido (el atributo Telfono de un empleado
que no tiene telfono en su casa), podemos asociar a dicho atributo este valor especial, comn a
cualquier dominio. El equivalente en nuestro smil de las fichas de cartn sera dejar ese hueco en
blanco. Hay que hacer notar la diferencia entre el valor NULO, y el valor espacios en blanco;
el ordenador considera un espacio en blanco como cualquier otro carcter, por lo que a efectos
computacionales, la introduccin de caracteres espacios en blanco es distinta al concepto de
ausencia de informacin. Los espacios en blanco s son datos, y pertenecen al dominio
Texto
Texto.
Restricciones.
En el apartado anterior observamos que cada atributo est obligado a tomar un valor
El model o rel aci onal .
6
perteneciente a un dominio concreto, siendo imposible el que guarde otro distinto. Esto supone
una restriccin sobre los atributos
Otras restricciones ya comentadas son:
La imposibilidad de repetir tuplas en una misma tabla.
La imposibilidad de establecer un orden en las tuplas, aunque algunos S.G.B.D. relajen un poco
esta restriccin.
En este apartado vamos a introducir otras restricciones ms importantes que posee el
modelo relacional, as como los conceptos implicados. Por ltimo veremos las posibilidades que
tiene el usuario para definir restricciones en funcin de las caractersticas propias de su trabajo.
Reglas fundamentales. Claves.
El modelo relacional intenta representar con una tabla a un tipo de objetos de la vida real,
como puedan ser Empleados, Clientes, etc., e incluso considera las relaciones entre estos objetos
como objetos en s mismos. Para ello, designa cada tipo de objetos por un conjunto de atributos
que son los que darn la forma particular a cada objeto. Volvamos al caso de nuestra tabla de
Platos.
Para representar a un Plato, hemos escogido los atributos: Cdigo, Nombre, Precio y
Men. Un plato concreto puede ser p.ej., (17, Migas con chocolate, 850, S). Este plato
concreto, como cualquier otro objeto distinguible del mundo real posee unas caractersticas que
lo distinguen de los dems de su mismo tipo, tal y como lo hace el ADN de una persona. El ADN
conforma la esencia o clave de toda persona. Es ms, todo objeto posee algo concreto que lo hace
diferente; incluso puede poseer ms de una cosa por la que se le puede diferenciar: una persona
puede distinguirse tambin por su nacionalidad y su D.N.I., lo que conforma otra clave de esa
persona.
Como en una tabla, las tuplas pueden estar en cualquier orden, no podemos referenciar
una tupla concret a mediante su posicin entre las dems, y necesitamos alguna forma de
seleccionar una tupla concreta. La forma de hacerlo es mediante una clave.
Una clave es un atributo o conjunto de atributos cuyo valor es nico y diferente para cada
tupla.
Cada tabla puede poseer ms de una clave. P.ej., en nuestro caso de la tabla Platos, la clave
puede ser tanto el atributo Cdigo, como el atributo Nombre. Tenemos dos claves potenciales,
tambin llamadas claves candidatas.
De entre todas las claves candidatas, el administrador, cuando define la tabla, debe decidir
cul de ellas va a ser la clave principal o clave primaria, mientras que el resto de las claves
pasan a denominarse claves alternativas o claves alternas. La distincin entre clave principal
y claves alternativas, es slo a efectos de acceso interno a los datos, y para que el S.G.B.D.
adopte ciertas decisiones sobre cmo almacenar esos datos en los sistemas de almacenamiento
masivos.
El model o rel aci onal .
7
Por otro lado, la clave de una tabla debe ser propia, o sea, ninguno de los atributos que
la forman debe ser superfluo. Siguiendo con la tabla de Platos, si tomamos el grupo de atributos
(Cdigo, Precio), vemos que posee todas las caractersticas necesarias para considerarlo como una
clave candidata. sin embargo, el atributo Cdigo por s slo ya es una clave candidata, con lo cual
el hecho de aadir el atributo Precio y crear una clave nueva, no aporta informacin de
identificacin, ya que el resto de los atributos (el Cdigo en este caso) identifica por s slo a una
tupla de la tabla de Platos. As pues, el atributo Precio es superfluo en el grupo de atributos
(Cdigo, Precio), con lo que dicho grupo no es una clave candidata. Para distinguir cuando un
grupo de atributos es clave o no, basta con probar con ir eliminando uno a uno cada uno de los
atributos del grupo; si los atributos restantes siguen poseyendo las propiedades de clave, el
atributo eliminado es superfluo, por lo que el grupo de atributos de partida no es clave propia.
Ms adelante veremos como esta situacin se deriva del hecho de que el valor del atributo
que sobra (el superfluo) viene determinado por los valores de los otros atributos (la clave propia),
en lo que se ha dado en llamar dependencia funcional.
El concepto de clave es t an importante, que da lugar a una serie de restricciones
fundamentales sobre la base de datos. Son la regla de identificacin nica y la regla de
integridad referencial.
Regla de identificacin nica.
Esta restriccin ya fue estudiada en el tema de los diagramas E-R. En esencia, los
conceptos de clave de una entidad en el diagrama E-R, y de clave de una tabla coinciden
plenamente. As pues, al igual que en aquel momento, podemos enunciar esta regla de la misma
forma:
En ninguna tupla de una tabla, ninguno de los atributos que formen parte de la clave primaria de
una relacin podr tomar un valor nulo. El valor de la clave ser nico para cada tupla de la tabla.
Esta regla nos dice que una vez escogida la clave primaria de una tabla, y dado que ninguno
de los atributos que la componen es superfluo, no podemos dejar de lado el valor de ninguno de
ellos para identificar unvocamente a una tupla. O sea, el que todos los atributos de la tabla sean
necesarios est en contradiccin con que alguno de ellos pueda carecer de valor. Ningn atributo
de la clave puede ser vaco porque en tal caso no sera una caracterstica identificativa propia del
objeto a que pertenece.
Regla de integridad referencial.
Esta otra regla, aunque tambin tiene una relacin directa con el concepto de clave, est
quizs ms vinculada a la forma en que un diagrama E-R se convierte en un esquema relacional,
El model o rel aci onal .
8
por lo que puede no ser bien comprendida en este punto. No obstante, por completitud se da aqu
su enunciado, aunque su explicacin la dejaremos para ms adelante.
Si una tupla de una tabla A posee atributos (a
1
..a
n
) que hacen referencia a la clave primaria de
otra tupla de una tabla B, dichos atributos poseen, o bien valores nulos, o bien valores (v
1
..v
n
) que
se corresponden con la clave de una tupla concreta de B.
Restricciones en la base de datos.
Las restricciones que hemos visto hasta ahora, son restricciones de clave aplicables a todas
las bases de datos que siguen el modelo relacional, con independencia de su rango de aplicacin
o los datos que contengan. Restricciones de este tipo son tambin las que restringen los valores
que puede contener una tupla, la imposibilidad de repetir tuplas o incluso de establecer un orden
entre las tuplas de una tabla.
En este punto vamos a estudiar las reglas que el administrador impone a los datos que
debe contener la base de datos. Son restricciones propias de la base de datos, y de la informacin
que se pretende representar como por ejemplo que no haya pedidos que servir cuya fecha lmite
sea ant erior a la fecha actual, que el total debido por un cliente no supere el riesgo mximo
permitido, etc.
Son restricciones que en general limitan la estructura de la informacin almacenada en la
base de datos, suministrando por tanto informacin sobre las caractersticas que respetan los
datos guardados.
Este tipo de restricciones podemos dividirlas en tres grupos principales:
Restricciones de atributo.
Restricciones de tupla.
Restricciones de tabla.
Restricciones de base de datos.
Determinantes.
1 Forma Normal.
Forma Normal de Boyce-Codd.