¡Bienvenid@ a La bloguera.net! Iniciar sesión | ÚNETE a la web | Ayuda

Generaciones de Bases de Datos (un poco de historia)

    Cuando hablamos de bases de datos, en nuestras conversaciones nos referimos a datos relacionales. Esto no fue siempre así, antes que el  modelo relacional fuese desarrollado, existió otro modelo de datos.

    Ahora, el caso para considerar las alternativas ha llegado a ser cada vez más fuerte, con las nuevas generaciones de leguajes de desarrollo orientados a objetos  se abre una gama de oportunidades a las aplicaciones, y a su vez a las base de datos con la aparición de las bases de datos nativas, orientadas a guardar estos objetos creados por las aplicaciones.

    Antes de que el primer DBMS fuese desarrollado, las aplicaciones se conectaban a orígenes de datos de “ficheros planos”. Éstos no permitir la representación de las relaciones de los datos o de la aplicación lógicas de la integridad de los mismo. El modelar de los datos se ha desarrollado desde los años 60 para proveer características de gran alcance del almacenaje de datos.

    Generalmente hablando, los modelos de los datos se han desarrollado en tres generaciones. La primera generación de modelos de los datos se tiende a rechazar sin embargo fue el origen o génesis de las base de datos. Hasta el momento, las bases de datos más comercialmente aceptada han sido las bases de datos de segunda generación que utilizan el modelo relacional. Las bases de datos relacionales son definitivamente las que poseen la mayor parte del mercado “por ahora” lo que ha hecho muy difíciles para una nueva generación de bases de datos, conseguir por lo menos un equilibrio entre las dos generaciones. Sin embargo, el mundo de los lenguajes programación o desarrollo ha venido cambiado. Con la evolución nuevas plataformas como lo son Java y de Microsoft con .NET, entre otras. Las opciones del desarrollador cada vez más amplias y poder elegir el modelo de datos a utilizar, entre el modelo orientado objetos y el modelo no orientado a objetos.

    Bueno no hablemos más y comencemos con esta pequeña pero instructiva clase de historia. – no se me duerman por favor -

PRIMERA GENERACION: Modelo Jerárquicos y Red
    La aparición de los sistemas informáticos en los años 60 condujo al desarrollo de modelos de datos jerárquicos y modelos de los datos de la red, que se refieren generalmente como los modelos de primera generación de los datos.

El modelo Jerárquicos

    La mayoría de los usuarios de la computadora están familiarizados con una forma jerárquica de almacenamiento de la información. El sistema de archivos utilizado por la mayoría de los sistemas operativos del PC, es un ejemplo de una jerarquía y en consecuencia, esto se conoce como el modelo de datos jerárquico. Representa directorios y archivos como un sistema de árboles. Características:

  • Permite  uno a uno, o uno a muchos relaciones entre entidades, de un directorio o carpeta puede contener un archivo, o que puede contener muchos archivos (o tal vez no contienen los archivos).
  • Una entidad en una "muchos" final de una relación que puede estar relacionado con una sola entidad en el "uno" final, en otras palabras, un archivo sólo puede ser en un solo directorio.

    Este modelo de almacenamiento es a menudo descrito como de “NAVEGACION”. Esto significa que para encontrar un tema en particular, tiene su manera de navegar a través de la jerarquía usando predefinidas relaciones hasta llegar a él dato que se desea. Esto puede ser muy eficaz si las consultas que desea hacer cumplen con esta relación. Sin embargo, puede ser muy ineficiente si se va a consultar sus datos en forma especial, por ejemplo, una búsqueda o consulta que desee hacer un usuario, la cual no se diseño con anticipación en la base de datos. Si la información que desea encontrar en un sistema de ficheros que figura en varios archivos en directorios diferentes, entonces el proceso de recolección puede ser muy laborioso.

    Cada cliente puede tener muchos pedidos, y cada pedido puede contener muchos elementos. Cada elemento pertenece a un orden particular, y sólo en ese orden.

 

    Las bases de datos jerárquicas, que eran la primera generación de bases de datos, almacenan sus datos de esta forma. La base de datos jerárquica más conocida IBM’s Information Management System (IMS), que ha estado desde los años 60 y todavía es apoyado por IBM.

El Modelo de Dato de Red

    El estándar del modelo de los datos de red fue desarrollado en a finales de los años 60 por el the Committee on DataSystems Languages (CODASYL), la misma organización que desarrolló COBOL. Agregó una característica importante para modelar de los datos. La familia múltiple, significa que una sola entidad puede estar en los “muchos” finales de relaciones múltiples. Esto es un pedacito más difícilmente a imaginarse en términos de sistema de archivos, significaría que un archivo podría estar en más de un directorio al mismo tiempo. En muchos panoramas, el modelo de la red permitió que los datos fueran modelados más realista.

 

    El modelo de la red dio un grado adicional de flexibilidad en los datos que se modelaban, pero seguía siendo a modelo un modelo “NAVEGACIONAL”. La red define un sistema de relaciones, y tienes que seguirlas.
Los modelos de primera generación no eran adecuados para consultas especiales, en el que no necesariamente sabe cómo los datos tendrán que ser recuperados antes de crear la base de datos.

SEGUNDA GENERACION DE BASES DE DATOS.: MODELO RELACIONAL
    El modelo relacional, sin duda, ha sido el más utilizado y con éxito mayor comercial hasta la fecha de modelado de datos. Sus características son muy diferentes de los modelos anteriores. Para empezar, los datos de las entidades están representados por estructuras simples en forma de cuadro, conocido como relaciones. Entidad relaciones y la integridad de los datos se definen mediante claves primarias y claves foráneas. El diseño de una base de datos relacional se basa en la idea de la normalización, el proceso de eliminación de los datos redundantes de sus cuadros, a fin de mejorar la eficiencia de almacenamiento, la integridad de los datos y escalabilidad

    El modelo relacional fue propuesto en 1970 por Edgar Codd para representar a la estructura física de los datos sin que el usuario de base de datos que necesitan saber acerca de la máquina de la representación. Se promovió la idea de usuario final y la programación interactiva de consultar una base de datos. Esto fue un gran paso adelante en la capacidad de utilización de las bases de datos.

Accesando el Modelo Relacional
    Acceso a los datos utiliza un alto nivel nonprocedural del lenguaje (SQL). Esto hace que las bases de datos relacionales de gran especialidad en lo que a consultas se refiere. Si los datos que se exigen en la base de datos, vas a ser capaz de escribir una consulta SQL que lo recoja, aunque puede incorporarse a la participación de muchas tablas para obtener los datos.

Select Cantidad from ORDENES
where TipoDocumento='01' and Costo > 1250


    SQL ha evolucionado de una norma que cuenta con el apoyo de la mayoría de los productos comerciales de base de datos, aunque por lo general los productos añaden sus propias extensiones propietarias del lenguaje.
Las consultas se construyen basada en la rama de las matemáticas conocida como teoría de conjuntos, aunque no necesitamos saber los detalles de la teoría de conjuntos para escribir sentencias SQL.

    El modelo relacional las consultas no son de tipo de navegación. No tiene que seguir trayectorias predefinidas. Puede escribir una consulta SQL para seleccionar datos de cualquier tabla en una base de datos. Si desea obtener los datos de más de un tipo de entidad, puede escribir sus consultas de unión de las tablas. Por lo general, se unen varias tablas para realizar una consulta de datos, mostrando  los nombres de los campos comunes y condiciones que deben cumplirse todo esto es mostrado en una sola tabla o vista de datos. No existe una dirección implícita, por lo que no existe el concepto de la navegación de un cuadro a otro.

Modelo Relacional con Programación de Procedimientos
    Bases de datos relacionales son una gran adaptación de los programas de procedimiento. Puede utilizar aplicaciones de modelado para el diseño de su esquema de base de datos y ver asi como se mostraran los datos, también podemos escribir todo una serie de instrucciones SQL en un bloque, esta recibirá algunos datos, ejecuta esta serie de instrucciones y agrega o actualiza o elimina los datos. La aplicación depende en gran medida de la base de datos de diseño. Puede conectarse a la base de datos desde una aplicación escrita en cualquier lenguaje de programación, que se puede obtener un proveedor o cliente para una base de datos especifica. La misma base de datos puede ser el objetivo para distintas aplicaciones.

    SQL no es un lenguaje de programación completo, de modo que no puede escribir una aplicación con el mismo. Su trabajo consiste en expresar las consultas o preguntas y realizar alguna manipulación de los datos de la base de datos. Como resultado de ello, ya sea SQL es utilizado en un prompt interactivo o más comúnmente, aparece como cadenas de texto incrustado dentro de otro lenguaje. Por supuesto, muchos sistemas de bases de datos relacionales tienen la capacidad de utilizar procedimientos almacenados, que son módulos de programas que existen en el DBMS, como el mencionado anteriormente.

    Pienso que estos DBMS, tienen la necesidad de combinar con otro lenguajes SQL, tales como Oracle PL / SQL. El uso de cadenas SQL embebido en el código de aplicación externa a la base de datos puede presentar un problema para los desarrolladores. El compilador simplemente interpreta estos como cadenas de texto, si es un válido, la cadena entonces está bien en la medida de lo que el compilador se refiere. Tal vez sería completa sin sentido en la medida como la base de datos se refiere: puede hacer referencia a tablas o columnas que no existen, por ejemplo. Usted tiene que esperar hasta que el runtime (tiempo de ejecución) para comprobar que de verdad funciona esta instrucción o muestra algún error, y muchas veces esto hace la depuración un poco difícil.

Modelo Relacional con Programación Orienta a Objetos
    Orientado a objetos tratan de los sistemas modelo en el dominio del problema términos de los objetos. Las entidades del sistema se describen en un diagrama de clase, en lugar del diagrama de entidad relacional, del sistema tradicional. De repente, la base de datos no es el manejador de la aplicación - en lugar de ello, su función primordial es la de proporcionar un servicio a la solicitud y no la del conocimiento de persistencia de los objetos. Este cambio es importante, porque de las diferencias entre el objeto y el modelo relacional de datos. La herencia no está directamente apoyada en el modelo relacional.

    Hay algunas variaciones significativas entre RDBMSs en sus características, incluyendo su apoyo a Orientación a objetos. PostgreSQL RDBMS ahora la tabla de características herencia, polimorfismo, en la que apoya Consultas o Query. Esta no es, sin embargo, una capacidad estándar de RDBMS

    Un resultado de esto es visto a menudo cuando los sistemas orientados a objetos se crean dentro de una structura de datos ya definida. El modelo de objetos se ve limitado a fin de que el diagrama de clase coincida con la de base de datos del diseñador. Esto rara vez se produce un buen modelo de objetos. El problema de SQL embebido, cadenas también se aplica a los programas orientados a objetos, quizás más que como herramientas de apoyo y fácil refactorización,  no se pueden entender o modificarlas.

TERCERA GENERACION: Modelo Post-Relacional (Yo lo llamo objetos)

    La tercera generación de modelos, se propuso por primera vez en el decenio de 1980, son una respuesta a los problemas que suelen surgir cuando se casa o unen  con un sistema orientado a objetos a una base de datos relacional. A veces son descritos como "después de relaciones", aunque es más realista considerar como coexistir con el modelo relacional y la presentación de más opciones para los desarrolladores. A diferencia de la segunda generación, donde el modelo relacional es bastante universalmente adoptados, con algunas variaciones de propiedad, la orientación a objetos de tercera generación se ha desarrollado en dos direcciones distintas, de las cuales les comentare un poco.

El Modelo de Objeto

    El Modelo de Objetos de datos es prácticamente el mismo que el paradigma orientado a objetos, excepto que los objetos son persistentes. Es decir, que siguen existiendo después de que el programa termina la ejecución y sale de memoria.

    Un objeto en la base de datos es un objeto análogo, a un objeto en la aplicación de memoria. En la mayoría de las bases de datos objeto, poseen un majedor que las une con el lenguaje de programación, que le permiten usar la persistencia de objetos en las aplicaciones. Una aplicación Java requiere un lenguaje vinculante, con la base de datos de objetos y así sucesivamente. El esquema de base de datos en sí es un objeto creado usando definición del lenguaje en el cual fue desarrollada la clase, que define los  objetos que pueden ser almacenados, y de sus relaciones.

    Los objetos son almacenados exactamente como son creado en la solicitud. Las bases de datos nativas de objeto no necesitan una definición del lenguaje o regla o estructura – Su esquema de la base de datos es idéntico al modelo de dominio del objeto que realizo la solicitud. Son, Por lo tanto, estrechamente vinculados a las aplicaciones que los utilizan. Imaginemos el objeto como un sello húmedo, y la base  de datos es el papel donde colocamos el sello, es decir la persistencia de esa información que se encuentra en el sello.

Origenes de la Bases de Datos de Objetos
    La base de datos orientada a objetos emergen de un manifiesto escrito por Malcolm Atkinson y otros en 1989, que especifica una lista de requisitos que debe cumplir una base de datos de objetos, incluidos algunos orientado a objetos de bases de datos y algunas características similares a las funciones. La base de datos de Object Management Group (ODMG) trató de establecer normas para bases de datos de objetos, incluida la educación abierta ya distancia, como definición de un lenguaje de objetos, y OQL, un lenguaje de consultas de objetos. Estas normas han sido adoptadas en cierta medida, pero nunca han logrado aceptación universal. La versión final de la ODMG estándar, ODMG 3,0, fue puesto en libertad en 2001, “cuando escribi este articulo la ODMG esta pensando en una 4ta Generacion, orientada a facilitar un poco la transición paradicmatica de los objetos a las base de datos de objetos”.

El Modelo Objeto a Relacional
    Casi al mismo tiempo que el modelo de datos de objeto que se propone, el problema de almacenamiento de objetos en las bases de datos se estaba enfocando desde un ángulo diferente. El objeto de modelo relacional extiende las capacidades del modelo relacional para permitir que los objetos que se almacenan en las columnas de una base de datos relacional. Un objeto relacional DBMS que a veces se denomina un híbrido DBMS.

    “Un híbrido enfoque del DBMS, fue propuesto por Michael Stonebraker en 1990, y se ha aplicado en algunos comerciales RDBMSs, incluidos Oracle. La motivación fue el deseo de las bases de datos que puede almacenar complejas entidades y normas, pero que conserva todas las ventajas de la segunda generación de bases de datos.”

    El objeto de modelo de datos relacional es una extensión del modelo relacional, con las siguientes características

  • Un campo puede contener un objeto con atributos y operaciones.
  • Complejo objetos pueden ser almacenados en las tablas relacionales

    Por ejemplo, Oracle apoya la posibilidad de declarar un nuevo tipo de datos que es básicamente una clase, y para establecer este nuevo tipo como el tipo de datos de una columna de la tabla.
El modelo de objeto de los datos relacional,  su enfoque es bastante contrario de lo que las bases de datos de objeto, en particular con respecto a las nativas, lo que están tratando de lograr. En lugar de dar la capacidad de persistencia de un sistema orientado a objetos, que proporciona capacidades orientado a objetos dentro de la base de datos. Este enfoque no es el adecuado para aplicaciones incrustadas por el que muchas bases de datos de objetos, sobresale. Como usted necesita un verdadero RDBMS a hacer uso de ella.

    El uso de términos como "tercera generación" y "después de relaciones" no ha sido particularmente precisado, que implicaba que este tipo de bases de datos que se sustituya las bases de datos relacionales, la forma en que la segunda generación efectivamente ha suplantado a la primera. La tercera generación no ha tenido el lugar de las bases de datos relacionales, sino que existe en forma paralela a ampliar las posibilidades abiertas a los desarrolladores a usar las soluciones adecuadas para sus propias aplicaciones.

Colocación de Objetos en una Base de Datos Relacional
    Si el diseño de un sistema orientado a objetos es manejado por la aplicación en lugar de ser manejado por los datos, entonces la base de datos necesita disponer de un medio de persistir los objetos en el sistema. Si la base de datos relacional, requiere un mapeo de objetos a tablas de la base de datos. Este requisito existe independientemente del mecanismo que se usa para permitir que una aplicación se comunique con la base de datos (ya sea fuerte código SQL dentro de la aplicación o de una capa de mapeo de datos como Hibernate)

    Esto puede ser a veces una simple cuestión de la mapeo de clases individuales por separado a las tablas de base de datos. Sin embargo, si la estructura de clases es más compleja, entonces el mapeo debe considerarse cuidadosamente los datos para permitir a hacerse representar y acceder de la forma más eficiente posible. Buscando estrategias relacionales de mapeo entre el objeto y la base de datos relacional, con el fin de obtener un objeto robusto y rápido a su vez.

 

    Objetos con ODBMS  vs Objeto con RDBMS, fuente de la imagen German Viscuso.

Queries o Consultas
    Consultas usando SQL es una capacidad fundamental de una base de datos relacional. Atkinson original del manifiesto objeto de las bases de datos (véase la primera columna lateral, "Orígenes de la base de datos de objetos"), declaró que una consulta era una instalación característica de un objeto base de datos, y la ODMG normas definen un alto nivel de lenguaje de consultas, OQL. La naturaleza del modelo de datos dicta que la base de datos objeto de consultas se expresó un tanto diferente a las consultas SQL, haciendo uso del objeto más que se suma a las referencias.

Integridad referencial
    Garantiza la integridad referencial, por ejemplo, que usted no podría crear un orden en la base de datos para un cliente que no existe en la base de datos.

    En el modelo relacional, la integridad referencial es implementada por claves foráneas de relaciones. Un ejemplo, la tabla PEDIDOS tendría una clave foránea que se refiere a la clave primaria de la tabla CLIENTES. Antes de que una nueva orden, se añada a una PEDIDOS a la tabla, la clave foránea se comprueba sobre el terreno para asegurarse de que existe una concordancia con respecto al valor en la tabla CLIENTES.

    En el modelo de objetos, la integridad es controlada por la aplicación. Objeto referencias creadas en la solicitud se mantienen en la base de datos. En el ejemplo, si la aplicación está escrita de forma que todos los nuevos casos Orden se crean como campos de los objetos del cliente, entonces no es posible tener un objeto huérfanos Orden. La base de datos coincide con la lógica de la aplicación lógica.

    La forma en que anteriormente las características de trabajo, depende fuertemente del modelo de datos. Las siguientes características son también necesarios para una base de datos que se considera ACID (Atomicidad, Concurrencia, Aislamiento y Durabilidad) propiedades. En la medida de lo que el usuario o desarrollador se refiere, la forma en que se utiliza depende no de lo que el modelo de datos de la base de datos está utilizando, pero sobre la base de datos de productos.

    Hemos visto  "a vuelo de pajaro" la evolución de los modelos de datos y una breve comparación de los modelos de objetos y modelos relacionales.

Recursos utilizados
    http://es.wikipedia.org/wiki/Base_de_datos
    http://www.db4o.com/espanol/
   

Libro:
    The Definitive Guide to db4o


Espero que hallá sido de su agrado  y gracias por no dormirse….
 

Publicado miércoles, 31 de octubre de 2007 11:46 por elperucho
Archivado en: ,

Comentarios

Aún no ha hecho nadie ningún comentario. Escribe alguno y sé el primero :P
No se permiten comentarios de usuarios anónimos