WS 2010/11 Datenbanksysteme Fr 15:15 – 16:45 R 1.008 Vorlesung #2 Das relationale Modell (Teil 1) WS 2010/11 Datenbanksysteme Fr 15:15 – 16:45 R 1.008 „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 © Bojan Milijaš, 15.10.2010 Vorlesung #2 - Das relationale Modell 2 Organisatorisches WS 2010/11 Datenbanksysteme Fr 15:15 – 16:45 R 1.008 Ü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 © Bojan Milijaš, 15.10.2010 Vorlesung #2 - Das relationale Modell 3 WS 2010/11 Datenbanksysteme Fr 15:15 – 16:45 R 1.008 Einordnung Miniwelt UML-Klassen ER-Diagramm Objektorientiertes Schema Relationales Schema 1. NetzwerkSchema DBMS -Speicherparameter Cluster Index(e) partitionierte Tabelle(n) © Bojan Milijaš, 15.10.2010 Vorlesung #2 - Das relationale Modell 2. 3. 4 Prerelationale Systeme (1) Netzwerk-Modell WS 2010/11 Datenbanksysteme Fr 15:15 – 16:45 R 1.008 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š, 15.10.2010 Vorlesung #2 - Das relationale Modell 5 Prerelationale Systeme (2) Hierarchisches Modell WS 2010/11 Datenbanksysteme Fr 15:15 – 16:45 R 1.008 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š, 15.10.2010 Vorlesung #2 - Das relationale Modell 6 Orientierung Postrelationale Modelle WS 2010/11 Datenbanksysteme Fr 15:15 – 16:45 R 1.008 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 © Bojan Milijaš, 15.10.2010 Vorlesung #2 - Das relationale Modell 7 Orientierung Warum gerade relational? WS 2010/11 Datenbanksysteme Fr 15:15 – 16:45 R 1.008 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š, 15.10.2010 Vorlesung #2 - Das relationale Modell 8 Geschichte WS 2010/11 Datenbanksysteme Fr 15:15 – 16:45 R 1.008 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š, 15.10.2010 Vorlesung #2 - Das relationale Modell 9 Mathematische Definition WS 2010/11 Datenbanksysteme Fr 15:15 – 16:45 R 1.008 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∈R Beispiel: t = (4052, „Logik“, 4) © Bojan Milijaš, 15.10.2010 Vorlesung #2 - Das relationale Modell 10 Relationenschema WS 2010/11 Datenbanksysteme Fr 15:15 – 16:45 R 1.008 • 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š, 15.10.2010 Vorlesung #2 - Das relationale Modell 11 Relationenschema (2) WS 2010/11 Datenbanksysteme Fr 15:15 – 16:45 R 1.008 Relation (Tabelle, table) Vorlesungen VorlNr 5001 Titel Grundzüge SWS 4 5041 Ethik 3 ... ... ... Tupel (Zeile, row) Attribut (Spalte, column) © Bojan Milijaš, 15.10.2010 Vorlesung #2 - Das relationale Modell 12 Relationenschema (3) WS 2010/11 Datenbanksysteme Fr 15:15 – 16:45 R 1.008 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š, 15.10.2010 Vorlesung #2 - Das relationale Modell 13 WS 2010/11 Datenbanksysteme Fr 15:15 – 16:45 R 1.008 © Bojan Milijaš, 15.10.2010 Vorlesung #2 - Das relationale Modell 14 Relationale Abfragesprachen WS 2010/11 Datenbanksysteme Fr 15:15 – 16:45 R 1.008 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š, 15.10.2010 Vorlesung #2 - Das relationale Modell 15 Relationale Algebra Operatoren (1) WS 2010/11 Datenbanksysteme Fr 15:15 – 16:45 R 1.008 σ Selektion π Projektion x Kreuzprodukt A Join (Verbund) ρ Umbenennung − Mengendifferenz ÷ Division ∪ Vereinigung ∩ Mengendurchschnitt © Bojan Milijaš, 15.10.2010 Vorlesung #2 - Das relationale Modell 16 Relationale Algebra Operatoren (2) WS 2010/11 Datenbanksysteme Fr 15:15 – 16:45 R 1.008 F Semi-Join (linker) E Semi-Join (rechter) C linker äußerer Join D rechter äußerer Join © Bojan Milijaš, 15.10.2010 Vorlesung #2 - Das relationale Modell 17 WS 2010/11 Datenbanksysteme Fr 15:15 – 16:45 R 1.008 © Bojan Milijaš, 15.10.2010 Vorlesung #2 - Das relationale Modell 18 WS 2010/11 Datenbanksysteme Fr 15:15 – 16:45 R 1.008 © Bojan Milijaš, 15.10.2010 Vorlesung #2 - Das relationale Modell 19 WS 2010/11 Datenbanksysteme Fr 15:15 – 16:45 R 1.008 © Bojan Milijaš, 15.10.2010 Vorlesung #2 - Das relationale Modell 20 WS 2010/11 Datenbanksysteme Fr 15:15 – 16:45 R 1.008 © Bojan Milijaš, 15.10.2010 Vorlesung #2 - Das relationale Modell 21 WS 2010/11 Datenbanksysteme Fr 15:15 – 16:45 R 1.008 © Bojan Milijaš, 15.10.2010 Vorlesung #2 - Das relationale Modell 22 WS 2010/11 Datenbanksysteme Fr 15:15 – 16:45 R 1.008 © Bojan Milijaš, 15.10.2010 Vorlesung #2 - Das relationale Modell 23 WS 2010/11 Datenbanksysteme Fr 15:15 – 16:45 R 1.008 © Bojan Milijaš, 15.10.2010 Vorlesung #2 - Das relationale Modell 24 WS 2010/11 Datenbanksysteme Fr 15:15 – 16:45 R 1.008 © Bojan Milijaš, 15.10.2010 Vorlesung #2 - Das relationale Modell 25 WS 2010/11 Datenbanksysteme Fr 15:15 – 16:45 R 1.008 © Bojan Milijaš, 15.10.2010 Vorlesung #2 - Das relationale Modell 26 WS 2010/11 Datenbanksysteme Fr 15:15 – 16:45 R 1.008 © Bojan Milijaš, 15.10.2010 Vorlesung #2 - Das relationale Modell 27 WS 2010/11 Datenbanksysteme Fr 15:15 – 16:45 R 1.008 © Bojan Milijaš, 15.10.2010 Vorlesung #2 - Das relationale Modell 28 WS 2010/11 Datenbanksysteme Fr 15:15 – 16:45 R 1.008 © Bojan Milijaš, 15.10.2010 Vorlesung #2 - Das relationale Modell 29 WS 2010/11 Datenbanksysteme Fr 15:15 – 16:45 R 1.008 © Bojan Milijaš, 15.10.2010 Vorlesung #2 - Das relationale Modell 30 WS 2010/11 Datenbanksysteme Fr 15:15 – 16:45 R 1.008 © Bojan Milijaš, 15.10.2010 Vorlesung #2 - Das relationale Modell 31 WS 2010/11 Datenbanksysteme Fr 15:15 – 16:45 R 1.008 © Bojan Milijaš, 15.10.2010 Vorlesung #2 - Das relationale Modell 32 WS 2010/11 Datenbanksysteme Fr 15:15 – 16:45 R 1.008 © Bojan Milijaš, 15.10.2010 Vorlesung #2 - Das relationale Modell 33 WS 2010/11 Datenbanksysteme Fr 15:15 – 16:45 R 1.008 © Bojan Milijaš, 15.10.2010 Vorlesung #2 - Das relationale Modell 34 WS 2010/11 Datenbanksysteme Fr 15:15 – 16:45 R 1.008 © Bojan Milijaš, 15.10.2010 Vorlesung #2 - Das relationale Modell 35 WS 2010/11 Datenbanksysteme Fr 15:15 – 16:45 R 1.008 © Bojan Milijaš, 15.10.2010 Vorlesung #2 - Das relationale Modell 36 WS 2010/11 Datenbanksysteme Fr 15:15 – 16:45 R 1.008 © Bojan Milijaš, 15.10.2010 Vorlesung #2 - Das relationale Modell 37 WS 2010/11 Datenbanksysteme Fr 15:15 – 16:45 R 1.008 © Bojan Milijaš, 15.10.2010 Vorlesung #2 - Das relationale Modell 38 WS 2010/11 Datenbanksysteme Fr 15:15 – 16:45 R 1.008 © Bojan Milijaš, 15.10.2010 Vorlesung #2 - Das relationale Modell 39 Fazit WS 2010/11 Datenbanksysteme Fr 15:15 – 16:45 R 1.008 Das relationale Modell wurde eingeführt Einordnung in das Gesamtbild eines Information-Management Systems Modellierung (Entity Relationship wird übersprungen und in 4. Semester behandelt) Definition des relationalen Modells Relationenschema und Ausprägung Relationale Abfragesprachen © Bojan Milijaš, 15.10.2010 Vorlesung #2 - Das relationale Modell 40 Ausblick Vorlesung #3 WS 2010/11 Datenbanksysteme Fr 15:15 – 16:45 R 1.008 Das relationale Modell Relationale Modellierung von 1:1, 1:n, n:m Beziehungen, Generalisierung, schwachen Entity-Typen etc. Die Relationale Algebra (Selektion, Projektion, Vereinigung, relationale Division, Mengendurchschnitt, Joins, kartesisches Produkt etc.) © Bojan Milijaš, 15.10.2010 Vorlesung #2 - Das relationale Modell 41 WS 2010/11 Datenbanksysteme Fr 15:15 – 16:45 R 1.008 Vorlesung #2 Ende