26
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R 0.006 Vorlesung #2 Das relationale Modell (Teil 1)

WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R 0.006 Vorlesung #2 Das relationale Modell (Teil 1)

Embed Size (px)

Citation preview

Page 1: WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R 0.006 Vorlesung #2 Das relationale Modell (Teil 1)

WS 2011/12Datenbanksysteme

Fr 15:15 – 16:45R 0.006

Vorlesung #2

Das relationale Modell (Teil 1)

Page 2: WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R 0.006 Vorlesung #2 Das relationale Modell (Teil 1)

WS 2011/12Datenbanksysteme

Fr 15:15 – 16:45R 0.006

© Bojan Milijaš, 14.10.2011 Vorlesung #2 - Das relationale Modell 2

„Fahrplan“

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

Page 3: WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R 0.006 Vorlesung #2 Das relationale Modell (Teil 1)

WS 2011/12Datenbanksysteme

Fr 15:15 – 16:45R 0.006

© Bojan Milijaš, 14.10.2011 Vorlesung #2 - Das relationale Modell 3

Organisatorisches

Übungsaufgaben vertiefen den Vorlesungsstoff und beziehen sich nichts auf das Praktikum

Praktikum Praktikumsaufgaben sind von Vorlesungen und

Übungen „entkoppelt“. Es wird erst nach der SQL-Einführung richtig los

gehen Diejenigen, die sich mit SQL auskennen

können schon heute mit dem Praktikumblatt 1 anfangen

Page 4: WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R 0.006 Vorlesung #2 Das relationale Modell (Teil 1)

WS 2011/12Datenbanksysteme

Fr 15:15 – 16:45R 0.006

© Bojan Milijaš, 14.10.2011 Vorlesung #2 - Das relationale Modell 4

Einordnung

Miniwelt

Relationales Schema

Objektorientiertes Schema

Netzwerk- Schema

UML-Klassen ER-Diagramm

Index(e)Cluster

partitionierte Tabelle(n)

DBMS -Speicherparameter 3.

1.

2.

Page 5: WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R 0.006 Vorlesung #2 Das relationale Modell (Teil 1)

WS 2011/12Datenbanksysteme

Fr 15:15 – 16:45R 0.006

© Bojan Milijaš, 14.10.2011 Vorlesung #2 - Das relationale Modell 5

Prerelationale Systeme (1)Netzwerk-Modell 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)

Page 6: WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R 0.006 Vorlesung #2 Das relationale Modell (Teil 1)

WS 2011/12Datenbanksysteme

Fr 15:15 – 16:45R 0.006

© Bojan Milijaš, 14.10.2011 Vorlesung #2 - Das relationale Modell 6

Prerelationale Systeme (2)Hierarchisches Modell 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)

Page 7: WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R 0.006 Vorlesung #2 Das relationale Modell (Teil 1)

WS 2011/12Datenbanksysteme

Fr 15:15 – 16:45R 0.006

© Bojan Milijaš, 14.10.2011 Vorlesung #2 - Das relationale Modell 7

OrientierungPostrelationale Modelle

Objekt-orientiertes Modell Objekt-relationales Modell (evolutionär) Deduktives Modell (Datalog) Verteilte Datenbanken Web-Datenbanken (XML, XPath, XQuery) werden nach dem relationalen Modell kurz

vorgestellt

Page 8: WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R 0.006 Vorlesung #2 Das relationale Modell (Teil 1)

WS 2011/12Datenbanksysteme

Fr 15:15 – 16:45R 0.006

© Bojan Milijaš, 14.10.2011 Vorlesung #2 - Das relationale Modell 8

OrientierungWarum gerade relational?

Sehr einfach und intuitiv Marktbeherrschend

ca. 80% der bereits installierten Datenbank-Systeme 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

Page 9: WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R 0.006 Vorlesung #2 Das relationale Modell (Teil 1)

WS 2011/12Datenbanksysteme

Fr 15:15 – 16:45R 0.006

© Bojan Milijaš, 14.10.2011 Vorlesung #2 - Das relationale Modell 9

Geschichte

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.) ...

Page 10: WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R 0.006 Vorlesung #2 Das relationale Modell (Teil 1)

WS 2011/12Datenbanksysteme

Fr 15:15 – 16:45R 0.006

© Bojan Milijaš, 14.10.2011 Vorlesung #2 - Das relationale Modell 10

Mathematische Definition

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

t RBeispiel: t = (4052, „Logik“, 4)

Page 11: WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R 0.006 Vorlesung #2 Das relationale Modell (Teil 1)

WS 2011/12Datenbanksysteme

Fr 15:15 – 16:45R 0.006

© Bojan Milijaš, 14.10.2011 Vorlesung #2 - Das relationale Modell 11

Relationenschema

• legt die Struktur der gespeicherten Daten fest Beispiel:Vorlesungen: {[VorlNr:integer,Titel:string,SWS:integer]}

Ausprägung: der aktuelle Zustand der Datenbasis

Vorlesungen

VorlNr Titel SWS

5001 Grundzüge 4

5041 Ethik 3

... ... ...

Page 12: WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R 0.006 Vorlesung #2 Das relationale Modell (Teil 1)

WS 2011/12Datenbanksysteme

Fr 15:15 – 16:45R 0.006

© Bojan Milijaš, 14.10.2011 Vorlesung #2 - Das relationale Modell 12

Relationenschema (2)

Vorlesungen

VorlNr Titel SWS

5001 Grundzüge 4

5041 Ethik 3

... ... ...

Relation (Tabelle, table)Relation (Tabelle, table)

Tupel (Zeile, row)Tupel (Zeile, row)

Attribut (Spalte, column)Attribut (Spalte, column)

Page 13: WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R 0.006 Vorlesung #2 Das relationale Modell (Teil 1)

WS 2011/12Datenbanksysteme

Fr 15:15 – 16:45R 0.006

© Bojan Milijaš, 14.10.2011 Vorlesung #2 - Das relationale Modell 13

Relationenschema (3)

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

Page 14: WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R 0.006 Vorlesung #2 Das relationale Modell (Teil 1)

WS 2011/12Datenbanksysteme

Fr 15:15 – 16:45R 0.006

© Bojan Milijaš, 14.10.2011 Vorlesung #2 - Das relationale Modell 14

Page 15: WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R 0.006 Vorlesung #2 Das relationale Modell (Teil 1)

WS 2011/12Datenbanksysteme

Fr 15:15 – 16:45R 0.006

© Bojan Milijaš, 14.10.2011 Vorlesung #2 - Das relationale Modell 15

Relationale Abfragesprachen 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

Page 16: WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R 0.006 Vorlesung #2 Das relationale Modell (Teil 1)

WS 2011/12Datenbanksysteme

Fr 15:15 – 16:45R 0.006

© Bojan Milijaš, 14.10.2011 Vorlesung #2 - Das relationale Modell 16

Relationale AlgebraOperatoren (1)

Selektion Projektionx KreuzproduktA Join (Verbund) Umbenennung Mengendifferenz Division Vereinigung Mengendurchschnitt

Page 17: WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R 0.006 Vorlesung #2 Das relationale Modell (Teil 1)

WS 2011/12Datenbanksysteme

Fr 15:15 – 16:45R 0.006

© Bojan Milijaš, 14.10.2011 Vorlesung #2 - Das relationale Modell 17

Relationale AlgebraOperatoren (2)

F Semi-Join (linker)

E Semi-Join (rechter)

C linker äußerer Join

D rechter äußerer Join

Page 18: WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R 0.006 Vorlesung #2 Das relationale Modell (Teil 1)

WS 2011/12Datenbanksysteme

Fr 15:15 – 16:45R 0.006

© Bojan Milijaš, 14.10.2011 Vorlesung #2 - Das relationale Modell 18

Page 19: WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R 0.006 Vorlesung #2 Das relationale Modell (Teil 1)

WS 2011/12Datenbanksysteme

Fr 15:15 – 16:45R 0.006

© Bojan Milijaš, 14.10.2011 Vorlesung #2 - Das relationale Modell 19

Page 20: WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R 0.006 Vorlesung #2 Das relationale Modell (Teil 1)

WS 2011/12Datenbanksysteme

Fr 15:15 – 16:45R 0.006

© Bojan Milijaš, 14.10.2011 Vorlesung #2 - Das relationale Modell 20

Page 21: WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R 0.006 Vorlesung #2 Das relationale Modell (Teil 1)

WS 2011/12Datenbanksysteme

Fr 15:15 – 16:45R 0.006

© Bojan Milijaš, 14.10.2011 Vorlesung #2 - Das relationale Modell 21

Page 22: WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R 0.006 Vorlesung #2 Das relationale Modell (Teil 1)

WS 2011/12Datenbanksysteme

Fr 15:15 – 16:45R 0.006

© Bojan Milijaš, 14.10.2011 Vorlesung #2 - Das relationale Modell 22

Page 23: WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R 0.006 Vorlesung #2 Das relationale Modell (Teil 1)

WS 2011/12Datenbanksysteme

Fr 15:15 – 16:45R 0.006

© Bojan Milijaš, 14.10.2011 Vorlesung #2 - Das relationale Modell 23

Page 24: WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R 0.006 Vorlesung #2 Das relationale Modell (Teil 1)

WS 2011/12Datenbanksysteme

Fr 15:15 – 16:45R 0.006

© Bojan Milijaš, 14.10.2011 Vorlesung #2 - Das relationale Modell 24

Page 25: WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R 0.006 Vorlesung #2 Das relationale Modell (Teil 1)

WS 2011/12Datenbanksysteme

Fr 15:15 – 16:45R 0.006

© Bojan Milijaš, 14.10.2011 Vorlesung #2 - Das relationale Modell 25

Page 26: WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R 0.006 Vorlesung #2 Das relationale Modell (Teil 1)

WS 2011/12Datenbanksysteme

Fr 15:15 – 16:45R 0.006

Vorlesung #2

Ende