Datenbanken

Werbung
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
– 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
Datensätze
Id
Vorname
Name
1
Han
Solo
2
Harry
Potter
3
Madonna
4
Peter
Meier
5
Peter
Meier
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.
Detailtabelle
StgId = Fremdschlüssel
n
1
Mastertabelle
StgId = Primärschlüssel
PId
Vorname
Name
StgId
StgId
Studiengang
1
Han
Solo
3
1
Informationswissenschaft
2
Harry
Potter
2
2
Linguistik
3
Madonna
2
3
Informatik
4
Peter
Meier
1
5
Peter
Meier
2
Studierende
Studiengänge
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.
1
n
m
1
PId
Vorname
Name
TId
PId
SemId
Abschluss
SemId
Seminar
1
Han
Solo
1
1
1
BN
1
Wissensrepräsentation
2
Harry
Potter
2
1
3
BN
2
Datenbanken
3
Madonna
3
2
3
AP
3
Semantik
4
Peter
Meier
4
4
2
BN
5
Peter
Meier
5
5
2
AP
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
• Das leistet ein gutes Datenmodell (Normalformen).
– 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
Alle Attribute haben atomare Werte
PId
Vorname
Name
Seminare
1
Han
Solo
Wissensrepräsentation, Semantik
2
Harry
Potter
Semantik
3
Madonna
4
Peter
Meier
Datenbanken
5
Peter
Meier
Datenbanken
Semantik
PId
Vorname
Name
Seminare
1
Han
Solo
Wissensrepräsentation
1
Han
Solo
Semantik
2
Harry
Potter
Semantik
3
Madonna
4
Peter
Meier
Datenbanken
5
Peter
Meier
Datenbanken
Semantik
1. NF
Herunterladen