WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R Vorlesung #2 Das relationale Modell
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R © Bojan Milijaš, Vorlesung #2 - Das relationale Modell2 Fahrplan Organisatorisches, Praktikumgruppen: Neue Räume (siehe das virtuelle Schwarzbrett) Zugang auch von zu Hause Feedback Vorlesung#1 Besprechung der Übungsaufgaben Übungsblatt#2 wird ins Netz gestellt, je nach dem wie weit wir heute kommen 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
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R © Bojan Milijaš, Vorlesung #2 - Das relationale Modell3 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 (-) Praktikums-Räume und Zugänge gelöst Mi: R : :15 Uhr (19 Arbeitsplätze) Do: R2.008 und R : :15 (je 13 Arbeitsplätze)
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R © Bojan Milijaš, Vorlesung #2 - Das relationale Modell4 Feedback Vorlesung #1 (+) Feedback durchgehend positiv, interessiert uns nicht weiter, wir wollen und verbessern (?) Folien im Web Ja, sobald mein FH Account funktioniert (?) Unterschiede zu den Definitionen von Prof. Schwenkert Prüfungsstoff bleibt gleich (?) Nächstes Semester schau ma mal... (?) Werden wir nur ORACLE lernen? Nein, wir lernen Standards (SQL-92 bzw. SQL3, JDBC usw.)
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R © Bojan Milijaš, Vorlesung #2 - Das relationale Modell5 Einordnung Miniwelt Relationales Schema Objektorientiertes Schema Netzwerk- Schema UML-Klassen ER-Diagramm Index(e) Cluster partitionierte Tabelle(n) DBMS -Speicherparameter
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R © Bojan Milijaš, Vorlesung #2 - Das relationale Modell6 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)
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R © Bojan Milijaš, Vorlesung #2 - Das relationale Modell7 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)
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R © Bojan Milijaš, Vorlesung #2 - Das relationale Modell8 Orientierung Postrelationale 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
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R © Bojan Milijaš, Vorlesung #2 - Das relationale Modell9 Orientierung Warum 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
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R © Bojan Milijaš, Vorlesung #2 - Das relationale Modell10 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.)...
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R © Bojan Milijaš, Vorlesung #2 - Das relationale Modell11 Mathematische Definition Gegeben sind n atomare, nicht notwendigerweise unterschiedliche Wertebereiche (Domänen) D 1, D 2,..., D n Beispiel: string, string, float,..., integer Relation R ist die Teilmenge des kartesischen Produkts der Domänen R D 1 x... x D n Beispiel: Vorlesungen integer x string x integer Ein Tupel ist ein Element aus R t R Beispiel: t = (4052, Logik, 4)
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R © Bojan Milijaš, Vorlesung #2 - Das relationale Modell12 Relationenschema legt die Struktur der gespeicherten Daten fest Beispiel: Vorlesungen: {[VorlNr:integer,Titel:string,SWS:integer]} Ausprägung: der aktuelle Zustand der Datenbasis Vorlesungen VorlNrTitelSWS 5001Grundzüge4 5041Ethik3...
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R © Bojan Milijaš, Vorlesung #2 - Das relationale Modell13 Relationenschema (2) Vorlesungen VorlNrTitelSWS 5001Grundzüge4 5041Ethik3... Relation (Tabelle, table) Tupel (Zeile, row) Attribut (Spalte, column)
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R © Bojan Milijaš, Vorlesung #2 - Das relationale Modell14 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) = {A 1,..., A n } R dom(A 1 ) x... x dom(A n ) Primärschlüssel – identifiziert eindeutig die Relation, wird unterstrichen
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R © Bojan Milijaš, Vorlesung #2 - Das relationale Modell15
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R © Bojan Milijaš, Vorlesung #2 - Das relationale Modell16 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
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R © Bojan Milijaš, Vorlesung #2 - Das relationale Modell17 Relationale Algebra Operatoren (1) Selektion Projektion x Kreuzprodukt A Join (Verbund) Umbenennung Mengendifferenz Division Vereinigung Mengendurchschnitt
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R © Bojan Milijaš, Vorlesung #2 - Das relationale Modell18 Relationale Algebra Operatoren (2) F Semi-Join (linker) E Semi-Join (rechter) C linker äußerer Join D rechter äußerer Join
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R © Bojan Milijaš, Vorlesung #2 - Das relationale Modell19
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R © Bojan Milijaš, Vorlesung #2 - Das relationale Modell20
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R © Bojan Milijaš, Vorlesung #2 - Das relationale Modell21
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R © Bojan Milijaš, Vorlesung #2 - Das relationale Modell22
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R © Bojan Milijaš, Vorlesung #2 - Das relationale Modell23
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R © Bojan Milijaš, Vorlesung #2 - Das relationale Modell24
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R © Bojan Milijaš, Vorlesung #2 - Das relationale Modell25
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R © Bojan Milijaš, Vorlesung #2 - Das relationale Modell26
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R © Bojan Milijaš, Vorlesung #2 - Das relationale Modell27
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R © Bojan Milijaš, Vorlesung #2 - Das relationale Modell28
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R © Bojan Milijaš, Vorlesung #2 - Das relationale Modell29
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R © Bojan Milijaš, Vorlesung #2 - Das relationale Modell30
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R © Bojan Milijaš, Vorlesung #2 - Das relationale Modell31
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R © Bojan Milijaš, Vorlesung #2 - Das relationale Modell32
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R © Bojan Milijaš, Vorlesung #2 - Das relationale Modell33
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R © Bojan Milijaš, Vorlesung #2 - Das relationale Modell34
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R © Bojan Milijaš, Vorlesung #2 - Das relationale Modell35
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R © Bojan Milijaš, Vorlesung #2 - Das relationale Modell36
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R © Bojan Milijaš, Vorlesung #2 - Das relationale Modell37
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R © Bojan Milijaš, Vorlesung #2 - Das relationale Modell38
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R © Bojan Milijaš, Vorlesung #2 - Das relationale Modell39
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R © Bojan Milijaš, Vorlesung #2 - Das relationale Modell40
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R © Bojan Milijaš, Vorlesung #2 - Das relationale Modell41 Fazit 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
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R © Bojan Milijaš, Vorlesung #2 - Das relationale Modell42 Ausblick Vorlesung #3 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.)
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R Vorlesung #2 Ende