SQL: mehrere Tabellen?

... komplette Frage anzeigen

3 Antworten

Stell dir vor du hast eine Kundendatenbank. Du speicherst, welche Artikel die Kunden gekauft haben und auch ihre Adress- und Zahlungsinformationen.

Warum sollte man jetzt bei jedem bestellten Artikel den kompletten Name, Adresse, Email, Kontonummer usw. mit abspeichern? Stattdessen hat jeder Kunde eine Kundennummer, bei den bestellten Artikeln steht nur die Kundennummer, und wenn man die persönlichen Daten braucht, referenziert man die aus der anderen Tabelle über die Kundennummer. Wenn der Kunde eine neue Adresse hat, musst du die nur an einer Stelle ändern.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von kindgottes92
30.11.2016, 00:46

Danke, das Beispiel ist besser als meines :) 

0

Das Stichwort heißt Redundanz.

Die macht die DB nicht nur langsam und klaut Speicher, sondern sorgt auch für Konsistenzprobleme IN der Datenbank.

Und sowas dann abzufragen ist auch mehr als unschön.

Du solltest dich dringend mit Theorie zu relationalen Datenbanken beschäftigen...

Der Vorgang die Entitäten auf die abmelden aufzuteilen nennt sich Normalisierung.

Antwort bewerten Vielen Dank für Deine Bewertung

Nicht alle Informationen lassen sich in einer einzigen Tabelle erfassen. Wenn die Anzahl der Werte eines Attributs nicht überall gleich ist zB.

Beispiel: Du willst eine Datenbank, die neben persönlichen Daten auch die Autonummern der Menschen enthält. Wenn jeder genau ein auto hätte könnte man das in einer Tabelle lösen. Da es aber auch Menschen ohne Auto und Menaschen mit mehreren autos gibt, ist es sinnvoll, eine zusätzliche Tabelle an zu legen, in welcher jeden auto sein Besitzer zugeordnet wird.

Ansonsten müssten für jeden Menschen eine größere Zahl an Spalten frei gehalten werden, in welche dann jeweils eine Autonummer eingetragen werden kann. Nur wie viele solcher spalten lässt man? Es könnte immer sein, dass jemand noch mehr Autos hat.

Zugegeben, blödes Beispiel, aber ich hoffe, du verstehst, worauf ich hinaus will.

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?