Datenbanken

Werbung
Datenbanken
Wozu eine Datenbank?
Kernaufgaben von
Datenbanksystemen sind
die Speicherung und
Verwaltung von großen
Datenbeständen.
Beispiel einer Datenbank
S-Nr
Vor- Nachname name
Geschlecht Straße
PLZ
Ort
Klasse
AG
1
Peter
Lustig
m
Löwenzahn
weg 3
823456
Gartensta 10
dt
Schach
2
Peter
Lustig
m
Löwenzahn
weg 3
823456
Gartensta 10
dt
Astrono
mie
3
Anja
Meyer
w
Meisenweg
1
823457
Nesthaus
en
8
Badmint
on
4
Anja
Meyer
w
Meisenweg
1
823457
Nesthaus
en
8
Theater
Probleme
• Falls ein Schüler mehrere AGs besucht,
müssen mehrere Datensätze angelegt werden
mit vollständiger Adresse
• Ein Schüler besitzt mehrere Schülernummern
• Werden mehrere Datensätze für einen Schüler
angelegt, können Inkonsistenzen entstehen,
falls die Adresse einmal falsch eingegeben
wird
Probleme
• Beim Ändern von Schülerdaten (z.B. Adresse)
müssen alle Datensätze berücksichtigt werden. Wird
einer übersehen, kommt es zu einer
Änderungsanomalie .
• Beim Löschen von Schülern kann es ebenfalls zu
Inkonsistenzen kommen, man spricht von einer
Löschanomalie.
• Soll eine neue AG angelegt werden, kann dies nur in
Verbindung mit einem Schüler geschehen
(Einfügeanomalie).
Vermeidung von Anomalien durch
Umstrukturierung der Daten; Regeln
1. Folgende Daten sollen gespeichert werden:
Schülernummer, Vorname, Nachname,
Geschlecht, Straße, PLZ, Ort, Klasse, AG
2. Ein Schüler kann verschiedene AGs besuchen.
Eine AG kann von mehreren Schülern
besucht werden.
3. Für einen Schüler wird eine Adresse erfasst.
In einem Ort können mehrere Schüler
wohnen.
Dateisysteme
Eigenschaften von Dateisystemen
• Daten werden in unterschiedlichen Dateien
gespeichert
• Jede Anwendung greift auf eigene Dateien zu
• Dateien sind unabhängig und können somit
nicht verknüpft werden
Probleme bei Dateisystemen (1)
• Redundanz
– Daten werden mehrfach in unterschiedlichen Dateien
gespeichert. Das verschwendet Speicher.
• Inkonsistenz
– Werden Daten in einer Datei geändert, so müssen
entsprechende Daten in anderen Dateien geändert
werden. Das kann zu Fehlern führen.
• Daten-Programm-Abhängigkeit
– Wird die Datenstruktur geändert, müssen auch die
Programme geändert werden.
Probleme bei Dateisystemen (2)
• Inflexibilität
– Neue Anwendungen, die bereits vorhandene Daten nutzen,
können nur schwer realisiert werden
– Schwierig wird es auch, wenn Daten aus mehreren Dateien
benötigt werden.
• Mehrbenutzerbetrieb, Synchronisation
– Bei gleichzeitigem Zugriff besteht die Gefahr des gegenseitigen
Überschreibens von Daten
• Datensicht
– Unterschiedliche Anwender benötigen unterschiedliche
Ansichten der Daten
• Datensicherheit
– Nicht jeder darf alle Daten sehen! Datenschutz!
Ziele der Datenorganisation
• Datenunabhängigkeit
– Unabhängigkeit vom Anwendungsprogramm
– Unabhängigkeit der logischen von der physischen Datenorganisation
– Physische Datenunabhängigkeit
•
•
•
•
•
•
•
•
Redundanzfreiheit
Datenintegrität
Benutzerfreundlichkeit
Mehrfachzugriff, Synchronisation
Datenschutz
Datensicherheit
Flexibilität
Effizienz
Was ist ein Datenbanksystem?
Definition: Datenbanksystem
Unter einem Datenbanksystem stellt man sich ein System vor,
das es erlaubt große Datenmengen abzuspeichern, nach
beliebigen Kriterien Daten wieder zu finden und Daten zu
verändern.
Beispielsweise möchte man, wenn man die Daten über alle Schüler einer
Schule abgespeichert hat, die Anfrage stellen können: "Liste alle Schüler auf,
die nicht in Augsburg wohnen und 18 Jahre alt sind."
Aufbau und Konzept eines
Datenbanksystems
Datenbanksysteme werden im Folgenden als ein
Organisationsmittel betrachtet, das folgende Aufgaben in
einer Organisation abdeckt:
• Die Daten der Organisation sind für alle Benutzer in
einer gemeinsamen Datenbasis (der Datenbank)
abgespeichert.
• Viele Benutzer mit unterschiedlichen Anforderungen
arbeiten mit diesen Daten. Das Datenbanksystem
übernimmt den Zugriff und die Darstellung der
gewünschten Daten.
• Das Datenbanksystem kontrolliert den Zugang zu den
Daten, es zeigt Daten nur berechtigten Benutzern.
Aufbau und Konzept eines
Datenbanksystems
Was ist eine Datenbank?
Definition: Datenbank
Eine Datenbank ist eine integrierte Ansammlung
von Daten, die Benutzern verschiedener
Anwendungen als gemeinsame Basis für die
Pflege und Gewinnung von Informationen dient.
Aufbau einer Datenbank
• Die Abspeicherung der Daten geschieht mit Hilfe
von Tabellen.
• Dabei entspricht eine Zeile der Tabelle einem
Datensatz und eine Spalte der Tabelle einem
Datenfeld.
• Die Datensätze werden von verschiedenen
Benutzern nach unterschiedlichen Kriterien
sortiert.
• Die Reihenfolge der Eingabe der Datensätze keine
Rolle.
Datenbank
Eine Datenbank bietet die Möglichkeit des
gleichzeitigen Zugriffs auf mehrere Dateien bzw.
Tabellen (Vielfachzugriff), um Daten aus den
unterschiedlichen Dateien (Tabellen) miteinander
zu verknüpfen (Flexibilität), und auf diese Weise
zusätzliche Informationen aus den bereits
bestehenden Dateien (Tabellen) zu gewinnen. Hinzu
kommt die Möglichkeit der komfortablen
Beantwortung von Anfragen des Benutzers mit Hilfe
einer integrierten Abfragesprache.
Möglichkeiten eines
Datenbanksystems
Der Zugriff auf die Datenbank erfolgt ausschließlich über den "Filter"
des Datenbank-Management-Systems (z. B. dBase, Oracle, Paradox,
MS-Access).
Ein Datenbanksystem ermöglicht dem Benutzer, über ein DBMS
• die Struktur einer Datenbasis aufzubauen (Datendefinition),
• Daten zu pflegen: Datensätze eingeben, ändern und löschen
(Datenmanipulation),
• Informationen aus der Datenbasis zu gewinnen (Datenabfrage),
• Zugangs- und Zugriffsrechte zu verwalten (Datenkontrolle) und
• Daten zu sichern, zu exportieren und zu importieren
(Datenübertragung).
Datenbankebenen im ANSIArchitekturmodell
Datenbankebenen im ANSIArchitekturmodell
Die Beschreibung einer Datenbank erfolgt nach
diesem Konzept auf drei verschiedenen Ebenen,
die jeweils durch eine andere Sichtweise geprägt
sind:
• Externe Ebene
• Konzeptionelle Ebene
• Interne Ebene
Konzeptionelle Ebene
• Der Kern dieser Architektur ist die konzeptionelle Ebene (auch
konzeptuelle Ebene). Hier wird der Teil der Realität, den das
Datenbanksystem (DBS) nachbilden soll, in seiner logischen
Gesamtheit beschrieben. In dieser Ebene werden alle Daten und
ihre Beziehungen zueinander modelliert. Darüber hinaus ist sie
unabhängig von den hardwaremäßigen Gegebenheiten und den
Anforderungen einzelner Benutzer.
• Beispiel: Auf der konzeptionellen Ebene ist für ein
Gehaltsabrechnungsprogramm z.B. festzulegen, dass es die
Datensätze "Mitarbeiter" gibt, die die Personalnummer, den Namen,
das Gehalt usw. enthalten. Ferner ist festzuhalten, in welcher
Beziehung einzelne Mitarbeiter zueinander stehen (z.B.
Abteilungsleiter) oder in welchem Bereich der Firma ein Mitarbeiter
beschäftigt ist (z.B. Materiallager).
Interne Ebene
• Über bzw. unter der konzeptionellen Ebene liegen die interne und
die externe Ebene. In der internen Ebene wird die Organisation der
Daten und ihrer Zugriffspfade auf den physischen Speicher
festgelegt. In dieser Ebene werden Fragen geklärt, wie: Welche
Daten werden zu welchen Einheiten (Datensätzen)
zusammengefasst und wie schnell wird darauf zugegriffen?
• Beispiel: Auf der internen Ebene ist für das
Gehaltsabrechnungsbeispiel zu definieren, in welcher Reihenfolge
die Felder "Personalnummer", "Name", "Gehalt" usw. des
Datensatzes "Mitarbeiter" gespeichert werden, welche Länge sie
haben und wie die Daten codiert werden. Des Weiteren sind hier
Angaben über die Dateiorganisation und die Zugriffsmechanismen
zu den Daten (z.B. Hash-Verfahren, Binärbaum) notwendig.
Externe Ebene
• Die externe Ebene legt fest, welche Daten bestimmte
Benutzer bzw. Programme sehen und bearbeiten
können. Dabei kann es zu jedem
Anwendungsprogramm ein eigenes externes Schema
geben, welches die für das Anwendungsprogramm
wichtigen Daten der Datenbank in der Weise definiert,
wie sie das Programm als Eingabe erwartet.
• Beispiel: Auf der externen Ebene ist für das
Gehaltsabrechnungsbeispiel z.B. zu definieren, dass für
die Statistiker von den Personaldaten nur das Gehalt
(die Statistik soll anonym bleiben) und die Abteilung
benötigt werden.
Datenbankmodelle
•
•
•
•
•
Hierarchisches Datenbankmodell
Netzwerkdatenbankmodell
Relationales Datenbankmodell
Objektorientiertes Datenbankmodell
Objektrelationales Datanbankmodell
Relationales Datenbankmodell
• Das relationale Datenbankmodell wurde von Edgar F. Codd in den
1960ern/70ern entwickelt und ist ein mengenorientiertes
Datenbankmodell. Die Firma Oracle veröffentlichte wenige Jahre später
die erste funktionierende Datenbank, die nach diesem System
funktionierte.
• Das Relationale Datenbankmodell stellt man sich allgemein als 2dimensionale Tabelle vor. Es wird über Schlüssel definiert
(Primärschlüssel) und verknüpft (Fremdschlüssel). Die Darstellung erfolgt
sehr häufig im Entity-Relationship-Modell nach Chen.
• Edgar F. Codd legte seinerzeit 12 Regeln fest, denen eine relationale
Datenbank entsprechen sollte. (siehe Normalisierung)
• Das relationale Datenbankmodell ist heute das am häufigsten verwendete
Modell überhaupt, da es sich sehr einfach darstellen lässt. Der Nachteil
dieses Modells liegt allerdings darin, dass unter Umständen durch eine
große Anzahl an Tabellen Informationen weit verstreut sein können.
Die goldenen Regeln der
Relationalität
Regel 1 (Darstellung von Information)
Alle Informationen in relationalen Datenbanken müssen logisch in
Tabellen dargestellt sein, insbesondere
– Daten
– Definitionen von Tabellen und Attributen
– Integritätsbedingungen und die Aktion bei deren Verletzung
(siehe Regel 10)
– Sicherheitsinformationen (z.B. Zugangsberechtigungen)
Regel 2 (Zugriff auf Daten)
Jeder Wert einer relationalen Datenbank muss logisch durch eine
Kombination von Tabellenname, Primärschlüssel und Attributname
(Spaltenname) auffindbar sein. Dies bedeutet, dass in einer Tabelle
an jedem Schnittpunkt einer Zeile mit einer Spalte nur ein Wert
stehen darf.
Die goldenen Regeln der
Relationalität
Regel 3 (Systematische Behandlung von Nullwerten)
Nullwerte stellen in Attributen, die nicht Teil eines Primärschlüssels
sind, eine fehlende Information dar und werden durchgängig
gleich, insbesondere unabhängig vom Datentyp des Attributes,
behandelt. (Man kann also nicht in numerischen Feldern bei
fehlenden Daten das Feld leerlassen, und bei Textfeldern das
Zeichen -- einfügen. Fehlende Informationen werden heute meist
mit NULL bezeichnet.)
Regel 4 (Struktur einer Datenbank)
Die Datenbankstruktur wird in derselben logischen Struktur wie die
Daten gespeichert, also in Tabellen. Dazu muss die Struktur aller
Tabellen, die zu einer Datenbank gehören, in einer Tabelle (dem
Katalog) zugänglich sein. Diese Forderung bedingt, daß sich eine
Änderung im Katalog automatisch in einer geänderten
Datenbankstruktur auswirkt!
Die goldenen Regeln der
Relationalität
Regel 5 (Die Abfragesprache)
Ein relationales System enthält mindestens eine befehlsgesteuerte
Abfragesprache, die mindestens die folgenden Funktionen unterstützt:
– Datendefinition
– Definition von Views (logische Sichten der Datenbank, die der Benutzer
aus den Attributen der Basistabellen erstellt und mit den gewohnten
Operatoren manipulieren kann)
– Definition von Integritätsbedingungen
– Definition von Transaktionen (Eine Transaktion ist eine Folge von
Befehlen, die eine Datenbank von einem konsistenten Zustand in einen
anderen überführen. Eine Transaktion muss entweder vollständig
durchgeführt oder, bei einem Abbruch, vollständig zurückgesetzt
werden.)
– Definition von Berechtigungen
Eine weit verbreitete Abfragesprache ist SQL.
Die goldenen Regeln der
Relationalität
Regel 6 (Aktualisieren von Views)
Alle Views, die theoretisch aktualisiert werden können, können
auch vom System aktualisiert werden. (Beispiel: Hat man zwei
Spalten A und B mit Zahlen, so kann man sich eine weitere Spalte
definieren, die A*B enthält. Ändert man einen Wert in dieser Spalte,
so kann daraus nicht der Wert der Spalten A und B bestimmt
werden, da im allgemeinen aus dem Produkt zweier Zahlen diese
zwei Zahlen nicht bestimmt werden können. Dieses View kann also
theoretisch nicht aktualisiert werden.) Problem: Im Allgemeinen
kann nicht entschieden werden, ob ein View theoretisch
aktualisiert werden kann
Regel 7 (Abfragen und Editieren ganzer Tabellen)
Abfrage- und Editieroperationen müssen als Operanden ganze
Tabellen und nicht nur einzelne Sätze erlauben.
Die goldenen Regeln der
Relationalität
Regel 8 (Physikalische Unabhängigkeit)
Der Zugriff auf die Daten durch den Benutzer muss unabhängig
davon sein, wie die Daten gespeichert werden oder wie
physikalisch auf sie zugegriffen wird. Dies bedeutet, dass
Anwendungen nur auf die logische Struktur des Systems zugreifen
dürfen. (Beispiel: Die Daten dürfen auf einem Datenträger durchaus
hierarchisch gespeichert sein. Nur die logische Struktur der
Datenbank muß relational sein. Ändert der Datenbankverwalter die
physikalische Struktur, darf der Anwender davon nichts
mitbekommen.)
Regel 9 (Logische Unabhängigkeit der Daten)
Anwendungen und Zugriffe dürfen sich logisch nicht ändern, wenn
Tabellen so geändert werden, dass alle Informationen erhalten
bleiben (z.B. beim Aufspalten einer Tabelle in zwei Tabellen)
Die goldenen Regeln der
Relationalität
Regel 10 (Unabhängigkeit der Integrität)
Alle Integritätsbedingungen müssen in der Abfragesprache definierbar sein und in
Tabellen dargestellt werden. Das System muss mindestens die folgenden
Integritätsbedingungen prüfen:
– Vollständigkeitsintegrität (Entity Integrity, Existential Integrity), d.h. ein
Primärschlüssel muss eindeutig sein und darf insbesondere keinen Nullwert
enthalten.
– Beziehungsintegrität (Referentielle Integrität, Referential Integrity), d.h. zu
jedem Fremdschlüsselwert existiert ein Primärschlüsselwert.
Regel 11 (Verteilung der Daten)
Anwendungen für eine nicht-verteilte Datenbank dürfen sich beim Übergang zu
einer verteilten Datenbank logisch nicht ändern. (Beispiel: Wenn die oben
beschriebenen Tabellen in einem Netzwerk auf zwei verschiedenen Rechnern
gespeichert sind, darf sich bei der Anwendung nichts ändern, wenn die Tabellen
irgendwann auf demselben Rechnern gespeichert werden.)
Die goldenen Regeln der
Relationalität
Regel 12 (Unterlaufen der Abfragesprache)
Unterstützt ein relationales Datenbanksystem neben der High-LevelAbfragesprache eine Low-Level-Abfragesprache, so darf diese die
Integritätsbedingungen der High-Level-Sprache nicht unterlaufen.
(Beispiel: Die Low-Level Abfragesprache darf z.B. nicht direkt auf die
physikalischen Eigenschaften der gespeicherten Daten zugreifen.)
ER-Modell
ER-Modell
• Basiert auf einem Artikel von Peter Pin-Shan
Chen aus dem Jahre 1976
• „ER“ steht für Entity-Relationship
• Entity = Objekt, Relationship = Beziehung
• Das ER-Modell veranschaulicht grafisch die
Beziehung von Objekten
ER-Modell
• Ein ER-Modell ist ein abstraktes Abbild der
Wirklichkeit (=Miniwelt)
• Aspekte werden weggelassen, vereinfacht oder
zusammengefasst
• Abstraktionsmechanismen sind
– Klassifikation (Zusammenfassung von Objekten zu
Klassen mit für für die Miniwelt relevanten Attributen)
– Aggregation (Bestehende Klassen werden zu einer
Oberklasse zusammengefasst)
– Generalisierung oder Spezialisierung
Entität
Definition: Entität
Eine Entität (engl. entity) ist eine eindeutig identifizierbare
Einheit (Objekt) des betrachteten Modells. Das
Identifizierungsmerkmal wird als Schlüssel bezeichnet.
Eine Entität kann sein:
• Ein Gegenstand (z.B. der Raum mit der Nr. 37)
• Eine Person (z.B. der Schüler Hans Mustermann)
• Ein abstraktes Konzept (z.B. der Kurs Informatik)
• Ein Ereignis (z.B. eine mündliche Prüfung)
Entitätsmenge
Unter einer Entitätsmenge (entity set) versteht
man eine konkrete Sammlung von Entitäten
gleichen Typs (z.B. alle Schülerinnen und Schüler
einer Schule).
Die einzelnen Entitäten einer Entitätsmenge
unterscheiden sich in verschiedenen Werten der
Attribute (z.B. die Namen der Schüler).
Zur grafischen Darstellung von Entitätsmengen
werden Rechtecke verwendet
Schwache Entitäten
In den meisten Fällen sind Entities autonom und innerhalb der
Entitätsmange eindeutig identifizierbar.
Es gibt aber auch die Möglichkeit, dass Entities nur in Kombination mit
dem Schlüssel eines dominanten Entity-Types identifizierbar sind.
Solche Entitäten bezeichnet man als abhängig oder schwach. Beispiele
für schwache Entitäten sind:
• Die Bankverbindung eines Kunden, der eine Einzugsermächtigung
erteilt hat. Beim Löschen des Kunden ist auch die
Einzugsermächtigung zu löschen.
• Eine Klasse einer Schule. Eine Klasse existiert nur an einer Schule
und wird zum Teil auch durch die Attribute des Objekts Schule
definiert.
Schwache Entitäten werden in Grafiken als doppelte Rechtecke
dargestellt. Zum übergeordneten Element zeigt ein Pfeil:
Schwache Entität: Beispiel
Subtyp und Supertyp
Definition: Subtyp & Supertyp
Ein Subtyp ist eine Untermenge von übergeordneten Objekten
eines Supertyps. Sub- bzw. Supertypen stellen deshalb eine
Besonderheit von Objekttypen dar, um Informationen
hierarchisch abzubilden.
Da es sich bei einem Einzelobjekt der spezialisierten Menge und
der generalisierten Menge um "dasselbe" Einzelobjekt handelt,
gelten alle Eigenschaften – insbesondere die Identifikation – und
alle Beziehungen des generalisierten Einzelobjektes auch für das
spezialisierte Einzelobjekt.
Subtyp und Supertyp: Beispiele
• Schüler (Merkmale: Name, Geschlecht,
Wohnort,…)
• Mittelstufenschüler (ist ein Schüler, erhält
Noten von 1 bis 6)
• Oberstufenschüler (ist ein Schüler, erhält in
Kursen jedoch Punkte)
Subtyp und Supertyp
Attribute und Schlüssel
Definition: Attribute und Schlüssel
Attribute sind Informationsobjekte, die
Objekttypenbeschreiben oder identifizieren.
Attribute, die einen Objekttyp eindeutig
identifizieren bezeichnet man als Schlüssel bzw.
Schlüsselattribut.
Objekt mit Attributen
Beziehung zwischen Entitäten
Definition: Beziehung
Beziehungen sind Assoziationen zwischen Objekttypen und
können grammatikalisch in der Regel durch Verben in einer
Textbeschreibung ausgemacht werden.
• Mehrere Entitäten können zueinander in Beziehung stehen.
Beziehungen können zweistellig sein oder mehr als zwei
Entitäten einbeziehen.
• Da Beziehungen wechselseitig sind, ist die Richtung bei der
Betrachtung von Bedeutung.
• Zur grafischen Darstellung von Beziehungen verwendet man
eine Raute. Die Verbindungen zu den entsprechenden
Entitätsmengen werden durch Linien repräsentiert.
Beispiele
Beziehungsrichtung 1
Schüler belegt einen Kurs
Beziehungsrichtung 2
Ein Kurs enthält Schüler
Ein Kurs wird von einem Lehrer
Lehrer unterrichtet einen Kurs
unterrichtet
Abteilung besteht aus
Mitarbeiter gehört zu Abteilung
Mitarbeitern
Mitarbeiter hat Vorgesetzten
Vorgesetzter hat Mitarbeiter
Kunde bestellt Artikel
Artikel wird von Kunde bestellt
Beispielgrafik
Kardinalität und Optionalität
Beziehungen zwischen Objekttypen enthalten
unterschiedliche Merkmale wie Kardinalität und
Optionalität.
Kardinalität legt fest, wie viele Objekte des einen
Objekttyps in Beziehung zu einem Objekt des
anderen Objekttyps stehen und umgekehrt.
Optionalität legt fest, ob ein Objekt eines
Objekttypsimmer in Beziehung zu einem anderen
Objekt stehen muss, oder ob es optional ist.
1:1 Beziehung
Jedes Entity vom Typ E1 steht höchstens
mit einem Entity vom Typ E2 in Beziehung
und umgekehrt.
Die Grafik veranschaulicht eine 1:1 - Beziehung: Ein
Lehrer kann einen Kurs leiten. bzw. Ein Kurs wird von
einem Lehrer geleitet.
1:n Beziehung
Jedes Entity vom Typ E2 steht höchstens mit
einem Entity vom Typ E1 in Beziehung, es können
aber mehrere aus E2 zum selben Entity aus E1
eine Beziehung haben. n:1-Beziehungen sind
natürlich ganz analog definiert.
Die Grafik veranschaulicht eine 1:n - Beziehung: Eine Klasse (kann)
mehrere Schüler enthalten. bzw. Ein Schüler gehört zu einer Klasse.
n:m Beziehung
Jedes Entity aus E1 kann zu mehreren aus E2 eine
Beziehung haben, und jedes Entity aus E2 zu
mehreren aus E1.
Die Grafik veranschaulicht eine n:m - Beziehung: Lehrer
unterrichten Klassen. bzw. Eine Klasse kann von mehreren
Lehrern unterrichtet werden.
Aufgabe
Entwirf ein Entity Relationship Modell für eine Musik/CDDatenbank. Die folgenden Informationen sollen sich verwalten
lassen: Interpret / Band, Songtitel, Länge des Songs,
Komponist, Erscheinungsjahr des Songs, Kennnummer der
zug. CD, Titel der CD, die Songs auf einer CD.
Man soll herausfinden können, ob eine Band einen Song auf
mehreren CDs veröffentlicht hat (das ist oft der Fall). Man soll
herausfinden können, ob ein Song von mehreren Interpreten
veröffentlicht wurde (das ist nicht nur bei Bob Dylan der Fall).
Man soll alle Songs einer CD finden können auch wenn die CD
ein Sampler mit verschiedenen Interpreten ist.
Normalisierung
Anforderungen an Relationen
Tabellen (Relationen) sollten letztlich so geplant
werden, dass
• logische Widersprüche (Inkonsistenzen,
Anomalien) in der Datenbasis und
• Datenredundanz (Mehrfachspeicherung
gleicher Daten) vermieden sowie
• eine höchstmögliche Flexibilität und schneller
Zugriff gewährleistet werden.
Normalisierung
• Vermeidung redundanter Daten im
Relationenmodell mittels Normalisierung
• Normalisierung führt zu Vorgaben, die von
Tabellen erfüllt werden müssen
• Normalformen
• Normalisierung ist weitere Technik zur
Erstellung relationaler Datenbanken
Normalisierung von Tabellen
• Durch Normalisierung werden Tabellen in weitere
Tabellen aufgeteilt, um redundante Daten zu
vermeiden.
• Es dürfen keine Informationen verloren gehen, so
dass ein späteres Zusammensetzen der geteilten
Tabellen über Fremd- und Primärschlüssel zur
ursprünglichen Tabelle führen
• Normalisierung nach Erstellen des
Relationenmodells zur Überprüfung
Durchführung einer Normalisierung
• Schritt 1: Entfernung von Wiederholgruppen
• Schritt 2: Entfernung redundanter Daten
Funktionale Abhängigkeit
• Das Attribut Farbe ist von dem Attribut
Bezeichnung abhängig. Die Umkehrung gilt
jedoch nicht.
• Man sagt: Das Attribut Farbe ist von dem
Attribut Bezeichnung funktional abhängig:
formal: Bezeichnung  Farbe
Funktionale Abhängigkeit in der
Mathematik
• Die Funktion y=2x liefert für jeden x-Wert
genau einen y-Wert.
• Der y-Wert ist von dem x-Wert funktional
abhängig
Volle funktionale Abhängigkeit von
Attributen
• Die Attribute Bezeichnung und Geschmack bilden
den Primärschlüssel
• Es gilt: Bezeichnung, Geschmack  Farbe
• Es gilt auch: Bezeichnung  Farbe
• Es gilt jedoch nicht: Geschmack  Farbe
Volle funktionale Abhängigkeit von
Attributen
Man spricht von voller funktionaler
Abhängigkeit, wenn jedes NichtschlüsselAttribut nur durch den gesamten
Primärschlüssel eindeutig bestimmt werden
kann.
Minimaler Primärschlüssel
Die Forderung nach voller funktionaler
Abhängigkeit steht in unmittelbarem
Zusammenhang mit der Forderung nach einem
minimalen Primärschlüssel.
Transitive Abhängigkeit von Attributen
Aus
Bezeichnung  Typ und TypRäder
folgt
Bezeichnung  Räder
Transitive Abhängigkeit von Attributen
• Die Attribute Bezeichnung, Typ und Räder sind transitiv abhängig,
da:
• Wenn eine Vespa ein Motorroller ist und jeder Motorroller zwei
Räder hat, dann hat auch die Vespa zwei Räder. Oder allgemeiner:
Wenn A den Wert von B bestimmt und B den Wert von C bestimmt,
dann bestimmt auch A den Wert von C.
Zusammenfassung
1. Ein Attribut A ist von einem Attribut B funktional
abhängig, wenn zu jedem Wert von B eindeutig der
Wert von A bestimmt werden kann.
2. Von voller funktionaler Abhängigkeit spricht man,
wenn ein Attribut A von einer Attributkombination B
komplett funktional abhängig ist, und nicht nur von
einem Teil dieser Attributkombination.
3. Transitive Abhängigkeit zwischen zwei Attributen A
und C liegt vor, wenn ein Attribut A von einem
Attribut B eindeutig bestimmt wird, das Attribut B
aber wiederum von einem Attribut C eindeutig
bestimmt wird.
Normalformen
Bis 1978 wurden von E. F. Codd drei
Normalformen aufgestellt, die entsprechend als
erste, zweite und dritte Normalform bezeichnet
werden.
Es gibt noch vier weitere Normalformen, die
jedoch in der Praxis nicht so relevant sind, da
Probleme, die durch diese Normalformen
beseitigt werden, nur selten vorkommen.
NF² (Non-First-Normal-Form)
Als NF² wird jede unnormalisierte Relation
bezeichnet, sozusagen eine Relation, die nicht
einmal der ersten Normalform genügt.
1. Normalform
Eine Relation (Tabelle) ist in der ersten
Normalform (1. NF), wenn die Werte der
Attribute elementar (atomar) sind, d.h. pro
Datenfeld darf nur maximal ein Wert enthalten
sein (Nullwerte sind erlaubt!)
Atomar oder nicht atomar?
• Geburtsdatum gilt als atomar
• Bilder, Videosequenzen und Tonfolgen können als
atomare Attribute gespeichert werden --> keine
Möglichkeit, bestimmte Teil-Inhalte abzufragen
(Tonfolge etc.)
• Mengen, Folgen und Array gelten als nicht
atomar
• Atomar bedeutet, dass der Wert als Ganzes zu
sehen ist und keine Teile des Wertes getrennt
verarbeitet werden sollen
Beseitigung von Mehrfachattributen
1. Das Mehrfachattribut wird innerhalb des
Datensatzes in mehrere Einfachattribute
zerlegt, d.h. der Datensatz erhält mehr
Attribute.
2. Wenn das Mehrfachattribut eine Liste von
typgleichen Daten enthält, wird jedem Wert
der Liste eine eigener Datensatz zugeordnet.
Ausgangsrelation in 1. NF
• Erweiterung des Primarschlüssels
• Folge: Datenredundanzen
Fehlermöglichkeiten der 1. NF
• Einfüge-Anomalie
– Fall 1: Zur bestehenden Prüfungsfachnummer erfolgt
ein weiterer Eintrag mit anderer Prüffachbezeichnung
– Fall 2: Zur selben Matrikelnummer erfolgt ein Eintrag
mit anderem Studentennamen
– Fall 3: Der Eintrag eines Studenten, der noch kein
Prüfungsfach gewählt hat liefert Nullwerte in der
Prüfungsfachnummer, da dies aber Teil des
Primärschlüssels ist, darf dies nicht sein. Es verletzt
die Integrität.
Fehlermöglichkeiten der 1. NF
• Änderungs-Anomalie
– Fall 4: Wenn der Name des Professors / der
Professorin sich ändert, muss dies in allen Zeilen
geschehen!
– Fall 5: Den einzelnen Prüfungsfächern werden
neue Prüfer zugeordnet. Überall!
• Lösch-Anomalie
– ... Gehen Daten unwiederbringlich verloren, wenn
ein Tupel gelöscht wird?
2. Normalform
Die zweite Normalform bezieht sich
ausschließlich auf Tabellen, deren
Primärschlüssel aus mehreren Attributen
zusammengesetzt ist:
Eine Relation ist in der zweiten Normalform
(2.NF), wenn sie sich in der 1.NF befindet und
jedes nicht zum Primärschlüssel gehörige
Attribut voll von diesem abhängig ist.
Tabelle in 2. NF ???
•
•
•
•
Primärschlüssel: Mnr und PrüfFachNr
Name ist von MNr abhängig, nicht jedoch von PrüfFachNr
PrüfFachBezeichnung ist von PrüfFachNr abhängig, nicht jedoch von MNr
Weder Name noch PrüfFachBezeichnung sind voll funktional vom
Primärschlussel abhängig.
Relationen in 2. Normalform
In allen entstandenen Relationen sind alle NichtPrimärschlüssel-Attribute voll funktional abhängig
von den jeweiligen Primarschlüsseln!
Hinweise
• Gesamtinformation ist nicht geändert worden
• Verbindung zwischen Relationen durch
korrespondierende Attribute (Attribute, die in
mehreren Relationen als Primär- bzw.
Fremdschlüssel auftauchen = Globale
Attribute)
• Redundanzen weitgehend beseitigt, jedoch
nicht vollständig!
3. Normalform
• Die dritte Normalform bezieht sich auf
funktionale Abhängigkeiten zwischen
Nichtschlüssel- Attributen.
• Eine Relation befindet sich dann in der dritten
Normalform (3.NF), wenn sie sich in der 1.NF
und in der 2.NF befindet und wenn alle
Nichtschlüssel-Attribute ausschließlich vom
Primärschlüssel funktional abhängig sind, und
nicht transitiv über ein Nichtschlüssel-Attribut.
Relationen in 3. Normalform?
Das Attribut ProfName kommt mehrmals vor, obwohl mit ProfNr der Name
des Professors schon gegeben wäre. Diese Redundanzen von Attributen, die
nicht zum Primärschlüssel gehören, beseitigt die Überführung in die 3.
Normalform.
Relationen in 3. NF
Reicht die 3. Normalform?
Oft reicht die 3. Normalform, um redundanzfreies,
konsistentes und realitätsgetreues Datenmodell zu erstellen.
Unter bestimmten Voraussetzungen können jedoch auch bei
Relationen, die sich in der 3. Normalform befinden,
Anomalien auftreten und zwar, wenn
• die Relation mehrere Schlüsselkandidaten hat
(Prüfungsfachnr. vs. Prüffachbezeichnung)
• die Schlüsselkandidaten zusammengesetzt sind, also aus
mehr als einem Attribut bestehen
• die Schlüsselkandidaten sich mit dem Primärschlüssel
überlappen, d.h. mindestens ein Attribut mit dem
Primärschlüssel gemeinsam haben.
 Weitere Normalformen (werden hier nicht thematisiert)
Aufgabe
Jemand hat eine CD-Sammlung und möchte
diese in einer Datenbank speichern. Eine
Inventur ergab die oben abgebildete Tabelle.
Überführe die Tabelle in die 3. Normalform!
Herunterladen