Forum
Tipps
News
Menu-Icon

3. Normalenform (SQL / Datenbanken)

Hi,

ich hab ein kleines Problem und zwar soll ich bei einer Aufgabe überprüfen, ob ein Datenbankmodell der dritten Normalform (und auch den anderen beiden) entspricht.

Nun hab ich eine Mögliche Lösung, allerdings bin ihc mir noch nicht ganz sicher, dass alle transitiven Abhängigkeiten beseitigt sind. Kann man denn diese Lösung so stehen lassen oder gibt es da noch irgendwas, was ich nicht gesehen habe?

Hier zunächst mal die Aufgabe bzw. das Modell der Aufgabe:

Zitat
kunden ( kundenummer, name, straße, plz, ort, geburtsdatum );

pkw ( kennzeichen, erstzulassung, klimaanlage, modellname, leistung, länge, herstellername, strasse, plz, ort );

ausleihe ( kennzeichen, ausleihtag, anfangkm, rückgabetag, endekm );
(oder wem das zu abstrakt ist: ftp://prexador.dyndns.org/Aufgabenstellung.doc)

Und hier der Lösungsvorschlag von mir:

Zitat
kunden ( kundennummer, name, geburtsdatum, adressid);

adressen ( adressid, straße, hausnummer, plz, ort );

hersteller ( herstellerid, adressid );

ausleihwagen ( wagenid, kennzeichen, erstzulassung, wagentypid, herstellerid );

wagentyp ( wagentypid, leistung, klima, laenge, modellname );

ausleihe ( ausleihid, kundenummer, wagenid, ausleihtag, anfangkm, rueckgabetag, endekm );

Danke :)[/font]

Antworten zu 3. Normalenform (SQL / Datenbanken):

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Würde ich auf den ersten Blick auch so machen.

Einzig folgendes: In 'adressen' hast du wieder eine transitive Abhängigkeit, denn die Postleitzahl ist direkt vom Ort abhängig. Du speicherst somit jedesmal den Ortsnamen und die PLZ mit ab -> Redundanz.

Eigentlich müsste man die Orte also herauslösen. Und dann könnte man darüber nachdenken, die Adressen doch nicht separat zu speichern, da Straße und Hausnummer wohl nicht so oft doppelt vorkommen, denke mal man kann das als 1:1-Beziehung interpretieren, und die trennt man bekanntlich nur in Ausnahmefällen auf.

Würde also heißen: eine Tabelle 'ort' (name, plz) kreieren und in 'hersteller' und 'kunde' einen FK setzen. Straße und Hausnummer würde ich in 'kunde' und 'hersteller' belassen (das splittet zwar die logische Einheit der Adresse auf, macht aber datentechnisch eher Sinn).

Einwände sind willkommen ;D

greez 8)
JoSsiF

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button
Also das mit PLZ und Ort mach wohl Sinn, hab ich gar nicht dran gedacht..

Hab heute ne Informatikklausur geschrieben und da hab ich aber PLZ und Ort auch nicht getrennt, mal gucken, was das ergibt..

Mir ist leider auch aufgefallen, dass ich beim ER-Diagramm anstatt Rauten lauter Dreiecke benutzt hab für die Beziehungen (z.B. "Schüler" ist in "Klasse"). Nur einmal hats gestimmt, weil ich da eine "IS A" Beziehung hatte (Elternteil IS A Elternbeirat)... ::) Vielleicht werdens noch 13 Punkte ;)

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Ach ERM steht hier für Entity Relationship Model? Sollte der Lehrer vielleicht mal ausschreiben in der Aufgabe. Es könnte ja auch um Enterprise Resource Management gehen ;)

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button
Das erzählt er auch immer ;)

Ne, diese Rauten mit "verfasst" und "leitet", da hab ich nur Dreiecke angegeben, ich hoffe mal, das gibt keinen allzugroßen Punktabzug.. Und einen Befehl mit GRANT hab ich auch falsch (wo man dem Benutzer "master" in der Datenbank "fest" alle Rechte für die Tabelle "gast" geben sollte, da hätte ich

GRANT ALL PRIVILGES ON `gast`@`fest` TO `master`)

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Tja, du wirst es erleben, wenn die Klausur ausgewertet ist. Wir können da jetzt nichts mehr machen ;D

Ich finde ERM überhaupt etwas rückständig. Warum lehrt man im Jahr 2007 nicht UML?

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button
Mit UML haben wir auch angefangen, als es um Stapel und solche Sachen ging (mit Delphi... da erübrigt sich ja ein Kommentar ;)).

ERM kommt halt im schriftlichen Abitur dran und ist angepasst an Datenbanken, keine Ahnung. Aber da in unserem Kurs wohl keiner schriftlich Abitur macht, werdens wir wohl nicht mehr brauchen. Dafür können wir dann Datensicherheit machen und mit einem Cisco-Zertifikat abschließen beim Abi :D
 

« Tipp: PHP Funktion "Convert HTML into text"Galerie funktionier bei de Domain nicht, bei normaler Weiterleitung aber schon.. »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
COM Port
Die Abkürzung COM Port steht für Communication Port. Dies ist eine serielle Schnittstelle an PCs als Anschluß für Zubehör, wie Maus und Modem, a...

Gameport
Der Gameport ist ein Anschluss, der auf vielen frühen PCs und seit Ende der 1980er Jahre auch auf PC Soundkarten zu finden war. Während in den frühen 1980e...

Uplink Port
Siehe Switch. ...