Frage von jonibay, 19

SQL: mehrere Tabellen?

Hi,

was ist der Vorteil, wenn man in SQL mehrere Tabellen mit einander verknüpft und nicht alle Infos in eine Zeile schreibt? Macht sowas nur Sinn, wenn mehrere Begriffe zusammen gebündelt werden (Adresse: Straße, Hausnummer, PLZ, Ort), oder auch bei Name (Vorname, Nachname) oder sogar bei einzelnen Werten (z.B. Likes)?

Das durchsuchen wird doch mit mehreren Tabellen immer komplizierter? Oder geht das dann doch schneller, weil in den einzelnen Datenbanken weniger Daten liegen?

Danke, jonibay

Antwort
von GrobGeschaetzt, 11

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.

Kommentar von kindgottes92 ,

Danke, das Beispiel ist besser als meines :) 

Antwort
von Seanna, 5

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
von kindgottes92, 7

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.

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten