Document ID: /fineweb-2-swissfilter-quality_10-filterrobots/filtered/03293.jsonl.gz/451

Planung der Datenbankstruktur
Im folgenden wird anhand eines prakischen Beispiels die Umsetzung von der Idee bis zur fertigen Datenbank beschrieben. Typische Fehler bei der Planung und Umsetzung der Implementierung einer relationalen Datenbank unter MySQL werden dargestellt und aufgekärt. Wer sich unnötig mit theoretischem Ballast zunebeln möchte, dem sei das Standardwerk von GottfriedVossen: Datenbankmodelle, Datenbanksprachen und Datenbank-Management-Systemeempfohlen.
Zum Verständnis der in der Datenbanktechnik gebräuchlichenSprache sei das Lexikon am Ende den Handbuches emfohlen.Zu einer Datenbank gehört immer Paperware als Dokumentationdazu. Man kann zwar spontan Datenbanken implementieren,jedoch passieren auch Profis Fehler bei der Planung derStruktur, die dann eventuell langwierige Änderungen im Quellcodeder WWW-Interfaces oder der Datenbankstruktur nach sichziehen. Besonders unangenehm wird es, wenn bereits die Datenbankgenutzt wird, und dann aber dringende Änderungen der Strukturnotwendig sind. Es müssen dann ja auch alle Frontends gleichzeitigausgetauscht werden, was dann sicher zum Stillstand desUnternehmens führen würde.
Wer ACCESS als Frontend einsetzt, der wird bei vielen Clientsdann sicher große Probleme haben. Diese dürften Datenintegrität,Funktionalität und die Konvertierung der unterschiedlichenDatenbankstrukturen ineinander betreffen. Es lohn sich alsostets, schon vorher mögliche Änderungen der Struktur miteinzuplanen. Das ERM bzw. das ERD (Diagramm) gehört zu denwichtigsten Modellen, mit denen Datenbankstrukturen entworfenwerden.
Aus den Entity - Relationship Modellen können nicht nurdie Strukturen von SQL Datenbanken, sondern auch die Strukturen von allen anderen Datenbanken erstellt werden. Hierzu geht
man nach einem Frage - Antwortschema vor. Bevor wir nun
diese Strukturen erstellen, müssen unbedingt noch die Fachtermini
geklärt werden:
- Eine Entity ist immer ein existierendes Objekt, eine
Beobachtung, eine Transaktion oder Person, über welches
Informationen in einer Datenbank abgelegt werden.
- Eine Entitätsmenge (Entity - Set) ist die Zusammenfassung
einzelner Entities, die ähnliche oder vergleichbare Eigenschaften
haben. Beispiel: Alle Bücher in einer Bibliothek, die
Einwohner einer Stadt oder alle Raucher.
- Attribute sind Eigenschaften oder Merkmale einer Entität.
Sie sind die typischen Eigenschaften einer Entität und
charakterisieren diese Entität. Beispielsweise sind die
Kunden einer Firma eine Entitätsmenge, also eine Ansammlung
von einzelnen Entitäten. Sowohl eine Entity als auch eine
Entitätsmenge werden durch Attribute charakterisiert.
Als Attribute werden z.B. Kundennummer, Name, Vorname,
Wohnort oder Straße bezeichnet. Es gibt sowohl einwertige
Attribute zusammengesetzte Attribute. Ein Buch (also eine
Entity) kann mahrere Autoren haben, ist also eine Entity
mit mehrwertigem Attribut.
- Ein Entitätstyp beschreibt eine Menge von Entitäten
mit gleichen Attributen. Ein Entitätstyp könnte ein Buch
sein, welches mit den Attributen: Titel, Autor, Verlag,
ISBN-Nummer in der Datenbank definiert wurde. Der Entitätstyp
darf nicht mit Entitätsmenge verwechselt werden ! Eine
Entitätsmenge ist eine Sammlung von vielen Büchern mit
bestimmten Gemeinsamkeiten (alle eines Autors), ein Entitätstyp
ist mehr als nur die Bücher eines Autors, es sind alle
Bücher, die einen Autor, einen Verlag, eine ISBN-Nummer
haben. Damit lassen sich alle im Buchhandel käuflichen
Bücher beschreiben, aber nicht die privat gedruckten (wie
z.B. dieses Handbuch für MySQL hier). Der Grund liegt
darin, daß dieses Handbuch keine ISBN-Nummer besitzt.
- Schlüssel (key) oder Schlüsselkandidaten (candidate
key) ist die minimale Kombination von Attributen, die
eine Entität aus einer Entitätsmenge eindeutig identifiziert.
Minimal bedeutet hier, daß man nicht alle Attribute angeben
muß, damit man eine Person oder ein Buch eindeutig identifizieren
kann. Die Zahl der notwendigen oder auch hinreichenden
Attribute hängt natürlich stark von den Inhalten ab. Möchte
man z.B. eine Person eindeutig identifizieren, so muß
man sich die Attribute einer Person (also Entity) anschauen:
· PERSON, beschrieben durch PersNr, Name, Vorname,
Adresse, Geburtsdatum, Beruf
- Primärschlüssel (primary key) ist häufig identisch mit
einem Schlüssel, z.B: ·PERSON (PersNr, Name, Vorname,
Adresse, Geburtsdatum, Beruf). Wenn man sich zwischen
mehreren eindeutigen Schlüsseln oder auch zusammengesetzen
Schlüsseln entscheiden kann, nimmt man immer den einfachsten
Schlüssel, der eine Entität (PERSON) eindeutig beschreibt.
Dies ist heir die PersNr, also die Personalnummer. Es
häfig eine laufende Nummer (Siehe hier Kapitel CREATE
unter "autoincrement").
So, nun sind vorläufig alle wichtigen Begriffe der Datenbanktechnik
erklärt worden. Man muß sich also viele Gedanken darüber
machen, welche Attribute zu welcher Entität gehören, welche
veränderlich sind, welche von anderen abhängig sind (Adresse
und Postleitzahl), und wie man diese am besten so ordnet,
daß z.B. Redundanzen vermieden werden. Wir möchten ja nicht
unsere Datenbank unnötig aufblähen.