You are on page 1of 11

TALLER DE MODELAMIENTO DE SOFTWARE

El modelo Relacional
Ing. CIP. Andrei Quispe Alderete

REA ACADMICA DE
COMPUTACIN E INFORMTICA
SEPARATA N 3
EL MODELO RELACIONAL

El modelo relacional fue propuesto en 1970 por Codd, y la popularidad de este modelo ha ido creciendo
lenta pero firmemente, de manera que el trmino relaciona l ha llegado a ser comn entre los
profesionales informticos. El modelo relacional de datos es un modelo simple, potente y formal
para representar la realidad. Tambin ofrece una base firme para enfocar y analizar formalmente
muchos problemas relacionados con la gestin de bases de datos, como el diseo de la base de
datos, la redundancia, la distribucin, etctera. El formalismo y una base matemtica son las piedras
angulares en el desarrollo de la teora de las bases de datos relacinales.
Varios avances han tenido lugar en las ltimas dos dcadas que sealan la falta de expresividad y
riqueza semntica del modelo relacional. Sin embargo, la sencillez del modelo ha facilitado la
construccin de lenguajes de consulta e interfaces para los usuarios finales de fcil utilizacin, y
ha resultado en una productividad ms alta de los programadores de bases de datos. La gestin
de bases de datos relacinales ser una tecnologa muy til durante varios aos, o inc luso dcadas.
En esta parte se muestra cmo ir desde el modelo conceptual E-R al modelo relacional para
implantar una base de datos. Tambin se muestra cmo tomar un conjunto de relaciones existentes
y aplicarles retroingeniera para convertirlas en un esquema ER, captando la semntica propuesta para
un mejor entendimiento.

El elemento bsico del modelo es la relacin, y un esquema de base de datos relacional es una coleccin
de definiciones de relaciones. El esquema de cada relacin es una agregacin de atributos; el
conjunto de todos los valores que puede adoptar un atributo en particular se denomina dominio de
ese atributo.

Un caso de relacin (tambin llamado extensin de la relacin) es una tabla con filas y columnas. Las
columnas de las relaciones corresponden a los atributos; las filas, denominadas tupias, son
colecciones de valores tomados de cada atributo, y desempean la misma funcin que los casos
individuales de entidades en el modelo ER. El grado de una relacin es el nmero de columnas; la
cardinalidad de una relacin es el nmero de tupias. La siguiente figura muestra un ejemplo de
los conceptos citados.

La relacin ESTUDIANTE tiene tres atributos (NOMBRE, EDAD y SEXO) y cinco tupias, cada una
representando nombre, edad y sexo de un estudiante. Por tanto, el grado y la cardinalidad de
ESTUDIANTE son tres y cinco, respectivamente.

La definicin matemtica de las relaciones se desarrolla empezando por la nocin de dominios. Un
TALLER DE MODELAMIENTO DE SOFTWARE
El modelo Relacional
Ing. CIP. Andrei Quispe Alderete

REA ACADMICA DE
COMPUTACIN E INFORMTICA
dominio es una coleccin de valores. Dados varios atributos, A1, A2,..., An, con dominios D1, D2,..., Dn,
un caso de relacin de grado n es simplemente un subconjunto del producto cartesiano D1 x D2 ...
Dn. Esta definici n destaca una importante propiedad de las relaciones, a saber, que son conjuntos
de tup las en el sentido matemtico: una relacin en ningn momento puede tener tupias duplicadas.
Sin embargo, la mayora de los sistemas relacinales no imponen esta restriccin, ya que en diversas
situaciones pueden ocurrir duplicados, y puede ser til mantenerlos. En trminos estrictos, tampoco
importa el orden de las tupias en una relacin.

Claves Primarias y Forneas (externas)

Llave primaria: Columna(s) que contendr(n) valores para identificar de manera nica al objeto
representado por la tupla. El valor de la llave primaria en cada fila identifica al objeto particular
representado por cada fila dentro de la clase de objetos que representa esa relacin.

Llave fornea: Columna(s) que contiene(n) los valores de un dominio que sirven al mismo de la llave
primaria en otra(s) tabla(s) para identificar al mismo objeto.




Una caracterstica fundamental del modelo relacional es que la representacin de las relaciones entre
objetos del mundo real se hace por comparacin entre valores, sirvan estos para identificar a los
objetos o para describir atributos de los mismos.

Las relaciones entre clases de objetos (conjuntos de objetos del mismo tipo) estn expresadas en
trminos de los atributos comunes de las instancias de las clases relacionadas (no slo con el mismo
dominio, sino con el mismo significado).

En el modelo relacional, el concepto de clave est definido de una manera muy similar al concepto de
identificador en el modelo ER; una clave de una relacin es un conjunto de atributos de la relacin que
identifica de manera nica cada tup la de cada extensin de esa relacin. As, la nica diferencia entre
nuestro uso de identificadores y claves es que en el modelo relacional slo se acepta la identificacin
interna.

TALLER DE MODELAMIENTO DE SOFTWARE
El modelo Relacional
Ing. CIP. Andrei Quispe Alderete

REA ACADMICA DE
COMPUTACIN E INFORMTICA
En general, una relacin puede tener ms de una clave, y cada clave se denomina clave candidata. Por
ejemplo, la relacin PERSONA puede tener dos claves candidatas: la primera un nmero de seguro
social (NSS); la segunda una clave compuesta formada por (APELLIDO, NOMBRE). Es comn designar
una de las claves como clave primaria de la relacin. Nuestro convencionalismo es subrayar aquellos
atributos que componen la clave primaria.
La sencillez del modelo relacional proviene del hecho de que todas las relaciones se definen de
manera independiente; no hay conceptos como los de jerarqua, conexin o enlace entre las relaciones
en el modelo. Sin embargo, las interrelaciones del modelo ER se pueden representar en el modelo
relacional por una operacin explcita de equirreunin (equi-join) entre atributos de tablas diferentes.
Si realizamos una reunin (join), que es la operacin del lgebra relacional para hacer correspondencias
entre dos tablas, la correspondencia debe hacerse entre atributos comparables, esto es, atributos en
el mismo dominio. La siguiente figura muestra tres relaciones independientes:



CURSO, ESTUDIANTE y EXAMEN, para la base de datos escolar. La interrelarin de uno a muchos entre
ESTUDIANTE y EXAMEN se obtiene igualando los atributos NOMBRE de ESTUDIANTE y
NOMBRE_ESTUDIANTE de EXAMEN. Obsrvese
que por cada caso de ESTUDIANTE existen cero, uno o ms casos de EXAMEN, relacionados por el
mismo nombre de estudiante. De manera similar, la interrelacin de uno a muchos entre CURSO y
EXAMEN se obtiene igualando los atributos CDIGO de CURSO y NUMERO-CURSO de examen.

Restricciones de integridad en los esquemas relacinales de bases de datos

Ahora veremos las restricciones de integridad que pueden ser especificadas en un esquema
relacional. Se espera que tales restricciones, una vez especificadas, se cumplan para cada caso de
base de datos de ese esquema. Sin embargo, en los productos comerciales de DBMS actuales no
siempre pueden ser especificadas todas esas restricciones. Adems, aun especificadas, no se obliga
automticamente el cumplimiento de todas ellas. Se consideran tres tipos de restricciones como parte
del modelo relacional: restricciones de clave, de integridad de entidades y de integridad referencial.
Las restricciones de clave especifican las claves candidatas de cada esquema de relacin; los valores
de las claves candidatas deben ser nicos para cada tupia en cualquier caso de ese esquema de relacin.
En el ejemplo de la figura anterior, NOMBRE es una clave para ESTUDIANTE, CDIGO es una clave para
CURSO, y el par (NUMERO_CURSO, NOMBRE_ESTUDIANTE) es un clave para estudiante.

TALLER DE MODELAMIENTO DE SOFTWARE
El modelo Relacional
Ing. CIP. Andrei Quispe Alderete

REA ACADMICA DE
COMPUTACIN E INFORMTICA
En una base de datos de muchas relaciones, habr normalmente restricciones de integridad referencial
que correspondan a las interrelaciones de las entidades representadas por las relaciones. Por
ejemplo, en la base de datos de la figura anterior, la relacin EXAMEN tiene la clave primaria
(NUMERO_CURSO, NOMBRE_ESTUDIANTE). El atributo NOMBRE_ESTUDIANTE se refiere al
estudiante que hizo el examen, por tanto, se puede designar NOMBRE_ESTUDIANTE como clave ajena
de EXAMEN, refirindose a la relacin ESTUDIANTE.

Las restricciones de integridad de entidades establecen que ningn valor de clave primaria puede
ser nulo. Esto es porque el valor de la clave primaria se usa para identificar las tup las individuales
de una relacin; permitir valores nulos para la clave primaria implica que no se pueda identificar algunas
tup las. Por ejemplo, si dos o ms tupias tuvieran un valor nulo como clave primaria, no podramos
distinguirlas.

Las restricciones de clave y de integridad de la entidad se especifican en relaciones individuales. La
restriccin de integridad referencial, en cambio, se especifica entre dos relaciones, y se usa para
mantener la congruencia entre las tup las de las dos relaciones. Informalmente, la restriccin de
integridad referencial establece que una tupia de una relacin que haga referencia a otra relacin
debe referirse a una tup la existente en esa relacin.

Corresponde ncia de esquemas del modelo E-R al modelo relacional

Este apartado presenta una metodologa para el diseo lgico que tiene como objetivo el modelo
relacional. Se supone que el punto de partida es un esquema lgico ER. El resultado de la
correspondencia es un esquema relacional. Este consiste en un conjunto de definiciones de relaciones,
en el cual cada relacin tiene una clave primaria. Las relaciones producidas por la transformacin
de esquemas corresponden a entidades o bien a interrelaciones, y mantienen la misma forma
normal. El concepto de forma normal fue propuesto en la literatura relacional como una medida de la
ausencia de las anomalas o dificultades que surgen cuando se trata de insertar, eliminar o modificar
registros de las bases de datos relacinales. Cuanto ms alta sea la forma normal, mayor ser la
pureza o bondad de la definicin lgica del esquema relacional. Si el lector desea una explicacin
detallada de las formas normales, puede consultar en la siguiente prctica.

La metodologa propuesta en esta seccin convierte un esquema ER en un conjunto de entidades e
interrelaciones, tales que su correspondencia con el modelo relacional sea sencilla. Esta
correspondencia preparatoria consiste en dos actividades: 1) la eliminacin de identificadores
extemos (este paso tambin se asocia con la eliminacin de algunas interrelaciones), y 2) la eliminacin
de atributos compuestos y polivalentes del esquema.

Una vez completada esta correspondencia preparatoria, se est en condiciones de aplicar los
siguientes pasos:

1. Transformacin de cada entidad del esquema en una relacin.
2. Transformacin de cada interrelacin: las interrelaciones de muchos a muchos requieren una
relacin individual, mientras que las interrelaciones de uno a uno o
de uno a muchos pueden ser modeladas aadiendo atributos a las relaciones existentes.

Transformacin de entidades

TALLER DE MODELAMIENTO DE SOFTWARE
El modelo Relacional
Ing. CIP. Andrei Quispe Alderete

REA ACADMICA DE
COMPUTACIN E INFORMTICA
Este paso es bastante simple: se transforma cada entidad del esquema en una relacin. Los atributos y
la clave primaria de la entidad se convierten en los atributos y la clave primaria de la relacin. Un
ejemplo se muestra en la siguiente figura:

Transformacin de interrelaciones de uno a uno

Ahora debemos tratar de las Interrelaciones. Se empieza por considerar las interrelaciones binarias de
una manera general. Se vern las Interrelaciones de uno a uno, de uno a muchos y de muchos a
muchos de manera individual. El proceso de transformacin es tambin influido por las
cardinalidades mnimas de las dos entidades que participan en la interrelacin.
En principio, las dos entidades E1 y E2 que participan en la interrelacin producen relaciones
individuales; de otro modo se habran fusionado durante el diseo lgico independiente del modelo.
Respecto a la interrelacin, hay que distinguir si las dos entidades E1 y E2 tienen una participacin
total en la interrelacin, o si una o ambas tienen una participacin parcial en la misma. As, tenemos
los siguientes casos:

Integracin en una relacin. Esta opcin tiene sentido cuando la participacin de las dos entidades en
la interrelacin es total. Hay dos posibilidades:

Caso 1: Las dos entidades tienen las mismas claves primarias. Supngase que tanto CLIENTES como
INFO_ENVIO tienen la clave primaria NUM_CLIENTE. En este caso, las dos relaciones
correspondientes se integran en una relacin combinando todos los atributos e incluyendo la clave
primaria slo una vez. Este caso se ilustra en la figura (a)

Caso 2: Las dos entidades tienen claves primarias diferentes: Supngase que CLIENTE e INFO_ENVIO
tienen diferentes claves primarias, digamos NUM_CLIENTE, y (CODIGO_POSTAL, CALLE, NUM_CASA),
respectivamente. En este caso tambin se integran en una relacin combinando todos los atributos
e incluyendo las claves primarias de ambas. Una de las dos claves primarias ser la clave primaria
de la relacin resultante; por ejemplo, en la relacin que sigue se escoge NUM_CLIENTE.

ENVIOLCLIENTE (NUM_CLIENTE, NOMBRE_CLIENTE, NUM_CASA, CALLE, CODIGO_POSTAL)

TALLER DE MODELAMIENTO DE SOFTWARE
El modelo Relacional
Ing. CIP. Andrei Quispe Alderete

REA ACADMICA DE
COMPUTACIN E INFORMTICA

TALLER DE MODELAMIENTO DE SOFTWARE
El modelo Relacional
Ing. CIP. Andrei Quispe Alderete

REA ACADMICA DE
COMPUTACIN E INFORMTICA

Definicin de una relacin aparte.

Esta opcin se usa cuando una o la s dos entidades tienen una participacin parcial. Un ejemplo de cada
caso se muestra en las figuras (b) y (c).

Caso 1: Una entidad con participacin parcial. Esto se refiere, por ejemplo, a los clientes de un
banco, a los cuales el banco emite cero o una tarjetas de crdito. En la figura (b), cada tarjeta de
crdito debe pertenecer a un cliente, pero un cliente puede no tener tarjeta de crdito. En
este caso, las dos relaciones, CLIENTE, y TARJETA_DE_CREDITO, ya han sido creadas. Se define
una relacin adicional POSEE_TARJETA (NUM_CLIENTE, TIPO_TARJETA, NUM_TARJETA) usando
la clave primaria de las dos relaciones. Tanto NUM_CLIENTE como
(TIPO_TARJETA, NUM_TARJETA) son claves candidatas de POSEE_TARJETA, y por consiguiente pueden
ser declaradas como la clave primaria. Obsrvese que se puede usar la primera opcin en este caso
y representar todo en una sola relacin. En ese caso se debe escoger NUM_CLIENTE como clave
primaria de la relacin integrada; aquellos clientes que no posean tarjeta de crdito tendrn valores
nulos de los atributos TIPO_TARJETA, NUM_TARJETA. No se puede seleccionar (TIPO.TARJETA, y
NUM_TARJETA) como clave primaria de la relacin integrada, porque en este caso los clientes sin tarjeta
de crdito no podran ser representados.

Caso 2: Las dos entidades con participacin parcial. Considrese la interre-acin MATRIMONIO entre
las entidades VARN y HEMBRA. En este caso ambas tienen una participacin parcial en la interrelacin
MATRIMONIO. Para evitar valores nulos y representar tanto las entidades como la interrelacin, se crea
la relacin MATRIMONIO (NSS_VARON, NSS_HEMBRA, FECHA, DURACIN) adems de
las relaciones VARN y HEMBRA.

Transformacin de interrelaciones de uno a muchos

Considrese la interrelacin R entre dos entidades, E1 y E2; supongamos que R es una interrelacin de
uno a muchos. En este caso, se dar cuenta de la interrelacin incluyendo la clave primaria de E1 en
la relacin correspondiente a E2 como uno o ms atributos simples. Obsrvese que ya se ha dado
cuenta de los identificadores extemos. Por consiguiente, esta transferencia de la clave no tiene
propsitos de identificacin. Los posibles atributos de la interrelacin tienen que ser trasladados a la
relacin que modela la entidad E2. Otra vez son posibles dos casos:

Caso 1: La entidad en el lado de muchos tiene una participacin obligatoria. Esto est ejemplificado
en la siguiente figura (a), donde hay una interrelacin de uno a muchos entre ESTADO y CIUDAD,
y CIUDAD tiene una participacin total en la interrelacin; por tanto, la clave primaria
NOMBRE_ESTADO de ESTADO se incluye en la relacin CIUDAD.

Caso 2: La entidad en el lado de muchos tiene una participacin parcial. En la figura (b) hay
una interrelacin entre VENDEDOR y PEDIDO. Supngase que los pedidos pueden hacerse por medio
de los vendedores, en cuyo caso se aplica una tasa de descuento, y tambin directamente sin
vendedores, sin aplicar una tasa de
TALLER DE MODELAMIENTO DE SOFTWARE
El modelo Relacional
Ing. CIP. Andrei Quispe Alderete

REA ACADMICA DE
COMPUTACIN E INFORMTICA

descuento. As pues, existe la posibilidad de valores nulos de NOMBRE_VENDEDOR y
TASA_DESCUENTO en la relacin PEDIDO si se usan las siguientes correspondencias:



VENDEDOR (NOMBRE, NUM_TELEFONO)
PEDIDO (NUM_PEDIDO, FECHA, NOMBRE_VENDEDOR,
TASA_DESCUENTO)

Si el nmero relativo de esos pedidos es grande, y no se puede admitir valores nulos, una mejor
alternativa sera establecer tres relaciones (lo cual es el caso ms general):

TALLER DE MODELAMIENTO DE SOFTWARE
El modelo Relacional
Ing. CIP. Andrei Quispe Alderete

REA ACADMICA DE
COMPUTACIN E INFORMTICA
VENDEDOR (NOMBRE, NUM_TELEFONO)

PEDIDO (NUM_PEDIDO, FECHA)
PEDIDO_VENTAS (NUM_PEDIDO, NOMBRE_VENDEDOR,
TASA_DESCUENTO)

Obsrvese que las dos relaciones, PEDIDO y PEDIDO_VENTAS, describen pedidos. La primera atae a
todos los pedidos; PEDIDO-VENTAS contiene un sub- conjunto de todos los pedidos, aqullos hechos
a travs de vendedores. As, se tiene la restriccin adicional de que el conjunto de nmeros de pedidos
en PEDIDO_VENTAS est siempre incluido en el conjunto de nmeros de pedidos de la relacin
PEDIDO. Esta interrelacin se denomina dependencia de inclusin de NUM_PEDIDO en
PEDIDO_VENTAS respecto a NUM_PEDIDO en PEDIDO en el modelo relacional.

Transformacin de interrelaciones de muchos a muchos

En el caso de interrelaciones de muchos a muchos, la solucin no depende de la cardinalidad
mnima de la interrelacin. Supongamos que R es una interrelacin de muchos a muchos entre E1
y E2. Se crea una relacin nueva que tiene como clave primaria la combinacin de atributos que
constituyen las claves primarias tanto de E1 como de E2, y que incluye como atributos los atributos
de R. En el ejemplo de la figura de la siguiente pgina, una interrelacin de muchos a muchos
MATRICULADO_EN entre ESTUDIANTE y CURSO se modela como una nueva relacin
MATRICULADO_EN, que tiene como clave primaria el par (NUMERO- ESTUDIANTE, NUMERO-
CURSO), con SEMESTRE y NOTA como atributos. Obsrvese que NUMERO_ESTUDIANTE y
NUMERO_CURSO son claves ajenas y tienen restricciones referenciales respecto a las claves primarias
correspondientes.


Transformacin de interrelaciones n-arias y recursivas

Finalmente, hay que resolver los dos tipos de interrelaciones que quedan: las n-arias (n > 2) y las
recursivas. Las interrelaciones n-arias siguen las mismas reglas de transformacin que las binarias
de muchos a muchos: la relacin hereda todos los identificadores de las n entidades (que forman la
TALLER DE MODELAMIENTO DE SOFTWARE
El modelo Relacional
Ing. CIP. Andrei Quispe Alderete

REA ACADMICA DE
COMPUTACIN E INFORMTICA
clave de la nueva relacin). En algunos casos especiales, la clave obtenida de esta manera no es mnima,
y un subconjunto de claves primarias es de hecho la clave mnima. La clave mnima es aquella que
no contiene ninguna dependencia funcional. La siguiente figura muestra la interrelacin ternaria
SUMINISTRA entre PRODUCTO, PIEZA, y PROVEEDOR; la clave de la relacin SUMINISTRA es el tro
(CODIGO_PRODUCTO, CODIGO_PIEZA, CODIGO_PROVEEDOR). Esta clave no puede reducirse ms.



Como ejemplo de la reduccin de la clave por defecto en una correspondencia as, considrese la
interrelacin cuaternaria VENTA_COCHE entre COCHE, CLIENTE,
TALLER DE MODELAMIENTO DE SOFTWARE
El modelo Relacional
Ing. CIP. Andrei Quispe Alderete


REA ACADMICA DE
COMPUTACIN E INFORMTICA
VENTA_COCHE (NUM_COCHE, NOMBRE_CLIENTE,
NOMBRE_COMERCIANTE, NOMBRE_BANCO. PRECIO_COCHE,

transforma en una relacin SUPERVISOR_DE, cuyos atributos son
NOMBRE_DE_SUPERVISOR y NOMBRE_DE_SUBOR-DINADO (que son


COMERCIANTE y BANCO_FINANCIADOR de la figura (b). La relacin resultante tiene la siguiente clave
primaria por defecto:


IMPORTE_PRESTAMO, TASA_INTERES)

Sin embargo, si un coche pertenece estrictamente a un cliente, NUM_COCHE determina
funcionalmente a NOMBRE_CLIENTE, y ste puede ser retirado de la clave. De manera similar, si
un comerciante usa solamente un banco para el financiamiento, NOMBRE_COMERCIANTE determina
funcionalmente a NOMBRE-
_BANCO, y ste puede ser retirado de la clave.

Una interrelacin recursiva R de una entidad E a s misma se modela como una nueva relacin que
incluye dos atributos; ambos corresponden a la clave primaria de E, y sus nombres corresponden a los
dos papeles de E en la interrelacin. Uno de ellos (o ambos) se elige(n) como clave primaria para
la nueva relacin, de acuerdo con el tipo de la interrelacin (uno a uno, uno a muchos, muchos a
muchos), como se expuso anteriormente. En la siguiente figura la interrelacin cclica
SUPERVISOR_DE se


versiones rebautizadas de los atributos NOMBRE de EMPLEADO). Si un empleado puede tener varios
supervisores, la interrelacin es de muchos a muchos, y la clave primaria de SUPERVISOR_DE
contiene los dos atributos. Por otra parte, si un empleado slo puede tener un supervisor, la
interrelacin es de uno a muchos; la clave primaria de SUPERVISOR_DE es entonces slo
NOMBRE_DE_SUBORDINADO. Como esta clave es la misma que NOMBRE en EMPLEADO, la relacin
SUPERVISOR_DE es similar a EMPLEADO y puede ser integrada en EMPLEADO, con
NOMBRE_DE_SUPERVISOR como atributo adicional. Esta ltima solucin de una sola relacin ser
en general la preferida, a menos que un empleado pueda existir sin supervisor, porque entonces
se tendran valores nulos de NOMBRE_DE_SUPERVISOR para algunos empleados.
En este punto se ha completado la correspondencia del esquema lgico ER al modelo
relacional. Todos los rasgos del esquema ER estn modelados como relaciones con una clave
primaria.

You might also like