lektorat dirk nielsen brauchen datenbanken eine struktur? wichtige daten, die vor 20 jahren noch auf...

79
Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen gespeichert. Und weil sich da ganz schön viel ansammelte, wurden daraus einige Jahre später Datenbanken. Aber was macht eine Sammlung von Tabellen zu einer Datenbank? Die Verknüpfungen zwischen diesen Tabellen! Es ist heute nicht mehr schwer, an ein wirklich leistungsfähiges Datenbanksystem zu kommen. Aber bevor dies sinnvoll eingesetzt werden kann sollte man jedoch zunächst mal einiges an Zeit und Mühe in die Planung und das Datenbank-Design investieren. Sicher, man kann auch einfach mal so loslegen und sich dann irgendwie "durchwursteln". Dass man damit Zeit und Energie spart ist allerdings ein weit verbreiteter Irrtum. Warum Datenbanken ordentlich geplant sein wollen, möchte ich im Folgenden an einem Beispiel zeigen.

Upload: eilert-wollenburg

Post on 05-Apr-2015

103 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

Brauchen Datenbanken eine Struktur?

• Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen gespeichert. Und weil sich da ganz schön viel ansammelte, wurden daraus einige Jahre später Datenbanken. Aber was macht eine Sammlung von Tabellen zu einer Datenbank? Die Verknüpfungen zwischen diesen Tabellen!

• Es ist heute nicht mehr schwer, an ein wirklich leistungsfähiges Datenbanksystem zu kommen. Aber bevor dies sinnvoll eingesetzt werden kann sollte man jedoch zunächst mal einiges an Zeit und Mühe in die Planung und das Datenbank-Design investieren. Sicher, man kann auch einfach mal so loslegen und sich dann irgendwie "durchwursteln". Dass man damit Zeit und Energie spart ist allerdings ein weit verbreiteter Irrtum. Warum Datenbanken ordentlich geplant sein wollen, möchte ich im Folgenden an einem Beispiel zeigen.

Page 2: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

• Betrachten wir zur Illustration also die Datenhaltung eines Online-Buchhändlers. Nehmen wir auch schon mal an, dass dieser Buchhändler nicht mehr so naiv ist, alles in eine einzige Tabelle schreiben zu wollen. Schließlich hat er sich einige Gedanken gemacht und präsentiert stolz drei Tabellen mit folgender Struktur.

Page 3: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

Page 4: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

Ist dieser Ansatz überzeugend? Höchstens auf den ersten Blick, auf Dauer kann das nicht funktionieren. Um nur auf einige Probleme hinzuweisen:

Bei jeder Bestellung eines bestimmten Kunden müssen alle seine Kundendaten (Name, Ort, ...) erneut gespeichert werden!

Bei jeder Bestellung muss man in der gesamten Tabelle Bestellung nachsehen, ob der Kunde bereits erfasst ist und welche "KdNr" er hat.

Wer kontrolliert, ob die "ISBN" der Tabelle Bestellung auch in Buch enthalten ist?

Kann es zu einer "BestNr" nur eine "ISBN" geben? Sicherlich möchten wir dem Kunden ermöglichen, gleichzeitig zwei verschiedene Bücher zu bestellen, dafür soll er jedoch nur eine Rechnung erhalten. Was ist dann aber das identifizierende Merkmal (der "Primärschlüssel") in der Tabelle Bestellung?

Page 5: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

Angenommen, ein Verlag ändert seinen Namen und der Eintrag in Tabelle Bestellung wird aktualisiert. Wenn dies in der Büchertabelle nicht ebenso angepasst wird, können einzelne Bücher nicht mehr zugeordnet werden!

Kundendaten können erst dann gespeichert werden wenn auch eine Bestellung vorliegt.

Schickt ein Kunde nach seiner ersten Bestellung das Buch zurück und wird deshalb der Datensatz dieser Bestellung gelöscht, sind damit auch die Kundendaten verloren.

Bei einem Tippfehler im Kundennamen erscheinen zwei scheinbar unterschiedliche Kunden mit derselben Kundennummer.

Muss der Rechnungsbetrag wirklich gespeichert werden? Schließlich kann man ihn aus den übrigen Daten berechnen. Und was ist, wenn sich die Buchpreise ändern?

Will ich wirklich zu einer konkreten PLZ jedesmal den Ortsnamen neu speichern? Dies betrifft sowohl die Daten der Verlage als auch der Kunden.

Page 6: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

• Diese Auflistung ließe sich leicht noch erweitern. Wenn man solche Mängel erst beheben will wenn die Datenbank bereits implementiert ist, hat man nicht nur viel Ärger.

Man investiert in eine solche Reparatur wesentlich mehr Zeit als in eine solide Planungsphase!

Page 7: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

Planungsphase:

Page 8: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

Logisches Lösungsmodell:

Page 9: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

FAZIT

Page 10: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

Sütő Gergely

Page 11: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

Hans Müller

Wächter

2.500 €

1 521107 5469

2 690315 4567

Managerin

Sylvia Blume

9.600 €

1 680115 1234

Direktor

Volker Klein

14.500 €

2 590315 4567

Sekretärin

Anita Bach

3.800 €

Dies sind jeweils Individuen

Page 12: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

Objekte des Wirtschaftssystems, die mit Daten beschrieben werden.

Alle Faktoren des Wirtschaftssystems(Sachen, Menschen, Ereignisse, Erscheinungen)

Die Daten, mit denen die Individuen beschrieben werden

Verbindungen zwischen den Daten

Page 13: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

Hans Müller

Wächter

2.500 €

1 521107 5469

2 690315 4567

Managerin

Sylvia Blume

9.600 €

1 680115 1234

Direktor

Volker Klein

14.500 €

2 590315 4567

Sekretärin

Anita Bach

3.800 €

Vorkommen desIndividuums

Individuumtyp

MITARBEITER

Page 14: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

Hans Müller

Wächter

2.500 €

1 521107 5469

2 690315 4567

Managerin

Sylvia Blume

9.600 €

1 680115 1234

Direktor

Volker Klein

14.500 €

2 590315 4567

Sekretärin

Anita Bach

3.800 €

Vorkommen einerEigenschaft (Wert)

NAME DES MITARBEITERS

Eigenschaftstyp

Page 15: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

ZentraleBetrieb X

2232

2232

22

22

22

Vorkommen der Verbindung

Hamburg

Kiel

Verbindungstyp

Page 16: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

System der Daten, die

• im Computer gespeichert sind

• miteinander in Verbindung stehen

• enthält auch die Datenstrukturbeschreibung und die Datenverwaltungsprozeduren

System der Daten, die

• im Computer gespeichert sind

• miteinander in Verbindung stehen

• enthält auch die Datenstrukturbeschreibung und die Datenverwaltungsprozeduren

Page 17: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

MITARBEITER<Identifizierungsnummer, Name, Vorname, Personalausweisnummer, Geschlecht, Sozialversicherungsnummer, Führerscheinnummer, ggf. Geburtsname, Gehalt, Adresse, Betriebscode, Betriebsname, Kinder, Kindername(n), Sprachcode, Sprache(n), Sprachprüfungsdatum, etc.>

Sütő Gergely

Page 18: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

IdNr PANr FNr Name Gehalt

258 AU-IV 456872 A 5236 8942 Paul Klein 3 200,00 €423 FS-III. 789258 Olga Gross 4 400,00 €456 AU-II 1586821 Beate Müller 5 100,00 €567 FS-I. 654321 B 4567 0123 Paul Klein 4 300,00 €599 B 4586 5284 A 6549 8765 Eva Baum 7 700,00 €789 FC-VI. 456123 Hans Rot 6 100,00 €

Sütő Gergely

Identifizierungsfeld: in seiner Spalte kommt jeder Wert nur einmal vor

Beschreibungsfeld: in seiner Spalte kann ein Wert mehrmals vorkommen

Page 19: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

Kriterien:• stark charakteristisch • stabil• feste Länge• möglichst kurz• benutzt möglichst wenig Zeichen

Sütő Gergely

Page 20: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

IdNr PANr FNr Name Gehalt

258 AU-IV 456872 A 5236 8942 Paul Klein 3 200,00 €423 FS-III. 789258 Olga Gross 4 400,00 €456 AU-II 1586821 Beate Müller 5 100,00 €567 FS-I. 654321 B 4567 0123 Paul Klein 4 300,00 €599 B 4586 5284 A 6549 8765 Eva Baum 7 700,00 €789 FC-VI. 456123 Hans Rot 6 100,00 €

Sütő Gergely

Innerer Identifizierer: nur innerhalb des Systems bekannt

Aussenidentifizierer: ausserhalb des Systems wird bestimmt

Page 21: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

?

da bestimmt eindeutig df d.h. df da

Paul Klein

da df

IdNr Name

258 Paul Klein423 Olga Gross456 Beate Müller567 Paul Klein599 Eva Baum789 Hans Rot

Sütő Gergely

Page 22: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

da bestimmt eindeutig dj und umgekehrt auch, d.h. da dj

da dj

IdNr PANr

258 AU-IV 456872423 FS-III. 789258456 AU-II 1586821567 FS-I. 654321599 B 4586 5284789 FC-VI. 456123

Sütő Gergely

Page 23: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

IdNr Sprachcode

258423 EN

DE

FR

456 EN

DE567 EN

FR

599 ENDE

789 DEFR

EN

da bestimmt dn nicht und dn bestimmt da nicht, d.h. dn da

da dn

Sütő Gergely

Page 24: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

dr bestimmt da, umgekehrt aber nicht, d.h. dr da

Einzeln, darf nicht

gleich sein!

da dr

IdNr Kinder_SVNr

258 123 789 456 134 256 987

423

456 369 258 147

567

599 321 654 741 258 963 147 291 847 352

789 281 739 753

Sütő Gergely

Page 25: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

IdNr PANr FNr Name B.code Betr Kinder_SVNr K.name ScSnameSprüfung258 AU-IV 456872 A 5236 8942 Paul Klein 22 Betreib 123 789 456 Paul Klein

134 256 987 Alex Klein423 FS-III. 789258 Olga Gross 22 Betrieb EN englisch 1984.06.02

DE deutsch 1990.03.29FR französisch1995.11.13

456 AU-II 1586821 Beate Müller 11 Büro 369 258 147 Alex Klein EN englisch 1992.11.02DE deutsch 1986.02.04

567 FS-I. 654321 B 4567 0123 Paul Klein 22 Betrieb EN englisch 1981.05.06FR französisch1998.11.15

599 B 4586 5284 A 6549 8765 Eva Baum 11 Betrieb 321 654 741 Anne Stein258 963 147 Oli Stein291 847 352 Edith Stein

EN englisch 1998.10.03DE deutsch 1992.04.06

789 FC-VI. 456123 Hans Rot 11 iroda 281 739 753 Klaus Rot DE deutsch 1975.02.16FR französisch1994.04.08

Was ist dasProblem?

Aus Werten einiger Felder müssen mehrere zu einer Zeile zugeordnet werden, deswegen lässt sich die Relation nicht auf eine zweidimensionale Tabelle abbilden.Sütő Gergely

Normalisieren

Page 26: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

Die Verbindung zwischen den Relationen bedeutetdie Zuordnung der Zeilen zu den einzelnen Relationen.

Der Verbindungsgrad zeigt an, wie viele Zeileneiner Relation zu einer beliebigen Zeile einer anderenRelation verbunden sein können oder sind.

Mögliche Werte:ein zu eins (1:1)ein zu mehr (1:n)mehr zu mehr (m:n)

Sütő Gergely

Page 27: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

Fnr IdNrA 5236 8942 258B 4567 0123 567A 6549 8765 599

IdNr PANr Name Betr.code258 AU-IV 456872 Paul Klein 22423 FS-III. 789258 Olga Gross 22456 AU-II 1586821 Beate Müller 11567 FS-I. 654321 Paul Klein 22599 B 4586 5284 Eva Baum 11789 FC-VI. 456123 Hans Rot 11

IdNr PANr FNr Name Bc258 AU-IV 456872 A 5236 8942 Paul Klein 22423 FS-III. 789258 Olga Gross 22456 AU-II 1586821 Beate Müller 11567 FS-I. 654321 B 4567 0123 Paul Klein 22599 B 4586 5284 A 6549 8765 Eva Baum 11789 FC-VI. 456123 Hans Rot 11

Sütő Gergely

Page 28: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

IdNr Name258 Paul Klein456 Beate Müller599 Eva Baum789 Hans Rot

IdNr Name Sc Sprache Sprüfung258 Paul Klein EN englisch 1984.06.02

DE deutsch 1990.03.29456 Beate Müller FR französisch 1995.11.13

EN englisch 1992.11.02599 Eva Baum DE deutsch 1986.02.04789 Hans Rot EN englisch 1981.05.06

Sütő Gergely

Sc Sprache Sprüfung IdNrEN englisch 1984.06.02 258DE deutsch 1990.03.29 258FR französisch 1995.11.13 456EN englisch 1992.11.02 456DE deutsch 1986.02.04 599EN englisch 1981.05.06 789

Page 29: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

IdNr K.name258 Paul Klein258 Alex Klein456 Paul Klein456 Alex Klein599 Anne Stein599 Oli Stein599 Edith Stein789 Klaus Rot

IdNr Name K.name Sc Sprache258 Paul Klein Paul Klein EN englisch

Alex Klein DE deutsch456 Beate Müller Paul Klein FR französisch

Alex Klein EN englisch599 Eva Baum Anne Stein DE deutsch

Oli SteinEdith Stein

789 Hans Rot Klaus Rot EN englisch

Sütő Gergely

Sc Sprache Sprüfung IdNrEN englisch 1984.06.02 258DE deutsch 1990.03.29 258FR französisch 1995.11.13 456EN englisch 1992.11.02 456DE deutsch 1986.02.04 599EN englisch 1981.05.06 789

Page 30: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

IdNrPANrName

Betr.code

IdNrPANrName

Betr.code

Betr.codeBetr.name

Betr.codeBetr.name

ScSpracheSc

Sprache

SprachcodeIdNr

Sprachprüfung

SprachcodeIdNr

Sprachprüfung

Kind_SVNrIdNr

Kindname

Kind_SVNrIdNr

Kindname

KinderKinder

SpracheSprache

SprachkenntnisSprachkenntnis

OrganisationOrganisation

MitarbeiterMitarbeiter FNrIdNrFNrIdNr

Führers.Führers.

Sütő Gergely

Page 31: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

Sütő Gergely

Individuum-Typ Relation Tabelle

Individuum-Vorkommen

Tupel

Paul Klein

Eigenschaft-Typ

Feld

Rekord (Zeile)

FeldName

Eigenschaft-Vorkommen

Element (Feld)Wert

Verbindungs-Typ

Verbindungs-Vorkommen

Verbindung

Menge derZeilen

Verbindungs-Beschreibung

VerbundeneRekords

Page 32: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

Sütő Gergely

Nr. Name der Eigenschaft Beru- fung

Typ, Länge

Feldname (Abkürz.)

0 1

0 2

0 3

…. …. …. 1 6

1.

2.

3.

4.

5.

Page 33: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

Identifizierer Teilidentifizierer Funktionale Abhängigkeit Gegenseitige Abhängigkeit Standardwert Kriterium Schwach charakteristische

Eigenschaft Untermatrix Berufung Mnemonic

Sütő Gergely

Page 34: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

Reihe: IndividuumSpalte: EigenschaftZelle: ZusammenhangIn eine Spalte kommt immer nur einIdentifizierer. Identifizierer kann sein:• einfach: ein Stern • zusammengesetzt: zwei oder mehr Kreise

In einer Spalte darf gleichzeitig kein Identifizierer(Stern) und Teilidentifizierer (Kreis) stehen!

Sütő Gergely

Page 35: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

Nr. Name der Eigenschaft Abkürz. 1 2 3 4 5 6 7 8

1. Identifizierer ID

2. Personalausweisnummer PA

3. Sozialversicherungsnr. SV

4. Führerscheinnummer FS

5. Name des Mitarbeiters MN

6. Geschlecht des Mitarb. GS

7. Geburtsname des Mitarb. GN

8. Arbeitslohn des Mitarb. ML

9. Adresse des Mitarbeiters ADR

10. Betriebscode BC

11. Betriebsname BN

12. SV-Nr. des Kindes SVK

13. Name des Kindes KN

14. Sprachcode SC

15. Sprachbezeichnung SB

16. Datum der Sprachprüfung SD

Bezeichnungen:

Identifizierer Teilidentifizierer

Funktionale Abhängigk. Gegenseitige Abhängigk.

Kriterium

Schwach charakteristisch

Sütő Gergely

STARKE LOGISCHEREDUNDANZ

BEDINGTEABHÄNGIGKEIT

Page 36: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

Elementare Daten

• Kleinste Daten mit selbständiger Bedeutung und selbständigen Namen, die nicht weiter zerlegt werden können, sind der Datensatz oder Datenfeld

• Elementare Daten sind nach ihrem Typ:– (ganze und reelle) Zahlen

– Charakter

– Logische Werte

– Zeiger

– Aufgezählte Werte

Page 37: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

Elementare Datentypen

• Ganze Zahlen: die Menge der ganzen Zahlen

• Reelle Zahlen: rationelle Zahlen in Binärzahlensystem

• Logische Werte: Wahr oder Falsch

• Charakter: Werte aus der ASCII -Zeichencodetabelle

Page 38: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

Elementare Datentypen

• Zeiger: (pointer) Datentyp, der nicht Daten beinhaltet, sondern ihre Adresse im (Haupt-) Speicher

• Aufgezählter Typ: Datentyp, der durch Aufzählung seiner mögliche Werte angegeben wird. Die möglichen Werte (Konstanten) sind beliebige Datentypen.

Page 39: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

Elementare Datenstrukturen

• Sequenz / Feld / Block: (array) Folge von Daten, deren Anzahl bestimmt ist und jedes Element durch einen Index (Nummer) erreichbar ist

• Tupel: (record) Sammlung von verschiedenen Daten(typen), die irgendwie zusammenhängen

• Datei: (file) Datenbestand, geordnete Menge irgendwie zusammenhängender Informationen

Page 40: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

Abstrakte Datenstrukturen

• Ihr Ziel ist die Abbildung reeller Datenstrukturen auf eine logische Struktur, die unter gegebenen Umständen und gegebenen Mitteln physisch zu verwirklichen ist

• In der Praxis unterschieden sich die logischen und die physischen Datenstrukturen voneinander

• Der physische Datenbestand ist die Menge der gespeicherten Daten, die eigene Namen hat

Page 41: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

Abstrakte Datenstrukturen

• Verlauf der Abbildung:– logischer Datensatz physische Datenfeld

– logischer Tupel physischer Tupel

– in der logischen Datenstruktur gespeicherte Daten physische Datenbestand

• Strukturierung physischer Bestände: seriell direkt zufällig indiziert sequenziell

Page 42: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

Abstrakte Datenstrukturen

• Block: Folge von Daten, deren Anzahl bestimmt ist und jedes Element durch einen Index (Nummer) erreichbar ist

• Charakterkette: unbestimmte (veränderbare) Anzahl von Charakteren

• Stapel: (stack) Datenstruktur, wo eine Operation nur mit dem letzten Element durchgeführt werden kann und ein neues Element nur nach dem letzten Element eingefügt werden kann (LIFO)

Page 43: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

• Elemente können reingetan und rausgenommen werden

• Nur das letzte Element ist erreichbar

• Leerheit ist abfragbar

Stapel

amla#

Oberteil

Unterteil

Page 44: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

Abstrakte Datenstrukturen

• Schlange: (queue) Reihenfolge von Daten, bei der an einem Ende Daten angefügt und am anderen Ende weggenommen werden können (FIFO)

• Liste: Datenstruktur, die sagt, welches Element - logisch gesehen - dem anderen folgt.

• Tupel: zusammengesetzte Datenstruktur, die aus Feldern besteht, die eigenen Namen haben und durch diesen Namen erreichbar sind

Page 45: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

Schlange

• Elemente können reingetan und rausgenommen werden

• Nur das erste Element ist erreichbar

• Leerheit ist abfragbar

Ende

Anfang

a l m a #

Page 46: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

Liste

• Elemente können reingetan und rausgenommen werden

• Über die Zeigerkette ist jedes beliebiges Element erreichbar• Leerheit ist abfragbar

Kopf 2

1 Apfel NIL

2 Birne 4

3 Banane 1 4 Kiwi 3

Page 47: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

Tupel (record)

• Innerhalb eines Tupels ist jedes Feld erreichbar – sonst kann nur der Tupel erreicht werden

• Die elementaren Datentypen der Felder und ihre Eingangsformate sind veränderbar

• Abfrage der Leerheit ist sinnlos

• Grösse ist nur indirekt veränderbar, falls die Grösse der Felder geändert wird

Page 48: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

Tupel

Page 49: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

Datei

• Nach dem Öffnen ist in ihr jedes beliebige Element erreichbar – physisch ist sie aber nur als cluster lesbar

• In der Datei gespeicherte Menge kann aus Kombination von beliebigen elementaren Datentypen bestehen

• Die Abfrage der Leerheit ist sinnlos

• Die Grösse ist von den gespeicherten Daten abhängig

Page 50: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

• Besteht aus gleichen Datentypen

• Nimmt auf dem Hintergrundspeicher Platz

• Maximale Grösse ist vom freien Speicherplatz abhängig

• Ihre Elemente sind nur nach der Aufschreib-Reihenfolge erreichbar

Sequentielle Datei

Page 51: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

Indizierte Datei

• Besteht aus gleichen Datentypen

• Nimmt auf dem Hintergrundspeicher Platz

• Maximale Grösse ist vom freien Speicherplatz abhängig

• Ihre Elemente sind beliebig erreichbar

Page 52: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

• Besteht aus verschiedenen Datentypen

• Name und Typ der Elemente (Felder) müssen angegeben werden

• Die Tupel-Elemente sind auch einzeln erreichbar

• Ein Tupel ist eine Einheit, aus der Block, Stapel, Schlange oder Liste gebaut werden können

Tupel-Datei

Page 53: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

Datei

Wie kann eine Datei erstellt werden?– Mit dem entsprechenden Programm

– Durch den entsprechenden Algorithmus

Page 54: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

Zusammengesetzte Datenstrukturen

Aus abstrakten Datenstrukturen vom gleichen Typ können zusammengesetzte Datenbestände aufgebaut werden:

– hierarchische Strukturen (Bäume)

– relationelle Strukturen (Tabellen)

– Netzstrukturen (Graphen, Netzwerke)

Page 55: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

Operationen für zusammen-gesetzten Datenstrukturen

• Benutzen eines Elements:erstes, letztes, nächstes, beliebiges

• Einfügen eines neuen Elements:am Anfang, am Ende,an einer beliebigen Stelle

• Entfernen eines Elements:erstes, letztes, beliebiges

• Prüfung der Existenz (leer oder doppelt?)

Page 56: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

• Für im Block gespeicherten Daten müssen festgelegte Speicherplätze reserviert werden, die entweder zu klein oder zu groß sein können

• In der verketteten Datenstruktur werden die Daten einzeln gespeichert und dadurch wird nur genau soviel Speicherplatz benutzt, wie nötig ist

Verkettete Stapel, Schlange, Liste

Page 57: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

Sütő Gergely

SQLStructuredQueryLanguage

Die relationelle Datenbankverwaltungssprache

Page 58: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

Die Charakteristik der SQL Die Charakteristik der SQL

• Normalisiert, transportierbar (zwischen Systemen und Computern)

• Selbstständige Sprache, aber sie kann in andere Programmiersprachen eingefügt werden

Page 59: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

Allgemeine Datentypen

• SMALLINT kurze ganze Zahl (2 byte)-32 767 < x < 32 768

• INTEGER ganze Zahl (4 byte)-2 147 483 647 < x < 2 147 483 648

• DECIMAL(e,t) festpünktliche Zahl• FLOAT schwebepünktliche Zahl• CHAR(n) Charakterkette (Text) n 255 byte• DATE Datum• LOGICAL Logik (ja/nein)• MONEY Währung• SERIAL AutoWert• VARCHAR(n) langer Text n>255

Page 60: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

Datenbankstrukturbehandlung I.

• Datenbank erstellen: CREATE DATABASE Datenbankname;

• Datenbank öffnen:

{START} DATABASE Datenbankname;• Datenbank schliessen:

CLOSE DATABASE;• Datenbank löschen:

DROP DATABASE Datenbankname;

Page 61: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

Datenbankstrukturbehandlung II. (Tabellen)

• Neue Tabelle erstellen:CREATE TABLE Tabellenname (Spalte1{, Spalte2, …});

• Neue Spalte einfügen: ALTER TABLE Tabellenname ADD (Spalte1{, Spalte2, …});

• Tabelle löschen:DROP TABLE Tabellenname;

Spaltei SpaltennameiDatentypi{NOT NULL}

Page 62: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

Dateninstandhaltung(Diese Operationen beziehen sich auf die Reihen!)

• Einfügen:INSERT INTO Tabellenname {(Spaltenliste)}

VALUES(Konstant|NULL);• Ändern:

UPDATE TabellennameSET Spaltenname=Ausdruck|NULL {WHERE Bedingung};

• Löschen:DELETE FROM Tabellenname

{WHERE Bedingung};

Page 63: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

Abfrage (die SELECT Anweisung)

Auswählen von in der Anweisung definierten Kriterien aus einer oder mehreren Tabellen

Page 64: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

Abfrage Syntax

• SELECT {ALL|DISTINCTROW} *| Ausdruckliste FROM Tabellenliste {WHERE Bedingung}{GROUP BY Spaltenliste}{HAVING Gruppen_Bedingung}{ORDER BY Schlüssel_Ausdruck};

Page 65: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

Abfrage weitere Komponente

• Tabellen Verknüpfen (JOIN)– Starke Verbindung: INNER JOIN…ON– „Lockere” Verbindung LEFT|RIGHT JOIN

• Vereinigen (UNION)

Page 66: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

Datenschutz• Zugriffsrechte übergeben:

GRANT Liste der Rechte {ON Tabellenname} TO PUBLIC|Benutzerliste {WITH GRANT OPTION};

– Datenbankrechte:» CONNECT» RESOURCE» DBA

• Zugriffsrechte aufheben:REVOKE Liste der Rechte {ON Tabellenname}

TO PUBLIC|Benutzerliste;

Page 67: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

• Anfangen einer Transaktion:BEGIN WORK;

• Gültigmachen einer Transaktion:COMMIT WORK;

• Ungültigmachen einer Transaktion:ROLLBACK WORK;

• Wiederherstellen einer Datenbank:ROLLFORWARD DATABASE;

Page 68: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

1. Listen wir die Tabelle WAREN auf

SELECT * FROM WAREN;2. Listen wir Name, Code und Preis aus der Tabelle WAREN

SELECT NAME, CODE, PREIS FROM WAREN;

Ergänzen wir die letzte Aufgabe so, daß wir nur die Waren auslisten, die mehr als 100 € kosten

SELECT NAME, CODE, PREISFROM WARENWHERE PREIS>100;

0-30-3

Page 69: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

3. Setzen wir die letzte Aufgabe so fort, daß wir die Waren nach Namen geordnet auslisten

SELECT NAME, CODE, PREISFROM WARENWHERE PREIS>100ORDER BY NAME;

4. In der nächsten Aufgabe listen wir die Waren so auf, daß neben dem Code auch Bezeichnung, Geschäftscode, Steuerschlüssel und Preis der Ware erscheint.Dazu müssen wir die Tabellen WAREN und BESTAND verknüpfen!

0-30-3

Page 70: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

99

WARENWAREN

BESTANDBESTAND

WAREN

ON WAREN.CODE = BESTAND.CODE

INNER JOIN BESTAND

1. WAREN Tabelle2. verknüpft mit

der TabelleBESTAND

3. in den Zeilen,wo die Codes in den beidenTabellen über-einstimmen

Page 71: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

Die vollständige SQL Anweisung der 4. Aufgabe:

SELECT WAREN.CODE,NAME,GCODE,MWST,PREISFROM WAREN INNER JOIN BESTAND ON WAREN.CODE = BESTAND.CODE;

4-54-5

Page 72: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

5. Ergänzen wir die letzte Aufgabe so, daß wir auch den Bestandswert berechnen und die Liste mit der Kopfzeile „Wert des Bestandes” versehen

SELECT WAREN.CODE,NAME,GCODE,MWST, PREIS,BSTD, PREIS*BSTD AS [Wert des Bestandes]

FROM WAREN INNER JOIN BESTAND

ON WAREN.CODE = BESTAND.CODE;Den Text „Wert des Bestandes” müssen wir in [ ] schreiben, da er

Leerzeichen enthält!

4-54-5

Page 73: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

6. Ergänzen wir die letzte Aufgabe damit, daß wir anstelle des Geschäftscodes die Adresse des Geschäfts anzeigen!

Zur Lösung der Aufgabe müssen wir zur letzten Stuktur die Tabelle GESCHÄFT verknüpfen so, daß die Tabelle BESTAND mehrmals vorkommt, d.h. wir bilden eine Netzstruktur in SQL.

99

Page 74: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

ON GESCHÄFT.GCODE = BESTAND.GCODE99

GESCHÄFTGESCHÄFT WARENWAREN

BESTANDBESTAND

(WARENGESCHÄFT INNER JOIN

ON WAREN.CODE = BESTAND.CODE)

INNER JOIN BESTAND

Page 75: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

Die vollständige Lösung der Aufgabe 6. in SQL:

SELECT WAREN.CODE, NAME AS [Name der Ware], GADR AS [Adresse des Geschäfts],PREIS*BSTD AS [Wert des Bestandes]

FROM GESCHÄFT INNER JOIN (WAREN INNER JOIN BESTAND ON WAREN.CODE = BESTAND.CODE) ON GESCHÄFT.GCODE = BESTAND.GCODE;

99

Page 76: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

7. Summieren wir die Bestandswerte der Waren

SELECT WAREN.CODE, First(NAME) AS Bezeichnung, Sum(PREIS*BSTD) AS BestandswertFROM WAREN INNER JOIN BESTAND ON WAREN.CODE = BESTAND.CODEGROUP BY WAREN.CODE;

66

Page 77: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

8. Ergänzen wir die letzte Aufgabe so, daß wir nur die Daten anzeigen, wo der Bestandswert über 2.000 € liegt!

SELECT WAREN.CODE, First(WAREN.NAME) AS [First:NAME], Sum([PREIS]*[BSTD]) AS BestandswertFROM WAREN INNER JOIN BESTAND ON WAREN.CODE = BESTAND.CODEGROUP BY BESTAND.CODEHAVING (((Sum([PREIS]*[BSTD]))>2000));

77

Page 78: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

Aus der letzten Lösung können wir einiges entfernen:

SELECT WAREN.CODE, First(NAME) AS Bezeichnung, Sum(PREIS*BSTD) AS BestandswertFROM WAREN INNER JOIN BESTAND ON WAREN.CODE = BESTAND.CODEGROUP BY WAREN.CODEHAVING Sum(PREIS*BSTD)>2000;

77

Page 79: Lektorat Dirk Nielsen Brauchen Datenbanken eine Struktur? Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen

Lektorat Dirk Nielsen

ENDE