SchemaSQL
SchemaSQL is a query language that extends SQL so that queries can be made not only about data, but also about several ( relational ) databases and their structure in the form of tables and field names .
While in SQL variables can only be used as placeholders for tuples ( data sets ) and values, in SchemaSQL the names of databases, relations and attributes can also be used as variables. This enables joint inquiries via several databases with different structures. A variable is defined in the form Bereich Variable
whereby the following areas are possible:
- The expression
->
for the set of all names of all available databases - The expression
db->
for the set of all names of relations (tables) in the databasedb
- The expression
db::rel
for the set of all tuples ofrel
indb
- The expression
db::rel->
for the set of all attribute names ofrel
indb
- The expression
db::rel.attr
for the set of values in the column or columnsattr
ofrel
indb
Extensions / advantages of SchemaSQL:
- same treatment of data and metadata
- Restructuring within the request (i.e. data becomes metadata and vice versa)
- dynamic view definitions (i.e. the structure of the result of the view definition can depend on the current state of the database)
- horizontal aggregation (i.e. across multiple columns) or block aggregation (when horizontal is combined with vertical (standard SQL))
- Support of multidatabase systems (MDBS)
See also
A related database language is the Multidatabase query language (MDBQL).
literature
- Laks Lakshmanan, Fereidoon Sadri, Subramanian: SchemaSQL: An extension to SQL for multidatabase interoperability . In: ACM Transactions on Database Systems 26 (4) pp. 476-519, 2001
- Laks Lakshmanan, Fereidoon Sadri, Subramanian: SchemaSQL - A Language for Interoperability in Relational Multidatabase Systems . In: Proceedings of the 22nd International Conference on Very Large Databases, 1996 pp. 239-250