Sie sind auf Seite 1von 57

Das relationale Modell

Das relationale Modell


VO Datenmodellierung

Katrin Seyr
Institut fur Informationssysteme Technische Universitt Wien a

Katrin Seyr

Seite 1

Das relationale Modell

1. Uberblick

Uberblick

1 2 3

Uberblick Begriserklrungen a Umsetzung des konzeptuellen in logisches (relationales) Schema


Entitytypen, Beziehungstypen Funktionalitt, Generalisierung, schwache Entities a

Datenabfragesprachen
Relationale Algebra Relationenkalkul

Ausdruckskraft von Abfragesprachen

Katrin Seyr

Seite 2

Das relationale Modell

2. Begriserklrungen a

Begriserklrungen a

Denition (Relation)
Seien D1 , D2 , . . . , Dn Domnen (Wertebereiche) a Eine Relation (=Tabelle) uber den n Domnen ist deniert als eine Teilmenge a des kartesischen Produktes der n Domnen: a R D 1 Dn

Beispiel
R string string integer

Katrin Seyr

Seite 3

Das relationale Modell

2. Begriserklrungen a

Begriserklrungen a
Denition (Tupel)
Ein Tupel (=Zeile) ist ein Element der Relation tR

Beispiel
t = (Mickey Mouse, Main Street, 4711) Ziel: Kombination des mathematischen Formalismus mit der Datenmodellierung Weg: durch Vergabe von Namen an Relationen und an die Komponenten der Tupel. erhalten das Schema der Daten.

Katrin Seyr

Seite 4

Das relationale Modell

2. Begriserklrungen a

Begriserklrungen a
Beispiel
Das Telefonbuch ist ein Beispiel fur eine Relation. Ein Tupel daraus besteht aus den Komponenten Name, Strae und Telefonnummer. Telefonbuch: {[Name: string, Adresse: string, Telefonnr:integer]}

Telefonbuch Name Mickey Mouse Minnie Mouse Donald Duck ... Strae Main Street Broadway Highway ... Telefonnr 4711 94725 95672 ...

Katrin Seyr

Seite 5

Das relationale Modell

2. Begriserklrungen a

2.1. Schlssel u

Schlussel

Denition (Schlussel)
Ein Schlussel ist eine minimale Menge von Attributen, deren Werte ein Tupel eindeutig identizieren. Im Allgemeinen hat eine Relation mehrere mgliche Schlussel. Einer dieser o Schlusselkandidaten wird im Relationenmodell als Primrschlussel mittels a Unterstreichen gekennzeichnet.

Beispiele
Telefonbuch: {[Name: string, Adresse: string, Telefonnr:integer]} Telefonbuch: {[Name: string, Adresse: string, Telefonnr:integer]}

Katrin Seyr

Seite 6

Das relationale Modell

3. Umsetzung konzeptuelles in logisches Schema

Umsetzung konzeptuelles in logisches Schema


MatrNr Studenten N hren ....... Rang M N lesen Professoren 1 PersNr Vorlesungen Name

VorlNr

.......

Raum

Uberfuhrung des Konzeptuellen Schemas in ein Logisches Schema (in der VL: Relationales Modell)
Studenten hren o MatrNr 26120 24002 24002 ... VorlNr 5001 5001 4052 ... Vorlesungen VorlNr 5001 5041 5049 4052 5216 ... Titel Grundzuge Ethik Meutik a Logik Bioethik ...
Seite 7

MatrNr 24002 25403 26120 26830 28106 29555 ...


Katrin Seyr

Name Xenokrates Jonas Fichte Aristoxenos Carnap Feuerbach ...

Das relationale Modell

3. Umsetzung konzeptuelles in logisches Schema

3.1. Relationale Darstellung von Entitytypen

Relationale Darstellung von Entitytypen

A1 A2 .....

Ak

E : {[A1 : typ1, A2 : typ2, . . . , Ak : typk]}

Katrin Seyr

Seite 8

Das relationale Modell

3. Umsetzung konzeptuelles in logisches Schema

3.1. Relationale Darstellung von Entitytypen

Relationale Darstellung von Entitytypen


Beispiel (Unischema)
N MatrNr Name Semester voraussetzen M

Vorgnger N hren Studenten Vorlesungen M

Nachfolger

VorlNr

SWS

Titel N N prfen PersNr Fachgebiet 1 Name 1 PersNr M lesen

Name Assistenten N arbeitenFr Raum 1 Professoren Rang

Katrin Seyr

Seite 9

Das relationale Modell

3. Umsetzung konzeptuelles in logisches Schema

3.1. Relationale Darstellung von Entitytypen

Relationale Darstellung von Entitytypen

Relationale Darstellung der vier Entitytypen aus dem Unischema 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]}

Katrin Seyr

Seite 10

Das relationale Modell

3. Umsetzung konzeptuelles in logisches Schema

3.2. Relationale Darstellung von Beziehungstypen

Relationale Darstellung von Beziehungstypen


A11

A1k1

E1

AR1

R ARkR

A21

An1

A2k2

E2

Ank2

En

R : {[A11 , . . . , A1k1 , A21 , . . . , A2k2 , . . . , An1 , . . . , Ankn , AR1 , . . . , ARkR ]}


Schlussel von E 1 Schlussel von E 2 Schlussel von En Attribute von R

Katrin Seyr

Seite 11

Das relationale Modell

3. Umsetzung konzeptuelles in logisches Schema

3.2. Relationale Darstellung von Beziehungstypen

Relationale Darstellung von Beziehungstypen

Relationale Darstellung der funf Beziehungstypen aus dem Unischema horen: {[MatrNr: integer, VorlNr: integer]} (N:M) lesen: {[PersNr: integer, VorlNr: integer]} (1:N) arbeitenFur: {[AssiPersNr: integer, ProfPersNr: integer]} (N:1) voraussetzen: {[Vorgnger: integer, Nachfolger: integer]} (N:M) a prufen: {[MatrNr: integer, VorlNr: integer, PersNr: integer, Note: decimal]} (N:M:1)

Katrin Seyr

Seite 12

Das relationale Modell

3. Umsetzung konzeptuelles in logisches Schema

3.3. N:M Beziehung (hren) o

N:M Beziehung (horen)


MatrNr Name Semester VorlNr SWS Titel

N hren Studenten

M Vorlesungen

Studenten MatrNr 24002 25403 26120 26830 28106 29555 ... Name Xenokrates Jonas Fichte Aristoxenos Carnap Feuerbach ...

hren o MatrNr 26120 24002 24002 ... VorlNr 5001 5001 4052 ...

Vorlesungen VorlNr 5001 5041 5049 4052 5216 ... Titel Grundzuge Ethik Meutik a Logik Bioethik ...

Katrin Seyr

Seite 13

Das relationale Modell

3. Umsetzung konzeptuelles in logisches Schema

3.4. Schlssel von N:M Beziehungen u

Schlussel von N:M Beziehungen

Schlussel einer Relation, die aus einer N:M Beziehung entstanden ist, beinhaltet alle Fremdschlusselattribute der an der Beziehung beteiligten Entities.

Beispiele
horen: {[MatrNr: integer, VorlNr: integer]} (N:M) voraussetzen: {[Vorgnger: integer, Nachfolger: integer]} (N:M) a

Katrin Seyr

Seite 14

Das relationale Modell

3. Umsetzung konzeptuelles in logisches Schema

3.5. 1:N Beziehung (lesen)

1:N Beziehung (lesen)


PersNr Name Rang Raum VorlNr SWS Titel

1 lesen Professoren

N Vorlesungen

Professoren PersNrNr 2125 2126 2127 2133 2134 2136 2137 Name Sokrates Russel Kopernikus Popper Augustinus Curie Kant

lesen PersNr 2137 2125 2125 2125 2126 ... VorlNr 5001 5041 5049 4052 5216 ...

Vorlesungen VorlNr 5001 5041 5049 4052 5216 ... Titel Grundzuge Ethik Meutik a Logik Bioethik ...

Katrin Seyr

Seite 15

Das relationale Modell

3. Umsetzung konzeptuelles in logisches Schema

3.6. Schlssel von 1:N Beziehungen u

Schlussel von 1:N Beziehungen

Schlussel einer Relation, die aus einer 1:N Beziehung entstanden ist, beinhaltet jene Fremdschlusselattribute, die von der N Seite der an der Beziehung beteiligten Entity stammen.

Beispiele
lesen: {[PersNr: integer, VorlNr: integer]} (1:N) arbeitenFur: {[AssiPersNr: integer, ProfPersNr: integer]} (N:1) prufen: {[MatrNr: integer, VorlNr: integer, PersNr: integer, Note: decimal]} (N:M:1)

Katrin Seyr

Seite 16

Das relationale Modell

3. Umsetzung konzeptuelles in logisches Schema

3.6. Schlssel von 1:N Beziehungen u

Schlussel von 1:N Beziehungen

Wir hatten: Professoren: {[PersNr: integer, Name: string, Rang: string, Raum: integer]} Vorlesungen: {[VorlNr: integer, Titel: string, SWS: integer]} lesen: {[VorlNr: integer, PersNr: integer]} Verfeinerung durch Zusammenfassung von Relationen: Professoren: {[PersNr: integer, Name: string, Rang: string, Raum: integer]} Vorlesungen: {[VorlNr: integer, Titel: string, SWS: integer, lesen.PersNr]} Nur Relationen mit gleichem Schlussel zusammengefassen!

Katrin Seyr

Seite 17

Das relationale Modell

3. Umsetzung konzeptuelles in logisches Schema

3.6. Schlssel von 1:N Beziehungen u

Schlussel von 1:N Beziehungen


PersNr Name Rang Raum VorlNr SWS Titel

1 lesen Professoren

N Vorlesungen

Professoren PersNr 2125 2126 2127 2133 2134 2136 2137 Name Sokrates Russel Kopernikus Popper Augustinus Curie Kant Rang C4 C4 C3 C3 C3 C4 C4 Raum 226 232 310 52 309 36 7 VorlNr 5001 5041 5049 4052 5216 ...

Vorlesungen Titel Grundzuge Ethik Meutik a Logik Bioethik ... SWS 4 4 2 4 2 ... PersNr 2137 2125 2125 2125 2126 ...

Katrin Seyr

Seite 18

Das relationale Modell

3. Umsetzung konzeptuelles in logisches Schema

3.7. Anomalien

Anomalien
Professoren PersNr 2125 2125 2125 2126 ... 2136 2137 Name Sokrates Sokrates Sokrates Russel ... Curie Kant Rang C4 C4 C4 C4 ... C4 C4 Raum 226 226 226 232 ... 36 7 liest 5041 5049 4052 5216 ... ??? 5001 VorlNr 5001 5041 5049 4052 5216 ... Vorlesungen Titel Grundzuge Ethik Meutik a Logik Bioethik ... SWS 4 4 2 4 2 ...

Problem Schlussel: Relation Professoren braucht einen neuen Schlussel Update-Anomalie: Sokrates zieht um Einfuge-Anomalie: Curie ist neu und hlt noch keine Vorlesung. Was ist der a Schlussel? Lsch-Anomalie: Vorlesung Ethik fllt weg o a
Katrin Seyr Seite 19

Das relationale Modell

3. Umsetzung konzeptuelles in logisches Schema

3.8. Nullwerte und deren Vermeidung

Nullwerte und deren Vermeidung


Beispiel
Studierende, die als StudienassistentInnen arbeiten, bekommen einen Arbeitsraum. Es gibt 25.000 Studierende und 200 StudienassistentInnen.
MatrNr Name Semester RaumNr m2 Lage

N sitzen Studenten (0,1)

1 Raum

Studenten: {[MatrNr, Name, Semester]} sitzen: {[Studenten.MatrNr, Raum.RaumNr]} Raum: {[RaumNr, m2, Lage]} Studenten: {[MatrNr, Name, Semester, Raum.RaumNr]} Hier nicht zusammenfassen um Speicherplatz zu sparen und Nullwerte zu vermeiden.
Katrin Seyr Seite 20

Das relationale Modell

3. Umsetzung konzeptuelles in logisches Schema

3.9. 1:1 Beziehung (sitzen)

1:1 Beziehung (sitzen)


PersNr Name Rang RaumNr m2 Lage

1 sitzen Professoren (1,1)

1 Raum (0,1)

Professoren: {[PersNr, Name, Rang]} Raum: {[RaumNr, m2, Lage]} sitzen: {[Professoren.PersNr, Raum.RaumNr]} {[Professoren.PersNr, Raum.RaumNr]} Professoren: {[PersNr, Name, Rang, Raum.RaumNr]} Raum: {[RaumNr, m2, Lage]} Professoren: {[PersNr, Name, Rang]} Raum: {[RaumNr, m2, Lage, Professoren.PersNr]} Achtung: Nullwertvermeidung
Katrin Seyr Seite 21

oder

Das relationale Modell

3. Umsetzung konzeptuelles in logisches Schema

3.10. Relationale Darstellung der Generalierung

Relationale Darstellung der Generalierung

Angestellte

PersNr

Name is-a Rang

Fach

Assistenten

Professoren

Raum

Angestellte: {[PersNr, Name]} Professoren: {[Angestellte.PersNr, Rang, Raum]} Assistenten: {[Angestellte.PersNr, Fachgebiet]}

Katrin Seyr

Seite 22

Das relationale Modell

3. Umsetzung konzeptuelles in logisches Schema

3.11. Relationale Darstellung schwacher Entities

Relationale Darstellung schwacher Entities


MatrNr Name Semester Note

1 ablegen

N Prfungen

PrfTeil

Studenten N N

PersNr

umfassen VorlNr

abhalten Name

SWS

Rang

Titel

Vorlesungen

Professoren

Raum

Prufungen: {[Student.MatrNr, PrufTeil, Note]} umfassen: {[Prufungen.MatrNr, Prufungen.PrufTeil, VorlNr]} abhalten: {[Prufungen.MatrNr, Prufungen.PrufTeil, PersNr]}

Katrin Seyr

Seite 23

Das relationale Modell

3. Umsetzung konzeptuelles in logisches Schema

3.12. Relationale Universittsdatenbank a

Relationale Universittsdatenbank a

Studenten MatrNr 24002 25403 26120 26830 27550 28106 29120 29555 Name Xenokrates Jonas Fichte Aristoxenos Schopenhauer Carnap Theophrastos Feuerbach Sem 18 12 10 8 6 3 2 2 PersNr 2125 2126 2127 2133 2134 2136 2137

Professoren Name Sokrates Russel Kopernikus Popper Augustinus Curie Kant Rang C4 C4 C3 C3 C3 C4 C4 Raum 226 232 310 52 309 36 7

Katrin Seyr

Seite 24

Das relationale Modell

3. Umsetzung konzeptuelles in logisches Schema

3.12. Relationale Universittsdatenbank a

Relationale Universittsdatenbank a
Vorlesungen VorlNr 5001 5041 5043 5049 4052 5052 5216 5259 5022 4630 Titel Grundzuge Ethik Erkenntnistheorie Meutik a Logik Wissenschaftstheorie Bioethik Der Wiener Kreis Glaube und Wissen Die drei Kritiken SWS 4 4 3 2 4 3 2 2 2 4 PersNr 2137 2125 2126 2125 2125 2126 2126 2133 2134 2137 voraussetzen VorgNr 5001 5001 5001 5041 5043 5041 5052 NachfNr 5041 5043 5049 5216 5052 5052 5259

Katrin Seyr

Seite 25

Das relationale Modell

3. Umsetzung konzeptuelles in logisches Schema

3.12. Relationale Universittsdatenbank a

Relationale Universittsdatenbank a
hren o MatrNr 26120 27550 27550 28106 28106 28106 28106 29120 29120 29120 29555 25403 VorlNr 5001 5001 4052 5041 5001 4052 4630 5001 5041 5049 5022 5022 MatrNr 28106 25403 27550 prfen u VorlNr 5001 5041 4630 PersNr 2126 2125 2137 Note 1 2 2 PersNr 3002 3003 3004 3005 3006 3007 Name Platon Aristoteles Wittgenstein Rhetikus Newton Spinoza Assistenten Fachgebiet Ideenlehre Syllogistik Sprachtheorie Planetenbewegung Kepler Gesetze Gott und Natur Boss 2125 2125 2126 2127 2127 2126

Katrin Seyr

Seite 26

Das relationale Modell

4. Datenabfragesprachen

Datenabfragesprachen

Gesucht: Sprache, die Information aus dem Datenbanksystem extrahiert (Data Query Language). die relationale Algebra der Relationenkalkul Bilden theoretische Grundlage fur SQL Sind gleich ausdrucksstark: d.h. alles, was in relationaler Algebra ausgedruckt werden kann, kann auch im Relationenkalkul ausgedruckt werden und umgekehrt.

Katrin Seyr

Seite 27

Das relationale Modell

4. Datenabfragesprachen

4.1. Die relationale Algebra

Die relationale Algebra

CODD 1970: A relational model for large shared data banks. Communications of the ACM, 13(6): 377-387 CODD 1972: Relational Completeness of Data Base Sublanguages. In: Rustin, R., Hrsg.: Database Systems, 33-64 Prentice Hall, Englewood Clis, NY, USA Prozedurale Abfragesprache: Ausdruck beinhaltet implizit Abarbeitungsplan zur Ausfuhrung der Abfrage Mengenorientierte Sprache: Operationen arbeiten auf Mengen von Tupeln relational abgeschlossen: das Ergebnis einer Abfrage ist wieder eine Relation

Katrin Seyr

Seite 28

Das relationale Modell

4. Datenabfragesprachen

4.2. Die Operatoren der relationalen Algebra

Die Operatoren der relationalen Algebra


Basisoperatoren
: Selektion : Projektion : Vereinigung : Mengendierenz : kartesisches Produkt (Kreuzprodukt) : Umbenennung

: Join (Verbund) , bzw. : linker, rechter bzw. voller uerer Join a bzw. : linker bzw. rechter Semi-Join
: Durchschnitt : Division
Katrin Seyr Seite 29

Das relationale Modell

4. Datenabfragesprachen

4.2. Die Operatoren der relationalen Algebra

Die Selektion F (R)


Auswahl von Zeilen der Relation/Tabelle R mittels der Formel F F verwendet Vergleichsoperatoren (=, =, , , >, <) und logische Operatoren (, , )

Beispiel
Selektiere alle Studierenden, die mehr als 10 Semester inskribiert sind.
Semester >10 (Studenten) MatrNr 24002 25403 Name Xenokrates Jonas Semester 18 12

Katrin Seyr

Seite 30

Das relationale Modell

4. Datenabfragesprachen

4.2. Die Operatoren der relationalen Algebra

Die Projektion Ai (R)


Auswahl einer Menge von Spalten Ai einer Tabelle E

Beispiel
Welche Rangbezeichnungen fur Professoren gibt es?
Rang (Professoren) Rang C3 C4

Achtung: Duplikate werden eliminiert

Katrin Seyr

Seite 31

Das relationale Modell

4. Datenabfragesprachen

4.2. Die Operatoren der relationalen Algebra

Die Vereinigung R S
Die Vereinigung ist deniert auf zwei Relationen R, S mit gleichem Schema und gibt alle Zeilen, die in R oder in S vorkommen, aus.

Beispiel
Wie heien die Professoren und die Assistenten?
Name (Professoren) Name (Assistenten) Name Sokrates Russel ... Kant Platon Aristoteles ... Spinoza

Katrin Seyr

Seite 32

Das relationale Modell

4. Datenabfragesprachen

4.2. Die Operatoren der relationalen Algebra

Die Mengendierenz R S
Die Mengendierenz ist deniert auf zwei Relationen R, S mit gleichem Schema und gibt alle Zeilen, die in R aber nicht in S vorkommen, aus.

Beispiel
Wie lautet die Matrikelnummer der Studierenden, die noch keine Prufung absolviert haben.
MatrNr (Studenten) MatrNr (pr u fen) MatrNr 24002 26120 26830 29120 29555

Katrin Seyr

Seite 33

Das relationale Modell

4. Datenabfragesprachen

4.2. Die Operatoren der relationalen Algebra

Das Kartesische Produkt R S


Das Kartesische Produkt verknupft jede Zeile von R mit jeder Zeile von S. Das Schema von R S ist die Vereinigung der Attribute von R und S. Problematisch ist die Ergebnisgre, da |R S| = |R| |S|. Eine bessere o Operation ist der Join.

Beispiel
Studenten h ren o MatrNr 24002 24002 ... 24002 25403 ... 29555 29555
Katrin Seyr

Name Xenokrates Xenokrates ... Xenokrates Jonas ... Feuerbach Feuerbach

Sem 18 18 ... 18 12 ... 2 2

horen.MatrNr 26120 27550 ... 25403 26120 ... 29555 25403

VorlNr 5001 5001 ... 5022 5001 ... 5022 5022


Seite 34

Das relationale Modell

4. Datenabfragesprachen

4.2. Die Operatoren der relationalen Algebra

Die Umbenennung (R)


Die Umbenennung von Attributen AB (R): AB (R) benennt das Attribut B der Relation R neu mit A Die Umbenennung von Attributen ist notwendig, um bei Verknupfung von Relationen die Eindeutigkeit der Attributnamen sicherzustellen.

Beispiel
Bei der Verknupfung der Relationen Studenten und horen wurde ohne Umbenennung das Attribut MatrNr zweimal vorkommen. Wir benennen es neu mit hrt o hrtMatrNr (h ren) o o

Katrin Seyr

Seite 35

Das relationale Modell

4. Datenabfragesprachen

4.2. Die Operatoren der relationalen Algebra

Die Umbenennung (R)


Die Umbenennung von Relationen V (R) Die Relation R bekommt den neuen Namen V Die Umbenennung von Relationen ist notwendig, um bei Verknupfung einer Relation mit sich selbst die Eindeutigkeit der Relationennamen sicherzustellen.

Beispiel
Welches sind die Vorlesungsnummern der Vorlesungen, die indirekte Vorgnger a 2. Stufe der VO 5216 sind (= Vorgnger der Vorgnger von 5216) a a V1 .VorgNr V1 .NachfNr =V2 .VorgNr V2 .NachfNr =5216 V1 (voraussetzen) V 2 (voraussetzen)

Katrin Seyr

Seite 36

Das relationale Modell

4. Datenabfragesprachen

4.2. Die Operatoren der relationalen Algebra

Denition relationale Algebra


Die Basisausdrucke der relationalen Algebra sind: Relationen der Datenbank oder konstante Relationen

Denition (relationale Algebra)


Seien R und S Ausdrucke der relationalen Algebra, so sind: F (R) und Ai (R) R S R S R S AB (R) und V (R) ebenfalls gultige Ausdrucke der relationalen Algebra.

Katrin Seyr

Seite 37

Das relationale Modell

4. Datenabfragesprachen

4.2. Die Operatoren der relationalen Algebra

Der naturliche Verbund (Join) R

Der naturliche Verbund verknupft zwei Relationen R, S. Er bildet zuerst das kartesische Produkt der Relationen, und wenn es in R und S gleichnamige Spalten gibt, selektiert er jene Tupel, die auf den gleichnamigen Spalten denselben Wert annehmen und projiziert zum Schluss die doppelt vorkommenden Spalten weg:

Denition
Seien R, S mit folgenden Schamata gegeben: R(A1 , . . . , Am , B1 , . . . Bk ) und S(B1 , . . . Bk , C1 , . . . Cn ). Der naturliche Verbund ist deniert als R

S = A ,...A
1

m ,R.B1 ,...R.Bk ,C1 ,...Cn

R.B1 =S.B1 R.Bk =S.Bk (R S)

R R S A1 ... A2 ... ... ... Am ... B1 ... B2 ...

S
S R Bk ... C1 ... C2 ... ... ... Cn ... ... ...

R S

Katrin Seyr

Seite 38

Das relationale Modell

4. Datenabfragesprachen

4.2. Die Operatoren der relationalen Algebra

Bsp: Der naturliche Join


Welche Studierende besuchen welche Vorlesungen?
Studenten MatrNr 24002 25403 ... Name Xenokrates Jonas ... Sem 18 12 ... hren o MatrNr 26120 27550 ... VorlNr 5001 5001 ...

Vorlesungen VorlNr 5001 5041 ... Titel Grundzuge Ethik ... SWS 4 4 ... PersNr 2137 2125 ...

Katrin Seyr

Seite 39

Das relationale Modell

4. Datenabfragesprachen

4.2. Die Operatoren der relationalen Algebra

Bsp: Der naturliche Join


Studenten h ren Vorlesung o MatrNr 26120 27550 27550 28106 28106 28106 28106 29120 29120 29120 29555 25403 Name Fichte Schopenhauer Schopenhauer Carnap Carnap Carnap Carnap Theophrastos Theophrastos Theophrastos Feuerbach Jonas Sem 10 6 6 3 3 3 3 2 2 2 2 12 VorlNr 5001 5001 4052 5041 5001 4052 4630 5001 5041 5049 5022 5022 Titel Grundzuge Grundzuge Logik Ethik Grundzuge Logik Die drei Kritiken Grundzuge Ethik Meutik a Glaube und Wissen Glaube und Wissen SWS 4 4 4 4 4 4 4 4 4 2 2 2 PersNr 2137 2137 2125 2125 2137 2125 2137 2137 2125 2125 2134 2134

Katrin Seyr

Seite 40

Das relationale Modell

4. Datenabfragesprachen

4.2. Die Operatoren der relationalen Algebra

Der allgemeine Verbund (Join)


Der allgemeine Verbund verknupft zwei Relationen R, S, auch wenn sie keine gleichnamigen Attribute haben, aufgrund einer logischen Bedingung.

Denition
Seien R(A1 , . . . , An ) und S(B1 , . . . , Bm ) gegeben, ein Prdikat uber den a Attributen A1 , . . . , An , B1 , . . . , Bm Der allgemeine Verbund ist deniert als R

S = (R S)

Beispiele ()
= Sem > 10 SWS = 4 PersNr = 2134 = Student.MatrNr = h ren.MatrNr h ren.VorlNr = Vorlesungen.VorlNr o o = Vorlesungen.VorlNr = voraussetzen.VorgNr

Katrin Seyr

Seite 41

Das relationale Modell

4. Datenabfragesprachen

4.2. Die Operatoren der relationalen Algebra

Andere Join Arten


naturlicher Join (Wh): nur jene Tupel bleiben im Ergebnis, die einen Join-Partner gefunden haben.
L A a1 a2 B b1 b2 C c1 c2 R R

C c1 c3

D d1 d2

E e1 e2

S
C c1 D d1 E e1

A a1

B b1

voller uerer Join: alle Tupel bleiben erhalten a


L A a1 a2 B b1 b2 C c1 c2 R R E e1 e2 A B b1 b2 NULL

S
C c1 c2 c3 D d1 NULL d2 E e1 NULL e2

C c1 c3

D d1 d2

a1 a2 NULL

Katrin Seyr

Seite 42

Das relationale Modell

4. Datenabfragesprachen

4.2. Die Operatoren der relationalen Algebra

Andere Join Arten


linker uerer Join: Tupel der linken Relation bleiben erhalten a
L A a1 a2 B b1 b2 C c1 c2 R R E e1 e2 A B b1 b2 C c1 c2

S
D d1 NULL E e1 NULL

C c1 c3

D d1 d2

a1 a2

rechter uerer Join: Tupel der rechten Relation bleiben erhalten a


L A a1 a2 B b1 b2 C c1 c2 R R E e1 e2 A B b1 NULL

S
C c1 c3 D d1 d2 E e1 e2

C c1 c3

D d1 d2

a1 NULL

Katrin Seyr

Seite 43

Das relationale Modell

4. Datenabfragesprachen

4.2. Die Operatoren der relationalen Algebra

Andere Join Arten


Semi-Join von L mit R (bzw. R mit L): alle Tupel der Relation L (bzw. R), die einen Join eingehen knnen, werden ausgewhlt. o a
L A a1 a2 B b1 b2 C c1 c2 R LR

C c1 c3

D d1 d2

E e1 e2

A a1

B b1

C c1

L A a1 a2 B b1 b2 C c1 c2

C c1 c3

D d1 d2

E e1 e2

LR

C c1

D d1

E e1

Katrin Seyr

Seite 44

Das relationale Modell

4. Datenabfragesprachen

4.2. Die Operatoren der relationalen Algebra

Der Mengendurchschnitt R S
Der Mengendurchschnitt ist deniert auf zwei Relationen R, S mit gleichem Schema und gibt alle Zeilen, die in beiden Relationen vorkommen, aus. Der Mengendurchschnitt kann mittels der Mengendierenz wie folgt ausgedruckt werden: R S = R (R S)

Beispiel
Gesucht sind die Personalnummern jener C4 Professoren, die eine Vorlesung halten.
PersNr (Vorlesungen) PersNr Rang =C 4 (Professoren) PersNr 2137 2125 2126 2137

Katrin Seyr

Seite 45

Das relationale Modell

4. Datenabfragesprachen

4.2. Die Operatoren der relationalen Algebra

Die relationale Division R S


Die relationale Division ist deniert auf zwei Relationen R und S, wobei das Schema von S eine Teilmenge des Schemas von R sein muss. Das Ergebnisschema besteht aus den Attributen von R ohne die Attribute von S und das Ergebnis beinhaltet jene Tupel aus R, die eingeschrnkt auf die Dierenz a der Attribute fur alle Tupel aus S den selben Wert haben, die Division wird also bei Anfragen eingesetzt, bei denen eine Allquantizierung vorkommt.

Denition
Seien R, S Relationen, mit S R. t R S wenn es fur jedes Tupel s S ein Tupel r R gibt, mit: r .S = s r .(R S) = t Die Division kann wie folgt ausgedruckt werden: R S = RS (R) RS ((RS (R) S) R)
Katrin Seyr Seite 46

Das relationale Modell

4. Datenabfragesprachen

4.2. Die Operatoren der relationalen Algebra

Bsp: die Division


Finde die Matrikelnummer jener Studierenden, die alle 4-stundigen Vorlesungen gehrt haben. o
hren o MatrNr 26120 27550 27550 28106 28106 28106 28106 29120 29120 29120 29555 25403 VorlNr 5001 5001 4052 5041 5001 4052 4630 5001 5041 5049 5022 5022 VorlNr SWS=4 (Vorlesungen) VorlNr 5001 R S

5041 4052 4630

MatrNr 28106

Katrin Seyr

Seite 47

Das relationale Modell

4. Datenabfragesprachen

4.3. Der Relationenkalkl u

Der Relationenkalkul
Deklarative Abfragesprache: speziziert, welche Daten gefordert sind, nicht, wie sie erhalten werden. Mengenorientierte Sprache: Operationen arbeiten auf Mengen von Tupeln. relational abgeschlossen: das Ergebnis einer Abfrage ist wieder eine Relation. Die Anfragen im Relationenkalkul sind von der Form: {t|P(t)} wobei P(t) eine Formel ist. Es gibt zwei unterschiedliche, aber gleichmchtige Ausprgungen: a a der relationale Tupelkalkul der relationale Domnenkalkul a

Katrin Seyr

Seite 48

Das relationale Modell

4. Datenabfragesprachen

4.3. Der Relationenkalkl u

Der relationale Tupelkalkul

Denition (Syntax)
Die Anfragen des relationalen Tupelkalkuls sind von der Form: {t|P(t)} mit t Tupelvariable und P(t) eine Formel. Formeln werden aus Atomen zusammengebaut (siehe Denition).

Denition (Semantik)
Ein Tupel t ist im Ergebnis, wenn es die Formel P(t) erfullt. t ist eine freie Variable der Formel P(t), ist also nicht durch einen Quantor (, ) gebunden.

Katrin Seyr

Seite 49

Das relationale Modell

4. Datenabfragesprachen

4.3. Der Relationenkalkl u

Der relationale Tupelkalkul


Beispiele
Wir suchen C4-Professoren: {p|p Professoren p.Rang = C 4 } Wir suchen Paare von Professoren und die ihnen zugeordneten Assistenten: {[p.Name, a.PersNr ]|p Professoren a Assistenten p.PersNr = a.Boss} Wir suchen Studenten mit mindestens einer Vorlesung von Curie: {s|s Studenten h h ren(s.MatrNr = h.MatrNr o v Vorlesungen(h.VorlNr = v .VorlNr p Professoren(p.PersNr = v .gelesenVon p.Name = Curie )))} Wir suchen Studenten mit allen vierstundigen Vorlesungen: {s|s Studenten v Vorlesungen(v .SWS = 4 h h ren(h.VorlNr = v .VorlNr h.MatrNr = s.MatrNr ))} o
Katrin Seyr Seite 50

Das relationale Modell

4. Datenabfragesprachen

4.3. Der Relationenkalkl u

Der relationale Tupelkalkul


Denition (Syntax: Atome und Formeln)
Atome: t R wobei t Tupelvariable und R ein Relationenname s.At.B wobei s und t Tupelvariablen, A und B Attributnamen und ein Vergleichsperator (=, =, <, , >, ) s.Ac wobei c Konstante Formeln: Atome sind Formeln P Formel, so sind auch P und (P) Formeln P1 , P2 Formeln, so sind auch P1 P2 , P1 P2 und P1 P2 Formeln P(t) Formel mit einer freien Variable t, so sind auch t R(P(t)) und t R(P(t)) Formeln

Katrin Seyr

Seite 51

Das relationale Modell

4. Datenabfragesprachen

4.3. Der Relationenkalkl u

Sichere Ausdrucke im Tupelkalkul


Anfragen konnen unter Umstnden eine unendliche Ergebnismenge spezizieren: a

Beispiel
{n|(n Professoren)} gibt alle jene Tupel aus, die nicht in der Tabelle Professoren vorkommen. Davon knnen wir uns unendlich viele vorstellen. o

Denition
Ein Ausdruck des Tupelkalkuls heit sicher, wenn das Ergebnis des Ausdrucks eine Teilmenge der Domne ist, wobei die Domne einer Formel alle in der a a Formel vorkommenden Konstanten und alle Attributwerte von Relationen, die in der Formel referenziert werden, enthlt. a

Katrin Seyr

Seite 52

Das relationale Modell

4. Datenabfragesprachen

4.3. Der Relationenkalkl u

Der relationale Domnenkalkul a


Denition (Syntax)
Die Anfragen des relationalen Domnenkalkuls sind von der Form: a {[v1 , v2 , . . . , vn ]|P(v1 , v2 , . . . , vn )} mit v1 , v2 , . . . , vn Domnenvariablen, die einen Attributwert reprsentieren, und a a P(v1 , v2 , . . . , vn ) eine Formel. Formeln werden aus Atomen zusammengebaut (siehe unten).

Denition (Semantik)
Eine Domne v1 , v2 , . . . , vn ist im Ergebnis, wenn es die Formel P(v1 , v2 , . . . , vn ) a erfullt. v1 , v2 , . . . , vn sind freie Variablen der Formel P(v1 , v2 , . . . , vn ), sind also nicht durch einen Quantor (, ) gebunden.

Katrin Seyr

Seite 53

Das relationale Modell

4. Datenabfragesprachen

4.3. Der Relationenkalkl u

Der relationale Domnenkalkul a


Beispiele
Wir suchen C4-Professoren: {[p, n]|o, r ([p, n, r , o] Professoren r = C 4 )}

Wir suchen Paare von Professoren und die ihnen zugeordneten Assistenten: {[n, a]|p, r , o([p, n, r , o] Professoren m, f ([a, m, f , p] Assistenten))}

Wir suchen Name und MatrNr von Studenten mit mindestens einer Prufung von Curie: {[m, n] | s([m, n, s] Studenten v , p, g ([m, v , p, g ] pr u fen a, r , b([p, a, r , b] Professoren a = Curie )))}

Katrin Seyr

Seite 54

Das relationale Modell

4. Datenabfragesprachen

4.3. Der Relationenkalkl u

Der relationale Domnenkalkul a


Denition (Syntax: Atome und Formeln)
Atome: v1 , . . . , vn R wobei v1 , v2 , . . . , vn Domnenvariablen und R ein n-stelliger a Relationenname xy wobei x, y Domnenvariablen, ein Vergleichsperator a (=, =, <, , >, ) xc wobei c Konstante Formeln: Atome sind Formeln P Formel, so sind auch P und (P) Formeln P1 , P2 Formeln, so sind auch P1 P2 , P1 P2 und P1 P2 Formeln P(v ) Formel mit freien Variablen v , so sind auch v (P(v )) und v (P(v )) Formeln

Katrin Seyr

Seite 55

Das relationale Modell

4. Datenabfragesprachen

4.3. Der Relationenkalkl u

Sichere Ausdrucke im Tupelkalkul

Anfragen knnen unter Umstnden eine unendliche Ergebnismenge spezizieren: o a

Beispiel
{[p, n, r , o]|([p, n, r , o] Professoren)} gibt wieder alle jene Tupel aus, die nicht in der Tabelle Professoren vorkommen. Davon konnen wir uns wieder unendlich viele vorstellen. Die Denition der Sicherheit im Domnenkalkul ist komplizierter als im Fall des a Tupelkalkuls, da die Variablen im Domnenkalkul an Wertebereiche gebunden a sind, die i.A. nicht endlich sind (z.B. MatrNr: int).

Katrin Seyr

Seite 56

Das relationale Modell

4. Datenabfragesprachen

4.4. Ausdruckskraft der Abfragesprachen

Ausdruckskraft der Abfragesprachen

Die drei Sprachen relationale Algebra, relationaler Tupelkalkul, eingeschrnkt auf sichere Ausdrucke und a relationaler Domnenkalkul, eingeschrnkt auf sichere Ausdrucke a a sind gleich mchtig a Wichtig: SQL ist ebenfalls gleich mchtig (mit bestimmten Einschrnkungen) a a

Katrin Seyr

Seite 57