martes, 12 de noviembre de 2013

Diseño de un motor de base de datos E/R

Fuente: Wikipedia

Desde un punto de vista simple y abstracto, un motor de base de datos permite al usuario realizar las operaciones habituales de creación, lectura, borrado y actualización de datos.  El SGBD (Sistema Gestor de Base de Datos) proporciona una API para el acceso a los servicios proporcionados por el motor de base de datos cuyos "drivers" se encuentran  en el exterior del núcleo del sistema operativo.

La historia de los motores de bases de datos comienza en los años 60, cuando un grupo de ingenieros encargados de diseñar el lenguaje COBOL desarrolla el sistema basado en árboles binarios CODASYL. Posteriormente, en los años 70, Edgar Codd no estaba satisfecho con el sistema CODASYL y comienza a elaborar las bases de lo que sería el modelo relacional (E/R) y las reglas de normalización (véase Forma normal de Boyce-Codd). Por entonces empieza a cristalizarse la idea del lenguaje SQL cuya sintaxis estaba inspirada en el álgebra relacional de tuplas y que permitía cualquier operación sobre bases de datos . Ya a finales de los 70 surgen iniciativas de IBM como DB2, Informix, Sybase (basados ambos en INGRES), y el sistema de alto rendimiento PostgreSQL. A partir de los años 80, con la invención de la programación orientada a objetos, los motores de bases de datos entran en un ciclo de mejora en aspectos de diseño y rendimiento. Actualmente las bases de datos soportan cualquier tipo de objeto (gráfico, sonido, vídeo, textos, XML, etc.), asimismo su incorporación a la Web 2.0 y 3.0 está completamente asentada. Un motor de base de datos utiliza estructuras de datos ampliamente conocidas en la carrera como son las tablas de dispersión (hashing), árboles B+ y montículos (heaps). Uno de los SGBD más conocidos en los entornos universitarios es MySQL (programado en C++ y GPL) con su sistema de almacenamiento GPL-InnoDB (http://en.wikipedia.org/wiki/InnoDB).

 
El diseño de un motor de bases de datos en los estudios de Ingeniería Informática e Ingeniería TIC es una materia de crucial importancia como lo es el diseño de sistemas operativos o el diseño de un lenguaje de programación. Por este motivo, proponemos la lectura o investigación de un modelo sencillo de base de datos relacional denominado SQLite, con la intención de conocer los entresijos de un motor escrito en C y con interfaz a C++. 


También proponemos la lectura de varios libros relacionados con el diseño de bases de datos y que se pueden consultar directamente a través de Google Books:



No hay comentarios:

Publicar un comentario en la entrada