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