Relationale Datenbanken: eine anwendungsorientierte Einführung

Werbung
Relationale DB: Einführung
Kapitel 2
Relationale
RelationaleDatenbanken:
Datenbanken:
eine
eineanwendungsorientierte
anwendungsorientierte
Einführung
Einführung
– Kapitel 2 –
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
1
Vorgehensweise in Kapitel 2
Kapitel 2
Methodische Vorgehensweise in diesem Kapitel:
Grundbegriffe
Grundbegriffe
relationaler
relationaler
Datenbanken
Datenbanken
Microsoft
MicrosoftAccess
Access
for
forBeginners
Beginners
•
•
•
• Praxis
• anwendungsorientiert
• "Schnupperkurs"
Beide Seiten sind wichtig:
© 2002 Prof. Dr. Rainer Manthey
Theorie
Prinzipdiskussion
wissenschaftliches
Fundament
Lernen
Lernenohne
ohneAnwenden
Anwendennützt
nütztnicht
nichtviel
viel!!
Informationssysteme
2
Relationale Datenbanken: Allgemeines
Kapitel 2
• Der DB-Markt wird heute völlig dominiert von DB-Systemen, die das relationale
Datenmodell unterstützen.
• Führende (kommerzielle) Hersteller von relationalen DB-Produkten:
Oracle
Microsoft (Access, SQL Server)
IBM (DB2, Informix)
Sybase
Postgres (Freeware)
MySQL (Freeware)
• Bezeichnung "relational" ist motiviert durch das mathematische Konzept der
Relation.
• Relationale Datenbanken sind im wesentlichen Sammlungen von Relationen.
• Man kann sich Relationen praktisch als Tabellen vorstellen, die aus einzelnen
Datensätzen bestehen, die alle dieselbe (homogene) Feldstruktur aufweisen.
• In der Wissenschaft gibt es ein weites Spektrum an theoretischen Grundlagen
für relationale Datenbanken.
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
3
Relationen: etwas "Nachhilfe"
Kapitel 2
mathematisches
mathematischesRelationskonzept
Relationskonzept
• Jede Teilmenge R eines Produkts D1 × . . . × Dn von n (n > 1) nicht notwendig
verschiedenen Mengen D1, . . . , Dn heisst (n-stellige) Relation über D1, . . . , Dn.
• Das (kartesische) Produkt (oder: Kreuzprodukt) von D1, . . . , Dn ist die Menge
aller (n-)Tupel, die aus Elementen von D1, . . . , Dn gebildet werden können:
DD1 ×
. . . × Dn ==def {{((aa1, ,. .. .. ., ,aan )) | | aai ∈∈DDi }}
1 × ...× D
n
def
1
n
i
i
• Mengen sind duplikatfreie, ungeordnete Sammlungen von Objekten.
"Unter
"Untereiner
einerMenge
Mengeverstehen
verstehenwir
wireine
eineZusammenfassung
Zusammenfassung von
von
bestimmten
bestimmtenwohlunterschiedenen
wohlunterschiedenenObjekten
Objektenunserer
unsererAnschauung
Anschauung
oder
oderunseres
unseresDenkens
Denkenszu
zueinem
einemGanzen."
Ganzen."
Georg Cantor (1845-1918), Begründer der Mengenlehre
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
4
Beispiel für Produktbildung bei Mengen
Kapitel 2
B
5
1
7
A
A
×
B
© 2002 Prof. Dr. Rainer Manthey
(
, 1)
(
, 5)
(
, 7)
(
(
, 1)
, 1)
(
(
, 5)
, 5)
(
(
, 7)
, 7)
(
, 1)
(
, 5)
(
, 7)
Informationssysteme
5
Relation als Teilmenge eines Produkts und Tabellendarstellung
Kapitel 2
2-stellige Relation
über A, B
A
×
B
(
, 1)
(
, 5)
(
, 7)
(
(
, 1)
, 1)
(
(
, 5)
, 5)
(
(
, 7)
, 7)
(
, 1)
(
, 5)
(
, 7)
A
Darstellung dieser Relation
im Tabellenformat:
B
5
5
5
5
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
6
Relationale Datenbanken: Geschichte
Kapitel 2
• Die Idee, Daten in Tabellen zu halten,
ist uralt.
•
Die Idee, diese Form der Darstellung
mit Mitteln der Relationentheorie zu
untersuchen, stammt von diesem Mann:
Edgar F. Codd
• Er veröffentlichte 1970 eine bahnbrechende Arbeit mit dem Titel
Edgar F. Codd
Für
Fürdiese
diesePionierleistung
Pionierleistungerhielt
erhieltCodd
Codd
1982
1982den
denTuring
TuringAward
Awardder
derACM,
ACM,
den
den"Nobelpreis
"Nobelpreisder
derInformatik".
Informatik".
© 2002 Prof. Dr. Rainer Manthey
"A Relational Model of Data for Large
Shared Data Banks",
in der er alle Grundlagen der heutigen
relationalen DB in bestechender Klarheit
niederlegte.
Informationssysteme
7
Microsoft Access: Allgemeine Informationen
Kapitel 2
• Access ist ein DBMS für relationale Datenbanken, das seit 1992 von Microsoft
(weiter-)entwickelt und vertrieben wird.
• "Access-Homepage" bei Microsoft:
http://www.microsoft.com/office/access/default.asp
• aktuelle Version in Office-Paketen von MS: Access 2000
• Access ist sehr gut geeignet für kleine bis mittlere DB-Anwendungen ohne Mehrbenutzerbetrieb.
• nützliche Internet-Tutorien zu Access
(Links auf der entsprechenden Seite zur Vorlesung):
•
•
Michael Brydons Tutorium an der Simon Fraser University, Canada
http://mis.bus.sfu.ca/tutorials/MSAccess/tutorials.html
• Maggie Straplands Access-Seiten an der University of Bristol, UK
http://www.bris.ac.uk/is/services/software/packages/access/
• Jakob Lindenmeyers Access-Tutorium an der ETH Zürich, Schweiz
http://www.inf.ethz.ch/personal/lindenme/publications/access/AccessTutorial.html
Im Buchhandel gibt es sehr viele Bücher über den Umgang mit Access.
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
8
Access-Selbststudium mit der Online-Hilfe
Kapitel 2
Zu allen Konzepten von Access finden Sie ausführliche, gut verständliche Erklärungen
durch Aufrufen der Online-Hilfe ("Office Assistent"), z. B. zum Thema "Tabellen":
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
9
Warum Access ?
Kapitel 2
Warum
Warumwird
wirdAccess
Accessin
indieser
dieserVorlesung
Vorlesungverwendet
verwendet??
• Access ist proprietär, kommerziell . . . und dazu noch von Bill Gates!
aber . . .
• fast jeder private PC-Nutzer hat heutzutage Access auf seinem Computer.
• Access bietet einen idealen Einstieg in die Thematik ohne grossen Aufwand.
• praktisches Arbeiten mit Datenbanken ist essentiell für jeden Hörer !
• es gibt reichlich frei verfügbares Material zum Selberlernen.
• heutzutage gehört das Kennen von Office-Tools fast schon zur Allgemeinbildung.
•
Access ist in seiner Leistungsfähigkeit beschränkt und hat Schwächen,
aber . . .
• Access bietet auch Funktionalitäten, die (fast) kein anderes DBMS bietet.
• Access reicht für die Bedürfnisse eines individuellen Studierenden völlig.
• Access ist leicht zu installieren und benötigt keinen DB-Administrator.
•
Sollte jemand von Ihnen irgendwelche Vorurteile gegenüber Access haben:
Es ist keineswegs "unter der Würde" eines Uni-Informatikers,
ein solches "einfaches" System zu kennen und zu beherrschen!
And
, ititcan
Andby
bythe
theway
way,
canbe
begreat
greatfun,
fun,folks
folks!!
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
10
Tabelle vs. Relation
Kapitel 2
• terminologischer "Konflikt" bei der Bezeichnung für die wichtigste Form von
Datenbankobjekten:
Tabelle
Tabelleoder
oderRelation
Relation??
• in der Praxis (z.B. bei Access): Betonung auf optischer Darstellung in Tabellenform
• in der Wissenschaft: Betonung der mathematischen Grundlage als Relation
• prinzipielle Unterschiede zwischen beiden Bezeichnungen:
Tabelle
Tabelle
−− 2-2-dim.
dim. Array
Arrayaus
ausZeilen/Spalten
Zeilen/Spalten
−− geordnet
geordnet
−− doppelte
doppelteZeilen
Zeilenmöglich
möglich
Relation
Relation
−−Menge
Mengevon
vonTupeln
Tupeln
geordnet
−−un
ungeordnet
−−duplikat
frei
duplikatfrei
• aber:
• Relationen lassen sich in Tabellenform visualisieren, wenn man eine
bestimmte Anordnung wählt.
• Tabellen lassen sich als Relationen formalisieren, wenn man keine Duplikate
zulässt und von der Anordnung absieht.
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
11
Bundesliga-DB
Kapitel 2
1. Beispiel-Datenbank:
Bundesliga-Datenbank
Bundesliga-Datenbank
• . . . enthält Ergebnisse aller Spiele der 1. FußballBundesliga in der aktuellen Saison 2002/03.
• . . . wird während des Semesters stets aktualisiert.
• . . . stets als Access-Datenbank in der Datei
bundesliga02.mdb
über die Vorlesungs-Webseiten zur Verfügung.
• . . . darf natürlich heruntergeladen und verändert
werden.
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
12
Bundesliga-DB: Ergebnisdaten
Kapitel 2
Ergebnisübersicht des 8. Spieltags am 5.10.2002:
Hertha
HerthaBSC
BSCBerlin
Berlin --1.1.FC
FCNürnberg
Nürnberg
VfL
VfLWolfsburg
Wolfsburg--Bayer
BayerLeverkusen
Leverkusen
Bayern
BayernMünchen
München --VfL
VfLBochum
Bochum
Werder
Bremen
FC
Hansa
Werder Bremen - FC HansaRostock
Rostock
Hannover
Hannover96
96--Borussia
BorussiaDortmund
Dortmund
Mönchengladbach
Mönchengladbach--Arminia
ArminiaBielefeld
Bielefeld
FC
FCSchalke
Schalke04
04--Hamburger
HamburgerSV
SV
VfB
VfBStuttgart
Stuttgart--TSV
TSV1860
1860München
München
1.1.FC
Kaiserslautern
Energie
FC Kaiserslautern - EnergieCottbus
Cottbus
Heimspiel
2:1
2:1
2:0
2:0
4:1
4:1
0:0
0:0
0:3
0:3
3:0
3:0
3:0
3:0
4:1
4:1
4:0
4:0
Ergebnisse
Auswärtsspiel
(pro Spieltag 9 Spiele Þ bis inklusive 8. Spieltag 72 Spiele)
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
13
DB-Tabellenformat für Fußballergebnisse
Kapitel 2
Hertha
HerthaBSC
BSCBerlin
Berlin --1.1.FC
FCNürnberg
Nürnberg
. .. .. .
2:1
2:1
Feldnamen
Tabellenname
Spiele2002
Heim
Hertha
Hertha
. .. .. .
Felddatentypen
© 2002 Prof. Dr. Rainer Manthey
Text
ToreH
22
Zahl
Auswärts ToreA Datum
Nürnberg
Nürnberg
Text
Informationssysteme
11
5.10.02
5.10.02
Zahl
Datum
Datensatz
14
Access-Tabelle für Spiele: Datenblattansicht
Kapitel 2
Access-Tabelle
"Spiele2002":
Datenblattansicht
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
15
Access-Tabelle für Spiele: Entwurfsansicht
Kapitel 2
Access-Tabelle
"Spiele2002":
Entwurfsansicht
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
16
Access-Pragmatik
Access-Pragmatik:: Menüleisten für Tabellenentwurf und -manipulation
-manipulation
Kapitel 2
• in der Entwurfssicht:
1
2
Wechseln in die alte Datenblattsicht (vor Entwurfsänderung)
Abspeichern des aktuellen Entwurfs (vor Öffnen des Datenblatts)
• in der Datenblattsicht:
1
12/13
17
© 2002 Prof. Dr. Rainer Manthey
Wechseln in die Entwurfssicht
Ordnen der Daten nach einem oder mehreren Feldern
Suchen mittels "pattern matching" im Datenblatt
Informationssysteme
17
DB-Begriffe: Schema und Zustand einer Datenbank
Kapitel 2
• Den beiden unterschiedlichen "Ansichten" einer Tabelle in Access entsprechen
zwei grundlegende Begriffe der relationalen Datenbanken:
Entwurfsansicht
Schema
Schemaund
undZustand
Zustand
Datenblattansicht
• Schema einer Relation: Festlegung von Name und Struktur der Relation
• Zustand einer Relation: Gesamtheit aller aktuell in der Relation enthaltenen Tupel
• Die Struktur jedes Zustands einer Relation wird festgelegt durch deren Schema.
(Zustände werden auch Instanzen des Schemas genannt)
• Im allgemeinen bleibt bei Zustandsübergängen (DB-Änderungen) das Schema fix.
• In seltenen Fällen treten auch Schemaänderungen auf, denen sofortige Zustandsanpassungen folgen: Schemaevolution
• Plural von Schema: Schemata (nicht etwa "Schemen") !
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
18
Schemata und Zustände
Kapitel 2
Schema1
Schema2
Instanzen
des Schemas
Zustände
aktueller
Zustand
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
19
Bundesliga-DB: Bundesliga-Tabelle
Kapitel 2
Bundesliga-Tabelle nach dem 8. Spieltag:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Verein
Spiele
Bayern
8
Dortmund
8
Werder
8
Schalke
8
Rostock
8
Wolfsburg
8
Hertha
8
Gladbach
8
Bochum
8
1860
8
Stuttgart
8
Bielefeld
8
Nürnberg
8
HSV
8
Leverkusen
8
Hannover
8
1.FCK
8
Cottbus
8
S
6
4
5
4
4
4
3
3
3
3
2
3
3
3
2
2
1
1
© 2002 Prof. Dr. Rainer Manthey
U
1
4
1
3
1
1
3
2
2
2
4
1
0
0
2
1
3
1
N Punkte Tordifferenz Tore Gegentore
1
19
14
22
8
0
16
7
12
5
2
16
3
14
11
1
15
6
12
6
3
13
5
11
6
3
13
1
8
7
2
12
2
9
7
3
11
4
10
6
3
11
2
16
14
3
11
-1
11
12
2
10
3
14
11
4
10
-6
9
15
5
9
-4
10
14
5
9
-6
9
15
4
8
-4
12
16
5
7
-7
11
18
4
6
-4
7
11
6
4
-15
5
20
Informationssysteme
Punkteberechnung:
• pro Sieg:
3 Punkte
• pro Unentschieden:
1 Punkt
Platzierungskriterien:
• Punktzahl
• Tordifferenz
• erzielte Tore
S: Siege
U: Unentschieden
N: Niederlagen
20
DB-Tabellenformat für die Bundesliga-Tabelle
Kapitel 2
Auch die (Bundesliga-)Tabelle liesse sich mit einer (Datenbank-)Tabelle modellieren:
die doppelte Verwendung des Begriffs geschieht bewusst,
der Unterschied zwischen beiden Bedeutungen ist wesentlich!
Tabelle
Verein
Bayern
Bayern
. .. .. .
Text
Spiele S U N Punkte Tordifferenz
88
66 11 11
19
19
14
14
Tore Gegentore
22
22
88
Zahl Zahl . . .
Aber es ist keine so gute Idee, dies zu tun . . . (mehr dazu später) !
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
21
Terminologievergleich:
Terminologievergleich: relationale Grundkonzepte
Kapitel 2
Leider werden für die relationalen Grundkonzepte unterschiedliche Bezeichnungen
verwendet, die als Synonyme zu betrachten sind:
Theorie
Praxis
Access
Relation
Relation
Tabelle
Tabelle
Datenblatt
Datenblatt
Tupel
Tupel
Zeile
Zeile
Datensatz
Datensatz
Attribut
Attribut
Spalte
Spalte
Feldbezeichner
Feldbezeichner
Wertebereich
Wertebereich
Datentyp
Datentyp
Felddatentyp
Felddatentyp
Es wird dringend empfohlen, Begriffe immer konsistent aus einem der drei
Begriffssysteme zu wählen - welches ist egal, Hauptsache konsequent!
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
22
Access: Versionenproblematik
Kapitel 2
Access
Access97
97oder
oderAccess
Access2000
2000??
• Alle Beispiele in dieser Vorlesung sind (bisher) anhand der älteren Version des
Access-DBMS demonstriert worden: Access 97
• In der neueren Version - Access 2000 - funktioniert das meiste so wie in Access 97,
aber die Fenster haben ein etwas anderes Design und es gibt kleine Unterschiede
in der Funktionalität.
• Access 97-DB werden von Access2000 nicht "verstanden" - und umgekehrt.
Es gibt aber Konvertierungsmöglichkeiten in beide Richtungen.
• Die Beispieldatenbanken im Web stehen in beiden Versionen zur Verfügung manchmal nicht ganz synchron angepasst (s. "Zeitstempel").
• Bei Fragen (oder gar Problemen) wenden Sie sich bitte in den Übungen an die
Mitarbeiter.
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
23
Interaktion mit Datenbanken: Prinzip
Kapitel 2
grundlegende Interaktionsformen mit Datenbanken:
lesender
modus
lesenderZugriff:
Zugriff: Anfrage
Anfragemodus
DB
DBMS
schreibender
: Änderungs
modus
schreibenderZugriff
Zugriff:
Änderungsmodus
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
24
Suchen und Anfragen
Kapitel 2
Was
Wasbedeutet
bedeutet"lesender
"lesenderZugriff"
Zugriff"auf
aufeine
eineDatenbank
Datenbank??
Es gibt sehr verschiedene Formen, lesend auf eine DB zuzugreifen nur wenige DBS unterstützen alle diese Formen!
• einfache Formen des "retrieval":
• Durchmustern der Datensätze einer Tabelle: "browsing"
• Suche nach einzelnen/allen Datensätzen, die bestimmte Textmuster
in bestimmten Feldern enthalten: "pattern matching"
• komplexe Formen des "retrieval":
• Auffinden aller Datensätze einer Tabelle, die komplexe Suchbedingungen
erfüllen, die in einer eigenen Sprache formuliert werden können: "querying"
•
Konstruieren beliebiger neuer Resultattabellen aus den Inhalten einer
oder mehrerer Datenbank-Tabellen (bzw. bereits konstruierter Resultate).
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
25
DB-Begriffe rund ums Suchen
Kapitel 2
englisch/deutsche
englisch/deutscheTerminologie
Terminologiezum
zumThema
Thema"Suchen"
"Suchen"in
inDatenbanken
Datenbanken
• engl. "to search": dt. "suchen" - im DB-Kontext unüblich
• engl. "to browse": dt. wörtlich "stöbern",
übertragen etwas wie "unorganisiert durchlaufen"
• engl. "pattern matching": dt. "Mustervergleich"
• engl. "to retrieve": dt. "wiederfinden", "auffinden"
(zugehöriges Substantiv: engl. "retrieval")
• engl. "to query": dt. "fragen", "nachfragen", "abfragen", "bitten"
• als Substantiv speziell im DB-Kontext:
engl. "query": dt. "Abfrage", "Anfrage"
(DB-spezifisch, beide Varianten üblich,
auch im Sinne von Aufforderung [an das DBMS])
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
26
Anfrageformulierung: Allgemeines
Kapitel 2
•
Ein wesentliches, charakteristisches Merkmal aller Datenbankmanagementsysteme ist die Unterstützung einer (oder mehrerer) Anfragesprachen.
•
Eine Anfrage ist ein Ausdruck dieser Sprache, der . . .
• im Prinzip beliebig komplexe Suchkriterien ausdrücken kann.
• sich auf eine oder mehrere Tabellen gleichzeitig beziehen kann.
• als Antwort beliebig viele Datensätze oder auch Ja/Nein liefern kann.
• Datensätze als Antwortmenge wieder in Tabellenform liefert.
•
Access bietet zwei grundsätzlich verschiedene Anfragesprachen, die zwei völlig
unterschiedliche "Paradigmen" der Anfrageformulierung repräsentieren:
• graphisch-interaktiv: "Query-by-Example" (QBE)
• textuell:
"Structured Query Language" (SQL)
•
SQL ist die am weitesten verbreitete Anfragesprache für relationale DB.
SQL ist standardisiert und wird von allen kommerziellen DBMS "verstanden".
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
27
Access-Anfragesprachen: QBE-Stil in der Entwurfssicht
Welche
WelcheHeimHeimspiele
spielehat
hatWerder
Werder
Bremen
Bremengewonnen
gewonnen??
Kapitel 2
Tabelle, aus der die Daten stammen
Formulierung im
QBE-Stil:
• graphisch
dargestellt
• interaktiv
konstruiert
Auswahlkriterien
Access-Bezeichnung:
ebenfalls
Entwurfssicht
© 2002 Prof. Dr. Rainer Manthey
Schema der Antworttabelle
Informationssysteme
28
Access-Anfragesprachen: SQL-Formulierung derselben Anfrage
Kapitel 2
Welche
WelcheHeimHeimspiele
spielehat
hatWerder
Werder
Bremen
Bremengewonnen
gewonnen??
Schema der Antworttabelle
Tabelle, aus der die Daten stammen
dieselbe Anfrage im
SQL-Stil formuliert:
Auswahlkriterien
• textuell dargestellt
• entweder per Hand
eingegeben oder
automatisch erzeugt
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
29
Access-Anfragesprachen: Antworttabelle in Datenblattsicht
Kapitel 2
Welche
WelcheHeimHeimspiele
spielehat
hatWerder
Werder
Bremen
Bremengewonnen
gewonnen??
zugehörige Antwort
als Tabelle im
Datenblattformat
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
30
Access-Anfragesprachen: Synchronisation beider Stile
Kapitel 2
Änderungen in der Anfrageformulierung in einer Sicht werden automatisch an
die andere Sicht weitergereicht: Synchronisation beider Darstellungen
QBE-Ansicht
SQL-Ansicht
SELECT
FROM
WHERE
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
31
Vordefinierte Anfragen als DB-Inhalte in Access
Kapitel 2
• In Access ist es möglich,
Anfragen (bzw. Abfragen)
in der DB zu speichern.
• Beim Öffnen einer vordefinierten Anfrage wird die
Antworttabelle jedesmal
neu generiert.
vordefinierte Abfragen in der
Bundesliga-DB
• wichtig:
Nicht die Antworttabelle
wird gespeichert, sondern
nur der Anfrageentwurf.
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
32
Bundesligatabelle als Antworttabelle auf eine Anfrage
Kapitel 2
Die BundesligaTabelle ist z.B.
durch eine Anfrage
in Access definiert.
Alle Felder der Antworttabelle dieser
Anfrage sind über
mehrere Stufen aus
den Ergebnissen in
'Spiele2002' errechnet
worden.
"abgeleitete
"abgeleiteteTabelle"
Tabelle"
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
33
Vordefinierte Anfragen in der Bundesliga-DB
Kapitel 2
• Antworttabellen auf vordefinierte Anfragen werden ganz ähnlich wie "richtige"
Tabellen behandelt. Insbesondere können sie selbst wieder zum Konstruieren
neuer Anfragen dienen: Unteranfragen
• In der Bundesliga-DB ergibt sich folgende Hierarchie von (Unter-)Anfragen:
Tabelle
Tabelle2
Tabelle1
abgeleitete
Tabellen
Spiele
Siege
gespeicherte
Tabellen
© 2002 Prof. Dr. Rainer Manthey
So
Sokomplex
komplexkann
kann
das
werden
das werden! !
AnzahlSiege
AnzahlUnentschieden
AnzahlNiederlagen
Unentschieden
Niederlagen
Spiele2002
Vereine2002
Informationssysteme
34
Spezielle Anfragen in Access: nur in SQL möglich!
Kapitel 2
• Im Bundesliga-Beispiel kommen einige vordefinierte Anfragen vor, die in der
Entwurfssicht nicht darstellbar sind (d.h., die man nicht im QBE-Stil ausdrücken kann), z.B. Siege oder Spiele.
• Diese Anfragen lassen Sie nur in SQL mit textuellen Mitteln definieren.
• In diesen Beispielen fehlt jedesmal die Möglichkeit, zwei gleich strukturierte
Antworttabellen "aneinander zu hängen" bzw. "zu vereinigen", z.B.
HeimSiege
Siege
• SQL bietet dazu einen speziellen
Vereinigungsoperator für Relationen:
UNION
•
AuswärtsSiege
© 2002 Prof. Dr. Rainer Manthey
Mehr zu den Möglichkeiten von SQL
lernen Sie im nächsten Kapitel!
Informationssysteme
35
Access-Pragmatik
Access-Pragmatik:: Anfrageformulierung
Kapitel 2
• in der Entwurfssicht:
1
2
12
Wechseln in die alte Datenblattsicht (vor Entwurfsänderung)
Abspeichern eines Anfrageentwurfs
Ausführen der Anfrage, d.h. Wechsel in die neue Datenblattansicht
• in der Datenblattansicht:
1
17
Wechseln in die Entwurfssicht
Suchen mittels "pattern matching" im Datenblatt
im Menü zu diesem Punkt: SQL-Sicht als dritte Alternative
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
36
Zustandsänderungen: Allgemeines
Kapitel 2
• "Schreibende" Zugriffe auf eine Datenbank . . .
• führen stets zu Zustandsübergängen der DB.
• finden stets unter Kontrolle des DBMS statt.
• drei grundsätzliche Arten von Änderungszugriffen:
• Einfügungen neuer Datensätze in eine Tabelle
(engl.: "to insert")
• Löschungen existierender Datensätze aus einer Tabelle
(engl.: "to delete")
• Modifikationen einzelner Felder bestimmter Datensätze
(engl.: "to update" oder "to modify")
•
Einfügungen und Modifikationen werden nur akzeptiert (vom DBMS), wenn
die vereinbarten Datentypen der Felder im Schema zu den Datentypen der
Werte in den neuen/modifizierten Datensätzen "passen".
•
Vorsicht! Der englische Begriff "update" wird manchmal für Modifikationen,
manchmal aber auch für beliebige Änderungen verwendet.
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
37
Änderungen in Access: direkt im Datenblatt
in Access:
individuelle Änderungen
von Datensätzen können
direkt im Datenblatt vorgenommen werden
(nur bei Tabellen, nicht
bei Antworten)
Kapitel 2
falscher Datentyp
DBMS-Kontrolle:
• Einfügungen:
beim Abspeichern
• Löschungen:
Bestätigung gefordert
• Modifikationen:
Datentypkontrolle
komplexe Änderungen:
später (Aktionsabfragen)
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
38
2. Beispieldatenbank:
"
Beispieldatenbank: "Stadt-Land-Fluss
"Stadt-Land-Fluss"
Kapitel 2
• Weitere Access-Beispieldatenbank, die in der Vorlesung verwendet wird und zu
Übungszwecken allen Teilnehmern zur Verfügung steht (siehe Vorlesungsseiten
im Web).
stadtlandfluss
.mdb
stadtlandfluss.mdb
• Datenbank mit grundlegenden Informationen zur Geographie Deutschlands:
• wichtigste Städte und Flüsse
(z.B. alle deutschen Städte über 50000 Einwohner)
• alle Bundesländer und Regierungsbezirke
• zahlreiche Informationen zum geographischen Zusammenhang dieser Objekte
(z.B. In welchem Land liegt Bonn? Welche Nebenflüsse hat der Rhein?)
• DB wird ständig erweitert - eigene Beiträge willkommen!
•
Ziel dieser "Investition":
• Gelegenheit zum Üben korrekter Anfrageformulierung anhand einer hinreichend grossen Datenmenge aus realistischen Fakten von allg. Interesse.
• Wird im ersten Teil der Vorlesung und in den Übungen verwendet.
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
39
Tabellen in der StadtLandFluss-Datenbank
StadtLandFluss-Datenbank
Kapitel 2
Das Schema dieser
Beispiel-DB enthält
zahlreiche Tabellen,
aber nur wenige vordefinierte Anfragen.
Aber es eignet sich
hervorragend zum
Üben im Formulieren
eigener Anfragen!
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
40
StadtLandFluss-Datenbank:
StadtLandFluss-Datenbank: Nebeneffekt
Kapitel 2
Deutschland
Können Sie all diesen
deutschen Städten ihre
Namen zuordnen?
Erkennen Sie in dieser
Karte alle 16 Bundesländer?
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
Wenn nicht, dann
nutzen Sie die Arbeit
mit der SLF-DB auch
zum Verbessern Ihrer
geographischen GrundKenntnisse !
41
SLF-Datenbank: Objektklassen und Beziehungen
Kapitel 2
hauptstadt_von
nachbarland_von
Land
stadt_in_land
Kommt
Kommtman
manauf
auf
so
eine
Weise
zu
so eine Weise zu
einem
einem"guten"
"guten"
Tabellenentwurf
Tabellenentwurf??
Stadt
fluss_durch_land
fluss_entspringt_in_land
stadt_an_fluss
quellfluss_von
Fluss
nebenfluss_von
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
42
Verknüpfen von Tabellen über "gleichartige" Felder
Kapitel 2
• (beinahe) wichtigste Technik der Anfrageformulierung:
Verknüpfen von Tabellen über Felder mit gleichem Felddatentyp
• im QBE-Stil (d.h. in der Entwurfssicht):
Erzeugen von Verbindungslinien zwischen Feldern durch "Drag and Drop"
oder selbstständig durch Access
stadt
∗
ID
Kfz
Name
Einwohner
stadt_in_land
hauptstadt_von_land
∗
Name
Land
∗
Bundesland
Hauptstadt
automatisch von Access
erstellt wegen Namensgleichheit der Felder
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
per Hand zu erstellen
wegen gleichem Typ
und gleicher Bedeutung
43
Verknüpfungen: implizite Antworttabelle
stadt
∗
ID
Kfz
Name
Einwohner
Kapitel 2
stadt_in_land
hauptstadt_von_land
∗
Name
Land
∗
Bundesland
Hauptstadt
Effekt der Verknüpfung: Bilden einer grossen "Produkttabelle" aus allen
Feldern der verknüpften Tabellen
ID
Kfz
stadt.Name Einwohner stadt_in_land.Name Land Bundesland Hauptstadt
nötig wegen Namensgleichheit
aber: Nur Datensätze mit identischem Wert in verknüpften Feldern werden aufgenommen!
1
B
Berlin
© 2002 Prof. Dr. Rainer Manthey
3382
Berlin
Informationssysteme
BE
BE
Berlin
44
Verknüpfung in SQL-Stil: JOIN-Operation
Kapitel 2
• im SQL-Stil: eigener Operator zum Verknüpfen von Tabellen
Join
Join
(engl., auf Deutsch: "Verbund")
• diverse Varianten: INNER JOIN, LEFT JOIN, RIGHT JOIN
• genaue Beschäftigung damit in Kapitel 3
SELECT
land.*, hauptstadt_von_
land.*
SELECTstadt.*,
stadt.*,stadt_in_
stadt_in_land.*,
hauptstadt_von_land.*
FROM
land
FROM(stadt
(stadtINNER
INNERJOIN
JOINstadt_in_
stadt_in_land
ON
land.Name)
ONstadt.Name
stadt.Name==stadt_in_
stadt_in_land.Name)
INNER
land
INNERJOIN
JOINhauptstadt_von_
hauptstadt_von_land
ON
land.Land ==hauptstadt_von_
land.Bundesland;
ONstadt_in_
stadt_in_land.Land
hauptstadt_von_land.Bundesland;
Join-Bedingung: Namensgleichheit
Join-Bedingung: von Hand wegen gleichem Typ
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
45
Warum "Query by Example"
Example" ?
stadt
∗
ID
Kfz
Name
Einwohner
Kapitel 2
stadt_in_land
hauptstadt_von_land
∗
Name
Land
∗
Bundesland
Hauptstadt
Bezeichnung "Query by example" (= "Anfrage durch Beispiel") stammt von
der ursprünglichen Form dieser graphischen Sprache (aus den 1970er Jahren):
Verknüpfung wurde definiert durch Verwenden identischer Beispielwerte in zu verknüpfenden Feldern
stadt_in_land.Name Land
ID
Kfz
Berlin
stadt.Name Einwohner
BE
Berlin
Bundesland Hauptstadt
BE
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
46
Übung im Formulieren von Anfragen mittels QBE-Modus
Kapitel 2
• letzte Woche kennengelernt: interaktives, graphisches Konstruieren von Suchbefehlen (Anfragen) im "Query-by-Example"(QBE)-Stil
• zunächst "zum Warmwerden": Formulierung einiger Beispielanfragen an die
StadtLandFluss-Datenbank in diesem Stil
• Access-Terminologie für dieses Art Anfragen, bei denen eine temporäre Antworttabelle erzeugt wird:
Auswahlabfrage
Auswahlabfrage
• Hauptschwierigkeiten:
• korrektes Verknüpfen der beteiligten Tabellen über bedeutungsgleiche
Felder
• korrektes Formulieren der Suchbedingungen ("Kriterien")
• korrekte Verwendung der arithmetischen Funktionen insbesondere zum
Aggregieren von Feldern (Summe, Anzahl, Maximum etc.) mit entsprechender Gruppierung anderer Felder
• Erkennen der Grenzen des QBE-Stils
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
47
Aufbau von Anfragen im QBE-Stil: Details
Kapitel 2
Feldname
Feldname
Tabellenname
Tabellenname
Feld:
Tabelle:
Sortierung:
Anzeige:
Kriterien:
oder:
Einwohner
stadt
Aufsteigend
fest
festvorgegebene
vorgegebene
Sortierung
Sortierung
√
> 150
Auswahlkriterien
Auswahlkriterien
für
füranzuzeigende
anzuzeigende
Feldwerte
Feldwerte
© 2002 Prof. Dr. Rainer Manthey
Feld
Feldsoll
sollangezeigt
angezeigtwerden
werden??
mehrere Kriterien für ein Feld mit Booleschen
Operatoren verknüpft, z.B.: > 150 Und < 500
Informationssysteme
48
Aufbau von Anfragen im QBE-Stil: Konjunktion
Kapitel 2
• Kriterien für verschiedene Felder werden implizit konjunktiv verknüpft.
Feld:
Tabelle:
Sortierung:
Anzeige:
Kriterien:
oder:
Einwohner
stadt
Land
stadt_in_land
Aufsteigend
√
√
> 150 Und < 500 <> "BY"
explizite Konjunktion
• Formulierung der dahinter stehenden Bedingung im SQL-Stil:
WHERE
WHERE stadt.Einwohner
stadt.Einwohner>>150
150 AND
ANDstadt.Einwohner
stadt.Einwohner<<500
500
AND
land.Land <>
AND stadt_in_
stadt_in_land.Land
<>"BY"
"BY"
implizite Konjunktion
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
49
Aufbau von Anfragen im QBE-Stil: Disjunktion
Kapitel 2
• In einer neuen Kriterienzeile können Alternativen (implizite Oder-Verknüpfungen)
auch über mehrere Felder hinweg formuliert werden:
Feld:
Tabelle:
Sortierung:
Anzeige:
Kriterien:
oder:
Einwohner
stadt
Land
stadt_in_land
Aufsteigend
√
> 150
= "BY"
= "NW"
• Formulierung der dahinter stehenden Bedingung im SQL-Stil:
WHERE
land.Land <>
WHERE ((stadt.Einwohner
stadt.Einwohner>>150
150 AND
AND stadt_in_
stadt_in_land.Land
<>"BY"
"BY"))
OR
land.Land <>
OR (stadt_in_
(stadt_in_land.Land
<>"NW"
"NW"))
implizite Disjunktion
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
50
Parametrisierte Abfragen
Kapitel 2
• Oft ist es erforderlich, immer wieder ähnliche Anfragen zu stellen, die sich
nur in einem oder mehreren "Anfrageparametern" unterscheiden, ansonsten
aber strukturell identisch sind, so dass man sie gerne vordefinieren würde.
• Beispiel: "Welche Großstädte liegen im Bundesland X ?"
• Variante 1: "Welche Großstädte liegen in Nordrhein-Westfalen?"
• Variante 2: "Welche Großstädte liegen in Bayern ?"
• Access unterstützt solche parametrisierten Anfragen durch Zulassen von Variablen in Anfragen (in QBE und SQL).
• Variablen werden durch Einschließen in Klammern kenntlich gemacht.
(Vorsicht! Gefahr der Verwechslung mit Feldnamen)
• Wird eine parametrisierte Anfrage ausgewertet, dann erscheint zunächst pro
Parameter ein Dialogfeld, in dem nach dem aktuellen Werten für diesen
Parameter gefragt wird.
• Der Name der Variable erscheint in diesem Feld, kann also (als String) zum
Formulieren einer Eingabeaufforderung "missbraucht" werden.
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
51
Parametrisierte Anfrage: Beispiel
Kapitel 2
"Welche
"WelcheGroßstädte
Großstädteliegen
liegenim
imBundesland
BundeslandXX?"
?"
Feld:
Tabelle:
Sortierung:
Anzeige:
Name
großstadt
√
Kriterien:
oder:
Einwohner
großstadt
Land
stadt_in_land
Variable
:
Variable:
Statt
Statt[X]
[X]wird
wird
String
Stringmit
mitEingabeEingabeaufforderung
aufforderungver
verwendet.
wendet.
√
["Bundesland, in
automatisch erzeugtes
Dialogfeld zur Eingabe
des aktuellen Parameters:
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
52
Aggregieren und Gruppieren
Kapitel 2
• weitere wichtige Grundfunktionalität aller DB-Anfragesprachen:
Berechnen von zusammenfassenden numerischen Werten über bestimmten
Feldern einer Tabelle (z.B. Anzahl, Summe, Maximum, Minimum usw.)
Aggregieren
Aggregieren
• zugehörige arithmetische Funktionen: Aggregatfunktionen
• im Access-Entwurfsmodus für Anfragen: Durch Klicken auf das Funktionensymbol å in der Schaltflächenleiste aktivierbar !
• Anwenden von Aggregatfunktionen erfordert in der Regel vorher das Einteilen der
jeweiligen Tabelle in Gruppen gemäß den Werten eines anderen Feldes:
Gruppieren
Gruppieren
• Beispiel: Maximum der Werte
im Feld B
pro Wert
im Feld A
© 2002 Prof. Dr. Rainer Manthey
A
Gruppen
a1
a1
a2
a2
a2
Informationssysteme
B
3
5
6
9
1
Maximum: 5
Maximum: 9
53
Aggregieren und Gruppieren: ein einfaches Beispiel
Kapitel 2
Größe der größten
Stadt im Land:
• Gruppierung nach
Ländern
• Aggregierung mit
Max(imum)-Fkt.
über 'Einwohner'
Vorsicht!
Will man auch den
Namen dieser größten
Stadt sehen, gibt's
Probleme - das geht
nicht so einfach . . .
© 2002 Prof. Dr. Rainer Manthey
Funktionsmodus aktiviert !
Gruppierung
Aggregierung
Informationssysteme
54
Aggregieren und Gruppieren: eine schwierige Variante!
Kapitel 2
. . . das geht nur unter
Rückgriff auf die vorige
Anfrage:
vorige Anfrage als
Unteranfrage
Welche Stadt hat die
gleiche Einwohnerzahl
wie die größte Stadt in
dem Land, in dem sie
liegt ?
oder eigentlich:
Wie heisst die größte
Stadt im Land?
hier als parametrisierte Anfrage
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
55
Tabellenerstellungsabfragen
Kapitel 2
• Manchmal ist das Beantworten einer Anfrage relativ "teuer" (zeitaufwändig),
ist aber häufig erforderlich, so dass immer wieder die hohen Kosten anfallen.
• In diesem Fall wäre es besser, die Antworttabelle nur einmal zu berechnen und
dann als "echte" Tabelle permanent und explizit zu speichern:
Materialisierung der Anfrage
• Anfragen, deren Antworttabelle explizit gespeichert werden soll, heissen in
Access-Terminologie
Tabellenerstellungsabfragen
Tabellenerstellungsabfragen .
• Zu einer solchen Anfrage A gehört eine ganz bestimmte Tabelle TA, die von
der Anfrage "gespeist" wird:
• Wird A erstmals aufgerufen, dann wird TA mit Datensätzen gefüllt.
• Bei jedem erneuten Aufruf von A wird TA komplett ersetzt.
• Nach jeder Änderung der von A referenzierten Tabellen, sollte man
TA durch erneuten Aufruf von A anpassen.
• TA kann wie jede Tabelle separat verändert werden, man verliert dann aber den
durch die Erstellungsabfrage A definierten logischen Bezug!
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
56
Aktionsabfragen
Kapitel 2
• Tabellenerstellungabfragen sind Beispiele einer grösseren Klasse von Anfragen,
bei denen in Abhängigkeit von den Ergebnissen einer Suchanfrage bestimmte
Änderungsaktionen durchgeführt werden:
Aktionsabfragen
Aktionsabfragen
•
Access kennt folgende Typen von Aktionsabfragen:
• Tabellenerstellungsabfragen
• Anfügeabfragen
• Löschabfragen
• Aktualisierungsabfragen
•
Auch hier gehört zu jeder Aktionsabfrage A eine zu manipulierende Tabelle TA.
•
Antworten auf Anfügeabfragen werden TA angefügt, Antworten auf Löschabfragen werden aus TA entfernt.
•
Aktualisierungsabfragen ermöglichen das selektive Ändern bestimmter Felder
in Abhängigkeit von Bedingungen und Ausdrücken. Auf diese Weise können
mehrere Felder verschiedener Tabellen modifiziert werden: TA ist implizit.
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
57
Aktualisierungsabfrage: Beispiel
Kapitel 2
Hier
Hierkann
kannder
der
Abfragetyp
Abfragetypausausgewählt
werden!
gewählt werden!
Aktualisierungsabfrage:
Vermindere die
Einwohnerzahl
aller Städte in NW
um 10.000 !
zusätzliche
zusätzlicheZeile
Zeile
für
fürAktualisierungs
Aktualisierungsausdruck
ausdruck
© 2002 Prof. Dr. Rainer Manthey
Aktualisierungsausdruck
:
Aktualisierungsausdruck:
[Einwohner]
[Einwohner]−−10
10
Informationssysteme
58
Nullwerte und Standardwerte
Kapitel 2
• zurück zur Bundesliga-Datenbank:
Ergebnisse vom 9. und 10. Spieltag sind mittlerweile nachgetragen!
• Auch die Spielpaarungen des kommenden 11. Spieltags stehen schon in der
Spiele2002-Tabelle, noch ohne jeglichen Eintrag in den Tore-Feldern:
Nullwerte
Nullwerte
• allgemein: Leere Felder gelten als mit einem speziellen Wert "Null" belegt,
der zu jedem Felddatentyp implizit mit dazu gehört!
•
Es gibt ein Boolesches Prädikate, um ein Feld auf Nullwerte zu testen: Ist Null
(siehe neue Anfragen "AusstehendeSpiele" und "AbsolvierteSpiele")
•
Nullwerte werden beim Berechnen arithmetischer Werte (z.B. Summe von Toren)
nicht mit gerechnet ("verfälschen Tabelle nicht").
•
Würde man stattdessen in den Torefeldern den Standardwert des Datentyps
Integer, die Ziffer 0, verwenden, würde jede solche Partie als 0:0 unentschieden
angesehen und als Spielergebnis mit in der Tabelle berüclsichtigt.
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
59
Primärschlüssel
Kapitel 2
• bisher versehentlich möglich: Doppeltes Eintragen eines Ergebnisses, d.h.
mehrfaches Vorkommen identischer Datensätze
• offenbar in der Bundesliga: pro Datum und Mannschaft nur ein Spiel !
• (Kombinationen von) Felder(n), deren Werte den jeweiligen Datensatz eindeutig
innerhalb der Tabelle identifizieren:
Schlüssel
Schlüssel
• Access erlaubt es, pro Tabelle einen solchen Schlüssel zu vereinbaren:
Primärschlüssel
Primärschlüssel
• dazu im Entwurfsmodus: Markieren des Feldes (der Felder) und Auswählen
des Menüpunkts 'Primärschlüssel' im Menü 'Bearbeiten' (Schlüsselsymbol)
• Versucht man nun, einen Datensatz einzufügen, dessen Schlüsselwerte bereits
in einem existierenden Datensatz der Tabelle vorkommen, wird der Einfügeversuch vom Access-DBMS zurückgewiesen!
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
60
Gültigkeitsregeln
Kapitel 2
• Zahlreiche weitere Fehlerquellen bei Eingabe und Modifikation von Datensätzen, z.B.:
• negative Zahlen auf den Feldern 'ToreH' und 'ToreA'
• Zahlen über 18 oder unter 1 im Feld 'Spieltag'
•
Um solche semantisch falschen Feldwerte zu verhindern, kann man beim
Tabellenentwurf Gültigkeitsregeln festlegen, die durch das Access-DBMS
automatisch überprüft werden.
•
Pro Feld ist ein Boolescher Ausdruck als Gültigkeitsregel möglich, der von
allen zulässigen Feldwerten erfüllt werden muss.
•
Versuche, "falsche" Feldwerte einzugeben, werden zurückgewiesen.
•
Dabei wird ein ebenfalls beim Entwurf festgelegter Text als Gültigkeitsmeldung
ausgegeben.
•
Auch in der Zeile "Eingabe erforderlich" im Entwurfsmodus kann eine weitere
Beschränkung für Feldwerte festgelegt werden:
Ja: Nullwerte verboten  Nein: Nullwerte erlaubt
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
61
Gültigkeitsregeln: Beispiel
Kapitel 2
Gültigkeitsregel
für Feld 'Spieltag':
• nur positive Werte
• höchstens 34 Spiele
bei Regelverletzungen:
Ausgabe einer
Gültigkeitsmeldung
Nullwerte im Feld
'Spieltag' verboten!
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
62
Referentielle Integrität
Kapitel 2
• weitere ernste Fehlerquelle: In die Tabelle 'Spiele2002' kann man ohne weiteres
Mannschaftsnamen eingeben, die in der Tabelle 'Vereine2002' (die alle aktuellen
Bundesligavereine enthält) gar nicht vorkommen, etwa
2.2.FC
FCHintertupfingen
Hintertupfingen 12
12 SV
SVBallaballa
Ballaballa 00 1.4.2002
1.4.2002
• Offensichtliche weitere semantisch bedingte Bedingung für gültige Werte der Felder
'Heim' und 'Auswärts':
Alle zulässigen Vereinsnamen müssen im Feld 'Kurzform' der Tabelle
'Vereine2002' vorkommen.
• In den beiden Feldern von 'Spiele2002' müssen gültige Referenzen auf das Primärschlüsselfeld von 'Vereine2002' stehen:
referentielle
referentielleIntegrität
Integrität
• Referentielle Integrität lässt sich in Access-DB durch Einrichten von Beziehungen
zwischen Tabellen erhalten.
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
63
Beziehungen in der Bundesliga-DB
• Beim Klicken der
rechten Maustaste im
Datenbankfenster erscheint ein Menü, in
dem die Option
'Beziehungen'
enthalten ist.
(alternativ: im AccessMenü 'Extras')
• Wie beim Konstruieren
von Anfragen lassen sich
durch Tabellenauswahl
und 'Drag and Drop'
Beziehungen erstellen.
Kapitel 2
kontrollierende
Tabelle
kontrollierte
Tabelle
Kopie der kontrollierenden
Tabelle
• Ausgangspunkt einer
Beziehung muss stets ein
Primärschlüssel sein !
• In der kontrollierten
Tabelle wird dieses Feld
Fremdschlüssel genannt.
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
64
Einrichten von Beziehungen mit referentieller Integrität
Kapitel 2
• Beim Verbinden zweier Feldnamen im Beziehungsmodus (oder durch Anklicken
schon eingerichteter Beziehungen) öffnet sich ein Dialogfeld zum näheren Einstellen der jeweiligen Beziehung.
• Beispiel: Beziehung zwischen dem Primärschlüssel von 'Vereine2002' und
dem Feld 'Heim' in 'Spiele2002'
referentielle Integrität
aktiviert
Änderungen in 'Kurzform'
werden an 'Heim' weitergegeben.
• Wird referentielle Integrität entlang einer Beziehung gefordert, dann kann man
statt Zurückweisung bei Integritätsverletzung auch konstruktiv die Verletzung
"reparieren": durch Aktualisierungsweitergabe und/oder Löschweitergabe
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
65
Beziehungen im StadtLandFluss-Schema
StadtLandFluss-Schema
© 2002 Prof. Dr. Rainer Manthey
Kapitel 2
Informationssysteme
66
Integritätsbedingungen
Kapitel 2
• Alle bisher vorgestellten Möglichkeiten zur Verhinderung (im Sinne der jeweiligen Anwendung) "sinnloser" Änderungen stellen Spezialfälle eines allgemeinen Grundkonzepts der DB-Technologie dar:
Integritätsbedingungen
Integritätsbedingungen
• andere bedeutungsgleiche Bezeichnung: Konsistenzbedingungen
• engl.: "integrity constraints", "consistency constraints"
• Integritätsbedingungen sind im allgemeinen Boolesche Ausdrücke, die in jedem
Zustand der Datenbank unveränderlich erfüllt sein müssen: Invarianten
• Änderungen, die zu Integritätsverletzungen führen würden, werden von jedem
DBMS abgefangen und zurückgewiesen.
• Access unterstützt folgende speziellen Formen von Integritätsbedingungen:
• Schlüsselbedingungen
• Gültigkeitsregeln für einzelne Felder
• referentielle Integritätsbedingungen (Fremdschlüsselbedingungen)
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
67
Relationale Datenbanken in Access: Zusammenfassung
Kapitel 2
• Ziele dieses Kapitels:
• Einführen in das praktische Arbeiten mit relationalen DB mittels Access
• Illustrieren der wichtigsten Grundbegriffe und -konzepte an Beispielen
• Zusammenfassung der kennengelernten Begriffe/Konzepte:
Datenmodell
Datenmodell
DB-Schema
DB-Schema
DB-Zustand
DB-Zustand
Relation/Tabelle/Datenblatt
Relation/Tabelle/Datenblatt
Attribut/Spalte/Feld
Attribut/Spalte/Feld
Tupel/Zeile/Datensatz
Tupel/Zeile/Datensatz
Wertebereich/Datentyp/Felddatentyp
Wertebereich/Datentyp/Felddatentyp
Nullwert
Nullwert
Standardwert
Standardwert
Beziehung
Beziehung
DB-Anfrage/-Abfrage
DB-Anfrage/-Abfrage
Anfragesprache
Anfragesprache
Unteranfrage
Unteranfrage
parametrisierte
parametrisierteAnfrage
Anfrage
Aktionsabfrage
Aktionsabfrage
Integritätsbedingung
Integritätsbedingung
Gültigkeitsregel
Gültigkeitsregel
Primärschlüssel
Primärschlüssel
Fremdschlüssel
Fremdschlüssel
referentielle
referentielleIntegrität
Integrität
• ab 30.10.: Genaueres Kennenlernen des anderen, von Access unterstützten
Stils der Anfragebeantwortung mittels SQL (Structured Query Language)
© 2002 Prof. Dr. Rainer Manthey
Informationssysteme
68
Herunterladen