Documentos de Académico
Documentos de Profesional
Documentos de Cultura
UNIDAD 4
IMPLEMENTACIÓN DE LOS ESQUEMAS EXTERNOS (VISTAS)
La tecnología nos permite ahora establecer una comunicación más eficiente por medios
auditivos, táctiles y hasta de realidad virtual.
• Menús de opciones
• Secuencia preestablecida (con opción a interrumpirla)
• Comunicación con la interfase directa de comando.
a. TIEMPO - Deben especificarse los periodos en los que debe considerarse esta
información como vigente posibles fechas de caducidad o actualización así como
fechas en que se genera la información presentada.
b. ORIGEN - Debe contener información precisa de las fuentes utilizadas para generar
la información; de los responsables directos o indirectos de esta generación y de los
medios utilizados para ello.
c. DESTINO - Se describe a los departamentos y/o personas para quienes la
información es útil o válida; de igual forma, deben especificarse destinatarios
indirectos o afectados por la información presentada en la vista.
d. ESPECIFICACIONES PARTICULARES - En casos especiales, pueden incluirse
valores o datos que permitan la toma de decisiones o la aplicación de un criterio
sobre la información contenida en la vista. Estos datos adicionales pueden ser
utilizados para completar procesos, cálculos o delimitar áreas de acción.
Las principales ventajas que se obtienen al utilizar vistas son las siguientes:
En una vista pueden implementarse controles que restrinjan los valores de entrada ó
salida al dominio válido de los atributos, mejorando así el nivel de integridad de la
BD. De igual manera, el nivel de seguridad se incrementa al incluir en la vista solo
los elementos que sean considerados al alcance del usuario.
Vistas
En la arquitectura de tres niveles estudiada se describe una vista externa como la estructura
de la base de datos tal y como la ve un usuario en particular. En el modelo relacional, el
término ‘vista’ tiene un significado un tanto diferente. En lugar de ser todo el esquema
externo de un usuario, una vista es una relación virtual, una relación que en realidad no
existe como tal. Una vista se puede construir realizando operaciones como las del álgebra
relacional: restricciones, proyecciones, concatenaciones, etc. a partir de las relaciones base
de la base de datos. Las relaciones base son aquellas que forman parte directa de la base de
datos, las que se encuentran almacenadas físicamente. Un esquema externo puede tener
tanto relaciones base como vistas derivadas de las relaciones base de la base de datos.
Una vista es el resultado dinámico de una o varias operaciones relacionales realizadas sobre
las relaciones base. Una vista es una relación virtual que se produce cuando un usuario la
consulta. Al usuario le parece que la vista es una relación que existe y la puede manipular
como si se tratara de una relación base, pero la vista no está almacenada físicamente. El
contenido de una vista está definido como una consulta sobre una o varias relaciones base.
Cualquier operación que se realice sobre la vista se traduce automáticamente a operaciones
sobre las relaciones de las que se deriva. Las vistas son dinámicas porque los cambios que
se realizan sobre las tablas base que afectan a una vista se reflejan inmediatamente sobre
ella. Cuando un usuario realiza un cambio sobre la vista (no todo tipo de cambios están
permitidos), este cambio se realiza sobre las relaciones de las que se deriva.
Se puede utilizar una vista para ofrecer un esquema externo a un usuario de modo que éste
lo encuentre ‘familiar’. Por ejemplo:
• Un usuario puede necesitar los datos de los directores junto con los de las oficinas.
Esta vista se crea haciendo una concatenación de las relaciones PLANTILLA y
OFICINA, y proyectando sobre los atributos que se desee mantener.
• Otro usuario puede que necesite ver los datos de los empleados sin ver el salario.
Para este usuario se realiza una proyección para crear una vista sin el atributo
salario.
• Los atributos se pueden renombrar, de modo que cada usuario los vea del modo en
que esté acostumbrado. También se puede cambiar el orden en que se visualizan las
columnas.
• Un miembro de la plantilla puede querer ver sólo los datos de aquellos inmuebles
que tiene asignados. En este caso, se debe hacer una restricción para que sólo se vea
el subconjunto horizontal deseado de la relación INMUEBLE.
Como se ve, las vistas proporcionan independencia de datos a nivel lógico, que también se
da cuando se reorganiza el nivel conceptual. Si se añade un atributo a una relación, los
usuarios no se percatan de su existencia si sus vistas no lo incluyen. Si una relación
existente se reorganiza o se divide en varias relaciones, se pueden crear vistas para que los
usuarios la sigan viendo como al principio.
Cuando se actualiza una relación base, el cambio se refleja automáticamente en todas las
vistas que la referencían. Del mismo modo, si se actualiza una vista, las relaciones base de
las que se deriva deberían reflejar el cambio. Sin embargo, hay algunas restricciones
respecto a los tipos de modificaciones que se pueden realizar sobre las vistas. A
continuación, se resumen las condiciones bajo las cuales la mayoría de los sistemas
determinan si se permite realizar una actualización:
Los esquemas externos definen las vistas particulares del esquema conceptual asociadas a
diferentes grupos de usuarios. Cada esquema externo contiene la parte de la BD que es de
especial relevancia para el grupo de usuarios correspondiente. El esquema conceptual
puede considerarse como un caso especial de esquema externo, sería el esquema externo
más completo posible, ya que contiene todos los datos de la BD.
En general, una vista es una abstracción simplificadora de una estructura compleja. En los
distintos trabajos sobre BDOO se encuentra el concepto de vista tratado con dos
significados distintos: Vista como clase y vista como esquema.
1. Vista como clase: El resultado de definir una vista es una clase obtenida a partir de
un conjunto de clases (que pueden ser también otras vistas). La nueva clase se
integra en el esquema de la BD donde se define.
2. Vista como esquema: La definición de vistas consideradas como esquemas
correspondería a la definición de esquemas externos sobre el esquema conceptual de
la BD.
En este tema se estudia el concepto de vista como esquema, que llamaremos esquema
externo. Por otro lado, para evitar la ambigüedad creada sobre el término vista, para
referirnos al concepto de vista como clase utilizaremos el término de clase derivada.
Para que los esquemas externos proporcionen la flexibilidad que necesitan las BDOO, han
de cumplir las propiedades siguientes:
Clausura del esquema: Un esquema es cerrado si y sólo si todas las clases pertenecientes al
mismo son cerradas.
Clausura de una clase en un esquema: Una clase en un esquema es cerrada si y sólo si todos
sus objetos están relacionados con otros objetos igualmente pertenecientes a clases del
esquema.
Transmisión de modificaciones: Para que sean correctas las modificaciones realizadas sobre
los datos, usando esquemas externos, éstas han de cumplir la regla de materialización o de
preservación de la equivalencia. Es decir, una modificación realizada en los datos incluidos
en el esquema externo debe tener un efecto sobre el conjunto de los datos base (del
esquema conceptual) de manera que esta modificación quede reflejada correctamente en el
esquema externo.
La definición del esquema externo se lleva a cabo en dos fases. En primer lugar, se
completa el esquema conceptual añadiéndole las clases que se necesiten en el esquema
externo y que aún no estuvieran definidas; posteriormente, la definición del esquema
externo propiamente dicho consiste en la selección de un conjunto de clases del nuevo
esquema conceptual y en la obtención del esquema que forman.
El esquema externo ha de ser cerrado, para ello se han de añadir al mismo las clases del
esquema conceptual necesarias para que se cumpla esta propiedad2.
Las dos fases de definición de esquemas externos se pueden descomponer en los pasos
siguientes, correspondientes a los de la metodología de definición de vistas3 Multi View:
1
La clase de definición del esquema externo se incluye en el esquema conceptual; sin embargo,
las clases del esquema externo simuladas mediante esta clase no pertenecen necesariamente al
esquema conceptual. Es por esta razón que se ha decidido tratar como un caso aparte.
2
En [Rund92a] se presenta el algoritmo para obtener automáticamente el esquema externo
cerrado a partir del conjunto de clases seleccionadas.
3
El concepto de vista en [Rund92a] se corresponde con el de esquema externo considerado.
Se parte del esquema conceptual para definir el esquema externo, pero éste no es
subesquema necesariamente del esquema conceptual. Es decir, el esquema externo puede
contener clases definidas a partir del esquema conceptual pero no incluidas en él.
La manera de realizar la definición del esquema externo a partir del esquema base
(esquema conceptual u otro esquema externo) es diferente para los distintos autores
(aunque los pasos lógicos son idénticos), tal como veremos a continuación:
En otro caso, inicialmente se define el esquema externo compuesto sólo por clases
derivadas a partir de las clases del esquema conceptual; en algunos casos la definición
inicial es suficiente, en otros el esquema inicial es modificado añadiéndole subesquemas
del esquema conceptual o bien de otros esquemas externos.
En otro caso, los esquemas externos se definen como clases del esquema conceptual. Para
definir un esquema externo se modifica el esquema conceptual añadiendo la definición una
clase nueva que lo implementa.
La implementación de los distintos aspectos del esquema externo mediante una clase se
realiza definiendo de forma adecuada las operaciones de dicha clase. Se define una
operación por cada una de las clases que componen el esquema externo, estas operaciones
devuelven la extensión de dichas clases; además, se define una operación por cada una de
las operaciones posibles a realizar sobre los objetos de las distintas clases del esquema
externo.
La nueva clase define una interfaz, correspondiente al esquema externo que implementa,
sobre el resto de las clases del esquema conceptual.
Para trabajar con el esquema externo así definido, se crea un único objeto de esta clase
sobre el que se pueden aplicar los métodos definidos (que corresponden a los métodos de
las clases del esquema externo).
Suponiendo que las clases del esquema externo se definieran explícitamente como clases
(en lugar de implícitamente dentro de la clase de definición), el esquema externo no sería
necesariamente subesquema del esquema conceptual. Por tanto esta metodología se
incluiría con las del apartado anterior; sin embargo, la clase de definición del esquema
externo está incluida en el esquema conceptual.
En este caso, la naturaleza de los esquemas externos cambia respecto a la del esquema
conceptual: Un esquema externo no es un esquema propiamente dicho, sino que es sólo una
clase dentro del esquema conceptual. Una consecuencia inmediata de esta situación es que
ha de cambiar la forma de trabajar de los usuarios según trabajen con el esquema
conceptual o con alguno de los esquemas externos definidos.