Fach und Prüfer in 2. Normalform werde ich normalisieren, sehen Sie noch Fehler?Prüfer und Fach sind noch Duplikate vorhanden, die Attribute sind noch nicht normalisiert.
Prüfer und Fach sind noch Duplikate vorhanden, die Attribute sind noch nicht normalisiert.
Das Relationenschema besteht aus 5 Attributen. Davon ist das vierte Attribut ein Tupel und somit nicht atomar. Ein Tupel gehört zu einer Relation, daher könntest Du m. E. in der 1. NF schon mehrere Tabellen haben bzw. haben müssen (das kann aber vom Prof. anders gesehen werden).
In der 2. NF käme dann die weitere Aufteilung auf Tabellen, kann ich bei Dir nicht erkennen. Und, wenn ich es richtig sehe, liegt der Spaß dann auch schon in der 3. NF vor, weil es keine transitiven Abhängigkeiten gibt.
Die funktionalen Abhängigkeiten sind auch nicht vollständig angegeben.
Das habe ich übrigens falsch gesehenUnd, wenn ich es richtig sehe, liegt der Spaß dann auch schon in der 3. NF vor, weil es keine transitiven Abhängigkeiten gibt.
Was soll ich jetzt tun?Das habe ich übrigens falsch gesehen![]()
Ich habe alle funktionale Abhängigkeiten geschrieben, soweit ich verstanden habe. Was fehlt noch?Nein. In der letzten Tabelle stimmt z. B. 6,3,123 nicht. Das wäre 6,1,123 und damit wäre FNR von Student-MATRNR funktional abhängig. Da Student-MATRNR hier kein Schlüssel ist, wird somit die 2. NF verletzt.
Nachtrag: außerdem lässt Du die bestehenden funktionalen Abhängigkeiten bei den Normalformen teilweise unter den Tisch fallen.
FNR -> {Fakultätsname, Dekan}
nennst. Um ein Schema normalisieren zu können, muss es erst einmal ein Schema geben. Praktisch läuft das aber nicht so ab, dass man erst einmal ein völlig denormalisiertes Schema erstellt, das man dann aufgabenmäßig in die 1., 2. und 3. NF überführt.dass idR zuerst die Modellierung (z.B. in einem ERD) erfolgt und anschließend der Normalisierungsprozess stattfindet
Vom Vorgehen oder vom Normalisieren? Das Vorgehen habe ich ja oben schon angerissen, was das Normalisieren betrifft: sicher, z. B. aus Performancegründen.Gibt es Situationen, wo ggf. ein Abweichen davon sinnvoll scheint?
Zum Bspl. in einem "Data Warehouse": https://de.wikipedia.org/wiki/SchneeflockenschemaAbweichen davon sinnvoll
Das glaube ich gerne und ist im Grunde ja auch (von der Theorie her) nicht so schwierig. Kann ich aber in meiner Abgabe so nicht schreiben. Wir haben da eine Vorgabe und sollen dann ein ERD und eine Normalisierung ausarbeiten. Unsere Lektüre sieht als Standardweg vor, erst das ERD zu modellieren. Die Aufgabenstellung sagt normalisieren und modellieren, was aber ja auch ein "Überprüfen" sein kann, ob das aufgefallen ist oder nur stumpf von a - z abgearbeitet wird. Mich hatte es etwas stutzig gemacht, deswegen wollte ich mal eure Meinung hören.Um ein Schema normalisieren zu können, muss es erst einmal ein Schema geben. Praktisch läuft das aber nicht so ab, dass man erst einmal ein völlig denormalisiertes Schema erstellt, das man dann aufgabenmäßig in die 1., 2. und 3. NF überführt.
Ich kann natürlich nur für mich sprechen, aber die Normalisierung macht man doch eher automatisch bis zu einem gewissen Grad schon im Kopf und man muss sich eher dazu zwingen, zu denormalisieren, weil sich dagegen sofort etwas in einem sperrt 😀 Umgekehrt wird man auf diese Weise (Kopf) oft keine perfekte Normalisierung erreichen.
Vom Vorgehen oder vom Normalisieren? Das Vorgehen habe ich ja oben schon angerissen, was das Normalisieren betrifft: sicher, z. B. aus Performancegründen.
Auch gut zu wissen. Betrifft mich aber erstmal nicht (zum Glück)Zum Bspl. in einem "Data Warehouse": https://de.wikipedia.org/wiki/Schneeflockenschema
Das glaube ich gerne und ist im Grunde ja auch (von der Theorie her) nicht so schwierig. Kann ich aber in meiner Abgabe so nicht schreiben. Wir haben da eine Vorgabe und sollen dann ein ERD und eine Normalisierung ausarbeiten. Unsere Lektüre sieht als Standardweg vor, erst das ERD zu modellieren. Die Aufgabenstellung sagt normalisieren und modellieren, was aber ja auch ein "Überprüfen" sein kann, ob das aufgefallen ist oder nur stumpf von a - z abgearbeitet wird. Mich hatte es etwas stutzig gemacht, deswegen wollte ich mal eure Meinung hören.
Im Endeffekt kommt es drauf an, wo kommt das Datenmodell initial her. Wenn ich eine textuelle Beschreibung habe, dann modelliere ich es direkt nach an der 3ten Normalform. Da ist es unsinning (außer im akademischen Kontext um es zu lernen) es erst wirklich wortgetreu umzusetzen und dann zu normalisieren. Wenn steht "Eine Rechnung besteht aus Vorname, Nachname des Kunden, Rechnungspositionen etc. wird man der Praxis nicht eine Enität Rechnung modellieren mit einem Attribut VORNAME_KUNDE - sondern direkt eine Entität Kunde. In der Uni macht man es übungswiese meist aber erstmal um es überhaupt zu lernen & zu verstehen
Anders sieht es in der Praxis aber aus, wenn man ein altes Datenmodell bekommt - ich bin aktuell in einem Projekt, wo wir uns das Datenmodell angesehen haben und das verletzt die NF massiv - das stammt aber aus uralten Zeiten (Es gibt noch Felder für die 4-stellige PLZ). Da muss man wirklich hingehen und schauen, wo da überall die NF verletzt ist.
Noch vor Rolf? Fünf ist Trümpf? 🤣LimDul hat gesagt.:Es gibt noch Felder für die 4-stellige PLZ
Man muss hier unterscheiden. Das eine (hier) ist zum lernern und das andere (dein Ständig) die Praxis.BTW: Ich verletze die NF "ständig", einfach weil die Performance sonst in den Keller gehen würde.