Welche Datenbank

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
riedere
Beiträge: 12
Registriert: Do 5. Okt 2006, 12:02
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: CH-Zürich
Kontaktdaten:

Welche Datenbank

Beitrag von riedere »

Grad eben auf Lazarus gestossen, meine brennendste Frage in die Runde:
Welche Datenbank lässt sich am besten anbinden und ist performant.
Kurzum welche ist am besten zu handhaben und ist am weitesten ausgebaut ?

MYSQL ?
Firebird ?
Postgre ?
dBase Tabellen ?

Ich programmiere seit langem unter Windows mit Delphi und den Apollo xBase Tabellen (ist historisch bedingt) und etwas mit MYSQL (Komponente von SCIBIT). Unter Linux und meist PHP 5 verwende ich zZt MYSQL.

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Beitrag von monta »

Herzlich Willkommen ;)

Diese Frage löst in anderen Foren regelmäßig Glaubenskriege aus, weil jeder auf sein System schwört.

Zu Postgre kann ich nichts sagen, hatte ich noch nie.

MysQl und Firebird sind von der Grundlage schon recht identisch. Es gibt eben einzelne Funktionsunterschiede und Firebird unterstützt manche dinge, die MySql nicht kann und anders herum. Letztlich sind es beide sehr ausgewachsene relationale Datenbankmanagmentsysteme, wo du, wenn du es nativ machen willst, um viel SQL nicht drum herum kommen wirst.

Es lässt sich beides meiner Meinung nach über Lazaruskomponente ansteuern, zu Firebird gibts hier auch ein Thema.

DBase ist schon eher ein älteres Model und meiner Meinung nach eher für kleinere Anwendungen geeignet, weil Firebird und MYSQL schon performanter sein dürften, wenn die Komplexität zunimmt.

Die wichtigste Frage ist eigentlich, was du erreichen willst? Eine kleine Adressdatenbank, eine Stand-Alone-DB mit x Tabellen oder eine Server-Client Datenbank, womöglich noch auf einem Webserver, weil da von vorn herein schon einiges ausscheidet.

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Es ging ihm glaub ich eher um die Lazarus unterstützung als um das zu verwendende DBS oder ?

TDbf funktioniert bei mir ganz ordentlich, ich hatte ein paar probleme aber die hab ich heute einfach beseitigt in dehm ich dbase VII tabellen statt IIIer genommen hab ... tdbf scheint an einigen stellen noch etwas wackelig zu sein aber bisher funktioniert es ganz gut für mich und die datenbankkomplexität meines aktuellen Projektes ist doch schon recht gross (ERP system).

Mit MySQL hab ich jetzt angefangen und lass es aber regelmässig bleiben was aber auch an meiner unwissenheit in sachen SQL zu tun hat. Aber die schnittstelle scheint auch noch nicht ganz stabil zu sein. Mit den anderen DBS hab ich mich noch nicht beschäftigt.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

knight
Beiträge: 802
Registriert: Mi 13. Sep 2006, 22:30

Beitrag von knight »

Ich kann monta nur zustimmen. Entscheidend dürfte sein, was mit der Datenbank gemacht werden soll. In der Zeitschrift Toolbox gab es eine Reihe von Artikeln zu diesem Thema. Der Autor (Michael van Canneyt) gehört zum Entwicklerteam von FPC/Lazarus. Wenn ich mich noch richtig erinnere, rät er von der Kombination von Lazarus und MySQL eher ab.

knight

riedere
Beiträge: 12
Registriert: Do 5. Okt 2006, 12:02
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: CH-Zürich
Kontaktdaten:

Beitrag von riedere »

Na ja ich hatte auch Glaubens (Gewissensbisse) bis ich meine DB für Delphi hatte. Aber da war die Ausgangslage nocht anders (bestehende DOS Software mit dBase Tabellen und maximal im LAN angewendet).
Heut gehts natürlich auch übers Internet kurz in in einem TCP Netz.
So werd ich mal MYSQL (hab ich überall installiert und kenn ich besser) und dann Firebird ansehen.
Ich hab die Erfahrung dass auch wenn man etwas einsetzt das gegenüber einem anderen Produkte in der Leistung schlechter ist, aber man dies bereits gut kenn, man besser dran ist.
Jedenfalls Danke für die Antworten, sie helfen.

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Du kannst ja deine Erfahrungen wieder posten, würd mich mal interessieren
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

ralli
Beiträge: 374
Registriert: Mi 13. Sep 2006, 15:57
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Hagen a.T.W.
Kontaktdaten:

Vorüberlegungen

Beitrag von ralli »

Um sich für oder gegen eine Datenbank zu entscheiden sind einige Vorüberlegungen umumgänglich.

Folgende Punkte sind möglicherweise wichtig:

1. ) Welche Daten und welchen Datenbestand will ich verwalten ?

2. ) Ist die Datenbank SQL fähig ?

3.) Arbeite ich alleine damit oder mehrere Benutzer ?

4. Wie hoch ist der Administrationsaufwand ?

5. Wie ist die Dokumentation ?

5. Darf die Anschaffung was kosten ?

Zu 1:

Ich habe eine lokale dbf Datenbank mit der Telefonliste einer deutschen Großstadt zu Testzwecken erstellt, die 770 000 Datensätze hat. Der Zugriff für einzelne Namen (ohne Indizierung) liegt unter einer halben Sekunde. Heutzutage gibt es doch wohl bei kleineren und mittleren Projekten bei den aktuellen Rechnerleistungen keine Performanceprobleme mehr.

Arbeite ich alleine mit dem Datenbestand, dann schieße ich wohl mit einem Client - Server System mit Kanonen auf Spatzen. Und arbeite ich ausschließlich alleine mit der DB, brauche ich kein ausgeklügeltes Rechtesystem zur Sicherheit.

Die wohl populärste Datenbank für Internetauftritte ist Mysql, die heute auch schon bei kleineren Hosting Paketen der bekannten Provider inbegriffen ist.

Zu 2:

Die SQL Fähigkeit ist dann wichtig, wenn ich mit anderen SQL fähigen Datenbanken Daten austauschen muß oder Datenbestände migrieren will. Die Migration oder ein Backup ist via SQL Scriptes wirklich ein Kinderspiel. Als SQL fähige, mehrbenutzerfähige lokale Datenbank sind die Komponenten von Absolute Database zu empfehlen, die ich selbst im Einsatz habe. Habe damit ein professionelles Datenbankadministrationsprogramm mit Anbindung eines Reportgenerators (Fastreport) erstellt. Scheidet aber wahrscheinlich aus, weil kommerziell und nur für Delphi und nicht für Lazarus verfügbar.

Zu 3:

Ist Multitasking- und Multiuserfähigkeit gefordert, sind Mysql und Firebird erste Wahl.

Zu 4:

Hat man sich erst mal SQL angeeignet, hält sich der zu erwartende Wartungs- und Pflegeaufwand bei Mysql und Firebird in Grenzen.

Zu 4:

Die Dokumentation von Mysql und Firebird ist wirklich gut. Für die TDBF Komponente gibt es ein Tutorial auf der Lazarus Hompage. Zum Einstieg genügt das. Wem das nicht genügt, lade sich die Projektdateien und Quelltext meines dbmaker Projektes auf meiner Homepage http://www.rgsoftware.de herunter, es gibt dbmaker nun für beide Plattformen (Windows und Linux). An der Doku arbeite ich noch.

Zu 5:

Wenn nicht, dann ist Firebird als Open Source kostenlos und TDBF ja bereits bei Lazarus an Bord.

Natürlich gibt es noch andere gute Datenbanken. Aber ich habe hier nur meine Erfahrungen mit Euch geteilt. Und irgendwann muß man sich entscheiden, sonst tanzt man auf allen Hochzeiten und verdaddelt sich. Ich habe mich für TDBF als lokale Datenbank entschieden und Firebird als Client Server System. Delphi Developer 2006 mit Fastreport und Absolute Database Kompos werde ich günstig verkaufen, weil ich nur noch Open Source entwickele und die Lazarus Gemeinschaft unterstützen möchte.

Ralli

riedere
Beiträge: 12
Registriert: Do 5. Okt 2006, 12:02
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: CH-Zürich
Kontaktdaten:

Antwort zur Auswahl, und Ergebnisse

Beitrag von riedere »

Ich zitiere ralli und gebe meine Meinung (für meinen Einsatz) dazu ab:
(Erfahrungen und Bestehendes entnehme ich aus der vorhandenen Windows Applikation)
1. ) Welche Daten und welchen Datenbestand will ich verwalten ?
- 1 Datenbank
- ca 10 Tabellen mit grösserem Bestand (bis 10 MB)
- bis 10'000 Tabellen mit kleinem Datenbestand (ein paar kB)
(ist mir klar das ist nicht optimal aber es ist historisch bedingt !! und sicherheitstechnisch)
2. ) Ist die Datenbank SQL fähig ?
- bis jetzt ja (unter Delphi) - muss für die Umstellung
3.) Arbeite ich alleine damit oder mehrere Benutzer ?
- mehrere Benutzer, lokal, im LAN oder (sehr grosser Wunsch) auch WAN also Internet.
4. Wie hoch ist der Administrationsaufwand ?
- sehr klein (kann vom Kunden gemacht werden - Reorganisation der Datenbestände)
5. Wie ist die Dokumentation ?
- bis anhin als Help Datei (unter Windows) kann aber auch als HTML gemacht werden (ja)
5. Darf die Anschaffung was kosten ?
- ja sie darf soweit das nicht GPL etc verletzt, ggf für eine richtige Lizenz MYSQL sowie Unterstützung.
Die Anwendung soll nicht vom Kunden selbst installiert werden können (primär). Es gehört fast immer noch Einsatzberatung und Kundenapassung dazu.
******************
Ich habe mir eine Datenbank auf einem Server angelegt (ist via DNS erreichbar - also von aussen wie ich es wünsche).
Dann habe ich eine App in Lazarus gemacht die Komponenten:
(wie das alles gehen müsste weiss ich ja von Delphi mit SQL)
dbConnect
SQL Query
SQL Transaktion
Datasource
dbGrid
********************
dbConnect - ok
Transaktion verbunden aber nicht aktiviert
Query kann keine Database eintragen.....
- also irgendwie hab ich hier noch einen Knopf.......muss wieter über und forschen

ralli
Beiträge: 374
Registriert: Mi 13. Sep 2006, 15:57
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Hagen a.T.W.
Kontaktdaten:

Lazarus für Windows verträgt sich mit Firebird

Beitrag von ralli »

Also dann wäre Firebird doch richtig. Lazarus für Windows und Firebird 1.5 als Superserver machen bei mir keine Probleme. Funktioniert außerdem, wenn erforderlich, auch als embedded Server. Wenn Du ein kleines Beipiel als Quellcode brauchst, melde Dich.

Ralli

riedere
Beiträge: 12
Registriert: Do 5. Okt 2006, 12:02
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: CH-Zürich
Kontaktdaten:

Beitrag von riedere »

Also ich bin einverstanden Firebird RICHTIG anzusehen. (Mein Nachbar arbeitet professionell damit und hat GB Datenbanken (öffentlicher Verkehr)) Er wird mir etwas helfen.
Ich würd aber gerne unter Linux arbeiten - will doch WIN nur einsetzen wenns gar nicht
anders geht. Hab hier auf einem P4 1800MHz aurox installiert und eine Menge von Programmen. Läuft das erste mal ganz anständig (alles erkannt und Geschwindigkeit ist ok).
Für das Firebird Beispiel wäre ich sehr dankbar.
Dazu interessiert mich natürlich (quasi lebenswichtig) welche Komponenten muss ich dazu installieren für Firebird ?
(ich war/bin schon unter Delphi darauf bedacht alles zu notieren (die Pfade Einstellungen, Lizenzen Tips etc), denn wenn man mal eine Neuinstallation machen muss ist man darüber froh wenn man nur den Ordner (Papier) öffnen muss und alles ist da.)

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Wenn du unter win ne normale installation genommen hast keine, sqldb unterstützt firebird (im tag sqldb zu finden :p) Sollte das tab fehlen installier lazarus\components\sqldb\sqldb.lpk
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

ralli
Beiträge: 374
Registriert: Mi 13. Sep 2006, 15:57
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Hagen a.T.W.
Kontaktdaten:

Kein Firebird unter Linux

Beitrag von ralli »

Firebird unter Linux, da kann ich leider nicht weiterhelfen, denn das läuft bei mir mit Lazarus für Linux nicht.

Ralli

riedere
Beiträge: 12
Registriert: Do 5. Okt 2006, 12:02
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: CH-Zürich
Kontaktdaten:

Geschafft MYSql + Fireball

Beitrag von riedere »

Also in der Zwischenzeit habe ich mir Lazarus auf Linux nochmals installiert:
hier nun auf aurox 12.1 mit Gnome, dazu ZEOS, MYSQL und Fireball.
Dazu auf Remote Hosts ebenfalls Mysql+Fireball.

Nun habe ich es geschaftt (dank der ZEOS Komponente) entweder Local oder Remote mich mit den Datenbanken zu verbinden.
Dazu habe ich Tests gemacht bezüglich Geschwindigkeit zwischen lokal, remote Internet aber im gleichen öff.Subnetz und remote internet (dyn Host).
Ergebniss:
1. - klar der localhost (aber wer braucht das es sei denn zum Testen)
2. - Remote im gleichen Subnetz
3. - Remote (extern)

Der Vergleich FireBird/ MYsql kommt noch (muss das alles tabellarisch festhalten)
Gruss Erich

Natürlich, bin ganz durcheinander von diesen vielen balls.. fires.. fox.. thunder... birds...
Zuletzt geändert von riedere am So 26. Nov 2006, 15:18, insgesamt 1-mal geändert.

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Beitrag von monta »

Der Vergleich würde mich auch mal interessieren.

Kann es sein, dass du Firebird meinst?

riedere
Beiträge: 12
Registriert: Do 5. Okt 2006, 12:02
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: CH-Zürich
Kontaktdaten:

Beitrag von riedere »

Hallo,
ich nahm an dass ich schneller wäre, aber leider haben Kundeneinsätze meinen gelanten Zeiteinsatz dafür in dieser und wohl auch nächste Woche mal vereitelt.
Aber die Vergleiche kommen.

Antworten