Matisse
 

Download Matisse


downloads
documentation
FAQs
resources

FAQ's
Frequently Asked Questions:
  1. Is Matisse SQL OQL compliant?
  2. Does Matisse SQL support object extensions?
  3. Does Matisse SQL support joins?
Questions and Answers:
Q: Is Matisse SQL OQL compliant?
A: For simple statements Matisse SQL conforms closely to the ANSI SQL syntax. For instance, it supports relational projection where OQL requires a 'struct' construction. Matisse SQL follows the OQL standard for object extensions like path expressions, list constructors.
Q: Does Matisse SQL support object extensions?
A: Yes, Matisse SQL object extensions add navigational access through path expressions and text searching capabilities. Matisse SQL automatically maps the object model onto the relational table model. It can manage inheritance, inter-object relationships or multi-valued attributes (among others), mapping them into relational result sets. The data dictionary for the relational table model is always accessible through SQL.
Q: Does Matisse SQL support joins?
A: Yes, Matisse now supports equi-joins among classes. For example, the following statement selects the names of movies along with their director names:

SELECT m.name, d.lastName, d.firstName
FROM movie m, movieDirector d
WHERE m.directedBy = d.oid

The join condition is expressed using the relationship 'directedBy' defined between the two classes. The relationship 'directedBy' works as the foreign key and 'oid' works as the primary key. Here is another example using SQL join.

If you want to select movies with directors whose name starts with 'S', use the following statement:

SELECT m.name, d.lastName, d.firstName
FROM movie m, movieDirector d
WHERE m.directedBy = d.oid AND d.lastName LIKE 'S%'

Since the navigation between objects that forms the Matisse join mechanism is part of the Matisse database architecture, the join operation executes significantly faster than the same operation performed using a relational database. In the Matisse object SQL database, the join operation is a simple navigational process.

Matisse SQL joins provide a fast and easy way to develop applications using mainstream development and reporting tools