4 Relationentheorie - Abhängigkeiten, Normalformen, Data Design

Ähnliche Dokumente
Datenbanksysteme Übungsblatt 1

Kapitel 7: Formaler Datenbankentwurf

Vorlesung Datenbanktheorie. Church-Rosser-Eigenschaft der Verfolgungsjagd. Berechnung von chase(t, t, Σ) Vorlesung vom Mittwoch, 05.

Datenbanksysteme 2015

Normalformen. Was sind Kriterien eines guten Entwurfs? So wenig Redundanz wie möglich. Keine Einfüge-, Lösch-, Änderungsanomalien

1 Grundkonzepte der datenorientierten Modellierung

Relationale Entwurfstheorie (Teil 2)

Entwurfstheorie relationaler Datenbanken 7. Entwurfstheorie relationaler Datenbanken

Datenbanken Unit 5: Funktionale Abhängigkeit

4. Normalformen. Qualitätsanforderungen an Tabellen. Klassische Normalformen (1,. 2., 3.) Spezielle Normalformen

Datenbanken 6: Normalisierung

3. Grundlagen relationaler Datenbanksysteme

Kapitel DB:VII. VII. Entwurfstheorie relationaler Datenbanken

8. Tutorübung zu Grundlagen: Datenbanken

Datenbanken 6: Normalisierung

5. Normalisierung von Relationen

Programmierung und Datenbanken II

Relationale Entwurfstheorie. Kapitel / 510

Funktionale Abhängigkeiten

5. Normalisierung von Relationen

Verfeinerung des relationalen Schemas

Normalisierung II. Ziele

Grundlagen: Datenbanken WS 15/16

Teil 9: Einführung in relationale Normalformen

Datenmanagement Übung 5

9. Normalformen / Erweiterungen 9.1 Vorbemerkung, Zielsetzung, Inhalt Datenmodellierung und Integritätsaspekte

Design Theorie für relationale Datenbanken

Kapitel 7: Normalformen

Informationssysteme. Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern. Sommersemester

3. Übungszettel (Musterlösung)

Relationale Entwurfstheorie

Normalisierung I. Ziele

Logischer DB-Entwurf. Prof. Dr. T. Kudraß 1

Kapitel 7: Normalformen

Relationale Entwurfstheorie

Datenbanken: Relationales Datenbankmodell RDM

Kapitel 7: Normalformen

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Grundlagen der Theoretischen Informatik

Rückblick: Datenbankentwurf

ARIS II - Modellierungsmethoden, Metamodelle und Anwendungen

4. Normalisierung von Relationenschemata

Datenbankanwendung. Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern. Wintersemester 2014/15.

Vorlesung Datenbank-Entwurf Klausur

Informatik 10 Mar Datenbanken: RDM Normalisierung April 2014

Gruppe A Bitte tragen Sie SOFORT und LESERLICH Namen und Matrikelnr. ein, und legen Sie Ihren Studentenausweis bereit.

2. Übungsblatt 3.0 VU Datenmodellierung

Resolutionsalgorithmus

Kapitel 3: Datenbanksysteme

Beschreibungskomplexität von Grammatiken Definitionen

Datenbanken (Übung 12)

An approximation of Edgar Codd's definition of 3NF:

Kapitel 11. Dimension und Isomorphie

2. Übungsblatt 3.0 VU Datenmodellierung

Übungsblatt 4. Aufgabe 7: Datensicht Fachkonzept (Klausur SS 2002, 1. Termin)

mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 18. Juni 2007

Aufgabe 1: Kanonische Überdeckung

Algorithmen mit konstantem Platzbedarf: Die Klasse REG

Wiederholung VU Datenmodellierung

Relationale Entwurfstheorie

WS 2009/10. Diskrete Strukturen

Datenbanksysteme Teil 3 Indizes und Normalisierung. Stefan Maihack Dipl. Ing. (FH) Datum:

Logischer Entwurf von Datenbanken

Kommunikation und Datenhaltung

Lemma Für jede monotone Grammatik G gibt es eine kontextsensitive

Kapitel 6 Relationale Entwurfstheorie. Funktionale Abhängigkeiten Normalformen Normalisierung durch Dekomposition

Vorlesung. Einführung in die mathematische Sprache und naive Mengenlehre

Einführung in Datenbanken - Wiederholung Normalformen - Philipp Cimiano AG Semantische Datenbanken und Wissensverarbeitung

Kapitel DB:IV (Fortsetzung)

1 Mengen. 1.1 Definition

Formale Grundlagen der Informatik 1 Kapitel 16 Normalformen und Hornformeln

Diskrete Strukturen Kapitel 2: Grundlagen (Beweise)

12 Der Abstand eines Punktes von einer Geraden Seite 1 von Der Abstand eines Punktes von einer Geraden

Frank Heitmann 2/47. 1 Ein PDA beginnt im Startzustand z 0 und mit im Keller. 2 Ist der Automat

Günther Vinek - Paul Frederick Rennert - A Min Tjoa. Datenmodellierung: Theorie und Praxis des Datenbankentwurfs

R = {(1, 1), (2, 2), (3, 3)} K 1 = {1} K 2 = {2} K 3 = {3}

Theorie der Informatik. Theorie der Informatik. 6.1 Einführung. 6.2 Alphabete und formale Sprachen. 6.3 Grammatiken. 6.4 Chomsky-Hierarchie

Relationale Entwurfstheorie

Kapitel 11: Relationale Entwurfstheorie

Grundlagen der Theoretischen Informatik

2. Übungsblatt 3.0 VU Datenmodellierung

Normalformen: Sinn und Zweck

Datenbanken. Rückblick: Datenbank-Entwurfsprozess. Semantische Datenmodellierung (vgl. Kapitel 2)

Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen

Grundlagen von Datenbanken. B-Bäume, B*-Bäume Normalisierung

Formalisierung von Sudoku Formalisieren Sie das Sudoku-Problem:

1. Ziel des Datenbankentwurfs

Entwurf redundanzfreier Datenbankschemata

Vorkurs Mathematik. Vorlesung 8. Angeordnete Körper

Kapitel 1.5. Ein adäquater Kalkül der Aussagenlogik. Teil 1: Kalküle und Beweisbarkeit und die Korrektheit des Shoenfield-Kalküls

Grundlagen von Datenbanken SS 2010

Einführung Datenbanken: Normalisierung

Ersetzbarkeitstheorem

Musterlösung zur Finalklausur Datenbanksysteme am

Kapitel 7 Dr. Jérôme Kunegis. Logische Kalküle. WeST Web Science & Technologies

10.2 Linearkombinationen

Wirtschaftsinformatik

Datenbank Modellierung - Normalisierung

Übungsblatt 7. Vorlesung Theoretische Grundlagen der Informatik im WS 16/17

1. Gruppen. 1. Gruppen 7

Transkript:

4 Relationentheorie - Abhängigkeiten, Normalformen, Data Design 4.1 Motivation für den systematischen Entwurf von Relationen... 2 4.1.1 Ziele/Probleme beim Aufbau relationaler Datenbanken... 2 4.1.2 Schlussfolgerungen... 6 4.2 Semantische Integritätsbedingungen... 9 4.3 Funktionale Abhängigkeiten Definition und Eigenschaften... 17 4.4 Normalformen (2NF, 3NF, BCNF)... 53 4.5 Data Design Erzeugung von 3NF-Relationen... 69 1

4.1 Motivation für den systematischen Entwurf von Relationen 4.1.1 Ziele/Probleme beim Aufbau relationaler Datenbanken (1/4) Ziel: Datenbank sollte zu jedem Zeitpunkt ein korrektes Abbild der realen Welt darstellen! Problem: Durch Analyse der Realwelt gegeben: entw.: - Objekte/Beziehungen mit Attributen oder: - oder aber nur: Menge von Attributen Frage: Wie fasst man Attribute zu Relationen zusammen, so dass Realwelt ausreichend gut dargestellt ist, d.h. Datenbank korrekt ist, Manipulationen mit den Daten möglich sind (bei Aufrechterhaltung dieser Korrektheit). 2

4.1.1 Ziele/Probleme beim Aufbau relationaler Datenbanken (2/4) In Kapitel 1 wurden verschiedene Probleme gezeigt, die entstehen können bei der Zusammenfassung von Attributen zu einer Relation (vgl. 1.4.1) insertion / deletion / update anomaly Redundanz / unvollständige Tupel Zerlegung einer Relation in mehrere Relationen (vgl. 1.5) evtl. Informationsverlust Relationentheorie ermöglicht eine systematische Vorgehensweise zur Lösung dieser Probleme. Data Design: Bildung korrekter Relationenschemata entsprechend den Regeln der Relationentheorie. 3

4.1.1 Ziele/Probleme beim Aufbau relationaler Datenbanken (3/4) Beispiel 4-2: Lieferbeziehung Projekte (P) - Bauteile (B) - Lieferanten (L) Ergebnis der Systemanalyse: (a) jeder L - nur 1 B (b) 1 B - mehrere L möglich (c) 1 B für best. P - nur 1 L (d) 1P - mehrere L möglich a) Relation lief: (P, B, L?); Beispiel-Tabelle: lief P B L p 1 x p 2 y q 1 z r 2 y p 3 u mögliche Schlüssel: {P, B}; {P, L} Aktivitäten: lösche (q,1) was geschieht mit (1,z)? P n L 1 B 1 4

4.1.1 Ziele/Probleme beim Aufbau relationaler Datenbanken (4/4) b) Alternative: 3 neue Relationen lief-p:(p, L), lief-b:(b, L), bau:(p, B) lief-p P p p q r p p L x y z y u z lief-b B L 1 x 2 y 1 z 3 u hier möglich: einfüge(p,z) in lief-p bau P B p 1 p 2 q 1 r 2 p 3! danach: frühere Information (p, 1, x) (und nur x für p-1) verloren, da jetzt (p, 1, z) auch denkbar! d.h.: Eigenschaft (c) (Zusammenhang p-b-l) nicht mehr darstellbar: Informationsverlust. Die Zerlegung als solche ist verlustfrei, aber sie ist nicht fa-erhaltend (s.u.). Relationentheorie AIFB 24.05.2017 5

4.1.2 Schlussfolgerung (1/2) Vermeidung der dargestellten Probleme Anwendung und Einsatz der geeigneten Kriterien und Methoden, damit möglich: geeigneter Aufbau von Relationen, bzw. geeignete Zerlegung einer Relation in mehrere kleinere Relationen d.h. über 1NF hinausgehende weitere Normalisierung (zu 2NF / 3NF / BCNF / 4NF / ); grundlegende Konzepte dafür: funktionale volle transitive mehrwertige Abhängigkeiten zwischen Attributen Ausgangspunkt: (beispielweise) ER-Modell; darauf Anwendung der Relationentheorie und Normalisierungslehre 6

4.1.2 Schlussfolgerung (2/2) Ziele des systematischen Datenbankentwurfs bisher diskutierte Ziele: Vermeidung unerwünschter Abhängigkeiten bei insertion/deletion/update Gewährleistung der Korrektheit der Datenbank (zu jedem Zeitpunkt) Erhöhung der Aussagekraft des Modells für den Benutzer (Trennung der unterschiedlichen Konzepte der realen Welt) weitere Ziele: Verringerung der Notwendigkeit der Umstrukturierung von Relationen bei Einführung neuer Typen von Daten ( Verlängerung der Lebensdauer von Anwendungsprogrammen) Verringerung der Abhängigkeit der Relationen von Anfragehäufigkeiten und Anfragestrukturen u.ä. (letztere mit der Zeit veränderlich!) 7

4 Relationentheorie - Abhängigkeiten, Normalformen, Data Design 4.1 Motivation für den systematischen Entwurf von Relationen... 2 4.2 Semantische Integritätsbedingungen... 9 4.3 Funktionale Abhängigkeiten Definition und Eigenschaften... 17 4.4 Normalformen (2NF, 3NF, BCNF)... 53 4.5 Data Design Erzeugung von 3NF-Relationen... 69 8

4.2 Semantische Integritätsbedingungen (1 7) Eine semantische Integritätsbedingung (sib) σ über der Attributmenge A macht eine Aussage über Teilmengen X dom (A) X dom (A): entweder X erfüllt σ: σ(x) (wir sagen auch σ trifft zu / gilt für X ; i.z. σ(x)) oder nicht: σ(x) 9

4.2 Semantische Integritätsbedingungen (2 7) Relationsschema: r : (A Σ ); mögliche Werte zum Zeitpunkt t: r t ( val(r)) Σ = Menge von sib s über A in der Bedeutung: jedes r t erfüllt alle σ Σ d.h. σ (r t ) für alle σ Σ, kurz auch: Σ (r t ) Anmerkungen: Kurzschreibweise für r : (A ø) : r : (A) σ, σ spez. Integritätsbedingungen (allg. Aussagen!) σ(r) : ( X val(r): σ(x)) σ σ : (σ(r) σ (r)) ( aus σ folgt σ ) 10

4.2 Semantische Integritätsbedingungen (3 7) Beispiel zu : betrachtete Relation ang-pro. Es sei für Angestellte a: s(a) = Summe von Proz-Arbzeit des Angestellten a über alle Projekte p, an denen a mitarbeitet. sib σ 1 : s(a) <= 100 für alle a sib σ 2 : s(a) = 100 für alle a Dann gilt für ang-pro: σ 2 σ 1 d.h. X val(ang-pro): σ 2 (X) σ 1 (X) 11

4.2 Semantische Integritätsbedingungen (4 7) Wunsch bzw. Vorstellung: E:<A> wird vollständig modelliert durch r: (A Σ ). d.h. wir nehmen an: Jedes X dom (A) mit Σ (X) stellt einen gültigen Realweltzustand (d.h. E t :X ) dar! Zwei Mengen Σ, Σ sind äquivalent (Σ ~ Σ ), wenn sie - in obigem Sinn - dieselbe Realwelt modellieren (d.h. dieselben gültigen Realweltzustände X dom (A) ergeben). 12

4.2 Semantische Integritätsbedingungen (5 7) Wir beschränken uns im folgenden auf einfache sib s: Angabe von Schlüsseln für Relationen, bzw. allgemeiner Angabe sog. funktionaler Abhängigkeiten 13

4.2 Semantische Integritätsbedingungen (6 7) Beispiel für solche sib s: Personal Name a PersNr b StOrt c Ubereich d Abt e GebNr f Gehalt g Frits 17 Aholming Electro F&E 11 44.000 Frans 9133 Aholming Electro Contr 11 88.200 Lubbe 321 Aholming Electro Vertr 8 38.000 Einzian 17 München Mechanik F&E 3 53.000 Truhel 54 Karben Kfz F&E 2 43.500 Jöndhard 739 Karben Kfz F&E 2 45.300 Frits 17 Fürth Mechanik Contr 4 90.000 U= {a,b,c,d,e,f,g} bc = Schlüssel c: jeweils nur 1 d e: 1 f (pro c) 14

4.2 Semantische Integritätsbedingungen (7 7) Standort Standort a PLZ b Straße c Koord d Leiter e PersBudget f Aholming 94527 Bärengasse 22 48.47N: Beutel 560.000 12.59E München 81523 Coddweg 9 48.07N: Schmitz 900.000 11.38E Karben 61184 Nusshof 17 50.32N: Dieler 120.000 08.71E Fürth 90763 Maierring 109 49.23N: 10.61E Gabler 389.200 U = {a,b,c,d,e,f} Schlüssel : a (oder ac?) 15

4 Relationentheorie - Abhängigkeiten, Normalformen, Data Design 4.1 Motivation für den systematischen Entwurf von Relationen... 2 4.2 Semantische Integritätsbedingungen... 9 4.3 Funktionale Abhängigkeiten Definition und Eigenschaften... 17 4.3.1 Definition und Beispiele... 17 4.3.2 Eigenschaften funktionaler Abhängigkeiten... 29 4.3.3 Die abgeschlossene Hülle F +... 35 4.3.4 Armstrong-Regeln/Axiome... 40 4.3.5 Zur Berechnung von F +... 42 4.3.6 Schlüssel / Schlüsselattribute / Nichtschlüsselattribute... 48 4.4 Normalformen (2NF, 3NF, BCNF)... 53 4.5 Data Design Erzeugung von 3NF-Relationen... 69 16

4.3 Funktionale Abhängigkeiten Definition und Eigenschaften 4.3.1 Definition und Beispiele (1 12) U Attributmenge; A, B, U r: (U F) Relation über U Wir betrachten spezielle sib s über U Form: A B (A, B U) Bezeichnung: funktionale Abhängigkeit (fa) ( B ist von A funktional abhängig oder A determiniert B ) Bedeutung für X dom(u): A B (X) : x, y X: (x.a = y.a x.b = y.b). d.h.: Stimmen 2 Tupel aus X in allen A-Werten überein, so stimmen sie auch in allen B-Werten überein. 17

4.3.1 Definition und Beispiele (2 12) Beispiel für solche sib s (vgl. Bsp. aus 4.3): Personal Name a PersNr b StOrt c Ubereich d Abt e GebNr f Gehalt g Frits 17 Aholming Electro F&E 11 44.000 Frans 9133 Aholming Electro Contr 11 88.200 Lubbe 321 Aholming Electro Vertr 8 38.000 Einzian 17 München Mechanik F&E 3 53.000 Truhel 54 Karben Kfz F&E 2 43.500 Jöndhard 739 Karben Kfz F&E 2 45.300 Frits 17 Fürth Mechanik Contr 4 90.000 U= {a,b,c,d,e,f,g} Andere Schreibweise: Es gilt auch (z.b): bc = Schlüssel bc U, b U, c U a a c: jeweils nur 1 d e: 1 f (pro c) c d ec f ac ac abc a 18

4.3.1 Definition und Beispiele (3 12) Standort Standort a PLZ b Straße c Koord d Leiter e PersBudget f Aholming 94527 Bärengasse 22 48.47N: 12.59E München 81523 Coddweg 9 48.07N: 11.38E Karben 61184 Nusshof 17 50.32N: 08.71E Fürth 90763 Maierring 109 49.23N: U = {a,b,c,d,e,f} Schlüssel : a (oder ac?) a U 10.61E ac U, a U, c U Beutel 560.000 Schmitz 900.000 Dieler 120.000 Gabler 389.200 19

4.3.1 Definition und Beispiele (4 12) Bezeichnung: Φ (U) ::= { A B A, B U } Beispiel: d.h.: U = {a,b}; Teilmengen:, {a}, {b}, {ab}, (wir schreiben:, a, b, ab) Φ (U) = {, a, b, ab, a, a a, a b, a ab, b, b a, b b, b ab, ab, ab a, ab b, ab ab} Ist f Φ (U), so ist f eine fa über U und hat die Form A B ( A, B geeignet U) (d.h. f = A B). 20

4.3.1 Definition und Beispiele (5 12) Betrachte r : (U A B); dann: A B (r) Wir sagen: B ist funktional abhängig von A (in r) A determiniert B (in r) A ist Determinante (von B) (in r) A bestimmt B (in r) A-Wert impliziert B-Wert : gilt zu jedem Zeitpunkt bedeutet nur dass, nicht wie! Wir schreiben: A B(r), falls nicht A B(r) A B(r): Es kann r t = X geben mit A B(X)! 21

4.3.1 Definition und Beispiele (6 12) Beispiel 4-3: Datensammlung über Angestellte (u. ihre Projekte) : Relation angest Werte/ Eigenschaften Personenspezifische Attribute: Angestelltennummer (ANr), Name, Beruf, Wohnort (W-Ort), Gehalt Zugehörige Abteilung: Abteilungsnummer (Abt#), Abteilungsleiter (AbtL) Arbeitsplatz: Gebäude (Geb#), zugehör. Hausmeister (HM) 22

4.3.1 Definition und Beispiele (7 12) Beispiel 4-3 (Forts.): Regelungen im Unternehmen: (i) Abteilungen sind immer geschlossen in einem Gebäude untergebracht. (ii) Jedes Gebäude hat (nur) einen Hausmeister. Projekte, an denen Angest. mitarbeitet: Projektnummer (PNr), Projektname (PName), entsprechende prozentuale Arbeitszeit (%), (projektbezogene) Telefonnummer (TelNr) 23

4.3.1 Definition und Beispiele (8 12) Beispiel 4-3 (Forts.): Konzeptuelles Modell: Angest <Ausreichend? z.b.: Abt? Gebäude?> Σ: { ANr Name Beruf Abt# W-Ort Gehalt Abt# AbtL Geb# Geb# HM PNr PName ANr, PNr % TelNr } n % m TelNr Projekt angest: ( ANr, Name, Beruf, W-Ort, Gehalt, Abt#, AbtL, Geb#, HM, PNr, PName, %, TelNr Σ) 24

4.3.1 Definition und Beispiele (9 12) Beispiel 4-4 (siehe Beispiel 4-2): LIEF: (P, B, L PB L, L B) P n 1 B Allgemein: PS beliebiges Attribut (jede Relation) L 1 25

4.3.1 Definition und Beispiele (10 12) wichtige Anmerkung: in r: (U F) gilt: Zwischen 2 Attributmengen A, B U kann es nur eine fa A B geben! gewisser Unterschied zu (1:n)-Beziehungen zwischen Entity-Typen im E-R-Modell; gewisse Schwierigkeiten, wenn dieselben Attributnamen in unterschiedlichen Relationen mit unterschiedlicher Bedeutung vorkommen (vgl. das folgende Beispiel) 26

4.3.1 Definition und Beispiele (11 12) Beispiel: Kunde: K#, Name, Anschrift,... : K# Anschrift? Kunde F : Firmenanschrift L : Lieferanschrift F 1 1 L Behelf für Relation Kunde: Verwendung der Rollennamen F-Anschrift, L-Anschrift. 1 1 Anschrift 27

4.3.1 Definition und Beispiele (12 12) Darstellung von (kleinen) Mengen von fa s im sog. Abhängigkeitsgraphen. Beispiel 4-5: a, b, c, d, e, f, g, h, i, j seien Attribute F={a b, cde f, g hij, j a} Φ (a, b, c, d, e, f, g, h, i, j) g lief:(pbl PB L, L B) Schlüssel: PB,PL; NSA: h i j a b c d e P B f L 28

4.3.2 Eigenschaften funktionaler Abhängigkeiten (1 6) Lemma 4.1: (Regeln für bzw. (r) ) Vor.: r: (U F), F Φ(U); A, B, C, D U Dann gelten die folgenden Eigenschaften (1) B A A B (r) (Reflexivität/Projektivität) bzw. B A A B ( insb. gilt immer: A A (r)) (2) A B AC BC (Erweiterungsregel) (3) A B, B C A C (Transitivität) (4) A B, A C A BC (Vereinigungsregel) (5) A B, BC D AC D (Pseudotransitivität) (6) A B, C B A C (Zerlegungsregel) Anderer Beweis von Eigenschaften (4)-(6) 29

4.3.3 Die abgeschlossene Hülle F + (1 5) r: (U F), F Φ(U): mit F gelten in r weitere fa s ( automatisch )! Φ(U) F gilt alles in r: fa-menge F + kann r auch als r: (U F ) aufgefasst werden? (F ~ F gemäss Lemma 4.1?) Frage: Wann sind zwei Mengen von fa s äquivalent? Gdw. F + = F +! F 35

4.3.3 Die abgeschlossene Hülle F + (2 5) Definition: Zu r: (U F), F Φ(U) ist F + ::= Menge aller fa s, die mit F in r gelten, die abgeschlossene Hülle von F. andere/formale Definitionsmöglichkeiten (bzw. Umformulierungen): F + = {f Φ(U) X dom(u): F(X) f(x)} dafür auch: F f; f wird von F erzeugt = {A B A, B U, A B (r)} 36

4.3.3 Die abgeschlossene Hülle F + (3 5) Triviale funktionale Abhängigkeit: f Φ(U) ist triviale fa : f gilt immer / in jeder Relation, d.h. f + (von erzeugt) + = {A B B A U} Einfache funktionale Abhängigkeit: f Φ (U) heißt einfach" ( einfache fa ) : f = A b mit b U (d.h. b ist Attribut) Äquivalenz von fa-mengen: F, G Φ(U) F, G sind äquivalent (F ~ G) : F + = G + sei F ~ G; dann sagen wir auch G ist eine Überdeckung (covering) von F, oder G überdeckt F 37

4.3.3 Die abgeschlossene Hülle F + (4 5) Minimale Überdeckung: F, G Φ(U) und G ist eine Überdeckung von F G ist eine minimale Überdeckung von F : (1) Alle funktionalen Abhängigkeiten in G sind einfach. (2) Keine funktionale Abhängigkeit in G ist redundant. Dabei ist g G genau dann redundant, wenn g (G\ {g}) +. (3) Kein Attribut auf der linken Seite einer fa in G ist redundant. Sei g = (aa B) G. a ist genau dann redundant, wenn (A B) G +. 38

4.3.3 Die abgeschlossene Hülle F + (5 5) Problem: Bestimmung der/einer minimalen Überdeckung ersetze nicht einfache fa s durch entsprechende einfache fa s (Lemma 4.2) eliminiere redundante fa s eliminiere redundante Attribute aus den linken Seiten der fa s 39

4.3.4 Armstrong-Regeln/Axiome (1 2) Man betrachte Lemma 4.1 dort: Regeln zur Herleitung weiterer gültiger fa s aus einer Menge vorgegebener fa s (F) Armstrong hat gezeigt, dass die Regeln (1), (2), (3) aus Lemma 4.1 ausreichen, um durch ihre Anwendung alle f F + zu erhalten, und dass aber auch keine weggelassen werden kann! ( Armstrong-Regeln ; dieselbe Eigenschaft haben auch: Regelmengen (1), (3), (4) oder (1), (2), (5)) 40

4.3.4 Armstrong-Regeln/Axiome (2 2) Bezüglich der Aufgabenstellung zu einer gegebenen Menge F von fa's deren abgeschlossene Hülle F + zu bestimmen, sind die Armstrong-Regeln korrekt (sound) und vollständig (complete). Korrekt: Es kann dabei kein f F + herauskommen. Vollständig: Jedes f F + kann tatsächlich in endlichen vielen Schritten gefunden werden. 41

4.3.5 Zur Berechnung von F + (1 6) Vor.: Relation r: (U F); U Attributmenge, F Φ(U). Definition: Für A U ist A + die Menge aller von A funktional abhängigen Attribute: A + ::= {b U A b (r)}. Damit gilt folgendes Lemma 4.3: Vor. wie oben; A, B U. (1) A B F + B A + (2) F + = {A B A U, B A + } Beweis: klar 42

4.3.5 Zur Berechnung von F + (3 6) Beispiel 4-6: r: (a b c d e f g F) F: 1. a b c 2. a e g 3. a g f 4. b d f 5. b g c 6. c a d 7. e a 8. g e Andere Fragen: Bsp.-Rechnungen (ab) + = abcdf (a) + = abcdf c + g + = cadbf = geabcdf Beweis (nächste Folie) f acd F + berechne f + f + = f - e bcg F + berechne e + e + = eabcgfd weiter 73 44

4.3.5 Zur Berechnung von F + (4 6) Beweis : ab ab wg.(1) (aus Lemma 4.1) fa1: a bc (2) Erweiterungsregel mit ab ab abc ab abc (3) Transitivität fa6: c ad (2) mit abc abc abcd (3) ab abcd fa4: bd f (2) abcd abcdf ab abcdf (3) fa 2, 3, 5, 7, 8 bringen nicht mehr dazu: (ab) + = abcdf s.71 45

4.3.5 Zur Berechnung von F + (5 6) Algorithmus APLUS zur Berechnung von A + begin A+ := A; //A+ wird sukzessive aufgebaut F := F; //F enthält noch nicht abgehakte" fa s repeat A := A+; // A wegen Prüfung, ob sich A+ // noch verändert f = X Y F do if X A+ then A+ := A+ Y // d.h. ergänze A+ F := F -f // hake f ab endif end until A+= A ; // A+ ist jetzt vollständig aufgebaut end APLUS 46

4.3.5 Zur Berechnung von F + (6 6) Beispiel 4-7: r: (a b c d e f g F) aus Beispiel 4-6 F = { a bc, ae g, ag f, bd f, bg c, c ad, e a, g e} Eine genauere Analyse ergibt: a b f e d c g Ergebnis: F = angekreuzte fa s, F + = F + F, in vereinfachter zweite erste Analyse Form Analyse 1 X a b notwendig 2 X a c notwendig 3 X ae g ersetzbar durch e g notwendig 4 ag f ersetzbar durch g f überflüssig 5 X bd f notwendig 6 bg c ersetzbar durch g c überflüssig 7 X c a notwendig 8 X c d notwendig 9 X e a notwendig 10X g e notwendig 47

4.3.6 Schlüssel / Schlüsselattribute / Nichtschlüsselattribute (1 4) Bestimmung aller Schlüssel Vor.: r: ( U F), F Φ(U) Definition: (Wiederholung) K U ist Schlüssel für r : (1) K ist identifizierend: K U(r), d.h. K U F + (K + = U) (2) K ist minimal mit (1) : A K A U(r), d.h. A U F+ K + = U (A K A + U) 48

4.3.6 Schlüssel / Schlüsselattribute / Nichtschlüsselattribute (2 4) Algorithmus zur Bestimmung aller Schlüssel von r: bestimme alle A + gemäß Abschnitt 4.3.5 wähle alle minimalen K mit K + = U aus. Beispiel 4-8: (1) r1: (abcde F1) F1 = {a b, ac d, c e, e c} a c b d e Schlüssel: NSA: ac; ae b,d 49

4.3.6 Schlüssel / Schlüsselattribute / Nichtschlüsselattribute (3 4) Beispiel 4-8 (Fort.): (2) r2: (abcde F2) F2 = {ab c, b de, bc a} a b d e c Schlüssel: NSA: ab, bc d,e 50

4.3.6 Schlüssel / Schlüsselattribute / Nichtschlüsselattribute (4 4) Beispiel 4-9: (Angestellten-Beispiel 4-3) Relation angest: (U F) U={ ANr, Name, Beruf, W-Ort, Gehalt, Abt#, AbtL, Geb#, HM, PNr, PName, %, TelNr} F={ANr Name Beruf Abt# W-Ort Gehalt; Abt# AbtL Geb#; Geb# HM; PNr Pname; ANr PNr % TelNr } ANr PNr Name Beruf W-Ort Gehalt Abt# % Tel PName AbtL Geb# Man beachte: alle Anomalien! Schlüssel: NSA: HM {ANr, PNr} alle anderen 51

4 Relationentheorie - Abhängigkeiten, Normalformen, Data Design 4.1 Motivation für den systematischen Entwurf von Relationen... 2 4.2 Semantische Integritätsbedingungen... 9 4.3 Funktionale Abhängigkeiten Definition und Eigenschaften... 17 4.4 Normalformen (2NF, 3NF, BCNF)... 53 4.4.1 Partielle und volle funktionale Abhängigkeit... 53 4.4.2 Zweite Normalform (2NF)... 55 4.4.3 Transitive (funktionale) Abhängigkeiten... 58 4.4.4 Dritte Normalform (3NF)... 61 4.4.5 Verschärfung der 3NF: BCNF Boyce-Codd-Normalform... 66 4.5 Data Design Erzeugung von 3NF-Relationen... 69 52

4.4 Normalformen (2NF, 3NF, BCNF) (1 2) 4.4.1 Partielle und volle funktionale Abhängigkeit Geg.: Definitionen: r: (U F ); A, B U nicht-triviale funktionale Abhängigkeit A B ( F + ), mit (B A) B ist voll funktional abhängig von A (in r), wenn gilt: (v1) A B F +, (v2) für alle A A: A B F + In Zeichen: A B B ist partiell von A (funktional) abhängig, wenn gilt: (p) es gibt A A: A B F + d.h. A A B 53

4.4.1 Partielle und volle funktionale Abhängigkeit (2 2) Beispiel 4-10: U= {a, b, c, d} F = { ab c, ab d, b d } a b c d ab c ab d, aber ab d: ab b d 54

4.4.2 Zweite Normalform (2NF) (1 3) r: (U F), F Φ(U); A, B,, K U; a, b, U Eine Relation ist in der Ersten Normalform (1NF), wenn die Attributwerte atomar sind. Definition: Eine 1NF-Relation r ist in der Zweiten Normalform (2NF), wenn jedes Nichtschlüsselattribut von jedem Schlüssel voll funktional abhängig ist; d.h.: r in 2NF : NSA a Schl. K: K a (r) r ist nicht in der 2NF, wenn (irgend)ein NSA von (irgend)einem Schlüssel partiell abhängig ist; d.h.: r nicht in 2NF NSA a Schl. K: (K a) NSA a Schl. K: ( A, A K: A a) 55

4.4.2 Zweite Normalform (2NF) (2 3) Beispiel 4-11: (1) r: (U F); U = {a,b,c,d}, F= {ab c, b d } a c b (2) r 1 : (U F); U = {a,b,c,d,e} F = {a b, ac d, c e, e c} Schl.: a b NSA: c d d e Schl.: ab NSA: c,d nicht in 2NF, weil d partiell vom Schlüssel ab abhängig. ac; ae b,d nicht in 2NF (siehe Beispiel 4-8 (1)), nur d ist voll funktional vom Schlüssel ac abhängig Allg.: Falls: A b mit b NSA, A Schlüssel K, dann: nicht 2NF. 56

4.4.2 Zweite Normalform (2NF) (3 3) Beispiel 4-12:(Angestellten-Beispiel 4-3) Relation angest: (U F) U={ ANr, Name, Beruf, W-Ort, Gehalt, Abt#, AbtL, Geb#, HM, PNr, PName, %, TelNr} F={ANr Name Beruf Abt# W-Ort Gehalt; Abt# AbtL Geb#; Geb# HM; PNr Pname; ANr PNr % TelNr } ANr PNr Name Beruf W-Ort Gehalt Abt# % Tel PName r 3 r 2 AbtL Geb# HM Abhilfe 1: Zerlegung Relation angest: (U F) in 3 Relationen r 1,r 2,r 3 (s.o.). Ergebnis: r 1,r 2,r 3 in 2NF; trotzdem: alle Anomalien (in r 1 ), Grund? Schlüssel: {ANr, PNr} NSA: alle anderen Nicht in 2 NF / alle Anomalien r 1 57

4.4.3 Transitive (funktionale) Abhängigkeiten (1 3) Geg.: r: (U F); A, B U; c U Das Attribut c ist transitiv abhängig von A, wenn es ein B U gibt, so dass folgende Bedingungen erfüllt sind: (t1) A B c (t2) B A (t3) c AB A B c c AB verhindert, daß A = B bzw. A äquivalent B verhindert, daß c trivialerweise (Reflexivität) von A oder B abhängt. wir schreiben: A c c transitiv funktional abhängig von A 58

4.4.3 Transitive (funktionale) Abhängigkeiten (2 3) Voraussetzungen wie oben: r:(u,f),... Bezeichnung: Wir nennen c direkt (funktional) abhängig von A, wenn (d1) c funktional, aber (d2) nicht transitiv funktional abhängig ist von A; d.h.: (d1) A c (r) (d2) A B c (r) (B A (r) oder c AB) Wir schreiben: A c (r) Folgerung / Lemma 4.4: Für jeden Schlüssel K in r und jedes Attribut c K gilt: K c (r) K c (r) 59

4.4.3 Transitive (funktionale) Abhängigkeiten (3 3) Beweis: Annahme: (K c (r)) Dann gibt es B mit: B K (somit K B (r)) und B c (r) Da K Schlüssel, gilt B K (r). Somit: K B c c BK (= K) d.h. aber K c (r), nicht K c (r). 60

4.4.4 Dritte Normalform (3NF) (1 5) Definition: Eine 1NF-Relation ist in der dritten Normalform (3NF), wenn kein Nichtschlüsselattribut von (irgend)einem Schlüssel transitiv abhängig ist; m.a.w.: wenn jedes NSA von jedem Schlüssel direkt abhängig ist; d.h.: r in 3NF : NSA a Schl. K: (K a (r)) Somit gilt entsprechend: NSA a Schl. K: K r nicht in 3NF NSA a Schl. K: K a (r) a (r) 61

4.4.4 Dritte Normalform (3NF) (2 5) Beispiel 4-13: s:(u F) U = {a, b, c, d, e}; F = {ab c, c d, b e} a b c e Bemerkung: Allgemein gilt: d Schlüssel: ab NSA: c,d,e ab c d, ab b e d und e sind transitiv Abh. vom Schlüssel nicht 3NF ab b e nicht 2NF r nicht in 2NF r nicht in 3NF bzw. r in 3NF r in 2NF (vgl. Lemma 4.4) 62

4.4.4 Dritte Normalform (3NF) (3 5) Beispiel 4-14:(Angestellten-Beispiel 4-3) Relation angest: (U F) (vgl. Beispiel 4-12) ANr PNr Name Beruf W-Ort Gehalt Abt# % Tel r 3 PName r 11 r 12 r 2 r 121 AbtL Geb# Abhilfe: Zerlegung r 1 in r 11, r 12 : r 122 HM r 2,r 3 : in 3NF. r 1 : in 2NF, nicht in 3 NF/ Anomalien Grund: (Schl.) ANr r 1 r 11 in 3 NF; r 12 in 2 NF, nicht in 3 NF / Anomalien! Grund: (Schl.) Abt# HM (NSA); Abhilfe: Zerlegung r 12 in r 121, r 122 : beide in 3 NF AbtL (NSA) 63

4.4.4 Dritte Normalform (3NF) (4 5) Ergebnis: Name r 11 ANr PNr Beruf W-Ort Gehalt Abt# % Tel PName angest: (U F) wird zerlegt in 5 Relationen: r 11, r 121, r 122, r 2, r 3 (alle sind in 3 NF)! r 3 r 2 AbtL Geb# r 121 HM r 122 64

4.4.4 Dritte Normalform (3NF) (5 5) Beispiel 4-15: ( Lieferbeziehung ): Projekte (P) Bauteile (B) Lieferanten (L) lief: LIEF(PBL PB L, L B) P L B Schl. PB L B; B PBL aber Schl. PL L B; B PL Schlüssel: PB; PL NSA: 2NF, 3NF B kein NSA Trotzdem (obwohl 3NF): Anomalien! 65

4.4.5 Verschärfung der 3NF: BCNF Boyce-Codd-Normalform (1 2) r in 3NF NSA a Schl. K: K a (r) Definition: Eine einfache fa A b ( F + ) heißt elementar : fa ist nicht-trivial (d.h. b A) und voll funktional abhängig (A b) Umformulierung mittels elementarer fa s : r in 3NF Für jede elementare fa A b gilt: entw. A ist Schlüssel oder b ist Schlüsselattribut 66

4.4.5 Verschärfung der 3NF: BCNF Boyce-Codd-Normalform (2 2) Wdh.: r in 3NF Für jede elementare fa A b gilt: entw. A ist Schlüssel oder b ist Schlüsselattribut r ist in BCNF (Boyce-Codd-Normalform) : Für jede elementare fa A b gilt: A ist Schlüssel. d.h. alle elementaren fa s gehen von Schlüsseln aus! Folgerung: r in BCNF r in 3NF (aber: Umkehrung gilt i. allg. nicht! (vgl. Relation lief)) 67

4 Relationentheorie - Abhängigkeiten, Normalformen, Data Design 4.1 Motivation für den systematischen Entwurf von Relationen... 2 4.2 Semantische Integritätsbedingungen... 9 4.3 Funktionale Abhängigkeiten Definition und Eigenschaften... 17 4.4 Normalformen (2NF, 3NF, BCNF)... 53 4.5 Data Design Erzeugung von 3NF-Relationen... 69 4.5.1 Problemstellung... 69 4.5.2 Zerlegung... 71 4.5.3 Test auf Verlustfreiheit (Verbundtreue)... 77 4.5.4 Algorithmen zur Bildung von 3NF-Relationsschemata... 91 68

4.5 Data Design Erzeugung von 3NF-Relationen (1 2) 4.5.1 Problemstellung (1) Geg.: Relation r: (U F) mit F Φ(U) mit gewissen Anomalie-Möglichkeiten ges.: Zerlegung von r in mehrere Relationen, die alle in 3NF (oder evtl. auch BCNF) sind. oder auch: (2) Geg.: Menge von Attributen U Menge von fa s F Φ(U) ges.: Zusammenfassung von Attributen zu Relationen in 3NF 69

4.5.1 Problemstellung (2 2) Lösung: Algorithmen zur Bildung von 3NF-Relationen: zu (1): Dekomposition - Zerlegung mit guten Eigenschaften: - Test auf Verlustfreiheit und fa-erhaltung - solange, bis Relationen in 3NF, verlustfrei und fa-erhaltend sind zu (2): a) man tut zunächst wieder so, als ob alles in r: (U F), dann weiter wie (1) b) Synthese: Zusammenfassen von Attributen und fa s unter Berücksichtigung der 3NF-Eigenschaft 70

4.5.2 Zerlegung (1 6) Kriterien zur Zerlegung von Relationsschemata 1. Die funktionalen Abhängigkeiten müssen erhalten bleiben ( fa-erhaltend ). 2. Die Zerlegung muß verlustfrei sein (d.h. beim Join dürfen keine unerwünschte Tupel entstehen). 71

4.5.2 Zerlegung (2 6) Definition: (Zerlegung, fa-erhaltend, verlustfrei) Geg: Relation r: (U F); Datenbank D:({r i : (A i F i ) i=1,, n} Ø) (1) D ist eine Zerlegung von r : A i = U und F i ~ π [Ai ] (F+ ) i Sei D eine Zerlegung von r: (2) D ist fa-erhaltend : ( F i+ ) + = F + i Anmerkung: wegen ( F i+ ) + = ( F i ) + gilt insbesondere: F i = F D fa-erhaltend i i (3) D ist verlustfrei (auch: verbundtreu ) : r.a 1 * r.a 2 *... * r.a n = r i Anmerkung: r.a i ist vom Typ (A i F i ) 72

4.5.2 Zerlegung (3 6) Beispiel 4-16: Beispiel für eine Zerlegung: betrachte: r: (abcd a b, b d, c d) (1) r 1 : (ac Ø); r 2 : (bcd b d, c d) Zerlegung: ja nicht fa-erhaltend: a b {b d, c d} + nicht verlustfrei: r a b c d r.ac a c r.bcd b c d 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 Und: 0100 r.ac r.bcd, r (ebenso 1000) 73

4.5.2 Zerlegung (4 6) Beispiel 4-16 (Fort.) betrachte: r: (abcd a b, b d, c d) (2) r 1 : (abd a b, b d); r 2 : (cd c d) Zerlegung: ja fa-erhaltend: ja nicht verlustfrei: kann man wieder durch ein Gegenbeispiel zeigen, ausgehend von r a b c d 0 0 0 0 1 1 1 0 74

4.5.2 Zerlegung (5 6) Beispiel 4-16 (Fort.) betrachte: r: (abcd a b, b d, c d) (3) r: (abcd a b, b d, c d) r 1 : (ab a b); r 2 : (acd a d, c d) Zerlegung: ja nicht fa-erhaltend: b d {a b, a d, c d} + Verlustfrei: ja. ac ist Schlüssel von r und somit auch von r 2. Daher kann beim Join nur das richtige ab-tupel dazukommen. 75

4.5.2 Zerlegung (6 6) Beispiel 4-16 (Fort.) betrachte: r: (abcd a b, b d, c d) (4) r 1 : (abd a b, b d) r 2 : (acd a d, c d) Zerlegung: ja fa-erhaltend: ja verlustfrei: siehe (3) Ergebnis: Es sind alle Kombinationen fa-erhaltend (ja nein) / verlustfrei (ja nein) möglich! 76

4.5.3 Test auf Verlustfreiheit (Verbundtreue) (1 14) (A) Zerlegung in 2 Relationen Satz von Delobel (für Zerlegung in 2 Relationen/ 2 Relationsschemata) Geg.: r: (U F), und D: ({ r 1 :(A 1 F 1 ), r 2 :(A 2 F 2 ) }) eine Zerlegung von r Wir setzen: A 1 A 2 = B, A 1 = AB, A 2 = BC, mit A B= A C = B C = Damit ist: U = ABC A1 A Dann gilt: U B D ist verlustfrei (B A F + oder B C F + ) A2 C 77

4.5.3 Test auf Verlustfreiheit (Verbundtreue) (2 14) Beispiel 4-17: r: (U F) U = {ANR, NAME, PRO#, ABT#} F = {ANR NAME, ANR ABT#} (1) Zerlegung: r 1, r 2 r 1 : A 1 = {ANR, NAME, ABT#} F 1 = {ANR NAME, ABT#} r 2 : A 2 = {PRO#, ABT#} F 2 = {} Alle funktionalen Abhängigkeiten sind erhalten. Aber: Zerlegung ist nicht verbundtreu, denn: ABT# ANR NAME F + ABT# PRO# F + A={ANR,Name} B={ABT#} C={PRO#} 78

4.5.3 Test auf Verlustfreiheit (Verbundtreue) (3 14) Beispiel 4-17 (Fort.) (2) Zerlegung: r 3, r 4 r 3 : A 3 = {ANR, NAME, ABT#} r 4 : A 4 = {ANR, PRO#} Zerlegung ist verbundtreu wg. B A. B= ANR A= {NAME, ABT#} C= PRO# 79

4.5.3 Test auf Verlustfreiheit (Verbundtreue) (4 14) (B) Allg. Fall: Zerlegung in n Relationen (n beliebig n>=2) Dazu: Tableau-Algorithmus Erläuterung zunächst am Beispiel r: ( ABCDE A C, B C, C D, DE C, CE A ) r 1 : ( AD ) r 2 : ( AB ) r 3 : ( BE ) r 4 : ( CDE ) r 5 : ( AE ) 80

4.5.3 Tableau-Algorithmus (5 14) A B C D E a 1 b 12 b 13 a 4 b 15 a 1 a 2 b 23 b 24 b 25 A B C D E a 1 b 12 b 13 a 4 b 15 a 1 a 2 b 13 b 24 b 25 b 31 a 2 b 33 b 34 a 5 b 31 a 2 b 33 b 34 a 5 b 41 b 42 a 3 a 4 a 5 b 41 b 42 a 3 a 4 a 5 a 1 b 52 b 53 b 54 a 5 a 1 b 52 b 13 b 54 a 5 A C B C A B C D E A B C D E a 1 b 12 b 13 a 4 b 15 a 1 b 12 b 13 a 4 b 15 a 1 a 2 b 23 b 24 b 25 a 1 a 2 b 13 b 24 b 25 b 31 a 2 b 33 b 34 a 5 b 31 a 2 b 33 b 34 a 5 b 41 b 42 a 3 a 4 a 5 b 41 b 42 a 3 a 4 a 5 a 1 b 52 b 53 b 54 a 5 a 1 b 52 b 13 b 54 a 5 81

4.5.3 Tableau-Algorithmus (6 14) A B C D E A B C D E a 1 b 12 a 1 b 15 a 2 b 31 b 25 a 2 b 41 a 5 b 42 b 52 b 13 b 13 b 13 a 3 b 13 a 4 b 24 b 34 a 4 b 54 a 5 a 1 a 5 C D A B C D E a 1 b 12 a 1 b 15 a 2 b 31 b 25 a 2 b 41 a 5 b 42 a 1 a 5 b 52 b 13 b 13 b 13 a 3 b 13 a 4 b 24 b 34 a 4 b 54 a 5 a 1 b 12 a 1 b 15 a 2 b 31 b 25 a 2 b 41 a 5 b 42 a 1 a 5 b 52 b 13 b 13 b 13 a 3 b 13 a 4 a 4 a 4 a 4 a 4 a 5 DE C A B C D E a 1 b 12 a 2 a 2 b 41 a 5 b 42 a 1 a 5 b 52 b 13 a 1 b 15 b 13 b 31 b 25 b 13 a 3 b 13 a 4 a 4 a 4 a 4 a 4 a 5 82

4.5.3 Tableau-Algorithmus (7 14) A B C D E A B C D E a 1 b 12 a 1 b 15 a 2 b 31 b 25 a 2 b 41 a 5 b 42 a 1 a 5 b 52 b 13 b 13 a 3 a 3 a 3 a 4 a 4 a 4 a 4 a 4 a 5 CE A A B C D E a 1 b 12 a 1 b 15 a 2 b 31 b 25 a 2 b 41 a 5 b 42 a 1 a 5 b 52 b 13 b 13 a 3 a 3 a 3 a 4 a 4 a 4 a 4 a 4 a 5 a 1 b 12 a 2 a 2 a 1 a 5 b 42 a 1 a 5 b 52 b 13 a 1 b 15 b 13 a 1 b 25 a 3 a 3 a 3 a 4 a 4 a 4 a 4 a 4 a 5 83

4.5.3 Tableau-Algorithmus (8 14) A B C D E a 1 a 1 b 15 a 1 b 25 a 1 a 5 b 42 a 1 a 5 A a 1 b 12 a 2 a 2 b 52 B b 12 a 2 a 2 b 42 b 52 b 13 b 13 a 3 a 3 a 3 C a 3 a 3 a 3 a 3 a 3 a 4 a 4 a 4 a 4 a 4 A C B C a 4 a 4 a 4 a 4 a 4 a 5 a 1 b 15 a 1 b 25 a 1 a 5 a 1 a 5 D E a 5 84

4.5.3 Test auf Verlustfreiheit (Verbundtreu) (9 14) Beispiel 4-18: r:(u F) U={ s (*Student*), v Vorlesung, d Dozent[in], e Semester, i Institut, f Fakultät, k Sekretär[in], g Gebäude, h Hausmeister[in], ö Hörsaal} s v e d F={sve difk, ved ifk, d ifk, i fk, ö gh, g h} ö g h x i r.a i, x=x 1 x 2... x 5 ; Frage: ist x r? i f k F lässt sich vereinfachen zu: G={sve d, d i, i fk, ö g, g h} Zerlegung nach Augenmaß (3NF!) r i = r.a i A 1 : sved; A 2 : di; A 3 : ifk; A 4 : ög; A 5 : gh ; (i=1,2,...) 85

4.5.3 Test auf Verlustfreiheit (Verbundtreue) (10/14) Beispiel 4-18 (Forts.): r :(U F) U={s,v,d,e,i,f,k,g,h,ö} G={sve d, d i, i fk, ö g, g h} Zerlegung: A 1 : sved; A 2 : di; A 3 : ifk; A 4 : ög; A 5 : gh ; Zerleg. x r. A i Attrib. x=x 1.. x 5 svde: x 1 di: x 2 ifk: x 3 ög: x 4 gh: x 5 1 s 2 v 3 d 4 e a 1 a 2 a 3 a 4 5 i 6 f a 1 a 2 a 3 a 4 a 5 a 6 a 7 a 8 a 9 a 0 x r? ba 15 5 ba 16 6 ba 17 7 b 18 b 19 b 10 y 1 r b 21 b 22 a 3 b 24 a 5 ba 26 6 ab 727 b 28 b 29 b 20 y 2 r b 31 b 32 b 33 b 34 a 5 a 6 a 7 b 38 b 39 b 30 y 3 r b 41 b 42 b 43 b 44 b 45 b 46 b 47 a 8 ba 49 9 a 0 y 4 r b 51 b 52 b 53 b 54 b 55 b 56 b 57 a 8 a 9 b 50 y 5 r 7 k 8 g 9 h 10 ö 86

4.5.3 Test auf Verlustfreiheit (Verbundtreue) (11/14) Beispiel 4-18 (Forts.): r:(u F); F={sve difk, ved ifk, d ifk, i fk,ö gh, g h} s f v d i k e ö g h Zerlegung: A 1 : sved; A 2 : di; A 3 : ifk; A 4 : ög; A 5 : gh ; A 6 : Attrib. 1 2 3 4 5 6 7 8 sveö; 9 10 Zerleg. s v d e i f k g h ö x r. A i a 1 a 2 a 3 a 4 a 5 a 6 a 7 a 8 a 9 a 0 x r? x=x 1... x 5 x 6 svde: x 1 a 1 a 2 a 3 a 4 ba 15 5 ba 16 6 ba 17 7 b 18 b 19 b 10 y 1 r di: x 2 b 21 b 22 a 3 b 24 a 5 ba 26 6 ab 727 b 28 b 29 b 20 y 2 r ifk: x 3 b 31 b 32 b 33 b 34 a 5 a 6 a 7 b 38 b 39 b 30 y 3 r ög: x 4 gh: x 5 sveö x 6 b 41 b 42 b 43 b 44 b 45 b 46 b 47 a ba 49 9 a y 4 r b 51 b 52 b 53 b 54 b 55 b 56 b 57 8 a a b 0 50 y 5 r a 1 a 2 ab 363 a 4 b 65 b 66 b 67 b 8 68 b 9 69 a 0 y 6 r a 5 a 6 a 7 a 8 a 9 87

4.5.3 Test auf Verlustfreiheit (Verbundtreue) (12 14) Geg.: r: (U F); D: ({r i : (Á i F i ) i=1,, k} Ø) Zerlegung von r U = {u 1, u 2,, u n } = A 1 A 2 A k Frage: Zerlegung verlustfrei? (1) Konstruiere Matrix MAT (Tabelle / Tableau ) mit: k Zeilen (für Zerlegung A 1, A 2,, A k ) n Spalten (für Attribute u 1, u 2,, u n ); besetze die Matrix mit Anfangswerten: a j, falls u j A i MAT[i,j]= b ij, sonst (a j,b ij syntakt. Symbole) 88

4.5.3 Test auf Verlustfreiheit (Verbundtreue) (13 14) (2) Wiederhole: - Wähle ein X Y F; - suche die Zeilen von MAT, die in den X-Spalten übereinstimmen; - setze in diesen Zeilen die Y-Werte gleich bis: - dabei: bevorzuge a j (vor b ij ) d.h. ist eines der gleich zu setzenden Zeichen gleich a j, so wähle als Ergebnis a j - sich MAT nicht mehr verändert oder - in MAT eine Zeile der Form (a 1, a 2,, a n ) 89

4.5.3 Test auf Verlustfreiheit (Verbundtreue) (14 14) (3) Ergebnis: Zerlegung verlustfrei in MAT eine Zeile der Form (a 1, a 2,, a n ). 90