Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Allgemeine Frage zu Datenbanken (https://www.delphipraxis.net/131667-allgemeine-frage-zu-datenbanken.html)

Jens Hartmann 28. Mär 2009 16:38


Allgemeine Frage zu Datenbanken
 
Hallo zusammen,

so ich will jetzt einfach mal so ne Grundlagendiskussion zum Thema Datenbanken starten. Ich habe mich jetzt so langsam in dieses Thema eingearbeitet und mich vor ein Paar Wochen für Firebird entschieden. Das ganze klappt auch ganz gut und bislang fehlerfrei.

Leider musste ich des öffteren hier im Forum feststellen, das es auch Mitglieder gibt, die negative Argumente zum Thema Firebird haben.

Das Programm was ich am schreiben bin, soll in Zukunft auch vermarktet werden, und daher würde ich schon gerne ein maximum an Leistungsfähigkeit und Systemsicherheit dem Kunden zur Verfügung stellen.

Daher jetzt hoffendlich mal der Start einer erklärenden Diskussionsrunde, welche Vor und Nachteile die verschiedenen Datenbanke haben.

z.B.

MS Access
Open Office Datenbank
Firebird
Absolute Database
MySQL


etc. etc.

Viele grüße Jens :lol:

mkinzler 28. Mär 2009 16:54

Re: Allgemeine Frage zu Datenbanken
 
Zitat:

Leider musste ich des öffteren hier im Forum feststellen, das es auch Mitglieder gibt, die negative Argumente zum Thema Firebird haben.
Und die haben dir dann zu Access geraten? :gruebel:
Also die geposteten Alternativen sind nicht wirklich alternativen.
Access: Nur für Windows, benötigt Access-Runtime, Probleme bei Multiuser, ...
Open Office Datenbank: HSQLB ist imho nur unter Java sinnvoll ( darin ist sie auch gwschrieben)
Absolute database: DesktopDB benötigt eine Netzwerkfreigabe
MySQL: Birgt Lizenzfalle

khh 28. Mär 2009 16:55

Re: Allgemeine Frage zu Datenbanken
 
Zitat:

Zitat von mkinzler
MySQL: Birgt Lizenzfalle

deshalb hab ich mich u.a. auch für firebird entschieden

Jens Hartmann 28. Mär 2009 17:09

Re: Allgemeine Frage zu Datenbanken
 
Das, kann auch alles so sein, vieleicht kommen meine bedenken, auch durch die von mir benutzen Komponenten für die Firebird.

Beitrag

Dann ist die Firebird, nicht das Problem, sondern die Kompo. Abwohl wie schon gesagt, ich habe momentan keine.

Firebird, ansich kann ich doch komplett kostenlos nutzen. Ich wäre z.B. bereit, auch Geld für sowas auszugeben, allerdings muss es auch einen Grund dafür geben.

Gruß Jens

khh 28. Mär 2009 17:16

Re: Allgemeine Frage zu Datenbanken
 
Zitat:

Zitat von Jens Hartmann
Das, kann auch alles so sein, vieleicht kommen meine bedenken, auch durch die von mir benutzen Komponenten für die Firebird.

Beitrag


Gruß Jens

ich hatte auch mit ZEOS noch keine Probleme.
Allerdings unter lazarus ;-)


Gruss KH

mkinzler 28. Mär 2009 17:31

Re: Allgemeine Frage zu Datenbanken
 
Zeos unterstützt keine harte Commits.

Jens Hartmann 28. Mär 2009 18:02

Re: Allgemeine Frage zu Datenbanken
 
mkinzler hat geschrieben
Zitat:

Zeos unterstützt keine harte Commits.
In einem Tutorial über die ZEOS,habe ich folgendes gelesen...
Zitat:

Dieser Sweep wird aber nur nach einem "harten" COMMIT oder ROLLBACK durchgeführt. Bei ZEOS werden diese (erst) beim Beenden der Datenbankverbindung durchgeführt. Während die Datenbankverbindung aktiv ist, ist dies nicht möglich. Man müsste die Datenbankverbindung also gelegentlich trennen und wieder neu aufbauen, um dem Performance-Verlust entgegen zu wirken.
ZEOS

Das heißt doch eigendlich, das ich einfach nur die Datenbankverbindung z.B. einmal nachts trennen muss, und schon ist ein harter COMMIT möglich.

Delphi-Quellcode:
  ConMB256PLUS.Disconnect;
  Sleep(1000);
  ConMB256PLUS.Connect;
Gruß Jens

mkinzler 28. Mär 2009 18:06

Re: Allgemeine Frage zu Datenbanken
 
Das ist aber nicht sonderlich komfortabel.

Hansa 28. Mär 2009 18:24

Re: Allgemeine Frage zu Datenbanken
 
Anstatt schon wieder zum 986sten mal die einzelnen DBs durchzukauen, sage lieber mal, worum es da gehen soll:

Zitat:

Zitat von Jens Hartmann
Leider musste ich des öffteren hier im Forum feststellen, das es auch Mitglieder gibt, die negative Argumente zum Thema Firebird haben.

Was Vorteile hat, das hat auch Nachteile. IMHO sind die bei FB aber von allen am geringsten. Also mir fallen keine stichhaltigen ein. Und anstatt sich zu freuen, dass es wenigstens eine leistungsfähige DB umsonst gibt, müssen dann auch noch die kostenlosen Zeos verwendet werden. Und wesentlich bessere Alternativen wäre eine einmalige Sache von ca. 200 EUR. Es gibt Fälle, bei denen kostet jede ausgelieferte DB >10000 EUR. Eventuell gibt es dafür dann die Zugriffskomponenenten umsonst. Eventuell ja Zeos. :lol:

Jens Hartmann 29. Mär 2009 16:51

Re: Allgemeine Frage zu Datenbanken
 
Hansa hat folgendes geschrieben
Zitat:

Was Vorteile hat, das hat auch Nachteile. IMHO sind die bei FB aber von allen am geringsten. Also mir fallen keine stichhaltigen ein. Und anstatt sich zu freuen, dass es wenigstens eine leistungsfähige DB umsonst gibt, müssen dann auch noch die kostenlosen Zeos verwendet werden. Und wesentlich bessere Alternativen wäre eine einmalige Sache von ca. 200 EUR. Es gibt Fälle, bei denen kostet jede ausgelieferte DB >10000 EUR. Eventuell gibt es dafür dann die Zugriffskomponenenten umsonst. Eventuell ja Zeos.
Es ist halt genau das was ich mal wissen will. Wenn es Sinn macht, eine Komponente zu nutzen,die halt 200€ kostet, bin ich ja auch bereit dazu. Mein Problem ist halt, das ich mit Datenbankprogrammierung erst angefangen habe und durch diese Forum erst auf Firebird mit ZEOS gekommen bin.

Da ich aber mit der Zeit schon mal negative Sachen dazu gehört habe, will ich mich halt darüber mal informieren und Eure Meinung hören, um dann gegebenfalls, mich für eine bessere Variante zu entscheiden.

Nur da ich halt momentan noch keine Problem mit ZEOS hatte, möchte ich halt gerne wissen, warum es eventuell zu Problemen kommen kann und ob diese mein Projekt beeinflussen können, um mich dann eventuell frühzeitig anders zu orientieren.

Gruß Jens

mkinzler 29. Mär 2009 16:58

Re: Allgemeine Frage zu Datenbanken
 
Wie gesagt, könntest du miz ZEOS "Probleme" bei komplexerer Transaktionssteuerung bekommen.

Jens Hartmann 29. Mär 2009 17:15

Re: Allgemeine Frage zu Datenbanken
 
Die einzigen Transaktionen, die ich mit der Datenbank durchführe, ist Daten in die entsprechenden Tabellen eintragen, und in einer anderen Oberfläche wieder abfragen und nach gewissen Inhalten durchsuchen.

Chemiker 29. Mär 2009 17:34

Re: Allgemeine Frage zu Datenbanken
 
Hallo Jens,

es hängt immer davon ab, was man machen will. Ich arbeite mit Firebird und FIBPlus. Für meine Aufgaben reicht es bis jetzt, allerdings könnte es sein, wenn man ein Warenwirtschaftssystem wie SAP, Navision oder BAAN schreiben will, da an die Grenzen mit dieser Kombination stößt. Ich kenne jetzt nicht die ZEOS-Komponente, aber wenn Du damit zu Recht kommst ist es doch OK.
Ich habe alte Programme, die seit mehren Jahren mit der BDE laufen, trotz dem alle von der BDE abraten. Bis auf Report Anpassungen laufen sie ohne Probleme und ich habe bis jetzt keinen Grund gesehen sie Umzuschreiben.

Bis bald Chemiker

mkinzler 29. Mär 2009 17:37

Re: Allgemeine Frage zu Datenbanken
 
Und das nur als Single-User?

Jens Hartmann 29. Mär 2009 17:59

Re: Allgemeine Frage zu Datenbanken
 
Chemiker hat geschrieben:
Zitat:

es hängt immer davon ab, was man machen will. Ich arbeite mit Firebird und FIBPlus. Für meine Aufgaben reicht es bis jetzt, allerdings könnte es sein, wenn man ein Warenwirtschaftssystem wie SAP, Navision oder BAAN schreiben will, da an die Grenzen mit dieser Kombination stößt. Ich kenne jetzt nicht die ZEOS-Komponente, aber wenn Du damit zu Recht kommst ist es doch OK.
Ich habe alte Programme, die seit mehren Jahren mit der BDE laufen, trotz dem alle von der BDE abraten. Bis auf Report Anpassungen laufen sie ohne Probleme und ich habe bis jetzt keinen Grund gesehen sie Umzuschreiben.
Das ist ja genau das was ich versuche herauszufinden. Momentan funktioniert alles einwandfrei. Allerdings, will ich mein Programm natürlich auf dauer erweitern und mit mehr Funktionen ausstatten.

mkinzler hat geschrieben:
Zitat:

Und das nur als Single-User?
Momentan ist es als Single-User. Später möchte ich eigendlich, das der Rechner der bei der jeweiligen Zentrale steht, die Datenbank hat, aber das es eine Möglichkeit gibt, diese Datenbank von einem anderen Arbeitsplatz auch eingesehen werden kann.

Man muss sich das so vorstellen:
Der Kunde hat eventuell mehrere Einbruch- und Brandmeldeanlagen, die mit einem solchen System ausgestattet werden. Der Kunde selber, soll aber die Möglichkeit haben, die verschiedenen Datenbanken auch an seinem Arbeitsplatz anzuschauen und auszuwerten. Die Daten selber werden immer nur am jeweiligen System erzeugt.

Heißt also:

Brandmeldeanlage 1 = PC 1 mit Software Ansicht der Daten vor Ort möglich
Brandmeldeanlage 2 = PC 2 mit Software Ansicht der Daten vor Ort möglich
Einbruchmeldeanlage 1 = PC 3 mit Software Ansicht der Daten vor Ort möglich

so sieht der momentane Stand aus. Späteres Ziel ->

Arbeitsplatz Kunde -> Ansicht der je nach Berechtigung freigegebenen Zentralen.

Gruß Jens


-

Chemiker 29. Mär 2009 18:19

Re: Allgemeine Frage zu Datenbanken
 
Hallo Jens,

Zitat:

Allerdings, will ich mein Programm natürlich auf dauer erweitern und mit mehr Funktionen ausstatten.
Nichts ist für die Ewigkeit, dass gilt für den IT-Bereich insbesondere.

Bis bald Chemiker

Jens Hartmann 29. Mär 2009 18:24

Re: Allgemeine Frage zu Datenbanken
 
Zitat:

Nichts ist für die Ewigkeit, dass gilt für den IT-Bereich insbesondere.
Das ist richtig, und genau deshalb möchte ich natürlich Probleme, die eventuell jetzt schon jemand erkennen kann gar nicht erst machen.

Soll heißen, wenn jemand sagen würde, das ZEOS oder egal was absolute schlecht wäre, und diese Meinung von mehreren geteilt wird, habe ich jetzt die Möglichkeit frühzeitig zu reagieren und nicht erst, wenn der Aufwand nachher wesendlich größer ist.

mkinzler 29. Mär 2009 18:32

Re: Allgemeine Frage zu Datenbanken
 
ZEOS ist nicht absolut schlecht, hat aber nur begrenzte Fähigkeitem im Bereich von Transaktionen. wenn du siese benötigst, dann nimm komponenten, die damit umgehen können, wenn nicht ist Zeos ok.

Hansa 29. Mär 2009 20:54

Re: Allgemeine Frage zu Datenbanken
 
Zitat:

Zitat von Jens Hartmann
... deshalb möchte ich natürlich Probleme, die eventuell jetzt schon jemand erkennen kann gar nicht erst machen..

Du hast einen Beitrag verlinkt, der ironisch auf die Zeos einging und schließt daraus, dass eventuell FB nicht das Wahre ist ? Dann wird der Titel gewählt : "allgemeine Frage...". Und was soll man jetzt auf was antworten ? :shock: Bei mir wurden die Zeos schnell aussortiert, weil sie mir direkt "komisch" vorkamen, also komplett anders als andere. Dasselbe Schicksal ereilte IBObjects. IBX flogen vorsichtshalber frühzeitig wegen FB raus und dann wirds eben eng. FIBPlus blieb übrig und wurde erfolgreich getestet. Dann gibt es noch irgendwelche Komponenten, die nur halb fertig sind und noch die von mkinzler. Die habe ich zwar vor FIBPlus nicht gekannt, aber sie wären wohl auch aussortiert worden. Brauche eben keine Multi-DBMS Unterstützung, denn ich zweifle daran, dass die bei den diversen DBMS/Delphi-Updates/Versionen überhaupt relativ zeitnah und sicher mitkommen.

mkinzler 29. Mär 2009 21:08

Re: Allgemeine Frage zu Datenbanken
 
@Hansa:Ich bin nicht der Einzige der IBDAC verwendet. Zudem sind diese nicht Multi-DBMS. DevArt entwicklet zwar auch Zugriffskomponenten für andere DBMS und verwendet hier auch eine gemiensame Basis, die jeweiligen Komponenten sind aber an die jeweiligen DBMS angepasst. Zudem wurden Änderungen von FB in IBDAC schneller umgesetzt als in FIBPlus. Auch eine D2009 Variante war lang vor der von FIBPlus verfügbar.

Phoenix 29. Mär 2009 21:37

Re: Allgemeine Frage zu Datenbanken
 
Also ich persönlich würde bei produktiven Installationen eher auf ein kommerzielles DBMS setzen.

a) zahlt der Kunde die Lizenz und
b) hat der Kunde Anspruch auf Support beim Hersteller

Es ist ungleich schwieriger, guten, zuverlässigen und erreichbaren Support für OpenSource Systeme (egal welcher Art) zu finden. Entwickeln tue ich wenn möglich immer Datenbankübergreifend, so dass einem Einsatz in unterschiedlichen Umgebungen nichts im Wege steht. Relevant waren bisher tatsächlich eigentlich nur Oracle und MS SQL Server. Einmal MySQL.

Was den Zugriff angeht:
Gute Erfahrungen habe ich bisher bei meinen Kunden mit den DevArt (formerly known as Corelabs) Komponenten gemacht. Für ein Hochschulprojekt habe ich mal mit den ZEOS Komponenten gearbeitet. Die haben funktioniert und ich hatte keine Probleme damit - allerdings ist das Projekt eher theoretischer Natur gewesen. Zeigen das es tut - und nie wieder einsetzen ;-)

Bernhard Geyer 29. Mär 2009 21:47

Re: Allgemeine Frage zu Datenbanken
 
Zitat:

Zitat von Phoenix
Entwickeln tue ich wenn möglich immer Datenbankübergreifend, so dass einem Einsatz in unterschiedlichen Umgebungen nichts im Wege steht.

Würde ich auch empfehlen. Damit ist man auch nicht Schuld das man ein spezielles DBMS empfohlen hat/zwingend nötig gemacht hat.

Zitat:

Zitat von Phoenix
Gute Erfahrungen habe ich bisher bei meinen Kunden mit den DevArt (formerly known as Corelabs) Komponenten gemacht.

Devart-Kompos sind klasse. Bei MySQL ist man damit auch die Lizenzfalle los da man keine Libmysql.dll benötigt.

mkinzler 29. Mär 2009 21:50

Re: Allgemeine Frage zu Datenbanken
 
Ich bin mit IBDAC auch sehr zufrieden.

taveuni 30. Mär 2009 07:01

Re: Allgemeine Frage zu Datenbanken
 
Zitat:

Zitat von Bernhard Geyer
Devart-Kompos sind klasse. Bei MySQL ist man damit auch die Lizenzfalle los da man keine Libmysql.dll benötigt.

1. Was ist eine Lizenzfalle?
2. Bei MySql ist bei closed Source Programmen immer eine Lizenz fällig - unabhängig vom Zugriff.

Gruss Werner

Bernhard Geyer 30. Mär 2009 07:33

Re: Allgemeine Frage zu Datenbanken
 
Zitat:

Zitat von taveuni
2. Bei MySql ist bei closed Source Programmen immer eine Lizenz fällig - unabhängig vom Zugriff.

Ist es nicht wenn du keine Teile von MySQL mitlieferst (Z.B. wenn der Kunde sich die MySQL-Serverinstallation selbst besorgt) und du keine teile von MySQL für den Betrieb zwingend nötig hast. Dies ist z.B. der Fall wenn mehrere DBMS unterstützt werden und keine Libmysql.dll mitgeliefert wird.

Hatten selbst mal eine MySQL-Vertriebsmenschen bei uns, da wir für eine CD-Lösung auf MySQL wechseln wollten. Als er langsam seine Felle (Provisionen) davon schwimmen sah versuchte er die libmysql.dll-Karte zu ziehen. Aber als wir ihm gesagt haben das wir diese DLL nicht verwenden musste er seine Planung bezüglich größere Weihnachtsgeschenke wieder vergessen.

mirage228 30. Mär 2009 07:56

Re: Allgemeine Frage zu Datenbanken
 
Zitat:

Zitat von mkinzler
ZEOS ist nicht absolut schlecht, hat aber nur begrenzte Fähigkeitem im Bereich von Transaktionen. wenn du siese benötigst, dann nimm komponenten, die damit umgehen können, wenn nicht ist Zeos ok.

Betrifft das jetzt nur die fehlende Unterstützung "harter Commits" (siehe Post von Seite 1) oder gibt es da noch was anderes? Der TIL lässt sich ja sonst meines wissens nach bei ZEOS einstellen...

taveuni 30. Mär 2009 08:31

Re: Allgemeine Frage zu Datenbanken
 
Zitat:

Zitat von Bernhard Geyer
Ist es nicht wenn du keine Teile von MySQL mitlieferst (Z.B. wenn der Kunde sich die MySQL-Serverinstallation selbst besorgt) und du keine teile von MySQL für den Betrieb zwingend nötig hast. Dies ist z.B. der Fall wenn mehrere DBMS unterstützt werden und keine Libmysql.dll mitgeliefert wird.

Wenn Du auf eine bestehende MySql Instanz kannst ist dies teilweise richtig.
Laut Aussage von MySql (ca. 2 Jahre her - mittlerweile ist es ja Sun) gibt es aber auch da Einschränkungen:
Eine Firma kann MySql unter GPL einsetzen wenn darauf ausschliesslich open Source Programme zugreifen.
Wenn unsere Firma nun mit einer closed Source Applikation kommt fällt GPL für die gesamte Instanz weg.
Auf unsere Nachfrage ob denn dafür nicht der Lizenznehmer (Firma bei der wir uns an die Instanz andocken) verantwortlich
wäre antwortete man uns mit Schulterzucken.

Aus all diesen Gründen hatten wir uns damals gegen MySql entschieden.
Wir setzen nun für Datenbanken < 4GB MSSqlExpress ein.
In allen anderen Fällen klären wir ab ob wir eine DB der Firma nutzen können (egal ob MySql, MSSql, Oracle...).

Und um wieder zum Thema zu kommen:
Seit einiger Zeit gibt es von CoreLabs (DevArt) AnyDac. Dies ist eine Abstraktionsschicht für verschiedene Datenbanken.
So kann man einigermassen Datenbank-neutral programmieren.
Wobei es natürlich auch hier tausend Einschränkungen gibt. Wir nutzen z.b. MSSql Notifcation Services.
Gibt es in dieser Form nur bei MSSql. Aber für die vom Thread Ersteller geäusserten Anforderungen ist AnyDac o.k.

Gruss Werner

Bernhard Geyer 30. Mär 2009 08:41

Re: Allgemeine Frage zu Datenbanken
 
Zitat:

Zitat von taveuni
Eine Firma kann MySql unter GPL einsetzen wenn darauf ausschliesslich open Source Programme zugreifen.
Wenn unsere Firma nun mit einer closed Source Applikation kommt fällt GPL für die gesamte Instanz weg.
Auf unsere Nachfrage ob denn dafür nicht der Lizenznehmer (Firma bei der wir uns an die Instanz andocken) verantwortlich
wäre antwortete man uns mit Schulterzucken.

Damit können Sie dich als Lieferant der SW mit Sicherheit nicht belangen. Sie können zwar versuchen etwasFUD zu streuen, aber spätestens mit einem Hinweis in deiner SW auf diesen Sachverhalt bist du als Hersteller aus dem Schneider.

Zitat:

Zitat von taveuni
Seit einiger Zeit gibt es von CoreLabs (DevArt) AnyDac. Dies ist eine Abstraktionsschicht für verschiedene Datenbanken.
So kann man einigermassen Datenbank-neutral programmieren.
Wobei es natürlich auch hier tausend Einschränkungen gibt. Wir nutzen z.b. MSSql Notifcation Services.
Gibt es in dieser Form nur bei MSSql. Aber für die vom Thread Ersteller geäusserten Anforderungen ist AnyDac o.k.

Sicherlich ist eine Abstraktionsschnittstelle immer ein untermenge der Features der unterstützten DBs. Man muß halt den Nachteil des Vendor Lock-In den Mehraufwand der Implementierung entgegenstellen.

Jens Hartmann 30. Mär 2009 14:13

Re: Allgemeine Frage zu Datenbanken
 
Danke erstmal für die vielen antworten. Werde erstmal weiter mit der ZEOS arbeiten, aber mir mal die anderen Kompo´s besorgen und testen. Sollte ich mmich dann für ein Produkt entschieden haben, wird es gekauft. Ich denke, das ich momentan 3 Interessante Varianten gefunden habe.

IBDAC mit der mkinzler arbeitet.

DevArt mit der Phoenix arbeitet und

FIBPlus mit der Hansa arbeitet.

Ich hoffe das man die alle als Trial oder so bekommt.


Danke nochmal Gruß Jens

mkinzler 30. Mär 2009 14:40

Re: Allgemeine Frage zu Datenbanken
 
Zitat:

IBDAC mit der mkinzler arbeitet.

DevArt mit der Phoenix arbeitet und
IBDAC ist vobn DevArt

Jens Hartmann 30. Mär 2009 14:48

Re: Allgemeine Frage zu Datenbanken
 
Das habe ich mittlerweile beim Googeln herausbekommen. Dann werdeich halt nur 2 Kompo´s testen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:02 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