Datenbanstruktur
Datenbank-Konzept
Um ein vernünftiges Datenbank-Konzept zu erarbeiten,
bedarf es einiger Vorüberlegungen:
# Welche Daten sollen in der DB
erfasst werden ?
# Wie soll die Erfassung erfolgen ?
# In welcher Weise
hängen die Daten voneinander ab ?
# Wie viele Tabellen müssen erstellt
und in welcher Weise miteinander in Beziehung gesetzt werden
?
Um die o.g. Fragen zu beantworten, nimmt man sich am besten einen
Zettel und einen Stift, und malt sich die angestrebte Struktur auf.
Ich
gebe Ihnen diesbezüglich mal ein vereinfachtes Beispiel :

Hier sehen Sie, einen groben Entwurf
einer Datenbank zur Verwaltung eines Lagers.
Haben Sie diesen Entwurf,
geht es daran, diesen zu zu detaillieren. Dazu sollte man sich die Tabellen und
deren Beziehungen mit angestrebtem Namen der Tabelle sowie den
Feldern und Datentypen, die
für die Beziehungen der Tabellen untereinander verantwortlich
sein sollen, genauestens notieren.
Es können nämlich nur Felder des
selben Datentypes miteinander verknüpft werden !
Auch erleichtert es die
Verwaltung der DB, wenn Felder und Objekte ( also Tabellen, Abfragen, Formulare
... ) nach einem vorherbestimmten Schema beschriftet
werden.
Dazu haben sich einige Leute natürlich schon Gedanken gemacht, es
gibt dafür die sogenannte Reddick-Namens
Konvention.
Wenn Sie alle diese Vorüberlegungen getroffen haben, sind
Sie bereit für die Erstellung der Tabellen und deren Beziehungen.
Ist
dies erledigt, gibt es noch eine Überlegung, die Sie treffen sollten:
Access
bietet Ihnen die Möglichkeit, die Datenbank zu stückeln ( aufzuteilen ) - in ein
Front-End , in dem die Abfragen, die Formulare, Berichte,
Makros und Module gespeichert sind, und in ein Back-End , in
dem einzig die Tabellen und die Beziehungen gespeichert sind.
'Was soll
das denn ?' werden Sie jetzt fragen . . .
Diese Aufteilung der Datenbank
hat für spätere Erweiterungen und Mehrbenutzerumgebungen sehr entscheidende
Vorteile:
Im Gegensatz zu Anwendungen, die auf einem Einzelplatzrechner
ausgeührt werden, sind Anwendungen auf vernetzten Rechnern als alleinige
Access-Datenbank sehr unpraktisch. Wie oft kommt es vor, das Sie Berichte und
Auswertungen Ihren Chef's und anderen Mitarbeitern zur Verfügung stellen müssen,
so dass Sie irgendwann auf die Idee kommen, diese Leute auch auf die Datenbank
zugreifen zu lassen, um sich und den anderen Arbeit und Zeit zu sparen.
Nun
gibt es aber ein Problem :
Entweder, Sie arbeiten mit Kopien der selben
Datenbank und müssen ständig die veränderten Daten miteinander abgleichen (
Welch ein Aufwand ! ), oder Sie haben nur die eine Datenbank, die derjenige, der
diese zuerst öffnet, dann sperrt und Sie haben 'Nase', bis derjenige die DB
wieder geschlossen hat ( Auch nicht das Gelbe vom EI ).
Also trennen Sie
Daten ( Back-End ) und Interface ( Front-End )
, wobei Sie je nach Bedarf das Interface so gestalten können, das z.B. die
Leute, die Berichte von Ihnen erwarten, diese zwar lesen und ausdrucken können,
aber keine Daten 'kaputt machen' können.
Man kann auch
die Primärdaten schützen, in dem man für verschiedene Anwender
Benutzergruppen und -berechtigungen bezüglich des Lese-
und Schreibstatus anlegt.
Haben Sie solche Überlegungen, dann
sollten Sie noch wissen, dass die Front-End <---> Back-End
Geschichte nur für Datenbanken bis zu einer Grösse von 2 Gb ( pro DB ) geeignet
sind, ansonsten ist dem ein Access Datenbank-Projekt
vorzuziehen.
Ihre Einzelplatzanwendung kann sehr einfach über den
Datenbank Aufteilungsmanager ( Extras --> Datenbank
Dienstprogramme --> Assistent zur Datenbankaufteilung ) in Front- und
Back-End 'zerlegt' werden.
Ansonsten Erstellen Sie nach dem Anlegen der
Datenbank mit den Tabellen und Beziehungen ( = Back-End ) noch eine neue
Access-DB ( = Front-End ), in der Sie über Datei --> Externe Daten -->
Tabellen verknüpfen dann die Back-End-DB auswählen, diese wird dann im
Fenster Tabellen alle von Ihnen erstellten Tabellen anzeigen, dort wählen
Sie alle aus und klicken auf OK und schon sind die Tabellen des Back-Ends
im Front-End verfügbar. Mit diesen Tabellen kann nun genauso wie mit 'normalen'
Tabellen gearbeitet werden.
Sollten Sie einmal das Back-End auf einen
anderen Pfad ablegen müssen, dann besteht keine Verbindung mehr zwischen Front-
und Back-End, da der Link zwischen ihnen statisch in einer Systemtabelle des
Front-Ends abgelegt ist.
Sie müssen dann auf Extras ---> Datenbank
Dienstprogramme ---> Tabellenverknüpfungs Manager klicken, wo Sie im
erscheinenden Fenster dann das Back-End suchen und die Tabellenverknüpfung
aktualisieren können.
Zu dem doch sehr komplexen Thema der
Access-Projekte und des Anlegens von verschiedenen
Benutzer und Benutzergruppen informieren Sie sich bitte in der
entsprechenden Fachliteratur
!
Datenverwaltung /-eingabe
Die Frage des 'Wie sollen die Daten eingegeben werden ?' wird
meistens zugunsten eines Formulares entschieden, wenn auch einige Spezialisten
lieber direkt Daten in die Tabellen eingeben, dabei gibt es bei grossen
Datenmengen den Vorteil der besseren Übersicht und einige gleiche
Eintragungen sind sehr schnell mit Strg + C zu kopieren und mit
Strg + V ( bzw. Shift + Einf ) einzufügen.
Auch lässt sich in der
selben Spalte, durch Strg + 2 der darüberstehende Eintrag in das
darunterliegende Feld erzeugen.
Aber egal, wie Sie Ihre Daten eingeben
wollen, das Wichtigste ist eine schnelle Dateneingabe . Man sollte die
sich ständig wiederholenden Daten aus unabhängigen Listenfeldern oder Listen,
die auf Tabellen basieren, auswählen.
Access hat dafür eine besondere
Nachschlage-Funktion in die Tabellen eingebaut:
Gehen Sie in die
Entwurfsansicht einer bestehenden Tabelle, in der Sie in ein Feld Daten eingeben
möchten, die bereits in einer anderen Tabelle oder Abfrage vorhanden sind, bzw.
bereits wissen, welche Daten für dieses Feld ausschliesslich in Frage
kommen.
Hier markieren Sie das entsprechende Feld und klicken dann auf das
Register 'Nachschlagen'.

Hier sehen sie, das Sie auswählen
können, aus welcher Tabelle/Abfrage und aus welcher Spalte daraus die Daten
gewählt werden sollen.
In diesem Beispiel soll in einer Tabelle (z.B.
Verwaltung ) in dem Feld Bearbeiter aus der existierenden
Tabelle Bearbeiter der Spalteneintrag Nr. 1 ( = Gebundene Spalte )
ausgewählt werden.
Es stehen dann noch die Optionen der Anzeige mehrerer
Spalten ( die bei der Auswahl sichtbar sind ), und das Anzeigen der Namen der
Spalten ( wenn ja, dann werden nicht nur die Einträge aus der Tabelle/Abfrage,
sondern auch die Spaltenüberschriften beim Klick auf das Auswahlfeld mit
angezeigt ). Weiterhin bestimmen Sie, wieviele Zeilen beim Öffnen des
Nachschlagefeldes aufklappen, wie breit die Liste sein soll und ob Sie nur
Einträge aus der Datenquelle wünschen, oder ob auch andere Daten ( per Hand )
eingetragen werden können.
Das Schöne an dieser Geschichte ist, dass
diese Nachschlage-Funktion ( wenn diese denn aktiviert wurde ) auch in den
Formularen, die anschliessend auf der entsprechenden Tabelle basieren aktiv
sind, man muss also nicht erst ein neues Listenfeld oder Kombinationsfeld zum
Nachschlagen erstellen !
Möchte man aus einer unabhängigen Liste Werte
auswählen, gibt man statt Tabelle/Abfrage halt Liste ein und trägt
die Listenwerte anschliessend per Hand ein.
Im Allgemeinen sollte man
darauf zu achten, dass man nicht zu viele Tabellen hat, in die man Daten
eingeben muss !
Man kann sonst schnell die Übersicht verlieren .
Auch
die Aktualisierung der Daten muss einfach erfolgen können. Der Grundstein dafür
wird bereits bei der Festlegung der Datenbankstruktur gelegt !
Der Trick
besteht darin, nur einmal einen bestimmten Datensatz zu ändern und danach alle
Daten, die mit dem geänderten Datensatz in anderen Tabellen in Beziehung stehen,
automatisch aktualisieren zu lassen.
Ähnlich muss das Löschen von nicht
mehr benötigten Datensätzen erfolgen:
Man sollte das Löschen so vereinfachen,
dass man nur in der 'Haupttabelle' die Daten löscht und anschließend alle
anderen dazugehörigen Daten aus den anderen, mit der 'Haupttabelle' in Beziehung
stehenden Tabellen, entfernen lässt.
Geschichtliche Entwicklung von ACCESS:
Access 1.0 - 1992 -
Desktop-Datenbank-Management-System ==> Ziel: Bisher komplizierte
Datenbanksysteme auch für 'Normal-User' nutzbar zu machen, doch noch nicht
Multiuser fähig.
Access 2.0 - 1994 - Ablösung der Vorgängerversion ==>
Ziel: Multi-User Datenbanksystem mit verbessertem Bedienkomfort -
Programmiersprache: Access-Basic
Access 7.0 - 1995 - (Access 95) -
Umstellung auf 32 bit System, Win 95 kompatibel ==> Ziel: OLE (Object Linking
and Embedding), sowie Einführung einer verbesserten Programmiersprache, die auch
von anderen Office-Anwendungen genutzt werden kann - Programmiersprache:
Visual Basic for Applications = VBA
Access 8.0 -
1996 - (Access 97) - Verbesserung der Vorversion bezüglich Stabilität und
Einführung von ODBC Direct (Open DataBase Connectivity = Schnittstelle zum
Öffnen von SQL-Datenbanken), sowie
Internet-Features wie Hyperlinks u.ä. - Programmiersprache: VBA
Access
9.0 - 1999 - (Access 2000) - Integration von SQL-Servern, Umstellung
von interner Schnittstelle (Zugriff auf die Jet-Engine =
Datenbank-Kern) DAO (Data Access Objects) auf ADO (ActiveX Data
Objects); Verbesserung der Internet-Funktionen - Programmiersprache:
VBA
Access 10.0 - 2001 - (Access XP) - Einführung von XML-Datenaustausch
(Extensible Markup Language = Erweiterung der Internet-Programmiersprache HTML)
und damit erneute Verbesserung der Internet-Anbindung an Access, Einbindung von
Pivot-Tabellen - Programmiersprache: VBA
VBA = Visual Basic for Applications
- wurde aus der Programmiersprache
QBASIC entwickelt, die ihrerseits aus der sehr alten (1963) Sprache BASIC
entstand.
Der eigentliche Vorläufer von VBA war allerdings VB für Windows
= VB 1.0, 1991 von Microsoft vorgestellt.
So haben sich praktisch parallel
zwei sehr ähnliche Programmiersprachen entwickelt:
Visual Basic, eine
vollständig eigenständige Programmiersprache, die allerdings Windows basiert
ist, die mittlerweile von tausenden Programmierern aufgrund der leichten
Verständlichkeit des Codes und des Bedienkomforts genutzt wird.
Visual
Basic for Applications, eine für MS-Office-Anwendungen entwickelte
Programmiersprache, die aufgrund ihrer Ähnlichkeit zu VB ebenfalls sehr leicht
zu erlernen ist, allerdings ist sie, wie gesagt nur für Office-Programme nutzbar
(jedoch mit wenigen Handgriffen auch als VB-Programm einsetzbar).
Zu
einem durchdachten Datenbankentwurf gehören auch einige Kenntnisse über
Allgemeine Datenbankmodelle :
Datenbanken (DB) können grob in
drei grosse Kategorien eingeteilt werden :
--> hierarchische
Datenbanken
--> vernetzte Datenbanken
--> relationale
Datenbanken
Unter hierarchischen und vernetzten Datenbanken
versteht man DB, bei denen die Beziehungen zwischen den Daten mit Elementen wie
Zeigern, Mengen und verketteten Listen hergestellt werden.
Die
Veränderung der relativ starren Strukturen dieser DB erfordern einen relativ
hohen Programmieraufwand !
Bei den relationalen DB werden die
Daten in Tabellen gespeichert und
die Beziehungen (Relationen)
zwischen den Spalten der einzelnen Tabellen, je nach Bedarf, festgelegt
.
Dies bedeutet eine sehr flexible Handhabung der Datenzugriffe (Abfragen der
Daten).
Diese Flexibilität hat jedoch auch ihre Schattenseiten:
Durch die
Tabellen-Datenspeicherung ist ein ziemlich hoher Verwaltungsaufwand von Nöten,
der auch einen hohen Rechenaufwand erfordert !
Doch gerade wegen der
grossen Flexibilität und der vergleichbar einfacheren Programmierung bei
Veränderung sind heute die relationalen DB sehr weit verbreitet !
Mehr Informationen über diese Thematik bieten folgende Adressen.
Access Datenbankmodell
MS-ACCESS gehört zu dem relationalen
DB-Modell.
Dieses Modell verlangt im folgenden 4
Eigenschaften die Tabellen betreffend
:
1.- Die Spalten (Felder) einer Tabelle sind nicht sortiert
2.- Die
Zeilen (Datensätze) einer Tabelle sind ebenfalls nicht sortiert
3.- Alle
Daten einer Tabellenspalte (Feld) haben den selben Datentyp
4.- Jede
einzelne Tabellenspalte (Feld) hat einen eineindeutigen Namen in ihrer
Tabelle
In jeder Access Tabelle gelten die selben Bestimmungen
:
--> Eine Tabelle darf aus maximal 255 Spalten (Feldern)
bestehen
--> Ein Spaltenname (Feldname) darf maximal 64 Zeichen lang sein
(Nicht erlaubte Zeichen: . und , und ' und ! und
[ und ] )
--> Das Anlegen von Spalten (Feldern) von
vorgegebener (fester) Länge sowie flexibler (variabler) Länge ist erlaubt, wobei
nur der wahre Wert (wahre Grösse) des jeweiligen Spalteneintrags (Feldwertes)
gespeichert wird .
--> In jeder Tabelle können Primärschlüssel oder
Indizes festgelegt werden, diese erhöhen die Zugriffsgeschwindigkeit beim
Bearbeiten (Suchen und Sortieren) der Daten.
Bei den
Primärschlüsseln (PS) gibt es die folgenden
Unterscheidungsmöglichkeiten
1.- PS, die eine Speicherung von Duplikaten
ausschließen = eindeutiger Index
2.- PS, die eine Speicherung von Duplikaten
erlauben = mehrdeutiger Index
3.- PS, die nicht nur eine Spalte (Feld) zur
Unterscheidung verwenden = zusammengesetzter Index
4.- PS, den Access
standardmässig beim Speichern einer neu erstellten Tabelle anbietet = AutoWert
Index (wird von Access selbständig weitergezählt und auch beim Löschen eines
Datensatzes wird der gelöschte AutoWert Index nicht wieder freigegeben
)
Zusammenfassend ist zu sagen, das ein Primärschlüssel zwar nie verkehrt
ist, aber auch selbst Speicherplatz benötigt.
Man sollte also nicht in
jedem Fall einen PS anlegen .
Haben Sie sich erst nach dem Füllen
einer Tabelle entschlossen, einen unter 1.- aufgeführten PS anzulegen und Access
gibt eine Meldung aus, dass die Erstellung des PS nicht möglich ist, so haben
Sie mit Sicherheit redundante ( doppelte ) Datensätze in diesem
Feld.
Am einfachsten lassen Sie Access das Auffinden dieser Daten übernehmen,
damit Sie diese redundanten Daten beseitigen können :
Sie erstellen für diese
Tabelle eine neue Abfrage, wie im unteren
Bild gezeigt -->

Sie lassen in dieser Abfrage nach den doppelten Daten des
entsprechenden Feldes für den neuen PS dieser Tabelle suchen, notieren die
Ergebnisse und löschen die doppelten Daten.
Dann ist die Erstellung des PS
nachträglich möglich.
Die Datenbankabfrage bedient sich der
strukturierten Abfragesprache SQL - (Structured
Query Language )
Warum DB ? - Start -
Optionen
- Struktur - Hilfe -
Objekte
- Tabellen - Beziehungen
- Abfragen - Formulare
- Berichte - Seiten -
Makros
- Module-VBA - Sicherung
- Links
Normalisierung
Unter Normalisierung versteht
man das Aufteilen der Daten eines bestimmten Projektes auf verschiedene
Tabellen, um das redundante Erfassen von Daten zu verhindern und so eine
optimale Datenbankstruktur bei der Erstellung der Tabellen (Grundlage jeder
Datenbank) zu erhalten.
Die Normalisierung erfolgt über 3 Regeln
:
1.Normalform
(1NF)
2.Normalform
(2NF) - setzt die 1NF voraus
3.Normalform (3NF) -
setzt die 2NF voraus
Warum DB ? - Start -
Optionen
- Struktur - Hilfe -
Objekte
- Tabellen - Beziehungen
- Abfragen - Formulare
- Berichte - Seiten -
Makros
- Module-VBA - Sicherung
- Links
Normalformen
1.Normalform:
Man spricht von einer Tabelle der 1NF, wenn alle
Spaltenwerte dieser Tabelle atomar sind, dh., es befinden sich in einer Spalte
auch nur eineindeutige Werte.
--> Beispiel : In der Tabelle
Kunden befindet sich in einer Spalte neben der Postleitzahl auch noch die
Anschrift der Kunden.
Diese Tabelle entspricht nicht der 1NF
!
Man legt also extra Spalten für Postleitzahl und für Adresse
an.
Auch das Anlegen von völlig identischen Spalten verstösst gegen die
1NF.
--> Beispiel : In der Tabelle Kunden sollen neben den
Stammdaten auch noch die verschiedenen Ansprechpartner der Kunden erfasst werden : Man legt mal eben 3
Spalten an : Ansprechpartner1 ; Ansprechpartner2 ; Ansprechpartner3 ...
Damit entspricht die Tabelle
ebenfalls nicht der 1NF, da bei der Abfrage der Ansprechpartner 3 Spalten
abgefragt werden müssen und somit auch die Anzahl der Ansprechpartner auf 3 beschränkt
bleiben würde.
Um die 1NF zu erhalten, wird eine Tabelle Ansprechpartner
erstellt, die neben der Nummer_Ansprechpartner auch noch die Beschreibung (Name, Vorname, Mail, Telefon, Fax ...) des Ansprechpartners
enthält.
Jetzt hat man zwar die Tabellen in der 1NF aber noch nicht die
Ansprechpartner der Kunden erfasst !
Um dies abzuändern, legt man nun eine dritte
Tabelle Kunden_Ansprechpartner an, in der die Kundennummer und die Nummer_Ansprechpartner erfasst werden .
Es werden jetzt die Tabellen Kunden, Ansprechpartner
und Kunden_Ansprechpartner miteinander verknüpft
!
Kunden: Kundennummer <---> Kunden_Ansprechpartner:
Kundennummer
und
Ansprechpartner: Nummer_Ansprechpartner <--->
Kunden_Ansprechpartner: Nummer_Ansprechpartner
Dadurch kann man einem Kunden so viele
Ansprechpartner wie nötig zuordnen.

Warum DB ? - Start -
Optionen
- Struktur - Hilfe -
Objekte
- Tabellen - Beziehungen
- Abfragen - Formulare
- Berichte - Seiten -
Makros
- Module-VBA - Sicherung
- Links
2.Normalform:
Eine Tabelle entspricht der 2NF, wenn
sie die 1NF erfüllt und jede Spalte der Tabelle, die nicht zum Primärschlüssel gehört,
vom kompletten Primärschlüssel abhängt.
--> Beispiel : Nehmen wir an
in der Tabelle Kundenhobbys haben wir den Primärschlüssel aus den beiden
vorhandenen Spalten Kundennummer und Hobbynummer zusammengesetzt.
Wenn nun
noch eine Spalte für die Hobbybeschreibung in der Tabelle wäre, entspräche diese
Tabelle nicht der 2NF, da die Beschreibung des Hobbys nur vom Teil
Hobbynummer des Primärschlüssels abhänge und nicht vom kompletten
Primärschlüssel (Die Hobbybeschreibung ist ja kundenunabhängig !).
Daraus
folgt, unsere 3 Tabellen entsprechen bereits der 2NF.
Warum DB ? - Start -
Optionen
- Struktur - Hilfe -
Objekte
- Tabellen - Beziehungen
- Abfragen - Formulare
- Berichte - Seiten -
Makros
- Module-VBA - Sicherung
- Links
3.Normalform:
Die 3NF fordert weiterhin, dass zwischen
den einzelnen Spalten der Tabellen der 2NF die
nicht zum Primärschlüssel
gehören, keine Abhängigkeiten bestehen.
--> Beispiel : Nehmen wir
wieder an, in der Tabelle Kunden würden noch die Spalten Kundenspezifik
(als Nummer ) und Beschreibung der Kundenspezifik (kauft regelmässig ; oft ;
selten ; nie...) enthalten sein .
Damit würde diese Tabelle nicht der
3NF entsprechen, da diese Tabelle noch weiter zerlegbar ist (siehe Beispiel
Hobbys).
Es muss eine weitere Tabelle Kundenspezifik angelegt
werden, um die 3NF zu erfüllen.
Man muss aber nicht immer
unbedingt alle Regeln einhalten, man sollte nur genau überlegen, wenn man davon
abweicht, dass man damit
a) mehr Speicherplatz belegt und
b)
Probleme beim Bearbeiten der Daten bekommen kann.
Für weitere Informationen über Datenbankstrukturen klicken Sie
bitte hier.
Warum DB ? - Start -
Optionen
- Struktur - Hilfe -
Objekte
- Tabellen - Beziehungen
- Abfragen - Formulare
- Berichte - Seiten -
Makros
- Module-VBA - Sicherung
- Links
Datenintegrität
Es stehen zwei Methoden zur Prüfung der
Datenintegrität zur Verfügung :
Warum DB ? - Start -
Optionen
- Struktur - Hilfe -
Objekte
- Tabellen - Beziehungen
- Abfragen - Formulare
- Berichte - Seiten -
Makros
- Module-VBA - Sicherung
- Links
Überprüfung der Gültigkeit der eingegebenen Daten
:
Access bietet Ihnen die Möglichkeit, bereits bei der Erstellung
der Tabelle nicht nur das Datenformat und die
Größe der Daten, sondern auch eine Gültigkeitsregel für die
Dateneingabe zu erstellen.
--> Beispiel : Sie legen eine Spalte
Postleitzahl an und die Daten stammen alle aus Deutschland.
Damit ist klar,
dass die Eingabe eine Zahl sein muss, die nicht länger und nicht kürzer als 5
Stellen sein darf.
Dafür können Sie das Eingabeformat Postleitzahl
festlegen und in der Zeile Gültigkeitsregel ebenfalls dieses Format
festlegen.
In die Zeile Gültigkeitsmeldung geben Sie nun den Text ein,
der erscheinen soll, wenn das geforderte Format nicht
übereinstimmt.
Weiterhin legen Sie fest, ob eine Eingabe der Postleitzahl
zwingend erfolgen muss, oder nicht .
Diese Festlegung erfolgt in der
Eigenschaftenzeile Eingabe erforderlich der jeweiligen Tabellenspalte
(Entwurfsansicht der Tabelle - Allgemein).
Warum DB ? - Start -
Optionen
- Struktur - Hilfe -
Objekte
- Tabellen - Beziehungen
- Abfragen - Formulare
- Berichte - Seiten -
Makros
- Module-VBA - Sicherung
- Links
Referentielle Integrität :
Die referentielle
Integrität ist aus zwei Teilen aufgebaut:
1)
Ein neuer Datensatz kann
nur dann der Tabelle mit einem Fremdschlüssel hinzugefügt werden, wenn ein
entsprechender Wert auch in der referenzierten Tabelle vorhanden
ist.
--> Beispiel : Sie haben die Tabellen Kunden und
Verkauf miteinander verknüpft.
Sie möchten dass alle Kunden in der
Tabelle Verkauf auftauchen und dann die spezifischen Verkäufe erfassen
.
Nehmen wir an, dass sie 49 Kunden mit den Kundennummern von 1 - 49 in der
Tabelle Kunden haben.
Dann können Sie nicht in die Tabelle
Verkauf die Kundennummer 50 eingeben, da es diesen Kunden der Nummer 50
in der Tabelle Kunden - nicht gibt .
2)
Wenn ein
Wert in einer Tabelle, die durch einen
Fremdschlüssel referenziert ist, geändert oder gelöscht wird, dann müssen auch
die Werte in der Tabelle mit Fremdschlüssel geändert oder gelöscht werden
.
--> Beispiel : Sie löschen einen Kunden aus der Tabelle
Kunden, dann dürfen in unserem Falle nicht die Datensätze des gelöschten
Kunden in der Tabelle Verkauf stehen bleiben, da bei der Abfrage der
Daten zum Verkauf einige Datensätze keiner Kundennummer der Tabelle
Kunden mehr zugeordnet werden können.
(Also genau überlegen ob
ein Datensatz, so wie in unserem Beispiel, zu löschen ist ! Es wäre peinlich,
einen Kunden zu löschen, ohne vorher alle Verkäufe in Rechnung gestellt zu
haben, da die Verkaufsdatensätze bei erstellter referentieller Integrität,
ebenso gelöscht würden !)
Weitere Informationen entnehmen Sie bitte der entsprechenden Fachliteratur
!
Warum DB ? - Start -
Optionen
- Struktur - Hilfe -
Objekte
- Tabellen - Beziehungen
- Abfragen - Formulare
- Berichte - Seiten -
Makros
- Module-VBA - Sicherung
- Links