SQLite oder Access

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
MacGruber
User
Beiträge: 63
Registriert: Sonntag 28. Mai 2017, 13:04

Moin und moin,

ich habe mal eine eher allgemeine Frage bezogen auf ein konkretes Problem von mir.
Für meine Arbeit muss ich eine kleine Datenbankanwendung realisieren in der ich Daten von Maschinenbauprodukten abgelegt werden sollen. Dazu gehören Baumuster, Einzelteil, Herstellkosten, Lieferanteninformationen und noch einiges mehr. Der Inhalt ist jetzt aber gar nicht so relevant.
Was mich jetzt eher beschäftigt ist, dass ich als einziger Pythonkundiger mich etwas wohler fühle mit einer SQLite Anwendung, aber meine Kollegen, die vielleicht auch hin und wieder mal auf die Datenbank zurückgreifen wollen, nicht so recht wissen werden wie sie die Datenbank für sich nutzen können. Für Außenstehende ist dann eine Access Lösung wohl etwas leichter zu nutzen. Jeder verfügt über eine Office Installation und Abfragen und Datenexporte gehen leichter von der Hand.
Ich selbst finde aber Access und eigentlich alle anderen MS Office Programme Nerven raubend. Ins Besondere die Performance-Einbrüche wandeln die Arbeit eine regelmäßig wiederkehrende Folter.

Was sagt ihr? Soll ich lieber auf SQLite zurückgreifen und GUIs programmieren, um es meinen Kollegen zugänglich zu machen, oder lieber eine lahmarschige Access Anwendung bauen?

Ich bin gespannt auf eure Antwort.

Gruß Sascha
__deets__
User
Beiträge: 14540
Registriert: Mittwoch 14. Oktober 2015, 14:29

Für wen ist die Anwendung? Dich oder deine Kollegen?
nezzcarth
User
Beiträge: 1634
Registriert: Samstag 16. April 2011, 12:47

MacGruber hat geschrieben: Dienstag 17. März 2020, 21:02 Was sagt ihr? Soll ich lieber auf SQLite zurückgreifen und GUIs programmieren, um es meinen Kollegen zugänglich zu machen, oder lieber eine lahmarschige Access Anwendung bauen?
Bevor ich eine GUI Anwendung mit Datenbankanbindung schreiben würde, würde ich ja erst einmal schauen, ob man das nicht auch als Webanwendung realisieren könnte. Wenn man django nimmt und seine Modelle mit dem ORM definiert hat, bekommt man eine Oberfläche für CRUD Operationen ohne großen Aufwand dazu. Diese Lösung hat natürlich etwas höhere Ansprüche an die Infrastruktur (Webserver, Datenbankserver), als eine Access-Datei, die auf irgendeinem (Netz)laufwerk herumliegt. Aber eigentlich will man letzteres, wenn man mit mehreren Personen daran arbeitet, vielleicht ohnehin nicht unbedingt haben.
MacGruber
User
Beiträge: 63
Registriert: Sonntag 28. Mai 2017, 13:04

VIelen Dank schon einmal für eure Antworten.
Für wen ist die Anwendung? Dich oder deine Kollegen?
In erster Linie für mich, aber sofern es zugänglich umgesetzt wird, werden bestimmt auch meine Kollegen darauf zu greifen wollen.
Bevor ich eine GUI Anwendung mit Datenbankanbindung schreiben würde, würde ich ja erst einmal schauen, ob man das nicht auch als Webanwendung realisieren könnte. Wenn man django nimmt und seine Modelle mit dem ORM definiert hat, bekommt man eine Oberfläche für CRUD Operationen ohne großen Aufwand dazu
Ich kenne mich mit Django und anderen Web Frameworks null aus. Ist der Aufwand Django zu lernen sehr hoch?
__deets__
User
Beiträge: 14540
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ich denke du unterschätzt den Aufwand der Nutzbarmachung. Eine Tabellenansicht mit Detailformular ist in Access in Minuten gebaut, zumindest zur Betrachtung. Dafür programmierst du Tage. Access ist mit pyodbc ja durchaus auch aus Python ansprechbar. Ggf ist das ein Mittelweg.
MacGruber
User
Beiträge: 63
Registriert: Sonntag 28. Mai 2017, 13:04

__deets__ hat geschrieben: Mittwoch 18. März 2020, 09:30 Ich denke du unterschätzt den Aufwand der Nutzbarmachung. Eine Tabellenansicht mit Detailformular ist in Access in Minuten gebaut, zumindest zur Betrachtung. Dafür programmierst du Tage. Access ist mit pyodbc ja durchaus auch aus Python ansprechbar. Ggf ist das ein Mittelweg.
Ich befürchte du hast Recht. Access wird wohl die schnellere Variante sein :(
SQLite hat wohl damit verloren und Access gewonnen...
Benutzeravatar
sparrow
User
Beiträge: 4193
Registriert: Freitag 17. April 2009, 10:28

Ich weiß nicht, wie sich das inzwischen verhält, aber früher war der gleichzeitige Zugriff von mehreren Programmen auf eine SQLite-Datenbank schwierig, wenn nicht unmöglich. Aber vielleicht täusche ich mich auch. SQLite hat seine Vorzüge, aber es ist nicht immer das passende Werkzeug.

Der Vorteil von Access ist ja, dass man relativ "einfach" mit den Daten zu arbeiten und eine GUI dafür zu klöppeln. Das kann Access aber auch mit anderen DBMS- es muss nicht unbedingt deren eigene Engine sein. Solange es einen vernünftigen ODBC-Treiber gibt, kann Access damit arbeiten.
Ich habe vor einer halben Ewigkeit mal ein Projekt umgesetzt, bei dem die Vorgaben ähnlich waren. Da wurde damals als DBMS Firebird gewählt. Da kam die Access-Seite und die Python-Seite ganz gut mit klar. Und der Vorteil von Firebird war, dass es kaum Administrationsaufwand macht.
__deets__
User
Beiträge: 14540
Registriert: Mittwoch 14. Oktober 2015, 14:29

Bezueglich sqlite: das stimmt so nicht, es geht durchaus das mehrerer Prozesse darauf lesend zugreifen. Nur schreiben ist recht grob gelockt. Und das ist auch nur ein Problem bei lang stehenden Commits. Da wuerde ich erstmal keine Probleme erwarten, ausser die Anwendung erreicht eine Groessenordnung, bei der ein "ich bastel da mal was fuer mich und die Kollegen" schon lange nicht mehr Thema ist.
Benutzeravatar
sparrow
User
Beiträge: 4193
Registriert: Freitag 17. April 2009, 10:28

Vielleicht als Orientierungshilfe die "When to use" Seite des SQLite Projektes: https://www.sqlite.org/whentouse.html
Grendel
User
Beiträge: 50
Registriert: Samstag 19. Dezember 2015, 16:06

Interessanter Thread, denn ich stehe gerade von einer ähnlichen, wenn auch anders gelagerten Frage. Ich klinke mich mal einfach ein: die Entwickler von SQLite warnen im Grunde vor dem Einsatz ihrer Datenbank über ein net share. Jetzt stehe ich aber genau vor dieser Aufgabe: die Daten sollen auf einem File-Server abgelegt werden (bei uns ist sehr restriktiv gehandhabt, welche Dienste auf den Servern laufen, daher kann ich nicht mal eben Postgres oder ähnliches installieren) und in diesem Fall soll die Nutzung von SQLite prinzipiell, früher oder später, zu inkonsistenten Daten führen. ABER: es gibt nur eine Applikation, die schreibend auf die Datenbank zugreift und nur eine, die lesend zugreift. Aber eben von einem entfernten Rechner aus. Deshalb ist eine rein lokale Lösung nicht möglich. Wären hier Probleme zu erwarten?

Edit: auch die Menge der Daten ist sehr gering, so um ein paar Hundert KByte.

Danke ...
Sirius3
User
Beiträge: 17750
Registriert: Sonntag 21. Oktober 2012, 17:20

Je nach Fileshare-Protokoll werden Filelocks nicht korrekt umgesetzt. Das kann auch beim reinen Lesen zu Problemen führen, wenn gerade gleichzeitig geschrieben wird. Wenn die Programmierer von sqlite keine Garantie geben, würde ich mich auch nicht drauf verlassen. Wenn es egal ist, ob das Lesen zu 100% funktioniert, kann man das Risiko eingehen.
__deets__
User
Beiträge: 14540
Registriert: Mittwoch 14. Oktober 2015, 14:29

Alternativ der IT kraeftig vor den Kopp hauen. Ich verstehe solche drakonischen Umgebungen nich. Mit Kompetentz und Risikoanalyse hat sowas jedenfalls nix zu tun. Eher einer ungesunden Mischung aus Allmachtsfantasien und Ueberangst.
Antworten