Datenbanksysteme 2009

Ähnliche Dokumente
Datenbanksysteme SS 2007

Datenbanksysteme SS 2007

Kapitel 5 Dr. Jérôme Kunegis. SQL: Grundlagen. WeST Institut für Web Science & Technologien

Das relationale Modell

Datenintegrität. Einschränkung der möglichen Datenbankzustände und -übergänge auf die in der Realität möglichen

Datenintegrität. Einschränkung der möglichen Datenbankzustände und -übergänge auf die in der Realität möglichen

Datenintegrität. Arten von Integritätsbedingungen. Statische Integritätsbedingungen. Referentielle Integrität. Integritätsbedingungen in SQL.

Architektur eines DBMS Logische Optimierung

Informatik für Ökonomen II: Datenintegrität. Prof. Dr. Carl-Christian Kanne

Studierende, die diese Vorlesung hören, haben sich auch für folgende Lehrveranstaltungen interessiert:

Kapitel 7 Dr. Jérôme Kunegis. Logische Kalküle. WeST Web Science & Technologies

Relationale Kalküle. Grundlagen der Datenbanken. Dr. Jérôme Kunegis Wintersemester 2013/14

Referentielle Integrität

Datenbanksysteme (1)

Termin 12: Datenbanksysteme (2) - Einführung in SQL

Referentielle Integrität

Aufgabensammlung SQL SW4 1. Einfache Anfragen

Datenintegrität. Bisherige Integritätsbedingungen

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #5. SQL (Teil 3)

Datenbanksysteme Vorlesung vom noch Kapitel 7: SQL. Oliver Vornberger. Institut für Informatik Universität Osnabrück

Datenbanksysteme (2) Einführung in SQL

Relationale Anfragesprachen

VO Datenmodellierung. Katrin Seyr

konzeptueller Entwurf mittels E/R-Modell einfache Funktionalitäten n-stellige Relationships (n>2) (siehe nächste zwei Folien) schwache Entities


Datenbanksysteme 2015

Anfragebearbeitung 3

9. Einführung in Datenbanken

Datenbanksysteme 2011

Inhalt. 2.1 Datenbankentwurf. 2.2 Relationales Modell. 2.3 Relationale Entwurfstheorie. 2.4 Relationale Algebra. 2.5 Structured Query Language (SQL)

Objektorientierte Datenbanken

Logische Datenmodelle

Semantische Integrität (auch: Konsistenz) der in einer Datenbank gespeicherten Daten als wichtige Anforderung

Objektrelationale Datenbanken

3. Das Relationale Datenmodell

Microsoft SQL-Server Enterprise-Manager

Objektrelationale und erweiterbare Datenbanksysteme

Logische Optimierung. Im Allgemeinen wird keine optimale Lösung erzielt, sondern nur eine Verbesserung. Logische Optimierung

Datenbanken: ER-Modell

Es wird empfohlen folgendes Material anzusehen:

Einleitung Projektion Selektion Join Mengenop. Vollst.keit. Einleitung Projektion. Selektion Join. Vollst.keit. Einleitung Projektion Selektion Join

Kapitel 3: Datenbanksysteme

Kapitel 3: Die Relationale Algebra

Carl-Christian Kanne. Einführung in Datenbanken p.1/513

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird.

4. Structured Query Language (SQL)

PRG2 Folien Zicari Teil 4 Einführung in Datenbanken SS 2007

ER-Modellierung am Beispiel der Universitätsdatenbank aus der DBIS-Vorlesung

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Kapitel DB:III (Fortsetzung)

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004)

Datenbanken 1. Das Relationale Modell. Nikolaus Augsten. FB Computerwissenschaften Universität Salzburg

Einführung. Kapitel 1 2 / 508

Sicherheitsaspekte. Szenarien. Angriffsarten. Discretionary Access Control. Sicherheit im DBMS. Identifikation und Authentisierung

Design Theorie für relationale Datenbanken

Datenbanken: Relationales Datenbankmodell RDM

Friihjahr. Erste Staatsprüfilrg für ein Lehramt an öffentlichen Schulen.Prüfurgsaufgaben- Prüfungsüeilnehmer Prüfungsüermin Einzelprüfungsnummer

Relationale Datenbanken

SQL SQL. SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R. Grundlagen der Datenbanksysteme I

Relationales Datenmodell

Kapitel 3: Datenbanksysteme

Kalkülteil. Structured Query Language, SQL. 1. Semantik: erzeuge alle Kombinationen von Tupeln

Einführung in das Entity-Relationship-Modell

Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5

Leopold-Franzens-Universität Innsbruck. Institut für Informatik Datenbanken und Informationssysteme. Johannes Kessler

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

ARBEITSBLATT ZU SQL-BEFEHLEN

Kapitel DB:III. III. Konzeptueller Datenbankentwurf

Datenbankentwurf. 4.2 Logischer Entwurf. Kapitel 4. ER-Modell. Umsetzung. Entwurfsdokumentation. relationales Modell. Verbesserung

Datenbanken. Einführung. Tobias Galliat. Sommersemester 2012

Structured Query Language (SQL) als standardisierte Anfragesprache für relationale Datenbanken

Übung Datenbanken Winter 2010

Datenbanksysteme Kapitel 7: SQL. Oliver Vornberger. Institut für Informatik Universität Osnabrück

Teil III. Relationale Datenbanken Daten als Tabellen

Datenbankentwurf. Entwicklungsprozess Anforderungsanalyse & Miniwelt

Datenmanipulation in SQL. Select Anweisung

3. Spezielle ER-Modelle und Tabellenableitung. Transformation von ER-Diagrammen in Relationen

Verteilte Datenbanken. Kapitel / 520

Einführung und Überblick

SQL. Kapitel 4 SQL 121 / 508

Relationales Modell: SQL-DDL. SQL als Definitionssprache. 7. Datenbankdefinitionssprachen. Anforderungen an eine relationale DDL

1. Übungsblatt 3.0 VU Datenmodellierung

Datenbanksysteme Kapitel 7: SQL. Oliver Vornberger. Institut für Informatik Universität Osnabrück

Sudoku. Warum 6? Warum 6?

Vorlesung Datenbankmanagementsysteme

Informatik II Datenorganisation Datenbanken

Im Fall einer Personaldatenbank würde eine Relation beispielsweise wie folgt aussehen:

Terminologie. Kapitel 15 Verteilte Datenbanken. Verteiltes Datenbanksystem. Kommunikationsmedien

Inhalt. Datenbanken 1. Literatur und Quellen. Inhalt. Das Relationale Modell. Nikolaus Augsten. Sommersemester Schema, Relation, und Datenbank

1. Übungsblatt 3.0 VU Datenmodellierung

Kapitel DB:V (Fortsetzung)

Übungen zu Datenbanksysteme

DBSP. Vorlesung. Prof. Dr. rer. nat. Nane Kratzke. Unit. Praktische Informatik und betriebliche Informationssysteme

Vorlesung Datenbanksysteme Univ.-Prof. Dr. Günther Specht. Universität Innsbruck Institut für Informatik Datenbanken und Informationssysteme (DBIS)

mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 11. Juni 2007

Herbst. Erste Staatsprüfung für ein Lehramt an öffentlichen Schulen. Prüfungsaufgaben - Prüfungsüeilnehmer Prüfungstermin Einzelprüfungsnummer

OM Datenbanken. OM Datenbanken. 8.1 Was ist ein Datenbanksystem? Motivation

Das SQL-Schlüsselwort ALL entspricht dem Allquantor der Prädikatenlogik

ACCESS SQL ACCESS SQL

Transkript:

Datenbanksysteme 2009 Vorlesung vom 11.05.2009: Anfang von Kapitel 6: Das Relationale Modell Oliver Vornberger Institut für Informatik Universität Osnabrück

Das Relationale Modell Wertebereiche (Domänen): D 1, D 2,,..., D n Relation: R D 1 D 2... D n Wertebereich von Attribut A: dom(a) Relation R dom (A 1 ) dom (A 2 )... dom (A n ) Element von R: Tupel Schema der Relation: sch(r) = A 1, A 2,,..., A n aktuelle Ausprägung: R bei Datenbanksystemen zusätzlich zum Wertebereich noch Bezeichner: Telefonbuch : { [Name : string, Adresse: string, TelefonNr : integer] } Telefonbuch : { [Name, Adresse, TelefonNr ] }

Konzeptuelles Schema der Universität voraussetzen Vorgänger N Nachfolger M MatrNr N M VorlNr Name Studenten hören Vorlesungen SWS Sem M N N Titel Note prüfen lesen 1 1 Fachgebiet Assistenten N arbeitenfür 1 Professoren Rang Raum is-a PersNr Name Angestellte

Initial-Entwurf für Entity-Typen Pro Entity-Typ eine Relation (Schlüssel unterstrichen): Studenten : {[ MatrNr : integer, Name : string, Semester : integer] } Vorlesungen : {[ VorlNr : integer, Titel : string, SWS : integer] } Professoren : {[ PersNr : integer, Name : string, Rang : string, Raum : integer] } Assistenten : {[ PersNr : integer, Name : string, Fachgebiet : string] }

Initial-Entwurf für Relationship-Typen Pro Relationship-Typ eine Relation: hören : {[ MatrNr : integer, VorlNr : integer] } lesen : {[ PersNr : integer, VorlNr : integer] } arbeitenfür : {[ AssiPersNr : integer, ProfPersNr : integer] } voraussetzen : {[ Vorgänger : integer, Nachfolger : integer] } prüfen : {[ MatrNr:integer, VorlNr:integer, PersNr:integer, Note :decimal] } Fremdschlüssel := Schlüsselattribut für referierte Entity-Typen N:1-Beziehung entspricht einer Abbildung: lesen : Vorlesungen Professoren prüfen : Studenten Vorlesungen Professoren

Elimination bei gleichen Schlüsseln Vorlesungen : {[ VorlNr : integer, Titel : string, SWS : integer] } Professoren : {[ PersNr : integer, Name : string, Rang : string, Raum:integer] } lesen : {[ PersNr : integer, VorlNr : integer] } Relationen mit gleichem Schlüssel können zusammengefasst werden (ggf. Umbenennung erforderlich): Vorlesungen : {[ VorlNr:integer,Titel:string, SWS:integer, gelesenvon:integer] } Professoren : {[ PersNr : integer, Name :string, Rang :string, Raum :integer] }

Elimination bei ungleichen Schlüsseln Vorlesungen : {[ VorlNr : integer, Titel : string, SWS : integer] } Professoren : {[ PersNr :integer, Name :string, Rang :string, Raum : integer] } Relationen mit ungleichem Schlüssel sollten nicht zusammengefaßt werden: Professoren' : {[ PersNr, liestvorl, Name, Rang, Raum ] } PersNr liestvorl Name Rang Raum 2125 5041 Sokrates C4 226 2125 5049 Sokrates C4 226 2125 4052 Sokrates C4 226

Elimination bei 1:1-Beziehung Professoren 1 Dienstzimmer 1 Räume PersNr...... RaumNr... Professoren : {[ PersNr, Name, Rang ] } Räume : {[ RaumNr, Größe, Lage ] } Dienstzimmer: {[ PersNr, RaumNr ] } Professoren : {[ PersNr, Name, Rang, Raum] } Räume : {[ RaumNr, Größe, Lage ] } Professoren : {[ PersNr, Name, Rang] } Räume : {[ RaumNr, Größe, Lage, ProfPersNr ] } Obacht: Nullwerte!

Generalisierung Professoren : {[ PersNr, Name, Rang, Raum] } Assistenten : {[ PersNr, Name, Fachgebiet] } Obertyp mit Gemeinsamkeiten: Angestellte : {[ PersNr, Name] } Aber: Die Information zu [2125, Sokrates, C4, 226] ist jetzt verteilt auf [2125, Sokrates] [2125, C4, 226]

Schwacher Entity-Typ Größe RaumNr GebNr Höhe Räume N 1 liegt_in Gebäude Beziehung liegt_in wird verlagert in den Entity-Typ Räume: Räume : {[ GebNr, RaumNr, Größe] } Die Beziehung bewohnt : Professoren Räume erfordert drei Attribute bewohnt : {[ PersNr, GebNr, RaumNr] } Alternative (bei geringer Gebäudeinformation): Professoren: {[PersNr, Name, Rang, Raum]}

Relationenschema Studenten : {[ MatrNr : integer, Name : string, Semester : integer] } Vorlesungen: {[ VorlNr:integer, Titel:string, SWS:integer, gelesenvon:integer] } Professoren :{[ PersNr :integer, Name:string, Rang : string, Raum : integer] } Assistenten :{[ PersNr :integer, Name:string,Fachgebiet :string, Boss:integer] } hören :{[ MatNr : integer, VorlNr : integer] } Voraussetzen :{[ Vorgänger : integer, Nachfolger : integer] } prüfen :{[ MatrNr :integer, VorlNr :integer, PersNr :integer, Note :decimal] }

Ausprägung Professoren, Assistenten Professoren Assistenten PersNr Name Rang Raum 2125 Sokrates C4 226 2126 Russel C4 232 2127 Kopernikus C3 310 2133 Popper C3 52 2134 Augustinus C3 309 2136 Curie C4 36 2137 Kant C4 7 PersNr Name Fachgebiet Boss 3002 Platon Ideenlehre 2125 3003 Aristoteles Syllogistik 2125 3004 Wittgenstein Sprachtheorie 2126 3005 Rhetikus Planetenbewegung 2127 3006 Newton Keplersche Gesetze 2127 3007 Spinoza Gott und Natur 2134

Ausprägung Vorlesungen, Studenten Vorlesungen Studenten VorlNr Titel SWS gelesenvon 5001 Grundzüge 4 2137 5041 Ethik 4 2125 5043 Erkenntnistheorie 3 2126 5049 Mäeutik 2 2125 4052 Logik 4 2125 5052 Wissenschaftstheorie 3 2126 5216 Bioethik 2 2126 5259 Der Wiener Kreis 2 2133 5022 Glaube und Wissen 2 2134 4630 Die 3 Kritiken 4 2137 MatrNr Name Semester 24002 Xenokrates 18 25403 Jonas 12 26120 Fichte 10 26830 Aristoxenos 8 27550 Schopenhauer 6 28106 Carnap 3 29120 Theophrastos 2 29555 Feuerbach 2

Ausprägung hören, voraussetzen, prüfen voraussetzen hören Vorgänger Nachfolger MatrNr VorlNr 26120 5001 27550 5001 27550 4052 27550 5041 28106 4052 28106 5216 28106 5259 27550 4630 29120 5041 29120 5049 29555 5022 25403 5022 29555 5001 5001 5041 5001 5043 5001 5049 5041 5216 5043 5052 5041 5052 5052 5259 prüfen MatrNr VorlNr PersNr Note 28106 5001 2126 1.0 25403 5041 2125 2.0 27550 4630 2137 2.0

Abfragesprachen Relationenalgebra (prozedural): konstruktive Verknüpfung; Operatoren:,,... Relationenkalkül (deklarativ): Beschreibung des gewünschten Ergebnisses mit Formel der Prädikatenlogik 1. Stufe unter Verwendung von,,,,, Query by Example (für Analphabeten): Ausfüllen eines Gerüstes mit Beispiel-Einträgen SQL (kommerziell): umgangssprachliche Mischung aus Relationenalgebra und Relationenkalkül

Relationenalgebra Operanden = Relationen Operatoren: σ Selektion π Projektion Vereinigung abgeleitete Operatoren: Verbund Durchschnitt Division Mengendifferenz Kartesisches Produkt ρ Umbenennung

Selektion σ Semester >10 (Studenten) MatNr Name Semester 24002 Xenokrates 18 25403 Jonas 12 Selektionsprädikat durch Formel mit Attributnamen oder Konstanten als Operanden arithmetische Vergleichsoperatoren < = > logische Operatoren:

Projektion Π Rang (Professoren) Rang C4 C3 per definitionem keine Duplikate!

Vereinigung Π PersNr, Name (Assistenten) Π PersNr, Name (Professoren) PersNr Name 2125 Sokrates 3002 Platon...

Mengendifferenz Π MatrNr (Studenten) Π MatrNr (prüfen) MatrNr 24002 26120 26830...

Kartesisches Produkt Professoren hören PersNr Name Rang Raum MatrNr VorlNr 2125 Sokrates C4 226 26120 5001 2125 Sokrates C4 226 29555 5001 2137 Kant C4 7 29555 5001 sch(r S) := sch(r) sch(s). Ggf. durch Voranstellung des Relationennamens identifizieren: R.A

Umbenennung von Relationen und Attributen ρ Dozenten (Professoren) ρ Zimmer Raum (Professoren) finde Vorgänger vom Vorgänger von Vorlesung 5216: Π V1.Vorgänger (σ V1.Nachfolger = V2.Vorgänger V2.Nachfolger=5216 (ρ V1 (voraussetzen) ρ V2 (voraussetzen))) V1 V2 Vorgänger Nachfolger Vorgänger Nachfolger 5001 5041 5001 5041 5001 5041 5041 5216 5052 5259 5052 5259

Relationenalgebra Operanden = Relationen Operatoren: σ Selektion π Projektion Vereinigung abgeleitete Operatoren: Verbund Durchschnitt Division Mengendifferenz Kartesisches Produkt ρ Umbenennung

Natürlicher Verbund (Join) R habe m+k Attribute A 1, A 2,,..., A m, B 1, B 2,,..., B k S habe n+k Attribute B 1, B 2,,..., B k, C 1, C 2,,..., C n R S := Π A1,..., A m, R.B 1,..., R.B k, C 1,...,C n (σ R.B1 =S.B 1... R.B k =S.B k (R S)) (Studenten hören) Vorlesungen Studenten (hören Vorlesungen) Studenten hören Vorlesungen MatrNr Name Semester VorlNr Titel SWS gelesenvon 26120 Fichte 10 5001 Grundzüge 4 2137 25403 Jonas 12 5022 Glaube und Wissen 2 2137 28106 Carnap 3 4052 Wissenschaftstheorie 3 2126.....................

Natürlicher Verbund mit Umbenennung Vorlesungen der C4-Professoren: Namen der C4-Professoren mit ihren Vorlesungstiteln: Π Name, Titel (Professoren ρ PersNr gelesenvon (Vorlesungen)) Name Titel Sokrates Logik Sokrates Ethik Sokrates Mäeutik Kant Die 3 Kritiken Kant Grundzüge......

Theta-Join Statt Gleichheit bei Attributen jetzt Prädikat θ: R A1 < B1 A 2 =B 2 A 3 < B 5 S gleichwertig zu R θ S := σ θ (R S) Erweitere Professoren und Assistenten um ein Attribut Gehalt. Verbinde Professoren mit höherverdienenden Assistenten: Professoren Professoren.Gehalt < Assistenten.Gehalt Boss =Professoren.PersNr Assistenten

Outer Join Bisher: Inner Join (Tupel ohne Partner gehen verloren) Jetzt: Outer Join (rette partnerlose Tupel): left outer join: Tupel der linken Argumentrelation bleiben erhalten right outer join: Tupel der rechten Argumentrelation bleiben erhalten full outer join: Tupel beider Argumentrelationen bleiben erhalten

Outer Joins L A B C a 1 b 1 c 1 a 2 b 2 c 2 R C D E c 1 d 1 e 1 c 3 d 2 e 2 inner Join A B C D E a 1 b 1 c 1 d 1 e 1 left outer Join right outer Join outer Join A B C D E a 1 b 1 c 1 d 1 e 1 a 2 b 2 c 2 - - A B C D E a 1 b 1 c 1 d 1 e 1 - - c 3 d 2 e 2 A B C D E a 1 b 1 c 1 d 1 e 1 a 2 b 2 c 2 - - - - c 3 d 2 e 2

Mengendurchschnitt Personalnummer der C4-Professoren, die mindestens eine Vorlesung halten: Π PersNr (ρ PersNr gelesenvon (Vorlesungen)) Π PersNr (σ Rang=C4 (Professoren)) Äquivalenz: R S = R \(R \S) R S