Welches Datenbankmodul für Anfänger

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
TimeMen
User
Beiträge: 55
Registriert: Samstag 24. Dezember 2016, 10:25
Wohnort: Deutschland

Hallo,

Im Zuge eines Projektes muss ich mich mit Datenbanken rumschlagen.
Ich muss im Vorraus sagen, dass ich 0,0 Erfahrung mit DB hab.

Daher auch diese etwas laienhafte Frage nach dem Beginn.
Welches Datenbankmodul ist für einen Anfänger mit recht simplen Ansprüchen (werden noch geschildert) am sinnvollsten?
Ihr habt ja hier eine Menge aufgelistet: viewtopic.php?f=23&t=6848&sid=fd23408d7 ... 785de38f0e
Vom Namen her kenne ich nur mySQL und SQLite.

Meine Ansprüche:
Einige Daten speichern in folgenden Formaten: String, Integer, Uhrzeit, Datum, Geokoordinaten mittels Maps oder manueller Eingabe (aber das wird noch dauern) und Dateipfad zu Photo

In einer entsprechenden GUI will ich neue Einträge mit o.g. Daten erstellen können, vielleicht editieren, löschen, suchen und dementsprechend dann aufrufen (wobei das dann auch eher Sache der Darstellung als der Anforderungen an das DB-Modul ist.).

Mit was sollte ich das Ganze angreifen und könnt ihr mir zu eurer Empfehlung ein Tut o.ä. empfehlen?
Letzteres bin ich natürlich bereit selber zu suchen :D, nur bin ich bei der im Link gegebenen Auswahl sehr überfordert.


Danke für eure Hilfe,
TimeMen
Eine Signatur ist ein Text, der an deine Nachrichten angefügt werden kann. Sie ist auf 300 Zeichen begrenzt.
__deets__
User
Beiträge: 14494
Registriert: Mittwoch 14. Oktober 2015, 14:29

Du mischst hier die Datenbank selbst (SQLite, MySQL) mit einem Frontend zur Bearbeitung. Was davon das nun erwartest ‚geliefert‘ zu bekommen ist mir nicht ganz klar. Mit Ausnahme der Geo-Daten kann jede DB was du willst. Die geo-daten kann man je nach Art & Menge aber auch problemlos zb als zwei Fliesskommazahlen darstellen, oder natürlich immer als String. Wenn du da echte Geometrie-Anfragen stellen willst, mit komplexeren Operationen wie enthalten-in von Punkt & Polygon, dann kommt nur Postgres mit postgis in Frage.

Das ist aber alles nur die Speicherung und das Retrieval. Nichts davon hat Was mit Abfrage und Darstellung zu tun. Für das gibt es generische Frontends wie pgAdmin etc, aber mit deinen Wünschen nach Karten oder auch nur jeder Art von fachspezifischer Schnittstelle bist du auf dich alleine gestellt. Zb Bilder kannst du zwar als Blob problemlos speichern, aber nicht darstellen in einem solchen generischen Frontend. Da heißt es dann VIEL, SEHR viel programmieren wenn es nativ sein soll. Wenn ein Webfrontend ok ist, kannst du schon deutlich mehr von der Stange haben. Ggf. bis hin zu open Street map Einbindungen.
TimeMen
User
Beiträge: 55
Registriert: Samstag 24. Dezember 2016, 10:25
Wohnort: Deutschland

Wie du siehst, trifft meine Aussage, Newbie zu sein, zu 100% zu.
Klar, die Geodaten sollten ein String sein.
Darstellung versuche ich mit Gtk zu realisieren.
Ich bekomme das schon irgendwie hin.

Hauptsächlich geht es mir um die Möglichkeiten der Speicherung, Änderung, etc.
Welches Modul wäre denn empfehlenswert?
Webfrontend würde ich nur ungern nehmen, da ich bis dato um alles außer Python und Bash herumgekommen bin.
Eine Signatur ist ein Text, der an deine Nachrichten angefügt werden kann. Sie ist auf 300 Zeichen begrenzt.
Benutzeravatar
__blackjack__
User
Beiträge: 13004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@TimeMen: Du machst IMHO immer noch den Fehler Module und Datenbanken zu vermischen. Die Frage ist ja erst einmal welche Datenbank. Welches Modul, falls es mehrere gibt, ist dann erst die nächste Frage.

Ist das wirklich so klar das die Geodaten eine Zeichenkette sein sollen? Letztlich kommt es darauf an was Du konkret machen möchtest, um entscheiden zu können welche Datenbanken zum Problem passen.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
TimeMen
User
Beiträge: 55
Registriert: Samstag 24. Dezember 2016, 10:25
Wohnort: Deutschland

Dann scheint es, dass ich mich da eben sehr informieren muss.
Auf welche der im Artikel genannten Datenbanken soll ich zurückgreifen.
Dass die Koordinaten in einem String gespeichert werden sollen, erscheint mir dahingehen sinnvoll, als dass sie sich in OpenStreetMap bereits in der URL befinden, und sich somit ein Kartenaufruf im Browser oder WebView recht einfach gestalten wird.

Konkret:
Der Benutzer (Ich) soll die Koordinaten in einen vorgesehenen Gtk.Entry schreiben, diese Koordinaten sollen gespeichert werden mit den anderen angegebenen Daten.
Beim Aufrufen sollen per Knopfdruck die Koordinaten in einen osm Link "verwandelt werden", damit ein Aufruf per WebView oder Firefox etc. ermöglicht werden kann.

Reicht das an Info?
Oder scheitert mein Projekt schon an meiner Inkompetenz Fragen zu stellen?!...
Eine Signatur ist ein Text, der an deine Nachrichten angefügt werden kann. Sie ist auf 300 Zeichen begrenzt.
__deets__
User
Beiträge: 14494
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ich würde die Daten trotzdem nicht als String speichern - je mehr Informationen man hat, desto besser. Und auf zb als Polarkoordinaten gespeicherten Punkten kann man besser arbeiten, als auf einem großen Stringklumpen.

Für dein skizziertes Szenario kannst du jede DB nehmen, die du willst. Keine hat entscheidende Vorteile dabei. Und wenn du so etwas wie SQLAlchemy verwendest, lässt sich die eigentliche DB sogar sehr einfach austauschen.
Antworten