18. Kapitel

Werbung
Kapitel 18:
Datenbanksysteme (1)
Einführung in die Informatik
Wintersemester 2007/08
Prof. Bernhard Jung
Übersicht
‰
‰
‰
‰
‰
Datenbanken und Datenbanksysteme
Entity/Relationship-Modell (ERM)
Das Relationale Datenmodell (RDM)
Abbildung ERM Æ RDM
Relationale Algebra
Hauptlernziele
• Verständnis der Grundzüge relationaler Datenbanksysteme
• ER-Modelle als Mittel zur Kommunikation zwischen Datenbank-Anwendern und
Datenbank-Entwicklern verstehen
• Fähigkeit, ER-Modelle lesen und selber entwickeln zu können
Literatur (z.B.)
Gumm & Sommer. Einführung in die Informatik. Oldenbourg. 2004.
Prof. B. Jung
Einführung in die Informatik, WS 2007/08
TU Bergakademie Freiberg
1
Datenbanksysteme
„
Datenbanktechnologie:
die
dieauf
aufein
einDatenbanksystem
Datenbanksystemgestützte
gestützteVerfahrensweise
Verfahrensweisebei
beider
derSpeicherung,
Speicherung,
Verwaltung
und
Nutzung
von
Informationen
eines
Anwendungsbereiches
Verwaltung und Nutzung von Informationen eines Anwendungsbereiches
„
Schwerpunkte:
Architektur von Datenbanksystemen, konzeptueller Datenbankentwurf,
relationales Datenmodell, relationale Sprache, relationale Entwurfstheorie,
Datenintegrität / Datensicherheit, Mehrbenutzersynchronisation, interne
Datenorganisation, externe Schnittstellen, objektorientierte Datenbanken
Prof. B. Jung
Einführung in die Informatik, WS 2007/08
TU Bergakademie Freiberg
Datenbanksysteme - Begriffe
„
Datenbank (DB)
‰
„
Datenbankmanagementsystem (DBMS):
‰
„
Zusammenfassung von Datenbank und Datenbankmanagementsystem
Datenmodell (DM):
‰
‰
„
Softwaresystem zur Verwaltung und
Bereitstellung von Datenbeständen
Datenbanksystem (DBS):
‰
„
Sammlung von Datenbeständen
einschließlich deren Beschreibung
Konzepte für die Abbildung von Diskursbereichen in Datenbanken (Strukturen,
Operationen, Integritätsbedingungen)
z.B. Entity-Relationship-Modell, relationales Datenmodell
Datenbanksprache (DL):
‰
‰
Sprache zur Definition (DDL) sowie Manipulation und Abfrage (DML) von
Datenbeständen
z.B. SQL (nächste Vorlesung)
Prof. B. Jung
Einführung in die Informatik, WS 2007/08
TU Bergakademie Freiberg
2
Relationale Datenbanken
„
Relationales Datenbankmanagementsystem (RDBMS)
Tabellen mit Daten
Tabelleninhalt
‰
‰
Zeile repräsentiert Fakt
Attributwert repräsentiert eine Charakteristik
„
„
„
DBMS
Tabellen
Relationale Datenbanken
Z.B. Oracle, IBM DB2, Microsoft SQL Server, Microsoft Access, ....
Opensource Datenbanken: mysql, postgres, MaxDB (SAP DB), ...
Alternative Technologien: Objektorientierte DBs, deduktive DBs, XML DBs, ...
‰
‰
‰
accountId
lastName firstName
street
city
state
zipcode balance
101
Block
Jane
345 Randolph Circle
Apopka
FL
30458-
$0.00
102
Hamilton
Cherry
3230 Dade St.
Dade City FL
30555-
$3.00
103
Harrison
Katherine
103 Landis Hall
Bratt
FL
30457-
$31.00
104
Breaux
Carroll
76 Main St.
Apopka
FL
30458-
$35.00
Prof. B. Jung
Einführung in die Informatik, WS 2007/08
TU Bergakademie Freiberg
Grundlagen relationaler Datenbanken
„
Das Relationale Datenmodell repräsentiert Information in Tabellen ("Relationen"
genannt)
‰
‰
Jede Tabelle repräsentiert Information über i.a. mehrere Entities
Tabellenspalte enthält Attributwerte der Enitities
„
‰
„
alle Attribute sind atomar, d.h. haben einen nicht weiter dekomponierbaren Wert
z.B. Strings, Zahlen; aber z.B. keine Listen
Tabellenzeile enthält Information über eine Entity
Relationale Datenbank = Menge von Tabellen
Beispiel:
Relation
"Student"
Matrnr
Name
Sem
24002
Xenokrates
18
25403
Jonas
12
26120
Fichte
10
26830
Aristoxenos
8
Kopfzeile enthält Attributnamen
Zeile mit Daten über eine Entity
(hier: Student)
Spalte mit Attributwerten
Prof. B. Jung
Einführung in die Informatik, WS 2007/08
TU Bergakademie Freiberg
3
DBMS - Qualitätsmerkmale
Datenumfang:
Zugriffszeit:
Redundanzarmut:
Nutzerfreundlichkeit:
Konsistenz:
Sicherheit:
Effizienz:
Standardisierung:
Integration:
Fundierung:
Verwaltung von Datenbeständen praxisrelevanter Größenordnung
Datenbereitstellung entspricht zeitlich den Anforderungen der Nutzer
Mehrfachhaltung von Daten wird vermieden oder reduziert
Nutzer können auf die Daten in einer ihnen gemäßen Form zugreifen
Gewährleistung eines gültigen Abbildes der Realität
Verfügbarkeit bei Fehlfunktionen von System oder Nutzer
relativ geringer Aufwand zur Erfüllung der Nutzeranforderungen
einheitlich definierte Anwendungsschnittstellen
Anwendungsprozesse können durch gemeinsame Datenhaltung
zusammenarbeiten
mathematisch-theoretische Absicherung von Strukturen und Operationen
Datenunabhängigkeit:
Nutzer werden entlastet von Organisation der Datenverwaltung
Prof. B. Jung
Einführung in die Informatik, WS 2007/08
TU Bergakademie Freiberg
Entwicklung relationaler Datenbanken: Datenmodelle auf
mehreren Ebenen
„
Konzeptuelle Datenmodelle
‰
‰
‰
‰
‰
„
Logische Datenmodelle
‰
‰
‰
‰
„
in Form, die (auch) für Anwender verständlich ist
helfen dem gegenseitigen Verständnis von Entwicklern und Anwendern
semi-formale oder formale Beschreibungen
z.B. ERM = Entity-Relationship Modell
Entities, Relationships, Attribute
in Form, die für relationales Datenbanksystem verständlich ist
Entstehen durch Überführung konzeptueller Datenmodelle (nach festen Regeln)
z.B. RDM = Relationales Datenmodell
Relationsschemata, Attribute
Physikalische Datenmodelle
‰
‰
‰
in Form, die für unterliegende Computer-Hardware und Betriebssystem verständlich ist
wie Datenbankinhalte auf der Festplatte gespeichert werden
i.a. automatisch aus RDM generiert
Prof. B. Jung
Einführung in die Informatik, WS 2007/08
TU Bergakademie Freiberg
4
Entity-Relationship-Modell (ERM)
Formalismus zur Abbildung von Diskursbereichen als Gesamtheit von Gegebenheiten (Entities),
zwischen denen Beziehungen (Relationships) bestehen.
Diskursbereich:
Ausschnitt der Realität, der für eine bestimmte Anwendung relevant ist
Beispiel: Universität mit Studenten, Assistenten, Professoren, Lehrveranstaltungen, Prüfungen
Ziele:
- Entwicklung eines schematischen, zeitunabhängigen Modells des Diskursbereiches
- Unterstützung der frühen Entwurfsphasen
- Graphische Veranschaulichung von Zusammenhängen
- Kommunikationsmittel zwischen Anwendern, Entwicklern und Implementierern
- Abbildbarkeit in Relationales Datenmodell
Prof. B. Jung
Einführung in die Informatik, WS 2007/08
TU Bergakademie Freiberg
Entities
Entity: diskrete, identifizierbare Abstraktion eines Gegenstandes der Anschauung oder des Denkens
Entity-Typ: Verallgemeinerung (Klassifikation) gleichartiger, ähnlicher Entities
Diagrammdarstellung: Entity-Typ als Rechteck mit Namen des Entity-Typs
Entity-Typ
Entity-Typ
Beispiele: Student, Assistent, Professor, Lehrveranstaltung
Student
Student
Prof. B. Jung
Assistent
Assistent
Einführung in die Informatik, WS 2007/08
TU Bergakademie Freiberg
5
Attribute
Attribut:
Merkmal zur Beschreibung von Entities und Relationships;
besitzt einen Namen und eine Merkmalswertemenge (Domäne)
Diagrammdarstellung:
Beispiele:
Attribut als Kreis / Ellipse mit Attributnamen, durch ungerichtete Kante
mit Entity- oder Relationship-Typ verbunden
Name, Vorname, Adresse,
Fachgebiet, Note, Titel,
Semester, Matrikelnummer, …
Attributname
Matrnr
Name
Student
Sem
Prof. B. Jung
Einführung in die Informatik, WS 2007/08
TU Bergakademie Freiberg
Relationships
Relationship: Beziehung zwischen Entities von mehreren, nicht notwendig verschiedenen Entity-Typen
Relationship-Typ: Verallgemeinerung (Klassifikation) gleichartiger, ähnlicher Relationships
Diagrammdarstellung: Relationship-Typ als Rhombus mit Namen des Relationship-Typs, durch
ungerichtete Kanten mit korrespondierenden Entity-Typen verbunden
Beispiele: lesen, höhren, prüfen,
voraussetzen, arbeitenfür
Student
Relationship-Typ
hören
Vorlesung
Achtung: Relationship ≠ Relation
• Relationship = Beziehung zw. Entities; auf Ebene des konzeptuellen Datenmodells
• Relation = Tabelle einer Datenbank; auf Ebene des relationalen Datenmodells
Prof. B. Jung
Einführung in die Informatik, WS 2007/08
TU Bergakademie Freiberg
6
Schlüssel
Schlüssel:
Teilmenge von Attributen,
- deren Werte beliebige Ausprägungen eines Entity- oder Relationship-Typs
eindeutig identifizieren
- und die im Hinblick auf diese Eigenschaft minimal sind
Primärschlüssel:
pragmatisch ausgewählter Schlüssel eines Entity- oder Relationship-Typs
Der Primärschlüssel eines Relationship-Typs enthält implizit die Primärschlüssel der benachbarten
Entity-Typen.
Diagrammdarstellung:
Beispiele:
Attribut mit Unterstreichung
Attributname
Persnr, Matrnr, Vorlnr,
(Persnr, Vorlnr), (Vorgänger, Nachfolger), ...
Matrnr
Name
Student
Matrnr
Name
Sem
10001
Müller
10
10002
Müller
10
10003
Müller
10
Schlüssel ist eindeutig!
Sem
Prof. B. Jung
TU Bergakademie Freiberg
Einführung in die Informatik, WS 2007/08
Zuordnungscharakteristik
Charakterisierung eines Relationship-Typs R zwischen zwei Entity-Typen E1, E2:
1:1-Beziehung:
In R kann ein Entity aus E2 mit höchstens einem Entity aus E1 in Beziehung stehen
und umgekehrt.
In R kann ein Entity aus E2 mit höchstens einem Entity aus E1 in Beziehung stehen.
1:n-Beziehung:
m:n-Beziehung: Keine Einschränkung.
Erweiterung auf mehrstellige Relationship-Typen möglich.
Diagrammdarstellung:
Beschriftung der Kanten des Relationship-Typs
mit 1, m, n, ...
Beispiele:
Relationship-Typ
y
lesen (1:n), hören (m:n), prüfen (m:n:1)
Student
Prof. B. Jung
x
N
hören
M
Einführung in die Informatik, WS 2007/08
Vorlesung
TU Bergakademie Freiberg
7
Zuordnungscharakteristik
Professor
(Persnr)
"Ein Professor
kann mehrere
Vorlesungen
lesen"
"Eine Vorlesung
wird von
(höchstens)
einem
Professor
gelesen"
lesen
Vorlesung
(Vorlnr)
5001
2125
5041
2126
5043
2127
5049
2133
5052
1:N
Prof. B. Jung
Einführung in die Informatik, WS 2007/08
TU Bergakademie Freiberg
Zuordnungscharakteristik
Student
(Matrnr)
hören
Vorlesung
(Vorlnr)
5001
"Ein Student kann
mehrere Vorlesungen
hören"
"Eine Vorlesung kann
von mehreren
Studenten gehört
werden"
24002
5041
25403
5043
26120
5049
27550
5052
N:M
Prof. B. Jung
Einführung in die Informatik, WS 2007/08
TU Bergakademie Freiberg
8
ERM-Diagramm
Diskursbereich: Universität
voraussetzen
Matrnr
Vorlnr
N M
Name
N
Student
Sem
M
hören
M
N
lesen
Persnr
Assistent
N
arbeitenfür
Persnr
1
1
Name
Titel
N
prüfen
Note
SWS
Vorlesung
1
Professor
Gebiet
Name
Raum
Rang
Prof. B. Jung
TU Bergakademie Freiberg
Einführung in die Informatik, WS 2007/08
Relationales Datenmodell (RDM)
„
Relationales Datenmodell:
„
Relationsschema: Spezifikation der Struktur einer Relation / Tabelle
‰
‰
‰
‰
„
Repräsentation von Informationen über Entities und Relationships in Tabellen (Relationen)
Name der Tabelle
Name (oft auch Typ) von jedem Attribut
Deklaration des Schlüssels
Überführung ERM Æ Relationsschemata …
Relationsschema
Vorlnr
SWS
Vorlesung
Titel
ERM
Prof. B. Jung
Vorlesung( Vorlnr, SWS, Titel)
Relation (Tabelle mit Daten)
Vorlnr
SWS
Titel
5001
4
Grundzüge
5041
4
Ethik
5043
3
Erkenntnistheorie
4052
4
Logik
Einführung in die Informatik, WS 2007/08
TU Bergakademie Freiberg
9
Überführungsvorschriften ERM Æ RDM
Entity-Typ:
Bildung eines Relationsschemas mit dem Namen, den Attributen und den Schlüsseln
des Entity-Typs
Relationship-Typ m:n:
Bildung eines Relationsschemas mit dem Namen des Relationship-Typs,
den eigenen Attributen und den Primärschlüsseln der beteiligten
Entity-Typen
Relationship-Typ 1:n:
Aufnahme des Primärschlüssels des 1-Entity-Typs als Fremdschlüssel und
der Attribute des Relationship-Typs in das Relationsschema des n-Entity-Typs
Relationship-Typ 1:1:
Aufnahme des Primärschlüssels eines 1-Entity-Typs als Fremdschlüssel
und der Attribute des Relationship-Typs in das Relationsschema des
anderen 1-Entity-Typs (analog zu Relationship-Typ 1:n)
Relationship-Typ mehrstellig:
analog zu Relationship-Typ m:n
Also:
• Ein Entity-Typ wird immer auf ein entsprechendes Relationsschema im RDM abgebildet
• Ein Relationship-Typ wird nur unter bestimmten Voraussetzungen auf ein Relationsschema
abgebildet (ansonsten auf Attribut(e) )
Prof. B. Jung
TU Bergakademie Freiberg
Einführung in die Informatik, WS 2007/08
Überführungsvorschriften ERM Æ RDM
Beispiel (1)
Entity-Typ:
Entity-Typ: Bildung
Bildungeines
einesRelationsschemas
Relationsschemasmit
mitdem
demNamen,
Namen,den
denAttributen
Attributen
und
den
Schlüsseln
des
Entity-Typs
und den Schlüsseln des Entity-Typs
Vorlnr
Vorlesung
SWS
Vorlesung( Vorlnr, SWS, Titel)
Titel
Relationsschema
ERM
Prof. B. Jung
Einführung in die Informatik, WS 2007/08
TU Bergakademie Freiberg
10
Überführungsvorschriften ERM Æ RDM
Beispiel (2)
Relationship-Typ
Relationship-Typ1:n:
1:n: Aufnahme
Aufnahmedes
desPrimärschlüssels
Primärschlüsselsdes
des1-Entity-Typs
1-Entity-Typsals
als
Fremdschlüssel
und
der
Attribute
des
Fremdschlüssel und der Attribute desRelationship-Typs
Relationship-Typs
inindas
dasRelationsschema
Relationsschemades
desn-Entity-Typs
n-Entity-Typs
Vorlnr
Vorlesung
SWS
Vorlesung( Vorlnr, SWS, Titel,
Persnr)
Titel
N
lesen
Professor( Persnr, …)
Persnr
1
Professor
Prof. B. Jung
Relationsschema
…
TU Bergakademie Freiberg
Einführung in die Informatik, WS 2007/08
Überführungsvorschriften ERM Æ RDM
Bemerkungen
Vorlnr
Vorlesung
N
SWS
Titel
Vorlesung( Vorlnr, SWS, Titel,
Persnr)
Professor( Persnr, …)
lesen
Persnr
1
Professor
„
„
„
Relationsschema
…
Das Attribut 'Persnr' in Relationsschema 'Vorlesung' wird als Fremdschlüssel bezeichnet (da es sich auf
Schlüssel einer anderen Entity bezieht)
'Persnr' ist Attribut des Relationenschemas 'Vorlesung' aber kein Attribut der Entity 'Vorlesung' (gilt
allgemein für Fremdschlüssel)
Zur besseren Verständlichkeit kann / sollte das Attribut 'Persnr' im Relationenschema 'Vorlesung'
umbenannt werden
Æ besser:
Prof. B. Jung
Vorlesung( Vorlnr, SWS, Titel, Leser)
Einführung in die Informatik, WS 2007/08
TU Bergakademie Freiberg
11
Überführungsvorschriften ERM Æ RDM
Beispiel (3)
Relationship-Typ
Relationship-Typm:n:
m:n:Bildung
Bildungeines
einesRelationsschemas
Relationsschemasmit
mitdem
demNamen
Namendes
des
Relationship-Typs,
den
eigenen
Attributen
Relationship-Typs, den eigenen Attributenund
undden
den
Primärschlüsseln
Primärschlüsselnder
derbeteiligten
beteiligtenEntity-Typen
Entity-Typen
Vorlesung( Vorlnr, SWS, Titel )
voraussetzen
Vorlnr
N M
Vorlesung
voraussetzen( Vorlnr, Vorlnr )
SWS
bzw. besser:
voraussetzen( Vorgänger, Nachfolger )
Titel
Relationsschema
Prof. B. Jung
TU Bergakademie Freiberg
Einführung in die Informatik, WS 2007/08
Beispielrelationen 1
Assistent:
Persnr Name
Fachgebiet
Boss
3002
3003
3004
3005
3006
3007
Ideenlehre
Syllogistik
Sprachtheorie
Planetenbewegung
Keplersche Gesetze
Gott und Natur
2125
2125
2126
2127
2127
2134
Platon
Aristoteles
Wittgenstein
Rhetikus
Newton
Spinoza
Student:
Professor:
Persnr
2125
2126
2127
2133
2134
2136
2137
Prof. B. Jung
Name
Sokrates
Russel
Kopernikus
Popper
Augustinus
Curie
Kant
Matrnr
Name
Sem
24002
25403
26120
26830
27550
28106
29120
29555
Xenokrates
Jonas
Fichte
Aristoxenos
Schopenhauer
Carnap
Theophrastos
Feuerbach
Rang Raum
C4
C4
C3
C3
C3
C4
C4
226
232
310
52
309
36
7
Einführung in die Informatik, WS 2007/08
18
12
10
8
6
3
2
2
TU Bergakademie Freiberg
12
Beispielrelationen 2
Vorlesung:
voraussetzen:
Vorlnr Titel
SWS
5001
5041
5043
5049
4052
5052
5216
5259
5022
4630
4
4
3
2
4
3
2
2
2
4
Grundzüge
Ethik
Erkenntnistheorie
Gewäsch
Logik
Wissenschaftstheorie
Bioethik
Der Wiener Kreis
Glaube und Wissen
Die 3 Kritiken
Leser
2137
2125
2126
2125
2125
2126
2126
2133
2134
2137
hören:
Vorgänger
Nachfolger
Matrnr
Vorlnr
5001
5001
5001
5041
5043
5041
5052
5041
5043
5049
5216
5052
5052
5259
26120
27550
27550
28106
28106
28106
28106
29120
29120
29120
29555
25403
29555
5001
5001
4052
5041
5052
5216
5259
5001
5041
5049
5022
5022
5001
prüfen:
Prof. B. Jung
Matrnr
Vorlnr
Persnr
Note
28106
25403
27550
5001
5041
4630
2126
2125
2137
1
2
2
Einführung in die Informatik, WS 2007/08
TU Bergakademie Freiberg
Relationenalgebra
„
Teil des Relationalen Modells
‰
„
Operationen über 1 Tabelle
‰
‰
„
Definition von Operationen mit 1 bzw. 2 Eingabe-Tabellen
sowie 1 Ausgabe-Tabelle
Projektion (π ) Æ Auswahl bestimmter Spalten der Tabelle
Selektion (σ) Æ Auswahl bestimmter Zeilen der Tabelle
Operationen über 2 Tabellen
‰
‰
‰
Verbund / Join (⋈)
auch: Produkt (×)
auch: Mengenverarbeitung
„
„
„
Vereinigung (∪), Differenz ( – ), Durchschnitt (∩ )
nur anwendbar auf gleichförmige Tabellen (gleiche Anzahl, Reihenfolge, Typ von Attributen)
Datenbankabfragesprache SQL ist Implementierung der Relationenalgebra
Prof. B. Jung
Einführung in die Informatik, WS 2007/08
TU Bergakademie Freiberg
13
Relationenalgebra
Projektion
„
Auswahl bestimmter Spalten einer Tabelle
‰
project Student onto (Name, Sem)
‰
πName,Sem(Student)
Matrnr
Name
Sem
Name
Sem
24002
Xenokrates
18
Xenokrates
18
25403
Jonas
12
Jonas
12
26120
Fichte
10
Fichte
10
26830
Aristoxenos
8
Aristoxenos
8
Prof. B. Jung
TU Bergakademie Freiberg
Einführung in die Informatik, WS 2007/08
Relationenalgebra
Selektion
„
Auswahl bestimmter Zeilen einer Tabelle
‰
‰
select from Student where Sem > 10
σSem > 10(Student)
Matrnr
Name
Sem
24002
Xenokrates
18
Matrnr
Name
Sem
12
24002
Xenokrates
18
25403
Jonas
12
25403
Jonas
26120
Fichte
10
26830
Aristoxenos
8
Prof. B. Jung
Einführung in die Informatik, WS 2007/08
TU Bergakademie Freiberg
14
Relationenalgebra
Selektion
„
komplexere Kriterien
select from Student where Sem > 10 or Matnr > 26800
σSem > 10 or Matnr > 26000(Student)
‰
‰
Matrnr
Name
Sem
24002
Xenokrates
18
25403
Jonas
12
26120
Fichte
10
26830
Aristoxenos
8
Prof. B. Jung
Matrnr
Name
Sem
24002
Xenokrates
18
25403
Jonas
12
26830
Aristoxenos
8
TU Bergakademie Freiberg
Einführung in die Informatik, WS 2007/08
Relationenalgebra
Verbund (Join)
„
Verknüfung von 2 Tabellen über Bedingung
‰
‰
‰
typische Bedingung: Gleichheit von Attributen (Equi-Join)
join Asssistent and Professor where Assistent.Boss == Professor.Persnr
Asisstent ⋈Assistant.Boss
== Professor.Persnr
Professor
Attribute von Professor
Attribute von Assistent
Persnr
Name
Fachgebiet
Boss
Persnr
Name
Rang
Raum
3002
Platon
Ideenlehre
2125
2125
Sokrates
C4
226
3003
Aristoteles
Syllogistik
2125
2125
Sokrates
C4
226
3004
Wittgenstein
Sprachtheorie
2126
2126
Russel
C4
232
3005
Rhetikus
Planetenbewegung
2127
2127
Kopernikus
C3
310
3006
Newton
Keplersche Gesetze
2127
2127
Kopernikus
C3
310
3007
Spinoza
Gott und Natur
2134
2134
Augustinus
C3
309
Prof. B. Jung
Einführung in die Informatik, WS 2007/08
TU Bergakademie Freiberg
15
Herunterladen