DDL importieren

Werbung
Innovator 11 eXcellence
DDL importieren
Data-Definition-Language-Dateien in
HowTo
Datenbankschema importieren
www.mid.de
HowTo DDL importieren
Zweck
In Innovator Data eXcellence können Sie mit dem DDL-Import Ihr physisches Modell initial befüllen.
Dabei können Sie das Datenbankschema Ihrer physischen Datenbank verwenden.
Eine Aktualisierung des physischen Modells wird nicht unterstützt.
Anforderungen
Ihr physisches Modell muss das Profil DB Base importieren (Dialogbox Bearbeiten/Eigenschaften, Register Importierte Profile).
Einstieg
So gehen Sie vor
Um ein Datenbankschema in Innovator zu erstellen und aus einer DDL-Datei initial zu befüllen:
» Legen Sie Im Modellbrowser unterhalb des Systemmodells mit dem Menübefehl Element>
Neu>Modell>Physisches Modell ein physisches Modell an.
» Legen Sie unterhalb des Physischen Modells mit dem Menübefehl Element>Neu>Modell>
Datenbankkatalog einen Datenbankkatalog an.
» Legen Sie unterhalb des Datenbankkatalogs mit dem Menübefehl Element>Neu>Modell>
Datenbankschema eine Datenbankschema an.
» Selektieren Sie das Datenbankschema.
» Um das Schema aus der DDL-Datei zu befüllen, rufen Sie die Engineering-Aktion DDL importieren auf.
» Wählen Sie die zu importierende Datei aus Ihrem Dateisystem aus und bestätigen Sie mit OK.
Funktionalität
Der Import ignoriert alle Modellelemente, die bereits im Datenbankschema existieren. Das bedeutet,
dass keine Beziehungen zwischen den vorhandenen und den importierten Modellelementen erzeugt
werden können. Die einzige Ausnahme ist das Datenbankschema, das Sie für den Import ausgewählt
haben.
Wenn Sie also dieselbe DDL-Datei zweimal in dasselbe Datenbankschema importieren, werden Sie
Fehlermeldungen erhalten, weil die Modellelemente bereits existieren.
Das komplette physische Datenbankmodell muss in einer DDL-Datei enthalten sein. Alle Datenbankobjekte, die in der DDL-Datei verwendet werden, müssen in einer Datei angelegt werden. Es darf also
1
HowTo DDL importieren
z. B. kein Fremdschlüssel auf eine Tabelle angelegt werden, die nicht auch in dieser DDL-Datei angelegt wird.
Anpassung
Argumente
Sie können das Verhalten des Imports verändern, wenn Sie Argumente der Engineering-Aktion setzen.
Liste aller verfügbaren Argumente:
•
DataPrint
Ausgabe des geparsten DDL. Standardwert ist "false".
•
bCombinePrivilege
Verschiedene Privilegien derselben Aktion kombinieren. Der Standardwert
ist "true".
•
bIgnoreUnresolved
Nicht aufgelöste Referenzen ignorieren. Der Standardwert ist "false".
•
sCreation
Der Name der Spezifikation, die die Stereotype enthält.
Der Standardwert ist "".
•
sDirectory
Verzeichnis der DDL Dateien
•
sCustomerAdapter
Siehe Kapitel "Kundenadapter". Der Standardwert ist
"de.mid.innovator.ddlimport.DefaultAdapter".
•
bAbortOnError
Bei Auftreten eines Fehlers abbrechen. Der Standardwert ist "false".
•
bDebug
Debugausgaben einschalten. Der Standardwert ist "false".
•
bDisableAPICache
Puffer der Innovator-API ausschalten. Der Standardwert ist "true".
•
bDisableCache
Puffer der Anwendung ausschalten. Der Standardwert ist "false".
•
bIgnoreSelection
Auswahl ignorieren. Der Standardwert ist "false".
•
bShowDialog
Zeige den Dialog. Der Standardwert ist "true".
•
bShowReport
Zeige den Bericht. Der Standardwert ist "true".
•
bSilent
Keine Ausgabe. Der Standardwert ist "false".
•
iFontsize
Schriftgröße. Der Standardwert ist "20".
•
sInodir
absoluter INODIR-Verzeichnisname. Standard ist "$(INODIR)".
•
sInotmp
absoluter INOTMP-Verzeichnisname. Standard ist "$(INOTMP)".
•
sTitle
Titel der Anwendung. Standard ist "DDL importieren".
Stereotype für neue Modellelemente
Sie können die Stereotype angeben, die für das Anlegen von Modellelementen verwendet werden.
Diese müssen in einer Spezifikation am Zielmodell stehen. Sie können den Namen der Spezifikation,
in der die Stereotype stehen, als Argument 'sCreation' der Engineering-Aktion mitgeben. Wenn Sie
2
HowTo DDL importieren
keinen Namen mitgeben, wird die ausgelieferte Spezifikation aus der Datei INODIR/java/
InoIMInOut/bin/InoIMInOut.jar verwendet.
Für jeden Elementtyp gibt es einen Eintrag für den Profilnamen und einen Eintrag für den Stereotypnamen. Drei Felder bestimmen, welche Spezifikation für die Beschreibung der Tabelle, der View und
der Spalte verwendet wird. Ein Beispiel der Datei ist
<?xml version="1.0" encoding="utf-8"?>
<Stereos>
<StereotypeRootProfile>Data eXcellence</StereotypeRootProfile>
<StereotypeRootName>package</StereotypeRootName>
<StereotypeTableProfile>Data eXcellence</StereotypeTableProfile>
<StereotypeTableName>table</StereotypeTableName>
<StereotypeTableColumnProfile>Data eXcellence</StereotypeTableColumnProfile>
<StereotypeTableColumnName>tableColumn</StereotypeTableColumnName>
<StereotypePrimaryKeyProfile>Data eXcellence</StereotypePrimaryKeyProfile>
<StereotypePrimaryKeyName>dbKey</StereotypePrimaryKeyName>
<StereotypeForeignKeyProfile>Data eXcellence</StereotypeForeignKeyProfile>
<StereotypeForeignKeyName>dbForeignKey</StereotypeForeignKeyName>
<StereotypeIndexedColumnProfile>Data eXcellence</StereotypeIndexedColumnProfile>
<StereotypeIndexedColumnName>indexedColumn</StereotypeIndexedColumnName>
<StereotypeIndexProfile>Data eXcellence</StereotypeIndexProfile>
<StereotypeIndexName>index</StereotypeIndexName>
<StereotypeDTDProfile>Data eXcellence</StereotypeDTDProfile>
<StereotypeDTDName>datatypeDefinition</StereotypeDTDName>
<StereotypeDependencyProfile>Data eXcellence</StereotypeDependencyProfile>
<StereotypeDependencyName>depend</StereotypeDependencyName>
<StereotypeUniqueKeyFeatureProfile>Data eXcellence
</StereotypeUniqueKeyFeatureProfile>
<StereotypeUniqueKeyFeatureName>featureUniqueKey</StereotypeUniqueKeyFeatureName>
<StereotypeKeyRelationshipFeatureProfile>Data eXcellence
</StereotypeKeyRelationshipFeatureProfile>
<StereotypeKeyRelationshipFeatureName>featureKeyRelationship
</StereotypeKeyRelationshipFeatureName>
<StereotypeTableOptionProfile>Data eXcellence</StereotypeTableOptionProfile>
<StereotypeTableOptionName>dbOption</StereotypeTableOptionName>
<StereotypeTableColumnOptionProfile>Data eXcellence
</StereotypeTableColumnOptionProfile>
<StereotypeTableColumnOptionName>dbOption</StereotypeTableColumnOptionName>
<StereotypePrimaryKeyOptionProfile>Data eXcellence
</StereotypePrimaryKeyOptionProfile>
<StereotypePrimaryKeyOptionName>dbOption</StereotypePrimaryKeyOptionName>
<StereotypeForeignKeyOptionProfile>Data eXcellence
</StereotypeForeignKeyOptionProfile>
<StereotypeForeignKeyOptionName>dbOption</StereotypeForeignKeyOptionName>
<StereotypeIndexOptionProfile>Data eXcellence</StereotypeIndexOptionProfile>
<StereotypeIndexOptionName>dbOption</StereotypeIndexOptionName>
<StereotypeIndexedColumnOptionProfile>Data eXcellence
</StereotypeIndexedColumnOptionProfile>
<StereotypeIndexedColumnOptionName>dbOption</StereotypeIndexedColumnOptionName>
<DescriptionTable>DDL COMMENT</DescriptionTable>
<DescriptionColumn>DDL COMMENT</DescriptionColumn>
<StereotypeDBUserProfile>Data eXcellence</StereotypeDBUserProfile>
<StereotypeDBUserName>user</StereotypeDBUserName>
<StereotypeDBRoleProfile>Data eXcellence</StereotypeDBRoleProfile>
<StereotypeDBRoleName>role</StereotypeDBRoleName>
3
HowTo DDL importieren
<StereotypeDBRoleAuthorizationProfile>Data eXcellence
</StereotypeDBRoleAuthorizationProfile>
<StereotypeDBRoleAuthorizationName>roleAuthorization
</StereotypeDBRoleAuthorizationName>
<StereotypeViewProfile>Data eXcellence</StereotypeViewProfile>
<StereotypeViewName>view</StereotypeViewName>
<DescriptionView>ViewText</DescriptionView>
<StereotypeViewColumnProfile>Data eXcellence</StereotypeViewColumnProfile>
<StereotypeViewColumnName>viewColumn</StereotypeViewColumnName>
</Stereos>
Kundenadapter
Sie können während des Imports von DDL-Dateien weitere Aktionen durchführen, die im Standard
nicht durchgeführt werden. Dazu können Sie mit der Programmiersprache Java Methoden erstellen,
die während des Imports aufgerufen werden. Die Methoden müssen sich in einer Klasse befinden,
deren qualifizierten Namen Sie der Engineering-Aktion per Argument sCustomerAdapter bekannt
machen. Desweiteren muss die Klasse die Schnittstelle
de.mid.innovator.ddlimport.AdapterInterface implementieren. Es gibt zwei Methoden,
die Sie implementieren können:
•
precommit
wird aufgerufen, bevor die Modellelemente erzeugt werden
•
postcommit
wird aufgerufen, nachdem die Modellelemente erzeugt wurden
Außerdem müssen Sie die kompilierte Klasse im Klassenpfad der Engineering-Aktion bereitstellen.
Beispiel:
Die Methode soll für jede Tabelle, die angelegt wurde, einen Zähler am Schema erhöhen.
Zusätzliches Argument der Engineering-Aktion
sCustomerAdapter="de.mid.example.Counter"
Quelltext der Java-Klasse Counter.java
package de.mid.example;
import java.util.List;
import de.mid.innovator.srv.excellence.InoSrvObject;
public class Counter implements AdapterInterface{
public void precommit(InoSrvObject pack, List<SQLCommand> listCommand) {
return;
}
public void postcommit(InoSrvObject pack, List<SQLCommand> listCommand) {
int iCount = 0;
for (SQLCommand command:listCommand){
if (SQLCommand.CMD.CREATE_TABLE.equals(command.CMD)){
iCount++;
}
}
pack.setLabel("counter", String.valueOf(iCount));
return;
}
}
4
HowTo DDL importieren
Begriffe
Konzeptionelles Modell
auch bekannt als logisches Datenmodell oder ER-Modell. Es beschreibt
die Datenstrukturen in ihrer abstrakten Form. Das konzeptionelle Modell
muss in der dritten Normalform (3NF) normalisiert sein.
Physisches Modell
auch bekannt als physikalisches Datenmodell oder Datenbankmodell. Es
hält die präzise Spezifikation für ein bestimmtes Datenbankdesign in einer
bestimmten Konfiguration. Das physische Modell ist nicht die Datenbank,
aber es kann verwendet werden, um die DDL-Datei zu generieren.
Ableitung
der Vorgang des Anlegens und Änderns eines Modells aus einem anderen Modell anhand der Abbildungsvorschrift.
Abbildung
die Abbildungsvorschrift beschreibt, welches Modellelement von welchem
Modellelement abgeleitet werden soll.
DDL
ist ein Akronym für Database Definition Language (englisch für Datenbankdefinitionssprache). Es beschreibt das Datenbankschema einschließlich der Tabellen, Views, Schlüssel, Indizes, Prozedurem, Trigger, Benutzer, Rollen, etc. Sie können mit Hilfe dieser Sprache das Modell verändern. Die Sprache ist eine Untermenge von SQL.
SQL
ist ein Akronym für Structured Query Language (englisch für strukturierte
Abfragesprache). Es ist eine Obermenge von DDL. Außer Operationen
auf dem Schema, können Sie damit auch die Inhalte lesen und verändern.
Copyright © 2010 MID GmbH
Bei Fragen wenden Sie sich bitte an unsere Hotline. Telefon: +49 (0)911 96836-222, E-Mail: [email protected].
Dieses Dokument finden Sie neben anderen auch im exklusiven Login-Download-Bereich für Innovator-Wartungskunden unter
http://www.mid.de/support/.
Ihre MID
Innovator 11.3 HowTo DDL Import 101015.doc
MID GmbH, Kressengartenstraße 10, 90402 Nürnberg
Telefon: +49 (0)911 96836-0, Fax: +49 (0)911 96836-100, E-Mail: [email protected], Internet: http://www.mid.de
5
Herunterladen