Folien im PPT

Werbung
DATENBANKEN
Kurs:
Datenmodellierung
SQL
Johann Eder
([email protected])
1
Inhalt
1. Einführung, Grundbegriffe
2. Modellierung
3. Relationenmodell
4. Relationale Sprachen (SQL)
©2001 Johann Eder
Datenbanken:Einführung
2
Ziele
Teilnehmer
verstehen die grundlegenden Funktionsweisen von
Datenbanksystemen
Kennen die charakteristischen Eigenschaften von
Datenbanken
können kleinere Datenbanken entwerfen
können Daten aus Datenbanken abfragen
©2001 Johann Eder
Datenbanken:Einführung
3
Literatur
Atzeni, P.; Ceri, S.; ParaboschiS.;
Torlone, R.:
Database Systems: Concepts, Languages
and Architectures.
McGraw-Hill Publishing Company, 1999.
Date, C.J.:
An Introduction to Database Systems.
Vol. I, 6th edition, Addison-Wesley, 1995.
Elmasri, R.; Navathe, Sh.B.:
Fundamentals of Database Systems.
Benjamin Cummings, 3rd ed., 1999.
©2001 Johann Eder
Kemper, A; Eickler A.:
Datenbanksysteme.
2. Aufl., Oldenbourg Verlag, 1997
Ullmann, J.D.:
Principles of Database and
Knowledge-Base Systems.
Vol. I, Computer Science Press, 1988.
Vossen, G.:
Datenmodelle, Datenbanksprachen
und DatenbankmanagementSysteme.
Oldenbourg Verlag, München, 1999.
Datenbanken:Einführung
4
Einführung
Warum Datenbanken?
ANSI / SPARC 3-Schichten Architektur
Charakteristische Eigenschaften
Architektur und Datenmodelle
Schnittstellen
Rollen / Benutzer
©2001 Johann Eder
Datenbanken:Einführung
5
Warum Datenbanken?
„... kaum eine größere Informatikanwendung ist
ohne DB-Unterstützung denkbar“
„DB-Systeme ... sind heute ein
selbstverständliches Hilfsmittel der betrieblichen
Organisation und Verwaltung geworden“
„Datenbanken ... als Schlüsseltechnologie für die
Realisierung komplexer Informationssysteme ...“
©2001 Johann Eder
Datenbanken:Einführung
6
Kennzeichen der Daten
Lange Lebensdauer (Jahre, Jahrzehnte)
reguläre Strukturen
große Datenobjekte, große Datenmengen
stetig anwachsende, integrierte Bestände (Giga-,
Terabyte an Informationen)
immer wiederkehrende Muster in den
Objektbeziehungen
©2001 Johann Eder
Datenbanken:Einführung
7
Warum Datenbanksysteme?
Probleme mit Dateisystemen
Bsp.: Programm Lohnverrechnung
Datei Angestellter (SV#, Name, Adresse, Gehalt)
Programm Projekte
Datei Mitarbeiter (Projekt#, SV#, Name, Telefon#)
Datei Projekt (Projekt#, Projektbeschreibung)
LOHN
Angestellter
Nachteile:
Daten-Programm-Abhängigkeit
PROJEKT
Projekt
Redundanz, Inkonsistenz
Inflexibilität
Mitarbeiter
©2001 Johann Eder
Datenbanken:Einführung
Standards schwer durchsetzbar
8
Warum Datenbanksysteme (2)
F 1.6 Scan
©2001 Johann Eder
Datenbanken:Einführung
9
ANSI-SPARC
3-Schichten Modell
Externe Modelle
Externe Modelle:


Sicht von
Benutzer(gruppen)
Anwendungsprogramm
en
Konzeptuelles Modell

einheitliche
Gesamtschau der
Unternehmensdaten
physische
Speicherstrukturen
©2001 Johann Eder
Konzeptuelles
Modell
Internes Modell
Internes Modell

...
Datenbanken:Einführung
10
Vorteile von Datenbanken
physische Datenunabhängigkeit


Internes Schema kann geändert werden, ohne
Anwendungsprogramme zu ändern
Änderung nur bei Abbildung konzept. Schema - internes
Schema
logische Datenunabhängigkeit


konzeptuelles Schema kann geändert werden ohne
Anwendungsprogramme zu ändern solange das entspr.
externe Modell abgeleitet werden kann
Ändern Abb. Konzeptuelles Schema - externes Schema
integrierte zentrale Verwaltung



Standards
Redundanzen
Konsistenz
©2001 Johann Eder
Datenbanken:Einführung
11
Eigenschaften von Datenbanken
Persistenz
Management von Sekundärspeichern
Mehrbenutzerfähigkeit
Zuverlässigkeit
Datensicherheit
ad-hoc Abfragesprachen
©2001 Johann Eder
Datenbanken:Einführung
12
Persistenz
Daten „überleben“ das Ende von Sitzungen,
das Ende von Transaktionen
Daten sind z.T. sehr langlebig
Daten können „in situ“ aktualisiert werden
©2001 Johann Eder
Datenbanken:Einführung
13
Verwaltung von
Sekundärspeichern
Verwaltung großer Datenmengen

üblicherweise auf Platten
Datenbanken sind Ein-/Ausgabe-intensiv
Spezifische Techniken zur Erhöhung der Performanz

Pufferung (DB Puffer im Hauptspeicher)

Indexierung, Cluster

Abfrageoptimierung
©2001 Johann Eder
Datenbanken:Einführung
14
Mehrbenutzerfähigkeit
mehrere Benutzer
können gleichzeitig auf
den Daten arbeiten
DBMS sorgt dafür, daß
keine unerwünschten
Wechselwirkungen durch
gleichzeitige
Manipulation derselben
Daten eintreten
Lost-update
read(X)
read(X)
X:= X+10
X:=X-20
write(X)
write(X)
Erhaltung der Integrität
©2001 Johann Eder
Datenbanken:Einführung
15
Zuverlässigkeit der Daten
Daten sind teuer und
strategisch wichtig müssen daher
zuverlässig sein
DBMS bestätigt jede
durchgeführte Änderung
roll-backward:
Eliminieren der Auswirkungen
aller unbestätigten Transaktionen
roll-forward:
Nachziehen der Auswirkungen
aller bestätigten Transaktionen
auf Sicherungskopie.
bei Systemfehler: DBZustand wiederherstellen,
der genau alle bestätigten
Änderungen enthält.
©2001 Johann Eder
Datenbanken:Einführung
16
Datensicherheit
Schutz vor unberechtigtem Zugriff
Berechtigungssystem definieren
 Sicherheitssubjekte (Benutzer, Rollen, etc.)
 Sicherheitsobjekte (Daten)
 Rechte (Lesen, Schreiben - i.e. verändern)
 Weitergabe von Rechten
Zugriff durch Nichtberechtigte verhindern
 bei jedem Zugriff Berechtigungen überprüfen
©2001 Johann Eder
Datenbanken:Einführung
17
Ad-hoc Abfragesprachen
Abfrage von Daten
ohne eigenes
prozedurales
Programm schreiben
zu müssen
„Wie hoch ist das Durchschnittsgehalt der Manager in den einzelnen
Städten in denen mindestens 5
Manager beschäftigt sind?“
deklarativer Zugriff
where emp.deptno = dept.deptno
SQL, QBE, etc.
group by city
©2001 Johann Eder
Select city, avg(salaray)
from emp, dept
and emp.job = “manager“
having count(*) >= 5
Datenbanken:Einführung
18
Wichtige Begriffe
Datenbankmanagementsystem
(DBMS)
Software, die die DB verwaltet und alle von den
Anwendungsprogrammen verlangten Funktionen
zentral durchführt
Datenbanksystem
(DBS)
DBMS + DB
Datenbank
(DB)
integriert vom DBMS verwaltete Dateien
©2001 Johann Eder
Datenbanken:Einführung
19
Schnittstellen
DBMS-Shell

SQL-Befehle eingeben und durchführen
graphische Schnittstellen (Browser)
formularbasierte Schnittstellen (Masken)
natürlichsprachliche Schnittstellen
Schnittstellen für Anwendungsprogramme
Sprachen
Datendefinitionssprache (DDL)

formulieren der Schemata
Datenmanipulationssprache (DML)

abfragen, einfügen, löschen, aktualisieren von Daten
©2001 Johann Eder
Datenbanken:Einführung
20
Dienstprogramme
DB-Loader: Laden von Daten in eine Datenbank
Backup: Erstellen von Sicherungskopien
Reorg: Reorganisation der Datenstrukturen zur
Performanzverbesserung
Berichtsgeneratoren (report writer)



formatieren von Berichten (komplexen Abfragen)
Kopf-und Fußzeilen, Text
Seitenumbruch, Zwischensummen, Gruppenwechsel, etc.
Anwendungsgeneratoren (4GL-Sprachen)
Monitor (Performanz, Tuning)
Datenwörterbuch (Data Dictionary)
Kommunikationssubsysteme
©2001 Johann Eder
Datenbanken:Einführung
21
Personen und Rollen
Datenbankadministrator





verwaltet die Ressource Datenbank
internes Schema
Vergabe von Zutrittsrechten
Tuning und Monitoring
Sicherheit und Zuverlässigkeit
Unternehmensadministrator (Datenbankdesigner)



zuständig für konzeptuelles Schema
externe Schemata
Schnittstelle zu Software-Entwicklung
©2001 Johann Eder
Datenbanken:Einführung
22
Personen und Rollen (2)
Systemanalytiker, Anwendungsprogrammierer


Anforderungserhebung
Software-Entwicklung
Endbenutzer

gelegentliche Benutzer z.B. Manager
 unterschiedliche, z.T. nicht vorhersehbare
Informationsbedürfnisse
 von „schnell mal nachschauen“
 bis komplexe Analysen

parametrische Benutzer z.B. Sachbearbeiter
 Anwendungsprogramme, „canned transactions“

Power-User z.B. Analytiker
 komplexe Anforderungen
 gute Kenntnis von DB + Schnittstellen
©2001 Johann Eder
Datenbanken:Einführung
23
Produkte
Oracle
DB2
SQL-Server
Access
Informix
Sybase
Ingres
Progress
Adabas
....
©2001 Johann Eder
Datenbanken:Einführung
24
Kapitel 2:
Modellierung
Datenbank-Entwurf
©2001 Johann Eder
Datenbanken:Einführung
25
Datenbank-Entwurf
Ziele:
•
gutes Abbild der Realität
•
Konsistenz
•
keine ungeplanten Redundanzen
•
niedrige Antwortzeiten
•
niedriger Speicherplatzbedarf
•
niedriger Wartungs-/Pflegeaufwand
•
Einfachheit
©2001 Johann Eder
Datenbanken:Einführung
26
5 Phasen der DB-Entwicklung
1. Informationsbedarfsanalyse

wer braucht welche Daten wann in welcher Qualität
2. konzeptueller Entwurf


formalisierte Beschreibung des Umweltausschnitts
häufig mit graphischem semantischen Datenmodell
3. logischer Entwurf

Abbilden des konzeptuellen Modells auf Datenmodell des
DBS
4. physischer Entwurf

Speicherstrukturen, Zugriffspfade festlegen
5. Verwendung, Wartung, Reorganisation


Tuning
Adaptieren
©2001 Johann Eder
Datenbanken:Einführung
27
5 Phasen der DB-Entwicklung
(a) Informationsbedarfsanalyse
•
•
•
•
wer braucht wo? wann? was?
relevante Informationen und Vorgänge aus dem und über
das Objektsystem
Zusammenhänge zwischen
Informationen
Informationen und Vorgängen
Vollständigkeit, Redundanz, Konsistenz
Was soll im zukünftigen Informationssystem enthalten sein?
Wie wird es verwendet?
©2001 Johann Eder
Datenbanken:Einführung
28
5 Phasen der DB-Entwicklung
b)Konzeptueller Entwurf
•
formalisierte Beschreibung der ermittelten Informationen
und Funktionen
•
häufig mit graphischem Darstellungsmodell
•
entweder konzeptueller Entwurf des gesamten Bereiches
oder zuerst Formulierung der Modelle der einzelnen
Benutzersichten und anschließend Integration
(View-Integration)
•
semantische Datenmodellierung:
Definition aller zulässigen Zustände und Zustandsübergänge der Datenbasis des geplanten Informationssystems
Ergebnis: konzeptuelles DB-Modell
©2001 Johann Eder
Datenbanken:Einführung
29
5 Phasen der DB-Entwicklung
(c) Logischer Entwurf
Abbildung des konzeptuellen Modells auf das Datenmodell
eines konkreten DBS.
Ergebnis:
©2001 Johann Eder
logisches DB-Schema
Datenbanken:Einführung
30
5 Phasen der DB-Entwicklung
(d) Physischer Entwurf
•
•
•
•
•
Festlegen der Einzelheiten der physischen Darstellung der
Daten
Abbildung auf Speicherstrukturen (Datenstrukturen)
Bestimmen der Zugriffspfade
verantwortlich für Antwortzeitverhalten und Speicherplatzbedarf
erforderlich: Mengengerüst, Transaktionsprofil, Nebenbedingungen (z.B. Antwortzeit für bestimmte Transaktionen)
Ergebnis: physisches DB-Schema
©2001 Johann Eder
Datenbanken:Einführung
31
5 Phasen der DB-Entwicklung
(e) Verwendung - Wartung - Reorganisation
Reorganisation wegen:
veränderter Umweltbedingung
(dargestellte Realität hat sich gewandelt)
z.B.:
- weitere Anwendungen
- modifizierte Aufgabenstellung
- veränderte gesetzliche Bestimmungen
(a)
Revidierung früherer Entwurfsentscheidungen für
Leistungsverbesserung
- Änderung der logischen Struktur (selten)
(c)
- Änderung der physischen Struktur
(d)
©2001 Johann Eder
Datenbanken:Einführung
32
Semantische
Datenmodellierung
Beschreibung des betrachteten Ausschnitts der realen Welt

Miniwelt, Universe of Discourse
genaue (eindeutige, vollständige) Beschreibung aller für die
Anwendung relevanten strukturellen Eigenschaften
in semantischer Beschreibungssprache
unabhängig von Hardware und Software
Ergebnis: konzeptuelles Datenbankschema
Verständigungsbasis für Entwerfer, Entwickler, Anwender
©2001 Johann Eder
Datenbanken:Einführung
33
ER-Modellierung
Das Entity-Relationship (E-R) Modell ist ein konzeptuelles
Datenmodell



Sprache zur Beschreibung der Datenanforderungen
leicht zu verstehen und zu kommunizieren
unabhängig von der tatsächlichen Realisierung in einem DBMSProdukt
Graphische Sprache


graphische Repräsentation der Konstrukte
E-R-Diagramme
Ursprung:

P.Chen:´The Entity-Relationship Model -Toward a Unified View of
Data´, ACM TODS, Vol1/1, 1976
viele extended E-R- Modelle
©2001 Johann Eder
Datenbanken:Einführung
34
UML
Unified Modelling Language
Lingua franca der objektorientierten
Softwareentwicklung
sehr großer Sprachumfang
8 Diagrammarten
hier: Teilmenge der Klassendiagramme
©2001 Johann Eder
Datenbanken:Einführung
35
Entity, Gegenstand, Objekt
Einheit, Ganzheit, Gegenstand, Objekt
Modell, Abbild eines Gegenstandes, der in der
betrachteten Realität erkannt und eindeutig
identifiziert wird.
Beisp.:



Objekt
Kunde Otto Huber
Bankkonto Nr 789.987.123
Buch
©2001 Johann Eder
Datenbanken:Einführung
36
Attribut
Attribut
Merkmale, Charakteristik
Bezeichnungen von Eigenschaften, die bei dem betrachteten Entity
für die Anwendung relevant sind
Beisp.: Vorname, Saldo, Geburtsdatum, Hausnummer
Attributsausprägung
Wert eines Attributes für ein bestimmtes Entity
Beisp.: Mitarbeiter mit der MID 2317 wurde am 16.12.1965
geboren.
Wertebereich
Menge von Werten aus denen Ausprägungen eines Attributs
stammen dürfen
©2001 Johann Eder
Datenbanken:Einführung
37
Attribut(2)
Attribut ist eine Abbildung von einem Objekt in einen
Wertebereich
Name
Otto Huber
©2001 Johann Eder
M-ID
2317
Geb.Datum
27.8.1965
Datenbanken:Einführung
38
Klassifikation
Objekte, bei denen dieselben Merkmale relevant sind
und die semantisch gleichartig sind, werden zu
Klassen zusammengefaßt.
Buch
Abteilung
Exemplar
Kunde
Mitarbeiter
©2001 Johann Eder
Datenbanken:Einführung
39
Klassifikation (2)
Klasse
Instanz
Karl Müller
Mitarbeiter
Frieda Maier
Ottilie Huber
©2001 Johann Eder
Datenbanken:Einführung
40
Assoziation (Relationships)
Repräsentieren logische Verbindungen (Beziehungen)
zwischen Objekten
M1
M2
P1
M4
P2
M5
M3
P3
M6
P4
Mitarbeiter
©2001 Johann Eder
Projekte
Datenbanken:Einführung
41
Beispiele von Assoziationen
Kunde
bestellt
Artikel
zugeteilt
Mitarbeiter
Projekt
leitet
©2001 Johann Eder
Datenbanken:Einführung
42
Assoziationen
Assoziationen können (mathematisch) als Relationen
dargestellt werden


bestellt  Kunde  Artikel
bestellt= {(k1, a1), (k2, a1), (k4, a3), (k4, a5), ...}
Assoziation hat Rollen, die von Objekten gefüllt
werden:

bestellt hat die Rollen „Besteller“ und „Bestelltes“
gefüllt von Kunde und Artikel
©2001 Johann Eder
Datenbanken:Einführung
43
Rekursive Beziehungen
Chef
Mitarbeiter
ist Vorgesetzter von
Untergebener
ist Freund von
Kunde
©2001 Johann Eder
Datenbanken:Einführung
44
Beziehungen höheren Grades
Beispiel für eine ternäre Beziehung
Grad: Anzahl der Klassen (Rollen), die an einer
Beziehung teilnehmen
Lieferant
liefert
Artikel
Abteilung
©2001 Johann Eder
Datenbanken:Einführung
45
Klasse mit Attributen
Person
PID
einfaches Attribut
Name
Vorname 1..3
Hobbies 0..10
mehrfaches Attribut
(mehrwertiges)
mengenwertiges Attribut
Adresse:
PLZ
Ort
Straße
zusammengesetztes
(strukturiertes) Attribut
©2001 Johann Eder
Datenbanken:Einführung
46
Assoziation mit Attributen
% Zeit
seit
Mitarbeiter
ist zugeteilt
Projekt
leitet
©2001 Johann Eder
Datenbanken:Einführung
47
Beziehungsobjekte
Kunde
bestellt
Artikel
Bestellung betreut von
Mitarbeiter
Datum
©2001 Johann Eder
Datenbanken:Einführung
48
Multiplizität von Assoziationen
Spezifikation der Zuordnungswertigkeit einer
Beziehung
A
i
assoz.
j
B
i: Anzahl der Instanzen der Klasse A, die mit einer Instanz
der Klasse B in Beziehung stehen können.
Angabe: Zahl, Intervall, *, Kombination
Bsp: 1; 0..5; *; 0..3, 7..9, *21, 5..*
©2001 Johann Eder
Datenbanken:Einführung
49
Multiplizität - m : n
Spezifikation der Zuordnungs-Wertigkeit einer Beziehung
Mitarbeiter
1..m
zugeteilt
M1
M2
0..n
Projekt
P1
M4
P2
M5
M3
P3
M6
©2001 Johann Eder
P4
Datenbanken:Einführung
50
totale vs. partielle Assoziation
totale Beziehung: jede Instanz muß an einer Beziehung
teilnehmen
partielle Beziehung: jede Instanz kann an einer Beziehung
teilnehmen
Mitarbeiter
*
zugeteilt
1..*
arbeitet in
1..*
Projekt
*
©2001 Johann Eder
Datenbanken:Einführung
Abteilung
51
Multiplizität - 1:n
Mitarbeiter
0..1
leitet
M1
M2
0..*
Projekt
P1
M4
P2
M5
M3
P3
M6
©2001 Johann Eder
P4
Datenbanken:Einführung
52
Multiplizität - 1 : 1
Mitarbeiter
0..1
leitet
0..1
M1
M2
Abteilung
A1
M4
A2
M5
M3
A3
M6
©2001 Johann Eder
A4
Datenbanken:Einführung
53
Konsistenzbedingung
Mitarbeiter
Gehalt
MNr
1
leitet
m
arbeitet an
1
Projekt
n
Start
Ende
PNr
Prozent
Das (geplante) Ende eines Projektes darf nicht vor dem Start liegen.
Der Leiter eines Projektes muß auch am Projekt mitarbeiten.
Die Gesamtarbeitszeit eines Mitarbeiters an Projekten darf 100%
nicht übersteigen.
Kein Mitarbeiter eines Projektes darf mehr verdienen als der
Projektleiter.
©2001 Johann Eder
Datenbanken:Einführung
54
Multiplizität bei mehrstelligen
Assoziationen
B
j
A
k
i
C
i: Anzahl der Instanzen von A, die mit einem Paar
von Instanzen von B und C in Bezug stehen.
©2001 Johann Eder
Datenbanken:Einführung
55
Multiplizität Beispiel
Assistent
1
Student
1
m
Übung
möglich:
ein Student kann eine bestimmte Übung nur bei einem Assistenten besuchen
und bei einem bestimmten Assistenten nur eine Übung
d.h.:
aber nicht:
©2001 Johann Eder
f1:
f2:
g1:
g2:
Student x Assistent
Student x Übung
Student
Assistent x Übung




Datenbanken:Einführung
Übung
Assistent
Übung x Assistent
Student
56
Identifikation
Konzepte (Attribute, Entities), die ein Entity (Instanz) eindeutig
identifizieren
besteht häufig aus einem oder mehreren Attributen (Schlüssel,
interne Identifikatoren)
Manchmal sind Attribute allein nicht ausreichend und Entities
müssen über ihre Beziehung zu anderen Entities identifiziert
werden - (externe) Identifikatoren
Beisp.:



BLZ ist Schlüssel für Bank
KontoNr nur innerhalb einer Bank eindeutig
Konto wird über BLZ + KontoNr idenitifiziert
©2001 Johann Eder
Datenbanken:Einführung
57
Beispiel Klassendiagramm
berichtet an
Chef
Mitarbeiter
MNr. key
Mitarbeiter Name
Job
0..1
leitet
betreut
0..1
Anschrift
1
*
arbeitet in
gibt auf
*
Bestellung
Best.Nr. key
Anteil
0..1
*
Kunde
KNr. key
Name
*
Daten
*
Projekt
Proj.Nr. key
umfaßt
*
Produkt
Preis
Prod.Nr. key
Bezeichnung
Bezeichnung
©2001 Johann Eder
Datenbanken:Einführung
58
textuelle Beschreibung
Mitarbeiter haben eine MNr, einen Name und einen Job.
Kunden haben eine KNr, einen Namen und eine Anschrift.
Ein Mitarbeiter kann mehrere Kunden betreuen, ein Kunde wird
von maximal einem Mitarbeiter betreut.
Ein Produkt kann mehrfach bestellt werden.
Eine Bestellung umfasst mehrere Produkte.
Das Berichtswesen ist streng hierarchisch aufgebaut, jeder
Mitarbeiter kann nur an einen Chef berichten.
Ein Projekt wird von maximal einem Mitarbeiter geleitet, ein
Mitarbeiter darf maximal ein Projekt leiten. An Projekten können
mehrere Mitarbeiter arbeiten, ein Mitarbeiter kann an mehreren
Projekten beteiligt sein.
©2001 Johann Eder
Datenbanken:Einführung
59
Herunterladen