Quick Ref.
Functions
date
number
string
Data Types
date
number
string

ACME Buchhaltung

In diesem Tutorium wird eine Datenbank verwendet, die die Grundlage eines einfachen Buchhaltungssystems darstellt. ACME verkauft Produkte an Kunden, die regelmäßig Bestellungen tätigen. Da die Kunden nicht sofort zahlen müssen, verwaltet ACME für jeden Kunden ein Kundenkonto. Auf diesen Konten können auch Gutschriften stehen, was aber eher selten vorkommt.

BADGUY PRODUCT
Kunden mit einem Konto bei ACME Produkte, die bei ACME vorrätig sind
ID NAME ADDRESS
C001 Wile E Coyote www.warnerbros.com
C002 Sylvester www.warnerbros.com
C003 Tom www.mgm.com
C004 Elmer Fudd www.warnerbros.com
C005 Dick Dastardly www.warnerbros.com
ID DESCRIPTION PRICE
P001 Anvil 75
P002 Portable holes 5
P003 Horseshoe magnet 80
P004 TNT 50
P005 Bomb 50
P006 Elastic band 2
P007 Rocket roller skates 80
P008 Space ship 60000000
P009 Road sign "Diversion Left" 30
P010 Road sign "Diversion Right" 30
RECEIPT SHIPPED
Geldeingänge von Kunden Lieferungen an Kunden
BADGUY RDATE NOTES AMOUNT
C005 1998-02-10 DD 5
C005 1998-03-10 DD 5
C005 1998-04-10 DD 5
C005 1998-05-10 DD 5
C005 1998-06-10 DD 5
C005 1998-07-10 DD 5
C001 1998-07-15 Cheque 100
C001 1998-07-23 Cash 255
BADGUY SDATE PRODUCT QUANTITY
C005 1998-01-01 P008 1
C001 1998-07-10 P003 1
C001 1998-07-22 P004 2
C001 1998-07-22 P005 12
C001 1998-07-23 P005 12
C001 1998-07-23 P006 1
C001 1998-07-23 P007 1

Einige Anmerkungen zu Systemen mit/für Finanzdaten und die Beispieldatenbank:

  • Geldbeträge sollten genau gespeichert werden. Gewöhnlich wird DECIMAL(10,2) verwendet. Es sollte nie ein FLOAT-Wert verwendet werden, um Geldbeträge zu speichern.
  • Es muß eine Buchungskontrolle geführt werden. Es genügt nicht nur zu wissen, wer wem wieviel schuldet. Es ist auch wichtig zu wissen, warum.
  • Jede "Transaktion" ist aufzuzeichnen und auf unbestimmte Zeit zu speichern. Eine Transaktion entsteht, wenn (A) Jemand ACME Geld zahlt (Eintrag in Tabelle RECEIPT) oder (B) ACME Waren versendet, wofür ACME Geld will (Eintrag in Tabelle SHIPPED). Der Begriff ist nicht mit dem Datenbankbegriff Transaktion zu verwechseln.
  • Der aktuelle Kontostand wird nicht gespeichert. Der Wert kann bei Bedarf berechnet werden. Konten können "konsolidiert" werden, d.h. alle Transaktionen eines Kunden werden in eine Archiv-Datei verschoben und durch einen einzigen "Saldovortrag"-Eintrag ersetzt.
  • Jede Transaktion ist mit Datum und Uhrzeit zu versehen.
  • Transaktionen dürfen nicht geändert werden. Wenn eine Eintrag nicht korrekt ist, ist er durch einen zusätzlichen Eintrag "aufzuheben" (Storno). (Mit dieser Datenbank können Fehlbuchungen nicht zurückgenommen werden.)
  • Es wird nicht versucht, die Ein- und Ausgänge miteinander abzugleichen.
  • Einige Schwächen dieses einfachen Systems werden im Tutorium besprochen.