Modelo relacional
Unidad 3
Actividades
Elaborar un mapa conceptual sobre los elementos del modelo relacional.
(15%)
Elabora un mapa conceptual sobre los tipos de claves y aplicación de cada
una. (15%).
Elaborar un cuadro sinóptico sobre los tipos de integridad para las BD. (15%)
Elaborar un resumen sobre los pasos para convertir del modelo E-R a
relacional. (10%)
Ejercicios del modelo relacional. (15%)
Evaluación de la unidad. (30%).
Introducción
El modelo relacional se ha establecido actualmente como el principal modelo
de datos para las aplicaciones de procesamiento de datos. Ha conseguido la
posición principal debido a su simplicidad, que facilita el trabajo del
programador en comparación con otros modelos anteriores como el de red y
el jerárquico.
Introducción
Una base de datos relacional consiste en un conjunto de tablas, a cada una de
las cuales se le asigna un nombre exclusivo. Cada tabla tiene una estructura
donde se representaron las bases de datos E-R mediante tablas.
Cada fila de la tabla representa una relación entre un conjunto de valores.
Dado que cada tabla es un conjunto de dichas relaciones, hay una fuerte
correspondencia entre el concepto de tabla y el concepto matemático de
relación, del que toma su nombre el modelo de datos relacional.
Historia
En 1970 Edgar F. Codd publicó un trabajo proponiendo un nuevo modelo de
datos que perseguía como objetivo general la flexibilidad y sencillez; el
modelo ofrece estructuras de datos simples y lenguajes sencillos para los
usuarios, facilitando la comprensión y utilización por estos.
Sin menoscabo de este objetivo de sencillez, el autor se propone fundamentar
el modelo sobre una sólida base matemática.
Historia
La aparición del modelo relacional representa un verdadero hito en el desarrollo
de las bases de datos, ya que ha marcado tres etapas diferentes, conocidas como
generaciones de los SGBD’s:
• Pre-relacionales. Los SGBD se basan en modelos Codasyl (en red) y
Jerárquico y ficheros planos (flat files).
• Relacionales. Los sistemas relacionales ganan madurez en el mercado y los
productos basados en este modelo van desplazando poco a poco a los sistemas
basados en punteros de la etapa prerelacional.
• Post-relacionales. Aparecen manifiestos de otros modelos de datos, en
especial los orientados a objeto. Se distinguen manifiestos puristas OO que
dan lugar a SGBDs-OO puros y, en paralelo, corrientes evolutivas del modelo
relacional que relajan hipótesis básicas del modelo original de Codd para
ofrecer estructuras de datos más complejas.
Evolución del modelo relacional
Objetivo
Los objetivos de este modelo:
Independencia física. La forma de almacenar los datos, no debe influir en su
manipulación lógica
Independencia lógica. Las aplicaciones que utilizan la base de datos no deben
ser modificadas por que se modifiquen elementos de la base de datos.
Flexibilidad. La base de datos ofrece fácilmente distintas vistas en función de
los usuarios y aplicaciones.
Uniformidad. Las estructuras lógicas siempre tienen una única forma
conceptual (las tablas)
Sencillez.
Estructura básica
Relación.
Es la estructura básica del modelo relacional. Con una relación es posible
representar tanto instancias de una entidad del universo real como
interrelaciones entre entidades de distinto tipo. Es capaz de recoger
interrelaciones de cardinalidad múltiple. Su representación informal es una
tabla.
Estructura básica
Tablas
Las bases de datos relacionales se basan en el uso de tablas (también se las
llama relaciones). Las tablas se representan gráficamente como una
estructura rectangular formada por filas y columnas.
Cada columna almacena información sobre una propiedad determinada de la
tabla (se le llama también atributo), nombre, dni, apellidos, edad,.... Cada
fila posee una ocurrencia o ejemplar de la instancia o relación representada
por la tabla (a las filas se las llama también tuplas).
Estructura básica
Dominio.
Es el conjunto válido de valores de referencia para definir propiedades o
atributos. Un dominio es un conjunto nominado y homogéneo de valores.
Cada dominio puede definirse de dos maneras:
• Por extensión (enumeración de sus elementos): días de la semana = {lunes,
martes, miércoles, jueves, viernes, sábado, domingo}
• Por intensión (mediante una propiedad que recoja el recorrido de sus valores
admisibles): edad: entero / 0 ≤ edad ≤ 200.
Un dominio compuesto se puede definir como una combinación de dominios
simples a la que se puede aplicar ciertas restricciones.
Ej.: el dominio compuesto denominado Fecha se construye por agregación de
los dominios simples Día, Mes y Año, incorporando las restricciones a fin de
que no aparezcan valores inválidos como: 29/2/2003, 31/4/2004.
Estructura básica
Atributo.
Representa las propiedades de la relación. Un atributo, necesariamente ha de
definirse sobre un dominio. Su representación informal es una columna.
Un atributo (A) es la interpretación de un determinado dominio en una
relación, es decir el “papel” que juega el dominio en la misma.
D = Dom (A) ⇒ D es el dominio de A
Un atributo está siempre asociado a una relación, mientras que un dominio tiene
existencia propia con independencia de las relaciones que existan en el modelo.
Un atributo representa una propiedad de una relación.
Un atributo toma valores de un dominio.
Varios atributos distintos (de la misma o de diferentes relaciones) pueden tomar
sus valores del mismo dominio.
Estructura básica
Tupla.
Es una ocurrencia o instancia dentro de una relación. Una tupla permite
referenciar una instancia de una entidad en el universo o la interrelación
específica o concreta entre instancias de entidades. Su representación
informal es una fila. Una relación tiene un “conjunto” de tuplas.
La relación es el elemento fundamental del modelo relacional.
Estructura básica
Grado.
Se define como el número de dominios Di
Cardinalidad.
Se define como el número de tuplas de la relación.
Resumen
Tupla. Cada fila de la tabla (cada ejemplar que la tabla representa)
Atributo. Cada columna de la tabla
Grado. Número de atributos de la tabla
Cardinalidad. Número de tuplas de una tabla
Dominio. Conjunto válido de valores representables por un atributo.
Tipos de tablas
Persistentes. Sólo pueden ser borradas por los usuarios:
Base. Independientes, se crean indicando su estructura y sus ejemplares.
Vistas. Son tablas que sólo almacenan una definición de consulta, resultado de la
cual se produce una tabla cuyos datos proceden de las bases o de otras vistas e
instantáneas. Si los datos de las tablas base cambian, los de la vista que utiliza
esos datos también cambia.
Instantáneas. Son vistas (creadas de la misma forma) que sí que almacenan los
datos que muestra, además de la consulta que dio lugar a esa vista. Sólo modifican
su resultado (actualizan los datos) siendo refrescadas por el sistema cada cierto
tiempo.
Temporales. Son tablas que se eliminan automáticamente por el sistema.
Pueden ser de cualquiera de los tipos anterior
Contexto matemático del MR
Concepto de relación matemática: Puede definirse una relación apoyándose
en la teoría de conjuntos:
Cada elemento de la relación (t:tupla) es una lista de n valores, tales que el valor
i-ésimo corresponde a una propiedad que toma valores del dominio i-ésimo.
Contexto matemático del MR
El número de tuplas de la relación recibe el nombre de Cardinalidad y el
número de dominios Di el nombre de Grado
Una relación es un conjunto, luego:
• No existen tuplas duplicadas
• Las tuplas no están ordenadas.
Esta definición conjuntista de relación ofrece una granularidad a nivel de
tupla. La granularidad a nivel de tupla ofrece una fuerte dependencia entre
estructuras de datos y programas, de modo que los cambios en la estructura
del esquema de una relación puede obligar a modificar los programas de
aplicación que acceden a dicha relación.
Concepto de relación en el modelo
relacional
Con objeto de conseguir una granularidad más fina y mejorar la
independencia de datos, Codd propone relajar la hipótesis de
correspondencia posicional de valores de atributos en una tupla respecto a
sus dominios. Se redefine una relación como:
Ejemplo:
EJEMPLO
Se desea mantener información actualizada en una base de datos para lo cual se
cuenta con la siguiente información:
1. Se sabe que una editorial puede publicar varios libros, teniendo la exclusividad
de la publicación. De la editorial se tiene RIF, Nombre, dirección, ciudad, nombre
de la persona Contacto, número de Teléfono, Número de Fax y correo.
2. Por cada autor se desea conocer sus datos personales (Nombre. Apellido, CI,
dirección, teléfono, fecha Nac). Un autor puede escribir varios Libros, pero un
libro sólo está escrito por un autor.
3. Las librerías tienen muchos libros y un libro puede estar en muchas librerías.
4. Las librerías tiene un nombre único, dirección, un encargado, número de
teléfono y número de Fax.
5. De cada libro se tiene Título, Autor, año de publicación, precio, y el ISBN
(Número de Identificación Estándar) el cual es único.
Solución
Ejercicio
Le contratan para hacer una BD que permita apoyar la gestión de un sistema
de ventas. La empresa necesita llevar un control de proveedores, clientes,
productos y ventas. Un proveedor tiene un RUT, nombre, dirección, teléfono y
página web. Un cliente también tiene RUT, nombre, dirección, pero puede
tener varios teléfonos de contacto. La dirección se entiende por calle,
número, comuna y ciudad. Un producto tiene un id único, nombre, precio
actual, stock y nombre del proveedor.
Además se organizan en categorías, y cada producto va sólo en una categoría.
Una categoría tiene id, nombre y descripción. Por razones de contabilidad, se
debe registrar la información de cada venta con un id, fecha, cliente,
descuento y monto final. Además se debe guardar el precio al momento de la
venta, la cantidad vendida y el monto total por el producto.
Solución
Ejercicio
Una compañía aérea necesita una base de datos para registrar la información
de sus vuelos.
Los vuelos están caracterizados por un Id, la fecha y los aeropuertos de origen
y destino. Cada vuelo es realizado por un avión. Los aviones tienen una
matrícula que los identifica, el fabricante, un modelo e información sobre su
capacidad (número máximo de pasajeros) y autonomía de vuelo (en horas). La
tripulación asignada al vuelo está formada por el personal de la propia
compañía.
De cada trabajador se conoce su id, su nombre y su categoría profesional, así
como el puesto que ocupa en cada vuelo en particular. Por último, para cada
vuelo, se almacena la lista completa de pasajeros, con su dni, el nombre, el
asiento que ocupa y su clase (turista, primera o business).
Convertir modelo ER a relacional
Un esquema conceptual basado en el modelo Entidad-Relación puede ser
transformado, de acuerdo con unas sencillas reglas, en un esquema lógico,
basado en el modelo relacional, y manipulable por un SGBD.
Regla 1
Regla 2
Regla 3
Regla 4
Regla 5
Regla 6
Resultado final
Ejercicio
Nulos
Los valores nulos indican contenidos de atributos que no tienen ningún valor.
En claves secundarias indican que el registro actual no está relacionado con
ninguno. En otros atributos indica que no se puede rellenar ese valor por la
razón que sea.
Las bases de datos relacionales admiten utilizar ese valor en todo tipo de
operaciones. Eso significa definir un tercer valor en la lógica. Además de el
valor verdadero o falso, existe el valor para los nulos.
Nulos
La razón de este tercer valor ambiguo es que comparar dos atributos con
valor nulo, no puede resultar ni verdadero, ni falso. De hecho necesitamos
definir la lógica con este valor:
verdadero Y (AND) nulo da como resultado, nulo
falso Y (AND) nulo da como resultado, falso
verdadero O (OR) nulo da como resultado, verdadero
falso O nulo da como resultado nulo
la negación de nulo, da como resultado nulo
Restricciones
Se trata de unas condiciones de obligado cumplimiento por los datos
de la base de datos. Las hay de varios tipos.
INHERENTES Son aquellas que no son determinadas por los usuarios, sino
que son definidas por el hecho de que la base de datos sea relacional. Por
ejemplo:
No puede haber dos tuplas iguales
El orden de las tuplas no importa
El orden de los atributos no importa
Cada atributo sólo puede tomar un valor en el dominio en el que está inscrito
Restricciones
SEMÁNTICAS
El modelo relacional permite a los usuario incorporar restricciones personales
a los datos. Las principales son:
Clave primaria. Hace que los atributos marcados como clave primaria no puedan
repetir valores.
Unicidad. Impide que los valores de los atributos marcados de esa forma, puedan
repetirse.
Obligatoriedad. Prohíbe que el atributo marcado de esta forma no tenga ningún
valor
Integridad referencial. Prohíbe colocar valores en una clave externa que no estén
reflejados en la tabla donde ese atributo es clave primaria.
Regla de validación. Condición que debe de cumplir un dato concreto para que sea
actualizado.
Claves en el modelo relacional
Al manejar cualquier estructura de datos se hace necesario distinguir
elementos en conjuntos de datos. Intuitivamente, un identificador, en
general, es un subconjunto de propiedades que permite distinguir o
identificar elementos dentro de dicho conjunto.
En general, pueden existir distintos identificadores en una estructura de
datos.
Concepto de superclave
En el modelo relacional, como una relación es un conjunto, no puede tener
elementos duplicados, luego está implícita la existencia de, al menos un
identificador para las tuplas de la relación.
Una superclave cumple la condición de unicidad:
Clave Candidata
De la definición de relación se deriva que siempre existe, al menos, una clave
candidata (al ser una relación un conjunto y no existir dos tuplas iguales, el
conjunto de todos los atributos siempre tiene que identificar unívocamente a
cada tupla).
El concepto de clave es muy relevante en el modelo relacional y representa el
mecanismo para referenciar las tuplas de una relación
Clave Primaria
Una relación puede tener más de una clave candidata.
La clave primaria (Primary Key) es la clave candidata que el usuario escoge
para identificar las tuplas de la relación (siempre existe clave primaria).
Clave Alternativa
Las claves alternativas (Alternative Key) son las claves candidatas que no han
sido escogidas como clave primaria.
Clave Ajena
Las claves ajenas son el mecanismo de referencia del MR.
Permite representar interrelaciones 1:1 y 1:m incluyendo la clave primaria de
la relación referenciada en la relación desde que se hace la referencia.
También es posible representar interrelaciones múltiples (m:n) definiendo una
nueva relación cuya clave primaria se compone de las claves primarias de las
relaciones referenciadas, actuando, a la vez, dichas claves como claves
ajenas de dichas relaciones.
Ejemplo
Reglas de integridad del MR
Integridad de la entidad
La regla de integridad de la entidad es el mecanismo que gobierna el
comportamiento de la clave primaria de una relación, de modo que la
representación de entidades en el modelo relacional garantice la
identificación o distinción de las mismas en el universo de modelado. "Ningún
atributo que forme parte de la clave primaria de una relación puede tomar un
valor nulo"; es decir, un valor desconocido o inexistente.
Justificación de la regla
I) Si Pk es un atributo elemental, p.ej. DNI del alumno, éste no puede tomar
el valor null, puesto que si la propiedad es desconocida, significa que en el
mundo modelado, no se conoce ¿Quién es el alumno? Y por tanto tampoco
podría distinguirse de otro alumno; esto independientemente de que sólo
haya una tupla con ese valor.
II) Si Pk está formada por un descriptor compuesto, P.ej. (tienda,
dni:cliente, fecha_pedido) como subconjunto de atributos elegido para la
identificar pedidos en una tienda realizados por un cliente; si se estima que
en algún caso, es decir en alguna tupla, con la (tienda y el dni:cliente) puede
identificarse dicha tupla es que, en general, puede desecharse la
fecha_pedido para identificar las tuplas del pedido, con lo que esto
contradice que (tienda, dni:cliente, fecha_pedido) sea clave primaria, pues
no cumple la condición de minimalidad; (tienda, dni:cliente, fecha_pedido)
sería una superclave.
Integridad referencial
La regla de integridad referencial gobierna las situaciones de representación
de interrelaciones en el universo de discurso, de modo que se representan
vínculos existentes o inexistentes, pero se eviten referencias no permitidas.
Justificación de la regla:
I) Si FK referencia una tupla, p.ej. editorial del libro, si toma un valor no
nulo, este valor necesariamente ha de corresponder a una tupla de editorial
existente en la relación de editoriales. No se admiten un valor que no esté
debidamente referenciado.
II) Si FK no referencia una tupla, El valor del código de departamento de un
profesor es nulo; esto significaría que el profesor no está asignado a ningún
departamento (si este supuesto semántico tiene cabida en el universo
modelado).
Ejemplo
las 12 reglas de Codd
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. Las reglas son:
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
las 12 reglas de Codd
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.
las 12 reglas de Codd
8> Independencia 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
10> Independencia 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.
11> Independencia 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.
12> No subversión. Si el DBMS posee un lenguaje que permite el recorrido
registro a registro, éste no puede utilizarse para incumplir las reglas
relacionales.
Ejercicios
Mundial de fútbol
Construir el modelo relacional que refleje toda la información necesaria para
almacenar la información relativa a algunos aspectos del campeonato mundial
de fútbol considerando los supuestos semánticos siguientes:
1. Un jugador pertenece a un único equipo y no hay dos jugadores con el
mismo nombre.
2. Un jugador puede actuar en varios puestos distintos, pero en un
determinado partido sólo puede jugar en un puesto.
3. En cada partido intervienen varios colegiados.
4. Un colegiado puede realizar una función en un partido y otra distinta en
otro partido.
5. Es obligatorio en todo momento que un jugador pertenezca a un equipo
determinado y no podría cambiar de equipo a lo largo del mundial.
Ejercicio 2
Se desea mantener una base de datos para una cadena de farmacias
distribuida en diferentes ciudades. Cada farmacia tiene sus empleados
propios y un farmacéutico. Por cada ciudad existe un único farmacéutico;
esto es, si en una ciudad hubiera más de una farmacia, el mismo
farmacéutico estaría afectado a todas las farmacias de esa ciudad. Cada
farmacia tiene a su vez su stock de medicamentos. El mismo se mantiene por
medicamento y presentación.
Los medicamentos se organizan según la o las monodrogas que lo componen,
su presentación (por ejemplo ampollas de 5 unidades, jarabe de 100ml,
inyecciones por 10 unidades, pomada 60gr, etc.), el laboratorio que lo
comercializa, y su acción terapéutica (analgésico, antibiótico, etc.). Por cada
medicamento se mantiene su precio y la cantidad en existencia del mismo. El
sistema deberá permitir consultar la base de datos de diferentes alternativas
para medicamentos compuestos por una monodroga, medicamentos de un
laboratorio, presentaciones de un medicamento, entre otras.
Lenguajes de consulta
Un lenguaje de consulta es un lenguaje en el que un usuario solicita
información de la base de datos. Estos lenguajes suelen ser de un nivel
superior que el de los lenguajes de programación habituales.
Los lenguajes de consulta pueden clasificarse como procedimentales o no
procedimentales.
En los lenguajes procedimentales el usuario instruye al sistema para que
lleve a cabo una serie de operaciones en la base de datos para calcular el
resultado deseado.
En los lenguajes no procedimentales el usuario describe la información
deseada sin dar un procedimiento concreto para obtener esa información.
Lenguajes de consulta
Lenguajes de consulta formales para BDR
•Algebra relacional (Procedimental)
•Cálculo relacional (No procedimental)
Lenguajes de consulta (Algebra
relacional)
Conjunto de operaciones usadas para manipular relaciones.
Estas operaciones toman relaciones como operandos y regresan relaciones que a
su vez pueden ser manipuladas. ⇒ MR es cerrado.
Los operadores:
Unión, diferencia, intersección. Con el significado usual en conjuntos,
aplicado a relaciones.
Selección. Selecciona ciertas tuplas de una relación.
Proyección. Selecciona ciertas columnas de una relación.
Productos y joins. Composición de relaciones.
Renombrado de relaciones y atributos
Lenguajes de consulta (Cálculo
relacional)
Es un lenguaje de consulta no procedimental
Describe la información deseada sin dar un procedimiento específico para
obtenerla.