| 3. Normalenform (SQL / Datenbanken) | |
|
Von: Der olle Schwoebel ***** am 23.04.2007 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 ); (oder wem das zu abstrakt ist: ftp://prexador.dyndns.org/Aufgabenstellung.doc)pkw ( kennzeichen, erstzulassung, klimaanlage, modellname, leistung, länge, herstellername, strasse, plz, ort ); ausleihe ( kennzeichen, ausleihtag, anfangkm, rückgabetag, endekm ); 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 | |
|
Antwort 1 von JoSsiF ***** am 24.04.2007 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 ![]() greez ![]() JoSsiF | |
|
Antwort 2 von Der olle Schwoebel ***** am 24.04.2007 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 | |
|
Antwort 3 von JoSsiF ***** am 24.04.2007 | |
|
Antwort 4 von Der olle Schwoebel ***** am 24.04.2007 ![]() 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`) | |
|
Antwort 5 von JoSsiF ***** am 24.04.2007 ![]() Ich finde ERM überhaupt etwas rückständig. Warum lehrt man im Jahr 2007 nicht UML? | |
|
Antwort 6 von Der olle Schwoebel ***** am 24.04.2007 ).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 | |
| « zurück | Antworten |



Vielleicht werdens noch 13 Punkte 

