Otto-Nagel-Gymnasium Fachbereich Informatik O. Wagner INFORMATIK BASISKURS Datenbanken und Datenschutz 4) Daten im Relationenmodell Entwicklung der Datenmodelle Das älteste Datenmodell ist das „hierarchische Datenmodell“, das in den 50er und 60er Jahren aus den Informations-ManagementSystemen der frühen Jahre der Informatik hervorging. Besonders Banken und Versicherrungen setzten dieses Datenmodell in ihren Großrechenanlagen ein – zum Teil existieren diese auch heute noch, da die Übertragung der Daten in ein neues System hohe Kosten verursachen kann. Im hierarchischen Datenmodell werden alle Entitäten in Datensätzen zusammengefasst. Alle Beziehungen zwischen den Daten werden in hierarchischen Baumstrukturen dargestellt, d.h. es werden „Parent-Child Relationships (PCR)“ zu Grunde gelegt. Dadurch sind nur 1:1 und 1:n Beziehungen möglich. Die wichtigen n:m Beziehungen müssen durch Redundanzen oder „virtuelle PCRs“ erzeugt werden, was eine Schwäche dieses Modells darstellt. Die Verarbeitung der Daten erfolgt dann durch die „Navigation“ von einem Datensatz zum nächsten über die Referenzen. Verglichen damit ist das Anfang der 70er Jahre entwickelte „relationale Datenmodell“ sehr einfach strukturiert. Es besteht im Wesentlichen nur aus zweidimensionalen Tabellen, in deren Zeilen die Datensätze eingetragen sind. Mathematisch gesehen ist eine Tabelle die Beschreibung einer Relation: Die eingetragenen Daten stehen „in Relation“ zueinander (=“sie stehen in der gleichen Zeile“). Die in den Tabellen (Relationen) gespeicherten Daten werden durch entsprechende Operatoren nach den Gesetzen der mathematischen Mengenlehre verarbeitet. Beziehungen zwischen den Tabellen werden ebenfalls in Tabellen abgelegt, in denen nur die Schlüsselwerte der zu verknüpfenden Datensätze abgelegt werden. Dadurch sind alle Beziehungstypen möglich. Die meisten in der Praxis eingesetzten DBMS sind für relationale Datenbanken konzipiert („relationale Datenbankmanagementsysteme“, RDBMS). Im allgemeinen Sprachgebrauch ist deshalb in der Regel eine relationale Datenbank bzw. ein RDBMS gemeint, wenn von Datenbanken die Rede ist. Für relationale Datenbanken gibt es mit SQL eine verbreitete und größtenteils standardisierte Abfragesprache. Vom ERM in eine relationale Datenbank Das ER-Modell besitzt zwei grundlegende Strukturelemente: Entitäten und Beziehungen. Dem steht im relationalen Modell nur ein Strukturierungskonzept (Relation bzw. Tabelle) gegenüber. Also werden Entitäten und Beziehungstypen jeweils auf eine Relation abgebildet. 1) Relationale Darstellung von Entitäten Entitäten werden mit der Gesamtheit ihrer Attribute in eine Relation überführt: Jedes Attribut wird zu einer Spalte der Tabelle, wobei die Spaltenreihenfolge irrelevant ist. Es ist aber üblich, mit dem oder den Schlüsselattributen zu beginnen. Mitgliedsnr Spieler Vorname Mitgliedsnr Vorname Name Position 714 Maria Stambo Vorstopper 901 Carola Figero Torhüter 1803 Franzi Herke Rechtsaußen … … … … Spieler Name Position -1- Otto-Nagel-Gymnasium Fachbereich Informatik O. Wagner INFORMATIK BASISKURS Datenbanken und Datenschutz 4) Daten im Relationenmodell 2) Relationale Darstellung von Beziehungstypen Im ersten Entwurf wird man für jeden Beziehungstyp eine eigene Relation definieren, einige dieser Relationen können später noch mit anderen Relationen zusammengefasst werden. Ganz allgemein gilt: Relationen bilden sich ab aus 1. den Primärschlüsseln aller beteiligten Entitäten 2. den der Relation zugeordneten Attributen Durch die Primärschlüssel wird festgehalten, welche Datensätze zueinander in Beziehung stehen und die Attribute verhalten sich wie die der Entitäten. Wieder ist die Reihenfolge der Spalten irrelevant, aber es ist üblich, mit den Schlüsseln zu beginnen: A1 Beziehung A2 E1 S (E1) E3 Beziehung S (E2) S (E3) A1 A2 E2 Die Schlüssel der beteiligten Entitäten, S(E1) S(E2) S(E3), werden als Fremdschlüssel bezeichnet. Zur Verdeutlichung ein vorläufiges Beispiel: Mannschaft Spieler trainiert Trainer Mitgliedsnr 714 901 1803 … trainiert Personalnr Mannschaft 10013 Damen Fußball D Jugend 10017 Damen Fußball A Jugend 10013 Damen Fußball D Jugend … … Die Relation trainiert benötigt nur den Primärschlüssel der beteiligten Entitäten, alle weiteren Daten (d.h. deren übrigen Attribute) können dann den Tabellen der Entitäten entnommen werden. Das Attribut der Beziehung ist hingegen in dieser Tabelle vorhanden. Es kann notwendig sein, dass man einige der aus den Entitäten übernommenen Attributnamen (auch Primärschlüssel sind Attribute!) umbenennen muss. Das ist einmal zwingend notwendig, wenn die Attribute der unterschiedlichen Entitäten gleich benannt sind und zum anderen sinnvoll, um die Bedeutung als Fremdschlüssel deutlich zu machen. -2- Otto-Nagel-Gymnasium Fachbereich Informatik O. Wagner INFORMATIK BASISKURS Datenbanken und Datenschutz 4) Daten im Relationenmodell In diesem Beispiel wurden die Kardinalitäten noch nicht beachtet, bei denen wir unterschiedliche Fälle zu berücksichtigen haben: Fallunterscheidungen für verschiedene Kardinalitäten Auch in den Tabellen, die Beziehungen darstellen, müssen Schüssel definiert werden, mit dem jeder Eintrag eindeutig gekennzeichnet ist, d.h. nur Spalten, in denen keine Duplikate einer Ausprägung auftreten können, können als Schlüssel verwendet werden. Bei der Übertragung vom ERM in das Relationenmodell müssen eine oder mehrere Spalten als Schlüssel festgelegt werden. 1 : n – Beziehung Der Schlüssel der „n-Seite“ bildet den Schlüssel der Relation, da er bereits eindeutig identifizierend ist. Beispiel: In einem Sportverein hat jede Sportstätte genau einen Hauptverantwortlichen zugeteilt bekommen, diese können aber für mehrere Hallen oder Sportplätze verantwortlich sein (1:n Beziehung). Überträgt man diese Beziehung in eine Tabelle, so ergeben sich mehrere Zeilen mit dem gleichen Platzwart, aber jede Sportstätte taucht maximal einmal auf: 1 Platzwart Sportstätte Name AÖL-Arena AÖL-Halle Tennis-Platz Fitness-Haus … 1 verantwortlich verantwortlich Platzwart Anwesenheitszeiten Personalnr 10116 Mo-Fr 9:00-13:00 10116 Mo-Fr 14:00-18:00 10118 Mo-Sa 11:00-17:30 10119 Mo-Fr 10:00-18:30 … … 1 n Sportstätte Anwesenheitszeiten Der Fremdschlüssel der Entität Platzwart (Name) ist kein Schlüssel in der Tabelle verantwortlich, da er mehrfach auftreten kann. Der Name der Sportstätten hingegen („n-Seite“ der Beziehung), kann nur einmal auftreten. Dieser Fremdschlüssel ist also gleichzeitig Schlüssel in der Tabelle verantwortlich. Verfeinerung der 1 : n – Beziehung Aus einer 1:n Beziehung und den beiden beteiligten Entitäten werden folglich drei Tabellen (denn jede Entität wird zu einer eigenen Tabelle). Diese drei Tabellen lassen sich in einem weiteren Schritt zu zwei Tabellen zusammenfassen, indem die Tabelle der Beziehung an die Entitätstabelle der „n-Seite“ angegliedert wird: Platzwart Sportstätte Personalnr Name Name … Platzwart Durchwahl Anwesenheitszeiten Personalnr 10116 Schmidt … AÖL-Arena 10116 -970 Mo-Fr 9:00-13:00 10117 Herberg … AÖL-Halle 10116 -980 Mo-Fr 14:00-18:00 10118 Becker … Tennis-Platz 10118 -910 Mo-Sa 11:00-17:30 10119 Krause … Fitness-Haus 10119 -930 Mo-Fr 10:00-18:30 … … … … … … … Die Tabelle Platzwart („1-Seite“) bleibt unverändert. Ihr Primärschlüssel, der zuvor in die Tabelle der Beziehung verantwortlich übernommen wurde (und dort ein Fremdschlüssel war), erscheint nun wie ein weiteres Attribut in der Tabelle Sportstätte (wieder als Fremdschlüssel). In dieser Tabelle kann eine bestimmte Ausprägung jedoch mehrfach erscheinen, daher ist „Personalnr“ kein Schlüssel der Tabelle Sportstätte! Das Attribut der Beziehung verantwortlich erscheint ebenfalls als weiteres Attribut der „n-Seite“. -3- … … … … … Otto-Nagel-Gymnasium Fachbereich Informatik O. Wagner INFORMATIK BASISKURS Datenbanken und Datenschutz 4) Daten im Relationenmodell n : m – Beziehung In einer n:m Beziehung bilden beide Fremdschlüssel bilden den Schlüssel der Relation: 1 Mitglieder Mitgliedsnr 1003 2123 2123 1522 … n 1 Ist aktiv in ist aktiv in Sportarten Bemerkung 22 Landesauswahl-Spieler 22 14 MVP Preis Saison 2005 14 … … m Sportarten Bemerkung 1 : 1 – Beziehung In einer 1:1 Beziehung ergeben sich theoretisch drei Tabellen. Wenn in einem Sportverein jedem Mitarbeiter ein Büro zugeteilt wird, entsteht das folgende ERM: 1 Mitarbeiter 1 1 arbeitet in Übersetzt man dieses in Tabellen, so ergibt sich: Mitarbeiter arbeitet in Personalnr Personalnr Raumnr Name … 10001 Beck … 10001 422 10002 Krone … 10002 517 … … … … … 1 Büro Raumnr 422 517 … Büro Durchwahl -516 -810 … … … … … Verfeinerung der 1:1 - Beziehung Wie man leicht sieht, lassen sich diese Tabellen auch zusammenfassen, entweder Büro als zusätzliches Attribut zu Mitarbeiter oder anders herum. Bei der Entscheidung sollte man beachten, dass so wenige Nullwerte wie möglich entstehen. In diesem Beispiel würde man, wenn es viele Mitarbeiter ohne Büros gibt (z.B. Trainer), die Tabelle Büro um ein Attribut Mitarbeiter ergänzen. Für den Fall, dass es viele Räume ohne Arbeitsplätze gibt, würde man die Tabelle Mitarbeiter um das Attribut Büro ergänzen: Personalnr 10001 10002 10013 10017 … Name Beck Krone Mangat Höner … Mitarbeiter Funktion Geschäftsführerin Sportlicher Leiter Jugendtrainer Jugendtrainerin … Büroraum 422 517 Durchwahl -516 -810 … … … … … … … … Quellen A. Kemper, A. Eickler: Datenbanksysteme. Eine Einführung, München 20045. www.wikipedia.org (Schlagworte: Hierarchisches Datenmodell, relationale Datenbank) -4-