Typsysteme und Datentypen
Innovator unterstützt das Konzept des semantischen Datentyps. Zur Realisierung des Datenmodells in einer konkreten Datenbank benötigt man zusätzlich die dort erlaubten technischen Datentypen. Typsysteme und ihre Datentypen können in Innovator frei konfiguriert werden.
Datentypen kennen lernen
Attribute des konzeptionellen Schemas und Tabellenspalten des Datenbankschemas können einen Datentyp zugewiesen bekommen. In Innovator ist dies entweder ein semantischer Datentyp (oder dessen spezielle Form Sequenz-Typ) oder eine Datentypdefinition.
Die Datentypdefinition gibt Auskunft über die Speicherart, z.B. ob es eine ganze Zahl, eine Zeichenkette oder ein Datum ist.
Der semantische Datentyp sagt etwas über die Bedeutung des gespeicherten Wertes aus, z.B. ist die ganze Zahl etwa eine Anzahl, ein Code wie Postleitzahl oder Kundennummer, ist die Zeichenkette ein Personenname, ein beliebiger oder formaler Text. Auch bei der Typisierung durch einen semantischen Datentyp wird der technische Typ benötigt, um die richtige Datentypdefinition in einer SQL-Create Table-Anweisung für die Tabellenspalte zu generieren. Dafür wird der semantische Datentyp einmalig durch die Datentypdefinition typisiert.
In der Konfiguration eines Typsystems kann ein Datentyp bis zu zwei Parameter haben, die mit $1 und $2 im Namen enthalten sind, z.B. "Ganze Zahl($1-Byte)", "char($1), "decimal($1,$2)". Diese beiden Parameter implementieren die Stelligkeit und Genauigkeit des Datentyps. Wenn Sie eine Datentypdefinition anlegen, wählen Sie einen konfigurierten Datentyp aus und setzen die konkreten Parameter in den Merkmalen der Datentypdefinition.
Typsystem 'Deutsch' im konzeptionellen Schema
Für das konzeptionelle Schema wurde in Innovator im Standardfall das Typsystem "Deutsch" konfiguriert.
Das konzeptionelle Schema dient der Modellierung der fachlichen Anforderungen. Und damit auch als Diskussionsplattform mit den Fachleuten. Diese benötigen kein Wissen über interne Eigenschaften von Datentypen auf Datenbanken. Deswegen wird als Typsystem eine quasi-natürlich Sprache empfohlen, die intuitiv verstanden wird.
Die Einführung eines anderen Typsystems, z.B. einer formalen Sprache, ist möglich. Konfigurieren Sie hierzu im Profil für das ER-Schema ein neues Typsystem, mit den von Ihnen unterstützten Datentypen. Beachten Sie dabei, dass auch die Abbildungsvorschriften zu den RDBMS-Typsystemen zu konfigurieren sind.
Abbildung der 'deutschen' Datentypen in Datenbanktypen
Die Abbildung der konzeptionellen Datentypen zu Datentypen in einer konkreten Datenbank erfolgt automatisch. Diese Abbildung ist durch Konfiguration beliebig veränderbar und erweiterbar.
Das Regelwerk, das aus Typen des Typsystems "Deutsch" die Datentypen für die RDBMS-Zielsysteme ableitet, kann in Abhängigkeit von Parameterwerten mehrere Datentypen des Zielsystems erreichen und auch deren Parameterwerte errechnen.
Beispiel: DB2 erlaubt den Datentyp char($1) für einen maximalen Parameter-Wert von 254, nämlich char(254). Für Werte größer 254 soll der Datentyp varchar verwendet werden. Ein Attribut A mit der Datentypdefinition "Alphanumerisch(20)" und eine Attribut B mit "Alphanumerisch(2000)" werden dann ins Datenbankschema als Spalte A mit DB2-Typ "char(20)" und Spalte B mit "varchar(2000)" abgebildet.
Datentypen in Fremdschlüsseln
Attribute und Spalten in Fremdschlüssel haben im Normalfall keinen eigens zugeordneten Typ, sondern errechnen diesen aus dem referenzierten eindeutigen Schlüssel.
In Fremdschlüsseln werden im Normalfall dieselben Datentypen verwendet wie in den referenzierten eindeutigen Schlüsseln. Innovator speichert deswegen bei Fremdschlüssel-Attributen oder ‑Spalten den Datentyp nicht explizit, sondern ermittelt ihn automatisch. Das Ändern eines Datentyps in einem Primärschlüssel benötigt daher keine Anpassung abhängiger Fremdschlüssel.
Sie können den Datentyp in einem Fremdschlüssel aber auch explizit zuordnen, wenn Sie im Eigenschaftenfenster einen abweichenden Typ wählen. Fremdschlüssel-Attribute und ‑Spalten werden bei Anzeige des Typs in solchen Fällen durch ein Ausrufezeichen in geschweiften Klammern gekennzeichnet: {!}. Wenn Sie den Datentyp im Eigenschaftenfenster wieder löschen, wird automatisch wieder der Datentyp des referenzierten Schlüssels angezeigt.
Typsysteme in Modellen verwenden
Eine spezielle Form eines Pakets ist das Modell. Typsysteme die innerhalb eines Modells bekannt sein sollen, müssen in einem Profil konfiguriert sein, dass vom Modell direkt importiert wird.
Innerhalb der Konfiguration werden Profile von Profilen importiert, um abhängige oder weiterführende Konfigurationen vorzunehmen. Modelle importieren Profile und kennen im Normalfall rekursiv auch die Inhalte deren importierter Profile. Die Zuordnung von Typsystemen bildet hier eine Ausnahme!