datenbanken aufbau, theorie und anwendung (im unterricht) johannes gutenberg universität mainz...
TRANSCRIPT
DATENBANKEN
Aufbau, Theorie und Anwendung (im Unterricht)
Johannes Gutenberg Universität MainzFachbereich 08: InformatikSeminar: Didaktik der Informatik, SS09Dozenten: Prof. Dr. Herbert Göttler mit OStR Martin MattheisReferent: Christian Herres
26/27.06.2009
Verlaufsplan
1. Einordnung in den Lehrplan
2. Theoretische Einführung
3. Aufbau relationaler Datenbanken
4. Structured Query Language
Einordnung in den Lehrplan
1. Sensibilisierung (Wo gibt es DB ?)
2. Unterschiede: elektronisch nicht elektr.
3. Aufbau und Darstellung von DB
4. Einführung des relationalen Modelles
5. Einführung von Schlüsselattributen
6. Normalisierung
7. Structured Query Language (SQL)
8. Modellierung eigener Datenbanken
Theoretische Einführung
1. Wo gibt es DB?
2. Was ist eine DB?
3. Das Database Management System (DBMS)
4. Bestandteile von Datenbanksystemen
5. Arten von Datenbanksystemen
Wo gibt es Datenbanken?
Nicht elektronisch:- Zettelkasten in der Bibliothek- Telefonbuch
Elektronisch:- ub.uni-mainz.de - Telefonbuch.de- Handy
Unterschiede?
Was ist eine Datenbank?
„Eine Datenbank ist eine geordnete, selbstbeschreibende Sammlung von Daten,
die miteinander in Verbindung stehen.“
Geisler, Frank (2005).
Probleme von Datenbanken
Zugriffsrechte/Redundanz/Löschen von Daten
Lösung: DBMS
Bestandteile von DB
Daten
DBMS
Nutzer Speicher Rechner Ausgabe-Geräte
Tools OS
Hardware
Software
Arten von DB
Hierarchisch- Wurzel- / Kindknoten- i:M – Beziehungen Beziehungen zwischen Knoten sind starr
Netzwerk- M:N Beziehungen- indirekte Beziehungen möglich immer noch strukturell abhängig
Arten von DB
Objektorientiert- Möglichkeit der Abänderung bleibt bestehen- strukturell unabhängig- alle Vorteile der objektorientierten
Programmierung- sehr schnell aber schwer übertragbar, da keine Standards
definiert hohe Lernzeit für Nutzer
Arten von DB
ER-Methode (Entity Relationship)- Nicht implementativ, sondern konzeptionell- beschreibt Entitäten und Beziehungen- grafisch darstellbar
Baum Asthat
hat
BlätterVögel
auf/hat
i N
i
NN
M
Relationales Modell
relation = Tabelle- Tabellarische Auflistungen von Entitäten- Verknüpfung beliebig über Schlüssel
durchführbar- langsamer als Objektorientiertes Modell oft nutzt man Mischformen zwischen
objektorientierten und relationalen Ansätzen
Relationales Modell
Struktur- physikalische Speicherung hier uninteressant- Daten auf dem Datenträger müssen keine
Tabellen sein Code für die eigentliche DB nicht einsehbar aber auch nicht von Interesse, da dieser nur
im Performanzbereich wichtig wird
Relationales Modell
Kunde
KUNDE_ID NAME NACHNAME
1 Christian Herres
2 Max Mustermann
Primärschlüssel
Zeile / Entität
Spalte / Attribut
Feld / Datum
Metadaten
Voraussetzungen:- Spaltennamen eindeutig innerhalb Tabelle- jedes Feld Muss eindeutig beschreibbar und adressierbar sein- Spaltennamen sind großgeschriebene Substantive- Nomenklatur der Primärschlüssel sollte einheitlich sein
Relationales Modell
Datentypen:- Felder haben festen Datentyp- die Domäne ist Wertebereich den Felder
tatsächlich annehmen Die Noten N= {1,2,3,4,5,6} sollen gespeichert
werden. Der Datentyp könnte INTEGER sein, also alle
ganzen Zahlen. Die Domäne wäre aber nur eine Teilmenge von N.
Relationales Modell
Verknüpfung von Daten
erfolgt über Primärschlüssel
MKunde Buchleiht
N
Relationales Modell
Beziehungen zwischen Daten
Kunde
KUNDE_ID NAME NACHNAME
1 Christian Herres
2 Max Mustermann
Buch
BUCH_ID BUCHNAME
1 Datenbanken
2 Campbell
Ausleihe
AUSLEIHE_ID KUNDE_ID BUCH_ID DATUM RUECKGABE
1 1 2 2009-01-01 2009-02-22
2 1 1 2009-01-01 NULL
3 2 2 2009-02-23 NULL
Relationales Modell
Primärschlüssel:- Primärschlüssel identifizieren Attribute
P A1,A2
Das Attribut A1 / A2 ist funktional abhängig vom Primärschlüssel P- der Primärschlüssel kann aus mehreren Feldern bestehen
P1,P2 A1,A2
- kann künstlich / natürlich sein (eine ID wäre künstlich)
Normalisierung
Normalisierung bezeichnet einen Prozess, an dessen Ende eine möglichst gute, sinnvolle
und redundanzfreie Datenbank steht.Kunde
KUNDE_ID ANREDE NACHNAME
1 Herr Herres
2 Herr Mustermann
3 Frau Fröhlich
4 Frau Meier
Kunde
KUNDE_ID ID_ANREDE NACHNAME
1 1 Herres
2 1 Mustermann
3 2 Fröhlich
4 2 Meier
Redundanz ist hier systemimmanent
Erste Normalform
Leihe
LEIHE_ID NAME ID_BUCH BUCHNAME DATUM
1 Max Mustermann
1234
DatenbankenCampbellGrundgesetzHerr der Ringe
2009-01-012009-01-012009-02-022009-02-02
Leihe
LEIHE_ID NAME BUCH_ID BUCHNAME DATUM
1 Max Mustermann 1 Datenbanken 2009-01-01
2 Max Mustermann 2 Campbell 2009-01-01
3 Max Mustermann 3 Grundgesetz 2009-02-02
4 Max Mustermann 4 Herr der Ringe 2009-02-02
Eine Tabelle ist dann in der ersten Normalform, wenn es keine Wiederholungsgruppen, also Zellen mit Wertemengen mehr gibt und alle Schlüsselattribute vorhanden sind beziehungsweise alle Attribute vom Primärschlüssel abhängen.
Zweite Normalform
Besitzt eine Tabelle nur ein Primärschlüsselattribut ist sie automatisch in der zweiten Normalform, wenn Sie sich in der ersten Normalform befindet.
Leihe
LEIHE_ID NAME BUCH_ID BUCHNAME DATUM
1 Max Mustermann 1 Datenbanken 2009-01-01
2 Max Mustermann 2 Campbell 2009-01-01
funktionale Abhängigkeit
Leihe
LEIHE_ID KUNDE_ID BUCH_ID DATUM
1 1 1 2009-01-01
2 1 2 2009-01-01
Kunde
KUNDE_ID NAME
1 Max Mustermann
2 Christian Herres
Buch
BUCH_ID NAME
1 Datenbanken
2 Campbell
Dritte, vierte und fünfte Normalform
Eine Tabelle befindet sich dann in der dritten Normalform, wenn sie keine transitiven oder funktionalen Abhängigkeiten mehr aufweist.Transitive Abhängigkeit könnte zum Beispiel noch die Zuordnung von Leihkosten sein
Vierte Normalform:- es liegen noch maximal 2 zusammenhängende Abhängigkeiten vor
Fünfte Normalform:- jede Bedingung der Relation ist eine logische Folge der Definition der Schlüssel und der Domänen-völlige Redundanzfreiheit schnell, logisch, aber zu komplex
Structured Query Language
Data Definition Language (DDL) Anlegen / Editieren / Löschen
(Tabellenstruktur)
Data Control Language (DCL) Steuerung der Zugriffsberechtigungen
(Benutzer)
Data Manipulation Language (DML) Erstellen / Bearbeiten / Löschen / Lesen
(Entitäten)
SQL - DDL
1. CRATE TABLE Buch ( BUCH_ID INTEGER PRIMARY KEY, BUCHNAME TEXT );
2. ALTER TABLE Buch ADD ERSCHIENEN TEXT;
3. DROP TABLE Buch;
Buch
BUCH_ID BUCHNAME
Buch
BUCH_ID BUCHNAME ERSCHIENEN
SQL - DCL
GRANT SELECT ON Buch TO herres;
Berechtigungen für Nutzer in der DML
DENY SELECT ON Buch TO herres;
SQL – DML: INSERT
SELECT / INSERT / DELETE / UPDATE
INSERT INTO Buch VALUES (1‚‘Datenbanken‘); INSERT INTO Buch SET ID_BUCH=1,
BUCHNAME=‘Datenbanken‘;
Buch
BUCH_ID BUCHNAME
Buch
BUCH_ID BUCHNAME
1 Datenbanken
wirft Fehler wenn nicht eindeutig Besser den Zusatz „auto increment“ bei Erstellung der Tabelle geben
SQL – DML: UPDATE / DELETE
Buch
BUCH_ID BUCHNAME
1 Datenbanken
2 Campbell
3 Muster
4 Maler
UPDATE Buch SET BUCHNAME=‘Fahrer‘ WHERE ID_BUCH=’2’;
Buch
BUCH_ID BUCHNAME
1 Datenbanken
2 Fahrer
3 Muster
4 Maler
DELETE FROM Buch WHERE ID_BUCH=’4’;
SQL – DML: SELECT
Buch
BUCH_ID BUCHNAME WERT
1 Datenbanken 35
2 Campbell 50
3 Muster 12
4 Muster 13
SELECT FROM Buch WHERE NAME=’Muster’;
SQL – DML: AND
Buch
BUCH_ID BUCHNAME WERT
1 Datenbanken 35
2 Campbell 50
3 Muster 12
4 Muster 13
SELECT FROM Buch WHERE NAME=’Muster’ AND WERT> ’12’;
’
SQL – DML: ORDER BY
Buch
BUCH_ID BUCHNAME WERT
1 Datenbanken 35
2 Campbell 50
3 Muster 12
4 Muster 13
SELECT FROM Buch WHERE NAME=’Muster’ ORDER BY WERT ;
’
ASC / DESC
Standard ist ASC (aufsteigend)
SQL – DML: (equi) JOIN
Leihe
LEIHE_ID KUNDE_ID BUCH_ID DATUM
1 1 1 2009-01-01
2 1 2 2009-01-01
Kunde
KUNDE_ID NAME
1 Max Mustermann
2 Christian Herres
Buch
BUCH_ID NAME
1 Datenbanken
2 Campbell
SELECT Leihe.DATUM, Buch.BUCHNAME, Kunde.NAME FROM Leihe L, Buch B, Kunde K
WEHRE L.KUNDE_ID = K.KUNDE_ID AND L.BUCH_ID = B.BUCH_ID
>>Ausgabe<<
NAME BUCHNAME DATUM
Max Mustermann Datenbanken 2009-01-01
Max Mustermann Campbell 2009-01-01
Ende des theoretischen Teils.
Konzeption Unterrichtsreihe
Ziel: Jeder Schüler soll den Aufbau einer relationalen Datenbank kennen, sowie mit SQL und einer Umgebung einfache Abfragen erstellen können.
Antinomie:
„Wenn man konzeptionelle Fragen diskutiert, werden ‚Hacker‘ unter den Schülern, die jedes Bit vom Rechner beim Vornamen kennenlernen wollen,
eher abgeschreckt.“Wittem, H. zitiert in: Baumann, Rüdiger (1997), S.293.
Konzeptionelle Sicht aber sehr wichtig für die Entwicklung und das Verständnis von Datenbanksystemen.
Grober Verlauf der Reihe
Einführung (1) Was sind DB / Beispiele / Bezug zu realen Welt
Grundlagen (1) DBMS / Bestandteile / ER-Modell
Relationales Modell (2-3) Andere Modelle / Tabellenschema / Datentyp / Domäne /
Redundanz
Modellierung (2-4) PhPMyAdmin / SQL – DDL – DML – (DCL) / Abfragen
Überprüfung (1) HA / Umsetzen Normalisierung / Einfache SQL-Abfragen Nach Test: Überleitung zum Datenschutz Problematisierung
Stunde
Stunde
ID TITEL AKTION ZEIT
1 Brainstorming Wo gibt es überall Datenbanken? 5
2 Einstiegsphase Was ist eine Datenbank? Bestandteile?Vorteile elektronischer DB?
5-10
Tafel
Stunde
Stunde
ID TITEL AKTION ZEIT
3 Ergebnis-findungsphase I
Was sind die Probleme an einer gemeinsamen Datenbasis?
5
4 Ergebnis-sicherungsphase I
Übertragen des Tafelanschriebs in das Heft 5
Tafel
Stunde
Stunde
ID TITEL AKTION ZEIT
5 Ergebnis-findungsphase II
Vorstellung ER-Modell 10
6 Ergebnis-sicherungsphase II
Eigene, kleine Modellierung der Schüler. 5-10
Tafel
Diskussion
Sollte, anders als im Lehrplan und wie von Baumann gefordert, die konzeptionelle Sicht stärker betont werden als die implementative
Methode?