Search the web
Sign In
New User? Sign Up
information_modeling · Information Modeling
? Already a member? Sign in to Yahoo!

Yahoo! Groups Tips

Did you know...
Hear how Yahoo! Groups has changed the lives of others. Take me there.

Best of Y! Groups

   Check them out and nominate your group.
Having problems with message search? Fill out this form to ensure your group is one of the first to be migrated to the new message search system.

Messages

  Messages Help
Advanced
RMap implemented   Message List  
Reply | Forward Message #229 of 237 |
Folk,

Over the weekend, I implemented RMap - the part that chooses
which object types will be tables in a third-normal-form database.
I had previously identified all possible absorption paths, so it's
now a small step to emit columns, either foreign key fields where
the referenced object is a table, or all absorbed fields where not,
and using that, to emit SQL.

My example models are all emitting mappings that are either
identical or superior(*) to those of NORMA. There may be cases
that still fail, but I believe I have almost all possibilities covered,
even the weird ones.

I was able to do this without resorting to binarizing the model, so
the roles that are listed in my join paths are in all cases the same
role objects that are covered by constraints, role references for
readings, etc - which makes it much easier to incrementally adjust
the mappings and to correlate operations between the relational
and elementary forms. It also means that it's easy to emit constraint
enforcement for all constraints that are mappable.

I can do this from either NORMA files or the CQL files that I can
generate from them, though a couple of "known problems" with
the CQL parser means that not all my models compile properly
yet. I'll address those soon.

My metamodel so far has no indicator that a subtype should be
partitioned, so that's not implemented, though subtype absorption
or extension is possible using the "independent" role. Partition will
also require the identification of subtype exhaustion. Anyhow, that's
a small step.

My main next step is to emit SQL, for at least a couple of databases,
and to annotate the generated Ruby so that the objects know how to
construct queries. That should take me up to my presentation at the
OSDC conference on Dec 3.

(*) NORMA will sometimes absorb an AutoCounter field into a table
that already has one, or will absorb the same field into more than
one place, which leads to processing errors. It also sometimes
chooses the wrong end of a one-to-one, such as when it creates
a "Name" table instead of an "Author" table in my Blog model. My
implementation of Rmap doesn't have these errors.

Clifford Heath, Data Constellation.
Agile Information Management and Design.



Tue Oct 21, 2008 8:42 am

clifford_heath4
Online Now Online Now
Send Email Send Email

Forward
Message #229 of 237 |
Expand Messages Author Sort by Date

Folk, Over the weekend, I implemented RMap - the part that chooses which object types will be tables in a third-normal-form database. I had previously...
Clifford Heath
clifford_heath4
Online Now Send Email
Oct 21, 2008
8:42 am
Advanced

Copyright © 2009 Yahoo! Inc. All rights reserved.
Privacy Policy - Terms of Service - Guidelines - Help