dtzzzzzz
Goto Top

CS - interne Datenbank

Hallo Leute,

es geht hier um die Programmiersprache C#, da ich keinen Bereich dafür gefunden habe, wo ich das sonst posten könnte. Da ich grade diese Sprache neu erlerne, würde mich interessieren, wie man die Daten für ein Tool am effektivsten abspeichert, die für so ein Tool nötig sind.

Als Beispiel: PHP hat eine MySQL- DB, wo die Daten für eventuelle Berechnungen vorliegen. Diese werden dann z. B. per I-Net geholt, verarbeitet und wieder abgespeichert. Ich möchte allerdings ein Tool bauen, das ausschliesslich (oder zumindest fast) nur offline genutzt werden kann. Allerdings sollen viele Daten für eine Berechnung dabei genutzt werden, die natürlich dann mit diesem Tool irgendwie mitgespeichert werden müssen bzw. mitinstalliert werden müssen.

Eine *.txt Datei dafür zu nutzen, scheint für mich nicht das richtige. Drin würde z. B. dann so was stehen: Peter,123587,53506l.53,2342349,Musterstadt
Silke,569646,234292.21,4325345,Musterstadt2

usw.

Da die Daten aber im Prinzip sehr zahlreich sind, wäre meine Frage, ob eine interne Datenbank für solche Zwecke in C# existiert, wo man diese Daten speichert und die vorallem mit dem Tool nach der Veröffentlichung mit installiert werden.

Danke für die Hilfe im Voraus.

Content-Key: 97928

Url: https://administrator.de/contentid/97928

Printed on: April 26, 2024 at 23:04 o'clock

Mitglied: 16568
16568 Sep 26, 2008 at 13:27:00 (UTC)
Goto Top
Wie wärs ebenfalls mit MySQL, oder MSSQL, oder Oracle, oder DB2, oder Access, oder Foxpro, oder Firebird, oder, oder, oder...


Lonesome Walker
Member: dtzzzzzz
dtzzzzzz Sep 26, 2008 at 13:50:52 (UTC)
Goto Top
Ja, aber geht das einfach so, dass so eine DB wie z. B. MySQL auch gleich bei der Installation auf einem Rechner mitinstalliert wird, wenn man so ein Tool nutzen möchte? Angenommen, dass der Anwender diese DB vorher auf seinem PC nicht hat.
Member: kaiand1
kaiand1 Sep 26, 2008 at 14:02:29 (UTC)
Goto Top
Nimm zb Portable Mysql und setzt den auf nen anderen Port.
Da zb bei manche ne Datenbank laufen haben und evtl deinen Programm keinen Zugriff drauf gegen werden
Oder wenn du eine Portable DB mitbringst das und schon eine Läuft läßt sich deine dann nicht nutzten wegen den selbe Port...
Member: Biber
Biber Sep 26, 2008 at 14:06:29 (UTC)
Goto Top
Moin dtz...usw,

ob der Aufwand gerechtfertigt ist eine (Freeware-) Datenbank auf einem Kundenrechner mit zu installieren hängt sicherlich davon ob, ob es sinnvoll ist
  • ein Datenbanksystem einzusetzen, also mehrere normalisierte Tabellen, deren Inhalte in gegenseitigen Abhängigkeiten stehen
  • oder sich der Sachverhalt eher auf ein, zwei flache Tabellen bezieht mit vielleicht noch ein paar *.ini-Parametern
  • oder ob es sinnvoller ist, sich ein eigenes Datenformat auszudenken, weil Du meinetwegen selbst verwaltete verpointerte Baumstrukturen verwalten musst
  • oder ob sich ein allgemein lesbares Dateiformat verwenden lässt (z.B. Excels *.xls-Format.)

Und das hängt von Rahmenparametern ab wie Datenvolumen, Komplexität, Portierbarkeit/Austausbarkeit der Daten, Einzel/Mehrfachzugriffen, Konsistenzanforderungen, Verfügbarkeit etc.

Ich habe mich bemüht, diese unvollständige Aufzählung für Dich in die "richtige" Reihenfolge zu bringen.
Datenvolumen und Komplexität der Datenstrukturen wären die wichtigsten Fragezeichen.

Wenn Du dazu mal zwei Sätze ausformulieren könntest...

Grüße
Biber
Member: dtzzzzzz
dtzzzzzz Sep 26, 2008 at 17:57:09 (UTC)
Goto Top
Hi Biber,

danke für deine ausführliche Antwort. Ok, die Daten werden wahrscheinlich eher flach sein. Also, wäre jetzt nach deiner Formulierung wohl eine *.ini Datei oder eher wohl eine *.xls Datei die passende Datenbankstrukturen. Ist eine Excels-Datei als eine DB unbedenklich, wenn man z. B. keine Excels installiert hat? Also kann das Tool sie dann trotzdem auslesen, bzw. verändern?

Als ergänzende Frage wäre da noch, ob die Daten dann auch irgendwie gegen Ansicht geschützt werden können in einer Excels-Tabelle?
Member: Biber
Biber Sep 27, 2008 at 13:26:12 (UTC)
Goto Top
Moin dtz..usw,

lass uns da schrittweise weitertasten...
Wenn Du von Komplexität und anzunehmendem Datenvolumen her gesehen keine Datenbank im Hintergrund brauchst, wäre die nächste Frage - genau wie Du auch formuliert hast - "will ich denn, dass sich die Daten auch ohne (mein) Programm lesen lassen oder sind die absolut geheim und schützenswert?"

Und da gehen sicherlich die Meinungen auseinander.
Von meiner Warte aus (so wie ich die Lebenszyklen bzw. befristete Verfügbarkeit von Programmversionen erlebt habe) plädiere ich IMMER für eine strikte Trennung von Programm und Daten.
Programm und Programmcode/-algorithmen sind schützenswert und sollten nicht klar lesbar und kopierbar sein, okay.
Daten dagegen (außer wenn sie fachlich/inhaltlich schützenswert sind) sollten unverschlüsselt/auch ohne ein Programm interpretierbar sein.
Wenn z.B. Dein Benutzer die Beispieldaten, die Du oben skizzert hast auch mal in einem Präsentationsprogrämmchen als Tortengrafik darstellen will, dann wäre es natürlich sinnvoll, wenn diese Daten in allgemein verbreiteten Dateiformaten zugänglich wären.

Langer Rede kurzer Sinn: Falls die Daten nicht gerade aus Adressdaten von F.D.P.-Mitgliedern und deren Liechtensteiner Kontonummern bestehen, dann wäre ein einfaches zeilenweises Testformat (z.b. *.CSV).
Wenn Du die Daten "unleserlich" für andere Programme haben willst, dann denke Dir ein eigenes .dtzzzz-Format aus, also eine Struktur, die nur Dein Programm kennt.

Grüße
Biber
Member: dtzzzzzz
dtzzzzzz Sep 30, 2008 at 08:07:19 (UTC)
Goto Top
Vielen Dank, Biber, für die ausführlichen Antworten!