Skript DSFH020

Werbung
Datenbanken
Diplomanden-Seminar
Prof. Dr. Wolfgang Riggert/ Prof. Dr. Roland Schwesig
Lernziele
Grundlegende Kenntnisse zu Datenbanken anschaulich darstellen können.
[Wiederholung wichtiger Begriffe]
Relationale Datenbanken ausgehend von einem betrieblichen
Anwendungsprofil sicher konzipieren können.
[Erstellung von ER-Modellen]
Die Abfragesprache SQL im Hinblick auf Datendefinitionen anwenden und
bezüglich Datenmanipulationen sicher beherrschen.
[Interpretation und Entwicklung einfacher und komplexer Befehle]
Klausur-Anforderungen
Detailfragen
[5 Fragen, zusammen maximal 30 P]
Die Einordnung des Themas,
die kausalen Zusammenhänge und
die Gesamteinschätzung in
vollständigen Sätzen darstellen.
Faktenwissen kann in Form von
Aufzählungen präsentiert werden.
Wenn möglich: Ergänzung
und Veranschaulichung der Texte
durch
Grafiken und
Tabellen.
Komplexaufgaben
[2 von 3 Aufgaben, jeweils maximal30 P]
Schwerpunktthema - es werden
mehrere Fragen zu einem Thema
gestellt.
Ausführlich beschreiben
analysieren und begründen,
Wissen auf den Fall übertragen,
Eigene Vorschläge entwickeln,
Systematische Bearbeitung/
systematische Gliederung.
Zusammenhängend formulieren;
Faktenwissen in Form von
Aufzählungen.
Datenbanken: Einführung
Einsatzbereiche von Datenbanken
Leistungsmerkmale von Datenbanken
Begriffsbestimmungen
Anwendungsprogramm und DBMS
Datenunabhängigkeit beim Drei-Ebenen-Modell
Datenintegrität
Einsatzbereiche von Datenbanken
Als Basis eines betrieblichen Informationssystems
[Ganzheitlicher Ansatz]
Als Subsystem
[Nur bestimmte Unternehmensteile oder Funktionsbereiche
werden mit Datenbanken unterstützt]
Externe Datenbanken
[Zum Beispiel Adressen-Datenbanken, Bezugsquellennachweise,
wissenschaftliche Dokumentendatenbanken]
Leistungsmerkmale von Datenbanken
Unabhängigkeit von Daten und Programm
Verringerung beziehungsweise systematische Kontrolle der Redundanz
Leistungsfähige Konsistenzprüfungen
[zum Beispiel Überprüfung, ob alle Rechnungen bezahlt sind, bevor die Daten
eines Kunden gelöscht werden.]
Flexible Verknüpfungen und Auswertungen
[Die Nutzer können eigene Auswertungen realisieren – es besteht keine
Abhängigkeit von der hausinternen EDV-Abteilung]
Mehrfachzugriff auf die Daten
[durch viele Nutzer und unterschiedliche Programme]
Umfassender Zugriffsschutz
[Bis auf Feldebene und differenziert nach der Art der Operation]
Hohe Ausfallsicherheit
[durch integrierte Mechanismen zur Rekonstruktion der Daten]
Probleme von Datenbanken
Die hohen Anforderungen bezüglich Sicherheit und
Zuverlässigkeit sind zeit- und kostenintensiv
Zugriffe können über mehrere Tabellen erfolgen, was längere
Laufzeiten verbunden mit vielen Ein- und Ausgaben und einer
hohen Rechenleistung zur Folge hat.
Datenbanken sind in den meisten Fällen nicht portabel, was
Hardwareänderungen oder Softwareanpassungen - z.B.
aufgrund unterschiedlicher SQL-Dialekte - erforderlich macht.
Ziele der Datenorganisation
Unter Datenorganisation versteht man Verfahren, um Daten
hinsichtlich ihrer logischen Zusammenhänge zu analysieren, zu
strukturieren und zu ordnen - logische Datenorganisation
auf Medien abzulegen und für den Zugriff verfügbar zu halten physische Datenorganisation
Ziele
schneller Datenzugriff
leichte Aktualisierbarkeit
beliebige Auswertbarkeit
flexible Verknüpfung
wirtschaftliche Speicherausnutzung
Vermeidung von Redundanzen
Datei, Datensatz, Datenelement
Datenbank
Projekte
Dateien
Kunden
Aufträge
Projektorganisation
Personal
Mitarbeiter n
Mitarbeiter 1
Datensatz
Name
Datensegment
Datenelement
Nr
Nachname
Anschrift
Vorname
Titel
PLZ
Ort
Straße
Gehalt
Qualifikation
Logische Datenorganisation
Hierarchischer Aufbau/ Gliederung
Datenelement
Datensatz
Datei
Datenbank
Datenelement
kleinste nicht weiter zerlegbare logische Einheit
entspricht einem Datenfeld einer Bildschirmmaske
Datensatz
Zusammenfassung von Datenelementen
entspricht einer Gruppe logisch zusammengehöriger
Datenfelder
wie z.B. Name oder Adresse
Datensatzarten
Formatierte Sätze: sie besitzen eine feste Einteilung in
Datenelemente mit festen Feldgrenzen entsprechend einer
tabellarischen Strukturierung
Variable Sätze: sie besitzen keine Strukturierung, sondern die
Datenelemente werden fortlaufend erfasst und durch ein oder
mehrere Trennsymbole unterschieden
Wertung :
Formatierte Datensätze gestatten einen schnellen
Zugriff, führen aber zu einer unwirtschaftlichen
Speicherausnutzung
Variable Datensätze hingegen sind langsam im Zugriff,
nutzen den Speicher aber effizient aus
konkurrierende Ziele
Datei- versus Datenbankorganisation
Datei
Zusammenfassung gleichartiger, logisch
zusammengehörender Datensätze
Dateien erlauben mehrere Operationen: Suchen,
Ändern, Einfügen und Entfernen von Datensätzen
Datenbank
Zusammenfassung mehrerer Dateien zwischen denen
logische Abhängigkeiten existieren und die von einem
eigenen Datenbankverwaltungssystem verwaltet werden.
Anwendungsprogramm und DBMS
Anwendungssysteme
Datenbankverwaltungssysteme
Datenbestände
DBMS: Datenbankmanagementsystem
• Bereitstellung der Daten für verschiedene
Anwendungsprogramme
• Koordination von parallelen Zugriffen
auf die Datenbestände
• Schaffung der Voraussetzungen für
flexiblen Datenzugriff und unterschiedliche
Sichtweisen.
Datenunabhängigkeit beim Drei-Ebenen-Modell
Externe
Ebene
Logische/
Konzeptionelle
Ebene
Interne
Ebene
Logische Datenunabhängigkeit. Es
können neue externe Sichten angelegt
werden, ohne dass die logische Ebene
modifiziert werden muss.
Physische Datenunabhängigkeit. Es
erfolgt eine Trennung zwischen der
logischen Ebene und den Daten
beziehungsweise den ZugriffsMechanismen.
Datenintegrität
Datenintegrität: Alle Aspekte, die das korrekte und zuverlässige
Arbeiten mit Datenbanken sicherstellen und unterstützen
Datenkonsistenz
Datensicherheit
Datenschutz
Inhaltliche
Richtigkeit
Sicherung der
Daten gegen
Verlust und
zulässige Änderung
Schutz der Daten
gegen
unberechtigten
Zugriff
Freiheit von
Widersprüchen
Betrifft das logische
Datenschema
Betrifft den
technischorganisatorischen
Betrieb
Betrifft den
technischrechtlichen Umgang
mit Daten
Datenmodelle
Arbeitsschritte zur Entwicklung
einer Datenbank
Das semantische Datenmodell
Logische Datenmodelle
Bedeutung der Datenmodell
am Markt
Arbeitsschritte zur Entwicklung einer Datenbank
Realität
Semantisches
Datenmodell
Logisches
Datenmodell
DatenbankDefinition
Anwendungsentwicklung
Physische Datenorganisation
Systemdenken.
Betrachtung
eines Ausschnitts
der Realität mit
einer spezifischen
Fragestellung.
Semantisches
Datenmodell.
Dargestellt als
ER-Diagramm.
Logisches
Datenmodell.
Umsetzung des
semantischen
Modells in ein
logisches
Datenmodell.
DatenbankDefinition/
Beschreibung.
Einsatz des DDL
des eingesetzten
Datenbankverwaltungssystems.
Anwendungsprogramm.
Definition der
externen
BenutzerSichten.
Physische
Datenorganisation.
(Speicher- und
Datenorganisation,
Zugriffsmethoden,
Reorganisation etc.)
Datenbankarchitektur
Externes Schema
konzeptionelles
Schema
Raumbelegung
Prüfungsliste
Prüfung
Prüfungsaushang
Aufsicht
Prüfungsfach
internes Schema
Aufsichteneinteilung
ERM
Dozent
Basistabellen
Basistabellen
DBMS
ER-Diagramm Softwarehaus
ER-Diagramm – relationales Modell
Student
(0,m)
belegt
(0,n)
Mtnr
Name
SemGr
Adresse
Student ( Mtnr, Name, SemGr, Adresse)
Fach ( Vorlnr, Fach, Semester, Raum, Zeit)
Belegung (Mtnr, Vorlnr)
Vorlesung
Vorlnr
Fach
Semester
Raum
Zeit
Baumstruktur beim hierarchischen Datenmodell
Kunde Müller
Auftrag 711
Auftragsposition
1
Auftrag 823
Auftrag 925
Auftragsposition
2
• Entwicklung erfolgte auf Basis klassischer Dateisysteme
• Die Darstellung erfolgt in Form einer Baumstruktur. Das „Wurzelobjekt“ ist oben.
Problembereiche des hierarchischen Modells
Die reale Welt ist nicht immer hierarchisch strukturiert.
Deshalb können mit diesem Modell nicht alle Strukturen
abgebildet werden.
Mit hierarchischen Modellen lassen sich nur 1:1 und 1:nBeziehungen abbilden. Jede m:n-Beziehung muss in 1:nBeziehungen aufgelöst werden. Dies führt zu redundanter
Datenhaltung.
Änderungen von Hierarchiebeziehungen sind aufwendig.
Es entsteht ein großer Aufwand bei Auswertungen, die von
hierarchischen Zugriffspfaden abweichen.
Struktur des Netzwerkmodells
Kunde
1
ordert
mc
Artikel
mc
liefert
1
Lieferant
mc
liegt auf
1
Lagerort
• Jedes Objekt kann mehrere Vorgänger und mehrere Nachfolger aufweisen.
• Damit können 1:1, 1:m, m:1 und n:m-Beziehungen abgebildet werden.
Problembereiche des Netzwerkmodells
Einsatzbereiche. Heute werden nur noch wenige
Datenbankverwaltungssysteme eingesetzt, die auf
Netzwerkmodellen basieren.
Vorteile. Die Abbildung vielfältiger Beziehungen, auch von
m:n-Beziehungen, ist möglich. Gegenüber dem hierarchischen
Modell verringern sich hierbei die Redundanzen.
Nachteile. Die Verarbeitung von Daten ist aufwendiger als bei
hierarchisch strukturierten Modellen; Die Änderung der
Datenstruktur ist aufgrund der zahlreichen Verknüpfungen
sehr aufwendig.
Begriffe des relationalen Datenmodells [01]
Bei neueren Datenbankverwaltungssystemen hat sich das
relationale
Datenmodell
[auch
Relationenmodell]
durchgesetzt. Es wurde 1968 bis 1973 von E.F. CODD
entwickelt und 1970 veröffentlicht.
Entitätstypen werden in Form von zweidimensionalen Tabellen
dargestellt.
Die Tabellen können beliebig viele Entitäten beinhalten.
Die Tabellen, die über einen Primärschlüssel verfügen,
werden als Relationen bezeichnet.
Begriffe des relationalen Datenmodells [02]
Innerhalb der Tabelle ist die Reihenfolge der Attribute und der
Tupel beliebig.
Die Datenbasis eines Datenbanksystems wird gemeinsam
durch alle Relationen gebildet.
Beispiele für Datenbankverwaltungssysteme auf Basis des
Relationenmodells: Oracle, Ingres, Access, Paradox, DB2,
Adabas, Informix, Progress, Sybase, R3 SAP.
Begriffe des relationalen Modells [03]
Tabelle: Relation; Entitätstypen
Tabellenkopf:
Name der Relation
R. KUNDEN
KundenNr
Name
Wohnort
1000
Detmer
Hamburg
1001
Friedrich
Lübeck
1002
Berg
Rendsburg
1003
Müller
Buchholz
1004
Schmidt
Flensburg
Domäne: Wertebereich - Zusammenfassende Darstellung
aller möglichen Attributwerte eines Attributs
Attribute:
Spalte
Attributwert:
Datenfeld
Entität:
Zeile; Tupel; Datensatz
Primärschlüssel und Fremdschlüssel
R. KUNDEN
KundenNr
Name
Wohnort
R. Rechnungen
Nichtschlüsselattribut
RechnNr
Betrag
KundenNr
Primärschlüssel
NichtFremdschlüssel
Schlüsselattribut
1000
Detmer
Hamburg
1001
Friedrich
Lübeck
1002
Berg
Rendsburg
7765
117,75
1000
1003
Müller
Buchholz
7766
188,20
1003
7767
25,82
1000
7768
733,20
1000
Primärschlüssel
Logischer Datenbankentwurf auf Basis des relationalen Modells
Unterschiedliche Vorgehensweise
Ziele der Normalisierung
Funktionale und transitive Abhängigkeit
Probleme unnormalisierter Relationen
Arbeitsschritte der Normalisierung
Ergebnisse der Normalisierung
Aufgaben der Normalisierung
Vermeidung von Redundanzen
Vermeidung von Anomalien
Vermeidung von Null-Werten
Sicherung der Daten-Integrität
Optimierte Speicherplatz-Ausnutzung
Prozess der Normalisierung
Daten in
3 NF-Form
Prozess der Normalisierung
AusgangsRelation
R.Rechnung
Unnormalisierte Form der Daten: Alle
Daten befinden sich in einer Tabelle,
unabhängig von ihren Beziehungen.
Name Wohnort Strasse Art
...
.....
....
.....
Von der Ausgangsrelation zur 3NF-Form
3 NF
Dritte
Normalform
Daten in
3 NF-Form
2 NF
Zweite
Normalform
1 NF
Erste
Normalform
AusgangsRelation
R. Rechnung
Die Daten der Ausgangsrelation werden im
Rahmen der Normalisierung durch schrittweise
Zerlegung in mehrere Relationen aufgeteilt.
Informationsverluste dürfen dadurch nicht
entstehen.
Bedingungen der Normalformen
Dritte Normalform (3 NF)
Die Relation muss sich in der 2 NF befinden
Alle Nicht-Schlüsselattribute müssen direkt
vom Primärschlüssel abhängig sein.
Zweite Normalform (2 NF)
Die Relation muss sich in der 1 NF befinden
Jedes Nicht-Primärschlüsselattribut muss von allen
Teilen des Primärschlüssels abhängig sein.
Erste Normalform (1 NF)
Attribute müssen atomar sein. Es dürfen keine
Wiederholungsgruppen auftreten
Jede Relation hat einen Primärschlüssel. Dieser identifiziert
jedes Tupel eindeutig.
Funktionale Abhängigkeit
Definition. In einer Relation R {X,Y} ist das Attribut Y funktional abhängig
von X (X bestimmt Y funktional), wenn zu jedem Wert des Attributs X
genau ein Wert des Attributs Y gehört.
Erläuterung: „Funktional abhängig sind solche Datenfelder, die sich nie
unabhängig von einander ändern können und wo ein bestimmter wert
eines Datenfeldes nicht in verschiedenen Kombinationen mit dem
Datenfeld Y auftauchen kann.“
[Ortmann, D. (2001): Datenbanken professionell aufbauen. München. S. 37]
Beispiel: Der Abteilungsname ist funktional abhängig von der
Abteilungs-Nummer.
X
Abteilungsnummer
A01
A02
Y
Abteilungs_Name
Export
Import
Anzahl Mitarbeiter
32
28
Volle funktionale Abhängigkeit
Definition. X sei ein zusammengesetztes Attribut aus den Attributen
X1 und X2. In einer Relation R {X1, X2, Y} ist das Attribut Y voll funktional
abhängig von X, wenn Y von X funktional abhängig ist, nicht aber von X1
oder X2.
Erläuterung: „Es besteht eine funktionale Abhängigkeit zwischen einem
Datenfeld Y und einer Kombination von anderen Datenfeldern X1 und X2.
Wobei aber Y nicht von einem einzelnen Datenfeld aus dieser
Kombination funktional abhängig ist.“
[Ortmann, D. (2001): Datenbanken professionell aufbauen. München. S. 38]
Beispiel: In einer Kantine wird das Essen dem gemeinsamen Schlüssel aus
Tischnummer und Personalnummer zugeordnet.
X1
Tischnummer
07
08
X2
Personalnummer
1
2
Y
Essen
Bauernfrühstück
Grüner Salat
Transitive Abhängigkeit
Definition. In einer Relation R {X, Y, Z} ist das Attribut Z transitiv abhängig
von X, wenn Y funktional abhängig von X, (X aber nicht von Y), und Z
funktional abhängig von Y ist.
Erläuterung: „X sei der Schlüssel der Tabelle (Y funktional abhängig von X,
aber nicht umgekehrt), und innerhalb der Tabelle gibt es eine weitere
funktionale Abhängigkeit zwischen Z und Y.“
[Ortmann, D. (2001): Datenbanken professionell aufbauen. München. S. 38]
Beispiel: Der Preis ist abhängig vom Essen, nicht aber vom Schlüssel der
Relation.
X1
Tischnummer
07
08
X2
Y
Personalnummer Essen
1
Bauernfrühstück
2
Grüner Salat
Z
Preis
14,50
11,20
Beispiel: Daten normalisieren
1. Normalform
Eine Relation ist in der 1. Normalform, wenn kein Attribut enthalten ist,
zu dem es pro Datensatz mehrere Attributswerte geben kann,
d.h. wenn in jeder Zeile und Spalte nur atomare, nicht weiter zerlegbare Werte
gespeichert werden.
Auftrag
(Aufnr, Artikelnr, Artikelbezeichnung, Menge, Preis, Kundennr, Kundenname,
Adresse, Datum)
Auftrag
Bestellartikel
(Aufnr, Kundennr, Kundenname, Adresse, Datum)
(Aufnr, Artikelnr, Artikelbezeichnung, Menge, Preis)
Primärschlüssel
Zusammengesetzter Schlüssel
Beispiel: Daten normalisieren
1. Normalform
Als Beispiel sollen die Tourendaten verwendet werden. Die Tabelle Tourendaten
genügt nicht der 1. NF, da die dritte Spalte noch weiter aufgeteilt werden könnte.
Die geteilten Tabellen und entsprechende Beziehung zueinander erfüllt die 1. NF
Tourendaten
TourenZiele
TourenTermine
(TourendatenNr, Bezeichnung, Länge, Termine)
(TourenNummer, Tour, Kurzbeschreibung,Länge, Grad,
Start, Ziel)
(TourTerminNr, TourenNummer, Beginn, Ende , MaxTeilnehmer)
Primärschlüssel
Zusammengesetzter Schlüssel
Beispiel: Daten normalisieren
2. Normalform
Gilt nur bei zusammengesetztem Primärschlüssel!
Eine Relation ist in der 2. Normalform, wenn sie in der 1. Normalform ist
und keine Attribute enthält, die in einer 1:1 Beziehung zum
Primärschlüssel oder Teilen des Primärschlüssels stehen, d.h. jede Spalte die
nicht zum Primärschlüssel gehört, ist vom kompletten PS abhängig.
Auftrag
Bestellartikel
(Aufnr, Kundennr, Kundenname, Adresse, Datum)
(Aufnr, Artikelnr, Artikelbezeichnung, Menge, Preis)
Auftrag
Bestellartikel
Artikel
Preis
(Aufnr, Kundennr, Kundenname, Adresse, Datum)
(Aufnr, Artikelnr, Menge)
(Artikelnr, Artikelbezeichnung)
(Artikelnr, Preis)
Beispiel: Daten normalisieren
3. Normalform
Eine Relation ist in der 3. Normalform, wenn sie in der 2. Normalform ist
und keine Attribute enthält, die untereinander abhängig sind.
Auftrag
Bestellartikel
Artikel
Preis
(Aufnr, Kundennr, Kundenname, Adresse, Datum)
(Aufnr, Artikelnr, Menge)
(Artikelnr, Artikelbezeichnung)
(Artikelnr, Preis)
Auftrag
Kunde
Anschrift
Bestellartikel
Artikel
Preis
(Aufnr, Kundennr, Datum)
(Kundennr, Kundenname)
(Kundennr, Adresse)
(Aufnr, Artikelnr, Menge)
(Artikelnr, Artikelbezeichnung)
(Artikelnr, Preis)
Daten integrieren
Auftrag
Kunde
Anschrift
Bestellartikel
Artikel
Preis
(Aufnr, Kundennr, Datum)
(Kundennr, Kundenname)
(Kundennr, Adresse)
(Aufnr, Artikelnr, Menge)
(Artikelnr, Artikelbezeichnung)
(Artikelnr, Preis)
Auftrag
Kunde
Bestellartikel
Artikel
Auftrag
1:n
Kunde
1:1
1:n
Bestellartikel
Anschrift
n:1
Artikel
(Aufnr, Kundennr, Datum)
(Kundennr, Kundenname, Adresse)
(Aufnr, Artikelnr, Menge)
(Artikelnr, Artikelbezeichnung, Preis)
1:1
Preis
Wesentliche Merkmale von Transaktionen
Atomarität [Atomicity]
Eine Transaktion wird nur vollständig ausgeführt oder gar nicht.
Konsistenz [Consistency]
Eine Transaktion ist eine konsistenzerhaltende Operation.
Isoliertheit [Isolation]
Andere gleichzeitig ablaufende Transaktionen haben keinen Einfluss auf
das Ergebnis einer aktiven Transaktion. [Erforderlich für reibungslosen
Mehrbenutzerbetrieb] Mehrere gleichzeitig ablaufende Transaktionen
haben das gleiche Resultat, als hätten sie nacheinander stattgefunden.
Dauerhaftigtkeit [Durability]
Änderungen, die durch Transaktionen bewirkt wurden, können nicht
mehr verloren gehen.
[Siehe auch: Matthiesen, G. u. M. Unterstein (2000): Relationale Datenbanken und SQL.
Konzepte der Entwicklung und Anwendung. 2. Aktualisierte Auflage. München. S. 228]
Datenbanken und Objektorientierung
Grenzen des Relationalen Modells. Anfang der 80er
Jahre wurde deutlich, dass für einige Anwendungsgebiete
das relationale Datenmodell nicht optimal ist:
Karthografische Anwendungen
Multimedia-Anwendungen
CAD-Datenbanken
Dokumentenverwaltungssysteme
Ablauf der Diskussion. Zunächst wurde Konzepte zur
Erweiterung des relationalen Datenmodells entwickelt.
Ab 1985 erschienen Arbeiten zu objektorientierten
Datenbanksystemen.
Standardisierung objektorientierter Datenbanken
Früher Start. Seit 1993 versuchen Vertreter verschiedener
Softwarehäuser einen Standard für OO-Datenbanken
zu etablieren.
Bildung der Gruppen ODMG (Object Database Management
Group) und OMG (Object Management Group).
Veröffentlichung in: [Catell, R.G. (1997): Object Database
Standard ODMG 2.0.
Zusammenarbeit mit Gruppen, die andere Standards
erarbeiten.
[ANSI X3H2: SQL3; ANSI X3H7: Object Information
Management; ANSI X3J16: C++]
Kein Industriestandard. Das veröffentlichte Konzept
bildet noch keinen Industriestandard oder gar eine Norm.
Begriffe zum Thema Datenbanken
Entitätsintegrität
Referentielle Integrität
Temporale Datenbanken
Entitätsintegrität
Jede Relation muss über ein Schlüsselattribut verfügen, das
die Tupel eindeutig identifiziert.
Dieser sogenannte Primärschlüssel kann aus einem einzelnen
Attribut oder einer Kombination von Attributen bestehen.
Referentielle Integrität
Aus jeder im Rahmen der Normalisierung gebildeten Form der
Daten müssen die in der unnormalisierten Ausgangsrelation
vorhandenen Informationen wieder rekonstruiert werden
können.
Die Referentielle Integrität einer Datenbank wird durch
das Einfügen von Fremdschlüssel sichergestellt.
Die DBMS stellen sicher, dass für jedes Fremdschlüsselattribut ein entsprechendes Primärschlüsselattribut vorhanden
ist.
Operationen, die ausgeführt werden sollen, wenn diese
Bedingungen nicht erfüllt sind, werden
zurückgewiesen oder aber es ist eine
Reihenfolge der Operationen einzuhalten.
vom DBMS
vorgegebene
Temporale Datenbanken
“Eine temporale Datenbank [engl. temporal database]
speichert die vollständige Geschichte der Objekte und
Beziehungen.
Informationen, die einmal in die Datenbank eingegeben
wird, wird nicht mehr gelöscht.”
[HANSEN, 2000: 975]
Anwendungsbereiche:
Personaldatenbank
Planungsdatenbank
Historische Daten
SQL: Datenbeschreibung/ Datenmanipulation
Grundlegende Merkmale
Datenbeschreibung mit SQL
Datenmanipulation
Aufgaben für verschiedene Teilgebiete
Zusammenfassende Aufgabe
Datenbeschreibung
Mit einer Datenbeschreibungssprache wird das logische
Datenmodell in eine Datenbank-Definition umgesetzt.
Anlage von Datenstrukturen
Keine Dateneingabe
Eintrag der Datenbeschreibung in ein Data Dictionary
Aufgaben der Datenbeschreibung
Benennen von Relationen und Attributen
Definition der Beziehungen zwischen Relationen
Definition von Datentypen, Wertebereichen und
Schlüsseleigenschaften
Definition von Zugriffsrechten
Definition von Integritätsbedingungen
Definition von modellexternen Konsistenzbedingungen
Vorgehensweise
1. Schritt : Sammeln der Datenelemente
Datenliste
PS
Datenfeld
Typ
Länge
PS
:
Datenfeld :
Typ
:
Länge
:
NULL
:
Entität
:
Alias
:
Beschreib.
NULL
Entität
Alias
Beschreibung
Primärschlüssel [Ja / Nein]
Bezeichnung des Datenfeldes, wie es gespeichert werden soll
Datentyp (z.B. Integer, Währung, Text, ext.)
maximale Zahl der Zeichen pro Wert
leeres Datenfeld zulässig? [Ja / Nein]
Welcher Entitätsmenge wird das Datenfeld zugeordnet
Alternative Bezeichnungen für das Datenfeld
: Weiter Angaben zum Datenfeld (z.B. zulässige Werte etc.)
Vorgehensweise
2. Schritt : Datenobjekte (Entitäten) finden
Datenliste
PS
J
Datenfeld
Typ
Länge
NULL
Entität
Alias
AUFNR
INT
10
N
Auftragsnummer
DATUM
DAT
8
N
Auftragsdatum
ARTNR
INT
10
N
Artikelnummer
ARTIKEL
TXT
80
J
Artikelbezeichnung
KNR
INT
10
N
Kundennummer
KNAME
TXT
50
J
Auftrag
Auftrag
Artikel
Artikel
Kunde
Kunde
Kundenname
Beschreibung
Entity-Relationship-Modell (ERM)
Beziehungsarten
1 : 1
identifizierende Beziehung
z.B. Student hat Matrikelnummer
1 : n
charakterisierende und klassifizierende
Beziehung
z.B. Semestergruppe hat Student
n : m
nicht eindeutige Beziehung, sie muß
im Rahmen der Datennormalisierung
aufgelöst werden.
Beispiel: Student besucht Vorlesung
Hierarchische Beziehung
Definition. Zu jeder Entität eines untergeordneten Entitätstyps (Kindrelation) existiert genau eine
Entität eines übergeordneten Entitätstyps (Elternrelation)
mc
KUNDEN
RECHNUNGEN
Erläuterung. Jede Rechnung ist einem Kunden zugeordnet, ein Kunde kann keine, eine oder mehrere Rechnungen erhalten.
Arbeitsschritte bei hierarchischen Beziehungen:
Hierarchische Beziehungen werden direkt in Relationen umgesetzt.
Primärschlüssel der Elternrelation werden als Fremdschlüssel in die Kindrelation übernommen. Hierbei kann der Fremdschlüssel sowohl Schlüssel- als auch
Nichtschlüsselattribut sein. Er kann jedoch in der Kindrelation nicht alleiniger Primärschlüssel sein.
Ein Beispiel:
R. KUNDE
KundenNr
R. RECHNUNG
...
RechnNr
KundenNr
...
erweitertes Entity-Relationship-Modell (eERM)
1. Optionale Beziehungen
Eine Beziehung ist optional, wenn sie auch den Wert "NULL" haben kann :
1 : c
Student
Note
c : c
Student
Parkplatz
Student belegt Parkplatz
c : n
Fachbereich
Parkplatz
Fachbereich hat Parkplätze in der
Tiefgarage
1 : cn
Fachbereich
Student
Student hat Note
Fachbereich hat Studenten
(Ausnahme FB13)
c : cn
Student
Buch
n : cm
Student
Vorlesung
cn : cm
Bauteil
Bauteil
Student hat Buch ausgeliehen
Student besucht Vorlesung
Bauteil enthält Bauteil (Stückliste)
Konditionelle Beziehung
Definition. Bei einer konditionellen Beziehung ist jeder Entität eines Entitätstyps eine oder keine Entität eines anderen
Entitätstyps zugeordnet.
c
LIEFERANT
mc
ARTIKEL
Erläuterung. Ein Lieferant kann keinen, einen oder mehrere Artikel liefern. Ein Artikel kann von einem oder keinem Lieferanten
geliefert werden. (Falls er selbst hergestellt wird.)
Vorgehensweise: Es wird eine zusätzliche Relation eingefügt.
LIEFERANT
1
mc
LIEFERBEZIEH
UNG
c
1
ARTIKEL
R. LIEFERANT
R. LIEFERBEZIEHUNG
R. ARTIKEL
LieferantN
r.
LieferantN
r.
ArtikelNr.
..
ArtikelNr.
..
Vorgehensweise
3. Schritt : Beziehungen zwischen den Entitätsmengen beschreiben
Kunde
(1,1)
•
•
•
•
erteilt
Kunde erteilt einen oder mehrere Aufträge
Ein Auftrag ist eindeutig einem Kunden zugeordnet
Ein Auftrag enthält einen oder mehrere Artikel
Ein Artikel ist in keinem, einem oder mehreren
Aufträgen enthalten
(1,n)
Auftrag
Artikel
(1,1)
(1,1)
(1,n)
enthält
Auftragsposition
(1,n)
enthält
Datentypen
Datentyp
Erläuterung
Beispiel
char (Länge)
Zeichenkette mit
vorgegebener
maximaler Länge
Artikel_name
(30),
decimal (Länge,
Dezimalstellen)
numeric (Länge,
Dezimalstellen)
Dezimalstellen mit
vorgegebener
maximaler Länge und
Anzahl der
Dezimalstellen
Artikel_menge
numeric (4,2)
date
Syntax in SQL-Server:
datetime
Datumswert
Kunden_geburtsdatum
datetime
char
Datenmanipulation
Operationen der Datenmanipulation:
Abfragen von Daten
Einfügen, Ändern oder Löschen von Daten
Aufbereitung auszugebener Daten
Definition von Views
Merkmale der Abfragesprache SQL
Entwicklung
SQL: Structured Querry Language. Ursprünglich von IBM als
Abfragesprache konzipiert. Inzwischen verfügt SQL über einen
mächtigen Funktionsumfang. SQL hat sich als Standard für
relationale Datenbanken durchgesetzt.
Einsatz in der Regel durch Systementwickler
Erste Normung durch American National Standards Institut
(ANSI) 1981 und 1986 (SQL-86)
Entstehung zahlreicher SQL-Dialekte
1992: SQL2 (ISO 9075)
1999: SQL:1999 wird veröffentlicht. (vormals als SQL3
bezeichnet.)
Charakterisierung von SQL
“SQL ist eine relationale, anweisungsorientierte,
deskriptive und mengenorientierte Datenbanksprache,
die sowohl selbstständig als auch eingebettet
eingesetzt werden kann.”
[Wirtschaftsinformatik, Lektion 3: 71]
SQL-Komponenten
SQL
DDL
DML
DCL
(Data Definition Language)
(Data Manipulation Language)
(Data Control Language)
Anlegen von
Datenstrukturen
Kernbereich von
SQL
Sprache für die
Kontrolle der
Privilegien;
Festlegung der
Zugriffsrechte
Operationen zum
Formulieren von
Abfragen und zur
Änderung des
Datenbestandes
CREATE, DROP,
ALTER
SELECT, INSERT,
DELETE
GRANT, REVOKE
SQL-Anweisungen
SCHLÜSSELWORT Name (Werte und Parameter);
Es folgen Namen, Werte
und sonstige Parameter
Schlüsselwort, kennzeichnet die auszuführende Funktionen
Abschluss der
Anweisung
durch ein
Semikolon
Erzeugung von Tabellen
CREATE TABLE tabellenname
(spaltenbeschreibung, spaltenbeschreibung, ...);
Spaltennamen, Datentypangabe, Angabe ob Nullwerte zulässig sind.
Beispiel
CREATE TABLE ARTIKEL
(ARTNR
NUMBER(8) NOT NULL,
BEZEICHNUNG
CHAR(30),
EPREIS
NUMBER(10,2));
Erläuterung: Eine Relation „Artikel“ mit drei Attributen wird definiert.
Löschen von Tabellen
DROP TABLE tabellenname
Mit dem gleichen Befehl können auch Views gelöscht werden.
Beispiel
DROP TABLE ARTIKEL;
Erläuterung: Die Tabelle „Artikel“ wird vollständig gelöscht.
Primärschlüssel
PRIMARY KEY (primärschlüssel, primärschlüssel),
Beispiel 1
PRIMARY KEY (KUNR),
Beispiel 2
CREATE TABLE KUGRUPPE
(KUGRUNR
NUMBER(4) NOT NULL,
RABATTSATZ
NUMBER(5,2),
PRIMARY KEY (KUGRUNR);
Erläuterung: Im ersten Beispiel wird KUNR zum Primärschlüssel; das zweite Beispiel zeigt,
wie die Tabelle KUGRUPPE erstellt und KUGRUNR als Primärschlüssel definiert wird.
Fremdschlüsselbeziehungen
FOREIGN KEY (primärschlüssel, primärschlüssel)
REFERENCES tabellenname
Es wird kontrolliert, ob die Fremdschlüsseleinträge immer auf
gültige Primärschlüssel in einer anderen Relation verweisen
(Referentielle Integrität)
Beispiel 1
FOREIGN KEY (KUGRUNR) REFERENCES KUGRUPPE
Beispiel 2
Primary KEY (RENR, REDAT, ARTNR),
FOREIGN KEY (RENR, REDAT) REFERENCES RECHNUNGEN,
FOEIGN KEY (ARTNR) REFERENCES ARTIKEL
CHECK-Klausel
CHECK ((primärschlüssel, primärschlüssel),
IN (SELECT primärschlüssel FROM tabellenname))
Beispiel 1
CHECK ((KUGRUNR) IN (SELECT KUGRUNR FROM KUNDEN))
Beispiel 2
CHECK ((RENR, REDAT) IN (SELECT RENR, REDAT FROM RECHPOS))
Erläuterung: Im ersten Beispiel wird geprüft, ob einer Kundengruppe mindestens ein
Kunde zugeordnet ist. Im zweiten Beispiel wird geprüft, ob mindestens eine Position pro
Rechnung vorhanden ist.
Abfragen von Daten
Abfragen von Daten erfolgen mit der SELCET-Anweisung
Selektion:
Zeilen nach bestimmten Bedingungen auswählen
Projektion: Auswahl gewünschter Spalten
Verbund:
Verknüpfung verschiedener Tabellen über
gemeinsame Schlüssel
Kombinationen der Operationen sind möglich.
Ausgangsrelation
Abfrage
Ergebnisrelation
Anfragetypen
Grundlegende Anfragetypen
Projektion:
Zeige ausgewählte
Attributwerte für alle
Entities
Selektion:
Zeige alle Attributwerte für ausgewählte
Entities
E1
E2
E3
E4
E5
E6
E7
A1
AW 1,1
AW 2,1
AW 3,1
AW 4,1
AW 5,1
AW 6,1
AW 7,1
A2
A W 1,2
A W 2,2
A W 3,2
A W 4,2
A W 5,2
A W 6,2
A W 7,2
A3
AW 1,3
AW 2,3
AW 3,3
AW 4,3
AW 5,3
AW 6,3
AW 7,3
A4
A W 1,4
A W 2,4
A W 3,4
A W 4,4
A W 5,4
A W 6,4
A W 7,4
E1
E2
E3
E4
E5
E6
E7
A1
A W 1,1
AW 2,1
A W 3,1
AW 4,1
AW 5,1
A W 6,1
A W 7,1
A2
A W 1,2
AW 2,2
A W 3,2
AW 4,2
AW 5,2
A W 6,2
A W 7,2
A3
A W 1,3
AW 2,3
A W 3,3
AW 4,3
AW 5,3
A W 6,3
A W 7,3
A4
A W 1,4
AW 2,4
A W 3,4
AW 4,4
AW 5,4
A W 6,4
A W 7,4
Projektion/Selektion liefern neue Relation
Anfragetypen
Projektion und Selektion sind kombinierbar
Zeige ausgewählte Attributwerte für ausgewählte Entities
Weiterer Anfragetyp: Join
Verbund
Daten entstammen dabei aus mehr als einer Relation
Beispiele:
Liste aller Zimmer mit Art und Ausstattung (Projektion)
Liste aller Gäste mit KdNr, Name, Wohnort und Strasse
aus Schleswig (Selektion)
Liste aller Einzelzimmer mit Ausstattung (Projektion und
Selektion)
Liste aller Zimmer mit ZiNr und Preis (Join aus Zimmer
und Preis)
Anfrage von Daten
SELECT-Befehl von SQL
SELECT-Befehl erwartet Einhaltung syntaktischer Regeln
Reihenfolge der Schlüsselwörter
Klammerung von Unteranfragen, etc.
SELECT-Befehl stellt mächtige Funktionen zur Verfügung
SELECT-Syntax
Komponente
SELECT
Funktion
Spaltenliste
Projektion: Auswahl der gewünschten Spalten
SELECT [DISTINCT | ALL] Spaltennamen | *
FROM
Tabellennamen | Viewnamen
Verbund: Verbindung der verschiedenen
gewünschten Tabellen über
gemeinsamen Schlüssel
[WHERE
Bedingungen, die Tupel
spezifizieren]
Selektion: Auswahl bestimmter Zeilen
DISTINCT: Ignoriert doppelte Datensätze
ALL: Auch doppelte Datensätze werden
gefunden
Boolsche Operatoren (AND, OR, NOT)
Relationenopertaoren (>, <, = ..)
Spezielle Operatoren (BETEEN, IN, IS
NULL, LIKE, EXISTS)
Unterabfragen
[GROUP BY
Spaltenname, nach
gruppiert wird]
denen
Tupel, die in einer ausgewählten Spalte gleiche
Attributwerte enthalten, werden zu einer
Gruppe zusammengefasst.
[Having
Auswahlbedingung]
Auswahl bestimmter Gruppen. Die HavingKomponente kann nur zusammen mit der
GROUP BY-Komponente verwendet
werden.
[ORDER BY
Spaltenname |Spaltennummer
]
Spaltenname ASC
Spaltenname DESC]
Erzwingt eine bestimmte Sortierreihenfolge der
Zeilen in der Ergebnisrelation.
Einfügen von Daten
Ziel: Einfügen neuer Tupel in eine Relation
INSERT INTO tabellenname (spaltenliste)
VALUES (werteliste);
Beispiel
INSERT INTO KUNDEN (KNR, NAME, ORT)
VALUES (123, ´Schulze´, ´Stuttgart´);
Ändern von Daten
Ziel: Ändern von Tupeln
UPDATE tabellenname
SET
spalte = Ausdruck, ...
WHERE auswahlbedingung;
(WHERE-Bedingung ist optional)
Beispiel 1
Beispiel 2
UPDATE KUNDEN
SET
ORT = ´Stuttgart´
WHERE ORT = ´Stuttgard´
UPDATE RECHNUNG
SET
BETRAG = BETRAG * 1.15
WHERE KNR NOT IN
(SELECT KNR
FROM KUNDEN
WHERE ORT = ´München´);
Erläuterung: Im ersten Beispiel wird die Schreibweise eines Ortsnamens korrigiert. Im zweiten
Beispiel erhöht die Anweisung die Rechnungsbeträge der Kunden, die nicht aus München
kommen, um 15 Prozent.
Löschen von Daten
Ziel: Löschen von Tupeln
DELETE FROM tabellenname
WHERE auswahlbedingung;
(WHERE-Bedingung ist optional)
Beispiel 1
Beispiel 2
DELETE FROM KUNDEN;
DELETE FROM KUNDEN
WHERE ORT = ´HAMBURG´;
Erläuterung: Im ersten Beispiel werden alle Tupel aus der Relation Kunden gelöscht. Im
zweiten Beispiel werden alle Tupel von Kunden aus Hamburg gelöscht.
Definition von Views [01]
View-Tabellen sind virtuelle Tabellen.
CREATE VIEW viewname (spaltenliste)
AS Select-Anweisung
Tabellen und Spalten,
die die Basis für den
View bilden.
Definition der Spalten, aus denen der
View bestehen soll.Wenn keine Angaben
gemacht werden, werden die Spalten
aus den Tabellen übernommen, die den
View bilden.
Viewname = Name unter dem der
View aufgerufen und im
SQL-Systemkatalog verwaltet wird.
Definition von Views [02]
CREATE VIEW RECHKUNDE (RENR, BETRAG, KNR, NAME, ORT)
AS SELECT RENR, BETRAG, R.KNR, NAME, ORT
FROM
RECHNUNG R, KUNDE K
WHERE R.KNR = K.KNR
ORDER BY RENR;
Erläuterung:Das Beispiel liefert aus den Tabellen KUNDEN und RECHNUNG für jede
Rechnung den zugehörigen Kundennamen und Wohnort.
Funktion von Views
Wiederkehrende Speicherung von Anfragen – Reproduktion
auf Knopfdruck
Views nutzen alle DML-Operationen
Möglichkeit zur bewussten virtuellen Redundanz, z.B. Umsatz
als Produkt aus Preis und Menge
Bereitstellung von vorgefertigten Reports als Folge von SQLAnweisungen durch die SW-Hersteller
Erläuterungen zur SQL-Syntax
Funktion
MAX, AVG, SUM, COUNT, STDDEV ...
Literal
nummerische, „alphabetische“ Konstante
Ausdruck
Nummerisch: +, -, /,
Bedingung
Relational: =, <, >, <>, >=, <=
Boolean: IN, Exists
Herunterladen