Unidad
Ing. Miguel Bañuelos Mercado
El modelo Relacional se ha
establecido como el
principal modelo de datos
para las aplicaciones de
procesamiento de datos, no
por ser cómodos de usar,
sino porque sirven como
base para los lenguajes
formales de consulta.
Este modelo está basado en el
concepto de relación. Una
relación es un conjunto de n-
tuplas. Una tupla, al contrario
que un segmento, puede
representar tanto entidades
como interrelaciones N:M. Los
lenguajes matemáticos sobre
los que se asienta el modelo
relacional, aportan un sistema
de acceso y consultas orientado
al conjunto
Una Base de Datos Relacional consiste en un conjunto de Tablas.
A cada una se le da un nombre exclusivo.
Cada Fila de la tabla representa una relación entre un conjunto
de valores.
A la cabecera de cada columna se le asigna el nombre de los
Atributos.
Para los atributos existe un conjunto de valores permitidos
denominado Dominio de ese atributo.
Las dos características más importantes del modelo son:
– Trabaja con estructuras de datos muy simples: Tablas
bidimensionales.
– Es no navegacional, no hace falta hacer referencia a la
forma de acceder a los datos.
En este modelo la base de datos es vista por el usuario como
una relación de tablas. Cada fila de la tabla es un registro o
tupla y los atributos con columnas o campos.
Relación= Conjunto ordenado de n ocurrencias
Atributos= Campos de una tabla, propiedades de las
entidades
Dominio= Conjunto donde los atributos toman valores
Tupla= Fila de una tabla
Grado de una relación= Numero de atributos o
columnas
Cardinalidad= Numero de filas o tuplas de una relación
Para dar una definición más adecuada desde el punto de
vista de las bases de datos, es preciso distinguir dos
conceptos en la definición de la relación:
Esquema de relación: es la parte definitoria y estática de
la relación (cabecera cuando la relación se percibe como
una tabla). Es invariante en el tiempo.
Extensión de la relación: conjunto de tuplas que, en un
momento determinado, satisface el esquema de la
relación y se encuentran almacenadas en la base de
datos. Es variante en el tiempo.
Clave primaria= Es un conjunto de atributos que
identifica a cada tupla de una relación y además no hay
un subconjunto de ellos que cumplan esa propiedad.
Clave foránea= Es un conjunto de atributos de una tabla
que son clave primaria en otra tabla
Se trata de unas condiciones de obligado cumplimiento
por los datos de la base de datos.
Las hay de varios tipos:
• Inherentes
• Semánticas
• No puede haber dos tuplas iguales en una misma
relación
• El orden de las tuplas no es significativo
• El orden de los atributos no es significativo
El modelo relacional permite a los usuario incorporar
restricciones personales a los datos.
Las principales son:
1. Clave primaria. Hace que los atributos marcados
como clave primaria no puedan repetir valores.
2. Unicidad. Impide que los valores de los atributos
marcados de esa forma puedan repetirse.
3. Obligatoriedad. Prohíbe que el atributo marcado de
esta forma no tenga ningún valor.
El modelo relacional permite a los usuario incorporar
restricciones personales a los datos.
Las principales son:
3. Integridad referencial. Prohíbe colocar valores en
una clave externa que no estén reflejados en la tabla
donde ese atributo es clave primaria.
4. Regla de validación. Condición que debe de cumplir
un dato concreto para que sea actualizado.
• Integridad de la Entidad: Ningun componente de la
clave primaria puede tomar valores nulos o
desconocidos, porque entonces no se podrían
distinguir dos entidades.
• Integridad Referencial: Cualquier valor que tome un
atributo en una relación del que es clave foránea,
debe existir en la relación del que es clave primaria.
Preocupado por los productos que decían ser sistemas
gestores de bases de datos relacionales (RDBMS) sin
serlo, Codd publica las 12 reglas que debe cumplir todo
DBMS para ser considerado relacional. Estas reglas en
la práctica las cumplen pocos sistemas relacionales.
1. Información. Toda la información de la base de datos
debe estar representada explícitamente en el esquema
lógico. Es decir, todos los datos están en las tablas.
2. Acceso garantizado. Todo dato es accesible sabiendo
el valor de su clave y el nombre de la columna o atributo
que contiene el dato.
3. Tratamiento sistemático de los valores nulos. El
DBMS debe permitir el tratamiento adecuado de estos
valores.
4. Catálogo en línea basado en el modelo relacional. Los
metadatos deben de ser accesibles usando un esquema
relacional.
5. Sublenguaje de datos completo. Al menos debe de
existir un lenguaje que permita el manejo completo de
la base de datos. Este lenguaje, por lo tanto, debe
permitir realizar cualquier operación.
6. Actualización de vistas. El DBMS debe encargarse de
que las vistas muestren la última información
7. Inserciones, modificaciones y eliminaciones de dato
nivel. Cualquier operación de modificación debe actuar
sobre conjuntos de filas, nunca deben actuar registro a
registro.
[Link] física. Los datos deben de ser accesibles
desde la lógica de la base de datos aún cuando se
modifique el almacenamiento.
9. Independencia lógica. Los programas no deben verse
afectados por cambios en las tablas
[Link] de integridad. Las reglas de integridad
deben almacenarse en la base de datos (en el diccionario
de datos), no en los programas de aplicación.
[Link] de la distribución. El sublenguaje de
datos debe permitir que sus instrucciones funciones
igualmente en una base de datos distribuida que en una
que no lo es.
[Link] subversión. Si el DBMS posee un lenguaje que
permite el recorrido registro a registro, éste no puede
utilizarse para incumplir las reglas relacionales.
Se debe diferenciar entre el Esquema de la BD (diseño lógico) y
el ejemplar de la BD (una instantánea de los datos de la misma
en un momento dado).
Se toma el convenio de utilizar nombres en minúsculas para las
Relaciones y nombres que comiencen con letra mayúscula para
los Esquemas.
Tomaremos el siguiente ejemplo E-R para su traducción a
Relacional:
Película (id_película, nombre, año)
Actor(id_actor, nombre, apellido)
Estudio(id_estudio, nombre)
Actua(id_película, id_actor)
Produce(id_película, id_actor)
Entonces las tablas resultantes siguiendo la descripción anterior son:
En el siguiente ejemplo vemos a la Super Clase “Vehículo” y las
Sub Clases “Bus”, “Camión” y “Coche”, en las cuales solo dos de
ellas tienen atributos.
El ejemplo anterior quedaría de la siguiente manera:
Vehículo (idv, matrícula)
Propietario(idp, nombre)
Dueño(idv, idp)
Bus(idv, pasajeros)
Camión(idv, ejes)
Coche(idv)