19
K.Subieta. SBA and SBQL, slide 1 June 2007 Stack-Based Approach and Stack-Based Query Language - Overview Presentation prepared for the OMG Analysis & Design Task Force (ADTF) OMG TECHNICAL MEETING, Brussels, Belgium June 25th-29th, 2007 by Prof. Kazimierz Subieta Polish-Japanese Institute of Information Technology, Warsaw, Poland [email protected] http:// www.ipipan.waw.pl/~subieta SBA/SBQL pages: http:// www.sbql.pl

Stack-Based Approach and Stack-Based Query Language - Overview

  • Upload
    lucien

  • View
    22

  • Download
    0

Embed Size (px)

DESCRIPTION

Stack-Based Approach and Stack-Based Query Language - Overview. Presentation prepared for the OMG Analysis & Design Task Force (ADTF) OMG TECHNICAL MEETING, Brussels, Belgium June 25th-29th,  2007 by Prof . Kazimierz Subieta - PowerPoint PPT Presentation

Citation preview

Page 1: Stack-Based Approach and  Stack-Based Query Language - Overview

K.Subieta. SBA and SBQL, slide 1 June 2007

Stack-Based Approach and Stack-Based Query Language

- OverviewPresentation prepared for the OMG Analysis & Design Task Force (ADTF)

OMG TECHNICAL MEETING, Brussels, BelgiumJune 25th-29th,  2007

by

Prof. Kazimierz Subieta

Polish-Japanese Institute of Information Technology, Warsaw, Poland [email protected]://www.ipipan.waw.pl/~subietaSBA/SBQL pages: http://www.sbql.pl

Page 2: Stack-Based Approach and  Stack-Based Query Language - Overview

K.Subieta. SBA and SBQL, slide 2 June 2007

Topics

• What is SBA?

• What is SBQL?

• SBA/SBQL database models

• Abstract implementation as semantic specification

• The idea of SBA

• Naming, scoping, binding and environment stack

• SBA/SBQL data store models

• SBA/SBQL in recent (pending) projects

• ODRA architecture

• SBQL queries and programs (examples)

• Unique qualities of SBA/SBQL

Page 3: Stack-Based Approach and  Stack-Based Query Language - Overview

K.Subieta. SBA and SBQL, slide 3 June 2007

What is SBA?

• The Stack-Based Approach (SBA) is a formal methodology addressing object-oriented query and programming languages.

• In SBA we reconstruct query languages’ concepts from the point of view of programming languages (PLs). – No definite border line between querying and programming; thus there

should be a universal theory that uniformly covers both aspects.

• SBA offers a unified and universal conceptual and semantic basis for queries and programs involving queries -– including programming abstractions such as procedures, functions,

classes, types, methods, views, etc.

Page 4: Stack-Based Approach and  Stack-Based Query Language - Overview

K.Subieta. SBA and SBQL, slide 4 June 2007

What is SBQL?

• SBQL (Stack-Based Query Language) plays the same role for object models as the relational algebra for the relational model.

• However:– SBQL is incomparably more powerful - this concerns universality of

data models and complete algorithmic power.

– SBQL is much more powerful than OQL, OCL and XQuery (at least concerning o-o data model, updating capabilities, program control facilities, programming abstractions and virtual o-o views).

– SBQL is fully precise w.r.t. the specification of semantics.

– SBQL (in contrast to SQL and OCL) is free of parasite syntax.

– SBQL has been carefully designed from the pragmatic point of view.

– SBQL is strongly (statically) and semi-strongly typed.

– SBQL has advanced query optimization methods.

Page 5: Stack-Based Approach and  Stack-Based Query Language - Overview

K.Subieta. SBA and SBQL, slide 5 June 2007

Pragmatic quality of SBQL

• It is achieved by:– Orthogonality of introduced data/object constructors,

– Orthogonality of all the language constructs,

– Object relativism,

– Orthogonal persistence,

– Typing safety,

– Introducing all the classical and some new programming abstractions (procedures, functions, modules, types, classes, methods, views, etc.),

– Clean formal semantics,

– No semantic reefs,

– No far context dependencies,

– Following commonly accepted programming languages’ principles.

Page 6: Stack-Based Approach and  Stack-Based Query Language - Overview

K.Subieta. SBA and SBQL, slide 6 June 2007

SBA/SBQL database models

• SBA and SBQL are neutral to database models.

• SBA covers all database models that we are aware of:– Relational and nested-relational models,

– XML and RDF models,

– Object-oriented models with static (UML-like) and dynamic inheritance,

– Collections, associations, encapsulation, polymorphism, etc.

• SBA and SBQL address data structures rather than data models. – When a concept in a data model is mapped as an abstract data

structure, a corresponding feature of SBQL can handle it.

• SBQL is the first and only query language that deals with dynamic object roles and dynamic inheritance.

Page 7: Stack-Based Approach and  Stack-Based Query Language - Overview

K.Subieta. SBA and SBQL, slide 7 June 2007

Abstract implementation as semantic specification

• It is a kind of operational semantics based on abstract data structures that participate in query/program processing

• SBA introduces three well-known structures: – object store,

– environment stack (thus Stack-Based Approach),

– query result stack.

• These structures are fundamental for precise semantic description of everything that may happen in database query/programming languages. – Classical query operators, such as selection, projection, joins and

quantifiers, can be generally and precisely specified.

– We abandon (poor) database theories such as object algebras or calculi.

Page 8: Stack-Based Approach and  Stack-Based Query Language - Overview

K.Subieta. SBA and SBQL, slide 8 June 2007

The idea of SBA

• The SBA solution relies on adopting a run-time mechanism of PLs and introducing necessary improvements to it.

• The main syntactic decision is the unification of PL expressions and queries - no conceptual difference: – 2+2

– (x+y)*z

– Employee where salary = 1000

– (Employee where salary = (x+y)*z).surname

• All such expressions/queries can be used as:– arguments of imperative statements,

– parameters of procedures, functions or methods

– a return from a functional procedure (from a method).

Page 9: Stack-Based Approach and  Stack-Based Query Language - Overview

K.Subieta. SBA and SBQL, slide 9 June 2007

Naming, scoping, binding and environment stack

• Each name occurring in a query is bound to run-time programming entities (persistent data, procedures, actual parameters of procedures, local procedure objects, etc.), according to the actual scope for the name. – The common PLs’ approach is that the scopes are organized in an

environment stack with the “search from the top” rule.

– Some extensions to the structure of stacks used in PLs are necessary.

• Abstract implementation of query operators, imperative programming constructs and procedures (functions, methods, views, etc.) is defined in terms of the mentioned abstract structures:– object store,

– environment stack,

– query result stack

Page 10: Stack-Based Approach and  Stack-Based Query Language - Overview

K.Subieta. SBA and SBQL, slide 10 June 2007

SBA/SBQL data store models

• SBA/SBQL assumes a family of formal object store models which are enumerated M0, M1, M2 and M3.

• The simplest is M0, which covers relational, nested-relational and XML-oriented databases. – M0 assumes hierarchical objects with no limitations concerning the

nesting of objects and collections. M0 also covers pointer links (relationships) between objects.

• M1 store model extends M0 by classes and static (multiple) inheritance.

• M2 store model extends M1 by object roles and dynamic inheritance.

• M3 store model extends M1 or M2 by encapsulation.

Page 11: Stack-Based Approach and  Stack-Based Query Language - Overview

K.Subieta. SBA and SBQL, slide 11 June 2007

SBA/SBQL in recent (pending) projects

• ODRA (Object Database for Rapid Applications) - queries, imperative constructs, programming abstractions, classes, types, methods, inheritance, modules, query optimization,...

• European project eGov Bus. Integrating distributed resources being under control of various European governmental institutions.

– SBQL as an embedded QL for application programming in Java.

– SBQL as self-contained DBPL for application programming.

– Virtual repository based on SBQL virtual updateable OO views

• European project VIDE - developing a visual programming language for the OMG MDA.

– OCL and other concepts related to Executable UML are implemented

• XML2XML mapper based on SBQL

Page 12: Stack-Based Approach and  Stack-Based Query Language - Overview

K.Subieta. SBA and SBQL, slide 12 June 2007

ODRAArchitecture

Page 13: Stack-Based Approach and  Stack-Based Query Language - Overview

K.Subieta. SBA and SBQL, slide 13 June 2007

SBQL object (ODRA)

Page 14: Stack-Based Approach and  Stack-Based Query Language - Overview

K.Subieta. SBA and SBQL, slide 14 June 2007

SBQL schema (ODRA)

Page 15: Stack-Based Approach and  Stack-Based Query Language - Overview

K.Subieta. SBA and SBQL, slide 15 June 2007

SBQL queries

• Get all information on departments for employees named Doe: (Emp where lName = “Doe”).worksIn.Dept• Get the name of Doe’s boss: (Emp where lName = “Doe”).worksIn.Dept.boss.Emp.lName• Names and cities of employees working in departments managed by Kim: (Dept where (boss.Emp.lName) = “Kim”).employs.Emp. (lName, if exists(address) then address.city else “No address”)• For each employee get the name and the percent of the annual budget of

his/her department that is consumed by his/her monthly salary: Emp . (lName as n, (((if exists(sal) then sal else 0) as s). ((s * 12 * 100)/(worksIn.Dept.budget)) as percentOfBudget)

Page 16: Stack-Based Approach and  Stack-Based Query Language - Overview

K.Subieta. SBA and SBQL, slide 16 June 2007

SBQL programs• For each person having no salary give the minimal salary in his/her

department: for each (Emp where not exists(sal)) as e do { e.changeSal( min(e.works_in.Dept.employs.Emp.sal) )}

• A method: changeSal( newSal: real ): boolean {

if (not exists(self.sal)) then { sal: real[0..1];

      self :< create sal(newSal);    }

else {    if (self.sal > newSal) then return false;       else self.sal := newSal;    }    return true; }

Page 17: Stack-Based Approach and  Stack-Based Query Language - Overview

K.Subieta. SBA and SBQL, slide 17 June 2007

Conclusions

• To make a high quality standard for object-oriented databases, the specification of semantics is the must, …– …to avoid the fate of SQL-99 and ODMG standards, perceived as

loose recommendations rather than technical specifications.• SBA offers the unique method of query languages’ construction and

semantic specification.– SBA is a holistic database theory, it doesn’t give up any (even the

most advanced) feature of current practical O-O database QL/PL.• Michi Henning, ZeroC: „No standard should be approved without a

reference implementation.– This provides a first-line sanity check of what is being standardized. – No one is brilliant enough to look at a specification and be certain that

it does not contain hidden flaws without actually implementing it.”• SBQL has been implemented more than 10 times, for different

systems and purposes.

Page 18: Stack-Based Approach and  Stack-Based Query Language - Overview

K.Subieta. SBA and SBQL, slide 18 June 2007

10 unique qualities of SBA/SBQL for a new O-O database standard

1. Orthogonal syntax, full compositionality of queries.

2. Universal formal semantics based on abstract implementation.

3. Computational universality, advanced data structures, integration with PL constructs.

4. Strong typing of advanced O-O queries and programs.

5. Several advanced implementations, next are pending.

6. Fully transparent O-O virtual updatable views.

7. Strong potential for query optimization.

8. All O-O notions treated formally and uniformly.

9. Sound and manageable metamodel.

10. The potential for distributed query processing.

Page 19: Stack-Based Approach and  Stack-Based Query Language - Overview

K.Subieta. SBA and SBQL, slide 19 June 2007

Acknowledgement

• This work is supported by the European Commission 6-th Framework Programme, Project VIDE - VIsualize all moDel drivEn programming, IST 033606 STP

• VIDE Participant List (in random order)

– SAP AG (Germany)

– SOFTEAM (France)

– Institute for Information Systems at the German Research Center for Artificial Intelligence (Germany)

– IESE Fraunhofer (Germany)

– Polish-Japanese Institute for Information Technology (Poland, coordinator)

– FIRST Fraunhofer (Germany)

– TNM Software GmbH (Germany)

– Bournemouth University (United Kingdom)

– Rodan Systems S.A. (Poland)

– ALTEC (Greece)