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

Datenbankmodelle ,

die Normalisierung der Tabellen

und die Datenintegrität .









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 :

Gültigkeitsüberprüfung


Referentielle Integrität





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