III5. operadores
La tabla, o relación en su
equivalente matemático, es la estructura
básica del Modelo
Relacional. Para poder crear y manipular tablas
necesitamos un lenguaje de
definición de datos (LDD) y un lenguaje de
manipulación de datos
(LMD).
Con el LDD, aparte de
describir las tablas, también se pueden definir
vistas, esquemas externos,
autorizaciones, restricciones de integridad,
etc.
Por otro lado, sobre la
información almacenada en las tablas
querremos resolver un
determinado requerimiento, esto es, formular
una pregunta a nuestra BD
de la que obtendremos una respuesta
(como pueda ser “¿cuáles
son los vendedores de Alicante?”, o “¿cuál
es el precio de suministro
para la pieza X ofertado por cada
vendedor?”).
A nivel formal, sobre el
Modelo Relacional existen tres propuestas de
LMD, en forma de lenguajes
de especificación, basados cada uno en
una determinada notación.
Todas fueron desarrolladas por Codd:
- Álgebra Relacional.
- Cálculo Relacional de
Tuplas.
- Cálculo Relacional de
Dominios.
El álgebra es un
lenguaje con operadores explícitos y, mediante sus
expresiones, se representa
la forma de construir nuevas relaciones. El
cálculo emplea
fórmulas lógicas que se evalúan a cierto o falso, y son
la definición de la
relación en términos de otras, qué condiciones
cumple o qué
características debe tener la información dentro de la
relación resultado.
Se puede decir que el
álgebra expresa la forma de resolver el
problema, mientras que el
cálculo define cuál es el problema a resolver.
Por ejemplo:
ALUMNO[exp, nombre] ⊗ SEMATRICULA[cod, exp]
Este ejemplo del álgebra
utiliza los operadores proyección ([ ]), y
concatenación natural (⊗) sobre
las relaciones ALUMNO y
SEMATRICULA, y obtendría
la información de los alumnos y las
asignaturas en las que se
ha matriculado por la evaluación de izquierda
a derecha de los
operadores, teniendo en cuenta las reglas de
precedencia de los mismos.
Son expresiones al estilo de las utilizadas
comúnmente en los cálculos
matemáticos.
{ xexp, xnombre, xcod | ALUMNO(exp: xexp,
nombre: xnombre) ∧
SEMATRICULA(cod: xcod, exp: xexp) }
BD1 2006-2007
56
La anterior es una
expresión con el mismo resultado que la de álgebra.
Es una fórmula en cálculo
relacional de dominios que devuelve todos
aquellos valores de
expediente, nombre de alumno y código de
asignatura que hacen
cierta la fórmula. Las fórmulas se basan en el
cálculo de predicados de
primer orden.
Como hemos dicho, son
lenguajes de especificación, frente a los
denominados
navegacionales, porque especifican la información a
recuperar en vez de
obtener registros por su posición dentro de la
estructura de datos. El
Álgebra expresa los requerimientos mediante la
aplicación directa de
ciertos operadores definidos a tal fin sobre las
relaciones. Los demás
utilizan una notación lógica basada en el Cálculo
de Predicados de Primer
Orden, donde las consultas son fórmulas
lógicas que se evalúan a
cierto o falso; las tuplas contenidas en la
relación (tabla) resultado
de una consulta, sustituidas en la fórmula una
a una, son las que hacen que
se evalúe ésta a cierto.
Estos lenguajes son cerrados,
en el sentido de que el resultado de
aplicar un operador a una
o más tablas ya existentes en nuestra BD
será una nueva tabla que
podremos consultar o utilizar para una nueva
operación.
Los tres lenguajes tienen
idéntica capacidad expresiva; un
requerimiento escrito en
uno de ellos siempre se puede traducir a
cualquiera de los otros
dos lenguajes, y son objeto de tratamiento en
profundidad en temas
posteriores.
La completitud relacional
es la medida de lo "relacionalmente
adecuado" que es un
lenguaje. Se dice que un LMD es completo
relacionalmente
si tiene, al menos, la misma capacidad expresiva que
el álgebra relacional, si
puede definir cualquier relación resultado del
álgebra (si ese lenguaje
puede "hacer" las mismas cosas,
independientemente de que
ofrezca otras capacidades). SQL cumple
esta propiedad.
Por contra, los tres
lenguajes mencionados no son computacionalmente
completos
(no pueden calcular todas las funciones computables)
puesto que no poseen,
entre otras, funciones de agregación que
calculen sumas, medias,
etc.
III6. otras características
vistas
En un SGBD relacional se
diferencia según la temporalidad de las
tablas. Denominamos tablas
base a aquellas que forman el esquema
de nuestra BD. Son las que
definimos en esquema lógico14 como
14 Veremos en
otro tema que una de las partes de la arquitectura de un Sistema de
Gestión de Base de Datos es
el esquema lógico, o lo que es lo mismo, la definición
completa de las tablas que
constituyen las distintas Bases de Datos a gestionar.
modelo
relacional
57
representación de los
objetos de nuestro sistema de información. Se
dice que son relaciones
con nombre.
Las tablas derivadas son
relaciones con o sin nombre, definidas a partir
de tablas base u otras
relaciones derivadas: tablas temporales,
cursores, etc. Las vistas
son tablas derivadas con nombre que sirven
para mantener una consulta
que se realiza frecuentemente.
Supongamos, por ejemplo,
que una información de frecuente uso es la
lista de vendedores de la
provincia de Alicante; la definición de esta
vista, en SQL, sería:
CREATE VIEW provali AS
SELECT numvend, nomvend, nombrecomer
FROM vendedor WHERE provincia =
"ALICANTE"
Téngase en cuenta que la
vista no es una copia de una parte de la
base de datos sino una
"ventana" o un filtro que se aplica a la misma
cada vez que se accede a
la vista. En este sentido es una relación más,
y se puede operar con ella
(siempre que se tengan los permisos
adecuados) con
inserciones, borrados, etc. Se puede ver como una
tabla virtual que trabaja
sobre las tablas base.
Las ventajas de la
utilización de vistas, entre otras, se enumeran a
continuación:
• Proporcionan independencia
lógica, ya que modificaciones del
esquema lógico tales como
añadir atributos, añadir nuevas
tablas o reestructurar el
orden de las columnas no les afectan.
• Permite que distintos
usuarios vean la misma información de
formas diferentes
• Son filtros que limitan la
cantidad de información a manejar a
sólo aquella que se
necesita realmente.
• Los datos que no se
incluyen en la vista no se pueden alterar y,
por tanto, las vistas son
un medio de preservar la seguridad de
los datos.
optimización
de consultas
Ya hemos dicho que los LMD
relacionales son de especificación y no
procedurales. Esto implica
que únicamente le decimos al sistema qué
información
necesitamos y no cómo conseguirla. Bajo un lenguaje de
programación clásico,
podríamos afinar nuestros algoritmos hasta
obtener el más eficiente a
la hora de recuperar los datos. En un SGBD
relacional la tarea de
buscar el método más eficiente de consulta corre
a cargo del optimizador.
En los otros modelos
clásicos (jerárquico y red) el usuario era el
encargado de definir la
navegación a través de los registros definidos
como estructura de datos
(en realidad el programa de aplicación escrito
en COBOL u otro lenguaje
similar). En el modelo relacional esa
navegación es automática y
transparente para el usuario. El
optimizador
de consultas es el encargado de planificar la navegación
automática a través de los
datos almacenados físicamente. No
olvidemos que, aunque el
usuario "ve" tablas únicamente, los datos, a
nivel interno, tienen una
forma totalmente distinta y en general
BD1 2006-2007
58
desconocida para el
usuario de la BD. El SGBD debe explorar el
dispositivo de
almacenamiento hasta encontrar la información requerida
y, además, de la forma más
eficiente posible.
En este sentido, el
optimizador ha de decidir que estrategia sigue para
resolver la consulta, que
subconsultas realizar primero, que
herramientas del sistema
(como puedan ser los índices) utilizar, etc.
Para tal decisión ha de
tener en cuenta los siguientes condicionantes:
• qué tablas están
involucradas en la consulta
• qué tamaño tienen
• qué índices hay definidos
para ellas (en principio todas tendrán
clave primaria que se
implementa mediante un índice)
• cómo está dispuesta la
información físicamente
• qué operadores se utilizan
en la consulta
• información estadística
almacenada por el propio sistema
diccionario
de datos
Un SGBD implementa el
diccionario de datos mediante lo que se
conoce como catálogo
de la BD. Es la metainformación (información
sobre los datos
almacenados) donde se describen los distintos
esquemas de la BD (lógico,
externos, interno) y las correspondencias
entre ellos.
Almacena descriptores de
los objetos de interés para el sistema: tablas,
columnas y su tipo de
datos, índices, restricciones de clave, claves
ajenas, estrategias para
esas claves ajenas, permisos, vistas, …
Absolutamente todo lo
referente a la organización de la BD está
almacenado en el catálogo.
El optimizador, por ejemplo, sería un de los
"usuarios"
habituales del diccionario de datos.
Una de las características
más importantes del catálogo es que está
almacenado en forma de
tablas, de tal forma que su acceso es idéntico
al de cualquier tabla base
de nuestro esquema lógico.
III7. conclusiones
El modelo relacional es el
modelo de datos de una gran parte de los
SGBD actuales. Su
estructura básica es la relación, concepto
matemático basado en la
teoría de conjuntos que, adaptado
convenientemente al medio
físico en el que se va a utilizar, el
ordenador, recibe el
nombre de tabla.
Con la tabla vamos a ser
capaces de representar los conceptos,
objetos, etc. que se relacionan
entre sí para conformar un determinado
sistema de información.
Esta tabla se define en función de sus
columnas (atributos de la
clase de objetos representada), donde cada
modelo
relacional
59
una de ellas pertenece o
toma valores de un dominio (tipo de datos)
concreto.
La forma de construir o
definir una tabla pasa por tres mecanismos de
abstracción generales a
todos los modelos de datos: la clasificación, la
agregación y la
generalización.
Como no basta con reflejar
los objetos en sí, sino que necesitamos ver
como interactuan unos con
otros, debemos especificar las restricciones
semánticas que les
afectan, tanto a ellos mismos como clases de
objetos como a su relación
con otras clases de objetos.
Entre las restricciones
semánticas soportadas por el modelo están las
de dominio, de
identificación y las de correspondencia entre clases de
objetos, que incluyen las
de cardinalidad, dependencia de identificador
y propiedades de cobertura
de la generalización.
Las herramientas que
proporciona el modelo para expresar estas
restricciones semánticas
son las claves candidatas (primaria y
alternativas), claves
ajenas, y atributos de valor no nulo.
Específicamente sobre
claves ajenas, el SGBD debe conocer las
estrategias que deben
aplicarse en borrados y actualizaciones para
mantener la integridad
referencial de la BD.
Los operadores que
permiten crear y manejar una base de datos se
definen en los lenguajes
de definición y manipulación de datos
adecuados (que se verán
más adelante) cuyo reflejo comercial es el
estándar SQL.
Por último, como
características propias de los SGBD relacionales se
describen brevemente las
vistas y el optimizador de consultas. Las
primeras sirven para
definir “tablas virtuales” que ayudan a la seguridad
del sistema y el segundo
es uno de los principales factores del éxito del
modelo por su
transparencia para el usuario.
No hay comentarios:
Publicar un comentario