DATENBANKEN Aufbau, Theorie und Anwendung (im Unterricht) Johannes Gutenberg Universität Mainz...

Post on 06-Apr-2015

115 views 0 download

Transcript of DATENBANKEN Aufbau, Theorie und Anwendung (im Unterricht) Johannes Gutenberg Universität Mainz...

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?