jueves, 12 de marzo de 2015

lll.



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