Konzeptionelles Modell in DB-Schema abbilden
Das Mapping erlaubt Ihnen, im konzeptionellen Modell zu modellieren und daraus ein Datenbankmodell zu erzeugen.
Allgemein
Das Mapping ER-DB ist auf Basis des M2M SDK erstellt und bietet daher alle Möglichkeiten des M2M SDK bezüglich der Anpassung und Erweiterung.
Was wird abgebildet?
- Die Auswahl durch den Benutzer soll übernommen werden.
- Bei Auswahl mehrerer Modellelemente sollen alle abgebildet werden.
- Bei Selektion eines Modells soll das Modell abgebildet werden.
- Bei Selektion eines Pakets soll das Paket abgebildet werden.
- Bei Selektion einer Entität soll die Entität abgebildet werden.
- Bei Selektion einer Sicht soll die Sicht abgebildet werden.
- Bei Selektion eines semantischen Datentyps soll der semantische Datentyp genau dann abgebildet werden, wenn die Option de.mid.data.UseSDTinDB=true ist, was nicht der Standard ist.
- Bei Selektion einer Sequenz soll die Sequenz abgebildet werden.
- Bei Selektion eines Diagramms soll das Diagramm abgebildet werden.
- Andere ausgewählte Elemente werden ignoriert.
- Abhängige Elemente sollen übernommen werden.
- Bei Selektion einer Sicht wird die Sicht und die verwendeten Entitäten und Sichten abgebildet .
- Bei Selektion eines Diagramms wird der Inhalt des Diagramms abgebildet .
- Der verwendete semantische Datentyp bzw. die verwendete Sequenz oder die verwendete Datentypdefinition an einem Attribut wird abgebildet, das gilt auch für den abgeleiteten Typ eines Fremdschlüsselattributs.
- Der Fremdschlüsseltyp einer Sequenz wird abgebildet.
- Der Fremdschlüssel, der in einer abgebildeten Entität auf eine abgebildete Entität oder View zeigt, wird abgebildet. D.h. die speziellen oder generellen oder über Relation verbundenen Entitäten werden nicht abgebildet, wenn sie nicht bereits abgebildet wurden. Der Benutzer muss diese Entitäten explizit abbilden.
- Immer wird der komplette transitive Inhalt eines Modellelements mit abgebildet.
- Die transitiven Besitzer aller abgebildeten Modellelemente werden auch abgebildet. Ausnahme: Sequenzen und semantische Datentypen
Was wird im DB erzeugt?
- Wenn ein Modellelement im DB bereits verbunden ist, wird nichts erzeugt, sondern dieses Modellelement eventuell geändert.
- Je ein Paket aus ER soll in ein Paket in DB abgebildet werden. Der Besitzer aller Pakete in DB ist derselbe. Je nach Typsystem ist dies das Modell oder der Katalog.
- Aus Entitäten, Sichten, Attributen, Schlüsseln und Fremdschlüsseln werden Tabellen, Sichten, Spalten, Schlüssel und Fremdschlüssel erzeugt. Die Tabellen und Sichten werden entweder im entsprechenden Paket oder gemäß Anlegevoreinstellung angelegt.
- Aus eindeutigen Schlüsseln werden genau dann Indizes erzeugt, wenn die Option de.mid.data.CreateIndex=true ist, was nicht der Standard ist.
- Aus Fremdschlüsseln werden genau dann Indizes erzeugt, wenn die Option de.mid.data.CreateFKIndex=true ist, was nicht der Standard ist.
- Das Diagramm wird gemäß Name und Besitzer angelegt. Eventuell vorhandene Anlegevoreinstellungen werden berücksichtigt. Das Anlegen erfolgt nur, wenn dort nicht bereits ein Diagramm mit demselben Namen liegt und wenn die Option de.mid.data.CreateDiagram=true gesetzt ist, was Standard ist. Der Diagramminhalt (enthaltene Knoten, Kanten, Sichtbarkeit der Abschnittsinhalte und Größe und Position der Knoten) wird nicht aktualisiert, wenn die Option de.mid.data.MaintainDiagram=false gesetzt wird, was Standard ist. Um ein Diagramm also beim Mapping zu aktualisieren, löschen Sie es oder benennen Sie es um oder verschieben Sie es in ein anderes Paket oder setzen Sie die Option de.mid.data.MaintainDiagram=true.
- Aus einem semantischen Datentyp wird kein semantischer Datentyp erzeugt, wenn die Option de.mid.data.UseSDTinDB=false gesetzt ist, was der Standard ist. Ausschließlich für einen semantischen Datentypen, der Fremdschlüsseltyp einer Sequenz ist, wird ein semantischer Datentyp erzeugt. Wenn ein semantischer Datentyp erzeugt wird, wird er gemäß Anlegevoreinstellung angelegt.
- Die Datentypdefinition einer Spalte oder eines semantischen Datentyps wird gemäß der Typabbildung im Typsystem des konzeptionellen Modells aus der Datentypdefinition im konzeptionellen Modell berechnet. Wenn die vorhandene Datentypdefinition im Datenbankmodell jedoch gemäß der Typabbildung im Typsystem des Datenbankmodells auf die Datentypdefinition im konzeptionellen Modell abgebildet werden kann, erfolgt keine Ersetzung. Wenn im konzeptionellen Modell und Datenbankmodell dasselbe Typsystem verwendet wird, wird derselbe Typ verwendet.
- Aus einer Generalisierungsmenge, deren Generalisierungen Fremdschlüssel haben, wird eine Einschränkung für disjunkte Tabellen erzeugt. Der Name der Einschränkung ist der zusammengesetzte Name aus genereller Entität und der Generalisierungsmenge.
- Aus einer Sequenz wird eine Sequenz erzeugt. Die Sequenz wird gemäß Anlegevoreinstellung angelegt.
- Aus einer Beziehung, Generalisierung oder Generalisierungsmengen werden keine Fremdschlüssel im DB erzeugt. Daher benötigen sie einen Fremdschlüssel im konzeptionellen Modell, sonst wird im Datenbankdiagramm keine Verbindung der Tabellen angezeigt. Für einen Fremdschlüssel zu einer hierarchischen Beziehung oder zu einer Generalisierung wird im DB am Fremdschlüssel die Option "ON DELETE CASCADE" erstellt.
- Für Pakete, Tabellen, Spalten, Views, Viewspalten, From-Klauseln, eindeutige Schlüssel und Fremdschlüssel werden die Namen der entsprechenden Modellelemente aus dem konzeptionellen Modell übernommen. Die Namen werden bei jeder Durchführung des Mappings geändert. Wenn der Name nicht gesetzt werden kann, weil er nicht eindeutig ist, wird stattdessen ein eindeutiger Name gesetzt, z.B. Table_37. Wenn die Option de.mid.data.UseDB2Names=true ist, was ausschließlich für DB2-PC oder DB2-Host der Standard ist, werden DB2-konforme Namen erzeugt. Das heißt Großbuchstaben, Zahlen und Unterstrich bleiben erhalten; die deutschen Umlaute und Kleinbuchstaben werden umgewandelt; alle anderen Zeichen werden durch Unterstrich ersetzt.