Laden...

Serialisiertes Objekt als Datenbank

Erstellt von dahaack vor 12 Jahren Letzter Beitrag vor 12 Jahren 2.346 Views
D
dahaack Themenstarter:in
47 Beiträge seit 2011
vor 12 Jahren
Serialisiertes Objekt als Datenbank

Hallo,

ich möchte für eine eigene Webseite eine Datenbank haben, die zum Beispiel Benutzernamen und Passwörter, später aber auch sehr "verzweigte" Objekte speichern und laden können soll.

Die für die Website benötigten Daten habe ich alle in eine statische Klasse gepackt, damit ich auf die Daten global zugreifen kann.

Die Daten werden abgespeichert, indem ich die Daten der statischen Klasse in eine nicht statische Klasse kopiere, welche die gleichen Attribute hat. Diese Klasse wird serialisiert und auf Platte D: (Ordner wird für den Admin freigegeben) abgespeichert. Beim Serverstart wird die Datei einmalig geladen und in die statische Klasse kopiert.

Meine Frage:

Wie sicher ist das ganze? Braucht man eine SQL, LINQ oder sonstwas Datenbank um die Sicherheit vor Hackern zu gewährleisten? Müssen die Daten im Arbeitsspeicher verschlüsselt werden? Müssen sie auf der Platte verschlüsselt werden? Ist das allgemeine Konzept mit der statischen und nicht statischen Klasse tragbar? 😉

Vielen Dank schonmal an Euch!

C
2.122 Beiträge seit 2010
vor 12 Jahren

Nimm doch gleich eine Instanz der nicht statischen Klasse, wozu dann noch kopieren?

Was für eine geheime Seite ists denn? Jeder der auf der Platte lesen kann, kommt an die Daten. Nachdem du die Daten sowieso per Programm entschlüsseln musst um sie auszugeben, kommt auch jeder der ans Programm ran kommt, genauso an die Daten ran.
Passwörter solltest du mit einem (salted) Hash schützen.
Wenn du viele Daten hast, würd ich über eine Datenbank nachdenken. Nicht wegen dem Schutz (denn die Zugangsdaten stehen wie gesagt lesbar im Programm), sondern wegen dem Komfort beim Zugriff.

16.842 Beiträge seit 2008
vor 12 Jahren

Bedenke immer, dass der IIS bzw. Deine Anwendung viele verschiedene Threads hat, die womöglich dann zeitgleich auf Deine "Datenbank" zugreifen.
Hierzu gehört neben allen Zugriffen auf eine Seite auch die Resourcen, und alles was in der Global-Definition gesetzt wurde.

Frameworks wie Linq2Sql und EF fördern die Sicherheit durch das richtige Behandeln von SQL Befehlen.
Ich sehe im Moment keine Verbindung zu Deiner Sicherheitsanforderung und der Datenhaltung im Speicher. Wenn jemand an die Daten will, dann kommt er ran. Ob nun physikalisch oder übers Netz kommt auf viele Faktoren an.

Gruß

D
dahaack Themenstarter:in
47 Beiträge seit 2011
vor 12 Jahren

Hallo,

vielen Dank für Eure Antworten!

Nimm doch gleich eine Instanz der nicht statischen Klasse, wozu dann noch kopieren?

Die Daten sollen ja prinzipiell von allen Seiten (Defualt.aspx, Login.aspx...) aus verändert oder gelesen werden können. Ich hab im Netz gefunden, dass dies mit einer statischen Klasse, oder mit einer Definition in der Masterklasse möglich sei.

Ich habs aber nicht hinbekommen, auf die Daten der MasterPage von der Global.asax zuzugreifen um die Daten im Application_Start Event einmalig zu laden.

Was für eine geheime Seite ists denn?

Da muss ich zugeben, dass dies noch nicht 100%-ig feststeht. Wenn dann eines Tages die zündende Idee kommt ist es natürlich gut, wenn man sich in dem Thema schon gut auskennt. Deshalb wollte ich das grobe Prinzip von z.B. Ebay oder einem Sozialen Netzwerk einfach mal nachprogrammieren.

Jeder der auf der Platte lesen kann, kommt an die Daten.

Das heißt die Daten wären so gesehen relativ sicher, da es ja in der Regel nicht möglich ist auf die Platte D eines Webservers und auf den Arbeitsspeicher eines Servers zuzugreifen?

Nachdem du die Daten sowieso per Programm entschlüsseln musst um sie auszugeben, kommt auch jeder der ans Programm ran kommt, genauso an die Daten ran.

Ja. Meine Hoffnung bestand natürlich auch darin, dass keiner an mein Webseitenprogramm rankommt. Ich hab leider relativ wenig Ahnung von WebServer und speziell inwieweit man als "Außenstehender" auf die Daten eines Servers zugreifen kann. Aber so wie es aussieht muss ich die Daten wohl sowieso nicht verschlüsseln.

Passwörter solltest du mit einem (salted) Hash schützen.

Jo, danke für den Hinweis! Werd mich damit mal beschäftigen.

Wenn du viele Daten hast, würd ich über eine Datenbank nachdenken. Nicht wegen dem Schutz (denn die Zugangsdaten stehen wie gesagt lesbar im Programm), sondern wegen dem Komfort beim Zugriff.

Ich (frisch gewordener E-Tech-Ing) habe ein Semester Datenbanken gehabt, in denen ich das Prinzip der Relationalen Datenbanken kennengelernt habe. Und ich muss sagen, dass ich dieses Prinzip im Gegensatz zur Objektorientierten Programmierung relativ unübersichtlich finde.

Ein Beispiel am Sozialen Netzwerk:

Es gibt zum Beispiel eine Tabelle UserHasFriend in denen jeweils zwei User-IDs abgespeichert werden. Wenn jetzt für einen Speziellen User alle Freunde angezeigt werden sollen, muss die komplette Tabelle nach dieser ID durchsucht werden und hinter allen FreundesIDs sind dementsprechend die Freunde.

Im Vergleich dazu in der OOP:
Eine Klasse User hat das Attribut "friends" welches eine List<User> ist. Alle Freunde anzuzeigen ist hierbei natürlich denkbar einfach und vor allem auch schnell.

Bedenke immer, dass der IIS bzw. Deine Anwendung viele verschiedene Threads hat, die womöglich dann zeitgleich auf Deine "Datenbank" zugreifen.

Das ist in der Tat ein Problem über das ich mir nochmal Gedanken machen muss. Danke für den Hinweis.

Hierzu gehört neben allen Zugriffen auf eine Seite auch die Resourcen, und alles was in der Global-Definition gesetzt wurde.

Ich versuche natürlich alle Daten in einem einzigen Objekt zu kapseln. In der Global.asax (falls ich dich richtig verstehe) sind bisher keine Daten definiert.

Frameworks wie Linq2Sql und EF fördern die Sicherheit durch das richtige Behandeln von SQL Befehlen.

Du meinst die Sicherheit im Bezug auf gleichzeitiges Zugreifen / Schreiben?

Ich sehe im Moment keine Verbindung zu Deiner Sicherheitsanforderung und der Datenhaltung im Speicher. Wenn jemand an die Daten will, dann kommt er ran. Ob nun physikalisch oder übers Netz kommt auf viele Faktoren an.

Okay. Die Frage ist, ob man an die Daten leichter kommt, als wenn ich eine SQL Datenbank verwende? Kann ich davon ausgehen, dass niemand mit einem Pointer meinen Arbeitsspeicher durchforstet oder die Datenbankdatei von der Platte D: runterlädt?

Vielen Dank nochmal für Eure kompetente Hilfe!

C
1.214 Beiträge seit 2006
vor 12 Jahren

Ich hab leider relativ wenig Ahnung von WebServer und speziell inwieweit man als "Außenstehender" auf die Daten eines Servers zugreifen kann.

Sorry, aber ich finde das Thema ist dermaßen umfangreich und komplex, dass es überhaupt keinen Sinn macht, so oberflächlich darüber zu diskutieren. Deine Frage ist viel zu allgemein. Wie ich sehe bist du nicht gerade ein Anfänger, was programmieren angeht. Dann wirst du auch einsehen, dass IT-Sicherheit ein ähnlich umfangreiches Thema ist und sich nicht in zwei Sätzen beantworten lässt. Du brauchst einfach eine bessere Vorstellung von dem Gesamtkonzept, dann wirst du solche Fragen auch nicht mehr stellen.

Und ich muss sagen, dass ich dieses Prinzip im Gegensatz zur Objektorientierten Programmierung relativ unübersichtlich finde.

Das ist ja auch nichts neues. Das sind unterschiedliche Werkzeuge, und als Informatiker (oder E-Techniker) muss man wissen, wie man die zur Verfügung stehenden Werkzeuge einsetzt. In dem Zusammenhang gibt es auch viele Konzepte, wie ORM oder Objektorientierte Datenbanken. Ich will auf das Thema eigentlich nicht eingehen, aber ich kann dir versichern, dass relationale Datenbanken Sinn machen.

C
2.122 Beiträge seit 2010
vor 12 Jahren

... muss die komplette Tabelle nach dieser ID durchsucht werden ...

Dafür hat die Tabelle einen Index, mit dem sie die betroffenen Einträge schnell findet. Tabellen sind dazu gemacht.

Eine Klasse User hat das Attribut "friends" welches eine List<User> ist. Alle Freunde anzuzeigen ist hierbei natürlich denkbar einfach und vor allem auch schnell.

Die Freunde da hineinzukriegen erfordert allerdings Dateioperation. Und wehe du willst mal rausfinden, wer alles eine bestimmte Person als Freund hat. Dann durchsuchst du nämlich (je nach Community) tausende bis Millionen Dateien.

Kann ich davon ausgehen, dass niemand mit einem Pointer meinen Arbeitsspeicher durchforstet oder die Datenbankdatei von der Platte D: runterlädt?

Der Server sollte natürlich so geschützt sein dass niemand dran kommt. Ohne diese Annahme ist jedes Websystem sinnlos.

16.842 Beiträge seit 2008
vor 12 Jahren

Ein Beispiel am Sozialen Netzwerk:

Es gibt zum Beispiel eine Tabelle UserHasFriend in denen jeweils zwei User-IDs abgespeichert werden. Wenn jetzt für einen Speziellen User alle Freunde angezeigt werden sollen, muss die komplette Tabelle nach dieser ID durchsucht werden und hinter allen FreundesIDs sind dementsprechend die Freunde.

Im Vergleich dazu in der OOP:
Eine Klasse User hat das Attribut "friends" welches eine List<User> ist. Alle Freunde anzuzeigen ist hierbei natürlich denkbar einfach und vor allem auch schnell.

Du wirst hier an einer Relationalen Datenbank womöglich nicht vorbei kommen.
Mit einem entsprechenden ORM, wie dem Entity Framework, kannst Du aber Deine OOP Anforderung umsetzen und es werden auch nur die Properties geladen, die in diesem Moment benötigt werden: Lazy Loading => Last Senkung.

ADO.NET hält die Connection immer offen, sodass nur ein Reset stattfindet und man hier auch kaum Overhead hat.
Zudem sind bei Facebook natürlich enorme Optimierungen der SQL Befehle durchgeführt worden.

Ob ein Selektieren über viele Objekte mit vielen Verbindungen, Ausnahmen etc... im Speicher, oder ein Selektieren über viele Einträge in der Datenbank: ich vermute fast die Datenbank ist schneller.

D
dahaack Themenstarter:in
47 Beiträge seit 2011
vor 12 Jahren

Mahlzeit,

Sorry, aber ich finde das Thema ist dermaßen umfangreich und komplex, dass es überhaupt keinen Sinn macht, so oberflächlich darüber zu diskutieren. Deine Frage ist viel zu allgemein. Wie ich sehe bist du nicht gerade ein Anfänger, was programmieren angeht. Dann wirst du auch einsehen, dass IT-Sicherheit ein ähnlich umfangreiches Thema ist und sich nicht in zwei Sätzen beantworten lässt. Du brauchst einfach eine bessere Vorstellung von dem Gesamtkonzept, dann wirst du solche Fragen auch nicht mehr stellen.

Ja, da hast du natürlich Recht. Die Themen Webserver, Datenbanken und die Sicherheit sind dermaßen komplex, dass man kaum rausfinden kann, wo man überhaupt anfangen soll. 🙁

Und ich muss sagen, dass ich dieses Prinzip im Gegensatz zur Objektorientierten Programmierung relativ unübersichtlich finde.

Das ist ja auch nichts neues. Das sind unterschiedliche Werkzeuge, und als Informatiker (oder E-Techniker) muss man wissen, wie man die zur Verfügung stehenden Werkzeuge einsetzt. In dem Zusammenhang gibt es auch viele Konzepte, wie ORM oder Objektorientierte Datenbanken. Ich will auf das Thema eigentlich nicht eingehen, aber ich kann dir versichern, dass relationale Datenbanken Sinn machen.

Okay, ich werde mir die Objektorientierten Datenbanken nochmal genauer ansehen.

... muss die komplette Tabelle nach dieser ID durchsucht werden ...
Dafür hat die Tabelle einen Index, mit dem sie die betroffenen Einträge schnell findet. Tabellen sind dazu gemacht.

Das verstehe ich nicht. In beiden Spalten (User1, User2) ist eine ID (Primärschlüssel) abgespeichert. Somit ist es ja nichteinmal vernünftig möglich die Zeilen nach ID-Nummern zu ordnen. Das heißt das eigentliche Programm auf tiefster Ebene wäre dann mehr oder weniger gezwungen jedes einzelne Tabellenelement zu durchsuchen und abzufragen, ob es gleich der gesuchten ID ist. Ich sehe da kaum Optimierungspotential. In der Objektorienterten Programmierung habe ich direkte Referenzen zu den gesuchten Freunden. Es findet nichtmal wirklich eine Suche statt.

Eine Klasse User hat das Attribut "friends" welches eine List<User> ist. Alle Freunde anzuzeigen ist hierbei natürlich denkbar einfach und vor allem auch schnell.
Die Freunde da hineinzukriegen erfordert allerdings Dateioperation. Und wehe du willst mal rausfinden, wer alles eine bestimmte Person als Freund hat. Dann durchsuchst du nämlich (je nach Community) tausende bis Millionen Dateien.

Ich sehe da gar kein Problem. In meiner Hauptklasser erstelle ich zum Beispiel eine Methode MakeFriends(User user1, User user2) die beiden Usern jeweils den anderen User als Freund hinzufügt. Wenn ich jetzt frage, "Wer hat alles Herrn Mayer als Freund?" ist es die gleiche Suche wie "Welche Freunde hat Herr Mayer?". Ich muss nur einmalig den Account von Herrn Mayer suchen (hier kann man zum Beispiel alphabetisch ordnen um den Namen möglichst schnell zu finden, und danach kann man direkt alle Freunde (und meinetwegen auch Freundesfreunde) anzeigen ohne irgendwo weitersuchen zu müssen. Mitlerweile haben einige Facebooknutzer ja bereits mehrere Hundert Freunde 😄, das heißt die UserHasFriend Tabelle hat damit bereits etwa
AnzahlBenutzer * einige Hundert / 2
Zeilen.

Bei der Tabelle UserWritesMessageToUser bekomm ichs mit der Angst, wenn ich an die Tabelle denke. 8o
Stattdessen: Attribut List<Message> TransmittedMessages und List<Message> ReceivedMessages und alle gesendeten und empfangenen Nachrichten von Herrn Mayer sind direkt abrufbar

Kann ich davon ausgehen, dass niemand mit einem Pointer meinen Arbeitsspeicher durchforstet oder die Datenbankdatei von der Platte D: runterlädt?
Der Server sollte natürlich so geschützt sein dass niemand dran kommt. Ohne diese Annahme ist jedes Websystem sinnlos.

😉 Da hast du wohl Recht.

Ein Beispiel am Sozialen Netzwerk:

Es gibt zum Beispiel eine Tabelle UserHasFriend in denen jeweils zwei User-IDs abgespeichert werden. Wenn jetzt für einen Speziellen User alle Freunde angezeigt werden sollen, muss die komplette Tabelle nach dieser ID durchsucht werden und hinter allen FreundesIDs sind dementsprechend die Freunde.

Im Vergleich dazu in der OOP:
Eine Klasse User hat das Attribut "friends" welches eine List<User> ist. Alle Freunde anzuzeigen ist hierbei natürlich denkbar einfach und vor allem auch schnell.

Du wirst hier an einer Relationalen Datenbank womöglich nicht vorbei kommen.
Mit einem entsprechenden ORM, wie dem Entity Framework, kannst Du aber Deine OOP Anforderung umsetzen und es werden auch nur die Properties geladen, die in diesem Moment benötigt werden: Lazy Loading => Last Senkung.

ADO.NET hält die Connection immer offen, sodass nur ein Reset stattfindet und man hier auch kaum Overhead hat.
Zudem sind bei Facebook natürlich enorme Optimierungen der SQL Befehle durchgeführt worden.

Ob ein Selektieren über viele Objekte mit vielen Verbindungen, Ausnahmen etc... im Speicher, oder ein Selektieren über viele Einträge in der Datenbank: ich vermute fast die Datenbank ist schneller.){gray}

Viele Stichworte die mich erstmal wieder beschäftigen werden. 😉

Vielen Dank an alle! 👍

C
1.214 Beiträge seit 2006
vor 12 Jahren

Die Themen Webserver, Datenbanken und die Sicherheit sind dermaßen komplex, dass man kaum rausfinden kann, wo man überhaupt anfangen soll. 😦

Nicht nur das. Zu Sicherheit gehört noch viel mehr, als nur Datenbanken und Webserver. Es ist ja nicht umsonst ein eigener Beruf. Ein wirklich guter Admin hat sich sein Leben lang damit beschäftigt und Erfahrungen gesammelt. Dabei muss man viel mehr wissen, als den eigentlichen engen Bereich, den man gerade betreut.

Das heißt das eigentliche Programm auf tiefster Ebene wäre dann mehr oder weniger gezwungen jedes einzelne Tabellenelement zu durchsuchen und abzufragen, ob es gleich der gesuchten ID ist.

Falsch. Auch Datenbanken sind viel komplexer, als es auf den ersten Blick erscheint 😉 Du wirst niemals in der Lage sein, von der Performance her (und allem anderen auch) an eine große Datenbank heranzukommen, die große Datenmengen verwalten muss. Zum einen ist sehr wohl möglich (und wird auch so gemacht), einen Index über die beiden ID Spalten zu erstellen. Außerdem macht eine Datenbank noch viel mehr, um die Performance zu steigern. Da gibt es allein intelligentes und ausgefeiltes und bis ins Detail konfigurierbares Cachemanagement. Es werden Statistiken geführt, es gibt einen Query Optimizer, der anhand der Statistiken optimale Zugriffspfade erstellen kann, man kann Datenbanken Clustern, man kann Dateizugriffe automatisch verteilen, wenn du sagen wir tausend Festplatten hast usw... Eine größere Datenbank wie Oracle oder DB2 ist unglaublich komplex und umfangreich. Das ist dann auch eine Lösung, die man praktisch beliebig skalieren kann.

C
2.122 Beiträge seit 2010
vor 12 Jahren

In meiner Hauptklasser erstelle ich zum Beispiel eine Methode MakeFriends(User user1, User user2) die beiden Usern jeweils den anderen User als Freund hinzufügt.

Damit bearbeitest du also immer zwei Datensätze gleichzeitig. Das muss dann so passieren dass keiner zwischendrin die Datensätze ebenfalls anfassen will.
Und du bearbeitest immer das gesamte Objekt, nicht einfach nur einen Eintrag "A hat B als Freund", sondern (wenn man mal von XML-Dateien ausgeht) es wird der komplette (!!!) User geschrieben.

Wenn ich jetzt frage, "Wer hat alles Herrn Mayer als Freund?" ist es die gleiche Suche wie "Welche Freunde hat Herr Mayer?".

Aber nur wenn man sich wirklich immer wechselweise als Freund hat.

und danach kann man direkt alle Freunde (und meinetwegen auch Freundesfreunde) anzeigen ohne irgendwo weitersuchen zu müssen.

Wie soll das mit den Freundesfreunden gehen?
Wenn B ein Freund von A ist und C ist ein Freund von B, wie kommst du dann von A auf C? Du willst dir ja wohl kaum sämtliche User als verzeigerte Objekte in irgendeinem wahnsinns riesen Rechner gleichzeitig halten?

D
dahaack Themenstarter:in
47 Beiträge seit 2011
vor 12 Jahren

Auch Datenbanken sind viel komplexer, als es auf den ersten Blick erscheint 😉 Du wirst niemals in der Lage sein, von der Performance her (und allem anderen auch) an eine große Datenbank heranzukommen, die große Datenmengen verwalten muss. Zum einen ist sehr wohl möglich (und wird auch so gemacht), einen Index über die beiden ID Spalten zu erstellen. Außerdem macht eine Datenbank noch viel mehr, um die Performance zu steigern. Da gibt es allein intelligentes und ausgefeiltes und bis ins Detail konfigurierbares Cachemanagement. Es werden Statistiken geführt, es gibt einen Query Optimizer, der anhand der Statistiken optimale Zugriffspfade erstellen kann, man kann Datenbanken Clustern, man kann Dateizugriffe automatisch verteilen, wenn du sagen wir tausend Festplatten hast usw... Eine größere Datenbank wie Oracle oder DB2 ist unglaublich komplex und umfangreich. Das ist dann auch eine Lösung, die man praktisch beliebig skalieren kann.

Mag sein, dass du Recht hast. Ich tu mich halt wirklich schwer damit die objektorientierte Programmierung "aufzugeben" und ein riesen Datenwirrwarr zu akzeptieren. X(

In meiner Hauptklasser erstelle ich zum Beispiel eine Methode MakeFriends(User user1, User user2) die beiden Usern jeweils den anderen User als Freund hinzufügt.
Damit bearbeitest du also immer zwei Datensätze gleichzeitig. Das muss dann so passieren dass keiner zwischendrin die Datensätze ebenfalls anfassen will.

In diesem Beispiel sehe ich erstmal nicht das Problem. Selbst wenn beide neuen Freunde gleichzeitig während der MakeFriends Methode ihre Freunde anzeigen, ist es nicht weiter schlimm, dass für User1 bereits User2 als Freund eingetragen ist, für User2, allerdings noch nicht User1 eingetragen ist.

Und du bearbeitest immer das gesamte Objekt, nicht einfach nur einen Eintrag "A hat B als Freund", sondern (wenn man mal von XML-Dateien ausgeht) es wird der komplette (!!!) User geschrieben.

Nein, ich glaube nicht. Die Freundesliste ist ja glücklicherweise nur eine Liste aus Referenzen (also Pointern) auf die Freunde. Jede Person wird mit seinen Attributen nur einmalig abgespeichert.

und danach kann man direkt alle Freunde (und meinetwegen auch Freundesfreunde) anzeigen ohne irgendwo weitersuchen zu müssen.
Wie soll das mit den Freundesfreunden gehen?
Wenn B ein Freund von A ist und C ist ein Freund von B, wie kommst du dann von A auf C? Du willst dir ja wohl kaum sämtliche User als verzeigerte Objekte in irgendeinem wahnsinns riesen Rechner gleichzeitig halten?

Doch, so war der Plan. 😉 Ich sehe es als nicht ganz so schlimm an, wie sämltliche riesige verzweigte Tabellen in denen die Daten einfach "stupide" hintereinander geschrieben werden. Ich sehe die Synchronisation nach dem objektorientierten Konzept als nicht so schwierig zu realisieren an, wie beim Relationalen Datenbankkonzept. Das schöne an der Relationalen Datenbank ist natürlich, dass ich mich um die Synchronisation nicht mehr kümmern brauche.

Übrigens:
Mein ehemaliger DB-Prof hat eine etwa 30-köpfige EDV-Beratungsfirma. Er meinte, dass für eine Spezielle Suche eines Kunden angeblich fast 24 Stunden gebraucht würden. Er hat das ganze dann so gelöst, dass solche Suchen präventiv automatisch gestartet werden. Wenn jemand das Suchergebnis braucht, wird die letzte Suche ausgegeben, welche dann die Daten von vor etwa 24 Stunden beinhaltete.

Professoren reden aber auch manchmal recht viel, wenn der Tag lang ist... wenn ich mir aber das Konzept der Relationalen Datenbanken anschaue, dann finde ich das bei riesigen und verzweigten Tabellen und ganz ausgefallenen Suchanfragen über viele Tabellen garnicht mal so unrealistisch.

Nehmen wir mal an, man würde tatsächlich eine Seite haben in der kontinuierlich Daten gelesen und verändert werden, dann wird einem so eine Datenbank denk ich mal auch nicht kostenlos zur Verfügung stehen. Das wäre wiederum ein Vorteil der Serialisierten Klasse (sofern sowas damit überhaupt möglich wäre).

C
2.122 Beiträge seit 2010
vor 12 Jahren

Auch wenn du nur Referenzen speicherst (wovon ich schon ausgegangen bin) ists nicht so einfach. Stell dir mal Facebook vor, wenn da alle Userdaten im Speicher eines (?) Rechners stehen, wie das gehen soll. Wie und wie oft speichert man das dann ab? Wie lange lädt man es, wenn das System mal down ist?
Deine Idee ist für ein Spielprojekt zum lernen schon ok, aber es hat schon seinen Grund dass es Datenbanken gibt.
Informier dich mal welche es gibt und was die kosten. Und dann frag dich warum manche was kosten, ob die dann vielleicht doch ihren Sinn haben, oder ob man sie einfach mal kurz durch ein Speichermodell ersetzen kann.

Das mit deinem Prof kapier ich kein bisschen, ich würd mal sagen die Aussage ist so konfus dass wir die einfach mal ganz unbeachtet lassen können.

D
dahaack Themenstarter:in
47 Beiträge seit 2011
vor 12 Jahren

Hallo chillic,

auf einem Rechner ist sowas wie Facebook sicherlich nicht möglich. Ich bin gerade dabei die MySQL Datenbank runterzuladen und ich werde beide Konzepte mal parallel programmieren und vergleichen. Wenn ich etwas interessantes herausfinde oder Hilfe brauche werd ich mich melden.

Vielen Dank an alle soweit!

dahaack