Modelo Relacional
3.1 Estructura Básica
Actualmente, para la mayoría de las aplicaciones
de gestión que utilizan bases de datos, el modelo más empleado es el modelo
relacional, por su gran versatilidad, potencia y por los formalismos matemáticos
sobre los que se basa.
Este modelo permite representar la información
del mundo real de una manera intuitiva, introduciendo conceptos cotidianos y
fáciles de entender por cualquier inexperto. Asimismo, mantiene información
sobre las propias características de la base de datos (metadatos), que facilitan
las modificaciones, disminuyendo los problemas ocasionados en las aplicaciones
ya desarrolladas. Por otro lado, incorpora mecanismos de consulta muy potentes,
totalmente independientes del S.G.B.D., e incluso de la organización física
de los datos; el propio S.G.B.D. es el encargado de optimizar estas preguntas en
formato estándar, a sus características propias de almacenamiento.
El modelo relacional fue propuesto por E.F. Codd
en los laboratorios de IBM en California. Se trata de un modelo lógico [Irene
Luque Ruiz- Ed. Ra-ma], que establece una estructura sobre los datos, aunque
posteriormente éstos puedan ser almacenados de múltiples formas para aprovechar
características físicas concretas de la máquina sobre la que se implante la base
de datos realmente. Es algo así como guardar unos libros en una biblioteca;
dependiendo del número de salas de la biblioteca, del tamaño y forma de cada una
de ellas, su número de estanterías, y en definitiva, de las características
físicas del recinto, podremos disponer los libros de una forma u otra para hacer
más cómoda y fácil su consulta y acceso. Los libros son los mismos, pero pueden
ubicarse de muy distintas formas.
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 parecida a la presentada en el Capítulo 2, 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.
El nombre de modelo relacional viene de la
estrecha relación que existe entre el elemento básico de este modelo, y el
concepto matemático de relación. Podemos decir que una relación R sobre los
conjuntos D1, D2, .., Dn, se define como:
R ** D1 × D2 × ... × Dn
donde los conjuntos D1, D2, .., Dn pueden ser
cualesquiera, e incluso estar repetidos.
Los matemáticos definen las relaciones como
subconjuntos del producto cartesiano de la lista de dominios.
Lectura EL MODELO RELACIONAL
3.2 Esquema de la Base de Datos.
El Esquema de una Base de datos (en Inglés
Database Schema) describe la estructura de una Base de datos, en un lenguaje
formal soportado por un Sistema administrador de Base de datos (DBMS). En una
Base de datos Relacional, el Esquema define sus tablas, sus campos en cada tabla
y las relaciones entre cada campo y cada tabla.
El esquema es generalmente almacenado en un
Diccionario de Datos. Aunque generalmente el esquema es definido en un lenguaje
de Base de datos, el término se usa a menudo para referirse a una representación
gráfica de la estructura de base de datos.
Niveles de
Esquema de Base de datos
- Esquema Conceptual, un mapa de conceptos y sus relaciones.
- Esquema Lógico, un mapa de las entidades y sus atributos y las relaciones.
- Esquema Físico, una aplicación de un esquema lógico.
- Esquema Objeto, Base da datos Oracle Objeto.
El concepto de relación se corresponde con el
concepto de variable de los lenguajes de programación. El concepto de esquema de
la relación se corresponde con el concepto de definición de tipos de los
lenguajes de programación.
Resulta conveniente dar un nombre a los esquemas
de las relaciones, igual que se dan nombres a las definiciones de tipos en los
lenguajes de programación. Se adopta el convenio de utilizar nombres en
minúsculas para las relaciones y nombres que comiencen por una letra mayúscula
para los esquemas de las relaciones. Siguiendo esta notación se utilizará
Esquema-cuenta para denotar el esquema de la relación de la relación cuenta. Por
tanto,
Esquema-cuenta = (número-cuenta, nombre-sucursal,
saldo)
Se denota el hecho de que cuenta es una relación
de Esquema-cuenta mediante cuenta (Esquema-cuenta)
En general, los esquemas de las relaciones
incluyen una lista de los atributos y de sus dominios correspondientes. La
definición exacta del dominio de cada atributo no será relevante hasta que se
discuta el lenguaje SQL.
El concepto de ejemplar de relación se
corresponde con el concepto de valor de una variable en los lenguajes de
programación. El valor de una variable dada puede cambiar con el tiempo; de
manera parecida, el contenido del ejemplar de una relación puede cambiar con el
tiempo cuando la relación se actualiza. Sin embargo, se suele decir simplemente
«relación» cuando realmente se quiere decir «ejemplar de la relación».
Como ejemplo de ejemplar de una relación,
considérese la relación sucursal. El esquema de esa relación es
Esquema-relación = (nombre-sucursal,
ciudad-sucursal, activos)
Obsérvese que el atributo nombre de la
sucursal aparece tanto en Esquema-sucursal como en
Esquema-cuenta. Esta duplicidad no es una coincidencia. Más bien,
utilizar atributos comunes en los esquemas de las relaciones es una manera de
relacionar las tuplas de relaciones diferentes. Por ejemplo, supóngase que se
desea obtener información sobre todas las cuentas abiertas en sucursales
ubicadas en Arganzuela.
3.3 Claves
Es necesario tener una forma de especificar cómo
las entidades dentro de un conjunto de entidades dado y las relaciones dentro de
un conjunto de relaciones dado son distinguibles. Conceptualmente las entidades
y relaciones individuales son distintas; desde una perspectiva de bases de
datos, sin embargo, la diferencia entre ellas se debe expresar en término de sus
atributos.
Por lo tanto, los valores de los atributos de una
entidad deben ser tales que permitan identificar unívocamente a la entidad. En
otras palabras, no se permite que ningún par de entidades tengan exactamente
los mismos valores de sus atributos. Una clave permite identificar un conjunto
de atributos suficiente para distinguir las entidades entre sí. Las claves
también ayudan a identificar unívocamente a las relaciones y así a distinguir
las relaciones entre sí.
Una superclave es un conjunto de
uno o más atributos que, tomados colectivamente, permiten identificar de forma
única una entidad en el conjunto de entidades.Por ejemplo, el atributo
id-cliente del conjunto de entidades cliente es suficiente para
distinguir una entidad cliente de las otras. Así, id-cliente es una superclave.
Análogamente, la combinación de nombre-cliente e id-cliente es
una superclave del conjunto de entidades cliente. El atributo
nombre-cliente de cliente no es una superclave, porque varias personas
podrían tener el mismo nombre.
Si K es una superclave, entonces también lo es
cualquier superconjunto de K. A menudo interesan las superclaves tales que los
subconjuntos propios de ellas no son superclave. Tales superclaves mínimas se
llaman claves candidatas. Es posible que conjuntos distintos de
atributos pudieran servir como clave candidata. Supóngase que una combinación de
nombre-cliente y calle-cliente es suficiente para distinguir
entre los miembros del conjunto de entidades cliente. Entonces, los conjuntos
{id-cliente} y {nombre-cliente, calle-cliente} son claves
candidatascandidatas.
Aunque los atributos id-cliente y
nombre-cliente juntos puedan distinguir entidades cliente, su combinación
no forma una clave candidata, ya que el atributo id-cliente por sí
solo es una clave candidata.
Se usará el término clave
primaria para denotar una clave candidata que es elegida por el
diseñador de la base de datos como elemento principal para identificar las
entidades dentro de un conjunto de entidades.
3.4 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. La mayor parte de los sistemas comerciales de bases de datos
relacionales ofrecen un lenguaje de consulta que incluye elementos de los
enfoques procedimental y no procedimental.
Usaremos lenguajes que nos permitan trabajar con
el álgebra relacional, siendo ésta de tipo procedimental, mientras que el
cálculo relacional de tuplas y el de dominios son no procedimentales.
Un lenguaje de manipulación de datos completo no
sólo incluye un lenguaje de consulta, sino también un lenguaje para la
modificación de las bases de datos. Estos lenguajes incluyen órdenes para
insertar y borrar tuplas, así como órdenes para modificar partes de las tuplas
existentes. Las modificaciones de las bases de datos se examinarán después de
completar la discusión sobre las consultas.
No hay comentarios:
Publicar un comentario