Saltar la navegación

5.- El lenguaje de consulta de objetos OQL.

Caso práctico

Foto de Ana  sentada en un banco de un parque, mirando al frente y pensativa.

Esta tarde, Ana ha decidido darse un respiro y dar una vuelta por el parque. Necesita descansar. Esta última semana ha sido muy intensa, —que si pruebo esta funcionalidad de Db4o, que si pruebo esta otra, ¿qué pasa con las eliminaciones en cascada? ¿Por qué no me funciona este ejemplo? —y además, ha tenido que repasar el tipo colección de Java, que lo tenía algo olvidado.

Realmente está muy entusiasmada y así se lo ha dicho a sus compañeros de clase. Mañana, empieza a repasar con Juan las posibilidades del lenguaje de consultas OQL. Eso ya no le preocupa tanto, Ana sabe que es muy parecido al SQL, y en este campo se defiende muy bien. De hecho, esta última semana, ha tenido que programar diferentes consultas para una aplicación de bases de datos de otro cliente de la empresa BK.

Ilustración de un hombre preguntando.

OQL (Object Query Languaje) es el lenguaje de consulta de objetos propuesto en el estándar ODMG.

Las siguientes son algunas de las características más relevantes de OQL:

  • Es un lenguaje declarativo del tipo de SQL que permite realizar consultas de modo eficiente sobre bases de datos orientadas a objetos.
  • Su sintaxis es similar a la de SQL, proporcionando un superconjunto de la sintaxis de la sentencia SELECT, con algunas características añadidas para los conceptos ODMG, como la identidad del objeto, los objetos complejos, las operaciones, la herencia, el polimorfismo y las relaciones.
  • No posee primitivas para modificar el estado de los objetos ya que las modificaciones se pueden realizar mediante los métodos que estos poseen.
  • Puede ser usado como un lenguaje autónomo o incrustado dentro de otros lenguajes como C++, Smalltalk y Java.
  • Una consulta OQL incrustada en uno de estos lenguajes de programación puede devolver objetos que coincidan con el sistema de tipos de ese lenguaje.
  • Desde OQL se pueden invocar operaciones escritas en estos lenguajes.
  • Permite acceso tanto asociativo como navegacional:
    • Una consulta asociativa devuelve una colección de objetos.
    • Una consulta navegacional accede a objetos individuales y las interrelaciones entre objetos sirven para navegar entre objetos.

Lenguaje en el que solo se indica lo que se desea obtener pero no el procedimiento a realizar para obtenerlo.

Para saber más

En el siguiente enlace puedes ampliar información sobre el estándar ODMG y en particular sobre el lenguaje OQL, así como ver diferentes ejemplos de consultas en la propuesta del estándar.

Estándar ODMG. (58,25 KB)

Autoevaluación

Señala si la siguiente afirmación es verdadera o falsa.

Pregunta 1

El lenguaje OQL incluye un rico repertorio de sentencias para modificar el estado de los objetos.