-
Die
Erfindung betrifft die Erstellung einer Datenbankzugriffstabelle,
die Teil eines Datenbankverwaltungssystems (Data Base Management
System, DBMS) ist. In mindestens einer Datenbank zu speichernde
Datensätze
werden im Rahmen dieses Verfahrens in Form einer Datenstrukturbeschreibungssprache
sowie einer Datentypbeschreibungssprache definiert. Zur Weiterverarbeitung
der in der Datenbank gespeicherten Datensätzen wird eine Programmiersprache
zur Entwicklung beispielsweise von Software für Vermittlungsstellen der Kommunikationstechnik
verwendet.
-
Zur
Verarbeitung der in der Datenbank gespeicherten Daten ist es erforderlich,
daß die
Datenbankzugriffstabelle, die den Inhalt der in der Datenbank gespeicherten
Datensätze
aufzeigt, in einer Form aufgebaut ist, die von der jeweiligen Programmiersprache
verwendet werden kann.
-
Aus
der europäischen
Patentschrift
EP 05
20 708 B1 ist ein Verfahren und eine Anordnung zum Umwandeln
von abstrakten Syntaxen auf hohem Niveau in eine Zwischenform bekannt,
wobei sich die Anordnung auf eine Modifikation eines existierenden ASN.1
Computers bezieht, welche den Benutzer in die Lage versetzt, abstrakte
Datentypen darzustellen und/oder zu ändern. Es erfolgt nur eine
einmalige Übersetzung
der ASN.1-Definition,
nämlich
von der ASN.1-Definition in die ASN.1-BER-Definition.
-
Der
Erfindung liegt das Problem zugrunde, ein Verfahren zum Erstellen
einer Datenbank zugriffstabelle aus Datensätzen mit Hilfe eines Rechners
zu schaffen.
-
Zur
Lösung
wird bei dem erfindungsgemäßen Verfahren
die Datenbankzugriffstabelle erstellt, indem die zu speichernden
Datensätze,
die anfangs in mindestens einer Datentypbeschreibungssprache vorliegen,
in eine erste Zwischensprache übersetzt werden.
Anschließend
werden die Datensätze
in der ersten Zwischensprache attributiert und werden so zu Datensätzen in
einer zweiten Zwischensprache. Anschließend werden die Datensätze in eine
dritte Zwischensprache übersetzt.
Die Datenbankzugriffstabelle wird aus den in der dritten Zwischensprache vorliegenden
Datensätzen
erstellt. Die Daten der Datenbankzugriffstabelle liegen in Form
von Array-Definitionen der verwendeten Programmiersprache vor.
-
Unter
einer Datentypbeschreibungssprache ist im Rahmen dieser Erfindung
beispielsweise die sog. Abstract-Syntax-Notation One (ASN.1) zu
verstehen, deren Grundzüge
in dem Dokument [1] beschrieben sind. Eine weitere Datenstrukturbeschreibungssprache,
die sog. Guide Lines for the Definition of Managed Objects (GDMO)
ist in dem Dokument [3] beschrieben.
-
Die
Programmiersprache kann beispielsweise die sog. CCITT High Level
Language (CHILL) sein. Eine Übersicht über die
Programmiersprache CHILL ist in dem Dokument [2] zu finden. Eine
weitere mögliche
Programmiersprache ist in der objektorientierten Programmiersprache
C++ oder auch in der Programmiersprache C zu sehen.
-
Auf
diese Weise ist es möglich,
mehrere unterschiedliche Attributierungen modular für den gleichen
Quelltext (Source), der in der Datentypbeschreibungssprache vorliegt,
durchzuführen,
ohne daß Attributierungen
in dem Quelltext direkt vorgenommen werden müssen. Damit wird eine spezifische
manuelle Attributierung jeweils für eine spezielle „Ziel"-Programmiersprache unnötig. Dies
führt zu einem
sehr vereinfachten Verfahren im Vergleich zur jeweils manuellen
Attributierung des Quelltextes.
-
Ferner
ist es durch das erfindungsgemäße Verfahren
möglich,
Quelltexte, die in einer Datentypbeschreibungssprache vorliegen,
direkt zu verarbeiten, ohne eine spezielle Anpassung, beispielsweise eine
spezielle Attributierung, in dem Quelltext durchführen zu
müssen.
-
Vorteilhafte
Weiterbildungen der Erfindung ergeben sich aus den abhängigen Ansprüchen.
-
Es
ist vorteilhaft, bei dem Verfahren Datensätze, die in mindestens einer
Datenstrukturbeschreibungssprache vorliegen, in eine vierte Zwischensprache
zu übersetzen,
diese zu einer fünften Zwischensprache
(ZS5) zu attributieren und diese zusammen mit den Datensätzen in
der zweiten Zwischensprache in die dritte Zwischensprache zu übersetzen.
Dadurch ist es möglich,
Datensätze,
die zum einen in einer Datenstrukturbeschreibungssprache und zum
anderen in einer Datentypbeschreibungssprache vorliegen, gemeinsam
zu verarbeiten.
-
Um
eine zweite Datenstrukturbeschreibungssprache verarbeiten zu können, ist
es vorteilhaft, die in der zweiten Datenstrukturbeschreibungssprache
vorliegenden Datensätze
in eine sechste Zwischensprache zu übersetzen, und diese zusammen
mit den Datensätzen
in der vierten Zwischensprache zu der fünften Zwischensprache zu attributieren.
-
Ein
Ausführungsbeispiel
des erfindungsgemäßen Verfahrens
ist in den Figuren dargestellt und wird im weiteren näher erläutert.
-
Es
zeigen
-
1 in
einem Ablaufdiagramm die einzelnen Verfahrensschritte des erfindungsgemäßen Verfahrens;
-
2 in
einem Ablaufdiagramm eine Weiterbildung des Verfahrens in seinen
einzelnen Verfahrensschritten;
-
3 eine
weitere Weiterbildung des erfindungsgemäßen Verfahrens in einem Ablaufdiagramm;
-
4 eine
Skizze, in der ein Rechner dargestellt ist, mit dem das erfindungsgemäße Verfahren durchgeführt wird.
-
In 1 ist
das Verfahren in Form eines Ablaufdiagramms dargestellt. In einem
ersten Schritt werden Datensätze
(Objects), die in mindestens einer Datentypbeschreibungssprache
ASN.1 vorliegen (Schritt 101), in eine erste Zwischensprache
ZS1 übersetzt
(Schritt 102). Aus den daraus resultierenden Datensätzen werden
in einem zweiten Schritt Datensätze
in einer zweiten Zwischensprache ZS2 durch Übersetzung gebildet (Schritt 103),
beispielsweise mit einer zusätzlichen
Attributierung.
-
Anschließend werden
die Datensätze
in der zweiten Zwischensprache ZS2 (Schritt 103) in Datensätze einer
dritten Zwischensprache ZS3 (z.B. CHILL) übersetzt (Schritt 104).
Aus den Datensätzen,
die in der dritten Zwischensprache ZS3 vorliegen, wird in einem
letzten Schritt eine Datenbankzugriffstabelle DBZT erstellt, die
Daten in Form von Array-Definitionen
einer verwendeten Programmiersprache aufweist (Schritt 105).
-
Unter
einer Datentypbeschreibungssprache ASN.1 ist im Rahmen dieser Erfindung
beispielsweise die sog. Abstract-Syntax-Notation One (ASN.1) zu verstehen, deren
Grundzüge
in dem Dokument [1] beschrieben sind.
-
Die
Programmiersprache kann beispielsweise die sog. CCITT High Level
Language (CHILL) sein. Eine Übersicht über die
Programmiersprache CHILL ist in dem Dokument [2] zu finden.
-
Eine
weitere mögliche
Programmiersprache ist in der objektorientierten Programmiersprache
C++ oder auch in der Programmiersprache C zu sehen.
-
Die Übersetzung
der Datensätze,
die in der Datentypbeschreibungssprache ASN.1 (Schritt 101) vorliegen,
in die erste Zwischensprache ZS1 (Schritt 102) erfolgt
folgendermaßen.
Abhängig
von der jeweiligen Datentypbeschreibungssprache ASN.1 werden unter
Verwendung eines Regelsatzes, welcher eine be liebige Anzahl lexikalischer
Regeln, die die jeweilige Datentypbeschreibungssprache ASN.1 charakterisieren,
die Datensätze,
also ein beliebiger Quelltext (Source) Wort für Wort analysiert. Die resultierenden
lexikalischen Begriffe werden einem Parser zugeführt, in der Reihenfolge, in
der sie in dem Quelltext vorliegen. Dabei werden entsprechend der
Datentypbeschreibungssprache ASN.1 Schlüsselworte oder auch Object-Identifier (Objektidentifikatoren) untersucht
und daraufhin überprüft, ob sie
der vorgegebenen Grammatik der jeweiligen Datentypbeschreibungssprache
ASN.1 genügen.
In dem Parser wird eine Syntax-Analyse durchgeführt entsprechend dem Regelsatz,
der die Grammatik der Datentypbeschreibungssprache ASN.1 charaktisiert.
-
Ferner
wird eine semantische Analyse in dem Parser durchgeführt. Dabei
wird überprüft, ob ein
einem Objekt zugeordneter Wert auch einem dem Objekt zugeordneten
Objekttyp entspricht. Weiterhin werden die Datensätze in die
erste Zwischensprache ZS1 übersetzt,
wobei die einzelnen Managed Objects über Attribute von Typen der
Datentypbeschreibungssprache ASN.1 entsprechend der jeweiligen vorgegebenen
Grammatik der Datentypbeschreibungssprache ASN.1 miteinander gekoppelt
sind. Bei der Übersetzung
in die erste Zwischensprache ZS1 werden beispielsweise für jede Objektreferenz
in den Datensätzen überprüft, ob die
Objekte, auf die sich die Objektreferenz jeweils bezieht, auch existiert.
Ist dies der Fall, so wird vorzugsweise die Objektreferenz durch
eine Attributierung ersetzt, mit der direkter Zugriff auf die auf
die Objektdefinition ermöglicht
wird. Außerdem
werden die Datensätze
in ihrer Struktur in eine durchgängige
Bottom-Up-Struktur überführt, beispielsweise
unter Verwendung spezieller semantischer Attribute, mit denen die
einzelnen Datensätze
in der gewünschten
Form ("bottom up") verkettet werden.
-
Nachdem
die oben beschriebenen Verfahrensschritte, die lexikalische Analyse,
die Syntax-Analyse sowie die semantische Analyse durchgeführt wurden,
liegen die Datensätze
nach einer eventuellen zusätzlichen
Attributierung bzw. Änderungen
von Object Identifiern in der ersten Zwischensprache ZS1 vor.
-
Um
von der Datentypbeschreibungssprache ASN.1, die allgemein auch als
eine Abstrakte Syntax bezeichnet wird, welche maschinenunabhängig in
ihren Konstrukten ist, zu einer sog. Lokalen Syntax, der Programmiersprache
CHILL, zu gelangen, werden bei diesem Verfahren weitere Schritte
vorgesehen.
-
Die
Lokale Syntax ist maschinenabhängig. Aus
diesem Grund könnte
eine Vielzahl verschiedener Programmiersprache als lokale Syntax
vorliegen, von denen eine Lokale Syntax ausgewählt wird, in die die Datensätze übersetzt
werden sollen.
-
Die
Auswahl erfolgt in dem Verfahrensschritt der Übersetzung der Datensätze aus
der ersten Zwischensprache ZS1 in Datensätze in der zweiten Zwischensprache
ZS2 (Schritt 103). Es wird die spezifische Lokale Syntax
CHILL ausgewählt.
-
Ferner
werden in diesem Verfahrensschritt Beschränkungen, die in der Programmiersprache
jeweils bestehen, jedoch nicht in der Datentypbeschreibungssprache
ASN.1, bei der Übersetzung
berücksichtigt.
-
Darunter
sind folgende Beschränkungen
zu verstehen. Bei der Programmiersprache CHILL weisen Arrays eine
fest definierte Länge
auf. Diese Beschränkung
gilt nicht für
Datensätze
in der Datentypbeschreibungssprache ASN.1. Diese Restriktionen müssen bei
der Übersetzung
berücksichtigt
werden. Weiterhin ist es in diesem Schritt möglich, Alternativmöglichkeiten
bei der Abbildung der Datensätze
anzubieten bzw. auszuwählen.
Werden die Alternativmöglichkeiten
angeboten, so werden die verschiedenen Möglichkeiten dem Benutzer dargestellt,
der dann durch Eingabe der jeweiligen Wahl die gewünschte Alternative
auswählt.
-
Ferner
wird in diesem Verfahrensschritt eine Abbildung der Object Identifier
der Datensätze,
die in der ersten Zwischensprache ZS1 vorliegen, auf Object Identifier,
die bei der Programmiersprache benötigt werden, durchgeführt.
-
Ein
Beispiel hierbei ist darin zu sehen, daß in der Abstract Syntax Notation
One die Object Identifier eine definierte Länge aufweisen und daß bei den Object
Identifiern zwischen Groß-/
und Kleinschreibung unterschieden wird. Dies ist bei den Object Identifiern
der Programmiersprache CHILL nicht der Fall.
-
Die
Object Identifier der Programmiersprache CHILL müssen komplett in Großbuchstaben
geschrieben sein und die Object Identifier müssen in den ersten acht Zeichen
der Object Identifier eindeutig sein. Daraus ergibt sich für dieses
einfache Beispiel, daß bei
dem Abbilden der Object Identifier von der Abstract Syntax Notation
One in CHILL die Object Identifier der ersten Zwischensprache ZS1
in Großbuchstaben
umgewandelt wird, wodurch nunmehr eine Mehrdeutigkeit von Object
Identifiern entstehen kann. Um dies zu vermeiden wird ein Präfix von
dem Benutzer eingegeben oder auch automatisch von dem das Verfahren
durchführenden
Rechner generiert. Das Präfix
weist in diesem Fall eine Länge
von mindestens acht Zeichen auf, die eindeutig sein muß.
-
Die
Präfixe
werden in einer Tabelle abgespeichert, um zum einen eine Wiederverwendbarkeit der
einzelnen Präfixe
zu gewährleisten
und zum anderen immer eine Eindeutigkeit der Präfixe garantieren zu können.
-
Ferner
ist es in diesem Verfahrensschritt vorgesehen, daß vorgebbare
Datensätze
nicht auf die dritte Zwischensprache ZS3, der Programmiersprache,
abgebildet werden. Diese werden bei der Abbildung einfach übergangen,
d.h. ausgelassen. Dies führt
zu einer erheblichen Rechenzeiteinsparung.
-
In
einem weiteren Schritt (Schritt 104) werden die Datensätze der
zweiten Zwischensprache ZS2 in Datensätze in einer dritten Zwischensprache ZS3 übersetzt,
wobei die Abbildung durch eine effiziente Umgruppierung der einzelnen
Datensätze
für die
folgende Umsetzung in die Datenbankzugriffstabelle DBZT erfolgt.
-
Die
Struktur der Datenbankzugriffstabelle DBZT ist durch das jeweils
verwendete Datenbanksystem vorgegeben und ist in einer üblichen
Schnittstellenangabe des jeweiligen Datenbanksystems enthalten.
Somit ist die spezifische Struktur der Datenbankzugriffstabelle
DBZT völlig
anwendungspezifisch. Die Datensätze
der dritten Zwischensprache ZS3 bilden somit im wesentlichen umgruppierte
Datensätze
der zweiten Zwischensprache ZS2, die eine in sich geschlossene Datenstruktur
aufweisen.
-
Aus
den Datensätzen,
die in der dritten Zwischensprache ZS3 vorliegen, werden eine beliebige Anzahl
von Tabellen erzeugt, die zusammen die Datenbankzugriffstabelle
DBZT bilden. Wird als Programmiersprache beispielsweise eine objektorientierte
Programmiersprache verwendet, so weist eine Tabelle Objektklasseninformation
auf, die die verwendeten Klassen der Datensätze mit ihren verwendeten Datentypen
und Datenwerten beschreibt.
-
Die
Datenbankzugriffstabelle DBZT weist Daten in Form von Array-Definitionen
der jeweils verwendeten Programmiersprache auf, die mit den Daten
initialisiert werden, mit sog. Views auf die Managed Objects bzw.
mit den Managed Objects selbst, die in einer Datenbank gespeichert
sind.
-
Die
Datenbankzugriffstabelle DBZT weist allgemein den Inhalt der in
einer Datenbank DB gespeicherten Datensätze auf.
-
Eine
Weiterbildung des Verfahrens ist in 2 dargestellt.
Dabei liegen weitere Datensätz
in mindestens einer Daten strukturbeschreibungssprache GDMO (Schritt 201)
vor. Eine mögliche
Datenstrukturbeschreibungssprache GDMO, die sog. Guide Lines for
the Definition of Managed Objects (GDMO) ist in dem Dokument [3]
beschrieben.
-
Die
Datensätze,
die in der Datenstrukturbeschreibungssprache GDMO vorliegen, werden, ähnlich dem
Verfahren zur Übersetzung
der Datensätze in
der Datentypbeschreibungssprache zu Datensätzen in der ersten Zwischensprache
ZS1, zu Datensätz
in einer vierten Zwischensprache ZS4 übersetzt (Schritt 202).
Weitere anschauliche Aspekte, die bei der semantischen Analyse der
Datensätze
in der Datenstrukturbeschreibungssprache GDMO berücksichtigt
werden, sind vergleichbar mit einer Überprüfung von der jeweils korrekten
Anzahl von Parametern bei Prozeduraufrufen in einer üblichen
Programmiersprache. Ist die Anzahl der Parameter in diesem Beispielsfall
nicht korrekt, so kann dennoch die eigentliche Prozedur korrekt
sein.
-
Ein
spezieller, auf die weitere Datenstrukturbeschreibungssprache GDMO
zutreffender Aspekt ist darin zu sehen, daß zwei Objektklassen miteinander
verbunden sein können,
wobei es nötig
ist, daß die
Verbindung über
ein verbindendes Attribut erfolgt, welches mindestens in einer der
beiden Objektklassen, häufig
in einer bestimmten Objektklasse, vorhanden sein muß. Dies
ist ein Aspekt, der bei der semantischen Analyse der Datensätze in der
Datenstrukturbeschreibungssprache GDMO berücksichtigt werden muß.
-
Auf
entsprechende, auf die Datensätze
der vierten Zwischensprache ZS4 angepaßte Weise erfolgt anschließend eine Übersetzung
der Datensätze, die
in der vierten Zwischensprache ZS4 vorliegen in Datensätze, die
in einer fünften
Zwischensprache ZS5 vorliegen (Schritt 203).
-
Die
Datensätze
der fünften
Zwischensprache ZS5 sowie die Datensätze in der zweiten Zwischensprache
ZS2 werden bei dieser Weiterbildung zusammen in die dritte Zwischensprache
ZS3 übersetzt
(Schritt 104). Äquivalente
Schritte zu der Übersetzung
der Datensätze
in der zweiten Datenstrukturbeschreibungssprache GDMO (Schritt 201)
in die vierte Zwischensprache ZS4 (Schritt 202) und in
die fünfte
Zwischensprache ZS5 (Schritt 203) sind für Datensätze, die
in einer dritten Datenstrukturbeschreibungssprache vorliegen (Schritt 301),
in 3 dargestellt. Die Datensätze werden in eine sechste Zwischensprache
ZS6 übersetzt
(Schritt 302). Dies erfolgt auf äquivalente, jedoch auf die
spezifische Grammatik der Zwischensprachen und der zweiten Datenstrukturbeschreibungssprache
angepaßte Weise
wie die Übersetzung
der Datensätze
der Datenstrukturbeschreibungssprache GDMO in Datensätze der
vierten Zwischensprache ZS4 (Schritt 202).
-
Die Übersetzung
der Datensätze
in der sechsten Zwischensprache ZS6 in Datensätze einer siebten Zwischensprache
ZS7 (Schritt 303) erfolgt auf entsprechende Weise wie die Übersetzug
der Datensätze
in die fünfte
Zwischensprache ZS5 (Schritt 203).
-
Bei
dieser Weiterbildung werden die Datensätze der siebten Zwischensprache
ZS7 zusammen mit den Datensätzen
der fünften
Zwischensprache ZS5 sowie der Datensätze in der zweiten Zwischensprache
ZS2 zu Datensätze
in der dritten Zwischensprache ZS3 zusammengefaßt und übersetzt.
-
Die
Datensätze
in der zweiten Datenstrukturbeschreibungssprache GDMO oder in der
dritten Datenstrukturbeschreibungssprache enthalten üblicherweise
Verweise auf die Datensätze
in der Datentypbeschreibungssprache ASN.1. Entsprechend der Durchführung der
einzelnen Verfahrensschritte ändern
sich die entsprechenden Verweise der Datensätze in der vierten Zwischensprache
ZS4 bzw. in der sechsten Zwischensprache ZS6 auf beispielsweise Datensätze, die
auf Datensätze
in der zweiten Zwischensprache ZS2 weisen, wenn die Übersetzung der
Datensätze
aus der ersten Zwischensprache ZS1 in die zweite Zwischensprache
ZS2 schon durchgeführt
wurde (Schritt 103).
-
In 4 ist
ein Rechner R dargestellt, mit dem das Verfahren durchgeführt wird.
Der Rechner R ist mit einem Speicher SP gekoppelt, in dem mindestens
eine Datenbank DB gespeichert wird. Die Datenbank DB weist eine
Datenbasis DBB mit Managed Objects und Informationen über die
Beziehungen der Managed Objects untereinander, auf. Weiterhin weist die
Datenbank DB ein Datenbankverwaltungssystem DBMS auf. Das Datenverwaltungssystem
DBMS weist die erstellte Datenbankzugriffstabelle DBZT auf.
-
In
diesem Dokument wurden folgende Veröffentlichungen zitiert:
- [1]
ASN.1 Tutorial, Douglas Steedman, ISBN 1-871-802-06-7, Technology
Appraisals, S. 12 – 24, 1993
- [2] J. Winkler, Die Programmiersprache CHILL, Automatisierungstechnische
Praxis atp, 28. Jahrgang, Heft 5, S. 252 – 258, 1986
- [3] B. Hebrawi, GDMO Object Modelling and Definition for Network
Management, ISBN 1-871802-30-X, S. 29 – 35, 1995
- [4] M. Rösch,
OMG-Standards und ihre Bedeutung für die Praxis, OBJEKTspektrum,
1/94, S. 19 – 23, 1994