MODELO
RELACIONAL
INTRODUCCIÓN
Edgar Frank Codd a
finales definió las bases del modelo relacional a finales de los 60. Trabajaba
para IBM empresa que tardó un poco en implementar sus bases. Pocos años después
el modelo se empezó a implementar cada vez más, hasta ser el modelo de bases de
datos más popular
En las bases de Codd
se definían 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: En 1978, IBM desarrolla el lenguaje QBE. Que
aproximaba la idea relacional a sus ficheros VSAM. En 1979 Oracle se convierte
en el primer producto comercial DBMS relacional (RDBMS). En 1980 aparece Ingres
que utilizaba el lenguaje Quel que implementaba el cálculo relacional.
EVOLUCIÓN DEL MODELO
RELACIONAL
Año
Hecho
1970
Codd publica
las bases del modelo relacional
1971-72
Primeros desarrollos teóricos
1973-78 Primeros prototipos
1978
Aparece el lenguaje QBE
1979
Aparece Oracle
1980 Aparece
Ingres
1981
Aparece SQL
1982
Aparece DB2
1986
ANSI normaliza el SQL (SQL/ANSI
1987
SQL de ISO
1990
Versión dos del modelo relacional (RM/V2)
1992
SQL 92
1998
SQL 3
DISEÑO
CONCEPTUAL DE BASES DE DATOS
Modelo relacional
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).
NOMBRE
ATRIBUTO 1 ATRIBUTO 2 ATRIBUTO 3 .... ATRIBUTO N
Valor 1,1 valor 1,2 valor 1,3 .... Valor 1,n _ tupla 1
Valor 2,1 valor 2,2 valor 2,3 .... Valor 2,n _ tupla 2
..... ..... ...... .... . .... _ ....
Valor m,1
valor m,2
valor m,3 .... Valor m, n _tupla
m
Ilustración 3,
Representación de una tabla en el modelo relacional
TERMINOLOGÍA
RELACIONAL
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
DOMINIOS
Los dominios suponen
una gran mejora en este modelo ya que permiten especificar los posibles valores
válidos para un atributo. Cada dominio incorpora su nombre y una definición del
mismo. Ejemplos de dominio:
Dirección: 50
caracteres
Nacionalidad:
Español, Francés, Italiano,...
Los dominios pueden
ser también compuestos a partir de otros (año, mes y día = fecha)
CLAVES
Clave candidata
Conjunto de atributos
de una tabla que identifican unívocamente cada tupla de la tabla.
Clave primaria
Clave candidata que
se escoge como identificador de las tuplas.
Clave alternativa
Cualquier clave
candidata que no sea primaria
Clave externa o secundaria
Atributo de una tabla
relacionado con una clave de otra tabla.
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 del valor verdadero o falso, existe el valor para
los 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
Diseño conceptual de bases de datos
Modelo relacional
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
SEMÁNTICAS
El modelo relacional
permite a los usuarios 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.
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
Copyright-Copyleft: © Jorge Sánchez 2004
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.
8>
Independencia
física. Los datos deben de ser accesibles desde la lógica de la base de
datos aun 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
No hay comentarios:
Publicar un comentario