Lenguaje de consulta más estructurado (SQL)
Un DBMS típico permite a los usuarios almacenar, acceder y modificar datos de una manera organizada y eficaz. Originalmente, los usuarios de DBMS eran programadores. Se accedía a los datos almacenados necesarios para escribir un programa en un lenguaje de programación como COBOL. Aunque estos programas se escribieron a menudo para presentar una interfaz fácil a un usuario no técnico, el acceso a los datos en sí requería los servicios de un programador con conocimientos. El acceso informal a los datos no era práctico.
Los usuarios no estaban completamente satisfechos con esta situación. Aunque podrían acceder a los datos, a menudo hacía falta convencer a un programador de DBMS para que escribiera software especial. Por ejemplo, si un departamento de ventas quería ver las ventas totales en el mes anterior por cada uno de sus vendedores y quería que esta información estuviera ordenada por la longitud de servicio de cada vendedor en la empresa, tenía dos opciones: ya existía un programa que permitía acceder a la información de esta manera, o el departamento tenía que pedir a un programador que escribiera este programa. En muchos casos, esto requería más trabajo de lo que valía la pena, y siempre era una solución costosa para consultas únicas o ad hoc. A medida que cada vez más usuarios querían un acceso fácil, este problema fue creciendo más y más.
Para permitir que los usuarios accedieran a los datos ad hoc, era necesario proporcionarles un idioma en el que expresar sus solicitudes. Una única solicitud a una base de datos se define como una consulta; este lenguaje se denomina lenguaje de consulta. Muchos lenguajes de consulta se desarrollaron para este propósito, pero uno de estos se convirtió en el lenguaje de consulta estructurado más popular, inventado en IBM en los años 70. Es más conocido por su acrónimo, SQL, y se pronuncia como "ess-cue-ell" y como "sequel". SQL se convirtió en un estándar ANSI en 1986 y un estándar ISO en 1987; se usa hoy en día en un gran número de sistemas de administración de bases de datos.
Aunque SQL resolvió las necesidades ad hoc de los usuarios, la necesidad de acceso a los datos por parte de los programas informáticos no desapareció. De hecho, la mayoría del acceso a la base de datos todavía era (y es) mediante programación, en forma de informes programados periódicamente y análisis estadísticos, programas de entrada de datos como los usados para la entrada de pedidos y programas de manipulación de datos, como los que se usan para conciliar cuentas y generar pedidos de trabajo.
Estos programas también usan SQL, mediante una de las tres técnicas siguientes:
SQL insertado, en el que las instrucciones SQL se insertan en un lenguaje host como C o COBOL.
Módulos SQL, en los que las instrucciones SQL se compilan en DBMS y se llaman desde un lenguaje host.
Interfaz de nivel de llamada, o CLI, que consta de funciones a las que se llama para pasar instrucciones SQL a DBMS y recuperar resultados de DBMS.
Nota:
Es una casualidad del destino el que el término interfaz de nivel de llamada se usa en lugar de interfaz de programación de aplicaciones (API), otro término para lo mismo. En el mundo de la base de datos, la API se usa para describir SQL en sí: SQL es como la API para un DBMS.
De estas opciones, SQL insertado es el más usado, aunque la mayoría de los DBMS principales admiten CLI patentadas.
Esta sección contiene los temas siguientes.