 
                                WS 2013/14
Datenbanksysteme
Do 17:00 – 18:30
R 1.007
Vorlesung #2
Das relationale Modell
(Teil 1)
„Fahrplan“
WS 2013/14
Datenbanksysteme
Do 17:00 – 18:30
R 1.007
 Feedback Vorlesung#1
 Das relationale Modell
 Einordnung (wir überspringen die Modellierung,
das kommt im 4. Semester „Datenmanagement“)
 Definition, Relationenschema, Ausprägung
 Relationale Abfrage-Sprachen (relationale
Algebra, Kalkül)
 Fazit und Ausblick Vorlesung #3
© Bojan Milijaš, 10.10.2013
Organisatorisches
WS 2013/14
Datenbanksysteme
Do 17:00 – 18:30
R 1.007
 Übungsaufgaben vertiefen den
Vorlesungsstoff und beziehen sich nichts auf
das Praktikum
 Praktikum
 Praktikumsaufgaben sind von Vorlesungen und
Übungen „entkoppelt“.
 Heute zeigen wir anhand von interner SQL
Verarbeitung Bedeutung der relationalen Algebra
 Diejenigen, die sich mit SQL auskennen können
schon heute mit dem Praktikumblatt 1 anfangen
 Kemper-Tabellen sollen hochgeladen werden
© Bojan Milijaš, 10.10.2013
WS 2013/14
Datenbanksysteme
Do 17:00 – 18:30
R 1.007
Einordnung
Miniwelt
UML-Klassen
ER-Diagramm
Objektorientiertes
Schema
Relationales
Schema
1.
NetzwerkSchema
DBMS -Speicherparameter
Cluster
Index(e) partitionierte Tabelle(n)
© Bojan Milijaš, 10.10.2013
2.
3.
Prerelationale Systeme (1)
Netzwerk-Modell
WS 2013/14
Datenbanksysteme
Do 17:00 – 18:30
R 1.007
 Sieht aus wie ein Netzwerk (beliebiger gerichteter
Graph) bestehend aus:
Satztypen (record types) entsprechen den Entitäten
Sammlungstypen (set types) entsprechen den Relationen
zusätzlich: Anker (owner), Glieder (member)
Hilfskonstrukte: link records, dummies
 Verbindungen sind wie bei verketteten Listen durch
Zeiger (Pointer) implementiert, die stets beim
Informationszugriff benutzt und gegebenenfalls auch
verändert werden
 (-) Keine Rekursion, keine Datenunabhängigkeit,
komplizierte Abfragen
 UDS (Siemens), IDMS (CA)
© Bojan Milijaš, 10.10.2013
Prerelationale Systeme (2)
Hierarchisches Modell
WS 2013/14
Datenbanksysteme
Do 17:00 – 18:30
R 1.007
 Spezialfall des Netzwerk-Modells, sieht aus wie ein
Baum und nicht wie beliebiger Graph
 Nachfolger, die mehrere Vorgänger haben, werden
durch das Kopieren dem jeweiligen Vorgänger
exklusiv zugeordnet, Graph  mehrere Bäume
 Jeder Datensatz über einen eindeutigen Zugriffspfad
erreichbar, Redundanzvermeidung durch
Implementierung zusätzlicher Zeiger
 (-) schlecht für nicht hierarchische Zusammenhänge
wegen unnötiger Redundanz, keine
Datenunabhängigkeit, komplizierte Abfragen
 IMS (IBM)
© Bojan Milijaš, 10.10.2013
Orientierung
Postrelationale Modelle
WS 2013/14
Datenbanksysteme
Do 17:00 – 18:30
R 1.007
Objekt-orientiertes Modell
Objekt-relationales Modell (evolutionär)
Deduktives Modell (Datalog)
Verteilte Datenbanken
Web-Datenbanken (XML, XPath, XQuery)
In-Memory Datenbanken
NoSQL Datenbanken
werden nach dem relationalen Modell kurz
vorgestellt
© Bojan Milijaš, 10.10.2013
Orientierung
Warum gerade relational?
WS 2013/14
Datenbanksysteme
Do 17:00 – 18:30
R 1.007
 Sehr einfach und intuitiv
 Marktbeherrschend
 ca. 80% der bereits installierten DatenbankSysteme sind relational (bzw. objekt-relational)
 ca. 90% der neu gekauften Datenbank-Systeme
sind relational (bzw. objekt-relational)
 Relationales Model bzw. RDBMS hat aber
auch Schwächen in bestimmten
Anwendungsszenarios, die wir als Motivation
für postrelationale DBMS vorstellen
© Bojan Milijaš, 10.10.2013
Geschichte
WS 2013/14
Datenbanksysteme
Do 17:00 – 18:30
R 1.007
 Von Edward F. Codd 1970 vorgestellt: "A Relational
Model of Data for Large Shared Data Banks."
 Erste Prototypen
 System R (IBM)
 Ingres (University of California, Berkeley unter Leitung von
M. Stonebraker)
 Erste Produkte
 Oracle (Software Development Laboratories, später
Relational Systems Inc., später Oracle Corporation)
 SQL/DS (IBM), Ingres (Relational Technology Inc.)
 ...
© Bojan Milijaš, 10.10.2013
Mathematische Definition
WS 2013/14
Datenbanksysteme
Do 17:00 – 18:30
R 1.007
 Gegeben sind n atomare, nicht notwendigerweise
unterschiedliche Wertebereiche (Domänen)
D1, D2, ... , Dn
Beispiel: string, string, float, ... , integer
 Relation R ist die Teilmenge des kartesischen
Produkts der Domänen
R  D1 x ... x Dn
Beispiel: Vorlesungen  integer x string x integer
 Ein Tupel ist ein Element aus R
tR
Beispiel: t = (4052, „Logik“, 4)
© Bojan Milijaš, 10.10.2013
Relationenschema
WS 2013/14
Datenbanksysteme
Do 17:00 – 18:30
R 1.007
• legt die Struktur der gespeicherten Daten fest
Beispiel:
Vorlesungen: {[VorlNr:integer,Titel:string,SWS:integer]}
VorlNr
Vorlesungen
Titel
SWS
5001
Grundzüge
4
5041
Ethik
3
...
...
...
Ausprägung: der aktuelle Zustand der Datenbasis
© Bojan Milijaš, 10.10.2013
Relationenschema (2)
WS 2013/14
Datenbanksysteme
Do 17:00 – 18:30
R 1.007
Relation (Tabelle, table)
Vorlesungen
VorlNr
5001
Titel
Grundzüge
SWS
4
5041
Ethik
3
...
...
...
Attribut (Spalte, column)
© Bojan Milijaš, 10.10.2013
Tupel (Zeile, row)
Relationenschema (3)
WS 2013/14
Datenbanksysteme
Do 17:00 – 18:30
R 1.007
Trennung zwischen Schema und Ausprägung
sch(R) – Menge der Attribute einer Relation
R – die aktuelle Ausprägung
dom(A) – Domäne eines Attributs
sch(R) = {A1, ... , An}
R  dom(A1) x ... x dom(An)
Primärschlüssel – identifiziert eindeutig die
Relation, wird unterstrichen
© Bojan Milijaš, 10.10.2013
WS 2013/14
Datenbanksysteme
Do 17:00 – 18:30
R 1.007
© Bojan Milijaš, 10.10.2013
Relationale
Abfragesprachen
WS 2013/14
Datenbanksysteme
Do 17:00 – 18:30
R 1.007
 Man braucht neben der Strukturbeschreibung
(relationales Datenbankschema) auch eine Sprache,
um die Informationen aus der Datenbank gemäß
vorgegeben Kriterien extrahieren zu können
 Relationale Algebra
 beinhaltet einen relational-algebraischen Ausdruck
 wird bei der Anfragenbearbeitung benutzt (wie werden die
Daten selektiert)
 Relationenkalkül
 Rein deklarativ (was und nicht wie selektiert wird)
 Tupelkalkül
 Domänenkalkül
© Bojan Milijaš, 10.10.2013
Relationale Algebra
Operatoren (1)
 Selektion
 Projektion
x Kreuzprodukt
A Join (Verbund)
 Umbenennung
 Mengendifferenz
 Division
 Vereinigung
 Mengendurchschnitt
© Bojan Milijaš, 10.10.2013
WS 2013/14
Datenbanksysteme
Do 17:00 – 18:30
R 1.007
Relationale Algebra
Operatoren (2)
F Semi-Join (linker)
E Semi-Join (rechter)
C linker äußerer Join
D rechter äußerer Join
© Bojan Milijaš, 10.10.2013
WS 2013/14
Datenbanksysteme
Do 17:00 – 18:30
R 1.007
WS 2013/14
Datenbanksysteme
Do 17:00 – 18:30
R 1.007
© Bojan Milijaš, 10.10.2013
WS 2013/14
Datenbanksysteme
Do 17:00 – 18:30
R 1.007
© Bojan Milijaš, 10.10.2013
WS 2013/14
Datenbanksysteme
Do 17:00 – 18:30
R 1.007
© Bojan Milijaš, 10.10.2013
WS 2013/14
Datenbanksysteme
Do 17:00 – 18:30
R 1.007
© Bojan Milijaš, 10.10.2013
WS 2013/14
Datenbanksysteme
Do 17:00 – 18:30
R 1.007
© Bojan Milijaš, 10.10.2013
WS 2013/14
Datenbanksysteme
Do 17:00 – 18:30
R 1.007
© Bojan Milijaš, 10.10.2013
WS 2013/14
Datenbanksysteme
Do 17:00 – 18:30
R 1.007
© Bojan Milijaš, 10.10.2013
WS 2013/14
Datenbanksysteme
Do 17:00 – 18:30
R 1.007
© Bojan Milijaš, 10.10.2013
WS 2013/14
Datenbanksysteme
Do 17:00 – 18:30
R 1.007
Vorlesung #2
Ende