Metadaten Udo Kelter 09.11.2008 Zusammenfassung dieses Lehrmoduls Metadaten sind Daten über (Nutz-) Daten. Metadaten treten in Datenbanken, in der Dokumentverwaltung, bei der Software-Modellierung und in vielen weiteren Kontexten auf. Entitätsbezogene Metadaten sind einzelnen Nutzdatengranulaten, typbezogene Metadaten hingegen dem Typ von Nutzdatengranulaten zugeordnet. Systeme, die Metadaten im gleichen Datenbankmodell wie die Nutzdaten repräsentieren, nennt man selbstreferentiell. Typbezogene Metadaten (Schemata) sind instantiierbar, wenn ein DVS verfügbar ist, das die Instantiierung durchführt. Die auftretenden Metadaten, deren selbstreferentielle Darstellung und die entstehende Metadaten-Hierarchie untersuchen wir für relationale Datenbanken und XML-Dateien. Vorausgesetzte Lehrmodule: obligatorisch: – Datenverwaltungssysteme – Architektur von DBMS – Einführung in SQL Stoffumfang in Vorlesungsdoppelstunden: 1 1.5 Metadaten 2 Inhaltsverzeichnis 1 Einordnung und Motivation 1.1 Metadaten in Datenbanken . . . . . . . 1.2 Metadaten in der Dokumentverwaltung 1.3 Metadaten vs. Nutzdaten . . . . . . . . 1.4 Selbstreferentialität . . . . . . . . . . . . 1.5 Sprachebenen in der Linguistik . . . . . . . . . . 3 4 5 6 7 8 2 Arten von Metadaten 2.1 Typbezogene vs. entitätsbezogene Metadaten . . . . . . . . . 2.2 Instantiierbare Metadaten . . . . . . . . . . . . . . . . . . . . 10 10 10 3 Selbstreferentialität in relationalen Datenbanken 3.1 Repräsentation relationaler Schemata durch Tabellen . . . . . 3.2 Zugriff auf selbstreferentiell repräsentierte Schemata . . . . . 3.3 Metatypen und Meta-Metadaten . . . . . . . . . . . . . . . . 3.4 Übersicht über die semantischen Ebenen . . . . . . . . . . . . 3.5 Meta-Ebenen vs. Implementierungsebenen von Datenbankobjekten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 13 15 16 19 4 Selbstreferentialität in XML 4.1 Aufbau von XML-Dateien . 4.2 Typ-Annotationen . . . . . 4.2.1 Typ-Annotationen in 4.2.2 Typ-Annotationen in . . . . 22 22 23 23 24 Literatur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Glossar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 26 26 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . schwach strukturierten Daten . strikt typisierten Nutzdaten . 20 c 2008 Udo Kelter Stand: 09.11.2008 Dieser Text darf für nichtkommerzielle Nutzungen als Ganzes und unverändert in elektronischer oder gedruckter Form beliebig weitergegeben werden und in WWW-Seiten, CDs und Datenbanken aufgenommen werden. Jede andere Nutzung, insb. die Veränderung und Überführung in andere Formate, bedarf der expliziten Genehmigung. Die jeweils aktuellste Version ist über http://kltr.de erreichbar. Metadaten 1 3 Einordnung und Motivation Informell definiert man Metadaten als “Daten über Daten”, also Daten, die andere (Nutz-) Daten beschreiben oder einordnen, sie besser verständlich machen, ihre Struktur darstellen usw. Diese Definition unterstellt, daß es andere Daten gibt (oder gab oder geben wird, der Zeitpunkt ist unerheblich) und daß die Metadaten einen vorhandenen Informationsbedarf stillen. Der Begriff Metadaten ist alt, er wird immer wieder in neuen Kontexten und in neuen Variationen benutzt. Er ist ferner mit weiteren komplexen Begriffen wie Metaschema, Metamodell und Meta-CASE verbunden. Schließlich ist die Trennung zwischen Daten und Metadaten nicht immer eindeutig. Dies alles erklärt die regelmäßig auftretenden Konfusionen um diese Begriffe. Für Metadaten wichtige Kontexte waren und sind: – Dokumentverwaltung: Nutzdaten sind hier Bücher und andere elektronische Dokumente, Metadaten sind Angaben über Autor, Publikationsjahr, Verleger, ggf. persönliche Anmerkungen usw. Die wichtigste Dokumentsammlung ist inzwischen sicherlich das WWW; die Bezeichnung Metadaten wird seit einigen Jahren zunehmend mit diesem Kontext verbunden. – Datenbanken: hier treten neben den Nutzdaten diverse Arten von Metadaten auf, die wichtigsten sind die konzeptuellen Schemata. – Programmierung: in objektorientierten Sprachen ist das Prinzip der Reflexion (reflection) bzw. Introspektion verbreitet; bei Bedarf können hier Metadaten dynamisch erzeugt werden, die Informationen über die Typstruktur von Objekten darstellen. – System-Modellierung: man kann die Struktur von Modellen mittels Metamodellen spezifizieren; die UML benutzt diesen Ansatz durchgängig. In den folgenden Abschnitten analysieren wir die vorstehenden Fälle detaillierter, um Gemeinsamkeiten und Unterschiede herauszuarbeiten. c 2008 Udo Kelter Stand: 09.11.2008 Metadaten 1.1 4 Metadaten in Datenbanken Beim Stichwort Datenbankinhalt denkt man oft nur an die eigentlichen Nutzdaten, z.B. bei einer Adreßdatenbank an die Tupel, die jeweils eine Adresse darstellen. Auch wenn von Datenbankabfragen bzw. Datenmanipulationsoperationen die Rede ist, sind i.d.R. diese Nutzdaten gemeint. Neben den Nutzdaten gibt es aber noch weitere Daten, die ebenfalls mehr oder weniger notwendiger Inhalt einer Datenbank sind und die i.d.R. eigene Zugriffsschnittstellen haben: 1. die Datenbankschemata, also insb. die Definitionen der applikationsspezifischen Typen 2. Daten über die zugelassenen Benutzer und deren Rechte 3. Daten über die physische Organisation der Datenbank (z.B. Aufteilung auf Dateien oder logische Plattenlaufwerke, Datenträger, Archive u.ä.) und ggf. interne Schemata 4. ggf. Daten über integrierte Applikationen und speziell bei objektorientierten DBMS Daten über die Operationen einzelner Objekttypen 5. Angaben zur Herkunft der Daten: z.B. kann zu jedem Datum interessieren, wann und von welchem Benutzer es um letzten Mal geändert wurde An Rande erwähnenswert sind transiente Hilfsdaten. Beispiele hierfür sind die angemeldeten Anwendungsprozesse und die von ihnen gehaltenen Sperren. Bei manchen DBMS kann man diese Daten abfragen und so spezielle Informationsbedürfnisse befriedigen. Transiente Metadaten betrachten wir i.f. nicht weiter. Die im Kontext von DBMS auftretenden Arten von persistenten Metadaten können wir danach gruppieren, wer ggf. diese Daten lesen oder ändern möchte und welche Schnittstellen dafür benötigt werden: 1. Eine erste Gruppe persistenter Metadaten dient primär dazu, die logische Struktur der Daten zu beschreiben und das Verständnis von Sinn und Zweck der Daten zu unterstützen; man kann hier von semantischen Metadaten reden. Hierzu zählen die externen und c 2008 Udo Kelter Stand: 09.11.2008 Metadaten 5 konzeptuellen Schemata, Angaben zur Herkunft der Daten und Angaben zu den Applikationen, in denen die Daten verwendet werden. Es sind Schnittstellen erforderlich, durch die diese Metadaten von Applikationen abgefragt und ggf. auch geändert werden können. Ferner sind entsprechende Standard-Dienstprogramme wünschenswert; benutzt werden sie von Applikationsentwicklern beim Entwickeln und Testen der Applikationen und teilweise auch von Endnutzern. 2. Eine zweite Gruppe von persistenten Metadaten dient vor allem administrativen Zwecken. Hierzu zählen die internen Schemata, Zugriffsrechte, Verwaltung der Datenträger usw. Diese Metadaten spielen normalerweise (zum Glück) keine Rolle für die Applikationslogik oder den Endbenutzer, sie werden typischerweise nur vom Datenbank- bzw. Systemadministrator benutzt. Für die administrativen Metadaten muß es i.w. die gleichen Schnittstellen für Abfragen und Änderungen geben wie für die semantischen. Die Trennlinie zwischen semantischen und administrativen Metadaten ist nicht scharf, sie hängt von den individuellen Informationsbedürfnissen ab. Häufig besteht an den administrativen Metadaten kein Interesse, daher sie werden nicht als Metadaten wahrgenommen. 1.2 Metadaten in der Dokumentverwaltung Klassische Fälle von Dokumentsammlungen sind elektronische Bibliotheken und Büroinformationssysteme. Während diese Sammlungen noch halbwegs vorstrukturiert sind, ist das WWW als “Dokumentsammlung” extrem heterogen und unstrukturiert. Dementsprechend schwierig ist es, in solchen nicht oder nur schwach strukturierten Datenbeständen zu suchen und Metadaten zu systematisieren. Metadaten sind hier vor allem dazu gedacht, die Suche nach Dokumenten zu unterstützen. Der zentrale Dokumenttyp des WWW sind HTML-Seiten. HTMLDateien enthalten eine Mischung aus Nutzdaten, Metadaten und sehr c 2008 Udo Kelter Stand: 09.11.2008 Metadaten 6 viel Layout-Daten. Die Strukturen der Nutz- und Metadaten sind aus dieser Mischung kaum noch rekonstruierbar. Dementsprechend schwierig ist die Suche nach relevanten Daten. Eine wichtige Methode, diese Suche zu unterstützen, besteht darin, zu trennen zwischen 1. inhaltlich relevanten Daten, die in XML-Dateien gespeichert werden, und 2. Formatierungsangaben bzw. Layout-Daten, die z.B. in Style-Sheets verwaltet werden. Ein weiterer Vorteil dieser Trennung ist, daß Formatierungen abhängig von Benutzerpräferenzen oder Anzeigekontexten geändert werden können. Die Struktur von XML-Dateien kann durch Dokumenttypdefinitionen oder XML-Schemata beschrieben werden; diese spielen eine vergleichbare Rolle wie Datenbankschemata. 1.3 Metadaten vs. Nutzdaten Bei vielen Metadaten stellt sich die Frage, wieso man sie nicht als Nutzdaten ansieht, vor allem wenn auch der Endnutzer darauf zugreift, und ob hier nicht die konzeptionelle Trennung zwischen Nutzdaten und Metadaten zerstört wird. Die Antwort ist: 1. Daten sind dann Metadaten, wenn es einen Nutzdatenbestand gibt (oder gab oder geben wird), den die Metadaten beschreiben, und wenn die Metadaten zur Interpretation dieser Nutzdaten tatsächlich genutzt werden. Metadaten beziehen sich immer auf einen Nutzdatenbestand, ohne diesen sind sie keine Metadaten. Die tatsächliche Nutzung ist eine Frage des Standpunkts oder der Systemgrenzen, kann also subjektiv unterschiedlich beurteilt werden. Ein Beispiel sind Analyse-Datenmodelle (ER-Diagramme oder Analyse-Klassendiagramme): diese sind Metadaten für eine Person, die sie gebraucht, um entsprechende Nutzdaten zu verstehen oder zu dokumentieren, und nur Nutzdaten für einen ER- oder UML-Diagrammeditor. c 2008 Udo Kelter Stand: 09.11.2008 Metadaten 7 2. Die Speicherungs- bzw. Darstellungsform spielt keine Rolle dafür, ob Daten Metadaten sind oder nicht. Man kann z.B. die DBSchemata als Text repräsentieren oder durch Tabelleninhalte. Metadaten sind insofern normale Daten als man die Systeme, die Metadaten verwalten sollen, in den üblichen Phasen entwickeln muß: nach einer Anforderungsanalyse, welche Metadaten benötigt werden, kommt die übliche Entwurfs- bzw. Implementierungsphase. Es müssen persistente Darstellungen der Metadaten in Dateien oder Datenbanken festgelegt werden, transiente Darstellungen im Hauptspeicher und lesbare formatierte Darstellungen auf Ausgabemedien. Bei der Gestaltung dieser Darstellungen hat man viele Freiräume, dementsprechend vielfältig sind die Darstellungsformen von Metadaten. In vielen Systemen werden sowohl Nutzdaten wie Metadaten zusammen verarbeitet und z.B. gleichzeitig im Hauptspeicher gehalten. Die gemeinsame Verarbeitung mit Nutzdaten ist ebenfalls unerheblich dafür, ob Daten Metadaten sind. 3. Wer bzw. welches System die Metadaten ausnutzt, um die Nutzdaten zu interpretieren, ist ebenfalls unerheblich; entscheidend ist, daß die Metadaten überhaupt für diesen Zweck genutzt werden. In manchen Fällen werden Metadaten in der Bedienschnittstelle eines Informationssystems angezeigt, damit Anwender die Nutzdaten verstehen und einordnen können; ein Anwender nutzt die Metadaten mental aus, um die Nutzdaten richtig zu interpretieren. Metadaten werden oft auch ausgenutzt, um die Nutzdaten maschinell zu interpretieren oder zu verarbeiten. Hauptbeispiel sind die konzeptuellen Schemata; im DBMS-Kern werden sie dazu benutzt, um Schnittstellen zu den Nutzdaten zu realisieren, in Browsern oder ähnlichen Applikationen dazu, Standard-Darstellungen der Nutzdaten zu erzeugen. 1.4 Selbstreferentialität Eine ähnliche Frage wie die nach dem Unterschied zwischen Nutzdaten und Metadaten ist die Frage, ob man die Metadaten wie normale c 2008 Udo Kelter Stand: 09.11.2008 Metadaten 8 Nutzdaten, also im gleichen Datenbankmodell mittels eines passenden Schemas modellieren soll. Die Antwort ist: Für die Speicherungsform und technische Handhabung der Metadaten stehen im Prinzip alle Optionen offen, also auch die Modellierung im gleichen Datenbankmodell wie die Nutzdaten oder sogar die Speicherung in der gleichen Installation. Details hängen natürlich vom Datenbankmodell ab. Weiter unten werden wir am Beispiel von relationalen Datenbanken zeigen, wie man relationale Schemata durch Tabellen repräsentieren kann. Sofern Datenbankschemata oder vergleichbare Typdefinitionen eines Datenverwaltungssystem (DVS) als Nutzdaten repräsentiert werden, bezeichnet man dies auch als Selbstreferentialität1 . Die selbstreferentielle Verwaltung bzw. Repräsentation von Metadaten ändert natürlich nichts an dem inhaltlichen Charakter der Metadaten, Metadaten werden nicht zu Nutzdaten, nur weil sie technisch genauso wie die Nutzdaten verwaltet werden. Die Selbstreferentialität liegt insofern nahe, als die Datenbankschemata und andere DB-Metadaten sowieso innerhalb der Datenbank-Installation benötigt werden und irgendwie verwaltet werden müssen. Vorteilhaft ist ferner, daß man die Standardschnittstellen und Standardeditoren des Systems verwenden kann, um die Metadaten zumindest auszulesen. Veränderungen an den Metadaten dagegen verursachen erhebliche Probleme, die wir später diskutieren werden. 1.5 Sprachebenen in der Linguistik Metadaten weisen viele Parallelen zum Konzept der Metasprachen auf, das aus der Linguistik stammt. Eine zentrale Erkenntnis der Linguistik ist, daß sprachliche Aussagen auf verschiedenen semantischen Sprachebenen (anders gesagt Bedeutungsebenen) stehen können: 1 Der Begriff Selbstreferentialität ist nicht optimal, aber es gibt keinen völlig überzeugenden. Nicht gemeint ist hier Rekursion oder eine Referenz eines Objekts auf sich selbst. Selbstreferenzierung ist eigentlich ein linguistischer Begriff und bezeichnet das Phänomen, daß ein Text direkt oder indirekt Aussagen über sich selbst macht (“Jede Regel hat Ausnahmen.”). Es treten mehrere Sprachebenen auf, die Aussagen über den Text liegen auf einer Meta-Sprachebene. c 2008 Udo Kelter Stand: 09.11.2008 Metadaten 9 Die Basis bilden Aussagen in der sogenannten Objektsprache (“Hans Maier wohnt in Essen.”). Nicht mehr zur Objektsprache, sondern zur Metasprache erster Stufe gehören Aussagen über Aussagen der Objektsprache, z.B.: “Nachnamen fangen mit einem Großbuchstaben an.” “Eine Postleitzahl hat 5 Ziffern.” “Deutsche Sätze haben meist ein Subjekt und ein Prädikat.” Die vorstehenden Beispiele machen Aussagen zur Wortbildung und Syntax der Objektsprache. Darüber hinaus könnnen auch Aussagen zur Bedeutung und zum Wahrheitsgehalt von Aussagen gemacht werden: “Seine Behauptung ist eine Unverschämtheit.” “Dieses Buch enthält viele Fehler.” “Kinder und Betrunkene lügen nicht.” “Wenn A und B Aussagen sind, wenn eine Aussage der Form ‘aus A folgt B’ gilt und wenn A zutrifft, dann trifft auch B zu.” Das letzte Beispiel zeigt, daß die mathematische Aussagenlogik Aussagen in der Metasprache enthält. Die Metasprache zweiter Stufe enthält Aussagen über Aussagen der Metasprache erster Stufe. Der vorige Abschnitt enthält viele derartige Aussagen. Die Parallele zwischen Metadatenebenen und Sprachebenen ergibt sich daraus, daß Daten ebenfalls Aussagen sind, nur nicht in der Syntax einer Umgangssprache, sondern etwas kryptischer und platzsparender codiert. Nutzdaten entsprechen daher Aussagen in der Objektsprache, Metadaten Aussagen in der Metasprache. Wie wir später sehen werden, muß man analog zu Metasprachebenen auch Metadatenebenen unterscheiden. Ein großes Problem entsteht für die Linguistik dadurch, daß die Umgangssprache alle Sprachebenen zugleich beinhaltet und daß eine einzige Aussage Begriffe und Bedeutungen auf mehreren Ebenen haben kann (“Dieser Satz hat fünf Worte.”). Wenn eine Aussage auf der Metaebene auf sich selbst Bezug nimmt und dabei etwas über ihre eigene Wahrheit oder Falschheit aussagt, kann ein Paradoxon entstehen c 2008 Udo Kelter Stand: 09.11.2008 Metadaten 10 (“Dieser Satz ist falsch.” “Keine Regel ohne Ausnahme.”). Bei Daten und Metadaten existieren normalerweise keine analogen Probleme, weil diese durch den Anwendungskontext genau einer Bedeutungsebene zugeordnet sind. Von der Linguistik kann die Informatik lernen, daß man sich massive Probleme einhandelt, wenn man Bedeutungsebenen nicht strikt voneinander trennt. 2 2.1 Arten von Metadaten Typbezogene vs. entitätsbezogene Metadaten Sowohl bei Datenbanken wie auch in der Dokumentverwaltung kann man zwei Arten von Metadaten unterscheiden: – entitätsbezogene Metadaten: diese sind einzelnen Nutzdatengranulaten bzw. den dadurch dargestellten realen Entitäten zugeordnet. Beispiel: Publikationsdatum oder Seitenzahl eines Buchs. Entitätsbezogene Metadaten müssen für jedes Nutzdatengranulat individuell verwaltet und wie normale Attribute der Nutzdaten modelliert werden. Sie können integriert mit den Nutzdaten oder separat verwaltet werden. – typbezogene Metadaten: XML-Dokumenttypdefinitionen, Datenbankschemata, Data Dictionary-Einträge usw. sind Metadaten, die einheitlich für eine Sammlung von Dokumenten, Tupeln, Datensätzen usw. eines bestimmten Typs gelten. Jedes einzelne Nutzdatengranulat muß einen eindeutigen Typ haben, über den Typ werden ihm die typbezogenen Metadaten indirekt zugeordnet. Entitätsbezogene Metadaten werden in diesem Lehrmodul nicht weiter betrachtet. 2.2 Instantiierbare Metadaten Oben wurden Datenbankschemata als Beispiele von typbezogenen Metadaten genannt – daß ein Nutzer ein Datenbankschema zum Verständnis der Datenbank benutzt, mag durchaus vorkommen, viel häufiger werden Datenbankschemata aber benutzt, um die Datenbank zu c 2008 Udo Kelter Stand: 09.11.2008 Metadaten 11 “konfigurieren” und die Aufnahme von Nutzdaten überhaupt erst zu ermöglichen. Typbezogene Metadaten, zu denen ein Datenverwaltungssystem (DVS) Instanzen bilden und verwalten kann, bezeichnen wir als instantiierbare Metadaten oder Schemata für dieses DVS. Metadaten sind nicht von sich aus instantiierbar, sondern nur, wenn ein DVS vorhanden ist, das die Instantiierung im Detail bestimmt. Charakteristisch für den Umgang des DVS mit den instantiierbaren Metadaten ist: – Das DVS, genauer gesagt eine Installation des DVS auf einem bestimmten Rechner, wird durch Schemata konfiguriert. D.h. dieses DVS realisiert eine Funktion, mit der ein Schema in die Installation übernommen werden kann (Beispiel: CREATE TABLE ...); danach können Nutzdaten (“Instanzen”) gemäß diesem Schema erzeugt, geändert, gelöscht und durchsucht werden. In relationalen DBMS dienen hierzu die “Funktionen” INSERT, UPDATE, DELETE und SELECT. – Alle vorgenannten Funktionen sind insofern generisch, als sie mit beliebigen Basistypen, die in einem Schema definiert sind, arbeiten können, und wenigstens einen Typ-Parameter haben, in denen ein zu benutzender Basistyp explizit angeben wird (z.B. INSERT INTO relationR ..., SELECT attributeA FROM relationR ...). – Die Grundzüge der generischen Funktionen werden durch das zugrundeliegende Datenbankmodell definiert. Wie diese Funktionen im Detail arbeiten und ob es ggf. weitere ergänzende Funktionen gibt, wird erst durch das konkrete DVS bestimmt. Beispielsweise könnten verschiedene relationale DBMS mit signifikant verschiedenem Funktionsumfang durch die exakt gleichen Schemata konfigurierbar sein. Was es also konkret bedeutet, daß eine Instanz von instantiierbaren Metadaten gebildet wird und in welcher Form eine Instanz danach existiert, hängt in groben Zügen vom Datenbankmodell und im Detail von dem konkreten DVS ab, wird jedenfalls nicht allein durch die Schemata (egal in welcher Darstellung) spezifiziert. Für sich alleine c 2008 Udo Kelter Stand: 09.11.2008 Metadaten 12 genommen sagen die Schemata insb. nichts darüber aus, – welche enthaltenen Typen einzeln instantiierbar sind (i.d.R. sind z.B. Attribute nicht einzeln instantiierbar) und – welche generischen Funktionen vorhanden sind, welche Parameter sie haben, ob sie mit einzelnen Instanzen oder mit Mengen von Instanzen arbeiten und wie sie im Detail arbeiten. Typbezogene vs. instantiierbare Metadaten. Instantiierbare Metadaten sind definitionsgemäß typbezogenen, aber nicht alle typbezogenen Metadaten sind instantiierbar. Ein Beispiel für typbezogene, nicht instantiierbare Metadaten sind Angaben zu einem Datenfeld, warum und auf wessen Wunsch es eingeführt wurde und wie es pragmatisch zu benutzen ist. Typbezogene Metadaten sind nur dann instantiierbare Metadaten, wenn sie die generischen Funktionen des unterstellten DVS beeinflussen. Instantiierbare Metadaten haben einen wesentlich anderen Charakter als “normale” Metadaten: – Statt die Nutzdaten nur deskriptiv zu ergänzen oder unscharf zu beschreiben, sind instantiierbare Metadaten Vorschriften, wie die Nutzdaten strukturiert sein müssen. – Während normale Metadaten frei gestaltet werden können, müssen instantiierbare Metadaten völlig konsistent mit den Konzepten des unterstellten DVS und dessen Datenbankmodell sein. Wie instantiierbare Metadaten aussehen können, wird sehr genau durch das unterstellte DVS vorgegeben, der eventuelle Informationsbedarf von Nutzern spielt keine Rolle. Instantiierbare Metadaten sind daher letztlich als eine von mehreren denkbaren Repräsentationen der Schemata des unterstellten DVS anzusehen. – Die Schemata müssen auf jeden Fall innerhalb des Datenbankkerns verwaltet werden, während alle anderen Metadaten außerhalb des Datenbankkerns, also wie normale Nutzdaten verwaltet werden. c 2008 Udo Kelter Stand: 09.11.2008 Metadaten 13 Instanz-von-Beziehungen. Sofern das DVS die instantiierbaren Metadaten (und ggf. weitere typbezogene Metadaten) selbstreferentiell darstellt, liegt es nahe, die Nutzdaten mit ihren Typdefinitionen zu verbinden. Technisch kann dies auf unterschiedliche Weise geschehen, z.B. durch Instanz-von-Beziehungen von den Nutzdaten zu den selbstreferentiellen Schema-Darstellungen. Im Endeffekt können Applikationen, die mit den Nutzdaten arbeiten, die zugehörigen selbstreferentiell repräsentierten Metadaten lokalisieren, auslesen und bei der Verarbeitung der Nutzdaten ausnutzen. Oft werden in der Applikation selbst gemäß dem Analysemuster Exemplartyp (s. [AM]) Beschreibungen von Typen und deren Instanzen verwaltet und durch Instanz-von-Beziehungen verbunden. Wie die Instanzen erzeugt und verwaltet werden, kann bei der Gestaltung der Applikation völlig frei entschieden werden. Die durch die Applikation bzw. das DBMS realisierten Instanz-von-Beziehungen haben daher eine völlig andere Bedeutung und dürfen trotz ähnlich klingender Namen nicht gleichgesetzt werden. 3 3.1 Selbstreferentialität in relationalen Datenbanken Repräsentation relationaler Schemata durch Tabellen In relationalen Systemen werden Schemata üblicherweise selbstreferentiell repräsentiert. Der ANSI/ISO SQL-Standard von 2003 definiert eine Datenbank INFORMATION SCHEMA, die diverse Metadaten zu allen Relationen in allen Datenbanken einer Installation bereitstellt. Die Schemata werden durch rund 20 Tabellen repräsentiert, darunter die Tabellen SCHEMATA, TABLES, COLUMNS und TABLE CONSTRAINTS. Die Datenbank INFORMATION SCHEMA ist mit SELECT lesbar; verändert werden kann sie nur durch Kommandos wie CREATE TABLE, nicht hingegen durch die Elementaroperationen INSERT, DELETE und UPDATE. I.f. stellen wir eine stark vereinfachte Version der Inhalte dieser Datenbank vor. c 2008 Udo Kelter Stand: 09.11.2008 Metadaten 14 Angaben über die vorhandenen Tabellen und deren Attribute kann man selbstreferentiell bereitstellen mittels einer Tabelle tabellenattribute, die für jedes Attribut jeder Tabelle den Namen, Typ usw. angibt2 . Die benutzerdefinierte Relation kunden mit den Spalten Kundennummer, Kundenname, Wohnort und Kreditlimit würde innerhalb dieser Tabelle wie folgt repräsentiert: Tabelle: tabellenattribute Tabellenname Attributname ... ... kunden Kundennummer kunden Kundenname kunden Wohnort kunden Kreditlimit ... ... Attributtyp ... integer char(40) char(25) decimal(5,0) ... Vorgabewert ... – – – 0,0 ... Die vorhandenen Identifizierungsschlüssel könnte man durch die folgende Tabelle (idschluessel) darstellen. Eine Tabelle kann mehrere Identifizierungsschlüssel haben, diese werden durch das Attribut IdSchlNr durchnumeriert. Jeder einzelne Identifizierungsschlüssel besteht aus einer Menge von Attributen, pro Attribut wird ein Tupel in der Tabelle eingetragen. Tabelle: idschluessel Tabellenname IdSchlNr ... ... kunden 1 ... ... Attributname ... Kundennummer ... Letztlich kann man alle Angaben über Tabellen, Domänen, Sichten, Primärschlüssel, Fremdschlüssel usw., die in den SQL-Kommandos zur Schemaverwaltung ( CREATE TABLE usw.) textuell dargestellt werden, 2 Die hier definierte Tabellen tabellenattribute und idschluessel sind stark vereinfachte Versionen der Tabellen COLUMNS und TABLE CONSTRAINTS. Wir gehen hier vereinfachend davon aus, daß nur ein einziges Datenbankschema verwaltet werden muß und man sich implizit hierauf bezieht. c 2008 Udo Kelter Stand: 09.11.2008 Metadaten 15 auch in tabellarischer Form repräsentieren. Allerdings deutet bereits das vorstehende Beispiel darauf hin, daß die tabellarische Darstellung aller Details eines Schemas nicht besonders übersichtlich ist und die textuelle Darstellung deutlich lesbarer ist. Die Komplexität der Schemata kann reduziert werden, wenn man für Detailstrukturen eine textuelle Darstellung wählt. In unserem Beispiel haben wir dies für die Attributtypen so gemacht: Texte wie “decimal(5,0)” beinhalten mehrere Angaben, für die bei einer komplett relationalen Modellierung eigene Spalten vorhanden sein müßten. Das Prinzip der Selbstreferentialität ist nicht nur bei den Schemata, sondern bei allen Arten von Metadaten anwendbar, z.B. administrative Metadaten, insb. sofern der Bedarf besteht, diese Metadaten ohne zusätzliche Schnittstellen abfragen oder sogar verändern zu können. Das Prinzip der Selbstreferentialität ist im Prinzip bei allen Datenbankmodellen anwendbar, nicht nur beim relationalen. Schemata und die viele andere Arten von Metadaten haben indessen eine komplexe Struktur, die spannende Frage ist, ob es die Modellierungsfähigkeiten des Datenbankmodells erlauben, diese Strukturen bequem zu modellieren. Das obige Beispiel zeigte bereits, daß das relationale Modell nur bedingt geeignet ist, relationale Schemata zu modellieren. 3.2 Zugriff auf selbstreferentiell repräsentierte Schemata Der offensichtliche praktische Nutzen der Selbstreferentialität ist, daß man die Standardschnittstellen des Systems verwenden kann, um die Schemata auszulesen. Man braucht keine eigene Schnittstelle im DBMS-Kern zu realisieren; eine ggf. gewünschte andere Darstellung - z.B. textuell - kann durch eine Applikation außerhalb des Datenbankkerns realisiert werden. Ob man die Schemata auch nach der gleichen Methode verändern kann, ist hingegen fraglich: 1. Wenn wir wieder auf das Beispiel der Tabelle tabellenattribute zurückkommen, dann müßte das Löschen eines Tupels zur Folge haben, daß in der betroffenen Tabelle ein Attribut entfernt und ggf. c 2008 Udo Kelter Stand: 09.11.2008 Metadaten 16 Teile der Datenbank konvertiert werden. Dies ist aber u.U. überhaupt nicht möglich oder nicht im Normalbetrieb; der Versuch, das Tupel zu löschen, müßte dann mit einer speziellen Fehlermeldung abgelehnt werden. Dies bedeutet, daß sich die Semantik von Standardoperationen ändert, wenn man sie auf Metadaten anwendet, und zwar durch eine Vielzahl von Nebeneffekten und zusätzliche Fehlerfälle. Dies ist umständlicher und schlechter verstehbar als eigene Operationen. 2. Die Struktur der Metadaten ist oft relativ komplex und kann komplizierte Integritätsbedingungen aufweisen. Da das zugrundeliegende Datenbankmodell normalerweise recht elementare Operationen aufweist, braucht man mehrere elementare Operationen, um eine korrekte Typdefinition zu konstruieren oder abzuändern (z.B. bei einer Objekttypdefinition wird zuerst der Typ erzeugt und dann werden ‘Eltern’-Beziehungen zu den Supertypen erzeugt, dann die Attribute zugeordnet). Die einzelnen Änderungen dürfen zunächst keine Auswirkungen auf die Metadaten haben, erst wenn die gesamte Sequenz von Operationen ausgeführt ist, können die Metadaten tatsächlich geändert werden. Da das DBMS von sich aus den Abschluß der Änderung nicht erkennen kann, benötigt man zusätzlich eine Operation, die den Abschluß signalisiert; das DBMS muß dann herausfinden, welche Detailänderungen vorgenommen wurden, und prüfen, ob der neue Zustand korrekt ist. Die Vorstellung, daß durch normale Datenmanipulationsoperationen implizit auch die Metadaten verändert werden, kann hier praktisch nicht mehr aufrechterhalten werden. Aufgrund der vorstehenden Probleme eignet sich der selbstreferentielle Ansatz i.a. nur für das Auslesen, nicht aber für das Ändern von Metadaten. Daher werden im ANSI/ISO SQL-Standard alle Tabellen mit Metadaten als schreibgeschützt definiert. 3.3 Metatypen und Meta-Metadaten Die Metadaten haben natürlich auch Typen; diese Typen bezeichnet man als Metatypen, entsprechende Schemata als Metaschemata. c 2008 Udo Kelter Stand: 09.11.2008 Metadaten 17 Ein Beispiel für ein Metaschema ist das Schema unserer oben erwähnten Tabelle tabellenattribute. Die Metatypen kann man wiederum selbstreferentiell repräsentieren; diese Daten sind Daten über Metadaten, also Meta-Metadaten. Die folgende Tabelle zeigt dies für die Metatypen aus den Tabellen tabellenattribute und idschluessel. Man beachte, daß die Spaltenköpfe der beiden genannten Tabellen hier zu Datenwerten in der Spalte Attributname werden. Tabelle: datenbankmodellKonzepte Tabellenname Attributname Attributtyp tabellenattribute Tabellenname char(200) tabellenattribute Attributname char(200) tabellenattribute Attributtyp char(200) tabellenattribute Vorgabewert char(1000) idschluessel Tabellenname char(200) idschluessel IdSchlNr integer idschluessel Attributname char(200) Vorgabewert – – – – – – – Die Tabelle wurde datenbankmodellKonzepte genannt, weil die Metatypen den Konzepten aus dem Datenbankmodell entsprechen. Es war relativ leicht, die Tabelle datenbankmodellKonzepte hinzuschreiben und den Begriff Meta-Metadaten zu bilden. Bei genauem Hinsehen ist aber nicht klar, ob das überhaupt sinnvoll ist, was wir da gemacht haben: 1. Meta-Metadaten stillen eigentlich keinen Informationsbedarf, der bei der Interpretation oder Verarbeitung der Metadaten entstehen würde. Entwickler von Applikationen und Datenbank-Nutzer wissen sowieso, daß Attribute einen Namen, Typ und Vorgabewert haben, dahingehend besteht kein Informationsbedarf. Wenn diese Kenntnisse über das Datenmodell nicht vorhanden wären, könnte man außerdem die Meta-Metadaten, die ja als Nutzdaten repräsentiert werden, gar nicht abfragen, denn um die Abfrage formulieren zu können, muß man dieses Wissen schon haben. c 2008 Udo Kelter Stand: 09.11.2008 Metadaten 18 Allenfalls sind Abfragen sinnvoll, wie lang z.B. der Name einer Tabelle maximal sein darf; dies sind aber technische Details, die man eher als Konfigurationsparameter der generischen Funktionen des DBMS-Kerns auffassen wird. Der DBMS-Kern konsultiert auch nicht die Meta-Metadaten, bevor er auf die Metadaten zugreift, um herauszufinden, ob er diese Metadaten als Schemata von relationalen Tabellen oder als Dokumenttypdefinitionen von XML-Dateien oder Konfiguration einer Suchmaschine interpretieren soll – die generischen Funktionen, die der Laufzeitkern eines relationalen DBMS realisiert, können nur mit relationalen Tabellen arbeiten, mit sonst nichts. 2. Die Meta-Metadaten können nicht ohne weiteres (signifikant) geändert werden, ohne zugleich den DBMS-Kern umzuprogrammieren. Ändert man das Metaschema ab, so ist deswegen alleine überhaupt nicht klar, wie der DBMS-Kern mit diesen neuen Strukturen umgehen soll. Wir könnten z.B. in der Tabelle datenbankmodellKonzepte ein neues Tupel (’tabellenattribute’, ’Geheimhaltungsstufe’, ’char(200)’, ’’ ) eintragen. Was das bedeuten soll, ist völlig unklar. Man müßte zunächst klären, wie das Konzept einer Geheimhaltungsstufe zu verstehen ist, dazu passend müßte ggf. die Syntax des CREATE TABLE-Kommandos erweitert werden, und die Wirkung der generischen Funktionen müßte geeignet modifiziert werden. Außerdem müßte natürlich die Metadaten-Tabelle tabellenattribute eine weitere Spalte Geheimhaltungsstufe bekommen. Im Endeffekt müssen wesentliche Teile des DBMS-Kerns umgestaltet werden. Ferner müßten ggf. sogar alle Nutzdaten entsprechend angepaßt werden. Als Konsequenz aus den vorstehenden Überlegungen sind das Metaschemata eines DBMS und dessen selbstreferentielle Repräsentation durch Meta-Metadaten, also hier die Tabelle datenbankmodellKonzepte, immer komplett statisch. Selbstreferentiell repräsentierte Metaschemata sind daher (in üblichen DBMS) in der Praxis weitgehend sinnlos! Man kann diese Metadaten nicht ändern, und um diese c 2008 Udo Kelter Stand: 09.11.2008 Metadaten 19 Daten abzufragen, muß man viele Konzepte schon vorher kennen, weil sie in der Abfrage verwendet werden. 3.4 Übersicht über die semantischen Ebenen Man kann die auftretenden Daten bzw. selbstreferentiellen Schemarepräsentationen je nach ihrer Bedeutung in mehrere Ebenen einteilen, diese Ebenen sind in der Tabelle in Bild 1 zusammengefaßt. Nr. Bedeutungsebene (Daten repräsentieren...) 2 1 0 Meta-Metadaten: Repräsentationen von Metaschemata / Metatypen Metadaten: Repräsentationen von Schemata / Typen Nutzdaten: Repräsentationen von Realwelt-Entitäten Beispiel einer dargestellten Entität Begriff “Tabelle” Syntax und Semantik der Daten wird bestimmt durch ... veränderbar MetaMetaschema nein Tabellenschema “Adressen” eine Adresse Metaschema + Datenbankmodell + DBMS Schema + Dokumentation ja ja Abbildung 1: Hierarchie der Bedeutungsebenen von Daten in einer Datenbank Lesehinweise zu dieser Tabelle: Auf Ebene 0 werden Nutzdaten verwaltet. Die “syntaktische” Struktur der Nutzdaten wird durch ein Schema vorgegeben, das allerdings komplexere Konsistenzbedingungen i.d.R. nicht beinhaltet; letztere können z.B. in einem Data Dictionary verbal dokumentiert sein, insofern wird noch nicht einmal die syntaktische Struktur der Daten durch das Schema vollständig dargestellt. Überhaupt nicht dargestellt wird die Bedeutung der Daten. Schemata werden auf Ebene 0 nur genutzt, aber nicht in irgendeiner Form als Daten repräsentiert oder verwaltet. Auf Ebene 1 werden Repräsentationen von Schemata verwaltet. Daß dies in der syntaktischen Form von Tabellen geschieht, ist willkürc 2008 Udo Kelter Stand: 09.11.2008 Metadaten 20 lich, man könnte genausogut eine textuelle Darstellung verwenden3 . Entscheidend ist, daß Schemata dargestellt werden. Für das Metaschema gelten die gleichen prinzipiellen Bemerkungen wie für das Schema: es stellt nur die syntaktische Struktur der Schemata weitgehend dar, aber nicht vollständig, und die Bedeutung der Schemata überhaupt nicht. Die letzte Spalte gibt an, ob diese Daten innerhalb eines DBMS durch die Nutzer veränderbar sind. Man kann diese Daten- und Schemahierarchie beliebig nach oben fortsetzen, es bringt aber nichts ein. Schon auf Ebene Metadaten stößt das Prinzip der Selbstreferentialität an Grenzen, denn ändernde Standard-Operationen sind nicht mehr erlaubt4 . Die selbstreferentielle Repräsentation der Metatypen ist sinnlos, weil die Metatypen eines DBMS komplett statisch sind. 3.5 Meta-Ebenen vs. Implementierungsebenen von Datenbankobjekten Die semantischen Meta-Ebenen in Bild 1 werden leicht verwechselt mit den Ebenen der Abstraktionshierarchie für Datenbankobjekte, die in Abschnitt 4 in [DBSA] vorgestellt wird. Prinzipiell haben diese beiden Hierarchien nichts miteinander zu tun, sie sind völlig orthogonal zueinander. Nutzdaten, Metadaten und ggf. Meta-Metadaten existieren alle nebeneinander und gleichzeitig als persistente Daten, sie müssen in irgendeiner Form auf den persistenten Medien gespeichert und beim Lesen von dort in mehreren Schritten an die Schnittstellen gebracht werden. 3 Die textuelle Darstellung wäre durch eine Grammatik bzw. Sprachdefinition strukturiert! Man kann übrigens die Daten auf allen Ebenen textuell darstellen und erhält dann eine Hierarchie von Sprachebenen. In der Tabelle muß dazu überall “Schema” durch “Grammatik” ersetzt werden. 4 Zur Klarstellung sei daran erinnert: wir diskutieren hier nur instantiierbare Metadaten, also Repräsentationen von Schemata. Andere Metadaten können natürlich mit Standard-Operationen geändert werden, da sie keine operationale Bedeutung haben. Obwohl es sich semantisch um Metadaten handelt, können sie technisch wie Nutzdaten behandelt werden. c 2008 Udo Kelter Stand: 09.11.2008 Metadaten 21 Ein extern sichtbares Tupel, das z.B. eine Adresse darstellt, existiert intern in absteigender Reihenfolge der Ebenen als Pufferbereich, als Inhalt eines Speichersatzes, als Teil eines Blocks und letztlich als magnetische Struktur auf einer Platte – in allen Fällen sind dies semantisch gesehen die gleichen Nutzdaten, nur die Implementierungsebene unterscheidet sich. In der nachfolgenden Tabelle sind Nutzdaten in Spalte 2 skizziert und jeweils mit “Std.” für Standardverfahren markiert. Implementierungsebene n-Tupel-Ebene 1-Tupel-Ebene Speichersatzebene Nutzdaten Std. Std. Std. Metadaten (Schemata) nur lesen nur lesen Std. Segmentebene Std. Std. Metametadaten (Metaschemata) geeignet?? geeignet?? nur teilw. sinnv. nur teilw. sinnv. Analog wie Nutzdaten müssen auch die Metadaten über die komplette Implementierungshierarchie hinweg realisiert werden. Die Metadaten werden natürlich in eigenen Segmenten verwaltet, insofern liegen sie “neben” den Nutzdaten. In der vorstehenden Tabelle sind Metadaten in Spalte 3 skizziert, die parallelen Spalten für Nutzdaten und Metadaten sollen andeuten daß beide Arten von Daten gleichzeitig nebeneinander existieren. Auf den beiden unteren Ebenen kann man die Metadaten wie normale Daten verwalten, man kann aber ebensogut abweichende Implementierungen verwenden, weil auf Metadaten anders als auf Nutzdaten zugegriffen wird. Auf der 1-Tupel-Ebene kann man immerhin noch für lesende Zugriffe die Standardschnittstellen und Implementierungsverfahren anbieten, für schreibende Zugriffe sind andere Schnittstellen sinnvoller. Auch dann, wenn Standardverfahren zum Einsatz kommen, und unabhängig von der Implementierungsebene sind die Daten, die z.B. ein Schema darstellen, immer Metadaten. Metametadaten, also speziell das Metaschemata, kann man theorec 2008 Udo Kelter Stand: 09.11.2008 Metadaten 22 tisch ebenfalls selbstreferentiell repräsentieren; diese Daten existieren dann parallel zu den Nutzdaten und Metadaten ebenfalls über alle Implementierungsebenen. Wie aber schon früher diskutiert können aus diversen praktischen Gründen Metametadaten nur mit sehr starken Einschränkungen selbstreferentiell repräsentiert werden. Weil es auch wenig Vorteile einbringt, liegt es nahe, komplett darauf zu verzichten. 4 4.1 Selbstreferentialität in XML Aufbau von XML-Dateien XML-Dateien enthaltenen i.w. zwei Teile: – einen Nutzdatenbestand, dessen Struktur ein Baum ist. Der Baum wird textuell dargestellt. Ein Teilbaum, auch Element genannt, wird in einem Textabschnitt dargestellt, der mit einem öffnenden tag beginnt, z.B. <Adresse>, und einem schließenden tag endet, z.B. </Adresse>. Jeder Knoten des Baums hat einen Typ, der Name des Typs steht in beiden tags. Im öffnenden tag können ferner Attributwertzuweisungen stehen, z.B. <Adresse AdrID=’A112’>. Hier ein Beispiel eines Teils der Nutzdaten: <Adresse AdrID=’A112’ > <Name>Frank</Name> <Vorname>Ulrich</Vorname> <Straße>Hauptstr.</Straße> <Hausnummer>5</Hausnummer> <Ort PLZ=’57076’>Siegen</Ort> </Adresse> <Adresse> .... </Adresse> – einer optionalen Dokumenttypdefinition (DTD), in der die Schachtelungsstruktur der tags definiert wird. c 2008 Udo Kelter Stand: 09.11.2008 Metadaten 23 Bei der DTD handelt es sich im Prinzip um eine kontextfreie Grammatik, die die Syntax und die inhaltliche Struktur des Textes, der die Nutzdaten darstellt, definiert. Hier können wir folgenden sehr interessanten Sachverhalt feststellen: Die Bedeutungsebenen von Daten, Metadaten usw. in Datenbanken (s. Tabelle 3.4) gelten analog für Texte, Grammatiken, Meta-Grammatiken usw. Das Prinzip der Selbstreferentialität wird somit (mit hier nicht interessierenden Ausnahmen) auch in XML-Dateien in Form von DTDs oder XML-Schemata angewandt. Auf Details gehen spätere Lehrmodule über Transportdateien und die XML [TRD] ein. 4.2 Typ-Annotationen Eine spezielle, oft irreführende Form von Metadaten stellen die Typangaben in den Tags in XML-Dateien dar. Derartige Angaben zum Typ der Daten, die direkt in die Nutzdaten eingebettet sind, bezeichnen wir als Typ-Annotationen. Typ-Annotationen treten auch in Bibtex-Dateien und vielen anderen Transportdateiformaten auf. Als Beispiel betrachten wir wieder den obigen Ausschnitt aus einer XML-Datei, die in den Nutzdaten eine Adreßliste enthält. Die eigentlichen Adreßdaten sind offensichtlich Nutzdaten. Die Frage ist, ob die Namen der Elementtypen und Attribute Metadaten sind und welche Art von Metadaten hier vorliegt. Diese Namen kann man ohne weiteres gemäß der allgemeinen Definition, wonach Metadaten die Interpretation der Nutzdaten ermöglichen bzw. unterstützen, als entitätsbezogene Metadaten ansehen; dies ist abhängig von der subjektiven Verwendung dieser Daten. Unklar ist hingegen, ob diese Namen auch typbezogene Metadaten in dem Sinne sind, daß sie implizit ein Schema der Nutzdaten darstellen (ggf. redundant bei jeder Instanz). 4.2.1 Typ-Annotationen in schwach strukturierten Daten An dieser Stelle muß man sich bewußt machen, daß XML eigentlich für schwach strukturierte Daten gedacht ist, das sind Daten, deren Struktur extrem variantenreich ist und/oder sich ständig unvorhersehbar ändert. Das Fehlen von eindeutigen Typdefinitionen ist gerade das c 2008 Udo Kelter Stand: 09.11.2008 Metadaten 24 Wesensmerkmal schwach strukturierter Daten. In Datenbanken und in vielen Programmiersprachen haben Typen die zentrale Eigenschaft, für alle Instanzen des Typs eine einheitliche Struktur sicherzustellen; genau diese Eigenschaft ist unerwünscht bei schwach strukturierten Daten. Weil es für derartige Daten keine Schemata im Sinne von Datenbanken gibt, ist die Selbstreferentialität hier prinzipiell nicht sinnvoll. Wenn man, obwohl es kein Schema gibt, trotzdem etwas über die Struktur aller Instanzen eines Elementtyps wissen will, kann man bestenfalls die Kindelementtypen und Attribute, die bei den vorhandenen Instanzen dieses Elementtyps auftretenden, aufsammeln. Man findet aber mit dieser Methode viele Strukturmerkmale nicht sicher heraus: die zulässige Häufigkeit einzelner Kindelemente, Reihenfolgerestriktionen, bei Attributen wie z.B. AdrID die Art des Attributs5 . Ferner könnte die vollständige Typdefinition einer Adresse eine optionale Angabe der Anrede und des Landes beinhalten, die zufällig in den vorhandenen Nutzdaten nirgendwo auftritt. Die implizit durch die Typ-Annotationen gegebenen Typdefinitionen sind also i.a. vage und unvollständig. 4.2.2 Typ-Annotationen in strikt typisierten Nutzdaten Sofern die Daten strikt typisiert sind, also eine DTD (oder ein XMLSchema) vorhanden ist und nur gemäß der DTD gültige XML-Dateien betrachtet werden, interessiert die Frage nicht mehr, ob die tags implizit eine Typdefinition darstellen. Die Typnamen in den tags sind nunmehr als Referenzen auf die Typdefinitionen in der DTD zu verstehen, also als unidirektional implementierte “ist-Instanz-von”-Beziehungen6 . Wenn man Typ-Annotationen als Referenzen auf Typdefinitionen versteht, ist es wenig sinnvoll, sie als entitätsbezogene Metadaten an5 Möglich wäre ein ID-, IDREF-, IDREFS- oder CDATA-Attribut. Es kommt hier nicht darauf an, daß die Typdefinitionen tatsächlich technisch in einem XML-Format vorliegen, sondern daß sie im Anwendungskontext (z.B. innerhalb von Applikationen) als Referenzen auf Typdefinitionen interpretiert und benutzt werden. 6 c 2008 Udo Kelter Stand: 09.11.2008 Metadaten 25 zusehen, weil sie ja nur Referenzen auf etwas anderes sind und selbst nichts aussagen. Dies wird besonders offensichtlich, wenn die Typnamen keine intuitive Semantik vermitteln, sondern nur “sinnlose”, generierte Nummern sind: ..... <TypId117543>Frank</TypId117543> <TypId117544>Ulrich</TypId117544> ..... Der entscheidende Punkt ist hier, daß man (meist unbewußt) zu einem anderen Datenbankmodell übergegangen ist, nämlich zu einem Datenbankmodell mit streng typisierten Datengranulaten. In einem solchen Datenbankmodell hat jedes Datengranulat einen eindeutigen Typ, und für jeden Typ liegt eine vollständige Definition vor. Das relationale Datenbankmodell ist ein Beispiel hierfür. Bei einem streng typisierten Datenbankmodell müssen die internen Implementierungsstrukturen so gestaltet werden, daß zu jedem Datengranulat sein Typ festgestellt werden kann. Im relationalen Datenbankmodell wird dies i.d.R. dadurch realisiert, daß alle Tupel gleichen Typs in einem Container (einer Tabelle) verwaltet werden und die Typdefinition der Tabelle zugeordnet ist. Man kann aber auch die Datengranulate gemischt speichern, muß dann aber an jedem Datengranulat explizit eine Typangabe speichern. Ob man hierfür ausdrucksstarke Namen oder sinnlose Nummern verwendet, ist eine Implementierungsentscheidung. Konzeptuell wird in allen Fällen eine Referenz auf die volle Typdefinition realisiert. Eine XML-Datei entspricht bzgl. des Implementierungsniveaus einem B*-Baum in der Implementierungshierarchie für Datenbankobjekte7 . Die XML-Datei implementiert einen getypten Baum; man sieht 7 Man beachte die Analogie zwischen den Begriffen “physische Konsistenz” einer Datenbank und “Wohlgeformtheit / Validität” einer XML-Datei. Wenn eine Datenbank physisch inkonsistent ist, ist der intern sichtbare Inhalt nicht mehr korrekt gemäß den Schemata interpretierbar. Wenn eine XML-Datei infolge eines falsch geschriebenen Typnamens oder Fehlers in einem Tag nicht mehr valide bzgl. einer DTD bzw. wohlgeformt ist, wird ihr Inhalt nicht mehr von einem validierenden XML-Prozessor akzeptiert, sie kann nicht mehr verarbeitet werden. c 2008 Udo Kelter Stand: 09.11.2008 Metadaten 26 (leider) die Implementierungsdetails komplett. Unsere Ausgangsfrage, ob bei strikt typisierten Nutzdaten die Typ-Annotationen Metadaten sind, ist letztlich nur Folge eines falsch gewählten Betrachtungsstandpunkts: hier werden Meta-Ebenen und Implementierungsebenen verwechselt (vgl. Abschnitt 3.5). Die TypAnnotationen sind hier keine Metadaten, sondern in die Nutzdaten eingebettete Typangaben, die ggf. als Referenzen auf andernorts vorhandene Metadaten interpretiert werden können. Literatur [AM] Kelter, U.: Lehrmodul “Analysemuster (Stichworte)”; 2006 [DBSA] Kelter, U.: Lehrmodul “Architektur von DBMS”; 2005 [DVS] Kelter, U.: Lehrmodul “Datenverwaltungssysteme”; 2005 [TRD] Kelter, U.: Lehrmodul “Transportdateien und die SGML”; 2004 Glossar Metadaten (meta data): Daten über Daten; im Kontext von DBS vor allem Schemata bzw. Typdefinitionen Meta-Metadaten (meta meta data): Daten über Metadaten; insb. eine selbstreferentielle Repräsentation des Metaschemas Metaschema (meta schema): Schema, das zur Speicherung von Metadaten (insb. Schemata und Typdefinitionen) benutzt wird Nutzdaten: die in einem System verwalteten “primären” Daten (ohne die Metadaten) Selbstreferentialität: Ansatz, die Metadaten in einem DVS wie Nutzdaten darzustellen Typ-Annotationen: in die Nutzdaten eingebettete Angaben zum Typ der Daten, Beispiel: tags in XML c 2008 Udo Kelter Stand: 09.11.2008 Index DTD, 22 Objektsprache, 9 Formatierung, 5 Schema, 4, 11, 12 generische DVS-Funktionen, 11 Konfigurierung, 18 internes, 4 Selbstreferentialität, 7, 26 Änderung von Metadaten, 15, 16 bei administrativen Metadaten, 15 bei Metatypen, 20 bei schwach strukturierten Daten, 24 bei Sprachen, 23 in relationalen Datenbanken, 13 in XML, 22 Sprachebenen, 8 Grammatik, 23 Implementierungsebenen von Datenbankobjekten, 20, 25 Instanz-von-Beziehung, 12 Layout-Daten, 5 Meta-Metadaten, 17, 18, 26 Metadaten, 3, 4, 26 administrative, 5 entitätsbezogene, 10 Hierarchie, 17, 19 in Datenbanken, 3, 4 in der Dokumentverwaltung, 3, 5 in Programmen, 3 instantiierbare, 10, 12 Instanzbildung, 11 Nutzung, 7 persistente, 4 semantische, 4 Speicherung, 6, 8, 20 transiente, 4 Typ-Annotationen, 23 typbezogene, 10, 23 vs. Nutzdaten, 6, 8 Metaschema, 16, 26 Metasprache erster Stufe, 9 Metasprache zweiter Stufe, 9 Metatyp, 16 Typ-Annotationen, 23, 26 Nutzdaten, 3, 26 27