A Practical Guide to a Post-Relational Database for .NET: Matisse

Introduction

When it comes to databases for .NET, there are several options in addition to the well-known ones such as SQL Server or MySQL. One of them is Matisse, a post-relational database by Matisse Software.

Why Matisse? It is the only SQL database that I know of that is extended with complete object capabilities and natively supports .NET. It features user-defined types, inheritance, polymorphism, and a simple data model with declarative constraints, and so forth. Over the last two years, I have acquired practical knowledge of Matisse while working on several .NET projects that required complex data modeling.

While one can find press articles that provide high-level comparisons between mainstream relational databases and other products, I have not seen yet a simple step-by-step tutorial to help developers who want to try their hand at new-generation databases. I therefore resolved to publish a series of short articles to help address this void. Here is the first one.

This first article covers a quick overview of SQL programming with Matisse. The subsequent articles will show how to develop database applications with .NET and ASP.NET in more detail.

Installation

Installing Matisse is quick and easy. Go to the Matisse download site http://www.matisse.com/developers/downloads/, and download the next two files under the "Matisse DBMS 7.0.x" section:

  1. Intel-MS Windows (file name is matisse70x.exe)
  2. .NET binding (file name is matisseDotNet70x.exe)

The first file installs the database server, administration and development tools, and a common client library shared by diverse language interfaces for Matisse including .NET (i.e., C# and VB.NET). The second file contains a .NET assembly that provides object persistence services and a native ADO.NET data provider.

To install Matisse, you need to have the Windows Administrator privilege. System requirements are Windows NT, 2000, or XP, 64MB of RAM, and 100 MB of disk space. First, start the matisse70x.exe file, follow the instructions, and select "Typical/Full" as the type of setup. The installation will be completed within a couple of minutes. Then, start matisseDotNet70x.exe to install the .NET interface. Choose the same directory for the destination folder as the first installation (i.e., matisse70x.exe).

The documents you want to look at first are:

  1. Discovering Matisse Enterprise Manager (from Readme.html)
  2. Building reusable components with SQL PSM (from Readme.html)
  3. Getting Started with Matisse

A lot of documents, including programming guides, administration guide, and installation guide are also available at http://www.matisse.com/developers/documentation/.

If you have the Rational Rose modeling tool, you can download Matisse Rose Link (matisseRoseLink70x.exe). You can define and maintain database schema using UML with Rational Rose.

Note: You can run the database server on Linux when deploying your .NET application on Windows. Download the Linux version of Matisse (matisse-7.0-x.i386.rpm) and install it using rpm. If you are using RedHat 8, you need to set the environment variable RPM_INSTALL_PREFIX to /usr/local/matisse before running rpm.

> rpm -ihv matisse-7.0-x.i386.rpm

What You Can Do with the Matisse Enterprise Manager

Before writing a simple demo program using SQL, let us visit some interesting features of the Enterprise Manager.

  1. You can browse classes, attributes, relationships, and SQL methods in a database just like any other vendors' tools. An interesting feature is that a class can show all its properties (i.e., attributes, relationships, and methods) including its superclasses' properties. So, when you write an SQL statement on a class, this feature is useful because you do not have to go back and forth between superclasses and subclasses to find out about properties.
  2. Data Import (CSV)

    You can import data from your relational database using CSV (Comma-Separated Value) files. When you import a CSV file, each line (row) in the file is stored as a data object in the Matisse database. After importing all the CSV files, you specify an XRD file (XML Relationship Definition) that describes how to establish links between objects in the database. Then, objects in the database are inter-related to each other, building a meaningful semantic network that matches your UML description. Relationships between objects also provide a significant performance benefit on SQL queries.

Simple Demo

In this article, I will show a simple demo application that demonstrates how you can use SQL to define a schema and manipulate data objects with Matisse. More detailed discussions will follow in the subsequent articles.

First of all, you need to start a database. Start the Enterprise Manager, select a database, and select the Start menu. The database will be online within a couple of seconds:

The data model that we are going to use is for project management, in which we define three classes—Project, Employee, and Manager—as depicted using UML in the next figure.

If you have Rational Rose, you simply can export the UML diagram into your database. Choose the Export to Database... menu under Tools/Matisse:

If you do not have Rational Rose, you can use SQL DDL or ODL (Object Definition Language). The following DDL statements are equivalent to the above UML diagram.

CREATE TABLE Project (
   ProjectName STRING,
   Budget NUMERIC(19,2),
   Members REFERENCES (Employee)
      CARDINALITY (1, -1)
      INVERSE Employee.WorksIn,
   ManagedBy REFERENCES (Manager)
      CARDINALITY (1, 1)
      INVERSE Manager.Manages
);

CREATE TABLE Employee (
   Name STRING,
   BirthDate DATE,
   WorksIn REFERENCES (Project)
      INVERSE Project.Members
);

CREATE TABLE Manager UNDER Employee (
   Title STRING,
   Manages REFERENCES (Project)
      INVERSE Project.ManagedBy
);

To execute the above DDL statements, copy and paste them into the SQL Query Analyzer window, and then execute them.

Here, you see an advantage in database modeling with Matisse. You do not need any transformation of your model, and all the semantic information about associations between classes and their constraints are kept in the database schema as they are. This is a big plus for maintenance and extension of the application.

We now can create objects in the database. Execute the following SQL statements in the SQL Query Analyzer window as shown above:

INSERT INTO Employee (Name, BirthDate)
   VALUES ('John Venus', DATE '1955-10-01')
   RETURNING INTO emp1;
INSERT INTO Employee (Name, BirthDate) 
   VALUES ('Amy Mars', DATE '1965-09-25')
   RETURNING INTO emp2;
INSERT INTO Manager (Name, BirthDate, Title) 
   VALUES ('Ken Jupiter', DATE '1952-12-15', 'Director')
   RETURNING INTO mgr1;
INSERT INTO Project (ProjectName, Budget, ManagedBy, Members) 
   VALUES ('Campaign Spring 04', 10000.00, mgr1,
   SELECTION(emp1, emp2));

The above statements create two Employee objects, a Manager object and a Project object, and then assign the two employees to the project as its members and the manager as the project manager.

To view the inserted objects, execute "SELECT * FROM Employee"; for example:

When you select from the Employee class, the query returns objects from both Employee and Manager because Manager inherits from Employee. However, the result table does not include the properties specific to Manager, e.g., Title, because the attribute Title is not visible from the Employee class.

You can define SQL methods for classes. The syntax follows SQL PSM (Persistent Stored Module). For example, let us define an instance method Age() that returns an employee's age:

CREATE METHOD Age()
RETURNS INTEGER
FOR Employee
BEGIN
   RETURN EXTRACT(YEAR FROM CURRENT_DATE) -
          EXTRACT(YEAR FROM SELF.BirthDate);
END;

Execute the statement in the SQL Query Analyzer window, and then try the next SELECT query:

SELECT * FROM Employee emp WHERE emp.Age() > 40;

The Age() method works for both Employee and Manager, of course. You can override the method for Manager, and enjoy the polymorphic behavior just as you do with .NET.

Summary

In this article, I showed a quick and brief introduction to SQL programming with Matisse, which shows object features like inheritance and relationships. In the following articles, I will show more details for each topic and discuss the technical advantages and disadvantages.



Comments

  • Replica Oakley Oil Rig wholesale store

    Posted by zifekvkad on 07/01/2013 04:44pm

    Cheap oAkLeys ,No matter what product, so long as careful after years of experience of design, production and market demand will probably be loved through the public. Retro appearance - the classic shapes and tortoiseshell pattern-based - the supremacy on the glasses supplies a quick and easy way to produce a new atmosphere. Fake Oakley SUnglasses ,If you want to know, not at all with the white ray ban sunglasses, no compensation just for this task - this can be completely outside attack, along with the inclusion of gay and absolute achievement, see more flattering! Oakley, Sunglasses are revolutionary design and suspension framework that it's going to not affect the camera lens, nevertheless have the optimized comfort and adapt to an accommodating frame design. Fake OakLey Eyepatch ,You are able to go traditional, then find some good respite to your Oakley Jupiter, it is possible to pick the leading glasses or contact lenses with Oakley sunglasses. The sunglasses initially utilized to reduce eye fatigue and light-weight stimulate the damage like a shade of. Sunglasses health is critical, considering that the frame side from the sun is direct experience of human skin, when the indefinite the perfect time to clean the frame edge accumulated dirt quality. In mid-summer day, UV radiation could be up to triple more in the winter. Most especially, the extent of UV trigger is actually the best harm, ultraviolet radiation, will probably be approximately 10-fold increase. Besides the conventional technology polarization films and drop formation using the injection molding process, injection with the lens material throughout the filter. This signifies that every place is recognized as to be effective, the works of sunglasses. The arrival with the summer, we always hate to visit out underneath the strong sun, as it could make you feel dizzy, in order to acquire one. Should you be wanting to establish a business, then the courage to get started making the 1st step, but ensure you did very meaningful. These sunglasses are select within the usage of all lines of life and age groups, it's not necessary to to head out in the fashion design. Oakley lenses don't just hold on there because they possess a hydrophobic coating re-execution, preventing moisture build lenses. These sunglasses are an excellent complement to, Jewelry, an online retailer inventory of Oakley sunglasses, celebrities options, so that they provided inside the most acceptable price range.

    Reply
  • Wholesale Oakley Big Taco online shop

    Posted by lfwsarghs on 06/26/2013 07:49am

    Oakley Sunglasses sale ,Oakley sunglasses is a wonderful brand sunglasses while using finest quality of materials, selecting Oakley, sunglasses, Oakley sunglasses, each many colors and styles. Today, as well as the bright colors and unusual shapes of persistent organic pollutants, greater eye-catching image of stylish glasses are definitely more defined than in the past. Oakleys Clearance ,Oakley ski goggles contain many types of sunglasses, a different color to get us a different feel and enjoy. Oakley ski goggles, which may meet the needs of numerous reflective coating. One of the most demanding sport professionals in the world contributed towards the the Oakley Sunglasses30 a lot of innovation. The athletes have won more championships and medals your sunglasses than on Earth every other single sport product. Cheap Oakley Radarlock ,High end and cool features, numerous customers the Oakley Holbrooke review cheap online attract so many customers, making sure that a growing number of young men and females have advanced glasses gloss. Oakley glasses, bold features and perfect?? Details. Oakley has embarked on smart glasses for fashion designers. Oakley sunglasses and intelligent functional design, the wearer to provide a personalized feel. Varieties of Oakley sunglasses, annual changes, as with other fashion. However, your options are incredibly different, has not been matched on the design. The most common sunglasses, so males and females can come up the style you prefer, of course, Oakley sunglasses exports allow you to look more stylish, and improve your appearance. The outer layer of skin and eyes has reached the risk of solar powered energy, solar radiation (UV). Rrt had been founded by the sun's rays and ultraviolet radiation Actually, exposure could potentially cause burning with the sun, scaring the organization. Oakley sunglasses sales will give you amazing feeling, the most recent model and design more appealing and classy glasses. Each wearing Oakley sunglasses sweat of athletes inside arena, are worth respect. Cheap male OAKLEY sunglasses a lot more than 99% from the film is enhanced polarized glasses shape for the molecular level. The rise in personal inside your clothing line, so that you feel safe clothing and accessories, good deal point together with simple supply on the interest in fashionable women's equipment and some women, the buzz of clothing is essential. Oakley sunglasses, you may pick the right sunglasses, Oakley sunglasses popular Oakley sunglasses can sell in the world.

    Reply
  • Cheap Oakley Asian Fit online shop

    Posted by czzrllvwz on 06/19/2013 12:43am

    fake ray ban ,Oakley developed a unique design in the bike handle grip material style of the 1st eyewear company in the United States beginner, and then sell on these on appropriate occasions. Each sun shiny day, you'll discover that we wear Oakley sunglasses, it isn't in order to protect their eyes, exposed to us can be the intangible confidence. Oakleys Clearance ,You can determine about sun glasses, male, female or neutral trend, Oakley run, transparent dark framework and a lot of like glasses. The sale of Oakley sunglasses are certainly not just a tool to prevent the sun, but played the role on the decorative surface. Cheap Oakley Radar Path ,Sunshine could be a guide, you can view an entirely different party and found to think that you can not do from the actual cover, accurate sun. Oakley sunglasses is a great brand, and lots of benefits, these benefits in a very long time and expensive research. Oakley sunglasses additional protection vision, as the lens draped over your WATS remain more moderate than the standard lens and UV may cause further reluctant to implement a diverse wide-brimmed sun defense. In mid-summer day, UV radiation could possibly be as high as 3 times more in winter. Just remember, the extent of UV trigger it's essentially the maximum harm, UV, are going to be as much as 10-fold increase. Oakley ski goggles filter all, including UVA, UVB, ultraviolet and harmful blue ignite to 400nm UV baking ray advantage. Oakley is worth it of said and done, the people's lifestyle, sports or polarized sunglasses will get the proper product manufacturers with this. Popular components of many, the excitement through history, look back, so while using the retro. The factors to contemplate glasses UV400 Neiaokeli sun to regularly, it must be guaranteed, carefully selected, with previous experiments, it can be to produce choice to the supplier's supplier Oakley sunglasses. Additionally, the sunglasses, Oakley, inexpensive precision filtration, light shielding, weather-resistant and impact resistance provide important functional advantages. Oakley sunglasses, you'll pick the right sunglasses, Oakley sunglasses popular Oakley sunglasses are selling on the planet.

    Reply
  • Oakley Sunglasses Stores

    Posted by gogoksa on 05/13/2013 04:35am

    As soon as I detected this internet site I went on reddit to share some of the love with them. “The new Haitian baseball can't weigh more than four ounces or under five. ” oakley sunglasses oakley sunglasses oakley sunglasses

    Reply
  • Matisse DBMS Dramatically Reduces Development Time

    Posted by Amy2006 on 04/14/2004 01:42am

    I am using Matisse for a while. It definitely reduces development time as there is no need for object-relational mapping, object serialization etc. It seems they added nicer GUIs for the latest version.

    Reply
Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • Live Event Date: April 22, 2014 @ 1:00 p.m. ET / 10:00 a.m. PT Database professionals — whether developers or DBAs — can often save valuable time by learning to get the most from their new or existing productivity tools. Whether you're responsible for managing database projects, performing database health checks and reporting, analyzing code, or measuring software engineering metrics, it's likely you're not taking advantage of some of the lesser-known features of Toad from Dell. Attend this live …

  • Live Event Date: May 6, 2014 @ 1:00 p.m. ET / 10:00 a.m. PT While you likely have very good reasons for remaining on WinXP after end of support -- an estimated 20-30% of worldwide devices still are -- the bottom line is your security risk is now significant. In the absence of security patches, attackers will certainly turn their attention to this new opportunity. Join Lumension Vice President Paul Zimski in this one-hour webcast to discuss risk and, more importantly, 5 pragmatic risk mitigation techniques …

Most Popular Programming Stories

More for Developers

Latest Developer Headlines

RSS Feeds