- Datenkatalog
-
Ein Data Dictionary – in deutscher Übersetzung auch Datenwörterbuch, Datenkatalog oder etwas unscharf Datenverzeichnis genannt – ist ein Katalog von Metadaten, der die Definitionen und Darstellungsregeln von Datenelementen enthält. Es beschreibt alle Anwendungsdaten eines Unternehmens und die Beziehungen zwischen den verschiedenen Datenobjekten mit dem Ziel einer redundanzfreien und zentralen Definition der Datenstrukturen und entspricht somit einer Darstellung des anwendungsspezifischen Datenmodells.
Im Kontext einer relationalen Datenbank ist ein Data Dictionary eine Menge von Tabellen und Sichten, die von der Abfragesprache (etwa SQL) nur gelesen werden (read-only). Das Data Dictionary ist dabei wiederum als eine Datenbank aufgebaut, enthält aber nicht direkt die Anwendungsdaten, sondern Metadaten, das heißt Daten, welche die Struktur (nicht den Inhalt) der Anwendungsdaten beschreiben. Aufbau und Pflege des Data Dictionary erfolgen typischerweise über einen interaktiven Pflegedialog oder mit einer Datendefinitionssprache (DDL).
Aktive, passive und integrierte Data Dictionaries
Ein aktives Data Dictionary reflektiert jederzeit den aktuellen detaillierten Stand des Datenmodells. Änderungen an der Struktur einer Datenbank können direkt in der Pflegeoberfläche des Data Dictionary erfolgen, oder mit anderen Mitteln, zum Beispiel einem Kommandointerpreter einer DDL. Unabhängig davon, wie diese Änderungen erfolgen, ist die Aktualität eines aktiven Data Dictionary immer automatisch gewährleistet.
In einem passiven Data Dictionary ist diese Synchronität nicht gegeben. Änderungen an der Struktur des DBMS müssen im Data Dictionary (DD) manuell nachgepflegt werden, falls das gewünscht und wirtschaftlich möglich ist. Insbesondere DD-Produkte zur Modellierung und Dokumentation des konzeptionellen Datenmodells leiden unter dieser Problematik.
Schnittstellen vom Data Dictionary zu Mensch und Software
Ein Data Dictionary kann über folgende Schnittstellen konsultiert werden:[1]
- Benutzerschnittstelle
- Datendesigner, -modellierer
- Anwendungsprogrammierer
- Endbenutzer
- Datenbankadministrator
- Software- und DBMS-Schnittstelle
- Compiler/Precompiler
- Integrierte Entwicklungsumgebung (IDE) bei Integration des Data Dictionary im Sinne von CASE
- Anwendungsprogramme
- Berichts-/Formulargeneratoren
- Query Optimizer
- Integritity Constraint Enforcer
Unterscheidung von Data Dictionaries nach Modellierungsebene
In der Entwicklung und Pflege von Datenmodellen werden unterschiedliche Modellierungsebenen unterschieden:
- Konzeptionelle Ebene (in der Regel bezogen auf ein Anwendungsgebiet, in der Wirtschaftsinformatik oft auch unternehmensweit oder sogar unternehmensübergreifend)
- Logische Ebene
- Physische Ebene, in der das konzeptionelle/logische Datenmodell bezogen auf ein bestimmtes DBMS abgebildet und umgesetzt wird.
Entsprechend den unterschiedlichen Ebenen der Datenmodellierung können die Data Dictionaries nach Unterstützung dieser Modellebenen unterschieden werden. Je nach Ebene unterscheiden sich dabei die Data Dictionaries nach Art, Inhalt und auch Datentypen der notwendigen Metadaten, aber auch bezüglich ihrer Funktionen und Auswertungsmöglichkeiten.
Data Dictionary zur konzeptionellen/logischen Datenmodellierung
Zu einem Data Dictionary zur konzeptionellen/logischen Datenmodellierung gehören:
- Definition der Entitäten, Datenelemente und der Beziehungen zwischen den Entitäten
- Betriebswirtschaftliche Definitionen und Erläuterungen derselben
Neben der Festlegung der wesentlichen Datenobjekte bzw. -elemente und ihren Beziehungen werden typischerweise auch ausführliche beschreibende Texte auf Ebene der jeweiligen Entitäten hinterlegt, welche untereinander mittels Hyperlink-Technik verknüpft sind. Wenn eine Organisation ein unternehmensweites Datenmodell (UDM) aufbaut, werden zu jeder Entität und jedem Datenelement Informationen zur anwendungsbezogenen Semantik, zum Datentyp und zur -darstellung zusammengetragen. Die semantischen Komponenten fokussieren auf die Abbildung der genauen Bedeutung eines Datenelements und sind als Fließtext formuliert. Die Darstellungsregeln definieren, wie Datenelemente gespeichert werden (z. B. Datentyp wie Integer, Text, maximale Textlänge, Eingabeformat, Ausgabeformate, usw.). Diese erste Form ist häufig im Funktionsumfang eines DBMS nicht als Standardfunktion enthalten. Deshalb müssen hier oft abgesetzte Insellösungen verwendet werden. Diese stellen aber in Bezug auf das DBMS ein passives Data Dictionary dar. Änderungen am konzeptionellen Datenmodell können nicht automatisch in das physische Datenmodell des DBMS übernommen werden.
Unter ISO/IEC 10027 (siehe unten) sind Spezifikationen erarbeitet worden, die einen hersteller- und plattformübergreifenden Austausch von Informationsressourcen zwischen verschiedenen Data Dictionaries erlauben sollen.
Ein Data Dictionary kann auch als Glossar genutzt werden, indem Informationsobjekte/Entitäten, Datenelemente/Attribute und auch Beziehungen/Relationships als Begriffe betrachtet werden, deren Definitionen im jeweiligen Beschreibungsteil abgelegt werden. Das Data Dictionary kann zu vollständigen Ontologien bzw. Klassen bzw. Geschäftsprozessmodellen weiterentwickelt werden. Wenn neben der Datenstruktur auch die Methoden zur Datentransformation beschrieben werden, spricht man von einem Repository.
Data Dictionary zur physischen Datenmodellierung
Zu einem Data Dictionary zur physischen Datenmodellierung gehören genaue Angaben zu:
- Tabellen und Datenfeldern
- Primär- und Fremdschlüsselbeziehungen
- Integritätsbedingungen z.B. Prüfinformationen
- Stored Procedures und Triggers
- Zugriffslegitimationen (Benutzernamen, Rollen)
- physischen Datenbankstruktur, z. B. Speicherallokationen und Indizes
- Verweis- und Verwendungsnachweis
Diese Form ist in jedem DBMS als aktives Data Dictionary vorhanden, ist jedoch nicht in jedem Fall für den Anwendungsprogrammierer sichtbar. Wo ein solches Data Dictionary nicht sichtbar ist, bildet es dennoch die Datenbankstruktur als Datenbankschema, ist jedoch in verborgenen Systemtabellen abgelegt. Bei jedem Zugriff auf die Datenbank liest die DBMS-Systemsoftware das Datenbankschema, um die Struktur und den Speicherort der abgefragten Daten erkennen zu können.
Funktion des Data Dictionary in der Anwendungsentwicklung
Sinnvoll ist in jedem Fall die Integration der Metadaten aus dem Data Dictionary in die Integrierte Entwicklungsumgebung (IDE). Für die dynamische bzw. generische Programmierung von Formularen und Berichten ist jedoch darüber hinaus ein für die Bedürfnisse der Anwendungsprogrammierung sinnvoll strukturiertes und sichtbares Data Dictionary eine notwendige Voraussetzung.
Die Funktionen für die konzeptionelle und die physische Datenmodellmodellierung sind häufig nicht in einem Data Dictionary integriert. Gravierender noch, Änderungen an der detaillierten Datenbankarchitektur werden nicht ins konzeptionelle Datenmodell zurückgespiegelt. Entweder ist eine aufwendige manuelle Nachpflege notwendig, oder Aktualität des dokumentierten Datenmodells geht verloren.
Ein Data Dictionary, das sowohl in die Datenbank, die Programmentwicklungsumgebung und die Datenmodellierungsinstrumente integriert ist, erfüllt vielfältige Funktionen:
- Es beschreibt alle persisten Daten eines Anwendungsgebiets, z. B. in Form eines unternehmensweiten Datenmodells
- Aufgrund der Data Dictionary -Daten können Bildschirmmasken automatisch generiert werden (siehe generative Programmierung).
- Die Struktur einer Datenbanktabelle kann von einem Programm ausgelesen werden.
- Programme können die Datentypen und –strukturen von Tabellen lesen, die zum Zeitpunkt des Programmentwurfs noch gar nicht existiert haben. Bei geeigneter Sprachunterstützung wird eine statisch fixierte Datendefinition im Programmtext obsolet. Das Data Dictionary ist somit ein zentrales Instrument in der Anwendungsentwickung, wenn es darum geht, Datendefinition und -modellierung von der Programmentwicklung zu entkoppeln.
Anwendungsübergreifende Datenkonsistenz
Einer der Vorteile eines wohldefinierten Data Dictionary ist die Konsistenz der definierten Datenelemente über verschiedene Tabellen einer Datenbank. Z. B. können verschiedene Tabellen das Datenelement TelefonNr enthalten; mit einem Data Dictionary kann gewährleistet werden, dass alle Tabellen auf das gleiche Datenelement verweisen. Somit kann eine datenbankweite Konsistenz und ein Verwendungsnachweis für alle Tabellenfelder und Datenelemente erreicht werden.
BNF-Syntax zum Schreiben von Data Dictionaries (DD)
(Kontext: Datenflussdiagramm (DFD), ERM, Systemmodellierung)
Ein DD kann in seiner groben Strukturierung in der BNF-Notation geschrieben werden und besteht dann aus mehreren Definitionen, die jeweils in einer Zeile stehen. In einer Definition wird in Form einer Zuweisung geschrieben:
- <Nicht-Atomarer Begriff> = <Ausdruck>
Links von der Zuweisung steht ein nicht-atomarer Begriff. Rechts von der Zuweisung steht eine Regel. Eine Regel besteht aus einer Kombination von atomaren und nicht-atomaren Begriffen. Wiederholungen sind möglich. Zirkuläre Definitionen sind verboten, Rekursionen hingegen erlaubt.
- = Zuweisung
- () Optional
- [ | ] Auswahl
- {} Wiederholung
Beispiel:
- Kundenkarte = Anrede + (Titel) + Vorname + Name + {Adresse} + Telefon
- Adresse = Strasse + Hausnummer + PLZ + Ort
- Telefon = { [0|1|2|3|4|5|6|7|8|9] }
- Strasse = string
- Hausnummer = string
- Vorname = string
- Name = string
Siehe auch: Backus-Naur-Form (BNF, EBNF), Syntaxdiagramme
Eine Darstellung in dieser Form erlaubt allerdings nur das Aufzeigen der Metabegriffe und ihrer Beziehungen untereinander. In der Anwendungsentwicklung ist der einzelne Metabegriff in der Regel Träger von vielfältigen Zusatzinformationen wie
- fachliche Beschreibung in Umgangssprache
- Domänenwerte
- Feldbeschreibungen (Kurz-, Mittel- und Langtext) für den Formularentwurf
- Information, ob das Datenelement leer (z. B. NULL) sein darf
- Verweise auf Prüftabellen
- etc.
Deshalb kann die BNF-Notation zwar dazu dienen, die Entitäten aufzulisten und deren Beziehungen untereinander darzustellen. Für eine feingliederige Attributierung und tiefergehende Dokumentation wird die BNF-Notation sinnvollerweise durch ein eigentliches DD-Instrument unterstützt.
Siehe auch
- Datenelement
- Datenmodell
- ISO/IEC 11179 (2003–2005) (engl.Wiki) bzw. ISO-Link: Information technology – Metadata registries
- ISO/IEC 10027 (1990) (engl.Wiki) bzw. ISO-Link: Information technology – Information Resource Dictionary System (IRDS) framework
- Metadatenverzeichnis
- Semantisches Spektrum
Einzelnachweise
- ↑ Elmasri, S. 625
Literatur
- Ramez Elmasri; Shamkant B. Navathe (2004); Grundlagen von Datenbanksystemen; Pearson Studium, München ISBN 3-8273-7021-3
- Thomas Connolly, Carolyn Begg, Anne Strachan (2002); Datenbanksysteme. Eine praktische Anleitung zu Design, Implementierung und Management; Addison-Wesley, München; ISBN 3-8273-2013-5
- Benutzerschnittstelle
Wikimedia Foundation.