Einführung - Universität Paderborn

Werbung
Grundlagen von Datenbanken
SS 2010
1. Einführung in das Thema
Prof. Dr. Stefan Böttcher
Universität Paderborn
mit Material von
Prof. Dr. Gregor Engels
Agenda:
(Relationale) Datenbank
Schreiboperationen
Anfragen
Datenbank-Schema
SQL
Warum Datenbanken?
Grundlagen von Datenbanken - SS 2010 - Prof. Dr. Stefan Böttcher – Folie 1 - 1
Anwendungen mit komplexer Datenverwaltung
Beispiele
und
• PHP-Skript zur Anmeldung in den
Übungsgruppen

Name, Matrikelnummer, Gruppe,
…
• Klausur- und Übungsgruppenverwaltung

Name, Matrikelnummer, Gruppe,
Punkte, Klausurtermin, …
• CASE-Tool

Diagramme, Modellelemente,
Java-Klassen und -Pakete, …
• Lagerverwaltung des
Kreiskrankenhaus Heidenheim

Waren, Aufträge, Kommissioniervorgänge, …
(Relationale) Datenbank
Schreiboperationen
Anfragen
Probleme
• Verwaltung großer Datenmengen
• Paralleler Zugriff mehrerer Benutzer
• Datenschutz vor unberechtigten
Zugriffen
• Datensicherheit bei Absturz von
Anwendungen, Stromausfall, …
• Datenunabhängigkeit durch Verstecken
interner Datenformate vor Anwendung
und Benutzern
• Vermeiden von Datenredundanz
zwischen verschiedenen Anwendungen



Verschwendung von Speicherplatz
Vergessen von Änderungen
Uneinheitliche Speicherung
Datenbank-Schema
SQL
Grundlagen von Datenbanken - SS 2010 - Prof. Dr. Stefan Böttcher – Folie 1 - 2
Warum Datenbanken?
Lösung: Datenverwaltung als Teil der System-Software aus Anwendungen auslagern
Individual-Software
Anmeldeskript
Anwendungs-Software
Klausurverwaltung
Basis-Software
System-Software
Übungs- und
Klausurdaten
Betriebssystem
Datenbanksystem
Softwareschichten
(Relationale) Datenbank
Schreiboperationen
Anfragen
Datenbank-Schema
SQL
Grundlagen von Datenbanken - SS 2010 - Prof. Dr. Stefan Böttcher – Folie 1 - 3
Warum Datenbanken?
Verschiedene Definitionen des Begriffs Datenbank(system)
•
Eine Datenbank ist eine Sammlung von Informationen
zu einem bestimmten Thema oder Zweck, wie z.B. dem
Verfolgen von Bestellungen oder dem Verwalten einer
Musiksammlung. Wenn Ihre Datenbank nicht oder nur
teilweise in einem Computer gespeichert ist, müssen Sie
die Informationen aus den verschiedenen Quellen selbst
koordinieren und organisieren.
•
(Relationale) Datenbank
Schreiboperationen
Anfragen
[MS-Access-Online-Hilfe]
Datenbank-Schema
SQL
Grundlagen von Datenbanken - SS 2010 - Prof. Dr. Stefan Böttcher – Folie 1 - 4
Warum Datenbanken?
Verschiedene Definitionen des Begriffs Datenbank(system)
•
Eine Datenbank (auch Datenbanksystem) ist ein
System zur Beschreibung, Speicherung und
Wiedergewinnung umfangreicher Datenmengen, die
von mehreren Anwendungsprogrammen oder
Anwendern benutzt werden. Es besteht aus einer
Datenbasis, in der die Daten abgelegt werden und
dem Verwaltungsprogramm (Datenbasismanagement), das die Daten entsprechend der
vorgegebenen Beschreibung abspeichern, auffinden
oder weitere Operationen durchführen kann.
• [Informatikduden]
(Relationale) Datenbank
Schreiboperationen
Anfragen
Datenbank-Schema
SQL
Grundlagen von Datenbanken - SS 2010 - Prof. Dr. Stefan Böttcher – Folie 1 - 5
Warum Datenbanken?
Datenbank/Datenbank(-Management)system
•
DBMS: Datenbank-Management-System
•
DBS: Datenbanksystem (DBMS + Datenbank)
Anwendung 1
...
Anwendung n
DBMS
Datenbank
(Relationale) Datenbank
Schreiboperationen
Anfragen
Datenbank-Schema
SQL
Grundlagen von Datenbanken - SS 2010 - Prof. Dr. Stefan Böttcher – Folie 1 - 6
Warum Datenbanken?
Grund-Prinzipien von DBS I
•
•
•
•
•
•
verwalten persistente (langfristig zu haltende) Daten
verwalten große Datenmengen effizient
Datenbankmodell: alle Daten einheitlich beschrieben (Integration)
Operationen und Sprachen
deskriptiv (= getrennt von einer Programmiersprache)
Transaktionskonzept, Concurrency Control:
logisch zusammenhängende Operationen atomar (unteilbar),
Auswirkungen langlebig, können parallel durchgeführt werden
Datenschutz, Datenintegrität (Konsistenz), Datensicherheit
(Relationale) Datenbank
Schreiboperationen
Anfragen
Datenbank-Schema
SQL
Grundlagen von Datenbanken - SS 2010 - Prof. Dr. Stefan Böttcher – Folie 1 - 7
Warum Datenbanken?
Grund-Prinzipien von DBS II
•
3-Ebenen-Architektur
 physische Datenunabhängigkeit +
logische Datenunabhängigkeit)
•
Trennen zwischen Schema (etwa Tabellenstruktur)
und Instanz (etwa Tabelleninhalt)
•
Angelehnt an die 9 Codd‘schen Regeln …
(Relationale) Datenbank
Schreiboperationen
Anfragen
Datenbank-Schema
SQL
Grundlagen von Datenbanken - SS 2010 - Prof. Dr. Stefan Böttcher – Folie 1 - 8
Warum Datenbanken?
9 Codd‘sche Anforderungen an DBS
1.
Integration: einheitliche nichtredundante Datenverwaltung
2.
Operationen: Speichern, Suchen, Ändern, Löschen
(ad hoc und “fest verdrahtet”)
3.
Katalog: Zugriffe auf DB-Beschreibung im “Data Dictionary“
4.
Benutzersichten: verschiedene Sichten auf Datenbankausschnitte
5.
Konsistenzüberwachung: Datenbankinhalt entspricht Schema
6.
Datenschutz: Ausschluss unautorisierter Zugriffe
7.
Transaktionen: mehrere Operationen als Funktionseinheit
8.
Synchronisation: parallele Transaktionen koordinieren
9.
Datensicherung: Daten-Wiederherstellung nach Systemfehlern
(Relationale) Datenbank
Schreiboperationen
Anfragen
Datenbank-Schema
SQL
Grundlagen von Datenbanken - SS 2010 - Prof. Dr. Stefan Böttcher – Folie 1 - 9
Warum Datenbanken?
Komponenten eines Datenbanksystems
spontane
Nutzung
Systemarchitektur gemäß ANSI-SPARC-Standard von 1978
(SPARC = Standards Planning and Requirements Engineering Committee)
externe Ebene
konzeptuelle Ebene
interne Ebene
Transformationskomponente
Anfragen
Optimierung
Auswertung
Plattenzugriff
Updates
vorgeplante
Nutzung
Operationen
Prog 1
Data Dictionary
Einbettung
Sichtdefinition
Prog
Dateiorganisation
Masken
n
Datendefinition
Benutzungskomponente
Programmier-
Definitionskomponente
komponente
(Relationale) Datenbank
Schreiboperationen
Anfragen
Datenbank-Schema
SQL
Grundlagen von Datenbanken - SS 2010 - Prof. Dr. Stefan Böttcher – Folie 1 - 10
Warum Datenbanken?
Komponenten eines Datenbanksystems
•
•
•
•
•
•
•
•
•
•
Datendefinition: konzeptuelle Definition aller Daten (konzeptuelles Schema)
Sichtdefinition: Definition von Benutzersichten (externes Schema)
Dateiorganisation: Definition des (internen) Dateiaufbaus und
Zugriffsstrukturen (internes Schema)
Masken: Entwurf der Benutzeroberfläche für Datenbankanwender
Operationen: Anfragen und Änderungsoperationen (Updates) in
Programmen
Einbettung: Einbettung von Datenbankoperationen in Programme
Progi: verschiedene Anwendungsprogramme
Optimierung: Umformung von Anfragen (Updates) in effiziente Gestalt
Auswertung: Durchführung der umgeformten Anfragen (Updates)
Plattenzugriff: effiziente Ablage der Daten im Sekundärspeicher
(Relationale) Datenbank
Schreiboperationen
Anfragen
Datenbank-Schema
SQL
Grundlagen von Datenbanken - SS 2010 - Prof. Dr. Stefan Böttcher – Folie 1 - 11
Warum Datenbanken?
Drei-Schichten-Schemaarchitektur (nach ANSI-SPARC)
Datenvisualisierung
externes Schema 1
…
konzeptuelles Schema
externes Schema n
•
Anfragebearbeitung
Datenbankschema besteht aus



•
internes Schema
internen Schema (Datenverwaltung auf Platte, Indexstrukturen, …)
einem konzeptuellen Schema
(Beschreibung der Gesamtstruktur, Integritätsbedingungen, … )
i.a. mehreren externen Schemata
(Sichten für verschiedene Anwendungen, Benutzergruppen, … )
Trennung Schema - Instanz


Schema = Beschreibung der Daten (Metadaten)
Instanz = Anwenderdaten (Datenbankzustand, -ausprägung)
(Relationale) Datenbank
Schreiboperationen
Anfragen
Datenbank-Schema
SQL
Grundlagen von Datenbanken - SS 2010 - Prof. Dr. Stefan Böttcher – Folie 1 - 12
Warum Datenbanken?
Was ist eine Datenbank?
Dauerhafter Speicher für (ein große Menge von) Daten
 Daten sind morgen noch da
Speicher ist strukturiert und organisiert
Daten leichter (und effizienter) zu finden
und zu ändern als im Datei-System
Constraints (=Integritätsbedingungen)
verhindern Speicherung "falscher" Daten in Datenbank
Transaktionen garantieren Korrektheit, Dauerhaftigkeit, …
(Relationale) Datenbank
Schreiboperationen
Anfragen
Datenbank-Schema
SQL
Grundlagen von Datenbanken - SS 2010 - Prof. Dr. Stefan Böttcher – Folie 1 - 13
Warum Datenbanken?
Was ist eine relationale Datenbank?
Menge von Relationen (=Tabellen) und
Constraints (=Integritätsbedingungen)
Tabellenname
Woraus besteht eine Tabelle?
Bestellungen
bestNr
Zeile=Datensatz=Tupel
22
datum teil kunde
22.6.04
13
Reich
44
Attributwert
Spalte=Attribut
(Relationale) Datenbank
Schreiboperationen
Anfragen
Datenbank-Schema
SQL
Grundlagen von Datenbanken - SS 2010 - Prof. Dr. Stefan Böttcher – Folie 1 - 14
Warum Datenbanken?
Grundkonzepte relationaler Datenbanken
Attributwerte: 13, 22 , 'Reich' , …
Attributwerte alleine ergeben keine Bedeutung (Sinn),
wir brauchen eine Interpretation
Attribute (=Namen für Speicherplätze für bestimmte Werte):
bestNr, datum, teil, kunde
Bestellungen
Attribute haben eine Bedeutung
bestNr 
Bestellnummer
datum 
Bestelldatum
teil

Teilenummer
kunde 
Kundennummer
einer Bestellung
(Relationale) Datenbank
Schreiboperationen
Anfragen
bestNr
22
datum teil
22.6.04
Datenbank-Schema
SQL
Grundlagen von Datenbanken - SS 2010 - Prof. Dr. Stefan Böttcher – Folie 1 - 15
13
kunde
Reich
Warum Datenbanken?
Grundkonzepte relationaler Datenbanken
Attribute und ihre Werte alleine geben auch noch keinen Sinn,
erst der Zusammenhang (= die Datenbeziehung = die Relation)
in Tabelle Bestellungen ergibt Sinn:
datum=22.6.04  teil=13  kunde='Reich'
"am 22.6.04
bestellt
der Kunde Reich
das Teil mit der Nummer 13"
Bestellungen
bestNr
22
Attributwerte jeweils einer Zeile
gehören zusammen und sind
implizit UND-Verknüpft
(Relationale) Datenbank
Schreiboperationen
Anfragen
datum teil
22.6.04
Datenbank-Schema
SQL
Grundlagen von Datenbanken - SS 2010 - Prof. Dr. Stefan Böttcher – Folie 1 - 16
13
kunde
Reich
Warum Datenbanken?
Schreib-Operationen auf Relationen
Tabelle anlegen
Spalten-Namen und -Typ angeben
Tabelle löschen
Tabellennamen angeben
Tupel einfügen
Werte angeben
Tupel ändern
Schlüsselwert und neue Werte angeben
Bestellungen
Schlüsselwert
angeben
bestNr
datum teil kunde
Tupel löschen
22
(Relationale) Datenbank
Schreiboperationen
Anfragen
22.6.04
Datenbank-Schema
SQL
Grundlagen von Datenbanken - SS 2010 - Prof. Dr. Stefan Böttcher – Folie 1 - 17
13
Reich
Warum Datenbanken?
Anfrage-Operationen auf Relationen (1)
Projektion
Spalten nach Namen auswählen
Selektion
Zeilen nach Inhalten auswählen
Vereinigung
von 2 Tabellen mit gleichen Spaltennamen
Differenz
von 2 Tabellen mit gleichen Spaltennamen
Bestellungen
kartesisches
Produkt
alle Kombinationen
von Tupeln
beider Tabellen
(Relationale) Datenbank
Schreiboperationen
Anfragen
bestNr
22
datum teil
22.6.04
Datenbank-Schema
SQL
Grundlagen von Datenbanken - SS 2010 - Prof. Dr. Stefan Böttcher – Folie 1 - 18
13
kunde
Reich
Warum Datenbanken?
Anfrage-Operationen auf Relationen (2)
Projektion
Spalten nach Namen auswählen
Selektion
Zeilen nach Inhalten auswählen
Vereinigung
von 2 Tabellen mit gleichen Spaltennamen
Differenz
von 2 Tabellen mit gleichen Spaltennamen
kartesisches
Produkt
alle Kombinationen
von Tupeln
beider Tabellen
Bestellungen
bestNr
22
datum teil
22.6.04
13
kunde
Reich
Reich
(Relationale) Datenbank
Schreiboperationen
Anfragen
Datenbank-Schema
SQL
Grundlagen von Datenbanken - SS 2010 - Prof. Dr. Stefan Böttcher – Folie 1 - 19
Warum Datenbanken?
Anfrage-Operationen auf Relationen (3)
Vereinigung, Schnitt und Differenzen erfordern
2 Tabellen mit gleichen Spaltennamen
R
RS
bestNr datum teil kunde
bestNr datum teil kunde
21
22
21.6.04 13 Reich
22.6.04 13 Reich
21
22
23
S
R-S
bestNr datum teil kunde
22
23
21.6.04 13 Reich
22.6.04 13 Reich
23.6.04 13 Reich
bestNr datum teil kunde
22.6.04 13 Reich
23.6.04 13 Reich
21
21.6.04 13 Reich
RS
S-R
bestNr datum teil kunde
bestNr datum teil kunde
22
22.6.04 13 Reich
(Relationale) Datenbank
Schreiboperationen
23
Anfragen
23.6.04 13 Reich
Datenbank-Schema
SQL
Grundlagen von Datenbanken - SS 2010 - Prof. Dr. Stefan Böttcher – Folie 1 - 20
Warum Datenbanken?
Kartesisches Produkt B x K
= alle Kombinationen von Tupeln beider Tabellen B und K
Bestellungen
bestNr datum teil kunde
22
22.6.04 13 1
29
29.6.04 26 1
32
29.6.04 13 2
(Relationale) Datenbank
Schreiboperationen
Kunden-Stammdaten
kundenNr name
1
2
Anfragen
plz ort
str
nr
Reich
Meier
Datenbank-Schema
SQL
Grundlagen von Datenbanken - SS 2010 - Prof. Dr. Stefan Böttcher – Folie 1 - 21
Warum Datenbanken?
Kartesisches Produkt B x K
= alle Kombinationen von Tupeln beider Tabellen B und K
Bestellungen
bestNr
22
29
32
datum
22.6.04
29.6.04
29.6.04
teil
13
26
13
kunde
1
1
2
Kunden-Stammdaten
kundenNr
1
2
name
Reich
Meier
plz
ort
str
nr
str
nr
Bestellungen x Kunden-Stammdaten
bestNr datum teil kunde
22
22.6.04 13 1
29
29.6.04 26 1
32
29.6.04 13 2
22
22.6.04 13 1
29
29.6.04 26 1
32
29.6.04 13 2
(Relationale) Datenbank
Schreiboperationen
kundenNr
1
1
1
2
2
2
Anfragen
name
plz
ort
Reich
Reich
Reich
Meier
Meier
Meier
Datenbank-Schema
SQL
Grundlagen von Datenbanken - SS 2010 - Prof. Dr. Stefan Böttcher – Folie 1 - 22
Warum Datenbanken?
Join B |x| K
kunde = kundenNr
= alle Kombinationen von Tupeln beider Tabellen B und K,
die eine Join-Bedingung erfüllen
Bestellungen
Kunden-Stammdaten
kundenNr
1
2
bestNr datum teil kunde
22
22.6.04 13 1
29
29.6.04 26 1
32
29.6.04 13 2
name
plz
ort
str
nr
Reich
Meier
Bestellungen |x| Kunden-Stammdaten
kunde = kundenNr
bestNr datum teil kunde
22
22.6.04 13 1
29
29.6.04 26 1
32
29.6.04 13 2
(Relationale) Datenbank
Schreiboperationen
kundenNr
1
1
2
Anfragen
name
Reich
Reich
Meier
Datenbank-Schema
plz
ort
SQL
Grundlagen von Datenbanken - SS 2010 - Prof. Dr. Stefan Böttcher – Folie 1 - 23
str
nr
Warum Datenbanken?
Knobelaufgaben
1. Die CWA (Closed World Assumption) sagt (umgangssprachlich):
Was aus der Datenbank nachweisbar ist, gilt auch –
und alles andere (so nimm man an) gilt nicht.
 Was in den Tabellen einer relationalen Datenbank steht,
wird als wahr interpretiert.
 Wenn etwas nicht in den Tabellen steht oder aus den Informationen der
Tabellen der relationalen Datenbank ableitbar ist, gibt es verschiedene
Deutungsmöglichkeiten:
a) es ist bekannt, dass es nicht gilt
b) man weiß nicht, ob es gilt oder nicht
Kann man effizient (ohne all zu viele Daten sammeln zu müssen)
zwischen a und b unterscheiden? Wenn ja, wie?
2. Kann man den Schnitt aus den andere Grundoperationen der Algebra ableiten?
Kann man das auch, ohne die Differenz zu benutzen?
(Relationale) Datenbank
Schreiboperationen
Anfragen
Datenbank-Schema
SQL
Grundlagen von Datenbanken - SS 2010 - Prof. Dr. Stefan Böttcher – Folie 1 - 24
Warum Datenbanken?
Schema der relationalen Datenbank
Zu jeder Spalte einer Tabelle gibt es einen Datentyp (=Domäne),
aus dem die Attributwerte gewählt werden dürfen, z.B. bestNr ist ganzzahlig
Domänen der Spalten werden bei Tabellendefinition festgelegt, z.B.
Datensätze (=Tupel von Attributwerten) dürfen aus dem
Schema (= dem kartesischen Produkt der Domänen) gewählt werden,
Bestellungen
z.B. aus int x Date x int x char(20) .
bestNr
int
datum
Date
teil kunde
int char(20)
22
22.6.04
13
Zeile=Datensatz=Tupel
Reich
44
Attributwert
Spalte=Attribut
(Relationale) Datenbank
Schreiboperationen
Anfragen
Datenbank-Schema
SQL
Grundlagen von Datenbanken - SS 2010 - Prof. Dr. Stefan Böttcher – Folie 1 - 25
Warum Datenbanken?
Schreib-Operationen in SQL
Tabelle anlegen
Spalten-Namen und -Typ angeben
create table Bestellungen( bestNr int,
datum Date, teil int, Kunde char(20) );
Tupel einfügen Werte angeben
insert into Bestellungen values (
22, 22-06-04, 13, "Reich" ) ;
Bestellungen
…
eingefügte Tupel müssen zum
Schema passen
bestNr
int
datum
Date
22
22.6.04
teil kunde
int char(20)
13
Reich
44
(Relationale) Datenbank
Schreiboperationen
Anfragen
Datenbank-Schema
SQL
Grundlagen von Datenbanken - SS 2010 - Prof. Dr. Stefan Böttcher – Folie 1 - 26
Warum Datenbanken?
Anfrage-Operationen in SQL
Projektion
Spalten nach Namen auswählen
select * from Bestellungen ; * = alle Spalten
select Kunde, Teil from Bestellungen ;
Selektion
Zeilen nach Inhalten auswählen
select * from Bestellungen
where teil = 13
Bestellungen
bestNr datum teil kunde
22
22.6.04 13 Reich
44
Projektion&
Selektion
select teil, datum from Bestellungen
where Kunde = "Reich"
(Relationale) Datenbank
Schreiboperationen
Anfragen
Datenbank-Schema
SQL
Grundlagen von Datenbanken - SS 2010 - Prof. Dr. Stefan Böttcher – Folie 1 - 27
Warum Datenbanken?
Warum Datenbanksysteme (1) ?
Anfrageoptimierung:
Zeitgewinn bei komplexen Anfragen
(mit mehreren Tabellen-Verknüpfungen) :
bis zu Faktor 100 (und mehr)
Bestellungen
bestNr datum teil kunde
(Relationale) Datenbank
Schreiboperationen
Kunden-Stammdaten
kundenNr name
Anfragen
plz ort
Datenbank-Schema
SQL
Grundlagen von Datenbanken - SS 2010 - Prof. Dr. Stefan Böttcher – Folie 1 - 28
str
nr
Warum Datenbanken?
Warum Datenbanksysteme (2) ?
Transaktionen ( =mehrere Datenbank-Aktionen
zusammengefasst zu einer Einheit )
sind :
Eigenschaft
Bedeutung
Beispiel
A
atomar
ganz oder garnicht
Überweisung
C
consistent
korrekt
Dateneingabe
I
isoliert
ungestört von parallelen
Transaktionen
Flugbuchung
D
dauerhaft
Daten gesichert
Auszahlung
(Relationale) Datenbank
Schreiboperationen
Anfragen
Datenbank-Schema
SQL
Grundlagen von Datenbanken - SS 2010 - Prof. Dr. Stefan Böttcher – Folie 1 - 29
Warum Datenbanken?
Herunterladen