Object Role Modelling

Object Role Modelling

Object Role Modeling (ORM, engl. Modellierung der Rollen von Objekten) dient dazu, im Rahmen der Datenmodellierung einen Ausschnitt der realen Welt (englisch: Universe of Discourse, UoD) zu beschreiben. Es beschreibt Objekte und ihre Rollen zueinander entweder in einfachen Sätzen, oder in intuitiven Diagrammen.

Es dient zum einen in der konzeptionellen Phase der Anwendungsentwicklung der Verständigung zwischen Anwendern und Entwicklern, wobei ausschließlich das Was, also die Sachlogik, und nicht das Wie, also die Technik, dargestellt wird. Zum Anderen dient das ORM-Modell in der Implementierungsphase als Grundlage für das Design der Datenbank.

Inhaltsverzeichnis

Beispiel

Einfaches ORM-Beispiel

Im Bild rechts wird eine einfache Beziehung dargestellt: Ein Angestellter arbeitet in einem Department. Dieses Diagramm stellt die drei grundlegenden Objekttypen vor:

  • Entities (Angestellter und Departement) sind die eigentlichen Objekte des UoD's. Entitäten werden als Ellipsen dargestellt.
  • Roles (Arbeitsplatz) (auch "fact type") stellen die Beziehung zwischen Entities (Objekten) dar. Rollen werden als aneinanderhängende Rechtecke dargestellt.
  • Label ("Name des Angest." und "Name des Dep.") sind die Typen der Objekte.

Eine Instanz in diesem Beispiel ist eine Belegung der Tabelle. Zum Beispiel: "Franz Otto arbeitet im Verkauf". Hierbei ist Franz Otto eine Instanz von Angestellter und Verkauf eine Instanz von Department.

Algorithmus

Um von einer Tabelle mit (signifikanten) Einträgen zu einem ORM Diagramm zu kommen, kann man folgende sieben Schritte durchlaufen. Es ist ein etwas formeller Weg zu einem ORM Diagramm, aber meist (besonders für komplizierte Diagramme) ist es hilfreich, sich das schrittweise zu überlegen und nicht zu versuchen, alles auf einmal umzuwandeln.

  • 1: Wandle bekannte Informationen in elementare Fakten um und mache Qualitäts Check.
  • 2: Zeichne die fact type und mache einen Populations Check
  • 3: Teste, ob Entity Typen zusammengefasst werden sollten und kennzeichne alle Typen, die aus den Bestehenden berechnet werden können.
  • 4: Füge uniqueness constraints hinzu, und teste die Länge der fact type.
  • 5: Füge mandatory role constraints hinzu und teste ob etwas logisch ableitbar ist
  • 6: Füge einschränkende Werte, Mengenvergleiche und Subtyping ein.
  • 7: Füge restliche Bedingungen ein und führe letzten Check durch.



Gegeben ist folgende Tabelle. Daraus soll ein ORM- Diagramm erstellt werden.

Vorlesung Zeit Student Matrikelnr. Note
Datenbanken 15:00
Maier
Müller
Schultze
25538402
25587304
25587305
1.3
2.0
2.3
Robotik 15:00
Schmitt
Schmidt
Müller
25534567
25584555
25587304
1.7
2.7
1.0

Umwandlung bekannter Informationen in elementare Fakten

In diesem Schritt versucht man, sich über die Typen und ihren Zusammenhang klar zu werden. Zuerst versucht man, die gegebenen Informationen in aussagekräftige Sätze umzuwandeln:

  • "Datenbanken wird um 15:00 Uhr gehalten."

Um nun leichter auf das Diagramm schließen zu können, muss man sich Gedanken machen, was nun ein Entity type, ein Label type und eine Instanz eines Entity types darstellt. Der obige Satz lässt sich umformulieren in:

  • "Die Vorlesung mit dem Vorlesungsnamen Datenbanken wird zu der Zeit vom Typ Uhrzeit 15:00 Uhr gehalten."

Aus diesem Satz kann man ablesen:

  • 'Vorlesung' und 'Zeit' sind Entity types
  • 'Vorlesungsname' und 'Uhrzeit' sind Label types und
  • 'Datenbanken' und '15:00 Uhr' sind Instanzen von Vorlesung und Zeit und sind vom Typ Vorlesungsname und Uhrzeit.

Da Zeit sich in dieser Tabelle wirklich nur auf die Vorlesung bezieht, ist dieser Satz richtig und vollständig. Etwas komplizierter wird es wenn man sich die Note ansieht.

Zwei falsche Sätze:

  • Student Müller erreichte die Note 2.0. -> Hier bleibt die Frage, in welcher Vorlesung er sie erreicht hat
  • In der Vorlesung Datenbanken wurde die Note 2.0 vergeben. -> Hier entsteht die Frage, für welchen Studenten das gilt.

Richtiger Satz: "Student Müller erreicht Note 2.0 in der Vorlesung Datenbanken."

Das ist nun kein fact type mehr der nur zwei Entity types überspannt.

Zeichnen der fact types

ORM-Diagramm zwischen Vorlesung und Zeit

Aus dem Satz: "Die Vorlesung mit dem Vorlesungsnamen Datenbanken wird zu der Zeit vom Typ Uhrzeit 15:00 Uhr gehalten." kann man nun folgendes Diagramm erstellen. Dabei ist es erlaubt, den Label type in Klammern unter den Entity type zu schreiben.

Da dieser fact type nur zwei Entity types bindet, ist das ein binärer fact type


ORM-Diagramm Ternary Fact Type

Aus dem Satz: "Student Müller erreicht Note 2.0 in der Vorlesung Datenbanken." erstellt man nun ein ORM-Diagramm mit einem ternären fact type, da dieser fact type drei Entity types bindet.


Weblinks

Object Role Modeling: Ein Überblick (engl) im MSDN

Zeichnung erstellt mit Microsoft Visio Modeller

Referenzen

Information Modeling and Relational Databases von Terry Halpin (ISBN 1-55860-672-6)


Wikimedia Foundation.

Игры ⚽ Поможем решить контрольную работу

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Object-Role Modeling — Not to be confused with Object relational mapping. Example of the application of Object Role Modeling in a Schema for Geologic Surface , Stephen M. Richard (1999).[1] Object Role Modeling (ORM) is a method for conceptual modeling, and can be used …   Wikipedia

  • Object role modeling — Not to be confused with Object relational mapping. [ Stephen M. Richard (1999). [http://pubs.usgs.gov/of/1999/of99 386/richard.html Geologic Concept Modeling] . U.S. Geological Survey Open File Report 99 386.] ] Object Role Modeling (ORM) in the… …   Wikipedia

  • Role Class Model — In computer science, the role class model is a role analysis patterncite web | last = Fowler | first = Martin | authorlink = Martin Fowler | title = Dealing with Roles | work = Analysis Pattern | date = 1997 07 20 | url =… …   Wikipedia

  • Object-relational impedance mismatch — The object relational impedance mismatch is a set of conceptual and technical difficulties that are often encountered when a relational database management system (RDBMS) is being used by a program written in an object oriented programming… …   Wikipedia

  • Object-oriented user interface — In computing an object oriented user interface (OOUI) is a type of user interface based on an object oriented programming metaphor. In an OOUI, the user interacts explicitly with objects that represent entities in the domain that the application… …   Wikipedia

  • Inheritance (object-oriented programming) — In object oriented programming (OOP), inheritance is a way to reuse code of existing objects, establish a subtype from an existing object, or both, depending upon programming language support. In classical inheritance where objects are defined by …   Wikipedia

  • Scientific modelling — Example of scientific modelling. A schematic of chemical and transport processes related to atmospheric composition. Scientific modelling is the process of generating abstract, conceptual, graphical and/or mathematical models. Science offers a… …   Wikipedia

  • Molecular modelling — The backbone dihedral angles are included in the molecular model of a protein. Modelling of ionic li …   Wikipedia

  • FORML — abbr. Formal Object Role Modelling Language …   United dictionary of abbreviations and acronyms

  • Data model — Overview of data modeling context: A data model provides the details of information to be stored, and is of primary use when the final product is the generation of computer software code for an application or the preparation of a functional… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”