Sql-und-Xml - Home

Sql-Tutorial

Grundbegriffe und Konzepte von Datenbank-Systemen

In diesem Abschnitt werden die folgenden Konzepte thematisiert: Der Unterschied zwischen einer Datenbank und einem Datenbank-Management-System, zwei fundamentale Anforderungen, die jedes computerbasierte Datenbanksystem erfüllen sollte, der Unterschied zwischen desktop- und serverbasierten Systemen sowie eine kurze Erläuterung zu drei Typen von Datenbanken.

Datenbank versus Datenbank-Management-System

  • Eine Datenbank ist eine logische Einheit zusammengehörender Daten, ihrer Meta-Beschreibungen sowie zusätzlicher Informationen, die zur Verarbeitung und Bereitstellung dieser Daten benötigt werden. Physikalisch kann eine Datenbank in mehrere Einzelteile zerfallen, die getrennt werden können, jedoch nur gemeinsam eine Datenbank bilden.
  • Datenbank-Beispiele in diesem logischen Sinne sind:

    • Eine Access-MDB-Datei
    • Eine mySql-Datenbank, zerfallend in viele Dateien, die in einem gemeinsamen Ordner liegen
    • Eine MS-SqlServer-Datenbank, verteilt auf diverse Dateien, die auf verschiedenen Festplatten mit unterschiedlicher RAID-Stufe untergebracht sind
    • Ein Archiv mit tausenden von Regalmetern voller Aktenordnern sowie einem zusätzlichen Klassifikationssystem in Form weiterer Ordner
    • Ein Zettelkasten mit Personennamen und zugeordneten Telefonnummern
    • Eine Sql-Datenbank zum Mieten, deren konkrete Implementierung nach außen hin unsichtbar ist
  • Eine Datenbank kann in den wenigsten Fällen direkt verwendet werden. Zwar mögen die Daten in Form von Dateien vorliegen, ein direktes Lesen mit einem Editor liefert jedoch keine verwertbaren Informationen. Oder es bestehen Zugriffsbeschränkungen verschiedenster Art, so daß ein gewöhnlicher Benutzer keine Informationen darüber hat, in welcher Form und an welchem Ort die Dateien abgelegt sind.
  • Ein Datenbank-Management-System (DBMS) stellt unterschiedliche Werkzeuge bereit, mit welchen eine oder mehrere Datenbanken erstellt, mit Daten gefüllt und verwaltet werden können. Ein DBMS verfügt in der Regel über mindestens eine Benutzerschnittstelle und kann eine oder mehrere Datenbanken nur aufeinanderfolgend oder parallel verwalten. Ferner gibt es - explizit oder implizit - Regeln, wer zu welchem Zeitpunkt Zugriff auf und Änderungsrecht an den Daten hat. Schließlich können Sicherungsstrategien / Backup-Verfahren definiert und regelmäßig ausgeführt werden.
  • Jede Benutzerschnittstelle besteht entweder aus verschiedenen Masken (Sql-Enterprise-Manager) oder bietet dem Nutzer eine Möglichkeit, direkt Befehle entgegenzunehmen. Diese werden an das DBMS gesandt und von diesem gegen die aktuelle Datenbank ausgeführt. Die hierfür verwendete Sprache könnte vom Hersteller des DBMS frei entwickelt worden sein. Tatsächlich wird von den meisten relationalen DBMS Structured Query Language (SQL) mit eventuellen eigenen Erweiterungen unterstützt.
  • Datenbank-Management-Systeme in diesem Sinne sind:

    • Die Installation einer geeigneten Ms-Access-Version zur Verwaltung von jeweils einer Datenbank.
      Oder: Die Installation der NET-Laufzeitumgebung sowie des Sql-Interaktiv-lernen. Mit diesem können Datenbank-Befehle direkt auf der Access-Datenbank ausgeführt werden.
    • Eine mySql-Installation, die vielleicht eine Datenbank verwaltet, deren Ordner auf einem anderen Rechner liegt.
    • Eine MS-SqlServer-Standard-Installation, die einige Werkzeuge (Enterprise-Manager, OSQL) bereitstellt.
      Oder: Ein installiertes MS-Access, in dem ein Access-Projekt erstellt wird, das auf eine Datenbank auf einem MS-SqlServer zugreift.
    • Regeln für den Zutritt zum Archiv (Ausweispflicht, zeitliche Einschränkungen, nicht in der Urlaubszeit). Gespräch mit den Archivverwaltern, um bestimmte Informationen zu finden bzw. um das Klassifikationssystem erst einmal zu verstehen, Verbot der Archivbenutzung bei zu vielen Anfragen oder bei ungebührlichem Benehmen. Implizite oder explizite Verhaltensregeln innerhalb des Archivs (kein Essen / Trinken / Rauchen), da das Archiv einmalig ist und keine Sicherung zur Verfügung steht.
    • Der Zettelkasten: Diese Datenbank ist einmalig und kann nicht mit einem vertretbaren Aufwand kopiert / gesichert werden. Sie könnte höchstens, Karte für Karte, kopiert bzw. abgeschrieben werden. Für neue Datensätze genügt einfaches kartoniertes Papier. Spezielle Kenntnisse zur Erstellung neuer Datensätze sind zunächst nicht notwendig. Jeder mit Zutritt zum Zimmer kann auf diese Daten zugreifen und die Sortierung zerstören. Es kann jedoch einen zweiten Zettelkasten geben, der nach vergleichbaren Prinzipien aufgebaut und von derselben Person verwaltet wird.
    • Zu einer Sql-Datenbank zum Mieten wird ein Web-Interface mit üblichen Masken angeboten, wie sie bsp. von Access her bekannt sind. Im Hintergrund werden aus den Nutzereingaben Sql-Befehle generiert und diese auf der Kunden-Datenbank ausgeführt. Verschiedene Nutzer verwenden zwar dasselbe Interface, haben jedoch keinen Zugriff auf die Datenbanken der anderen Nutzer.
  • Zusammengefaßt: Eine Datenbank als logische Einheit umfaßt alle Daten mit den notwendigen Meta-Informationen, diese sind ohne das zugehörige Datenbank-Management-System unverständlich und nicht verwendbar. Letzteres stellt die eigentliche Rahmenarchitektur zur Erstellung von Datenbanken dieses Typs mit ihren speziellen Inhalten dar und bietet datenbankübergreifend zusätzliche Service-Leistungen an.

Grundlegende Anforderungen an computergestützte Datenbank-Systeme

An Datenbank-Systeme, die edv-basiert sind, werden üblicherweise zwei fundamentale Forderungen gestellt: Vermeiden von Redundanz sowie die Sicherstellung einer maximalen Integrität der Daten.
  • Redundanzfreiheit: Informationen sollten nicht mehrfach abgelegt werden. Wurden Daten zu einer Einheit, einem Objekt, einem Vorgang abgelegt, so sollen diese Daten nur einmalig in der Datenbank vorhanden sein, so daß beim lesenden Zugriff immer nur diese eine Position abgefragt, beim schreibenden Zugriff nur diese Position geändert wird. Enthält die Datenbank bsp. Informationen zur Person 'Max Mustermann, Tel. 773355', so sollen die Eigenschaften 'Vorname', 'Nachname' und 'Telefon' nur einmalig existieren. Ändert sich etwa die Telefonnummer, so muß sie nur an einer einzigen Stelle geändert werden. Alle anderen Stellen, welche diese Information benötigen, lesen sie von dort aus und erhalten ab der Änderung unverzüglich den neuen Wert.
    Papierversionen von Datenbanken sind oft redundant, so werden Personennamen ausgeschrieben, anstatt daß nur eine Nummer eingesetzt wird. Damit steht bsp. auf Karteikarten der Name des Erstellers, gleichzeitig ist es nur mit einem unvertretbar hohen Aufwand möglich, alle von diesem erstellten Karten herauszufinden.
  • Datenintegrität erzwingen: Alle abzulegenden Informationen zerfallen in kleinste Einheiten, die vielfachen Einschränkungen unterliegen können. Ein Geburtsdatum darf nur gültige Datumswerte enthalten, bei Gewichts- oder Mengenangaben sollen nur ganze Zahlen größer Null zulässig sein. Bei Namen sind vielleicht Sonderzeichen verboten, bei Benutzernamen für ein Forum mögen keine Leerzeichen (... van der ...) gewünscht und die Länge beschränkt sein. Telefonnummern erlauben lediglich die Eingabe von Zahlen und Leerzeichen einschließlich führender Nullen, die nicht abgeschnitten werden sollen. Oder ein Feld erfordert die Auswahl aus einer Reihe von Werten, etwa Währungen, Personen oder Kategorien. Hier sollte eine Pulldown-Liste versehentliche oder absichtliche Fehleingaben ausschließen. Schließlich gibt es Pflichtfelder, die zwingend zu belegen sind, Werte müssen eindeutig sein - etwa Personalnummern - oder sollen zusätzliche Bedingungen erfüllen (10 < Wert < 100). Ferner kann es wünschenswert sein, Lese- und Schreibrechte fein granuliert zu verteilen, so daß nur berechtigte Personen Zugriff auf den jeweiligen Ausschnitt der Daten erhalten.
    Zur Forderung der Datenintegrität zählt ferner, daß das DBMS parallele Benutzerzugriffe gestattet, so daß parallele Lese- und Schreibzugriffe sich nicht gegenseitig behindern. Bei schwerwiegenden Störungen wie einem Verbindungsabbruch innerhalb der Netzkommunikation oder einem Stromausfall muß es das DBMS gewährleisten, daß die Daten konsistent bleiben bzw. daß das System auf einen Zustand kurz vor dem Abbruch zurückgesetzt werden kann.
Beachten Sie, daß das vielleicht erwartete, üblicherweise edv-typische Kriterium des 'raschen Zugriffs' hier ausdrücklich nicht thematisiert worden ist. Dieses Kriterium stellt zwar einen der entscheidenden Unterschiede zu jeder Form eines papiergebundenen Archivs dar, für das mühsam vielleicht einzelne Schlagworte mit Seitenangaben katalogisiert wurden. Es wird jedoch im Laufe der weiteren Ausführungen deutlich werden, daß der rasche Suchzugriff höchstens eine Folge der obigen Anforderungen darstellt. Sind die Daten nicht redundanzfrei abgelegt oder ist die Datenintegrität nicht bei jeder Verarbeitung sichergestellt, so liefert jede nachfolgende Auswertung ebenfalls ungenügende oder falsche Ergebnisse.

Desktop- versus serverbasierte Datenbank-Management-Systeme

  • Ein desktop-basiertes DBMS ist dadurch gekennzeichnet, daß der Betriebssystem-Prozeß, der auf die Datenbank zugreift, nur in der Zeit aktiv sein muß, in welcher die Datenbank tatsächlich benutzt wird. Damit können verschiedene Instanzen desselben DBMS auf verschiedenen Rechnern gestartet werden und versuchen, auf dieselbe logische Datenbank zuzugreifen, deren Datei auf einem Netzlaufwerk freigegeben worden ist. Jede dieser Instanzen muß freiwillig Zugriffe anderer Instanzen respektieren und eventuell gesetzte Schreibsperren beachten. Ein böswillig geschriebenes oder einfach fehlerhaftes Programm kann ebenfalls auf die Datenbank zugreifen und deren Inhalt beliebig verändern, so daß die Datenbank zerstört wird. Der Rechner, auf dem die Datenbank-Datei liegt, wird nur als Fileserver verwendet. Alle Filter- und Sortiervorgänge werden ausschließlich von den Benutzerprozessen erledigt, so daß sich eine solche Instanz alle Daten über das Netzwerk holt, erst lokal wenige Zeilen aussondert und diese dem Nutzer anzeigt. Fordert ein anderer Nutzer dieselbe Teilmenge von Daten an, führt der Betriebssystem-Prozeß dieses Nutzers dieselbe Aktivität durch. Sollen Sicherungen erstellt werden, so gelingt dies nur durch ein physikalisches Kopieren der Datei. Wird die Datei so beschädigt, daß sie nicht mehr verwendbar ist, kann nur auf die eventuell mehrere Stunden alte Sicherung zurückgegriffen werden, so daß alle in der Zwischenzeit erfolgten Änderungen verloren sind.

    Beispiel: Eine Access-Datenbank auf einem freigegebenen Laufwerk. Mehrere Benutzer starten auf ihrem Rechner Access und öffnen die Datenbank. Zusätzlich schreibt jemand ein Programm, welches direkt, unter Umgehung der üblichen Treiber, auf die Datenbank zugreift und diese als Textdatei anspricht.
  • Ein serverbasiertes DBMS ist durch mindestens einen kontinuierlich laufenden Betriebssystem-Prozeß charakterisiert, welcher vom Server-Betriebssystem verwaltet und geschützt wird. Nur dieser weiß, wo die physikalischen Dateien tatsächlich liegen und verbietet jedem anderen Prozeß den Zugriff auf diese. Dieser Prozeß stellt verschiedene Kommunikations-Schnittstellen zur Verfügung, die von Nutzern angesprochen werden können. Alle über die Schnittstellen mitgeteilten Wünsche werden zunächst vom Server-Prozeß analysiert. Nur wenn die Befehle syntaktisch korrekt sind und die Berechtigung für diesen Zugriff vorliegt, wird die Befehlsfolge ausgeführt und gegebenenfalls Daten zurückgesandt. Fordert ein Nutzer nur wenige Datensätze an, so wird die Filterung sofort auf dem Server durchgeführt, für das Senden der Daten sind nur geringe Netzwerk-Ressourcen notwendig. Fordern mehrere Nutzer dieselben Informationen ab, können spätere Anfragen direkt aus dem Arbeitsspeicher heraus beantwortet werden, so daß die Antwortzeit entsprechend verkürzt wird. Sicherungen können während des laufenden Betriebs vom Serverprozeß erstellt werden.
  • Vergleicht man diese beiden Typen mit einem klassischen Archiv, so entspricht einem Desktop-System ein Archiv, das frei zugänglich ist, bei dem jeder Archiv-Nutzer selbst zu den Regalen geht, in den Akten blättert oder einen Ordner aus dem Regal nimmt und an einer anderen Stelle wieder einstellt. Die Integrität und Konsistenz des Archivs ist also vollständig vom Verhalten der Nutzer abhängig, die Logik der Archivierung muß jedem Nutzer neu erläutert werden.

    Eine serverbasierte Datenbank-Lösung läßt sich dagegen beschreiben als eine Art Hochsicherheitstrakt mit frei zugänglichem Eingangsbereich. Die Nutzer haben keinen Zutritt zu den Stockwerken und Regalen, sie dürfen im Erdgeschoß ihre Wünsche interaktiv oder telefonisch mitteilen. Nur, wenn die Wünsche syntaktisch korrekt formuliert und die notwendige Berechtigung vorliegt, wird ausschließlich das erlaubte Datenpaket zugesandt.

Drei Typen von Datenbank-Systemen

Bei Datenbank-Management-Systemen werden drei verschiedene Typen unterschieden:
  • Hierarchische Datenbank: Dies ist der historisch früheste Typ. Die Daten werden in Form einer Baumstruktur abgebildet, so daß Parent-Child-Beziehungen maßgeblich sind.
  • Relationale Datenbank: 1970 veröffentlichte Edgar Frank Codd den Text A Relational Model of Data for Large Shared Data Banks (früher zugänglich unter http://www.acm.org/classics/nov95/toc.html), mit dem er die Grundlage für relationale Datenbank-Systeme legte. Die Daten werden in flache Tabellen (= Relationen) abgelegt, die durch Fremdschlüssel-Beziehungen beliebig miteinander verknüpft werden können. Die fünf Normalformen stellen Regeln dar, entlang derer ein Tabellenschema so entworfen wird, daß die Daten ohne Informationsverlust und redundanzfrei gespeichert werden. Charakteristisch für das relationale Modell ist, daß die Informationen zu einem Geschäftsvorfall auf viele Tabellen verteilt und bei Bedarf zusammengesetzt werden. Das relationale Modell ist bis heute das vorherrschende Modell für Datenbanken.
  • Objektorientierte Datenbank: Ein objektorientiertes DBMS erlaubt es, zusammengehörende Einheiten auch zusammen abzuspeichern. Dabei lehnt es sich an die objektorientierte Programmierung an und vermeidet damit das wiederholte Zusammensuchen zusammengehörender Daten.

© 2003-2016 Jürgen Auer, Berlin.