Datenbank - Access (Verstoß gegen referentielle Integrität)

2 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Datenintegrität Es werden drei Arten der Datenintegrität unterschieden: 1. Wertebereichsintegrität – Integrität auf Datenfeldebene

Es wird geprüft, ob der eingebebene Attributwert aus dem Wertebereichs des Attributes stammt. 

Access lässt die Angabe verschiedener Datentypen zu, die wiederum eingeschränkt werden können. So ist es möglich, Ober- und Untergrenzen für die Werte anzugeben oder auch Plausibilitätsprüfung vorzunehmen.
  1. Datenintegrität auf Datensatzebene

    Hier geht es um die die Korrektheit des Datensatzes, so dass beim Hinzufügen, Ändern oder Löschen von Datensätzen keine Schwierigkeiten auftreten.

    Durch Normalisierung sichert man die Datenintegrität auf Datensatzebene weitgehend.

  2. referentielle Integrität – Integrität auf Beziehungsebene

    Hier geht es um die die Korrektheit der Beziehungen zwischen den Attributen in einer Relation und der Erhaltung der Eindeutigkeit des Schlüssels.

    Ein Kunde zahlt seine Telefonrechnung nicht und wird deshalb vom Telefonnetz abgetrennt. Die freigewordenen Nummer wird nach kurzer Zeit an einem neuen Teilnehmer vergeben. Da Kundenname mit den Zahlungseingängen über die Telefonnummer verknüpft sind, erhält jetzt der Neukunde die Mahnung, die seinem Vorgänger zugedacht war.

    Sollen festgelegte Beziehungen zwischen Relationen auch bei Änderungen oder Löschungen bestehen bleiben, so muss man dafür sorgen, dass die referentielle Integrität durchgesetzt wird.

    Referentielle Integrität sorgt für die Korrektheit und Konsistenz der Beziehungen zwischen den Relationen.

    Dadurch lassen sich Fehler in der Datenbestand, sog. Anomalien, verhindern.

    Es gibt folgende Arten von Anomalien:

    Einfügeanomalie
    
    Änderungsanomalie
    
    Löschanomalie
    

    Voraussetzungen für die Herstellung einer Beziehung mit referentieller Integrität:

    Beide Relationen sind in einer Datenbank gespeichert.
    
    Beide Relationen verfügen über ein gemeinsames Attribut (Referenzattribut) vom selben Typ.
    
    Das Referenzattribut der Mastertabelle ist ein Primärschlüssel.
    

    Herstellung einer Beziehung mit referentieller Integrität:

    Beziehung wird von der Detailtabelle auf die Mastertabelle gezogen
    
    referentielle Integrität einschalten, eventuelle Optionen wählen.
    

    Beispiel

    Ohne Optimierung wurden in ACCESS drei Tabellen erstellt:

    Lehrer(LNr, Name)
    
    ist_Tutor(LNr, SNr)
    
    Schüler(SNr, Anschrift, Geb.-Datum)
    

    Von den Detailtabellen Lehrer bzw. Schüler wurden nun die Beziehungen mit referentieller Integrität zur Mastertabelle hergestellt. ACCESS zeigt nun die Beziehungen. Allerdings werden in Gegensatz zur im Unterricht behandelten Darstellung die Kardinalitäten genau falsch herum angetragen (Was kein Fehler von ACCESS ist, sondern im Unterricht aus didaktischen Gründen entsprechend "verkehrt" verdreht wurde).

    Aktualisierungsweitergabe: Referentielle Integrität verhindert Änderungen am Primärschlüsselwertes eines Datensatzes der Mastertabelle. Wird die Option Aktualisierungsweitergabe aktiviert, so werden Änderungen an die Detailtabelle weitergegeben.

    Beispiel: Änderung der Kundenummer, die ein Primärschlüssel einer Mastertabelle ist, muss sich auf Detailtabellen fortpflanzen.

    Löschweitergabe: Referentielle Integrität verhindert Löschen von Datensätzen der Mastertabelle, wenn diese noch in Betziehung zu Detaildatensätzen stehen. Wird die Option Löschweitergabe aktiviert, so wird der Datensatz der Mastertabelle und die an ihm hängenden Daten der Detailtabellen mit gelöscht.

esma58 
Beitragsersteller
 21.11.2011, 21:38

boahh,, danke das hat mir weitergeholfen..=)

Eine referentielle Integrität kann man einrichten, um den Inhalt von Datenfeldern (Spalten) in Abhängigkeit einer anderen Tabelle zu überwachen. Wenn ich z.B. eine Mitglieder-Tabelle habe, wo alle Mitglieder mit einer Mitglieds-Nr gespeichert sind und dazu eine Beitrags-Tabelle, wo die Mitgliedsbeiträge unter der Mitglieds-Nr gespeichert werden, so kann ich beim Definieren der Beitrags-Tabelle angeben, dass nur solche Mitglieds-Nrn gültig sind, die in der Mitglieds-Tabelle auch vorhanden sind. Diese Abhängigkeit nennt man referentielle Integrität oder man sagt auch, die Beitrags-Tabelle ist der Mitglieder-Tabelle untergeordnet. Bei der Eingabe einer ungültigen Mitglieds-Nr in die Beitragstabelle wird die Eingabe dann verhindert (Fehlermeldung), weil dies ein Verstoß gegen die festgelegte Regel wäre.