Advance Database Management Systems:17
Object Query Language
Prof Neeraj Bhargava
Vaibhav Khanna
Department of Computer Science
School of Engineering and Systems Sciences
Maharshi Dayanand Saraswati University Ajmer
OQL: OBJECT-ORIENTED QUERY
LANGUAGE
• OQL is a query language designed to operate on
databases described in ODL.
• • Tries to bring some concepts from the relational
model tothe ODBMs
• • E.g., the SELECT statement, joins, aggregation, etc.
• • Reference of class properties (attributes,
relationships, and methods) using:
– • Dot notation (p.a), or
– • Arrow notation (p->a)
• • In OQL both notations are equivalent
Slide 21- 3
Object Query Language
• OQL is DMG’s query language
• OQL works closely with programming
languages such as C++
• Embedded OQL statements return objects
that are compatible with the type system of
the host language
• OQL’s syntax is similar to SQL with additional
features for objects
Slide 21- 4
Simple OQL Queries
• Basic syntax: select…from…where…
– SELECT d.name
– FROM d in departments
– WHERE d.college = ‘Engineering’;
• An entry point to the database is needed for
each query
• An extent name (e.g., departments in the
above example) may serve as an entry point
Slide 21- 5
Iterator Variables
• Iterator variables are defined whenever a
collection is referenced in an OQL query
• Iterator d in the previous example serves as
an iterator and ranges over each object in the
collection
• Syntactical options for specifying an iterator:
– d in departments
– departments d
– departments as d
Slide 21- 6
Data Type of Query Results
• The data type of a query result can be any
type defined in the ODMG model
• A query does not have to follow the
select…from…where… format
• A persistent name on its own can serve as a
query whose result is a reference to the
persistent object. For example,
– departments; whose type is set<Departments>
Slide 21- 7
Path Expressions
• A path expression is used to specify a path to
attributes and objects in an entry point
• A path expression starts at a persistent object
name (or its iterator variable)
• The name will be followed by zero or more dot
connected relationship or attribute names
– E.g., departments.chair;
Slide 21- 8
Views as Named Objects
• The define keyword in OQL is used to specify
an identifier for a named query
• The name should be unique; if not, the results
will replace an existing named query
• Once a query definition is created, it will
persist until deleted or redefined
• A view definition can include parameters
Slide 21- 9
An Example of OQL View
• A view to include students in a department
who have a minor:
define has_minor(dept_name) as
select s
from s in students
where
s.minor_in.dname=dept_name
• has_minor can now be used in queries
OQL: EXAMPLE QUERIES
Assignment
• What is OQL. Give Examples to explain its
functionalities.

Adbms 17 object query language

  • 1.
    Advance Database ManagementSystems:17 Object Query Language Prof Neeraj Bhargava Vaibhav Khanna Department of Computer Science School of Engineering and Systems Sciences Maharshi Dayanand Saraswati University Ajmer
  • 2.
    OQL: OBJECT-ORIENTED QUERY LANGUAGE •OQL is a query language designed to operate on databases described in ODL. • • Tries to bring some concepts from the relational model tothe ODBMs • • E.g., the SELECT statement, joins, aggregation, etc. • • Reference of class properties (attributes, relationships, and methods) using: – • Dot notation (p.a), or – • Arrow notation (p->a) • • In OQL both notations are equivalent
  • 3.
    Slide 21- 3 ObjectQuery Language • OQL is DMG’s query language • OQL works closely with programming languages such as C++ • Embedded OQL statements return objects that are compatible with the type system of the host language • OQL’s syntax is similar to SQL with additional features for objects
  • 4.
    Slide 21- 4 SimpleOQL Queries • Basic syntax: select…from…where… – SELECT d.name – FROM d in departments – WHERE d.college = ‘Engineering’; • An entry point to the database is needed for each query • An extent name (e.g., departments in the above example) may serve as an entry point
  • 5.
    Slide 21- 5 IteratorVariables • Iterator variables are defined whenever a collection is referenced in an OQL query • Iterator d in the previous example serves as an iterator and ranges over each object in the collection • Syntactical options for specifying an iterator: – d in departments – departments d – departments as d
  • 6.
    Slide 21- 6 DataType of Query Results • The data type of a query result can be any type defined in the ODMG model • A query does not have to follow the select…from…where… format • A persistent name on its own can serve as a query whose result is a reference to the persistent object. For example, – departments; whose type is set<Departments>
  • 7.
    Slide 21- 7 PathExpressions • A path expression is used to specify a path to attributes and objects in an entry point • A path expression starts at a persistent object name (or its iterator variable) • The name will be followed by zero or more dot connected relationship or attribute names – E.g., departments.chair;
  • 8.
    Slide 21- 8 Viewsas Named Objects • The define keyword in OQL is used to specify an identifier for a named query • The name should be unique; if not, the results will replace an existing named query • Once a query definition is created, it will persist until deleted or redefined • A view definition can include parameters
  • 9.
    Slide 21- 9 AnExample of OQL View • A view to include students in a department who have a minor: define has_minor(dept_name) as select s from s in students where s.minor_in.dname=dept_name • has_minor can now be used in queries
  • 10.
  • 11.
    Assignment • What isOQL. Give Examples to explain its functionalities.