Powered By Blogger

Blogger templates

jueves, 7 de noviembre de 2013

Clases y Arqutectura de Base de Datos



Estándar ANSI/X3/SPARC de los SGBDs Centralizados. 
En el tema I se ha descrito la arquitectura de los SGBD del ANSI/X3/SPARC (American National  Standards Institute), establecida como primer estándar en 1975.
Esta arquitectura define tres niveles de representación de la información de las bases de datos que gestiona.
Descritos desde el interior de la BD hacia afuera, los niveles son: Nivel Interno o Físico, -NF-; Nivel Conceptual, -NC-, y Nivel Externo o Lógico, -NL.
El Nivel Físico se encarga de "engranar" con el software más interno de cada máquina (Sistema Operativo, y Sistema de Gestión de Ficheros generalmente). Los SGBDs actuales funcionan sobre casi todas las máquinas y "corren" en casi todos los SOs del mercado.
El Nivel Conceptual define el resultado del diseño de la BD, para una parte del mundo real con interés informativo para ser formulada y registrada en un ordenador. El resultado del diseño de una BD establece la definición de un ESQUEMA CONCEPTUAL conforme a un modelo de datos, MD, que llamamos Esquema de la BD. El Nivel Conceptual de un SGBD mantiene, en cada momento, tantos Esquemas distintos cuantas Bases de Datos hayan sido diseñadas en ese SGBD.
El software, en esencia, es una forma de arte. Idealmente, el usuario debería percibir a los sistemas software en general como 'algo que le sitúa en su mundo', sin barreras artificiales de sistemas operativos, arquitecturas del hardware, plataformas, compatibilidad de redes, de aplicaciones o de servidores de información. En el ESPACIO DE DATOS del futuro, estas fronteras tecnológicas de hoy están llamadas a desaparecer.

Contextualización. Organización de las BDR Distribuidas, Homogéneas y
Altamente Integradas.
La figura VII.2 muestra un ejemplo de cómo se organizan las BD Relacionales Distribuidas, Homogéneas y altamente Integradas, en adelante BDDs. La figura representa dos Bases de Datos Distribuidas, -BDDs- a lo largo de tres nodos de una red. 
 

Arquitectura de los Sistemas de Bases de Datos Distribuidos.
Los Sistemas se construyen mediante Módulos con interfaces de flujos de control y datos: 
Implementar un módulo ---------------->Programming-in-the-small. 

Integrar los módulos-------------------->Programming-in-the-large 

Niveles de Transparencia de los aspectos de distribución.
Transparencia:
ocultar detalles de implementación al usuario o a los niveles altos del sistema.
Programming-in-the-small se oculta a Programming-in-the-large, conforme representa la figura
Alternativas de Implementación de los SGBD Distribuidos.
La figura VII.6 representa un esquema sobre las distintas formas de modelar e implementar los SGBD capaces, en distinto modo, de incorporar aspectos de Distribución, Autonomía y Heterogeneidad. 

Arquitectura ANSI/X3/SPARC de los SGBD Distribuidos.

La figura VII.7 representa el Modelo de Referencia de ANSI/X3/SPARC extendido. Refiere la arquitectura de los SBDD Integrados.

 
Arquitectura de los SGBD Multidatabase Distribuidos.
 
La figura VII.8 representa la arquitectura de los Sistemas ‘Multidatabase’ sin integración de Esquemas Conceptuales Locales en un Esquema Conceptual Global. En esta propuesta, sólo a través del Multi Lenguaje, las consultas interoperan con varias Bases de Datos independientes. Es una propuesta de W. Litwin, “MSQL Language”. 

Conclusiones a las Arquitecturas de los SBDD. 
1.Los Modelos de Arquitecturas son marcos abstractos que sirven para: ¾ describir los aspectos de las BDDs, ¾ para analizar y comparar los productos comerciales existentes.
2. El grado de Autonomía Local requerido es un ‘input’ importante para optar por un determinado modelo de Arquitectura del SBDD y elegir una solución de diseño para cada BDD. El SBDD es un software que incluye:
¾ Procesamiento de Consultas Distribuidas ¾ Adaptadores entre las BDs Locales y la BD Global (mappings) ¾ Protocolos de Comunicación ¾ Control de Concurrencia Distribuido, ¾ Gestión de Transacciones Distribuido ¾ Recuperación distribuida frente a fallos distribuidos.
3. Las BDD relacionales y altamente integradas (por diseño ‘top-down’) son una tecnología comercial de hoy, conocida como: “*** / STAR”.
4. Las Multidatabase son más nuevas, no están aún comercializadas, aunque existen prototipos.
 
Arquitecturas Cliente / Servidor, C/S 
2.1 Ubicación del SGBD en la Arquitectura Cliente/Servidor (2 capas)
El SGBD, una de las variedades más complejas del software actual, precisa utilizar el término
Arquitectura con diversas acepciones y puntos de vista.
La arquitectura del SGBD se describe ahora bajo el punto de vista de sus formas operativas (funcionales), como un ente que realiza las aplicaciones del usuario.
La arquitectura ANSI/X3/SPARC, descrita en el Tema I, explicó cómo se organiza la información de una BD. En el Tema VI (cap. 8 de [Cost99]) se ha descrito cómo se organizan varios SGBDs para la interoperabilidad (generalmente distribuida), allí vimos la arquitectura C/S con funcionalidad varios-a-varios (varios Clientes y varios -no muchos- Servidores). Finalmente, en el Tema XI (cap. 9 de [Cost99]) atenderemos a otro tipo de arquitectura. Llamada arquitectura revisitada, centrada en la descripción de los aspectos más internos del software que poseen los motores o Servidores de bases de datos. La arquitectura C/S surge a finales de los años 80’s, como una extensión del estándar RDA Remote database Access [ISO89] y tuvo gran difusión en la tecnología de bases de datos en la década de los 90’s, marcando importantes pautas en la concepción arquitectural de los SGBD, separando nítidamente las funciones del Servidor y las de los Clientes. La arquitectura para los SGBD es algo diferente a la organización del software genérico en Cliente/Servidor (entendido sólo mirando a los procesos que invocan y a los que sirven), ya que la interacción en los SGBD está más especializada. Como sabemos, la distribución es ingrediente común de los Sistemas de Información actuales. Ahora veremos la arquitectura del SGBD como un ente individual (sin cooperar con otros SGBD) para entender los bloques que posibilitan su funcionamiento. Y no entra
remos en detalles de cómo opera el motor o Servidor de Bases de Datos, descrito en Cap. 9 de [Cost99]. Nos bastará ahora con entender que dicho motor contiene el núcleo de las funciones de un SGBD y ha de ejecutarse en un ordenador dotado de recursos adecuados para la gestión de datos masivos.
Veremos cómo se organiza el SGBD en capas para –con ellas- llevar a cabo, en la capa Cliente, determinadas funciones de los aplicativos de usuario. Cada Cliente realiza una especie de pre-procesamiento de las aplicaciones que han de terminar ejecutándose en el Servidor de Bases de Datos. Además de esto, la funcionalidad de la capa del Cliente consiste en implementar funciones de usuario con interfaces amigables y ofrecer alta productividad para dichas funciones de usuario (entornos ofimáticos con: e-mail, procesadores de texto, hojas de cálculo, etc.).
Estudiaremos dos tipos de arquitecturas. La primera describe la arquitectura a dos capas, llamada también arquitectura Cliente/Servidor del SGBD. La segunda es la arquitectura a tres capas, dirigida hacia la World Wide Web y añade una nueva capa conocida como Servidor de Aplicaciones que incluye al Servidor Web (o Servidor HTTP).

Arquitectura Cliente-Servidor (dos capas). 
En el Tema VI (cap. 8 de [Cost99]) vimos el paradigma Cliente/Servidor como el más simple del amplio espectro de la interoperabilidad de los SGBDs distribuidos. Un SGBD con arquitectura
Cliente-Servidor funciona separando limpiamente el papel que juega el Servidor del que desempeña el Cliente. Esta arquitectura, pensada en la distribución, organiza la ejecución de aplicaciones entre diversas máquinas -conectadas por una red (generalmente LAN)- que suele alcanzar a distintas dependencias del edificio(s) donde ella opera, como muestra la figura 7.1.
En la tecnología relacional, la integración de esta arquitectura se basa principalmente en el protocolo Net (por ejemplo, Oracle lo llama SQL*Net). Usa un solo motor SGBD y todas las máquinas son de tipo Cliente salvo la que es Servidora (varios Clientes y un Servidor). Realmente no es preciso que Cliente y Servidor se ubiquen en distintas máquinas, pues el paradigma de esta arquitectura se fundamenta en construir el software con independencia de dónde residan los procesos. Sin embargo, en la gestión de datos, normalmente los procesos del Servidor se ubican en una sola máquina y las máquinas Clientes se esparcen por la red de la institución o empresa para la que se instala este tipo de arquitectura.



Diseño de bases de datos distribuidas

Existen diversas formas de afrontar el problema del diseño de la distribución. Las más usuales se muestran en la figura. En el primer caso, caso A, los dos procesos fundamentales, la fragmentación y la asignación, se abordan de forma simultánea. Esta metodología se encuentra en desuso, sustituida por el enfoque en dos fases, caso B: la realización primeramente de la partición para luego asignar los fragmentos generados. El resto de los casos se comentan en la sección referente a los distintos tipos de la fragmentación.
 


Antes de exponer las alternativas existentes de fragmentación, se desean presentar las ventajas e inconvenientes de esta técnica. Se ha comentado en la introducción la conveniencia de descomponer las relaciones de la base de datos en pequeños fragmentos, pero no se ha justificado el hecho ni se han aportado razones para efectuarlo. Por ello, desde este punto se va a intentar aportar las razones necesarias para llevar a cabo esa descomposición, esa fragmentación.
El principal problema de la fragmentación radica en encontrar la unidad apropiada de distribución. Una relación no es una buena unidad por muchas razones. Primero, las vistas de la aplicación normalmente son subconjuntos de relaciones. Además, la localidad de los accesos de las aplicaciones no está definida sobre relaciones enteras pero sí sobre subconjuntos de las mismas. Por ello, sería normal considerar como unidad de distribución a estos subconjuntos de relaciones.

Segundo, si las aplicaciones tienen vistas definidas sobre una determinada relación (considerándola ahora una unidad de distribución) que reside en varios sitios de la red, se puede optar por dos alternativas. Por un lado, la relación no estará replicada y se almacena en un único sitio, o existe réplica en todos o algunos de los sitios en los cuales reside la aplicación. Las consecuencias de esta estrategia son la generación de un volumen de accesos remotos innecesario. Además, se pueden realizar réplicas innecesarias que causen problemas en la ejecución de las actualizaciones y puede no ser deseable si el espacio de almacenamiento está limitado.
Tercero, la descomposición de una relación en fragmentos, tratados cada uno de ellos como una unidad de distribución, permite el proceso concurrente de las transacciones. También la relación de estas relaciones, normalmente, provocará la ejecución paralela de una consulta al dividirla en una serie de subconsultas que operará sobre los fragmentos.
Pero la fragmentación también acarrea inconvenientes. Si las aplicaciones tienen requisitos tales que prevengan la descomposición de la relación en fragmentos mutuamente exclusivos, estas aplicaciones cuyas vistas estén definidas sobre más de un fragmento pueden sufrir una degradación en el rendimiento. Por tanto, puede ser necesario recuperar los datos de dos fragmentos y llevar a cabo sobre ellos operación de unión y yunto , lo cual es costoso.
Un segundo problema se refiere al control semántico. Como resultado de la fragmentación los atributos implicados en una dependencia se descomponen en diferentes fragmentos los cuales pueden destinarse a sitios diferentes. En este caso, la sencilla tarea de verificar las dependencias puede resultar una tarea de búsqueda de los datos implicados en un gran número de sitios.
Esquemas de base de datos distribuidas



Tipos de Fragmentacion


Fragmentacion horizontal

 La fragmentación horizontal primaria de una relación se obtiene usando predicados que están definidos en esa relación. La fragmentación horizontal derivada, por otra parte, es el particionamiento de una relación como resultado de predicados que se definen en otra relación.
Para poder construir una fragmentación, es necesario proporcionar información acerca de la base de datos y acerca de las aplicaciones que las utilizan. En primer término, es necesario proporcionar la información acerca del esquema conceptual global. En este sentido es importante dar información acerca de las relaciones que componen a la base de datos, la cardinalidad de cada relación y las dependencias entre relaciones.
En segundo lugar se debe proporcionar información acerca de la aplicación que utiliza la base de datos. Este tipo de información es cuantitativa y consiste de los predicados usados en las consultas de usuario.

Frarmentacion Vertical


Una fragmentación vertical de una relación R produce fragmentos R1, R2, …, Rr, cada uno de los cuales contiene un subconjunto de los atributos de R así como la llave primaria de R. El objetivo de la fragmentación vertical es particionar una relación en un conjunto de relaciones más pequeñas de manera que varias de las aplicaciones de usuario se ejecutarán sobre un fragmento. En este contexto, una fragmentación “óptima” es aquella que produce un esquema de fragmentación que minimiza el tiempo de ejecución de las consultas de usuario.
La fragmentación vertical ha sido estudiada principalmente dentro del contexto de los sistemas de manejo de bases de datos centralizados como una herramienta de diseño, la cual permite que las consultas de usuario traten con relaciones más pequeñas haciendo, por tanto, un número menor de accesos a páginas.
La fragmentación vertical es inherentemente más complicada que particionamiento horizontal ya que existe un gran número de alternativas para realizarla. Por lo tanto, se utilizan heurísticas para hacer el particionamiento. Los dos enfoques básicos son:
Agrupamiento. Inicia asignando cada atributo a un fragmento, y en cada paso, algunos de los fragmentos satisfaciendo algún criterio se unen para formar un solo fragmento.
División. Inicia con una sola relación realizar un particionamiento basado en el comportamiento de acceso de las consultas sobre los atributos.

Fragmentaicon Hibrida


En muchos casos la fragmentación vertical u horizontal del esquema de la base de datos no será suficiente para satisfacer los requisitos de las aplicaciones. Como ya se citó al comienzo de este documento podemos combinar ambas, utilizando por ello la denominada fragmentación mixta. Cuando al proceso de fragmentación vertical le sigue una horizontal, es decir, se fragmentan horizontalmente los fragmentos verticales resultantes, se habla de la fragmentación mixta HV. En el caso contrario, estaremos ante una fragmentación VH. Una característica común a ambas es la generación de árboles que representan la estructura de fragmentación.
Considere, por ejemplo, la relación PROVINC. Recordará que se le aplicó una fragmentación horizontal de acuerdo al valor del atributo CCODZONA resultando cuatro fragmentos horizontales. Podríamos pensar en aplicarle una nueva fragmentación de carácter vertical. Entonces resultarían cuatro fragmentos horizontales divididos, por ejemplo, en dos fragmentos verticales. En este caso el número total de fragmentos ascendería, lógicamente, a ocho.



0 comentarios:

Publicar un comentario

 

Blogger news

Blogroll

About