Datenbanken Christof Rumpf 22.10.2008
Was ist eine Datenbank? Datenbank, Datenbanksystem, englisch Data-Base-System, zentral verwaltetes System zur widerspruchsfreien und permanenten Speicherung großer Datenmengen eines Informationsgebietes (z. B. naturwissenschaftliche Daten, Wirtschaftsstatistiken), auf die nach unterschiedlichen Anwendungskriterien zugegriffen werden kann. Ein Datenbanksystem besteht aus den auf der Grundlage eines Datenbankmodells organisierten Datenbeständen (Datenbasis) und dem Datenbank-Managementsystem (Abkürzung DBMS), einem Softwarepaket, das die Datenbestände und Zugriffsrechte verwaltet sowie eine Anwenderschnittstelle für die Datendefinition, -eingabe und -manipulation enthält. Meyers Lexikon
Datenbankmodelle Relational - verbreitetster Standard Deduktiv - relational + Prolog Objektorientiert - entspr. OO-Programmierung Objektrelational - relational + objektorientiert Hierarchisch - Baumstruktur, veraltet Netzwerk - Graphen
Datenbankmanagementsystem Ein DBMS ist ein Softwarepaket zur Speicherung und Organisation von Daten aufgrund eines Datenbankmodells zur Verwaltung von Zugriffsrechten enthält Entwicklerschnittstelle zur Definition von Datenmodellen Eingabe und Pflege von Daten Erstellung von ‚Sichten‘ auf Daten (Abfragen) Erstellung von Berichten (Reportgenerator) Erstellung von Benutzerschnittstellen für ‚Normalbenutzer‘ (Formulargenerator)
Relationale DBMS Desktop-DBMS Server-DBMS MS Access, dBase, OpenOffice Base, … Müssen in einer Client-Server-Umgebung ganze Datenbestände auf den Client laden, um eine Abfrage auszuwerten. Server-DBMS Oracle, MySQL, Microsoft SQL Server, … Abfragen werden auf dem Server ausgewertet und nur die Ergebnisse zum Client übertragen.
Aufbau relationaler DBs Relationale Datenbanken bestehen aus Tabellen, die in Felder (Attribute) und Datensätze (Relationen, Tupel) organisiert sind. In jedem Feld stehen Daten eines bestimmten Typs (Text, Zahlen, Datum/Zeit-Ausdrücke, Ja/Nein-Werte, BLOBs, …). Alle Datensätze einer Tabelle haben einen gleichartigen Aufbau, sind gleich lang. Eine Tabelle kann beliebig viele Datensätze enthalten. Felder z.B. Tabelle Personen Id Vorname Name 1 Han Solo 2 Harry Potter 3 Madonna 4 Peter Meier 5 Daten-sätze
Tabellenverknüpfung 1:n Über Schlüsselfelder kann man Tabellen bequem miteinander verknüpfen. Bei einer 1:n-Verknüpfung kann jeder Datensatz der 1-Seite beliebig vielen Datensätzen der n-Seite zugeordnet werden. Umgekehrt kann jeder Datensatz der n-Seite nur mit einem Datensatz der 1-Seite verknüpft sein. Szenario: Jeder Studierende studiert genau einen Studiengang. n 1 Detailtabelle StgId = Fremdschlüssel Mastertabelle StgId = Primärschlüssel PId Vorname Name StgId 1 Han Solo 3 2 Harry Potter Madonna 4 Peter Meier 5 StgId Studiengang 1 Informationswissenschaft 2 Linguistik 3 Informatik Studiengänge Studierende
Tabellenverknüpfung n:m Bei n:m-Verknüpfungen können jedem Datensatz der einen beliebig viele Datensätze der anderen Tabelle zugeordnet werden. Die Vermittlung zwischen n- und m-Seite erfolgt über eine dritte Tabelle und zwei 1:n-Verknüpfungen. Szenario: Jeder Student besucht beliebig viele Seminare. m 1 1 n PId Vorname Name 1 Han Solo 2 Harry Potter 3 Madonna 4 Peter Meier 5 TId PId SemId Abschluss 1 BN 2 3 AP 4 5 SemId Seminar 1 Wissensrepräsentation 2 Datenbanken 3 Semantik Personen Teilnehmer Seminare
Datenmodell Ein Datenmodell ist eine Abbildung von Objekten (z.B. aus der ‚wirklichen‘ Welt) mit ihren (relevanten) Eigenschaften und Beziehungen in einem Datenbankmodell. Beispiel: Universität mit Fakultäten, Instituten, Angestellten, Studenten, Studiengängen, Lehrveranstaltungen, Abschlüssen, Semestern, Gebäuden, Räumen, …
Redundanz und Konsistenz Eine Datenbank soll redundanzfrei sein Jedes (komplexe) Objekt soll nur einmal repräsentiert werden und in allen Beziehungskontexten referenziert werden. Das leistet ein gutes Datenmodell (Normalformen). Eine Datenbank soll konsistent sein Keine Mutationsanomalien Alle Referenzen sollen auflösbar sein. Das leistet ein gutes DBMS (referentielle Integrität).
Mutationsanomalien Treten bei der Repräsentation verschiedener Entitäten in derselben Tabelle auf: Updateanomalien Redundante Einträge müssen mehrfach geändert werden: Fehlerquelle Einfügeanomalien Zuordnungsprobleme bei unvollständigen Datensätzen Löschanomalien Drohender Datenverlust: Beim Löschen einer Entität gehen die Daten zu einer anderen evt. verloren
Normalformen Normalformen garantieren Redundanzfreiheit und verhindern Mutationsanomalien 1. Normalform Alle Attribute haben atomare Werte 2. Normalform Jedes Attribut einer Tabelle ist nur vom Schlüssel abhängig 3. Normalform xxx
1. Normalform 1. NF Alle Attribute haben atomare Werte PId Vorname Seminare 1 Han Solo Wissensrepräsentation, Semantik 2 Harry Potter Semantik 3 Madonna 4 Peter Meier Datenbanken 5 PId Vorname Name Seminare 1 Han Solo Wissensrepräsentation Semantik 2 Harry Potter 3 Madonna 4 Peter Meier Datenbanken 5 1. NF