Daten in normalisierte Datenbank einfügen
Alexander Brock
- datenbank
0 Rouven0 Ilja0 Andreas Lindig
Hallo Freunde des gehobenen Forumsgenusses,
Ich beschäftige mich gerade mit Datenbanken, SQL und Normalisierung. Dabei ist mir aufgefallen, dass immer nur beschrieben wird, wie man aus vielen Tabellen wieder eine virtuelle große macht (mit joins).
Wenn man jetzt eine Datenbank mit drei Tabellen hat:
1. vornamen
vorname_id (integer)
vorname (varchar)
2. nachnamen
nachname_id (integer)
nachname (varchar)
3. telephonnummern
vorname_id (integer)
nachname_id (integer)
telephonnummer (integer)
Gibt es dann eine Syntax für Insert, mit der man einen neuen Kontakt einfügen kann? Oder muss das Programm, das die Datenbank verwendet selbst nachschauen, ob es Vorname oder Nachname schon gibt und entsprechend verschiedene Inserts machen?
Gruß
Alexander Brock
Hi,
also ich kenne verschiedene Ansätze dafür:
MfG
Rouven
Hallo Freunde des gehobenen Forumsgenusses,
also ich kenne verschiedene Ansätze dafür:
- Verwende einen View [...] STORED-PROCEDURE
Beides Wörter, von denen ich keine Ahnung habe, mit denen ich mich aber beschäftigen werde, vielen Dank.
Gruß
Alexander Brock
yo,
Ich beschäftige mich gerade mit Datenbanken, SQL und Normalisierung.
bei einer richtigen normalisierung wäre das hinzufügen kein problem. diese drei tabellen haben nämlich nichts mit normalisierung zu tun, sondern gehören alle in eine tablle. oder ist genau das der grund deiner frage nach dem INSERT, eine neue tabelle aufzubauen und mit daten zu füttern ?
Gruß
Ilja
Ilja hat es ja schon geschrieben: Deine DB ist nicht anständig normalisert. Du mußt alles zusammenlassen, was zusammengehört. Ein Datensatz für eine Person besteht z.B. aus Vorname, Nachname, Geburtsdatum (eine Entität).
Angenommen aber, Du willst diese Teile auch vereinzeln - was jetzt wenig sinnvoll scheint - dann bräuchtest Du noch eine Tabelle für die eigentlichen Personen. z.B. Person_ID=12345, Vorname_ID=3 (Alexander->wird aus Tabelle Vornamen geholt), Nachname_ID=7 (Brock->wird aus Tabelle Nachnamen geholt), Telefon_ID=85 (0251/1245632->wird aus Tabelle Telefonnummern geholt).
Ich empfehle Dir das Buch "SQL - Der Schlüssel zu relationalen Datenbanken". (rororo - Grundkurs Computerpraxis). Da wird das ganze Verfahren sehr ausführlich und am anschaulichen Beispiel beschrieben. Taschenbuch für 10,- Euro
Gruß, Andreas