Datenbanken 3. Übung Aufgabe: Entwurf einer relationalen Datenbank für das Personalwesen Lösungsschritte: Die grundlegende Datenstruktur einer relationalen Datenbank sind einfache, nicht verschachtelte Tabellen (Relationen). Die Spalten der Tabelle bezeichnen die Attribute der Relationen, die Zeilen der Tabellen werden Tupel genannt. Für die Darstellung gelten allgemein die folgenden Regeln: - Alle Datensätze (Tabellenzeilen) sind gleich lang - Jeder Datensatz (Tupel) kommt nur ein einziges Mal in einer Tabelle vor, die Reihenfolge der Sätze (Tupel) ist beliebig. Jede Tabellenzeile beschreibt einen Datensatz. Die eindeutige Identifizierung eines Tupels erfolgt über den „Schlüssel“ - Der Wert eines Attributs kommt aus einem bestimmten Wertebereich (Domäne). Jede Tabellenspalte beschreibt eine bestimmte Eigenschaft (Attribut) des Datenobjekts. - Durch Kombination einzelner Spalten (Attribute) und Zeilen (Datensätze) können neue Tabellen (Relationen) gebildet werden. Die Darstellung der Daten in einer relationalen Datenbank folgt weiterhin speziellen Vorschriften, die Normalisieren genannt werden. Normalisieren bedeutet: Darstellung des logischen Schemas einer relationalen Datenbank in der Form einfacher, nicht geschachtelter Tabellen. Im wesentlichen heißt Normalisieren: Beseitigung der funktionalen Abhängigkeiten, die zwischen den einzelnen Attributen der Tabellen. 1) In der vorliegenden Zusammenfassung der Daten (vgl. 1. Übung) zum Personalwesen zeigt die 1. angegebene Tabelle in der Tabellenspalte QUALI eine Wiederholungsgruppe an. Diese Verschachtelung ist ohne Informationsverlust zu beseitigen. Außerdem ist die Ausübung des Berufs nicht ohne eine entsprechende Qualifikation möglich. Der eindeutige Schlüssel wird aus den Attributen ANG_ID und QUALI gebildet. ANG_ID A1 A1 A1 A2 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 NAME Fritz Fritz Fritz Tom Tom Werner Gerd Emil Uwe Eva Rita Ute Willi Erna Anton Josef Maria GEBJAHR 2.1.1950 2.1.1950 2.1.1950 2.3.1951 2.3.1951 23.4.1948 3.11.1950 2.3.1960 3.4.1952 17.11.1955 02.12.1957 08.09.1962 7.7.1956 13.10.1966 5.7.1948 2.8.1952 17.09.1964 ABT_ID OD OD OD KO KO OD VT PA RZ KO KO OD KO OD OD KO PA JOB_ID SY SY SY IN IN PR KA PR OP TA TA SY IN KA SY SY KA QUALI SY PR OP IN SY PR KA PR OP TA TA SY IN KA SY SY KA 2) Beseitigung der funktionalen Abhängigkeiten der vorliegenden Tabelle. Alle Attribute mit Ausnahme von QUALI sind von einem Schlüsselteil (ANG_ID) funktional determiniert und sollten deshalb in eine eigenen Tabelle aufgenommen werden. Das führt mit den übrigen Tabellen der 1. Übung zu der folgenden relationalen Datenbank 1 Datenbanken ABTEILUNG ABT_ID BEZEICHNUNG KO Konstruktion OD Organisation und Datenverarbeitung PA Personalabteilung RZ Rechenzentrum VT Vertrieb ANGESTELLTE ANG_ID NAME A1 Fritz A2 Tom A3 Werner A4 Gerd A5 Emil A6 Uwe A7 Eva A8 Rita A9 Ute A10 Willi A11 Erna A12 Anton A13 Josef A14 Maria JOB JOB_ID KA TA SY PR OP GEBJAHR 2.1.1950 2.3.1951 23.4.1948 3.11.1950 2.3.1960 3.4.1952 17.11.1955 02.12.1957 08.09.1962 7.7.1956 13.10.1966 5.7.1948 2.8.1952 17.09.1964 TITEL Kaufm. Angestellter Techn. Angestellter Systemplaner Programmierer Operateur ABT_ID OD KO OD VT PA RZ KO KO OD KO OD OD KO PA JOB_ID SY IN PR KA PR OP TA TA SY IN KA SY SY KA GEHALT 3000,00 DM 3000,00 DM 6000,00 DM 5000,00 DM 3500,00 DM QUALIFIKATION ANG_ID JOB_ID A1 SY A1 PR A1 OP A2 IN A2 SY A3 PR A4 KA A5 PR A6 OP A7 TA A8 IN A9 SY A10 IN A11 KA A12 SY A13 IN A14 KA 2