lunes, 26 de septiembre de 2011

Arquitectura de los SGBD (1.3.0 hasta 1.3.7)

Es uno de los aspectos que todavía sigue pendiente. Desde la aparición de los primeros gestores de base de datos se intentó llegar a un acuerdo para que hubiera una estructura común para todos ellos, a fin de que el aprendizaje y manejo de este software fuera más provechoso y eficiente.
    El acuerdo nunca se ha conseguido del todo, no hay estándares aceptados del todo. Aunque sí hay unas cuentas propuestas de estándares que sí funcionan como tales.

(1.3.1) Los Organismos de Estandarizacion

Los intentos por conseguir una estandarización han estado promovidos por organismos de todo
 tipo. Algunos son estatales, otros privados y otros promovidos por los propios usuarios. Los
tres que han tenido gran relevancia en el campo de las bases de datos son
ANSI/SPARC/X3, CODASYL y ODMG (éste sólo para las bases de datos orientadas a
objetos). Los organismos grandes (que recogen grandes responsabilidades) dividen
sus tareas en comités, y éstos en grupos de trabajo que se encargan de temas concretos.

(1.3.2) SC21 Y JTC1

ISO (International Organization for Standardization). Es un organismo internacional de definición de estándares de gran prestigio.
IEC (International Electrotechnical Commission). Organismo de definición de normas en ambientes electrónicos. Es la parte, en definitiva de ISO, dedicada a la creación de estándares.
JTC 1 (Joint Technical Committee). Comité parte de IEC dedicado a la tecnología de la información (informática). En el campo de las bases de datos, el subcomité SC21 (en el que participan otros organismos nacionales, como el español AENOR) posee un grupo de trabajo llamado WG 3 que se dedica a las bases de datos. Este grupo de trabajo es el que define la estandarización del lenguaje SQL entre otras cuestiones.

(1.3.3) DBTG / Codasy1

Codasyl (Conference on Data System Languages) es el nombre de una conferencia iniciada en el año 1959 y que dio lugar a un organismo con la idea de conseguir un lenguaje estándar para la mayoría de máquinas informáticas. Participaron organismos privados y públicos del gobierno de Estados Unidos con la finalidad de definir estándares. Su primera tarea fue desarrollar el lenguaje COBOL y otros elementos del análisis, diseño y la programación de ordenadores.

La tarea real de estandarizar esos lenguajes se la cedieron al organismo ANSI, pero las ideas e inicios de muchas tecnologías se idearon en el consorcio Codasyl. EN 1967 se crea un grupo de tareas para bases de datos (Data Base Task Group) y Codasyl pasa a denominarse DBTG grupo que definió el modelo en red de bases de datos y su integración con COBOL. A este modelo en red se le denomina modelo Codasyl o modelo DBTG y que fue finalmente aceptado por la ANSI.

(1.3.4) ANSI /X3/SPARC

ANSI (American National Standards Institute) es un organismo científico de Estados 
Unidos que ha definido diversos estándares en el campo de las bases de datos. X3 es la parte de ANSI encargada de los estándares en el mundo de la electrónica. Finalmente SPARC, System Planning and Repairments Committee, comité de planificación de sistemas y reparaciones es una subsección de X3 encargada de los estándares en Sistemas Informáticos en especial del campo de las bases de datos. Su logro fundamental ha sido definir un modelo de referencia para las bases de datos (que se estudiará posteriormente).

En la actualidad ANSI para Estados Unidos e ISO para todo el mundo son nombres equivalentes en cuanto a estandarización de bases de datos, puesto que se habla ya de un único modelo de sistema de bases de datos.

(1.3.5) Modelo ANSI/X3/SPARC

El organismo ANSI ha marcado la referencia para la construcción de SGBD. El modelo definido
por el grupo de trabajo SPARC se basa en estudios anteriores en los que se definían tres niveles de
abstracción necesarios para gestionar una base de datos. ANSI profundiza más en esta idea y
define cómo debe ser el proceso de creación y utilización de estos niveles. 
En el modelo ANSI se indica que hay tres modelos: externo, conceptual e interno. 
Se entiende por modelo, el conjunto de normas que permiten crear esquemas (diseños 
de la base de datos). 
Los esquemas externos reflejan la información preparada para el usuario final, el esquema conceptual
refleja los datos y relaciones de la base de datos y el esquema interno la preparación de los datos para ser almacenados. 
El esquema conceptual contiene la información lógica de la base de datos. Su estructuración y las relaciones que hay entre los datos. 
El esquema interno contiene información sobre cómo están almacenados los datos en disco. Es el esquema más cercano a la organización real de los datos. 
En definitiva el modelo ANSI es una propuesta teórica sobre cómo debe de funcionar sistema gestor de bases de datos (sin duda, la propuesta más importante). Su idea es la siguiente:


En la Ilustración 11, el paso de un esquema a otro se realiza utilizando una interfaz o
función de traducción. En su modelo, la ANSI no indica cómo se debe realizar esta función,
sólo que debe existir. 
La arquitectura completa ( Ilustración 12) está dividida en dos secciones, la zona de definición
de datos y la de manipulación. Esa arquitectura muestra las funciones realizadas por
humanos y las realizadas por programas. 
En la fase de definición, una serie de interfaces permiten la creación de los metadatos que
se convierten en el eje de esta arquitectura. La creación de la base de datos comienza con la
elaboración del esquema conceptual realizándola el administrador de la empresa
(actualmente es el diseñador, pero ANSI no lo llamó así). 
Ese esquema se procesa utilizando un procesador del esquema conceptual (normalmente una
herramienta CASE, interfaz 1 del dibujo anterior) que lo convierte en los metadatos (interfaz 2). 
La interfaz 3 permite mostrar los datos del esquema conceptual a los otros dos
administradores: el administrador de la base de datos y el de aplicaciones (el desarrollador).
Mediante esta información construyen los esquemas internos y externos mediante las
interfaces 4 y 5 respectivamente, los procesadores de estos esquemas almacenan
la información correspondiente a estos esquemas en los metadatos (interfaces 6 y 7). 
En la fase de manipulación el usuario puede realizar operaciones sobre la base de datos usando
la interfaz 8 (normalmente una aplicación) esta petición es transformada por el
transformador externo/conceptual que obtiene el esquema correspondiente ayudándose también
de los metadatos (interfaz 9). El resultado lo convierte otro transformador en el esquema interno
(interfaz 10) usando también la información de los metadatos (interfaz 11). Finalmente del
esquema interno se pasa a los datos usando el último transformador (interfaz 12) que también
accede a los metadatos (interfaz 13) y de ahí se accede a los datos (interfaz 14). Para que los
datos se devuelvan al usuario en formato adecuado para él se tiene que hacer el proceso
contrario (observar dibujo).

(1.3.6) Proceso de Creación y Manipulación de una Base de Datos Actual.

El modelo ANSI de bases de datos sigue estando vigente y por ello el ciclo de vida de una base de datos continúa atendiendo a las directrices marcadas por el modelo. No obstante sí han cambiado el nombre de los recursos humanos.

Fase de Creacion: 

(9) El analista o diseñador (equivalente a un administrador de esquemas conceptuales del modelo
ANSI) utiliza una herramienta CASE para crear el esquema conceptual

(10) El administrador de la base de datos (DBA) crea el esquema interno utilizando las
herramientas
 de definición de datos del SGBD y herramientas CASE

(11) Los desarrolladores utilizan las aplicaciones necesarias para generar el esquema externo
mediante herramientas de creación de aplicaciones apropiadas y herramientas CASE

Fase de Manipulación

(12) El usuario realiza una consulta utilizando el esquema externo

(13) Las aplicaciones las traducen a su forma conceptual

(14) El esquema conceptual es traducido por la SGBD a su forma interna

(15) EL Sistema Operativo accede al almacenamiento físico correspondiente y devuelve los
datos al SGBD

(16) El SGBD transforma los datos internos en datos conceptuales y los entrega a la aplicación

(17) La aplicación muestra los datos habiéndolos traducido en su forma externa. Así los ve el usuario


(1.3.7) Estructuras Operacionales

Actualmente casi todos los sistemas gestores de base de datos poseen también la misma idea
operacional (la misma forma de funcionar con el cliente) en la que se entiende que la
base de datos se almacena en un servidor y hay una serie de clientes que pueden acceder
a los datos del mismo. Las posibilidades son: 

Estructura Cliente-Servidor. Estructura clásica, la base de datos y su SGBD están en un
servidor al cual acceden los clientes. El cliente posee software que permite al usuario enviar
instrucciones al SGBD en el servidor y recibir los resultados de estas instrucciones. Para
ello el software cliente y el servidor deben utilizar software de comunicaciones en red. 
Cliente multi-servidor. Ocurre cuando los clientes acceden a datos situados en más
de un servidor. También se conoce esta estructura como base de datos distribuida. 
El cliente no sabe si los datos están en uno o más servidores, ya que el resultado
 es el mismo independientemente de dónde se almacenan los datos. En esta estructura hay
un servidor de aplicaciones que es el que recibe las peticiones y el encargado de traducirlas a
 los distintos servidores de datos para obtener los resultados. 
Cliente-Servidor con facilidades de usuario-Servidor de base de datos. Se trata de una forma
 de conexión por el que los clientes no conectan directamente con la base de datos sino con un
intermediario (normalmente un Servidor Web) que tiene una mayor facilidad para comunicarse
 con los usuarios. Ese servidor se encarga de traducir lo que el cliente realiza a una forma
 entendible por la base de datos.