Datenbanken Datenbank = Datenbankprogramm + Daten Datenbankprogramm = Datenbankmanagementsystem (DBMS) = System, das eine oder mehrere Datenbanken verwaltet und den Zugriff auf die Daten regelt, z.B. Access Beispiel: Musikverwaltungsdatenbank Daten: Eigenschaften = Attribute Erscheinungsjahr Komponist Tonträger Titel "Gegenstände" = Entitäten Detlev Boehme, BBS Friedenstraße Wilhelmshaven Kategorie Musikstück ‹#› Relationale Datenbanken In Relationalen Datenbanken werden die Daten in Tabellen (= Relationen) gespeichert. Felder Komponist Kategorie Tonträger Aida Verdi Oper CD Revolver Beatles Beat LP Take Five Brubeck Jazz MC Titel Feldnamen = Attribute Datensatz = Tupel Attributwert Detlev Boehme, BBS Friedenstraße Wilhelmshaven ‹#› Relationale Datenbanken Was muss das Datenbanksystem für die Bearbeitung von Daten zur Verfügung stellen? Bequeme Eingabe neuer Daten Veränderung von Daten, z.B. Löschen Selektieren von Daten nach eigenen Kriterien Sperren bestimmter Daten Analysieren von Daten Berechnungen mit Daten Ausgabe von Daten: Anzeige, Druck Access: Objekte werden zur Verfügung gestellt Detlev Boehme, BBS Friedenstraße Wilhelmshaven ‹#› Relationale Datenbanken Zusammenhänge: Daten und Objekte einer Datenbank Formulare Daten Tabellen Abfragen Daten bearbeiten z.B. Eingabe Daten analysieren filtern berechnen Daten Berichte Detlev Boehme, BBS Friedenstraße Wilhelmshaven auswerten berechnen ausgeben z.B. drucken ‹#› Relationale Datenbanken Grundlegende Begriffe: Datenredundanz: Überfluss an Information - mehrfache Speicherung derselben Daten. Probleme: - Unnötige Vergrößerung der Datenmenge und damit der DB - Fehlerhafte Einträge durch Wiederholung möglich z.B. Mülller statt Müller Datenintegrität - Datenkonsistenz: Einheitliche Daten zum selben Sachverhalt Beispiel: Die Adresse einer Person kann in verschiedenen Tabellen enthalten sein. Bei Änderung der Adresse (Umzug) müssen alle Tabellen die richtige neue Adresse enthalten. Anomalien: Fehler in den Daten (z.B. durch Redundanzen, Änderungen, Löschen, …) führen zu Dateninkonsistenz, die Anomalie genannt wird. Detlev Boehme, BBS Friedenstraße Wilhelmshaven ‹#› Relationale Datenbanken Grundlegende Begriffe (Fortsetzung): Schlüssel: Datenintegrität in relationalen Datenbanken basiert auf dem Konzept des Schlüssels. Es gibt Primärschlüssel und Fremdschlüssel. Primärschlüssel: Attribut (oder eine Menge von Attributen), das einen Datensatz eindeutig identifiziert. Beispiel: Postleitzahl jede Postleitzahl identifiziert eindeutig eine bestimmte Stadt bzw. einen Stadtteil Fremdschlüssel: Attribut (oder eine Menge von Attributen), das in mehr als einer Tabelle vorkommt und in einer dieser Tabellen den Primärschlüssel bildet. Referentielle Integrität: Vereinbarung strenger Regeln für die Beziehungen zwischen den Tabellen einer Datenbank. Betrifft den Gebrauch von Fremdschlüsseln (später mehr dazu). Detlev Boehme, BBS Friedenstraße Wilhelmshaven ‹#› Relationale Datenbanken Normalisierung der Tabellen einer Datenbank Ziele • • • • Vermeidung von Redundanz Vermeidung von Dateninkonsistenz und Anomalien Vermeidung von Datenverlust Erhöhung der Effizienz der Datenbank Um die genannten Probleme zu lösen, müssen die Tabellen der DB bestimmte Regeln einhalten. Das Resultat dieser Regeln wird als Normalform der Tabellen bezeichnet. Detlev Boehme, BBS Friedenstraße Wilhelmshaven ‹#› Relationale Datenbanken Nullte Normalform: nicht normalisierte Tabelle Komponist Titel Kategorie 1 Verdi Aida, Nabucco, 4 Jahreszeiten Oper, Sinfonie 2 Beatles Sargent Pepper, Revolver, Best of Beat 3 Brubeck Take Five Jazz Primärschlüssel Komponist-Nr In diesen Feldern sind mehrere Informationen gespeichert! Primärschlüssel: Feld oder Feldkombination, die einen Datensatz eindeutig kennzeichnet. Detlev Boehme, BBS Friedenstraße Wilhelmshaven ‹#› Relationale Datenbanken Erste Normalform Eine Tabelle ist in der 1. Normalform, wenn alle Attributwerte atomar sind. D.h. alle Felder müssen so sein, dass sie nicht weiter unterteilt werden können. Komponist Titel Kategorie 1 Verdi Aida Oper 1 Verdi Nabucco Oper 1 Verdi Vier Jahreszeiten Sinfonie 2 Beatles Sargent Pepper Beat 2 Beatles Revolver Beat 2 Beatles Best of Beat 3 Brubeck Take Five Jazz Komponist-Nr Alle Attributwerte sind atomar – der Primärschlüssel kennzeichnet aber mehrere Datensätze Detlev Boehme, BBS Friedenstraße Wilhelmshaven ‹#› Relationale Datenbanken Zweite Normalform Eine Tabelle ist in der 2. Normalform, wenn sie in der 1. Normalform ist und jedes Nicht-Schlüsselfeld Nicht-Schlüsselfeld von jedem Schlüsselkandidaten voll funktional abhängig ist. Beispiel: Komponist-Nr Komponist Titel Kategorie 1 Verdi Aida Oper 1 Verdi Vier Jahreszeiten Sinfonie SchlüsselN i c h t – S c h l ü s s e l f e l d e r feld Aus dem Primärschlüssel 1 folgt direkt nur der Komponist Verdi, nicht der Titel (es gibt ja mehrere) und auch nicht die Kategorie. Ergebnis: Nur das Nicht-Schlüsselfeld „Komponist“ ist voll funktional abhängig vom Schlüsselfeld Die Tabelle ist nicht in der 2. Normalform Detlev Boehme, BBS Friedenstraße Wilhelmshaven ‹#› Relationale Datenbanken Funktionale Abhängigkeit nur durch Teilung der Tabelle erreichbar: Tbl_Komponisten Komponist-Nr Tbl_ Kategorie Komponist Kategorie-Nr Kategorie 1 Oper 1 Verdi 2 Sinfonie 2 Beatles 3 Beat 3 Brubeck 4 Jazz Primärschlüssel Fremdschlüssel Tbl_Musik Musik-Nr Komponist Titel Kategorie 1 1 Aida 1 2 1 Nabucco 1 3 1 4 Jahreszeiten 2 4 2 Sargent Pepper 3 5 2 Revolver 3 6 2 Best of 3 7 3 Take Five 4 Detlev Boehme, BBS Friedenstraße Wilhelmshaven ‹#› Relationale Datenbanken Dritte Normalform Eine Relation ist in der dritten Normalform, wenn sie in der zweiten Normalform ist und kein Nicht-Schlüsselfeld transitiv von einem Schlüsselkandidaten abhängt. Beispiel: Adressendatenbank: Tbl_Freunde Nr Vorname Name Straße PLZ Ort Ort 1 Dirk Stumpf Waagestr. 20 26386 Wilhelmshaven 2 Klara Blume Schmiedeweg 3 56626 Andernach Diese Tabelle enthält eine Redundanz: Das Attribut "Ort“ Die PLZ "26386" steht für Wilhelmshaven, die Ortsangabe steht nochmals für Wilhelmshaven: Das Nicht-Schlüsselfeld "Ort“ ist transitiv (weisend) vom möglichen Schlüsselfeld (= Schlüsselkandidat) "PLZ" abhängig! Detlev Boehme, BBS Friedenstraße Wilhelmshaven ‹#› Relationale Datenbanken Lösung des Problems: Zerlegung in 2 Tabellen Tbl_Freunde Nr Vorname Name Straße 1 Dirk Stumpf Waagestr. 20 2 Klara Blume PLZ 26386 Schmiedeweg 3 56626 Tbl_Orte Fremdschlüssel PLZ Ort 26386 Wilhelmshaven 56626 Andernach Primärschlüssel Detlev Boehme, BBS Friedenstraße Wilhelmshaven ‹#› Relationale Datenbanken Datenbankentwurf: Entity / Relationship Modell (E/R-Modell) Vor der Entwicklung einer Datenbank steht die Modellierung: Bildliche Darstellung durch das E/R-Modell: Entität: - Gegenstand aus der realen Welt - eindeutig identifizierbar - Darstellung: Kasten Attribute: - beschreiben Entitäten - Darstellung: Ovale Beziehungen: - repräsentieren die Wechselwirkungen (relationships) zwischen Entitäten - Darstellung: Rauten Detlev Boehme, BBS Friedenstraße Wilhelmshaven ‹#› Relationale Datenbanken Entitäten der Musikverwaltungsdatenbank Erscheinungjahr Titel Musik-Nr Kategorie Musikstück N schreibt Komponist-Nr 1 Komponist Name Detlev Boehme, BBS Friedenstraße Wilhelmshaven Tonträger M spielt N Interpret-Nr Interpret Name ‹#› Relationale Datenbanken E / R – Modell mit Ausleihe Interpret spielt Musikstück schreibt Komponist Name AusleihDatum RückgabeDatum Ausleih-Nr ausgeliehen wird Ausleihvorgang Freund-Nr ausgeliehen wird Adresse Freund Schwache Entität: kann nicht isoliert existieren (ein Ausleihvorgang existiert nicht ohne Musikstücke und Freunde) Darstellung: doppelte Linien Detlev Boehme, BBS Friedenstraße Wilhelmshaven ‹#›