Datenmanagement (war: noch ein Privat-Programmierer)

SQL, Dateimanagement - Sprachunabhängige Datenhaltung
Antworten
AnFan
Beiträge: 12
Registriert: Fr Jan 02, 2015 2:05 pm

Datenmanagement (war: noch ein Privat-Programmierer)

Beitrag von AnFan » Sa Jan 03, 2015 11:16 pm

Lieber Xin,
vielen Dank für Deine Antwort, die sowohl sympathisch wie auch aufschlußreich ist.
Laß mich hier an dieser Stelle noch ein paar wenige Dinge sagen oder fragen - danach müßte ich vermutlich in einem anderen Bereich einen neuen Thread anfangen?
1. Mein Problem ist sicher überschaubar. Es ist so etwas in der Art wie Du sagtest ("Welche CDs habe ich Otto ausgeliehen?"). Daß es sich dennoch etwas mehr verkompliziert, habe ich kurz nach 2000 festgestellt, als ein Programmierer-Freund mir die ganz Sache in ein Programm umgewandelt hat. Ich glaub, das war mit Dbase. Mensch, was mußten wir viele Emails wechseln, bis es endlich so war, wie ich wollte. Es war eine "Exe". Nachdem ich Win-XP hinter mir ließ, funktioniert sie nicht mehr, und ich machte es in Excel mit VBA von Null auf, für mich selbst. Hat geklappt, und klappt auch heute noch, nur ist es mir ein Dorn im Auge, seit ich es benütze, da ich gerne entweder eine eigenständige Applikation hätte, die entweder unter Linux oder unter Windows läuft - oder anstatt dessen Access, was nur sicherlich Nachteile hätte, u.a. den, daß ich halt nicht weiß, ob ich immer Microsoft Office zur Verfügung habe, zum Beispiel wenn ich an Linux-Computern sitze. Access würde sicherlich die Sache hundertprozentig erledigen. Anspruchsvoller bin ich nicht.
2. Ich kapiere nie ganz (und u.a. deshalb komme ich hier her), was SQL, MySql, etc. ist. Ist das ein File-Format? Oder ist es eine Sprache, oder beides? Ich habe beispielsweise den Kobo-Reader. Da ist eine Datei drin, die heißt "KoboReader.sqlite". Die habe ich versehentlich mal gelöscht; dann mußte ich wieder "von vorne" anfangen. Sie scheint eine Liste meiner Bücher zu beinhalten, mit allem Schnick-Schnack, wie die Frage, wann ich in einem Buch gelesen habe, oder ob das Buch in Wirklichkeit schon gelöscht ist. Nun, mir ist völlig klar, daß es Files gibt, die so etwas beinhalten können. Schwieriger war, darin zu "hacken". Wollte ich nämlich, aus bestimmten Gründen (keine Angst, nur für mich selbst), hat aber nicht geklappt. Dann wurde mir einmal mehr klar, daß dieses File zu der Art von Files gehört, die man nur mit einem spezifischen Programm "bearbeitet", genauer gesagt eben eigentlich nicht bearbeitet.

Kurzum: Sollte mir je die Idee kommen, meine Probleme per selbst gestrickten Computerprogramm in eine ähnliche Datei zu packen, mit welcher Sprache komme ich der Sache bei? (Anscheinend auch mit VB.Net, bzw. Ado, oder wie das Ding heißt).
Anders gesagt: wenn Du SQL programmierst - mit welcher Sprache programmierst Du? (falls die Antwort wäre, SQL sei ja schon eine Sprache, so würde meine nächste Frage lauten, wie komme ich dann da dran? Interpreter, Editor, ev. Compiler, ... ?????). Und: macht man damit auch eine Exe?

Verzeihung, daß ich Dich lange am Lesen gehalten habe.
Vielen Dank an alle im Voraus für jegliche Hilfe!
Last not least: wäre es wohl machbar, mit Python SQL-Dateien zu programmieren, bzw. mein Problem in den Griff zu bekommen (Otto, Paul und Herbert leihen sich CD's. Wer welche. Und noch einiges wenige mehr).

AnFan

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8492
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Datenmanagement (war: noch ein Privat-Programmierer)

Beitrag von Xin » So Jan 04, 2015 11:16 am

AnFan hat geschrieben:vielen Dank für Deine Antwort, die sowohl sympathisch wie auch aufschlußreich ist.
Nicht schleimen, die Putzfrau ist für diese Woche schon durch. ;-)
AnFan hat geschrieben:Laß mich hier an dieser Stelle noch ein paar wenige Dinge sagen oder fragen - danach müßte ich vermutlich in einem anderen Bereich einen neuen Thread anfangen?
Wäre gut... ^^
AnFan hat geschrieben:1. Mein Problem ist sicher überschaubar. Es ist so etwas in der Art wie Du sagtest ("Welche CDs habe ich Otto ausgeliehen?"). Daß es sich dennoch etwas mehr verkompliziert, habe ich kurz nach 2000 festgestellt, als ein Programmierer-Freund mir die ganz Sache in ein Programm umgewandelt hat. Ich glaub, das war mit Dbase. Mensch, was mußten wir viele Emails wechseln, bis es endlich so war, wie ich wollte. Es war eine "Exe". Nachdem ich Win-XP hinter mir ließ, funktioniert sie nicht mehr, und ich machte es in Excel mit VBA von Null auf, für mich selbst. Hat geklappt, und klappt auch heute noch, nur ist es mir ein Dorn im Auge, seit ich es benütze, da ich gerne entweder eine eigenständige Applikation hätte, die entweder unter Linux oder unter Windows läuft - oder anstatt dessen Access, was nur sicherlich Nachteile hätte, u.a. den, daß ich halt nicht weiß, ob ich immer Microsoft Office zur Verfügung habe, zum Beispiel wenn ich an Linux-Computern sitze. Access würde sicherlich die Sache hundertprozentig erledigen. Anspruchsvoller bin ich nicht.
Access ist nicht unbedingt eine Linux-Applikation, sollte damit aber klar kommen.
Vielleicht schaust Du Dir mal Base von OpenOffice an.
AnFan hat geschrieben:2. Ich kapiere nie ganz (und u.a. deshalb komme ich hier her), was SQL, MySql, etc. ist. Ist das ein File-Format? Oder ist es eine Sprache, oder beides?
Access oder Base sind eine Datenbanken mit Benutzeroberfläche. Geeignet, um derartigen Kleinkram zu erledigen. Interessiert heute aber keinen mehr, weil wir im Zeitalter des Internets leben und die Leute nicht mehr an einen einzelnen Computer fahren, um dort Daten abzulegen. Das ganze als Buzzword: "Cloud-Computing"

Cloud-Computing ist ein neues Wort, dahinter ist aber nix als heiße Luft, jedenfalls ist die Technik schon recht abgestanden, das ganze gibt's vermutlich länger als Computer: Man trennt Daten(-bank) und Anwendung. Die Daten liegen also irgendwo im Nebel (und wenn man nicht aufpasst sieht man sie nie wieder bzw. der Nebel lichtet sich und jeder sieht alles). Wie im Internet mit den Webseiten gibt es einen Datenbank-Server (und wenn das Ding SQL spricht, nennt man es meistens SQL-Server) und einen Client: Deine Anwendung. Deine Anwendung kann sich also nun mit dem SQL-Server verbinden und ihn mit SQL zum Beispiel

Code: Alles auswählen

SELECT * FROM MEDIA WHERE Type='CD' AND Artist='Queen'
bitten, Dir alle CDs von Queen zu schicken. Statt einer Website bekommst Du eine Tabelle mit den CDs die auf die geforderte Bedingung passen.

SQL ist eine (mehr oder weniger) standardisierte Sprache, die von verschiedenen Datenbanksystemen gesprochen wird.

Der SQL-Service kann auf dem gleichen Rechner laufen wie Deine Anwendung - muss aber nicht. Dieses Forum lief zum Beispiel aus Speichermangel einige Zeit auf einem Server proggen.org und die Daten zum Forum auf einem Server, der ausschließlich die Forumsdatenbank hielt.
AnFan hat geschrieben:Ich habe beispielsweise den Kobo-Reader. Da ist eine Datei drin, die heißt "KoboReader.sqlite". Die habe ich versehentlich mal gelöscht; dann mußte ich wieder "von vorne" anfangen. Sie scheint eine Liste meiner Bücher zu beinhalten, mit allem Schnick-Schnack, wie die Frage, wann ich in einem Buch gelesen habe, oder ob das Buch in Wirklichkeit schon gelöscht ist.
SQLite ist eine SQL-Datenbank, die nicht auf einem fremden Rechner läuft, sondern nur mit Dateien. Dein Kobo-Reader speichert darin mit SQL-Befehlen seine Daten. Da man mit SQLite Dateien nutzt, braucht man keinen Datenbank-Service.
AnFan hat geschrieben:Nun, mir ist völlig klar, daß es Files gibt, die so etwas beinhalten können. Schwieriger war, darin zu "hacken". Wollte ich nämlich, aus bestimmten Gründen (keine Angst, nur für mich selbst), hat aber nicht geklappt. Dann wurde mir einmal mehr klar, daß dieses File zu der Art von Files gehört, die man nur mit einem spezifischen Programm "bearbeitet", genauer gesagt eben eigentlich nicht bearbeitet.
Eben mit SQLite.
AnFan hat geschrieben:Kurzum: Sollte mir je die Idee kommen, meine Probleme per selbst gestrickten Computerprogramm in eine ähnliche Datei zu packen, mit welcher Sprache komme ich der Sache bei? (Anscheinend auch mit VB.Net, bzw. Ado, oder wie das Ding heißt).
Anders gesagt: wenn Du SQL programmierst - mit welcher Sprache programmierst Du? (falls die Antwort wäre, SQL sei ja schon eine Sprache, so würde meine nächste Frage lauten, wie komme ich dann da dran? Interpreter, Editor, ev. Compiler, ... ?????). Und: macht man damit auch eine Exe?
SQL ist eine Sprache und normalerweise baut man sich in seiner Programmiersprache einen String zusammen mit der gewünschten Anfrage und schickt diese an den Datenbank-Service. Ich selbst programmiere in der Regel in C bzw. C++. SQL ist aber im Prinzip unabhängig von der Programmiersprache.

Wenn Du eine ".exe" wünschst fällt Python für Dich leider aus. Das ist eine interpretierende Programmiersprache. Trotzdem habe ich den Eindruck, dass Python etwas für Dich sein könnte, wenn Du den Anspruch ".exe" etwas weiter fassen könntest. :-)
Damit könntest Du eine Oberfläche generieren, aber beispielsweise auch eine Webanwendung. Wenn Deine Datenbank auf einem SQL-Server dann im Netz läuft, kannst Du zuhause über die graphische Oberfläche darauf zugreifen und im Netz über einen Web-Client.
AnFan hat geschrieben:Last not least: wäre es wohl machbar, mit Python SQL-Dateien zu programmieren, bzw. mein Problem in den Griff zu bekommen (Otto, Paul und Herbert leihen sich CD's. Wer welche. Und noch einiges wenige mehr).
Ich halte das für die beste Lösung, was ich bisher so von Deinem Werdegang mitbekommen habe.


Weiterführendes auf proggen.org: SQL-Lite für C++, unfertiges(!) SQL-Tutorial (noch keine Qualitätskontrolle - nur um mal einen Blick zu riskieren)
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

AnFan
Beiträge: 12
Registriert: Fr Jan 02, 2015 2:05 pm

Re: Datenmanagement (war: noch ein Privat-Programmierer)

Beitrag von AnFan » Mo Jan 05, 2015 1:23 am

Verrückt! Deine Antwort ist "brutal" spannend! (Ich tu schon wieder schleimen - ist aber einfach ehrlich gemeint: noch nie wurden mir einige Dinge klar, die Du hier klarstellst. Echte, vielen Dank!)
Xin hat geschrieben:Access ist nicht unbedingt eine Linux-Applikation, sollte damit aber klar kommen.
Vielleicht schaust Du Dir mal Base von OpenOffice an.
Werde ich tun. Vielen Dank. Für den Moment habe ich jedoch beides, MS-Office, wie auch OpenOffice (nur auf zwei verschiedenen Rechnern) und könnte daher wählen. Was ich mich nur immer gefragt habe, ist, ob ich es überhaupt mit Access (bzw. der OpenOffice-Variante) machen soll. (Ich wußte von "Base" noch nichts und bedanke mich für den Tip)
Xin hat geschrieben:Access oder Base sind Datenbanken mit Benutzeroberfläche. Geeignet, um derartigen Kleinkram zu erledigen. Interessiert heute aber keinen mehr, weil wir im Zeitalter des Internets leben und die Leute nicht mehr an einen einzelnen Computer fahren, um dort Daten abzulegen. Das ganze als Buzzword: "Cloud-Computing"

Cloud-Computing ist ein neues Wort, dahinter ist aber nix als heiße Luft, jedenfalls ist die Technik schon recht abgestanden, das ganze gibt's vermutlich länger als Computer: Man trennt Daten(-bank) und Anwendung. Die Daten liegen also irgendwo im Nebel (und wenn man nicht aufpasst sieht man sie nie wieder bzw. der Nebel lichtet sich und jeder sieht alles). ...

SQL ist eine (mehr oder weniger) standardisierte Sprache, die von verschiedenen Datenbanksystemen gesprochen wird.

Der SQL-Service kann auf dem gleichen Rechner laufen wie Deine Anwendung - muss aber nicht. ...

SQLite ist eine SQL-Datenbank, die nicht auf einem fremden Rechner läuft, sondern nur mit Dateien. Dein Kobo-Reader speichert darin mit SQL-Befehlen seine Daten. Da man mit SQLite Dateien nutzt, braucht man keinen Datenbank-Service.
Sooft ich im Zusammenhang mit SQL von Servern gehört hatte, hat es bei mir immer ausgesetzt. Ich habe nie kapiert, was das eine mit dem anderen zu tun hat. Jetzt scheint es mir klar zu werden, aufgrund dieser Erklärungen. Bisher war mein Horizont nur so weit gesteckt, wie es wohl dem SQLite entsprechen würde. Seit Deinen Erklärungen würde aber nun für mich doch die Server-Sache verlockend werden, schlicht und einfach da es praktisch sein könnte. Ich bin laufend an verschiedenen Orten, ...
Xin hat geschrieben:Wenn Du eine ".exe" wünschst fällt Python für Dich leider aus. Das ist eine interpretierende Programmiersprache. Trotzdem habe ich den Eindruck, dass Python etwas für Dich sein könnte, wenn Du den Anspruch ".exe" etwas weiter fassen könntest. :-)

Damit könntest Du eine Oberfläche generieren, aber beispielsweise auch eine Webanwendung. Wenn Deine Datenbank auf einem SQL-Server dann im Netz läuft, kannst Du zuhause über die graphische Oberfläche darauf zugreifen und im Netz über einen Web-Client.
Noch vergangene Nacht beschlich mich auf einmal das beklemmende Bewußtsein, daß vermutlich Python doch ausfällt, falls ich eine ".exe" möchte. Aber schon wieder rückt Hoffnung näher! Warum es zu eng nehmen mit der Exe. Wozu der Luxus :lol: Für Programmierer ist es nichts schlimmes, mal ein Skript-Programm zu starten ... Deine Idee scheint ausgezeichnet zu sein!
Ich wußte ja: ich muß einfach mal Ideen von Profis einholen. (jetzt brauchts bloß noch verwirklicht zu werden :D )

Antworten