Una Base de Datos (BD)[1], es en esencia una colección de información que existirá en un período de tiempo, información que es administrada por un SMBD. Ullman y Widom , también establecen que un Sistema Administrador de Bases de Datos debe:
- Permitir a los usuarios crear nuevas bases de datos y especificar su esquema (estructura lógica de los datos), usando un lenguaje especializado llamado un Lenguaje de Definición de Base de Datos
- Dar a los usuarios la habilidad de consultar los datos (una consulta es una respuesta de la base de datos a una cuestión sobre los datos) y modificar los datos, usando un lenguaje apropiado, a menudo llamado un Lenguaje de Consulta o Lenguaje de Manipulación de Datos.
- Soportar el almacenamiento de una gran cantidad de datos sobre un gran período de tiempo, guardando la seguridad en un accidente o un uso no autorizado y permitir el acceso eficiente a los datos para las consultas o modificaciones a la base de datos.
- Controlar los accesos a los datos en forma simultanea de varios usuarios, sin permitir que las acciones de uno afecten las de otros usuarios y sin permitir que accesos simultáneos dañen la organización a los propios datos.
Estos son los principales objetivos de nuestra investigación. En la cual al principio comenzó con la definición de un esquema y un lenguaje que permita realizar la definición y consulta de base de datos.
El Lenguaje implementado para la comunicación fue el SQL por lo que diseñamos su sintaxis mediante el Formalismo de Backus Naur (BNF). La Notación BNF o gramática libre de contexto maneja una sintaxis de una forma muy sencilla ya que solo se interesa en como están estructuradas las distintas oraciones basándose en diversas reglas.
Esto nos permitió crear un intérprete del lenguaje SQL y utilizar el mismo como medio de comunicación nativo del motor de base de datos.
Actualmente nuestro punto de concentración es crear y mejorar algoritmos para soportar almacenamiento de grandes cantidades de datos y acceso concurrente.