Datenbankschema (DB)
Das Datenbankschema beschreibt, wie die Daten in einem konkreten relationalen Datenbanksystem (RDBMS, kurz DBMS) in Tabellen abgelegt werden. Mit diesem Modell soll die Data Definition Language (DDL) zur Realisierung auf einer konkreten Datenbank erstellt werden. Die Standardsprache für DDL ist SQL.
Für die Modellierung des Datenbankschemas verwenden Sie folgende Modellelemente:
-
Datenbankmodell
Als Datenbankmodell gelten alle Modelle unterhalb von Systemmodellen (API-Typ MEModel), deren Stereotyp eine Vererbung vom Stereotyp «physicalModel» ist.
In den Modellvorlagen werden ausschließlich die jeweiligen Vererbungen für die unterstützten Datenbanksysteme verwendet («Oracle» usw.).
In den Innovator-Standardprofilen haben diese Modelle einen Profilimport des jeweiligen Datenbank-Typsystemprofils.
-
Datenbankdiagramm
Das Datenbankdiagramm zeigt ein Teilmodell des Datenbankschemas. Dabei werden Datenbanktabellen als Knoten und Fremdschlüssel als Kanten dargestellt.
Innovator verwendet die IDEF1X-Notation.
Zusätzlich können Datenbank-Views als Knoten und ihre From-Klauseln als Kanten dargestellt werden.
-
Datenbanktabelle
Tabelle eines relationalen Datenbanksystems.
SQL: CREATE TABLE
-
Tabellenspalte
Spalte einer Datenbanktabelle, der ein Datentyp zugewiesen wird, um einen Merkmalswert einer Instanz zu speichern.
SQL: CREATE TABLE (<Spaltendefinition>,...)
-
Schlüssel einer Datenbanktabelle
Primärschlüssel oder alternativer Schlüssel einer Datenbanktabelle, der durch einen Fremdschlüssel referenziert wird. Ein Schlüssel ist eine Auswahl von Tabellenspalten, über deren Werte eine Instanz eindeutig identifiziert werden kann.
SQL: ALTER TABLE ADD PRIMARY KEY oder ALTER TABLE ADD CONSTRAINT UNIQUE
-
Fremdschlüssel
Ein Fremdschlüssel referenziert einen Schlüssel. Damit wird die Instanz des Fremdschlüssels mit der Instanz des Schlüssels verknüpft. Der Fremdschlüssel enthält für jede Spalte des referenzierten Schlüssels eine passende Fremdschlüsselspalte.
SQL: ALTE TABLE ADD FOREIGN KEY ... REFERENCES
-
SQL-Check-Constraint
Ein SQL-Check-Constraint sichert die speicherbaren Werte von Tabellenspalten.
SQL: CREATE TABLE (<Spaltendefinition>, CHECK (<constraint>) ...)
-
Einschränkung (Disjunkte Tabellen)
Diese Einschränkung dient der Modellierung von disjunkten Instanzmengen in Tabellen, die einen gemeinsamen Primärschlüsselpool haben. Damit kann eine äquivalente Aussage modelliert werden, wie sie im ER-Modell durch eine Generalisierungsmenge modelliert wird.
Eingeschränkte Elemente können Datenbanktabellen und Fremdschlüssel sein. Die betroffenen Tabellen werden auch als Geschwister-Tabellen bezeichnet. Beim Denormalisieren werden zwischen Geschwister-Tabellen keine Fremdschlüssel erzeugt.
-
Index
Ein Index ist eine Auswahl von Tabellenspalten, die den Zugriff auf Instanzen beschleunigt. Gleichzeitig kann die Eindeutigkeit festgelegt werden.
SQL: CREATE [UNIQUE] INDEX
-
Indexspalten
Die Verwendung von Tabellenspalten in einem Index. Eine Indexspalte kann die verwendete Spalte noch durch einen Funktionsausdruck modifizieren.
CREATE INDEX (<Spalte>) oder CREATE INDEX (<Function>(<Spalte>))
-
Datenbank-Trigger
Ein Trigger propagiert die Ausführung von DML-Aktionen (Insert, Delete, Update) auf tabelleninterne und -externe Daten. Je nach Ausführungszeitpunkt können hiermit z.B. Werte vor Einfügen errechnet oder Redundanzen nachträglich gepflegt werden. Die Erzeugung eines Triggers sorgt dafür, dass das Datenbanksystem die korrekt Pflege der Daten übernimmt.
SQL: CREATE TRIGGER
-
Datenbank-View
Ein Datenbank-View fasst die Spalten einer oder mehrerer Tabellen in einer Tabelle zusammen. Dabei können die Spalten eines Datenbank-View redundante Daten enthalten.
Im Folgenden wird als Überbegriff für Datenbanktabelle oder Datenbank-View der Begriff Spaltenmenge verwendet.
SQL: CREATE VIEW
-
Spalte eines Datenbank-Views
Die Werte von View-Spalten werden aus den Werten der verwendeten Spalten ermittelt. Dabei können auch Berechnungsausdrücke mit Funktionen verwendet werden.
SQL: CREATE VIEW (<View-Spaltendefinition>)
-
From-Klausel
Ein Datenbank-View enthält eine oder mehrere From-Klauseln, die besagen, aus welchen Spaltenmengen der Inhalt des Views gebildet wird. Die Spalten dieser Spaltenmengen werden für die Berechnung der Werte der View-Spalten verwendet.
SQL CREATE VIEW .... FROM <Tabelle>, ...
-
Gespeicherte Prozedur
Dieses Element dient zu Speicherung von Prozeduren (engl. stored procedure).
Die Implementierung dieser Prozeduren geschieht üblicherweise mit Hilfe von Werkzeugen, die zu einem konkreten Datenbankprodukt gehören, die eine durch DDL realisierte Datenbank nutzen.
SQL: CREATE PROCEDURE oder CREATE FUNCTION
-
Ausdruck einer gespeicherten Prozedur
Jede Gespeicherte Prozedur kann für mehrere konkrete Datenbanken eine Implementierung enthalten, die in der entsprechenden Sprach implementiert wurde. Existenzvoraussetzung ist ein konfiguriertes Typsystem.
-
Typsystemoptionen
Diese Optionen sind für die Generierung vollständiger DDL-Skripten nötig. Welche Optionen verfügbar sind, wird für das verwendete Typsystem (DBMS) konfiguriert.
-
Datenbankobjekt-Gruppe
Ist eine Spezialisierung von Paket, die zusätzliche Eigenschaften eines SQL-Objekts (siehe unten) hat.
-
DB-Benutzerverwaltung
Benutzer, Gruppe, Rolle, Privilegien und Rollenberechtigungen für DBMS können modelliert werden.
SQL: GRANT | REVOKE <actions> ON ... TO <user|group|role> AS <user>
-
Denormalisierung
Beim Zusammenführen von Tabelle wird in der geänderten Tabelle ein Element der Klasse "Aufgenommene Tabelle" angelegt, das die Denormalisierung protokolliert. Hier wird festgehalten, in welche Richtung zusammengeführt wurde. Das Element erhält den Namen der aufgenommenen Tabelle und erbt auch deren Abhängigkeiten und die Abhängigkeiten des Fremdschlüssels, über den die Denormalisierung durchgeführt wurde.
Beim Zusammenführen von Tabellen hin zum Primärschlüssel kann eine Anzahl angegeben werde. Es wird jeweils eine "Instanz einer Aufgenommenen Tabelle" angelegt und für jede Instanz eine Kopie der Spalten der aufgenommenen Tabelle, die miteinander verknüpft sind.
-
Generische SQL
Das Innovator-Metamodell hat nicht die volle Mächtigkeit wie der SQL-Sprachumfang. Der Elementtyp "Generische SQL" dient der Erweiterung für kundenspezifische oder verfahrensspezifische Modelle. Die Verwendung als spezielles SQL-Element wird durch Konfiguration von Stereotypen und Konfiguration von Beziehungen (siehe SQL-Objekt) erreicht.
-
SQL-Objekt
SQL-Objekt ist ein Oberbegriff für einige oben gelistete Elemente mit folgenden Eigenschaften. Einem SQL-Objekt können Privilegien zugeordnet werden. SQL-Objekte können miteinander verknüpft werden, wenn die Beziehungen "verwendete SQL-Objekte" und "verwendende SQL-Objekte" konfiguriert werden.
Für SQL-Objekte können Typsystemoptionen konfiguriert werden, die bei der DDL-Generierung verwendet werden sollen.
Folgende Elemente sind SQL-Objekte:
- Datenbankobjekt-Gruppe
- Datenbanktabelle
- Datenbank-View
-
From-Klausel
- Tabellenspalte
- View-Spalte
- Schlüssel
- Fremdschlüssel
- Index
-
Indexspalte
- SQL-Check-Constraint
- Gespeicherte Prozedur
- Trigger
- Generische SQL
Für die Modellierung des Datenbankschemas verwenden Sie vor allem folgenden Diagrammtyp.