Zum Inhalt springen

Speicherbedarf für Verbrauchsdaten berechnen


Empfohlene Beiträge

Hallo zusammen,

kann mir jemand bei der Berechnung einer Zwischenprüfungsaufgabe helfen?

"Die IP GmbH betreut 40.000 Kunden. Das Volumen des Datentransfers eines jeden Kunden soll jede Minute ermittelt werden. Diese Minutenwerde sollen eine Woche lang gespeichert werden. Zudem sollen die Muntenwerte zu den Tageswerten summiert und ebenfalls eine Woche lang gespeichert werden. Zu jedem Minuten- und Tageswert werden Kundennummer und Verbrauch gespeichert. Folgende Datentypen werden verwendet: Kundennummer char(20), Verbrauch: integer (32bit)
Berechnen Sie den Speicherbedarf für die Verbauchsdaten (Minuten und Tageswerte) einer Woche von 40000 Kunden in MebiByte"

Idee:

(40.000 * 4 Byte * 7 Tage * 24 h * 60 Min) + (40.000 * 4 * 7) = Ergebnis : 1024² = MebiByte

Thanks schonmal

 

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

minutenEinträgeProWoche = (Minuten / Stunde) * (Stunden / Tag) * (Tage / Woche) = 60 * 24 * 7

tagesEinträgeProWoche = (Tage / Woche) = 7

eintragGröße = (Größe Kundennummer) + (Größe Verbrauch) = ... ?

anzahlKunden = 40.000

ergebnis = ((minutenEinträgeProWoche * eintragGröße) + (tagesEinträgeProWoche * eintragGröße)) * anzahlKunden

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo marina.schatz,

vor 15 Stunden schrieb arlegermi:

eintragGröße = (Größe Kundennummer) + (Größe Verbrauch) = ... ?

vor 14 Stunden schrieb Enno:

jetzt, was ist der Speicherbedarf für den int Wert und was ist der Speicherbedarf für das char feld?

vor 16 Stunden schrieb marina.schatz:

Kundennummer char(20), Verbrauch: integer (32bit)

-->

Zitat

char als Datentyp legt fest, dass die einzelnen Zeichen eines Speicherbereichs aus je (i. d. R.) 8 Bits bestehen, die je ein darstellbares Zeichen (Buchstabe, Ziffer, Sonderzeichen ...) repräsentieren. Quelle: Wikipedia 

eintragGröße = 20 Zeichen a 8 bit + 32 bit = 192 bit

Wobei natürlich fünf Dezimalstellen reichen (40000 Kunden) und die nach binär umgerechnet, reichen 16 bit, char (2) anstatt 160 bit, char (20). Vielleicht wollen die aber noch expandieren *grins*.

vor 9 Stunden schrieb Enno:

(...) genau lesen war das Thema (...)

Grüße

Micha

 

Bearbeitet von mqr
tuning
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 14 Minuten schrieb mqr:
Zitat

char als Datentyp legt fest, dass die einzelnen Zeichen eines Speicherbereichs aus je (i. d. R.) 8 Bits bestehen, die je ein darstellbares Zeichen (Buchstabe, Ziffer, Sonderzeichen ...) repräsentieren. Quelle: Wikipedia 

eintragGröße = 20 Zeichen a 8 bit + 32 bit = 192 bit

Wobei natürlich fünf Dezimalstellen reichen (40000 Kunden) und die nach binär umgerechnet, reichen 16 bit, char (2) anstatt 160 bit, char (20). Vielleicht wollen die aber noch expandieren *grins*.

Ich würde den Datentyp char gar nicht auf bit runterbrechen. 8 bit entsprechen einem Byte, Char(20) sind 20 Zeichen, 1 Zeichen ist 1 Byte, ergo Char(20) = 20 Byte und Integer mit 32 bit sind etsprechend 4 Byte. -> 20+4 = 24 Byte.

vor 17 Minuten schrieb mqr:

Wobei natürlich fünf Dezimalstellen reichen (40000 Kunden) und die nach binär umgerechnet, reichen 16 bit, char (2) anstatt 160 bit, char (20). Vielleicht wollen die aber noch expandieren *grins*.

Wie kommst du darauf? Hier ist von einer Kundennummer die Rede, nicht von der Kundenanzahl/einer Durchnummerierung. Wieso sollte man 1. eine Kundennummer als Integerwert anlegen und 2. einfach laufende Nummern verteilen? Vielleicht ist die Kundennummer ja auch sowas wie "02-BW-0021-S-0452175". :)

 

Grüße

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Rienne,

vor 6 Minuten schrieb Rienne:

Wie kommst du darauf? Hier ist von einer Kundennummer die Rede, nicht von der Kundenanzahl/einer Durchnummerierung. Wieso sollte man 1. eine Kundennummer als Integerwert anlegen und 2. einfach laufende Nummern verteilen? Vielleicht ist die Kundennummer ja auch sowas wie "02-BW-0021-S-0452175". :)

Hast ja recht aber im Sinne von Datenbankmanagement und Speicherplatzverschwendung könnte man dann eine Tabelle mit einer Codierung implantieren. War nur eine Anmerkung zum Thema: Aufgabe lesen und Angabe char(20) umsetzen. Es könnten doch so einige Speicherplatz sparen wollen. Natürlich kann man auch die Zwischenrechnung in Byte vornehmen und erst den Verbrauch auf 4 Byte hochrechnen, wichtig ist ein richtiges Ergebnis und die Nachvollziehbarkeit der Zwischenrechnungen für Teilpunkte. Letztendlich wird aber alles binär gespeichert und bei einer Frage nach dem Speicherplatz ist der Ausgangsvariablentyp so nicht erheblich. Ich wollte die nicht als Intengerwert anlegen, sondern als Binärzeichen.

Zusätzlich:

vor 16 Stunden schrieb marina.schatz:

Zu jedem Minuten- und Tageswert werden Kundennummer und Verbrauch gespeichert.

Wobei die id des Eintrags noch nicht im Speicherbedarf berücksichtigt wurde.

---> Es könnte also die Kundennummer mit der Eintragsid kombiniert werden müssen.

Grüße

Micha

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Super, danke, das hat funktioniert:

ergebnis = ((minutenEinträgeProWoche * eintragGröße) + (tagesEinträgeProWoche * eintragGröße)) * anzahlKunden = 9683,52 Megabyte = 9235 Mebibyte (aufgerundet)

Vielen Dank euch. :facepalm: Es macht natürlich Sinn jeweil den Eintrag pro Person zu rechnen und dann mal 40.000 für alle Kunden zu rechnen. Mir war leider erst nicht klar, wie man den "eintragGröße" berechnet, aber das ist auch jetzt verständlich.

Grüße

Marina

 



 

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 Jahre später...

wenn ich es so berechnen will dann kommt anderes Ergebnis raus 

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace test
{
    class Program
    {
        static void Main(string[] args)
        {

            int minutenEinträgeProWoche = 10080;

            int tagesEinträgeProWoche = 7;

            int eintragGröße = 24;

            int anzahlKunden = 40000;


            double ergebnis = ((minutenEinträgeProWoche * eintragGröße) + (tagesEinträgeProWoche * eintragGröße)) * anzahlKunden;

            Console.WriteLine(ergebnis);
            Console.ReadKey();
        }
    }
}

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 14 Minuten schrieb mrdos01:

wenn ich es so berechnen will dann kommt anderes Ergebnis raus 

Das ganze ist fast 4 Monate her.

Ausserdem:
Alles klar, wir wissen jetzt, dass du ganz tollen Code schreiben kannst.

Aber warum genau schreibst du nicht auch das Ergebnis dazu um hier eine echte Hilfestellung zu geben?

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 5 Minuten schrieb RubberDog:

Das ganze ist fast 4 Monate her.

Anscheinend hast du Rechnprobleme. Es ist mehr als 2 Jahre her. 

vor 7 Minuten schrieb RubberDog:

Alles klar, wir wissen jetzt, dass du ganz tollen Code schreiben kannst.

erstens ist es gar nicht toll weil jeder Anfänger kann sowas schreiben zweitens wollte nun das Ergebnis im Code sehen.

vor 9 Minuten schrieb RubberDog:

Aber warum genau schreibst du nicht auch das Ergebnis dazu um hier eine echte Hilfestellung zu geben?

Bitte schön : 1093585408

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 5 Monate später...
Am 16.6.2016 um 15:58 schrieb arlegermi:

minutenEinträgeProWoche = (Minuten / Stunde) * (Stunden / Tag) * (Tage / Woche) = 60 * 24 * 7

tagesEinträgeProWoche = (Tage / Woche) = 7

eintragGröße = (Größe Kundennummer) + (Größe Verbrauch) = ... ?

anzahlKunden = 40.000

ergebnis = ((minutenEinträgeProWoche * eintragGröße) + (tagesEinträgeProWoche * eintragGröße)) * anzahlKunden

Noch genauer kann ich's eigentlich nicht erklären - was ist denn noch unklar?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...