Datenbank Begriffe !

koko123

Ensign
Registriert
Mai 2009
Beiträge
193
Hallo Leute,

kann mir jemand die Begriffe "Referentielle Integrität" und "Rendundanz" erklären ? Am besten mit eigenen Worten und verständlich:) . Im Internet habe ich was gefunden, aber mit den Fachwörtern usw ist es nicht einfach zu verstehen...

Ich wäre sehr froh wenn mir jemand helfen könnte !
Danke im Voraus..

mfg koko123
 
Das erste sagt mir grade nix aber Rendundanz bedeutet im Allgemeinen, dass Information mehrfach vorhanden ist. Als Beispiel stell dir in Mathematik 4 Gleichungen mit 3 Unbekannten vor. Man braucht nur 3 Gleichungen um dieses System zu lösen, es ist daher Redundanz vorhanden, da eine Gleichung überflüssig ist.

Redundanz muss sich nicht auf ein spezifisches, doppelt vorhandenes Element beziehen, vielmehr beuteutet es, dass sich aus der Menge der Daten die gewünschten Informationen auf mehrere Weisen extrahieren lassen.

Bezogen auf Datenbanken könntest du z.B. 3 Tabellen haben, von denen jeweils zwei miteinander verknüpft die selbe Information ergeben würden.
 
Zuletzt bearbeitet:
Aha ok das verstehe ich schonmal, ich hatte schon einen ähnlichen Gedankengang. Danke clericc !

Hoffentlich kann mir noch jemand "Referentielle Integrität" erklären. Das ist glaub ich nicht ganz einfach...
 
Referentielle Integrität:
Die Datenbank darf zu keinem Zeitpunkt einen nicht passenden Foreign Key enthalten.
Sprich, du darfst in einer Tabelle nicht einen Datensatz haben, der auf einen nichtvorhandenem/fehlerhaften Foreign Key (zB in einer anderen Tabelle) referenziert.
(Ich hoffe ich habe es richtig erklärt...)
 
1.) Redundanz = Doppelte Daten

2.) Referentielle Integrität (musste kurz bei Wikipedia nachgucken...) = Vereinfacht gesagt: Die korrekte Verknüpfung zweiter Tabellen.

-----------


2a) Genauer: Zwei Tabellen in einer Relationalen Datenbank werden üblicherweise über jeweils EIN Feld in den Tabellen verknüpft. Meistens wird in der Master(papa)Tabelle der Primärschlüssel verwendet und in der Detail(Kind)Tabelle eben ein neues Feld meistens sogar mit einem ähnlichen oder gleichen Namen wie der Name der Spalte in der papatabelle.

2b) Beispiel:

Tabelle: Firma (Papa)
Tabelle: FirmenAdresse (Kind)

Firma hat als Primärschlüssel ein Feld/Spalte Namens "firmaCode"
FirmenAdresse benötigt auch ein Feld um Firma und FirmenAdresse miteinander zu verknüpfen.
Also z.B. auch eine Spalte "firmaCode"

Referentielle Integrität ist folgendes:
In der Kindtabelle darf jetzt in der Spalte firmaCode nur ein Wert stehen der auch schon in der Tabelle Firma in der Spalte firmaCode enthalten ist.

Vereinfacht: Es MUSS es zu jedem Kind einen Papa geben.

3) Zombies:
Falls es diese Ref. integrität nicht gibt, könnte es eventuell Kinder ohne Papa geben (Nennen wir "Zombies/Zombiedatensätze").
In solchen Fällen bringen die Kinder nix mehr und können meistens gelöscht werden, weil diese Daten "freifliegend" sind und nicht mehr weiter verknüpft sind.

Üblicherweise können die Zombies über die der DB zugehörigen Anwendung noch nicht mal mehr angeschaut werden.

(Firma öffnen um die Adresse der Firma anzugucken - was aber nicht geht wenn die Firma schon gelöscht ist, kann man ja auch nicht mehr die Adresse angucken obwohl noch in der DB vorhanden)

4) Du wirst dann auch schnell über Integrity Constrains stolpern:
Das sind Regeln, die bestimmen was passiert wenn z.B. der Papa gelöscht wird.
Da kann man (Appl.Developer,DB-Modelling Architect oder DB-Admin) dann sagen
dass auch gleich noch das Kind (Firma löschen = Firma + FirmenAdresse löschen) mitgelöscht wird (on cascade delete war das doch??)

==> Wenn's dich interessiert oder du das öfters brauchst lohnt sich dann doch ein Buch...
Aber keine ahnung welches...
Google mal nach den Begriffen: "Datenbank" + "Grundlagen"

Grüßle, Robberb.
 
Boar danke Leute für eure Mühe :D echt spitze ! Werds mir ma alles durchlesen :)
 
Zurück
Oben