11.07.2015 Aufrufe

ODL-Sprachkonstrukte und interaktive Benutzerschnittstelle - TUM

ODL-Sprachkonstrukte und interaktive Benutzerschnittstelle - TUM

ODL-Sprachkonstrukte und interaktive Benutzerschnittstelle - TUM

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Kapitel 3Gr<strong>und</strong>lagen von <strong>ODL</strong>In diesem Kapitel behandeln wir die Gr<strong>und</strong>lagen von <strong>ODL</strong>. Der Abschnitt 3.1 befasst sich mit derKonzeption von <strong>ODL</strong>. Der Abschnitt 3.2 geht auf die erste Implementierung eines <strong>ODL</strong>-Interpretersfür QUEST ein.3.1 KonzeptionDieser Abschnitt basiert in weiten Teilen auf [Sch01], wo die Operation Definition Language (<strong>ODL</strong>)vorgestellt wurde.Als Erstes wollen wir die Formalisierung des Metamodells beschreiben, die für die Definitionvon <strong>ODL</strong> Anwendung fand. Ein Metamodell MM besteht aus einem Paar (ME,MR), wobei ME eineFamilie von Metamodellentitäten ME = {ME 1 ,...,ME m } <strong>und</strong> MR eine Familie von MetamodellrelationenMR = {MR 1 ,...,MR n } ist. Eine Metamodellrelation ist eine Relation von Metamodellentitätender Form MR i ⊆ ME j1 × ... × ME jk mit k > 0.Metamodellentitäten sind paarweise disjunkte Mengen von Modellementen – Modellelementeoder auch Entitäten sind damit Instanzen von Metamodellelementen. So wären Komponente oderPort Metamodellelemente, während eine Komponente ”Comp1” oder ein Port ”Slot1” Entitäten sind.Der Einfachheit halber werden Attribute von Metamodellentitäten als Spezialfall von Relationenformalisiert – wenn eine Metamodellentität E ein Attribut attr des Typs type hat, so interpretieren wires als Relation RE attr ⊆ E ×type.In <strong>ODL</strong> verwenden wir folgende Notation: ein Attribut attr der Entität e wird als e.attr geschrieben;Relationsinstanzen einer Metamodellrelation R ⊆ E 1 ×...×E k zwischen Entitäten e i ∈ E i werdenals R(e 1 ,...,e k ) notiert.<strong>ODL</strong>-Abfragen operieren auf Produktmodellen, die auf einem Metamodell basieren. In dieserHinsicht gibt es eine Analogie zwischen SQL <strong>und</strong> <strong>ODL</strong>, wobei folgende Entsprechungen zwischenQUEST-Modellen <strong>und</strong> Datenbanken gelten:<strong>ODL</strong> ←→ SQLMetamodell ←→ Entity-Relationship-Modell(Produkt-)Modell ←→ DatenbankausprägungSowohl SQL als auch <strong>ODL</strong> sind Query-Sprachen, mit denen man keine Programme schreibenkann, deren Abfragen aber immer terminieren, da sie auf endlichen Universen operieren <strong>und</strong> keineSchleifen zulassen, die potenziell endlos sein könnten (insbesondere keine WHILE-Schleifen). <strong>ODL</strong>ist nicht an ein konkretes Metamodell geb<strong>und</strong>en, sondern kann mit jedem Metamodell verwendet werden,dass der oben dargelegten Formalisierung genügt. Ähnlich dazu ist SQL nicht an ein konkretesDatenbankschema geb<strong>und</strong>en, sondern wird mit verschiedenen Schemata eingesetzt, die für SQL dieRolle des Metamodells einer Datenbank spielt.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!