Lenguajes DML o Lenguajes de Consulta Base de Datos

Lenguajes DML o Lenguajes de Consulta
Base de Datos


INTRODUCCION

Lenguaje de Manipulación de Datos (Data Manipulation Language, DML) es un idioma proporcionado por los sistemas gestores de bases de datos que permite a los usuarios de la misma llevar a cabo las tareas de consulta o modificación de los datos contenidos en las Bases de Datos del Sistema Gestor de Bases de Datos.
En este informe no mencionaremos el lenguaje más usado que es SQL pero sí mencionaremos algunos lenguajes de manipulación de datos, que no son muy conocidos hoy en día.

QBE (Query By Example).
Basado en el cálculo relacional orientado a dominio. Consiste en dar un ejemplo del tipo de tupla que se quiere, con lo que se obtiene un lenguaje muy amigable para el usuario.

Quel (Query Language).
Se desarrolló para el SBD INGRES estando basado en el cálculo relacional orientado a tuplas. Cuando nos queremos referir al atributo A de la tupla t, lo hacemos escribiendo t.A.

SQL (Structured Query Language).
Está basado sobre todo en el álgebra relacional. Tiene también facilidades del cálculo relacional, de manera que ciertas tareas pueden ser hechas de varias formas. Es por tanto un lenguaje procedimental y aprocedimental al mismo tiempo. Se creó para System R.

Xquery
 XQuery es un lenguaje de consulta que permite extraer información de bases de datos o documentos XML. Se puede decir que XQuery es a XML lo mismo que SQL a las bases de datos relacionales.
XQuery se basa en el lenguaje XPath para el acceso a los nodos XML, pudiendo utilizar todos sus operadores y funciones.
Las consultas XQuery se componen de cinco cláusulas, que debido a sus iniciales se las conoce como FLWOR. Definimos cada una de ellas:
  • FOR: Indica qué nodos se van a seleccionar desde la base de datos XML o desde un documento XML.
  • LET: Permite declarar variables a las que se le asignan valores.
  • WHERE: Permite introducir condiciones que deben cumplir los nodos seleccionados por la cláusula "for".
  • ORDER BY: Permite ordenar los nodos antes de su visualización.
  • RETURN: Devuelve los resultados. Es la única cláusula obligatoria.

Aunque también se añade a éstas la siguiente cláusula:
  • GROUP BY: Permite agrupar por nodos similares.


MDX
MDX (Multi-Dimensional expressions) es un lenguaje de consulta usado para sacar datos de una base de datos multidimensional. Más concretamente, MDX se usa para consultar datos de una base de datos OLAP con Analysis Services y otras herramientas que soporten este lenguaje.
MDX ayuda a crear Reports con más facilidad que con SQL, ya que con SQL tenemos que ir especificando todas las relaciones de las tablas para poder sacar un dato en concreto. En cambio, en MDX ya esta todo relacionado a priori.

EPL
El Lenguaje de procesado de eventos o EPL (Event Processing Language en inglés) es un lenguaje de consulta similar a SQL con las cláusulas: SELECT, FROM, WHERE, GROUP BY, HAVING y ORDER BY. Las cadenas reemplazan a las tablas como fuente de datos y los eventos reemplazan a las filas como unidad básica de datos.
Esper es un motor implementado en Java que nos permite procesar eventos o mensajes en tiempo real, no en un tiempo cercano al real. Esto significa que a veces se tienen que procesar eventos complejos (CEP) y analizar el flujo de estos eventos. Las consultas de eventos en cadena que ofrece Esper, abordan las necesidades del flujo de eventos en el análisis de las aplicaciones CEP (aplicaciones que procesan eventos complejos). Estas consultas proporcionan, para usar con los eventos encadenados: ventanas, agregaciones, uniones y análisis de funciones. Estas consultas siguen la sintaxis de EPL.   
JDOQL
JDO define formas de consultar objetos persistentes en el almacén de datos. Proporciona su propio lenguaje de consulta basado en objetos (JDOQL). JDOQL está diseñado como la manera en que los desarrolladores Java tienen la potencia de las consultas SQL, pero conservando la relación de objetos Java que existe en su modelo de aplicación. Una consulta JDOQL típica se puede configurar en una de 2 formas.
JDOQL declarativo:

Query q = pm.newQuery(mydomain.Person.class, "lastName == \"Jones\" && age < age_limit");
q.declareParameters("double age_limit");
List results = (List)q.execute(20.0);

Single-String JDOQL :
Query q = pm.newQuery("SELECT FROM mydomain.Person WHERE lastName == \"Jones\"" +
                      " && age < :age_limit PARAMETERS double age_limit");
List results = (List)q.execute(20.0);

Así que aquí, en nuestro ejemplo, seleccionamos todos los objetos "Person" con el apellido "Jones" y la edad de las personas es menor a 20. El lenguaje es intuitivo para los desarrolladores de Java y su interfaz para acceder al modelo de datos persistente. Como se puede ver arriba, la consulta se compone de distintas partes. La clase que se selecciona (la cláusula SELECT en SQL), el filtro (que equivale a la cláusula WHERE en SQL), junto con cualquier clasificación (la cláusula ORDER BY en SQL), etc.

EJBQL
El lenguaje de consulta EJB (Enterprise JavaBeans) se utiliza para especificar consultas en beans de entidad gestionadas por contenedor. El lenguaje es como un lenguaje de consulta estructurado (SQL o Structured Query Language). Las consultas EJB son independientes de la correlación del bean con un almacén persistente.
Acerca de esta tarea:
1.       Se pueden utilizar las consultas EJB en tres situaciones:
  • 2.       Para definir un método buscador de un bean de entidad EJB.
  • 3.       Para definir un método select de un bean de entidad EJB.
  • 4.       Para especificar dinámicamente una consulta con la API dinámica de método executeQuery().

Las consultas finder y select se especifican en el descriptor de despliegue del bean utilizando el código <ejb-ql>; se compilan en SQL durante el despliegue. Las consultas dinámicas se incluyen con el propio código de la aplicación.

SPARQL
Es un lenguaje para consultar los datos de los grafos dirigidos (RDF). SPARQL se puede utilizar para expresar consultas que permiten interrogar diversas fuentes de datos, si los datos se almacenan de forma nativa como RDF ​​o son definidos mediante vistas RDF ​​a través de algún sistema middleware. SPARQL contiene las capacidades para la consulta de los patrones obligatorios y opcionales de grafo, junto con sus conjunciones y disyunciones. SPARQL también soporta la ampliación o restricciones del ámbito de las consultas indicando los grafos sobre los que se opera. Los resultados de las consultas SPARQL pueden ser conjuntos de resultados o grafos RDF.
La mayoría de las formas de consulta en SPARQL contienen un conjunto de patrones de tripleta (triple patterns) denominadas patrón de grafo básico. Los patrones de tripleta son similares a las tripletas RDF, excepto que cada sujeto, predicado y objeto puede ser una variable. Un patrón de grafo básico concuerda con un subgrafo de datos RDF cuando los términos RDF (RDF terms) de dicho subgrafo pueden ser sustituidos por las variables y el resultado es un grafo RDF equivalente al subgrafo en cuestión.

Linq
Language Integrated Query es un lenguaje de consultas creado para facilitar la explotación de los datos sin importar el tipo de fuente de datos utilizada. Permite consultar información en tecnologías tan diferentes como ficheros XML, bases de datos relacionales o colecciones fuertemente tipadas.
Para ello el “truco” está crear una capa que permita tratar los datos con un lenguaje orientado a objetos y que se abstraiga de la fuente de datos subyacente. De esta forma el desarrollador se puede centrar en la lógica de la consulta olvidándose de la sintaxis específica de cada fuente de datos.
Un ejemplo de sus consultas es: hay una tabla llamada registro con una columna llamada persona que tiene el registro juan, para consultarlo sería de esta manera:

IQueryable personas = constructorDeListados.construyeListadoDePersonas();
       persona juan = (from registro in personas
                        where registro.nombre == &#8220;Juan&#8221;
                        select registro).FirstOrDefault();

Aquí solo destacar dos cosas:
  • ·         La similitud de sintaxis a una consulta SQL.
  • ·         La diferencia de utilizar el select al final.

Pero la legibilidad está asegurada y se entiende perfectamente que es lo que está buscando la consulta. Es importante el tener un soporte de intellisense completo tanto en la sintaxis de la consulta como en los objetos implicados en ella.


REFERENCIAS:


Comentarios

Publicar un comentario

Entradas populares