Datenbanken und SQL - Softwarelabor (SWL)

Werbung
Datenbanken
(WS 2015/2016)
Klaus Berberich
([email protected])
Wolfgang Braun
([email protected])
0. Organisatorisches
Dozenten
§ Klaus Berberich ([email protected])
§ Sprechstunde nach Vereinbarung per E-Mail
§ Wolfgang Braun ([email protected])
§ Sprechstunde nach Vereinbarung per E-Mail
Datenbanken / Kapitel 0: Organisatorisches
4
Vorlesung
§ Zwei Vorlesungstermine
§ Montag, 14:00 – 15:30 (4. Stunde), Raum 4301
§ Dienstag, 8:15 – 9:45 (1. Stunde), Raum 5104
(entfällt, wenn eine Übung stattfindet)
Datenbanken / Kapitel 0: Organisatorisches
5
Übung
§ Zwei Übungstermine
§ Dienstag, 8:15 – 9:45 (1. Stunde), Raum 7110
§ Freitag, 11:45 – 13:30 (3. Stunde), Raum 7110
§ Bitte entscheiden Sie Sich für einen der beiden Termine
und tragen Sie Sich in die ausgeteilten Listen ein
§ Übungsblatt 1 (heute ausgegeben) wird in den Übungen
nächste Woche am 27.10 / 30.10 besprochen
Datenbanken / Kapitel 0: Organisatorisches
6
Prüfung
§ Mündliche Prüfung am Ende des Semesters
§ Termin wird rechtzeitig in der Vorlesung bekannt gegeben
Datenbanken / Kapitel 0: Organisatorisches
7
Webseite
§ Webseite zur Vorlesung:
§ Ankündigungen
§ Folien und Übungsblätter zum Download
§ Sonstige Ressourcen (z.B. Software und Daten)
§ nur aus dem Netz der HTW oder per VPN zu erreichen
§ http://www1.htwsaar.de/~berberich/teaching/ws15/dbs/
Datenbanken / Kapitel 0: Organisatorisches
8
Literatur zur Vorlesung
§ A. Kemper und A. Eickler:
Datenbanksysteme – Eine Einführung,
De Gruyter Oldenbourg, 2013
§ G. Saake, K.-U. Sattler und A. Heuer:
Datenbanken - Konzepte und Sprachen,
mitp Professional, 2013
Datenbanken / Kapitel 0: Organisatorisches
9
Literatur zur Vorlesung
§ E. Schicker:
Datenbanken und SQL,
Springer-Vieweg, 2013
[Online Ausgabe]
§ H. Garcia-Molina, J. D. Ullman und J. Widom:
Database Systems – The Complete Book,
Pearson, 2013
Datenbanken / Kapitel 0: Organisatorisches
10
Software und Daten
§ Praktische Übungen zur Vorlesung mit
§ MS SQL Server 2014 im Softwarelabor
§ SQLite (verfügbar für Windows, Mac, Linux) für zu Hause
Datenbanken / Kapitel 0: Organisatorisches
11
Inhalt
§ 1. Einführung
§ 2. Datenbankentwurf
§ 3. Relationales Modell & Algebra
§ 4. SQL – Structured Query Language
§ 5. Relationale Entwurfstheorie
§ 6. Datenintegrität
Datenbanken / Kapitel 0: Organisatorisches
12
Inhalt
§ 7. Transaktionsverwaltung
§ 8. Programmieren mit SQL
§ 9. Datenbankschnittstellen
§ 10. Sicherheitsaspekte und Datenbanktuning
§ 11. NoSQL
Datenbanken / Kapitel 0: Organisatorisches
13
1. Einführung
Relationale Datenbanksysteme
§ Relationale Datenbanksysteme (RDBMS)
§ sind die heute vorherrschende Art von Datenbanksystemen
§ basieren auf mehr als 40 Jahren Forschung & Entwicklung
§ gibt es in Form kommerzieller und/oder offener Systeme
§ Oracle Database
§ IBM DB2
§ Microsoft SQL Server
§ PostgreSQL
§ MySQL
§ SQLite
§ …
Datenbanken / Kapitel 1: Einführung
15
Relationale Datenbanksysteme
§ Relationale Datenbanksysteme (RDBMS)
§ bilden das Rückgrat verschiedenster Anwendungen, z.B.:
§ Enterprise Resource Planning Systeme (z.B. SAP)
§ Content Management Systeme (z.B. Typo3, WordPress)
§ Websites und -shops (z.B. IMDb und ebay)
§ Wikis (z.B. MySQL hinter MediaWiki)
§ Apps (z.B. SQLite in iOS SDK)
§ …
Datenbanken / Kapitel 1: Einführung
16
ANSI 3-Ebenen Modell / Abstraktionsebenen
§ American National Standards Institute (ANSI) 3-Ebenen
Modell unterscheidet drei Abstraktionsebenen in
einem Datenbanksystem
Sicht 1
…
Sicht n
§ Physische Ebene (intern):
Wie sind die Daten gespeichert?
Logische Ebene
§ Logische Ebene (konzeptuell):
Welche Daten sind gespeichert?
§ Sichten (extern):
Welche Daten sieht ein Benutzer?
Physische Ebene
Quelle: Kemper und Eickler [1]
Datenbanken / Kapitel 1: Einführung
17
Stellen Sie Sich vor…
§ Ein Bekannter betreibt einen Handel mit Werkzeugen zur
Holzbearbeitung; bisher hat er alles „auf Papier gemacht“,
möchte nun jedoch einen Webshop eröffnen
§ Wie unterstützen Sie Ihn dabei?
§ Kenntnisse aus Programmiervorlesung:
§ Objektorientierte Modellierung (z.B. Bestellung)
§ Schreiben und Lesen von Objekten aus dem Dateisystem
§ Datenstrukturen (Bäume, Hashing)
Datenbanken / Kapitel 1: Einführung
18
Redundanz
§ Sie speichern die Bestellungsobjekte mit allen benötigten
Informationen (z.B. Name und Anschrift des Kunden,
Details zu den bestellten Artikeln) in einer Datei ab
§ Der Artikel „Holzhammer“ ist sehr beliebt und findet sich in
616 Bestellungen; da es nun auch ein kleineres Modell
gibt, muss seine Beschreibung in „Holzhammer (groß)“
geändert werden
§ Sie ändern die Beschreibung in allen 616 Bestellungen
Datenbanken / Kapitel 1: Einführung
19
Datenbankentwurf
§ Es gibt etablierte Ansätze zur konzeptuellen
Modellierung der Daten einer Anwendung
§ Kapitel 2: Datenbankentwurf
§ Relationale Datenbanksysteme speichern diese Daten in
sogenannten Relationen (Tabellen); man kann erreichen,
dass dies ohne Redundanzen geschieht
§ Kapitel 3: Relationales Modell & Algebra
Kapitel 5: Relationale Entwurfstheorie
Datenbanken / Kapitel 1: Einführung
20
Welche Kunden kommen aus Mannheim?
§ Nach einiger Zeit möchte Ihr Bekannter wissen, welche
seiner Kunden aus Mannheim kommen
§ Sie schreiben ein Java-Programm
§ Ein paar Tage später interessiert ihn, wo Kunden wohnen,
die seine Schnitzrohlinge kaufen
§ Sie schreiben noch ein Java-Programm
§ …
Datenbanken / Kapitel 1: Einführung
21
Anfragesprachen
§ Relationale Datenbanksysteme unterstützen SQL als
standardisierte Anfragesprache, mit denen Sie oder Ihr
Bekannter Anfragen formulieren kann, z.B.:
1
2
3
select KundenNr , Vorname , Name
from Kunden
where Wohnort = ’ Mannheim ’
§ Das Datenbanksystem entscheidet selbst, wie die
Anfragen auf den gespeicherten Daten ausgewertet
werden soll; Sie müssen keinen Code schreiben!
§ Kapitel 4: Structured Query Language (SQL)
Datenbanken / Kapitel 1: Einführung
22
Datenintegrität und Transaktionen
§ Der Strom ist ausgefallen, während viele Kunden im
Webshop ihres Bekannten am Bestellen waren.
Nach dem Neustart gibt es viele Bestellungen, die
unvollständig sind oder gar keine Artikel enthalten
§ Relationale Datenbanksysteme bieten Mechanismen, um
zu garantieren, dass die Daten in einem konsistenten
Zustand sind und bleiben
§ Kapitel 6: Datenintegrität
§ Kapitel 7: Transaktionsverwaltung
Datenbanken / Kapitel 1: Einführung
23
Standardisierte Schnittstellen
§ Ein Lieferant möchte Daten direkt in die Anwendung Ihres
Bekannten einspielen; sein Entwickler kann nur X++
§ Sie dokumentieren das verwendete Dateiformat sorgfältig
§ Relationale Datenbanksysteme bieten standardisierte
Schnittstellen (z.B. ODBC) für gängige
Programmiersprachen
§ Kapitel 9: Datenbankschnittstellen
Datenbanken / Kapitel 1: Einführung
24
Sicherheitsaspekte
§ Ein Mitarbeiter soll die Beschreibungen von Artikeln
überarbeiten; auf Kunden darf er keinen Zugriff haben
§ Sie übertragen die Beschreibungen von Artikeln in eine
Excel-Datei und pflegen die geänderten Daten später ein
§ Relationale Datenbanksysteme erlauben eine genaue
Kontrolle von Zugriffsmöglichkeiten auf Ebene von
Benutzern und Rollen
§ Kapitel 10: Sicherheitsaspekte und Datenbanktuning
Datenbanken / Kapitel 1: Einführung
25
Datenbanktuning
§ Ihr Bekannter greift häufig auf Artikel anhand ihrer
Beschreibung zu; das muss jedoch schneller gehen!
§ Sie halten eine passende Datenstruktur (z.B. TreeMap)
im Hauptspeicher, um diese Zugriffe zu beschleunigen
§ Relationale Datenbanksysteme bieten verschiedene Arten
von Indexstrukturen, halten diese mit den Daten aktuell
und entscheiden, wann es Sinn macht sie zu verwenden
§ Kapitel 10: Sicherheitsaspekte und Datenbanktuning
Datenbanken / Kapitel 1: Einführung
26
Gibt es nur relationale Datenbanksysteme?
§ Nein, es gab Vorläufer (z.B. hierarchische Datenbanken
und Netzwerkdatenbanken); diese sind jedoch nur noch
von historischem Interesse
§ Nein, Vielzahl von Alternativen in den letzten 10 Jahren
§ verteilte Verarbeitung großer Datenmengen
(z.B. MapReduce, Spark)
§ alternative Modellierung der Daten
(z.B. als Graph oder Dokumente)
§ Kapitel 11: NoSQL
Datenbanken / Kapitel 1: Einführung
27
Zusammenfassung
§ Relationale Datenbanksysteme
§ sind heute vorherrschende Form von Datenbanksystemen
§ bilden das Rückgrat vielfältiger Anwendungen
§ Drei Abstraktionsebenen in einem Datenbanksystem
§ physische Ebene
§ logische Ebene
§ Sichten
Datenbanken / Kapitel 1: Einführung
28
Literatur
[1]
A. Kemper und A. Eickler: Datenbanksysteme – Eine
Einführung, De Gruyter Oldenbourg, 2013 (Kapitel 1)
Datenbanken / Kapitel 1: Einführung
29
Herunterladen