LOS DBMS (Sistemas Administradores de Bases de Datos) Evolución Esquema de un DBMS Lenguajes del DBMS Usuarios de un Sistema Manejador de Base de Datos Transacciones Evolución Inicialmente, en los años 40s, los Sistemas de Archivos generados a través de lenguajes de programación no propietarios como Cobol y Fortran (vigentes en la actualidad), permiten almacenar los datos a través de archivos planos con funciones básicas de lectura y escritura sobre ellos. En 1964, se conciben los primeros Gestores de Base de Datos (DBMS: Database Management System), por medio de los cuales se pretende dar un viraje a los Sistemas de Archivos, los cuales se limitan a la estructuración del almacenamiento físico de los datos. Con los DBMS se crea el concepto de Administración de los datos, por medio de actividades integradas que permiten verlos físicamente en un solo almacenamiento pero lógicamente se manipulan a través de esquemas compuesto por estructuras donde se establecen vínculos de integridad, métodos de acceso y organización física sobre los datos, permitiendo así obtener valores agregados de utilización tales como: manejo de usuarios, seguridad, atomicidad e independencia física y lógica de los datos, entre otros. El primer gestor de bases de datos (DBMS) comercial, IDS: Integrated Data Store , se crea bajo el concepto del Modelo de Datos de Red (Bachgman, 1965); luego se desarrolla el IMS: Information Management System , sobre el concepto del Modelo de Datos Jerárquico. Estos DBMSs eran accesados normalmente por lenguajes de programación como Cobol usando interfases de bajo nivel haciendo que las tareas de creación de aplicaciones y mantenimiento de los datos fuesen controlables, pero aún complejas. A medida que evolucionaban los DBMS, los lenguajes de programación también lo hacían. En 1967 surge el primer lenguaje de programación orientado a objetos, Simula, el cual fue propuesto para simulación de actividades. En este los procedimientos podían ser asociados a un tipo para representar el comportamiento de una instancia, introduciendo así el concepto de Clase. Simula, soporta paralelismo permitiendo muchas entidades interactivas en una simulación. Además comparte objetos acoplando datos y procedimientos. Luego se genera una nueva noción, donde las bases de datos deben almacenar por medio de una estructura tabular llamada relación o tabla (Codd,1970), compuesta por filas y columnas, accesando dichas relaciones a través de un lenguaje de alto nivel no procedural (declarativo). De esta forma en los años 80s surgen varios productores de DBMS Relacionales (RDBMS) como Oracle, Informix, Ingres y DB2, además de otros lenguajes orientados a objetos como el C++, Java (antes el Oak), Eiffel, y Smalltalk adoptando y mejorando el concepto de clase pero su desarrollo se hace independiente de los DBMSs. Comenzando los años 80’s ya se siente la necesidad de que los DBMS actuales manipulen objetos complejos y estructuras como las usadas en sistemas CAD y CASE, entre otras. A partir de esto se da inicio a dos grandes tendencias: los ORDBMS (Object Relational Database Management System) los cuales se proyectan como una extensión de los RDBMS hacia el paradigma OO, y los OODBMS (Object Oriented Database Management System) estarían disponibles para almacenar y manipular las clases, los objetos, la asociación entre ellos y sus métodos. Así, finalizando los años 80s se crean los OODBMSs por medio de productores como O2, ObjectDesign y Objectivity, entre otros. Pero realmente se puede decir que estos no se hicieron tan comerciales como los existentes RDBMS ya que el concepto de Orientación a Objetos se seguía manejando muy a nivel del lenguaje de programación, sin que se trabajaran estructuras de almacenamiento Orientadas a Objetos dependientes de estos . Así, en 1991 surge la ODMG (Object Database Management Group) el cual estandariza los OODBMSs a partir del ODMG-93 y luego en 1992 el comité ANSI X3H2 inicia un trabajo en SQL3, del cual surgen los DBMS objeto relacional ORDBMS. Este trabajo fue programado para finalizarse en 1995, pero aún se sigue trabajando en este con un tiempo límite de terminación, en el año 1999. Por medio de la tabla 1 se puede observar la clasificación que se ha hecho de las versiones que han generado los diferentes vendedores de acuerdo a la evolución de los modelos: Tabla 1. Productos DBMS por Vendedor, 1997. ProductosVendedor RDBMS Oracle Oracle 7.x Sybase System 10/11 Dynamic Informix Server IBM UniSQL Unisys Computer Associates DB/2 OpenIngres ORDBMS Oracle 8.x OODBMS Universal Server (Ilustra) Universal Database (DB/2 Extenders) UniSQL/X OSMOS Jasmine Gemstone O2 Object Design Objectivity Versant Esquema de un DBMS Gemstone O2 Object Store Objectivity/DB Versant ODBMS Lenguajes del DBMS En la estructura básica de un Sistema Manejador de Base de Datos se enuncian dos lenguajes que permiten trabajar sobre la base de datos. Estos lenguajes estandar son: DDL (Data Definition language): Lenguaje de Definición de Datos. Por medio de este el DBMS identifica las descripciones de los elementos de los esquemas y almacena la descripción del esquema en el catálogo del DBMS. Por medio de este el DBMS especifica el esquma conceptual e interno (Base de datos Almacenada). SDL (Store Definition language): Lenguaje de definición de almacenamiento. Es utilizado por el DBMS para especificar el esquema interno que corresponde a la Base de Datos Almacenada. VDL (View Definition language): Lenguaje de Definición de Vistas. Es utilizado por el DBMS para especificar las vistas del usuario y sus correspondiencias con el esquema conceptual. En las Bases de Datos Relacionales, el SQL, representa una combinación de los anteriores. DML (Data Manipulation language): Lenguaje de Manipulación de Datos. Permite la manipulación de las operaciones de Inserción, Eliminación y Modificación. o Tipos de DML's: De alto Nivel o No por procedimientos: SQL. De bajo Nivel o por procedimientos. Usuarios de un Sistema Manejador de Base de Datos Personal del DBA Usuarios Exporádicos Programadores de Aplicaciones Usuarios paramétricos Fuente: http://www.unalmed.edu.co/~mstabare/Dbms.htm