Berechnung von Speicherplatzbedarf 1. In vielen EDV-Umgebungen werden Datum und Uhrzeit als Zeitstempel (TIMESTAMP) gespeichert. Der Zeitstempel ist eine ganze Zahl: Die Anzahl der Tausendstelsekunden, die seit dem 1.1.1970, 0.00 Uhr, vergangen sind. Frage: Wie viele Byte sollten sinnvollerweise für ein TIMESTAMP zur Verfügung stehen? Musterlösung: 1 Byte kann 256 verschiedene Werte annehmen. Damit kann man Timestamps in einem Zeitraum von 256/1000 sec., also ca. ¼ sec., codieren. Jedes weitere Byte bietet 256-mal so viele Möglichkeiten. Folglich kann man mit 2 Byte schon die verschiedenen Timestamp-Werte für 256 * ¼ sec. = ca. 60 sec. = 1 min. abdecken. 3 Byte reichen für 256 * 1 min. = ca. 4 Stunden. 4 Byte reichen für 256 * 4 Stunden = ca. 40 Tage. 5 Byte reichen für 256 * 40 Tage = ca. 10.000 Tage = ca. 27 Jahre. 6 Byte reichen für 256 * 27 Jahre = ca. 7.000 Jahre. Ein Zeitraum von 7.000 Jahren ist ausreichend, so dass mindestens 6 Byte Speicherplatz für ein TIMESTAMP zur Verfügung stehen müssen. 2. Wie viele Byte braucht man ungefähr, um alle 80 Mio. Personen der BRD zu speichern (Modellierung wie beim Personalausweis)? Im Personalausweis sind enthalten: - 9-stellige Nummer - Nachname - Vorname - Geburtsdatum - Geburtsort - Staatsangehörigkeit - Gültig-Bis-Datum - Wohnort - Straße und Hausnummer - Größe in cm - Augenfarbe - Ausstellende Behörde - Datum der Ausstellung Musterlösung 1: Zunächst überlegt man, wieviel Speicherplatz benötigt wird, um 1 Person zu speichern. Wenn man die Datentypen Zeichenfolge, Zahl und Datum zu Grunde legt, kann man den Speicherplatz errechnen. Weil es sich einerseits bei fast allen Feldern um Zeichenfolgen handelt und es andererseits möglich ist, alle Felder als Zeichenfolgen zu modellieren, beschränken wir uns auf diesen einen Datentyp (die Näherung ist gut genug). Ein Datum braucht 8 Zeichen, Größe 3 Zeichen, Augenfarbe 10 Zeichen, Straße und Hausnummer, Name, Vorname, Ausstellende Behörde je 30 Zeichen, der Rest je 20 Zeichen. Dann kommt man auf 9 + 30 + 30 + 8 + 20 + 20 + 8 + 20 + 30 + 3 + 10 + 30 + 8 = 226 Zeichen. Bei Verwendung der ASCII-Tabelle braucht jedes Zeichen 1 Byte, also braucht man 226 Byte pro Person. Für 80 Mio. Personen sind das 226 * 80 Mio. Byte = 18,08 Millarden Byte. Gerundet sind das 18 Gigabyte Speicherplatz. Verlangt die Aufgabenstellung keine größere Genauigkeit, reicht diese Antwort völlig aus. Musterlösung 2: Wenn eine genaue Umrechnung von 18,08 Mrd. Byte in GB verlangt ist und 1 GB = 1.024 MB = 1.024 KB = 1.024 Byte zu Grunde gelegt wird, muss man so rechnen: 18,08 Mrd. Byte = 17.656.250 KB = 17.242,4 MB = 16,84 GB. Wenn der Aufgabentext es verlangt, numerische Werte als solche zu codieren, sieht man für die Körpergröße nur 1 Byte vor (wenn man nur positive Zahlen darstellen möchte, kommt man damit bis 256 – das reicht völlig aus). Wenn man auch das Datum codiert, kann man entweder eine 8-stellige Zahl (yyyymmdd) nehmen, die 4 Byte benötigt, oder man nimmt yyyy = 2 Byte, mm = 1 Byte, dd = 1 Byte, also auch 4 Byte, oder man nimmt einen Zeitstempel (6 Byte). Der Gesamtspeicherbedarf reduziert sich entsprechend (Berechnung siehe Musterlösung 1).