1. Relationale Datenbanksysteme 1.1. Das Relationale Modell Beim Relationalen Modell werden sowohl Objekte als auch deren Beziehungen zueinander dargestellt. Gleichartige Objekte werden mittels einer Kombination von Merkmalen beschrieben und bilden eine Objektklasse. Zwischen den Objekten verschiedener Objektklassen können Beziehungen bestehen. Diese Beziehungen werden wiederum, falls notwendig, in eigenen Beziehungsklassen zusammengefaßt. Objekte werden mit ihren Eigenschaften in der Datenbank mittels Datensätzen abgebildet. Der Objektklasse entspricht die Bestandsdatei als Menge zusammengehörender Datensätze. Gleiches gilt für die Beziehungen. Beziehungen zwischen Objekten können in Datensätzen abgebildet werden, die nur für die Beziehungen stehen. Alle möglichen Beziehungen ergeben dann die Beziehungsdatei. Die spezielle Darstellungsform von Dateien einer relationalen Datenbank ist die Tabelle. Jede Zeile beschreibt ein Objekt oder eine Beziehung, die Spalten werden von den Merkmalen und ihren Ausprägungen gebildet. Mehrere Tabellen zusammen bilden den zu beschreibenden Realitätsausschnitt ab und ergeben mit den auch hier dazugehörenden Indexdateien die Datenbank. Solch eine Tabelle nennt man in der einschlägigen Terminologie "Relation". Die "korrekten" Bezeichnungen für Bestandsdatei und Beziehungsdatei lauten daher Bestandsrelation und Beziehungsrelation. Damit Objekte bzw. die sie repräsentierenden Datensätze eindeutig identifiziert werden können, wird ein Merkmal oder eine Kombination von Merkmalen zum Schlüssel bestimmt. Jeder Schlüsselwert muß einmalig sein (Eindeutigkeit), was bedeutet, daß in jedem Datensatz dieses Merkmal (oder die Merkmalskombination) einen anderen, von Null verschiedenen Wert besitzen muß. Das Schlüsselmerkmal hat also immer einen Wert, Nichtschlüsselmerkmale können beim einen oder anderen Datensatz ohne Ausprägung bleiben. In der Praxis wird nicht ein vorhandenes Merkmal (z.B. Kundenname) zum Schlüssel bestimmt, sondern jedem Objekt eine Identifikationsnummer zugeordnet (Kundennummer). 1.2. Beziehungen Relationale Datenbanken erlauben das Abbilden mehrerer Objektklassen und Beziehungsklassen. Eine relationale Datenbank besteht in der Regel auch aus einer Vielzahl von Relationen. Zwischen Objekten verschiedener Objektklassen kann eine Beziehung bestehen. So spricht etwa eine Beziehung zwischen dem Objekt "Mailand" aus der Objektklasse "Städte" und dem Objekt "Italien" aus der Objektklasse "Länder" für sich. Beziehungen zwischen Objekten verschiedener Objektklassen können in folgenden Verhältnissen auftreten: 1 : 1 (Beispiel: Länder - Regierungschefs) 1 : n (Beispiel: Länder - Städte) m : n (Beispiel: Länder - Intern. Organisationen) Um eine Beziehung zwischen Objekten verschiedener Objektklassen zu realisieren, müssen in der Datenbank die entsprechenden Relationen miteinander verknüpft werden. Dies geschieht über identische Merkmalsausprägungen (=Feldinhalte). Beim Datenbankentwurf wird entweder das (Primär)Schlüsselfeld der einen Relation als Fremdschüssel in die andere aufgenommen (bei 1:1 und 1:n-Beziehungen) oder aber eine Beziehungsrelation gebildet, in der die Schlüsselfelder der Ausgangsrelationen Fremdschlüssel in dieser neuen Relation sind. Diese Beziehungsrelation erhält entweder ein eigenes Schlüsselfeld oder aber die beiden Fremdschlüssel bilden gemeinsam den Zusammengesetzten Schlüssel. Die folgende Abbildung zeigt eine direkte 1:n-Beziehung: Artikel n : 1 Artikelgruppe Relation "Artikel" Relation "Artikelgruppe" ArtnrName Möbelart ArtgrnrArtgrnr Bezeichnung Lagerort110Felix StuhlM10M10Essmöbel A25120Bruno TischM10M15Kleinmöbel B13125Pascha SesselM37M16Gartenmöbel C12Zur Realisierung der Beziehung zwischen beiden Relationen wird der Schlüssel "Artgrnr" von "Artikelgruppe" als Fremdschlüssel in "Artikel" aufgenommen. Die obige Konstruktion ist nur möglich bei einer 1:n-Beziehung: Jede Artikelgruppe enthält mehrere Artikel, ein Artikel kann aber nicht mehreren Artikelgruppen zugeordnet werden, die Spalte "Artgrnr" in der Relation "Artikel" enthält keine (unzulässigen) Mehrfacheinträge. Ist eine m:n-Beziehung vorhanden, so muß ausgehend von zwei Relationen eine neue Relation, eine Beziehungsrelation, hergestellt werden. Diese kann weitere Informationen enthalten. Als Beispiel nehmen wir eine Datei (=Relation) "Kunde" und eine Datei "Artikel", die in der Datenbank eines Handelsunternehmens existieren. Will man nun die Bestellung eines Artikels durch einen Kunden registrieren, kann man nicht einfach einen Schlüssel der einen Relation in die andere übernehmen: Ein Kunde kann verschiedene Artikel bestellen, ein Artikel kann von verschiedenen Kunden bestellt werden. Um also Mehrfacheinträge zu vermeiden, wird eine dritte Relation, "Auftrag", gebildet: Relation KUNDE Kundennr.FirmaAdresse Kreditlimit Rabatt100010MüllerMünchen1000025% 100011MaierHamburg 2000014%100012AdamsKöln 1100010%100013KaiserZürich 1700025%100014WeberBern 2200030%Relation ARTIKEL Artikelnr.BezeichnungLagerbestd.Verk.-PreisA1010110 Disketten3,5 10.00005,50A1010210 Disketten5,25 02.00004,17D20103Farbband 22S01.50027,75 D20104Endlospapier01.00015,10 Relation AUFTRAG Kundennr.Artikelnr.MengeDatum Netto-Wert 100013D201031000 10.2.9220612,.5100012D201041000 10.2.9212966,0100010A101011100 11.2.9204537,5100013A101011400 11.2.9205775,0Die Fremdschlüssel "Kundennummer" und "Artikelnummer" bilden die Beziehung und in der neuen Relation den zusammengesetzten Schlüssel. Zwischen den Bestandsrelationen "Kunde" bzw. "Artikel" und der Beziehungsrelation "Auftrag" besteht logischerweise eine 1 : n - Beziehung. Selbstverständlich ist auch bei einer 1:1 - oder einer 1 : n - Beziehung die Einrichtung einer Beziehungsrelation zulässig und manchmal auch sinnvoll. Bei einer m : n -. Beziehung ist dies zwingend. 1.3. Eine elementare Regel Eine wichtige Eigenart relationaler Datenbanksysteme ist, daß bei ihnen jeder Feldeintrag als ganzes indexiert wird. Dies bedeutet, daß jedes Merkmal eines Objektes oder einer Beziehung nur eine Ausprägung haben darf. Mehrfacheinträge sind also nur dort zulässig, wo die Inhalte des Feldes nur zur Ausgabe gelangen. Keinesfalls dürfen Schlüsselfelder Mehrfacheinträge enthalten. Zusätzliche Relationen können also auch deshalb gebildet werden, um Mehrfacheinträge aufzulösen. Diese Bildung zusätzlicher Relationen erfolgt durch Aufspalten einer Relation in zwei oder drei Relationen. Beispiel: Es besteht eine (Bestands-) Relation mit den formalen Angaben zu Büchern. Jeder Buchtitel kann mehrere Autoren haben. Das Merkmal "Autor" wird also aus der Relation genommen und als eigene (Bestands-) Relation definiert. Eine dritte Relation (eine Beziehungsrelation) stellt nun noch die Beziehungen zwischen den einzelnen Buchtiteln und den Autoren her. 1.4. Die Normalisierung Für das Relationale Modell gibt es Regeln zur Optimierung des Datenmodells, zu denen die sog. Normalisierungen zählen. Die Normalisierungslehre bestimmt allgemein, welche Abhängigkeiten zwischen Attributen zulässig sind. Eine Relation genügt einer bestimmten Normalform, wenn sie keine Abhängigkeiten aufweist, die darin nicht zulässig sind. Insgesamt sind bisher fünf Normalformen definiert. Normalisierungen geschehen immer durch Aufspalten einer Relation in zwei oder drei Relationen. Erste Normalform (1NF): In der 1. Normalform wird die relationale Darstellung nach dem Prinzip der flachen Tabellen erreicht. Alle Wertebereiche sind elementar, d.h. alle Attribute enthalten nur eine Ausprägung, Mehrfacheinträge sind beseitigt. Zweite Normalform (2NF): In der 2. Normalform ist jedes Nichtschlüsselattribut voll funktional vom Schlüssel abhängig, nicht von Teilen des Schlüssels und auch von keinem anderen Nichtschlüsselattribut. Zudem ist die 1NF erfüllt. Dritte Normalform (3NF): In der 3. Normalform wird die transitive Abhängigkeit aller Nichtschlüsselattribute von Schlüsselattributen, d.h. die Abhängigkeit über ein anderes, beseitigt. Auch hier sind die 1NF und die 2NF erfüllt. 1.5. Einsatz Relationaler Datenbanksysteme Relationale Datenbanksysteme eignen sich einerseits gut zum Verwalten reiner Fakteninformationen, andererseits zum Abbilden von Beziehungen zwischen Objekten verschiedener Objektklassen. Sie sind außerdem besonders geeignet bei der Verwaltung von Daten, von denen ein Teil kaum der Veränderung unterliegt (z.B. Personendaten), ein anderer häufig geändert, gelöscht, neu erfasst wird (Ausleihe, Rechnungen). Hier bietet sich die Einrichtung einer oder mehrerer Dateien mit festen Daten an und die Auslagerung der regelmäßig zu ändernden Daten in separate Bewegungsdateien. Weniger geeignet sind relationale Datenbanksysteme zum Verwalten von Informationen, die in textlicher Form vorliegen. Auch in Relationalen Datenbanksystemen lassen sich Texte eingeben und nach einzelnen Begriffen suchen. Aufgrund der Indexierungstechnik, die den Merkmalswert, d.h. also den Feldinhalt als Ganzes als Einheit betrachtet, sucht das Programm dann allerdings Datensatz für Datensatz, Wort für Wort, ab. Texte können damit nicht sinnvoll erschlossen werden, hier bedarf es anderer Techniken. Dies ist der Grund für die Entstehung der Information Retrieval Systeme. Beispiele für Relationale Datenbanksysteme sind auf PC-Ebene: Informix, Oracle, dBase, FoxPro, Access; auf Mainframeebene: DB2, Oracle, Ingres, Adabas. |