Hallo Tweety944,
Wenn Sie solche Aufgaben bekommen, sollten Sie zuerst analysieren, was wichtig ist und was eingehalten werden muß!
Wenn ich Ihre Aufgabe sehe und die Details nicht kenne, kehre ich Ihre Aufgaben um:
a) es ist wichtig, alle Messwerte vorrangig möglichst zeitgenau zu erfassen und keinen Messwerte zu verlieren!
b) es können viele Messwerte von vielen Maschinen gleichzeitig eingehen, der Primär-Schlüssel, der auf Primary-Index mit AutoIncrement gesetzt wurde, identifiziert den Erfasssungs-Satz zu 100 %
c) Die Abfrage der Daten ist secondär wichtig - Die können warten, Hauptsache primär, werden die Daten gespeichert!
d) Eine Revision ist evtl. notwendig
Begründung meiner Entscheidungen:
a) Bei einer reinen Messwert-Erfassung gibt es keine Abhängigkeiten, ein Auto-Commit führt zur 2. schnellsten Ausführung - besser wäre sogar die Ausführung ohne TRANSACTION, egal von wieviel Maschinen, durchzuführen!
b) Die Erhöhung einer ID als AutoIncrement verursacht eine etwas angehobene Verarbeitungszeit, weil ein Index geschrieben werden muß, dient aber der Eindeutigkeit der Auffindung des Satzes über diese ID. Hier ist abzuwägen, ob dies bei extrem hoher Anzahl der Messwerte, sinnvoll ist - meines Erachtens ja, da man dann lieber den Maschinenpark aufstocken sollte!
UND NUN ZUM VERSTÄNDNIS:
Transaktionen werden allgemein programmiert, um bei Nichteinhaltung von bestimmten Bedingungen, den Vorgang ggf. zurück rollen zu können, so als würde nichts passiert sein!
Ferner werden Transaktionen in Verbindung von referenzieller Intigrität verwendet. Damit hat man sich vor 25 Jahren wirklich abquälen müssen, wird aber heute bei den meisten Betrieben nach unten, heute nicht mehr verwendet - und ich bin sogar davon überzeugt, daß die meisten Programmierer, diesen Begriff gar nicht mehr kennen!
Bei referenzieller Intigrität würde man z.B. eine Warengruppe löschen, die dann alle Artikel löscht, sofern nicht z.B. Buchungen noch in den letzten 2 Jahren auf allen Artikeln der Warengruppe erfolgt sind! Hier eine falsche Bedingung nicht beachtet, führt zum Totalchaos! Heute kostet Speicherplatz nichts mehr! Also wenn es nicht unbedingt notwendig ist, führt man diese Schritte nicht mehr durch!
Dagegen schon in die andere Richtung, also bei der Datenerfassung oder bei der Datenübernahme aus Altsystemen (Datenmigration)! Also ein Artikel muß einer Warengruppe angehören, damit die Speicherung erfolgreich ist, weil man möchte ja später alle Artikel finden können, die einer Warengruppe angehören! Nur kann man die Artikel nicht „fallen lassen“, wenn diese nicht verjoinbar sind, sondern läßt diese am besten in eine Garbage laufen! Die Artikel, die joinbar sind, werden weiter transportiert und die anderen müssen geprüft werden und ggf. die Warengruppen nach erfasst werden. Man kann dann später die Garbage entsprechend auf den neuen Import „anhängen“ und erneut durch laufen lassen!
Bei Banken, werden sicherlich die höchsten Standards gesetzt haben, um mit Transaktionen korrekt zu arbeiten, wenn ich aber sehe, was für „Milliarden die Banken versenken“, bezweifle ich sogar hier eine korrekte Umsetzung! Stellen Sie sich vor:
a) Sie stehen vor der Kasse und wollen 1000 Euro haben
b) Ihr Freund läßt sich den gleichen Betrag, sich sekunden genau auszahlen
c) Genau im gleichen Moment erfolgt eine Lastschrift von 10.000 Euro
d) Ihr Konto ist nur über 1000 Euro verfügbar
REVISION NACH MEINER AUFFASSUNG:
Bei einer reinen Messwert-Erfassung, muß kein TRANSAKTIONS-KONZEPT vorhanden sein, selbst wenn viele Abrufer, diese Daten zum lesen abrufen wollen!
Ich habe ein echtes Problem mit der folgenden Aufgabe. …
Bewerten Sie diese Designentscheidungen
Viele Grüße
1awww.com Ihr Internet-Service-Provider
Detlef Bracker