>> Inhaltsverzeichnis >> Artikel

Datenbank

Database ist der Wurzelknoten eines XDDL Dokuments. Er kann mehrere Kindelemente enthalten. Diese können aufgeteilt werden auf 5 grundlegende Gruppen : Tabellen, Views, Formulare, Funktionen und Change-logs. Das Element Database definiert grundlegende Eigenschaften der Datenbank selbst, sowie Information für den Client und Anwendungen, die sich mit der Datenbank verbinden wollen.

Element Database

  ELEMENT database (description?, (include | table | view | form | function |
                     sequence | initialization)*, changelog?)
  ATTRIBUTE
       name        string
       title       string
       charset     string
       datasource  string
       readonly    bool
  
Attribute
Attribut Typ Pflicht Default Beschreibung
name string - n/a Ein eindeutiger Name welcher diese Datenbank identifiziert. Default ist der Dateiname. Sollte kleingeschrieben und ein valider XML-, SQL-Bezeichner sein.
title string - n/a Title ist eine Beschriftung, welche in der Nutzeroberfläche angezeigt werden sollte wenn das Objekt anzeigt wird.
Beachten sie, dass der Text ein Platzhalter sein darf, welcher für die angezeigte Sprache übersetzt wird.
charset string - n/a Der bevorzugte Zeichensatz welcher verwendet wird wenn Datenbankobjekte erstellt werden und/oder mit der Datenbank kommuniziert wird. Der Zeichensatz kann nur zum Zeitpunkt der Erstellung der Datenbank gesetzt werden. Wenn Sie sich dafür entscheiden, eine vorhandene Datenbank zu verwenden, beachten Sie bitte, dass der tatsächlich verwendete Zeichensatz ein anderer sein könnte.
datasource string - n/a Die Interpretation des Attributs datasource (Datenquelle) hängt von der Implementierung ab. Für das Yana Framework ist es eine benannte Datenquelle. Sie können benannte Datenbankverbindungen über das Administrationsmenü setzen.
readonly bool - no Sie können die Datenbank auf schreibgeschützt setzen, um zu verhindern dass Änderungen vorgenommen werden. Tun Sie dies wenn Sie ein Datenbakviewer erstellen möchten, oder eine Anwendung auf CD-ROM.
Beschreibung

Ein Wurzelknoten, welcher die wichtigsten Eigenschaften und/oder Anforderungen spezifiziert. Diese können verwendet werden, wenn die Datenbank über ein Skript erstellt wird, oder ein Datenbankclient eine Verbindung herstellt.

Implementierung

Der Zeichensatz (charset) soll während des Anlegens der Datenbank gesetzt werden. Typische Zeichensätze sind: utf-8, ascii, iso-8859-1. Beachten Sie, dass einige DBMS verschiedene Schreibweisen desselben Zeichensatzes haben, oder Zeichensätze unterstützen, die andere DBMS nicht anbieten. Die Implementierung muss eine Liste von gültigen Zeichensätzen zur Verfügung stellen und automatisch auf die korrekte Schreibweise für das Ziel-DBMS abbilden. Die Implementierung kann einen Fehler melden, wenn ein nicht unterstützter Zeichensatz verwendet wird.
Die Datenquelle (datasource) ist im Allgemeinen ein Bezeichner für einen bestimmten Satz von Verbindungsparametern zu einer spezifischen Datenbank. Das kann eine JNDI Data-Source für Java, eine ODBC Data-Source für C#, oder eine andere benannte Datenquelle für eine andere Sprache sein.

Darstellung

Wenn eine Oberfläche für eine Datenbank dargestellt wird, kann die Implementierung das Attribut title der Datenbank als Überschrift wählen.

Element Description

  ELEMENT description (#PCDATA)
  
Beschreibung

Die Beschreibung dient zwei Zwecken: 1. der Offline-Dokumentation 2. der Online-Dokumentation.
Eine Beschreibung ist stets optional. Beachten sie, dass der Text ein Platzhalter sein darf, welcher für die angezeigte Sprache übersetzt wird.

Darstellung

Der Formulargenerator kann die Beschreibung verwenden, um auf einer generierten Oberfläche kontextsensitive Hilfe, oder Zusatzinformation zur Verfügung zu stellen (abhängig von der Implementierung).

Element Include

  ELEMENT include (#PCDATA)
  
Beschreibung

Datenbankdefinitionen können in mehrere Dateien geteilt und rekursiv eingebunden werden. Zum Beispiel kann das notwendig sein, wenn Sie eine Referenz auf eine Tabelle erstellen möchten, welche an einer anderen Stelle definiert worden ist.

Die Liste der eingebundenen Dateien (Inlcudes) kann entweder Dateinamen, oder Bezeichner enthalten, welche durch die Anwendung zu Dateinamen umgewandelt werden können.
Beachten Sie, dass Sie nur Datenbankdefinitionen einbinden sollten, welche dieselbe Datenquelle (datasource) verwenden.

Implementierung

Die Kindknoten der Database-Tags der eingebundenen Dateien sollten in der Reihenfolge ihres Auftretens zum Datenbankknoten der Quelldatei hinzugefügt werden. Die Database-Elemente selbst sollen ignoriert werden. Wenn die eingebundene Datei weitere Dateien einbindet, dann sollten diese rekursiv behandelt werden. Sollte eine Datei mehrfach gelistet sein, so muss sie genau 1 Mal eingebunden werden. Falls eine Datei rekursiv eine weitere einbindet, welche jedoch bereits geladen wurde, so muss diese übersprungen und darf nicht zum zweiten Mal geladen werden. Eingebettete Dateien dürfen keine bereits vorhandenen Objekte redefinieren. z.B. darf eine eingeschlossene Datei nicht eine Tabellendefinition der Quelldatei überschreiben. Wenn ein bereits vorhandenes Element gefunden wird, muss ein Fehler gemeldet werden.

Element Sequence

  ELEMENT sequence (description?)
  ATTRIBUTE
       name        string
       start       integer
       increment   string
       min         integer
       max         integer
       cycle       bool
    
Attribute
Attribut Typ Pflicht Default Beschreibung
name string yes n/a Ein eindeutiger Name welcher diese Zahlenfolge identifiziert. Sollte kleingeschrieben und ein valider XML-, SQL-Bezeichner sein.
start integer - n/a Eine Zahlenfolge (Sequence) fängt immer mit einem Startwert an. Default ist der Minimalwert für aufsteigende, bzw. der Maximalwert für absteigende Zahlenfolgen.
Hinweis: der Startwert muss im Bereich der minimalen und maximalen Zahl liegen.
increment string - 1 Ein Inkrement (oder Schrittweite) spezifiziert die Zahl, welche zur Zahlenfolge addiert wird, zur Berechnung des Nachfolgers ihres aktuellen Wertes.
min integer - n/a Der Minimalwert ist eine Untergrenze für die Werte einer Zahlenfolge. Alle Werte müssen größer oder gleich dem Minimalwert sein. Der Minimalwert kann nicht größer als der Maximalwert sein. Default ist 1 für aufsteigende und PHP_INT_MIN für absteigende Zahlenfolgen.
max integer - n/a Der Maximalwert ist eine Obergrenze für die Werte einer Zahlenfolge. Alle Werte müssen kleiner oder gleich dem Maximalwert sein. Der Maximalwert kann nicht kleiner als der Minimalwert sein. Default ist PHP_INT_MAX für aufsteigende und -1 für absteigende Zahlenfolgen.
cycle bool - no Wenn eine Zahlenfolge ein Nummernkreis (cycle) ist und der Wert der Zahlenfolge eine Ober- oder Untergrenze erreicht, so wird diese zurückgesetzt auf den Minimalwert für eine aufsteigende, bzw. den Maximalwert für eine absteigende Zahlenfolge.
Beschreibung

Zahlenfolgen (Sequence) sind ganze Zahlen (Integer), in Verbindung mit einer Funktion zur Berechnung des Nachfolgers. Sie erfüllen verschiedene Aufgaben. Gewöhnlich werden sie verwendet, um eindeutige Id's automatisch zu generieren.
Beachten Sie, dass es implizite und explizite Zahlenfolgen gibt. Z.Bsp. wird implizit eine Zahlenfolge erzeugt, wenn eine Tabellenspalte mit der Eigenschaft Autoincrement angelegt wird. Implizite Zahlenfolgen dürfen nicht manuell definiert werden, da diese durch das DBMS selbst angelegt und verwaltet werden.
Beachten Sie auch, dass einige DBMS die Zahl 0 und den Wert NULL als gleich behandeln. Daher sollten Sie darauf achten, KEINE Zahlenfolge zu erzeugen, welche zu irgendeinem Zeitpunkt den Wert 0 annehmen kann. Außerdem können einige Anwendungen den Index 0 für Standardwerte reservieren (z.Bsp. ein Data-Warehouse).

Implementierung

Obwohl Zahlenfolgen Teil des SQL-2003 Standards sind, werden sie von den meisten Herstellern nicht unterstützt. Mit Ausnahme von PostgreSQL, wo diese ein bekanntes Feature darstellen. Sie können jedoch für andere DBMS simuliert werden.

Element Initialization

  ELEMENT initialization (#PCDATA)
  ATTRIBUTE
       dbms        string
  
Attribute
Attribut Typ Pflicht Default Beschreibung
dbms string - generic Der Name des Ziel-DBMS. Der Wert "generic" bedeutet, dass die Definition für jedes DBMS zutreffend ist. Gewöhnlich wird das als Rückfalloption für DBMS verwendet, an welche Sie entweder beim Erstellen der Datenbankstruktur noch nicht gedacht haben, oder welche das fragliche Feature nicht unterstützen.
Beschreibung

SQL-Anweisungen zum Initialisieren der Datenbank, welche ausgeführt werden sollen, direkt nachdem die Datenbankstruktur publiziert wurde. Die Syntax kann entweder allgemein gültig (generic) sein oder DBMS-spezifisch.

Implementierung

Die folgenden Werte werden für das DBMS-Attribut vorgeschlagen: 'generic', 'db2', 'dbase', 'frontbase', 'informix', 'interbase', 'msaccess', mssql,'' mysql,'' oracle,'' postgresql,'' sybase,'' sqlite'.

Autor: Thomas Meyer, www.yanaframework.net