Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Datenbank gesucht (https://www.delphipraxis.net/197001-datenbank-gesucht.html)

Shark99 9. Jul 2018 00:12

Datenbank: gesucht • Version: 1.0 • Zugriff über: weiß noch nicht

Datenbank gesucht
 
Ich brauche Hilfe bei der Suche nach einem Datenbank-System.

Bisher habe ich immer XML oder JSON verwendet um Daten zu speichern.

Ich bin bei der Vorplanung für eine komplett neue Desktop-Anwendung. Dabei müssen die Daten entweder in die Cloud (bevorzugt) oder auf einen Webserver. Mehrere Benutzer müssen auf die Daten gleichzeitig zufreifen. Auch schreibend (mit Locks natürlich während des Schreibvorgangs). JSON kommt nicht in Frage. Es wäre zu aufwendig bei der Synchroisation. Ich brauche also eine Datenbank. Leider kenne ich mich bei dem Thema sehr wenig aus. Habe nur Grundkenntnisse bei SQL.

Kann mich bitte jemand auf die richtige Spur bringen?

Voraussetzungen:

- Cloud Storage Service bei einem großen Anbieter verfügbar (keine kleine Insellösung)

- Keine langwierige Administration des Backends der Datenbank. Ich will nicht eigenen Server aufsetzen müssen (mache ich aber wenn es nicht anders geht). Es wäre schön wenn in ein paar Minuten den Cloud Storage konfigurieren könnte um über eine API die Daten dort abzuspeichern.

- Leichte Auslieferung der Anwendung, d.h. keine langwierigen Installationen

- Performance zweitrangig, da nicht mehr als 5-10 Benutzer auf die Daten zugreifen werden, und die Datenmenge überschaubar ist

- sollte mindestens unter Windows und MacOS verfügbar sein

- kann ruhig längere Einarbeitungszeit erfordern

Vielen Dank im Voraus!

mkinzler 9. Jul 2018 07:04

AW: Datenbank gesucht
 
Zitat:

Ich bin bei der Vorplanung für eine komplett neue Desktop-Anwendung. Dabei müssen die Daten entweder in die Cloud (bevorzugt) oder auf einen Webserver.
Soll der Zugriff direkt auf die Datenbank erfolgen oder per "MiddleWare"? Hier würde sich ein REST(ful)Service anbieten.

Zitat:

JSON kommt nicht in Frage. Es wäre zu aufwendig bei der Synchroisation. Ich brauche also eine Datenbank. Leider kenne ich mich bei dem Thema sehr wenig aus. Habe nur Grundkenntnisse bei SQL.
REST wäre Austausch im JSON Format. Die Speicherung könnte dann in einem traditionellen DBMS erfolgen.
Da der Datenbankzugriff abstrahiert wird (Rest/ORM) wären dann die fehlenden SQL(-detail)Kenntnisse nicht so schlimm.
Als Datenbankserver würde isch dann etwas wie PostGresSQL, MySQL oder Firebird anbieten.

Welche Delphiversion/SKU?

Papaschlumpf73 9. Jul 2018 08:02

AW: Datenbank gesucht
 
Zitat:

Zitat von Shark99 (Beitrag 1406756)
Cloud Storage Service bei einem großen Anbieter verfügbar (keine kleine Insellösung)

Ich glaube, das ist der falsche Ansatz. Wenn mehrere Anwender die Datensätze bearbeiten sollen, ist der Storage Service eher ungeeignet. Der kann ja auch nur Dateien oder Blöcke speichern. Alle großen Cloud-Anbieter haben inzwischen auch Database Services im Angebot...

Bernhard Geyer 9. Jul 2018 08:20

AW: Datenbank gesucht
 
https://aws.amazon.com/de/rds/sqlserver/
https://azure.microsoft.com/de-de/

Gibts sicherlich auch von anderen wie Oracle was.
Aber Oracle würde ich mir nicht freiwillig einsetzen.

mkinzler 9. Jul 2018 08:39

AW: Datenbank gesucht
 
Der SQL-Server ist allerdings nicht für macOS verfügbar. Für Linux ist er aber geplant.

Der schöne Günther 9. Jul 2018 09:09

AW: Datenbank gesucht
 
Ich denke damit meinte er eher den Client ;-)

Schokohase 9. Jul 2018 09:24

AW: Datenbank gesucht
 
Zitat:

Zitat von mkinzler (Beitrag 1406767)
Der SQL-Server ist allerdings nicht für macOS verfügbar. Für Linux ist er aber geplant.

Da ist mehr als nur Planung, siehe https://hub.docker.com/r/microsoft/mssql-server-linux/

Uwe Raabe 9. Jul 2018 10:44

AW: Datenbank gesucht
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1406770)
Ich denke damit meinte er eher den Client ;-)

Das hatte ich auch so verstanden. Allerdings muss man auch da die Zugriffschicht im Auge behalten. Der SQL-Client ist leider nicht für jede Plattform verfügbar. Das kann man aber mit einem REST- oder DataSnap-Server umgehen.

Ich hatte vor einigen Jahren mal auf den Delphi-Tagen in Heidelberg ein Beispiel gezeigt, wie das FishFacts Projekt als DataSnap-Server mit Azure realisiert werden kann. Ist sicher nicht mehr auf dem neuesten Stand, aber hilft vielleicht auf dem Weg dorthin: DataSnap in the Cloud.

Mit den aktuellen Möglichkeiten könnte man auch mal den RAD Server in Betracht ziehen.

Shark99 9. Jul 2018 12:57

AW: Datenbank gesucht
 
Zitat:

Zitat von mkinzler (Beitrag 1406760)
Zitat:

Ich bin bei der Vorplanung für eine komplett neue Desktop-Anwendung. Dabei müssen die Daten entweder in die Cloud (bevorzugt) oder auf einen Webserver.
Soll der Zugriff direkt auf die Datenbank erfolgen oder per "MiddleWare"? Hier würde sich ein REST(ful)Service anbieten.

REST wäre Austausch im JSON Format. Die Speicherung könnte dann in einem traditionellen DBMS erfolgen.
Da der Datenbankzugriff abstrahiert wird (Rest/ORM) wären dann die fehlenden SQL(-detail)Kenntnisse nicht so schlimm.
Als Datenbankserver würde isch dann etwas wie PostGresSQL, MySQL oder Firebird anbieten.

Welche Delphiversion/SKU?

Wie der Zugriff erfolgt ist zweitrangig. Hauptsache ich kann die Anwendung durch einen einfachen Installer ausliefern, ohne dass der Kunde extra Software installieren muss, die nicht in meinen Installer integrierbar ist. Ich kann mich aber auch paar Wochen hinsetzen und in SQL einarbeiten. Ich suche etwas wo ich minimalen Verwaltungsaufwand habe und keinen eigenen Webserver betreiben muss. Ich will Delphi coden und nicht mit dem Datenbank backend ständig rumfummeln zu müssen (Updates etc).

Habe derzeit Delphi 7, Delphi 2009, Delphi XE5 und Delphi XE8 da.

Zitat:

Zitat von Papaschlumpf73 (Beitrag 1406763)
Zitat:

Zitat von Shark99 (Beitrag 1406756)
Cloud Storage Service bei einem großen Anbieter verfügbar (keine kleine Insellösung)

Ich glaube, das ist der falsche Ansatz. Wenn mehrere Anwender die Datensätze bearbeiten sollen, ist der Storage Service eher ungeeignet. Der kann ja auch nur Dateien oder Blöcke speichern. Alle großen Cloud-Anbieter haben inzwischen auch Database Services im Angebot...

Habe mich falsch ausgedrückt, mit Cloud Storage meinte ich auch Datenbanken, aber eben welche die ich nicht selbst aufsetzen muss, sondern nur konfigurieren.

Zitat:

Zitat von Der schöne Günther (Beitrag 1406770)
Ich denke damit meinte er eher den Client ;-)

Ja das meinte ich, also die Client-Seite. Ich wollte die Anwendung mit Delphi XE5 oder Delphi XE8 entwickeln, voraussichtlich mit Firemonkey, so dass sie auch auf dem Mac läuft. Alternativ denke ich darüber nach eine neue Sprache zu erlernen. Das mache ich aber nur wenn ich mit Delphi nicht mehr gut zum Ziel komme. Bin seit 20 Jahren bei Delphi dabei.

jobo 9. Jul 2018 13:21

AW: Datenbank gesucht
 
Zum kostenlosen Test oder für "ernst" und Geld:
https://www.elephantsql.com/

Deutsche Hoster gibt es offenbar nicht so viele, könnte ich mal nachschauen.

Postgres wurde ja bereits vorgeschlagen, dazu noch die Ergänzung:
Die Datenbank bittet einen starken Mix an Funktionen, die JSON und XML beinhalten. Die Datenhaltung klassisch, JSON, XML ist gut integriert, sodass es vielleicht nicht so dramatisch ist mit dem Umstieg.

Sprich Du kannst JSON per SQL selektieren, updaten usw. Du kannst indizieren (vlt. unnötig) und Du kannst es mit klassischen relationalen Datenbankstrukturen mischen.
Ein Update einzelne JSON Felder sollte per SQL möglich sein.

Die Kombi ist eigentlich perfekt um feste business Strukturen vorzugeben mit klassischem DB Modell und an den "losen Enden", wo eine kleine Truppe flexibel sein muss/will mit JSON zu arbeiten.

P.S: Hier mal nach Germany schauen
https://www.postgresql.org/support/p...osting/europe/

Ob's Not tut? Bei der Projektgröße? Wenn es cloud sein muss:
Ich würde einen virt. Rootserver nehmen, debian drauf, postgres drauf, Backupscripte oder dauerhafte DB Synchronisation in die Firma

Shark99 9. Jul 2018 13:37

AW: Datenbank gesucht
 
Zitat:

Zitat von jobo (Beitrag 1406784)
Ob's Not tut? Bei der Projektgröße? Wenn es cloud sein muss:
Ich würde einen virt. Rootserver nehmen, debian drauf, postgres drauf, Backupscripte oder dauerhafte DB Synchronisation in die Firma

Das will ich eben nicht. Wenn das Projekt in 1-2 Jahren fertig ist, will ich mich aufs Bugfixen konzentrieren, und nicht nebenbei einen Webserver betreiben. Hab nicht die Zeit dazu.

jobo 9. Jul 2018 13:41

AW: Datenbank gesucht
 
Das ist ja ne klare Perspektive. Anlaufstellen hab ich ja verlinkt.

Bernhard Geyer 9. Jul 2018 16:21

AW: Datenbank gesucht
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1406776)
Zitat:

Zitat von Der schöne Günther (Beitrag 1406770)
Ich denke damit meinte er eher den Client ;-)

Allerdings muss man auch da die Zugriffschicht im Auge behalten. Der SQL-Client ist leider nicht für jede Plattform verfügbar.

Ab 200 € schon: https://www.devart.com/sdac/

Shark99 11. Jul 2018 21:16

AW: Datenbank gesucht
 
Um mal zurück zum Thema zu kommen. Kann mir jemand noch andere Komponenten empfehlen neben https://www.devart.com/sdac/ die direkten SQL Zugriff ohne BDE erlauben?

p80286 11. Jul 2018 21:35

AW: Datenbank gesucht
 
Zitat:

Zitat von Shark99 (Beitrag 1406974)
Um mal zurück zum Thema zu kommen. Kann mir jemand noch andere Komponenten empfehlen neben https://www.devart.com/sdac/ die direkten SQL Zugriff ohne BDE erlauben?

Die BDE ist seit mehr als 10 Jahren tot, und falls Du sie noch ans Laufen bekommst, kannst Du davon ausgehen, das die modernen DB-Clients und die BDE nur minimale Schnittstellen haben.
Warum nimmst Du nicht was mitgeliefert wird?
Ggf wäre Zeos noch einen Blick wert.

Gruß
K-H

Shark99 11. Jul 2018 21:47

AW: Datenbank gesucht
 
Da ich mich mit Datenbanken bis auf XML und JSON nicht auskenne, weiß ich gar nicht was mitgeliefert wird, und wie gut es ist.

p80286 11. Jul 2018 22:54

AW: Datenbank gesucht
 
Also kurz zusammen gefasst,
Was Datenbanken angeht, hast Du keine Ahnung (das ist nichts ehrenrühriges).
Zwischen einem Rechenzentrum mit einer Serverfarm auf der MS-SQL oder Oracle laufen und einer Embedded Database hast Du jede Möglichkeit. Um das etwas einzugrenzen, wofür willst Du die Datenbank einsetzen?
Müssen mehrere Benutzer darauf zugreifen und wo sitzen diese. Irgendwo in Europa (webserver), In einer Firma (Server im Firmennetz) ....Nur ein Benutzer an einem PC.
Zusätzlich wäre von Interesse welcher Art die Daten sind, Messwerte werden anders behandelt als Adressdaten, und ob die Zugriffe einmal in der Sunde oder jede Sekunde erfolgen müssen.

Wenn Du die Aufgabenstellung konkretisierst, dann könnten wir Dir u.U. auch konkrete Empfehlungen geben.

gruß
K-H

Shark99 11. Jul 2018 23:06

AW: Datenbank gesucht
 
Es werden 5-10 Leute gleichzeitig auf die Daten zugreifen. Sowohl im Büro, als auch Außendienstler mit einem Notebook. Gespeichert werden pro Datensatz neben Text auch einige JPG Bilder. Der Zugriff muss schnell möglich sein, weil die Außendienstler öfters Updates der Datensätze machen werden.

Lemmy 12. Jul 2018 06:36

AW: Datenbank gesucht
 
Zitat:

Zitat von p80286 (Beitrag 1406976)
Zitat:

Zitat von Shark99 (Beitrag 1406974)
Um mal zurück zum Thema zu kommen. Kann mir jemand noch andere Komponenten empfehlen neben https://www.devart.com/sdac/ die direkten SQL Zugriff ohne BDE erlauben?

Die BDE ist seit mehr als 10 Jahren tot, und falls Du sie noch ans Laufen bekommst, kannst Du davon ausgehen, das die modernen DB-Clients und die BDE nur minimale Schnittstellen haben.

deshalb schreibt er ja auch "ohne BDE"

Zitat:

Zitat von Shark99 (Beitrag 1406977)
Da ich mich mit Datenbanken bis auf XML und JSON nicht auskenne, weiß ich gar nicht was mitgeliefert wird, und wie gut es ist.

"mitgeliefert" wird Firedac, allerdings braucht es um das zu nutzen inzwischen die Enterprise.

Neben Devart und Zeos wird es dann auf dem freien Markt eng. Ich nutze seit einiger Zeit die Devart Komponenten (MySQL, PostgreSQL, Firebird) und bin eigentlich ganz zufrieden damit. Vorteil gegenüber Firedac ist die Nutzung mit einem einfachen Delphi Professional sowie die Unterstützung von alten Delphi-Versionen.

p80286 12. Jul 2018 07:51

AW: Datenbank gesucht
 
Alleine die Erwähnung der BDE läßt bei mir alle Alarmglocken schrillen.

Gruß
K-H

Ghostwalker 12. Jul 2018 08:08

AW: Datenbank gesucht
 
evtl sqlite wäre das was für dich. Einfach, simple, schnell :)

p80286 12. Jul 2018 08:20

AW: Datenbank gesucht
 
Nach den beschriebenen Anforderungen hätte ich Firebird oder Postgres vorgeschlagen.
Für SQLite müßte wohl ein Webserver die Verbindung zum Benutzer übernehmen? Da kenne ich mich aber nicht sooo gut aus.

Gruß
K-H

Jumpy 12. Jul 2018 08:32

AW: Datenbank gesucht
 
Wenn ich Außendienstler höre, frage ich mich immer, ob das Porgramm auch Offline funktionieren soll. Denn dann muss man ggf. mit einer lokalen Datenbank arbeiten und sich mit einer Serverseitigen Datenbank im Netz/Cloud synchronisieren.

Schokohase 12. Jul 2018 08:33

AW: Datenbank gesucht
 
Zitat:

Zitat von p80286 (Beitrag 1406994)
Für SQLite müßte wohl ein Webserver die Verbindung zum Benutzer übernehmen?

Bei dem beschriebenen Szenario sollte IMMER ein Webserver die Verbindung zum Benutzer übernehmen, unabhängig von der Datenbank.

Es sei denn, man schert sich einen F**z um Datensicherheit und Sicherheit im Allgemeinen.

Als Goodie on-top bekommt man einen Verbindungsweg (für den Client) der völlig losgelöst von FireDAC, ZEOS, DevArt und Ähnlichen ist.

p80286 12. Jul 2018 08:58

AW: Datenbank gesucht
 
Wie wäre es mit getunnelter Kommunikation ?

Aber das Web-Frontend ist wohl einfacher zu realisieren.

Gruß
K-H

Shark99 12. Jul 2018 11:16

AW: Datenbank gesucht
 
Hab leider nur die Pro Versionen von Delphi. Es ist eine gute Idee die Datenbank so zu programmieren, dass sie auch ohne Internetverbindung funktioniert. Da mache ich mir Gedanken drüber. Wird wohl dass darauf hinauslaufen, dass ich wieder JSON nehmen, und wenn Internet Verbindung da ist, ich die JSON mit einer SQL Datenbank synchronisiere.

p80286 12. Jul 2018 22:56

AW: Datenbank gesucht
 
Zitat:

Zitat von Shark99 (Beitrag 1407011)
Hab leider nur die Pro Versionen von Delphi. Es ist eine gute Idee die Datenbank so zu programmieren, dass sie auch ohne Internetverbindung funktioniert. Da mache ich mir Gedanken drüber. Wird wohl dass darauf hinauslaufen, dass ich wieder JSON nehmen, und wenn Internet Verbindung da ist, ich die JSON mit einer SQL Datenbank synchronisiere.

Nein bitte nicht!
Für das Programm macht es einen minimalen Unterschied ob auf eine lokale oder entfernte DB zugegriffen wird.

Der Medienbruch mit JSON ist nur eine weitere Fehlerquelle. Es Sei denn Du willst mit REST arbeiten, da ist JSON Pflicht.
Aber dann "sieht" keiner der Clients die SQL-Datenbank.

Gruß
K-H

Jumpy 13. Jul 2018 08:13

AW: Datenbank gesucht
 
Ich bin nicht ganz sicher, da ich bisher nur mal einen Vortrag darüber gehört habe, aber mit so einem ORM-Framework wir z.B. Mormot kann man das bestimmt so einrichten, das zw. lokaler und entfernter DB gewechselt werden kann.

MichaelT 13. Jul 2018 08:17

AW: Datenbank gesucht
 
CouchDB?

Zitat:

Zitat von Shark99 (Beitrag 1406756)

Vielen Dank im Voraus!


Shark99 13. Jul 2018 18:13

AW: Datenbank gesucht
 
Zitat:

Zitat von p80286 (Beitrag 1407092)
Nein bitte nicht!
Für das Programm macht es einen minimalen Unterschied ob auf eine lokale oder entfernte DB zugegriffen wird.

Der Medienbruch mit JSON ist nur eine weitere Fehlerquelle. Es Sei denn Du willst mit REST arbeiten, da ist JSON Pflicht.
Aber dann "sieht" keiner der Clients die SQL-Datenbank.

Gruß
K-H

Was ist die Alternative? Habe ich auf dem Notebook gerade kein Internet, und damit keine Verbindung zu der SQL Datenbank, würde das Programm gar nicht funktionieren, es sei denn ich lasse einen lokalen SQL Server zusätzlich laufen, der Die Daten synchonisiert. Das hört sich nach viel Gefummel an.

jobo 13. Jul 2018 21:35

AW: Datenbank gesucht
 
Gefummel:

Na irgendwo musst Du Aufwand reinstecken.
Du kannst Dir Sync Libs nehmen oder kaufen,
Du kannst Dir DB Systeme nehmen oder kaufen, die replizieren. Dann braucht jeder Laptop so eine DB lokal installiert.
Du kannst die Synchronisation "zu Fuß" machen, entlang des Bedarfs.

Die Frage wäre, was ist der Bedarf? Zu Anfang war von "Offline" noch keine Rede.
Jetzt doch? Was brauchst Du wirklich?

Für den Großteil der Außendienstleraufgaben müssen zentrale Serverdaten runter auf den Laptop. Das ist unidirektional, nicht so kompliziert*, auch offline: Produkte, Preise, Rabatte, Kundendaten, Regionen, ..
Was macht der Außendienstler? Bestellungen aufnehmen, Angebote erstellen, Kundendaten erfassen ..
Das ist u.U. recht überschaubar. Trotz Riesendatenbank müssen nur wenige Daten auch wieder zurück vom AD Laptop in die DB. Kann man vielleicht ganz gut handgemacht anbieten.

Selber eine Synchronisation zu bauen, kann aber anstrengend werden. Wenn Du ein "System von der Stange" nimmst, das diesen Teil liefert, brauchst Du nur eine Anwendung zu entwickeln, die auf Basis einer lokalen oder entfernten DB ihren Job macht.

* Hatte mal eine Fall, der wollte für den Schiffsbau offline Daten aus dem CAD System (Siemens), um einzelne Konstruktionen beim Kunden zu zeigen/besprechen. Streng genommen Außendienst, offline, unidirektional. Er wollte sicher vor Ort keine Konstruktion ändern. Ist aber dann insgesamt doch komplex der Fall.
Es ist also wie immer, es kommt drauf an.

p80286 13. Jul 2018 23:28

AW: Datenbank gesucht
 
Zitat:

Zitat von Shark99 (Beitrag 1407242)
Was ist die Alternative? Habe ich auf dem Notebook gerade kein Internet, und damit keine Verbindung zu der SQL Datenbank, würde das Programm gar nicht funktionieren, es sei denn ich lasse einen lokalen SQL Server zusätzlich laufen, der Die Daten synchonisiert. Das hört sich nach viel Gefummel an.

Bevor jetzt jemand anfängt zu fummeln, welche Infrastruktur existiert bereits.
Welche Arbeitsplätze mit welchen Anforderungen müssen versorgt werden?
Werden alle Daten von allen Arbeitsplätzen abgerufen und editiert?
Hast Du so etwas wie ein Lastenheft?
Unter Umständen muß ein extra Arbeitsplatz für die Datenpflege eingerichtet werden (Replikationskonflikte).

Gruß
K-H


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:11 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz