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 == “Juan”
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:
· http://cidecame.uaeh.edu.mx/lcc/mapa/PROYECTO/libro14/53__lenguaje_de_manipulacin_de_datos_dml.html
Nleulu0as-suOlathe Nathan White https://wakelet.com/wake/3PQM73aKZQ2LhgyNrFMK5
ResponderEliminardiaperreno
WturmoZconc_to-Aurora Sean Patterson https://www.ckschool.com/profile/wayambahgloriann/profile
ResponderEliminarberfsaswahrla
diocardaeko_1992 Tim Beard program
ResponderEliminarthere
quehattiber