Die Erklärungen beziehen sich auf Oracle 8.0/8.1 und Personal Oracle 8.0 bei Verwendung der nativen Unique Datenbankschnittstelle für Oracle.
Datenbank/Benutzer
Datenbanken in proNet START entsprechen einem Benutzer in Oracle. Der Benutzer kann über proNet START bei der direkten Ausführung nicht erzeugt werden, sondern muß vorher mit Oracle-Dienstprogrammen, z.B. srvmgr oder sqldba erzeugt werden. Bei der Skripterzeugung wird auch der Benutzer erzeugt. Alle Objekte in der Datenbank werden als Objekte erzeugt, die dem Oracle-Benutzer gehören.
Areas
Areas sind im Sprachgebrauch von Oracle Tablespaces. Die Tablespaces werden von proNet START bei Bedarf erzeugt, alle Verweise auf Areas bei Tabellen und Indizes werden beachtet. Dem Oracle-Benutzer wird die Standard-Area, die in proNet START definiert ist, als default tablespace zugewiesen. Das heißt, weitere Objekte in dieser Datenbank werden auch ohne Angabe einer Area von Oracle automatisch in der Standard-Area erzeugt.
Alle Speichereinstellungen für Areas werden beachtet, die Speichereinstellungen in proNet START sind namensgleich mit den Einstellungen in Oracle.
Logging/Log-Area
Ein Oracle-Datenbankserver wird immer mit Logging betrieben. Das Logging wird zentral für den kompletten Server verwaltet, für eine einzelne Datenbank, also einen Oracle-Benutzer kann proNet START keine Parameter ändern, also auch keine Log-Area definieren. Das Logging findet über die Rollbacksegmente, die einen eigenen Tablespace, meist RBS, haben sollten, und über die Redo Log-Dateien statt, die als normale Dateien im Dateisystem angelegt sind.
Speicherformate
proNet START Oracle
alphanumeric(n) varchar2(n) (maximal 4000 Zeichen)
varchar(n) varchar2(n) (maximal 4000 Zeichen)
binary(n) raw(n) (maximal 2000 Bytes)
bit number(1,0)
date number(8,0)
datetime date
image <simuliert>
image generic BLOB
integer1 number(3,0)
integer2 number(5,0)
integer4 number(12,0)
money money(14,2)
packed decimal(m,n) numeric(m+n,n)
packed decimal(m,n) unsigned numeric(m+n,n)
real4 number
real8 number
serial number(12,0)
text <simuliert>
text generic CLOB
time number(6,0)
unpacked decimal(m,n) numeric(m+n,n)
unpacked decimal(m,n) Separate numeric(m+n,n)
BLOB-Felder
Oracle 8.0/8.1 unterstützt neben den bisherigen BLOB-Speicherformaten LONG und LONG RAW die neuen LOB-Datentypen (BLOB,CBLOB,NCBLOB und BFILE). Unique 4GL unterstützt ab Version 7.00-02 die neuen LOB-Datentypen BLOB und CLOB und über den uqconfig-Datenbankparameter db-settings=simulate_blobs auch die von Unique simulierten BLOBs. Simulierte BLOBs und echte BLOB-Felder können nicht in einer Datenbank gemischt werden (Mehr Hinweise zu simulierten BLOBs in Fall:22 Referenz DB-Erzeugung für Oracle 7.x).
Serial-Felder
Serial-Felder werden von Oracle 8.0/8.1 nicht direkt unterstützt, sondern werden simuliert über ein number(12,0) Feld, eine Sequenz und einen Trigger. Auf der Tabelle wird ein Trigger definiert, der beim Einfügen eines neuen Datensatzes einen neue Number aus der Sequenz bezieht und diese Nummer automatisch mitabspeichert. Der Startwert für Serial-Felder wird bei der Definition der Sequenz beachtet. Die Definition der Sequenz und des Triggers sieht folgendermaßen aus:
create sequence <Datenbank>.<Tabelle>$<Feld> increment by 1 start with <Startwert>;
create or replace trigger <Datenbank>.<Tabelle>$<Feld> before insert on <Datenbank>.<Tabelle> for each row declare nextsequence number(10); begin select <Datenbank>.<Tabele>$<Feld>.nextval into nextsequence from dual;:new.<Feld>:=nextsequence; end;
Beim Importieren bestehender Datenbanken werden Serial-Felder als Integer4-Felder importiert.
Tabellen
Alle Speichereinstellungen außer Fill Factor für Tabellen werden beachtet, die Speichereinstellungen in proNet START entsprechen den Einstellungen in Oracle.
Schlüssel/Indizes
Unique CONCEPT unterstützt die Oracle Hints für die Angabe von Indexnamen bei select-Anweisungen. Deshalb müssen die Indexnamen einer bestimmten Syntax folgen, damit die Unique Runtime Engine problemlos auf die Indizes verweisen kann. Indexnamen in Oracle werden von proNet START in der Syntax Tabellenname$Indexname erzeugt.
Primäre Schlüssel innerhalb von proNet START werden als table constraint primary key erzeugt.
Eindeutige Schlüssel innerhalb von proNet START werden als table constraint unique key erzeugt.
Eindeutige Indizes innerhalb von proNet START werden als unique index erzeugt.
Mehrdeutige Indizes innerhalb von proNet START werden als index erzeugt.
Die Schlüssel-/Indexoption Clustered wird von Oracle nicht unterstützt und folglich ignoriert.
Die maximale Anzahl an Schlüsselelementen ist 32 innerhalb von Oracle 8.0/8,1, allerdings können nur maximal 16 Elemente zusammen mit Unique CONCEPT benutzt werden. Beim Reverse Engineering werden trotzdem alle 32 Schlüsselelemente importiert.
Die unterschiedliche Sortierung einzelner Indexelemente wird vom DBMS nicht unterstützt. Zwar läßt sich eine Sortierung angeben, diese wird aber ignoriert.
Alle Speichereinstellungen für Indizes werden beachtet, die Speichereinstellungen in proNet START entsprechen den Einstellungen in Oracle bis auf Fill Factor, das in den Oracle Parameter PCTFREE umgesetzt wird ( berechnet als Fill Factor=100-PCTFREE).
Foreign Keys
Foreign Keys werden von Oracle unterstützt. Als Löschregel werden nur 'Keine Aktion' und 'Kaskadierendes Löschen' unterstützt. Änderungsregeln werden nicht unterstützt.
Views
Views werden von Oracle unterstützt.
Namenslänge
Die maximale Länge von Bezeichnern innerhalb von Oracle 8.0/8.1 ist 30 Zeichen.
|