[Stud.IP]
[Themen]
[Dozent]
[Termine]
[Materialien]
[Punkte-DB]
[Ablauf]
[Bücher]
[Software]
[Links]
MARTIN-LUTHER-UNIVERSITÄT HALLE-WITTENBERG
Institut für Informatik
Prof. Dr. Stefan Brass
Datenbanken I
(Wintersemester 2011/2012)
Ich wünsche allen Teilnehmern ein frohes und gesegnetes
Weihnachtsfest und ein glückliches neues Jahr.
Aus der letzten Vorlesung vor Weihnachten:
- Eine Feuerwerksartikel-Datenbank
(mit Sicherheitstips):
[PDF]
[ps, verkleinert].
- Einige Bemerkungen zu Informatik-Studium,
Lebenskrisen und Weihnachten:
[PDF]
SQL-Schnittstelle im Web:
Adminer
Dokumentationen verschiedener
Datenbank-Managementsysteme:
Themen
- Grundlegende Datenbank-Begriffe,
Funktionen von Datenbanksystemen
- Kurze Einführung in die mathematische Logik
- Relationales Datenmodell
- Relationale Algebra
- Die Datenbanksprache SQL (Schwerpunkt der Vorlesung)
- Einführung in Datenbankentwurf
(ER-Model, Logischer Entwurf, Relationale Normalformen)
- Datenbank-Sicherheit (Sichten, Zugriffsrechte, Datenschutz)
- Kurze Einführung in den physischen Datenbank-Entwurf (Indexe)
- Transaktionen, Mehrbenutzerbetrieb (Concurrency Control)
- Einführung in die Anwendungs-Programmierung
- Trigger (sofern noch Zeit)
- Kurze Einführung in deduktive Datenbanken (sofern noch Zeit)
- Data Warehouses, OLAP (sofern noch Zeit)
In den Übungen wird das Datenbanksystem Oracle eingesetzt,
sowie IBM DB2.
In der Vorlesung werden aber auch
Microsoft SQL Server, MySQL und Access diskutiert.
Dieser Kurs wird auch im Rahmen der
"Oracle Academic Initiative"
veranstaltet.
Der Dozent ist
Oracle Certified Professional (Oracle8 DBA)
und IBM Certified Advanced Database Administrator (DB2 UDB V8.1).
Dozent
Dr. Stefan Brass
- Büro:
- Raum 313
(Institut für Informatik, Von-Seckendorff-Platz 1)
- Sprechstunde:
- Mittwochs, 12:15-13:15 (und nach Vereinbarung)
- Email:
- brass@informatik.uni-halle.de
- Telefon:
- 0345/55-24740
- Fax:
- 0345/55-27333 (im Sekretariat)
- Sekretariat:
- Frau Vahrenhold, Telefon 0345/55-24750, Zimmer 324
Übungsleiter
Dr. Alexander Hinneburg
- Büro:
- Raum 314
(Institut für Informatik,
Von-Seckendorff-Platz 1)
- Sprechstunde:
- Nach Vereinbarung.
- Email:
- hinnebur (at) informatik (punkt) uni-halle (punkt) Land
- Telefon:
- 0345/55-24732
Termine
Vorlesung:
- Vier Stunden pro Woche:
- Montags, 10:10-11:45 (5min Pause), Hörsaal 3.28
(am 10.10. 3.04)
- Mittwochs, 8:10-9:45 (5min Pause), Hörsaal 3.28
Tafel-Übung:
- Zwei Stunden pro Woche,
es werden zwei Gruppen angeboten:
Nr | Tag | Zeit | Raum |
Beginn | Webseite |
1. | Montag | 14:15-15:45 |
3.04 | 17.10. |
Stud.IP |
2. | Montag | 16:15-17:45 |
3.04 | 17.10. |
Stud.IP |
- Bitte melden Sie sich in StudIP zur Übungsgruppe Ihrer Wahl an.
- In den Tafel-Übungen gibt es u.a. Präsenz-Aufgaben,
die unter Klausur-ähnlichen Bedingungen gelöst
werden müssen
und wie Hausaufgaben bepunktet werden.
Außerdem müssen Sie bereit sein,
dort Ihre Lösung der Hausaufgaben
vorzuführen und zu erklären.
Falls Sie nicht zur Übung koemmen,
werden Sie Punkte verlieren.
Sie brauchen aber insgesamt nur 50% der Punkte,
so dass ein gelegentliches Fehlen kein Problem sein sollte.
Wenn Sie öfter/länger mit gutem Grund fehlen,
sprechen Sie bitte mit dem Übungsleiter.
Praktische Übung am Rechner:
- Offiziell eine Stunde pro Woche,
diese Zeit ist aber im Laufe des Semesters variabel.
Außerdem werden Sie zur Bearbeitung der Hausaufgaben
und zum Selbstudium auch einige zusätzliche Zeit
am Rechner verbringen,
und SQL mit Oracle und ggf. anderen Systemen ausprobieren.
- Zu folgenden Zeiten sind Pools für
diese Lehrveranstaltung reserviert:
Tag | Zeit | Raum |
Montags | 12:00-18:00 |
3.02 (Uni-Pool) |
Montags | 12:00-18:00 |
3.35 (Uni-Pool) |
Mittwochs | 10:00-12:00 |
3.34 (ThinClient-Pool) |
- Es ist geplant,
dass zu bestimmten Zeiten Tutoren anwesend sind,
die bei Problemen helfen können,
oder auch für andere Fragen zur Verfügung stehen.
Dazu ist in der Vorlesung noch eine Absprache erforderlich.
Vorlesungs-Materialien
Folien:
Die Folien werden jeweils vor der Vorlesung hier ins Netz gestellt
(leichte Verbesserungen/Korrekturen sind auch noch möglich,
nachdem die Folien schon ins Netz gestellt wurden).
- 0. Informationen zur Vorlesung (37 Folien)
[Postscript, S/W, verkleinert]
[PDF, farbig, gross]
- 1. Einführung (97 Folien)
[Postscript, S/W, verkleinert]
[PDF, farbig, gross]
- 2. Das relationale Datenmodell (88 Folien)
[Postscript, S/W, verkleinert]
[PDF, farbig, gross]
- 3. Mathematische Logik mit DB-Anwendungen (184 Folien)
[Postscript, S/W, verkleinert]
[PDF, farbig, gross]
- 4. Relationale Algebra (131 Folien)
[Postscript, S/W, verkleinert]
[PDF, farbig, gross]
- 5. SQL I (138 Folien)
[Postscript, S/W, verkleinert]
[PDF, farbig, gross]
- 6. SQL II (154 Folien)
[Postscript, S/W, verkleinert]
[PDF, farbig, gross]
- 7. Data Warehouses und neuere SQL-Konstrukte (83 Folien)
[NOCH UNFERTIG! BITTE NOCH NICHT DRUCKEN]
[Postscript, S/W, verkleinert]
[PDF, farbig, gross]
- 8. Einführung in das Entity-Relationship-Modell
(119 Folien)
[Postscript, S/W, verkleinert]
[PDF, farbig, gross]
- 9. Einführung in den logischen Entwurf
(41 Folien)
[Postscript, S/W, verkleinert]
[PDF, farbig, gross]
- 10. Tabellendefinitionen in SQL
(149 Folien)
[Postscript, S/W, verkleinert]
[PDF, farbig, gross]
- 11. Einführung in relationale Normalformen
(68 Folien)
[Postscript, S/W, verkleinert]
[PDF, farbig, gross]
- 12. Updates in SQL / Mehrbenutzerbetrieb
(127 Folien)
[Postscript, S/W, verkleinert]
[PDF, farbig, gross]
- 13. Datenschutz: Zugriffsrechte in SQL
(108 Folien) (einige Folien werden noch übersetzt)
[Postscript, S/W, verkleinert]
[PDF, farbig, gross]
- 14. Sichten: (Views)
(55 Folien)
[Postscript, S/W, verkleinert]
[PDF, farbig, gross]
- 15. Einführung in den physischen Entwurf:
(40 Folien) [Folien in Englisch]
[Postscript, S/W, verkleinert]
[PDF, farbig, gross]
- 16. Data Dictionaries
(82 Folien) [Folien in Englisch]
[Postscript, S/W, verkleinert]
[PDF, farbig, gross]
- 17. Anwendungsprogrammierung I: Embedded SQL, ODBC, JDBC
(109 Folien) [Folien in Englisch]
[Postscript, S/W, verkleinert]
[PDF, farbig, gross]
- 18. Anwendungsprogrammierung II: Stored Procedures, Triggers
(67 Folien) [Folien in Englisch]
[Postscript, S/W, verkleinert]
[PDF, farbig, gross]
- ...
- Vorlesungsmaterialien von 2004
(noch einige zusätzliche Kapitel auf Englisch)
Hinweis:
- Postscript-Dateien können mit
Aladdin Ghostscript
angezeigt und ausgedruckt werden.
Teurere Laserdrucker haben einen Postscript-Interpreter eingebaut.
- PDF-Dateien können mit dem
Acrobat Reader angezeigt und gedruckt werden.
Übungsblätter:
- 1. Übungsblatt: Klassische Programmierung von Anfragen,
csv-Dateien:
[PDF]
(Abgabe bis 17.10.2011, 14:00).
- 2. Übungsblatt: Vorteile von DBMS,
Drei-Schema-Architektur, TPC:
[PDF].
(Abgabe bis 24.10.2011, 13:45)
- 3. Übungsblatt: Schlüssel,
Fremdschllüssel:
[PDF]
(Abgabe bis 07.11.2011, 13:45).
- 4. Übungsblatt: Logik: Signatur, Interpretation,
Integritätsbedingungen und Anfrage im Tupelkalkül
[PDF]
(Abgabe bis 14.11.2011, 13:45).
- 5. Übungsblatt: Logik (Tupelkalkül), relationale Algebra
[PDF]
(Abgabe bis 21.11.2011, 13:45).
- 6. Übungsblatt: Relationale Algebra, SQL
[PDF]
(Abgabe bis 28.11.2011, 13:45).
- ...
Die Hausaufgabenblätter werden immer montags
ins StudIP gestellt.
Beispiel-Datenbanken:
- Komponisten, Stücke, CDs:
[UNIX]
[Windows]
- US-Presidenten:
[UNIX]
[Windows]
Frühere Klausuren:
- Zwischenklausur aus dem Wintersemester 2000/2001
[Postscript]
[PDF]
- Endklausur aus dem Wintersemester 2000/2001
[Postscript]
[PDF]
- Klausur aus dem Wintersemester 2001/2002
[Postscript]
[PDF]
[Beispiel-DB (UNIX)]
[Beispiel-DB (Windows)]
- Klausur aus dem Sommersemester 2002
[Postscript]
[PDF]
[Lösung: Postscript]
[Lösung: PDF]
- Zwischenklausur aus dem Wintersemester 2002/2003
[Postscript]
[PDF]
- Endklausur aus dem Wintersemester 2002/2003
[Postscript]
[PDF]
- Zwischenklausur aus dem Wintersemester 2003/2004
[Postscript]
[PDF]
- Endklausur aus dem Wintersemester 2003/2004
[Postscript]
[PDF]
Frühere Klausuren (in Englisch):
Siehe auch:
- Vorlesung "Einführung in Datenbanken und das WWW"
(Sommer 2008, ASQ-Veranstaltung, 2+2Ü)
- Vorlesung "Datenbanken I"
(Wintersemester 2005/2006, 4V+2Ü)
- Vorlesung "Datenbanken I"
(Wintersemester 2004/2005, 4V+2Ü)
- Vorlesung "Datenbanken I"
(Wintersemester 2003/2004, 4V+2Ü)
- Vorlesung "Datenbanken I"
(TU Clausthal, Winter 2002/2003)
- Vorlesung "Datenbanksysteme"
(Wintersemester 2000/2001, 4V+1Ü)
- Vorlesung "Dokumentation und Datenbanken (Einführung in DBS)"
(Sommersemester 2002, 2V+1Ü)
- Vorlesung "Datenbanken IIA: Datenbankentwurf
(Sommersemester 2009, 2V+2Ü)
- Vorlesung "Datenbanken IIB: DBMS-Implementierung
(Sommersemester 2010, 2V+2Ü)
Ablauf
- 1. Mo, 10.10.2011:
- Kapitel 0: Informationen zur Vorlesung / Organisatorisches
(Folie 0-1 bis 0-37)
Kapitel 1: Einführung
(Folie 1-1 bis 1-15)
Aufgabe einer Datenbank,
Anfrage, Update,
Zustand, Schema, Datenmodell.
- 2. Mi, 12.10.2011:
- Kapitel 1: Einführung
(Folie 1-15 bis 1-54)
Datenmodell, DDL, DML, Datenbankmanagementsystem (DBMS),
Anwendungsprogramme, Client-Server-Architektur, Three-Tier-Architektur,
Persistente Daten, Datenunabhängigkeit,
Vergleich Datenbankanwendung - klassisches Programm mit Dateien,
Deklarative Programmier-/Abfrage-Sprachen.
- 3. Mo, 17.10.2011:
- Kapitel 1: Einführung
(Folie 1-56 bis 1-96)
Logische Datenunabhängigkeit,
Drei-Schema-Architektur, Transaktionen, Datensicherheit,
DBMS-Anbieter, Klassifizierung von Datenbank-Nutzern.
Kapitel 2: Das relationale Datenmodell
(Folie 2-1 bis 2-14)
Bedeutung des relationalen Modells,
Beispiel-Datenbank,
Datenwerte, Atomarität von Tabelleneinträgen.
- 4. Mi, 19.10.2011:
- Kapitel 2: Das relationale Datenmodell
(Folie 2-15 bis 2-68)
Relationales DB-Schema, Zustand, Notationen für Schemata,
Nullwerte, Integritätsbedingungen, Schlüssel,
Fremdschlüssel.
- 5. Mo, 24.10.2011:
- Kapitel 2: Das relationale Datenmodell
(Folie 2-63, 2-64 bis 2-88)
Ausführliche Diskussion über Schlüssel
am Beispiel,
Fremdschlüssel (Definition, Notationen, Beispiele),
Fremdschlüssel und Schlüssel,
Fremdschlüssel und Updates
(passive vs. aktive Integritätssicherung).
Kapitel 3: Mathematische Logik mit
Datenbank-Anwendungen
(Folie 3-1 bis 3-11)
Einführung, Motivation, Geschichte.
- 6. Mi, 26.10.2011:
- Kapitel 3: Mathematische Logik mit
Datenbank-Anwendungen
(Folie 3-12 bis 3-76)
Signaturen, Interpretationen,
Einbettung von Datenmodellen in Logik
(Abbildung von DB-Schema auf Signaturen
und DB-Zuständen auf Interpretationen),
Tupelkalkü und Bereichskalkül
für das relationale Modell
sowie Entity-Relationship-Modell
als Spezialfälle der Prädikatenlogik,
Variablendeklaration, Terme,
atomare Formeln, Formeln.
- 7. Mi, 02.11.2011:
- Kapitel 3: Mathematische Logik mit
Datenbank-Anwendungen
(Folie 3-76 bis 3-108)
längere Wiederholung zur Logik
und zur Beziehung zu Datenbanken,
Definition von Formeln,
Klammerersparnis-Regeln,
geschlossene Formeln, freie Variablen,
Variablenbelegungen,
Wert eines Terms,
Wahrheitswert einer Formel,
Modell, konsistent, inkonsistent, Tautologie,
Formeln in Datenbanken,
Integritätsbedingungen,
Anfragen (ganz kurz).
- 8. Mo, 07.11.2011:
- Kapitel 3: Mathematische Logik mit
Datenbank-Anwendungen
(Folie 3-108 bis 3-141)
Wiederholung zu DB-Schemata und Integritätsbedingungen,
Anfragen in der Logik,
Spezialfall Bereichskalkül,
QBE, ER-Kalkül (kurz), Tupelkalkül,
Vergleich mit SQL, Bereichsunabhängigkeit.
- 9. Mi, 09.11.2011
(Vertretung durch Dr. Hinneburg):
- Kapitel 3: Mathematische Logik mit
Datenbank-Anwendungen
(Folie 3-144 bis 3-166)
Implikationen und Äquivalenzen,
Bedeutung für Datenbanken.
Kapitel 4: Relationale Algebra
(Folie 4-13 bis 4-41)
Einführung, Bedeutung der relationalen Algebra,
Selektion, erweiterte Selektion,
Projektion, Projektion mit Umbennung und Datentyp-Operationen,
Schachteln von Operationen,
Basis-Operanden (Relationennamen, konstante Relationen).
- 10. Mo, 14.11.2011:
- Kapitel 4: Relationale Algebra
(Folie 4-1 bis 4-14, 4-42 bis 4-79)
Wiederholung (insbesondere zur Bedeutung der relationalen Algebra),
kartesisches Produkt,
Umbenennung von Spalten,
Basisoperationen vs. abgeleitete Operationen,
Verbund, natürlicher Verbund,
Äquivalenz von Anfragen,
algebraische Gesetze,
Anfragemuster: Verbund-Selektion-Projektion,
Selbstverbund,
Mengenoperationen (Vereinigung, Mengendifferenz, Schnitt).
- 11. Mi, 16.11.2011:
- Kapitel 4: Relationale Algebra
(Folie 4-74 bis 4-100, 4-112 bis 4-127)
Mengenoperationen (Vereinigung, Differenz, Schnitt),
Monotone und nichtmonotone Anfragen,
Notwendigkeit der Differenz,
Anti-Join, Beispiel (höchste Punktzahl für HA 1),
Vereinigung vs. Verbund,
Äußerer Verbund (Outer Join),
Grenzen der relationalen Algebra,
streng relational vollständige Anfragesprachen,
Übersetzung von Relationenalgebra in Bereichskalkü,
Skizze für umgekehrte Richtung.
Kapitel 5: SQL I
(Folie 5-1 bis 5-11)
Bedeutung von SQL,
Einfache SQL-Anfragen (eine Tabelle),
von Relationenalgebra zu SQL,
von Tupelkalkül zu SQL.
- 12. Mo, 21.11.2011:
- Kapitel 5: SQL I
(Folie 5-12 bis 5-75)
Geschichtliches zu SQL, SQL Standards,
Lexikalische Syntax (Leerplatz, Kommentare,
Zahlkonstanten, Zeichenkettenkonstanten,
Bezeichner, Reservierte Wörter, Delimited Identifier,
' vs. "),
Deklaration von Tupelvariablen in der FROM-Klausel,
Verbunde/Joins,
Naiver Auswertungsalgorithmus mit geschachtelten Schleifen,
Anfrageformulierung (von natürlicher Sprache zu SQL),
Unnötige Verbunde, Selbstverbund,
Beispiele für Fehler.
- 13. Mi, 23.11.2011:
- Kapitel 5: SQL I
(Folie 5-76 bis 5-130)
Terme (Skalare Ausdrücke),
Optionalität von Tupelvariablen in Attribut-Referenzen,
Datentyp-Operationen,
Bedingungen (WHERE-Klausel),
Bindungsstärke/Prioritäten von AND, OR, NOT,
Vergleiche, Vergleiche von Zeichenketten,
BETWEEN, LIKE, IN (mit explizit aufgezählter Menge von Werten),
IS NULL, SELECT, *, DISTINCT.
- 14. Mo, 28.11.2011:
- Kapitel 5: SQL I
(Folie 5-117 bis 5-125, 5-131 bis 5-138)
dreiwertige Logik, Bedingungen mit Nullwerten, IS NULL,
Überraschungen durch dreiwertige Logik,
Algorithmus (hinreichende Bedingung) für
"Wird eine gegebene Anfrage Duplikate liefern?",
Diskussion über manchmal erwünschte Duplikate
und "Schwache Schlüssel",
Diskussion über Verwendung von Tupelvariablen
in Attribut-Referenzen.
Kapitel 6: SQL II
(Folie 6-1 bis 6-29)
Wiederholung zu nichtmonotonem Verhalten von Anfragen,
NOT IN mit Unteranfragen,
Diskussion zu DISTINCT in Unteranfragen,
Verwendung von IN statt normalen Join zur Eliminierung bestimmter
Duplikate,
NOT EXISTS,
korrelierte vs. nicht korrelierte Unteranfragen,
Gütigkeitsbereiche von Variablen,
Verfeinerte Regel zur Optionalität von Tupelvariablen
in Attributreferenzen,
Diskussion zur SELECT-Klausel in EXISTS-Unteranfragen,
Beispiel für Allaussagen mit NOT EXISTS.
- 15. Mi, 30.11.2011:
- Kapitel 6: SQL II
(Folie 6-29 bis 6-74)
Allaussagen mit NOT EXISTS,
Häufige Fehler mit Unteranfragen,
IN vs. EXISTS (Verhalten bei Nullwerten),
Unteranfragen mit ALL/ANY/SOME,
Unteranfragen als Terme,
Unteranfragen unter FROM,
Aggregationsfunktionen,
Einfache Aggregationen in SQL.
- 16. Mo, 05.12.2011:
- Kapitel 6: SQL II
(Folie 6-74 bis 6-113)
Wiederholung zu Aggregationsfunktionen,
Syntaktische Restritionen bei einfachen Aggregationen,
Nullwerte und Aggregationsfunktionen,
GROUP BY, HAVING,
Aggregationsunteranfragen,
geschachtelte Aggregationen,
UNION.
- 17. Mi, 07.12.2011:
- Kapitel 6: SQL II
(Folie 6-110 bis 6-154)
UNION, UNION ALL, Andere Mengenoperationen,
Bedingte Ausdrücke, ORDER BY,
SQL-92 Verbundsyntax, Outer Join,
Diskussion möglicher Fehler beim Outer Join.
Kapitel 7: Data Warehouses und neuere SQL-Konstrukte
(Folie 7-1 bis 7-10)
Einführung in Data Warehouses,
Charakteristika von OLAP-Datenbanken vs. OLTP-Datenbanken,
Multidimensionale Daten: "Data Cube".
- 18. Mo, 12.12.2011:
- Kapitel 7: Data Warehouses und neuere SQL-Konstrukte
(Folie 7-9 bis 7-66)
Multidimensionale Daten: "Data Cube",
Stern-Schema (Fakten-Tabelle, Dimensions-Tabellen),
Fortgeschrittene Gruppierung (ROLLUP, CUBE, GROUPING SETS),
Top-N Anfragen, Window Functions/Analytic Functions (OVER, RANK).
- 19. Mi, 14.12.2011:
- Kapitel 7: Data Warehouses und neuere SQL-Konstrukte
(Folie 7-67 bis 7-83)
Implizite und Explizite Fenster im OVER-Konstrukt,
mögliche Auswertung.
Kapitel 8: Einführung in
das Entity-Relationship-Modell (Folie 8-1 bis 8-60)
Zweck des Datenbankentwurfes, Programme vs. Daten,
Phasen des Datenbankentwurfes,
Einordnung des ER-Modells,
Grundlegende ER-Elemente (Entities, Attribute, Relationships),
Graphische Syntax, Semantik,
Integrit"atsbedingungen,
Kartinalitäten (kurz).
- 20. Mo, 19.12.2011:
- Kapitel 8: Einführung in
das Entity-Relationship-Modell (Folie 8-56 bis 8-101)
(min,max)-Kardinalitäten,
typische Fälle:
Eins-zu-viele/Viele-zu-viele/eins-zu-eins Beziehungen,
verpflichtende vs. optionale Teilnahme an Relationships,
Alternative ER-Notationen
(insbesondere für Kardinalitäten),
Schlüssel,
Diskussion über künstliche Schlüssel
vs. natürliche Schlüssel,
schwache Entity-Typen.
- 21. Mi, 21.12.2011:
- Kapitel 8: Einführung in
das Entity-Relationship-Modell (Folie 8-92 bis 8-119)
Wiederholung zu schwachen Entity-Typen,
Association-Entity-Typen,
Umwandlung von Relationships in Entity-Typen,
Qualität von ER-Schemata.
Kapitel 9: Einführung in
den logischen Entwurf (Folie 9-1 bis 9-24)
Wiederholung zu Gründen für das mehrstufige Vorgehen
beim DB-Entwurf,
Ziel des logischen Entwurfs,
Übersetzung von Entity-Typen und Beziehungen
in das relationale Modell.
Diskussion über Fragen des Datenbank-Entwurfs
am Beispiel einer Feuerwerksartikel-Datenbank.
- 22. Mo, 09.01.2012:
- Kapitel 9: Einführung in
den logischen Entwurf (Folie 9-1 bis 9-41)
Übersetzung von ER-Schemata in das relationale Modell
(Entity-Typen, 1:n Beziehungen, n:m Beziehungen,
1:1 Beziehungen, Beziehungs-Attribute,
schwache Entity-Typen,
Umgang mit Namenskonflikten,
Umbenennung von Spalten und Relationen),
Grenzen der Übersetzung,
Methoden der Integritäts-Überwachung.
Kapitel 10: Tabellendefinitionen in SQL
(Folie 10-1 bis 10-88)
Klassische SQL-Datentypen
(u.a. CHAR, VARCHAR, NUMERIC, INT, REAL),
Überblick zu Datentyp-Funktionen,
Überblick zu weiteren Datentypen (u.a. CLOB, BLOB, DATE),
CREATE TABLE Syntax (u.a. Unterschied Spaltenconstraints zu
Tabellenconstraints).
- 23. Mi, 11.01.2012:
- Kapitel 10: Tabellendefinitionen in SQL
(Folie 10-87 bis 10-128)
Grundidee effizienter Integritätsüberwachung,
Einschränkungen bei CHECK-Constraints,
Constraint-Namen (Gründe dafür),
Möglichkeiten zur aktiven Integritätssicherung bei
Fremdschlüsseln, Defaultwerte für Spalten,
Hinweis auf systemabhängige Möglichkeiten
zur Generierung eindeutiger Nummern,
CREATE SCHEMA, DROP TABLE, Hinweis auf ALTER TABLE
Kapitel 11: Einführung in relationale Normalformen
(Folie 11-1 bis 11-6)
Motivation, Beispiel
Befragung zur Evaluation der Vorlesung
- 24. Mo, 16.01.2012:
- Kapitel 11: Einführung in relationale Normalformen
(Folie 11-1 bis 11-57)
Redundanz, Update-Anomalie, Einfügeanomalie, Löschanomalie,
Funktionale Abhängigkeiten (FAen), FAen und Schlüssel,
Triviale FAen, Implikation von FAen, Armstrong Axiome,
Attribut-Hülle,
Entscheidung der Implikation mittels Attribut-Hülle,
Diskussion über Bestimmung von Schlüsseln aus FAen,
Motivation für BCNF (Boyce-Codd-Normalform),
Definition von BCNF,
Prüfung auf BCNF,
3NF (Dritte Normalform),
3NF vs. BCNF,
Aufspaltung von Relationen
- 25. Mi, 18.01.2012:
- Kapitel 11: Einführung in relationale Normalformen
(Folie 11-58 bis 11-68)
Synthesealgorithmus für 3NF,
Ausführliche Diskussion zu 3NF vs. BCNF,
Beispiel für Relation in 3NF und nicht in BCNF (mündlich),
Verlustlosigkeit, Dekompositionssatz,
Diskussion zur Schema-Inäquivalenz bei Aufspaltungen.
Kapitel 12: Updates in SQL / Mehrbenutzerbetrieb
(Folie 12-1 bis 12-19, 12-24 bis 12-31)
INSERT, UPDATE, DELETE, COMMIT, ROLLBACK, autocommit,
mündlicher Bericht über Undo-Möglichkeiten in SQL
und in Oracle,
ACID-Merkregel für Transaktionen,
Atomarität, Dauerhaftigkeit
- 26. Mo, 23.01.2012:
- Kapitel 12: Updates in SQL / Mehrbenutzerbetrieb
(Folie 12-20 bis 12-23, 12-31 bis 12-70)
Neue Folien zur MERGE-Anweisung,
Fortsetzung der ACID-Merkregel: Isolation, Konsistenz,
Transaktions-Verwaltung in SQL
(COMMIT, ROLLBACK, automatisches COMMIT),
Illusion exklusiven Zugriffs auf ganze DB: "Ein-Terminal-Betrieb",
Gründe für verschachtelte/parallele Abarbeitung
von Transaktionen,
Zielkonflikt: Isolation vs. Leistung,
Sperren (X-Locks, S-Locks),
Deadlock,
Dirty Read Problem,
Lösung mit Sperren und mit Multi-Version-Concurrency-Control,
Lost Update Problem,
FOR UPDATE
- 27. Mi, 25.01.2012:
- Kapitel 12: Updates in SQL / Mehrbenutzerbetrieb
(Folie 12-71 bis 12-85, 12-94, 12-111 bis 12-125)
Nonrepeatable Read Problem, Inconsistent Analysis Problem,
Phantom Problem, LOCK TABLE, Isolationsstufen in SQL,
Sperren auf verschiedenen Ebenen: Intent-Sperren,
Theoretisches Modell für Transaktionen
als Folge von read- und write-Anweisungen,
Schedules,
semantische Serialisierbarkeit,
Konflikt-Serialisierbarkeit,
Test mittels Konfliktgraph
Kapitel 13: Datenschutz: Zugriffsrechte in SQL
(Folie 13-1 bis 13-17)
Motivation für DB-Sicherheit, Anforderungen,
Benutzer-Authentifikation
- 28. Mo, 30.01.2012:
- Kapitel 13: Datenschutz: Zugriffsrechte in SQL
(Folie 13-18 bis 13-71)
Subjekt-Verb-Objekt-Modell für Zugriffsrechte in SQL,
Einschränkungen/Probleme und Lösungen,
Verkapselung von Objekten (Tabellen) durch Sichten
und serverseitige Prozeduren (stored procedures),
Discretionary Access Control vs. Mandatory Access Control,
Schutz der Datenbank-Dateien,
Einführung in das deutsche Datenschutzrecht,
GRANT-Kommando in SQL,
Zugriff auf Tabellen anderer Nutzer in Oracle,
TO PUBLIC,
WITH GRANT OPTION,
Rechte des Besitzers einer Tabelle,
REVOKE
Kapitel 14: Sichten (Views, Virtuelle Tabellen)
(Folie 14-1 bis 14-38)
Motivation, Konzept, Übersetzung von Anfragen an Sichten,
Vergleich mit Tabelle mit Anfrageergebnis,
Materialisierte Sichten,
Rekursive Sichten,
Anwendungen von Sichten,
"View Update Problem",
Gründe/Anwendungen für Updates auf Sichten,
Übersetzung von Updates von Sichten auf Basistabellen,
Beispiele für unmögliche und mehrdeutige Übersetzungen,
Updatebare Sichten nach dem SQL-Standard
- 29. Mi, 02.02.2012:
Voraussetzungen zur Teilnahme
Es gibt nur wünschenswerte Modulvoraussetzungen,
keine obligatorischen.
Ohne diese Voraussetzungen (insbesondere ohne Programmierkenntnisse)
ist die Teilnahme aber auf eigene Gefahr.
Es könnte z.B. sein,
daß Sie mit den Voraussetzungen
eine bessere Note erhalten hätten.
Andererseits kann man natürlich
durch entsprechend größeren zeitlichen Aufwand
in Vorbereitung, Nacharbeit und Selbststudium alles wieder wettmachen.
Hier nun die wünschenswerten Vorkenntnisse:
- Sie sollten eine Programmiersprache beherrschen.
Einige Programmbeispiele in der Vorlesung sind in C,
ein Beispiel ist in Java.
Es wird auch PL/SQL kurz eingeführt,
das ähnlich zu Pascal/Modula/Ada ist.
Anwendungsprogrammierung ist natürlich nur ein kleiner Teil
der Vorlesung.
Gewisse Kenntnisse über Programmiersprachen
sind auch zum Verständnis von SQL sehr nützlich,
denn SQL ist nur eine spezielle (Programmier-)Sprache
für Datenbanken.
- Einige mathematische Grundlagen über Mengen, Durchschnitt,
Vereinigung, kartesisches Produkt,
Funktionen etc. sind notwendig.
- Sie sollten die booleschen Werte "wahr" und "falsch"
sowie die Verknüpfungen "und" und "oder" kennen.
Grundlagen der mathematischen Logik wären nützlich,
sind aber nicht unbedingt erforderlich.
- Es wäre gut,
wenn Sie Syntaxdiagramme
(eine Notation für kontextfreie Grammatiken)
lesen können.
Bei Bedarf wird dies in der Vorlesung wiederholt.
- Für den kurzen Abschnitt über physischen Entwurf
wären Kenntnisse über Baumstrukturen nützlich.
- Wichtig ist auch,
daß Sie genug Zeit mitbringen,
um ein Lehrbuch zu lesen,
sich mit den Hausaufgaben zu beschäftigen,
und den praktischen Umgang mit Oracle (oder einem anderen DBMS)
zu üben.
Wieviel Sie in diesem Kurs lernen,
hängt ganz wesentlich davon ab,
wieviel Zeit Sie investieren.
Da diese Veranstaltung 10 Leistungspunkte hat,
müssen Sie mit insgesamt 300 Stunden Arbeitsaufwand
rechnen.
Punkte Datenbank
Die Punkte-Datenbank gibt Ihnen die Möglichkeit,
die für Sie eingetragenen Punkte für Hausaufgaben und
Klausur einzusehen,
so daß Sie sich bei möglichen Unstimmigkeiten
melden können.
Außerdem werden einige statistische Angaben
(Durchschnittspunktzahl etc.) angezeigt.
Wir hoffen,
die Bewertung so transparenter zu machen.
Dr. Hinneburg benutzt die Übungsplattform
in StudIP,
die im Gegensatz zu meiner Punkte-Datenbank
auch elektronische Abgaben von Hausaufgaben erlaubt.
Für einen Datenbank-Kurs ist es aber gut,
eine praktische Anwendung zu haben.
Ich habe schon manches dadurch gelernt.
Eine vereinfachte Version der Punkte-Datenbank wird
auch in der Vorlesung als Beispiel verwendet.
Ich entwickle die Punkte-Datenbank noch weiter (wenn ich Zeit habe),
Verbesserungsvorschläge sind also willkommen.
Wir können die Sicherheit Ihrer Daten nicht garantieren
(obwohl wir uns natürlich etwas Mühe geben).
Falls Sie Ihre Daten nicht in der Punkte-Datenbank wünschen,
melden Sie sich bitte.
Ansonsten könnte sich jemand anders unter Ihrem Namen eintragen
und dann Ihre Punkte einsehen.
Sich nicht einzutragen und nicht zu melden
wäre also für den Datenschutz
sogar besonders gefährlich.
Literatur (Bücher)
Ich empfehle,
sich eins der folgenden Bücher zu beschaffen
und begleitend zur Vorlesung zu lesen.
Die Reihenfolge ist mehr oder weniger zufällig
und nicht als Wertung zu verstehen.
Außerdem werde ich die in der Vorlesung verwendeten Folien
zur Verfügung stellen.
- Andreas Heuer, Gunter Saake:
Datenbanken. Konzepte und Sprachen. 2. Aufl.
MITP Bonn, 2000, ISBN 3-8266-0619-1, 704 Seiten.
[Amazon.de]
[Buch.de]
- Andreas Heuer, Gunter Saake, Kai-Uwe Sattler:
Datenbanken kompakt
MITP Bonn, 2003, ISBN 3-8266-0987-5, 301 Seiten.
[Amazon.de]
[Buch.de]
- Gottfried Vossen:
Datenbankmodelle, Datenbanksprachen und
Datenbankmanagementsysteme.
4. Aufl.
(Fünfte Auflage angekündigt für 2005!)
Oldenbourg, 2000, ISBN 3-486-25339-5, 778 Seiten.
[Amazon.de]
[Buch.de]
- Georg Lausen:
Datenbanken: Grundlagen und XML-Technologien.
Spektrum Akademischer Verlag, 2005, ISBN 3827414881, 281 Seiten.
[Amazon.de]
[Buch.de]
[Weitere Datenbank-Lehrbücher]
Software (DBMS)
Kommerziell (Relational/Objektrelational):
- Informix (jetzt Teil von IBM)
- Transaction Software: Transbase
Halbkommerziell/Open Source/Frei:
- MaxDB (vorher SAP DB, davor Adabas)
- Firebird
(entstanden aus einer älteren Version von Borland InterBase)
[Meine alte Software Link-Seite]
Informationen zur Installation von Oracle
Informationen zur Oracle Zertifizierung
Informationen zur IBM DB2 Zertifizierung
Literatur im WWW (Links)
Meine Sammlung von WWW-Referenzen:
Datenbank Tutorien im Internet:
Weitere Informationsquellen:
Stefan Brass
(brass@informatik.uni-halle.de),
10. Oktober 2011
Original URL:
http://www.informatik.uni-halle.de/~brass/db11/
[XHTML 1.0 geprüft]
[CSS geprüft]
[Links Geprüft]