Grundvorlesung Informationssysteme

Werbung
Inhaltsverzeichnis
Teil I: Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Grundvorlesung Informationssysteme
1 Modelle und Architekturen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.1 Überblick: Thema der Vorlesung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21
Literatur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Aufgaben eines Informationssystems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Beispiele für Anwendungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Grundformen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
große Mengen von Daten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
dauerhaft verfügbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
verlässlich verfügbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Verlässlichkeit umfasst insbesondere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
für viele und verschiedenartige Benutzer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Verwaltung der Daten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
verschiedenartige Blickwinkel auf ein Informationssystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
weitreichendster Blickwinkel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Joachim Biskup
ISSI - Informationssysteme und Sicherheit
Universität Dortmund
1.2 Information und Kommunikation: Vermittlung durch Informationssysteme . . . . .35
Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
eine wahrscheinlichkeitstheoretische Sicht von Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
eine modelltheoretische Sicht von Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
© Joachim Biskup, Universität Dortmund
Informationssysteme
17. Juli 2003
1
Beispiel für Information und Informationsübertragung bei logischer Programmierung . . . . . . . . . . . . . 39
Kommunikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Kommunikation als eine Handlung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Grundzüge menschlichen Handelns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
kommunikatives Handeln (nach Habermas) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Veranschaulichung kommunikativ Handelnder mit Weltbezügen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Geltungsansprüche und Begründungen beim kommunikativen Handeln . . . . . . . . . . . . . . . . . . . . . . . . 46
Rückbezüglichkeit und Offenheit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Unterstützung durch ein Informationssystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Soziale Systeme (nach Luhmann) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Kommunikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Unterstützung durch ein Informationssystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Gestaltung von Informationssystemen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Benutzerrahmen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Vermittlung von Kommunikation durch ein Informationssystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
‘‘formales Kommunikationsverhalten’’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Kommunikation und Mensch-Rechner-Interaktion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Interaktion und Protokollausführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Vermittlung durch ein Informationssystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
17. Juli 2003
17. Juli 2003
2
1.4 Formalisierung: Logik und Mengenlehre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .78
Prädikatenlogik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Prädikatenlogik und ER-Modellierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Semantik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Mengenlehre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Logik und Informationssysteme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
1.5 Architekturen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .86
Programmieren? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Programmieren: Modellieren und Formalisieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Wirklichkeit - Begriffsraum - Sprache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Begriffsgerüst der Entity-Relationship Modellierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
statische Gesichtspunkte eines Unternehmens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
typische Bedingungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Informationssysteme: Inhaltsverzeichnis
Informationssysteme: Inhaltsverzeichnis
typische Regeln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
dynamische Gesichtspunkte eines Unternehmens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
zeitabhängige und zeitunabhängige Teile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Schema und Instanz, ‘‘Ontologie’’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
ER-Diagramme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Regeln und Regelgraphen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Beispiel für ER-Modellierung: Seiendenklassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Beispiel für ER-Modellierung: Beziehungenklassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Beispiel für ER-Modellierung: Beziehungenklasse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Beispiel für ER-Modellierung: Aggregation und Regeln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Beispiel für ER-Modellierung: Klassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Beispiel für ER-Modellierung: Klassen mit Regeln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
1.3 Modellierung: Wirklichkeit und Modell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .59
© Joachim Biskup, Universität Dortmund
© Joachim Biskup, Universität Dortmund
Architektur eines Informationssystems: Grobstruktur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Anwendungsumgebungen für ein Informationssystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Entwurfsumgebung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Arbeitsplatzumgebung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Programmierumgebungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
3
© Joachim Biskup, Universität Dortmund
Informationssysteme: Inhaltsverzeichnis
17. Juli 2003
4
2.1 relationale Strukturen: Theorie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .112
Netzwerkumgebung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Informationssystem-Schnittstelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Schichtung und Komponenten eines Informationssystems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
konzeptionelle Schicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
interne Schicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Datenwörterbuch (data dictionary) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Inhalte des Datenwörterbuchs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Zugriffe auf Datenwörterbuch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Transaktionsverwaltung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Basissystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Architektur: benutzersichtbarer Teil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Architektur: ‘‘eigentliches Informationssystem’’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Architektur: Basissystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
föderierte Systeme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
mediierte Syteme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
föderiert versus mediiert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Semantische Bedingungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Schreibweisen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Relationenschema und Instanz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Relationales Datenbankschema und Instanz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Beispiel: (vereinfachte) Arztpraxis als ER-Diagramm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Beispiel: (vereinfachte) Arztpraxis als Hypergraph des Schemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
Beispiel: (vereinfachte) Arztpraxis als Datenbankschema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Beispiel: Tabellengerüste zum relationalen Datenbankschema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Beispiel: eine Instanz zum relationalen Datenbankschema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
2.2 relationale Meta-Strukturen: Theorie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .122
Schema als Selbstbeschreibung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
(vereinfachtes) ‘‘Metaschema’’ für relationale Datenbanken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
Hypergraph zum relationalen Datenbankschema für Schemas (“Metaschema’’) . . . . . . . . . . . . . . . . 126
Beispiel: Instanz zum relationalen Datenbankschema für Schemas . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
2.3 relationale Strukturen: Pragmatik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .128
Teil II: relationale Systeme mit strukturierten Daten . . . . . . . . . . . . . . 108
2.4 relationale Strukturen: Praxis (Oracle-SQL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .129
ER-Diagramm für Präsidenten-Datenbank (Ausschnitt) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
Hypergraph zum Oracle-Schema für Präsidenten-Datenbank . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
Oracle-Schema für Präsidenten-Datenbank . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
einige syntaktische Regeln für Oracle-SQL-Schemavereinbarungen . . . . . . . . . . . . . . . . . . . . . . . . . . 135
Oracle-SQL Syntax für “CREATE TABLE’’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
2 Relationales Datenmodell: Strukturen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Datenmodell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
relationales Datenmodell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
© Joachim Biskup, Universität Dortmund
Informationssysteme: Inhaltsverzeichnis
17. Juli 2003
5
© Joachim Biskup, Universität Dortmund
Informationssysteme: Inhaltsverzeichnis
17. Juli 2003
3 Relationales Datenmodell: Operationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
3.2 relationale Anfrageoperationen: Pragmatik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .165
relationales Datenmodell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
Formalisierung von Anfragen (grobes ‘‘Kochrezept’’) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
Hypergraph für Beispiel ‘‘Arztpraxis’’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
Instanz für Beispiel ‘‘Arztpraxis’’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
Anfrage: ‘‘Bestimme für Kind theresia ihr Geschlecht und ihre Eltern!” . . . . . . . . . . . . . . . . . . . . 169
Anfrage: “Bestimme alle Ärzte, die weibliche Patienten behandeln!” . . . . . . . . . . . . . . . . . . . . . . . . . 170
Anfrage: “Für welche Patienten wurden alle medizintechnischen Möglichkeiten ausgenutzt?” . . . . . . 172
3.1 relationale Anfrageoperationen: Theorie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .142
Operationen der relationalen Algebra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
natürlicher Verbund (natural join) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
einfacher Algorithmus für natürlichen Verbund . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
Spezialfälle des natürlichen Verbunds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
A=c-Selektion (A=c-selection) als abgeleitete Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
algebraische Eigenschaften des natürlichen Verbunds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
Projektion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
Projektion und q-Projektion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
einfacher Algorithmus für Projektion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
Projektion und natürlicher Verbund (als eine Art ‘‘Quasi-Inverse’’) . . . . . . . . . . . . . . . . . . . . . . . . . . 152
eine “verlustbehaftete” Zerlegung (lossy join) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
ein hängendes Tupel (dangling tuple) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
Teilverbund (semijoin) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
Projektion und andere Operationen (optimierende Umformungen) . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
Vereinigung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
grundlegende Eigenschaften der Vereinigung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
A=B-Vergleich und A≠B-Vergleich . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
Komplement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
Differenz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
grundlegende Eigenschaften der Differenz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
Division . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
grundlegende Eigenschaften der Division . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
© Joachim Biskup, Universität Dortmund
Informationssysteme: Inhaltsverzeichnis
17. Juli 2003
6
3.3 relationale Anfrageoperationen: Vorgriff auf Praxis (Oracle-SQL) . . . . . . . . . . . .174
4 Relationale Anfragesprachen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
relationale Anfragen: anschaulich . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
relationale Anfragen: formale Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
relationale Anfragesprache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
Beispiel für relationale Anfragesprache: Relationenalgebra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
Beweisidee für grundlegende Aussage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
Mächtigkeit der Relationenalgebra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
Beweis von “⇒’’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
Beweisidee für ‘‘⇐’’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
Beispiel für relationale Anfragesprache: Relationenkalkül . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
Beispiele für relationale Formeln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
Gleichmächtigkeit von Algebra und Kalkül . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
Behauptung 1: Kalkül in Algebra äquivalent übersetzbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
Behauptung 2: Algebra in Kalkül äquivalent übersetzbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
Beispiel für Konstruktion von (πq(Φ))* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
Beispiel für Übersetzung ‘‘Algebra in Kalkül’’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
7
© Joachim Biskup, Universität Dortmund
Informationssysteme: Inhaltsverzeichnis
17. Juli 2003
8
Zusammenfassung: Relationenalgebra und logische Verknüpfungen . . . . . . . . . . . . . . . . . . . . . . . . . . 202
Teil III: erweiterte und alternative Systeme . . . . . . . . . . . . . . . . . . . . . . 235
5 Structured Query Language - SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
6 Relationales Datenmodell und Erweiterungen . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
relationale Anfragen und relationale Anfragesprachen (Zusammenfassung) . . . . . . . . . . . . . . . . . . . . 204
6.1 relationales Datenmodell: Rückblick und Würdigung . . . . . . . . . . . . . . . . . . . . . . . .236
5.1 Kern von Structured Query Language (SQL): Theorie . . . . . . . . . . . . . . . . . . . . . . .205
einige Eigenschaften des relationalen Datenmodells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
relationales Datenmodell und mögliche Varianten, Erweiterungen, Verallgemeinerungen . . . . . . . . . 242
Structured Query Language, SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
Ansatz für Grundform des Kalkülteils . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
Ansatz beschreibt Dreischrittverfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
einige Vereinfachungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
Beispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
Beispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
Beispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
(stark vereinfachte, abstrakte) Syntax der Kalkülteile von SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
(vereinfachte, abstrakte) Syntax des algebraischen Teils von SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
Übersicht über Sprachmittel von SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
natürlicher Verbund . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
A=c-Selektion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
Projektion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
Vereinigung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
A=B-Vergleich und A≠B-Vergleich . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
Differenz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
6.2 relationales Datenmodell: Beispiele für Varianten, Erweiterungen, Verallgemeinerungen .243
Eigenschaften als Ausgangspunkt für weitergehende Modelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
7 Erweiterte Navigationsmöglichkeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
Navigation in Schema und Instanz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
Navigation im relationalen Datenmodell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
7.1 erweiterte Navigation durch Horn-Formeln als Anfragen . . . . . . . . . . . . . . . . . . . .266
Ansatz für beweistheoretische Deutung der Strukturen des relationalen Datenmodells . . . . . . . . . . . . 267
Schreib- und Redeweisen für Horn-Formeln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
erweiterte Operationen mit beweistheoretischer Deutung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
Beispiele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
Ansatz für formale Definition der deklarativen Semantik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
Grundfakten-Transformation als Grundbaustein für operationale Fixpunktsemantik . . . . . . . . . . . . . . 273
Grundfakten-Transformation und Resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
Beispiel für iterierte Anwendung der Grundfakten-Transformation . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
Fixpunktsatz für Grundfakten-Transformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
operationale Fixpunktsemantik von LOGODAT-Anfragen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
5.2 Structured Query Language (SQL): Praxis mit Oracle . . . . . . . . . . . . . . . . . . . . . . .224
Oracle-SQL Syntax für “SELECT’’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
© Joachim Biskup, Universität Dortmund
Informationssysteme: Inhaltsverzeichnis
17. Juli 2003
9
© Joachim Biskup, Universität Dortmund
Informationssysteme: Inhaltsverzeichnis
17. Juli 2003
Auswertung von LOGODAT-Anfragen: grober Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
einfaches Beispiel für naive Auswertung: transitive Hülle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
Beispiel für Document Type Definition (DTD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
einige Sprachelemente für DTDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
7.2 erweiterte Navigation durch Dereferenzierung in Anfragen für objektorientierte Modelle .285
9 Information Retrieval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
Beispiel: eine Modellierung mit objektorientierter Formalisierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
objektorientierte Formalisierung eines Patienten namens Maria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
Regeln mit Dereferenzierungen in F-Logik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
Veranschaulichung der Horn-Klausel für wert_relationBEH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
9.1 Aufgaben, Anforderungen und Ansätze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .315
die Information Retrieval Aufgabe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
das Such-Paradox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
Ostereiersuchen im Wald . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
die Stecknadeln im Heuhaufen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
eine einfache Modellierung von Information Retrieval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
Qualitätsbeurteilung bezüglich (im Allgemeinen fiktiver) Relevanz . . . . . . . . . . . . . . . . . . . . . . . . . . 321
Recall-Precision-Paare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
Beispiel für Recall-Precision Paare bei Rang-sortierter Ausgabe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
8 Datenmodelle für halb-strukturierte Daten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
strukturierte versus halb-strukturierte Daten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
einige Anforderungen an Datenmodelle für halb-strukturierte Daten . . . . . . . . . . . . . . . . . . . . . . . . . . 296
Beispiel: OEM (Object Exchange Model) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
Aufbau elementarer OEM-Objekte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
graphische Veranschaulichung und textuelle Schreibweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
ein Geflecht in textueller Schreibweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
baumartige Geflechte für . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
Grundform von OEM-Anfragen: Syntax und beabsichtigte Semantik . . . . . . . . . . . . . . . . . . . . . . . . . 304
mengenorientiertes, zusammengesetztes Rückgabe-Objekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
Definition von OEM-Pfaden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
Syntax in BNF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
Beispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
Joker (wildcards) in Pfadausdrücken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
Variablen in Pfadausdrücken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
Rückgabe von Objekt-Identifikatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
Beispiel: XML (Extensible Markup Language) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
Beispiel für XML Dokument (ohne Kopf, mit “Einheitstyp”) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
© Joachim Biskup, Universität Dortmund
Informationssysteme: Inhaltsverzeichnis
17. Juli 2003
10
9.2 einige grundlegende Techniken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .326
Merkmale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
hierarchische Klassifikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332
flaches Clustering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
Thesaurus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
9.3 Modelle für Information Retrieval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .338
Modelle mit Merkmals-Vektoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
ein (stark vereinfachtes) wahrscheinlichkeitstheoretisches Modell . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
11
© Joachim Biskup, Universität Dortmund
Informationssysteme: Inhaltsverzeichnis
17. Juli 2003
12
Teil IV: Effizienz (in relationalen Systemen) . . . . . . . . . . . . . . . . . . . . . 342
Verfahren für NestedLoop mit Blockliste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
Aufwand von NestedLoop mit Blockliste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367
Sortiertes Mischen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368
Verfahren für Sortiertes Mischen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
Beispiel für Sortiertes Mischen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
Aufwand vom Sortierten Mischen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
Link-Verbund . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373
Veranschaulichung der (vereinfachten) Strukturen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374
Operationen auf den Strukturen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375
Aufwand von Link-Verbund . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
Hash-Filter-Verbund . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382
Verfahren des Hash-Filter-Verbunds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
Beispiel für Hash-Filter-Verbund . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384
Aufwand des Hash-Filter-Verbunds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385
Zusammenfassung der Verbund-Algorithmen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386
10 Zugriffsstrukturen und Verbund-Algorithmen . . . . . . . . . . . . . . . . . . . . . . . . . . 343
10.1 Anforderungen an die interne Schicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .343
Verwirklichung der grundlegenden relationalen Operationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
Dauerhaftigkeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
Bestimmung von Adressen aus Tupelidentifikatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
Effizienz für Anfragen und Änderungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
10.2 Zugriffsstrukturen zur Steigerung der Effizienz . . . . . . . . . . . . . . . . . . . . . . . . . . .348
Zugriffsstrukturen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
B*-Baum als Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
Beispiel für einen B*-Baum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
schrittweiser Aufbau des Beispiels, Einfügungen a-e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
schrittweiser Aufbau des Beispiels, Einfügungen f-g . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
Index bezüglich eines Nichtschlüsselattributs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
Beispiel: gemeinsamer B*-Baum für mitglied und entfernung . . . . . . . . . . . . . . . . . . . . . . . . 356
11 Anfrage-Optimierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387
Optimierung von Anfragen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388
Optimierungsaufgabe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388
Optimierung: besonders wichtig und besonders schwierig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
Beispiel: “naive Auswertungen” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
Beispiel: verbesserte Auswertung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391
Beispiel: günstiger Fall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392
Beispiel: Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
Ziel der Optimierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394
Methoden der Optimierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395
Grundlagen der Optimierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396
10.3 Verbund-Algorithmen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .358
Verbund: Definition und Nested-Loop (Wiederholung) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
Hauptaufgabe jeder Verwirklichung des natürlichen Verbunds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
Grundverwirklichung - NestedLoop mit Blockliste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
Veranschaulichung der (vereinfachten) Strukturen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
Operationen auf den Strukturen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
© Joachim Biskup, Universität Dortmund
Informationssysteme: Inhaltsverzeichnis
17. Juli 2003
13
Schemaentwurf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409
Entwurfsheuristiken für relationale Formalisierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410
Theorie des relationalen Schemaentwurfs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411
12.1 funktionale Abhängigkeiten und Schlüssel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .412
funktionale Abhängigkeiten: Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413
funktionale Abhängigkeiten: Semantik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414
funktionale Abhängigkeiten: Pragmatik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415
logische Implikationen für funktionale Abhängigkeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416
Reflexivität, Transitivität und Erweiterung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
Satz über die Korrektheit des Entscheidungsverfahrens für das Implikationsproblem . . . . . . . . . . . . . 418
Beispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423
formale Definition von “Schlüssel” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424
Beispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425
Relationenschemas mit genau einem Schlüssel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426
17. Juli 2003
17. Juli 2003
14
3. Normalform und Boyce / Codd-Normalform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428
Relationenschemas in Boyce / Codd-Normalform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430
Kostenarten beim Betreiben einer Datenbank . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431
Kosten und Normalformen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432
Überlegung zur Redundanzfreiheit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433
Instanzenunterstützung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434
Instanzenunterstützung und Anfrageübersetzung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435
Verbundabhängigkeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436
Verbund-Unterstützung eines Universalrelation-Schemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437
Verbund-Unterstützung eines Universalrelation-Schemas mit funktionalen Abhängigkeiten . . . . . . . 439
Verbund-unterstützte Zerlegung in Boyce / Codd-Normalform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440
Beispiel für Zerlegung in Boyce / Codd-Normalform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442
Boyce / Codd-Normalform und treue Unterstützung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443
treue Zerlegungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444
treue Verbund-Unterstützung eines Universalrelation-Schemas mit funktionalen Abhängigkeiten . . . 446
treue und Verbund-unterstützende Synthese in 3.Normalform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447
Syntheseverfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448
Beispiel für Syntheseverfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449
12 relationaler Schemaentwurf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408
Informationssysteme: Inhaltsverzeichnis
Informationssysteme: Inhaltsverzeichnis
12.2 Normalformen und Schema-Transformationen . . . . . . . . . . . . . . . . . . . . . . . . . . . .427
einige Heuristiken zur Optimierung relationaler Ausdrücke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397
Zusammenfassen von Ausdrücken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
Entfernen von Redundanz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399
Vorziehen von Selektionen und Projektionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400
Auswahl von Verbund-Reihenfolge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
Entfernen von Redundanz logik-orientiert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
Lemma [äquivalente Umformungen von Anfragen] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
Redundanz von Anfrageklauseln oder Prämissen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404
Aufwandsschätzung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
Beispiel für Aufwandsschätzung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406
© Joachim Biskup, Universität Dortmund
© Joachim Biskup, Universität Dortmund
Teil V: Mehrbenutzerbetrieb und Transaktionen . . . . . . . . . . . . . . . . . 450
13 Transaktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451
Transaktionen: einige Vorüberlegungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452
Parallelität und Unabhängigkeit: ein Beispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453
15
© Joachim Biskup, Universität Dortmund
Informationssysteme: Inhaltsverzeichnis
17. Juli 2003
16
eine parallele Nutzung eines gemeinsamen Informationssystems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454
eine unerwünschte sequentielle Ausführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455
eine weitere Vorüberlegung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456
Transaktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457
ACID- Eigenschaften . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458
Transaktionen erhalten Bedingungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459
Datenebenen und Wirksamwerden: einfachstes Modell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460
Beispiele mit Bearbeitung von zwei Objekten/Folgeänderungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461
Transaktionen laufen parallel und voneinander unabhängig ab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463
zwei Randfälle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464
korrekte Reihenfolgen und Serialisierbarkeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465
Anweisungen, Transaktionen, Pläne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466
Schreibweisen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467
Plan P zu Transaktionen T = { t1, t2, t3, t4 } mit “Datenflüssen” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468
Read/Write-Modell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469
Read/Write-Modell: Annahme A1*/A2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470
Read/Write-Modell: Annahme A3* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
Read/Write-Modell: Annahme A4/A5/A6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472
Read/Write-Modell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473
Satz über Test für Konflikt-Serialisierbarkeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478
Beispiel zum Test: Transaktionen und Konflikte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479
Beispiel zum Test: Plan und Konfliktgraph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480
Satz über Test für Konflikt-Serialisierbarkeits: Beweis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481
Satz über Test für Konflikt-Serialisierbarkeits: Beweis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482
14.2 Versionsverwaltung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .483
Abbruch, Wirksamwerden und Versionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484
absichtlicher Abbruch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485
absichtlicher Abbruch: zukünftige Leseanweisungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486
absichtlicher Abbruch: vorangegangene Leseanweisungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487
ein Ansatz zur Vermeidung von Folgeabbrüchen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488
Versionsverwaltung: einige Anforderungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489
Versionsfunktion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490
15 Scheduler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491
Scheduler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492
vereinfachtes Modell eines Schedulers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493
Konfliktgraphen-Scheduler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494
Sperrprotokoll-Scheduler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495
beabsichtigte Semantik von Sperren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496
Verträglichkeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497
Sperrprotokoll-Scheduler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498
Konflikt-Serialisierbarkeit unter dem Zwei-Phasen-Sperrprotokoll . . . . . . . . . . . . . . . . . . . . . . . . . . . 499
Sperrprotokoll-Scheduler verlangt Zwei-Phasen-Sperrprotokoll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502
Verklemmungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503
Striktes Sperrverhalten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504
14 Serialisierbarkeit und Versionsverwaltung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474
14.1 Konflikte und Konflikt-Serialisierbarkeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .474
Konflikte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475
Aufgaben zur Konfliktbehandlung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475
Konflikt-Äquivalenz von Read/Write-Plänen, Konflikt-Serialisierbarkeit . . . . . . . . . . . . . . . . . . . . . . 476
Konfliktgraphen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477
© Joachim Biskup, Universität Dortmund
Informationssysteme: Inhaltsverzeichnis
17. Juli 2003
17
© Joachim Biskup, Universität Dortmund
Informationssysteme: Inhaltsverzeichnis
Zeitmarken-Scheduler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505
Zeitmarken-Scheduler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 506
Beispiel für Zeitmarken-Scheduler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507
Konflikt-Serialisierbarkeit unter dem Zeitmarken-Scheduler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 510
nutzlose Schreibanweisungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511
Unvergleichbarkeit von Zwei-Phasen-Sperrprotokoll und Zeitmarken-Scheduler . . . . . . . . . . . . . . . . 512
pessimistische und optimistische Scheduler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513
17. Juli 2003
18
17. Juli 2003
20
Teil I
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514
Grundlagen
© Joachim Biskup, Universität Dortmund
Informationssysteme: Inhaltsverzeichnis
17. Juli 2003
19
© Joachim Biskup, Universität Dortmund
Informationssysteme
•
Grundlagen
01 Information/Kommunikation/Modellierung/Datenmodelle/Architekturen
•
1 Modelle und Architekturen
relationale Systeme mit strukturierten Daten
02
03
04
05
1.1 Überblick: Thema der Vorlesung
•
erweiterte und alternative Systeme
06
07
08
09
•
relationales Datenmodell/Beispiel Oracle-SQL/Schema und Instanz
relationale Operatoren
relationale Anfragesprachen, Relationenalgebra, Relationenkakül, Äquivalenz
Kern von SQL, Oracle-SQL-Datenmanipulationssprache
relationales Datenmodell: Würdigung, Varianten, Erweiterungen, Verallgemeinerungen
erweiterte Navigationsmöglichkeiten, Horn-Formeln und Dereferenzierungen
halb-strukturierte Daten, OEM, XML
Information Retrieval
Effizienz
10 Zugriffsstrukturen, Verbund-Algorithmen
11 Anfrage-Optimierung
12 Schemaentwurf
•
Mehrbenutzerbetrieb und Transaktionen
13 Transaktionen: Serialisierbarkeit, Recovery
14 Scheduler: Konfliktgraph-, Sperrverfahren
15 Scheduler: Zeitmarkenverfahren, Sicht-Serialisierbarkeit
© Joachim Biskup, Universität Dortmund
Informationssysteme: Modelle und Architekturen - Überblick: Thema der Vorlesung
17. Juli 2003
21
© Joachim Biskup, Universität Dortmund
Literatur
•
22
Empfehlung für Vorlesung
Ramez Elmasri, Shamkat B. Navathe:
Fundamentals of Database Systems (3rd edition), Addison Wesley, Reading etc, 2000.
955 + 30 + 24 Seiten.
Jeffrey D. Ullman, Jennifer Widom:
A First Course in Database Systems, Prentice Hall, Upper Saddle River, 1997.
470 Seiten.
•
große Mengen von
(large amount)
•
strukturierten oder halb-strukturierten Daten
((semi-)structured data)
•
dauerhaft
(persistent)
•
verlässlich
(dependable)
•
für im Allgemeinen viele
und verschiedenartige Benutzer verfügbar
(shared)
•
effizient verwalten
(management)
•
d.h. Anfragen und Änderungen bearbeiten
(queries/updates)
Lesetipps
S. Abiteboul, R. Hull, V. Vianu: Foundations of Databases
C.J. Date: (Introduction to) Database Systems
Th. Härder, E. Rahm: Datenbanksysteme - Konzepte und Techniken der Implementierung
P.M. Lewis, A. Bernstein, M. Kifer: Database and Transaction Processing
B. Thalheim: Entity-Relationship Modeling - Foundations of Database Technology
J.D. Ullman: Principles of Database and Knowledge-Base Systems
G. Vossen: Datenbankmodelle, Datenbanksprachen und Datenbankmanagement-Systeme
•
17. Juli 2003
Aufgaben eines Informationssystems
Joachim Biskup:
Grundlagen von Informationssystemen, Vieweg, Braunschweig/Wiesbaden, 1995.
543 Seiten.
•
Informationssysteme: Modelle und Architekturen - Überblick: Thema der Vorlesung
sehr viele weitere Lehrbücher und Monographien/Zeitschriften/Tagungen
© Joachim Biskup, Universität Dortmund
Informationssysteme: Modelle und Architekturen - Überblick: Thema der Vorlesung
17. Juli 2003
23
© Joachim Biskup, Universität Dortmund
Informationssysteme: Modelle und Architekturen - Überblick: Thema der Vorlesung
17. Juli 2003
24
Beispiele für Anwendungen
•
•
•
•
•
•
•
•
•
•
•
•
Grundformen
Unternehmensführung
Personal-, Kunden- und Materialverwaltung
Auftragsabwicklung, Betriebsmittel- und Finanzüberwachung
Statistik und Vorhersagemodelle
Literaturnachweis und Bibliothekswesen
Begriffswörterbücher
Landvermessung und Bodennutzung
Versuchsplanung, -durchführung und -auswertung
Bildauswertung und -archivierung
Entscheidungsunterstützung
rechnergestütztes Entwerfen und Konstruieren (CAD)
rechnergestützte Fertigung (CIM), Programmentwicklung (CASE)
Falls die benötigte “Information’’ in Form von
mehr oder weniger strukturierten oder wenigstens semi-strukturierten “Daten’’ vorliegt
oder einigermaßen leicht derart aufzubereiten ist:
•
•
Datenbanksystem
Wissensbanksystem
(database system)
(knowledgebase system)
Falls hauptsächlich weitgehend unstrukturierte Texte verwaltet werden:
•
“Information Retrieval-System’’
(information retrieval system)
Falls neben ‘‘Daten’’ und ‘‘Texten’’ auch andere Formen von ‘‘Information’’
wie Bilder, Videos, Ton etc. mit einbezogen werden:
•
‘‘Multimedia-System’’
(multi-media system)
Anwendungen treten auf in den Unternehmen
• manchmal einzeln
• häufiger aber in Zusammenstellungen
© Joachim Biskup, Universität Dortmund
Informationssysteme: Modelle und Architekturen - Überblick: Thema der Vorlesung
17. Juli 2003
25
© Joachim Biskup, Universität Dortmund
große Mengen von Daten
•
nicht alle gleichzeitig im Hauptspeicher
•
auf externen Speichergeräten wie Magnetplatten
•
größte Systeme verwalten inzwischen Datenmengen im Bereich
von vielen Gigabytes oder gar Terabytes
•
andere Fragestellungen als etwa bei der Verwaltung der Werte
lokaler und dynamischer Variablen in prozeduralen Programmiersprachen
© Joachim Biskup, Universität Dortmund
Informationssysteme: Modelle und Architekturen - Überblick: Thema der Vorlesung
Informationssysteme: Modelle und Architekturen - Überblick: Thema der Vorlesung
17. Juli 2003
26
17. Juli 2003
28
dauerhaft verfügbar
17. Juli 2003
27
•
Daten außer im Hauptspeicher stets
auch auf externen Speichergeräten halten
•
Daten auf jeden Fall durch (Sicherungs-) Kopien schützen
•
Daten im Allgemeinen mehrfach halten,
gegebenenfalls zusätzlich auch noch in (leicht veränderten) Versionen
© Joachim Biskup, Universität Dortmund
Informationssysteme: Modelle und Architekturen - Überblick: Thema der Vorlesung
verlässlich verfügbar
Verlässlichkeit umfasst insbesondere
Genau die vorgesehenen Benutzer sollen
•
zu den von ihnen bestimmten Zeitpunkten
•
mit genau den für ihre Verpflichtungen benötigten
•
und jeweils zutreffenden Daten
•
die gewünschten Bearbeitungen ausführen lassen können.
© Joachim Biskup, Universität Dortmund
Informationssysteme: Modelle und Architekturen - Überblick: Thema der Vorlesung
17. Juli 2003
29
•
Anforderungen der Sicherheit:
- Verfügbarkeit
(von Daten und Bearbeitungsverfahren),
- Integrität
(Schutz vor unbeabsichtigter oder bösartiger
Veränderung oder Zerstörung von Daten
oder zumindest deren Erkennbarkeit)
- Vertraulichkeit (für ‘‘Datenschutz’’, Betriebsgeheimnisse, ... )
•
gebräuchliche Mechanismen für Sicherheit:
- Zugriffskontrolle mit Authentisierung und Überwachung
- Kryptographie, insbesondere Verschlüsselung und digitale Signaturen
•
Zuverlässigkeit und Fehlertoleranz
durch Redundanz, insbesondere durch Kopien
•
inhaltliches Zutreffen der (durch die) Daten (dargestellten Gegebenheiten)
durch Erhaltung semantischer Bedingungen
•
wechselseitige Isolierung der Benutzer bei Mehrbenutzerbetrieb
© Joachim Biskup, Universität Dortmund
Informationssysteme: Modelle und Architekturen - Überblick: Thema der Vorlesung
für viele und verschiedenartige Benutzer
Verlässlichkeit
•
dauerhafte Speicherung
•
Gegebenheiten der Anwendung werden benutzerübergreifend modelliert und
mit Hilfe geeigneter Datenmodelle (Datentypen für Informationssysteme) und
entsprechender Datendefinitionssprachen formalisiert und vereinbart
•
Beantwortung von Anfragen
•
vom Informationssystem-Administrator
als sogenanntes Schema getroffene Vereinbarungen
stellen das entscheidende Bindeglied zwischen den späteren (End-) Benutzern dar
•
auf das gemeinsame Schema und die unter diesem Schema gespeicherten Daten
werden sogenannte Sichten eingerichtet
•
Schema, Sichten und Daten werden durch eine ‘‘Ontologie’’ gedeutet
17. Juli 2003
32
- einfachste Form: direktes Wiederauffinden gespeicherter Daten
- anspruchsvollste Form: vollständige Operationalisierung der logischen Implikation
- jeweils alle einer Anfrage genügenden Antworten liefern, also:
- deklarativ (durch Angabe des Was, aber nicht des Wie)
- mengenorientiert (alle Antworten)
- effizient, d.h. insbesondere zeitlich schnell
- (Halb-) Strukturierung der Daten dabei wichtiges Hilfsmittel
- klassische Zugriffsstrukturen wie Sortierungen, Suchbäume und Hashing
allgemein gemäß Brockhaus: die philosophische Lehre vom Sein, besonders von den
Bestimmungsgründen des Seienden (Wesen, Dasein), von den Seinsweisen (real, ideal), den
Seinsmodalitäten (Möglichkeit, Wirklichkeit, Notwendigkeit) und den Seinsschichten (z.B.
anorganische Natur, organische Natur, Seele, Geist)
(nicht erreichte) Wunschvorstellung in der “Informatik”: umfassende, operationalisierte
Beschreibung der Gegebenheiten einer Anwendung
Informationssysteme: Modelle und Architekturen - Überblick: Thema der Vorlesung
30
Verwaltung der Daten
•
© Joachim Biskup, Universität Dortmund
17. Juli 2003
17. Juli 2003
31
- besondere Verfahren zur Optimierung von Anfragen
•
Durchführung von Änderungen
- insbesondere die semantischen Bedingungen erhalten
(inhaltliches Zutreffen der Daten absichern)
© Joachim Biskup, Universität Dortmund
Informationssysteme: Modelle und Architekturen - Überblick: Thema der Vorlesung
verschiedenartige Blickwinkel auf ein Informationssystem
•
weitreichendster Blickwinkel
Modell einer ‘‘Miniwelt’’ bilden:
Ein Informationssystem vermittelt Mitteilungen
zwischen “in einem Unternehmen’’ handelnden Menschen.
- Daten und Schema sollen Gegebenheiten einer Miniwelt abbilden.
- Durch Änderungen im Informationssystem werden
Vorgänge in der Miniwelt nachvollzogen.
- Anfragen werden bezüglich des Modells beantwortet;
- sinngemäß gedeutet, entsprechen den Antworten (hoffentlich)
jeweils Gegebenheiten in der Miniwelt.
•
Diese Menschen handeln in einer Miniwelt,
deren Gegebenheiten und Vorgänge
durch Dokumente abgebildet werden,
eigenständige Miniwelt verwalten:
- Miniwelt besteht im Wesentlichen aus (Original-) Dokumenten.
- Diese liegen ausschließlich im Informationssystem vor.
Anfragen werden bezüglich dieser Miniwelt beantwortet
und bedürfen keiner weiteren Deutung.
•
über die sich die Menschen
mit Hilfe des Informationssystems
Mitteilungen machen.
Mitteilungen vermitteln:
- Wie ein “großes Schwarzes Brett’’ benutzt.
- Änderungen im Informationssystem bedeuten dann,
dass neue Mitteilungen hinterlegt und “am Brett angeschlagen’’ und
dass alte Mitteilungen abgeändert oder entfernt werden.
- Anfragen werden bezüglich der hinterlegten, “angeschlagenen’’ Mitteilungen beantwortet.
© Joachim Biskup, Universität Dortmund
Informationssysteme: Modelle und Architekturen - Überblick: Thema der Vorlesung
17. Juli 2003
33
© Joachim Biskup, Universität Dortmund
Informationssysteme: Modelle und Architekturen - Überblick: Thema der Vorlesung
17. Juli 2003
34
17. Juli 2003
36
Information
1.2 Information und Kommunikation: Vermittlung durch
Informationssysteme
•
Begriff der ‘‘Information’’ grundlegend für eine Vielzahl von Betrachtungen
•
‘‘Information’’ als dritter Grundbegriff, neben Materie und Energie
•
Begriff der ‘‘Information’’ schwer allgemein fassbar,
nur mit Mühe und für eingeschränkte Anwendungen genauer definierbar
•
Gemeinsames Grundmuster zur Annäherung:
- Es wird ein Rahmen von Möglichkeiten abgesteckt,
wobei Unsicherheit über die tatsächlich vorliegenden Verhältnisse besteht.
- Es werden aufeinanderfolgende mögliche Ereignisse
zueinander in Beziehung gesetzt unter dem Gesichtspunkt,
wie weit die Unsicherheit über die tatsächlich vorliegenden Verhältnisse
verringert wurde.
© Joachim Biskup, Universität Dortmund
Informationssysteme: Modelle und Architekturen - Information und Kommunikation: Vermittlung durch Informationssysteme
17. Juli 2003
35
© Joachim Biskup, Universität Dortmund
Informationssysteme: Modelle und Architekturen - Information und Kommunikation: Vermittlung durch Informationssysteme
eine wahrscheinlichkeitstheoretische Sicht von Information
•
eine modelltheoretische Sicht von Information
‘‘Rahmen der Möglichkeiten’’ durch eine Zufallsvariable beschrieben:
•
ai
mögliche Werte der Zufallsvariablen
p(ai) Wahrscheinlichkeiten ihres Eintreffens
•
M = (d,r1,...,rn) wobei jeweils
Informationsgehalt eines Wertes ai
•
bestimmt als die durch das tatsächliche Eintreffen von ai beseitigte Unsicherheit
•
‘‘Nichtereignis’’ (vorher) in Beziehung gesetzt zum Eintreffen (nachher)
•
Informationsgehalt eines Wertes ai als
I(ai) = - ld p(ai) = ld 1/p(ai)
•
Randfälle:
•
k
∑
Informationssysteme: Modelle und Architekturen - Information und Kommunikation: Vermittlung durch Informationssysteme
•
Randfälle und Beispiele:
- falls || Modκ(Φ) || = 1, so liegt keine Unsicherheit vor
- falls Modκ(Φ) = κ,
so liegt höchste Unsicherheit vor
- für Klasse der Strukturen mit einer zweistelligen Relation über festem Universum,
κ = {(d,r) | r ⊂ d×d} mit d = {0,...,n}:
- stets wahre Aussage ϕ1 :≡ ∀x[x = x] läßt uns völlig im Unsicheren:
Modκ(ϕ1) = κ
- Aussage ϕ2 :≡ ∀x∀y∀z [(x,y) ∈ R ∧ (x,z) ∈ R ⇒ y = z] beschreibt Funktionen:
Modκ(ϕ2) = {(d,r) | r ist partielle Funktion von d nach d}
p ( ai ) ⋅ I ( ai )
17. Juli 2003
37
Beispiel für Information und Informationsübertragung bei logischer
Programmierung
zweistelliges Prädikatenzeichen:
R
Aussage:
Φ :≡ ∀y [ R(0,y) ⇒ R(y,0) ] ∧ R(0,0) ∧ R(0,1)
‘‘Rahmen der Möglichkeiten“ absteckende Klasse: κ := { (d,r) | r ⊂ d×d } mit d:={0,1,2}
Informationssysteme: Modelle und Architekturen - Information und Kommunikation: Vermittlung durch Informationssysteme
17. Juli 2003
38
Klasse der Möglichkeiten: κ := { (d,r) | r ⊂ d×d } mit d:={0,1,2}, entspricht ℘ (d × d)
Aussage:
Φ :≡ ∀y [ R(0,y) ⇒ R(y,0) ] ∧ R(0,0) ∧ R(0,1)
Modellklasse
Modκ (Φ)
Modκ(Φ) echte Teilmenge von κ:
das ‘‘Wissen’’ Φ lässt nicht völlig im Unsicheren,
aber es verbleibt die Unsicherheit, welche der Strukturen aus Modκ (Φ) tatsächlich vorliegt
•
Hinzufügen eines neuen Literals zum ‘‘Wissen’’ Φ:
man kann gegebenenfalls das „Wissen verbessern“,
d.h. hier die Unsicherheit über die tatsächlich vorliegende Struktur verringern
Die Aussage Φ ist in allen solchen Strukturen gültig,
die die Paare (0,0) und (0,1) enthalten und
mit jedem Paar der Form (0,y) auch das Paar (y,0) enthalten.
•
17. Juli 2003
Hinzufügen des Literals R(0,2):
man erhält die Aussage:
Φ1 :≡ Φ ∧ R(0,2),
für die zugehörigen Modellklassen gilt: Modκ (Φ1) ⊂≠ Modκ (Φ),
(zum Beispiel { (0,0), (0,1), (1,0) } ∉ Modκ (Φ1) )
Die zugehörige Modellklasse hat also folgendes (unvollständig aufgeschriebenes) Aussehen:
Modκ (Φ) = { { (0,0) , { (0,0) , { (0,0)
, ... }
(0,1)
(0,1)
(0,1)
(1,0) }
(1,0)
(1,0)
(0,2)
(0,2)
(2,0) }
(2,0)
(1,1) }
Informationssysteme: Modelle und Architekturen - Information und Kommunikation: Vermittlung durch Informationssysteme
© Joachim Biskup, Universität Dortmund
•
Diese Klasse von Strukturen enthält also im Wesentlichen
alle zweistelligen Relationen r über dem Universum {0,1,2};
wird im Folgenden identifiziert mit:
℘ (d × d)
© Joachim Biskup, Universität Dortmund
eine Aussage ϕ ist in einer Struktur M entweder falsch oder gültig (wahr)
ist ϕ in M gültig, so ist M ein Modell von ϕ
zugehörige Modellklasse:
Modκ(ϕ) := {M | M ∈ κ und ϕ ist gültig in M} ⊂ κ
für Menge Φ von Aussagen:
Modκ(Φ) := ∩ϕ ∈ Φ Modκ(ϕ)
Unsicherheit bei Aussagenmenge Φ: welches der Modelle aus Modκ(Φ) liegt vor?
i=1
© Joachim Biskup, Universität Dortmund
nichtleeres Universum
Relationen über d, d.h. ri ⊂ d ×...× d
•
I(ai) = ld 1 = 0
I(aj) = ld 2 = 1
Entropie, mittlerer Informationsgehalt der möglichen Werte: H ( a ) =
d
ri
‘‘Ereignisse’’ sind in einer geeigneten Logiksprache formalisierte Aussagen:
-
für p(ai) ≠ 0
für mit Sicherheit eintreffenden Wert mit p(ai) = 1:
für zwei gleichwahrscheinliche Werte mit p(a1) = p(a2) =1/2:
‘‘Rahmen der Möglichkeiten’’ beschrieben durch eine Klasse κ von Strukturen:
•
Hinzufügen des Literals R(1,0):
man erhält die Aussage:
Φ2 :≡ Φ ∧ R(1,0)
für die zugehörigen Modellklassen gilt:
Modκ (Φ2) = Modκ (Φ),
(hinzugefügtes ‘‘Wissen’’ ist ‘‘redundant’’, logische Implikation des ursprünglichen ‘‘Wissens’’)
39
© Joachim Biskup, Universität Dortmund
Informationssysteme: Modelle und Architekturen - Information und Kommunikation: Vermittlung durch Informationssysteme
17. Juli 2003
40
Kommunikation
Kommunikation als eine Handlung
•
Begriff der ‘‘Kommunikation’’ ebenfalls - wie ‘‘Information’’ - sehr vielfältig benutzt
•
Beide Begriffe sind aufeinander bezogen:
•
•
- bei Erörterung von ‘‘Information’’:
auch ‘‘Informationsübertragung’’ betrachten
- bei Erörterung von ‘‘Kommunikation’’: auch übermittelten ‘‘Informationsgehalt’’ betrachten
•
•
•
Kommunikation:Handlung zwischen vernunft- und sprachbegabten Menschen
Sprache:
nicht alleiniges, aber herausragendes Mittel
der Kommunikation zwischen Menschen.
natürliche Sprache:
Beteiligte müssen über einen gemeinsamen Bezugsrahmen verfügen:
- ein unermesslicher gemeinsamer Erfahrungsschatz als vorgefundener Bezugsrahmen
- steckt die Möglichkeiten ihrer Verständigung ab
- kann schon vorgefunden sein
- oder wird, abgestützt auf Vorgefundenes, zwischen den Beteiligten erst festgelegt
- Möglichkeiten zur Verabredung von Bezugsrahmen und zum einmaligen Ausdruck
- Möglichkeiten zur Entfaltung neuer Bezüge
- formale Sprachen als Grundlage von ‘‘Informationssystemen’’ definieren
Bei Unterstützung von Kommunikation durch ‘‘Informationssysteme’’
- dem für die Unterstützung ausdrücklich vereinbarten Bezugsrahmen,
nämlich dem ‘‘Schema’’ und zusätzlicher ‘‘Ontologie’’ kommt entscheidende Bedeutung zu
•
- Datendefinitionssprache
- Datenmanipulationssprache mit Anfragesprache
- Unterstützung nur in dem Maße erfolgreich,
wie für die beteiligten Menschen sowohl die vorgefundenen,
oftmals nicht ausdrücklich genannten Bezüge,
als auch die erstrebenswert einvernehmlich verabredeten Bezüge
klar ersichtlich und bedeutsam sind
© Joachim Biskup, Universität Dortmund
Informationssysteme: Modelle und Architekturen - Information und Kommunikation: Vermittlung durch Informationssysteme
Über Informationssysteme vermittelte Kommunikation bedarf formaler Sprachen
•
Verdichtung, Verengung oder auch Verarmung der Ausdrucksmöglichkeiten:
der Übergang von natürlicher Sprache zu formalen Sprachen
betrifft den Gesamtvorgang der Kommunikation
zwischen den ein Informationssystem nutzenden Menschen
17. Juli 2003
41
© Joachim Biskup, Universität Dortmund
Grundzüge menschlichen Handelns
Informationssysteme: Modelle und Architekturen - Information und Kommunikation: Vermittlung durch Informationssysteme
17. Juli 2003
42
kommunikatives Handeln (nach Habermas)
Handlungszug
Funktion
Prägung durch
Weltauffassung
Geltungsanspruch
teleologisch
(strategisch)
Zweck
verwirklichen
Sachverhalte
objektiv
Wahrheit und
Wirksamkeit
normenreguliert
Beziehungen
pflegen
Erwartungen
anderer
sozial
Berechtigung
dramaturgisch
sich selbst
darstellen
eigenes
Erleben
subjektiv
Wahrhaftigkeit
•
im kommunikativen Handeln verbinden sich die schon genannten Züge
•
zwei oder mehrere Handelnde
‘‘suchen eine Verständigung über ihre Handlungssituation,
um ihre Handlungspläne und damit ihre Handlungen einvernehmlich zu koordinieren’’
(J. Habermas)
•
wichtigstes Hilfsmittel dabei ist die Sprache:
die beteiligten Handelnden versuchen damit,
ihre Einstellungen zur ‘‘Welt’’ gegenseitig darzustellen, also zu
- den (objektiven) Sachverhalten,
- den (sozialen) Erwartungen anderer,
- dem (subjektiven) eigenen Erleben
•
© Joachim Biskup, Universität Dortmund
Informationssysteme: Modelle und Architekturen - Information und Kommunikation: Vermittlung durch Informationssysteme
17. Juli 2003
43
auf der Grundlage eines gemeinsamen erfahrenen Ausschnittes der ‘‘Lebenswelt’’
© Joachim Biskup, Universität Dortmund
Informationssysteme: Modelle und Architekturen - Information und Kommunikation: Vermittlung durch Informationssysteme
17. Juli 2003
44
Veranschaulichung kommunikativ Handelnder mit Weltbezügen
Geltungsansprüche und Begründungen beim kommunikativen
Handeln
•
objektive Welt
(Sachverhalte)
soziale Welt
(Erwartungen)
Beteiligte drücken mit Sprachhandlungen die Handlungsabsicht vorbehaltlos aus:
etwa ein Versprechen, einen Befehl, einen Wunsch, ...
•
Erfolg oder Misserfolg der gesuchten Verständigung:
erweist sich darin, ob die ausgedrückten Geltungsansprüche bezüglich
- Wahrheit von Sachverhalten,
- Berechtigung von Erwartungen und
- Wahrhaftigkeit von Selbstdarstellungen
angenommen oder abgelehnt werden
Sprachhandlungen
•
Geltungsansprüche von Betroffenen:
- können begründet zurückgewiesen werden,
d.h. Wahrheit und Berechtigung können bestritten
und Wahrhaftigkeit angezweifelt werden
subjektive
Welt 2
(Erleben)
subjektive
Welt 1
(Erleben)
© Joachim Biskup, Universität Dortmund
Informationssysteme: Modelle und Architekturen - Information und Kommunikation: Vermittlung durch Informationssysteme
- werden die erhobenen Ansprüche bekräftigt,
so werden hierfür ebenso wie für die Zurückweisung
Begründungen verlangt
17. Juli 2003
45
© Joachim Biskup, Universität Dortmund
Rückbezüglichkeit und Offenheit
•
•
•
Informationssysteme: Modelle und Architekturen - Information und Kommunikation: Vermittlung durch Informationssysteme
17. Juli 2003
46
Unterstützung durch ein Informationssystem
Kommunikatives Handeln ist von Anbeginn darauf angelegt,
dass Auseinandersetzungen zwischen den Handelnden geschlichtet werden,
indem Gründe beigebracht werden
•
Entscheidungsoffenheit stellt große Herausforderung dar
•
nicht nur Bezugsrahmen durch ‘‘Schema’’ und ‘‘Ontologie’’ ausdrücklich vereinbaren
Auseinandersetzungen mit Begründungen kann ein Handelnder
in einem rückbezüglichen Verhältnis zu sich selbst vorwegnehmen,
indem Sprachhandlungen von vornherein
im Hinblick auf mögliche Zurückweisungen begründet vorgetragen werden
•
ebenfalls Zurückweisungen vermittelter Sprachhandlungen mitbedenken
•
ein ‘‘Administrator’’ kann Herausforderung allenfalls näherungsweise gerecht werden
•
spätere Endbenutzer erfahren das Informationssystem häufig als
starrer und einengender als wünschenswert
kommunikatives Handeln in zweierlei Hinsicht offen in die Zukunft:
- ein Angesprochener kann Geltungsansprüche annehmen oder zurückweisen
- ein Sprecher kann Entscheidungsoffenheit bereits berücksichtigen.
© Joachim Biskup, Universität Dortmund
Informationssysteme: Modelle und Architekturen - Information und Kommunikation: Vermittlung durch Informationssysteme
17. Juli 2003
47
© Joachim Biskup, Universität Dortmund
Informationssysteme: Modelle und Architekturen - Information und Kommunikation: Vermittlung durch Informationssysteme
17. Juli 2003
48
Soziale Systeme (nach Luhmann)
•
•
•
Kommunikation
ein System und seine Umwelt als differenzierte Einheit verstehen
System benutzt Grenze zur Umwelt, um Differenz zur Umwelt zu bewahren
großes System mit Umwelt kann sich (aus)differenzieren:
begriffen
vorhandenes Teilsystem erscheint als ‘‘interne Umwelt’’ für ein neues Teilsystem
•
Information verringert Unsicherheit:
- Rahmen von Möglichkeiten: Systemzustände
- Information: Ereignis, das Systemzustände auswählt,
also Möglichkeiten zu Tatsächlichkeiten werden lässt
- Ereignis ist durch die Möglichkeiten abgesteckt,
verändert das System mit dessen eigener Mitwirkung;
während das Ereignis vorübergeht, dauert der veränderte Systemzustand an
- sinngemäße Wiederholung führt zu keiner neuen Auswahl (keine Information)
- getroffene Auswahl schließt vorher vorhandene Möglichkeiten aus
•
•
Die Information wählt aus einem Rahmen von Möglichkeiten.
•
Die Mitteilung wird von einem Sender als sein sichtbares Verhalten gewählt.
•
Das Verstehen verändert die Möglichkeiten des Empfängers.
•
Im Anschluss an die genannten drei Selektionen kann
der Empfänger jeweils eine vierte Selektion treffen:
Die Annahme oder die Ablehnung des Verstandenen durch den Empfänger
bestimmt dessen weiteres Handeln.
Information steigert Unsicherheit:
-
neue Möglichkeiten treten zutage
in einem ‘‘Informationssystem’’ nur recht beschränkt zu verwirklichen
als ‘‘Schema’’ vereinbarter Bezugsrahmen (weitgehend) fest und unveränderbar angenommen
für Schema-Änderungen benötigt man sogenannte ‘‘Metaschemas’’,
die nun ihrerseits die Änderungsmöglichkeiten für ‘‘Schemas’’ abstecken
© Joachim Biskup, Universität Dortmund
Informationssysteme: Modelle und Architekturen - Information und Kommunikation: Vermittlung durch Informationssysteme
‘‘als Synthese dreier Selektionen,
als Einheit aus Information, Mitteilung und Verstehen’’:
17. Juli 2003
49
•
Rückbezüglichkeit: Kommunikation als auf sich selbst bezogener Vorgang,
der Sender und der Empfänger können unterscheiden, berücksichtigen, überprüfen
- Information (in gewissem Sinne die ‘‘Absicht’’)
- Mitteilung (in gewissem Sinne das ‘‘Beobachtbare’’)
© Joachim Biskup, Universität Dortmund
Unterstützung durch ein Informationssystem
Informationssysteme: Modelle und Architekturen - Information und Kommunikation: Vermittlung durch Informationssysteme
17. Juli 2003
50
Gestaltung von Informationssystemen
zwei Grundeinsichten:
•
bewirkt Verengungen
•
‘‘Mitteilungen’’: im Wesentlichen nur Ausdrücke aus verwirklichter formaler Sprache
•
‘‘Verstehen’’ von Mitteilungen:
• Kommunikation zwischen Menschen auffassen als hochkomplexe Handlung,
die nur näherungs- und modellweise verstanden (und auch nur verstehbar) ist
• Jede Vermittlung durch ‘‘Informationssysteme’’ kann dazu führen,
dass möglicherweise wichtige Gesichtspunkte unterdrückt werden
nur soweit nichttrivial,
d.h. mehr als bloßes Hinzufügen (oder gegebenfalls auch Entfernen) einer Mitteilung,
Die bei der Modellbildung gewonnenen Erkenntnisse über Kommunikation
kann man wenigstens ansatzweise soweit formalisieren,
dass wichtige Bestandteile von Kommunikation
unter Benutzung formaler Sprachen nachgebildet werden können
als es im Vorhinein in der Semantik der Änderungsoperationen vorgesehen
und in den entsprechenden Verfahren verwirklicht worden ist
Indem man also die Unterschiede zwischen
- voller menschlicher Kommunikation einerseits und
- über Informationssysteme vermittelter Kommunikation andererseits
in ihren Einzelheiten verdeutlicht (und dann auch den Endbenutzern offenlegt),
kann man Operationalisierungen zur Überbrückung der Unterschiede gewinnen
© Joachim Biskup, Universität Dortmund
Informationssysteme: Modelle und Architekturen - Information und Kommunikation: Vermittlung durch Informationssysteme
17. Juli 2003
51
© Joachim Biskup, Universität Dortmund
Informationssysteme: Modelle und Architekturen - Information und Kommunikation: Vermittlung durch Informationssysteme
17. Juli 2003
52
Benutzerrahmen
Vermittlung von Kommunikation durch ein Informationssystem
Benutzer 1
Benutzer 2
umfasst Angaben für folgende, näherungsweise zu formalisierende Gesichtspunkte:
•
Selbstbild
•
Partnerbild(er) mit vermuteten Erwartungen des Partners
•
Gewohnheiten gemäß Vereinbarungen oder erworbenen Erfahrungen
•
Absichten mit Handlungsplänen
•
eigenes Wissen
Sprachhandlungen
Selbstbild
S1
Partnerbild
P1(B2)
Partnerbild
P2(B1)
Selbstbild
S2
Mit-
B1
teilungen
in
einer
formalen
Sprache
Ab- Gewohn- Wissen
sichten heiten
A1
G1
W1
B2
Wissen Gewohn- Abheiten sichten
A2
W2
G2
benutzerorientierte
Einsatz-Schnittstelle
benutzerorientierte
Einsatz-Schnittstelle
InformationssystemSchnittstelle
IS
gemeinsames Wissen, einschließlich Schema
Informationssystem
© Joachim Biskup, Universität Dortmund
Informationssysteme: Modelle und Architekturen - Information und Kommunikation: Vermittlung durch Informationssysteme
17. Juli 2003
53
© Joachim Biskup, Universität Dortmund
‘‘formales Kommunikationsverhalten’’
•
•
•
•
•
•
17. Juli 2003
54
Kommunikation und Mensch-Rechner-Interaktion
die ‘‘Benutzer’’ sehen einander noch als “kommunikativ Handelnde’’
ihre Sprachhandlungen oder ihre Mitteilungen in einer formalen Sprache erscheinen
jeweils als von einem bestimmten Sender an einen bestimmten Empfänger gerichtet
Vermittlung durch ein Informationssystem eröffnet neue technische Möglichkeiten,
insbesondere die Vermittlungen auch ungerichtet zu verwenden
Informationssystem überbrückt bei Kommunikation Zeit und Raum
In das Informationssystem eingegangene Mitteilungen
werden als Daten dauerhaft verfügbar gehalten und
unter Verwendung von Netzwerkumgebungen räumlich verteilt
seinen Benutzern wieder angeboten
•
Informationssysteme: Modelle und Architekturen - Information und Kommunikation: Vermittlung durch Informationssysteme
Informationssystem kann selbst (als ‘‘formal’’ bezeichnete) Handlungen ausführen
für einen Kommunikation suchenden Benutzer:
•
Kommunikation:
Handlung zwischen vernunft- und sprachbegabten Menschen
•
Interaktion:
Wechselbeziehung zwischen
einem handelnden Menschen und
einem Rechensystem, dem über
Arbeitsteilung und Programmierung
Teilaufgaben menschlicher Tätigkeit übertragen worden sind
•
Protokollausführung: Wechselbeziehung zwischen
verschiedenen Rechensystemen
(oder hinreichend selbständigen Teilen eines Rechensystems)
das Informationssystem als Träger formaler Handlungen erscheint
wie das eigentliche Gegenüber;
ein bei unmittelbaren Sprachhandlungen
ursprünglich vorhandener menschlicher Kommunikationspartner
bleibt (zunächst jedenfalls) unberücksichtigt
© Joachim Biskup, Universität Dortmund
Informationssysteme: Modelle und Architekturen - Information und Kommunikation: Vermittlung durch Informationssysteme
17. Juli 2003
55
© Joachim Biskup, Universität Dortmund
Informationssysteme: Modelle und Architekturen - Information und Kommunikation: Vermittlung durch Informationssysteme
17. Juli 2003
56
Interaktion und Protokollausführung
Vermittlung durch ein Informationssystem
Ein Informationssystem vermittelt die Mitteilungen der kommunikativ Handelnden.
Benutzer
Administrator
...
...
Systementwickler
Die Besonderheiten dieser Vermittlung kann man wie folgt zusammenfassen:
•
Es stehen jeweils große Mengen von Daten vermittlungsbereit zur Verfügung.
•
Die Vermittlung erfolgt im allgemeinen zeitlich verzögert.
•
Die Qualität der Vermittlung wird durch besondere Protokolle abgesichert, die der
unmittelbaren Kontrolle der (End-) Benutzer entzogen werden.
•
Die Vermittlung wird im Allgemeinen vielen und verschiedenartigen Handelnden
angeboten.
•
Wird die Vermittlung tatsächlich in Anspruch genommen, so geschieht sie unter
einengenden zeitlichen und räumlichen Anforderungen.
Interaktion
Protokollausführung
Informationssystem
Informationssystem
Interaktionen
Unternehmensleiter
© Joachim Biskup, Universität Dortmund
Administrator
...
...
Benutzer
Informationssysteme: Modelle und Architekturen - Information und Kommunikation: Vermittlung durch Informationssysteme
17. Juli 2003
57
© Joachim Biskup, Universität Dortmund
Informationssysteme: Modelle und Architekturen - Information und Kommunikation: Vermittlung durch Informationssysteme
17. Juli 2003
58
Programmieren?
1.3 Modellierung: Wirklichkeit und Modell
“schwammig”
programmieren?
Aufgabenstellung
“unklar”
reale
Maschine
“ausgefranst“
(hardware)
© Joachim Biskup, Universität Dortmund
Informationssysteme: Modelle und Architekturen - Modellierung: Wirklichkeit und Modell
17. Juli 2003
59
© Joachim Biskup, Universität Dortmund
Informationssysteme: Modelle und Architekturen - Modellierung: Wirklichkeit und Modell
17. Juli 2003
60
Programmieren: Modellieren und Formalisieren
Wirklichkeit - Begriffsraum - Sprache
“schwammig“
modellieren
Wirklichkeit:
Aufgabenstellung
“unklar“
aus einfachen Elementen wohlstrukturiert
zusammengesetzte Erscheinungen
Modell der
“ausgefranst“
Aufgabenstellung
formalisieren
bedeuten
vertreten
virtuelle Maschine für anwendungsnahe
formale Programmiersprache
Sprache:
benennen
Ausdrücke und Sätze
. . .
reale
Maschine
Raum der Begriffe und
Gesetze der Logik
. . .
(hardware)
© Joachim Biskup, Universität Dortmund
Informationssysteme: Modelle und Architekturen - Modellierung: Wirklichkeit und Modell
17. Juli 2003
61
© Joachim Biskup, Universität Dortmund
Begriffsgerüst der Entity-Relationship Modellierung
•
Seiendes, Entität (entity):
Einheit der ‘‘Mini-Welt’’
•
Beziehung (relationship):
ein Zusammenhang zwischen Seienden
•
Eigenschaft / Attribut (predicate / attribute):
beschreibt Seiendes oder Beziehung
•
Rolle (role):
•
Klassenbildung (abstraction): Zusammenfassung
gleichartiger Seienden/Beziehungen
Ergänzungen notwendig:
•
•
Aussonderung (separation/ specialization):
für eine Aussageform und eine Klasse
diejenigen Seienden/Beziehungen,
für die die entsprechende Aussage gilt
Verallgemeinerung (generalization): Vereinigung wohlbestimmter Klassen
•
Aggregation (aggregation):
© Joachim Biskup, Universität Dortmund
62
erster Ansatz: Aufzählungen
- der vorhandenen Seienden,
- ihrer zutreffenden Eigenschaften und
- ihrer Beziehungen
Bedeutung eines Seienden in einer Beziehung
•
17. Juli 2003
statische Gesichtspunkte eines Unternehmens
•
•
Informationssysteme: Modelle und Architekturen - Modellierung: Wirklichkeit und Modell
Gesamtheit der als möglich angesehenen Seienden, Beziehungen etc. nicht darstellbar
Bedingungen an (wirklichkeits-)getreue Aufzählungen nicht ausdrückbar
keine Meta-Aussagen über zukünftige Beschreibungen möglich
Das aufzählend dargestellte Wissen wird ergänzt durch Wissen folgender Formen:
• Bedingungen (constraints): schränken die Aufzählungen ein
• Regeln (rules):
erschließen Seiendes, Beziehungen etc.
Beziehungen als Seiendes betrachtet
Informationssysteme: Modelle und Architekturen - Modellierung: Wirklichkeit und Modell
17. Juli 2003
63
© Joachim Biskup, Universität Dortmund
Informationssysteme: Modelle und Architekturen - Modellierung: Wirklichkeit und Modell
17. Juli 2003
64
typische Bedingungen
•
typische Regeln
Schlüsselbedingung (key constraint): innerhalb einer Seiendenklasse müssen die Werte
gewisser Attribute die Seienden eindeutig bestimmen
•
•
Gesamtheitsregel (universe of discourse rule):
Die Gesamtheit der möglichen Seienden einer Art wird
abschließend durch die Angaben ... < die hier genauer einzufügen wären >... beschrieben.
•
Verneinungsregel (negation rule):
Ist eine Beziehung in der Gesamtheit der möglichen Beziehungen,
aber weder in der Aufzählung noch erschließbar,
so soll die entsprechende Aussage nicht gelten.
•
Sichtregel (view rule):
Sind die Beziehungen R1,...,Rk in der Aufzählung oder schon erschlossen,
so soll auch die Beziehung erschlossen werden können,
die man aus R1,...,Rk
gemäß den Angaben ...< die hier genauer einzufügen wären >... erstellen kann.
Aussonderungsbedingung (specialization constraint, isa-constraint):
jedes Seiende aus einer (Teil-)Klasse Si muss auch in der (Ober-)Klasse S sein
•
Verallgemeinerungsbedingung oder Partitionsbedingung (partition constraint):
jedes Seiende aus (Ober-)Klasse S muss auch in [genau] einer (ihrer Unter-)Klasse(n) Si sein
•
viele-eins-Bedingung (many-one-constraint, n:1-constraint):
jedes Seiende aus Klasse S1 darf nur mit
höchstens einem Seienden aus Klasse S2 in Beziehung stehen
•
Seinsbedingung (existence constraint):
jedes Seiende aus Klasse S1 muss mit
mindestens einem Seienden aus Klasse S2 in Beziehung stehen
•
Verweisbedingung (referential constraint):
in einer Beziehungenklasse auftretende Seiende
müssen in einer Seiendenklasse (oder einer anderen Beziehungenklasse) vorkommen
© Joachim Biskup, Universität Dortmund
Informationssysteme: Modelle und Architekturen - Modellierung: Wirklichkeit und Modell
17. Juli 2003
65
© Joachim Biskup, Universität Dortmund
dynamische Gesichtspunkte eines Unternehmens
man erwartet häufig Änderungen und
möchte diese in der tatsächlichen Verwirklichung leicht durchführen können
zeitunabhängige Beschreibungen:
man erwartet im Allgemeinen keine Änderungen;
sie können also in der tatsächlichen Verwirklichung
ausschließlich unter dem Gesichtspunkt leichter Nutzung behandelt werden
Dynamische Gesichtspunkte kann man auch direkter beschreiben,
indem man die kommunikativen Handlungen in den Mittelpunkt der Betrachtung stellt:
eine (formale) Handlung (action) wird dann wie folgt angegeben:
• eine Änderung im Wissen eines Senders, d.h. eine Information,
• löst eine Mitteilung an einen (oder mehrere) Empfänger aus,
• die dann ihrerseits ihr Wissen geeignet verändern oder eine anschließende Handlung auslösen,
d.h. zu verstehen versuchen.
Verstehen offen für Annahme oder Ablehnung und für Anschlusskommunikation:
nicht nur einzelne Handlungen, sondern auch (formale) Handlungsfolgen beschreiben
Wissen und Handlung, statische und dynamische Gesichtspunkte:
stets unmittelbar aufeinander bezogen, nur für Formalisierung begrifflich getrennt
Informationssysteme: Modelle und Architekturen - Modellierung: Wirklichkeit und Modell
66
zeitabhängige Beschreibungen:
- fasst man Mitteilungen ebenfalls als (Bruchstücke von) Wissen auf,
so bedeutet eine Mitteilung die Aufforderung an den Empfänger, sein Wissen zu verändern.
- da der Empfänger sein Wissen nur gemäß Bedingungen aufbauen kann (oder will),
müssen gegebenenfalls auftretende Widersprüche unter den Beteiligten aufgelöst werden.
© Joachim Biskup, Universität Dortmund
17. Juli 2003
zeitabhängige und zeitunabhängige Teile
Bedingungen beschreiben indirekt auch dynamische Gesichtspunkte:
•
Informationssysteme: Modelle und Architekturen - Modellierung: Wirklichkeit und Modell
17. Juli 2003
67
im Allgemeinen als zeitabhängig angesehen:
• aufzählend dargestelltes Wissen
im Allgemeinen als zeitunabhängig angesehen:
• Formate für die Aufzählungen
• Bedingungen
• Regeln für die Gesamtheit der möglichen Seienden und für negative Information
• formale Handlungen
© Joachim Biskup, Universität Dortmund
Informationssysteme: Modelle und Architekturen - Modellierung: Wirklichkeit und Modell
17. Juli 2003
68
Schema und Instanz, ‘‘Ontologie’’
ER-Diagramme
Schema (Deklaration): Zusammenfassung der zeitunabhängigen Teile
Zeichen für Bedingungen
Zeichen für Klassen
• Formate (Typen) für Aufzählungen
• Bedingungen (Invarianten) für Aufzählungen
• Regeln (vordefinierte Prozeduren) zum Erschließen von Nicht-Aufgezähltem
Instanz (Zustand): Zusammenfassung der zeitabhängigen Teile
Informationssysteme: Modelle und Architekturen - Modellierung: Wirklichkeit und Modell
dann
ISA
Aussonderungsbedingung: jedes
Seiende aus Si muß auch in S sein
© Joachim Biskup, Universität Dortmund
(Verallgemeinerung)
...
Sk
(Aussonderung)
Aggregation
...
Aggregation durch
Beziehungenklasse,
aufgefaßt als
Seiendenklasse
17. Juli 2003
69
© Joachim Biskup, Universität Dortmund
Informationssysteme: Modelle und Architekturen - Modellierung: Wirklichkeit und Modell
17. Juli 2003
70
17. Juli 2003
72
Beispiel für ER-Modellierung: Seiendenklassen
Name
Vorname
Geschlecht
Geburtstag:
Geburtsort
Anschrift:
Straße, Nr, Plz, Ort
Tag, Monat, Jahr
Person
private Telefonnummer
weitere Telefonnummern
ISA
ϕ(t1,...,tn)
or
Behandelnder
...
and
ψ(r1,...,rk)
(Aussonderung)
Verallgemeinerungsbedingung
(Partitionsbedingung): jedes
Seiende aus S muß auch in
(genau) einem Si sein
(! )
ISA
Rolle
trifft auch die Aussage ϕ(t1,...,tn) zu,
wobei die Terme ti wie angegeben gebildet werden.’’
Gleichheitsbedingung
...
Sk
S
S
1
die Aussagen ψ(r1,...,rk),..., χ(s1,...,sl) und die Gleichheitsbedingung
alle zutreffen
oder
eine alternative Menge
von Aussagen mit entsprechender Gleichheitsbedingung zutrifft,
t1 := exp1(r1,...,rk,...,s1,...,sl)
.
.
tn := expn(r1,...,rk,...,s1,...,sl)
...
S
1
mengenwertiges
Attribut
Regeln und Regelgraphen
‘‘Wenn
Beziehungenklasse
A
‘‘Ontologie’’: meistens nur umgangssprachliche oder halb-formale
inhaltliche Deutungen von Schema und Instanzen
© Joachim Biskup, Universität Dortmund
(Verallgemeinerung)
Attribut
Rolle
In den Verwirklichungen versucht man im Allgemeinen
das Schema und die Instanz
mit den gleichen (oder zumindest ähnlichen) Techniken zu behandeln.
S
A
• Aufzählung entsprechend Formaten, erfüllt Invarianten
In einer aus Schema und Instanz bestehenden Beschreibung
kann das Schema als eine Art Selbstbeschreibung angesehen werden.
Seiendenklasse
ISA
and
χ(s1,...,sl)
Informationssysteme: Modelle und Architekturen - Modellierung: Wirklichkeit und Modell
...
Arzt
17. Juli 2003
71
© Joachim Biskup, Universität Dortmund
Angestellter
Informationssysteme: Modelle und Architekturen - Modellierung: Wirklichkeit und Modell
Patient
Beispiel für ER-Modellierung: Beziehungenklassen
Beispiel für ER-Modellierung: Beziehungenklasse
Datum
Arbeitgeber
Behandlung
Patient
Behandelnder
beschäftigt bei
Protokoll
Patient
Versicherter
1
1
Versicherung
Versicherungsnehmer
Person
!
Versicherungsgesellschaft
ISA
!
ISA
Anamnese
AOK
Ersatzkasse
verordnete
Therapie
Untersuchung /
Befunde
Privatkasse
Beschwerden
durchgeführte
Therapie
Diagnose
© Joachim Biskup, Universität Dortmund
Informationssysteme: Modelle und Architekturen - Modellierung: Wirklichkeit und Modell
17. Juli 2003
73
© Joachim Biskup, Universität Dortmund
Beispiel für ER-Modellierung: Aggregation und Regeln
Sonstiges
Informationssysteme: Modelle und Architekturen - Modellierung: Wirklichkeit und Modell
17. Juli 2003
74
17. Juli 2003
76
Beispiel für ER-Modellierung: Klassen
Name, Vorname, Geschlecht, Geburtstag, Geburtsort
Jung
Alt
Vorfahr
Datum
Patient
Behandelnder
Behandlung
1
Elternschaft
Protokoll
behandlung(pat,dat,prot,beh)
Kind
Eltern
1
Dokumentation
dat, prot, beh
Patient
1
Kind
Anonym
Mutterschaft
Karteikarte
Kind
1
1
Geschlecht
Vaterschaft
!
ISA
Jahrgang
dok(patient,kartei)
Mutter
Vater
andere Merkmale
Frau
© Joachim Biskup, Universität Dortmund
Informationssysteme: Modelle und Architekturen - Modellierung: Wirklichkeit und Modell
17. Juli 2003
75
© Joachim Biskup, Universität Dortmund
Informationssysteme: Modelle und Architekturen - Modellierung: Wirklichkeit und Modell
Mann
Beispiel für ER-Modellierung: Klassen mit Regeln
Jung
Alt
Vorfahr
1.4 Formalisierung: Logik und Mengenlehre
Jung := Kind
Alt := Eltern
or
Jung := Kind
Alt := Alt
and
Eltern = Jung
Elternschaft
or
Kind := Kind
Eltern := Mutter
Kind
Eltern.Geschlecht = weiblich
Kind := Kind
Eltern := Vater
Eltern
Geschlecht
Eltern.Geschlecht = männlich
Patient
Kind := Kind
Mutter := Eltern
Kind
Kind := Kind
Vater := Eltern
Kind
1
1
Mutterschaft
Vaterschaft
!
ISA
Mutter
Vater
Frau
© Joachim Biskup, Universität Dortmund
Mann
Informationssysteme: Modelle und Architekturen - Modellierung: Wirklichkeit und Modell
17. Juli 2003
77
© Joachim Biskup, Universität Dortmund
Prädikatenlogik
∪n ∈ IN Fn mit Fn = {f0n, f1n, f2n...} für einfache Seiende
Funktionszeichen: F =
•
Individuenvariablen: V = {v0,v1,v2,...} für unbestimmte (‘‘beliebige’’) Seiende
•
Terme: induktiv aus Funktionszeichen und Individuenvariablen gebildet,
für (zusammengesetzte) Seiende oder
andere durch die Teilterme t1,...,tn bezeichnete Gegebenheit
Grundterme: Terme ohne Individuenvariablen.
•
Prädikatenzeichen: P = ∪n ∈ IN Pn mit Pn = {P0n, P1n, P2n, ...}
Funktionszeichen
speziell: Konstantenzeichen
•
Formeln (speziell Aussagen)
bieten Ausdruckmittel für
n-stelliges Prädikatenzeichen und t1,...,tn Terme:
Informationssysteme: Modelle und Architekturen - Formalisierung: Logik und Mengenlehre
80
aussagenlogische Verknüpfungen
(prädikatenlogische) Quantoren
Aggregation
Verallgemeinerung
Klassenbildung
Aussonderung
Pn(t1,...,tn) (atomare) Formel
- für Φ und Ψ Formeln und x eine Individuenvariable:
(Φ ∧ Ψ), (Φ ∨ Ψ), (¬Φ), (∀x)Φ, (∃x)Φ Formeln
© Joachim Biskup, Universität Dortmund
17. Juli 2003
atomare Formeln (speziell Aussagen)
bezeichnen (grundlegende)
Beziehungen, Eigenschaften
Gleichheitszeichen: = , Element aus
für Identität zwischen Seienden
Formeln (1. Stufe): induktiv aus Prädikatenzeichen und Termen
mit aussagenlogischen Junktoren und Quantoren für Individuen gebildet,
für Aussagen und Aussageformen über Seiende, Beziehungen und Eigenschaften:
- für
Terme
bezeichnen Seiende
Prädikatenzeichen
P2
Pn
78
Individuenvariablen
für mögliche Beziehungen und Eigenschaften (Attribute)
•
17. Juli 2003
Prädikatenlogik und ER-Modellierung
•
•
Informationssysteme: Modelle und Architekturen - Formalisierung: Logik und Mengenlehre
.
.
.
17. Juli 2003
79
© Joachim Biskup, Universität Dortmund
Informationssysteme: Modelle und Architekturen - Formalisierung: Logik und Mengenlehre
Syntax
Funktionszeichen
Individuenvariablen
Struktur M = (d,δ) und Variablenbelegung ß legen Bedeutung aller Sprachmittel fest:
1. ß auf beliebige Terme fortsetzen:
Terme
atomare
Formeln
Prädikatenzeichen
2. Formeln auswerten:
Formeln
š,›™
x, x
Semantik
Struktur (Interpretation): M = (d,δ) mit
d nichtleere (Werte-) Menge (Universum)
δ Zuordnung
×i=1,...,n
n
δ(P ) ⊂ ×i=1,...,n
δ(fn) :
von Funktionszeichen zu Funktionen auf d,
und von Prädikatenzeichen zu Relationen auf d:
(Gleichheitszeichen = stets durch {(x,x) | x ∈ d} interpretiert)
© Joachim Biskup, Universität Dortmund
•
Informationssysteme: Modelle und Architekturen - Formalisierung: Logik und Mengenlehre
81
:gdw
|=M,ß Φ und |=M,ß Ψ
|=M,ß (Φ ∨ Ψ)
:gdw
|=M,ß Φ oder |=M,ß Ψ
|=M,ß (¬Φ)
:gdw
nicht |=M,ß Φ
|=M,ß (∀x) Φ
:gdw
für alle ß' mit ß =x ß' gilt |=M,ß' Φ
|=M,ß (∃x) Φ
:gdw
es gibt ß' mit ß =x ß' mit |=M,ß' Φ
ß =x ß'
die Variablenbelegungen ß und ß' sind für alle Variablen gleich,
bis auf möglicherweise für die Variable x
bedeutet hier:
© Joachim Biskup, Universität Dortmund
:gdw für alle Belegungen ß gilt : |=M,ß Φ
•
{M | Φ ist gültig in M}.
Informationssysteme: Modelle und Architekturen - Formalisierung: Logik und Mengenlehre
:gdw es gibt Struktur M, die Modell von Φ ist
Unerfüllbarkeit:
:gdw es gibt keine Struktur M,
die Modell von Φ ist
logische Implikation:
•
Formel (-menge) Φ impliziert logisch Formel (-menge) Ψ, Φ |= Ψ,
:gdw Mod (Φ) ⊂ Mod (Ψ)
82
Informationssysteme: Modelle und Architekturen - Formalisierung: Logik und Mengenlehre
17. Juli 2003
17. Juli 2003
84
Bildung neuer Mengen aus vorgegebenen Mengen, hier insbesondere:
aus einer Menge d von (einfachen) Werten
neue Mengen von möglicherweise strukturierten Werten induktiv gewinnen:
Bildung von Teilmengen oder ausgesonderten Mengen:
ist M = (d,δ) eine Struktur und
ist Φ eine Formel, in der die Variablen x1,...,xk frei vorkommen,
so die durch Φ (aus ×i=1,...,k d) ausgesonderte Menge konstruieren:
Allgemeingültigkeit, Erfüllbarkeit, Unerfüllbarkeit, logische Implikation:
- hier deklarativ definiert
- führen aus dem Bereich des (algorithmisch) Entscheidbaren hinaus
- verbleiben mit Ausnahme der Erfüllbarkeit im Bereich des (algorithmisch) Aufzählbaren
© Joachim Biskup, Universität Dortmund
17. Juli 2003
ist d eine nichtleere Menge,
so aus d induktiv eine Klasse κd von Mengen konstruieren:
d ist in κd
sind m, n aus κd, so auch
m×n
kartesisches Produkt,
m∪n
Vereinigung,
℘m
Potenzmenge
:gdw jede Struktur M ist Modell von Φ
Erfüllbarkeit:
Formel Φ ist unerfüllbar
•
|=M,ß (Φ ∧ Ψ)
Mengenlehre
:=
Formel Φ ist erfüllbar
•
17. Juli 2003
Allgemeingültigkeit:
Formel Φ ist allgemeingültig
•
(ß(t1),...,ß(tn)) ∈ δ(Pn)
d
Modellklasse einer Formel (-menge) Φ:
Mod (Φ)
•
:gdw
Modell einer Formel:
M = (d,δ) ist Modell einer Formel Φ,
|=M Φ (Φ gültig in M)
•
d→d
|=M,ß Pn(t1,...,tn)
ß:V→d
Variablenbelegung zur Struktur M = (d,δ):
:= δ(f0)
ß(f0)
n
ß(f (t1,...,tn)) := δ(fn)(ß(t1),...,ß(tn))
dM,Φ := { (ß(x1),...,ß(xk))
83
© Joachim Biskup, Universität Dortmund
|
ß ist Variablenbelegung mit |=M,ß Φ }
Informationssysteme: Modelle und Architekturen - Formalisierung: Logik und Mengenlehre
Logik und Informationssysteme
Administrator
Definitionssprache
Anwender
Änderungssprache
1.5 Architekturen
Anwender
Anfragesprache
Formate (Typen)
Aufzählungen:
Anfrage:
für Aufzählungen
(dauerhaft gespeicherte
Aussagen in der Form
von “Daten“)
Aussagen
und
Antwortformat
Bedingungen
Regeln
Algorithmus
zur Bestimmung der Implikationsbeziehung
alle implizierten Aussagen entsprechend Antwortformat
© Joachim Biskup, Universität Dortmund
Informationssysteme: Modelle und Architekturen - Formalisierung: Logik und Mengenlehre
17. Juli 2003
85
Architektur eines Informationssystems: Grobstruktur
© Joachim Biskup, Universität Dortmund
Informationssysteme: Modelle und Architekturen - Architekturen
17. Juli 2003
86
17. Juli 2003
88
Anwendungsumgebungen für ein Informationssystem
Einsatz-Schnittstelle
Anwendungsumgebung
Administrator
Benutzer
Netz
InformationssystemSchnittstelle
Entwurfsumgebung
Arbeitsplatzumgebung
...
Programmierumgebung
...
Netzumgebung
...
"eigentliches"
Informationssystem
BasissystemSchnittstelle
(virtuelles) Basissystem
© Joachim Biskup, Universität Dortmund
Informationssysteme: Modelle und Architekturen - Architekturen
17. Juli 2003
87
© Joachim Biskup, Universität Dortmund
Informationssysteme: Modelle und Architekturen - Architekturen
Entwurfsumgebung
Arbeitsplatzumgebung
•
unterstützt die Modellierung eines Anwendungsfalles
durch eine häufig Administrator genannte Person (oder Personengruppe)
•
unterstützt die Tätigkeiten von Benutzern
entsprechend ihrer jeweiligen Verpflichtungen und Rollen in einem Unternehmen
•
stellt (hoffentlich) graphische Werkzeuge zur Verfügung
•
Beispiele: Büroautomation oder rechnergestützter Entwurf technischer Erzeugnisse
•
Modellierung umfasst im Allgemeinen
sowohl die dynamischen als auch die statischen Gesichtspunkte
•
Dienste eines Informationssystems in zweierlei Formen ansprechbar:
- Datenmanipulationssprache wird interaktiv und selbständig
vom Endbenutzer direkt verwendet
•
als zeitunabhängig angesehene Teile müssen formalisiert werden
zu einem (Datenbank-) Schema
•
dies wird vereinbart über
eine an der Informationssystem-Schnittstelle angebotene Datendefinitionssprache
© Joachim Biskup, Universität Dortmund
Informationssysteme: Modelle und Architekturen - Architekturen
17. Juli 2003
- vordefinierte, möglicherweise parametrisierte Anfragen werden
über Menüs oder ähnliche Formen der Benutzerführung
vom Endbenutzer ausgewählt
89
© Joachim Biskup, Universität Dortmund
Programmierumgebungen
Informationssysteme: Modelle und Architekturen - Architekturen
17. Juli 2003
90
Netzwerkumgebung
•
Programme in (höherer) Programmiersprache erstellen und ausführen
•
dabei Aufrufe des Informationssystems aus dem jeweiligen Programm ermöglichen
•
dazu an Informationssystem-Schnittstelle angebotene Datenmanipulationssprache in
die jeweilige Wirtssprache (host language) ‘‘einbetten’’
•
zu behandelnde Gesichtspunkte:
- Übersetzung von Wirtssprachenprogrammen mit eingestreuten Aufrufen
des Informationssystems, etwa mit Hilfe einer Präkompilierung
- Interaktion zwischen Prozessen der Wirtssprache und
denen des Informationssystems
- Angleichung der in der Wirtssprache und der im Informationssystem
verwirklichten grundlegenden Datentypen
•
vorliegendes Informationssystem als Komponente
eines größeren, mit Hilfe eines Netzwerkes aufgebauten Gesamtsystems benutzen:
föderierte Systeme, mediierte Systeme, Web-Informationssysteme, ...
•
Gesamtsystem nennt man heterogen,
wenn Komponenten von unterschiedlicher Art (z.B. in der Wahl des Datenmodells)
•
aus der Sicht eines Endbenutzers:
innerer Aufbau des Gesamtsystems und die Unterschiedlichkeit der Komponenten
möglichst weitgehend verborgen
•
aus Sicht der Netzwerkumgebung:
erforderliche Übersetzungs- und Verwaltungsdienste anbieten
- Anpassung der üblicherweise satzorientierten Arbeitsweise der Wirtssprache
an die mengenorientierte Arbeitsweise des Informationssystems
© Joachim Biskup, Universität Dortmund
Informationssysteme: Modelle und Architekturen - Architekturen
17. Juli 2003
91
© Joachim Biskup, Universität Dortmund
Informationssysteme: Modelle und Architekturen - Architekturen
17. Juli 2003
92
Informationssystem-Schnittstelle
Schichtung und Komponenten eines Informationssystems
InformationssystemSchnittstelle
eingebettet
interaktiv, selbständig
Datenmanipulationssprache (DML)
Datendefinitionssprache (DDL)
Sprachanalyse
Vereinbarungen
Änderungen
Anfragen
Aufbereitung
von
Antworten
Antworten
Erklärungen
Relationen (Klassen),
Tupel (Objekte)
Datenwörterbuch
• Datendefinitionssprache (data definition language, DDL): für Vereinbarungen
konzeptionelle Schicht
(mengenorientiert,
mit Optimierung)
Transaktionsverwaltung
MengenSchnittstelle
• Datenmanipulationssprache (data manipulation language, DML):
Zugriffsstrukturen,
Tupelidentifikatoren
(Surrogate), Datensätze
für Änderungen und Anfragen
• Antworten auf Anfragen (oder andere Reaktionen): für Rückgaben
• Erklärungen: für ‘‘benutzerfreundlich’’ aufbereitetete Hinweise, z.B.
interne Schicht
(Datensatz-orientiert)
welche Zwischenergebnisse aufgetreten sind oder
welche (äquivalenten) Umformungen an der Anfrage vorgenommen worden sind
© Joachim Biskup, Universität Dortmund
Informationssysteme: Modelle und Architekturen - Architekturen
17. Juli 2003
93
© Joachim Biskup, Universität Dortmund
konzeptionelle Schicht
•
erledigt die mengenorientierte Verarbeitung von Anfragen und Änderungen
•
leistet die Hauptarbeit der Optimierung
•
Strukturen und Operationen der Mengen-Schnittstelle:
•
•
•
17. Juli 2003
94
verwirklicht Zugriff auf einzelne Tupel (bzw. Objekte)
behandelt diese als zu suchende, zu transportierende oder zu verarbeitende Datensätze
setzt zur Effizienzsteigerung geeignete Zugriffsstrukturen ein
Strukturen der Tupel-Schnittstelle:
-
für Änderungen:
- Relationen (Klassen), Tupel (Objekte)
- Einfügen, Entfernen, Abändern (und weitere Klassenfunktionen)
für Anfragen:
- Relationen (Klassen)
- Relationen- (Klassen-) Algebra (Klassenfunktionen),
möglicherweise Erweiterung durch Rekursion usw
Informationssysteme: Modelle und Architekturen - Architekturen
Informationssysteme: Modelle und Architekturen - Architekturen
interne Schicht
•
© Joachim Biskup, Universität Dortmund
TupelSchnittstelle
•
Operationen der Tupel-Schnittstelle:
-
17. Juli 2003
95
Relationen (Klassen) als Dateien
Zugriffsstrukturen: sequentielle Listen, Indexe, Links
Relationendurchläufe (Klasseniteratoren)
Tupel (Objekte) als Datensätze
Tupelidentifikatoren (Surrogate)
Anlegen und Entfernen von Relationen (Klassen)
Anlegen und Entfernen von Zugriffsstrukturen, insbesondere Sortieren
Öffnen, Schließen von Durchläufen
Bestimmen eines Tupelidentifikators (Surrogates), insbesondere bei Durchläufen
Transport eines Tupels (Objektes) als Datensatz, insbesondere
Herstellen einer Hauptspeicherkopie bzw.
(Zurück-) Schreiben in den dauerhaften Speicher
Erzeugen, Vergleichen, Abändern, Entfernen
von Hauptspeicherkopien von Tupeln (Objekten)
© Joachim Biskup, Universität Dortmund
Informationssysteme: Modelle und Architekturen - Architekturen
17. Juli 2003
96
Datenwörterbuch (data dictionary)
Sicht_1
Schema
...
Inhalte des Datenwörterbuchs
Sicht_n
Schema
•
konzeptionelles Schema (conceptual scheme):
im Wesentlichen aufbereitete Form des (Datenbank-) Schemas
•
internes Schema (internal scheme):
von der internen Schicht benötigte, verfeinerte und zusätzliche Angaben,
etwa über Typen, Speicherbereiche, Zugriffsstrukturen oder Durchläufe
•
Sichtschemas (view schemes, external schemes)
stellen die sogenannten Sichten aufbereitet dar
konzeptionelles Schema
internes Schema
•
•
•
Zugriffe auf Datenwörterbuch
vom Informationssystem unterhaltene Datenstruktur
enthält alle Vereinbarungen
in üblicherweise (nach ANSI/X3/SPARC) dreistufiger Form
Zugriffe von
Sprachanalyse/Antwortaufbereitung, konzeptioneller und interner Schicht
© Joachim Biskup, Universität Dortmund
Informationssysteme: Modelle und Architekturen - Architekturen
17. Juli 2003
97
•
Datenwörterbuch wird mit den gleichen oder ähnlichen Mitteln verwirklicht
wie die eigentliche Datenbank.
•
Datenmanipulationssprache kann auch auf das Datenwörterbuch angewendet werden.
© Joachim Biskup, Universität Dortmund
Informationssysteme: Modelle und Architekturen - Architekturen
Transaktionsverwaltung
17. Juli 2003
98
Basissystem
(virtueller) flüchtiger und dauerhafter Speicher
•
•
für Mehrbenutzerbetrieb, Konsistenzwahrung, Verlässlichkeit, Fehlertoleranz, ...
Segmente, Blöcke;
Einrichten und Freigeben, Lesen und Schreiben
muss im Allgemeinen schichtenübergreifend angelegt werden,
weil hierbei die konzeptionellen Strukturen und die internen Strukturen
quer zueinander liegen können
SpeicherSchnittstelle
GeräteSchnittstelle
Speichergeräte
...
• (virtuelles) Basissystem:
bietet virtuellen, zweigeteilten Speicher an,
dessen dauerhafter Teil durch geeignete Speichergeräte physisch verwirklicht wird
• Speicher-Schnittstelle:
zum Einrichten/Freigeben sowie Lesen/Schreiben von Blöcken auf den Speichergeräten,
also Transport von Blöcken zwischen den Speichergeräten und den Pufferbereichen
• Geräte-Schnittstelle: zum Benutzen der eigentlichen Speichergeräte
© Joachim Biskup, Universität Dortmund
Informationssysteme: Modelle und Architekturen - Architekturen
17. Juli 2003
99
© Joachim Biskup, Universität Dortmund
Informationssysteme: Modelle und Architekturen - Architekturen
17. Juli 2003
100
Architektur: benutzersichtbarer Teil
Entwurfsumgebung
Arbeitsplatz- . . .
umgebung
Netzumgebung
Programmier- . . .
umgebung
Datenmanipulationssprache (DML)
Änderungen
Vereinbarungen
EinsatzSchnittstellen
eingebettet
interaktiv, selbständig
Datendefinitionssprache (DDL)
...
Anfragen
Antworten
Erklärungen
Entwurfsumgebung
InformationssystemSchnittstelle
Entwurfsumgebung
Arbeitsplatz- . . .
umgebung
Netzumgebung
Programmier- . . .
umgebung
Datendefinitionssprache (DDL)
Sicht i
Schema
Vereinbarungen
Aufbereitung
von
Antworten
Sprachanalyse
..
.
..
.
Sprachanalyse
Sicht i
Schema
Relationen (Klassen),
Tupel (Objekte)
konzeptionelles
Schema
konzeptionelle Schicht
(mengenorientiert,
mit Optimierung)
Transaktionsverwaltung
Zugriffsstrukturen,
Tupelidentifikatoren
(Surrogate), Datensätze
internes Schema
Datenmanipulationssprache (DML)
Änderungen
Anfragen
Antworten
Erklärungen
interaktiv, selbständig
InformationssystemSchnittstelle
Datendefinitionssprache (DDL)
Aufbereitung
von
Antworten
Vereinbarungen
..
.
MengenSchnittstelle
konzeptionelles
Schema
internes Schema
TupelSchnittstelle
Relationen (Klassen),
Tupel (Objekte)
Transaktionsverwaltung
konzeptionelle Schicht
(mengenorientiert,
mit Optimierung)
Zugriffsstrukturen,
Tupelidentifikatoren
(Surrogate), Datensätze
TupelSchnittstelle
..
.
(virtueller) flüchtiger und dauerhafter Speicher
SpeicherSchnittstelle
(virtueller) flüchtiger und dauerhafter Speicher
© Joachim Biskup, Universität Dortmund
konzeptionelles
Schema
17. Juli 2003
101
© Joachim Biskup, Universität Dortmund
interaktiv, selbständig
Datendefinitionssprache (DDL)
Arbeitsplatz- . . .
umgebung
Netzumgebung
Programmier- . . .
umgebung
Vereinbarungen
..
.
Datenmanipulationssprache (DML)
Änderungen
Sprachanalyse
Sicht i
Schema
Anfragen
Antworten
Erklärungen
internes Schema
Änderungen
Anfragen
Antworten
Erklärungen
InformationssystemSchnittstelle
Entwurfsumgebung
Relationen (Klassen),
Tupel (Objekte)
Transaktionsverwaltung
konzeptionelle Schicht
(mengenorientiert,
mit Optimierung)
Zugriffsstrukturen,
Tupelidentifikatoren
(Surrogate), Datensätze
..
.
Vereinbarungen
Sprachanalyse
Aufbereitung
von
Antworten
..
.
Netzumgebung
Programmier- . . .
umgebung
TupelSchnittstelle
konzeptionelles
Schema
...
konzeptionelle Schicht
(mengenorientiert,
mit Optimierung)
Transaktionsverwaltung
17. Juli 2003
Änderungen
Anfragen
Antworten
Erklärungen
InformationssystemSchnittstelle
internes Schema
Zugriffsstrukturen,
Tupelidentifikatoren
(Surrogate), Datensätze
TupelSchnittstelle
interne Schicht
(Datensatz-orientiert)
Aufbereitung
von
Antworten
Relationen (Klassen),
Tupel (Objekte)
konzeptionelle Schicht
(mengenorientiert,
mit Optimierung)
Transaktionsverwaltung
MengenSchnittstelle
konzeptionelles
Schema
internes Schema
Relationen (Klassen),
Tupel (Objekte)
Transaktionsverwaltung
konzeptionelle Schicht
(mengenorientiert,
mit Optimierung)
MengenSchnittstelle
(virtueller) flüchtiger und dauerhafter Speicher
Segmente, Blöcke; Einrichten und Freigeben, Lesen und Schreiben
Zugriffsstrukturen,
Tupelidentifikatoren
(Surrogate), Datensätze
TupelSchnittstelle
internes Schema
GeräteSchnittstelle
Zugriffsstrukturen,
Tupelidentifikatoren
(Surrogate), Datensätze
TupelSchnittstelle
GeräteSchnittstelle
Segmente, Blöcke; Einrichten und Freigeben, Lesen und Schreiben
SpeicherSchnittstelle
...
Speichergeräte
GeräteSchnittstelle
interne Schicht
(Datensatz-orientiert)
Speichergeräte
SpeicherSchnittstelle
interne Schicht
(Datensatz-orientiert)
(virtueller) flüchtiger und dauerhafter Speicher
SpeicherSchnittstelle
102
..
.
(virtueller) flüchtiger und dauerhafter Speicher
Segmente, Blöcke; Einrichten und Freigeben, Lesen und Schreiben
MengenSchnittstelle
EinsatzSchnittstellen
eingebettet
Datenmanipulationssprache (DML)
Sprachanalyse
Sicht i
Schema
MengenSchnittstelle
interne Schicht
(Datensatz-orientiert)
...
Arbeitsplatz- . . .
umgebung
Datendefinitionssprache (DDL)
..
.
..
.
konzeptionelles
Schema
Vereinbarungen
Sicht i
Schema
Aufbereitung
von
Antworten
Aufbereitung
von
Antworten
eingebettet
Datenmanipulationssprache (DML)
interaktiv, selbständig
InformationssystemSchnittstelle
InformationssystemSchnittstelle
Architektur: Basissystem
eingebettet
interaktiv, selbständig
Datendefinitionssprache (DDL)
...
Anfragen
Antworten
Erklärungen
Informationssysteme: Modelle und Architekturen - Architekturen
Architektur: ‘‘eigentliches Informationssystem’’
Entwurfsumgebung
eingebettet
Speichergeräte
Informationssysteme: Modelle und Architekturen - Architekturen
EinsatzSchnittstellen
Änderungen
Relationen (Klassen),
Tupel (Objekte)
Speichergeräte
SpeicherSchnittstelle
GeräteSchnittstelle
...
EinsatzSchnittstellen
..
.
GeräteSchnittstelle
...
...
Datenmanipulationssprache (DML)
Sprachanalyse
Sicht i
Schema
Segmente, Blöcke; Einrichten und Freigeben, Lesen und Schreiben
Segmente, Blöcke; Einrichten und Freigeben, Lesen und Schreiben
Netzumgebung
MengenSchnittstelle
interne Schicht
(Datensatz-orientiert)
interne Schicht
(Datensatz-orientiert)
Programmier- . . .
umgebung
eingebettet
interaktiv, selbständig
..
.
...
Arbeitsplatz- . . .
umgebung
EinsatzSchnittstellen
...
Speichergeräte
(virtueller) flüchtiger und dauerhafter Speicher
© Joachim Biskup, Universität Dortmund
Informationssysteme: Modelle und Architekturen - Architekturen
17. Juli 2003
103
© Joachim Biskup, Universität Dortmund
Informationssysteme: Modelle und Architekturen - Architekturen
17. Juli 2003
104
föderierte Systeme
client_1
mediierte Syteme
client_m
global
answer
global
query
global
query
federation
designer
...
query
decomposition
and translation
at design time
query
decomposition
and translation
mediator
schema
answer
integration
and layout
schema integration
111111111111111
000000000000000
.
..
federated
schema
global
answer
mediator
designer
11111111111111
00000000000000
..
.
..
.
..
.
..
.
..
.
..
.
..
.
...
..
.
..
.
client_i
wrapper
construction
at contraction
time
answer
integration
and layout
local data
materialization
local
answer
subquery
1111111111
0000000000
local
schema
local
schema
..
.
..
.
..
.
query
processing
local
data
00
11
11
00
local
data
111111111
000000000
local
schema
query
processing
1
0
0
1
..
.
..
.
..
.
111111111
000000000
local
data
source_m
source_1
query
1
0
0
1
1
0
processing
source_j
at contraction time
at design time
at design time
at query time
CLOSED WORLD
(more) OPEN WORLD
at query time
(more) static environment
(more) organizational structures
© Joachim Biskup, Universität Dortmund
local
answer
...
..
.
..
.
subquery
(more) dynamic environment
(more) contractual relationships
Informationssysteme: Modelle und Architekturen - Architekturen
17. Juli 2003
105
© Joachim Biskup, Universität Dortmund
Informationssysteme: Modelle und Architekturen - Architekturen
17. Juli 2003
106
föderiert versus mediiert
client_1
client_m
global
query
global
answer
global
query
11111111111111
00000000000000
..
.
query
decomposition
and translation
wrapper
construction
at contraction
time
materialization
local
answer
subquery
111111111
000000000
..
.
..
.
..
.
processing
00
11
11
00
local
data
query
local
data
processing
1
0
0
1
source_m
source_1
local
schema
..
.
..
.
..
.
local
schema
query
at design time
at contraction time
CLOSED WORLD
(more) static environment
(more) organizational structures
© Joachim Biskup, Universität Dortmund
Informationssysteme: Modelle und Architekturen - Architekturen
processing
source_j
at design time
at query time
at query time
query
1
0
0
1
1
0
.
..
1111111111
0000000000
111111111
000000000
local
answer
..
.
subquery
relationale Systeme mit strukturierten Daten
answer
integration
and layout
local data
..
.
at design time
query
decomposition
and translation
mediator
schema
answer
integration
and layout
schema integration
111111111111111
000000000000000
.
..
federated
schema
.
..
local
data
global
answer
mediator
designer
federation
designer
local
schema
Teil II
..
.
..
.
..
.
..
.
..
.
..
.
.
..
..
.
..
.
client_i
(more) OPEN WORLD
(more) dynamic environment
(more) contractual relationships
17. Juli 2003
107
© Joachim Biskup, Universität Dortmund
Informationssysteme
17. Juli 2003
108
Datenmodell
(abstrakter) Datentyp für Informationssysteme
2 Relationales Datenmodell: Strukturen
- Strukturen:
- Operationen:
Schema und Instanzen
Änderungen und Anfragen
bekannte Datenmodelle:
•
•
•
•
•
•
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationales Datenmodell: Strukturen
17. Juli 2003
109
hierarchisch
Netzwerkrelational
logikorientiert
objektorientiert
...
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationales Datenmodell: Strukturen
17. Juli 2003
110
17. Juli 2003
112
relationales Datenmodell
Spezialfall eines logikorientierten Modells
2.1 relationale Strukturen: Theorie
- mächtige Abstraktion von Dateien gleichartiger Records
- modelltheoretischer Ansatz: Relationen (Tabellen) stellen Strukturen dar
- werteorientiert: aus Benutzersicht erfolgen Identifikationen nur über Werte
- Stellen der Relationensymbole bestimmen durch:
- Attribute (attributes)
(Spaltenüberschriften der Tabellen)
- semantische Bereichsnamen
(anwendungsorientierte Typbezeichner)
- Domänen (domains)
(syntaktische Wertemengen von Typen)
- außer Konstantenzeichen keine ‘‘echten Funktionszeichen’’;
Konstantenzeichen werden eindeutig, durch sich selbst interpretiert;
Annahme eindeutiger Namen (unique name assumption)
- keine Rekursionen (bei Anfragen, Sichtdefinitionen, semantischen Bedingungen)
- semantische Bedingungen:
eingeschränkte Klasse von Hornformeln
für lokale (innerrelationale) und globale (zwischenrelationale) Bedingungen
- einfacher Ansatz für ‘‘negative Information’’
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationales Datenmodell: Strukturen
17. Juli 2003
111
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationales Datenmodell: Strukturen - relationale Strukturen: Theorie
Semantische Bedingungen
Schreibweisen
eingeschränkte Klasse von Hornformeln
(der implikativen Form: A0 :- A1, A2, ... , Am)
mit Bedeutung: “wenn die Prämissen A1 und A2 und ... Am gelten, so auch die Konklusion A0”)
in praktischen Systemen meist nur Spezialfälle verfügbar
•
funktionale Abhängigkeiten (functional dependencies)
Y = Y' :- R(X1,...,Xk, Y , Z1,...,Zl), R(X1,...,Xk, Y' , Z'1,...,Z'l)
(manchmal Variablen als ‘‘Attribute’’ auffassen, dann kurz als: X1,...,Xk → Y
•
)
mehrwertige Abhängigkeiten (multivalued dependencies)
R(X1,...,Xk, Y'1,...,Y'l, Z1,...,Zm) :R(X1,...,Xk, Y1,...,Yl, Z1,...,Zm), R(X1,...,Xk, Y'1,...,Y'l, Z'1,...,Z'm)
(kurz als: X1,...,Xk → → Y1,...,Yl / Z1,...,Zm )
•
unendliche Menge der Attribute
R, S,..., X,Y, Z
endliche Mengen von Attributen
B
Menge der semantischen Bereichsnamen
C
unendliche Menge der Konstantenzeichen
b : B → ℘C
ordnet semantischen Bereichsnamen Domänen zu
R
Menge der Relationensymbole
µ:X→C
Tupel mit
dom µ := X ⊂endlich A
Definitionsbereich
oder als
µY mit
µY : dom µ ∩ Y → C,
µY(A) := µ(A)
für A ∈ dom µ ∩ Y
Enthaltenseinsabhängigkeiten (inclusion dependencies)
R1(X1,...,Xk) :- S1(X1,...,Xk)
mit R1 und S1 Projektionen von Basisrelationen R und S
(manchmal “algebraisch” ausgedrückt: πX1,...,Xk (S) ⊂ πX1,..., Xk(R)
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationales Datenmodell: Strukturen - relationale Strukturen: Theorie
17. Juli 2003
113
Relation
dom r := dom µ für µ ∈ r
Definitionsbereich
© Joachim Biskup, Universität Dortmund
RS = < <R1 | X1 | SC1> ,..., <Rn | Xn | SCn> | SC | a >
Instanz (oder gültige Ausprägung) zu < R | X | SC > :gdw
i)
d ⊂endlich C
ii)
dom r = X und r ⊂endlich {µ | µ : X → d}
17. Juli 2003
114
Syntax:
Relationensymbol
Attribute
lokale semantische Bedingungen
Semantik: (d,r)
Informationssysteme: Relationales Datenmodell: Strukturen - relationale Strukturen: Theorie
Relationales Datenbankschema und Instanz
< R | X | SC > (Relationen-) Schema mit
- R∈R
- X ⊂endlich A
- SC
Einschränkung von µ auf Y
r ⊂endlich {µ | µ : X → C} für ein X ⊂ A
Relationenschema und Instanz
Syntax:
A
A
µ = (  1  , …,  n  )
 µ ( A 1 )
 µ ( A n )
µ = ( µ(A1), ... , µ(An) )
für X = {A1,...,An} kann man µ aufschreiben als
Verbundabhängigkeiten (join dependencies)
Verallgemeinerung von mehrwertigen Abhängigkeiten
•
A
(relationales Datenbank-) Schema mit
- < Ri | Xi | SCi >
- SC
Relationenschema mit Ri ≠ Rj für i ≠ j
(globale) semantische Bedingungen
- a : ∪i=1,...,n Xi → B
Vereinbarung der semantischen Bereichsnamen
Semantik:
M = (d,r1,...,rn) Instanz (oder gültige Ausprägung) zu RS :gdw
iii) (d,r) ist Modell von SC
i)
sat< R | X | SC > := { r | r ist Instanz zu < R | X | SC > }
d ⊂endlich C
ii) (d,ri) ist Instanz zu < Ri | Xi | SCi >
iii) (d,r1,...,rn) ist Modell von SC
iv) falls µ ∈ ri und A ∈ Xi , dann gilt µ(A) ∈ b ° a (A)
satRS := { (d,r1,...,rn) | (d,r1,...,rn) ist Instanz zu RS }
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationales Datenmodell: Strukturen - relationale Strukturen: Theorie
17. Juli 2003
115
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationales Datenmodell: Strukturen - relationale Strukturen: Theorie
17. Juli 2003
116
Beispiel: (vereinfachte) Arztpraxis als ER-Diagramm
Name
Beispiel: (vereinfachte) Arztpraxis als Hypergraph des Schemas
Knoten:
runde Hyperkanten:
rechteckige Hyperkanten:
Geschlecht
Attribute
Relationenschemas
(nichttrivial benutzte) semantische Bereichsnamen
Geschlecht
Person
Name
Eltern
Patient
Arzt
PERSON
ELT
Kind
Eltern
Behandlung
Elternschaft
Patient
Arzt
ArtPro
BEH
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationales Datenmodell: Strukturen - relationale Strukturen: Theorie
17. Juli 2003
117
Beispiel: (vereinfachte) Arztpraxis als Datenbankschema
<
< PERSON | {Name, Geschlecht}
| {Name → Geschlecht}
< BEH
| {Patient, Arzt, ArtPro} | ∅
< ELT
| {Name, Eltern}
| ∅
|
{ πPatient (BEH) ⊂ πName (PERSON),
πArzt (BEH) ⊂ πName (PERSON),
πName (ELT) ⊂ πName (PERSON),
πEltern (ELT) ⊂ πName (PERSON) }
|
a (Name) := a (Patient) := a (Arzt) := a (Eltern)
:= Mensch,
a (Geschlecht)
:= Geschlecht,
a (ArtPro)
:= ArtPro
>
Informationssysteme: Relationales Datenmodell: Strukturen - relationale Strukturen: Theorie
17. Juli 2003
118
Beispiel: Tabellengerüste zum relationalen Datenbankschema
RS =
b (Mensch)
© Joachim Biskup, Universität Dortmund
ArtPro
PERSON
>,
>,
>
BEH
Name
Geschlecht
Mensch
Geschlecht
Patient
Arzt
ArtPro
Mensch
Mensch
ArtPro
ELT
Name
Eltern
Mensch
Mensch
:= Σ* ⊂ C
b (Geschlecht) := { mann, weib } ⊂ C
b (ArtPro)
:= { untersuchung, beratung, hausbesuch, labor, röntgen } ⊂ C
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationales Datenmodell: Strukturen - relationale Strukturen: Theorie
17. Juli 2003
119
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationales Datenmodell: Strukturen - relationale Strukturen: Theorie
17. Juli 2003
120
Beispiel: eine Instanz zum relationalen Datenbankschema
BEH
© Joachim Biskup, Universität Dortmund
2.2 relationale Meta-Strukturen: Theorie
Name
Geschlecht
Name
Eltern
Mensch
Geschlecht
Mensch
Mensch
wilhelmine
fritz
anton
theresia
maria
hugo
alfons
josef
gerda
weib
mann
mann
weib
weib
mann
mann
mann
weib
maria
hugo
alfons
anton
anton
theresia
theresia
gerda
anton
anton
theresia
wilhelmine
fritz
wilhelmine
fritz
josef
PERSON
ELT
Patient
Arzt
ArtPro
Mensch
Mensch
ArtPro
maria
maria
maria
anton
anton
anton
fritz
theresia
gerda
gerda
gerda
josef
josef
josef
josef
josef
labor
hausbesuch
röntgen
untersuchung
labor
beratung
beratung
röntgen
Informationssysteme: Relationales Datenmodell: Strukturen - relationale Strukturen: Theorie
17. Juli 2003
121
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationales Datenmodell: Strukturen - relationale Meta-Strukturen: Theorie
17. Juli 2003
122
17. Juli 2003
124
Schema als Selbstbeschreibung
•
•
mit den gleichen Techniken wie die Instanzen behandeln
die als zeitunabhängig angesehenen Gegebenheiten des gedachten
“Unternehmens relationale Datenbank” mit semantischen Begriffen
vereinfacht modellieren:
Relationensymbol
Stellenbezeichnung
Schlüsselzugehörigkeit
Relationensymbol
Stellenbezeichnung
Attribut
Attribut
1
1
Typ
Enthaltensein
semantischer
Bereichsname
Teilmenge
Obermenge
1
1
Werte
Relationensymbol
Stellenbezeichnung
Attribut
Domäne
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationales Datenmodell: Strukturen - relationale Meta-Strukturen: Theorie
17. Juli 2003
123
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationales Datenmodell: Strukturen - relationale Meta-Strukturen: Theorie
(vereinfachtes) ‘‘Metaschema’’ für relationale Datenbanken
RSSchema = <
< RELATION
| {Symbol, Attribut, Schlüssel} | {Symbol, Attribut → Schlüssel}
< TYP
| {Attribut, SemBereich}
| {Attribut → SemBereich}
< WERTE
| {SemBereich, Domäne}
| {SemBereich → Domäne}
< ENTHALTEN | {Teil_Symbol, Teil_Attribut, Ober_Symbol, Ober_Attribut} | Ø
|
{ πTeil_Symbol, Teil_Attribut (ENTHALTEN) ⊂ πSymbol, Attribut (RELATION),
πOber_Symbol, Ober_Attribut (ENTHALTEN) ⊂ πSymbol, Attribut (RELATION) }
|
a (Symbol) := a (Teil_Symbol) := a (Ober_Symbol) := RelationenId,
a (Attribut) := a (Teil_Attribut) := a (Ober_Attribut) := AttributId,
a (SemBereich)
:= SemBereich,
a (Domäne)
:= Domäne,
a (Schlüssel)
:= SchlüsselInd
>
mit zum Beispiel:
b (RelationId)
:=
b (Domäne)
:=
b (SchlüsselInd) :=
© Joachim Biskup, Universität Dortmund
b (AttributId) := b (SemBereich) := Σ*
{boolean, integer, cardinal, real, string, ...}
{false, true}
Informationssysteme: Relationales Datenmodell: Strukturen - relationale Meta-Strukturen: Theorie
Hypergraph zum relationalen Datenbankschema für Schemas
(“Metaschema’’)
>,
>,
>,
>
RelationenId
AttributId
Teil_Symbol
Teil_Attribut
Ober_Symbol
Ober_Attribut
Symbol
Domäne
17. Juli 2003
125
© Joachim Biskup, Universität Dortmund
Schlüssel
Attribut
SemBereich
⊂C
⊂C
⊂C
ENTHALTEN
RELATION
TYP
WERTE
Informationssysteme: Relationales Datenmodell: Strukturen - relationale Meta-Strukturen: Theorie
17. Juli 2003
126
Beispiel: Instanz zum relationalen Datenbankschema für Schemas
RELATION
Symbol
Attribut
Schlüssel
RelationenId
AttributId
SchlüsselInd
PERSON
PERSON
BEH
Name
Geschlecht
true
false
true
true
BEH
BEH
ELT
ELT
TYP
true
true
true
Name
Eltern
SemBereich
SemBereich
Domäne
AttributId
SemBereich
SemBereich
Domäne
Name
Patient
Mensch
Mensch
Mensch
Geschlecht
string
weibmann
Arzt
Eltern
Gechlecht
Mensch
Mensch
Geschlecht
ArtPro
ArtPro
ubhlr
ENTHALTEN
WERTE
Die Pragmatik wird in den Übungsaufgaben anhand von Beispielen erarbeitet.
Attribut
ArtPro
© Joachim Biskup, Universität Dortmund
Patient
Arzt
ArtPro
2.3 relationale Strukturen: Pragmatik
Teil_Symbol
Teil_Attribut
Ober_Symbol
Ober_Attribut
RelationenId
AttributId
RelationenId
AttributId
BEH
BEH
ELT
ELT
Patient
Arzt
PERSON
PERSON
Name
Eltern
PERSON
PERSON
Name
Name
Name
Informationssysteme: Relationales Datenmodell: Strukturen - relationale Meta-Strukturen: Theorie
Anhand der dabei gewonnenen Erfahrungen kann man grobe Faustregeln aufstellen,
wie man die Bestandteile einer Modellierung (Konstrukte eines ER-Diagramms)
in die Komponenten eines relationalen Datenbankschemas überträgt.
Name
17. Juli 2003
127
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationales Datenmodell: Strukturen - relationale Strukturen: Pragmatik
17. Juli 2003
128
ER-Diagramm für Präsidenten-Datenbank (Ausschnitt)
Name
Person
2.4 relationale Strukturen: Praxis (Oracle-SQL)
Vice_Pres_Name
ISI
Vice_
President
...
President
born_in
Spouse
married
Pres_Name
Spouse_Name
Adminis
-tration
State
...
Admin
President
State_Name
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationales Datenmodell: Strukturen - relationale Strukturen: Praxis (Oracle-SQL)
17. Juli 2003
129
© Joachim Biskup, Universität Dortmund
Hypergraph zum Oracle-Schema für Präsidenten-Datenbank
Pres_Hobby
create table State (
State_Name
Admin_Entered
Year_Entered
);
Vice_Pres_Name
Hobby
Admin_Nr
Pres_Name
Spouse_Name
Pr-Age
Sp_Age
Nr_Children
Mar_Year
Year_Inaugurated
Birth_Year
Years_Serv
Death_Age
Party
State_Born
Administration
State_Name
Admin_Entered State
Year_Entered
Informationssysteme: Relationales Datenmodell: Strukturen - relationale Strukturen: Praxis (Oracle-SQL)
varchar2(17)
number(3),
number(4)
create table President (
Pres_Name
varchar2(17)
Pres_Marriage
Birth_Year
Years_Serv
Death_Age
Party
State_Born
Vice_President
17. Juli 2003
130
17. Juli 2003
132
Oracle-Schema für Präsidenten-Datenbank
Admin_Pr_Vp
President
Admin_Pr_Vp
number(4)
number(2)
number(3),
varchar2(12)
varchar2(17)
primary key,
not null
primary key
check (Pres_Name LIKE '% _'),
not null,
not null,
not null,
not null
);
create table Pres_Hobby (
Pres_Name
varchar2(17)
Election_Year
Election Candidate
Votes
Winner_Looser_Indic
Hobby
references President
on delete cascade,
varchar2(18),
primary key ( Pres_Name, Hobby )
);
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationales Datenmodell: Strukturen - relationale Strukturen: Praxis (Oracle-SQL)
17. Juli 2003
131
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationales Datenmodell: Strukturen - relationale Strukturen: Praxis (Oracle-SQL)
create table Administration (
Admin_Nr
number(3),
Pres_Name
varchar2(17)
Year_Inaugurated number(4)
references President,
not null,
primary key ( Admin_Nr, Pres_Name ),
check (Year_Inaugurated
BETWEEN 1785+4*Admin_Nr AND 1789+4*Admin_Nr)
create table Pres_Marriage (
Pres_Name
varchar2(17)
Spouse_Name
varchar2(17),
Pr_Age
number(3)
Sp_Age
number(3)
Nr_Children
number(2)
Mar_Year
number(4)
);
Informationssysteme: Relationales Datenmodell: Strukturen - relationale Strukturen: Praxis (Oracle-SQL)
17. Juli 2003
create table Election (
Election_Year
Candidate
Votes
Winner_Loser_Indic
133
© Joachim Biskup, Universität Dortmund
... references <table_identifier>
vereinbart attribute_identifier als
Attribut (Stellenbezeichner) mit Domäne (Type) domain
... on delete cascade
semantische Bedingungen:
verlangt einen definierten Wert,
in Schlüsselvereinbarungen eingeschlossen
... primary key
vereinbart entsprechendes Attribut als (Primär-) Schlüssel,
d.h. insbesondere die funktionale Abhängigkeit
“entsprechendes Attribut’’ → “alle Attribute’’
primary key (<attribute_list>)
vereinbart die aufgelisteten Attribute als (Primär-) Schlüssel,
d.h. insbesondere die funktionale Abhängigkeit
“aufgelistete Attribute’’ → “alle Attribute’’
check ( <tuple_condition> )
verlangt bei Einfügungen und Änderungen
die genannte Bedingung
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationales Datenmodell: Strukturen - relationale Strukturen: Praxis (Oracle-SQL)
17. Juli 2003
17. Juli 2003
134
bezieht sich auf den
Schlüssel des genannten Relationensymbols,
vereinbart eine Enthaltenseinsabhängigkeit zwischen
dem entsprechenden Attribut und
dem Schlüssel des genannten Relationensymbols
vereinbart table_identifier als Relationensymbol
Attribute:
not null
not null,
primary key ( Election_Year, Candidate )
Informationssysteme: Relationales Datenmodell: Strukturen - relationale Strukturen: Praxis (Oracle-SQL)
Relationensymbole:
<attribute_identifier> <domain> ...
number(4),
varchar2(17),
number(3),
char(1)
);
einige syntaktische Regeln für Oracle-SQL-Schemavereinbarungen
create table <table_identifier> ( ... )
not null,
not null,
not null,
not null,
primary key ( Pres_Name, Spouse_Name )
);
create table Admin_Pr_Vp (
Admin_Nr
number(3),
Pres_Name
varchar2(17),
Vice_Pres_Name varchar2(17),
foreign key ( Admin_Nr, Pres_Name ) references Administration,
primary key ( Admin_Nr, Pres_Name, Vice_Pres_Name ),
check (Pres_Name != Vice_Pres_Name)
);
© Joachim Biskup, Universität Dortmund
references President,
vereinbart eine “kaskadierende Folgeaktion’’
(z.B. Entfernen weiterer Tupel)
bei Verletzung der Enthaltenseinsabhängigkeit
durch Enfernen eines Tupels
bezüglich des genannten Relationensymbols
foreign key (<attribute_list>) references <table_identifier>
bezieht sich auf den
Schlüssel des genannten Relationensymbols,
vereinbart eine Enthaltenseinsabhängigkeit zwischen
den aufgelisteten Attributen und
dem Schlüssel des genannten Relationensymbols
135
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationales Datenmodell: Strukturen - relationale Strukturen: Praxis (Oracle-SQL)
17. Juli 2003
136
Oracle-SQL Syntax für “CREATE TABLE’’
relational_table::=
GLOBAL
Auszug aus:
Oracle 9i - SQL Reference, Release 2 (9.2), March 2002, Part No.A96540-01, pp. 15-7 bis 15-79
TEMPORARY
schema
CREATE
.
TABLE
table
DELETE
ON
(
create_table::=
relational_properties
physical_properties
COMMIT
)
ROWS
PRESERVE
table_properties
;
relational_table
object_table
XMLtype_table
relational_properties::=
,
inline_constraint
Im Folgenden wird nur der erste Fall, relationale Tabellen, sehr kurz behandelt.
DEFAULT
column
expr
inline_ref_constraint
datatype
out_of_line_constraint
out_of_line_ref_constraint
supplemental_logging_props
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationales Datenmodell: Strukturen - relationale Strukturen: Praxis (Oracle-SQL)
17. Juli 2003
137
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationales Datenmodell: Strukturen - relationale Strukturen: Praxis (Oracle-SQL)
17. Juli 2003
138
17. Juli 2003
140
physical_properties::=
data_segment_compression
3 Relationales Datenmodell: Operationen
segment_attributes_clause
segment_attributes_clause
data_segment_compression
HEAP
ORGANIZATION
segment_attributes_clause
INDEX
index_org_table_clause
EXTERNAL
external_table_clause
,
CLUSTER
cluster
(
column
)
table_properties::=
column_properties
table_partitioning_clauses
row_movement_clause
CACHE
NOROWDEPENDENCIES
MONITORING
NOCACHE
ROWDEPENDENCIES
NOMONITORING
parallel_clause
© Joachim Biskup, Universität Dortmund
enable_disable_clause
AS
subquery
Informationssysteme: Relationales Datenmodell: Strukturen - relationale Strukturen: Praxis (Oracle-SQL)
17. Juli 2003
139
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationales Datenmodell: Operationen
relationales Datenmodell
•
Strukturen
Schema:
3.1 relationale Anfrageoperationen: Theorie
RS = < <R1 | X1 | SC1> ,..., <Rn | Xn | SCn> | SC | a > mit
-
< Ri | Xi | SCi >
SC
Relationenschema mit Ri ≠ Rj für i ≠ j
(globale) semantische Bedingungen
-
a : ∪i=1,...,n Xi → B
Vereinbarung der semantischen Bereichsnamen
Instanzen: M = (d,r1,...,rn) mit
i) d ⊂endlich C
ii) (d,ri) ist Instanz zu < Ri | Xi | SCi >
iii) (d,r1,...,rn) ist Modell von SC
iv) falls µ ∈ ri und A ∈ Xi , dann gilt µ(A) ∈ b ° a (A)
•
Operationen
Änderungen:
- elementar:
‘‘insert Ri(c1, ... ck)’’ und ‘‘delete Ri(c1, ... ck)’’ mit cj Konstantenzeichen
- als Transaktion: ‘‘begin op1 ; ... ; opm end’’ mit opj elementar
- deklarativ:
Konstantenzeichen durch Anfragen bestimmt, mengenorientiert
Anfragen:
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationales Datenmodell: Operationen
17. Juli 2003
141
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationales Datenmodell: Operationen - relationale Anfrageoperationen: Theorie
Operationen der relationalen Algebra
•
Definition
r
Selektion
Projektion
s := { µ | µ : dom r ∪ dom s → C, und
Vergleich
•
Vereinigung
Beispiel
r
Komplement
Differenz
Division
A
B
a
b
e
b
f
g
dom r ∪ dom s
r
17. Juli 2003
143
µ dom r ∈ r und µ dom s ∈ s }
:= { µ | µ : ∪i=1,...,k dom ri → C, und µ dom ri ∈ ri für i = 1,...,k }
i=1,...,k ri
Informationssysteme: Relationales Datenmodell: Operationen - relationale Anfrageoperationen: Theorie
142
natürlicher Verbund (natural join)
natürlicher Verbund
© Joachim Biskup, Universität Dortmund
17. Juli 2003
s
=
s
dom r ∩ dom s
ABC
A
B
C
a
b
c
e
b
c
© Joachim Biskup, Universität Dortmund
B
C
b
c
=
Informationssysteme: Relationales Datenmodell: Operationen - relationale Anfrageoperationen: Theorie
B
17. Juli 2003
144
einfacher Algorithmus für natürlichen Verbund
Spezialfälle des natürlichen Verbunds
s = { µ | es gibt α ∈ r, β ∈ s : α(A) = β(A) für alle A ∈ dom r ∩ dom s; µ = α ∪ β }
r
•
liefert:
kartesisches Produkt
falls dom r ∩ dom s = ∅:
PROCEDURE NestedLoopJoin(r, s : Relation) : Relation;
VAR ergebnis
: Relation;
α, β
: Tupel;
•
s
=
r×s
r
s
=
r∩s
Durchschnitt
falls dom r = dom s:
BEGIN
ergebnis := Ø;
FOR ALL α ∈ r DO
FOR ALL β ∈ s DO
IF Passend(α,β)
(* liefert TRUE gdw α(A) = β(A) für alle A ∈ dom r ∩ dom s *)
THEN ergebnis := ergebnis ∪ {α ∪ β}
END
END
END;
RETURN ergebnis
END NestedLoopJoin;
r
natürlicher Verbund ist doppelgesichtig:
• er kann aggregierend wirken und
damit (quadratisch) vergrößerte Ergebnisse liefern
•
er kann aussondernd wirken und
damit verkleinerte Ergebnisse liefern
•
beide Wirkungen können sich auch überlagern
Laufzeit: O ( || r || * || s || )
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationales Datenmodell: Operationen - relationale Anfrageoperationen: Theorie
17. Juli 2003
145
© Joachim Biskup, Universität Dortmund
A=c-Selektion (A=c-selection) als abgeleitete Operation
•
17. Juli 2003
146
algebraische Eigenschaften des natürlichen Verbunds
Definition
für A ∈ dom r und c ∈ C:
σA=c (r) := r
(r
{ (A,c) }
= { µ | µ : dom r ∪ {A}→ C, und µ dom r ∈ r und µ {A} ∈ { (A,c) }}
= { µ | µ ∈ r und µ (A) = c }
•
Informationssysteme: Relationales Datenmodell: Operationen - relationale Anfrageoperationen: Theorie
r
s
=
s
r
s)
t
=
r
(s
kommutativ
t)
assoziativ
r⊂s
⇒
r
t
⊂ s
r⊂s
⇒
r
s
=
r
absorbtiv
r
r
=
r
idempotent
r
∅
=
∅
Nullelement
σA=c (r
s)
=
σA=c (r)
s
σ−distributiv
A ∈ dom r ∩ dom s
⇒
σA=c (r
s)
=
σA=c (r)
σA=c (s)
σ−distributiv
t
monoton
Beispiel
r
A
B
a
b
e
b
f
g
© Joachim Biskup, Universität Dortmund
σB=b(r) =
A B
a
b
e
b
Informationssysteme: Relationales Datenmodell: Operationen - relationale Anfrageoperationen: Theorie
A ∈ dom r ⇒
17. Juli 2003
147
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationales Datenmodell: Operationen - relationale Anfrageoperationen: Theorie
17. Juli 2003
148
Projektion
Projektion und q-Projektion
Definition
1. für X ∩ dom r ≠ ∅:
•
πX(r) := {νX | ν ∈ r}
Projektion (projection) der Relation r auf X
πq(r) := {µ | µ : X → C, es gibt ν ∈ r mit µ = ν ° q}
q-Projektion der Relation r vermöge q,
•
Funktionengleichheit µ = ν ° q
gdw
für alle A∈X: µ(Α) = ν ° q (A)
= ν (q (A))
Beispiel für X := { B } und q(C) := A, q(D) := A, q(E) := B
r
A
B
a
b
e
b
f
g
© Joachim Biskup, Universität Dortmund
πB(r) =
B
πq(r) =
πq(r) =
{µ | µ : X → C, es gibt ν ∈ r mit µ = ν ° q }
=
{µ | µ : X → C, es gibt ν ∈ r mit µ = ν X }
=
{ν X | ν ∈ r }
=
πX(r)
C D E
b
a
a
b
g
e
e
b
f
f
g
Informationssysteme: Relationales Datenmodell: Operationen - relationale Anfrageoperationen: Theorie
17. Juli 2003
149
einfacher Algorithmus für Projektion
© Joachim Biskup, Universität Dortmund
für
150
∪i=1,...,k Xi = dom r : r ⊂
i=1,...,k πXi (
r)
Gleichheit kann durch eine passende semantische Bedingung,
nämlich eine Verbundabhängigkeit erzwungen werden.
Falls das Tupel ν ° q noch nicht in der Relation ergebnis enthalten ist, so füge es ein;
diese Elementtest-Und-Einfüge-Operation kann durch geeignete Datenstrukturen
für die Relation ergebnis, z.B. sortierte Liste oder B*-Baum,
unterstützt werden. *)
2. eine an einem natürlichen Verbund teilnehmende Relation rj
enthält die entsprechende Projektion des Verbundes, genauer:
END;
RETURN ergebnis
END SequentialProject;
πdom rj (
i=1,...,k ri)
⊂ rj
Gleichheit kann durch passende semantische Bedingungen,
nämlich Enthaltenseinsabhängigkeiten erzwungen werden.
Laufzeit: O ( || r || ⋅log || r || )
Informationssysteme: Relationales Datenmodell: Operationen - relationale Anfrageoperationen: Theorie
17. Juli 2003
1. eine durch überdeckende Projektionen zerlegte Relation r
ist im natürlichen Verbund der Projektionen enthalten, genauer:
BEGIN
ergebnis := ∅;
FOR ALL ν ∈ r DO
ergebnis := ergebnis ∪ {ν ° q}
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationales Datenmodell: Operationen - relationale Anfrageoperationen: Theorie
Projektion und natürlicher Verbund (als eine Art ‘‘Quasi-Inverse’’)
PROCEDURE SequentialProject
(q : Attributfunktion; r : Relation) : Relation;
VAR ergebnis : Relation;
ν:
Tupel;
(*
für A ∈ X ⊂ dom r
dann gilt:
2. für q : X → Y, Y ⊂ dom r, X ≠ ∅:
wobei:
q:X→X
q(A) := A
sei
17. Juli 2003
151
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationales Datenmodell: Operationen - relationale Anfrageoperationen: Theorie
17. Juli 2003
152
eine “verlustbehaftete” Zerlegung (lossy join)
r =
A
B C
a
b
a
a
SA,B (r) = A
B
S B,C (r) = B
C
a
b
a
a
a
a
a
b
a
b
S A,B (r)
....
ein hängendes Tupel (dangling tuple)
S B,C (r) =
A
B
C
a
a
b
b
a
a
a
a
a
b
a
b
r=
r
Informationssysteme: Relationales Datenmodell: Operationen - relationale Anfrageoperationen: Theorie
r
s= B
C
a
a
a
b
a
a
a
b
s= A B
C
a
a
a
b
s) =
A
B
a
a
17. Juli 2003
153
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationales Datenmodell: Operationen - relationale Anfrageoperationen: Theorie
17. Juli 2003
154
Projektion und andere Operationen (optimierende Umformungen)
Definition
s := πdom r (r
=
r
s)
falls dom r ∩ dom s ⊂ X :
s)
=
πX (r)
πX (r
πX (s)
πX ( σA=c (r) )
=
σA=c ( πX (r) )
für X ∩ Y ∩ dom r ≠ ∅:
πX(πY(r))
=
πX∩Y(r)
speziell für X ⊂ Y ⊂ dom r:
πX(πY(r))
=
πX(r)
πdom r ∩ dom s (s)
falls A ∈ X ∩ dom r:
•
a
a
S$% (r
Im Verbundergebnis ist die ‘‘Information’’ von Tupel (a, b) ‘‘verloren gegangen’’.
Teilverbund (semijoin)
•
B
Tupel (a, b) aus Relation r ‘‘hängt’’, d.h.
es findet kein ‘‘kein passendes Tupel’’ in Relation r.
Zerlegung und anschließende ‘‘Wiederherstellung’’ durch den Verbund kann
‘‘neue Tupel erfinden’’, im Beispiel:
( a, a, b )
( b, a, a )
© Joachim Biskup, Universität Dortmund
A
Beispiel
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationales Datenmodell: Operationen - relationale Anfrageoperationen: Theorie
17. Juli 2003
155
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationales Datenmodell: Operationen - relationale Anfrageoperationen: Theorie
17. Juli 2003
156
Vereinigung
•
Definition
+ (d,r,s) := { µ | µ : dom r ∪ dom s → d,
und ( µ dom r ∈ r oder
•
grundlegende Eigenschaften der Vereinigung
1. falls
dom r = dom s, d.h. r und s sind vereinigungsverträglich,
so
µ dom s ∈ s) }
+ (d,r,s) =
r∪s
Beispiel
2.
d := {e, f, g}
r :=
s :=
© Joachim Biskup, Universität Dortmund
A
B
e
e
f
f
g
f
A
C
e
f
+ (d, r, s) =
A
B
C
e
e
e
e
e
e
f
f
f
e
f
f
f
g
g
g
f
f
f
e
e
f
g
e
f
g
e
f
g
f
Informationssysteme: Relationales Datenmodell: Operationen - relationale Anfrageoperationen: Theorie
+ (d,r,s)
=
+ (d,s,r)
t
=
(r
σA=c (r ∪ s)
=
σA=c (r) ∪ σA=c (s)
4. πX (+ (d, r, s) ) =
+ (d, πX (r), πX (s) )
3. (r ∪ s)
t) ∪ (s
t)
speziell für dom r = dom s:
πX (r ∪ s)
17. Juli 2003
157
© Joachim Biskup, Universität Dortmund
=
πX (r) ∪ πX (s)
Informationssysteme: Relationales Datenmodell: Operationen - relationale Anfrageoperationen: Theorie
A=B-Vergleich und A≠B-Vergleich
17. Juli 2003
158
17. Juli 2003
160
Komplement
Definition
σA=B(r) := {µ | µ ∈ r, und µ(A) = µ(B)}
•
σA≠B(r) := {µ | µ ∈ r, und µ(A) ≠ µ(B)}
•
Definition
γ (d,r) := {µ | µ : dom r → d} \ r
•
Beispiel
grundlegende Eigenschaften des Vergleiches:
1. σA=B(r) ∪ σA≠B(r) = r
•
d := {e, f, g}
2. σA=B(r) ∩ σA≠B(r) = ∅
3. für
X = {A1,...,Ak}, Y = {B1,...,Bk} mit bekannter Reihenfolge der Aufzählung,
X ∩ Y = ∅,
X ∪ Y ⊂ dom r :
r
A
B
e
e
f
f
g
f
γ (d, r) =
σX=Y(r) := σA1=B1 (σA2=B2 (... σAk=Bk(r)... )
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationales Datenmodell: Operationen - relationale Anfrageoperationen: Theorie
17. Juli 2003
159
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationales Datenmodell: Operationen - relationale Anfrageoperationen: Theorie
A
B
e
f
f
g
g
g
e
e
g
e
f
g
Differenz
grundlegende Eigenschaften der Differenz
Definition: für dom r ∩ dom s ≠ ∅:
– (d,r,s) := {µ | µ ∈ r, und µ dom r ∩ dom s ∉ πdom r ∩ dom s(s) }
•
=
1. falls dom r = dom s:
γ ( d, πdom r ∩ dom s(s) )
r
Beispiel
•
r :=
d := {e, f, g}
A
B
e
e
f
f
g
f
s :=
A
C
e
f
–(d,r,s)
2. falls dom r ∩ dom s ⊂ X:
=
πX ( – (d, r, s) ) =
r\s
– (d, πX (r), πX (s) )
3. falls A ∈ X ∩ dom r:
σA=c ( – (d, r, s) ) =
– (d, σA=c (r), s)
4. falls A ∈ dom s ∩ dom s:
σA=c ( – (d, r, s) ) =
– (d, σA=c(r), σA=c(s) )
a) Differenz direkt ermittelt:
π (s) =
A
– (d, r, s) =
A
e
A
B
f
f
b) Differenz mit Hilfe der Umschreibung ermittelt:
γ (d, πdom r ∩ dom s (s)) =
r
A
B
e
e
f
f
g
f
γ ( d,
A
) =
A
B
A
e
e
f
f
g
f
f
g
e
© Joachim Biskup, Universität Dortmund
=
A
B
f
f
Informationssysteme: Relationales Datenmodell: Operationen - relationale Anfrageoperationen: Theorie
17. Juli 2003
161
© Joachim Biskup, Universität Dortmund
Division
Definition: für ∅ ≠ dom r ∩ dom s ≠ dom r
r/s
Beispiel: Argumente
=
µ ∈ πdom r \ dom s (r) und {µ}
A
a1
a2
a1
Projektionen:
πA(s) =
B
s :=
b
b
d
πB(r) =
A
a1
a2
162
s ≠∅:
und
µ : dom r \ dom s → C, und
für alle ν :wenn ν ∈ πdom r ∩ dom s (s), dann µ ∪ ν ∈ r }
r :=
17. Juli 2003
grundlegende Eigenschaften der Division
:= {µ |
{µ |
Informationssysteme: Relationales Datenmodell: Operationen - relationale Anfrageoperationen: Theorie
πdom r ∩ dom s (s) ⊂ r }
A
C
a1
a2
c
c
1. falls
so
dom r ∩ dom s = ∅ und s ≠ ∅,
(r
s) / s = r
2. r /s = πdom r \ dom s(r) \ πdom r \ dom s( (πdom r \ dom s(r)
πdom r ∩ dom s(s) ) \ r)
B
b
d
für Tupel aus πB(r):
- für µ1 := (B, b):
{µ1}
πA(s)
⊂
r
- für µ2 := (B, d):
{µ2}
πA(s)
not ⊂
r
also:
r/s
© Joachim Biskup, Universität Dortmund
= { (B,b) }
Informationssysteme: Relationales Datenmodell: Operationen - relationale Anfrageoperationen: Theorie
17. Juli 2003
163
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationales Datenmodell: Operationen - relationale Anfrageoperationen: Theorie
17. Juli 2003
164
Formalisierung von Anfragen (grobes ‘‘Kochrezept’’)
3.2 relationale Anfrageoperationen: Pragmatik
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationales Datenmodell: Operationen - relationale Anfrageoperationen: Pragmatik
17. Juli 2003
165
•
für die umgangssprachlich vorliegenden Begriffe
formale Entsprechungen bestimmen als
Attribute, Relationensymbole, semantische Bereichsnamen oder Konstantenzeichen
•
für die umgangssprachlich vorliegenden Zusammenhänge zwischen den Begriffen
formale Entsprechungen bestimmen als
Pfade im Hypergraphen des Schemas und dann durch Verbunde ausdrücken
•
für die umgangssprachlich vorliegenden Zwecke des Anfragewunsches
formale Entsprechungen ausdrücken als
Selektionen und Projektionen
•
ggf. abschließend mit Hilfe der algebraischen Eigenschaften optimieren
(durch Benutzer oder automatisch vom Datenbankmanagementsystem)
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationales Datenmodell: Operationen - relationale Anfrageoperationen: Pragmatik
Hypergraph für Beispiel ‘‘Arztpraxis’’
PERSON
Geschlecht
Eltern
166
17. Juli 2003
168
Instanz für Beispiel ‘‘Arztpraxis’’
PERSON
ELT
17. Juli 2003
Name
Name
Eltern
Geschlecht
Mensch
Mensch
weib
mann
mann
weib
weib
mann
mann
mann
weib
maria
hugo
alfons
anton
anton
theresia
theresia
gerda
anton
anton
theresia
wilhelmine
fritz
wilhelmine
fritz
josef
Name
Geschlecht
Mensch
wilhelmine
fritz
anton
theresia
maria
hugo
alfons
josef
gerda
ELT
Patient
Arzt
BEH
Mensch
ArtPro
BEH
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationales Datenmodell: Operationen - relationale Anfrageoperationen: Pragmatik
17. Juli 2003
167
© Joachim Biskup, Universität Dortmund
Patient
Arzt
ArtPro
Mensch
Mensch
ArtPro
maria
maria
maria
anton
anton
anton
fritz
theresia
gerda
gerda
gerda
josef
josef
josef
josef
josef
labor
hausbesuch
röntgen
untersuchung
labor
beratung
beratung
röntgen
Informationssysteme: Relationales Datenmodell: Operationen - relationale Anfrageoperationen: Pragmatik
Anfrage: ‘‘Bestimme für Kind theresia ihr Geschlecht und ihre
Eltern!”
•
Anfrage: “Bestimme alle Ärzte, die weibliche Patienten behandeln!”
•
Schritt 1:
den nominalen Begriffen Arzt und Patient entsprechen
die Attribute BEH.Arzt und BEH.Patient;
den nominalen Begriffen Kind, Geschlecht und Eltern entsprechen
die Attribute ELT.Name, PERSON.Geschlecht und ELT.Eltern
dem adjektiven Begriff weiblich entspricht
das Konstantenzeichen weib als ein Wert des Attributs PERSON.Geschlecht;
den possessiven Begriffen ihr (Geschlecht) und ihre (Eltern) entsprechen
die Relationensymbole PERSON und ELT
•
dem verbalen Begriff behandeln entspricht das Relationensymbol BEH
Schritt 2:
•
dem vorliegenden Zusammenhang entspricht
der Pfad ‘‘PERSON, Name, ELT’’ im Hypergraphen:
PERSON
ELT
•
σPatient=Name (BEH
Schritt 3:
σName=theresia (PERSON
•
Informationssysteme: Relationales Datenmodell: Operationen - relationale Anfrageoperationen: Pragmatik
17. Juli 2003
PERSON)) oder
πArzt (σGeschlecht=weib (σPatient=Name (BEH
169
© Joachim Biskup, Universität Dortmund
die Selektion nach dem Konstantenzeichen weib des Attributs PERSON.Geschlecht sowie
das Entfernen des Attributs BEH.ArtPro
können vorgezogen werden:
PERSON)))
Informationssysteme: Relationales Datenmodell: Operationen - relationale Anfrageoperationen: Pragmatik
17. Juli 2003
170
Anfrage: “Für welche Patienten wurden alle medizintechnischen
Möglichkeiten ausgenutzt?”
Schritt 4 (Optimierung):
πArzt (πq1 (BEH)
Schritt 3:
πArzt (σGeschlecht=weib (πq (BEH)
die Selektion nach dem Wert theresia des Attributs PERSON.Name bzw. ELT.Name
kann vorgezogen werden:
σName=theresia (PERSON)
σName=theresia (ELT)
•
PERSON)
dem vorliegenden Zweck entspricht
eine Selektion nach dem Konstantenzeichen weib für das Attribut PERSON.Geschlecht
und eine abschließende Projektion nach dem Attribut BEH.Arzt:
ELT)
Schritt 4:
© Joachim Biskup, Universität Dortmund
Schritt 2:
dem vorliegenden Zusammenhang entspricht
der Pfad ‘‘BEH, Patient, Mensch, Name, PERSON’’ im Hypergraphen:
πq (BEH)
PERSON mit q := { (Name, Patient), (Arzt, Arzt), (ArtPro,ArtPro) } oder
dem vorliegenden Zweck entspricht die abschließende Selektion:
•
Schritt 1:
•
Schritt 1:
den nominalen Begriffen Patient und Möglichkeit entsprechen
die Attribute BEH.Patient und BEH.ArtPro;
σGeschlecht=weib (PERSON))
mit q1 = { (Patient,Name), (Arzt, Arzt) }
dem adjektiven Begriff medizintechnisch entspreche hier
die Wertemenge {labor, röntgen} für das Attribut BEH.ArtPro;
oder
dem verbalen Begriff ausgenutzt entspricht das Relationensymbol BEH
πArzt (σPatient=Name (πPatient,Arzt (BEH)
σGeschlecht=weib (PERSON)))
•
Schritt 2:
es liegt ein Zusammenhang vor zwischen
Patienten und tatsächlich ausgenutzten Behandlungsarten einerseits und
möglichen Behandlungsarten andererseits;
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationales Datenmodell: Operationen - relationale Anfrageoperationen: Pragmatik
17. Juli 2003
171
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationales Datenmodell: Operationen - relationale Anfrageoperationen: Pragmatik
17. Juli 2003
172
Zusammenhang nicht unmittelbar aus dem Hypergraphen des Datenbankschemas ablesbar;
- erste Komponente stellt eine Teil-Hyperkante aus dem Graphen dar;
- die zweite kann als durch den Anfragewunsch ergänzt gedacht werden:
3.3 relationale Anfrageoperationen: Vorgriff auf Praxis (Oracle-SQL)
Patient
π
• Patient,ArtPro (BEH)
ArtPro
möglich
Zusammenhang enthält hier eine All-Aussage, die durch eine Division ausdrückbar ist:
•πPatient,ArtPro (BEH) / möglich
mit
möglich =
ArtPro
labor
röntgen
•
Schritt 3: entfällt hier
•
Schritt 4 (Optimierung):
da der Divisor möglich in diesem Fall als konstante Relation bekannt ist
(und nicht erst durch eine Anfrage ausgerechnet werden muß),
kann die All-Aussage schon vom Benutzer in eine Und-Aussage umgewandelt werden:
πPatient (σArtPro=labor (BEH))
πPatient (σArtPro=röntgen (BEH))
© Joachim Biskup, Universität Dortmund
•
Informationssysteme: Relationales Datenmodell: Operationen - relationale Anfrageoperationen: Pragmatik
17. Juli 2003
173
natürlicher Verbund:
© Joachim Biskup, Universität Dortmund
•
für Relationenschemas < R | {A1,..., Ak, B1,..., Bl} | > und < S | {B1,..., Bl, C1,...,Cm} | > :
SELECT DISTINCT
•
Vereinigung: für vereinigungsverträgliche Relationenschemas < R | X | > und < S | X | >:
UNION
SELECT DISTINCT *
AND
R.B2 = S.B2 AND ... AND R.Bl = S.Bl
FROM S
•
A=c-Selektion: für Relationenschema < R | X | > mit A ∈ X:
A=B-Vergleich: für Relationenschema< R | X | > mit {A, B} ⊂ X:
SELECT DISTINCT *
FROM R
FROM R
WHERE A = B
WHERE A = 'c'
•
Projektion: für Relationenschema < R | X | > mit {A1,..., Ak} ⊂ X:
Differenz: für vereinigungsverträgliche Relationenschemas < R | X | > und < S | X | > :
SELECT DISTINCT *
SELECT DISTINCT A1,...,Ak
SELECT DISTINCT *
Informationssysteme: Relationales Datenmodell: Operationen - relationale Anfrageoperationen: Vorgriff auf Praxis (Oracle-SQL)
FROM R
MINUS
FROM R
© Joachim Biskup, Universität Dortmund
174
FROM R
SELECT DISTINCT *
•
17. Juli 2003
SELECT DISTINCT *
R.A1,...,R.Ak,
R.B1,...,R.Bl,
S.C1,...,S.Cm
FROM R, S
WHERE R.B1 = S.B1
Informationssysteme: Relationales Datenmodell: Operationen - relationale Anfrageoperationen: Vorgriff auf Praxis (Oracle-SQL)
17. Juli 2003
175
© Joachim Biskup, Universität Dortmund
FROM S
Informationssysteme: Relationales Datenmodell: Operationen - relationale Anfrageoperationen: Vorgriff auf Praxis (Oracle-SQL)
17. Juli 2003
176
relationale Anfragen: anschaulich
4 Relationale Anfragesprachen
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationale Anfragesprachen
17. Juli 2003
177
•
sind Operationen auf Instanzen von Schemas,
d.h. die Argumente sind Relationen und gegebenenfalls das Universum,
die zurückgelieferten Werte sind wieder Relationen
•
behandeln Relationen als Mengen von Tupeln,
wobei Mengen als ungeordnet gedacht werden,
und berücksichtigen keine Eigenschaften der Codierungen
von Konstantenzeichen, Tupeln, Relationen usw
•
behandeln Konstantenzeichen als atomare, uninterpretierte Dinge:
über diese Dinge ‘‘weiß das Informationssystem’’ stets nur
- deren Gleichheit bzw. Ungleichheit und
- die in der aktuellen Instanz (d,r1,...,rn) ausgedrückten Beziehungen
© Joachim Biskup, Universität Dortmund
relationale Anfragen: formale Definition
•
Definition
eine formale Sprache L (Syntax) mit:
für jedes Wort Φ ∈ L liefert die Semantik eval (Φ) eine relationale Anfrage
•
Beispiele
1. [getypt mit Signatur X1,...,Xn → X]
Q : satRS → satR, wobei RS = << | X1 | >,...,< | Xn | > | | > und R = < | X | >
dann µ(A) ∈ d
Relationenkalkül:
benutzt im Wesentlichen die Ausdrucksmittel der Prädikatenlogik und der Mengenlehre
4. [isomorphietreu]
sind Instanzen M = (d,r1,...,rn) und M' = (d',r1',...,rn') isomorph
1-1
auf
belegt man Individuenvariablen durch Konstantenzeichen,
so erhält man einen werteorientierten Relationenkalkül;
d', d.h. insbesondere h[M] = M' ,
belegt man Individuenvariablen durch ganze Tupel,
so erhält man einen tupelorientierten Relationenkalkül
so gilt h[Q(M)] = Q(h[M]), d.h. das folgende Diagramm kommutiert:
M
h
Q
M'
Kern der Structured Query Language (SQL):
ein tupelorientierter Relationenkalkül mit algebraischen Ergänzungen
Q
Q(M)
178
Relationenalgebra:
benutzt Operationszeichen für die grundlegenden relationalen Operationen
3. [berechenbar]
Q partiell rekursiv
unter einer Bijektion h: d
17. Juli 2003
relationale Anfragesprache
Funktion Q heißt relationale Anfrage (relational query) der Signatur X1,...,Xn → X
:gdw
2. [universumstreu]
falls µ ∈ Q(d,r1,...,rn) und A ∈ X,
Informationssysteme: Relationale Anfragesprachen
h[Q(M)] = Q(M') = Q(h[M])
h
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationale Anfragesprachen
17. Juli 2003
179
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationale Anfragesprachen
17. Juli 2003
180
Beispiel für relationale Anfragesprache: Relationenalgebra
•
Syntax von LAl (relationale Ausdrücke
1.
R1,...,Rn ∈ LAl
D ∈ LAl
2.
sind Φ, Ψ ∈ LAl,
dann auch
- (Φ
Ψ) ∈ LAl
Semantik von LAl
eval (Φ) : satRS → sat<
Voraussetzungen
- RS = <<R1 | X1 | >,...,<Rn | Xn | > | | >
- D∉A∪R
•
•
Datenbankschema
ein Name für das Universum
mit
mit
mit
A, B ∈ A ∪ {D},
1.
Definitionsbereichen)
dom Ri
dom D
:=
:=
2.
Xi
{D}
X ⊂endlich A ∪ {D}
Ψ) :=
dom Φ ∪ dom Ψ
| dom Φ | >
eval (Ri) (d,r1,...,rn)
eval (D) (d,r1,...,rn)
eval (Φ
für alle Φ ∈ LAl
:=
:=
ri
{ (D,a) | a ∈ d }
Ψ) (d,r1,...,rn) :=
≅
d
(eval (Φ) (d,r1,...,rn), eval (Ψ) (d,r1,...,rn))
eval (Φ + Ψ) (d,r1,...,rn)
:=
+ (d, eval (Φ) (d,r1,...,rn), eval (Ψ) (d,r1,...,rn))
eval (πq(Φ)) (d,r1,...,rn)
:=
πq(eval (Φ) (d,r1,...,rn))
mit
dom (Φ
- (Φ + Ψ) ∈ LAl
mit
dom (Φ + Ψ)
:=
dom Φ ∪ dom Ψ
eval(σA=B(Φ)) (d,r1,...,rn) :=
σA=B(eval (Φ) (d,r1,...,rn))
- πq(Φ) ∈ LAl, wobei q : X → dom Φ
mit
dom πq(Φ)
:=
X
eval (σA≠B(Φ)) (d,r1,...,rn) :=
σA≠B(eval (Φ) (d,r1,...,rn))
- σA=B(Φ) ∈ LAl, wobei {A,B} ⊂ dom Φ
mit
dom σA=B(Φ) :=
dom Φ
- σA≠B(Φ) ∈ LAl, wobei {A,B} ⊂ dom Φ
mit
dom σA≠B(Φ) :=
dom Φ
eval (γ (Φ)) (d,r1,...,rn)
γ (d, eval (Φ) (d,r1,...,rn))
- γ(Φ) ∈ LAl
mit
dom γ(Φ)
dom Φ
:=
•
:=
grundlegende Eigenschaft
Für alle Ausdrücke Φ ∈ LAl ist eval (Φ) eine relationale Anfrage.
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationale Anfragesprachen
17. Juli 2003
181
© Joachim Biskup, Universität Dortmund
Beweisidee für grundlegende Aussage
•
17. Juli 2003
182
Mächtigkeit der Relationenalgebra
Behauptung
[Definierbarkeit von (Ergebnis-) Relationen mit Hilfe von (Argument-) Relationen]
Für alle Ausdrücke Φ ∈ LAl ist eval (Φ) eine relationale Anfrage.
•
Informationssysteme: Relationale Anfragesprachen
‘‘s ist in LAl aus (d,r1,...,rn) definierbar
genau dann, wenn
s ist invariant unter allen Automorphismen von (d,r1,...,rn)’’
Begründung
Behauptung ergibt sich unmittelbar aus den Definitionen der relationalen Operationen:
diese benutzen nämlich nur
formal:
- die Mengeneigenschaften der Argumentrelationen
•
- Gleichheits- bzw. Ungleichheitsbeziehungen
zwischen Konstantenzeichen oder aus Konstantenzeichen aufgebauten Tupeln
•
Satz
Sei RS = <<R1 | X1 | >,...,<Rn | Xn | > | | > ein Datenbankschema,
(d,r1,...,rn) ∈ satRS und
s eine Relation mit dom s = X.
Bemerkungen
- Selektion(en) σA=c sind im streng formalen Sinne keine relationalen Anfragen,
weil das Konstantenzeichen c ‘‘nicht isomorphietreu verarbeitet wird’’
Dann gibt es einen Ausdruck Φ ∈ LAl mit eval (Φ) (d,r1,...,rn) = s
genau dann, wenn
- Information Retrieval-Systeme und Multimedia-Systeme betrachten
anstelle von Gleichheitsbeziehungen häufig schwächere ‘‘Ähnlichkeitsbeziehungen’’,
die im Allgemeinen auch ‘‘nicht isomorphietreu verarbeitet’’ werden (können)
für alle Automorphismen h: d
h[s] = s.
1-1
auf
d mit h[d,r1,...,rn] = (d,r1,...,rn) gilt:
- die Umkehrung des Satzes gilt nicht:
es gibt relationale Anfragen, die nicht in der Relationenalgebra ausgedrückt werden können
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationale Anfragesprachen
17. Juli 2003
183
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationale Anfragesprachen
17. Juli 2003
184
Beweis von “⇒’’
Beweisidee für ‘‘⇐’’
sei Φ ∈ LAl mit eval (Φ) (d,r1,...,rn) = s.
•
AutM := {h | h : d
eval (Φ) ist eine relationale Anfrage und
damit insbesondere isomorphietreu
also gilt für alle Automorphismen h: d
1-1
auf
d mit h[d,r1,...,rn] = (d,r1,...,rn):
h [eval (Φ) (d,r1,...,rn)]
Voraussetzung
=
eval (Φ) (h [d,r1,...,rn])
eval (Φ) isomorphietreu
=
eval (Φ) (d,r1,...,rn)
h Automorphismus
=
s
Voraussetzung
•
•
185
mit
•
Datenbankschema
mit
dom (Φ ∧ Ψ)
:=
dom Φ ∪ dom Ψ
(Φ ∨ Ψ) ∈ LK
mit
dom (Φ ∨ Ψ)
:=
dom Φ ∪ dom Ψ
(¬ Φ) ∈ LK
mit
dom (¬ Φ)
:=
dom Φ
(∃ vAi) Φ ∈ LK
mit
dom (∃ vAi) Φ :=
dom Φ \ {Ai}
(∀ vAi) Φ ∈ LK
mit
dom (∀ vAi) Φ :=
dom Φ \ {Ai}
186
| dom Φ | >
für alle Φ ∈ LK
{µ | µ : dom Φ → d
und |=(d,r1,...,rn), µ Φ }
Bemerkungen
es werden diejenigen Tupel zurückgeliefert, für die gilt:
- der Definitionsbereich des Tupels ist gleich
dem durch die relationale Formel Φ (implizit) spezifizierten Definitionsbereich dom Φ
- das Tupel ist aufgebaut aus Konstantenzeichen des Universums d der (gespeicherten) Instanz
- das Tupel macht die ‘‘relationale Formel wahr in der (gespeicherten) Instanz (d,r1,...,rn)’’
Definitionsbereiche entsprechen genau den frei vorkommenden Variablen:
Aj ∈ dom Φ
genau dann, wenn
vAj kommt in Φ frei vor
es wird hier vorausgesetzt:
eine eineindeutige Korrespondenz zwischen Individuenvariablen vAj und Attributen Aj
3. ist Φ ∈ LK mit Ai ∈ dom Φ, dann auch:
Informationssysteme: Relationale Anfragesprachen
•
17. Juli 2003
Semantik von LK
eval (Φ) (d,r1,...,rn) :=
2. sind Φ, Ψ ∈ LK Formeln des Relationenkalküls, dann auch:
(Φ ∧ Ψ) ∈ LK
Informationssysteme: Relationale Anfragesprachen
eval (Φ) : satRS → sat<
Definitionsbereichen)
1. [Atomformel]
- für Attributmenge Xi = {Ai1,...,Aik}, paarweise verschiedene Individuenvariablen vAj1,...,vAjk:
Ri (Ai1 : vAj1,...,Aik : vAjk) ∈ LK
mit dom Ri (Ai1 : vAj1,...,Aik : vAjk ):= {Aj1,...,Ajk}
- für Individuenvariablen vAi, vAj:
(vAi = vAj) ∈ LK
mit
dom (vAi = vAj) := {Ai,Aj}
© Joachim Biskup, Universität Dortmund
setzt man dann ΦM geeignet in Ψs ein,
© Joachim Biskup, Universität Dortmund
ein Name für das Universum
Syntax von LK ((relationale) Formeln
also: es gibt Ausdrücke ΦM, Ψs ∈ LAl, so dass gilt:
so erhält man einen Ausdruck Φ ∈ LAl mit
eval(Φ)(M) = s
17. Juli 2003
- D∉A∪R
die Relation s ist mit Hilfe von autM derart darstellbar, dass es
eval (Ψs) (eval (ΦM)(M)) = s
•
Informationssysteme: Relationale Anfragesprachen
Voraussetzungen: -RS = <<R1 | X1 | >,...,<Rn | Xn | > | | >
d mit h [M] = M }
einen Ausdruck Ψs ∈ LAl gibt mit
eval (Ψs) (autM) = s
h[s] =
Beispiel für relationale Anfragesprache: Relationenkalkül
•
1-1
auf
ist durch eine Relation autM derart darstellbar, dass es
einen Ausdruck ΦM ∈ LAl gibt mit
eval (ΦΜ) (M) = autM
•
© Joachim Biskup, Universität Dortmund
die Automorphismengruppe von M := (d,r1,...,rn), d.h.
17. Juli 2003
187
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationale Anfragesprachen
17. Juli 2003
188
Beispiele für relationale Formeln
•
Gleichmächtigkeit von Algebra und Kalkül
Voraussetzung
- Datenbankschema:
RS = < < R1 | {A,B} | >, < R2 | {B,C} | >, < R3 | {A,B,C} | > | | >
- Hypergraph:
R1
A
B
C
R2
•
(sehr) einfaches Beispiel
relationale Formel:
R3
•
Der Relationenkalkül kann durch die Relationenalgebra verwirklicht werden,
indem man relationale Formeln uniform in relationale Ausdrücke übersetzt
(und damit ihre algorithmische Auswertung ermöglicht).
Syntaxbaum der Formel:
Beispiele mit umgangssprachlichen Umschreibungen:
- liefere die Tupel über Attribute A und B, die in der Instanz von R1 sind:
R1 (A:vA, B:vB)
- liefere die Tupel über Attribute B und C, die in der Instanz von R2 sind:
R2 (B:vB, C:vC)
R3 (A:vA, B:vB, C:vC)
- liefere die Tupel, die in vorgenannter Menge sind oder die in der Instanz von R3 sind:
( ( R1 (A:vA, B:vB) ∧ R2 (B:vB, C:vC) ) ∨ R3 (A:vA, B:vB, C:vC) )
R1 (A:vA, B:vB)
•
17. Juli 2003
R2 (B:vB, C:vC)
Übersetzungen:
R1 (A:vA, B:vB)
R2 (B:vB, C:vC)
( R1 (A:vA, B:vB) ∧ R2 (B:vB, C:vC) )
- liefere die umbenannten Tupel über Attribute D und E, die in der Instanz von R1 sind:
R1 (A:vD, B:vE)
Informationssysteme: Relationale Anfragesprachen
∨
∧
- liefere die ‘‘Zusammensetzungen von passenden Tupeln
aus der Instanz von R1 und der Instanz von R2’’:
( R1 (A:vA, B:vB) ∧ R2 (B:vB, C:vC) )
© Joachim Biskup, Universität Dortmund
( ( R1 (A:vA, B:vB) ∧ R2 (B:vB, C:vC) ) ∨ R3 (A:vA, B:vB, C:vC) )
in
in
R1
R2
in
R1
( ( R1 (A:vA, B:vB) ∧ R2 (B:vB, C:vC) ) ∨ R3 (A:vA, B:vB, C:vC) ) in
189
© Joachim Biskup, Universität Dortmund
(R1
Informationssysteme: Relationale Anfragesprachen
R2
R2) + R3
17. Juli 2003
190
Behauptung 1: Kalkül in Algebra äquivalent übersetzbar
Satz
Die Relationenalgebra und der Relationenkalkül sind gleichmächtig.
zu zeigen: für alle Formeln χ ∈ LK gibt es einen Ausdruck χ∗ ∈ LAl mit evalK (χ) = evalAl (χ∗)
Grundlegendes Ergebnis der Theorie des relationalen Datenmodells:
Beweis:
- die mengenorientierte, deklarative Semantik des Relationenkalküls
kann durch die Relationenalgebra
korrekt und vollständig operationalisiert werden
(und ist damit einer tatsächlichen Verwirklichung zugänglich)
wir bestimmen durch Induktion über den Aufbau von LK
für jede Formel χ ∈ LK
einen Ausdruck χ∗ ∈ LAl mit
evalK(χ) = evalAl (χ∗).
1a.
- die Ausdrucksfähigkeit der operational gegebenen Relationenalgebra
lässt sich durch den Relationenkalkül deklarativ genau beschreiben
evalK(Ri (Ai1 : vAj1,..., Aik : vAjk)) (d,r1,...,rn)
=
Definition evalK
{ µ | µ : {Aj1,...,Ajk} → d,
|=(d,r1,...,rn), µ Ri (Ai1 : vAj1,...,Aik : vAjk) }
{µ | µ : {Aj1,...,Ajk} → d,
µ ° q-1 ∈ ri }
mit
q: {Aj1,..., Ajk} → {Ai1,..., Aik},
q (Ajl) := Ail für l = 1,...,k
=
- (nicht immer erreichtes) Vorbild für andere Datenmodelle!
Definition |=
- konstruktiver Beweis, der ein verifiziertes Übersetzungsverfahren liefert
Definition πq
=
πq(ri)
=
Definition evalAl
evalAl (πq(Ri)) (d,r1,...,rn)
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationale Anfragesprachen
17. Juli 2003
191
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationale Anfragesprachen
17. Juli 2003
192
evalK (Φ ∧ Ψ) (d,r1,...,rn)
2a.
1b.
evalK (vAi = vAj) (d,r1,...,rn)
=
Definition evalK
=
{µ | µ : {Ai, Aj} → d,
|=(d,r1,...,rn), µ (vAi = vAj) }
{µ | µ : {Ai, Aj} → d,
µ (vAi) = µ (vAj) }
=
=
=
Definition |=
=
Definition πqij
=
{ µ | µ : dom Φ ∪ dom Ψ → d, |=(d,r1,...,rn), µ Φ
Definition |=
und |=(d,r1,...,rn), µ Ψ) }
{ µ | µ : dom Φ ∪ dom Ψ → d, |=(d,r1,...,rn), µ dom Φ Φ und |=(d,r1,...,rn), µdom Ψ Ψ) }
Definition evalK
{µ | µ : dom Φ ∪ dom Ψ → d, µ dom Φ ∈ evalK (Φ) (d,r1,...,rn) und
µ dom Ψ ∈ evalK (Ψ) (d,r1,...,rn) }
=
Induktionsannahme
∗
{µ | µ : dom Φ ∪ dom Ψ → d, µ dom Φ ∈ evalAl (Φ ) (d,r1,...,rn) und
πqij (d) mit qij : {Ai, Aj} → {D}
=
Definition evalK
{ µ | µ : dom Φ ∪ dom Ψ → d, |=(d,r1,...,rn), µ (Φ ∧ Ψ) }
Definition evalAl
evalAl (πqij (D)) (d,r1,...,rn)
µ dom Ψ ∈ evalAl (Ψ∗) (d,r1,...,rn) }
=
Definition
evalAl
(Φ∗)
(d,r1,...,rn)
evalAl
(Φ∗
Ψ∗)
evalAl
(Ψ∗)
(d,r1,...,rn)
=
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationale Anfragesprachen
17. Juli 2003
193
© Joachim Biskup, Universität Dortmund
(d,r1,...,rn)
Informationssysteme: Relationale Anfragesprachen
=
- evalK (Φ ∨ Ψ) (d,r1,...,rn) =
evalAl (Φ∗ + Ψ∗) (d,r1,...,rn)
- evalK (¬ Φ) (d,r1,...,rn)
evalAl (γ (Φ∗)) (d,r1,...,rn)
=
17. Juli 2003
194
evalK (( ∃ vAi) Φ) (d,r1,...,rn)
3.
entsprechend beweist man:
Definition evalAl
Definition evalK
{ µ | µ : dom Φ \ {Ai} → d,
|=(d, r1,...,rn), µ (∃ vAi) Φ }
{ µ | µ : dom Φ \ {Ai} → d,
Definition |=
es gibt µ' mit µ' : dom Φ → d,
µ =Ai µ',
und |=(d, r1,...,rn), µ' Φ }
=
=
{ µ | µ : dom Φ \ {Ai} → d,
=
=
=
=
es gibt µ' mit µ' : dom Φ → d,
µ = µ' dom Φ \ {Ai}, und |=(d, r1,...,rn), µ' Φ }
Definition evalK
{ µ | µ : dom Φ \ {Ai} → d, es gibt µ' mit µ' : dom Φ → d,
µ = µ' dom Φ \ {Ai}, und µ' ∈ evalK (Φ) (d,r1,...,rn)}
Induktionsannahme
{ µ | µ : dom Φ \ {Ai} → d, es gibt µ' mit
µ = µ' dom Φ \ {Ai}, und µ' ∈ evalAl (Φ∗) (d,r1,...,rn)}
Definition π
πdom Φ \ {Ai} (evalAl (Φ∗) (d,r1,...,rn) )
Definition evalAl
evalAl ( πdom Φ \ {Ai}(Φ∗) ) (d,r1,...,rn) )
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationale Anfragesprachen
17. Juli 2003
195
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationale Anfragesprachen
17. Juli 2003
196
Behauptung 2: Algebra in Kalkül äquivalent übersetzbar
entsprechend beweist man:
evalK ((∀vAi) Φ) (d,r1,...,rn)
zu zeigen: für alle Ausdrücke χ ∈ LAl
=
evalAl (Φ∗)(d,r1,...,rn) / evalAl (πqi (D)) (d,r1,...,rn)
=
evalAl (χ∗) (d,r1,...,rn),
gibt es eine Formel χ∗ ∈ LK mit evalAl (χ) = evalK (χ∗)
mit qi : {Ai} → {D}
Beweis:
wir konstruieren χ∗ durch Induktion über den Aufbau von χ
Ri∗
≡
Ri (Ai1 : vAi1,..., Aik : vAik)
D∗
≡
(vD = vD)
Ψ) ∗
≡
(Φ∗ ∧ Ψ∗)
≡
(Φ∗ ∨ Ψ∗)
1.
wobei man χ∗ aus Φ∗ und πqi(D) konstruieren kann
entsprechend der Simulation der Division
vermöge Projektion, Komplement und Verbund
2.
(Φ
(Φ + Ψ) ∗
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationale Anfragesprachen
17. Juli 2003
197
mit
mit
dom R
q (A1)
q (A2)
q (A5)
=
:=
:=
:=
(Φ∗ ∧ (vAi = vAj))
(σAi≠Aj (Φ)) ∗ ≡
(Φ∗ ∧ ¬(vAi = vAj))
(γ (Φ)) ∗
(¬ Φ∗)
© Joachim Biskup, Universität Dortmund
Beispiel für Konstruktion von (πq(Φ)) ∗
Voraussetzungen:
Φ≡R
q : {A1, A2, A5} → {A1, A2, A3, A4}
(σAi=Aj (Φ)) ∗ ≡
≡
Informationssysteme: Relationale Anfragesprachen
•
{A1, A2, A3, A4},
A1,
A3,
A1.
Voraussetzungen
- Datenbankschema:
RS = < < R1 | {A,B} | >, < R2 | {B,C} | >, < R3 | {A,B,C} | > | | >
- relationaler Ausdruck: χ = πA,C (σA=B ((R1
•
R2) + R3))
Syntaxbaum des Ausdrucks
{A2, A4} = dom R \ range q:
entferne die durch A2, A4 bezeichneten Spalten:
(∃ vA2) (∃ vA4) R (A1 : vA1, A2 : vA2, A3 : vA3, A4 : vA4)
πA,C
σA=B
q (A2) = A3:
benenne die durch A3 bezeichnete Spalte in A2 um
(führe Variable vA2 durch ein Gleichheitsatom ein und “enferne A3”):
(∃ vA3) (∃ vA9) (∃ vA4) (R (A1 : vA1, A2 : vA9, A3 : vA3, A4 : vA4) ∧ (vA3 = vA2))
+
R3(A,B,C)
R1(A,B)
q(A1) = q(A5) = A1:
verdopple die durch A1 bezeichnete Spalte; benenne Verdopplungen durch A1 bzw. A5:
(∃ vA8) (∃ vA3) (∃ vA9) (∃ vA4)[R (A1 : vA8, A2 : vA9, A3 : vA3, A4 : vA4 ) ∧ (vA3 = vA2)
∧ (vA8 = vA1) ∧ (vA8 = vA5)]
Informationssysteme: Relationale Anfragesprachen
198
Beispiel für Übersetzung ‘‘Algebra in Kalkül’’
Formel für das Argument von πq, d.h. für R:
R (A1 : vA1, A2 : vA2, A3 : vA3, A4 : vA4)
© Joachim Biskup, Universität Dortmund
17. Juli 2003
17. Juli 2003
199
© Joachim Biskup, Universität Dortmund
R2(B,C)
Informationssysteme: Relationale Anfragesprachen
17. Juli 2003
200
•
Übersetzungen, induktiv entsprechend Baumdurchlauf:
Zusammenfassung: Relationenalgebra und logische Verknüpfungen
SA,C
VA=B
natürlicher Verbund
r
s
:= { µ | µ : dom r ∪ dom s → C, und µ dom r ∈ r und µ dom s ∈ s }
+
R3(A,B,C)
R1(A,B)
R1*
=
R1 (A:vA, B:vB)
R2*
=
R2 (B:vB, C:vC)
=
R1 (A:vA, B:vB) ∧ R2 (B:vB, C:vC)
R3*
=
R3 (A:vA, B:vB, C:vC)
((R1
R2) + R3)*
(R1
R2)*
(σA=B ((R1
R2) +
( πA,C (σA=B ((R1
© Joachim Biskup, Universität Dortmund
Projektion
:= {µ | µ : X → C, es gibt ν ∈ r mit µ = ν ° q}
πq(r)
R2(B,C)
Vergleich
σA=B(r) := {µ | µ ∈ r, und µ(A) = µ(B)}
σA≠B(r) := {µ | µ ∈ r, und µ(A) ≠ µ(B)}
Vereinigung
+ (d,r,s) := { µ | µ : dom r ∪ dom s → d, und ( µ dom r ∈ r
= ( R1 (A:vA, B:vB) ∧ R2 (B:vB, C:vC) ) ∨ R3 (A:vA, B:vB, C:vC)
R3)*
Komplement
γ (d,r)
:= {µ | µ : dom r → d, und µ ∉ r (d.h. µ ist nicht Element von r) }
= (( R1 (A:vA, B:vB) ∧ R2 (B:vB, C:vC) ) ∨ R3 (A:vA, B:vB, C:vC))
∧ (vA = vB)
*
R2) + R3)) =
Differenz
– (d,r,s) := {µ | µ ∈ r,
(∃ vB) (
( ( R1 (A:vA, B:vB) ∧ R2 (B:vB, C:vC) )
∨ R3 (A:vA, B:vB, C:vC))
∧ (vA = vB) )
Informationssysteme: Relationale Anfragesprachen
oder µ dom s ∈ s) }
und
µ dom r ∩ dom s ∉ πdom r ∩ dom s(s) }
Division
r/s
:= {µ | µ : dom r \ dom s → C, und
für alle ν : wenn ν ∈ πdom r ∩ dom s (s), dann µ ∪ ν ∈ r }
17. Juli 2003
201
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationale Anfragesprachen
17. Juli 2003
202
relationale Anfragen und relationale Anfragesprachen
(Zusammenfassung)
5 Structured Query Language - SQL
•
relationale Anfragen
- Operationen auf Instanzen von Schemas
- behandeln Relationen als Mengen von Tupeln
- behandeln Konstantenzeichen als atomare, uninterpretierte Dinge
- formale Eigenschaften:
getypt, universumstreu, berechenbar, isomorphietreu
•
relationale Anfragesprache
formale Sprache L derart,
dass die Semantik eval (Φ) für alle Φ ∈ L eine relationale Anfrage liefert
•
Beispiele
- Relationenalgebra
- Relationenkalkül: werteorientiert, falls Individuenvariablen durch Konstantenzeichen belegt
tupelorientiert, falls Individuenvariablen durch ganze Tupel belegt
- Kern der Structured Query Language (SQL):
ein tupelorientierter Relationenkalkül mit algebraischen Ergänzungen
© Joachim Biskup, Universität Dortmund
Informationssysteme: Structured Query Language - SQL
17. Juli 2003
203
© Joachim Biskup, Universität Dortmund
Informationssysteme: Structured Query Language - SQL
17. Juli 2003
204
Structured Query Language, SQL
5.1 Kern von Structured Query Language (SQL): Theorie
© Joachim Biskup, Universität Dortmund
Informationssysteme: Structured Query Language - SQL - Kern von Structured Query Language (SQL): Theorie
17. Juli 2003
205
•
vom American National Standards Institute, ANSI, genormte
Datendefinitions- und Datenmanipulationssprache
•
enthält eine relationale Anfragesprache als Teilsprache
•
aus theoretischer Sicht:
eine Mischung von: - tupelorientiertem Relationenkalkül
- mit einigen algebraischen Elementen
- angereichert durch arithmetische und
- textverarbeitende Elemente
- sowie mit vielen weiteren Diensten
•
in praktischen Ausprägungen:
sehr umfassende Programmiersysteme für
Informationssysteme aller Art in vielfältigen Anwendungen und Umgebungen
•
weitverbreitete kommerzielle Produkte verfügbar: Oracle, DB2, Postgres...
© Joachim Biskup, Universität Dortmund
Ansatz für Grundform des Kalkülteils
•
17. Juli 2003
208
algebraisch
2. Auswahl zugegriffener Daten
Semantik: wähle diejenigen Kombinationen aus, für die eine Formel Φ mit
Prädikatenzeichen für Komponentenvergleiche wie = oder ≠ gültig ist
in der SQL-Syntax:
- Teil 1 [Zugriff]:
durch Schlüsselwort FROM eingeleitet
- Teil 2 [Auswahl]:
durch Schlüsselwort WHERE eingeleitet
- Teil 3 [Konstruktion]: vorangestellt und
durch Schlüsselwort SELECT eingeleitet
(eigentlich wäre PROJECT angebracht)
Syntax:
entsprechender SQL-Ausdruck hat dann folgendes Aussehen:
•
setze aus Tupelvariablen und passenden Attributen gebildete
Attributterme der Form µ.A in aussagenlogische Kombination von
Prädikatenzeichen für Vergleiche von Werten ein
SELECT
3. Konstruktion der Ausgabedaten
Semantik: liefere dann die Komponenten µi1(A1),...,µil(Al) dieser Kombinationen
Syntax:
bilde Liste der
diese Komponenten bezeichnenden Attributterme µi1.A1,..., µil.Al
Informationssysteme: Structured Query Language - SQL - Kern von Structured Query Language (SQL): Theorie
206
π{Ri1.A1,..., Ril.Al} (σΦ (R1 × ... × Rk))
binde Tupelvariable µ1 an Relationensymbol R1,...,
Tupelvariable µk an Relationensymbol Rk
© Joachim Biskup, Universität Dortmund
17. Juli 2003
Ansatz beschreibt Dreischrittverfahren
1. Zugriff auf gespeicherte Daten
Semantik: erzeuge alle Kombinationen von Tupeln µ1 aus R1,..., µk aus Rk
(wobei die Ri nicht notwendig verschieden sein müssen)
Syntax:
Informationssysteme: Structured Query Language - SQL - Kern von Structured Query Language (SQL): Theorie
17. Juli 2003
DISTINCT µi1.A1 ,..., µil.Al
FROM R1 µ1 ,..., Rk µk
WHERE
207
© Joachim Biskup, Universität Dortmund
Φ
Informationssysteme: Structured Query Language - SQL - Kern von Structured Query Language (SQL): Theorie
einige Vereinfachungen
Beispiel
Schema:
•
Geschlecht
ELT
man darf in der SELECT- und der WHERE-Klausel
das Relationensymbol selbst wie eine Tupelvariable benutzen und
die entsprechende Bindung “Ri Ri” zu “Ri” abkürzen
•
Mensch
ArtPro
BEH
Anfragewunsch:
“Bestimme für Kind theresia Geschlecht und Eltern!”
Ausdruck der Relationenalgebra: σName=theresia (PERSON
ELT)
mit Definitionsbereich {Name, Geschlecht, Eltern}
SQL-Anfrage:
SELECT DISTINCT *
FROM PERSON, ELT
WHERE
PERSON.Name = ELT.Name
AND
PERSON.Name = 'theresia'
mit Definitionsbereich {PERSON.Name, PERSON.Geschlecht, ELT.Name, ELT.Eltern}
anstatt einer Attributtermliste in der SELECT-Klausel,
die alle entsprechend der FROM-Klausel bildbaren Attributterme enthält:
man darf eine solche Attributtermliste durch ‘‘*’’ abkürzen
Informationssysteme: Structured Query Language - SQL - Kern von Structured Query Language (SQL): Theorie
Name
Arzt
anstatt eine Komponente µ(A)
durch den entsprechenden vollständigen Attributterm µ.A zu bezeichnen:
© Joachim Biskup, Universität Dortmund
Eltern
< PERSON | {Name, Geschlecht} | >
< BEH
| {Patient, Arzt, ArtPro} | >
< ELT
| {Name, Eltern}
| >
Patient
man darf auch nur das Attribut A verwenden,
wenn entsprechend der FROM-Klausel und des Datenbankschemas
die fehlende Tupelvariable
eindeutig in Form eines Relationensymbols ergänzt werden kann
•
PERSON
anstatt in der FROM-Klausel
durch “Ri µi” eine Tupelvariable µi an das Relationensymbol Ri zu binden:
17. Juli 2003
209
© Joachim Biskup, Universität Dortmund
Informationssysteme: Structured Query Language - SQL - Kern von Structured Query Language (SQL): Theorie
Beispiel
Schema:
ELT
Eltern
Schema:
< PERSON | {Name, Geschlecht} | >
< BEH
| {Patient, Arzt, ArtPro} | >
< ELT
| {Name, Eltern}
| >
Name
PERSON
Geschlecht
ELT
Patient
Arzt
Anfragewunsch:
© Joachim Biskup, Universität Dortmund
Eltern
< PERSON | {Name, Geschlecht} | >
< BEH
| {Patient, Arzt, ArtPro} | >
< ELT
| {Name, Eltern}
| >
Name
Patient
Mensch
ArtPro
BEH
BEH
“Bestimme alle Ärzte, die weibliche Patienten behandeln!”
PERSON) ) )
Anfragewunsch:
“Bestimme die Großeltern des Kindes theresia!”
SQL-Anfrage:
SELECT
SELECT DISTINCT Arzt
FROM BEH, PERSON
WHERE
BEH.Patient = PERSON.Name
AND
PERSON.Geschlecht = 'weib'
Informationssysteme: Structured Query Language - SQL - Kern von Structured Query Language (SQL): Theorie
Mensch
Arzt
ArtPro
Ausdruck der Relationenalgebra:πArzt(σGeschlecht = weib (σPatient = Name (BEH
SQL-Anfrage:
210
Beispiel
PERSON
Geschlecht
17. Juli 2003
17. Juli 2003
GRAD2.Eltern
FROM
ELT
WHERE
211
© Joachim Biskup, Universität Dortmund
GRAD1, ELT
GRAD2
GRAD1.Eltern = GRAD2.Name
AND
GRAD1.Name = 'theresia'
Informationssysteme: Structured Query Language - SQL - Kern von Structured Query Language (SQL): Theorie
17. Juli 2003
212
(stark vereinfachte, abstrakte) Syntax der Kalkülteile von SQL
einfache SQL-Anfrage
SELECT DISTINCT
FROM
Formel
WHERE
einfache SQL-Anfrage
Attributtermliste
Variablenbindungsliste
Attributtermliste
Attributterm
Attributtermliste
SELECT DISTINCT
,
FROM
Variablenbindungsliste
*
Formel
WHERE
Tupelvariable
.
Relationensymbol
Attributterm
Variablenbindungsliste
Attribut
Tupelvariable
Relationensymbol
,
© Joachim Biskup, Universität Dortmund
einfache SQL-Anfrage
Informationssysteme: Structured Query Language - SQL - Kern von Structured Query Language (SQL): Theorie
17. Juli 2003
213
© Joachim Biskup, Universität Dortmund
Informationssysteme: Structured Query Language - SQL - Kern von Structured Query Language (SQL): Theorie
17. Juli 2003
214
(vereinfachte, abstrakte) Syntax des algebraischen Teils von SQL
SELECT DISTINCT
FROM
WHERE
Attributtermliste
Variablenbindungsliste
Formel
Formel
SQL-Anfrage
Atomformel
NOT
einfache
SQL-Anfrage
Formel
INTERSECT
AND
Formel
Formel
OR
(
Atomformel
Term
Term
Formel
UNION
)
Vergleichsprädikat
SQLAnfrage
MINUS
Term
Attributterm
Konstantenzeichen
Vergleichsprädikat
=
z
© Joachim Biskup, Universität Dortmund
Informationssysteme: Structured Query Language - SQL - Kern von Structured Query Language (SQL): Theorie
17. Juli 2003
215
© Joachim Biskup, Universität Dortmund
Informationssysteme: Structured Query Language - SQL - Kern von Structured Query Language (SQL): Theorie
17. Juli 2003
216
Übersicht über Sprachmittel von SQL
•
•
natürlicher Verbund
Kalkülteil
allgemein:
beschreibt Dreischrittverfahren für ‘‘Zugriff-Auswahl-Konstruktion’’
r
s := { µ | µ : dom r ∪ dom s → C, und µ dom r ∈ r und µ dom s ∈ s }
{ µ | es gibt α ∈ r, β ∈ s :
α(A) = β(A) für alle A ∈ dom r ∩ dom s und
µ=α∪β}
algebraischer Teil
verknüpft durch den Kalkülteil gebildete Ergebnisse mengentheoretisch
•
arithmetischer Teil
äquivalent umgeschrieben und speziell
für Relationenschemas < R | {A1,..., Ak, B1,..., Bl} | > und < S | {B1,..., Bl, C1,...,Cm} | > :
benutzt die vier Grundrechenarten mitsamt den arithmetischen Vergleichsoperationen sowie
in der kommerziellen Datenverarbeitung häufig benötigte Aggregatfunktionen
wie Durchschnitt, Summe, Maximum, Minimum, Anzahl
•
textverarbeitender Teil
behandelt Konstantenzeichen als nichtatomare Zeichenfolgen,
die man bezüglich des Vorkommens von Teilworten testen, konkatenieren usw. kann
•
in SQL:
SELECT DISTINCT
weitere Sprachmittel
- SQL-Anfragen ineinander schachteln
- in Ergebnissen Entfernung von Duplikaten unterdrücken
- Ergebnisse weiter aufbereiten
- ...
•
s := { µ | es gibt α ∈ r, β ∈ s :
α(Bj) = β(Bj) für j = 1, ... ,l und
µ=α∪β}
r
R.A1,...,R.Ak,
R.B1,...,R.Bl,
S.C1,...,S.Cm
FROM R, S
WHERE R.B1 = S.B1
AND
R.B2 = S.B2 AND ... AND R.Bl = S.Bl
Relationenalgebra für ‘‘universums-unabhängige’’ Anfragen ausdrückbar:
© Joachim Biskup, Universität Dortmund
Informationssysteme: Structured Query Language - SQL - Kern von Structured Query Language (SQL): Theorie
17. Juli 2003
217
© Joachim Biskup, Universität Dortmund
Informationssysteme: Structured Query Language - SQL - Kern von Structured Query Language (SQL): Theorie
A=c-Selektion
218
17. Juli 2003
220
Projektion
allgemein für Relationenschema < R | X | > mit A ∈ X:
σA=c (r)
17. Juli 2003
allgemein:
:= { µ | µ : dom r → C, µ ∈ r und µ (A) = c }
πX(r)
speziell in SQL:
:= {µ | µ : X → C, es gibt ν ∈ r mit µ = ν X }
speziell für Relationenschema < R | Y | > mit X = {A1,..., Ak} ⊂ Y:
πX(r) := {µ | µ : {A1,..., Ak}→ C, es gibt ν ∈ r mit µ = ν {A1,..., Ak} }
SELECT DISTINCT *
FROM R
WHERE A = 'c'
speziell in SQL:
SELECT DISTINCT A1,...,Ak
FROM R
© Joachim Biskup, Universität Dortmund
Informationssysteme: Structured Query Language - SQL - Kern von Structured Query Language (SQL): Theorie
17. Juli 2003
219
© Joachim Biskup, Universität Dortmund
Informationssysteme: Structured Query Language - SQL - Kern von Structured Query Language (SQL): Theorie
Vereinigung
allgemein:
+ (d,r,s)
:= { µ | µ : dom r ∪ dom s → d, und ( µ dom r ∈ r
A=B-Vergleich und A≠B-Vergleich
oder µ dom s ∈ s) }
speziell für vereinigungsverträgliche Relationenschemas < R | X | > und < S | X | >,
d.h. insbesondere X = dom r = dom s = dom r ∪ dom s:
+ (d,r,s)
= r∪s
allgemein für Relationenschema < R | X | > mit {A, B} ⊂ X:
σA=B(r)
σA≠B(r)
:= {µ | µ ∈ r, und µ(A) = µ(B)}
:= {µ | µ ∈ r, und µ(A) ≠ µ(B)}
in SQL:
SELECT DISTINCT *
speziell in SQL:
FROM R
SELECT DISTINCT *
WHERE A = B
FROM R
UNION
SELECT DISTINCT *
SELECT DISTINCT *
FROM S
FROM R
WHERE A ≠ B
© Joachim Biskup, Universität Dortmund
Informationssysteme: Structured Query Language - SQL - Kern von Structured Query Language (SQL): Theorie
17. Juli 2003
221
© Joachim Biskup, Universität Dortmund
Informationssysteme: Structured Query Language - SQL - Kern von Structured Query Language (SQL): Theorie
17. Juli 2003
222
Differenz
allgemein:
– (d,r,s)
:= {µ | µ ∈ r,
und
5.2 Structured Query Language (SQL): Praxis mit Oracle
µ dom r ∩ dom s ∉ πdom r ∩ dom s(s) }
speziell für vereinigungsverträgliche Relationenschemas < R | X | > und < S | X | > ,
d.h. insbesondere X = dom r = dom s = dom r ∩ dom s:
– (d,r,s)
= {µ | µ ∈ r,
und
µ∉s}
speziell in SQL:
SELECT DISTINCT *
FROM R
MINUS
SELECT DISTINCT *
© Joachim Biskup, Universität Dortmund
FROM S
Informationssysteme: Structured Query Language - SQL - Kern von Structured Query Language (SQL): Theorie
17. Juli 2003
223
© Joachim Biskup, Universität Dortmund
Informationssysteme: Structured Query Language - SQL - Structured Query Language (SQL): Praxis mit Oracle
17. Juli 2003
224
Oracle-SQL Syntax für “SELECT’’
Oracle 9i - SQL Reference, Release 2 (9.2), March 2002, Part No.A96540-01, pp. 8-1 bis 8-16
select_list::=
select::=
*
for_update_clause
subquery
,
;
query_name
subquery::=
table
DISTINCT
schema
UNIQUE
subquery_factoring_clause
hint
FROM
select_list
WHERE
condition
hierarchical_query_clause
materialized view
group_by_clause
AS
table_reference
c_alias
ALL
expr
UNION
INTERSECT
HAVING
condition
© Joachim Biskup, Universität Dortmund
.*
view
ALL
SELECT
,
.
(
subquery
)
MINUS
order_by_clause
Informationssysteme: Structured Query Language - SQL - Structured Query Language (SQL): Praxis mit Oracle
17. Juli 2003
225
© Joachim Biskup, Universität Dortmund
Informationssysteme: Structured Query Language - SQL - Structured Query Language (SQL): Praxis mit Oracle
17. Juli 2003
226
Oracle 9i - SQL Reference, Release 2 (9.2), March 2002, Part No.A96540-01, pp. 5-1 bis 5-22
table_reference::=
condition::=
flashback_clause
ONLY
query_table_expression
comparison_condition
flashback_clause
t_alias
query_table_expression
logical_condition
(
membership_condition
joined_table
)
joined_table
range_condition
null_condition
query_table_expression::=
query_name
equals_path
PARTITION
SUBPARTITION
(
partition
(
sample_clause
)
subpartition
exists_condition
)
sample_clause
@
schema
like_condition
dblink
table
.
@
view
is_of_type_condition
dblink
under_path
materialized view
subquery_restriction_clause
(
subquery
)
compound_condition
table_collection_expression
© Joachim Biskup, Universität Dortmund
Informationssysteme: Structured Query Language - SQL - Structured Query Language (SQL): Praxis mit Oracle
17. Juli 2003
227
© Joachim Biskup, Universität Dortmund
Informationssysteme: Structured Query Language - SQL - Structured Query Language (SQL): Praxis mit Oracle
17. Juli 2003
228
Type of
Condition
Purpose
Example
=
Equality test.
SELECT *
FROM employees
WHERE salary = 2500;
!=
^=
<>
¬=
Inequality test. Some forms of the
inequality condition may be
unavailable on some platforms.
SELECT *
FROM employees
WHERE salary != 2500;
>
"Greater than" and "less than"
tests.
simple_comparison_condition::=
=
!=
^=
<
"Greater than or equal to" and
"less than or equal to" tests.
>=
<>
SELECT * FROM employees
WHERE salary > 2500;
SELECT * FROM employees
WHERE salary < 2500;
expr
expr
>
SELECT * FROM employees
WHERE salary >= 2500;
SELECT * FROM employees
WHERE salary <= 2500;
<=
ANY
SOME
Compares a value to each value in SELECT * FROM employees
a list or returned by a query. Must
WHERE salary = ANY
be preceded by =, !=, >, <, <=, >=.
(SELECT salary
FROM employees
Evaluates to FALSE if the query
WHERE department_id = 30);
returns no rows.
ALL
Compares a value to every value
in a list or returned by a query.
Must be preceded by =, !=, >, <,
<=, >=.
<
>=
<=
=
,
SELECT * FROM employees
WHERE salary >=
ALL ( 1400, 3000);
!=
(
expr
)
Evaluates to TRUE if the query
returns no rows.
© Joachim Biskup, Universität Dortmund
17. Juli 2003
229
© Joachim Biskup, Universität Dortmund
group_comparison_condition::=
Operation
Example
IN
"Equal to any member of"
test. Equivalent to "= ANY".
SELECT * FROM employees
WHERE job_id IN
(’PU_CLERK’,’SH_CLERK’);
SELECT * FROM employees
WHERE salary IN
(SELECT salary
FROM employees
WHERE department_id =30);
NOT IN
Equivalent to "!=ALL".
Evaluates to FALSE if any
member of the set is NULL.
SELECT * FROM employees
WHERE salary NOT IN
(SELECT salary
FROM employees
WHERE department_id = 30);
SELECT * FROM employees
WHERE job_id NOT IN
(’PU_CLERK’, ’SH_CLERK’);
=
!=
^=
ANY
<>
expression_list
(
)
>
subquery
ALL
<
>=
<=
,
’
NOT
ANY
!=
expr
17. Juli 2003
230
17. Juli 2003
232
membership_condition::=
=
(
)
Informationssysteme: Structured Query Language - SQL - Structured Query Language (SQL): Praxis mit Oracle
Type of
Condition
SOME
subquery
<>
Informationssysteme: Structured Query Language - SQL - Structured Query Language (SQL): Praxis mit Oracle
expr
(
^=
)
SOME
^=
(
expression_list
expr
expression_list
IN
(
)
subquery
)
subquery
,
ALL
,
NOT
<>
(
expr
)
expression_list
IN
(
)
subquery
© Joachim Biskup, Universität Dortmund
Informationssysteme: Structured Query Language - SQL - Structured Query Language (SQL): Praxis mit Oracle
17. Juli 2003
231
© Joachim Biskup, Universität Dortmund
Informationssysteme: Structured Query Language - SQL - Structured Query Language (SQL): Praxis mit Oracle
Oracle 9i - SQL Reference, Release 2 (9.2), March 2002, Part No.A96540-01, pp. 18.4 bis 18.44
Type of
Condition
EXISTS
Operation
Example
TRUE if a subquery returns at
least one row.
SELECT department_id
FROM departments d
WHERE EXISTS
(SELECT * FROM employees e
WHERE d.department_id
= e.department_id);
group_by_clause::=
,
expr
GROUP
BY
HAVING
condition
rollup_cube_clause
grouping_sets_clause
exists_condition::=
EXISTS
(
subquery
order_by_clause::=
)
,
expr
SIBLINGS
ORDER
BY
ASC
NULLS
FIRST
DESC
NULLS
LAST
position
c_alias
© Joachim Biskup, Universität Dortmund
Informationssysteme: Structured Query Language - SQL - Structured Query Language (SQL): Praxis mit Oracle
17. Juli 2003
233
© Joachim Biskup, Universität Dortmund
Informationssysteme: Structured Query Language - SQL - Structured Query Language (SQL): Praxis mit Oracle
17. Juli 2003
234
6 Relationales Datenmodell und Erweiterungen
Teil III
6.1 relationales Datenmodell: Rückblick und Würdigung
erweiterte und alternative Systeme
© Joachim Biskup, Universität Dortmund
Informationssysteme
17. Juli 2003
235
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationales Datenmodell und Erweiterungen - relationales Datenmodell: Rückblick und Würdigung
17. Juli 2003
236
einige Eigenschaften des relationalen Datenmodells
•
keine Funktionszeichen
- Termbildung in Instanzen auf Konstantenzeichen beschränkt
(eher) strukturelle Gesichtspunkte (mit vielen Auswirkungen auf Operationen)
• werteorientiert
•
•
- Identifikation von Tupeln nur vermöge ihrer Werte
- Gleichheit von Tupeln als Gleichheit aller Attributwerte
- keine benutzersichtbaren Tupelidentifikatoren
•
- Instanzen erfüllen getrennt deklariertes Schema
•
•
•
aussagenlogische Junktoren, Quantoren für Individuenvariablen
zweiwertige Wahrheitsfunktion
Negation als ‘‘Nicht-Gültigkeit’’
logische Implikation betrachtet alle Strukturen
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationales Datenmodell und Erweiterungen - relationales Datenmodell: Rückblick und Würdigung
17. Juli 2003
237
(eher) operationale Gesichtspunkte (mit vielen Bezügen zu Strukturen)
• wenige Standardoperationen
© Joachim Biskup, Universität Dortmund
•
Informationssysteme: Relationales Datenmodell und Erweiterungen - relationales Datenmodell: Rückblick und Würdigung
17. Juli 2003
238
ganz allgemein:
ideelle Trennung von ‘‘universellem Programmiersystem’’ und ‘‘Informationssystem’’
- wohldefinierte Schnittstellen zwischen
‘‘Anwendungsumgebungen’’ und ‘‘eigentlichem Informationssystem’’
- ‘‘eigentliches Informationssystem’’ verarbeitet nur Teilmenge der relationalen Anfragen
- Anfragen sind getypt, universumstreu, berechenbar, isomorphietreu
- Anfragen (query),
Tupel-Einfügen (insert),
Tupel-Entfernen (delete),
Tupel-Ändern (update)
- als “Mehrwertdienst” nur
(mengenorientierte, ausgabeformierte) logische Gültigkeit (Implikation)
•
“bestimmtes Wissen’’
- Tupel entweder gespeichert oder nicht gespeichert, bzw.
entsprechende Aussage entweder wahr oder nicht wahr,
keine Modalitäten, Wahrscheinlichkeiten, Bewertungen usw.
klassische Prädikatenlogik
-
‘‘genaues Wissen’’
- Tupelwerte als atomare Konstantenzeichen
- kein “ungefähr”, ...
modelltheoretisch (und damit vollständig)
- gespeicherte Instanz gedeutet als eine (endliche) Struktur im Sinne der Prädikatenlogik
- in gespeicherter Instanz nur Wahrheitswerte atomarer Aussagen explizit darstellbar
- “vollständiges Wissen’’: jede Aussage (der Prädikatenlogik) entweder wahr oder falsch
•
‘‘vollständiges Wissen’’
- Tupel für alle deklarierten Attribute definiert (keine Nullwerte)
- nichtgespeicherte Tupel als negative Aussage gedeutet
(Annahme der geschlossenen Welt, closed world assumption)
flache Strukturen (“in 1. Normalform’’)
- Tupel aus Konstantenzeichen als Attributwerte aufgebaut (entsprechend record_of)
- Relationen sind homogene Mengen von Tupeln (entsprechend set_of record_of)
- also stark eingeschränkte Verwendung von Typkonstruktoren
•
keine (ausführbaren Programme für) Anfragen als Attributwerte
strukturiert
nur Gleichheits- und Ungleichheits-Vergleiche bezüglich Konstantenzeichen
- Konstantenzeichen atomar
- Gleichheits- und Ungleichheits-Vergleiche kanonisch erweitert auf Tupel und Relationen
•
Konstantenzeichen uninterpretiert
- Semantik der Domänen nur in der Programmierumgebung dargestellt
•
nur “sprungfreie Anfrage-Programme’’
- Anfrageauswertung als Auswertung entsprechend Durchlauf durch Syntaxbaum der Anfrage
- keine Rekursion, unbeschränkte Iteration, ...
- kein ‘‘Ausführungsoperator’’ zum Aufrufen von in der Instanz gespeicherten Anfragen
•
unmittelbar vom Benutzer gesteuert
- Operationen werden explizit vom Benutzer aufgerufen
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationales Datenmodell und Erweiterungen - relationales Datenmodell: Rückblick und Würdigung
17. Juli 2003
239
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationales Datenmodell und Erweiterungen - relationales Datenmodell: Rückblick und Würdigung
17. Juli 2003
240
relationales Datenmodell und mögliche Varianten, Erweiterungen,
Verallgemeinerungen
(eher) Architektur- und Anwendungsgesichtspunkte
(mit vielen Bezügen zu Strukturen und Operationen)
• ‘‘zentral’’ und “top-down’’
•
pures relationales Datenmodell für viele Anwendungen zu ‘‘ausdrucksschwach’’
‘‘homogen’’
•
- alle Daten vom strukturell gleichen Datentyp (set_of record_of)
- globale Interpretation semantischer Bereichsnamen
Ausgangspunkt für viele Varianten, Erweiterungen, Verallgemeinerungen
•
Wechselbeziehungen
- alle Daten unter einem im Vorhinein deklarierten Schema
•
•
‘‘statisch’’
relational:
‘‘ausdrucksschwach’’, aber:
wohl fundiert,
Äquivalenz von (operationalisierter) Algebra und (deklarativem) Kalkül,
Algorithmen auch bei großen Datenmengen hinreichend effizient,
Optimierung (weitgehend) automatisierbar,
viele zusätzliche Funktionalität zumindest näherungsweise ‘‘simulierbar’’,
wenn auch manchmal mühselig
erweitert:
‘‘ausdruckstärker’’, aber:
Fundiertheit, Effizienz, Optimierbarkeit, ... möglicherweise ‘‘gefährdet’’
- Administrator deklariert Schema im Vorhinein
- Schema wird als zeitlich unverändert angesehen
•
“normativ’’
- semantische Bedingungen werden als zu erzwingende Invarianten angesehen
•
client-server Architektur
- Benutzer und System handeln in festen Rollen, insbesondere als Anfrager und Antworter
manche sonstige Gesichtspunkte
• ...
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationales Datenmodell und Erweiterungen - relationales Datenmodell: Rückblick und Würdigung
17. Juli 2003
241
•
Ziel:
•
Wirklichkeit: unzählige Einzelvorschläge, wenig mächtige integrierte Systeme
© Joachim Biskup, Universität Dortmund
Erweiterungen unter weitgehender Beibehaltung der ‘‘guten Seiten’’,
Verträglichkeit der Erweiterungen untereinander sicherstellen
Informationssysteme: Relationales Datenmodell und Erweiterungen - relationales Datenmodell: Rückblick und Würdigung
17. Juli 2003
242
Eigenschaften als Ausgangspunkt für weitergehende Modelle
6.2 relationales Datenmodell: Beispiele für Varianten,
Erweiterungen, Verallgemeinerungen
•
werteorientiert
- Identifikation von Tupeln nur vermöge ihrer Werte
- Gleichheit von Tupeln als Gleichheit aller Attributwerte
- keine benutzersichtbaren Tupelidentifikatoren
objektorientierte Modelle:
- Tupel als Objekte auffassen (dann auch Relationen und alles andere als Objekte auffassen)
- allgemeinere Objekte zulassen
- Objektidentifikatoren, OIDs, (Referenzen) als Objekt-Attributwerte zulassen
- verschiedene Gleichheitsbegriffe, z.B.:
* ‘‘referenzbezogen’’ als Gleichheit der Objektidentifikatoren
* ‘‘wertemäßig’’ als Gleichheit aller (unmittelbaren) Objekt-Attributwerte,
jeweils verstanden als Konstantenzeichen
* ‘‘semantisch’’ als Gleichheit der (impliziten) strukturierten Objekte,
die sich durch transitives Verfolgen aller Referenzen ergeben
- dann manchmal wünschenswert: ‘‘Wertedarstellbarkeit’’ (value representability), d.h.
alle (betrachteten) Gleichheitsbegiffe fallen zusammen
- Objektidentifikatoren und Werte als gleichrangig behandeln
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationales Datenmodell und Erweiterungen - relationales Datenmodell: Beispiele für Varianten, Erweiterungen, Verallgemeinerungen 17. Juli 2003 243
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationales Datenmodell und Erweiterungen - relationales Datenmodell: Beispiele für Varianten, Erweiterungen, Verallgemeinerungen17. Juli 2003 244
•
flache Strukturen (“in 1. Normalform’’)
•
modelltheoretisch (und damit vollständig)
- Tupel aus Konstantenzeichen als Attributwerte aufgebaut (entsprechend record_of)
- Relationen sind homogene Mengen von Tupeln (entsprechend set_of record_of)
- also stark eingeschränkte Verwendung von Typkonstruktoren
- gespeicherte Instanz gedeutet als eine (endliche) Struktur im Sinne der Prädikatenlogik
- in gespeicherter Instanz nur Wahrheitswerte atomarer Aussagen explizit darstellbar
- “vollständiges Wissen’’: jede Aussage (der Prädikatenlogik) entweder wahr oder falsch
Modelle mit genesteten Strukturen
beweistheoretische Modelle
- gespeicherte Instanz gedeutet als
(endliche) Menge von (geschlossenen) Formeln der Prädikatenlogik
(d.h. von beliebigen Aussagen)
- Tupel können als Attributwerte wieder Relationen enthalten
- allgemeiner:
Tupel können (durch Schema bestimmte) genestete Relationen enthalten
- entsprechend: genestete Relationenschemas
- die gespeicherten Formeln werden als wahr
bezüglich einer (nicht explizit bekannten) Struktur angesehen;
alle erfüllenden Strukturen werden als möglich angesehen
- redefinerte Operationen (auf genesteten Relationen)
- zusätzliche Operationen:
nest
unnest
- in gespeicherter Instanz dann auch Wahrheitswerte beliebiger Aussagen explizit darstellbar,
insbesondere von:
* Disjunktionen
(zusätzlich zu impliziten Konjunktionen vermöge Mengenbildung)
* expliziten Negationen (zusätzlich oder gegebenenfalls notwendig anstelle der impliziten
Annahme der geschlossenen Welt)
- allgemeiner: folgende Typkonstruktoren sind beliebig verwendbar:
Tupelbildung (kartesisches Produkt), Mengenbildung (Potenzmenge)
- zusammen mit objektorientiert sind folgende Typkonstruktoren
beliebig verwendbar und führen zu ‘‘strukturierten Objekten’’:
Tupelbildung (kartesisches Produkt), Mengenbildung (Potenzmenge), Referenzbildung
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationales Datenmodell und Erweiterungen - relationales Datenmodell: Beispiele für Varianten, Erweiterungen, Verallgemeinerungen17. Juli 2003 245
- bei Anfragen ‘‘Implikation’’ anstelle von ‘‘Gültigkeit’’ auswerten,
d.h. Anfrageergebnisse beruhen auf Auswertung von:
‘‘ist (substituierte) Anfrageformel logisch impliziert von
gespeicherter Menge der Formeln in Instanz (und Schema)?’’
- gegebenenfalls auch ‘‘unvollständiges Wissen’’ darstellbar:
gespeicherte Menge Φ von Formel kann als logische ‘‘Theorie’’ unvollständig sein,
d.h. es kann (unbeantwortbare) Aussage(n) Ψ geben, so dass weder Φ |= Ψ noch Φ |= ¬Ψ
- semantisch definierte ‘‘Implikation’’ muss als
syntaktisch definierte ‘‘Beweisbarkeit’’ algorithmisiert werden
(was im Allgemeinen wegen der Unentscheidbarkeit der Implikation nicht möglich ist)
- anstelle von Negation als ‘‘Nicht-Gültigkeit in einer Struktur’’ wird verwendet
‘‘Nicht-Impliziertheit von einer Formelmenge’’,
was im Allgemeinen noch nicht einmal rekursiv aufzählbar ist;
algorithmisiert wird dann ‘‘Nicht-Impliziertheit von einer Formelmenge’’
(im Allgemeinen nichtäquivalent) ersetzt
durch ‘‘Nicht-Beweisbarkeit aus einer Formelmenge’’
© Joachim Biskup, Universität Dortmund
•
Informationssysteme: Relationales Datenmodell und Erweiterungen - relationales Datenmodell: Beispiele für Varianten, Erweiterungen, Verallgemeinerungen17. Juli 2003 246
klassische Prädikatenlogik
-
aussagenlogische Junktoren, Quantoren für Individuenvariablen
zweiwertige Wahrheitsfunktion
Negation als ‘‘Nicht-Gültigkeit’’
logische Implikation betrachtet alle Strukturen
Modelle mit ‘‘nichtklassichen Logiken’’
- zusätzliche Operatoren, z.B. in Modallogiken für ‘‘Agent i weiss’’ oder für ‘‘Agent i glaubt’’
- mehrwertige Logiken, z.B. statt Wahrheitswerte {falsch, wahr} beliebige Boolesche Algebra
- Negation, z.B. als Komplement-Operation in gewählter Boolscher Algebra
- nur ‘‘wahrscheinliche’’, ‘‘bevorzugte’’, ‘‘eigentlich gemeinte’’ Strukturen betrachten, d.h.
Φ |=κ- preference Ψ :gdw
für alle Strukturen M ∈ κ: falls M Modell von Φ, dann auch M Modell von Ψ
- ...
- wegen der Nichtberechenbarkeitsaussagen
nur für syntaktisch geeignet eingeschränkte Formelmengen durchführbar, z.B. HornFormeln
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationales Datenmodell und Erweiterungen - relationales Datenmodell: Beispiele für Varianten, Erweiterungen, Verallgemeinerungen17. Juli 2003 247
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationales Datenmodell und Erweiterungen - relationales Datenmodell: Beispiele für Varianten, Erweiterungen, Verallgemeinerungen17. Juli 2003 248
•
•
keine Funktionszeichen
•
- Instanzen erfüllen getrennt deklariertes Schema
logikorientierte Modelle mit Funktionszeichen
- erlauben z.B. Beziehungen ‘‘funktional auszudrücken’’
- erlauben z.B. Identifikationen über funktional ausgedrückte Beziehungen,
etwa wie in ‘‘Peters Frau’’
- ...
Modelle mit halbstrukturierten Daten
- jedes einzelne Datum einer Instanz trägt seine eigene strukturelle Beschreibung (‘‘Schema’’)
z.B. XML
- erlauben z.B. ‘‘Ausnahmen’’ leicht zu formalisieren
- erlauben Anfragen z.B. der folgenden Art:
‘‘welche Struktur hat dieses Datum?’’
‘‘welche Daten haben diese Struktur?’’
‘‘welche Daten haben eine Struktur, die dieser ‘‘ähnlich’’ ist?’’
...
keine (ausführbaren Programme für ) Anfragen als Attributwerte
Modelle mit speicherbaren Programmen
- erfordern zusätzliche Operation der Programmausführung (execute)
- erlauben z.B. dynamisch erzeugte Teil-Anfragen innerhalb einer Anfrage
- erlauben ‘‘reflektives Programmieren’’
- ...
© Joachim Biskup, Universität Dortmund
•
strukturiert
- Termbildung in Instanzen auf Konstantenzeichen beschränkt
Informationssysteme: Relationales Datenmodell und Erweiterungen - relationales Datenmodell: Beispiele für Varianten, Erweiterungen, Verallgemeinerungen17. Juli 2003 249
‘‘vollständiges Wissen’’
- Tupel für alle deklarierten Attribute definiert (keine Nullwerte)
- nichtgespeicherte Tupel als negative Aussage gedeutet
(Annahme der geschlossenen Welt, closed world assumption)
Modelle mit Nullwerten
- Nullwert der Art ‘‘nicht existent’’
- Nullwert der Art ‘‘existent, aber unbekannt’’
- indizierte Nullwerte der Art
‘‘existent, dem Wert nach unbekannt, aber unterscheidbar’’, ggf. mit bekannten Gleichheiten
- ‘‘disjunktive Terme’’ der Art ‘‘c1 oder ... oder ck’’
-
als Objekte auch Bilder, Videos, Audios etc. zulassen (Multimedia-Informationssysteme)
inhaltsbasiertes Suchen und Vergleichen solcher Multimedia-Objekte
neue Konstruktoren für Ausgabeergebnisse
...
© Joachim Biskup, Universität Dortmund
•
Informationssysteme: Relationales Datenmodell und Erweiterungen - relationales Datenmodell: Beispiele für Varianten, Erweiterungen, Verallgemeinerungen17. Juli 2003 250
‘‘genaues Wissen’’
- Tupelwerte als atomare Konstantenzeichen
- kein “ungefähr”, ...
Modelle mit ungenauem Wissen
- ...
Modelle mit Annahme der offenen Welt
- nicht gespeicherte Daten (nicht aus gespeicherten Daten beweisbare Daten)
werden als ‘‘unbekannt’’ gedeutet
- sogenanntes ‘‘frame problem’’: wie die unübersehbare Fülle von ‘‘negativen Ausagen’’
(speziell bei Änderungsoperationen von invarianten Aussagen) ausdrücken?
- Sprachmittel für gezielten ‘‘Abschluss von Prädikaten’’:
aus einer ‘‘wenn-dann-Definition’’ eine ‘‘genau-dann-wenn-Definition’’gewinnen,
ohne alle ‘‘negativen Fälle’’ ausdrücklich aufzuzählen
- ...
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationales Datenmodell und Erweiterungen - relationales Datenmodell: Beispiele für Varianten, Erweiterungen, Verallgemeinerungen17. Juli 2003 251
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationales Datenmodell und Erweiterungen - relationales Datenmodell: Beispiele für Varianten, Erweiterungen, Verallgemeinerungen17. Juli 2003 252
•
“bestimmtes Wissen’’
- Tupel entweder gespeichert oder nicht gespeichert, bzw.
entspechende Aussage entweder wahr oder nicht wahr,
kein Modalitäten, Wahrscheinlichkeiten, Bewertungen usw.
(eher) operationale Gesichtspunkte (mit vielen Bezügen zu Strukturen)
• wenige Standardoperationen
- Anfragen (query),
Tupel-Einfügen (insert),
Tupel-Entfernen (delete),
Tupel-Ändern (update)
- als “Mehrwertdienst” nur
(mengenorientierte, ausgabeformierte) logische Gültigkeit (Implikation)
Modelle mit ‘‘nichtklassischen Logiken’’
Modelle mit fuzzy logic
- Aussagen erhalten Bewertungen im Intervall [0..1]
- Semantik der logischen Operatoren geeignet redefinieren, z.B.
Konjunktion liefert ‘‘Minimum’’ als Bewertung,
Disjunktion liefert ‘‘Maximum’’ als Bewertung
- ...
Modelle mit Methoden
- Objekte mit typ- oder klassen-spezifischen Methoden
- Informationssystem mit universellem Programmiersystem verbinden
- Informationssystem mit Simulations- und Prognosesystemen verbinden
- ...
© Joachim Biskup, Universität Dortmund
•
Informationssysteme: Relationales Datenmodell und Erweiterungen - relationales Datenmodell: Beispiele für Varianten, Erweiterungen, Verallgemeinerungen17. Juli 2003 253
nur Gleichheits- und Ungleichheits-Vergleiche bezüglich Konstantenzeichen
- Konstantenzeichen atomar
- Gleichheits- und Ungleichheits-Vergleiche kanonisch erweitert auf Tupel und Relationen
© Joachim Biskup, Universität Dortmund
•
Informationssysteme: Relationales Datenmodell und Erweiterungen - relationales Datenmodell: Beispiele für Varianten, Erweiterungen, Verallgemeinerungen17. Juli 2003 254
Konstantenzeichen uninterpretiert
- Semantik der Domänen nur in der Programmierumgebung dargestellt
Modelle mit vordefinierten Datentypen
- arithmetische Datentypen für Verwaltungsaufgaben
Modelle mit Multimedia-Objekten und Ähnlichkeitsvergleichen
- Ähnlichkeits-Vergleiche für Texte, Bilder, Videos, Audios etc.
- Ähnlichkeit auf Begriff von ‘‘Abstand’’ gründen
- Anfrageergebnisse gemäß Rangfolge bezüglich Ähnlichkeit anordnen
- Datentyp “Zeit’’:
alle Daten mit ‘‘Zeitangaben’’ versehen,
‘‘Ereigniszeit’’ und ‘‘Speicherzeit’’ unterscheiden,
alle Operationen redefinieren
- Datentyp ‘‘Raum’’ (insbesondere für ‘‘geographische Datenbanken’’)
- ...
- ...
- syntaktisch definierte ‘‘Ähnlichkeiten’’ deuten als ‘‘semantische Beziehungen’’
- Qualitätsmaße bezüglich ‘‘Treffer’’ und ‘‘Fehltreffer’’
- ...
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationales Datenmodell und Erweiterungen - relationales Datenmodell: Beispiele für Varianten, Erweiterungen, Verallgemeinerungen17. Juli 2003 255
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationales Datenmodell und Erweiterungen - relationales Datenmodell: Beispiele für Varianten, Erweiterungen, Verallgemeinerungen17. Juli 2003 256
•
nur “sprungfreie Anfrage-Programme’’
•
- Anfrageauswertung als Auswertung entsprechend Durchlauf durch Syntaxbaum der Anfrage
- keine Rekursion, unbeschränkte Iteration, ...
- kein ‘‘Ausführungsoperator’’ zum Aufrufen von in der Instanz gespeicherter Anfragen
- Operationen werden explizit vom Benutzer aufgerufen
Modelle ‘‘aktiver Informationssysteme’’
- Trigger vereinbar: lösen Operationen als Folge anderer Operation aus
Modelle mit Ausdruckskraft für Rekursionen
- programmiersprachlich:
Relationenvariablen und Kontrollstrukturen, insbesondere unbeschränkte Wiederholung
- E(vent)C(ondition)A(ction)-Regeln vereinbaren:
beim Eintreten eines ‘‘events’’ unter der Voraussetzung einer ‘‘condition’’
eine (möglicherweise zusammengesetzte) ‘‘action’’ auslösen
- algebraisch: Fixpunktoperator
- verlangt Lösungen für alle schwierigen Probleme der
Semantik paralleler Programmiersprachen
- monoton logikorientiert: Relationenvariablen und Rekursionen (Auswertung über Fixpunkte)
- nichtmonotone Fälle: Auswertung über geschichtete Fixpunkte, falls möglich und eindeutig
- erlauben z.B. Wirklichkeitsmodelle zu simulieren
- ...
© Joachim Biskup, Universität Dortmund
•
unmittelbar vom Benutzer gesteuert
- ...
Informationssysteme: Relationales Datenmodell und Erweiterungen - relationales Datenmodell: Beispiele für Varianten, Erweiterungen, Verallgemeinerungen17. Juli 2003 257
ganz allgemein:
Trennung von ‘‘universellem Programmiersystem’’ und ‘‘Informationssystem’’
- wohldefinierte Schnittstellen zwischen
‘‘Anwendungsumgebungen’’ und ‘‘eigentlichem Informationssystem’’
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationales Datenmodell und Erweiterungen - relationales Datenmodell: Beispiele für Varianten, Erweiterungen, Verallgemeinerungen17. Juli 2003 258
(eher) Architektur- und Anwendungsgesichtspunkte
(mit vielen Bezügen zu Strukturen und Operationen)
• ‘‘zentral’’ und “top-down’’
- alle Daten unter einem im Vorhinein deklarierten Schema
integrierte Programmier- und Informationssysteme
- ‘‘semantische Lücken’’ schließen
verteilte Architekturen
- Daten verteilen, zerlegend oder überlappend, und bei Bedarf übermitteln
- Problem der ‘‘Erneuerung’’ (refreshment)
- Operationen verteilen
- ...
- einheitliche Behandlung grundlegender Datentypen
- Programmiersystem mit ‘‘Dauerhaftigkeit (von gespeicherten Daten)’’
- Informationssystem mit ‘‘Universalität (von verfügbaren Anweisungen)’’
- ...
•
‘‘homogen’’
- alle Daten vom strukturell gleichen Datentyp (set_of record_of)
- globale Interpretation semantischer Bereichsnamen
verteilte und inhomogene Architekturen (z.B. föderierte Informationssysteme)
- Übersetzungen zwischen verschieden Formalisierungen
- 5-Schema-Architektur: intern, konzeptionell, extern, export, global
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationales Datenmodell und Erweiterungen - relationales Datenmodell: Beispiele für Varianten, Erweiterungen, Verallgemeinerungen17. Juli 2003 259
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationales Datenmodell und Erweiterungen - relationales Datenmodell: Beispiele für Varianten, Erweiterungen, Verallgemeinerungen17. Juli 2003 260
•
‘‘statisch’’
•
- Administrator deklariert Schema im Vorhinein
- Schema wird als zeitlich unverändert angesehen
•
client-server Architektur
- Benutzer und System handeln in festen Rollen, insbesondere als Anfrager und Antworter
verteilte und dynamische Architekturen (z.B. mediierte Informationssysteme)
- dynamisches Binden (und Entfernen) von Informationsquellen
Performative unterstützende Modelle
(z.B. Knowledge and Query Manipulation Language, KQML)
- Agenten führen situationsbedingte ‘‘Performative’’ (Sprachhandlungen) aus
- (halb-automatische) Erzeugung von ‘‘wrappern’’
- Absichten, Angebote usw. ausdrückbar
- ...
- Vermittlerdienste dynamisch anbietbar
- ‘‘Ontologien’’ zur Verständigung mitlieferbar
“normativ’’
- ...
- semantische Bedingungen werden als zu erzwingende Invarianten angesehen
‘‘faktisch und explorativ’’
- in vorhandenen Daten werden erfüllte Bedingungen gesucht
- ‘‘data mining’’
- ...
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationales Datenmodell und Erweiterungen - relationales Datenmodell: Beispiele für Varianten, Erweiterungen, Verallgemeinerungen17. Juli 2003 261
© Joachim Biskup, Universität Dortmund
Informationssysteme: Relationales Datenmodell und Erweiterungen - relationales Datenmodell: Beispiele für Varianten, Erweiterungen, Verallgemeinerungen17. Juli 2003 262
Navigation in Schema und Instanz
•
7 Erweiterte Navigationsmöglichkeiten
relationales Datenmodell
Navigation auf Schemaebene: ‘‘fest-beschränkte’’ Pfade im Hypergraphen des Schemas
Navigation auf Instanzenebene: Auswertung solcher Pfade bezüglich Instanz durch Verbunde
Navigation auf ‘‘Universalrelationsicht’’: (halb-) automatische Generierung solcher Pfade
•
beweistheoretische Modelle mit Horn-Formeln als Anfragen
Navigation auf Schemaebene: ‘‘rekursive Pfadmuster’’ im Hypergraphen des Schemas
Navigation auf Instanzenebene: unbeschränkte, datenabhängige Auswertung solcher Pfade
bezüglich Instanz durch Fixpunkt
•
objektorientierte Modelle mit Dereferenzierung in Anfragen
Navigation auf Schemaebene: ‘‘fest-beschränkte Pfade im ‘‘Verweis-Graphen’’ des Schemas
Navigation auf Instanzenebene: Auswertung solcher Pfade bezüglich Instanz durch
‘‘Verbunde über Dereferenzierungen’’
•
Beispiel aus Theorie:
F-Logik: erlaubt sogar Horn-Formeln als Anfragen mit (abstrakten) Dereferenzierungen
•
Beispiel aus Praxis:
Oracle-SQL: enthält als sogenanntes ‘‘objekt-relationales’’ System einige pragmatische Ansätze
© Joachim Biskup, Universität Dortmund
Informationssysteme: Erweiterte Navigationsmöglichkeiten
17. Juli 2003
263
© Joachim Biskup, Universität Dortmund
Informationssysteme: Erweiterte Navigationsmöglichkeiten
17. Juli 2003
264
Navigation im relationalen Datenmodell
grobes ‘‘Kochrezept’’ für Formalisierung einer Anfrage (verkürzte Wiederholung):
bestimme formale Entsprechungen für
•
7.1 erweiterte Navigation durch Horn-Formeln als Anfragen
Begriffe
als Attribute, Relationensymbole, semantische Bereichsnamen oder Konstantenzeichen
•
Zusammenhänge
als Pfad im Hypergraphen des Schemas (entsprechend einer Folge von Verbunden)
•
Zwecke
als Selektionen und Projektionen
also:
• Navigation auf Schemaebene liefert
‘‘fest-beschränkten’’ Pfad im Hypergraphen des Schemas,
im Wesentlichen formalisiert durch einen Ausdruck mit fester Anzahl von Verbunden
• Navigation auf Instanzenebene wertet genau diesen Ausdruck aus,
mit der im Ausdruck festgelegten datenunabhängigen Anzahl von Verbunden
• datenabhängige Anzahl von Verbunden (für z.B. ‘‘transitive Hülle’’) nicht ausdrückbar
© Joachim Biskup, Universität Dortmund
Informationssysteme: Erweiterte Navigationsmöglichkeiten
17. Juli 2003
265
Ansatz für beweistheoretische Deutung der Strukturen des
relationalen Datenmodells
Relationenschema mit Ri ≠ Rj für i ≠ j
globale semantische Bedingungen
Vereinbarung der semantischen Bereichsnamen
EDB := { R1 ,..., Rn }
Basisrelationen (extensional database relations)
unendliche Menge der Konstantenzeichen
Menge der Relationensymbole
Menge der Individuenvariablen
Menge der Terme
R(t1,...,ts) mit R ∈ R und t1,...,ts ∈ T
R(c1,...,cs) mit R ∈ R und c1,...,cs ∈ C
atomare Formel
atomare Grundformel
rel(K)
concl(K)
gedeutet als entsprechende Menge von Grundfakten
Informationssysteme: Erweiterte Navigationsmöglichkeiten - erweiterte Navigation durch Horn-Formeln als Anfragen
C
R
V
T := C ∪ V
A0
A1,...,Am
Ansatz für beweistheoretische Semantik:
µ ∈ ri mit Xi = {A1,...,Asi} gedeutet als Grundfakt (atomare Grundformel)
der Form Ri(A1:c1,...,Asi:csi). mit cj =µ(Aj ), kurz Ri(c1,...,csi).
© Joachim Biskup, Universität Dortmund
17. Juli 2003
266
A0 :- A1,...,Am. mit A0, A1,...,Am atomare Formel und m ∈ IN0, Abkürzung für
A0∨¬A1∨¬A2∨...∨¬Am
(Horn-) Klausel
modelltheoretische Semantik:
M = (d,r1,...,rn)
Instanz zu RS mit
i) d ⊂endlich C
ii) (d,ri) ist Instanz zu < Ri | Xi | SCi >
iii) (d,r1,...,rn) ist Modell von SC
iv) falls µ ∈ ri und A ∈ Xi , dann gilt µ(A) ∈ b ° a (A)
f = ∪i=1,...,n ri
Informationssysteme: Erweiterte Navigationsmöglichkeiten - erweiterte Navigation durch Horn-Formeln als Anfragen
Schreib- und Redeweisen für Horn-Formeln
Syntax:
RS = < <R1 | X1 | SC1> ,..., <Rn | Xn | SCn> | SC | a > (relationales Datenbank-) Schema mit
- < Ri | Xi | SCi >
- SC
- a : ∪i=1,...,n Xi → B
© Joachim Biskup, Universität Dortmund
17. Juli 2003
267
Konklusion
Prämissen
:=
:=
Menge der vorkommenden Relationensymbole
das in der Konklusion vorkommende Relationensymbol
A0. Abkürzung für
A0 :- .
A0. mit A0 atomare Grundformel
Fakt
Grundfakt
A0 :- A1,...,Am.
HK
GF
Regel
Menge der Horn-Klauseln
Menge der Grundfakten
© Joachim Biskup, Universität Dortmund
mit m > 1
Informationssysteme: Erweiterte Navigationsmöglichkeiten - erweiterte Navigation durch Horn-Formeln als Anfragen
17. Juli 2003
268
erweiterte Operationen mit beweistheoretischer Deutung
Hypergraph für Beispiel:
PERSON
Syntax:
Geschlecht
< R | Q > LOGODAT-Anfrage mit
- R ∈ R \ {=}
Name
Eltern
ELT
Ergebnisrelationensymbol (für Format der Ergebnisse)
- Q ⊂endlich HK mit concl (Q) ⊂ R \ (EDB ∪ {=})
(Hornklausel-)Anfrageprogramm (zum Erschließen der Ergebnisse)
Patient
Mensch
Arzt
beabsichtigte deklarative Semantik:
ArtPro
alle logischen Implikationen aus der gespeicherten Instanz und der Anfrage gemäß Format
BEH
Beziehung
Pfad
Tochter-Elternteil-Beziehung:
Geschlecht, Name, Eltern
Vorfahr-Beziehung, transitive Hülle von ELT: Name, Eltern_1 = Name_2,
Eltern_2 = Name_3, ... , Eltern_t
gleiche-Generation-Beziehung:
© Joachim Biskup, Universität Dortmund
Informationssysteme: Erweiterte Navigationsmöglichkeiten - erweiterte Navigation durch Horn-Formeln als Anfragen
17. Juli 2003
269
© Joachim Biskup, Universität Dortmund
Beispiele
| { TOCHTER (Name, Eltern) :-
Informationssysteme: Erweiterte Navigationsmöglichkeiten - erweiterte Navigation durch Horn-Formeln als Anfragen
17. Juli 2003
270
Ansatz für formale Definition der deklarativen Semantik
Beispiel 1 (Tochter-Elternteil-Beziehung):
< TOCHTER
verfolge simultan Pfade gleicher Länge,
die Nachfahren bestimmen
ELT (Name, Eltern),(AND)
PERSON (Name, Geschlecht),(AND)
= (Geschlecht, weib).
}
>
RS mit EDB = {R1 ,..., Rn}
<R|Q>
Schema
LOGODAT-Anfrage
evalRS (< R | Q >)
ordnet jeder Instanz (Menge von Grundfakten) f zu RS
eine Menge von Grundfakten zum Relationensymbol R zu:
Beispiel 2 (Vorfahr-Beziehung, transitive Hülle von ELT):
< VORFAHR
| { VORFAHR (Name, Ahn)
:-
ELT (Name, Ahn). ,(OR)
VORFAHR (Name, Ahn)
:-
ELT (Name, Eltern),(AND)
VORFAHR(Eltern, Ahn). }
evalRS (< R | Q >) (f) := { R (c1,..., cs). | f ∪ Q |= R (c1,..., cs). mit c1,..., cs ∈ C }
>
|=
Beispiel 3 (gleiche-Generation-Beziehung):
< GLEICHGEN |{GLEICHGEN (Name, Name) :-
ELT (Name, Eltern). ,(OR)
GLEICHGEN (Eltern, Eltern) :-
ELT (Name, Eltern). ,(OR)
GLEICHGEN (Name_1, Name_2) :-
© Joachim Biskup, Universität Dortmund
ELT (Name_1, Eltern_1),(AND)
ELT (Name_2, Eltern_2),(AND)
GLEICHGEN (Eltern_1, Eltern_2). }
Informationssysteme: Erweiterte Navigationsmöglichkeiten - erweiterte Navigation durch Horn-Formeln als Anfragen
17. Juli 2003
logische Implikation für LOGODAT-Strukturen,
mit Universum C,
wobei Konstantenzeichen aus C
stets durch sich selbst interpretiert werden,
insbesondere:
alle Elemente des Universums haben einen eindeutigen Namen
(unique name assumption)
>
271
© Joachim Biskup, Universität Dortmund
Informationssysteme: Erweiterte Navigationsmöglichkeiten - erweiterte Navigation durch Horn-Formeln als Anfragen
17. Juli 2003
272
Grundfakten-Transformation als Grundbaustein für operationale
Fixpunktsemantik
bislang:
deklarative Semantik vermöge |=
gesucht:
dazu äquivalente operationale Semantik
Grundfakten-Transformation und Resolution
Definition Grundfakten-Transformation (Wiederholung):
gegeben:
Klausel K ≡ A0 :- A1,..., Am. mit rel (A0) ∈ R \ {=}
zugeordnete Grundfakten-Transformation TK:
TK : ℘ GF → ℘ GF,
TK (g) := { R (c1,..., cs). |
Grundfakten-Transformation als Grundbaustein dafür:
gegeben:
Klausel K ≡ A0 :- A1,..., Am. mit rel (A0) ∈ R \ {=}
zugeordnete Grundfakten-Transformation TK:
TK : ℘ GF → ℘ GF,
TK (g) := { R (c1,..., cs). |
es gibt Variablenbelegung γ mit
(1) γ (A0) ≡ R (c1,..., cs) und
(2) für alle i = 1,..., m: γ (Ai.) ∈ g ∪ { =(c,c). | c ∈ C } }
es gibt Variablenbelegung γ mit
γ (A0) ≡ R (c1,..., cs) und
γ (Ai.) ∈ g ∪ { =(c,c). | c ∈ C } für i = 1,..., m }
Beobachtung:
Eine Grundfakten-Transformation TK angewendet auf Grundfakten g beinhaltet im Wesentlichen:
alle (derzeit ausführbaren) (Hyper-)Resolutionen
gegeben:
Klauselmenge K mit concl (K) ∈ R \ {=} für alle K ∈ K
zugeordnete Grundfakten-Transformation TK:
von der Klausel K einerseits
mit Atomen aus g und Gleichheitsatomen andererseits
TK : ℘ GF → ℘ GF,
TK (g) :=
© Joachim Biskup, Universität Dortmund
∪K ∈ K
mit jeweiligem allgemeinsten Unifikator γ
TK (g)
Informationssysteme: Erweiterte Navigationsmöglichkeiten - erweiterte Navigation durch Horn-Formeln als Anfragen
17. Juli 2003
273
© Joachim Biskup, Universität Dortmund
Beispiel für iterierte Anwendung der Grundfakten-Transformation
K:= { ELT (anton, fritz).
,
ELT (maria, anton). ,
ELT (hugo, anton). ,
GLEICHGEN (Name, Name)
GLEICHGEN (Eltern, Eltern)
(1)
(2)
(3)
::-
GLEICHGEN (Name_1, Name_2) :-
ELT (Name, Eltern). ,
ELT (Name , Eltern). ,
(4)
(5)
ELT (Name_1, Eltern_1),
ELT (Name_2, Eltern_2),
GLEICHGEN (Eltern_1, Eltern_2). }
(6)
g1 := TK(Ø)
=
{
ELT (anton, fritz). ,
g2 := TK(g1)
=
{
ELT (anton, fritz). ,
ELT (maria, anton). , ELT (hugo, anton). ,
GLEICHGEN (anton, anton). , GLEICHGEN (maria, maria). ,
GLEICHGEN (hugo, hugo). , GLEICHGEN (fritz, fritz).
}
g3 :=TK(g2)
=
Beobachtung:
© Joachim Biskup, Universität Dortmund
{
ELT (maria, anton). ,
Informationssysteme: Erweiterte Navigationsmöglichkeiten - erweiterte Navigation durch Horn-Formeln als Anfragen
17. Juli 2003
274
17. Juli 2003
276
Fixpunktsatz für Grundfakten-Transformation
bekannt:
(℘ GF, ⊂) ist ein vollständiger Verband
Hilfssatz 1:
TK ist monoton,
d.h. für alle g, g' ⊂ GF gilt:
g ⊂ g' ⇒ TK (g) ⊂ TK (g').
Hilfssatz 2:
TK ist stetig,
d.h. für alle ω-Ketten g0 ⊂ g1 ⊂ g2 ⊂ ... ⊂ GF gilt:
TK ( ∪i ∈ ω gi) =
∪i ∈ ω
TK (gi).
Fixpunktsatz von Tarski-Kleene
ELT (hugo, anton). }
Sei (H, ⊂) eine ω-vollständige Halbordnung
mit kleinstem Element ∅ und Supremumsoperation ∪,
und sei T : H → H eine monotone und stetige Transformation.
1.
ELT (anton, fritz). ,
ELT (maria, anton). , ELT (hugo, anton). ,
GLEICHGEN (anton, anton). , GLEICHGEN (maria, maria). ,
GLEICHGEN (hugo, hugo). , GLEICHGEN (fritz, fritz). ,
GLEICHGEN (maria, hugo). , GLEICHGEN (hugo, maria).
}
2.
T besitzt einen eindeutig bestimmten kleinsten Fixpunkt fix ∈ H,
d.h. es gibt fix ∈ H mit T (fix) = fix und
für alle x ∈ H: T (x) = x ⇒ fix ⊂ x
Der kleinste Fixpunkt fix ergibt sich durch
fix =
∪i ∈ ω
.
Ti (∅).
g3 ist Fixpunkt der Grundfakten-Transformation TK
Informationssysteme: Erweiterte Navigationsmöglichkeiten - erweiterte Navigation durch Horn-Formeln als Anfragen
17. Juli 2003
275
© Joachim Biskup, Universität Dortmund
Informationssysteme: Erweiterte Navigationsmöglichkeiten - erweiterte Navigation durch Horn-Formeln als Anfragen
TK ist monoton, d.h. für alle g, g' ⊂ GF gilt:
g ⊂ g' ⇒ TK (g) ⊂ TK (g')
operationale Fixpunktsemantik von LOGODAT-Anfragen
Definition:
RS mit EDB = {R1 ,..., Rn}
<R|Q>
f
folgt direkt aus der Definition der Grundfakten-Transformation
Schema
LOGODAT-Anfrage
Instanz (Menge von Grundfakten zu EDB)
TK ist stetig,
d.h. für alle ω-Ketten g0 ⊂ g1 ⊂ g2 ⊂ ... ⊂ GF gilt:
TK (
evalRSfix (< R | Q >) (f) := { R (c1,...,ct). | R (c1,...,ct). ∈ fix (f ∪ Q) },
∪i ∈ ω
“⊃”: gemäß Monotonie
“⊂”: betrachte:
Definition von TK:
wobei fix (f ∪ Q) kleinster Fixpunkt
der f ∪ Q zugeordneten Grundfakten-Transformation Tf∪Q
gi) =
∪i ∈ ω
TK (gi)
R (c1,...,cs). ∈ TK ( ∪i ∈ ω gi).
es gibt Klausel K ≡ A0 :- A1,..., Am. ∈ K und
Variablenbelegung γ mit
(1) γ (A0) ≡ R (c1,...,cs) und
(2) γ (Aj.) ∈
Satz [Korrektheit und Vollständigkeit der Fixpunktsemantik]:
evalRSfix (< R | Q >) (f) =
Klausel K endlich:
evalRS (< R | Q >) (f) für alle Instanzen f zu RS
© Joachim Biskup, Universität Dortmund
(1) und (2*):
Informationssysteme: Erweiterte Navigationsmöglichkeiten - erweiterte Navigation durch Horn-Formeln als Anfragen
17. Juli 2003
277
Fixpunktsatz von Tarski-Kleene
i = 0:
(1) Ti (∅) ⊂ Ti+1 (∅) für alle i ∈ ω, durch Induktion über i:
i = 0:
T0 (∅)
= ∅ ⊂ T1 (∅)
i > 0:
Ti+1 (∅) = T (Ti (∅))
Definition von Ti+1
i-1
⊃ T (T (∅))
Induktionsannahme und Monotonie von T
= Ti (∅)
Definition von Ti
i
(2) ∪i ∈ ω T (∅) Element von H
ω-Vollständigkeit
(3) Fixpunkt-Eigenschaft:
T ( ∪i ∈ ω Ti (∅)) = ∪i ∈ ω T (Ti (∅))
(1) und Stetigkeit von T
=
=
∪i ∈ ω
(∅)
i
∪i ∈ ω T (∅)
Definition von
T0 (∅) = ∅
(4) kleinster Fixpunkt: für beliebigen Fixpunkt x mit T (x) = x gilt: (∅) ⊂ x für alle i ∈ ω
i = 0: T0 (∅) = ∅ ⊂ x
i + 1: Ti+1 (∅) = T (Ti (∅))
Definition von Ti+1
⊂ T (x)
Induktionsannahme und Monotonie von T
= x
T(x) =x
Informationssysteme: Erweiterte Navigationsmöglichkeiten - erweiterte Navigation durch Horn-Formeln als Anfragen
17. Juli 2003
R (c1,...,cs). ∈ TK (ge) ⊂
∪i ∈ ω
279
TK (gi)
Informationssysteme: Erweiterte Navigationsmöglichkeiten - erweiterte Navigation durch Horn-Formeln als Anfragen
17. Juli 2003
278
K |= TKi (∅)
trivial wegen TK0 (∅) = ∅
i > 0:
Induktionsannahme:
Voraussetzung:
Voraussetzung:
K |= TKi-1 (∅)
(1)
i
R (c1,...,cs). ∈ TK (∅) \ TK
M ist Modell von K
i-1
(∅)
zu zeigen: M ein Modell von R (c1,...,cs)
Beweis:
(2) mit Definition von TK: es gibt Klausel K ≡ A0 :- A1,...,Am. ∈ K und
Variablenbelegung γ mit
γ (A0) ≡ R (c1,...,cs) und
γ (Aj.) ∈ TKi-1 (∅) ∪ { =(c,c). | c ∈ C } für j = 1,...,m
Ti+1
Ti
© Joachim Biskup, Universität Dortmund
∪ { =(c,c). | c ∈ C } für j = 1,...,m
ge
TKi (∅) enthält nur Implikationen von K:
T : H → H monotone und stetige Transformation für ω-vollständige Halbordnung (H, ⊂)
mit kleinstem Element ∅ und Supremumsoperation ∪:
T besitzt einen eindeutig bestimmten kleinsten Fixpunkt fix ∈ H mit fix = ∪i ∈ ω Ti (∅).
Ti+1
© Joachim Biskup, Universität Dortmund
gi ∪ { =(c,c). | c ∈ C } für j = 1,...,m
es gibt ein Kettenelement ge mit
(2*) γ (Aj.) ∈
Beweisskizzen:
∪i ∈ ω
(3) und (1) zusammen mit der trivialen Gültigkeit von Gleichheitsfakten:
M ist Modell von γ (Aj.) für j = 1,...,m
(3):
M ist Modell von γ (K)
(6) und (7), mit (4):
M ist Modell von γ(A0) ≡ R (c1,...,cs)
(2)
(3)
(4)
(5)
(6)
(7)
kleinster Fixpunkt von TK enthält nur Implikationen von K: K |= fix (K)
© Joachim Biskup, Universität Dortmund
Informationssysteme: Erweiterte Navigationsmöglichkeiten - erweiterte Navigation durch Horn-Formeln als Anfragen
17. Juli 2003
280
kleinster Fixpunkt von TK ist - kanonisch als eine LOGODAT-Struktur aufgefasst ein Modell von K (kleinstes Herbrand-Modell):
Model(fix(K)) ∈ Mod (K)
angenommen:
M := Model (fix (K)) ist kein Modell von K
Definition ‘‘Modell’’:
es gibt es eine Klausel K ≡ A0 :- A1,...,Am. ∈ K, so dass gilt:
M ist kein Modell von K
d.h.:
es gibt eineVariablenbelegung β mit
|≠M,β A0.
|=M,β Aj. für j = 1,...,m
(1a)
(1b)
Definition von M und (1): β (A0.) ∉ fix (K)
β (Aj.) ∈ fix (K) ∪ { =(c,c) | c ∈ C } für j = 1,...,m
(2a)
(2b)
Definition der Grundfakten-Transformation und Fixpunkteigenschaft:
β (A0.) ∈ TK (fix (K)) = fix (K)
(3)
Informationssysteme: Erweiterte Navigationsmöglichkeiten - erweiterte Navigation durch Horn-Formeln als Anfragen
17. Juli 2003
- jedes von Fixpunktsemantik erzeugte Grundfakt ist korrekt:
es ist eine logische Implikation der zu verarbeitenden Klauseln
- alle logisch implizierten Grundfakten werden vollständig von der Fixpunktsemantik erzeugt
Behauptung:
evalRSfix (< R | Q >) (f) = evalRS (< R | Q >) (f)
zu zeigen:
für fix := fix (f ∪ Q)
R (c1,...,cs). ∈ fix
“⇒”[Korrektheit]:
Widerspruch zu (2)!
© Joachim Biskup, Universität Dortmund
Äquivalenz der deklarativen Semantik und der operationalen Fixpunktsemantik:
281
andererseits:
Model(fix)
(1) und (2) :
f∪Q
•
•
∈
Mod (f ∪ Q)
(2)
|≠
R (c1,...,cs).
17. Juli 2003
282
Klauselmenge:
•
P( P1:x, P2:y ).
P( P1:x, P2:z ), T( T1:z, T2:y ).
Wertzuweisung mit algebraischem Ausdruck:
T( T1, T2 )
- führe Wiederholungsanweisung durch:
berechne simultan alle Wertzuweisungen,
bis keine Änderungen mehr erfolgen
:=
π[ (T1,X) , (T2,Y) ]( π[ (X,P1) , (Y,P2) ] (P) )
∪
π[ (T1,X) , (T2,Y) ]( π[ (X,P1) , (Z,P2) ] (P)
Abhängigkeitsgraph:
P
π[ (Z,T1) , (Y,T2) ] (T) )
K1
T
K2
differentiell:
- versuche Duplikate zu vermeiden:
jeweils für ein Argument einer Wertzuweisung nur ‘‘gerade neu erzeugte Fakten’’ benutzen
•
(1)
Informationssysteme: Erweiterte Navigationsmöglichkeiten - erweiterte Navigation durch Horn-Formeln als Anfragen
K1 ≡ T( T1:x, T2:y ) :K2 ≡ T( T1:x, T2:y ) :-
Projektion-Selektion-Vergleich-Ausdruck
Vergleich-Verbund-Ausdruck
Projektion und ‘‘Relationenvariable’’
Wertzuweisung der Form
‘‘Relationenvariable’’
:= Projektion(Vereinigung-Ausdruck)
- bilde Abhängigkeitsgraphen
als ‘‘Petrinetz-ähnliches Datenfluss-Modell’’ für alle Wertzuweisungen
•
fix
Mod (R (c1,...,cs).)
einfaches Beispiel für naive Auswertung: transitive Hülle
naiv:
- übersetze Klauseln in relationale Algebra:
einzelne Prämisse
in
Folge der Prämissen
in
Konklusion
in
Klauseln mit gleicher Konklusion in
kleinster Fixpunkt enthält nur logische Implikationen
R (c1,...,cs). ∉
Model(fix) ∉
Auswertung von LOGODAT-Anfragen: grober Überblick
•
kleinsten Fixpunkt von Tf∪Q, für c1,...,cs ∈ C:
gdw
f ∪ Q |= R (c1,...,cs).
“⇐”[Vollständigkeit]:
betrachte:
Definition von Model (fix):
© Joachim Biskup, Universität Dortmund
für alle Instanzen f zu RS
•
Wiederholung:
REPEAT
(‘‘magic set-’’) optimiert durch ‘‘Vorziehen von Selektionen’’
- versuche frühestmöglich Variablen mit Konstanten zu binden
© Joachim Biskup, Universität Dortmund
Informationssysteme: Erweiterte Navigationsmöglichkeiten - erweiterte Navigation durch Horn-Formeln als Anfragen
T_neu := ∅ ;
UNTIL
17. Juli 2003
283
© Joachim Biskup, Universität Dortmund
T
:= T_neu ;
T_neu := Expression( P, T )
T = T_neu ;
Informationssysteme: Erweiterte Navigationsmöglichkeiten - erweiterte Navigation durch Horn-Formeln als Anfragen
/*wie oben definiert
17. Juli 2003
284
Beispiel: eine Modellierung mit objektorientierter Formalisierung
7.2 erweiterte Navigation durch Dereferenzierung in Anfragen für
objektorientierte Modelle
Person
Name
Kind
ISA
Patient
© Joachim Biskup, Universität Dortmund
Informationssysteme: Erweiterte Navigationsmöglichkeiten - erweiterte Navigation durch Dereferenzierung in Anfragen für objektorientierte Modelle
17. Juli 2003
285
© Joachim Biskup, Universität Dortmund
Prot, Arzt
Informationssysteme: Erweiterte Navigationsmöglichkeiten - erweiterte Navigation durch Dereferenzierung in Anfragen für objektorientierte Modelle
17. Juli 2003
286
17. Juli 2003
288
Zeichenerklärung
Dictionary mit zugehörigen
Elementobjekten
Dictionary mit zugehörigen Elementobjekten
Objekt vom Typ
Dictionary(als B*-Baum)
Objekt vom Typ
Set
Dictionary-(über- Person_Typ )Objekt
Dictionary-(über- Patient_Typ )-Objekt
PATIENT
●
Objekt vom Typ Person_Typ, Patient_Typ
Behandlung_Typ
●
i
●
PERSON
●
oder
i
●
●
●
N:
j
jk
K:
●
N:
Person_TypObjekt
●
●
P:
B:
j
K:
●
●
Verweise über Adressen / UIDs (wobei die Schreibweise
eine durchgezogene Linie ersetzt)
i
i
●
●
●
●
•j k
●
●
Person_Typ- Objekt mit
"angeheftetem" Objekt
A:
Patient_TypObjekt
Behandlung_TypObjekt
●
●
durch Verweisstrukturen gebildete
"zusammengesetzte Objekte"
© Joachim Biskup, Universität Dortmund
Informationssysteme: Erweiterte Navigationsmöglichkeiten - erweiterte Navigation durch Dereferenzierung in Anfragen für objektorientierte Modelle
Patient_Typ- Objekt mit
"angehefteten" Objekten
●
●
17. Juli 2003
287
© Joachim Biskup, Universität Dortmund
Informationssysteme: Erweiterte Navigationsmöglichkeiten - erweiterte Navigation durch Dereferenzierung in Anfragen für objektorientierte Modelle
objektorientierte Formalisierung eines Patienten namens Maria
PATIENT
1
2
4
graphisch:
PERSON
6
1
2
3
4
5
6
6
4
N: "hugo"
K:
K:
B:
B:
6
N: "maria"
P: "haus"
A:
B:
3
4
P: "unter"
A:
P: "labor"
A:
B:
P: "berat"
A:
2
N: "fritz"
3
5
N: "josef"
© Joachim Biskup, Universität Dortmund
behandlung(maria, "labor", gerda) [protokoll
behandlung(maria, "haus", gerda) [protokoll
behandlung(maria, "rönt", gerda) [protokoll
1
P: "berat"
A:
Informationssysteme: Erweiterte Navigationsmöglichkeiten - erweiterte Navigation durch Dereferenzierung in Anfragen für objektorientierte Modelle
17. Juli 2003
289
Regeln mit Dereferenzierungen in F-Logik
dann
wert_relationBEH [ einPatientAusgabe
einProtokollAusgabe
einArztAusgabe
{Y}]
Informationssysteme: Erweiterte Navigationsmöglichkeiten - erweiterte Navigation durch Dereferenzierung in Anfragen für objektorientierte Modelle
290
Yausgabe] :-
⇒ (string);
⇒ (string);
⇒ (string) ]
behAusgabe(X,Y):wert_relationBEH [ einPatientAusgabe
einProtokollAusgabe
einArztAusgabe
X : patient [ name
Xausgabe;
behandlungen
{Y}
Y
[ protokoll
Yausgabe;
Z
[ name
Zausgabe
X ein Objekt der Klasse person bezeichnet,
das unter dem mengenwertigen Attribut kinder
auf ein Objekt Y (vom Typ person_typ) verweist,
bezeichne el_ki(X,Y) ein Objekt der Sicht sur_relationELT,
das unter dem skalaren Attribut eltern auf das Objekt X
und unter dem skalaren Attribut kind auf das Objekt Y verweist’’
© Joachim Biskup, Universität Dortmund
17. Juli 2003
der Relation BEH entsprechende Sicht durch verschmolzene Definition:
dieses Beispiel liefert die Surrogatpaare für die Eltern-Kind-Beziehungen:
‘‘wenn
Informationssysteme: Erweiterte Navigationsmöglichkeiten - erweiterte Navigation durch Dereferenzierung in Anfragen für objektorientierte Modelle
eltAusgabe(Z):wert_relationELT [elternAusgabe
Xausgabe; kindAusgabe
Z : sur_relationELT [eltern
X; kind
Y ],
X
[name
Xausgabe
],
Y
[name
Yausgabe
]
Signaturmoleküle vereinbaren das Schema (Attribute und Domänen) der Sicht, hier:
sur_relationELT [ eltern ⇒ (person_typ); kind ⇒ (person_typ)]
X : person [kinder
gerda ]
gerda ]
gerda ]
wert_relationELT [ elternAusgabe ⇒ (string); kindAusgabe ⇒ (string)]
Terme bildet man mit Hilfe von geeigneten Funktionszeichen, hier:
sur_relationELT:
Konstantenzeichen für die Klasse der in der Sicht enthaltenen Objekte
el_ki:
zweistelliges Funktionszeichen;
el_ki(o1,o2) bezeichnet jeweils ein in der Sicht enthaltenes Objekt
Y ] :-
© Joachim Biskup, Universität Dortmund
"labor"; arzt
"haus"; arzt
"rönt"; arzt
benutzersichtbare Darstellung der zugehörigen Namenspaare durch zusätzliche Sicht:
Sichten (Anfragen) in der F-Logik bestehen aus Objekten, die durch Terme bezeichnet werden
Horn-Klauseln bestimmen die Objekte der Sicht, hier:
el_ki(X,Y): sur_relationELT [ eltern
X; kind
]
K:
K:
B:
3
maria [name
"maria" ]
maria [kinder
{}
]
maria [behandlungen
{ behandlung(maria, "labor", gerda),
behandlung(maria, "haus", gerda),
behandlung(maria, "rönt", gerda) }
6
K:
P: "haus"
A:
in F-Logik:
N: "gerda"
K:
P: "rönt"
A:
N: "anton"
P: "labor"
A:
P: "rönt"
A:
P: "labor"
A:
K:
1
N: "maria"
17. Juli 2003
291
© Joachim Biskup, Universität Dortmund
Xausgabe ;
Yausgabe ;
Zausgabe ]
arzt
Z
:],
],
]
Informationssysteme: Erweiterte Navigationsmöglichkeiten - erweiterte Navigation durch Dereferenzierung in Anfragen für objektorientierte Modelle
17. Juli 2003
292
Veranschaulichung der Horn-Klausel für wert_relationBEH
8 Datenmodelle für halb-strukturierte Daten
PATIENT
X
N: Xausgabe
K:
B:
Y
P: Yausgabe
A:
Z
N:
Zausgabe
K:
© Joachim Biskup, Universität Dortmund
Informationssysteme: Erweiterte Navigationsmöglichkeiten - erweiterte Navigation durch Dereferenzierung in Anfragen für objektorientierte Modelle
17. Juli 2003
293
strukturierte versus halb-strukturierte Daten
strukturiert
© Joachim Biskup, Universität Dortmund
halb-strukturiert
im Vorhinein vereinbart
statisch (zeitunabhängig) bei Einrichtung
für alle (Instanz-)Daten verbindlich
von Instanz-(Daten) “getrennt speicherbar”
“globale” Selbstbeschreibung
der Datengesamtheit
© Joachim Biskup, Universität Dortmund
Informationssysteme: Datenmodelle für halb-strukturierte Daten
294
•
dynamisch angeforderter Austausch und/oder “semantische” Integration
von heterogenen komplexen Objekten (Daten)
zwischen autonomen Agenten
sollen ermöglicht werden
- im Einzelfall gebildet
- dynamisch bei Datenerzeugung
- individuell für einzelnes Datum gültig
- zusammen mit Datum gespeichert
- “lokale” Selbstbeschreibung
eines einzelnen Datums
•
Austausch und “semantische” Integration
sollen miteinander verwoben werden
und halb-algorithmisch durchführbar sein (gegebenenfalls mit Benutzer-Interaktion)
•
austauschbare und “semantisch” integrierbare Objekte
sollen selbstbeschreibend sein
bezüglich “Benutzer-Ontologie” für erkundende Navigation durch Benutzer und
bezüglich syntaktischer Typen (Domänen) für syntaktische Analyse durch System
•
Objekte sollen mit wenigen, elementaren Konstrukten gebildet werden,
die (möglichst) “universell” sind
(bezüglich aller bei beteiligten Agenten eingesetzten Konstrukte)
•
im Übrigen: möglichst viele “schöne Seiten” von Datenmodellen für strukturierte
Daten (insbesondere des relationalen Datenmodells) sollen erhalten bleiben
Anfragen
- Schema datenunabhängig anfragbar
- Schema-bezogene Ausdrucksmittel,
ergänzt durch Konstantenzeichen
- Navigation in
bekannter statischer
(Hypergraph-)Schemastruktur
- schon vor Ausführung optimierbar
17. Juli 2003
einige Anforderungen an Datenmodelle für halb-strukturierte Daten
Schemavereinbarung
-
Informationssysteme: Datenmodelle für halb-strukturierte Daten
- Schemas nur datenabhängig anfragbar
- “Schema-erkundende” Ausdrucksmittel,
ergänzt durch Konstantenzeichen
- “erkundende Navigation” in
erratener oder erfragter dynamischer
Instanzstruktur
- nur während Ausführung optimierbar
17. Juli 2003
295
© Joachim Biskup, Universität Dortmund
Informationssysteme: Datenmodelle für halb-strukturierte Daten
17. Juli 2003
296
Beispiel: OEM (Object Exchange Model)
•
•
Aufbau elementarer OEM-Objekte
Object-ID:
entworfen im Rahmen des Projekts TSIMMIS,
“The Stanford-IBM Manager of Multiple Information Sources”
- Local Object Reference: identifiziert ein Objekt lokal,
z.B. durch Speicheradresse oder lokale OID
Strukturen:
aus elementaren Objekten gebildete,
dreischichtig überlappende,
(im Allgemeinen vorzugsweise) baumartige Geflechte für
- “Benutzer-Ontologie” (“menschliche Semantik”, ... ) zum Navigieren: Label
- syntaktische Analyse für automatische Auswertung:
Type
- atomare Werte oder Referenzen:
Value
- Remote ID:
identifiziert ein Objekt in (entfernter) Informationsquelle
- lexical:
“druckbar”,
von Benutzer in Anfragen “als Einstiegspunkt” verwendbar
- non-lexical:
“nicht druckbar”,
vom System bei Anfrageauswertung
als Belegung von Objektvariablen verwendbar
Object-ID
Label
•
Type
Value
Object-ID
Label
Operationen:
- Erzeugen, Ändern, Entfernen
- Anfragen, durch SQL-ähnliche Syntax bezeichnet
© Joachim Biskup, Universität Dortmund
Informationssysteme: Datenmodelle für halb-strukturierte Daten
17. Juli 2003
297
Value
Informationssysteme: Datenmodelle für halb-strukturierte Daten
17. Juli 2003
298
17. Juli 2003
300
employee_k
Object-ID
Label
© Joachim Biskup, Universität Dortmund
Type
Type
Angestellter
Value
{component_3,
component_2,
component_1}
SET
component_1
Label:
- Zeichenkette variabler Länge,
- “ontologisch gedeutet” als inhaltliche (Selbst-)Beschreibung
(aber nicht im Vorhinein durch einen Administrator global verbindlich festgelegt),
benutzt zum Navigieren bei Anfragen
Name
STRING
“Meier”
STRING
“GBV/555”
component_2
Type:
- atomic (z.B. STRING, INTEGER, ... ) oder
- SET bzw. LIST
Raum
Value
component_3
- zum atomaren Typ passender Wert variabler Länge oder
- passende Menge bzw. Liste von Object-IDs
© Joachim Biskup, Universität Dortmund
Informationssysteme: Datenmodelle für halb-strukturierte Daten
Bild
17. Juli 2003
299
© Joachim Biskup, Universität Dortmund
BITS
Informationssysteme: Datenmodelle für halb-strukturierte Daten
graphische Veranschaulichung und textuelle Schreibweise
ein Geflecht in textueller Schreibweise
root
is
[ bibliography,
SET,
{doc_1, doc_2, ... , doc_n } ]
doc_1
authors_1
author_1_1
topic_1
call_1
is
is
is
is
is
[ document,
[ author-set,
[ author-last-name,
[ topic,
[ internal-call-no,
SET,
{authors_1, topic_1, call_1 } ]
SET,
{author_1_1} ]
STRING, “Ullman” ]
STRING, “Databases” ]
INTEGER, 25 ]
doc_2
authors_2
author_2_1
author_2_2
author_2_3
topic_2
call-number_2
is
is
is
is
is
is
is
[ document,
[ author-set,
[ author-last-name,
[ author-last-name,
[ author-last-name,
[ topic,
[ dewey-decimal,
SET, {authors_2, topic_2, call-number_2 } ]
SET, {author_2_1, author_2_2, author_2_3} ]
STRING, “Aho” ]
STRING, “Hopcroft” ]
STRING, “Ullman” ]
STRING, “Algorithms” ]
STRING, “BR273” ]
doc_n
authors_n
topic_n
call_n
is
is
is
is
[ document,
[ single-author,
[ topic,
[ fiction-call-no,
SET,
{authors_n, topic_n, call_n } ]
STRING, “Michael Crichton” ]
STRING, “Dinosaurs” ]
INTEGER, 95 ]
employee_k
{component_3,
component_2,
component_1}
SET
Angestellter
component_1
Name
STRING
“Meier”
STRING
“GBV/555”
component_2
Raum
component_3
BITS
Bild
employee_k
component_1
component_2
component_3
© Joachim Biskup, Universität Dortmund
is
[ Angestellter, SET,
is
is
is
[ Name,
[ Raum,
[ Bild,
{component_1, component_2, component_3 }]
...
STRING, “Meier”
]
STRING, “GBV/555” ]
BITS,
]
Informationssysteme: Datenmodelle für halb-strukturierte Daten
17. Juli 2003
301
baumartige Geflechte für
Typen:
Adressen/Referenzen mit Werten:
bibliography
SET
root
© Joachim Biskup, Universität Dortmund
SET
SET
STRING
STRING
INTEGER
SET
SET
STRING
STRING
STRING
STRING
STRING
...
SET
STRING
STRING
INTEGER
Informationssysteme: Datenmodelle für halb-strukturierte Daten
doc_1
authors_1
author_1_1
topic_1
call_1
doc_2
authors_2
author_2_1
author_2_2
author_2_3
topic_2
call-number_2
...
doc_n
authors_n
topic_n
call_n
Informationssysteme: Datenmodelle für halb-strukturierte Daten
17. Juli 2003
302
Grundform von OEM-Anfragen: Syntax und beabsichtigte Semantik
Pfade:
document
author-set
author-last-name,
topic
internal-call-no
document
author-set
author-last-name
author-last-name
author-last-name
topic
dewey-decimal
...
document
single-author
topic
fiction-call-no
© Joachim Biskup, Universität Dortmund
SELECT
Fetch-Expression
3) wählt für qualifizierte Objekte jeweils Teilobjekt
und bildet Objekte für Value von Rückgabe-Objekt
(mögliche Erweiterung: Konstruktoren für komplexe, zusammengesetzte OEM-Objekte)
(SET-)Object
FROM
:“Ullman”
:“Databases”
:25
1) alle im VALUE-Teil des (Set-)Objects
aufgeführten Objekte werden betrachtet
(mögliche Erweiterung: Objekt-Objektvariablen-Bindungslisten für kartesische Produkte)
WHERE
:“Aho”
:“Hopcroft”
:“Ullman”
:“Algorithms”
: “BR273”
Condition
2) und jeweils untersucht, ob
sie sich bezüglich Condition qualifizieren;
(Im Wesentlichen: Vergleichs-Prädikate zwischen Pfaden und Konstanten)
mengenorientiertes, zusammengesetztes Rückgabe-Objekt
oid_answer
:“Michael Crichton”
: “Dinosaurs”
: 95
17. Juli 2003
answer
(reserviertes Label)
303
© Joachim Biskup, Universität Dortmund
SET
Informationssysteme: Datenmodelle für halb-strukturierte Daten
{oid_1, ... , oid_n}
(für “qualifizierte Teilobjekte”)
17. Juli 2003
304
Definition von OEM-Pfaden
Syntax in BNF
durch “.” getrennte Folgen von
•
•
•
•
Label-Ausprägungen
“?”
“*”
“OID”
Query
(Zeichenketten, ohne “.”, “?”, “*” und “OID”)
Platzhalter für Label
Platzhalter für Pfad
für Rückgabe von Object-Id(entifier) anstelle von Value,
nur als Pfadabschluss,
wobei Folgenglieder durch Variablen unterschieden werden können
© Joachim Biskup, Universität Dortmund
Informationssysteme: Datenmodelle für halb-strukturierte Daten
17. Juli 2003
305
::=
[ bibliography,
SET,
doc_1
authors_1
author_1_1
topic_1
call_1
is
is
is
is
is
[ document,
[ author-set,
[ author-last-name,
[ topic,
[ internal-call-no,
SET,
{authors_1, topic_1, call_1 } ]
SET,
{author_1_1} ]
STRING, “Ullman” ]
STRING, “Databases” ]
INTEGER, 25 ]
doc_2
authors_2
author_2_1
author_2_2
author_2_3
topic_2
call-number_2
is
is
is
is
is
is
is
[ document,
[ author-set,
[ author-last-name,
[ author-last-name,
[ author-last-name,
[ topic,
[ dewey-decimal,
SET, {authors_2, topic_2, call-number_2 } ]
SET, {author_2_1, author_2_2, author_2_3} ]
STRING, “Aho” ]
STRING, “Hopcroft” ]
STRING, “Ullman” ]
STRING, “Algorithms” ]
STRING, “BR273” ]
doc_n
authors_n
topic_n
call_n
is
is
is
is
[ document,
[ single-author,
[ topic,
[ fiction-call-no,
SET,
{authors_n, topic_n, call_n } ]
STRING, “Michael Crichton” ]
STRING, “Dinosaurs” ]
INTEGER, 95 ]
Path
|
Path.OID
Path
::=
Label
|
Label.Path
Label
::=
string_as_label [ (variable) ]
Object
::=
string_as_lexical_object_identifier
Condition ::=
|
|
|
true
Path
predicate ( Value, ... , Value )
Condition and Condition
Value
Path
::=
© Joachim Biskup, Universität Dortmund
| ? [ (variable) ] | * [ (variable) ]
immer wahr
Pfad muss existieren
Werte müssen Prädikat erfüllen
beide Bedingungen müssen wahr sein
constant
Informationssysteme: Datenmodelle für halb-strukturierte Daten
17. Juli 2003
306
17. Juli 2003
308
Joker (wildcards) in Pfadausdrücken
“?” kann mit jedem Label belegt werden
(innerhalb einer Anfrage müssen zwei Vorkommen von “?” gleich belegt werden,
sofern nicht durch Variablen ausdrücklich unterschieden), z.B. Anfrage
SELECT
FROM
WHERE
liefert:
17. Juli 2003
bibliography.?.topic
root
bibliography.?.internal-call-no
(für Qualifikation: solch ein Pfad muss vorhanden sein)
object_return
obj_1
is
is
[ answer,
[ topic,
SET,
{obj_1}
]
STRING, “Databases” ]
“*” kann mit jedem nichttrivialen Pfad belegt werden
(innerhalb einer Anfrage müssen zwei Vorkommen von “*” gleich belegt werden,
sofern nicht durch Variablen ausdrücklich unterschieden), z.B. Anfrage
Anfrage
SELECT
bibliography.document.topic
FROM
root
WHERE
bibliography.document.author-set.author-last-name = “Ullman”
(für Qualifikation: es muss Pfad vorhanden und Gleichheitsbedingung erfüllt sein)
liefert zusammengesetztes Rückgabe-Objekt
object_return
is [ answer, SET,
{obj_1, obj_2} ]
obj_1
is [ topic,
STRING, “Databases” ]
obj_2
is [ topic,
STRING, “Algorithms” ]
Informationssysteme: Datenmodelle für halb-strukturierte Daten
|
WHERE Condition
{doc_1, doc_2, ... , doc_n } ]
...
© Joachim Biskup, Universität Dortmund
Object
Fetch-Exp ::=
Beispiel
is
root
Fetch-Exp FROM
SELECT
SELECT
FROM
WHERE
liefert:
307
© Joachim Biskup, Universität Dortmund
*.topic
root
*.internal-call-no
(für Qualifikation: solch ein Pfad muss vorhanden sein)
gleiches Rückgabe-Objekt
Informationssysteme: Datenmodelle für halb-strukturierte Daten
Variablen in Pfadausdrücken
Rückgabe von Objekt-Identifikatoren
unterscheiden mehrfach gewünschte Kanten für Beschreibung von Bäumen, z. B. Anfrage
wird durch Abschluss einer Fetch-Expression durch .OID verlangt, z.B. Anfrage
bibliography.document
root
bibliography.*.author-last-name (author_1) = “Ullman”
SELECT
FROM
WHERE
SELECT
FROM
WHERE
and
bibliography.*.author-last-name (author_2) = “Aho”
(für Qualifikation: solch ein Baum
author-set
author-last-name
liefert Rückgabe-Objekt
object_return
is [ answer, SET,
obj_1
is [ document,
authors_2
is [ author-set,
author_2_1 is [ author-last-name,
author_2_2 is [ author-last-name,
author_2_3 is [ author-last-name,
topic_2
is [ topic,
call-number_2 is [ dewey-decimal,
© Joachim Biskup, Universität Dortmund
(für Qualifikation: solch ein Pfad muss vorhanden sein)
muss vorhanden sein)
bibliography
liefert Rückgabe-Objekt
object_return
author-last-name
Informationssysteme: Datenmodelle für halb-strukturierte Daten
17. Juli 2003
309
© Joachim Biskup, Universität Dortmund
•
•
Erweiterung einer Teilsprache von SGML (Standard Generalized Markup Language)
•
unter Entwicklung und Standardisierung durch www consortium, W3C:
www.w3.org/XML/
•
derzeit das kommerziell meist benutzte Datenmodell für halb-strukturierte Daten
•
(mindestens) zwei verschiedene Entwicklungslinien für Produkte:
- eigenständige XML-Systeme
- Integration von XML in vorhandene (objekt-relationale) Systeme (z.B. Oracle)
17. Juli 2003
[ answer,
SET,
{doc_2} ]
Informationssysteme: Datenmodelle für halb-strukturierte Daten
17. Juli 2003
310
Entwicklungslinien für Sprachdefinitionen und Einsatzumgebungen, u.a.:
- DOM, Document Object Model: API für objekt-orientierte Sichten
- SAX, Simple API for XML: ereignisbasierte API mit Rückmeldungen
- namespaces: erlaubt URL-ähnliche Referenzen
-
XSL, Extensible Stylesheet Language: für Transformationen von XML Dokumenten
XPath, XML PathLanguage: einfache Anfragesprache
XPointer, XML Pointer Language: erlaubt erweiterte Navigation mit Referenzen
XLink, XML Linking Language: erlaubt ‘‘symbolische Referenzen’’
XHTML, Extensible HTML: Redefinition von HTML mit Hilfe von XML
- XML Schema: versucht ‘‘schöne Seiten’’ von Schemas (wieder) einzuführen
- RDF, Resource Description Framework:
unterstützt Austauch und ‘‘semantische” Integration zwischen Agenten
•
Informationssysteme: Datenmodelle für halb-strukturierte Daten
is
(doc_2 ist der Objekt-Identifikator des gewählten Teilobjekts
des qualifizierten Objekts)
{obj_1} ]
SET, {authors_2, topic_2, call-number_2 } ]
SET, {author_2_1, author_2_2, author_2_3} ]
STRING, “Aho” ]
STRING, “Hopcroft” ]
STRING, “Ullman” ]
STRING, “Algorithms” ]
STRING, “BR273” ]
Beispiel: XML (Extensible Markup Language)
© Joachim Biskup, Universität Dortmund
bibliography.document.OID
root
*.dewey-decimal
311
- XML Anfragesprachen:
XML-QL,
LOREL (Leightweight Object Repository Language),
XML Query Algebra,
XQuery,
...
...
© Joachim Biskup, Universität Dortmund
Informationssysteme: Datenmodelle für halb-strukturierte Daten
17. Juli 2003
312
Beispiel für XML Dokument (ohne Kopf, mit “Einheitstyp”)
Beispiel für Document Type Definition (DTD)
< bibliography >
<document>
<author-last-name>
<topic>
<internal-call-no>
</document>
<document>
<author-last-name>
<author-last-name>
<author-last-name>
<topic>
<dewey-decimal>
</document>
...
<document>
<single-author>
<topic>
<fiction-call-no>
</document>
Ullman
Databases
25
Aho
Hopcroft
Ullman
Algorithms
BR273
(document)*
>
<!ELEMENT document
( (author-last-name)*
(single-author)?
topic
(internal-call-no)?
(dewey-decimal)?
(fiction-call-no)?
)
>
(#PCDATA)
(#PCDATA)
(#PCDATA)
(#PCDATA)
(#PCDATA)
(#PCDATA)
>
>
>
>
>
>
</author-last-name>
</topic>
</internal-call-no>
</author-last-name>
</author-last-name>
</author-last-name>
</topic>
</dewey-decimal>
<!ELEMENT author-last-name
<!ELEMENT single-author
<!ELEMENT topic
<!ELEMENT internal-call-no
<!ELEMENT dewey-decimal
<!ELEMENT fiction-call-no
einige Sprachelemente für DTDs
*:
+:
?:
( ... ) :
( , ... , ) :
#PCDATA :
Michael Crichton </single-author>
Dinosaurs
</topic>
95
</fiction-call-no>
</bibliography >
© Joachim Biskup, Universität Dortmund
<!ELEMENT bibliography
Informationssysteme: Datenmodelle für halb-strukturierte Daten
17. Juli 2003
313
null oder mehr Vorkommen
ein oder mehr Vorkommen
null oder ein Vorkommen
Reihenfolge-unabhängige “Liste”
(Reihenfolge-abhängige) Liste
“parseable character data” (verschiedene OEM-Typangaben im Beispiel ignoriert)
© Joachim Biskup, Universität Dortmund
Informationssysteme: Datenmodelle für halb-strukturierte Daten
17. Juli 2003
314
17. Juli 2003
316
die Information Retrieval Aufgabe
9 Information Retrieval
9.1 Aufgaben, Anforderungen und Ansätze
Benutzer:
hat jeweils “Informationsbedürfnis”,
System:
verwaltet Dokumente, die “Information enthalten”
Aufgabe:
Benutzer und System versuchen zusammen und gegebenenfalls iterativ,
jeweils genau solche Dokumente zu bestimmen und aufzufinden,
die für das “Informationsbedürfnis” relevant sind
Relevanz: sehr schwieriger Begriff, weil im Allgemeinen
- erst genauer bestimmbar, nachdem Dokument bereits aufgefunden
- nur näherungsweise bestimmbar
- nur (Benutzer-)subjektiv bewertbar
- recht verschiedenartig beschreibbar, z.B.:
im Dokument “enthaltene Information”
- erfüllt
das “Informationsbedürfnis”
- ist ähnlich
dem “Informationsbedürfnis”
- enthält Teil
des “Informationsbedürfnisses”
- ist Instanz (Beispiel) für das “Informationsbedürfnis”
- ist spezieller als
das “Informationsbedürfnis”
- hat geringen Abstand von dem “Informationsbedürfnis”
- ist nicht unabhängig von dem “Informationsbedürfnis”
- ...
© Joachim Biskup, Universität Dortmund
Informationssysteme: Information Retrieval - Aufgaben, Anforderungen und Ansätze
17. Juli 2003
315
© Joachim Biskup, Universität Dortmund
Informationssysteme: Information Retrieval - Aufgaben, Anforderungen und Ansätze
das Such-Paradox
•
wie kann man etwas finden, von dem man gar nichts weiß?
- was man weiß, braucht man nicht (wieder)zufinden!
- was man nicht weiß, kann man auch nicht (wieder)finden!
•
die Auflösung des Paradoxes für Datenmodelle mit strukturierten Daten:
Fundierung mit Hilfe von Metaschema und Schemas:
Ostereiersuchen im Wald
•
•
•
•
- “Verstecken” (Speichern) und Suche
finden auf der gemeinsamen Grundlage einer vorausgehenden Verständigung statt,
nämlich einem formalen Schema
und der zugrunde liegenden Modellierung mit Hilfe einer Ontologie:
Speicherer: “versteckt” Konstantenzeichen unter bekanntem Schema
Anfrager: sucht Konstantenzeichen unter bekanntem Schema
•
•
•
•
•
- wenn man das Schema weiß,
kann man die (bislang unbekannten) “versteckten” Konstantenzeichen finden
welche Fundierung ohne Schema kann man für Information Retrieval finden?
© Joachim Biskup, Universität Dortmund
Informationssysteme: Information Retrieval - Aufgaben, Anforderungen und Ansätze
17. Juli 2003
317
die Stecknadeln im Heuhaufen
•
Stecknadeln und Heu(fasern) sind verschieden
•
fast alles ist Heu
vollständiges Suchen ist zu aufwändig,
Laufzeitkomplexität linear in #(Heu),
statt logarithmisch in #(Heu) oder linear in #(Stecknadel)
•
Obermengen von Stecknadeln und Heu
sind trennbar aufgrund von “äußeren Merkmalen”, z.B.:
- Magnetismus: zieht alles (magnetisch) Metallene aus Nichtmetallischem heraus,
also auch Stecknadeln aus Heu
Iteration
318
“Ähnlichkeit”,...
System
...
Relevanz
Doc_n
Formalisierung
Retrieval-Anfrage
bezüglich
(äußerer) Merkmale
Algorithmisierung:
vernichtet zumindest das Heu,
lässt auch Stecknadeln übrig
Abstraktion
der “enthaltenen Information”
Dokument-Merkmal-Strukturen,
Suchhilfen,
...
Qualitätsbeurteilung:
Übereinstimmung zwischen
einerseits dem Gesuchten:
andererseits dem Gefundenen:
einfachere Restaufgabe: iterierte Suche in nunmehr getrennter Obermenge
Informationssysteme: Information Retrieval - Aufgaben, Anforderungen und Ansätze
17. Juli 2003
Doc_1
Doc_1
“Informationsbedürfnis”
Anforderung:
•
© Joachim Biskup, Universität Dortmund
Informationssysteme: Information Retrieval - Aufgaben, Anforderungen und Ansätze
Benutzer
zufälliges Suchen ist zwecklos,
Erfolgswahrscheinlichkeit zu gering: #(Stecknadeln) / #(Heu)
- Feuer:
© Joachim Biskup, Universität Dortmund
eine einfache Modellierung von Information Retrieval
•
•
•
•
- wenn man das Metaschema weiß,
kann man das (bislang unbekannte) Schema finden
•
•
(auch unbekannte) Ostereier sind erkennbar verschieden
von allen anderen Dingen im Wald (so viel weiß schon jedes Kind)
Ostereier “verraten sich” durch äußere Merkmale wie bunte Farben
Ostereier sind selten (fast alles im Wald ist kein Osterei)
Ostereier sind tatsächlich vorhanden (hoffentlich jedenfalls, so dass die Suche lohnt)
irgendwo muss man anfangen zu suchen (notfalls zufällig anfangen)
wo man ein Osterei findet, könnten nahe bei auch noch mehr Ostereier sein
auch bei schneller grober Suche kann man schon einmal ein Osterei finden
um alle Ostereier zu finden, muss man den gesamten Wald durchsuchen
wenn man genug Ostereier hat, kann man auch vorzeitig aufhören
die Eltern können auch Hinweise geben, etwa “heiß” und “kalt”
Kinder können die “Versteckmethoden” der Eltern lernen
...
17. Juli 2003
319
© Joachim Biskup, Universität Dortmund
Relevanz enthaltener Information für Informationsbedürfnis
“Ähnlichkeit’’ der Merkmale mit Anfrage
Informationssysteme: Information Retrieval - Aufgaben, Anforderungen und Ansätze
17. Juli 2003
320
Qualitätsbeurteilung bezüglich (im Allgemeinen fiktiver) Relevanz
falls
ALL
=
Menge aller Dokumente
REL
=
GEF
=
Menge der für Informationsbedürfnis relevanten Dokumente, “zu liefern”
(im Allgemeinen nicht tatsächlich bestimmbar)
Menge der für Retrieval-Anfrage als ähnlich gefundenen Dokumente, “geliefert”
(von Benutzer nachträglich “beurteilbar” bezüglich Relevanz)
dann
GEF ∩ REL
= “gut geliefert”
: gefunden und relevant
GEF \ REL = “zu viel geliefert” : gefunden, aber nicht relevant
REL \ GEF = “zu wenig geliefert” : relevant, aber nicht gefunden
(Benutzer-beurteilbar)
(Benutzer-beurteilbar)
(nicht bestimmbar)
falls
ALL
REL
GEF
“gut”
Informationssysteme: Information Retrieval - Aufgaben, Anforderungen und Ansätze
17. Juli 2003
321
Recall-Precision-Paare
Precision
REL ∩ GEF
p = ---------------------------------GEF
Verhältnis von “gut”
zu “geliefert”
Recall
REL ∩ GEF
r = ---------------------------------REL
Verhältnis von “gut”
zu “zu liefern”
versus
“geliefert”
(Benutzer-beurteilbar)
Recall
GEF ∩ REL
r = ---------------------------------- : “gut”
REL
versus
“zu liefern”
(nicht bestimmbar)
Fallout
GEF – REL
f = -------------------------------- : “zu viel” versus “nicht zu liefern”
ALL – REL
bester Fall, jedes gefundene Dokument ist relevant:
- gefunden enthält stets nur relevante Dokumente, also stets:
Precision = 1
- gefunden enthält anfänglich kein Dokument, also anfänglich: Recall
=0
- gefunden enthält schließlich genau die relevanten Dokumente, also schließlich:
Recall
=1
© Joachim Biskup, Universität Dortmund
Informationssysteme: Information Retrieval - Aufgaben, Anforderungen und Ansätze
17. Juli 2003
322
- kurzer Präfix enthält “eher vorwiegend relevante” Dokumente, aber noch nicht alle relevanten:
Precision “eher hoch”, aber mit Länge des Präfixes abnehmend,
Recall “eher niedrig”, aber mit Länge des Präfixes zunehmend
continue := true;
i := select_a_first_object;
gefunden := {};
while continue do
if query matches doc[i] then insert(doc[i], gefunden);
i := select_another_object;
continue := evaluate_achievements(gefunden, i, ... )
od.
Informationssysteme: Information Retrieval - Aufgaben, Anforderungen und Ansätze
GEF ∩ REL
Precision p = ---------------------------------- : “gut”
GEF
häufig tatsächlich vorliegender Fall:
gefundene Dokumente werden vom System mit einem Rang bewertet und
gemäß der Bewertung absteigend sortiert ausgegeben;
gefundene Dokumente mit hohem Rang “sind eher relevant”,
gefundene Dokumente mit niedrigem Rang “sind eher nicht relevant”;
es wird nur ein Präfix (Anfangsstück der gesamten sortierten Ausgabe) tatsächlich gezeigt
einfaches Muster für Suchverfahren:
© Joachim Biskup, Universität Dortmund
(Benutzer-beurteilbar)
(Benutzer-beurteilbar)
(nicht bestimmbar)
auch Precision allenfalls empirisch, Benutzer-abhängig und näherungsweise beurteilbar:
“Relevanz” ist nur fiktiv definiert als die
gewünschte, aber tatsächlich nicht vollständig bekannte Beziehung
REL: zu finden
© Joachim Biskup, Universität Dortmund
= “gut geliefert”
: gefunden und relevant
= “zu viel geliefert” : gefunden, aber nicht relevant
= “zu wenig geliefert” : relevant, aber nicht gefunden
wichtige Verhältnisse:
“zu viel”
“zu
wenig”
Menge aller Dokumente
Menge der für Informationsbedürfnis relevanten Dokumente, “zu liefern”
Menge der für Retrieval-Anfrage als ähnlich gefundenen Dokumente, “geliefert”
dann
GEF ∩ REL
GEF \ REL
REL \ GEF
GEF: gefunden
ALL
=
=
=
- langer Präfix enthält “eher auch nicht relevante” Dokumente, aber insgesamt mehr relevante:
Precision “eher niedrig”
Recall “eher hoch”
dann Wechselwirkungen zwischen Benutzer-Interessen und Benutzer-Aufwand:
•
Benutzer-Interesse: möglichst viele (alle) relevante(n) Dokumente
widerstreitender Benutzer-Aufwand:
viele nicht relevante Dokumente “per Hand herausfinden”
(100%)
(0%)
(100%)
17. Juli 2003
323
•
Benutzer-Interesse: möglichst ausschließlich relevante Dokumente
widerstreitender Benutzer-Aufwand:
Erschwernis bei der Aufgabe, die dem “Informationsbedürfnis” zugrunde liegt
© Joachim Biskup, Universität Dortmund
Informationssysteme: Information Retrieval - Aufgaben, Anforderungen und Ansätze
17. Juli 2003
324
Beispiel für Recall-Precision Paare bei Rang-sortierter Ausgabe
x = relevant
(für REL = 5 )
Recall
Precision
GEF ∩ REL
GEF ∩ REL
---------------------------------REL
GEF ∩ REL
---------------------------------GEF
x
1
0.2
1.00
x
2
0.4
1.00
2
0.4
0.67
3
0.6
0.75
3
0.6
0.60
4
0.8
0.67
7
4
0.8
0.57
8
4
0.8
0.50
Dokumentnummer
GEF
588
1
589
2
576
3
590
4
986
5
592
6
984
988
“gut”
x
x
578
9
4
0.8
0.44
985
10
4
0.8
0.40
103
11
4
0.8
0.36
591
12
4
0.8
0.33
772
13
5
1.0
0.38
990
14
5
1.0
0.36
© Joachim Biskup, Universität Dortmund
x
Informationssysteme: Information Retrieval - Aufgaben, Anforderungen und Ansätze
17. Juli 2003
9.2 einige grundlegende Techniken
325
Merkmale
•
•
Abstraktion der in einem Dokument “enthaltenen” Information:
Menge von Merkmalen
•
Extraktion von Merkmalen:
- “per Hand” oder (ansatzweise) automatisch
- “auf Vorrat” (bei Speicherung oder nachträglich)
oder auch erst “bei Bedarf” (bei Anfragen)
Informationssysteme: Information Retrieval - einige grundlegende Techniken
17. Juli 2003
326
Retrieval-Anfragen:
Syntax: Boolesche Kombination von (normalisierten) Merkmalen
Beispiel:
Dokument
Merkmale (Schlagworte)
1
2
3
Schema, halb-strukturiert, navigieren
Schema, relational, Algebra, Kalkül, SQL, anfragen
relational, anfragen
Anfrage
Schema
Schema and relational
relational and ( SQL or anfragen )
relational and (not SQL )
Schema or relational or SQL
Normalisierung von Merkmalen:
Beispiele: - grammatische Grundform
- Skalierung bezüglich eines “Einheitsmaßes”
- Transposition in “Einheitstonleiter”
- ...
© Joachim Biskup, Universität Dortmund
Informationssysteme: Information Retrieval - einige grundlegende Techniken
Semantik als “Ähnlichkeit” zwischen Anfrage und abstrahierten Dokumenten:
- Erfüllung (Wahrheit)
der Merkmalskombination aus Retrieval-Anfrage
bezüglich der extrahierten Merkmalsmenge eines Dokuments
- alle in diesem Sinne ähnlichen Dokumente werden geliefert
Beispiele: - Schlagworte (key words)
- geometrische Muster (für Bild-Dokumente)
- “Melodie-Themen” (für Musik-Dokumente)
- “Icons” (für Multimedia-Dokumente)
- ...
•
© Joachim Biskup, Universität Dortmund
17. Juli 2003
327
© Joachim Biskup, Universität Dortmund
Rückgabe-Dokumente
1, 2
2
2, 3
3
1, 2, 3
Informationssysteme: Information Retrieval - einige grundlegende Techniken
17. Juli 2003
328
•
Bewertung mit Rängen:
Berechnung eines “Grades der Erfüllung”
•
für jedes mögliche oder vorkommende einzelne Merkmal
wird die Menge (Liste) der erfüllenden Dokumente unterhalten
Beispiel: Anzahl der erfüllten Disjunkte in Boolesch-normalisierter Anfrage
Beispiel mit Mengen:
Dokument
Merkmale (Schlagworte)
1
2
3
Schema, halbstrukturiert, navigieren
Schema, relational, Algebra, Kalkül, SQL, anfragen
relational, anfragen
normalisierte Anfrage
1
2
3
Schema
Schema and relational
(relational and SQL) or (relational and anfragen )
relational and (not SQL )
Schema or relational or SQL
1
0
0
0
1
1
1
2
0
3
0
0
1
1
1
© Joachim Biskup, Universität Dortmund
Informationssysteme: Information Retrieval - einige grundlegende Techniken
17. Juli 2003
Algebra
anfragen
halb-strukturiert
Kalkül
navigieren
relational
Schema
SQL
329
Auswertung:
and
( SQL
or
anfragen
set(relational) ∩set ( set(SQL) ∪set set(anfragen)
= {2, 3}
∩set ( {2}
∪set {2, 3}
= {2, 3}
© Joachim Biskup, Universität Dortmund
relational
Auswertung:
bit(relational) ∩bit ( bit(SQL) ∪bit bit(anfragen)
0
= 1
1
and
( SQL
∩bit (
0
1
0
or
∪bit
anfragen
0
1
1
•
)
)
)
Hauptklassen:
A.
B.
C.
D.
E.
F.
G.
H.
I.
J.
K.
Unter-Unterklassen:, z.B.:
H.3
H.3.0
H.3.1
H.3.2
H.3.3
H.3.4
H.3.5
H.3.6
H.3.m
)
)
)
aus Effizienzgründen: Komprimierung der (im Allgemeinen “dünnen”) Bitlisten
Informationssysteme: Information Retrieval - einige grundlegende Techniken
Dok_2
1
1
0
1
0
1
1
1
Dok_3
0
1
0
0
0
1
0
0
17. Juli 2003
330
besondere Merkmale: inhaltlich zusammengehörige, hierarchische Klassen
auffassbar als Teil einer anwendungsbezogenen Ontologie,
Beispiel: ACM Computing Reviews Classification:
0
= 1
1
© Joachim Biskup, Universität Dortmund
Dok_1
0
0
1
0
1
0
1
0
Informationssysteme: Information Retrieval - einige grundlegende Techniken
Beispiel mit Merkmals-Bitlisten:komponenten-weise ausgeführte Bit-Operationen
Anfrage:
2
2, 3
1
2
1
2,3
1, 2
2
hierarchische Klassifikation
Beispiel mit Mengen: Mengenoperationen
relational
Algebra
anfragen
halb-strukturiert
Kalkül
navigieren
relational
Schema
SQL
Beispiel mit Merkmals-Bitlisten:
Auswertung von Retrieval-Anfragen effizient implementieren
durch Operationen auf der Dokument-Merkmal-(Zugriffs)Struktur
Anfrage:
Invertierung
Dokument-Merkmal-(Zugriffs)Struktur:
17. Juli 2003
331
© Joachim Biskup, Universität Dortmund
General Literature
Hardware
Computer Systems Organization
Software
Data
Theory of Computation
Mathematics of Computing
Information Systems
Computing Methodologies
Computing Applications
Computing Milieux
Information Storage and Retrieval
General
Content Analysis and Indexing
Information Storage
Information Search and Retrieval
System and Software
Online Information Systems
Library Automation
Miscellaneous
Informationssysteme: Information Retrieval - einige grundlegende Techniken
17. Juli 2003
332
•
Extraktion:
als Klassifikation, meistens “per Hand”
•
Normalisierung:
vermöge vorgegebener Klassenbezeichner
•
Retrieval-Anfragen:
wie allgemein bei Merkmalen,
mit Berücksichtigung (Expansion) der Hierarchie
flaches Clustering
•
besondere Merkmale:
mutmaßlich inhaltlich zusammengehörige, disjunkte Klassen
Beispiel: Clustering gemäß Verweisstrukturen von Web-Seiten
•
Invertierung:
wie allgemein bei Merkmalen,
mit Berücksichtigung (Expansion) der Hierarchie
•
Dokumente:
Web-Seiten
Verweisstruktur:
Web-Seite A enthält (textuell) einen Verweis (als URL) auf Web-Seite B
Beobachtungen:
- manche Web-Seiten liegen im Zentrum vieler Verweise
- manche Web-Seiten verweisen wechselseitig aufeinander
Annahme:
- Verweise deuten daraufhin,
dass enthaltene “Informationsgehalte zusammengehörig” sind,
so dass betroffene Web-Seiten als “ähnlich” behandelt werden können
algorithmische Clusterbildung, z.B. mit folgender Heuristik:
- fasse Web-Seiten eines vollständigen Unter-Verweisgraphen zu einem Cluster zusammen
- falls eine Web-Seite ausschließlich in genau ein Cluster verweist,
so füge sie diesem Cluster hinzu
- ...
•
Retrieval-Anfragen: liefern mit einer (auf andere Weise) gefundenen Web-Seite
(ggf. erst auf Anforderung) auch die anderen Web-Seiten des Clusters
© Joachim Biskup, Universität Dortmund
Informationssysteme: Information Retrieval - einige grundlegende Techniken
17. Juli 2003
333
Thesaurus
•
•
© Joachim Biskup, Universität Dortmund
•
17. Juli 2003
334
terminologische Kontrolle der Benennungen durch
- linguistische Normalisierung
(Beispiel: grammatische Grundform, Gleichsetzung von Verb und Substantiv, ... )
eine geordnete Zusammenstellung von Begriffen
mit ihren natürlichsprachlichen Benennungen
- Erfasung von Synonymen
(syntaktisch verschiedene Benennungen für semantisch gleiche Konzepte,
Schreibweisenvarianten, unterschiedliche Sprachstile, ... )
auffassbar als operationalisierter Ausschnitt
des “semiotischen Dreiecks” Wirklichkeit-Begriffsraum-Sprache
als Teil einer anwendungsbezogenen Ontologie:
- Kennzeichnung von Homonymen und Polysemen
(syntaktisch gleiche Benennungen für semantisch verschiedene Konzepte,
bei Homonymen: von Betonung beim Sprechen abhängig)
Wirklichkeit:
- Festlegung von Vorzugsbenennungen (Deskriptoren)
aus einfachen Elementen wohlstrukturiert
zusammengesetzte Erscheinungen
•
bedeuten
Informationssysteme: Information Retrieval - einige grundlegende Techniken
vertreten
Darstellung von Beziehungen zwischen Begriffen
(bereits unabhängig von Benennungen, im Hinblick auf vertretene Wirklichkeit)
- Oberbegriff-Unterbegriff
Sprache:
benennen
Ausdrücke und Sätze
Raum der Begriffe und
Gesetze der Logik
- hierarchische Klassifikation
- “Ähnlichkeit”
- ...
© Joachim Biskup, Universität Dortmund
Informationssysteme: Information Retrieval - einige grundlegende Techniken
17. Juli 2003
335
© Joachim Biskup, Universität Dortmund
Informationssysteme: Information Retrieval - einige grundlegende Techniken
17. Juli 2003
336
•
strukturierte Darstellung eines Thesaurus
z.B. als (relationale oder objekt-orientierte) Formalisierung
folgender grober Modellierung (durch ein ER-Diagramm):
BegriffsID
Vorzugsbenennung
Begriff
•
Klasse
Instanz_von
Unterbegriff
Begriffshierarchie
VerwaltungsInfo
Definitionstext
(Deskriptor)
Oberbegriff
9.3 Modelle für Information Retrieval
Oberklasse
Benennung
Synonym
Ausdruck
Unterklasse
Klassenhierarchie
Zugriffsstrukturen für Thesaurus, z.B.:
- Index für alphabetischen Zugriff zu Ausdrücken (oder Vorzugsbenennungen)
- Liste für Klassen-systematischen Zugriff zu Vorzugsbenennungen
- KWIC (keyword in context) als Index für kontextbezogenen Zugriff zu Vorzugsbenennungen
- ...
© Joachim Biskup, Universität Dortmund
Informationssysteme: Information Retrieval - einige grundlegende Techniken
17. Juli 2003
337
© Joachim Biskup, Universität Dortmund
Modelle mit Merkmals-Vektoren
zugrunde liegende Abstraktion
- mehrdimensionale (heterogene) Vektoren mit Merkmalen (oder Merkmalsmengen)
- Abstandsmaß zwischen Vektoren
•
Dokument-Abstraktion:
Zuordnung von Dokumenten (Objekten) zu Vektoren,
Dokument-Vektoren bilden (im Allgemeinen dünne) Teilmenge des Gesamtraums
•
Informationsbedürfnis-Formalisierung:
Bildung eines Vektors
•
338
Relevanz als (fiktive) Wahrscheinlichkeit:
bei gegebener Anfrage q: jedem Dokument d wird zugeordnet die (fiktive) Wahrscheinlichkeit
Prob(Rq,d) seiner Relevanz für das durch q formalisierte Informationsbedürfnis
•
•
17. Juli 2003
ein (stark vereinfachtes) wahrscheinlichkeitstheoretisches Modell
•
•
Informationssysteme: Information Retrieval - Modelle für Information Retrieval
Entscheidungssituation für ein einzelnes Dokument:
Fall 1: Dokument relevant
Fall 2: Dokument relevant
Fall 3: Dokument nicht relevant
Fall 4: Dokument nicht relevant
•
grundlegende Anfragetypen:
- bestimme “nächsten Nachbarn”
(des Anfrage-Vektors unter vorkommenden Dokument-Vektoren)
und
und
und
und
Dokument geliefert
Dokument nicht geliefert
Dokument geliefert
Dokument nicht geliefert
:
:
:
:
“gut”
Verlust lzuwenig
Verlust lzuviel
richtig
Minimierung des Verlusts bei Entscheidung über Lieferung:
Fall 1+3:
Dokument d liefern bringt erwarteten Verlust:
( 1 – Prob ( R q ,d ) ) ⋅ l zuviel
Fall 2+4:
Dokument d nicht liefern bringt erwarteten Verlust:
Prob ( R q ,d ) ⋅ l zuwenig
also:
Dokument d liefern
gdw
Prob ( R q ,d ) ⋅ l zuwenig > ( 1 – Prob ( R q ,d ) ) ⋅ l zuviel
- bestimme “δ-Umgebung”
(des Anfrage-Vektors bezüglich vorkommender Dokument-Vektoren)
gdw
mehrdimensionale Such-(Zugriffs-)Strukturen für “Regionen”
- (approximative) Suche auf erfolgversprechende Regionen begrenzen
l zuviel
Prob ( R q ,d )
------------------------------------- > -----------------1 – Prob ( R q ,d ) l zuwenig
gdw
l zuviel
Prob ( R q ,d ) > --------------------------------------l zuviel + l zuwenig
© Joachim Biskup, Universität Dortmund
Informationssysteme: Information Retrieval - Modelle für Information Retrieval
17. Juli 2003
339
© Joachim Biskup, Universität Dortmund
Informationssysteme: Information Retrieval - Modelle für Information Retrieval
17. Juli 2003
340
•
Retrieval-Antwort für q:
alle Dokumente d mit
l zuviel
Prob ( R q ,d ) > --------------------------------------l zuviel + l zuwenig
nach Wahrscheinlichkeiten absteigend sortiert
•
Teil IV
Schätzung der fiktiven Wahrscheinlichkeiten:
“unbekanntes” event:
Relevanz eines Dokuments d
“beobachtbare” condition: Vorkommen eines Merkmals x
(im Allgemeinen zusammengesetzt)
Effizienz (in relationalen Systemen)
dann ersetzen:
statt
“Relevanz eines Dokuments d’’, d.h. Prob(Rq,d)
einfacher “Relevanz eines Dokuments mit beobachtbarem Merkmal x’’: Prob(Rq,x)
empirisch anhand von Stichproben näherungsweise bestimmen:
•
Prob(Rq,x)
ersatzweise: anstelle von Prob(Rq,d) andere von x abhängige Parameter schätzen
- man verwendet typischerweise den Satz von Bayes:
Prob ( event condition ) ⋅ Prob ( condition ) = Prob ( condition event ) ⋅ Prob ( event )
- man sichert Invarianz der Rangordnung
© Joachim Biskup, Universität Dortmund
Informationssysteme: Information Retrieval - Modelle für Information Retrieval
17. Juli 2003
341
© Joachim Biskup, Universität Dortmund
Informationssysteme
17. Juli 2003
342
Verwirklichung der grundlegenden relationalen Operationen
Entwurfsumgebung
10 Zugriffsstrukturen und Verbund-Algorithmen
Arbeitsplatz- . . .
umgebung
Netzumgebung
Programmier- . . .
umgebung
Vereinbarungen
10.1 Anforderungen an die interne Schicht
..
.
Sicht i
Schema
Datenmanipulationssprache (DML)
Änderungen
Sprachanalyse
EinsatzSchnittstellen
eingebettet
interaktiv, selbständig
Datendefinitionssprache (DDL)
...
Anfragen
Antworten
Erklärungen
InformationssystemSchnittstelle
..
.
konzeptionelles
Schema
internes Schema
konzeptionelle Schicht
(mengenorientiert,
mit Optimierung)
große Mengen von Daten
dauerhaft und
Aufbereitung
von
Antworten
Relationen (Klassen),
Tupel (Objekte)
verlangt geeignete
Datenstrukturen und Algorithmen,
um insbesondere:
Transaktionsverwaltung
Zugriffsstrukturen,
Tupelidentifikatoren
(Surrogate), Datensätze
MengenSchnittstelle
effizient zu verwalten, d.h.
Anfragen und Änderungen zu bearbeiten
TupelSchnittstelle
interne Schicht
(Datensatz-orientiert)
(virtueller) flüchtiger und dauerhafter Speicher
Segmente, Blöcke; Einrichten und Freigeben, Lesen und Schreiben
SpeicherSchnittstelle
GeräteSchnittstelle
...
© Joachim Biskup, Universität Dortmund
Informationssysteme: Zugriffsstrukturen und Verbund-Algorithmen - Anforderungen an die interne Schicht
17. Juli 2003
343
© Joachim Biskup, Universität Dortmund
Speichergeräte
Informationssysteme: Zugriffsstrukturen und Verbund-Algorithmen - Anforderungen an die interne Schicht
17. Juli 2003
344
Dauerhaftigkeit
Bestimmung von Adressen aus Tupelidentifikatoren
ein Tupel kann auf drei Weisen identifiziert werden:
• aus der Sicht des Benutzers durch seine Schlüsselwerte
• auf der Ebene der Speichermedien durch seine Adresse
• auf der Ebene des Datenbanksystems durch einen Tupelidentifikator, TID
r
Übersetzungstabelle für
Relation mit Nummer r :
Blocknummer
1
2
.
.
.
n
.
.
.
.
.
.
b
.
.
.
b
. . .
Block mit Nummer b, im
allgemeinen auf
Magnetplattenspeicher :
bei benutzergesteuerten Änderungen der Schlüsselwerte
bei Verlagerungen innerhalb der Speichermedien
zwischen zwei Sitzungen eines Benutzers
bei Systemzusammenbrüchen
Informationssysteme: Zugriffsstrukturen und Verbund-Algorithmen - Anforderungen an die interne Schicht
n
r
während der Lebensdauer eines Tupels, d.h.
von der benutzergesteuerten Eingabe bis zum benutzergesteuerten Entfernen,
bleibt ein Tupelidentifikator stets invariant und dauerhaft, insbesondere also:
© Joachim Biskup, Universität Dortmund
Relationennummer
Tupelidentifikator :
ein Tupelidentifikator wird bei der erstmaligen Eingabe eines Tupels erzeugt:
• automatisch durch das System
• im Allgemeinen für den Benutzer unsichtbar
• systemweit eindeutig
• über die Zeit unveränderbar
• mit dem eigentlichen Tupel stets “verbunden”
•
•
•
•
(fortlaufende)
Tupelnummer
17. Juli 2003
345
© Joachim Biskup, Universität Dortmund
. . .
Verwaltungsteil
a
Tupelwerte
Informationsteil
( n, r ) : a
Informationssysteme: Zugriffsstrukturen und Verbund-Algorithmen - Anforderungen an die interne Schicht
17. Juli 2003
346
17. Juli 2003
348
Effizienz für Anfragen und Änderungen
stark abhängig von der effizienten Umrechnung der drei Identifikationsgrößen eines Tupels:
- benutzersichtbare Schlüsselwerte
- Tupelidentifikator
- Speicheradresse
10.2 Zugriffsstrukturen zur Steigerung der Effizienz
genauer: abhängig vom Aufwand der folgenden Operationen der internen Schicht:
•
schlüsselbezogenes Suchen
Umwandlung “benutzersichtbare Schlüsselwerte |→ Tupelidentifikator (Speicheradresse)”
•
physisches Suchen und Transport
Umwandlung “Tupelidentifikator |→ Speicheradresse”,
mitsamt gegebenenfalls Transport des Tupels vom Hintergrundspeicher in den Hauptspeicher
•
inhaltsbezogenes Suchen
Bestimmung “(benutzersichtbare) Attributwerte |→ Tupelidentifikator (Speicheradresse)”,
um Tupel bzw. Folgen (insbesondere Paare) von Tupeln aufzufinden
auf Grund elementarer Eigenschaften ihrer Werte
(Gleichheit oder Ungleichheit oder gegebenenfalls auch Größenvergleich),
etwa für die A=c-Selektion bzw. für den natürlichen Verbund
•
Relationendurchlauf
systematischer vollständiger Durchlauf einer Relation
© Joachim Biskup, Universität Dortmund
Informationssysteme: Zugriffsstrukturen und Verbund-Algorithmen - Anforderungen an die interne Schicht
17. Juli 2003
347
© Joachim Biskup, Universität Dortmund
Informationssysteme: Zugriffsstrukturen und Verbund-Algorithmen - Zugriffsstrukturen zur Steigerung der Effizienz
Zugriffsstrukturen
B*-Baum als Index
Verwendung: - Index für schlüsselbezogenes Suchen
- sequentielle Liste für einen systematischen Durchlauf der TIDs einer Relation
• Ziele: Effizienzanforderungen erfüllen beim
schlüsselbezogenen und inhaltsbezogenen Suchen sowie beim Relationendurchlauf
Voraussetzung: auf der Domäne der Schlüsselwerte ist eine lineare Ordnung definiert
• Ansatz: neben den eigentlichen Relationen mit ihren Tupeln (primäre Information)
speichert man auch Hinweise zum Auffinden dieser Tupel (sekundäre Information)
Eigenschaften:
• teil-ausgeglichener, geordneter Baum, dessen Blätter alle die gleiche Höhe besitzen
• ein Blattknoten enthält eine geordnete Folge von Paaren
< (benutzersichtbarer) Schlüsselwert, TID >
• zusätzlich werden die Blattknoten untereinander doppelt verkettet
• durchläuft man alle Blätter von links nach rechts,
so erhält man die sortierte Folge (ohne Wiederholung)
aller (derzeit) vorhandenen Schlüsselwerte
• ein Elternknoten enthält eine geordnete Folge der Art
Verweis auf Kind, Schlüsselwert, Verweis auf Kind, ... , Schlüsselwert, Verweis auf Kind
• durchläuft man alle Knoten in inorder-ähnlicher Weise,
so erhält man eine sortierte Folge (mit Wiederholung)
aller (derzeit) vorhandenen Schlüsselwerte
• der Baum wächst von den Blättern zur Wurzel,
indem ein voller Knoten geteilt wird und
die entsprechenden Verweise im Elternknoten eingetragen werden
• die Größe eines Knotens ist im Allgemeinen die
für den Hintergrundspeicher verwendete Blockgröße
• Wechselwirkungen:
- entstehende Redundanz vergrößert den Speicheraufwand,
- verringert im Mittel erheblich den Zeitaufwand für Anfragen
- der Zeitaufwand für das Einfügen erhöht sich, aber
der Zeitaufwand für das Entfernen verringert sich
gängige Zugriffsstrukturen:
• sequentielle Listen, etwa durch Felder oder Verkettungen verwirklicht,
zur Unterstützung von Relationendurchläufen
• Indexe,
etwa als B*-Bäume oder durch Hash-Verfahren verwirklicht,
zur Unterstützung des Suchens in einer Relation
• Links,
zur Unterstützung des gleichzeitigen Suchens in mehreren Relationen
• Hashfunktionen,
zur verkleinernden Filterung einer Relation im Hinblick auf eine andere
© Joachim Biskup, Universität Dortmund
Informationssysteme: Zugriffsstrukturen und Verbund-Algorithmen - Zugriffsstrukturen zur Steigerung der Effizienz
17. Juli 2003
349
Beispiel für einen B*-Baum
Informationssysteme: Zugriffsstrukturen und Verbund-Algorithmen - Zugriffsstrukturen zur Steigerung der Effizienz
mitglied
Name
Ort und gegebenenfalls weitere Attribute
interne Relationennummer:
fortlaufende Tupelnummern:
Knotengröße:
2
dezimal dreistellig
höchstens 7 Einträge (Attributwert, TID oder Verweis)
Reihenfolge der Tupeleingaben:
a.
b.
c.
d.
e.
f.
g.
a. Einfügung [meier, dortmund]:
b. Einfügung [müller, bochum]:
dort(mund)
boch(um)
bonn
aach(en)
dort(mund)
dort(mund)
duis(burg)
<bau,0072>, <bil,0052>, <bre,0062>
© Joachim Biskup, Universität Dortmund
Informationssysteme: Zugriffsstrukturen und Verbund-Algorithmen - Zugriffsstrukturen zur Steigerung der Effizienz
<mei,0012>, <mül,0022>
<mei,0012>, <mül,0022>, <sch,0032>
d. Einfügung [esser, aachen]:
mei
<ess,0042>, <mei,0012>
mei
<ess,0042>, <mei,0012>
350
<mei,0012>
c. Einfügung [schmidt, bonn]:
sich ergebender B*-Baum:
bre
17. Juli 2003
schrittweiser Aufbau des Beispiels, Einfügungen a-e
Relation:
Schlüsselattribut:
Eigenschaftsattribut:
meier
müller
schmidt
esser
biller
brenner
bauer
© Joachim Biskup, Universität Dortmund
e. Einfügung [biller, dortmund]:
<mül,0022>, <sch,0032>
17. Juli 2003
351
mei
<bil,0052>, <ess,0042>, <mei,0012>
© Joachim Biskup, Universität Dortmund
<mül,0022>, <sch,0032>
Informationssysteme: Zugriffsstrukturen und Verbund-Algorithmen - Zugriffsstrukturen zur Steigerung der Effizienz
<mül,0022>, <sch,0032>
17. Juli 2003
352
schrittweiser Aufbau des Beispiels, Einfügungen f-g
Index bezüglich eines Nichtschlüsselattributs
zur Unterstützung inhaltsbezogener Suche
als B*-Baum mit
Blattknoten der Form:
< (benutzersichtbarer) Attributwert, Folge von TIDs >
Beispiel für das Nichtschlüsselattribut Ort
•
mei
•
<bil,0052>, <ess,0042>, <mei,0012>
<mül,0022>, <sch,0032>
•
e.
f. Einfügung [brenner, dortmund]:
a.
bre
boch
<dort,0012>
mei
<aach,0042>,<boch,0022>
b.
<bil,0052>, <bre,0062>
<ess,0042>, <mei,0012>
<bonn,0032>,<dort,0012,0052>
<boch,0022>,<dort,0012>
f.
<mül,0022>, <sch,0032>
boch
c.
<boch,0022>,<bonn,0032>,<dort,0012>
<aach,0042>,<boch,0022>
g. Einfügung [bauer, duisburg]:
bre
g.
boch
d
mei
boch
<aach,0042>,<boch,0022>
© Joachim Biskup, Universität Dortmund
<ess,0042>, <mei,0012>
Informationssysteme: Zugriffsstrukturen und Verbund-Algorithmen - Zugriffsstrukturen zur Steigerung der Effizienz
<bonn,0032>,<dort,0012,0052,0062>
<duis,0072>
<mül,0022>, <sch,0032>
17. Juli 2003
353
Links
© Joachim Biskup, Universität Dortmund
Informationssysteme: Zugriffsstrukturen und Verbund-Algorithmen - Zugriffsstrukturen zur Steigerung der Effizienz
17. Juli 2003
354
Beispiel: gemeinsamer B*-Baum für mitglied und entfernung
•
für zwei (oder auch mehr) Relationen jeweils
einen gemeinsamen Index bezüglich der gleichen Domäne (Attribut) bereitstellen
•
B*-Bäume mit Einträgen in die Blattknoten folgender Art:
< (benutzersichtbarer) Attributwert;
Folge von TIDs für erste Relation;
Folge von TIDs für zweite Relation >
•
dort
<bonn,0032>,<dort,0012>
<aach,0042>,<boch,0022>
<bau,0072>, <bil,0052>, <bre,0062>
<bonn,0032>,<dort,0012,0052,0062>
erste Relation:
Schlüsselattribut:
Eigenschaftsattribut:
Instanz:
mitglied
Name
Ort und gegebenenfalls weitere Attribute
wie oben
zweite Relation:
Schlüsselattribut:
Eigenschaftsattribut:
Instanz:
entfernung
Ort
Weglänge (von Hildesheim)
h.
dort
235
i.
boch
250
j.
bonn
366
k.
aach
398
l.
duis
287
manchmal auch sinnvoll:
in die Blätter die Tupel als Ganzes eintragen (anstelle von TIDs)
m.
düss
308
Einträge in Blattknoten des gemeinsamen B*-Baumes (Indexes):
< Stadtname;
Folge von TIDs für mitglied;
km-Angabe für entfernung >
© Joachim Biskup, Universität Dortmund
Informationssysteme: Zugriffsstrukturen und Verbund-Algorithmen - Zugriffsstrukturen zur Steigerung der Effizienz
17. Juli 2003
355
© Joachim Biskup, Universität Dortmund
Informationssysteme: Zugriffsstrukturen und Verbund-Algorithmen - Zugriffsstrukturen zur Steigerung der Effizienz
17. Juli 2003
356
boch
bonn
<aach;0042;398>,<boch;0022;250>
<bonn;0032;366>
dort
<duis;0072;287>,<düss; ;308>
10.3 Verbund-Algorithmen
<dort;0012,0052,0062;235>
dieser Baum verwirklicht:
• eine sequentielle Liste für die Tupel der Relation entfernung, sortiert nach dem Stadtnamen
• eine sequentielle Liste für die TIDs der Relation mitglied, sortiert nach dem Stadtnamen
• einen Index für die Relation entfernung bezüglich des Stadtnamens
• einen Index für die Relation mitglied bezüglich des Stadtnamens
• einen Link für die beiden Relationen entfernung und mitglied
bezüglich des Stadtnamens
© Joachim Biskup, Universität Dortmund
Informationssysteme: Zugriffsstrukturen und Verbund-Algorithmen - Zugriffsstrukturen zur Steigerung der Effizienz
17. Juli 2003
357
© Joachim Biskup, Universität Dortmund
Verbund: Definition und Nested-Loop (Wiederholung)
•
Definition
s = { µ | µ : dom r ∪ dom s → C, und
r
s = { µ | es gibt α ∈ r, β ∈ s : α(A) = β(A) für alle A ∈ dom r ∩ dom s; µ = α ∪ β }
µ dom r ∈ r und µ dom s ∈ s }
•
NestedLoop abstrakt
PROCEDURE NestedLoopJoin(r, s : Relation) : Relation;
VAR ergebnis
: Relation;
α, β
: Tupel;
BEGIN
ergebnis := Ø;
FOR ALL α ∈ r DO
FOR ALL β ∈ s DO
IF Passend(α,β)
(* liefert TRUE gdw α(A) = β(A) für alle A ∈ dom r ∩ dom s *)
THEN ergebnis := ergebnis ∪ {α ∪ β}
END
END
END;
RETURN ergebnis
END NestedLoopJoin;
© Joachim Biskup, Universität Dortmund
Informationssysteme: Zugriffsstrukturen und Verbund-Algorithmen - Verbund-Algorithmen
17. Juli 2003
358
Hauptaufgabe jeder Verwirklichung des natürlichen Verbunds
r
•
Informationssysteme: Zugriffsstrukturen und Verbund-Algorithmen - Verbund-Algorithmen
17. Juli 2003
359
die passenden Paare (α, β) finden mit
α ∈ r und
β ∈ s und
α(A) = β(A) für alle A ∈ dom r ∩ dom s
•
dann α und β tatsächlich zusammenfügen zu einem Tupel α ∪ β
•
und dieses Tupel für die Ergebnisrelation t ausgeben
•
grundlegende Verwirklichungen:
- NestedLoop
- Sortiertes Mischen
- Link-Verbund
- Hash-Filter-Verbund
© Joachim Biskup, Universität Dortmund
Informationssysteme: Zugriffsstrukturen und Verbund-Algorithmen - Verbund-Algorithmen
17. Juli 2003
360
Grundverwirklichung - NestedLoop mit Blockliste
Veranschaulichung der (vereinfachten) Strukturen
SPEICHER
(Annahmen, Vorbedingungen über) Daten- und Zugriffsstrukturen:
• Argumentrelationen r und s sind blockweise auf einem Magnetplattenspeicher abgelegt
Symbol
ErsterBlock
Puffer
DURCHLAUF
r
r_buffer
s
s_buffer
t
t_buffer
ScanId
LaufenderBlock
r_liste
...
s_liste
...
t_liste
• für jede Relation ist eine sequentielle Liste der Blöcke verfügbar
• Verweis auf den ersten Block ist in einem Datenwörterbuch (data dictionary) eingetragen
r_buffer
• jeder Block enthält einen Verweis auf seinen Nachfolger
A
s_buffer
B
B
C
t_buffer
A
B
C
• für jede Relation ist ein Pufferbereich im Hauptspeicher eingerichtet
• die Ergebnisrelation t soll wieder blockweise auf dem Magnetplattenspeicher erzeugt werden,
wobei gleichzeitig eine sequentielle Liste ihrer Blöcke aufgebaut werden soll
Datentransport
• um die sequentiellen Listen der Blöcke zu benutzen bzw. aufzubauen,
Magnetplattenspeicher
sind Relationendurchläufe (relation scans) verfügbar
r_liste.LaufenderBlock
r-Blöcke :
• in einer Durchlauftabelle (scan table)
r.ErsterBlock
wird für jeden Durchlauf ein Verweis auf den derzeit betrachteten Block abgelegt
1
s-Blöcke :
s_liste.LaufenderBlock
s.ErsterBlock
t-Blöcke :
t_liste.LaufenderBlock
t.ErsterBlock
© Joachim Biskup, Universität Dortmund
Informationssysteme: Zugriffsstrukturen und Verbund-Algorithmen - Verbund-Algorithmen
17. Juli 2003
361
Operationen auf den Strukturen
erzeugt einen neuen Durchlauf scanid für die Relation r:
in die Relation DURCHLAUF wird ein neues Tupel µ eingetragen mit
µ(ScanId)
= (neu erzeugter Wert von) scanid,
µ(LaufenderBlock) = r.ErsterBlock
(*
*)
beendet den Durchlauf scanid:
in der Relation DURCHLAUF wird das Tupel µ mit µ(ScanId) = (Wert von) scanid
wieder entfernt
*)
transportiert den Block, auf den scanid.LaufenderBlock verweist,
vom Magnetplattenspeicher in den Pufferbereich buffer
und setzt dann scanid.LaufenderBlock
auf den im transportierten Block enthaltenen Verweis zum Nachfolgerblock
prüft, ob scanid.LaufenderBlock ein leerer Verweis ist
© Joachim Biskup, Universität Dortmund
Informationssysteme: Zugriffsstrukturen und Verbund-Algorithmen - Verbund-Algorithmen
= (Wert von) t,
= Verweis auf den eingerichteten ersten Block,
= Verweis auf den eingerichteten Puffer
µ(ScanId)
= (neu erzeugter Wert von) scanid,
µ(LaufenderBlock) =ν(ErsterBlock)
*)
(*
*)
17. Juli 2003
*)
AppendScan(scanid:Scanidentifikator;
buffer:Relationenblock);
EndOfScan(scanid : Scanidentifikator ) : Boolean;
(*
362
und in die Relation DURCHLAUF wird ein neues Tupel µ eingetragen mit
GetNextBlock(scanid : Scanidentifikator;
VAR buffer : Relationenblock );
(*
17. Juli 2003
erzeugt eine (leere) Relation t,
richtet einen zugehörigen Pufferbereich ein,
richtet einen leeren ersten Block auf dem Magnetplattenspeicher ein
und erzeugt einen Durchlauf scanid für die Relation :
in die Relation SPEICHER wird ein neues Tupel ν eingetragen mit
ν(Symbol)
ν(ErsterBlock)
ν(Puffer)
CloseScan(scanid : ScanIdentifikator );
(*
Informationssysteme: Zugriffsstrukturen und Verbund-Algorithmen - Verbund-Algorithmen
CreateRelation(t: Relationensymbol;
VAR scanid : Scanidentifikator );
OpenScan(r : Relationensymbol;
VAR scanid : Scanidentifikator );
(*
© Joachim Biskup, Universität Dortmund
363
transportiert den im Pufferbereich buffer stehenden Block in den Magnetplattenspeicher,
verkettet diesen Block mit dem durch scanid.LaufenderBlock bezeichneten Block
und setzt dann scanid.LaufenderBlock auf den Verweis zum transportierten Block
*)
© Joachim Biskup, Universität Dortmund
Informationssysteme: Zugriffsstrukturen und Verbund-Algorithmen - Verbund-Algorithmen
17. Juli 2003
364
Verfahren für NestedLoop mit Blockliste
BEGIN (*NestedLoop_BlockScan_Join*)
CreateRelation (t, t_liste);
t_buffer := ∅;
OpenScan (r, r_liste);
WHILE NOT EndOfScan (r_liste) DO
GetNextBlock (r_liste, r_buffer);
OpenScan (s, s_liste);
WHILE NOT EndOfScan (s_liste) DO
GetNextBlock ( s_liste, s_buffer);
InternalJoin ( r_buffer, s_buffer, t_buffer)
END;
CloseScan (s_liste)
END;
CloseScan (r_liste);
PROCEDURE NestedLoop_BlockScan_Join (
r,s
:
Relationensymbol;
t
:
Relationensymbol );
VAR r_liste, s_liste, t_liste
:
Scanidentifikator;
r_buffer, s_buffer, t_buffer
:
Relationenblock;
PROCEDURE InternalJoin( r_buffer, s_buffer : Relationenblock;
VAR t_buffer : Relationenblock);
VAR α, β : RelTupel;
BEGIN
FOR ALL α ∈ r_buffer DO
FOR ALL β ∈ s_buffer DO
IF Passend (α, β)
THEN t_buffer := t_buffer ∪ {α ∪ β};
IF full (t_buffer)
THEN AppendScan (t_liste, t_buffer);
t_buffer := ∅
END
END
END
END
END InternalJoin;
© Joachim Biskup, Universität Dortmund
Informationssysteme: Zugriffsstrukturen und Verbund-Algorithmen - Verbund-Algorithmen
IF t_buffer ≠ ∅ THEN AppendScan (t_liste, t_buffer) END;
CloseScan (t_liste)
END NestedLoop_BlockScan_Join;
17. Juli 2003
365
© Joachim Biskup, Universität Dortmund
Informationssysteme: Zugriffsstrukturen und Verbund-Algorithmen - Verbund-Algorithmen
Aufwand von NestedLoop mit Blockliste
366
Sortiertes Mischen
(Annahmen, Vorbedingungen über) Daten- und Zugriffsstrukturen:
falls ein Block höchstens tpb(u) viele Tupel (tuple per block) der Relation u aufnehmen kann,
so benötigt das Verfahren ungefähr
• wie bei NestedLoop
r
s
--------------- ⋅  1 + --------------- lesende Blockzugriffe,
tpb ( r ) 
tpb ( s )
• zusätzlich: sequentielle Liste der Blöcke und die Anordnung der Tupel in den Blöcken derart,
dass die Tupel entsprechend ihren Werten auf den Verbundattributen (aufsteigend) sortiert sind
join ( r, s )
-----------------------------------schreibende Blockzugriffe,
tpb ( join ( r, s ) )
wobei lesende und schreibende Zugriffe überlappend sein können
algorithmische Idee:
• T := dom r ∩ dom s
vergrößert man die Pufferbereiche,
kommt man gegebenenfalls mit weniger lesenden Zugriffen aus:
passt zum Beispiel die kleinere Relation, etwa r, vollständig in den Puffer,
so kann diese Relation dort verbleiben und wir benötigen nur
s
1 + --------------lesende Blockzugriffe:
tpb ( s )
r
17. Juli 2003
• Tupel entsprechend der Sortierung fortlaufend numeriert,
etwa
• r
r = {α1,...,α || r ||} und s = {β1,...,β || s ||}
s =
=
=
{α1,...,α || r ||}
∪αi ∈ r ( {αi}
∪αi ∈ r ( {αi}
s
s)
σT=αi T (s) )
s
• σT=αi T (s) bildet jeweils einen
möglicherweise leeren, zusammenhängenden Abschnitt in der Liste von s;
falls der Abschnitt nichtleer ist, hat er also die Form {βanf, βanf+1,...,βend}
• alle zueinander passenden Paare < αi , σT=αi T (s) > können bestimmt werden durch
einen einzigen Durchlauf durch r und einen einzigen Durchlauf durch s
© Joachim Biskup, Universität Dortmund
Informationssysteme: Zugriffsstrukturen und Verbund-Algorithmen - Verbund-Algorithmen
17. Juli 2003
367
© Joachim Biskup, Universität Dortmund
Informationssysteme: Zugriffsstrukturen und Verbund-Algorithmen - Verbund-Algorithmen
17. Juli 2003
368
Verfahren für Sortiertes Mischen
Beispiel für Sortiertes Mischen
wir durchlaufen die Relation r entsprechend der Sortierung:
für jedes αi ∈ r stellen wir fest, ob
σT=αi T (s) nichtleer ist,
und bestimmen gegebenenfalls
die Anfangsnummer anf und die Endnummer end des entsprechenden Abschnittes,
indem wir zwei Fälle bezüglich des vorangehenden Tupels αi-1 ∈ r unterscheiden:
r
A
B
D1
D2
b
b
d
c
b
c
d
d
b
c
c
c
f
f
g
h
D3
D4
D5
D6
D7
D8
Fall 1:αi-1 T < αi T :
dann sucht man in s entsprechend der Sortierung nach passenden Tupeln,
wobei man bei dem zuletzt betrachteten Tupel βj ∈ s beginnt
die Suche kann abgebrochen werden, sobald αi T < βj T
r
Fall 2:αi-1 T = αi T :
dann ist der zu αi passende Abschnitt gleich dem zu αi-1 passenden Abschnitt
falls dieser Abschnitt nichtleer ist,
so kennen wir seine Anfangsnummer anf und seine Endnummer end und
können αi mit jedem der Tupel βanf,...,βend verbinden für die Ausgaberelation
Informationssysteme: Zugriffsstrukturen und Verbund-Algorithmen - Verbund-Algorithmen
369
Aufwand vom Sortierten Mischen
© Joachim Biskup, Universität Dortmund
Di ªT anf end
s A B C
A
B
C
a
b
c
c
d
d
b
b
d
e
b
f
a
h
Nummer j des
zuletzt
betrachteten
Tupels Ej s
Ej ª 7
b
b
b
1
b
2
2
3
c
b
b
c
c
d
e
2
c
3
4
5
d
d
d
c
c
d
e
3
c
3
4
5
d
c
c
c
c
d
e
4
c
3
4
5
d
5
f
-
-
7
h
6
f
-
-
7
h
7
g
-
-
7
h
8
h
7
7
f
d
17. Juli 2003
s
E1
E2
E3
E4
E5
E6
E7
Nummer i des
betrachteten
Tupels Dir
falls man passende Tupel gefunden hat,
so merken wir uns die Anfangsnummer anf und die Endnummer end des Abschnittes
und verbinden αi mit jedem der Tupel {βanf,...,βend} für die Ausgaberelation
© Joachim Biskup, Universität Dortmund
C
h
a
Informationssysteme: Zugriffsstrukturen und Verbund-Algorithmen - Verbund-Algorithmen
die Blöcke der Relation r werden einmal lesend durchlaufen
jedes α ∈ r wird bezüglich seiner T-Werte mit seinem Vorgänger verglichen:
etwa || r || Vergleiche
nimmt man an, dass die σT=αi T (s)-Abschnitte jeweils ganz im Puffer Platz finden,
so werden auch die Blöcke der Relation s nur einmal lesend durchlaufen
in jedem “Passend-Vergleich” zwischen einem Tupel α ∈ r und einem Tupel β ∈ s
wird mindestens eines dieser Tupel erstmalig benutzt:
höchstens || r || + || s || Vergleiche
17. Juli 2003
372
nimmt man dagegen realistischer an,
dass gelegentlich Blöcke der Relation s wiederholt gelesen werden müssen,
so ergeben sich
r
s
lesende Blockzugriffe,
--------------- + w ⋅ --------------tpb ( r )
tpb ( s )
das gesamte Verfahren:
etwa höchstens 2 * || r || + || s || Vergleiche
c
c
f
f
g
370
Abschätzung der Anzahl der Blockzugriffe:
Abschätzung der Anzahl der Vergleiche:
b
c
17. Juli 2003
a
wobei w ≥ 1 ein (im Allgemeinen nur zu schätzender) Wiederholungsfaktor ist
b
c
c
d
d
wird die Sortierung erst zum Zeitpunkt der Anfrage aufgebaut,
so muss man den Aufwand für das Sortieren hinzurechnen
h
h
© Joachim Biskup, Universität Dortmund
Informationssysteme: Zugriffsstrukturen und Verbund-Algorithmen - Verbund-Algorithmen
17. Juli 2003
371
© Joachim Biskup, Universität Dortmund
Informationssysteme: Zugriffsstrukturen und Verbund-Algorithmen - Verbund-Algorithmen
Link-Verbund
Veranschaulichung der (vereinfachten) Strukturen
SPEICHER Symbol
(Annahmen, Vorbedingungen über) Daten- und Zugriffsstrukturen:
ErsterBlock Puffer
r
r_buffer
s
s_buffer
t
t_buffer
link
blatt
blatt
r_buffer
DURCHLAUF
ScanId
LaufenderBlock
t_liste
...
• die Argumentrelationen r und s sind blockweise auf einem Magnetplattenspeicher abgelegt
link_liste
...
• für die Relationen r und s ist ein Link bezüglich der Verbundattribute T
als B*-Baum vorhanden
A
s_buffer
B
B
t_buffer
C
A
B
C
• damit sind ebenfalls je eine sequentielle Liste für die TIDs der Relationen verfügbar
• für jede Relation und für den Link ist ein Pufferbereich im Hauptspeicher eingerichtet,
der jeweils genau einen Block aufnehmen kann
Datentransport
Magnetplattenspeicher
• die Ergebnisrelation t soll wieder blockweise auf dem Magnetplattenspeicher erzeugt werden,
Link für r und s :
wobei gleichzeitig eine sequentielle Liste ihrer Blöcke aufgebaut werden soll
• das Datenwörterbuch enthält auch Angaben über die vorhandenen Links
• um die sequentiellen Listen zu benutzen bzw. aufzubauen,
link_liste.LaufenderBlock
link. Erster Block
wird wieder eine Durchlauftabelle angelegt
r-Blöcke :
• es gibt ein geeignetes Verfahren zur Umwandlung von TIDs in Speicheradressen
s-Blöcke :
t_liste.LaufenderBlock
t-Blöcke :
t.ErsterBlock
© Joachim Biskup, Universität Dortmund
Informationssysteme: Zugriffsstrukturen und Verbund-Algorithmen - Verbund-Algorithmen
17. Juli 2003
373
Operationen auf den Strukturen
bestimmt aus Angaben im Datenwörterbuch
das Linksymbol für den Link zu r und s bezüglich der Attribute X von r bzw. Y von s
und liefert diesen als Wert des Ausgabeparameters linkid zurück
*)
LocateFetch (tid : Tupelidentifikator;
VAR buffer : Relationenblock;
VAR tupel : RelTupel );
(*
sucht tid zunächst im Pufferbereich buffer;
falls tid dort nicht vorhanden ist,
wird (mittels der Umwandlung von TIDs in Speicheradressen) der tid enthaltende Block
vom Magnetplattenspeicher in den Pufferbereich buffer transportiert;
anschließend wird das durch tid identifizierte Tupel
als Wert des Ausgabeparameters tupel zurückgeliefert
*)
© Joachim Biskup, Universität Dortmund
Informationssysteme: Zugriffsstrukturen und Verbund-Algorithmen - Verbund-Algorithmen
Informationssysteme: Zugriffsstrukturen und Verbund-Algorithmen - Verbund-Algorithmen
17. Juli 2003
374
17. Juli 2003
376
ferner wie bei NestedLoop:
DetermineLink ( r, s : Relationensymbol;
X, Y : Attributmenge;
VAR linkid : Linksymbol );
(*
© Joachim Biskup, Universität Dortmund
17. Juli 2003
375
OpenScan
(
linkid
:
VAR scanid :
Relationen_oder_Linksymbol;
Scanidentifikator );
CloseScan
(
scanid
Scanidentifikator );
GetNextBlock
(
scanid
:
VAR buffer :
Scanidentifikator;
Relationen_oder_Linkblock );
EndOfScan
(
scanid
:
Scanidentifikator ) : Boolean;
CreateRelation
(
t
VAR scanid
:
:
Relationensymbol;
Scanidentifikator );
AppendScan
(
scanid
buffer
:
:
Scanidentifikator;
Relationenblock );
© Joachim Biskup, Universität Dortmund
:
Informationssysteme: Zugriffsstrukturen und Verbund-Algorithmen - Verbund-Algorithmen
algorithmische Idee:
PROCEDURE Link_Join (r, s : Relationensymbol; t : Relationensymbol);
VAR link : Linksymbol;
link_liste, t_liste : Scanidentifikator;
r_buffer, s_buffer, t_buffer : Relationenblock;
blatt : Linkblatt;
BEGIN
CreateRelation (t, t_liste);
t_buffer := ∅;
DetermineLink (r, s, T, T, link);
• T := dom r ∩ dom s
• r
s =
=
=
∪α∈r ∪β∈s ( {α} {β} )
∪ µ∈πT(r)∩πT(s) ( ∪ α∈r, αT=µ ∪ β∈s, βT=µ {α ∪ β} )
∪ µ∈πT(r)∩πT(s) ( σT=µ (r)
σT=µ (s) )
• das Verfahren durchläuft die Blattknoten des Links:
OpenScan (link, link_liste);
WHILE NOT EndOfScan (link_liste) DO
GetNextBlock (link_liste, blatt);
Blattjoin (blatt)
END;
CloseScan (link_liste);
die Einträge in diesen Blättern haben die Form
< T-Wert : Folge von TIDs für r ; Folge von TIDs für s >,
wobei für einen T-Wert µ gerade alle TIDs aus σT=µ (r) bzw. σT=µ (s) angegeben sind
• also muss man nur noch für jeden Eintrag
die Tupel der Teilrelationen σT=µ (r) und σT=µ (s) auffinden,
dann σT=µ (r)
σT=µ (s) bilden und
schließlich das so gebildete Teilergebnis ausgeben
© Joachim Biskup, Universität Dortmund
Informationssysteme: Zugriffsstrukturen und Verbund-Algorithmen - Verbund-Algorithmen
IF t_buffer ≠ ∅ THEN
AppendScan (t_liste, t_buffer)
END;
CloseScan (t_liste)
END Link_Join;
17. Juli 2003
377
PROCEDURE Blattjoin (blatt);
(* r_buffer, s_buffer, t_buffer und t_liste
werden als globale Variablen verwendet;
blatt sei wie folgt aufgebaut
anzahl : CARDINAL;
liste : ARRAY [1..anzahl] OF
RECORD
schlüssel : Wert;
anz_tids_1 : CARDINAL;
anz_tids_2 : CARDINAL;
tids_1 : ARRAY[1..anz_tids_1] OF Tupelidentifikator;
tids_2 : ARRAY [1..anz_tids_2] OF Tupelidentifikator
END; *)
© Joachim Biskup, Universität Dortmund
Informationssysteme: Zugriffsstrukturen und Verbund-Algorithmen - Verbund-Algorithmen
378
BEGIN (* Blattjoin *)
FOR eintrag := 1 TO anzahl DO
FOR tid_1 := 1
TO liste [eintrag].anz_tids_1 DO
FOR tid_2 := 1 TO liste [eintrag].anz_tids_2 DO
LocateFetch (liste [eintrag].tids_1 [tid_1], r_buffer, tupel_1);
LocateFetch (liste [eintrag].tids_2 [tid_2], s_buffer, tupel_2);
t_buffer := t_buffer ∪ {tupel_1 ∪ tupel_2};
IF full (t_buffer)
VAR
17. Juli 2003
eintrag, tid_1, tid_2 : CARDINAL;
tupel_1, tupel_2 : RelTupel;
THEN
AppendScan (t_liste, t_buffer);
t_buffer := ∅
END
END
END
END
END Blattjoin;
© Joachim Biskup, Universität Dortmund
Informationssysteme: Zugriffsstrukturen und Verbund-Algorithmen - Verbund-Algorithmen
17. Juli 2003
379
© Joachim Biskup, Universität Dortmund
Informationssysteme: Zugriffsstrukturen und Verbund-Algorithmen - Verbund-Algorithmen
17. Juli 2003
380
Aufwand von Link-Verbund
Hash-Filter-Verbund
• Aufwand bezüglich der “Passend-Vergleiche” entfällt beim Link-Verbund
• Aufwand bezüglich der lesenden Blockzugriffe ist schwierig analytisch zu bestimmen
• Operation LocateFetch kann sehr schnell oder sehr langsam sein;
(Annahmen, Vorbedingungen über) Daten- und Zugriffsstrukturen:
• alle Strukturen wie bei NestedLoop mit Block-Liste
• für Werte der Attribute aus T ist eine Hashfunktion verfügbar der Form
schnell:
langsam:
das Tupel befindet sich im Pufferbereich und seine dortige Adresse ist bekannt
das Tupel muss im Magnetplattenspeicher gesucht und
von dort in den Pufferbereich geholt werden
• günstiger Fall:
die Relationen r und s sind nach den Verbundattributen (aufsteigend) sortiert gespeichert, und
die Pufferbereiche sind groß genug, dass keine Blöcke wiederholt gelesen werden müssen
hash : Domäne (T) → {1,...,k} mit k >= max (|| r ||, || s ||) lässt wenige Kollisionen erwarten
• für die Relationen r und s stehen zwei Bitlisten bit_r und bit_s der Länge k
zur Verfügung, die mit false initialisiert werden können
algorithmische Idee:
• r
r
s
dann nämlich benötigt man BL + --------------- + --------------- lesende Blockzugriffe,
tpb ( r ) tpb ( s )
BL + 2 ⋅ k ⋅ join ( r, s )
für solche Filterrelationen gilt ebenfalls
lesende Blockzugriffe
17. Juli 2003
381
© Joachim Biskup, Universität Dortmund
Informationssysteme: Zugriffsstrukturen und Verbund-Algorithmen - Verbund-Algorithmen
17. Juli 2003
382
(sehr einfache) Hashfunktion: Divisions-Rest-Methode mit Parameter k = 11: hash(x) := x mod 11
2. für jedes α ∈ r berechne hash(αT ) und setze entsprechendes Bit, d.h.:
bit_r (hash (αT)) := true
a)
3. für jedes β ∈ s berechne hash(βT );
falls entsprechendes Bit in bit_r schon gesetzt ist, setze dieses Bit auch in bit_s
und füge β zur neuen Unterrelation s_filter hinzu, d.h.:
stelle := hash (βT);
IF bit_r (stelle)
THEN bit_s (stelle) := true;
insert (β, s_filter)
(* am besten s_filter mit Index und sortiert aufbauen *)
END
r
b)
0
1
2
3
4
5
6
7
8
9
10
4. Für jedes α ∈ r berechne hash (αT ) ;
falls entsprechendes Bit in bit_s gesetzt ist,
füge α zur neuen Unterrelation r_filter hinzu, d.h.:
IF bit_s (hash (αT)
THEN insert (α, r_filter)
(* am besten r_filter mit Index und sortiert aufbauen *)
END
s_filter (* etwa mit Link-Verbund *)
Informationssysteme: Zugriffsstrukturen und Verbund-Algorithmen - Verbund-Algorithmen
s_filter
Beispiel für Hash-Filter-Verbund
1. initialisiere die Bitlisten bit_r und bit_s mit false
© Joachim Biskup, Universität Dortmund
s = r_filter
r;
wobei man am besten die Filterrelationen sortiert aufbaut und
Indexe bezüglich der Verbundattribute bzw. einen gemeinsamen Link erzeugt
Verfahren des Hash-Filter-Verbunds
5. Berechne r_filter
r
s , bzw. s ⊃ s_filter ⊃ s
• man bestimmt solche Filterrelationen mit Hilfe von Bitlisten und einer Hashfunktion,
so muss man den Aufwand für seine Erstellung hinzurechnen
Informationssysteme: Zugriffsstrukturen und Verbund-Algorithmen - Verbund-Algorithmen
πdom r∩dom s (r) )
(s
r_filter bzw. s_filter mit r ⊃ r_filter ⊃ r
• wird der Link erst zum Zeitpunkt der Anfrage aufgebaut,
© Joachim Biskup, Universität Dortmund
πdom r∩dom s (s) )
(r
= (r
s)
(s
r)
wobei
die abgeleitete relationale Operation des Teilverbunds (semi-join) bezeichnet
• die Teilverbünde r
s bzw. s
r sind erwartungsgemäß bedeutend kleiner
als die ursprünglichen Relationen r bzw. s
• die Teilverbünde möglichst gut nach oben schätzen durch Relationen
wobei BL die Anzahl der Blattknoten des Links sei und
jeder Block ein zum Ergebnis beitragendes Tupel enthalte
• ungünstiger Fall:
die Tupel der Relationen r und s sind so unglücklich auf die Blöcke verteilt,
dass jede Ausführung von LocateFetch
eine Suche im Magnetplattenspeicher mit etwa jeweils k vielen Blockzugriffen auslöst
dann benötigt man
s =
17. Juli 2003
383
© Joachim Biskup, Universität Dortmund
A
1
2
5
7
16
1
2
B
1
1
5
1
3
2
2
C
s
bit_r
bit_s
t
t
t
t
t
A
5
1
9
19
3
19
B
C
1
1
9
1
3
7
t
c) s_filter
A
5
1
d) s_filter
r_filter
B
r
C
1
1
A
5
B
5
C
1
1
1
1
2
1
1
A
1
5
16
1
B
1
5
3
2
Informationssysteme: Zugriffsstrukturen und Verbund-Algorithmen - Verbund-Algorithmen
C
17. Juli 2003
384
Aufwand des Hash-Filter-Verbunds
Zusammenfassung der Verbund-Algorithmen
• die Relation r muss zweimal und die Relation s muss einmal durchlaufen werden,
•
wobei der folgende Aufwand anfällt:
r
s
2 ⋅ --------------- + --------------lesende Blockzugriffe
tpb ( r ) tpb ( s )
rfilter
sfilter
----------------------------- + ----------------------------tpb ( rfilter ) tpb ( sfilter )
2⋅ r + s
durchlaufe “äußere Relation”:
für jedes Tupel der äußeren Relation durchlaufe “innere Relation”:
füge jeweils passende Tupel zusammen
schreibende Blockzugriffe
•
die Erstellung der Sortierungen von r_filter und s_filter und des Links
• schlechter Fall, die Filterwirkung fällt gering aus:
•
- der Aufwand für die Aufrufe der Hashfunktion wird im Wesentlichen vergeblich eingesetzt
- für die aufgebauten Zugriffsstrukturen zu r_filter und s_filter
kann geeignetes Verfahren, etwa Link-Verbund, eingesetzt werden
•
Informationssysteme: Zugriffsstrukturen und Verbund-Algorithmen - Verbund-Algorithmen
17. Juli 2003
Link-Verbund
(erstelle Link, gemeinsamen Index, beider Relationen bezüglich Verbundattributen;)
durchlaufe Blattknoten des Links und füge jeweils passende Tupel zusammen
• guter Fall, die Filterwirkung fällt stark aus:
der (in der Größe von r und s) lineare Aufwand zur Erstellung von r_filter
s_filter macht sich dadurch bezahlt,
dass in Schritt 5 erheblich kleinere Relationen als r bzw. s zu verbinden sind
Sortiertes Mischen
(sortiere beide Relationen auf Verbundattributen;)
durchlaufe beide Relationen simultan entsprechend der Sortierung:
für jedes Tupel der “äußeren Relation” bestimme bzw. durchlaufe
den Abschnitt passender Tupel der “inneren Relation”
und füge jeweils passende Tupel zusammen
Aufrufe der Hashfunktion (mit umrahmenden Operationen)
• zusätzlich muss berücksichtigt werden der Aufwand für
© Joachim Biskup, Universität Dortmund
NestedLoop
und
385
Hash-Filter-Verbund
erstelle Filterrelationen mit Hilfe von Hashfunktion und Bitlisten
als Abschätzungen der beiden Teilverbunde;
verbinde die Filterrelationen mit Hilfe von Link-Verbund oder Sortiertem Mischen
© Joachim Biskup, Universität Dortmund
Informationssysteme: Zugriffsstrukturen und Verbund-Algorithmen - Verbund-Algorithmen
17. Juli 2003
386
Optimierung von Anfragen
Informationssystem: stellt einem Benutzer mächtige Anfragesprachen zur Verfügung
11 Anfrage-Optimierung
Benutzer:
kann damit Anfragen ausdrücken,
die im Wesentlichen beschreiben,
was (welche Aussagen, Tupel, Objekte, Objektwerte) er als Ergebnisse erwartet
Informationssystem: um Anfragen effizient zu bearbeiten,
ermittelt aus der Anfrage,
wie die gewünschten Ergebnisse bzw. deren Bestandteile
möglichst schnell (und platzsparend) erzeugt bzw. aufgefunden werden können
Optimierungsaufgabe
bestimme aus der Beschreibung des Was (einer Anfrage)
einen guten Plan für das Wie (einen Algorithmus)!
© Joachim Biskup, Universität Dortmund
Informationssysteme: Anfrage-Optimierung
17. Juli 2003
387
© Joachim Biskup, Universität Dortmund
Informationssysteme: Anfrage-Optimierung
17. Juli 2003
388
Optimierung: besonders wichtig und besonders schwierig
Entwurfsumgebung
Arbeitsplatz- . . .
umgebung
Netzumgebung
Programmier- . . .
umgebung
Datenmanipulationssprache (DML)
Vereinbarungen
..
.
Sicht i
Schema
Änderungen
Sprachanalyse
EinsatzSchnittstellen
Anfragen
Antworten
Erklärungen
InformationssystemSchnittstelle
•
Aufbereitung
von
Antworten
..
.
Relationen (Klassen),
Tupel (Objekte)
konzeptionelles
Schema
konzeptionelle Schicht
(mengenorientiert,
mit Optimierung)
Transaktionsverwaltung
Zugriffsstrukturen,
Tupelidentifikatoren
(Surrogate), Datensätze
internes Schema
•
einerseits kann Benutzer
anwendungsnahe, mächtige Sprachmittel
auf sehr große Mengen von Daten anwenden
eingebettet
interaktiv, selbständig
Datendefinitionssprache (DDL)
...
Beispiel: “naive Auswertungen”
MengenSchnittstelle
andererseits muss Informationssystem
die volle Kluft zwischen
Benutzersprache und Speicherzugriffen
über alle Zwischenschichten hinweg
überbrücken
TupelSchnittstelle
Benutzer stellt Anfrage als Ausdruck der relationalen Algebra:
σZ=c( R
R und S seien Namen für sehr große Relationen:
etwa mit je 106 Tupeln
S)
cNL * (106)2
cSM * 106
• gefolgt von einem Selektionsverfahren
falls beide Relationen noch nicht sortiert sind,
so erforderte die Sortierung mit einem guten Verfahren,
(das bei Eingabe von n Tupeln eine Laufzeit O(n * log n) hat)
einen zusätzlichen Aufwand ( 20 ≈ Duallogarithmus von 106):
(virtueller) flüchtiger und dauerhafter Speicher
Segmente, Blöcke; Einrichten und Freigeben, Lesen und Schreiben
SpeicherSchnittstelle
GeräteSchnittstelle
© Joachim Biskup, Universität Dortmund
dom R = {X,Y}
dom S = {Y, Z}
auswertbar durch:
• eine geeignete Verwirklichung des natürlichen Verbundes:
- NestedLoop hat eine quadratische Komplexitätsfunktion,
also im Beispiel eine Laufzeit:
- sortiertes Mischen hat unter günstigen Umständen eine
lineare Laufzeit, im Beispiel:
interne Schicht
(Datensatz-orientiert)
...
gemäß Schema:
Speichergeräte
Informationssysteme: Anfrage-Optimierung
17. Juli 2003
389
© Joachim Biskup, Universität Dortmund
Informationssysteme: Anfrage-Optimierung
Beispiel: verbesserte Auswertung
17. Juli 2003
390
Beispiel: günstiger Fall
da Z ∈ dom S: σZ=c(R
S) ist äquivalent zu
R
σZ=c(S) ,
wobei Ergebnis der Selektion σZ=c(S) im Allgemeinen viel kleiner als S selbst sein wird
wenn im Datenbankschema das Attribut Z für die Relation S als Schlüsselattribut vereinbart ist
(für Optimierer aus dem Datenbankschema erkennbar),
dann enthält σZ=c(S) höchstens ein Tupel
Anfrage:
σZ=c(R
alle günstigen Annahmen:
- Attribut Z für die Relation S als Schlüsselattribut vereinbart
S)
- Index, B*-Baum, bezüglich Attribut Z in S unterhalten
- Relation R nach dem Attribut Y sortiert gespeichert
wenn zusätzlich ein Index, etwa als B*-Baum, bezüglich Attribut Z in S unterhalten wird,
dann könnte man σZ=c(S) durch eine einzige Suche im B*-Baum verwirklichen
Auswertung von:
erhält man als Ergebnis dieser Suche das Tupel µ aus S zurück,
so reduziert sich der Anfrageausdruck wie folgt:
Aufwand der Größenordnung von vielleicht:
R
2 * cSort * 20 * 106
{µ},
was wiederum äquivalent ist mit: R
{( Y, µ(Y) )}
{(Z,c)} = σY=µ(Y)(R)
{(Z,c)}
d.h. im Wesentlichen:
• nur eine Selektion auf R nach dem zwischenzeitlich ermittelten Wert µ(Y) durchführen und
• jedes Ergebnistupel der Selektion mit dem Wert c für Attribut Z verbinden
σY=µ(Y)(R)
{(Z,c)}
5
Zugriffen längs eines Pfades im B*-Baum (der Tiefe 5) für Relation S und
20
Zugriffen zur logarithmischen Suche desjenigen Blocks von Relation R,
in dem sich die zu selektierenden Tupel befinden
wenn die Relation R nach dem Attribut Y sortiert gespeichert ist,
dann kann die Selektion als schnelle Suche mit Aufwand O(log n) durchgeführt werden
© Joachim Biskup, Universität Dortmund
Informationssysteme: Anfrage-Optimierung
17. Juli 2003
391
© Joachim Biskup, Universität Dortmund
Informationssysteme: Anfrage-Optimierung
17. Juli 2003
392
Beispiel: Zusammenfassung
Ziel der Optimierung
sehr grobe (sicherlich viel zu optimistische) untere Schranke für eine Zeiteinheit: 1 µsec
im Beispiel ergibt sich folgende Bandbreite:
1012 ∗ 10-6 sec =
NestedLoop:
106 sec
≈
(20 + 1) * 106 * 10-6 sec =
Sortiertes Mischen:
Spezialfall mit B*-Baum, sortierter Speicherung:
25 * 10-6 sec =
Auswertung einer Anfrage:
• zunächst bestimmte Daten (Werte, Tupel, Objekte)
in der gegenwärtigen Instanz des Informationssystems auffinden
•
12 Tage
anschließend aus bzw. in Abhängigkeit von diesen aufgefundenen Daten
die gewünschten Ergebnisse erzeugen
21 sec
Damit ergeben sich folgende Wunsch-Anforderungen (die i. Allg. kaum erfüllbar sind):
25 µsec
O1. [Suchraum beschränken]
ausschließlich auf die zu findenden Daten zugreifen
O2. [Wiederholungen vermeiden]
auf jedes zu findende Datum nur einmal zugreifen
© Joachim Biskup, Universität Dortmund
Informationssysteme: Anfrage-Optimierung
17. Juli 2003
393
© Joachim Biskup, Universität Dortmund
Informationssysteme: Anfrage-Optimierung
Methoden der Optimierung
•
17. Juli 2003
396
Kenntnisse über die Semantik von Anfragen,
insbesondere Regeln für äquivalenzerhaltende Umformungen
•
2. [Erstellung von Ausführungsplänen]
so bestimmte Anfragen jeweils übersetzen
in ein oder mehrere Ausführungspläne,
deren Anweisungen auf tieferen Schichten des Informationssystems liegen
Schemavereinbarung,
insbesondere semantische Bedingungen
3. [Aufwandsschätzung]
für so gewonnene Ausführungspläne
den voraussichtlichen Aufwand abschätzen
•
Kenntnisse über verfügbare Datenstrukturen und Algorithmen
•
Laufzeitinformation über gespeicherte Objekte
(z.B. Anzahl der gespeicherten Tupel einer Relation)
•
4. [Suche nach einem kostengünstigen Ausführungsplan]
alle erfolgversprechenden äquivalenten Umformungen erzeugen (gemäß 1.)
und deren Übersetzungen in Pläne (gemäß 2.)
und jeweils deren Aufwand (gemäß 3.) bestimmen mit dem Ziel,
möglichst schnell einen Plan als kostengünstig (oder im besten Fall als kostengünstigsten)
im Vergleich mit den anderen erzeugten Plänen zu erkennen
Informationssysteme: Anfrage-Optimierung
394
Grundlagen der Optimierung
1. [äquivalente Umformungen der Anfrage]
auf der Ebene der Anfragesprache äquivalente Anfragen bestimmen, in denen
- (im Sinne der Semantik) redundante Teile entfernt sind oder
- Variable (bzw entsprechende Konzepte) an möglichst kleine Mengen gebunden werden
© Joachim Biskup, Universität Dortmund
17. Juli 2003
17. Juli 2003
395
Laufzeitinformation über bereits angelegte Zugriffsstrukturen
© Joachim Biskup, Universität Dortmund
Informationssysteme: Anfrage-Optimierung
einige Heuristiken zur Optimierung relationaler Ausdrücke
Zusammenfassen von Ausdrücken
•
•
Ausdrücke zusammenfassen
•
Redundanz entfernen
•
Selektionen und Projektionen vorziehen
•
Verbund-Reihenfolge auswählen
eine Folge von direkt hintereinander auszuführenden Selektionen der Form
σA1=c1 ° σA2=c2 ° ... ° σAn=cn(R)
kann zusammengefasst werden zu einer Selektion der Form
σA1=c1 ∧ A2=c2 ∧ ... ∧ An=cn(R)
•
eine Folge von direkt hintereinander auszuführenden Projektionen der Form
πX1 ° ... ° πXn(R)
kann zusammengefasst werden zu einer Projektion der Form
πX1 ∩ ... ∩ Xn(R)
•
ein Verbund-Ausdruck der Form
πX( R1
R2 )
kann als eine Einheit ausgewertet werden,
wenn bei der Erzeugung eines Tupels µ von R1
R2
von vornherein nur die Einschränkung µX geliefert wird
•
© Joachim Biskup, Universität Dortmund
Informationssysteme: Anfrage-Optimierung
17. Juli 2003
397
...
© Joachim Biskup, Universität Dortmund
Entfernen von Redundanz
Informationssysteme: Anfrage-Optimierung
17. Juli 2003
Vorziehen von Selektionen und Projektionen
Selektionen und Projektion möglichst früh ausführen
durch Semantik-erhaltende Vertauschung mit vorangehender Operation:
Zwischenergebnisse möglichst klein halten!
offensichtlich redundante Teile eines Ausdruckes können entfernt werden
zum Beispiel gilt wegen des Absorbtiv-Gesetzes für den natürlichen Verbund:
Vertauschungen sind etwa entsprechend der folgenden (Umformungs)Regeln möglich:
falls
bekannt ist, dass der Wert von R stets Teilmenge des Wertes von S ist,
•
falls A ∈ dom R, dann
σA=c(R
S) =
σA=c(R)
S
dann
kann der Ausdruck R
•
falls A ∈ dom R ∩ dom S, dann
σA=c(R
S) =
σA=c(R)
σA=c(S)
S
verkürzt werden zu R
•
σA=c(R ∪ S)
=
σA=c(R) ∪ σA=c(S)
•
σA=c(R \ S)
=
σA=c(R) \ σA=c(S)
•
falls A ∈ X ∩ dom R, dann
σA=c(πX(R))
=
πX(σA=c(R))
•
falls dom R ∩ dom S ⊂ X, dann
πX(R
=
πX(R)
=
πX(R) ∪ πX(S)
•
Informationssysteme: Anfrage-Optimierung
17. Juli 2003
399
S)
πX(R ∪ S)
•
© Joachim Biskup, Universität Dortmund
398
πX(S)
...
© Joachim Biskup, Universität Dortmund
Informationssysteme: Anfrage-Optimierung
17. Juli 2003
400
Auswahl von Verbund-Reihenfolge
Entfernen von Redundanz logik-orientiert
•
Zwischenergebnisse möglichst klein halten !
wesentlicher Kern der Semantik (Wiederholung):
Bestimmung der logischen Implikation |=
•
erst “Durchschnitt-ähnliche” Verbünde ausführen,
dann erst “Produkt-ähnliche” !
RS mit EDB = {R1 ,..., Rn} Schema
< R| Q >
LOGODAT-Anfrage mit (Hornklausel-)Anfrageprogramm
“hängende Tupel” vermeiden !
f = (r1,...,rr)
Ausprägung zu EDB
•
evalRS(< R | Q >)(f)
© Joachim Biskup, Universität Dortmund
Informationssysteme: Anfrage-Optimierung
17. Juli 2003
401
© Joachim Biskup, Universität Dortmund
Lemma [äquivalente Umformungen von Anfragen]
wenn Q1 |= Q2 ,
dann für alle Ausprägungen f zu RS:
Beweis:
R(c1,...,cs). ∈ evalRS (< R | Q2>)(f)
Definition deklarative Semantik:
f ∪ Q2 |= R(c1,...,cs).
zu zeigen:
f ∪ Q1 |= R(c1,...,cs).
betrachte dazu:
M Modell von f ∪ Q1
nach Voraussetzung:
also:
also:
Q1 |= Q2
M auch Modell von Q2
M auch Modell von f ∪ Q2
gemäß (1):
M Modell von R(c1,...,cs).
© Joachim Biskup, Universität Dortmund
Informationssysteme: Anfrage-Optimierung
{R(c1,...,cs). | f ∪ Q |= R(c1,...,cn). mit c1,...,cs ∈ C}
=
{R(c1,...,cs). | T(c1,...,cs). ∈ fix(f ∪ Q)}
Informationssysteme: Anfrage-Optimierung
17. Juli 2003
402
Redundanz von Anfrageklauseln oder Prämissen
evalRS (< R | Q1 >)(f) ⊃ evalRS (< R | Q2 >)(f)
betrachte:
:=
Anfrageklausel K heißt redundant in Q bezüglich RS
:gdw für alle Instanzen f zu RS gilt:
evalRS(< R | Q >)(f) = evalRS(< R | Q \ {K}>)(f)
Prämisse Ai von K ≡ A0 :- A1,..., Ai ,..., Am. heißt redundant in K bezüglich RS und Q
:gdw für alle Instanzen f zu RS gilt:
evalRS(< R | Q >)(f) = evalRS(< R | (Q \ {K}) ∪ {A0 :- A1,..., Ai-1 , Ai+1 ,...,Am.}>)(f)
(1)
o.B.d.A. nur Anfragen mit R = concl(K) ∈ concl(Q \ {K}) betrachten;
in geforderten Gleichheiten ist jeweils eine Inklusion trivial,
denn gemäß Lemma über äquivalente Umformungen:
wegen
folgt
Q |= Q \ {K},
für alle Instanzen f zu RS:
evalRS(< R | Q>)(f) ⊃ evalRS(< R | Q \ {K}>)(f)
bzw.
wegen
folgt
17. Juli 2003
403
(Q \ {K}) ∪ {A0 :- A1,..., Ai-1 , Ai+1 ,...,Am.} |= Q
für alle Instanzen f zu RS:
evalRS(< R | (Q \ {K}) ∪ {A0 :- A1,..., Ai-1 , Ai+1 ,...,Am.}>)(f) ⊃ evalRS(< R | Q>)(f)
© Joachim Biskup, Universität Dortmund
Informationssysteme: Anfrage-Optimierung
17. Juli 2003
404
Aufwandsschätzung
Beispiel für Aufwandsschätzung
berücksichtigt insbesondere die folgenden Faktoren:
•
äquivalente Ausdrücke aus obigem Beispiel:
Kenngrößen der gespeicherten Relationen, z.B.
- derzeitige Anzahl der Tupel (Eigenschaft der Instanz),
- (maximale) Länge eines Tupels (Eigenschaft des Schemas),
- Anzahl der möglichen Werte für ein Attribut (Eigenschaft des Schemas)
•
•
σZ=c(R
S) und R
σZ=c(S)
dom R = {X,Y} und dom S = {Y, Z}
Kenngrößen der gespeicherten Relationen:
kr
ks
ky
kz
Statistische Annahmen,
:=
:=
:=
:=
Anzahl der Tupel in Instanz von R
Anzahl der Tupel in Instanz von S
Anzahl der Konstantenzeichen in Domäne b(Y)
Anzahl der Konstantenzeichen in Domäne b(Z)
um Erwartungswerte für die Kenngrößen
der als Zwischenergebnisse sich ergebenden Relationen zu berechnen
statistische Annahme:
Kostenfunktionen
alle Zufallsvariablen für interessierende Ereignisse sind gleichverteilt und statistisch unabhängig
für die im Datenbanksystem verfügbaren Algorithmen
zur Verwirklichung der relationalen Operationen
Kostenfunktion:
Laufzeiten der einfachen Algorithmen für die Selektion bzw. den natürlichen Verbund:
kosten (σΑ=c(T)) := Anzahl der Tupel im Wert von T
kosten (U
V) :=
(Anzahl der Tupel im Wert von U) * (Anzahl der Tupel im Wert von V)
Kostenfunktion für zusammengesetzte Ausdrücke additiv fortsetzen,
wobei die Größe eines Zwischenergebnisses durch ihren Erwartungswert geschätzt wird:
© Joachim Biskup, Universität Dortmund
kosten (σZ=c(R
Informationssysteme: Anfrage-Optimierung
17. Juli 2003
S)) =
© Joachim Biskup, Universität Dortmund
Informationssysteme: Anfrage-Optimierung
17. Juli 2003
406
17. Juli 2003
408
kr * ks + kr * ks / ky
=
(kr * ks) * ( 1 + 1/ky )
wobei geschätzte Größe des Wertes von R
kosten (R
405
12 relationaler Schemaentwurf
S: kr * ks / ky
σZ=c(S)) =
ks + kr * ks / kz
=
ks * ( 1 + kr /kz )
wobei geschätzte Größe des Wertes von σZ=c(S):
ks / kz
im Allgemeinen:
Kosten im zweiten Fall (mit vorgezogener Selektion) kleiner als im ersten Fall,
beispielsweise:
kr = ks = ky = kz
kosten (σZ=c(R
kosten (R
© Joachim Biskup, Universität Dortmund
:=
S)) = 106 * 106 * ( 1 + 1/106 ) ≈
σZ=c(S)) = 106 * (1 + 1)
Informationssysteme: Anfrage-Optimierung
≈
106
1012
2 * 106
17. Juli 2003
407
© Joachim Biskup, Universität Dortmund
Informationssysteme: relationaler Schemaentwurf
Schemaentwurf
Entwurfsheuristiken für relationale Formalisierung
ein Informationssystem dient insbesondere dazu:
• Daten für verschiedenartige Benutzer verfügbar zu halten
• Anfragen und Änderungen effizient zu bearbeiten
•
eine Basisrelation zählt genau einen Gesichtspunkt auf
(genau eine Klasse von Seienden oder von grundlegenden Beziehungen):
außer den Schlüsselwerten (die jeweils ein Seiendes oder eine Beziehung eindeutig bestimmen)
sollen nur Werte für die genau zugehörigen Eigenschaften hinzugefügt werden
Grundlage dafür sind:
• eine gute Modellierung des Anwendungsfalles, etwa mit Hilfe der semantischen Begriffe:
die angestrebte Unterstützung kommunikativ Handelnder kann dann gelingen,
wenn alle Beteiligten die Modellierung einvernehmlich als gemeinsame Beschreibung
der bedeutsamen Gesichtspunkte des jeweiligen “Unternehmens” annehmen
•
die Trennungsheuristiken sollen Redundanzfreiheit auf die Ebene der Formalisierung übertragen
- welche Beziehungen (relationships) zwischen diesen Seienden sind grundlegend ?
(Vollständigkeit: alle anderen bedeutsamen Beziehungen lassen sich daraus erschließen;
Redundanzfreiheit: grundlegende Beziehungen lassen sich nicht auseinander erschließen)
•
Erschließbarkeit von Gesichtspunkten
alle bedeutsamen, aber nicht durch eine Basisrelation aufgezählten Gesichtspunkte
sind als Sichtrelationen erschließbar:
eine Aufzählung dafür kann durch eine in der relationalen Algebra ausdrückbare Anfrage
(meistens im Wesentlichen mit natürlichem Verbund oder mengentheoretischer Vereinigung)
aus den Basisrelationen gewonnen werden
- welche (formalen) Handlungen sind grundlegend ?
(Änderungsanweisungen sind leicht ausführbar)
• eine geeignete Formalisierung der zeitunabhängigen Teile der Modellierung
die Erschließbarkeitsheuristik soll Vollständigkeit auf die Ebene der Formalisierung übertragen
zu einem (Datenbank-)Schema für das gewählte Datenmodell
Informationssysteme: relationaler Schemaentwurf
Trennung von Spezialisierungen
eine Basisrelation zählt nur Spezialisierungen gleichen Formates auf:
gibt es innerhalb einer Klasse von Seienden Spezialisierungen von unterschiedlichem Format,
so soll für jedes vorkommende Format eine getrennte Basisrelation eingerichtet werden
umfasst insbesondere Verständigung über folgende Fragen:
- welche Seienden (entities) der Welt sind grundlegend
(wird ein “unabhängiges Sein”, eine “wirkliche Existenz” zugesprochen) ?
© Joachim Biskup, Universität Dortmund
Trennung von Gesichtspunkten
17. Juli 2003
409
© Joachim Biskup, Universität Dortmund
Informationssysteme: relationaler Schemaentwurf
17. Juli 2003
410
17. Juli 2003
412
Theorie des relationalen Schemaentwurfs
•
formalisiert für Schemas
wertvolle semantische Anforderungen und
wünschenswerte syntaktische Eigenschaften
•
beweist Bezüge zwischen solchen Formalisierungen
•
liefert und untersucht Algorithmen,
um wünschenswerte syntaktische Eigenschaften
zu entscheiden oder zu erreichen
•
beweist, dass wünschenswerte syntaktische Eigenschaften
geringe Kosten erlauben bezüglich
- Speicherung
- Änderungen (einschließlich Erhaltung semantischer Bedingungen)
- Anfragen
•
umfasst insbesondere Untersuchungen über
semantische Bedingungen und deren Einfluss auf die Güte von Schemas:
funktionale Abhängigkeiten, Verbundabhängigkeiten,
Enthaltenseinsabhängigkeiten
© Joachim Biskup, Universität Dortmund
Informationssysteme: relationaler Schemaentwurf
12.1 funktionale Abhängigkeiten und Schlüssel
17. Juli 2003
411
© Joachim Biskup, Universität Dortmund
Informationssysteme: relationaler Schemaentwurf - funktionale Abhängigkeiten und Schlüssel
funktionale Abhängigkeiten: Syntax
<R|U|F>
R
U
F
funktionale Abhängigkeiten: Semantik
Relationenschema
Relationensymbol
Menge von Attributen
Menge von funktionalen Abhängigkeiten (über R und U)
•
eine funktionale Abhängigkeit (functional dependency) ist eine Formel folgender Art:
X→Y
in Kurzform:
mit X ⊂ U, Y ⊂ U
als Menge von Horn-Klauseln: K = { K1,...,Kl }, wobei:
U = { A1,...,An }
X = { Ai1,...,Aik }
Y = { Aj1,...,Ajl }
für jedes Attribut Aje ∈ Y mit e = 1,...,l eine gleichheitsbestimmende Klausel:
Ke ≡ aje = a’je
:-
eine funktionale Abhängigkeit X → Y heißt
gültig in einer Relation r mit dom r = U
(oder r ist Instanz von X → Y)
:gdw
für alle Tupel µ,ν ∈ r: wenn µX = νX, dann auch µY = νY
•
eine Menge von funktionalen Abhängigkeiten F = { X1 → Y1, ... , Xp → Yp } heißt
gültig in einer Relation r mit dom r = U
:gdw
alle Xi → Yi aus F sind gültig in r
(oder r ist Instanz von F)
R (A1 : a1, ..., An : an) ,(AND)
R (A1 : a’1, ..., An : a’n) ,(AND)
ai1 = a’i1, ... , aik = a’ik .
(drückt aus, dass zwei auf den X-Attributen übereinstimmende Tupel aus (der Ausprägung zu)
R auch auf dem Attribut Aje übereinstimmen)
© Joachim Biskup, Universität Dortmund
Informationssysteme: relationaler Schemaentwurf - funktionale Abhängigkeiten und Schlüssel
17. Juli 2003
413
© Joachim Biskup, Universität Dortmund
funktionale Abhängigkeiten: Pragmatik
•
•
Informationssysteme: relationaler Schemaentwurf - funktionale Abhängigkeiten und Schlüssel
•
im vorgegebenen Relationenschema < R | U | F > wird als semantische Bedingungen
ausdrücklich vereinbart, welche funktionalen Abhängigkeiten gültig sein sollen
•
typischerweise die Formalisierung einer Modellierung der folgenden Art:
- ein durch die X-Werte identifiziertes Seiendes
bestimmt eindeutig die durch die Y-Werte beschriebenen Eigenschaften, bzw.
darüber hinaus sind in Instanzen von F im Allgemeinen noch weitere,
nicht ausdrücklich genannte funktionale Abhängigkeiten gültig
•
- ein durch die X-Werte identifiziertes Seiendes
steht mit genau einem durch die Y-Werte identifizierten Seienden in Beziehung
wir betrachten dann diejenigen funktionalen Abhängigkeiten,
die in allen Instanzen von F gültig sind:
•
•
Informationssysteme: relationaler Schemaentwurf - funktionale Abhängigkeiten und Schlüssel
414
logische Implikationen für funktionale Abhängigkeiten
mit einer funktionalen Abhängigkeit X → Y kann man als semantische Bedingung
verlangen, dass in den Instanzen zu einem Relationenschema
die X-Werte eines Tupels die Y-Werte eindeutig bestimmen sollen
© Joachim Biskup, Universität Dortmund
17. Juli 2003
17. Juli 2003
415
F impliziert (logisch) X → Y,
F |= X → Y
:gdw
für alle r mit dom r = U : wenn F in r gültig ist,
dann ist auch X → Y in r gültig
F+ := { X → Y | F |= X → Y }
© Joachim Biskup, Universität Dortmund
Informationssysteme: relationaler Schemaentwurf - funktionale Abhängigkeiten und Schlüssel
17. Juli 2003
416
Reflexivität, Transitivität und Erweiterung
•
•
Satz über die Korrektheit des Entscheidungsverfahrens für das
Implikationsproblem
folgende Implikationen sind für die Klasse der funktionalen Abhängigkeiten korrekt:
[Reflexivität]
für alle Y ⊂ X:
Ø |= X → Y
[Transitivität]
für alle X,Y, Z:
{ X → Y, Y → Z } |= X → Z
[Erweiterung]
für alle W ⊃ Z:
{ X →Y } |= X ∪ W → Y ∪ Z
hieraus einen Entscheidungsalgorithmus für das Problem “X → Y ∈ F ” gewinnen:
Abschluss (closure) einer Attributmenge X ⊂ U unter funktionalen Abhängigkeiten F,
cl (F, X), ist die (bezüglich ⊂ ) kleinste Menge mit den folgenden Eigenschaften:
1. X ⊂ cl (F, X)
für i+1:
Informationssysteme: relationaler Schemaentwurf - funktionale Abhängigkeiten und Schlüssel
17. Juli 2003
417
die Behauptung, X → Xi+1∈ F+, prüfen anhand der Definition von “impliziert”:
sei r mit dom r = U eine Relation derart, dass:
F in r gültig
(1a)
insbesondere:
Ri → Si in r gültig
(1b)
gemäß Induktionsannahme:
X → Xi in r gültig
(2)
betrachte Tupel µ,ν ∈ r mit:
µX = νX
(3)
mit (3) wegen (2):
µXi = νXi
(4)
mit (4) wegen Ri ⊂ Xi:
µRi = νRi
(5)
mit (5) wegen (1b):
µSi = νSi
(6)
wegen Xi+1 = Xi ∪ Si besagen (4) und (6)
das für µ,ν zu Zeigende:
µXi+1 = νXi+1
© Joachim Biskup, Universität Dortmund
Informationssysteme: relationaler Schemaentwurf - funktionale Abhängigkeiten und Schlüssel
betrachte: eine “Berechnung” von cl (F, X), d.h.
eine Folge von Attributmengen
und eine Folge von funktionalen Abhängigkeiten
X =: X0, ... , Xk := cl (F, X)
Ri → Si für i = 0,...,k-1 mit
Ri ⊂ Xi
Ri → Si ∈ F
Xi+1 = Xi ∪ Si.
X → Xi ∈ F+
durch Induktion über i:
für i = 0:
2. wenn R ⊂ cl (F, X) und R → S ∈ F, dann ist auch S ⊂ cl (F, X).
© Joachim Biskup, Universität Dortmund
Y ⊂ cl (F, X)
Beweis von 1.
+
erzeuge vermöge von F für X schrittweise alle Attribute A mit X → A ∈ F+
und prüfe, ob Y ganz in der Menge der so erzeugten Menge von Attribute enthalten ist
•
1. X → cl (F, X) ∈ F+
2. X → Y ∈ F+
genau dann, wenn
die Behauptung, X → X ∈ F+, ist gerade ein Spezialfall der Reflexivität
© Joachim Biskup, Universität Dortmund
Beweis von 2.
Informationssysteme: relationaler Schemaentwurf - funktionale Abhängigkeiten und Schlüssel
X → Y ∈ F+
17. Juli 2003
418
17. Juli 2003
420
genau dann, wenn Y ⊂ cl (F, X)
“⇐” [Korrektheit]:
17. Juli 2003
419
betrachte:
Y ⊂ cl (F, X)
(7)
gemäß 1.:
X → cl (F, X) ∈ F+
(8)
mit (7),(8), offensichtlich nach Definition:
X → Y ∈ F+
© Joachim Biskup, Universität Dortmund
Informationssysteme: relationaler Schemaentwurf - funktionale Abhängigkeiten und Schlüssel
Wiederholung: Definition der Armstrong-Relation
Beweis von 2. X → Y ∈ F+
genau dann, wenn Y ⊂ cl (F, X)
“⇒” [Vollständigkeit in Kontraposition]:
Y ⊄ cl (F, X)
betrachte:
konstruiere Armstrong-Relation r
r enthalte genau zwei Tupel µ und ν:
(9)
mit
a) F in r gültig
b) X → Y in r nicht gültig
d.h. r ist ein Gegenbeispiel dafür, dass X → Y von F impliziert wird:
r enthalte genau zwei Tupel µ und ν:
(10)
ν(A) := 1
ν(A) := 0
falls A ∈ cl (F, X)
falls A ∉ cl (F, X)
(11)
(12)
r
cl(F, X)
U \ cl (F, X)
für alle A ∈ U
(10)
µ
1 ... 1
1 ... 1
ν(A) := 1
ν(A) := 0
falls A ∈ cl (F, X)
falls A ∉ cl (F, X)
(11)
(12)
ν
1 ... 1
0 ... 0
r
cl(F, X)
U \ cl (F, X)
µ
1 ... 1
1 ... 1
ν
1 ... 1
0 ... 0
ex. Attribut A0 ∈ Y \ cl (F, X),
µ verschieden von ν
also:
Eigenschaft b) ist erfüllt
Informationssysteme: relationaler Schemaentwurf - funktionale Abhängigkeiten und Schlüssel
zeige Eigenschaft a)
17. Juli 2003
421
betrachte:
funktionale Abhängigkeit Ri → Si aus F
angenommen, (für die einzigen zwei Tupel aus r):
µRi = νRi
nach Konstruktion von r:
Ri ⊂ cl (F, X)
nach Definition des Abschlusses:
Si ⊂ cl (F, X)
nach Konstruktion von r
das für µ,ν zu Zeigende:
µSi = νSi
© Joachim Biskup, Universität Dortmund
Beispiel
Abschluss cl(F, {Id, Arzt}) kann etwa wie folgt berechnet werden:
X0 = { Id, Arzt }
X1 = { Id, Geschlecht, Arzt }
vermöge
X2 = { Id, Geschlecht, DaPa, Arzt }
vermöge
X3 = { Id, Geschlecht, DaPa, Arzt, DaAr }
vermöge
X4 = { Id, Geschlecht, DaPa, Arzt, DaAr, ArtPro } vermöge
also:
{ Id, Arzt } → U ∈ F+
ferner:
cl (F, {Id}) = { Id, Geschlecht, DaPa }
cl (F, {Arzt}) = { Arzt, DaAr }
17. Juli 2003
422
anschaulich: minimale Attributmenge, deren Werte
ein Tupel innerhalb einer Ausprägung schon eindeutig bestimmen
formal:
<R|U|F>
Relationenschema
1. eine Menge von Attributen X ⊂ U heißt Schlüssel (key) von < R | U | F >
:gdw
1. [Eindeutigkeit]
X → U ∈ F+
2. [Minimalität]
für alle Y ⊂≠ X gilt: Y → U ∉ F+
Id → Geschlecht
Id → DaPa
Arzt → DaAr
Id,Arzt → ArtPro
2. ein Attribut A ∈ U heißt Schlüsselattribut von < R | U | F >
:gdw
es gibt einen Schlüssel X von < R | U | F > mit A ∈ X
3. ein Attribut A ∈ U heißt Nichtschlüsselattribut von < R | U | F >
:gdw
A kommt in keinem Schlüssel von < R | U | F > vor
insbesondere: Id → U ∉ F+
Arzt → U ∉ F+
Informationssysteme: relationaler Schemaentwurf - funktionale Abhängigkeiten und Schlüssel
Informationssysteme: relationaler Schemaentwurf - funktionale Abhängigkeiten und Schlüssel
formale Definition von “Schlüssel”
Schema:
U = { Id, Geschlecht, DaPa, Arzt, DaAr, ArtPro }
F = { Id → Geschlecht,
Id → DaPa,
Arzt → DaAr,
Id,Arzt → ArtPro }
© Joachim Biskup, Universität Dortmund
für alle A ∈ U
µ(A) := 1
nach (9), Voraussetzung:
damit nach Konstruktion:
© Joachim Biskup, Universität Dortmund
µ(A) := 1
17. Juli 2003
423
© Joachim Biskup, Universität Dortmund
Informationssysteme: relationaler Schemaentwurf - funktionale Abhängigkeiten und Schlüssel
17. Juli 2003
424
Beispiel
Relationenschemas mit genau einem Schlüssel
Schema:
U = { Id, Geschlecht, DaPa, Arzt, DaAr, ArtPro }
F = { Id → Geschlecht,
Id → DaPa,
Arzt → DaAr,
Id,Arzt → ArtPro }
schon gezeigt:
{ Id, Arzt } ein Schlüssel von < | U | F >
im Allgemeinen:
Beispiel:
ein Relationenschema kann mehrere Schlüssel besitzen
U = { A, B, C }
F = { A,B → C, C → B }
Relationenschema
ex (U,F) := { A | A ∈ U, U \ {A} → A ∉ F+ }
Menge der Extremalattribute
folgende Aussagen sind äquivalent:
1. < R | U | F > besitzt genau einen Schlüssel
{ Id, Arzt } → U ∈ F+
Id → U ∉ F+
Arzt → U ∉ F+
also:
<R|U|F>
2. ex (U,F) ist Schlüssel von < R | U | F >
3. ex (U,F) → U ∈ F+
Beweis: entfällt
- sowohl { A, B } als auch { A, C } sind Schlüssel
- alle Attribute sind Schlüsselattribute
© Joachim Biskup, Universität Dortmund
Informationssysteme: relationaler Schemaentwurf - funktionale Abhängigkeiten und Schlüssel
17. Juli 2003
425
© Joachim Biskup, Universität Dortmund
Informationssysteme: relationaler Schemaentwurf - funktionale Abhängigkeiten und Schlüssel
17. Juli 2003
426
3. Normalform und Boyce / Codd-Normalform
12.2 Normalformen und Schema-Transformationen
•
Formalisierung der Entwurfsheuristik “Trennung von Gesichtspunkten”
•
zeichnet diejenigen Relationenschemas aus, in denen
die linken Seiten aller (vereinbarten oder implizierten) funktionalen Abhängigkeiten
einen Schlüssel enthalten
die einzigen durch funktionale Abhängigkeiten ausdrückbaren Strukturen
innerhalb des Relationenschemas sind also gegeben
durch Schlüssel und die jeweils von ihnen funktional abhängigen Attribute
•
Definition
1. ein Relationenschema < R | U | F > heißt in 3.Normalform :
:gdw
für alle Z ⊂ U, für alle Nichtschlüsselattribute A ∈ U:
wenn Z → A ∈ F+ und A ∉ Z, dann Z → U ∈ F+
•
2. ein Relationenschema < R | U | F > heißt in Boyce / Codd-Normalform
:gdw
für alle Z ⊂ U, für alle A ∈ U:
wenn Z → A ∈ F+ und A ∉ Z, dann Z → U ∈ F+
© Joachim Biskup, Universität Dortmund
Informationssysteme: relationaler Schemaentwurf - Normalformen und Schema-Transformationen
17. Juli 2003
427
© Joachim Biskup, Universität Dortmund
Informationssysteme: relationaler Schemaentwurf - Normalformen und Schema-Transformationen
17. Juli 2003
428
Relationenschemas in Boyce / Codd-Normalform
• Boyce / Codd-Normalform ist offensichtlich eine Verschärfung von 3.Normalform,
weil für mehr Attribute (nämlich alle, einschließlich der Schlüsselattribute)
die Normalformeigenschaft gefordert wird
• das Beispiel < R | { A,B,C } | { A,B → C, C → B } > zeigt, dass die Verschärfung echt ist:
- in 3.Normalform, weil das Schema überhaupt keine Nichtschlüsselattribute besitzt
- nicht in Boyce / Codd-Normalform, weil C → B ∈ F ⊂ F+, aber C → A ∉ F+
• schärfere Eigenschaft der Boyce / Codd-Normalform eigentlich wünschenswert,
aber man muss sich manchmal mit der schwächeren Eigenschaft der 3.Normalform begnügen
• in einem Relationenschema in Boyce / Codd-Normalform können insbesondere
die beiden folgenden Situationen nicht auftreten:
- partielle Abhängigkeiten der Form:
X ist Schlüssel
Y ⊂≠ X, d.h. insbesondere Y → X ∉ F+
A ∉ Y und Y → A ∈ F+
(d.h. das Attribut A ist nur von einer echten Teilmenge des Schlüssels X funktional abhängig)
- transitive Abhängigkeiten der Form:
X → Y ∈ F+
Y → X ∉ F+
A ∉ Y und Y → A ∈ F+
(d.h. das Attribut A ist transitiv über Y von X abhängig,
ohne dass Y funktional äquivalent mit X ist)
© Joachim Biskup, Universität Dortmund
Informationssysteme: relationaler Schemaentwurf - Normalformen und Schema-Transformationen
•
Definition
ein Relationenschema < R | U | F > heißt in Boyce / Codd-Normalform
:gdw
für alle Z ⊂ U, für alle A ∈ U:
wenn Z → A ∈ F+ und A ∉ Z, dann Z → U ∈ F+
•
Satz
ein Relationenschema < R | U | F > ist in Boyce / Codd-Normalform
gdw
für alle X → Y ∈ F mit Y ⊄ X gilt: X → U ∈ F+
Bemerkung: es gibt also ein effizientes Entscheidungsverfahren:
man teste einfach die endlich vielen Elemente von F
auf die angegebene Eigenschaft
Beweis:
17. Juli 2003
429
entfällt
© Joachim Biskup, Universität Dortmund
Kostenarten beim Betreiben einer Datenbank
•
Speicherungskosten
•
Normalformen fordern Relationenschemas,
deren Struktur im Wesentlichen bereits durch Schlüssel,
am besten durch genau einen Schlüssel bestimmt sind
•
verwendet man solche Relationenschemas für Basisrelationen,
so kann man durch geeignet angelegte Zugriffsstrukturen, etwa
- als B*-Bäume oder durch Hash-Verfahren verwirklichte
Indexe bezüglich der Schlüsselattribute oder
- Sortierungen bezüglich der Schlüsselattribute,
die Anfragekosten für Selektionen an diese Relationen gering halten
•
ferner sind die Änderungskosten gering, da
- weitgehend nur die lokalen Schlüsselbedingungen überprüft werden müssen
Anfragekosten
entstehen bei der Auswertung von Anfragen;
im Allgemeinen erscheint Schätzung der Anfragekosten nur schwerlich möglich;
häufig jedoch kennt man die Wünsche bestimmter Benutzergruppen und
kann sie etwa als Sichtrelationen ausdrücklich vereinbaren
•
Änderungskosten
entstehen bei der Ausführung von Änderungen, wobei die
Überprüfung und Sicherstellung der semantischen Bedingungen zu berücksichtigen sind
•
430
die drei Kostenarten entsprechen den drei Darstellungsarten von Wissen:
Aufzählungen, (Sicht-)Regeln, Bedingungen
•
17. Juli 2003
Kosten und Normalformen
fallen im Wesentlichen durch das Speichern der Basisrelationen zum Datenbankschema an
•
Informationssysteme: relationaler Schemaentwurf - Normalformen und Schema-Transformationen
zwischen den Kostenarten bestehen nun offensichtlich Wechselbeziehungen
- keine “Änderungs-Anomalien” auftreten
- “redundanzfreie Speicherung” vorliegt
© Joachim Biskup, Universität Dortmund
Informationssysteme: relationaler Schemaentwurf - Normalformen und Schema-Transformationen
17. Juli 2003
431
© Joachim Biskup, Universität Dortmund
Informationssysteme: relationaler Schemaentwurf - Normalformen und Schema-Transformationen
17. Juli 2003
432
Überlegung zur Redundanzfreiheit
Instanzenunterstützung
Definition
RS = < < R1 | X1 | SC1 >, ... , < Rn | Xn | SCn >
RS’ = < < R’1 | X’1 | SC’1 >, ... , < R’n' | X’n' | SC’n' >
seien Datenbankschemas
(3., Boyce/Codd und weitere) Normalformen besagen auch,
dass die gespeicherten Relationen im gewissen Sinne redundanzfrei sind und
dass damit die Speicherungskosten gering sind:
Beispielüberlegung für Schema < R | U | F > in Boyce / Codd-Normalform:
- betrachte eine nichttriviale funktionale Abhängigkeit Z → A: dann Z → U ∈ F+
- zerlege durch Projektion probeweise in Komponenten Y1 = Z ∪ {A} und Z ⊂ Y2 = X \ {A}
- beide Komponenten besitzen die Eindeutigkeitseigenschaft:
jede Projektion einer gespeicherten Relation r enthält genauso viele Tupel wie r,
d.h. || πY1 (r) || = || πY2(r) || = || r ||
würde man also r in diese Projektionen zerlegen,
so würden beim Wiederherstellen von r als r = πY1(r)
πY2(r)
[siehe später: stets möglich]
keine “wirklich neuen Tupel erzeugt”,
sondern die zusammenpassenden Tupel würden “einander nur verlängern”
| SC |
| SC’|
> und
>
1. RS’ unterstützt RS (mit Anfragesprache L)
:gdw
es gibt (in L ausdrückbare) relationale Anfragen Q1,...,Qn, so daß gilt:
i) Qi : sat << | X’1 | >,...,< | X’n' | > | | > → sat < | Xi | >
ii) die Anfrage Q : = (Q1,...,Qn) mit Q(f’) := (Q1(f’),...,Qn(f’))
ist surjektiv bezüglich Instanzen, d.h.
satRS ⊂ Q[satRS']
2. RS’ unterstützt RS treu,
wenn zusätzlich
Q[satRS'] ⊂ satRS
3. RS’ unterstützt RS eindeutig, wenn zusätzlich Q auf satRS' injektiv
durch das Zerlegen könnten die Speicherungskosten niemals gesenkt werden,
sondern im Gegenteil:
das mehrfache Abspeichern der Werte zu den Verbundattributen würde die Kosten stets erhöhen
umgekehrt: liegt keine Normalform vor, so gibt es ein Beispiel mit || πY1(r) || < || r ||
© Joachim Biskup, Universität Dortmund
Informationssysteme: relationaler Schemaentwurf - Normalformen und Schema-Transformationen
17. Juli 2003
433
© Joachim Biskup, Universität Dortmund
Informationssysteme: relationaler Schemaentwurf - Normalformen und Schema-Transformationen
Instanzenunterstützung und Anfrageübersetzung
“⇒” Voraussetzung: RS’ unterstützt RS vermöge Q := (Q1,...,Qn)
eine Anfrage P bezüglich RS
zu zeigen:
P’ := P ° Q hat die gewünschte Eigenschaft
denn:
zu f ∈ satRS kann man wegen der Surjektivität von Q
ein f’∈ satRS' finden mit f = Q(f’), so dass
P(f) = P(Q(f’)) = P’(f’)
© Joachim Biskup, Universität Dortmund
17. Juli 2003
436
Universalrelation-Schema
Überdeckung der Attributmenge
Syntax:
[X1,...,Xn] heißt Verbundabhängigkeit
Semantik:
[X1,...,Xn] heißt gültig in einer Relation r mit dom r = U
r
Erinnerung:
es gibt zur identischen Anfrage P bezüglich RS mit P(f) := f
eine Anfrage Q bezüglich RS,
so dass für alle f ∈ satRS ein f’ ∈ satRS' existiert mit
f = P(f) = Q(f’), d.h. Q ist surjektiv bezüglich Instanzen
Informationssysteme: relationaler Schemaentwurf - Normalformen und Schema-Transformationen
< R | U | SC >
U = ∪i=1,...,n Xi
(oder r ist Instanz von
:gdw
“⇐” Voraussetzung: die im Satz angegebene Übersetzungseigenschaft
insbesondere:
434
Verbundabhängigkeiten
Satz
1. RS’ unterstützt RS
gdw
zu jeder Anfrage P bezüglich RS gibt es eine Anfrage P’ bezüglich RS’ derart, dass:
zu jeder Instanz f ∈ satRS gibt es eine Instanz f’ ∈ satRS' mit P(f) = P’(f’)
Beweis:
betrachte:
17. Juli 2003
=
i=1,...,n πXi (
[X1,...,Xn])
r)
“⊂” gilt immer!
Implikationen: entsprechend wie für funktionale Abhängigkeiten definiert;
es gibt Entscheidungsverfahren
17. Juli 2003
435
© Joachim Biskup, Universität Dortmund
Informationssysteme: relationaler Schemaentwurf - Normalformen und Schema-Transformationen
Verbund-Unterstützung eines Universalrelation-Schemas
Satz
< R | U | SC >
RS = < < R1 | X1 | Ø >,..., < Rn | Xn | Ø > | Ø | >
“sat< R | U | SC > ⊂ Q[satRS]” ⇒ “
grundlegende Eigenschaft des Verbunds:
für alle (r1,...,rn) ∈ satRS:
i=1,...,n ri =
j=1,...,n πXj (
Universalrelation-Schema
Datenbankschema
U := ∪i=1,...,n Xi
Q : satRS → sat< R | U | >
Q(r1,...,rn) :=
i=1,...,n ri
Überdeckung
Verbund-Anfrage
wegen sat< R | U | SC > ⊂ Q[satRS]:
1. sat< R | U | SC > ⊂ Q[satRS],
d.h. RS unterstützt < R | U | SC > mit Unterstützungsanfrage Q
“
r ∈ sat< R | U | SC >
wegen [X1,...,Xn] ∈
SC+:
Beweis:
Informationssysteme: relationaler Schemaentwurf - Normalformen und Schema-Transformationen
17. Juli 2003
437
Verbund-Unterstützung eines Universalrelation-Schemas mit
funktionalen Abhängigkeiten
Satz
<R|U|F>
F
RS = < < R1 | X1 | Ø >, < R2 | X2 | Ø > | Ø | >
X1 ∪ X2 = U und X1 ∩ X2 ≠ Ø
oder
17. Juli 2003
438
Dann gibt es ein Datenbankschema
RS = < < R1 | X1 | F1 >,...,< Rn | Xn | Fn > | | > mit folgenden Eigenschaften:
1.
RS unterstützt < R | U | F > mit Unterstützungsanfrage Q(r1,...,rn) :=
2.
3.
Fi = {X → Y | X ∪ Y ⊂ Xi, X → Y ∈
jede Komponente < Ri | Xi | Fi > ist in Boyce / Codd-Normalform
i=1,...,n ri.
F+}
r2
[X1,X2] ∈ F+
3. X1 ∩ X2 → X1 \ X2 ∈ F+
Informationssysteme: relationaler Schemaentwurf - Normalformen und Schema-Transformationen
Satz
< R | U | F > Universalrelation-Schema mit
F
funktionale Abhängigkeiten
Dann sind folgende Aussagen äquivalent:
2.
© Joachim Biskup, Universität Dortmund
Verbund-unterstützte Zerlegung in Boyce / Codd-Normalform
Universalrelation-Schema
funktionale Abhängigkeiten
Datenbankschema mit
1. RS unterstützt < R | U | F > mit Unterstützungsanfrage Q(r1,r2) := r1
r =
i=1,...,n πXi (r) = Q(πX1(r),...,πXn(r)),
wobei (πX1(r),...,πXn(r)) ∈ satRS
sat< R | U | SC > ⊂ Q[satRS]
also:
© Joachim Biskup, Universität Dortmund
[X1,...,Xn] ∈ SC+
[X1,...,Xn] ∈ SC+” ⇒ “sat< R | U | SC > ⊂ Q[satRS]”:
betrachte:
[X1,...,Xn] ∈ SC+
i=1,...,n ri)
alle Relationen r ∈ Q[satRS] erfüllen die
Verbundabhängigkeit
[X1,...,Xn]
also:
Dann sind folgende Aussagen äquivalent:
2.
[X1,...,Xn] ∈ SC+”:
(konstruktiver, induktiver) Beweis:
X1 ∩ X2 → X2 \ X1 ∈ F+
Idee:
zerlege Schema schrittweise,
bis alle “verbotenen Teilstrukturen” entfernt sind
Beweis: entfällt
© Joachim Biskup, Universität Dortmund
Informationssysteme: relationaler Schemaentwurf - Normalformen und Schema-Transformationen
17. Juli 2003
439
© Joachim Biskup, Universität Dortmund
Informationssysteme: relationaler Schemaentwurf - Normalformen und Schema-Transformationen
17. Juli 2003
440
zu erreichen:
1. RS unterstützt < R | U | F > mit Unterstützungsanfrage Q(r1,...,rn) :=
2.
3.
Beispiel für Zerlegung in Boyce / Codd-Normalform
i=1,...,n ri.
U
F
Fi = {X → Y | X ∪ Y ⊂ Xi, X → Y ∈ F+}
jede Komponente < Ri | Xi | Fi > ist in Boyce / Codd-Normalform
Induktionsbeginn:
RS0 := < < R | U | F+> | | > erfüllt sicherlich die Eigenschaften 1. und 2.
Induktionsschritt:
dann:
RSj sei schon konstruiert, erfülle 1. und 2., aber noch nicht 3.
es gibt “verbotene” Komponente < Ri | Xi | Fi > von RSj mit
Z ⊂ Xi, A ∈ Xi, Z → A ∈
F+,
A ∉ Z, Z → Xi ∉
zerlege in zwei Komponenten mit Attributmengen:
Xi1 := Z ∪ {A | Z → A ∈ F+} und
< |U|F>
Arzt → DaAr
F+
Xi2 :=
Z ∪ ( Xi \ Xi1)
Definition von RSj+1: ersetze die alte Komponente < Ri | Xi | Fi > durch die neuen Komponenten
< Ri1 | Xi1 | Fi1 > und < Ri2 | Xi2 | Fi2 >,
definiere dabei Fi1 und Fi2 gemäß 2.
nach Konstruktion:
RSj+1 erfüllt wieder 1. und 2.
Informationssysteme: relationaler Schemaentwurf - Normalformen und Schema-Transformationen
17. Juli 2003
nicht in Boyce / Codd-Normalform:
“verbotene Teilstruktur”
entsprechend zerlegen:
< R1 | {Arzt, DaAr}
| { Arzt →DaAr } >
< R2 | {Id, Geschlecht, DaPa, Arzt, ArtPro} | {Id →Geschlecht, Id → DaPa, Id,Arzt →ArtPro}>
zweites Relationenschema nicht in Boyce / Codd-Normalform:
Id → DaPa
“verbotene Teilstruktur”
entsprechend zerlegen:
< R21 | {Id, Geschlecht, DaPa} | { Id → Geschlecht, Id → DaPa }
< R22 | {Id, Arzt, ArtPro}
| { Id,Arzt →ArtPro }
Zerlegungsvorgang bricht ab: - U ist endlich
- Xi1 und Xi2 der neuen Komponenten
sind jeweils echte Teilmengen von Xi der alten Komponente
© Joachim Biskup, Universität Dortmund
:= { Id, Geschlecht, DaPa, Arzt, DaAr, ArtPro }
:= { Id → Geschlecht,
Id → DaPa,
Arzt → DaAr,
Id,Arzt → ArtPro}
>
>
die durch R1, R21 und R22 benannten Relationenschemas sind alle in Boyce / Codd-Normalform
441
© Joachim Biskup, Universität Dortmund
Informationssysteme: relationaler Schemaentwurf - Normalformen und Schema-Transformationen
Boyce / Codd-Normalform und treue Unterstützung
17. Juli 2003
442
treue Zerlegungen
Satz
<R|U|F>
RS = < < R1 | X1 | F1 >,..., < Rn | Xn | Fn > | | >
< R | {A, B, C} | { A,B → C, C → B} > nicht in Boyce / Codd-Normalform:
C→B
verbotene Teilstruktur
∪i=1,...,n Xi
(versuchsweise) entsprechend zerlegen:
< R1 | {B, C} | { C → B } >
< R2 | {A, C} | Ø >
=
U
F und F1,...,Fn
Mengen von funktionalen Abhängigkeiten
Q : satRS → sat< R | U | > mit
Beobachtungen:
• im ursprünglichen Relationenschema vereinbarte funktionale Abhängigkeit A,B → C
kann in der Zerlegung nicht mehr “repräsentiert” werden
• man kann eine Beispielinstanz (r1,r2) zu der Zerlegung konstruieren,
Universalrelation-Schema und
Datenbankschema mit
Q(r1,...,rn) :=
i=1,...,n ri
Verbund-Anfrage
∪i=1,...,n Fi )+ ⊃ F,
Wenn
(
dann
Q[satRS] ⊂ sat< R | U | F > .
deren Verbund keine Instanz des Universalrelation-Schemas ist:
r1
B
C
b
b
c
d
r2
A
C
a
a
c
d
r1
r2
A
B
C
a
a
b
b
c
d
• man kann nachprüfen, dass auch keine andere Zerlegung
gleichzeitig Relationenschemas in Boyce / Codd-Normalform und treue Unterstützung liefert
© Joachim Biskup, Universität Dortmund
Informationssysteme: relationaler Schemaentwurf - Normalformen und Schema-Transformationen
17. Juli 2003
443
Beweis:
betrachte:
(r1,...,rn) ∈ satRS und r :=
wir zeigen unten:
alle funktionalen Abhängigkeiten X → Y ∈ ∪i=1,...,n Fi sind in r gültig
dann ebenfalls:
alle funktionalen Abhängigkeiten aus ( ∪i=1,...,n Fi )+ in r gültig
nach Voraussetzung:
alle funktionalen Abhängigkeiten aus F in r gültig
also:
r ∈ sat< R | U | F >
© Joachim Biskup, Universität Dortmund
i=1,...,n
ri
Informationssysteme: relationaler Schemaentwurf - Normalformen und Schema-Transformationen
17. Juli 2003
444
alle funktionalen Abhängigkeiten X → Y ∈ ∪i=1,...,n Fi sind in r gültig
noch zu zeigen:
betrachte:
X → Y ∈ Fi,
insbesondere gilt:
X ∪ Y ⊂ Xi.
betrachte:
zwei Tupel µ ∈ r und ν ∈ r mit µX = νX
Definition von r:
µi := µXi ∈ ri und νi := νXi ∈ ri
ferner:
µiX = νiX.
wegen X → Y in ri gültig:
µiY = νi Y
also auch:
µY = νY
© Joachim Biskup, Universität Dortmund
treue Verbund-Unterstützung eines Universalrelation-Schemas mit
funktionalen Abhängigkeiten
Korollar
<R|U|F>
RS = < < R1 | X1 | F1 >,...,
∪i=1,...,n Xi = U
F und F1,...,Fn
Wenn
Überdeckung
Mengen von funktionalen Abhängigkeiten
[X1,...,Xn] ∈ F+ und ( ∪i=1,...,n Fi )+ ⊃ F,
dann unterstützt RS das Universalrelation-Schema < R | U | F >
treu mit Anfrageunterstützung Q(r1,...,rn) :=
i=1,...,n ri .
Informationssysteme: relationaler Schemaentwurf - Normalformen und Schema-Transformationen
17. Juli 2003
445
© Joachim Biskup, Universität Dortmund
RS unterstützt < R | U | F > treu mit Unterstützungsanfrage Q(r1,...,rn) :=
2.
3.
Fi = {X → Y | X ∪ Y ⊂ Xi, X → Y ∈
jede Komponente < Ri | Xi | Fi > in 3.Normalform
i=1,...,n ri
konstruktive Beweisidee:
• bestimme zur gegebenen Menge F von funktionalen Abhängigkeiten eine dazu
äquivalente Menge G mit F+ = G+ derart, dass G in gewissem Sinne redundanzfrei ist
• dann “synthetisiere” für die funktionalen Abhängigkeiten aus G Relationenschemas,
die die redundanzfreien funktionalen Abhängigkeiten “repräsentieren”
• sichere Verbund-Unterstützung,
indem ein Relationenschema mit Schlüssel K für die gesamte Attributmenge U hinzufügt wird,
falls keines der “synthetisierten” Relationenschemas schon einen solchen Schlüssel enthält
17. Juli 2003
446
X’ ⊂ X mit X’ → A ∈ G+
und ersetze, falls X’ ⊂≠ X, X → A durch X’ → A
3. [entferne globale Redundanz]
für X → A ∈ G prüfe, ob X → A ∈ (G \ {X → A})+;
falls dies der Fall ist, so entferne X → A aus G
4. [“synthetisiere” Relationenschemas, “repräsentiere” F]
SollG := { X | es gibt A ∈ U mit X →A ∈ G } die Menge der in G vorkommenden linken Seiten
für Yi ∈ SollG bilde ein Relationenschema < Ri | Xi | Fi > mit
Xi := Yi ∪ { A | Yi → A ∈ G }
F+}
Informationssysteme: relationaler Schemaentwurf - Normalformen und Schema-Transformationen
17. Juli 2003
1. [mache funktionale Abhängigkeiten elementar]
setze G := {X → A | es gibt X → Y ∈ F mit A ∈ Y}
d.h. ersetze X → {A1,...,Ak} ∈ F
durch
X → A1, ... , X → Ak
2. [entferne lokale Redundanz]
für X → A ∈ G bestimme eine (bezüglich ⊂) minimale Attributmenge
es gibt ein Datenbankschema RS = < < R1 | X1 | F1 >,...,< Rn | Xn | Fn > | | > derart, dass:
1.
Informationssysteme: relationaler Schemaentwurf - Normalformen und Schema-Transformationen
Syntheseverfahren
Universalrelation-Schema
funktionale Abhängigkeiten
© Joachim Biskup, Universität Dortmund
Universalrelation-Schema
Datenbankschema mit
Fi+ ⊂ {R → S | R ∪ S ⊂ Xi, R → S ∈ F+}
treue und Verbund-unterstützende Synthese in 3.Normalform
Satz
<R|U|F>
F
< Rn | Xn | Fn > | | >
447
Fi := { X → Y | X ∪ Y ⊂ Xi, X → Y ∈ G+ } ⊃ { Yi → A | Yi → A ∈ G }
5. [Verbund-Unterstützung]
prüfe, ob für ein Yi ∈ SollG die funktionale Abhängigkeit Yi → U ∈ G+ gilt;
falls dies nicht der Fall ist, so bestimme einen Schlüssel K von < R | U | F > und
bilde ein weiteres Relationenschema mit Xi := K und Fi := Ø
© Joachim Biskup, Universität Dortmund
Informationssysteme: relationaler Schemaentwurf - Normalformen und Schema-Transformationen
17. Juli 2003
448
Beispiel für Syntheseverfahren
Eingaben:
U
F
=
=
{ Id, Geschlecht, DaPa, Arzt, DaAr, ArtPro }
{ Id → Geschlecht,
Id → DaPa,
Arzt → DaAr,
Id,Arzt → ArtPro }
Teil V
Schritte 1, 2 und 3:
G = F
(die vereinbarten funktionalen Abhängigkeiten bleiben unverändert)
Schritt 4:
SollG = {Id, Arzt, {Id, Arzt}},
und es werden folgende Relationenschemas “synthetisiert”:
Mehrbenutzerbetrieb und Transaktionen
< R1 | {Id, Geschlecht, DaPa} | { Id → Geschlecht, Id → DaPa } >
< R2 | {Arzt, DaAr}
| { Arzt → DaAr }
>
< R3 | {Id, Arzt, ArtPro}
| { Id,Arzt → ArtPro }
>
Schritt 5:
© Joachim Biskup, Universität Dortmund
cl(F, {Id, Arzt}) = U,
so dass kein weiteres Relationenschema hinzugeführt werden muss
Informationssysteme: relationaler Schemaentwurf - Normalformen und Schema-Transformationen
17. Juli 2003
449
© Joachim Biskup, Universität Dortmund
Informationssysteme
17. Juli 2003
450
Transaktionen: einige Vorüberlegungen
13 Transaktionen
•
nicht nur einzelne Handlungen, sondern auch (formale) Handlungsfolgen
•
semantische Bedingungen (als statische Gesichtspunkte)
auch als dynamische Gesichtspunkte:
- Aufzählungen nur derart ändern,
dass anschließend die semantischen Bedingungen wieder erfüllt sind
- bei Änderungswünschen bezüglich mehrerer Objekte oder bei interrelationalen Bedingungen,
neben der eigentlich gewünschten Änderung
auch noch Folgeänderungen notwendig;
möglicherweise werden die Bedingungen zwischenzeitlich verletzt
- Änderungsfolgen als unteilbare Operationen,
die entweder gar nicht oder vollständig ausgeführt werden
•
© Joachim Biskup, Universität Dortmund
Informationssysteme: Transaktionen
17. Juli 2003
451
Daten für viele und verschiedenartige Benutzer verfügbar halten:
diese arbeiten im Allgemeinen parallel und möglichst unabhängig voneinander
© Joachim Biskup, Universität Dortmund
Informationssysteme: Transaktionen
17. Juli 2003
452
Parallelität und Unabhängigkeit: ein Beispiel
Datenbankobjekt:
dessen A-Komponente durch Programm bearbeiten:
R
P ≡
eine parallele Nutzung eines gemeinsamen Informationssystems
BEGIN
Read R.A;
R.A := R.A + 1;
Write R.A
END
zwei Benutzer starten parallel und unabhängig voneinander
jeweils einen das Programm P ausführenden Prozess:
Q1 bzw. Q2
Prozess Qi benutzt lokalen Speicher:
Zi
erhöhe
lokaler Speicher
Z1 von Q1
erhöhe
lokaler Speicher
Z2 von Q2
schreibe
lies
lies
schreibe
Semantik des Programms:
- lies A-Komponente des Objekts R im gemeinsamen Informationssystem
und merke den Wert im lokalen Speicher des Prozesses:
Zi := R.A ;
- erhöhe diesen Wert im lokalen Speicher um 1:
- schreibe den neuen Wert zurück in die A-Komponente
des Objekts R im gemeinsamen Informationssystem:
© Joachim Biskup, Universität Dortmund
Zi
:=
gemeinsames
Informationssystem
mit dauerhaften
Werten
Zi + 1 ;
Objekt R
R.A :=
Zi .
Informationssysteme: Transaktionen
17. Juli 2003
453
© Joachim Biskup, Universität Dortmund
Informationssysteme: Transaktionen
eine unerwünschte sequentielle Ausführung
Anweisung für Prozeß
Q1
ausgeführte
Semantik
Read R.A
Read R.A
3
4a R.A := R.A+1
- bei schwierigen Fehlerlagen oder
- gar vollständigen Systemzusammenbrüchen
10
— —
ihre Gültigkeit behalten.
Z1 := R.A
10
10 —
Z2 := R.A
10
10 10
Z1 := Z 1 + 1
10
11
4b
R.A := R.A+1
Z2 := Z 2 + 1
5
6
Write R.A
R.A := Z 2
11
11 11
R.A := Z 1
11
11 11
Write R.A
© Joachim Biskup, Universität Dortmund
Informationssysteme: Transaktionen
17. Juli 2003
456
insbesondere:
einmal als wirksam erklärte Änderungen der gemeinsamen Daten sollen auch
Wertverlauf im
lokalen
gemeinsamen
Informationssystem Speicher
Z1 Z2
1
2
Informationssysteme sollen Daten dauerhaft und verlässlich verwalten,
R.A
Q2
454
eine weitere Vorüberlegung
•
Zeit
17. Juli 2003
11
17. Juli 2003
455
© Joachim Biskup, Universität Dortmund
Informationssysteme: Transaktionen
Transaktionen
•
programmiersprachliches Konstrukt zur Unterstützung der Vorüberlegungen
•
fasst eine Folge von Anweisungen zu einer Einheit zusammen
•
durch ein geeignetes Klammerpaar syntaktisch gekennzeichnet, etwa
ACID- Eigenschaften
•
Atomarität
•
Consistenzbewahrung
BEGIN_TRANS und END_TRANS
•
(atomicity)
im Sinne von Unteilbarkeit
(consistency preservation),
im Sinne von Erhaltung der semantischen Bedingungen
semantisch sollen folgende Eigenschaften erreicht werden:
•
Isolation
- Transaktionen erhalten die semantischen Bedingungen
(isolation)
im Sinne von Unabhängigkeit
- Transaktionen können parallel ablaufen
•
Dauerhaftigkeit
(durability)
insbesondere im Sinne von Fehlertoleranz
- parallel ablaufende Transaktionen sind im Wesentlichen
voneinander unabhängig und
beeinflussen einander allenfalls in genau vorhersehbarer Weise
- Transaktionen sind unteilbar, d.h. werden gar nicht oder vollständig wirksam
- wirksam gewordene Transaktionen verändern Daten dauerhaft
© Joachim Biskup, Universität Dortmund
Informationssysteme: Transaktionen
17. Juli 2003
457
Transaktionen erhalten Bedingungen
•
•
© Joachim Biskup, Universität Dortmund
Informationssysteme: Transaktionen
17. Juli 2003
458
17. Juli 2003
460
Datenebenen und Wirksamwerden: einfachstes Modell
Benutzer muss dies im Allgemeinen durch
sorgfältigen Entwurf der Transaktionen erreichen
bearbeite
lokale Daten
Informationssystem unterstützt dabei durch programmiersprachliche Konstrukte:
- Meldungen über den Erhalt bzw. die Verletzung von Bedingungen bei Änderungen,
wobei bei Verletzung der Bedingungen eine Liste der betroffenen Objekte geliefert wird,
etwa Affected(objekt_liste)
schreibe
zwischenzeitliche Kopien
lies
- Anweisung zum vorzeitigen Abbruch einer Transaktion,
die die gesamte Transaktion gar nicht wirksam werden lässt,
etwa Abort_Trans
commit
- Anweisung zum vollständigen Wirksamwerden einer Transaktion,
etwa Commit_Trans
dauerhafte Daten
© Joachim Biskup, Universität Dortmund
Informationssysteme: Transaktionen
17. Juli 2003
459
© Joachim Biskup, Universität Dortmund
Informationssysteme: Transaktionen
Beispiele mit Bearbeitung von zwei Objekten/Folgeänderungen
PROCEDURE
PROCEDURE Ändere_mit_Folgeänderungen(objekt_1 : Objekt);
VAR
betroffen
: Objekt;
auswirkungen : Objekt_Liste;
BEGIN
BEGIN_TRANS
(*Transaktion wird gestartet*)
Ändere_zwei_Objekte(
objekt_1, objekt_2 : Objekt);
BEGIN
BEGIN_TRANS
Read(objekt_1);
Read(objekt_2);
Read(objekt_1); Bearbeite(objekt_1); Write(objekt_1);
(*Transaktion wird gestartet*)
IF Bedingungen erfüllt
THEN Commit_Trans
(*Änderung wirksam*)
ELSE FORALL betroffen in Affected(auswirkungen) DO
Read(betroffen);
Bearbeite_Folgen(betroffen);
Write(betroffen)
END_FORALL;
IF Bedingungen erfüllt
THEN Commit_Trans (*alle Änderungen wirksam*)
ELSE Abort_Trans (*keine Änderung wirksam*)
END_IF
END_IF
END_TRANS
(*Transaktion wird beendet*)
END Ändere_mit_Folgeänderungen;
Bearbeite(objekt_1, objekt_2);
Write(objekt_1);
Write(objekt_2);
IF Bedingungen erfüllt
THEN Commit_Trans (*beide Änderungen werden wirksam*)
ELSE Abort_Trans (*keine Änderung wird wirksam*)
END
END_TRANS
(*Transaktion wird beendet*)
END Ändere_zwei_Objekte;
© Joachim Biskup, Universität Dortmund
Informationssysteme: Transaktionen
17. Juli 2003
461
© Joachim Biskup, Universität Dortmund
Informationssysteme: Transaktionen
Transaktionen laufen parallel und voneinander unabhängig ab
•
muss im Allgemeinen durch das Informationssystem selbst durchgesetzt werden
•
von den Benutzern wird gegebenenfalls verlangt,
dass ihre Transaktionen einen vorgeschriebenen Aufbau (Protokolle) einhalten
•
17. Juli 2003
462
zwei Randfälle
Scheduler kann die Transaktionen beliebig ineinander verschränkt mischen:
- einfache Verwirklichung derart, dass
die Anweisungen in der Reihenfolge angeordnet bleiben,
wie sie angefordert werden
- Scheduler im Wesentlichen nur Warteschlange für Anweisungen
- einerseits hohe Parallelität
der Scheduler hat dann die Aufgabe,
die Anweisungen von parallel auszuführenden Transaktionen
in einer geeigneten Reihenfolge anzuordnen
- andererseits große Unsicherheit über die wechselseitige Beeinflussung der Transaktionen
Scheduler ordnet die Transaktionen als Ganzes seriell an:
- einfache Verwirklichung derart, dass
die Transaktionen in der Reihenfolge angeordnet werden,
wie sie angefordert werden
- Scheduler im Wesentlichen nur Warteschlange für Transaktionen
- einerseits im Wesentlichen keine Parallelität
- andererseits wechselseitige Beeinflussung der Transaktionen genau vorhersehbar
© Joachim Biskup, Universität Dortmund
Informationssysteme: Transaktionen
17. Juli 2003
463
© Joachim Biskup, Universität Dortmund
Informationssysteme: Transaktionen
17. Juli 2003
464
korrekte Reihenfolgen und Serialisierbarkeit
Anweisungen, Transaktionen, Pläne
um die Vorteile der beiden Randfälle möglichst gut gleichzeitig zu erreichen,
sollen folgende Reihenfolgen als korrekt (geeignet) definiert werden:
K1. [sichere Vorhersehbarkeit]
eine Reihenfolge,
die durch beliebige serielle Anordnung der Transaktionen als Ganzes entsteht,
sei korrekt
Menge von Operatoren (Aktionen):
A
Menge von Objekten:
O
Menge der Anweisungen:
S := A × O
Menge der Transaktionen:
T := { t | t : {1,...,n} → S , t ist injektiv }
Plan (schedule) zu T:
K2. [erlaubte Parallelität]
jede Reihenfolge,
deren Auswirkung (unter den jeweils getroffenen Annahmen)
ununterscheidbar von der Auswirkung einer nach K1 korrekten Reihenfolge ist,
sei ebenfalls korrekt
für eine Menge von Transaktionen T = {t1,...,tk} mit ti = (ti.1,..., ti.ni)
eine Funktion
P: { 1, ... ,n1+...+nk } ----> { i.j | 1≤i≤k, 1≤j≤ni }
mit
- P ist bijektiv
- für alle i, für alle j1, j2 gilt :
j1 < j2 ⇔ P-1 (i.j1) < P-1 (i.j2)
in Praxis und Theorie:
verschiedene Annahmen und Auswirkungen führen
zu verschiedenen Begriffen von Korrektheit bzw. Serialisierbarkeit
© Joachim Biskup, Universität Dortmund
Informationssysteme: Transaktionen
17. Juli 2003
465
Schreibweisen
=
=
=
=
( ti.1
, ... , ti.ni
)
(
Opi.1 oi.1 , ... ,
Opi.ni oi.ni)
( 1: Opi.1 oi.1 , ... , ni: Opi.ni oi.ni)
( i.1:Opi.1 oi.1 , ... , i.ni: Opi.ni oi.ni)
t1 := ( 1.1: Read A,
1.2: Write C,
1.3: Write B )
mit ti.j ist j-te Anweisung von ti
mit ti.j = (Opi.j oi.j), Opi.j ∈ A, oi.j ∈ O
für
i.j : Opi.j oi.j bezeichnet also:
i
eine Transaktion ti
j
eine bezüglich der Transaktion ti lokale Anweisungsnummer
Opi.j
die auszuführende Operation
oi.j
das betroffene Objekt
Notation für Pläne:
P = ( p1
, ... , pm )
= ( tp_1
, ... , tp_m )
=
© Joachim Biskup, Universität Dortmund
Informationssysteme: Transaktionen
t2 := ( 2.1: Read A,
2.2: Read B,
2.3: Write D )
A
mit m = n1+...+nk, pl := il.jl := P(l)
mit tp_l= ti_l.j_l = Opi_l.j_l oi_l.j_l
ist jl-te Anweisung der il-ten Transaktion
( i_1.j_1:Opi_1.j_1 oi_1.j_1, ... , i_m.j_m:Opi_m.j_m oi_m.j_m )
Definitionsbereich von P:
Informationssysteme: Transaktionen
17. Juli 2003
466
Plan P zu Transaktionen T = { t1, t2, t3, t4 } mit “Datenflüssen”
Notation für Transaktionen (und ihre Komponenten):
ti
© Joachim Biskup, Universität Dortmund
beschreibt die Zeitpunkte,
zu denen die einzelnen Anweisungen ausgeführt werden
17. Juli 2003
467
2.1:
1.1:
1.2:
3.1:
1.3:
4.1:
4.2:
2.2:
3.2:
4.3:
2.3:
4.4:
t3 := ( 3.1: Read C,
3.2: Write A )
B
C
t4 := ( 4.1: Read B,
4.2: Read C,
4.3: Write B,
4.4: Write A )
D
Read A,
Read A,
Write C,
Read C,
Write B,
Read B,
Read C,
Read B,
Write A,
Write B,
Write D,
Write A,
© Joachim Biskup, Universität Dortmund
Informationssysteme: Transaktionen
17. Juli 2003
468
Read/Write-Modell
Read/Write-Modell: Annahme A1*/A2
A1*. Im Operationsteil einer Anweisung seien nur die Operatoren Read und Write erlaubt.
•
betrachtet das Lesen und Schreiben von Daten als getrennte Aktionen
•
nimmt an, dass im lokalen Speicher alle jemals gelesenen Werte gemerkt werden
•
beruht auf einer Reihe von Annahmen
beabsichtigte Semantik von Read:
die Daten aus dem im Operandenteil bezeichneten Objekt
werden in den lokalen Speicher des die Transaktion ausführenden Prozesses gelesen
beabsichtigte Semantik von Write:
die Daten des im Operandenteil bezeichneten Objekts
werden überschrieben mit (möglicherweise) neuen Werten,
die sich aus der Verarbeitung aller vorher gelesenen Daten ergeben können
A2.
© Joachim Biskup, Universität Dortmund
Informationssysteme: Transaktionen
17. Juli 2003
469
Weitere Einzelheiten der Semantik, insbesondere über die Art der Verarbeitung
seien nicht bekannt.
© Joachim Biskup, Universität Dortmund
Read/Write-Modell: Annahme A3*
Informationssysteme: Transaktionen
17. Juli 2003
470
Read/Write-Modell: Annahme A4/A5/A6
A3*. Nachdem eine Read-Anweisung ausgeführt ist,
bleiben die gelesenen Daten zeitlich unbegrenzt und unverändert
im lokalen Speicher verfügbar;
A4.
Alle Objekte seien unstrukturiert und stehen in keinerlei Beziehung zueinander.
A5.
Alle Transaktionen werden vollständig wirksam.
A6.
Alle Transaktionen liegen als unverzweigte Anweisungsfolgen textuell als Ganzes vor.
entsprechend liest eine Transaktion aus jedem Objekt höchstens einmal;
ferner schreibe eine Transaktion in jedes Objekt höchstens einmal
(nach Abschluss aller Verarbeitungen);
wenn eine Transaktion ein Objekt sowohl liest als auch schreibt,
so gehe das Lesen dem Schreiben voran.
© Joachim Biskup, Universität Dortmund
Informationssysteme: Transaktionen
17. Juli 2003
471
© Joachim Biskup, Universität Dortmund
Informationssysteme: Transaktionen
17. Juli 2003
472
Read/Write-Modell
A1*. Im Operationsteil einer Anweisung seien nur die Operatoren Read und Write erlaubt.
14 Serialisierbarkeit und Versionsverwaltung
beabsichtigte Semantik von Read: die Daten aus dem im Operandenteil bezeichneten Objekt
werden in den lokalen Speicher des die Transaktion ausführenden Prozesses gelesen
beabsichtigte Semantik von Write: die Daten des im Operandenteil bezeichneten Objekts
werden überschrieben mit (möglicherweise) neuen Werten,
die sich aus der Verarbeitung aller vorher gelesenen Daten ergeben können
14.1 Konflikte und Konflikt-Serialisierbarkeit
A2. Weitere Einzelheiten der Semantik, insbesondere über die Art der Verarbeitung seien nicht bekannt.
A3*. Nachdem eine Read-Anweisung ausgeführt ist, bleiben die gelesenen Daten
zeitlich unbegrenzt und unverändert im lokalen Speicher verfügbar;
entsprechend liest eine Transaktion aus jedem Objekt höchstens einmal;
ferner schreibe eine Transaktion in jedes Objekt höchstens einmal (nach Abschluss aller Verarbeitungen);
wenn eine Transaktion ein Objekt sowohl liest als auch schreibt, so gehe das Lesen dem Schreiben voran.
A4. Alle Objekte seien unstrukturiert und stehen in keinerlei Beziehung zueinander.
A5. Alle Transaktionen werden vollständig wirksam.
A6. Alle Transaktionen liegen als unverzweigte Anweisungsfolgen textuell als Ganzes vor.
© Joachim Biskup, Universität Dortmund
Informationssysteme: Transaktionen
17. Juli 2003
473
Konflikte
© Joachim Biskup, Universität Dortmund
Informationssysteme: Serialisierbarkeit und Versionsverwaltung - Konflikte und Konflikt-Serialisierbarkeit
17. Juli 2003
474
Konflikt-Äquivalenz von Read/Write-Plänen, KonfliktSerialisierbarkeit
zwei Transaktionen liegen im Konflikt,
wenn sie ein Objekt o gemeinsam nutzen,
wobei mindestens eine der Transaktionen in o schreibt
1. Sei T = {t1,...,tk} eine Menge von Transaktionen.
Zwei das gleiche Objekt o nutzende Anweisungen aus T, i1.j1 : Op1 o und i2.j2 : Op2 o
liegen (wegen o) im Konflikt :gdw
i1 ≠ i2 und
Op1 = Write oder Op2 = Write.
für eine Menge von Transaktionen T
kann man alle Konflikte im obigen Sinne bestimmen
für einen Plan P
kann man jeweils die Reihenfolge der im Konflikt liegenden Transaktionen bestimmen
Aufgaben zur Konfliktbehandlung
2. Seien P und P’ Read/Write-Pläne zu einer Menge von Transaktionen T.
P ist Konflikt-äquivalent zu P’ :gdw
je zwei im Konflikt liegende Anweisungen werden in P und P’
in der gleichen Reihenfolge ausgeführt.
3. Ein Read/Write-Plan P zu einer Menge von Transaktionen T ist
Konflikt-serialisierbar
:gdw
es gibt einen Read/Write-Plan P’, so dass gilt:
gegeben ein Plan P, suche nach einem seriellen Plan P’,
der alle Konflikte genauso wie P behandelt
falls ein solcher Plan P’ existiert,
wird der Plan P als “korrekt bezüglich der Behandlung von Konflikten” angesehen
(K1) P’ ist serieller Read/Write-Plan.
(K2) P und P’ sind Konflikt-äquivalent.
erzeuge solchermaßen “korrekten” Pläne
© Joachim Biskup, Universität Dortmund
Informationssysteme: Serialisierbarkeit und Versionsverwaltung - Konflikte und Konflikt-Serialisierbarkeit
17. Juli 2003
475
© Joachim Biskup, Universität Dortmund
Informationssysteme: Serialisierbarkeit und Versionsverwaltung - Konflikte und Konflikt-Serialisierbarkeit
17. Juli 2003
476
Konfliktgraphen
Satz über Test für Konflikt-Serialisierbarkeit
um festzustellen, ob
ein Read/Write-Plan P zu einer Menge von Transaktionen T = {t1,...,tk} Konflikt-serialisierbar ist,
konstruieren wir einen Konfliktgraphen Gkonflikt (P) = (Ekonflikt, Kkonflikt ) :
Sei P ein Read/Write-Plan zu einer Menge von Transaktionen T = {t1,...,tk} und
Gkonflikt (P) = ( T, Kkonflikt ) der zugehörige Konfliktgraph.
Dann gilt:
Eckenmenge
Kantenmenge
1.
P ist Konflikt-serialisierbar
genau dann, wenn
Gkonflikt (P) ist azyklisch.
2.
Ist Gkonflikt (P) azyklisch und
ist P’ ein serieller Read/Write-Plan,
der durch topologisches Sortieren aus Gkonflikt gewonnen wird,
so sind P und P’ Konflikt-äquivalent.
Ekonflikt :=
Kkonflikt :=
T
{ (ti1, ti2) | ti1 ≠ ti2, und
es gibt o ∈ O(T), j1, j2:
ti1.j1 = Op1 o und
Op1 = Write
oder
ti2.j2 = Op2 o,
Op2 = Write,
P-1 (i1.j1) < P-1 (i2.j2) }
und
es geht also eine Kante von Transaktion ti1 nach Transaktion ti2,
wenn ti1 eine Anweisung enthält,
die zu einer in P folgenden, aus ti2 stammenden Anweisung
im Konflikt liegt
© Joachim Biskup, Universität Dortmund
Informationssysteme: Serialisierbarkeit und Versionsverwaltung - Konflikte und Konflikt-Serialisierbarkeit
17. Juli 2003
477
© Joachim Biskup, Universität Dortmund
Beispiel zum Test: Transaktionen und Konflikte
Transaktionen:
Plan P mit “Datenflüssen”:
t2 := ( 2.1: Read A,
2.2: Read B,
2.3: Write D )
t3 := ( 3.1: Read C,
3.2: Write A )
t4 := ( 4.1: Read B,
4.2: Read C,
4.3: Write B,
4.4: Write A )
1.1: Read A
1.1: Read A
2.1: Read A
2.1: Read A
3.2: Write A
und
und
und
und
und
3.2: Write A
4.4: Write A
3.2: Write A
4.4: Write A
4.4: Write A
wegen Objekt B:
1.3: Write B
1.3: Write B
1.3: Write B
2.2: Read B
und
und
und
und
2.2: Read B
4.1: Read B
4.3: Write B
4.3: Write B
wegen Objekt C:
1.2: Write C
1.2: Write C
und
und
3.1: Read C
4.2: Read C
wegen Objekt D:
keine Konflikte
© Joachim Biskup, Universität Dortmund
Informationssysteme: Serialisierbarkeit und Versionsverwaltung - Konflikte und Konflikt-Serialisierbarkeit
478
A
B
C
17. Juli 2003
480
D
2.1: Read A,
1.1: Read A,
1.2: Write C,
3.1: Read C,
1.3: Write B,
4.1: Read B,
4.2: Read C,
2.2: Read B,
3.2: Write A,
4.3: Write B,
2.3: Write D,
4.4: Write A,
In T liegen folgende Anweisungen im Konflikt:
wegen Objekt A:
17. Juli 2003
Beispiel zum Test: Plan und Konfliktgraph
T = {t1, t2, t3, t4} mit
t1 := ( 1.1: Read A,
1.2: Write C,
1.3: Write B )
Informationssysteme: Serialisierbarkeit und Versionsverwaltung - Konflikte und Konflikt-Serialisierbarkeit
Konfliktgraph:
A,B,C
A,C
t1
B
t2
A
t3
A
t4
A,B
Plan P ist Konflikt-äquivalent zum seriellen Plan P’ = {t1, t2, t3, t4},
also Konflikt-serialisierbar
17. Juli 2003
479
© Joachim Biskup, Universität Dortmund
Informationssysteme: Serialisierbarkeit und Versionsverwaltung - Konflikte und Konflikt-Serialisierbarkeit
Satz über Test für Konflikt-Serialisierbarkeits: Beweis
1.
2.
Satz über Test für Konflikt-Serialisierbarkeits: Beweis
P ist Konflikt-serialisierbar genau dann, wenn Gkonflikt (P) azyklisch ist.
Ist Gkonflikt (P) azyklisch und ist P’ ein serieller Read/Write-Plan, der durch
topologisches Sortieren aus Gkonflikt gewonnen wird, so sind P und P’ Konflikt-äquivalent.
1.
2.
Beweis von “⇐” und 2.:
Voraussetzung:
Beweis von “⇒” (in Kontraposition):
Gkonflikt (P) azyklisch ,
P’ durch topologisches Sortieren aus Gkonflikt gewonnen
betrachte:
zwei im Konflikt liegende Anweisungen
i1.j1 : Op1 o und i2.j2 : Op2 o
mit
P-1 (i1.j1) < P-1 (i2.j2)
Def. Konfliktgraph:
(ti1, ti2) ∈ Kkonflikt
topologisches Sortieren:
in P’ wird ti1 vor ti2 ausgeführt, d.h.
© Joachim Biskup, Universität Dortmund
Voraussetzung:
Gkonflikt (P) zyklisch, d.h.
Gkonflikt (P) enthält einen Zykel (ti1,..., tie, ti1)
indirekte Annahme:
P’ sei ein serieller, zu P Konflikt-äquivalenter Plan.
Def. Konflikt-äquivalent: in P’ müssen die am Zykel beteiligten Transaktionen
in der durch den Zykel gegebenen Reihenfolge durchgeführt werden
damit speziell:
P’-1 (i1.j1) < P’-1 (i2.j2).
also:
P ist Konflikt-serialisierbar genau dann, wenn Gkonflikt (P) azyklisch ist.
Ist Gkonflikt (P) azyklisch und ist P’ ein serieller Read/Write-Plan, der durch
topologisches Sortieren aus Gkonflikt gewonnen wird, so sind P und P’ Konflikt-äquivalent.
ein offensichtlicher Widerspruch
P und P’ sind Konflikt-äquivalent
Informationssysteme: Serialisierbarkeit und Versionsverwaltung - Konflikte und Konflikt-Serialisierbarkeit
in P’ wird ti1 vor sich selbst ausgeführt
17. Juli 2003
481
© Joachim Biskup, Universität Dortmund
Informationssysteme: Serialisierbarkeit und Versionsverwaltung - Konflikte und Konflikt-Serialisierbarkeit
17. Juli 2003
482
17. Juli 2003
484
Abbruch, Wirksamwerden und Versionen
•
eine Transaktion soll gar nicht oder vollständig wirksam werden
•
bislang gemäß Annahme A5: alle Transaktionen werden vollständig wirksam
•
nunmehr auch zulassen:
14.2 Versionsverwaltung
Transaktionen werden gar nicht wirksam,
zum Beispiel aus folgenden Anlässen:
- durch Benutzer mit Transaktions-Anweisung Abort_Trans,
um semantische Bedingungen zu erhalten
- durch Scheduler mit Abbruch einer Transaktion (und späterem erneuten Start),
um Serialisierbarkeit (oder andere Systemeigenschaften) zu erreichen
- durch Betriebssystem mit Abbruch des Prozesses,
um Fehlersituation aufzulösen
- durch Missgeschick als Zusammenbruch des Rechensystems,
z.B. Stromausfall oder nicht behebbarer Plattenfehler
© Joachim Biskup, Universität Dortmund
Informationssysteme: Serialisierbarkeit und Versionsverwaltung - Versionsverwaltung
17. Juli 2003
483
© Joachim Biskup, Universität Dortmund
Informationssysteme: Serialisierbarkeit und Versionsverwaltung - Versionsverwaltung
absichtlicher Abbruch
absichtlicher Abbruch: zukünftige Leseanweisungen
wird ein eine Transaktion ausführender Prozess absichtlich abgebrochen,
so muss sichergestellt werden,
erste Forderung:
alle vorher durchlaufenen Schreibanweisungen der Transaktion
werden nicht beobachtbar für zukünftige Leseanweisungen anderer Transaktionen
dass alle vorher durchlaufenen Schreibanweisungen der Transaktion unwirksam werden, d.h.
erforderliche Maßnahmen:
nach Schreibanweisungen müssen zunächst zwei Versionen eines Objekts unterhalten werden:
• die alte Version,
die (spätestens) nach einem Abbruch der Transaktion (wieder) als die gültige anzusehen ist
• die neue Version,
die (spätestens) nach dem Wirksamwerden der Transaktion gültig werden muss
- nicht beobachtbar werden
für zukünftige Leseanweisungen anderer Transaktionen
- nicht bedeutsam bleiben
für vorangegangene Leseanweisungen anderer Transaktionen,
die möglicherweise eine dieser Schreibanweisungen schon beobachtet haben
es bedarf einer genauen Festlegung,
- welche Version
- zu welchem Zeitpunkt
- für welche Transaktionen
gültig sein soll
© Joachim Biskup, Universität Dortmund
Informationssysteme: Serialisierbarkeit und Versionsverwaltung - Versionsverwaltung
17. Juli 2003
485
© Joachim Biskup, Universität Dortmund
absichtlicher Abbruch: vorangegangene Leseanweisungen
Informationssysteme: Serialisierbarkeit und Versionsverwaltung - Versionsverwaltung
17. Juli 2003
486
17. Juli 2003
488
ein Ansatz zur Vermeidung von Folgeabbrüchen
nach Schreibanweisungen noch möglichst lange
die alte Version für andere Transaktionen als gültig ansehen, nämlich
zweite Forderung:
alle vorher durchlaufenen Schreibanweisungen der Transaktion
bleiben nicht bedeutsam für vorangegangene Leseanweisungen anderer Transaktionen,
die möglicherweise eine dieser Schreibanweisungen schon beobachtet haben
bis durch Verwendung der Anweisung Commit_Trans
die Änderungen ausdrücklich für wirksam,
d.h. die neue Version ausdrücklich als gültig erklärt wird
erforderliche Maßnahmen:
andere Transaktionen,
die schon die neue Version (fälschlicherweise) als gültig angesehen haben
(und damit, wie man sagt, “schmutzige Daten” gelesen haben),
müssen ebenfalls abgebrochen werden;
BEGIN_TRANS
.
.
Read o;
.
.
solche Folgeabbrüche können auch kaskadenhaft auftreten
Write o;
IF Bedingung
THEN Commit_Trans (* neue Version ausdrücklich
gültig erklären
*)
ELSE Abort_Trans
END_IF
END_TRANS
© Joachim Biskup, Universität Dortmund
Informationssysteme: Serialisierbarkeit und Versionsverwaltung - Versionsverwaltung
17. Juli 2003
487
© Joachim Biskup, Universität Dortmund
Informationssysteme: Serialisierbarkeit und Versionsverwaltung - Versionsverwaltung
Versionsverwaltung: einige Anforderungen
Versionsfunktion
alte Version
eine Versionsfunktion zu einem Read/Write-Plan bestimmt:
Objekt o:
• welche Version eine Leseanweisung lesen soll
neue Version
Zeit
z0
BEGIN_TRANS
z1
Write o
z2
Commit_Trans
• welche alte Version durch eine Schreibanweisung überschrieben werden
z3
END_TRANS
und damit verloren gehen soll
oder ob eine neue Version angelegt werden soll
alte Version
oder ob überhaupt nichts getan werden soll
Objekt o:
neue Version
Zeit
z0
BEGIN_TRANS
z1
Write o
z2
Abort_Trans
bislang immer eine Standard-Versionsfunktion vorausgesetzt:
z3
END_TRANS
• von einem Objekt wird stets (die einzig vorhandene) aktuelle Version gelesen
• von einem Objekt wird stets die bislang aktuelle Version überschrieben
• zwischen Zeitpunkten z0 und z2 (einschließlich): absichtliche Abbrüche erlauben
• zwischen Zeitpunkten z1 und z2: regeln,
in Praxis und Theorie:
welche Version vom Objekt o unter welchen Umständen als gültig angesehen wird
auch komplexere Versionsfunktionen
• zwischen den (möglichst kurz aufeinanderfolgenden) Zeitpunkten z2 und z3:
Gültigkeit abschließend und für alle Transaktionen verbindlich regeln,
dabei Objekt für andere Transaktionen vollständig sperren
© Joachim Biskup, Universität Dortmund
Informationssysteme: Serialisierbarkeit und Versionsverwaltung - Versionsverwaltung
17. Juli 2003
489
© Joachim Biskup, Universität Dortmund
Informationssysteme: Serialisierbarkeit und Versionsverwaltung - Versionsverwaltung
17. Juli 2003
490
Scheduler
•
soll für parallel auszuführende Transaktionen
die Anweisungen in einer geeigneten Reihenfolge anordnen
•
muss jeweils die zu benutzenden Versionen geeignet bestimmen
•
soll insbesondere erreichen:
- Serialisierbarkeit unter der Annahme, dass alle Transaktionen wirksam werden
15 Scheduler
- Zuverlässigkeit,
•
© Joachim Biskup, Universität Dortmund
Informationssysteme: Scheduler
17. Juli 2003
491
in diesem Zuammenhang:
Unterstützung der Dauerhaftigkeit,
Serialisierbarkeit auch bei Abbrüchen
im Folgenden nur unter vereinfachenden Annahmen:
- alle Transaktionen werden wirksam
- nur Konflikt-Serialisierbarkeit
- keine Versionen
© Joachim Biskup, Universität Dortmund
Informationssysteme: Scheduler
17. Juli 2003
492
vereinfachtes Modell eines Schedulers
Konfliktgraphen-Scheduler
Scheduler
Folge der
Anweisungen
des Eingabeplanes
Wartebereich
Bedingungen
entsprechend
der
Vorgeschichte
•
einfachster, aber leider praktisch kaum brauchbarer Ansatz für einen Scheduler:
- baut den Konfliktgraphen dynamisch auf
- prüft jeweils auf Zykelfreiheit
- bricht gegebenenfalls eine zykelerzeugende Transaktion ab
•
etwas genauer:
Folge der
Anweisungen
des Ausgabeplanes
- wenn eine Anweisung neu angefordert wird,
prüft der Scheduler,
ob sie mit schon vorher wieder ausgegebenen Anweisungen im Konflikt liegt,
und trägt gegebenenfalls neue Kanten in den Konfliktgraphen ein
• ein Scheduler ist eine Transformation,
die jedem anweisungsweise gegebenen (Eingabe-)Plan zu einer Menge von Transaktionen T
einen (Ausgabe-)Plan zu T, der Konflikt-serialisierbar ist,
wiederum anweisungsweise zuordnet
• der Eingabeplan sei durch das zeitlich geordnete Eintreffen der Anweisungen gegeben,
wie sie von den die Transaktionen ausführenden Prozessen angefordert werden
• der Ausgabeplan werde dadurch erzeugt,
dass die Ausführung einer angeforderten Anweisung gegebenenfalls verzögert wird,
d.h. dass sie zunächst in einen Wartebereich eingeordnet wird und
erst nach dem Eintreffen bestimmter Bedingungen ausgeführt wird
(die durch die vorgezogene Ausführung später angeforderter Anweisungen eingetreten sind);
der anfordernde Prozess muss im Allgemeinen solange unterbrochen bleiben
(und kann damit insbesondere keine weiteren Anweisungen anfordern)
© Joachim Biskup, Universität Dortmund
Informationssysteme: Scheduler
- falls kein Zykel entstanden ist,
so wird die Anweisung sofort wieder ausgegeben und ausgeführt
- falls ein Zykel entstanden ist,
so ist die Situation unter den vereinfachenden Annahmen hoffnungslos:
der einzige Ausweg ist ein Abbruch
der anfordernden (oder einer anderen am Zykel beteiligten) Transaktion
mit all den damit verbundenen Problemen
•
17. Juli 2003
493
lässt genau die Konflikt-serialisierbaren Pläne unverändert durch
© Joachim Biskup, Universität Dortmund
Sperrprotokoll-Scheduler
Informationssysteme: Scheduler
17. Juli 2003
494
beabsichtigte Semantik von Sperren
• verlangt, dass die Transaktionen solche Objekte,
wird eine Sperranweisung
i1.j1 : RLock o
erfolgreich ausgeführt,
so hält die Transaktion ti1 eine Lesesperre auf dem Objekt o,
bis die zugehörige Freigabeanweisung i1.j2 : Unlock o ausgeführt wird:
aus denen sie lesen oder in die sie schreiben wollen,
vorher ausdrücklich sperren (lock) und
nachher wieder ausdrücklich freigeben (unlock)
• genauer sind Transaktionen, die einem Sperrprotokoll genügen,
dazwischen kann ti1 aus o lesen, und
aus folgenden Anweisungen aufgebaut:
Read o
:
lies aus Objekt o
Write o
:
schreibe in Objekt o
RLock o
WLock o
:
:
sperre Objekt o zum Lesen
sperre Objekt o zum Schreiben (was auch Lesen erlaubt)
Unlock o
:
gib Objekt o frei
andere Transaktionen können ebenfalls Lesesperren auf o,
aber keine Schreibsperren auf o erhalten
wird eine Sperranweisung
i1.j1 : WLock o erfolgreich ausgeführt,
so hält die Transaktion ti1 eine Schreibsperre auf dem Objekt o,
bis die zugehörige Freigabeanweisung i1.j2 : Unlock o ausgeführt wird:
• Erweiterung der Annahme A3* des Read/Write Modells für Sperren:
- jeder Leseanweisung Read o muss genau eine Anweisung der Form
RLock o oder Wlock o vorausgehen
und genau eine Anweisung der Form Unlock o folgen
dazwischen kann ti1 in o schreiben
oder erst aus o lesen und dann in o schreiben, und
- jeder Schreibanweisung Write o muss genau eine Anweisung der Form
WLock o vorausgehen
und genau eine Anweisung der Form Unlock o folgen
andere Transaktionen können weder eine Lese- noch eine Schreibsperre auf o erhalten
- ferner umklammere jedes Lock-Unlock-Paar eine entsprechende Lese- oder Schreiboperation
© Joachim Biskup, Universität Dortmund
Informationssysteme: Scheduler
17. Juli 2003
495
© Joachim Biskup, Universität Dortmund
Informationssysteme: Scheduler
17. Juli 2003
496
Verträglichkeiten
Sperrprotokoll-Scheduler
•
Lesesperren können geteilt werden (shared locks)
beachtet nur die Sperr- und Freigabeanweisungen:
•
Schreibsperren werden exklusiv gehalten (exclusive locks)
•
•
Konflikte zwischen Lese- und Schreibanweisungen verschiedener Transaktionen
entsprechen genau den
Unverträglichkeiten zwischen den zugehörigen Sperranweisungen.
- falls dies der Fall ist,
so wird die Sperranweisung ausgeführt, d.h. die verlangte Sperre wird vergeben
•
Verträglichkeitsmatrix:
- falls dies nicht der Fall ist,
so wird die Sperranweisung verzögert und in den Wartebereich eingeordnet
von einer anderen Transaktion
bereits gehaltene Sperre auf o:
von t i1 für o
RLock
angeforderte Sperre:
WLock
© Joachim Biskup, Universität Dortmund
RLock
WLock
+
-
-
-
Informationssysteme: Scheduler
•
17. Juli 2003
497
Sei P ein Plan zu einer
Menge von Transaktionen T = {t1,..., tk} mit folgenden Eigenschaften:
© Joachim Biskup, Universität Dortmund
Informationssysteme: Scheduler
Beweis von 2.:
17. Juli 2003
498
folgt unmittelbar aus 1.
Beweis von 1.:
zu zeigen:
a. [Zwei-Phasen-Sperrprotokoll]
alle Transaktionen aus T genügen dem Zwei-Phasen-Sperrprotokoll
je zwei im Konflikt liegende Anweisungen in P und P’
werden in der gleichen Reihenfolge ausgeführt
betrachte solche Anweisungen: seien w1 < w2 Zeitpunkte mit
P(w1) = i1.j1 : Op1 o und P(w2) = i2.j2 : Op2 o und
Op1 = Write oder Op2 = Write
b. [Sperrprotokoll-Scheduler]
im Plan P halten je zwei Transaktionen keine unverträglichen Sperren
(d.h. P ist möglicher Ausgabeplan des Sperrprotokoll-Schedulers)
exklusive Sperre für Write-Anweisung:
Transaktion ti1 muss nach dem Zeitpunkt w1,
etwa zum Zeitpunkt w1*, ein Unlock o ausführen,
Dann gilt:
1. Für i = 1,..., k sei die Sperrzeit zi derjenige Zeitpunkt von P,
zu dem die Transaktion ti ihre letzte Sperranweisung ausführt,
und
π: {1,..., k} → {1,..., k} sei eine Permutation mit
zπ(1) < zπ(2) < ... < zπ(k):
dann ist (nach dem Weglassen der Sperr- und Freigabeanweisungen)
P Konflikt-äquivalent zum seriellen Plan P’ = (tπ(1), tπ(2),..., tπ(k)).
bevor Transaktion ti2 vor dem Zeitpunkt w2,
etwa zum Zeitpunkt w2*, ein WLock o bzw. RLock o ausführt
2. P ist (nach dem Weglassen der Sperr- und Freigabeanweisungen)
Konflikt-serialisierbar.
Informationssysteme: Scheduler
wenn eine Freigabeanweisung neu angefordert wird,
so wird sie ausgeführt:
- die entsprechende Sperre wird aufgehoben und
- gegebenenfalls werden auf diese Freigabe wartende Sperranweisungen
erneut bearbeitet
ein Sperrprotokoll-Scheduler bearbeitet solche Transaktionen erfolgreich,
die dem Zwei-Phasen-Sperrprotokoll genügen,
d.h. in denen alle Sperranweisungen vor allen Freigabeanweisungen liegen
Konflikt-Serialisierbarkeit unter dem Zwei-Phasen-Sperrprotokoll
© Joachim Biskup, Universität Dortmund
wenn eine Sperranweisung neu angefordert wird,
so prüft der Scheduler, ob sie mit den schon gehaltenen Sperren verträglich ist:
17. Juli 2003
499
Zwei-Phasen-Sperrprotokoll:
alle Sperranweisungen vor allen Freigabeanweisungen
also:
also:
zi1 < w1* < w2* <= zi2
die betrachteten Anweisungen werden im seriellen Plan P’
in der gleichen Reihenfolge ausgeführt
© Joachim Biskup, Universität Dortmund
Informationssysteme: Scheduler
17. Juli 2003
500
Sperrprotokoll-Scheduler verlangt Zwei-Phasen-Sperrprotokoll
vorliegende Situation kann man sich wie folgt veranschaulichen:
Sperrzeit von ti1
zi1
Die Transaktion t1 genüge einem Sperrprotokoll,
entspreche aber nicht dem Zwei-Phasen-Aufbau.
Sperrzeit von ti2
zi2
Zeit
w1
Ausführungszeit von
i1.j1: Op1 o
w1*
Ausführungszeit von
i1.j1*: Unlock o
w2*
Ausführungszeit von
i2.j2*: Lock o
Dann gibt es eine Transaktion t2 und für T := {t1, t2} einen Plan P,
so dass gilt:
w2
Ausführungszeit von
i2.j2: Op2 o
1. [Sperrprotokoll-Scheduler]
t1 und t2 halten keine unverträglichen Sperren.
2. P ist nicht Konflikt-serialisierbar.
Beweis: entfällt
© Joachim Biskup, Universität Dortmund
Informationssysteme: Scheduler
17. Juli 2003
501
© Joachim Biskup, Universität Dortmund
Informationssysteme: Scheduler
Verklemmungen
Transaktionen geraten in eine Verklemmung (deadlock), wenn sie wechselseitig
schon von der jeweils anderen Transaktion gehaltene Sperren anfordern
•
ein typisches Muster:
• Phase 1: [Sperren]
angeforderte Anweisung
Verhalten des Schedulers
1.1 : WLock A
t1 erhält Schreibsperre auf A
2.1 : WLock B
t2 erhält Schreibsperre auf B
1.2 : WLock B
Anforderung ist unverträglich:
t1 muss auf die Ausführung von 2.j2 : Unlock B warten
2.2 : WLock A
Anforderung ist unverträglich:
t2 muss auf die Ausführung von 1.j1 : Unlock A warten
zusammen mit Phase 4: Zwei-Phasen-Sperrprotokoll
alle benötigten Objekte werden gesperrt
(falls als unteilbare Operation verwirklicht, werden sogar Verklemmungen vermieden;
andernfalls können Phase 1 und 2 auch ineinander verschränkt werden)
• Phase 2: [Schreiben in eine Logdatei]
zusammen mit Phase 3: für Zuverlässigkeit
alle Schreiboperationen werden zunächst nicht im gemeinsamen Informationssystem,
sondern in einer gesonderten Logdatei durchgeführt;
die Logdatei enthält damit für andere Transaktionen unzugängliche Versionen
• Phase 3: [Kopieren der Logdatei in das Informationssystem]
erreicht die Transaktion die Commit_Trans-Anweisung,
so werden erst dann alle Schreiboperationen auf einmal (als eine unteilbare Operation)
tatsächlich im Informationssystem durchgeführt, indem die Logdatei einfach kopiert wird
• Phase 4: [Freigeben]
alle gesperrten Objekte werden wieder freigegeben
also tritt eine Verklemmung ein: t1 wartet auf t2, und t2 wartet auf t1.
sperren
in Logdatei
schreiben
zwei Ansätze:
- Verklemmungen entdecken und durch Abbruch einer Tranaktion auflösen
- Verklemmungen durch geeignete Maßnahmen verhindern
© Joachim Biskup, Universität Dortmund
Informationssysteme: Scheduler
502
Striktes Sperrverhalten
•
•
17. Juli 2003
BEGIN_TRANS
17. Juli 2003
503
© Joachim Biskup, Universität Dortmund
Informationssysteme: Scheduler
Logdatei ins
Informationssystem kopieren
Commit_Trans
freigeben
Zeit
END_TRANS
17. Juli 2003
504
Zeitmarken-Scheduler
•
1. [Leseanforderungen]
falls Transaktion ti eine Leseanweisung Read o anfordert,
so wird die Zeitmarke si verglichen mit den Zeitmarken der Transaktionen,
die vorangehende, im Konflikt liegende Schreibanweisungen enthalten:
jeder Transaktion ti wird bei ihrem Start zugeordnet eine
(statische) Zeitmarke
•
Zeitmarken-Scheduler
si
:= Startzeit von ti
für jedes Objekt o werden unterhalten zwei geeignet initialisierte
(dynamische) Zeitmarken oread := max {si | ti hat aus Objekt o gelesen}
owrite := max {si | ti hat in Objekt o geschrieben}
•
ein Zeitmarken-Scheduler beobachtet und verändert nun die Zeitmarken
mit folgendem Ziel:
es werden nur solche Ausgabe-Pläne zugelassen,
die (Konflikt-)äquivalent zu demjenigen seriellen Plan sind,
in dem die Transaktionen in der Reihenfolge ihrer Zeitmarken ausgeführt werden
•
falls wegen eines sichtbar werdenden Konflikts dieses Ziel gefährdet wird,
bricht der Scheduler eine am Konflikt beteiligte Transaktion ab
© Joachim Biskup, Universität Dortmund
Informationssysteme: Scheduler
17. Juli 2003
t3 := ( 3.1: Read C,
3.2: Write A )
505
P(1)
P(2)
P(3
P(4)
P(5)
P(6)
P(7)
P(8)
P(9)
P(10)
P(11)
P(12)
© Joachim Biskup, Universität Dortmund
=
=
=
=
=
=
=
=
=
=
=
=
1.1:
2.1:
1.2:
3.1:
1.3:
4.1:
4.2:
2.2:
3.2:
4.3:
2.3:
4.4:
Informationssysteme: Scheduler
Read
Read
Write
Read
Write
Read
Read
Read
Write
Write
Write
Write
falls owrite > si :
Transaktion ti wird abgebrochen
falls oread <= si und owrite < si :
die Schreibanweisung wird ausgeführt, und man setzt
owrite := si
falls oread > si oder owrite > si :
Transaktion ti wird abgebrochen
© Joachim Biskup, Universität Dortmund
P
t4 := ( 4.1: Read B,
4.2: Read C,
4.3: Write B,
4.4: Write A )
Zeitmarken, entsprechend der Startzeiten zugeordnet:
s1 := 1,
s2 := 2,
s3 := 4,
s4 := 6
Plan P:
die Leseanweisung wird ausgeführt, und man setzt
oread := max {oread, si}
2. [Schreibanforderungen]
falls Transaktion ti eine Schreibanweisung Write o anfordert,
so wird die Zeitmarke si verglichen mit den Zeitmarken der Transaktionen,
die vorangehende, im Konflikt liegende Lese- oder Schreibanweisungen enthalten:
Beispiel für Zeitmarken-Scheduler
Transaktionen:
t1 := ( 1.1: Read A,
t2 := ( 2.1: Read A,
1.2: Write C,
2.2: Read B,
1.3: Write B )
2.3: Write D )
falls owrite < si :
A
A
C
C
B
B
C
B
A
B
D
A
17. Juli 2003
507
Informationssysteme: Scheduler
17. Juli 2003
z
Ar
Aw
Br
Bw
Cr
Cw
Dr
Dw
0
0
0
0
0
0
0
0
0
1.1: Read A
1
1
.
.
.
.
.
.
.
Aw < s1
2.1: Read A
2
2
.
.
.
.
.
.
.
Aw < s2
1.2: Write C
3
.
.
.
.
.
1
.
.
Cr <= s1 ∧ Cw < s1
3.1: Read C
4
.
.
.
.
4
.
.
.
Cw < s3
1.3: Write B
5
.
.
.
1
.
.
.
.
Br <= s1 ∧ Bw < s1
4.1: Read B
6
.
.
6
.
.
.
.
.
Bw < s4
4.2: Read C
7
.
.
.
.
6
.
.
.
Cw < s4
2.2: Read B
8
.
.
6
.
.
.
.
.
Bw < s2
3.2: Write A
9
.
4
.
.
.
.
.
.
Ar <= s3 ∧ Aw < s3
4.3: Write B
10
.
.
.
6
.
.
.
.
Br <= s4 ∧ Bw < s4
2.3: Write D
11
.
.
.
.
.
.
.
2
Dr <= s2 ∧ Dw < s2
4.4: Write A
12
.
6
.
.
.
.
.
.
Ar <= s4 ∧ Aw < s4
© Joachim Biskup, Universität Dortmund
Informationssysteme: Scheduler
506
erfüllte Bedingung
17. Juli 2003
508
Konflikt-Serialisierbarkeit unter dem Zeitmarken-Scheduler
würde man im Plan P die ersten beiden Anweisungen vertauschen,
so erhielte
Transaktion t1 die Startzeit
s1 := 2
und Transaktion t2 die Startzeit s2 := 1
Sei P ein Plan zu einer Menge von Transaktionen T = {t1,..., tk} mit der Eigenschaft,
dass er möglicher Ausgabeplan des Zeitmarken-Schedulers ist.
1. Für i = 1,.., k sei si die Startzeit von ti und
π : {1,..., k} → {1,..., k} eine Permutation mit sπ(1) < sπ(2) < ... < sπ(k).
dieser Plan wäre nicht Konflikt-äquivalent zum seriellen Plan P’’ = {t2, t1, t3, t4}:
die Anforderung der Leseanweisung 2.2 : Read B
würde zum Zeitpunkt 8 zum Abbruch der Transaktion t2 führen,
Dann ist P Konflikt-äquivalent zum seriellen Plan P’= (tπ(1), ..., tπ(k)).
2. P ist Konflikt-serialisierbar.
weil die Bedingung
nicht erfüllt wäre
© Joachim Biskup, Universität Dortmund
Bw < s2
für Bw = 2 und s2 = 1
Beweis von 1.:
zu zeigen:
Informationssysteme: Scheduler
17. Juli 2003
509
Zeitmarken-Scheduler:
stellt genau dies sicher
Beweis von 2.:
folgt unmittelbar aus 1.
© Joachim Biskup, Universität Dortmund
nutzlose Schreibanweisungen
falls oread <= si und owrite > si :
die Schreibanweisung von ti wird
einfach übersprungen
© Joachim Biskup, Universität Dortmund
Informationssysteme: Scheduler
510
Konflikt-Äquivalenz zu demjenigen seriellen Plan sichergestellt,
der die Transaktionen in der Reihenfolge ihrer Sperrzeiten ausführt
• unter dem Zeitmarken-Scheduler wird
Konflikt-Äquivalenz zu demjenigen seriellen Plan sichergestellt,
der die Transaktionen in der Reihenfolge ihrer Startzeiten ausführt
die Schreibanweisung wird ausgeführt,
und man setzt
owrite := si
Transaktion ti wird abgebrochen
17. Juli 2003
• unter dem Zwei-Phasen-Sperrprotokoll wird
2* [Schreibanforderungen]
Transaktion ti fordert eine Schreibanweisung Write o an:
falls oread > si :
Informationssysteme: Scheduler
Unvergleichbarkeit von Zwei-Phasen-Sperrprotokoll und
Zeitmarken-Scheduler
durch Verfeinerung der Regeln kann man
im Konflikt liegende, aber erkennbar nutzlose Schreibanweisungen
einfach überspringen:
falls oread <= si und owrite < si ,:
je zwei im Konflikt liegende Anweisungen werden
in P und P’ in der gleichen Reihenfolge ausgeführt
17. Juli 2003
• beide Verfahren schließen manche eigentlich Konflikt-serialisierbaren Pläne als Ausgaben aus
• die Klassen der jeweils erzeugbaren Ausgabepläne
sind (bezüglich Mengeninklusion) unvergleichbar:
511
1.
es gibt einen Plan P1,
der als Ausgabeplan unter dem Zwei-Phasen-Sperrprotokoll
(nach dem Weglassen von Sperr- und Freigabeanweisungen) möglich ist,
aber nicht unter dem Zeitmarken-Scheduler
2.
es gibt einen Plan P2,
der als Ausgabeplan unter dem Zeitmarken-Scheduler möglich ist,
aber nicht unter dem Zwei-Phasen-Sperrprotokoll
© Joachim Biskup, Universität Dortmund
Informationssysteme: Scheduler
17. Juli 2003
512
pessimistische und optimistische Scheduler
•
Index
pessimistischer Scheduler
versucht durch weitreichende Vorsorge
das Eintreten von nichtserialisierbaren oder verklemmten Situationen
möglichst frühzeitig zu verhindern;
im Allgemeinen sind dazu erforderlich:
- verhältnismäßig großer Aufwand für den Scheduler oder
- verhältnismäßig einschneidende Einschränkungen an die erlaubten Transaktionen
•
Informationssysteme: Scheduler
Differenz 161–162, 176, 202, 223
Division 163–164, 202
Domäne 114, 291
DTD (Document Type Definition) 314
E
Eigenschaft 63
eindeutige Unterstützung 434
Einschränkung 114
Enthaltenseinsabhängigkeit 113, 411
Entität 63
Erfüllbarkeit 83
ER-Modellierung 63, 70, 72–77, 80
Aggregation 63
Attribut 63
Aussonderung 63
Beziehung 63
Eigenschaft 63
Entität 63
Klassenbildung 63
Rolle 63
Seiendes 63
Verallgemeinerung 63
Extremalattribut 426
© Joachim Biskup, Universität Dortmund
Informationssysteme: Index
17. Juli 2003
Aussonderung 63
3.Normalform 428–429
B
A
B*-Baum 350
Basisrelation 267, 410
Beziehung 63
Boyce / Codd-Normalform 428–429, 440, 443
A≠B-Vergleich 159, 202, 222
A=B-Vergleich 159, 176, 202, 222
A=c-Selektion 147, 166, 175, 219, 398, 400
Abhängigkeit
Enthaltenseins- 113, 411
funktionale 113, 411, 413–415
mehrwertige 113
Verbund- 113, 152, 411, 436
Abschluss 417
ACID-Eigenschaften 458
Administrator 31, 48, 57, 89, 241, 261, 299
Aggregation 63
Allgemeingültigkeit 83
Anfrage 32, 93, 95, 291
Anfrageprogramm 269
Armstrong-Relation 421
Attribut 63, 114, 135, 166, 291
optimistischer Scheduler
versucht zunächst
die Anweisungen möglichst unmittelbar wie angefordert auszuführen
und erst nachträglich, wenn dies in der Regel leichter erkennbar ist,
nichtserialisierbare (oder verklemmte) Situationen
durch Abbruch einer Transaktion wieder aufzulösen
© Joachim Biskup, Universität Dortmund
Zahlen
513
F
© Joachim Biskup, Universität Dortmund
Index 349
Individuenvariable 79, 268
Information 36–40, 49
Information Retrieval 316, 320
Information Retrieval-System 26, 183
Informationsgehalt 37
Informationssystem 24, 49
Instanz 69, 115, 116
Interaktion 56–57
Gleichheitszeichen 79
globale semantische Bedingung 116
Grundfakt 267, 268
Grundfakten-Transformation 273–274
Grundformel 268
Grundterm 79
K
kartesisches Produkt 84
Klassenbildung 63
Kommunikation 41–42, 50, 56
Komplement 160, 202
Konflikt 475
Konflikt-Äquivalenz 476, 478
Konfliktgraph 477
Konfliktgraphen-Scheduler 494
Konflikt-Serialisierbarkeit 476, 478, 499, 510
H
halb-strukturierte Daten 26, 295
Handlungsfolge 67, 452
hängendes Tupel 154
Hash-Filter-Verbund 383, 386
Hashfunktion 349
17. Juli 2003
515
© Joachim Biskup, Universität Dortmund
D
Daten
halb-strukturierte 26, 295
strukturierte 26, 295
Datenbanksystem 26
Datendefinitionssprache 31, 42, 89, 93, 206
Datenmanipulationssprache 42, 90, 91, 93, 206
Datenwörterbuch 97–98, 361, 373, 375
Definitionsbereich 114, 181, 187, 467
deklarative Semantik 269, 282
17. Juli 2003
514
Konklusion 113, 268, 283
Konstantenzeichen 114, 166, 268
Kosten 406–407, 431–432
L
I
G
Clustering 334
Informationssysteme: Index
hierarchische Klassifikation 332
Hornformel 111, 113, 247, 264, 268
Hornklausel 268, 273, 283, 291, 402, 413
Hypergraph 118, 166
Fakt 268
Fallout 322
Fetch-Expression 304
Fixpunktsatz von Tarski-Kleene 276
F-Logik 291
föderiertes System 105
Formel 79, 187, 246, 268, 413
funktionale Abhängigkeit 113, 411, 413–415
Funktionszeichen 79, 291
C
Informationssysteme: Index
Link 349
Link-Verbund 373–380, 386
logische Implikation 32, 40, 83, 237, 269, 272, 402,
416–422
LOGODAT-Anfrage 269, 283–284
lokale semantische Bedingung 115
M
mediiertes System 106
mehrwertige Abhängigkeit 113
Menge 84
Metaschema 49, 125–126, 317
Miniwelt 33
Modell 33, 38, 83, 111, 115, 116, 141
Modellklasse 39, 83
Multimedia-System 26, 183
N
natürlicher Verbund 144–146, 148, 152–154, 166, 175,
202, 218, 398
17. Juli 2003
516
NestedLoop 359, 365–366, 386
Nichtschlüsselattribut 424
Object-ID 298
objektorientierte Formalisierung 286
OEM (Object Exchange Model) 297
Ontologie 31, 41, 69, 296, 317, 332, 335
operationale Fixpunktsemantik 277, 282
Optimierung 32, 95, 156, 166, 242, 295, 387
Regel 64, 71, 268
Relation 38, 81, 95, 111, 114, 237, 405
relationale Anfrage 178–179, 180, 182–183, 204
relationales Datenbankschema 116, 119, 267
Relationenalgebra 180, 181–182, 184, 190–201, 202
Relationenkalkül 180, 187–188, 190–201
Relationenschema 115, 118, 141, 267
Relationensymbol 114, 135, 166, 268
Relevanz 316, 321, 340–341
Rolle 63
Rückgabe-Objekt 304, 307, 309, 310
sequentielle Liste 349
Sicht 31, 98, 291
Sichtrelation 410
Signaturmolekül 291
Sortiertes Mischen 368–369, 386
Soziales System 49
Sperrprotokoll-Scheduler 495–502
SQL (Structured Query Language) 180, 206–223
Struktur 81–82
strukturierte Daten 26, 295
Surrogatpaar 291
P
S
T
Scheduler 492–493, 513
Konfliktgraphen- 494
Sperrprotokoll- 495–502
Zeitmarken- 505–512
Schema 31, 41, 49, 69, 89, 98, 110, 123, 141, 264, 272,
295, 317, 411
Schlüssel 135–136, 424, 432
Schlüsselattribut 424
Seiendes 63
semantische Bedingung 30, 111, 135
globale 116
lokale 115
semantischer Bereichsname 114, 166
Teilverbund 155
Term 79, 268, 291
Thesaurus 335–337
Transaktion 99, 141, 457, 484
treue Unterstützung 434
Tupel 95, 96, 114, 154, 345
Tupelidentifikator 345
O
Plan 466
Potenzmenge 84
Prädikatenlogik 79–80, 180
Prädikatenzeichen 39, 79, 207
Prämisse 113, 268, 283
Precision 322–325
Projektion 149–154, 166, 175, 202, 220, 398, 400
Protokollausführung 56–57
R
Read/Write-Modell 469–473
Recall 322–325
Redundanz 30, 399, 402–404, 433
© Joachim Biskup, Universität Dortmund
Informationssysteme: Index
17. Juli 2003
517
Unterstützungsanfrage 437
V
Variablenbelegung 81–82
Verallgemeinerung 63
Verbundabhängigkeit 113, 152, 411, 436
Vereinigung 84, 157–158, 176, 202, 221
Verklemmung 503
Versionsfunktion 490
W
Wissensbanksystem 26
X
XML (Extensible Markup Language) 311–312
DTD (Document Type Definition) 314
Z
Zeitmarken-Scheduler 505–512
Zwei-Phasen-Sperrprotokoll 498
U
Unerfüllbarkeit 83
Unterstützung
eindeutige 434
treue 434
© Joachim Biskup, Universität Dortmund
Informationssysteme: Index
17. Juli 2003
518
Herunterladen