Grundlagen des relationalen Modells

Ähnliche Dokumente
Datenbanksysteme SS 2007

Datenbanksysteme SS 2007

Das relationale Modell

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

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

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

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

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

Referentielle Integrität

Referentielle Integrität

Aufgabensammlung SQL SW4 1. Einfache Anfragen

Datenbanksysteme (1)

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

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


Anfragebearbeitung 3

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

Kapitel DB:V (Fortsetzung)

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

3. Das Relationale Datenmodell

VO Datenmodellierung. Katrin Seyr

9. Einführung in Datenbanken

Kapitel 3: Datenbanksysteme

Objektorientierte Datenbanken

Es wird empfohlen folgendes Material anzusehen:

Datenbankmodelle 2. Das relationale Modell

Datenbanken: ER-Modell

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

Objektrelationale Datenbanken

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

Kapitel 3: Datenbanksysteme

Kapitel 3: Die Relationale Algebra

Probabilistische Datenbanken

1. Übungsblatt 3.0 VU Datenmodellierung

Grundlagen: Datenbanken WS 15/16

1. Übungsblatt 3.0 VU Datenmodellierung

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

Logische Datenmodelle

Microsoft SQL-Server Enterprise-Manager

Datenbanken: Relationales Datenbankmodell RDM

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

Einführung und Überblick

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

Relationale Datenbanken

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

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

Kapitel 3: Das relationale DB-Modell & SQL

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo.

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

1. Übungsblatt 3.0 VU Datenmodellierung

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

Objektrelationale und erweiterbare Datenbanksysteme

1. Funktionen und Datenflüsse; Tabellenkalkulationssysteme

Datenbanksysteme 2015

Terminologie. Kapitel 15 Verteilte Datenbanken. Verteiltes Datenbanksystem. Kommunikationsmedien

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

Relationales Datenmodell

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

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

Einführung. Kapitel 1 2 / 508

Design Theorie für relationale Datenbanken

Datenbanken. Sommersemester 2010 Probeklausur

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

Übungen zur Vorlesung. Mobile und Verteilte Datenbanken. WS 2008/2009 Blatt 6. Lösung

Kapitel DB:III. III. Konzeptueller Datenbankentwurf

Datenbanksysteme 2011

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

Null-Werte in Relationalen Datenbanken

2. Übungsblatt 3.0 VU Datenmodellierung

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

Relationale Entwurfstheorie

SQL. Kapitel 4 SQL 121 / 508

Informatik II Datenorganisation Datenbanken

Verteilte Datenbanken. Kapitel / 520

Mai Hauptseminar: Nichtrelationale Datenbanken Historisch-Kulturwissenschaftliche Informationsverarbeitung Universität zu Köln

Datenbanken. Einführung. Tobias Galliat. Sommersemester 2012

Kapitel 3: Datenbanksysteme

Inhalt. Datenbanken 1. Inhalt. Literatur und Quellen. Relationale Algebra

Tag 4 Inhaltsverzeichnis

DMG. Zusammenfassung Datenmanagement

Einführung in das Entity-Relationship-Modell

Schlüssel bei temporalen Daten im relationalen Modell

Weitere Beweistechniken und aussagenlogische Modellierung

Teil III. Relationale Datenbanken Daten als Tabellen

Datenbankentwurf. Entwicklungsprozess Anforderungsanalyse & Miniwelt

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

SQL: statische Integrität

Übung Datenbanken in der Praxis. Relationale Algebra

4. Relationen. Beschreibung einer binären Relation

Mengenlehre gibt es seit den achtziger Jahren des 19. Jahrhunderts. Sie wurde von

4. Structured Query Language (SQL)

Transkript:

Grundlagen des relationalen Modells Seien D 1, D,, D n Domänen (Wertebereiche, Mengen) Eine Relation ist eine Teilmenge R D 1 x x D n Bsp.: Telefonbuch string x string x integer Ein Tupel ist jedes Element t R von R Bsp.: t = ( Mickey Mouse, Main Street, 4711) Schema: legt die Struktur der gespeicherten Daten fest Bsp.: Telefonbuch: {[Name: string, Adresse: string, Telefon#:integer]}

Name Mickey Mouse Mini Mouse Donald Duck Telefonbuch Straße Main Street Broadway Broadway Telefon# 4711 9475 9567 Ausprägung: der aktuelle Zustand der Datenbasis Schlüssel: minimale Menge von Attributen, deren Werte ein Tupel eindeutig identifizieren Primärschlüssel: wird unterstrichen Einer der Schlüsselkandidaten wird als Primärschlüssel ausgewählt Hat eine besondere Bedeutung bei der Referenzierung von Tupeln

Name Mickey Mouse Mini Mouse Donald Duck Telefonbuch Straße Main Street Broadway Broadway Telefon# 4711 9475 9567 Die Festlegung eines (Primär-)Schlüssels ist eine Designentscheidung. Bei einer gegebenen Datenbank wird dann bei einer Konsistenzprüfung überprüft, ob sie dieser Einschränkung gehorcht.

Uni-Schema MatrNr Name Semester Studenten N N voraussetzen Nachfolger Vorgänger N M hören Vorlesungen M M N VorlNr SWS Titel Note prüfen lesen PersNr 1 1 Rang Name Assistenten N arbeitenfür 1 Professoren Raum Fachgebiet PersNr Name

Relationale Darstellung von Entitytypen 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]}

Relationale Darstellung von Beziehungen A 11 E 1 A 1 E E n R A 1k1 A R 1 R A k R A k A n1 A nk n R R A11,., A1 k, A1,, A,, 1,,, 1,, 1 k A n Ank A A n kr 1443 1443 1443 1443 R:{[ ]} Schlüsselvon E 1 Schlüsselvon E Schlüsselvon E n Attributevon R

Ausprägung der Beziehung hören 5001 9555 50 5403 50 9555 5049 910 5041 910 5001 910 559 8106 516 8106 505 8106 5041 8106 VorlNr MatrNr 5001 610 405 7550 5001 7550 hören VorlNr 5001 405 Vorlesungen MatrNr 610 7550 Studenten Studenten hören Vorlesungen M N MatrNr VorlNr

Beziehungen unseres Beispiel- Schemas hören : {[MatrNr: integer, VorlNr: integer]} lesen : {[PersNr: integer, VorlNr: integer]} arbeitenfür : {[AssistentenPersNr: integer, ProfPersNr: integer]} voraussetzen : {[Vorgänger: integer, Nachfolger: integer]} prüfen : {[MatrNr: integer, VorlNr: integer, PersNr: integer, Note: decimal]}

Schlüssel der Relationen hören : {[MatrNr: integer, VorlNr: integer]} lesen : {[PersNr: integer, VorlNr: integer]} arbeitenfür : {[AssistentenPersNr: integer, ProfPersNr: integer]} voraussetzen : {[Vorgänger: integer, Nachfolger: integer]} prüfen : {[MatrNr: integer, VorlNr: integer, PersNr: integer, Note: decimal]}

Verfeinerung des relationalen Schemas Professoren 1 lesen N Vorlesungen 1:N-Beziehung Initial-Entwurf Vorlesungen : {[VorlNr, Titel, SWS]} Professoren : {[PersNr, Name, Rang, Raum]} lesen: {[VorlNr, PersNr]} 1

Verfeinerung des relationalen Schemas 1:N-Beziehung Initial-Entwurf Vorlesungen : {[VorlNr, Titel, SWS]} Professoren : {[PersNr, Name, Rang, Raum]} lesen: {[VorlNr, PersNr]} Verfeinerung durch Zusammenfassung Vorlesungen : {[VorlNr, Titel, SWS, gelesenvon]} Professoren : {[PersNr, Name, Rang, Raum]} Regel Relationen mit gleichem Schlüssel kann man zusammenfassen aber nur diese und keine anderen!

Ausprägung von Professoren und Vorlesung PersNr 15 16 17 133 134 136 137 Professoren Name Sokrates Russel Kopernikus Popper Augustinus Curie Kant Rang Raum C4 C4 C3 C3 C3 C4 C4 6 3 310 5 309 36 7 VorlNr 5001 5041 5043 5049 405 505 516 559 50 4630 Vorlesungen Titel Grundzüge Ethik Erkenntnistheorie Mäeutik Logik Wissenschaftstheorie Bioethik Der Wiener Kreis Glaube und Wissen Die 3 Kritiken SWS 4 4 3 4 3 4 Gelesen Von 137 15 16 15 15 16 16 133 134 137 Professoren 1 lesen N Vorlesungen

Vorsicht: So geht es NICHT Professoren PersNr Name Rang Raum 15 Sokrates C4 6 15 Sokrates C4 6 15 Sokrates C4 6 134 Augustinus C3 309 136 Curie C4 36 Vorlesungen VorlNr Titel 5001 Grundzüge liest 5041 Ethik 5041 5043 Erkenntnistheorie 5049 5049 Mäeutik 405 405 Logik 505 Wissenschaftstheorie 50 516 Bioethik?? 559 Der Wiener Kreis 50 Glaube und Wissen 4630 Die 3 Kritiken SWS 4 4 3 4 3 4 Professoren 1 lesen N Vorlesungen

Vorsicht: So geht es NICHT: Folgen Anomalien PersNr 15 15 15 134 136 Professoren Name Sokrates Sokrates Sokrates Augustinus Curie Rang Raum C4 C4 C4 C3 C4 6 6 6 309 36 liest 5041 5049 405 50?? Vorlesungen VorlNr Titel 5001 Grundzüge 5041 Ethik 5043 Erkenntnistheorie 5049 Mäeutik 405 Logik 505 Wissenschaftstheorie 516 Bioethik 559 50 4630 Der Wiener Kreis Glaube und Wissen Die 3 Kritiken Update-Anomalie: Was passiert wenn Sokrates umzieht? Lösch-Anomalie: Was passiert wenn Glaube und Wissen wegfällt? Einfügeanomalie: Curie ist neu und liest noch keine Vorlesungen? ( Funktionale Abhängigkeiten) SWS 4 4 3 4 3 4

Relationale Modellierung der Generalisierung Fachgebiet Assistenten is_a Angestellte Professoren PersNr Name Raum Rang Angestellte: {[PersNr, Name]} Professoren: {[PersNr, Rang, Raum]} Assistenten: {[PersNr, Fachgebiet]}

Relationale Modellierung schwacher Entitytypen Studenten 1 ablegen N Prüfungen Note PrüfTeil MatrNr umfassen N N abhalten VorlNr M M PersNr Vorlesungen Professoren Prüfungen: {[MatrNr: integer, PrüfTeil: string, Note: integer]} umfassen: {[MatrNr: integer, PrüfTeil: string, VorlNr: integer]} abhalten: {[MatrNr: integer, PrüfTeil: string, PersNr: integer]}

Man beachte, dass in diesem Fall der (global eindeutige) Schlüssel der Relation Prüfung nämlich MatrNr und PrüfTeil als Fremdschlüssel in die Relationen umfassen und abhalten übernommen werden muss.

Die relationale Uni-DB Raum Rang Name PersNr 6 C4 Sokrates 15 7 C4 Kant 137 36 C4 Curie 136 309 C3 Augustinus 134 5 C3 Popper 133 310 C3 Kopernikus 17 3 C4 Russel 16 Professoren Semester Name MatrNr 18 Xenokrates 400 Feuerbach 9555 Theophrastos 910 3 Carnap 8106 6 Schopenhauer 7550 8 Aristoxenos 6830 10 Fichte 610 1 Jonas 5403 Studenten 137 4 Die 3 Kritiken 4630 134 Glaube und Wissen 50 133 Der Wiener Kreis 559 gelesen von SWS Titel VorlNr 137 4 Grundzüge 5001 16 Bioethik 516 16 3 Wissenschaftstheorie 505 15 4 Logik 405 15 Mäeutik 5049 16 3 Erkenntnistheorie 5043 15 4 Ethik 5041 Vorlesungen Nachfolger Vorgänger 5041 5001 559 505 505 5041 505 5043 516 5041 5049 5001 5043 5001 voraussetzen 516 8106 50 5403 50 9555 5049 910 5041 910 VorlNr MatrNr 5001 610 5001 910 559 8106 505 8106 5041 8106 405 7550 5001 7550 hören Boss Fachgebiet Name PerslNr 15 Ideenlehre Platon 300 16 Gott und Natur Spinoza 3007 17 Keplersche Gesetze Newton 3006 17 Planetenbewegung Rhetikus 3005 16 Sprachtheorie Wittgenstein 3004 15 Syllogistik Aristoteles 3003 Assistenten Note PersNr VorlNr MatrNr 1 16 5001 8106 137 4630 7550 15 5041 5403 prüfen

Rang Raum Name ersnr 6 C4 Sokrates 15 7 C4 Kant 137 36 C4 Curie 136 309 C3 Augustinus 134 5 C3 Popper 133 310 C3 Kopernikus 17 3 C4 Russel 16 Professoren Mat Semester Name rnr 18 Xenokrates 400 Feuerbach 9555 Theophrastos 910 3 Carnap 8106 6 Schopenhauer 7550 8 Aristoxenos 6830 10 Fichte 610 1 Jonas 5403 Studenten 137 4 Die 3 Kritiken 4630 134 Glaube und Wissen 50 133 Der Wiener Kreis 559 gelesen Von SWS Titel VorlNr 137 4 Grundzüge 5001 16 Bioethik 516 16 3 Wissenschaftstheorie 505 15 4 Logik 405 15 Mäeutik 5049 16 3 Erkenntnistheorie 5043 15 4 Ethik 5041 Vorlesungen Nachfolger Vorgänger 5041 5001 559 505 505 5041 505 5043 516 5041 5049 5001 5043 5001 voraussetzen 516 8106 50 5403 50 9555 5049 910 5041 910 VorlNr MatrNr 5001 610 5001 910 559 8106 505 8106 5041 8106 405 7550 5001 7550 hören Boss Fachgebiet Name PerslNr 15 Ideenlehre Platon 300 16 Gott und Natur Spinoza 3007 17 Keplersche Gesetze Newton 3006 17 Planetenbewegung Rhetikus 3005 16 Sprachtheorie Wittgenstein 3004 15 Syllogistik Aristoteles 3003 Assistenten Note PersNr VorlNr MatrNr 1 16 5001 8106 137 4630 7550 15 5041 5403 prüfen

Die relationale Algebra σ Selektion π Pojektion x Kreuzprodukt A Join (Verbund) ρ Umbenennung Mengendifferenz Division Vereinigung Mengendurchschnitt F Semi-Join (linker) E Semi-Join (rechter) C linker äußerer Join D rechter äußerer Join

Die relationalen Algebra- Operatoren Selektion σ Semester > 10 (Studenten) σ Semester > 10 (Studenten) MatrNr Name Semester 400 Xenokrates 18 5403 Jonas 1 In der Selektion σ F (R) ist das Selektionsprädikat F eine Formel, die aufgebaut ist aus Attributnamen von R und Konstanten =, <, >,,, den logischen Operatoren,, Das Ergebnis von σ F (R) besteht aus allen Tupeln t R, die F erfüllen, wenn jedes Auftreten eines Attributes A durch den Wert t.a ersetzt wird.

Die relationalen Algebra- Operatoren Projektion Π Rang (Professoren) Π Rang (Professoren) Rang C4 C3 Die Projektion wählt (eine oder mehrere) Spalten der Relation aus. Duplikate im Ergebnis werden nur einmal gelistet (aufgrund der Mengensemantik des Relationenkalküls)

Die relationalen Algebra- Operatoren MatrNr Studenten Name Semester Vereinigung 400 5403 610 Xenokrates Jonas Fichte Studenten 18 1 10 = MatrNr 400 5403 610 6830 Studenten Name Xenokrates Jonas Fichte Aristoxenos Semester 18 1 10 8 MatrNr Name Semester 7550 Schopenhauer 6 6830 Aristoxenos 8 8106 Carnap 3 7550 Schopenhauer 6 910 Theophrastos 8106 910 Carnap Theophrastos 3 9555 Feuerbach 9555 Feuerbach Relationen mit gleichem Schema können vereinigt werden.

MatrNr 400 5403 610 6830 7550 8106 910 9555 MatrNr 6830 7550 8106 910 9555 1345 Die relationalen Algebra- Studenten Name Semester Xenokrates 18 Jonas 1 Fichte 10 Aristoxenos 8 Schopenhauer 6 Carnap 3 Theophrastos Feuerbach - Studenten Name Aristoxenos Schopenhauer Carnap Theophrastos Feuerbach Waalkes Operatoren Differenz = Studenten MatrNr Name Semester 400 Xenokrates 18 5403 Jonas 1 610 Fichte 10 Semester 8 6 3 Von Relationen mit gleichem Schema kann die Mengendifferenz gebildet werden.

Die relationalen Algebra- Operatoren Kartesisches Produkt Professoren x hören PersNr 15 15 137 Professoren hören Name Rang Raum MatrNr VorlNr Sokrates C4 6 610 5001 Sokrates C4 6 9555 5001 Kant C4 7 9555 5001 Das Schema enthält alle Attribute beider Relationen. Die Relation enthält alle n m möglichen Kombinationen der jeweiligen Tupel der beiden Relationen.

Die relationalen Algebra- Operatoren Kartesisches Produkt Professoren x hören PersNr 15 15 137 Professoren hören Name Rang Raum MatrNr VorlNr Sokrates C4 6 610 5001 Sokrates C4 6 9555 5001 Kant C4 7 9555 5001 Problem: riesige Zwischenergebnisse Beispiel: (Professoren x hören) "bessere" Operation: Join (siehe unten)

Umbenennung Die relationalen Algebra- Operatoren Umbenennung von Relationen Beispiel: Ermittlung indirekter Vorgänger. Stufe der Vorlesung 516 Π V1. Vorgänger( σ V. Nachfolger=516 V1.Nachfolger = V.Vorgänger ( ρ V1 (voraussetzen) x ρ V (voraussetzen))) Umbenennung von Attributen ρ Voraussetzung Vorgänger (voraussetzen)

Formale Definition der Algebra Basisausdrücke Relation der Datenbank oder konstante Relationen Operationen Selektion: σ p (E 1 ) Projektion: Π S (E 1 ) Kartesisches Produkt: E 1 x E Umbenennung: ρ V (E 1 ), ρ A B (E 1 ) Vereinigung: E 1 E Differenz: E 1 -E Weitere Operationen können aus diesen zusammengesetzt werden

Der natürliche Verbund (Join) Gegeben seien: R(A 1,, A m, B 1,, B k ) S(B 1,, B k, C 1,, C n ) R A S = Π A1,, Am, R.B1,, R.Bk, C1,, Cn (σ R.B1=S. B1 R.Bk = S.Bk (RxS)) A 1 R S A A m B 1 R A S R S B B k C 1 S R C C n

Drei-Wege-Join (Studenten A hören) A Vorlesungen (Studenten A hören) A Vorlesungen MatrNr Name Semester VorlNr Titel SWS gelesenvon 610 Fichte 10 5001 Grundzüge 4 137 7550 Jonas 1 50 Glaube und Wissen 134 8106 Carnap 3 405 Wissenschftstheorie 3 16

Allgemeiner Join (Theta-Join) Gegeben seien folgende Relationen(-Schemata) R(A1,, An) und S(B1,, Bm) R A θ S = σ θ (R x S) R A θ S A 1 R A A n R A θ S B 1 S B B m

natürlicher Join Andere Join-Arten L A B C a 1 b 1 b a c 1 c A R C D E c 1 d 1 d c 3 e 1 e = A a 1 Resultat B C D b 1 c 1 d 1 E e 1 linker äußerer Join L A B C a 1 b 1 b a c 1 c R C C D E c 1 d 1 e 1 = c 3 d e Resultat A B C D E a 1 b 1 c 1 d 1 e 1 a b c - -

rechter äußerer Join L A B C a 1 b 1 b a c 1 c R D C D E c 1 d 1 e 1 = c 3 d e A a 1 - Resultat B C D b 1 c 1 d 1 - c 3 d E e 1 e

Andere Join-Arten äußerer Join L R A B C C D E a 1 b 1 c B 1 c 1 d 1 e 1 = a c 3 b c d e Resultat A B C D E a 1 b 1 c 1 d 1 e 1 a b c - - - - c 3 d e Semi-Join von L mit R L A B C a 1 b 1 b a c 1 c R E C D E c 1 e 1 = c 3 d 1 d e Resultat A B C a 1 b 1 c 1

Andere Join-Arten (Forts.) Semi-Join von R mit L L A B C a 1 b 1 b a c 1 c F R C D E c 1 d 1 d c 3 e 1 e = Resultat C D E c 1 d 1 e 1

Die relationale Division Bsp.: Finde MatrNr der Studenten, die alle vierstündigen Vorlesungen hören L := Π VorlNr (σ SWS=4 (Vorlesungen)) L hören Π VorlNr (σ SWS=4 (Vorlesungen))

Definition der Division t R S, falls für jedes ts S ein tr R existiert, so dass gilt: tr.s = ts.s tr.(r-s) = t M m 1 m 1 R V v 1 v m 1 v 3 m v m v 3 S V = v 1 v R S Die Division R S kann auch durch Differenz, Kreuzprodukt und Projektion ausgedrückt werden. R S = Π (R S) (R) Π (R S) ((Π (R S) (R) x S) R) M m 1

Mengendurchschnitt Als Beispielanwendung für den Mengendurchschnitt (Operatorsymbol ) betrachten wir folgende Anfrage: Finde die PersNr aller C4-Professoren, die mindestens eine Vorlesung halten. Π PersNr (ρ PersNr gelesenvon (Vorlesungen)) Π PersNr (σ Rang=C4 (Professoren)) Mengendurchschnitt nur auf zwei Argumentrelationen mit gleichem Schema anwendbar Deshalb ist die Umbenennung des Attribute gelesenvon in PersNr in der Relation Vorlesungen notwendig Der Mengendurchschnitt zweier Relationen R S kann durch die Mengendifferenz wie folgt ausgedrückt weden: R S = R (R S)

Der relationale Tupel-kalkül Eine Anfrage im relationalen Tupel-Kalkül hat die Form {t P(t)} mit P(t) Formel. Beispiele: C4-Professoren {p p Professoren p.rang = 'C4'} Studenten mit mindestens einer Vorlesung von Curie {s s Studenten h hören(s.matrnr=h.matrnr v Vorlesungen(h.VorlNr=v.VorlNr p Professoren(p. PersNr=v.gelesenVon p.name = 'Curie')))}

Wer hat alle vierstündigen Vorlesungen gehört {s s Studenten v Vorlesungen (v.sws=4 h hören(h.vorlnr=v.vorlnr h.matrnr= s.matrnr))}

Definition des Tupelkalküls Atome s R, mit s Tupelvariable und R Relationenname s.a φt.b, mit s und t Tupelvariablen, A und B Attributnamen und φ Vergleichsperator (=,,, ) s. A φ c mit c Konstante Formeln Alle Atome sind Formeln Ist P Formel, so auch P und (P) Sind P 1 und P Formeln, so auch P 1 P, P 1 P und P 1 P Ist P(t) Formel mit freier Variable t, so auch t R(P(t)) und t R(P(t))

Sicherheit Einschränkung auf Anfragen mit endlichem Ergebnis. Die folgende Beispielanfrage {n (n Professoren)} ist nicht sicher, denn das Ergebnis ist unendlich. Lösung durch Zusatzbedingung: Das Ergebnis des Ausdrucks muss Teilmenge der Domäne der Formel sein. Die Domäne einer Formel enthält - alle in der Formel vorkommenden Konstanten - alle Attributwerte von Relationen, die in der Formel referenziert werden

Der relationale Domänenkalkül Ein Ausdruck des Domänenkalküls hat die Form {[v 1, v,, v n ] P (v 1,, v n )} mit v 1,, v n Domänenvariablen und P Formel. Beispiel: MatrNr und Namen der Prüflinge von Curie {[m, n] s ([m, n, s] Studenten v, p, g ([m, v, p,g] prüfen a,r, b([p, a, r, b] Professoren a = 'Curie')))}

Sicherheit des Domänenkalküls Sicherheit ist analog zum Tupelkakkül zum Beispiel ist {[p,n,r,o] ([p,n,r,o] Professoren) } nicht sicher. Ein Ausdruck {[x 1, x,, x n ] P(x 1, x,, x n )} ist sicher, falls folgende drei Bedingungen gelten:

1. Falls Tupel [c 1, c,, c n ] mit Konstante c i im Ergebnis enthalten ist, so muss jedes c i (1 i n) in der Domäne von P enthalten sein.. Für jede existenz-quantifizierte Teilformel x(p 1 (x)) muss gelten, dass P 1 nur für Elemente aus der Domäne von P 1 erfüllbar sein kann - oder evtl. für gar keine. Mit anderen Worten, wenn für eine Konstante c das Prädikat P 1 (c) erfüllt ist, so muss c in der Domäne von P 1 enthalten sein. 3. Für jede universal-quantifizierte Teilformel x(p 1 (x)) muss gelten, dass sie dann und nur dann erfüllt ist, wenn P 1 (x) für alle Werte der Domäne von P 1 erfüllt ist- Mit anderen Worten, P 1 (d) muss für alle d, die nicht in der Domäne von P 1 enthalten sind, auf jeden Fall erfüllt sein.

Ausdruckskraft Die drei Sprachen 1. relationale Algebra,. relationaler Tupelkalkül, eingeschränkt auf sichere Ausdrücke und 3. relationaler Domänenkalkül, eingeschränkt auf sichere Ausdrücke sind gleich mächtig.