ARIS II - Modellierungsmethoden, Metamodelle und Anwendungen – Druckversion Lerneinheiten Modul C2: Relationenbildung und Normalisierung ARIS II - Modellierungsmethoden, Metamodelle und Anwendungen C2: Relationenbildung und Normalisierung Lernziele: Nach der Bearbeitung dieser Lektion haben Sie folgende Kenntnisse erworben: Sie können • • • • • • den Anwendungsnutzen von Relationenmodellen wiedergeben. die ersten drei Normalformen wiedergeben und erläutern. Relationen in die 3. Normalform überführen. ERM-Modelle in Relationenmodelle transformieren. Inkonsistenzen (Anomalien) aufzählen und erläutern. Integritätsbedingungen nennen und erläutern. Keywords: Relation, Normalform, Anomalie, konzeptionelles Datenbankschema, Relationenmodell, ERM, Datensicht, DV-Konzept, Datenmodell. 2.1.1 Ziele und Vorgehensweisen Ein Hauptziel der Datenmodellierung ist die Implementierung einer Datenbank. Im Rahmen des DV-Konzepts werden semantische Datenmodelle des Fachkonzeptes in konzeptionelle bzw. logische Datenmodelle [53] umgesetzt. Das relationale Datenmodell stellt hierbei die Schnittstelle zu relationalen Datenbanken dar. Die Umsetzung eines ERM-Modells in ein Relationenmodell [10] erfolgt in drei Schritten: Im ersten Schritt werden die Informationsobjekte des Fachkonzepts zu Relationen, also Tabellen umgeformt. Im zweiten Schritt werden diese Relationen einem Optimierungsprozeß, der sogenannten Normalisierung, unterzogen. Hierdurch werden Anomalien bezüglich des Einfügens, Änderns oder Entfernens von Tupeln beseitigt, indem die übernommenen Rohrelationen des Fachkonzeptes weiter aufgespalten werden. Bei einer zu feinen Relationengliederung sind Performanceprobleme der zu entwickelnden Datenbank absehbar. In diesem Fall kann ein umgekehrter Prozeß, also eine Denormalisierung, durchgeführt werden [36]. Im dritten Schritt werden Integritätsbedingungen innerhalb und zwischen den Relationen definiert. Diese können einerseits aus den Kardinalitäten des Fachkonzepts übernommen und in die Schreibweise des Relationenmodells umgeformt oder aber aus der Sicht des DV-Konzepts neu hinzugefügt werden. Version vom 03.04.2002 Seite 1 von 7 ARIS II - Modellierungsmethoden, Metamodelle und Anwendungen – Druckversion Lerneinheiten Modul C2: Relationenbildung und Normalisierung 2.1.2 Begriffe und Definitionen Das Relationenmodell nach Codd beruht im Gegensatz zum ERM auf einer mathematisch mengentheoretischen Beschreibung oder einer tabellarischen Darstellungsform. Im folgenden wird jedoch von der rein mathematischen Beschreibung abgesehen. Die grundlegenden Definitionen des Relationenmodells sind [51]: • • • • • • • • • Relation, eine zweidimensionale Tabelle, die für einen Entitytyp steht. Tupel, das ein Entity, d.h. einen Datensatz bezeichnet (eine Zeile der Tabelle). Attribute, die die Spalten der Tabelle festlegen (und die Entities beschreiben). Grad der Relation, der durch die Anzahl der Attribute bestimmt wird. Domäne, die den Wertebereich eines Attributes vorgibt. Primärschlüssel (Primary-Key), der einen Datensatz (Tupel) eindeutig identifiziert. Ein Primärschlüssel kann sich aus mehreren Attributen zusammensetzen (Bsp.: Primärschlüssel der Beziehung "kaufen" (Artikel Kunde) : KNR und ANR). Fremdschlüssel, der in eine Relation als beschreibendes Attribut aufgenommen wird, jedoch Primärschlüssel einer anderen Relation ist. Datenbankschema, das sich aus der Gesamtmenge der Relationen und ihren Beziehungen zusammensetzt. Datenbank, in die die vollständig aus dem ERM transformierten Relationen als Tabellen implementiert werden. Als grundlegende Regel für Relationen gilt, dass die Zeilen der Tabelle, also die Datensätze, paarweise verschieden sein müssen. Die Reihenfolge der Spalten oder der Zeilen ist dagegen beliebig, kann ein Datensatz doch durch Primärschlüssel(kombination) eindeutig identifiziert werden. Version vom 03.04.2002 Seite 2 von 7 ARIS II - Modellierungsmethoden, Metamodelle und Anwendungen – Druckversion Lerneinheiten Modul C2: Relationenbildung und Normalisierung 2.2.1 Transformation von ER-Modellen Transformation ERM - 1. Schritt [18, 36] Das Relationenmodell nach Codd beruht im Gegensatz zum ERM auf einer mathematisch mengentheoretischen Beschreibung oder einer tabellarischen Darstellungsform. Im folgenden wird jedoch von der rein mathematischen Beschreibung abgesehen. Die grundlegenden Definitionen des Relationenmodells finden Sie in der Animation [51] Mit der Transformation werden konzeptionelle Datenmodelle des Fachkonzeptes in konzeptionelle Datenbankschemata überführt. Dies geschieht mit der Umsetzung eines ERM-Modells in ein Relationenmodell. Dazu werden die Entitytypen und Beziehungen nach einfachen Vorschriften in Relationen überführt: Animation: Das Relationenmodell Mit der Transformation werden konzeptionelle Datenmodelle des Fachkonzeptes in konzeptionelle Datenbankschemate überführt. Dies geschieht mit der Umsetzung eines ERM-Modells in ein Relationenmodell. Dazu werden die Entitytypen und Beziehungen nach einfachen Vorschriften in Relationen überführt: Die grundlegenden Definitionen des Relationenmodells sind: • Eine Relation ist eine zweidimensionale Tabelle, die für einen Entitytyp steht. Aus dem entitytyp Kunde wird die Relation Kunde. • Ein Tupel ist ein Datensatz, also eine Zeile der Tabelle durch den ein Entity beschreiben wird. • Attribute legen die Spalten der Tabelle fest und beschreiben die Entities . • Grad der Relation wird durch die Anzahl der Attribute bestimmt. • Die Domäne gibt den Wertebereich eines Attributes vor. • Der Primärschlüssel, auch (Primary-Key), identifiziert einen Datensatz (Tupel) eindeutig. Ein Primärschlüssel kann sich aus mehreren Attributen zusammensetzen. Z.B. Primärschlüssel der Beziehung „kaufen“ aus denen der Entities Artikel, Kunde : KNR und ANR. • Der Fremdschlüssel wird in eine Relation als beschreibendes Attribut aufgenommen, ist jedoch Primärschlüssel einer anderen Relation. • Als grundlegende Regel für Relationen gilt, daß die Zeilen der Tabelle, also die Datensätze, paarweise verschieden sein müssen. Die Reihenfolge der Spalten oder der Zeilen ist dagegen beliebig, kann ein Datensatz doch durch Primärschlüssel(kombination) eindeutig identifiziert werden. Alle Attribute der Objekte werden übernommen und bilden eine Spalte. In der Relation Kaufen ist der Primärschlüssel kombiniert aus den Schlüsselattributen Artikelnummer und Kundennummer. • ·Bei der Umsetzung von 1:n-Bezeihungstypen entsteht keine eigene Relation. Die Beziehung wird durch die Aufnahme eines Fremdschlüssels in die Relation mit der Kardinalitätsobergrenze 1 ausgedrückt. Das Fremschlüsselattribut ist immer in einer anderen Relation Promärschlüssel, hier in der Relation Eigentümer. • ·Im Falle einer 1:1-Beziehung entfällt der Beziehungstyp ganz. Die Attribute der beiden Entitytypen werden in einer Relation zusammengefasst. Aus den Version vom 03.04.2002 Seite 3 von 7 ARIS II - Modellierungsmethoden, Metamodelle und Anwendungen – Druckversion Lerneinheiten Modul C2: Relationenbildung und Normalisierung ursprünglichen Schlüsselattributen wird eines als Primärschlüssel für die Relation gewählt. • ·In mehrstelligen Beziehungen übernimmt die neue Relation alle Schlüssel der Entitytypen als Primärschlüssel. Voraussetzung ist allerdings, dass mindestens zwei Kardinalitäten mit der Obergrenze „n“ ausgestattet sind. • ·Für Generalisierungen/Spezialisierungen werden keine eigenen Relationen gebildet. In den bestehenden spezialisierten Relationen werden lediglich die Primärschlüssel der generalisierten Relationen vererbt und als Fremdschlüssel übernommen. • ·Bei rekursiven Beziehungen muß der Primärschlüssel aufgespalten werden. Durch die Umbenennung eines Schlüssels nach den Kantenrollenbezeichnungen kann die Trennung einfach vorgenommen werden. Mit diesen Transformationsschritten kann ein anfängliches Relationenschema erstellt werden, das jedoch weiter verfeinert werden muss. Mit diesen Transformationsschritten kann ein anfängliches Relationsschema erstellt werden, das jedoch weiter verfeinert werden muss. Version vom 03.04.2002 Seite 4 von 7 ARIS II - Modellierungsmethoden, Metamodelle und Anwendungen – Druckversion Lerneinheiten Modul C2: Relationenbildung und Normalisierung 2.2.2 Normalisierung von Relationen Ziel einer Datenbank ist die redundanzfreie Speicherung von Informationen innerhalb der Datenbanktabellen. Redundanzfrei bedeutet, daß gleiche Informationen (in Attributfeldern) nicht mehrfach gespeichert werden. Liegen in unterschiedlichen Tabellen die gleichen Informationen vor, so kann das Einfügen, Löschen oder Ändern von Daten zu Inkonsistenzen führen. Diese Effekte werden als Anomalien bezeichnet [36]. Die Normalisierung ist eine Vorgehensweise zur Verbesserung von Datenstrukturen. Ziel ist die optimale Zerlegung und Verteilung von Attributen auf Relationen, also die Entfernung von Redundanzen, ohne daß Informationsverluste entstehen [10]. So bildet die Normalisierung einerseits den zweiten Schritt der Umsetzung eines ERM in das Relationenmodell. Auf der anderen Seite können mit Normalisierungsprozessen unnormalisierte Tabellen, beispielsweise einer Datei oder Datenbank, gegliedert und optimiert werden. Insgesamt existieren 6 Normalformen (NF): 1.-3. NF, Boyce/ Codd NF, 4.-5. NF. Diese werden im Normalisierungsprozess sequentiell durchlaufen. Für viele Datenbankentwurfsverfahren stellt die dritte Normalform den optimalen Zerlegungszustand dar. Andere Verfahren werden wegen der Seltenheit ihres Auftretens nicht weiter betrachtet. Im folgenden wird die Vorgehensweise der Normalisierung anhand eines Beispiels durchlaufen. Ausgangspunkt der weiteren Betrachtung stellt die unnormalisierte Relation "Prüfungswesen" dar. Animation: Transformation ERM in ein Relationenmodell Der zweite Schritt der Transformation des ERM in ein Relationenmodell ist ein Optimierungsprozess, sie sog. Normalisierung. Damit wird einerseits eine Verbesserung der Datenstruktur innerhalb der Datenbanktabellen erreicht. Desweiteren werden Anomalien vermieden. Anomalien sind: Die Einfügeanomalie, die Anomalie beim Löschen und die Updateanomalie. • Die Einfüge-Anomalie entsteht, wenn z. B. ein neuer Student in die Datenbank aufgenommen werden soll, der noch keine Prüfung absolviert hat. Student Schulze kann nicht gespeichert werden. • Eine Anomalie beim Löschen tritt auf, wenn ein Prüfer, z. B. Prof. Müller, aus dem Prüfungsdienst ausscheidet und deshalb aus der Datentabelle gelöscht wird. Damit wird auch der Student Rosner gelöscht, obwohl dieser weiterhin studiert. • Eine Update-Anomalie besteht darin, daß z. B. bei der Änderung der Telefonnummer des Studenten Wagner alle Tupel der Relation Version vom 03.04.2002 Seite 5 von 7 ARIS II - Modellierungsmethoden, Metamodelle und Anwendungen – Druckversion Lerneinheiten Modul C2: Relationenbildung und Normalisierung R.PRÜFUNGSWESEN durchsucht werden, um zu gewährleisten, daß alle Daten auf den neuesten Stand gebracht werden. Eine Relation befindet sich in der ersten NF, wenn jeder Attributwert elementar ist, d. h. wenn alle zusammengehörenden Informationen in einzelne Tabellenfelder aufgeteilt wurden. Durch die logische Datenmodellierung, bspw. mit dem ERM, wird dieser Zustand einer Relation automatisch erreicht. Eine Relation befindet sich in der zweiten NF, wenn sie bereits in NF 1 ist und jedes Nichtschlüsselattribut von jedem Schlüsselattribut voll funktional abhängig ist. Die Datensätze einer Funktion müssen eindeutig unterschieden werden können. Daher müssen alle Schlüsselattribute, die in einer Relation vorhanden sind, identifiziert und mit den ihnen zugehörigen Daten in eine eigene Relation übertragen werden. Die Matrikelnummer jedes Studenten ist ein Schlüsselattribut, deswegen wird eine Relaltion Student gebildet. Die Relation Prüfer enthält die verbleibenden Dateninhalte der alten Relation Prüfungswesen. Gleichzeitig müssen die Beziehungen zwischen den getrennten Relationen und Attributen wiederhergestellt werden. Dies geschieht durch die Relation Prüfung. Auch die zweite Normalform wird von Relationen, die zuvor logische mit ERM modelliert wurden, häufig erreicht. Eine Relation befindet sich in der 3. Normalform, wenn sie in NF 2 ist und kein Nichtschlüsselattribut transitiv von einem Schlüsselattribut abhängig ist. Transitive Abhängigkeit bedeutet, daß aus einer Relation die Attribute ausgelagert werden müssen, die von einem Attribut abhängen, das vom Primärschlüssel bestimmt wird Zur Auflösung dieser Abhängigkeit eliminiert man die transitiv ab-hängigen Attribute (FAKNAME, DEKAN) in eine neue Relation und kopiert das zwischengeschaltete, bestimmte Attribut (FAKNR) in die-se Relation. In der Relation Student bleibt das Attribut FAKNR als Fremdschlüssel bestehen und verweist auf die Fakultät. Das Ziel, die redundanzfreie Zerlegung und Verteilung von Attributen auf Relationen, ohne daß Informationsverluste entstehen, ist hiermit also erreicht worden. Wenn sie die Gestaltungsoperatoren bei der Modellierung des ERMs betrachtet haben, sind die daraus abgeleiteten Relationen überwiegend in der dritten Normalenform. Die Relationen, die sich in der dritten Normalform befinden, bilden so den Ausgangspunkt für die Implementierung der Tabellen in ein Datenbanksystem. Version vom 03.04.2002 Seite 6 von 7 ARIS II - Modellierungsmethoden, Metamodelle und Anwendungen – Druckversion Lerneinheiten Modul C2: Relationenbildung und Normalisierung 2.2.3 Integritätsbedingungen Integritätsbedingungen [18] sorgen dafür, daß Datenbanken stets ein korrektes Abbild der Wirklichkeit darstellen. Die Integrität sichert also die Zulässigkeit bzw. Korrektheit der Datenbestände [6]. Da im Relationenmodell durch die Tabellendarstellung lediglich magere Möglichkeiten zur Definition semantischer Tatbestände bestehen, werden die Integritätsbedingungen in einer Datenmanipulationssprache definiert. Integritätsbedingungen können aber auch innerhalb eines Anwendungsprogrammes formuliert werden [36]. Animation: Transformation eines ERM in ein Relationenmodell Im dritten Schritt der Transformation des ERM in ein Relationenmodell werden Integritätsbedingungen innerhalb und zwischen den Relationen definiert. • Da im Relationenmodell durch die Tabellendarstellung lediglich magere Möglichkeiten zur Definition semantischer Tatbestände bestehen, werden die Integritätsbedingungen in einer Datenmanipulationssprache definiert. Integritätsbedingungen sorgen dafür, daß Datenbanken stets ein korrektes Abbild der Wirklichkeit darstellen. Die Integrität sichert also die Zulässigkeit bzw. Korrektheit der Datenbestände. Integritätsbedingungen werden nach ihrer Granularität klassifiziert, d. h. nach der Größe der betroffenen Dateneinheit (Attribut, Tupel, Relation, Datenbank). • Die Integrität eines individuellen Attributs kann durch die Angabe von Domänen (Wertebereichen) gewährleistet werden. Das Bankkonto eines Kunden kann nur bis zu seiner Kreditlinie belastet werden.Zwischen mehreren Attributen eines Tupels können Integritätsbedingungen definiert werden, so daß z. B. die Gehaltssumme einer Abteilung immer kleiner als ihr Jahresetat sein muß. • Für eine Relation kann z. B. gelten, daß ein bestimmtes Attribut immer im Format (TT.MM.JJ) angegeben werden muß. • Ein Beispiel für die relationsübergreifende Integritätsbedingungen ist die referentielle Integrität. Sie überwacht, daß in Relationen, die aus einem Beziehungstypen hervorgegangen sind, nur Tupel angelegt werden können, für die in allen beteiligten Relationen bereits ein Datensatz besteht. Bspw. wird so bereits auf fachlicher Ebene sichergestellt, daß nur diejenigen Kunden einen Artikel kaufen können, die bereits in der Datenbank verwaltet werden. Sobald ein ERM in Relationen der dritten Normalform überführt und die Integritätsbedingungen innerhalb und zwischen den Tabellen definiert wurden, können diese mit der Datenmanipulationssprache SQL in eine relationale Datenbank überführt werden. Version vom 03.04.2002 Seite 7 von 7