Translate

Modelo relacional

EL MODELO RELACIONAL Y LA ARQUITECTURA ANSI


El modelo relacional puede examinarse en el marco de la arquitectura ANSI a tres niveles. Todos los objetos que hemos visto hasta el momento, esto es, los dominios, relaciones, claves y restricciones constituyen el esquema conceptual de la arquitectura ANSI. Las relaciones se denominan tablas base o reales, ya que tienen una representación directa en el almacenamiento interno.

Existe otro tipo de tablas, denominadas tablas virtuales o vistas, que se definen sobre una o más tablas base. Las vistas son ventanas sobre tablas reales, de las que sólo se almacena su definición, y no tienen, por tanto, representación directa en el almacenamiento; equivalen al esquema externo de la arquitectura ANSI.

Por lo que respecta al esquema interno, el modelo relacional no especifica absolutamente nada puesto que se trata de un modelo lógico. Vemos, por tanto, que, el modelo relacional teórico se adapta bastante bien a la arquitectura ANSI.


LOS VALORES NULOS EN EL MODELO RELACIONAL


Se puede definir el valor nulo como una marca utilizada para representar información  desconocida. La necesidad de valores nulos es evidente por diversas razones:

q       Existencia de tuplas con ciertos atributos desconocidos en ese momento.

q       Necesidad de añadir un nuevo atributo a una tabla ya existente; atributo que en el momento de introducirse no tendrá ningún valor para las tuplas de la relación.

q       Posibilidad de atributos inaplicables a ciertas tuplas, como la editorial para un artículo.



La dinámica del modelo relacional se expresa mediante lenguajes de manipulación relacionales que asocian una sintaxis concreta a las operaciones. Los lenguajes relacionases operan sobre conjuntos de tuplas, y se dividen en dos tipos:

q       Algebraicos: Se caracterizan porque los cambios de estado se especifican mediante operaciones cuyos operandos son relaciones y cuyo resultado es otra relación. Genéricamente se conocen como álgebra relacional.

q       Predicativos: donde los cambios de estado se especifican mediante predicados que definen el estado objetivo sin indicar las operaciones que hay que realizar para llegar al mismo; se seleccionan, así, conjuntos de tuplas. Genéricamente se conocen como cálculo relacional y se dividen en dos tipos: orientados a la tupla y orientados al dominio.



6. ALGEBRA RELACIONAL


El aspecto dinámico del modelo relacional en lo que al álgebra se refiere, lo constituye una colección de operadores que, aplicados a las relaciones, dan como resultado nuevas relaciones (propiedad de cierre).

Los operandos del álgebra son las relaciones y los operadores se aplican a las relaciones a fin de formular consultas a la BD.

Son cinco los operadores que podríamos llamar primitivos: los tradicionales de teoría de conjuntos unión, diferencia y producto cartesiano, y los especialmente introducidos por Codd de restricción y proyección; además, existen otros operadores que se pueden considerar derivados, ya que se pueden deducir de los primitivos.





Los operadores derivados son aquellos que se pueden expresar siempre en función de operadores primitivos, pero su introducción tiene por fin la simplificación de las consultas.


q       Combinación o join

La combinación de dos relaciones respecto de sus columnas d y k es otra relación constituida por todos los pares de tuplas concatenadas, tales que, en cada par, las columnas d y k de las correspondientes tuplas satisfacen la condición especificada. Si la condición es de igualdad se denomina combinación por igualdad (también se denomina equijoin o join).

La llamada combinación natural (o join natual) es una combinación por igualdad donde se ha eliminado en la relación resultante uno de los atributos idénticos. Es el caso más utilizado de combinación para relaciones que tienen un atributo común (se suele hablar de join para referirse a esta posibilidad por ser el caso más usual). 

La combinación es un producto cartesiano seguido de restricción, y la combinación natural es un producto cartesiano seguido de una restricción por igualdad y de proyección.


q       Intersección                             

La intersección de dos relaciones compatibles en sus esquema es otra relación definida sobre el mismo esquema de relación, cuya extensión estará constituida por las tuplas que pertenezcan a ambas relaciones. Se denota por la letraI.

Relacion1 I Relacion2 = Relacion1 – (Relacion1 – Relacion2)



Es un operador muy útil para simplificar consultas como en el ejemplo donde se desea obtener los vinos con buena calidad en todas las cosechas.


CALCULO RELACIONAL


El cálculo relacional fue propuesto por Codd como alternativa al álgebra. La diferencia fundamental entre un lenguaje algebraico y un lenguaje predicativo (denominado así porque utiliza el cálculo de predicados para la formulación de consultas), es que en el primero hay que especificar que operadores se tienen que aplicar a las relaciones para obtener un resultado, mientras que en el segundo sólo es preciso indicar el resultado que se quiere obtener.

Los lenguajes del cálculo relacional pueden ser de dos tipos: orientados a la tupla y orientados al dominio.


CÁLCULO RELACIONAL ORIENTADO A LA TUPLA


Tiene las siguientes consideraciones:

·        Las variables se asocian a tuplas.
·        Las constantes se asocian a variables de dominio.
·        Los operadores son los de comparación, los lógicos NOT, AND, OR, así como el existencial ($) y el universal (").

Una consulta en el cálculo relacional orientado a tuplas obedece al siguiente esquema:

[definición de las variables de fila]
operador     objetivo      predicado

La sentencia de definición de las variables de fila (o de tupla) declara una variable como moviéndose sobre las tuplas de una relación y, en un determinado momento, representa indistintamente una cualquiera de las tuplas (filas) de la relación especificada.

El operador determinará la acción que hay que realizar con los datos seleccionados (en cálculo relacional puro se suele omitir siempre por ser una consulta).

            El objetivo especifica qué atributos y de qué relaciones se desea recuperar, es la estructura lógica a recuperar.

El predicado especifica la condición que deben verificar las tuplas a fin de ser seleccionadas.

Un ejemplo de cálculo relacional orientado a tuplas es el lenguaje ALPHA que, si bien nunca fue instrumentado, ha tenido gran influencia en desarrollo de otros lenguajes como el QUEL de INGRES.

Ejemplo en lenguaje ALPHA. Obtener, a partir de las tablas AUTOR y LIBROS, el nombre de los autores junto con las editoriales en que han publicado.

GET        RESULTADO (AUTOR.nombre, LIBROS.editorial):  AUTOR.nombre=LIBROS.autor
                         Ñ                                                            Ñ                                                                            Ñ
Operador                                               Objetivo                                                              Predicado

Otro lenguaje relacional orientado a tuplas es el lenguaje QUEL de INGRES. La sintaxis de la sentencia de recuperación es la siguiente:

RANGE OF <variable> IS <relación>
            ......
RETRIEVE <lista atributos>
[WHERE <condición>]

Ejemplo. Obtener el nombre de las editoriales en las que hayan publicado autores de nacionalidad "N1”.

RANGE OF A IS AUTORES
RANGE OF L IS LIBROS
RETRIEVE (L.editorial)
WHERE A.nacionalidad ="N1" AND A.nombre = L.autor

El QUEL no incluye operaciones del álgebra relacional como la intersección, unión o diferencia y no permite subconsultas anidadas.


CÁLCULO RELACIONAL ORIENTADO A DOMINIOS.


En el cálculo relacional orientado a dominios existen variables de dominios en lugar de variables de tupla, las variables de dominio se definen sobre un dominio, tomando en cada momento un valor de éste.

El ejemplo más característico del cálculo relacional orientado a dominios es el lenguaje QBE (Query by Example). Está concebido para su utilización desde un terminal, y por medio de una tecla de éste el usuario puede invocar esqueletos de tablas, las cuales tienen cuatro zonas:


Zona para el nombre de la tabla                          Zona para el nombre de columnas


Zona para el operador de cada fila                   Zona Para datos

También el usuario puede obtener el esqueleto de una relación sin más que escribir el nombre de la misma.

                

No hay comentarios:

Publicar un comentario