2.4 Datenbanken

Werbung
2.4 Datenbanken
2.4.1
2.4.2
2.4.3
2.4.4
2.4.5
2.4.6
Datenbanken in der Medienbranche. . . . . . . . . . . . . . . . . .
Datenerfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Datenbankentwurf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SQL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Datenbankmanagement. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
154
155
157
166
169
171
2.4.1
Mediendatenbanken
s Atomic View
s CatDV
s Culumus
s Bento
s Expression Media
s Filemaker
s FotoStation
s Microsoft Access
s MySQL
s Portfolio
s PreStore Archive
s QPict
Diese Digital-AssetManagementsysteme
(DAM) werden in der
Medienindustrie genutzt, um Daten systematisch zu erfassen,
zu verteilen, zu finden
und zu archivieren.
Siehe auch Seite
170.
Datenbanken bei
Amazon
™ Bilddatenbank
š
›
œ

mit gescannten
Buchseiten (Search
Inside)
Kundendaten, z.B.
Name, Empfehlungen
Buchinformationen, z.B. Titel,
Preis, Rezensionen
Suchvorschläge
Shopsystem, z.B.
Warenkorb, Merkzettel
Abb.: Amazon
154
Datenbanken in der Medienbranche
Wir merken als Anwender normalerweise nichts davon, aber ohne Datenbanken wäre die heutige Medienbranche unvorstellbar. Datenbanken sind
der wertvollste Schatz unserer globalisierten und vernetzten Medienwelt.
Nicht Wenige sind durch Datenbanken
zu Milliardären geworden – FacebookChef Mark Zuckerberg ist noch keine
dreißig Jahre alt!
Eine Datenbank hat die Aufgabe, eine
große Datenmengen in einer strukturierten Form widerspruchsfrei zu speichern und vor Verlust und unbefugtem
Zugriff zu schützen.
Ob Print- oder Digitalmedien: Datenbanken finden sich überall. Einige
Anwendungsbeispiele sind:
s Auftrags- und Kundendatenbanken
s Digitale Medienarchive
s Print-Workflow von der Auftragserfassung bis zur Ausgabe
s Personalisiertes Drucken
s Shopsysteme
s Suchmaschinen
s Content-Management-Systeme
s Lern-Management-Systeme wie
Moodle
s Soziale Netzwerke wie Facebook
s Enzyklopädien wie Wikipedia
Nun sagen Sie vielleicht: Ich bin Mediengestalter/in – Datenbanken ist Thema
der Informatiker.
In der Tat erfordert der Umgang mit
Datenbank und erst recht deren Entwurf
fundierte Kenntnisse auf diesem Gebiet.
Dennoch ist die heutige Medienbranche
so stark von der Informatik abhängig,
dass alle Beteiligten zumindest eine gemeinsame Sprache sprechen müssen.
Dies bedeutet, dass Sie als Mediengestalter/in ein Grundverständnis von
Datenbanken benötigen. Dieses wollen
wir Ihnen in dieser stark vereinfachten
Einführung vermitteln.
Konkrete Anwendungen von Datenbanken finden Sie für den Printbereich
in Kapitel 8.3 über Personalisierung und
für den Digitalbereich in den Kapiteln
10.5 über dynamische Webseiten und
10.7 über Content-Management-Systeme.
2.4.2
Datenerfassung
2.4.2.1
Karteikarten
Datenbanken
Wie hat eine Datenbank ausgesehen,
bevor es Computer gab? Es waren
Kästen oder Schubfächer gefüllt mit
Karteikarten.
A–E
F–L
M–R
S –T
U–Z
Kd.-Nr. 123
Fritz Adler
Hauptstraße 23
88214 Ravensburg
Tel. (0751) 123456
E-Mail [email protected]
Das Beispiel zeigt die Karteikarte einer
Kundenkartei. Zur eindeutigen (konsistenten) Kennzeichnung der Kunden
dient die Kundennummer (Kd.-Nr.).
Da für jeden Kunden genau eine Karte
angelegt wird, ist gewährleistet, dass
Daten nicht doppelt (redundanzfrei)
erfasst werden (siehe auch Seite 158).
Durch das alphabetische Sortieren
der Karten nach Nachnamen wird ein
gezielter Zugriff auf die Kundendaten
möglich.
2.4.2.2
Formulare
Am Prinzip der Karteikarte hat sich
nichts geändert, nur dass die Eingabe
elektronisch erfolgt: Formulare ermöglichen ein anwenderfreundliches „Einpflegen“ von Daten in eine Datenbank,
ohne dass hierzu Kenntnisse über die
Struktur der Daten benötigt werden.
Der wesentliche Vorteil von Formularen besteht jedoch darin, dass bereits
bei der Datenerfassung eine Überprüfung auf Vollständigkeit und Korrektheit der Daten erfolgen kann. Heutige
Datenbanksysteme erkennen beispielsweise:
s Fehlende Eingaben
s Falsche Eingaben, z. B. vierstellige
Postleitzahlen oder E-Mail-Adressen
ohne @-Zeichen
s Rechtschreibfehler, z. B. fehlende
Großschreibung
Die Systeme sind so programmiert,
dass sie einen Datensatz erst dann
akzeptieren, wenn er vollständig und,
soweit durch eine Software überprüfbar, fehlerfrei ist. Das System stößt an
seine Grenzen, wenn der Anwender
(absichtlich oder versehentlich) falsche
Eingaben macht, die für die Software
nicht als Fehler erkennbar sind, z. B.
falsche Namen.
Ein weiterer Vorteil von Formularen
ist, dass der Anwender nicht alle für die
Datenbank benötigten Daten eingeben
muss: Im Beispiel wird die für die Datenbank zur Identifikation des Kunden
notwendige Kundennummer nicht
durch den Anwender erfasst, sondern
vom System einmalig und eindeutig
vergeben. Würde zufällig ein zweiter
„Fritz Adler“ im selben Haus wohnen,
wäre er dennoch eindeutig identifizierbar, weil er eine andere Kundennummer zugewiesen bekommt. Eine
Verwechslung ist somit ausgeschlossen, es sei denn, der Postbote liefert an
der falschen Tür ab …
Formular (OpenOffice)
Formulare ermöglichen eine übersichtliche und strukturierte
Eingabe von Daten.
155
Band II – Seite 854
10.5.6 Datenbankzugriff
Ein dritter Aspekt, der die Datenerfassung über Formulare unersetzbar
macht, ist die weltweite Verfügbarkeit:
Über Webformulare lassen sich Daten
mit jedem Computer erfassen, der mit
dem Internet verbunden ist. Auf diese
Weise ist es möglich geworden, ein
Hotel in Timbuktu oder ein Auto auf
Honululu zu buchen. (Diese Orte gibt es
wirklich!)
Nun stellt sich die Frage, was mit all‘
den eingegebenen Daten geschieht?
2.4.2.3
Tabellen
Tabellen stellen das wichtigste Hilfsmittel zur strukturierten Darstellung
von Daten dar. Die im Rahmen dieses
Kapitels besprochenen relationalen
Datenbanken verwenden ausschließlich
Tabellen zur Strukturierung der Daten.
Tabellen werden in der Datenbanktheorie als Relation bezeichnet.
Bei einer Kundendatenbank in tabellarischer Darstellung entspricht jede
Karteikarte bzw. Formularseite einer
Tabellenzeile. Tabellen ermöglichen
also eine kompakte Darstellung großer
Datenmengen. Weitere Vorteile der
tabellarischen Darstellung sind:
s Tabellen lassen sich nach beliebigen
Attributen sortieren, z. B. nach dem
Wohnort.
s Tabellen können nach vorgegebenen Kriterien gefiltert werden, z. B.
könnten Sie für eine lokale Werbeaktion alle Kunden aus Freiburg
benötigen.
s Tabellen können miteinander in
Beziehung gesetzt werden. Beispiel:
Eine Beziehung zwischen einer
Kunden- und einer Auftragsdatenbank besteht darin, dass zwischen
dem Kunden und dem Auftrag eine
eindeutige Beziehung besteht: Zu
156
jedem Auftrag gehört genau ein
Kunde. Durch Beziehungen lassen
sich mehrere Tabellen miteinander
verbinden.
2.4.2.4
Datenbanksoftware
Um den Umgang mit Datenbanken
zu üben, brauchen Sie eine Software.
Während die meisten kommerziellen
Datenbanksysteme sehr teuer sind, gibt
es alternativ auch einige Produkte, die
entweder kostenlos oder als Bestandteil
eines Office-Pakets zumindest bezahlbar sind:
s Microsoft Access ist ein weit verbreitetes Datenbanksystem. Es ist Bestandteil des Microsoft-Office-Pakets,
für das es kostengünstige Schülerund Studentenversionen gibt. Zur
Erstellung von Tabellen, Formularen
und Abfragen stellt Access zahlreiche
Assistenten zur Verfügung, die den
Einstieg in die komplexe Materie
erleichtern.
s OpenOffice Base ist ein kostenloses
Datenbanksystem, das Bestandteil des OpenOffice-Pakets ist. Die
Bedienung und Leistungsfähigkeit
kommt allerdings an Access nicht
heran. OpenOffice steht unter
http://de.openoffice.org für alle
Betriebssysteme zur Verfügung.
s Für webbasierte Datenbankanwendungen empfiehlt sich die Installation des Komplettpakets XAMPP,
das neben einem Apache-Webserver
auch einen MySQL-Datenbankserver
zur Verfügung stellt. Zur Verwaltung
der Datenbanken enthält das Paket
die Weboberfläche phpMyAdmin.
Für Anfänger empfiehlt sich diese
Anwendung eher nicht. Weitere Informationen hierzu finden Sie in Kapitel
10.5.6.
2.4.3
Datenbankentwurf
2.4.3.1
Grundbegriffe
Nach den einführenden Betrachtungen
über Datenbanken müssen einige
Begriffe definiert werden, die für Ihre
Arbeit mit Datenbanken unerlässlich
sind.
Datenbanksystem
Ein Datenbanksystem (DBS) dient der
Erstellung, Pflege und Verwaltung von
einer oder mehreren Datenbanken.
Beispiele für kostenlose Datenbanksysteme sind OpenOffice Base oder
MySQL.
Datenbank
Bei einer Datenbank (DB) handelt es
sich um eine strukturierte Sammlung
von Daten, die in einem sachlogischen
Zusammenhang stehen.
Relationale Datenbank
Relationale Datenbanken sind die wichtigste Untergruppe der Datenbanken.
Sie setzen sich aus einer oder mehreren
Tabellen zusammen, die auch als Relationen bezeichnet werden.
Neben relationalen gibt es beispielsweise hierarchische oder objektorientierte Datenbanken, auf die im Rahmen
dieses Kapitels jedoch nicht eingegangen wird.
Datenbanken
Tabelle (Relation)
Tabellen stellen die „Bausteine“ relationaler Datenbanken dar. Eine relationale
Datenbank besteht aus mindestens
einer, meistens aus mehreren Tabellen, die über Schlüssel miteinander in
Beziehung stehen. Jede Tabelle besteht
ihrerseits aus Datensätzen.
Datensatz (Tupel)
Die Zeilen einer Tabelle werden als
Datensätze oder Tupel bezeichnet. Ein
Datensatz besteht aus mehreren Datenfeldern, z. B. Kundennummer, Nachname, Vorname, Anschrift, Telefonnummer
und E-Mail-Adresse. Jeder Datensatz
muss über einen so genannten Schlüssel, z. B. die Kundennummer, eindeutig
identifizierbar sein.
Mit Hilfe einer Karteikarte bzw. mittels Formular wird jeweils ein Datensatz
beschrieben.
Attribute
Die einzelnen Zellen einer Tabelle
werden als Datenfelder bezeichnet.
Gleichartige Datenfelder, z. B. Nachnamen oder E-Mail-Adressen, sind
spaltenweise angeordnet und werden
in der Theorie Attribute genannt.
Jedes Attribut wird durch einen
Feldnamen, z. B. „Nname“ oder „Mail“,
bezeichnet.
Grundbegriffe
Relationale Datenbanken bestehen aus
einer oder mehreren
Tabellen.
Tabelle (Relation)
Datenfeld
Kundendaten
Kd-Nr Nname
Vname
Strasse
Plz
0001
Adler
Fritz
Hauptstr. 23
88214 Ravensburg (0751)123456 [email protected]
Ort
Tel
Mail
0002
Maier
Wolfgang Gartenstr. 15
77933 Lahr
(07821)223344
[email protected]
0003
Franz
Justus
Holzweg 3
79576 Weil/Rhein
(07621)114488
[email protected]
0004
Bauer
Paul
Hauptstr. 5
77960 Seelbach
(07823)876543
[email protected]
Attribute
Datensatz
(Tupel)
(Primär-)Schlüssel
157
Band II – Seite 466
8.5.1 XML-Reisekatalog
Datentypen
Auswahl wichtiger
Datentypen:
s Ganze Zahlen
(INTEGER,
SMALLINT)
s Dezimalzahlen
(NUMERIC, DECIMAL, FLOAT, REAL,
DOUBLE)
s Einzelne Zeichen
(CHAR)
s Text (VARCHAR,
LONGVARCHAR)
s Ja/Nein-Entscheidung (BOOLEAN)
s Datum (DATE)
s Zeit (TIME)
s Binäre Daten
(BINARY) z. B. für
Bilder
158
Datentyp
Jeder Spalte (Attribut) müssen Sie
einen bestimmten Datentyp zuweisen.
Die wichtigsten Datentypen sind:
s Ganze Zahlen (INTEGER)
s Dezimalzahlen (FLOAT, DECIMAL)
s Zeichen (CHAR)
s Text (VARCHAR)
s Ja/Nein (BOOLEAN)
s Datum (DATE)
s Uhrzeit (TIME)
s Binäre Daten (BINARY)
Warum ist diese Unterscheidung wichtig? Erstens entscheidet der Datentyp
über den benötigten Speicherplatz und
damit letztlich auch über die Performance der Datenbank. Zweitens ist die
Festlegung des Datentyps zur weiteren
Verarbeitung der Daten erforderlich. So
kann mit Zahlen gerechnet werden, z.B.
Menge mal Einzelpreis gleich Endpreis.
Aus Texten lassen sich beispielsweise
E-Mails generieren, während binäre Datentypen z.B. Bilder speichern können.
Schlüssel
Ein wesentliches Merkmal einer
Datenbank ist, dass jeder Datensatz
eindeutig identifizierbar sein muss.
Für diesen Zweck wird in jeder Tabelle
(mindestens) ein Schlüssel benötigt:
In der Kundendatenbank wurde die
Kundennummer als Schlüssel definiert.
Sie erkennen dies am kleinen Schlüsselsymbol ™links vom Feldnamen. Über
einen Schlüssel wird der Zugriff auf
Datensätze beschleunigt. Sein Wert wird
vom System üblicherweise automatisch
vergeben (Auto-Wert) š, so dass doppelte Werte nicht vorkommen können.
Weiterhin ermöglichen Schlüssel die
Verknüpfung von Tabellen miteinander.
Ein Schlüssel, der zur Identifikation
der Datensätze der eigenen Tabelle
dient, heißt Primärschlüssel. Wird dieser Schlüssel in einer Tabelle verwendet, die einen eigenen Primärschlüssel
hat, spricht man vom Fremdschlüssel.
2.4.3.2
Forderungen an den
Datenbankentwurf
Am Beispiel der Kundendatenbank
lassen sich die wichtigsten Kriterien für
den Entwurf von Datenbanken ablesen:
Datenkonsistenz
Jeder Datensatz muss eindeutig identifizierbar (konsistent) sein. Dies wird
dadurch erreicht, dass die als Primärschlüssel bezeichnete (Kunden-)Nummer einmalig vergeben wird. Sie wird
auch dann nicht erneut vergeben, wenn
der Datensatz gelöscht wird.
Konsistente Datensätze sind also
gleich einem Fingerabdruck immer eindeutig unterscheidbar, selbst wenn der
Fall eintritt, dass sich zwei Menschen
mit demselben Namen eine Wohnung
und einen Telefonanschluss teilen.
Datenbanken
Redundanzfreiheit
Werden sämtliche Daten nur ein
einziges Mal erfasst und gespeichert,
dann sind sie redundanzfrei. Dies spart
Speicherplatz und verhindert Probleme
bei späteren Änderungen.
Nehmen Sie an, dass ein Kunde im
Laufe der Zeit mehrere Bestellungen
tätigt. Ohne Kundennummer müssten
bei jeder Bestellung Name und Anschrift erneut und damit redundant
erfasst werden. Noch problematischer
wäre, wenn sich nach einiger Zeit die
Anschrift des Kunden ändert. Um die
Daten konsistent zu halten, müsste die
Anschrift bei sämtlichen Bestellungen
nachträglich geändert werden.
Sie erkennen, dass die Kundennummer als Schlüssel die mehrfache Eingabe der Kundendaten unnötig macht,
da zu jeder Bestellung lediglich die
Kundennummer notiert werden muss.
Im Falle der geänderten Anschrift muss
diese Änderung in der Kundendatenbank nur an einer Stelle vorgenommen
werden, die Kundennummer selbst
bleibt unverändert.
Weitere Forderungen
s Der Nutzer braucht sich nicht um die
Organisation und Verwaltung der Daten zu kümmern. Die Reihenfolge der
Datenerfassung spielt keine Rolle.
s Die Daten einer Datenbank müssen
vor Verlust sicher sein (Datensicherheit). Um diese Forderung zu
erfüllen, müssen geeignete BackupStrategien zum Einsatz kommen.
s Ein heikles Thema ist der Datenschutz
vor unerlaubtem Zugriff und vor
Manipulation, insbesondere wenn
es sich um personenbezogene Daten
handelt. Facebook lässt grüßen!
s Mehrere Nutzer müssen gleichzeitig
auf eine Datenbank zugreifen können
(Multiuser-DB).
2.4.3.3
Normalisierung
Gemäß letztem Abschnitt lauten die
Hauptforderungen an Datenbanken:
s Datenkonsistenz
s Redundanzfreiheit
Um diese Ziele zu erreichen, müssen
die Datensätze auf mehrere Tabellen
verteilt werden. Der Vorgang wird als
Normalisierung bezeichnet, wobei
mehrere so genannte Normalformen
unterschieden werden.
Im Folgenden wird anhand eines
Beispiels auf die ersten drei Normalformen eingegangen. Die vierte und
fünfte Normalform spielt in der Praxis
eine untergeordnete Rolle.
Aufgabenstellung
Sie arbeiten in einem Medienbetrieb,
der seinen Kunden Print- und Nonprintprodukte anbietet. Alle Aufträge werden
mit einer Auftragsnummer (ANr) versehen und in einer Tabelle erfasst:
Aufträge
ANr Datum
Kunde
Anschrift
Produkte
Firma Winkler
Hauptstr. 23, 77652 Offenburg
Website
1
01.03.12
2
10.05.12 Firma Mayer
Gartenstr. 15, 77933 Lahr
Visitenkarten, Briefbogen, Logo
3
20.06.12 Firma Schulz
Holzweg 3, 77960 Seelbach
Flyer
4
01.09.12
Firma Schmitt
Hauptstr. 5, 77933 Lahr
Website, Flyer
5
01.10.12
Firma Winkler
Hauptstr. 23, 77652 Offenburg
Visitenkarten
6
01.10.12
Firma Schulz
Holzweg 3, 77960 Seelbach
Briefbogen
Auftragserfassung
Eine Tabelle in dieser
Form ist für die
Umsetzung in einer
Datenbank untauglich.
159
Die Tabelle enthält folgende Mängel:
s Die Datensätze sind nicht konsistent,
obwohl ein Schlüssel „ANr“ vergeben wurde. Grund ist, dass aus
der Auftragsnummer „ANr“ nicht
gefolgert werden kann, um welches
Produkt es sich handelt.
s Durch die Erfassung der gesamten
Anschrift in einem Datenfeld ist ein
Sortieren der Datensätze, z. B. nach
Postleitzahlen, nicht möglich.
s Die Datensätze sind nicht redundanzfrei: Bei Firmen, die mehrere
Aufträge erteilen, muss jedes Mal die
gesamte Anschrift eingetragen werden. Ändert sich die Kundenanschrift,
muss diese Änderung in mehreren
Datensätzen vorgenommen werden.
s Als ungeschickt erweist sich auch,
dass vor den Firmennamen der
Eintrag „Firma“ steht. Ein alphabetisches Sortieren der Firmen wird nur
dann möglich, wenn diese Schreibweise konsequent eingehalten wird.
Fehlt der Eintrag oder wird stattdessen „Fa.“ geschrieben, stimmt die
Reihenfolge bereits nicht mehr.
Wenn Sie die Tabelle in der 1. Normalform betrachten, stellen Sie fest:
s Jedes Datenfeld enthält genau
einen Eintrag, sieht man einmal von
der Hausnummer ab. Diese gehört
jedoch zur Straße. Die Tabelle kann
nun nach beliebingen Attributen
(also spaltenweise) sortiert werden.
Weiterhin ist das Filtern bestimmter
Datensätze möglich, z. B. alle Aufträge der Firma Winkler, alle Aufträge
für Visitenkarten oder alle Aufträge
im ersten Quartal.
s Die Datensätze sind jedoch nicht
konsistent, weil der Primärschlüssel
„ANr“ einen Datensatz nicht mehr
eindeutig identifiziert.
s Die Tabelle ist alles andere als redundanzfrei. Die Redundanz hat im
Vergleich zur ersten Tabelle sogar
deutlich zugenommen.
1. Normalform
Ein Teil der angesprochenen Probleme
lässt sich beseitigen, wenn die Tabelle in
die 1. Normalform umgewandelt wird:
2. Normalform
Zur Reduktion der Redundanz muss
die Tabelle in mehrere Tabellen zerlegt
werden.
1. Normalform
Eine Tabelle befindet sich in der
1. Normalform, wenn jedes Datenfeld nur einen Eintrag enthält.
Aufträge
1. Normalform
160
ANr
Datum
Firma
Straße
Plz
Ort
Produkt
1
01.03.12
Winkler
Hauptstraße 23
77652
Offenburg
Website
2
10.05.12 Mayer
Gartenstraße 15
77933
Lahr
Visitenkarten
2
10.05.12 Mayer
Gartenstraße 15
77933
Lahr
Briefbogen
2
10.05.12 Mayer
Gartenstraße 15
77933
Lahr
Logo
3
20.06.12 Schulz
Holzweg 3
77960
Seelbach
Flyer
4
01.09.12
Schmitt
Hauptstraße 5
77933
Lahr
Website
4
01.09.12
Schmitt
Hauptstraße 5
77933
Lahr
Flyer
5
01.10.12
Winkler
Hauptstraße 23
77652
Offenburg
Visitenkarten
6
01.10.12
Schulz
Holzweg 3
77960
Seelbach
Briefbogen
Datenbanken
2. Normalform
Eine Tabelle befindet sich in der
2. Normalform, wenn
s SIESICHINDER.ORMALFORM
befindet und
s ALLE$ATENFELDERVONEINEM
(zusammengesetzten) Schlüssel
funktional abhängig sind.
Die abstrakte Formulierung der „funktionalen Abhängigkeit“ lässt sich
anhand des Beispiels erklären:
s Die Tabelle „Produkte“ besitzt
einen Schlüssel „PNr“. Von diesem
Schlüssel ist das Attribut „Produkt“
funktional abhängig. Dies heißt, dass
es zu jeder Produktnummer genau
ein Produkt gibt.
s Die Tabelle „Aufträge“ enthält die
Schlüssel „ANr“ und „PNr“. Keiner
der Schlüssel stellt in der Tabelle
eine funktionale Abhängigkeit her.
Diese wird erst durch Kombination
der Schlüssel möglich: Aus dem
zusammengesetzten Schlüssel „ANr“
und „PNr“ folgt genau ein „Datum“,
genau ein „Kunde“ mit genau einer
Anschrift.
s Die Tabelle ist nicht redundanzfrei,
weil die Kundenanschriften mehrfach
enthalten sind.
3. Normalform
In der dritten Stufe der Normalisierung
werden die verbliebenen Redundanzen
beseitigt.
3. Normalform
Eine Tabelle befindet sich in der
3. Normalform, wenn
s SIESICHINDER.ORMALFORM
befindet und
s ALLE$ATENFELDERDIEKEINE3CHLàS
sel sind, nicht funktional abhängig
sind.
Auch dieser Sachverhalt lässt sich am
Beispiel erklären:
In der Tabelle „Aufträge“ in der 2.
Normalform sind die Kundenangaben
funktional abhängig: Zum Kunden
„Winkler“ gehört genau eine „Straße“,
genau eine „Plz“ und genau ein „Ort“.
Dies darf nach der 3. Normalform nicht
sein. Schließlich ist es vorstellbar, dass
ein zweiter Kunde namens „Winkler“
hinzukommt. Die Adressen der Kunden
namens „Winkler“ ließen sich anhand
des Namens nicht mehr ermitteln. Um
diesen Fehler zu beheben, muss eine
dritte Tabelle mit neuem Schlüssel definiert werden. Auf der nächsten Seite
ist die Datenbank in der 3. Normalform
Aufträge
Produkte
PNr
Produkt
Offenburg
1
Website
77933
Lahr
2
Visitenkarten
77933
Lahr
3
Briefbogen
77933
Lahr
4
Logo
77960
Seelbach
5
Flyer
77933
Lahr
Schmitt Hauptstraße 5
77933
Lahr
01.10.12
Winkler Hauptstraße 23
77652
Offenburg
01.10.12
Schulz
77960
Seelbach
ANr
PNr
Datum
Firma
Straße
1
1
01.03.12
Winkler Hauptstraße 23
2
2
10.05.12 Mayer
Gartenstraße 15
2
3
10.05.12 Mayer
Gartenstraße 15
2
4
10.05.12 Mayer
Gartenstraße 15
3
5
20.06.12 Schulz
Holzweg 3
4
1
01.09.12
Schmitt Hauptstraße 5
4
5
01.09.12
5
2
6
3
Holzweg 3
Plz
Ort
77652
2. Normalform
161
Aufträge
Produkte
Kunden
ANr
PNr
Datum
KNr
PNr
Produkt
KNr
1
1
01.03.12
1
1
Website
2
2
10.05.12
2
2
Visitenkarten
2
3
10.05.12
2
3
2
4
10.05.12
2
3
5
20.06.12
3
4
1
01.09.12
4
4
5
01.09.12
4
5
2
01.10.12
1
6
3
01.10.12
3
3. Normalform
Firma
Straße
Plz
Ort
1
Winkler
Hauptstraße 23
77652
Offenburg
2
Mayer
Gartenstraße 15 77933
Lahr
Briefbogen
3
Schulz
Holzweg 3
77960
Seelbach
4
Logo
4
Schmitt
Hauptstraße 5
77933
Lahr
5
Flyer
dargestellt. Wie Sie sehen, sind alle
Datenfelder, die keine Schlüssel sind,
nur noch von Schlüsseln abhängig. Nun
wäre auch ein weiterer Kunde „Winkler“
mit identischer Anschrift eindeutig identifizierbar, da er eine andere Kundennummer erhält.
Der Prozess der Normalisierung ist
mit der 3. Normalform abgeschlossen.
Für alle drei Tabellen gilt, dass die
enthaltenen Daten redundanzfrei und
konsistent sind.
Einen großen Nachteil bringt die
Normalisierung einer Datenbank leider
mit sich: Die Lesbarkeit verschlechtert
sich mit jeder weiteren Tabelle deutlich.
Damit wird klar, dass für den Einsatz
von Datenbanken eine geeignete Datenbankmanagement-Software unerlässlich
ist. Diese übernimmt die Datenorganisation und -verwaltung sozusagen
„im Hintergrund“, ohne dass sich der
Anwender darum kümmern muss.
2.4.3.4
Entity-Relationship-Modell
Bislang haben wir uns angesehen, wie
sich eine „schlechte“ Datenbank in eine
normalisierte Form überführen lässt. In
der Praxis wird man natürlich versuchen, diesen Fall zu vermeiden und
162
bereits beim Datenbankentwurf dafür
zu sorgen, dass sich konsistente und
redundanzfreie Datenbanken ergeben.
Zu diesem Zweck gibt es verschiedene
Entwurfsverfahren, von denen das Entity-Relationship-Modell (ER-Modell) das
bekannteste ist. Bei der so genannten
Chen-Notation werden drei grafische
Elemente, Rechteck, Raute und Ellipse,
unterschieden:
Entitätstyp
Beziehung
Attribut
s Entitätstyp
Der komplizierte Begriff steht für Objekte, denen Informationen zugeordnet werden können, z. B. Produkte,
Kunden, Aufträge.
s Beziehung
Zwischen den Objekten lassen sich
Beziehungen herstellen, z. B. Kunde
„kauft“ Produkte oder Kunde „erteilt“ Aufträge.
s Attribute
Jedes Objekt hat bestimmte Eigenschaften oder Attribute, z. B. haben
Kunden einen Namen und eine
Anschrift.
Die drei Elemente lassen sich nun mittels Linien miteinander verbinden:
Datenbanken
ER-Modell
Schüler
Name
Klasse
ist in
Vorname
Klassenlehrer
Schülerzahl
Bezeichnung
Das Beispiel zeigt zwei Entitätstypen
„Schüler“ und „Klasse“, zwischen denen
eine Beziehung besteht: Jeder Schüler
„ist in“ einer Klasse. Jedem Entitätstyp sind Attribute zugeordnet. Beim
Entwurf müssen Sie entscheiden oder
mit Ihrem Auftraggeber absprechen, ob
diese Attribute ausreichend sind oder
ob weitere Attribute ergänzt werden
müssen, z.B. Alter, Anschrift, Geschlecht
der Schüler. Sie sehen den Vorteil des
Modells: Es ist eine auch für Laien
verständliche Darstellungsweise von
Daten.
Bevor wir uns ansehen, wie sich ein
ER-Modell in eine Datenbank umsetzen
lässt, müssen wir noch genauer auf die
Art von Beziehung eingehen, die zwischen den Entitätstypen besteht.
1:1-Beziehung
Wenn zwischen zwei Entitätstypen ein
eindeutiger Zusammenhang besteht,
spricht man von einer 1:1-Beziehung.
Schulleiter
1
leitet
1
Schule
Interpretation:
s Jeder Schulleiter leitet genau eine
Schule.
s Jede Schule wird von genau einem
Schulleiter geleitet.
Bei der Umsetzung des ER-Diagramms
Das ER-Modell dient
zur grafischen Darstellung der Zusammenhänge zwischen
Daten.
Bei der Umsetzung
des Diagramms in
eine Datenbank wird
aus jedem Entitätstyp
(Rechteck) eine
Tabelle.
in eine Datenbank können 1:1-Beziehungen in einer Tabelle notiert werden,
die die Spalten „Schule“ und „Schulleiter“ besitzt.
1:n-Beziehung
Eine 1:n-Beziehung liegt dann vor,
wenn einer der Entitätstypen mit
mehreren Entitäten des zweiten Typs
verbunden sein kann:
Klasse
1
hat
n
Schüler
Interpretation:
s Jede Klasse hat mehrere Schüler.
s Jeder Schüler gehört zu genau einer
Klasse.
Bei der Umsetzung als Datenbank
werden für die häufig vorkommenden
1:n-Beziehungen zwei Tabellen benötigt,
die über Schlüssel miteinander verbunden werden.
m:n-Beziehung
Gibt es mehrere Verbindungen in beiden Richtungen, spricht man von einer
m:n-Beziehung:
Lehrer
m
n
unterrichtet
Schüler
Interpretation des Diagramms:
s Ein Lehrer unterrichtet mehrere
Schüler.
163
s Jeder Schüler wird von mehreren
Lehrern unterrichtet.
Eine m:n-Beziehung macht Probleme
bei der Erstellung einer Datenbank, weil
sich mit ihr keine eindeutige Beziehung
zwischen zwei Tabellen herstellen lässt.
Zur Umsetzung in eine Datenbank gilt
deshalb:
m:n-Beziehungen sind unzulässig
und müssen durch Ergänzen weiterer Tabellen aufgelöst werden!
Im konkreten Beispiel wäre dies eine
Lehrer-Schüler-Tabelle, aus der hervorgeht, welcher Lehrer welche Schüler
unterrichtet.
Anwendung des ER-Modells
Die Grafik zeigt die Anwendung des ERModells auf das Beispiel des Medienbetriebs:
Zwischen Produkten und Kunden
besteht eine m:n-Beziehung (siehe
gestrichelte Linie):
s Jeder Kunde kann mehrere Produkte
in Auftrag geben.
s Jedes Produkt kann von mehreren
Kunden bestellt werden.
Die Modellbildung erfordert deshalb die
Einführung einer dritten Tabelle Aufträge, die aus einer m:n-Beziehung zwei
1:n-Beziehungen macht:
s Jeder Kunde kann mehrere Aufträge erteilen. Jeder Auftrag gehört zu
genau einem Kunden.
s Ein Produkt kann in mehreren Aufträgen bestellt werden. Zu jedem
Auftrag gehört genau ein Produkt.
Aus der letzten Aussage ergibt sich ein
Problem: Was passiert, wenn ein Kunde
mehrere Produkte bestellt? Die Auftragsnummer kommt dann mehrfach
vor und eignet sich deshalb nicht als
Primärschlüssel. Eindeutigkeit ergibt
sich in dieser Tabelle deshalb erst aus
der Kombination von Auftrags- und Produktnummer – man spricht von einem
zusammengesetzten Schlüssel, der den
Datensatz eindeutig identifiziert. Ist der
Datenbankentwurf fertiggestellt, kann
ER-Diagramm
Zwischen Produkten
und Kunden besteht
eine m:n-Beziehung.
Um diese als Datenbank umsetzen zu
können, muss eine
weitere Tabelle eingefügt werden.
Datum
Produkt
Kunde
n
Auftrag
besteht aus
n
wird erteilt
1
Produkte
Produkt
1
m
bestellt durch
n
Kunden
Firma
Plz
Straße
164
Ort
Datenbanken
mit der Umsetzung in einem Datenbanksystem begonnen werden. Gehen
Sie hierbei folgendermaßen vor:
s Aus jedem Entitätstyp (Rechteck)
wird eine Tabelle.
s Die Attribute (Ellipsen) werden zu
Tabellenspalten. Eventuell müssen
weitere Spalten ergänzt werden
(ANr, KNr, PNr).
s Die Beziehungen werden realisiert,
indem Primärschlüssel ™ und Fremdschlüssel š miteinander verbunden
werden.
Wie der Screenshot (Microsoft Access)
zeigt, entspricht der Datenbankentwurf
optisch dem ER-Diagramm. Statt „n“
wird hier das „oo“-Zeichen verwendet,
das in der Mathematik für „unendlich“
steht.
Würde ein Produkt aus der Produkttabelle gelöscht, das schon einmal
bestellt wurde, dann würde hierdurch
die Auftragstabelle fehlerhaft, da es
das bestellte Produkt nicht (mehr) gibt.
Referenzielle Integrität verhindert also,
dass ein bestelltes Produkt gelöscht
werden kann. Zulässig hingegen ist es,
Produkte hinzuzufügen, die dann natürlich noch nicht bestellt wurden.
Oder: Theoretisch kann es Kunden
geben, die noch nichts bestellt haben.
Vielleicht haben sie nur einmal einen
Produktkatalog angefordert. Diese
Kunden können gelöscht werden. Ein
Kunde, der schon einmal etwas bestellt
hat, kann bei referenzieller Integrität
nicht gelöscht werden, da hierdurch die
Auftragstabelle fehlerhaft würde.
Referenzielle Integrität stellt also
sicher, dass die Nutzer der Datenbank
nur Eingaben machen können, die
nicht zu Dateninkonsistenzen führen.
Das Datenbanksystem überprüft dies
anhand der vergebenen Primär- und
Fremdschlüssel, ohne die referenzielle
Integrität nicht möglich ist.
Beziehungen
In Microsoft Access
lassen sich Beziehungen mit Hilfe
eines Assistenten
festlegen.
Referenzielle Integrität
2.4.3.5
Referenzielle Integrität
Der kompliziert klingende Begriff der
referenziellen Integrität bedeutet, dass
ein Datenbanksystem (DBS) sicherstellen muss, dass die Beziehungen
zwischen Tabellen nicht zu Fehlern
(Dateninkonsistenzen) führen. Beim
Erstellen einer Beziehung müssen Sie
deshalb entscheiden, ob diese mit oder
ohne referenzielle Integrität sein soll
›. Was kann passieren, wenn keine
referenzielle Integrität besteht? Hierzu
zwei Beispiele:
Bei jeder Beziehung
muss festgelegt werden, ob „referenzielle
Integrität“ gewünscht
wird. Hierdurch lassen
sich widersprüchliche
oder fehlerhafte Daten
verhindern.
165
Band II – Seite 854
10.5.6 Datenbankzugriff
Structured Query
Language (SQL)
SQL ist eine Abfragesprache für
Datenbanken.
Bei Access können
Sie Abfragen wahlweise über einen SQLBefehl (rechts oben)
oder mit Hilfe eines
Assistenten (links) erstellen. Das Ergebnis
der Abfrage sehen Sie
rechts unten.
166
2.4.4
SQL
2.4.4.1
Bedeutung von SQL
Um Webseiten weltweit einheitlich
darstellen zu können, wurde die Seitenbeschreibungssprache HTML (Hypertext Markup Language) entwickelt und
standardisiert.
Auch bei der Entwicklung von
Datenbanken wird das Ziel verfolgt,
dass ein – im Idealfall – plattform- und
programmunabhängiger Zugriff auf
Datenbanken möglich ist. Um dies zu
ermöglichen, wurde für relationale
Datenbanken die Abfragesprache SQL
(Structured Query Language) entwickelt. Sie ermöglicht unter anderem das
s Erstellen von Datenbanken und
Tabellen,
s Eingeben, Ändern und Löschen von
Datensätzen,
s Abfragen (engl.: Query) von Daten
nach gewünschten Kriterien.
SQL ist ISO-standardisiert und plattformunabhängig. Dennoch existieren
verschiedene Sprachversionen bzw.
-dialekte, so dass in Abhängigkeit vom
eingesetzten Datenbankmanagementsystem unterschiedliches SQL zum
Einsatz kommt.
Müssen Sie SQL lernen? Die Antwort lautet: Ja und Nein. Wenn Sie sich
intensiver mit Datenbanken auseinandersetzen, kommen Sie an SQL nicht
vorbei. SQL ist die Sprache der Datenbanken, so wie HTML die Sprache der
Webseiten ist.
Allerdings ermöglicht heutige Datenbank-Software das Erstellen von und
den Zugriff auf Datenbanken auch ohne
SQL-Kenntnisse. Zu diesem Zweck
stehen z. B. bei Microsoft Access oder
OpenOffice Base Abfrage-Assistenten
zur Verfügung, die Sie bei der Erstellung von Abfragen mittels grafischer
Oberfläche unterstützen. Der zugehörige SQL-Befehl wird im Hintergrund
gespeichert, so dass sich der Anwender
hiermit nicht befassen muss.
Die Screenshots zeigen eine Abfrage
„Kunden aus Lahr“ zu der im letzten
Kapitel besprochenen Datenbank.
Links sehen Sie den Abfrage-Assistenten von Microsoft Access, rechts
oben den zugehörigen SQL-Befehl. Die
Linien zeigen die Zusammenhänge
zwischen Assistent und Befehl. Rechts
unten ist das Ergebnis der Abfrage
dargestellt.
Datenbanken
2.4.4.2
SQL-Befehle
Im Unterschied zu anderen Sprachen
ist der „Wortschatz“ von SQL relativ
begrenzt und einigermaßen leicht zu
verstehen – sehen wir einmal von
komplexen Anwendungen des SELECTBefehls ab.
Im Folgenden lernen Sie einige wichtige SQL-Befehle kennen. Als Beispiel
dient die Kundendatenbank, die bereits
im letzten Kapitel für die Normalisierung bzw. Entwicklung eines ER-Modells herangezogen wurde.
Datenbank erstellen
Der SQL-Befehl, um eine neue Datenbank zu erstellen, lautet:
CREATE DATABASE medienbetrieb;
Die SQL-Befehle sind zur besseren
Kennzeichnung großgeschrieben. Die
Datenbank ist zunächst noch leer, enthält also noch keine Tabelle.
Tabellen erzeugen
Die Erzeugung einer Tabelle ist etwas
umfangreicher, weil sämtliche Eigenschaften (Attribute) der Tabelle angegeben werden müssen. Betrachten wir
hierzu das Beispiel der Tabelle „Kunden“:
CREATE
KNr
TABLE Kunden(
INT NOT NULL
AUTO_INCREMENT,
Firma
VARCHAR(30),
Strasse VARCHAR(30),
Plz
VARCHAR(5),
Ort
VARCHAR(30),
PRIMARY KEY (KNr)
);
Erklärungen:
s Die „KNr“ erhält den Datentyp INT
(Integer) für ganze Zahlen. Weiterhin
muss hier immer ein Eintrag erfolgen
(NOT NULL), da die Kundennummer
als Primärschlüssel (PRIMARY KEY)
dient. Die Angabe AUTO_INCREMENT
besagt schließlich, dass die Nummer
vom Datenbanksystem automatisch
vergeben und hochgezählt wird. Auf
diese Weise ist die versehentliche
doppelte Vergabe einer Nummer
nicht möglich.
s Die Attribute„Firma“, „Strasse“, „Plz“
und „Ort“ sind jeweils von Datentyp
VARCHAR, bestehen also aus einer
variablen Anzahl von Zeichen. Die
Angabe in Klammer besagt, dass
maximal 30 bzw. 5 Zeichen möglich
sind. Vielleicht wundern Sie sich,
dass auch die Postleitzahl als Text
und nicht als Zahl angegeben wird.
Dies hat den Grund, dass es Postleitzahlen mit einer führenden Null
gibt, z. B. 03042 (Cottbus). Bei einer
Zahl würde die führende Null nicht
angezeigt.
Die Befehle zum Verändern bzw.
Löschen einer Tabelle heißen ALTER
TABLE bzw. Tabelle DROP TABLE.
Datensätze eingeben
Nachdem die Tabellen definiert sind,
erfolgt im nächsten Schritt die Eingabe
der Datensätze:
INSERT INTO Kunden
(Firma, Strasse, Plz, Ort)
VALUES ("Winkler", "Hauptstrasse 23", "77652", "Offenburg");
Erklärungen:
s Wie Sie sehen, entfällt die Eingabe
der Kundennummer, da diese auto-
167
matisch (AUTO_INCREMENT) durch
das Datenbanksystem generiert und
hochgezählt wird.
s Beachten Sie auch, dass Texte in Anführungszeichen oder Hochkommas
gesetzt werden müssen. Die Postleitzahl wird ebenfalls als Text und nicht
als Zahl eingegeben.
Datensätze ändern
Eine nachträgliche Änderung eines Datensatzes erfolgt mit Hilfe des UPDATEBefehls:
UPDATE Kunden SET
Strasse = "Gartenstraße 5",
Plz = "77933",
Ort = "Lahr" WHERE KNr = 5;
Im Beispiel wird also die gesamte Anschrift des Kunden mit der Kundennummer 5 geändert.
Datensätze löschen
Mit entsprechenden Zugriffsrechten
ist auch das Löschen von Datensätzen
problemlos möglich:
DELETE FROM Kunden
WHERE KNr = 5;
Gelöscht wird der gesamte Datensatz
mit der Kundennummer 5.
Datensätze abfragen
SELECT ist ein komplexer SQL-Befehl,
der den Zugriff auf Datenbanken mittels
Abfragen ermöglicht. In der Tabelle
rechts sind einige Beispiele aufgelistet.
Die SELECT-Anweisung bietet noch
weitere Möglichkeiten, z.B. können Sie
über GROUP Ergebnisse zusammenfassen. Im Internet finden Sie hierzu
zahlreiche Tutorials.
168
Abfrage aller (*) Datensätze der
Tabelle Kunden:
SELECT *
FROM Kunden;
Abfrage aller Kunden mit dem Namen „Mayer“:
SELECT Firma,Strasse,Plz,Ort
FROM Kunden
WHERE Firma LIKE "Mayer";
Abfrage aller Datensätze geordnet
nach Postleitzahlen:
SELECT *
FROM Kunden
ORDER BY Plz;
Abfrage über zwei verknüpfte Tabellen:
SELECT Kunden.Firma,Aufträge.
Datum
FROM Kunden
INNER JOIN Aufträge
ON Kunden.KNr = Aufträge.KNr;
Kombinierte Abfrage aller Kunden,
die das Produkt „Briefbogen“ bestellt haben, sortiert nach Datum:
SELECT Aufträge.Datum,Kunden.
Firma,Produkte.Produkt
FROM (Kunden INNER JOIN Aufträge ON Kunden.KNr = Aufträge.KNr) INNER JOIN Produkte
ON Aufträge.PNr = Produkte.
PNr
WHERE Produkte.Produkt LIKE
"Briefbogen"
ORDER BY Aufträge.Datum;
2.4.5
Datenbankmanagement
2.4.5.1
ODBC
Datenbanken
Datenbank-Client
Client-Server-System
Mit Hilfe der im vorherigen Abschnitt
vorgestellten Abfragesprache SQL ist
der Zugriff auf Datenbanken standardisiert. Damit nun von einer DatenbankClient-Software der Zugriff auf SQLDatenbanken möglich ist, wurde für
Windows-Betriebssysteme mit ODBC
(Open Database Connectivity) eine
entsprechende Schnittstelle geschaffen.
ODBC stellt die Verbindung zwischen
Datenbank-Client und DatenbankServer her. Um auf eine Datenbank
zugreifen zu können, muss der entsprechende ODBC-Treiber installiert werden.
Der Zugriff auf den Datenbank-Server
erfolgt mittels SQL-Befehlen, die jedoch
serverseitig ausgewertet werden.
Das Resultat der Abfrage wird an den
Client übertragen. Der Vorteil dieser
Vorgehensweise liegt darin, dass durch
die serverseitige Abarbeitung der SQLBefehle eine deutlich bessere Performance und geringere Netzbelastung
erreichbar ist.
Client-Server-Systeme wie Microsoft
SQL-Server, MySQL oder Oracle ermöglichen aus den genannten Gründen die
Realisierung sehr großer Datenbanken
mit hoher Benutzeranzahl.
z.B. Access, phpMyAdmin
ODBC-Manager
ODBC-Manager
ODBC-Treiber
Oracle
Access
Fileserver-System
MySQL
SQL
ODBC-Treiber
MySQL
SQL
Dateizugriff
Fileserver-System
Bei einem Zugriff auf eine AccessDatenbank erfolgt ein direkter Zugriff
auf die Datenbankdatei. Die Auswahl
der gewünschten Datensätze mittels
SQL-Abfragen erfolgt clientseitig.
Nachteil dieses Verfahrens ist, dass
die Belastung des Netzwerks ab einer
gewissen Benutzerzahl hoch ist und
damit die Performance der Datenbank
sinkt. Fileserver-Systeme sind deshalb
nur für kleinere Datenbanksysteme
empfehlenswert.
Oracle
Client-Server-Systeme
ODBC
Abschließend sei erwähnt, dass auf
Client-Server-Systeme auch mittels
Skriptsprache zugegriffen werden kann.
Dies macht man sich für die Realisierung von dynamischen Webseiten
zunutze, deren Inhalte in Abhängigkeit
von der Anfrage des Benutzers „dynamisch“ aus einer Datenbank geladen
werden (siehe Kapitel 10.5.6).
2.4.5.2
Über ODBC ist
ein Zugriff auf
unterschiedliche
Datenbanksysteme
möglich.
Datenbanksysteme (DBS)
Wie die Grafik auf der nächsten Seite
zeigt, besteht ein Datenbanksystem aus
Datenbanken (DB) und aus einer diese
Datenbanken verwaltenden Software,
einem Datenbankmanagementsystem
(DBMS). Für den oder die Anwender
ergibt sich der Vorteil, dass sie auf
Datenbanken zugreifen können, ohne
sich um die physikalische Organisation
der Daten kümmern zu müssen. Für die
Anwender spielt es keine Rolle, wie und
169
Anwendung
Anwendung
Anwendung
Datenbanksystem (DBS)
Datenbankmanagmentsystem (DBMS)
DB
Blockschaltbild eines
Datenbanksystems
Datenbanksysteme
bestehen aus
einer Software zur
Verwaltung der
Datenbanken, dem
Datenbankmanagementsystem (DBMS),
und Datenbanken.
DB
DB
wo die Daten gespeichert sind, sondern
lediglich, wie sie auf diese Daten
zugreifen können. Neben der physikalischen Verwaltung der Daten hat ein
Datenbankmanagementsystem weitere
Aufgaben:
s Bearbeitung von Datenbankabfragen
(Query)
s Gewährleistung der Datensicherheit – auch nach Systemabsturz
s Gewährleistung des Datenschutzes
über die Vergabe von Zugriffsrechten
s Synchronisation bei gleichzeitigem
Zugriff auf eine Datenbank durch
mehrere Nutzer (Multiuser-DB)
s Bereitstellung von Werkzeugen für
den Datenbankentwurf
s Bereitstellung von „Assistenten“ z. B.
für Berichte (Reports), Formulare und
Abfragen
s Konvertieren der Daten in andere
Formate (Datenexport)
Wie im letzten Abschnitt erläutert,
müssen Sie bei Datenbanksystemen
zwischen Client-Server-Systemen für
große und sehr große Datenbanken
mit mehreren Millionen Datensätzen
und Fileserver-Systemen für kleine und
mittlere Datenbanken unterscheiden.
Den kommerziellen Bereich teilen
sich hierbei die drei großen Systeme
DB2 von IBM, Microsoft SQL-Server
und Oracle Database auf. Ein zweites
Unterscheidungsmerkmal ist, ob es sich
um ein kommerzielles oder kostenloses
Produkt handelt. Dass Letzteres nicht
unbedingt minderwertig sein muss,
beweist die große Verbreitung von
MySQL auf Webservern. In Kapitel 10.5
stellen wir Ihnen vor, wie Sie sich einen
Webserver mit MySQL lokal auf Ihrem
Rechner installieren können, um mittels
PHP darauf zuzugreifen.
In der Tabelle sind die wichtigsten
Datenbanksysteme zusammengestellt,
ohne dass die Liste einen Anspruch auf
Vollständigkeit erhebt:
Datenbanksysteme
Name
System
Art
In der Tabelle wird
zwischen ClientServer- und FileserverSystemen unterschieden.
DB2 (IBM)
Client-Server
kommerziell
s
s
Microsoft SQL-Server
Client-Server
kommerziell
s
s
Oracle Database
Client-Server
kommerziell
s
s
PostgreSQL
Client-Server
Open Source
s
MySQL
Client-Server
Open Source
s
Microsoft Access
Fileserver
kommerziell
s
FileMaker
Fileserver
kommerziell
s
s
OpenOffice Base
Fileserver
Open Source
s
s
s
SQLite
Fileserver
Open Source
s
s
s
170
Windows
Mac OS
Unix/Linux
s
s
s
2.4.6
Aufgaben
Datenbanken
1 Datenbank-Fachbegriffe kennen
Gegeben ist folgende Auftragstabelle
eines Schreibwarenhandels:
ANr
Datum
Kunde
Produkt
Menge
1
11.11.11
Schulz
Klebstoff
3
2
12.01.11
Schmitt
Schere
2
3
09.02.11
Wagner
Hefter
1
4
10.03.11
Maier
Locher
1
5
09.05.11
Huber
Ordner
5
a. Ordnen Sie die Fachbegriffe zu:
s $ATENSATZ
s $ATENFELD
s !TTRIBUT
s 3CHLàSSEL
s &ELDNAME
b. Welche Datentypen kommen in der
Tabelle vor?
b. Bringen Sie die Datenbank in die
1. Normalform.
c. Bringen Sie die Datenbank in die
3. Normalform.
4 ER-Modell kennen
a. Erklären Sie die Funktion des ERModells.
b. Finden Sie je ein Alltagsbeispiel für
eine
s "EZIEHUNG
s N"EZIEHUNG
s MN"EZIEHUNG
c. Weshalb sind m:n-Beziehungen problematisch? Nennen Sie die notwendige Maßnahme.
5 Datenbank-Fachbegriffe kennen
2 Anforderungen an Datenbanken
kennen
Erklären Sie die Bedeutung der beiden
Hauptforderungen an den Datenbankentwurf:
a. Datenkonsistenz
b. Redundanzfreiheit
3 Datenbank normalisieren
Gegeben ist die Datenbank eines kleinen Medienbetriebes:
a. Beschreiben Sie die Mängel.
Erklären Sie die Aufgaben von:
a. SQL
b. ODBC
c. DBMS
6 ER-Modell anwenden
Eine Firma besitzt mehrere Firmenfahrzeuge. Eine Datenbank soll dabei helfen, die aktuell im Einsatz befindlichen
und verfügbaren Fahrzeuge zu verwalten. Folgende Informationen sollen in
der Datenbank enthalten sein:
Name
Abteilung
Telefon
E-Mail
Bernd Müller
Geschäftsleitung
1701-0
[email protected]
Schwarz, Stefan
Vertrieb
1701-10
[email protected]
Petra Maier
Vertrieb
1701-10
[email protected]
Bernd Stöckle
Produktion
1701-11
[email protected]
Maier Bert
Produktion
1701-11
[email protected]
Beate Klinger
Kunden
1701-12
[email protected]
Datenbank zu
Aufgabe 3
171
Fahrzeuge:
Mitarbeiter:
Einsatz:
Fabrikat, Modell,
Kennzeichen
Vorname, Name,
Abteilung
Datum, Uhrzeit,
Fahrzeug, Mitarbeiter
Entwerfen Sie das ER-Modell der
Datenbank.
7 SQL-Befehle anwenden
Gegeben ist folgende Kundendatenbank:
kunden
KNr
1
Name
Vorname
Schlund Patrick
Strasse
Hauptstraße 13
Ort
Seelbach
Telefon
07823 1312
2
Müller
Bernd
Mühlgasse 1
77933
Lahr
07821 96484
3
Dreher
Franz
Gartenstraße 15
76133
Karlsruhe
0721 124576
4
Eberle
Markus
Mozartstraße 11
79540
Lörrach
07621 77889
5
Eberle
Maria
Vogelsang 12
79104
Freiburg
0761 456456
Formulieren Sie SQL-Abfragen:
a. Alle Datensätze anzeigen
b. Alle Datensätze anzeigen, sortiert
nach Ort
c. Alle Datensätze mit Namen „Eberle“
anzeigen
d. Einen neuen Datensatz einfügen:
Schmitt, Isabel, Mattweg 12, 77933
Lahr, 07821 335566
e. Datensatz mit der KNr 4 ändern:
07621 98877.
f. Datensatz mit der KNr 2 löschen.
8 Referenzielle Integrität kennen
Erklären Sie den Begriff „Referenzielle
Integrität“ an einem Beispiel.
172
Plz
77960
Datenbanken
9 Datenbank normalisieren
Gegeben ist folgende Datenbank eines
Sportgeschäfts:
Datum
01.01.11
Kunde
Schulz
11.01.11
Müller
12.02.11
Dreher
13.02.11
Eberle
14.05.11
Eberle
21.05.11
26.05.11
Strasse
Hauptstraße 13
Plz
77960
Ort
Seelbach
Produkte
Ski, Stöcke
Mühlgasse 1
77933
Lahr
Schlittschuhe
Gartenstraße 15
76133
Karlsruhe
Laufschuhe, Trikot
Mozartstraße 11
79540
Lörrach
Tennisschläger
Vogelsang 12
79104
Freiburg
Tennisschläger
Müller
Mühlgasse 1
77933
Lahr
Ski
Dreher
Gartenstraße 15
76133
Karlsruhe
Golfschläger, Trikot
a. Beschreiben Sie die Mängel.
b. Bringen Sie die Datenbank in die
3. Normalform.
173
Herunterladen