Datenbanken

Werbung
Einführung in die
Informatik II
Relationale Datenbanken und SQL
Theorie und Anwendung
Prof. Dr. Nikolaus Wulff
Gründe für eine Datenbank
• Meist werden Daten nicht in XML-Dokumenten,
sondern innerhalb einer Datenbank gespeichert.
• Anwendungen haben meist verschiedene properitäre
Datenstrukturen, die inkompatibel zueinander sind.
• Mit einer Datenbank ist es möglich ein konsistentes
Datenmodell für verschiedene Anwendungen vorzuhalten und gemeinsam zu verwalten.
• Datenbanken erlauben eine effiziente Suche innerhalb
großer Datenbestände und unterstützen einen Mehrbenutzerbetrieb.
• Datenbanken bieten geeignete Methoden zum Sichern
und Restaurieren des Datenbestands.
Prof. Dr. Nikolaus Wulff
Informatik II
2
Das Entity/Relationship-Model
• Das E/R-Datenmodell beschreibt eine Abstraktion der
realen Welt durch die Verwendung von Entitäten und
deren Beziehungen (engl. relationship) untereinander.
• Eine Entität besitzt Eigenschaften, die als Attribute
bezeichnet werden.
• Entitäten mit den selben Attributen werden zu einer
Entitätsmenge zusammengefasst.
• Die Strukturbeschreibung einer Entitätsmenge heisst
Entitätstyp.
• Um eine Entität innerhalb der Entitätsmenge eindeutig
zu identifizieren wird ein Primärschlüssel vergeben.
Prof. Dr. Nikolaus Wulff
Informatik II
3
Beziehungen
Meier
Müller
Bauer
Danziger
Schulze
Effinger
Roth
Rupp
Fischer
Studenten
Professoren
Wulff
• Relationen beschreiben Zusammenhänge zwischen
den verschiedenen Entitätstypen.
• Der Relations- oder Beziehungstyp fasst Relationen
mit gleicher Strukturinformation zusammen.
Prof. Dr. Nikolaus Wulff
Informatik II
4
Kardinalitäten
Student
Entitätstyp
n
hört/liest
Vorlesung
Relationstyp
m
Professor
Entitätstyp
• Beziehungstypen werden nach der Kardinaliät
klassifiziert.
– 1:1: Typ-A steht mit genau einem Typ-B in Beziehung.
– 1:n: Typ-A steht zu verschieden Typ-B Entitäten in
Beziehung, die jedoch nur zu genau einem Typ-A ein
Beziehung haben.
• Ein Vater hat viele Kinder aber jedes Kind nur einen Vater.
– n:m-Beziehung: Typ-A hat beliebig viele Beziehungen zu
Typ-B und umgekehrt.
Prof. Dr. Nikolaus Wulff
Informatik II
5
Mathematische Beschreibung
• Die Attribute der Entitäts- und Relationstypen sind
primitive Elemente, wie Ganz- und Dezimalzahl,
Zeichenkette oder (Kalender)Datum.
• Komplexe Entitäten werden in einfachere zerlegt.
• Die Beziehungen zwischen den Entitätstypen bilden
einen Graphen.
• Entitäten und deren Relationen lassen sich durch die
auf ihnen erlaubten Operationen mit Hilfe der
Relationsalgebra beschreiben.
Prof. Dr. Nikolaus Wulff
Informatik II
6
Relationsoperationen I
• Es seien A, B und A1, A2, ..., An Mengen.
• Eine n-stellige Relation R ist eine Untermenge der
geordneten n-Tupel über dem Kreuzprodukt:
R⊆ A1× A2×...× A n
• Die Umkehrrelation R−1⊆ B× A der binären Relation
R⊆ A×B ist gegeben durch die Menge:
R−1={ y , x  ∣  x , y ∈R }
• Das Ergebnis der Verkettung zweier Relationen
R⊆ A1× A 2 und S ⊆ A 2× A 3 ist die Menge
S ° R={ x , z  ∣ ∃ y ∈ A 2 mit  x , y ∈R∧ y , z ∈S }
Prof. Dr. Nikolaus Wulff
Informatik II
7
Relationsoperationen II
• Das erweiterte Kartesische Produkt R⊗S zweier
Relationen R und S ist die (n+m)-stellige Relation
R⊗S ={ x 1 , , x n , y 1,  , y m  ∣  x 1 , , x n ∈ R ∧  y 1 , , y m ∈S }
• Die Projektion T ist definiert als k-elementige Teilmenge T der Urspungsrelation R⊆ A1× A 2×...× A n
T  R={ x T , , x T  ∣  x T , , x T ∈ AT ×× AT }
1
k
1
k
1
k
• Die Selektion  Θ ist die Restriktion von R mit einer
Bedingung/Prämisse Θ (SQL where-Klausel)
 Θ  R ={ x 1 , , x n ∈R ∣ Θ  x 1 , , x n }
Prof. Dr. Nikolaus Wulff
Informatik II
8
Relationsoperationen III
• Die Θ-Verbindung (join) von R und S wird gebildet
aus dem Kreuzprodukt R⊗S und einer Bedingung Θ
zwischen den Elementen aus R und S.
 Θ  R⊗S ≡ R [Θ ] S ={ x 1 , , x n , y 1 , , y m  ∣
}
 x 1 , , x n ∈R ∧  y 1 , , y m ∈S
∧ x 1 , , x n Θ  y 1 , , y m }
• Diese Verbindung wird häufig gewählt, um Attribute
zweier Tabellen zusammenzufügen, die logisch eine
(normalisierte) Entität bilden. Die Bedingung Θ verknüpft dann meist Primär- und Fremdschlüssel aus R
und S, angedeutet durch (xΘy).
Prof. Dr. Nikolaus Wulff
Informatik II
9
Relationen Beispiele
• Sei R die „kleiner als Relation“ über den reelen
Zahlen, d.h.
R={ x , y ∣ x y und  x , y ∈ℝ×ℝ}
– Geometrische Interpretation: R ist die Menge der Punkte
2
oberhalb der Geraden x=y des ℝ .
– Bemerkung: Bei bekannten (mathematischen) binären
Relationen wird häufig statt (x,y)∈R auch xRy geschrieben,
z.B. die kleiner Relation x<y.
• Für eine Menge von Personen kann als Relation P
deren Name∈ Z* mit dem Gewicht/kg ∈ℝ und der
Schuhgröße ∈ℕ gebildet werden.
P⊂Z ∗ ×ℝ  ×ℕ
Prof. Dr. Nikolaus Wulff
z.B. ('Tom', 78.6, 43) ∈ P
Informatik II
10
Beispiel: kartesisches Produkt
• G sei die Relation, die den Personennamen mit seiner
Körpergröße/cm ∈ℝ  verknüpft und die Personen sind
Tom und Bob.
G = { ('Tom', 172.5), ('Bob', 183) }
P = { ('Tom', 78.6, 43), ('Bob', 82 , 45) }
• Das kartesische Produkt P⊗G lautet
P⊗G = { ('Tom', 78.6, 43 , 'Tom', 172.5),
('Tom', 78.6, 43 , 'Bob', 183),
('Bob', 82 , 45 , 'Tom', 172.5),
('Bob', 82 , 45 , 'Bob', 183) }
– Diese kombinatorische Vielfalt ist häufig nicht so ganz das
erwünschte Ergebnis...
Prof. Dr. Nikolaus Wulff
Informatik II
11
Beispiel: Join und Projektion
• Wichtig ist die richtige Zuordnung von Gewicht und
Größe zu einer Person, durch eine Θ-Bedingung per
Join-Operation, in diesem Fall P.Name = G.Name.
 (P⊗G) = { ('Tom', 78.6, 43 , 'Tom', 172.5),
('Bob', 82 , 45 , 'Bob', 183) }
• Wird hierauf die Projektion T mit dem Schema
T=(Name, Gewicht, Schuhgröße, Größe) angewendet,
so lautet die Relationsmenge:
T( (P⊗G)) = { ('Tom', 78.6, 43 , 172.5),
('Bob', 82 , 45 , 183) }
Prof. Dr. Nikolaus Wulff
Informatik II
12
Von Relationen zu Tabellen
• Die mathematische Notation ist sehr mächtig, und bei
theoretischen Informatikern beliebt, um z.B. Sätze
und Aussagen zu beweisen.
• Der „normale angewandte Programmierer“ emfindet
diese Notation eher als abschreckend, sie verkompliziert unnötig den wesentlichen Aspekt der Praxis.
• Wie die Beispiele zeigen, werden die Mengen der
Relationen in Form von Tabellen aufgezählt. Ein
Verfahren, das sich sehr gut für die numerische
Verarbeitung per EDV eignet und dazu geführt hat,
dass alle relationalen Datenbanksysteme auf Tabellen
aufbauen.
Prof. Dr. Nikolaus Wulff
Informatik II
13
Relationen und Tabellenschema
• Das jeweilige Relationsschema dient als Schema für
eine entsprechende Tabelle innerhalb der Datenbank.
• Die jeweilgen Namen der einzelenen Mengen der
Relation werden zu den Spaltennamen innerhalb des
Tabellenschemas.
• Die Elemente der Relationsmenge werden auf eine
Zeile der Tabelle abgebildet.
• Relationen zwischen Elementen werden abgebildet,
indem bestimmte Felder des einen Elements auf den
Primärschlüssel des anderen Elements verweisen.
• Die Elemente können innerhalb der Selben aber auch
in unterschiedlichen Tabellen sein.
Prof. Dr. Nikolaus Wulff
Informatik II
14
Tabellenbeispiel
Person
ID
1
2
Groesse
Name
Tom
Bob
Gewicht Schuhgroesse
78.6
43
82.0
45
ID
1
2
Name
Tom
Bob
Groesse
172
183
• Die beiden Tabellen Person und Groesse, die dem
vorherigen Relationenbeispiel entsprechen.
• In blau das Schema, darunter die Entitäten.
• Es wird ein sprechender Tabellenname verwendet,
Person statt P, der Tabellenname steht in der Einzahl!
• Zusätzlich zu dem Namen ist jeweils ein künstlicher
Schlüssel ID hinzugefügt, der meistens als PrimaryKey verwendet wird (anstatt des Namens).
Prof. Dr. Nikolaus Wulff
Informatik II
15
SQL
• Als einheitliche Sprache zum Arbeiten mit Tabellen
hat sich die Structured Query Language (SQL)
durchgesetzt und etabliert.
• Es gibt Anweisung zur Definition und Manipulation
der Tabellenschemata und zum Einfügen, Ändern und
Entfernen von Tabellenzeilen, die sogenannten CRUD
Operationen (Commit, Rollback, Update und Delete).
• Ferner lassen sich noch Rechte zur Verwaltung
unterschiedlicher Personengruppen und Rollen
vergeben. (nicht jeder darf eine Tabelle löschen etc.)
Prof. Dr. Nikolaus Wulff
Informatik II
16
Herunterladen