You are on page 1of 6

Sistemas de Bases de Datos I Prof. Nunzio N. Savino V. Tema Nro.

5
CI3315
Enero-Abril 2002
El Modelo Relacional

Pgina 1 de 6
Diseo Lgico y Modelo Relacional

Cuando hablamos de la fases del desarrollo de una base de datos, mencionamos el
diseo lgico como la actividad en la cual requeramos del conocimiento del modelo de datos que
utiliza el DBMS en el que se implantar la base de datos, y de la especificacin del problema en
un modelo conceptual ms restricciones no representables en l (resultado del diseo
conceptual).

Nuestro objetivo entonces es estudiar los diferentes modelos que implementan los
DBMS comerciales (a los que se denomin modelos lgicos, tradicionales o de implementacin) y
posteriormente estudiar, dependiendo de cada modelo, que tcnicas de diseo existen para l.

Sabemos que en la actualidad, la tecnologa comercial de bases de datos ha
implementado mayormente tres (3) modelos: el modelo jerrquico, el modelo de redes y el
modelo relacional (en orden cronolgico). Dado que el modelo relacional es el ms utilizado
actualmente, y que los modelos jerrquico y de redes se encuentra prcticamente en desuso,
nos dedicaremos a estudiar slo el modelo relacional.

El Modelo Relacional

El modelo de datos relacional fue propuesto en 1970 por Codd como una contrapartida
a los modelos de redes y jerrquico, que adems de ser menos econmicos, conceptualmente
hablando, requeran de mayores habilidades en los diseadores de bases de datos. Hoy en da
es el modelo implementado por la mayora de los DBMS utilizados en las organizaciones. El
mercado de bases de datos mundial se encuentra dominado por cuatro DBMSs: Oracle, Sybase,
SQLServer e Informix. Todos ellos implementan (a veces con pequeas variaciones) el modelo
relacional. Estudiaremos la versin original de Codd, dejando a nivel de taller las variaciones
propias que las herramientas hacen de este modelo. La facilidad inherente al modelo relacional
se deriva de la sencillez en sus estructuras, basadas en la teora de conjuntos.

Definiciones Preliminares

Antes de describir el modelo formalmente (indicando estructuras, restricciones y
operaciones) repasemos brevemente algunas definiciones necesarias para entender el modelo.

Definicin: Un dominio D lo representaremos como D=(T,R)- es un conjunto de valores
atmicos, donde:
- Por valores atmicos se entienden aquellos datos que son indivisibles, es decir son
pensados como items sin estructura.
- T se define como el Tipo de Datos de los valores incluidos en el dominio.
- R se designa con el nombre de Restriccin de Dominio de D e indica realmente cules
de los posiblemente infinitos valores de T tienen sentido en D. Si colocamos all, no imponemos
restricciones sobre el tipo datos.

La interpretacin del par (T,R) como un conjunto de valores viene dada por
Sistemas de Bases de Datos I Prof. Nunzio N. Savino V. Tema Nro. 5
CI3315
Enero-Abril 2002
El Modelo Relacional

Pgina 2 de 6

{ } R satisface x T x x R) (T,

Ejemplo:

En el contexto de la USB, podemos establecer los siguientes dominios de valores.
- Indices = (Reales, [0,5]), donde establecemos que el ndice es el dominio formado
por todos aquellos nmeros reales entre 0 y 5 (inclusive).
- Carnets = (Carcter[8]), 99-99999), donde establecemos que el carnet de un
estudiante es un string de 8 caracteres de los cuales los dos primeros son numricos, el
tercero es un guin y los ltimos cinco son numricos.
- Nombres = (String[30],A(30)), donde establecemos que el nombre de un estudiante
es una secuencia de hasta 30 caracteres alfabticos.
- CodCarrs = (Carcter[4],9999), donde establecemos que el cdigo de una carrera
es una secuencia de cuatro caracteres numricos.
- Cedula = (Carcter[10],[99.999.99]9), donde establecemos que las cdulas de
identidad son secuencias de 10 caracteres con el formato anterior.

Definicin: Sean D
1
,..., D
n
dominios dados. Una relacin R sobre los dominios D
1
,..., D
n
se define
como:
R D
1
x D
2
x D
3
x ... x D
n

donde x es el operador de producto cartesiano de conjuntos.

Ejemplo:

Si queremos definir un estudiante de la USB, podramos decir

Estudiante Carnets x Cedulas x Nombres x Indices x CodCarrs

Estructuras del Modelo Relacional

El modelo relacional provee slo dos estructuras para representar conocimiento:

- Atributo: Un atributo A puede verse como un par ordenado (N,D), donde N es un
identificador y D un dominio. Los atributos sirven para especificar propiedades de los entes
involucrados en el problema. Los valores permitidos para un atributo son todos aquellos de D y,
posiblemente el valor null que indica que la propiedad no posee valor o ste es desconocido. El
dominio de un atributo A (ms el valor null) se expresa como domval(A).

Ejemplo: En el sistema de control de estudios de DACE, es de inters mantener la
informacin de estudiantes. En tal sentido, las propiedades de inters para un estudiante se
definiran como (Nombre,Nombres), (CI,Cedulas), (Carnet,Carnets), (Indice,Indices) y
(Carreras,CodCarrs).

Sistemas de Bases de Datos I Prof. Nunzio N. Savino V. Tema Nro. 5
CI3315
Enero-Abril 2002
El Modelo Relacional

Pgina 3 de 6
- Relacin: Una relacin permite describir los entes involucrados en el problema a
resolver. Si R es una relacin, hay dos formas alternativas de definirla:
- Por comprensin (esquema de descripcin de una relacin). En este caso se
utiliza la definicin formal de una relacin matemtica pero se extiende para manejar el
concepto de atributo, es decir si A
1
,..., A
n
son atributos de R, entonces R se denota como
R(A
1
,...,A
n
) lo cual quiere decir que R representar todas aquellas posibles relaciones r tales que

r domval(A
1
) x domval(A
2
) x domval(A
3
) x ... x domval(A
n
)

En el ejemplo anterior, la relacin estudiante puede definirse como
ESTUDIANTE((Carnet,Carnets),(CI,Cedulas),(Nombre,Nombres),(Indice,Indices),
(Carrera,CodCarrs)).

- Por extensin (instancia de una relacin). En este caso, a partir de una
relacin definida por comprensin R(A
1
,...,A
n
) se obtiene una instancia r, denotada como r(R).
Toda instancia r es un conjunto r = {t
1
,...,t
m
} donde cada t
i
recibe el nombre de tupla-. Toda
tupla t
i
en r(R) debe cumplir con:
- i 1 i m (t
i
= <v
1
,...,v
n
>)

- j 1 j n ( v
j
dom(A
j
) )

En este caso, r hereda la propiedad de definicin de R, es decir:

r(R) dom(A
1
) x dom(A
2
) x dom(A
3
) x ... x dom(A
n
)

Ejemplo: En la relacin ESTUDIANTE definida anteriormente, una instancia r de esta
puede ser:

r(ESTUDIANTE) = { <92-24418, 4.345.221, Pedro Prez, 3.2453,0200>,
<85-17203, 8.971,222,Jos Ramrez, 3,2944,0800>,
<91-22784, 9.325.449,Luis Nez, 4.7603,0300>}

Caractersticas de una relacin

El fuerte basamento en teora de conjuntos que posee el modelo relacional hace que
una relacin posea las caractersticas que a continuacin se mencionan. Estas caractersticas
hacen que una relacin sea, tanto lgica como fsicamente, diferente de un archivo
(independencia fsica, importante en el estndar ANSI/SPARC):

- No hay orden en las tuplas: En una instancia de una relacin no es relevante el orden
en el que se coloquen las tuplas de la misma.

- Orden en los valores: Dado que se define una relacin como un producto cartesiano en
el modelo, es relevante en una tupla el orden de los valores de los atributos en la misma (<x,y>
<y,x>). Esto corresponde, por ejemplo, a la nocin de posicin (identificacin posicional) que
usamos para indicar los parmetros de una operacin de un TAD.
Sistemas de Bases de Datos I Prof. Nunzio N. Savino V. Tema Nro. 5
CI3315
Enero-Abril 2002
El Modelo Relacional

Pgina 4 de 6
Sin embargo, existen definiciones alternativas (identificacin por nombre), en la cual
para denotar una tupla se especifica un conjunto de pares (N,V) donde N es el nombre de un
atributo y V su valor.

Ejemplo: La instancia r(ESTUDIANTE) anterior, poda haberse escrito como:
r(ESTUDIANTE)={ {(Carnet,92-24418),(CI,4.345.221),(Nombre,PedroPrez),
(Indice,3.2453),(Carrera,0200)},
{(Carnet,85-17203),(CI,8.971,222),(Nombre,Jos Ramrez),
(Indice,3,2944),(Carrera,0800)},
{(Carnet,91-22784), (CI, 9.325.449),(Nombre,Luis Nez),
(Indice,4.7603),(Carrera,0300)}}

Restricciones del Modelo Relacional

- Restriccin de Integridad de Identidad: La restriccin de integridad por identidad
garantiza la distinguibilidad de las tuplas de una relacin (recordemos que en un conjunto no
tiene sentido tener dos elementos iguales). As en una instancia de una relacin R no pueden
existir dos tuplas con los mismos valores para todos los atributos. En general, esta condicin
puede ser restringida no a todos los atributos de la relacin sino a un subconjunto de ellos. As
aparece el concepto de clave.

Definicin: Sea R(A
1
,...,A
n
) una relacin y sea SK {A
1
,...,A
n
} un subconjunto de los
atributos de R. Se dice que SK es una superclave de R(denotado como superclave(R,SK)) si se
cumple en toda instancia r de R que
t
1
t
2
( (t
1
r t
2
r t
1
[SK] = t
2
[SK]) t
1
= t
2
)

Ntese que en este caso, SK puede ser el conjunto formado por todos los atributos de
la relacin. Para hilar ms fino y poder expresar el mnimo conjunto de atributos que es
superclave hablamos del concepto de clave candidata.

Definicin: Sea R(A
1
,...,A
n
) una relacin. Un conjunto K{A
1
,...,A
n
} se dice clave
candidata de R(denotado como candidata(R,K)) si se cumple
superclave(R,K) K((K K) superclave(R,K))

En este caso la definicin establece que las claves candidatas son todas aquellas
superclaves minimales de una relacin. Adems, si K= 1 la clave se dice simple. Si no, se dice
compuesta.

Ejemplo: En la relacin ESTUDIANTE se cumple que
superclave(ESTUDIANTE, {(Carnet,Carnets)})
superclave(ESTUDIANTE, {(Carnet,Carnets),(Nombre,Nombres)})
superclave(ESTUDIANTE, {(Carnet,Carnets),(Indice,Indices)})
candidata(ESTUDIANTE,{(Carnet,Carnets)}) y {(Carnet,Carnets)} es
una clave candidata simple.
Sistemas de Bases de Datos I Prof. Nunzio N. Savino V. Tema Nro. 5
CI3315
Enero-Abril 2002
El Modelo Relacional

Pgina 5 de 6
candidata(ESTUDIANTE,{(CI,Cedulas)}) y {(CI,Cedulas)} es una clave
candidata simple.

Definicin (Restriccin de Integridad por Identidad): Sea R(A
1
,...,A
n
) una relacin. Se
dice que R cumple la restriccin de integridad por identidad si se cumple en toda instancia r de
la relacin R que:
tKa( (candidata(R,K) t r a K) t[a] null)

Esta restriccin nos dice que si un conjunto de atributos es una clave candidata de una relacin
R, en cualquier instancia de R no puede ocurrir que en alguna de sus tuplas el valor de alguno de
los atributos que forman parte de la clave candidata sea nulo.

En general, una relacin R puede tener varias claves candidatas. Cuando este es el caso, se
escoge una de estas claves y se le designa con el nombre de clave primaria (usaremos el
predicado primaria(R,C) para denotar que C es la clave primaria de la relacin R). A las
restantes claves se les designa con el nombre de claves alternas (usaremos el predicado
alterna(R,C) para denotar que C es una clave alterna de la relacin R)

En el ejemplo anterior definimos primaria(ESTUDIANTE,{(Carnet,Carnets)}) y
alterna(ESTUDIANTE,{(CI,Cedulas)}).

- Restriccin de Integridad Referencial: En un esquema relacional (existe uno o ms
relaciones) la mayora de las veces es necesario enlazar relaciones entre s para poder indicar
nexos o acciones comunes de inters en el problema. En estos casos es imprescindible
garantizar la consistencia de los enlaces.

Ejemplo: Consideremos otra relacin, CARRERA, con atributos (Codigo,CodCarrs) y
(Descripcion,Nombres). Supongamos, adems que en un momento dado existe una instancia de
CARRERA c descrita como:
c(CARRERA) = {<0800,Ingeniera Computacin>,
<0300,Ingeniera Mecnica>,
<0500,Licenciatura Matemticas>}

Adems, deseamos que el atributo Carrera de la relacin ESTUDIANTE tenga sentido dentro
de las posibles carreras. Esta situacin no es correcta, ya que en r existe un estudiante que
tiene como cdigo de carrera una carrera que no existe en la instancia c. Por lo tanto la
instancia {r(ESTUDIANTE),c(CARRERA)} del esquema relacional {ESTUDIANTE,CARRERA} no
es consistente.


Definicin: Sean R
1
(A
1
,...,A
n
) y R
2
(B
1
,...,B
m
) dos relaciones. Sea C
2
= {B
j1
,...,B
jk
} un subconjunto de
{B
1
,...B
n
} tal que primaria(R
2
,C
2
). Se dice que el conjunto de atributos C
1
= {A
i1
,..A
ik
} de R
1
es una
clave fornea de R
1
hacia R
2
- lo denotaremos como foranea(R
1
,R
2
,C
1
)- y que R
1
cumple la
restriccin de integridad referencial hacia R
2
si se cumple que en toda instancia r
1
de R
1
y r
2

de R
2
:
Sistemas de Bases de Datos I Prof. Nunzio N. Savino V. Tema Nro. 5
CI3315
Enero-Abril 2002
El Modelo Relacional

Pgina 6 de 6

x,1 x k (dom(A
ix
) = dom(B
jx
)
t
1
t
2
(t
1
r
1
t
2
r
2
t
1
[C
1
] = t
2
[C
2
] t
1
[C
1
] = NULL
K
)

En esta definicin NULL
K
representa una tupla de K valores nulos.

Ejemplo: En el caso anterior, si decimos
foranea(ESTUDIANTE,CARRERA,{(Carrera,CodCarrs)}), entonces las instancia r de estudiante
no satisface la restriccin de integridad referencial. Slo la satisfacera si en c existiesen por
lo menos tres tuplas: una con Codigo = 0800, una con Codigo = 0300 y una con Codigo = 0200.

Esquemas relacionales

Ahora ya sabemos de las cosas que disponemos para modelar la realidad con el modelo
relacional, que entonces por definir que es un esquema relacional.

Definicin: Un Esquema Relacional E es un par ordenado (BD,IC) donde BD = {R
1
,R
2
,...R
i
} es un
conjunto de relaciones y IC={ic
1
,...,ic
j
} son un conjunto de restricciones de integridad
(identidad o referencial) definidas sobre las relaciones de BD.

Convencin: En lo sucesivo, y para reducir la complejidad en la especificacin de la estructura
de una relacin, denotaremos el esquema de descripcin de una relacin R(A
1
,...,A
n
) como
R(I
1
,,I
n
) donde I
k
, 1 k n es el nombre asociado al atributo A
k


A nuestro nivel es suficiente con indicar las relaciones, sus atributos e indicar en cada relacin
las claves (pimarias, alternas y forneas). Para tal fin se seguir la siguiente nomenclatura:
- Cada uno de los atributos de la clave primaria de una relacin los indicaremos
subrayando con una raya simple.
- Las claves alternas se indicarn a travs de texto.
- Las claves forneas se indicarn a travs de una lnea subrayada en cada uno de los
atributos. En texto indicaremos a qu relacin se referencia.

En el ejemplo utilizado a lo largo de este tema tendramos:

ESTUDIANTE(Carnet,CI,Nombre,Carrera
CARRERA
)
CI es clave candidata

CARRERA(Codigo,Descripcion)

Nombres alternativos

A nivel comercial y en tecnologa de bases de datos relacionales, cuando se habla de una
relacin se utiliza tambin el trmino tabla, cuando se habla de un atributo se utiliza tambin el
trmino columna y cuando se habla de tupla se utiliza alternativamente el trmino fila. Esto se
deriva de la visin de un conjunto como una tabla de valores.

You might also like