420 likes | 709 Views
Johannes Gutenberg Universität Mainz Fachbereich 08: Informatik Seminar: Didaktik der Informatik, SS09 Dozenten: Prof. Dr. Herbert Göttler mit OStR Martin Mattheis Referent: Christian Herres. Datenbanken. Aufbau, Theorie und Anwendung (im Unterricht). 26/27.06.2009. Verlaufsplan.
E N D
Johannes Gutenberg Universität Mainz Fachbereich 08: Informatik Seminar: Didaktik der Informatik, SS09 Dozenten: Prof. Dr. Herbert Göttler mit OStR Martin Mattheis Referent: Christian Herres Datenbanken Aufbau, Theorie und Anwendung (im Unterricht) 26/27.06.2009
Verlaufsplan • Einordnung in den Lehrplan • Theoretische Einführung • Aufbau relationaler Datenbanken • Structured Query Language
Einordnung in den Lehrplan • Sensibilisierung (Wo gibt es DB ?) • Unterschiede: elektronisch nicht elektr. • Aufbau und Darstellung von DB • Einführung des relationalen Modelles • Einführung von Schlüsselattributen • Normalisierung • Structured Query Language (SQL) • Modellierung eigener Datenbanken
Theoretische Einführung • Wo gibt es DB? • Was ist eine DB? • Das Database Management System (DBMS) • Bestandteile von Datenbanksystemen • 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 Hardware Ausgabe- Geräte Speicher Rechner Nutzer Daten Tools OS DBMS 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 i N Baum hat Ast i M hat auf/hat N N Blätter Vögel
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 Spalte / Attribut Primärschlüssel Metadaten Zeile / Entität Feld / Datum • 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 M N Kunde leiht Buch
Relationales Modell • Beziehungen zwischen Daten
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. Redundanz ist hier systemimmanent
Erste Normalform 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. funktionale Abhängigkeit
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 • CRATETABLEBuch ( BUCH_ID INTEGERPRIMARYKEY, BUCHNAME TEXT ); • ALTER TABLE Buch ADD ERSCHIENEN TEXT; • DROPTABLE Buch;
SQL - DCL • GRANT SELECT ON Buch TOherres; • Berechtigungen für Nutzer in der DML • DENY SELECT ON Buch TOherres;
SQL – DML: INSERT • SELECT / INSERT / DELETE / UPDATE • INSERTINTO Buch VALUES (1‚‘Datenbanken‘); • INSERTINTO Buch SET ID_BUCH=1, BUCHNAME=‘Datenbanken‘; wirft Fehler wenn nicht eindeutig Besser den Zusatz „autoincrement“ bei Erstellung der Tabelle geben
SQL – DML: UPDATE / DELETE UPDATE Buch SET BUCHNAME=‘Fahrer‘ WHERE ID_BUCH=’2’; DELETE FROM Buch WHERE ID_BUCH=’4’;
SQL – DML: SELECT SELECT FROM Buch WHERE NAME=’Muster’;
SQL – DML: AND SELECT FROM Buch WHERE NAME=’Muster’ AND WERT> ’12’; ’
SQL – DML: ORDER BY SELECT FROM Buch WHERE NAME=’Muster’ ORDER BY WERT ; ’ ASC / DESC Standard ist ASC (aufsteigend)
SQL – DML: (equi) JOIN 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
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 Tafel
Stunde Tafel
Stunde Tafel
Diskussion Sollte, anders als im Lehrplan und wie von Baumann gefordert, die konzeptionelle Sicht stärker betont werden als die implementative Methode?