Sie sind auf Seite 1von 57

Das relationale Modell

Das relationale Modell


VO Datenmodellierung

Katrin Seyr
Institut fu r Informationssysteme Technische Universit at Wien

Katrin Seyr

Seite 1

Das relationale Modell

1. Uberblick

Uberblick

1 2 3

Uberblick Begriserkl arungen Umsetzung des konzeptuellen in logisches (relationales) Schema


Entitytypen, Beziehungstypen Funktionalit at, Generalisierung, schwache Entities

Datenabfragesprachen
Relationale Algebra Relationenkalku l

Ausdruckskraft von Abfragesprachen

Katrin Seyr

Seite 2

Das relationale Modell

2. Begriserkl arungen

Begriserkl arungen

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

Beispiel
R string string integer

Katrin Seyr

Seite 3

Das relationale Modell

2. Begriserkl arungen

Begriserkl arungen
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. Begriserkl arungen

Begriserkl arungen
Beispiel
Das Telefonbuch ist ein Beispiel fu r 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. Begriserkl arungen

2.1. Schl ussel

Schlu ssel

Denition (Schlu ssel)


Ein Schlu ssel ist eine minimale Menge von Attributen, deren Werte ein Tupel eindeutig identizieren. Im Allgemeinen hat eine Relation mehrere m ogliche Schlu ssel. Einer dieser Schlu arschlu sselkandidaten wird im Relationenmodell als Prim ssel mittels 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

Uberf u hrung des Konzeptuellen Schemas in ein Logisches Schema (in der VL: Relationales Modell)
Studenten h oren MatrNr 26120 24002 24002 ... VorlNr 5001 5001 4052 ... Vorlesungen VorlNr 5001 5041 5049 4052 5216 ... Titel Grundzu ge Ethik M aeutik 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 : typ 1, A2 : typ 2, . . . , 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 ]}


Schlu ssel von E 1 Schlu ssel von E 2 Schlu ssel 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 fu nf Beziehungstypen aus dem Unischema h oren: {[MatrNr: integer, VorlNr: integer]} (N:M) lesen: {[PersNr: integer, VorlNr: integer]} (1:N) arbeitenFu r: {[AssiPersNr: integer, ProfPersNr: integer]} (N:1) voraussetzen: {[Vorg anger: integer, Nachfolger: integer]} (N:M) pru fen: {[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 (h oren)

N:M Beziehung (h oren)


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 ...

h oren MatrNr 26120 24002 24002 ... VorlNr 5001 5001 4052 ...

Vorlesungen VorlNr 5001 5041 5049 4052 5216 ... Titel Grundzu ge Ethik M aeutik Logik Bioethik ...

Katrin Seyr

Seite 13

Das relationale Modell

3. Umsetzung konzeptuelles in logisches Schema

3.4. Schl ussel von N:M Beziehungen

Schlu ssel von N:M Beziehungen

Schlu ssel einer Relation, die aus einer N:M Beziehung entstanden ist, beinhaltet alle Fremdschlu sselattribute der an der Beziehung beteiligten Entities.

Beispiele
h oren: {[MatrNr: integer, VorlNr: integer]} (N:M) voraussetzen: {[Vorg anger: integer, Nachfolger: integer]} (N:M)

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 Grundzu ge Ethik M aeutik Logik Bioethik ...

Katrin Seyr

Seite 15

Das relationale Modell

3. Umsetzung konzeptuelles in logisches Schema

3.6. Schl ussel von 1:N Beziehungen

Schlu ssel von 1:N Beziehungen

Schlu ssel einer Relation, die aus einer 1:N Beziehung entstanden ist, beinhaltet jene Fremdschlu sselattribute, die von der N Seite der an der Beziehung beteiligten Entity stammen.

Beispiele
lesen: {[PersNr: integer, VorlNr: integer]} (1:N) arbeitenFu r: {[AssiPersNr: integer, ProfPersNr: integer]} (N:1) pru fen: {[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. Schl ussel von 1:N Beziehungen

Schlu ssel 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 Schlu ssel zusammengefassen!

Katrin Seyr

Seite 17

Das relationale Modell

3. Umsetzung konzeptuelles in logisches Schema

3.6. Schl ussel von 1:N Beziehungen

Schlu ssel 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 Grundzu ge Ethik M aeutik 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 Grundzu ge Ethik M aeutik Logik Bioethik ... SWS 4 4 2 4 2 ...

Problem Schlu ssel: Relation Professoren braucht einen neuen Schlu ssel Update-Anomalie: Sokrates zieht um Einfu alt noch keine Vorlesung. Was ist der ge-Anomalie: Curie ist neu und h Schlu ssel? L osch-Anomalie: Vorlesung Ethik f allt weg
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

Pru fungen: {[Student.MatrNr, Pru fTeil, Note]} umfassen: {[Pru fungen.MatrNr, Pru fungen.Pru fTeil, VorlNr]} abhalten: {[Pru fungen.MatrNr, Pru fungen.Pru fTeil, PersNr]}

Katrin Seyr

Seite 23

Das relationale Modell

3. Umsetzung konzeptuelles in logisches Schema

3.12. Relationale Universit atsdatenbank

Relationale Universit atsdatenbank

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 Universit atsdatenbank

Relationale Universit atsdatenbank


Vorlesungen VorlNr 5001 5041 5043 5049 4052 5052 5216 5259 5022 4630 Titel Grundzu ge Ethik Erkenntnistheorie M aeutik 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 Universit atsdatenbank

Relationale Universit atsdatenbank


h oren 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 pr ufen 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 Relationenkalku l Bilden theoretische Grundlage fu r SQL Sind gleich ausdrucksstark: d.h. alles, was in relationaler Algebra ausgedru ckt werden kann, kann auch im Relationenkalku l ausgedru ckt 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 Ausfu hrung 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 auerer Join 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 fu r 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 Pru fung 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 verknu pft 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 Ergebnisgr oe, da |R S | = |R | |S |. Eine bessere Operation ist der Join.

Beispiel
Studenten ho ren MatrNr 24002 24002 ... 24002 25403 ... 29555 29555
Katrin Seyr

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

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

ho ren.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 Verknu pfung von Relationen die Eindeutigkeit der Attributnamen sicherzustellen.

Beispiel
Bei der Verknu pfung der Relationen Studenten und ho ren wu rde ohne Umbenennung das Attribut MatrNr zweimal vorkommen. Wir benennen es neu mit h ort ho ren) rt MatrNr (ho

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 Verknu pfung einer Relation mit sich selbst die Eindeutigkeit der Relationennamen sicherzustellen.

Beispiel
Welches sind die Vorlesungsnummern der Vorlesungen, die indirekte Vorg anger 2. Stufe der VO 5216 sind (= Vorg anger der Vorg anger von 5216) 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 Basisausdru cke der relationalen Algebra sind: Relationen der Datenbank oder konstante Relationen

Denition (relationale Algebra)


Seien R und S Ausdru cke der relationalen Algebra, so sind: F (R ) und Ai (R ) R S R S R S AB (R ) und V (R ) ebenfalls gu ltige Ausdru cke der relationalen Algebra.

Katrin Seyr

Seite 37

Das relationale Modell

4. Datenabfragesprachen

4.2. Die Operatoren der relationalen Algebra

Der natu rliche Verbund (Join) R

Der natu rliche Verbund verknu pft 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 natu rliche 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 natu rliche Join


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

Vorlesungen VorlNr 5001 5041 ... Titel Grundzu ge 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 natu rliche Join


Studenten ho ren Vorlesung 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 Grundzu ge Grundzu ge Logik Ethik Grundzu ge Logik Die drei Kritiken Grundzu ge Ethik M aeutik 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 verknu pft 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 Pr adikat u ber den Attributen A1 , . . . , An , B1 , . . . , Bm Der allgemeine Verbund ist deniert als R

S = (R S )

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

Katrin Seyr

Seite 41

Das relationale Modell

4. Datenabfragesprachen

4.2. Die Operatoren der relationalen Algebra

Andere Join Arten


natu rlicher 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 auerer Join: alle Tupel bleiben erhalten


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 auerer Join: Tupel der linken Relation bleiben erhalten
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 auerer Join: Tupel der rechten Relation bleiben erhalten


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 k onnen, werden ausgew ahlt.
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 ausgedru ckt 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 eingeschr ankt auf die Dierenz der Attribute fu r 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 fu r jedes Tupel s S ein Tupel r R gibt, mit: r .S = s r .(R S ) = t Die Division kann wie folgt ausgedru ckt 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-stu ndigen Vorlesungen geh ort haben.
h oren 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 Relationenkalk ul

Der Relationenkalku l
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 Relationenkalku l sind von der Form: {t |P (t )} wobei P (t ) eine Formel ist. Es gibt zwei unterschiedliche, aber gleichm achtige Auspr agungen: der relationale Tupelkalku l der relationale Dom anenkalku l

Katrin Seyr

Seite 48

Das relationale Modell

4. Datenabfragesprachen

4.3. Der Relationenkalk ul

Der relationale Tupelkalku l

Denition (Syntax)
Die Anfragen des relationalen Tupelkalku ls 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 ) erfu llt. 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 Relationenkalk ul

Der relationale Tupelkalku l


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 ho ren(s .MatrNr = h.MatrNr v Vorlesungen(h.VorlNr = v .VorlNr p Professoren(p .PersNr = v .gelesenVon p .Name = Curie )))} Wir suchen Studenten mit allen vierstu ndigen Vorlesungen: {s |s Studenten v Vorlesungen(v .SWS = 4 h ho ren(h.VorlNr = v .VorlNr h.MatrNr = s .MatrNr ))}
Katrin Seyr Seite 50

Das relationale Modell

4. Datenabfragesprachen

4.3. Der Relationenkalk ul

Der relationale Tupelkalku l


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 Relationenkalk ul

Sichere Ausdru cke im Tupelkalku l


Anfragen ko anden eine unendliche Ergebnismenge spezizieren: nnen unter Umst

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

Denition
Ein Ausdruck des Tupelkalku ls heit sicher, wenn das Ergebnis des Ausdrucks eine Teilmenge der Dom ane ist, wobei die Dom ane einer Formel alle in der Formel vorkommenden Konstanten und alle Attributwerte von Relationen, die in der Formel referenziert werden, enth alt.

Katrin Seyr

Seite 52

Das relationale Modell

4. Datenabfragesprachen

4.3. Der Relationenkalk ul

Der relationale Dom anenkalku l


Denition (Syntax)
Die Anfragen des relationalen Dom anenkalku ls sind von der Form: {[v1 , v2 , . . . , vn ]|P (v1 , v2 , . . . , vn )} mit v1 , v2 , . . . , vn Dom anenvariablen, die einen Attributwert repr asentieren, und P (v1 , v2 , . . . , vn ) eine Formel. Formeln werden aus Atomen zusammengebaut (siehe unten).

Denition (Semantik)
Eine Dom ane v1 , v2 , . . . , vn ist im Ergebnis, wenn es die Formel P (v1 , v2 , . . . , vn ) erfu llt. 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 Relationenkalk ul

Der relationale Dom anenkalku l


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 Pru fung 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 Relationenkalk ul

Der relationale Dom anenkalku l


Denition (Syntax: Atome und Formeln)
Atome: v1 , . . . , vn R wobei v1 , v2 , . . . , vn Dom anenvariablen und R ein n-stelliger Relationenname x y wobei x , y Dom anenvariablen, ein Vergleichsperator (=, =, <, , >, ) x c 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 Relationenkalk ul

Sichere Ausdru cke im Tupelkalku l

Anfragen k onnen unter Umst anden eine unendliche Ergebnismenge spezizieren:

Beispiel
{[p , n, r , o ]|([p , n, r , o ] Professoren)} gibt wieder alle jene Tupel aus, die nicht in der Tabelle Professoren vorkommen. Davon ko nnen wir uns wieder unendlich viele vorstellen. Die Denition der Sicherheit im Dom anenkalku l ist komplizierter als im Fall des Tupelkalku anenkalku ls, da die Variablen im Dom l an Wertebereiche gebunden 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 Tupelkalku ankt auf sichere Ausdru l, eingeschr cke und relationaler Dom anenkalku ankt auf sichere Ausdru l, eingeschr cke sind gleich m achtig Wichtig: SQL ist ebenfalls gleich m achtig (mit bestimmten Einschr ankungen)

Katrin Seyr

Seite 57