Datenbanknormalisierung - Wer hat Recht?

Mein Professor (der behauptete, seit vielen Jahren ein solides Verständnis für die Systementwicklung zu haben) und ich streiten uns über das Design unserer Datenbank.

Als Beispiel: Mein Professor besteht darauf, dass dieses Design richtig ist: (Liste der Spalten)

Subject_ID
Description
Units_Lec
Units_Lab
Total_Units

usw...

Beachten Sie die Spalte mit den Gesamteinheiten. Er sagte, dass diese Spalte enthalten sein muss. Ich habe versucht zu erklären, dass es unnötig ist, denn wenn Sie es möchten, stellen Sie einfach eine Abfrage, indem Sie die beiden addieren.

Ich habe ihm ein Beispiel gezeigt, das ich in einem Buch gefunden habe, aber er besteht darauf, dass ich mich bei der Erstellung unseres Systems nicht zu sehr auf Bücher verlassen muss. Dasselbe gilt für ähnliche Fälle wie in diesem:

student_ID
prelim_grade
midterm_grade
prefinal_grade
average

ect ...

Er wollte, dass ich den Durchschnitt aufnehme! Überall, wo ich bin, kann ich Artikel lesen, die mich davon überzeugen, dass dies eine Verletzung der Normalisierung ist. Wenn ich den Durchschnitt brauchte, kann ich die drei Noten leicht berechnen. Er führte einige Szenarien auf, darunter: "Hey! Was ist, wenn die Abfrage versehentlich gelöscht wurde? Was werden Sie tun? Deshalb müssen Sie sie in Ihre Tabelle aufnehmen!"

Muss ich meine Datenbank (die aus mehr als 40 Tabellen besteht) rekonstruieren, um seine Anforderungen zu erfüllen? Liege ich falsch und habe diese Dinge einfach übersehen?

BEARBEITEN:

Eine andere Sache ist, dass er den Gesamtbetrag in die Zahlungstabelle aufnehmen wollte, was ich für unnötig halte. (Berechnen Sie einfach den Stückpreis des Produkts und die Menge.) Er wies darauf hin, dass wir diese Spalte für die Berechnung von Belastungen und / oder Gutschriften benötigen, die für das gesamte Systemmanagement von entscheidender Bedeutung sind und für den Ausgleich von Transaktionen erforderlich sind. Bitte sag mir was du denkst.

Antworten auf die Frage(7)

Ihre Antwort auf die Frage