Access oder MySQL

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
Antworten
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:

Re: Access oder MySQL

Beitrag von Christian »

Das war gequotet, das hat nichtmal er gesagt ;)
Warum regst du dich denn so auf ?
Access ist wirklich uralttechnik die mit modernen auch kostenfreien Datenbanken im Leben nicht mitkommt, und zudem teuer ist.
Wenn dus benutzen willst, tus halt.
Für andere Leute gibts aber sicher wenig Gründe dafür es einzusetzen.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Access oder MySQL

Beitrag von mschnell »

Christian hat geschrieben:Access ist wirklich uralttechnik die mit modernen auch kostenfreien Datenbanken im Leben nicht mitkommt, und zudem teuer ist..
Wie beschrieben war bei Tests mit meiner (von mir benutzen, nicht von mir erstellten) Anwendung JET (das meinst Du vermutlich mit "Access") in den wichtigen Arbeits-Bereichen schneller als C/S (Postgres).

Nun ist es sicher nicht typisch (und vermutlich auch nicht geschickt, 90 % des Datenbank-Inhalts für BLOBs zu nutzen. Aber das Programm arbeitet nun mal so (eine neuere Version kann statt BLOBs auch Dateien in einem Directory auf dem Server halten.)

Soweit ich weiß ist die JET DLL Lizenz immer kostenlos und die DLL-Datei kann bei M$ frei downgeloaded werden.

-Michael

gocher
Beiträge: 298
Registriert: Di 23. Nov 2010, 23:41
OS, Lazarus, FPC: Ubuntu/Win, Lazarus trunk, FPC trunk
CPU-Target: 32Bit/64Bit
Wohnort: Geldern
Kontaktdaten:

Re: Access oder MySQL

Beitrag von gocher »

Hallo,
ich rege mich nicht auf, ich wollte nur mal auf den Ton aufmerksam machen dem jemanden entgegengebracht wird der versucht zu analysieren wo die Unterschiede liegen. Wenn jemand seine Aussagen begründen kann, oder zumindest glaubt das wenn er einen Grund angibt, es wäre eine sinnvolle Begründung und nicht nach dem Schema vorgeht: "es ist so wie es ist", dann bin ich zufrieden, dann kann man Ihm helfen so wie bei Dir.
  • wenn ich was quote nehme ich darauf Bezug oder bin der selben Meinung
  • wieso ich mich Aufrege? Das mache ich nicht dafür ist mir die Zeit zu schade da argumentiere ich lieber
  • woher hast Du das Spezialwissen das Access Uralt-Technik ist, übrigens um auf eine Access-Datenbank zuzugreifen braucht man kein Access (und daher kostet es nichts)!
  • man hat leider nicht immer die Wahl, was man nutzen will ist leider gerade im Beruf nicht immer das was man muss oder soll
  • mal ein paar Beispiele aus der Geschichte, leider setzt sich nicht immer das Beste durch: Betamax/VHS, ISDN (1TR6)/EuroISDN(DSS1), Wissenschaft/Politik :wink:
MfG Gocher
akt. Projekt: Webserver(HTTPS HTTP/2) mit integrierten CMS in Free Pascal - www.gocher.me

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:

Re: Access oder MySQL

Beitrag von Christian »

@mschnell,
1. du kannst uns doch keine Anwendung die auf JET entwickelt wurde und an ne Postgres drangefrickelt wurde als ernsthaften Geschwindigkeitsvergleich verkaufen
2. Du sagst ja selbst das dein beispiel für 90% der Anwendungen keine Relevanz hat

@gocher,
zu 3. Sry ich komm mit JET Datenbanken immer nur in Kontakt wenn Access Datenbanken drauf hängen und Access kostet durchaus. Sry wenn ich das falsch dargestellt hab.
zum Rest, wohin willst du eigentlich Argumentieren ?
Ich glaub ich klink mich hier aus, scheint ein sinnloser Flamewar zu werden / sein
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

gocher
Beiträge: 298
Registriert: Di 23. Nov 2010, 23:41
OS, Lazarus, FPC: Ubuntu/Win, Lazarus trunk, FPC trunk
CPU-Target: 32Bit/64Bit
Wohnort: Geldern
Kontaktdaten:

Re: Access oder MySQL

Beitrag von gocher »

Christian hat geschrieben:zu 3. Sry ich komm mit JET Datenbanken immer nur in Kontakt wenn Access Datenbanken drauf hängen und Access kostet durchaus. Sry wenn ich das falsch dargestellt hab.
zum Rest, wohin willst du eigentlich Argumentieren ?
Ich glaub ich klink mich hier aus, scheint ein sinnloser Flamewar zu werden / sein
OK, die Anwendung Access ist kostenpflichtig, ich habe auch nur geschrieben das man für den Zugriff auf eine Access-DB nicht Access benötigt und daher kostet es nichts, aber wer braucht schon die Anwendung? VBA-Programmierer!
Die Treiber zum Zugriff egal ob Jet oder die Access eigenen sind bei Windows dabei.

Ich weiß ja nicht was Du Beruflich machst und wenn Du auch Entwickler/Programmierer bist, ob Du selbstständig bist, damit Du entscheiden kannst welche Aufträge Du ausschlägst. Bei uns ist es so, ich schreib halt alles was nötig ist, in der Sprache die nötig ist, auf dem System was nötig ist und mit der Datenbank die nötig ist!
Und so schreibe ich mit Delphi & Lazarus (Pascal), PHP, ASP (VbScript), Java, C++, Assembler, ... für Windows, Linux und in Zukunft für OS X und die Entscheidung treffe ich wenn ich möglichst viele Fakten kenne, also Lazarus ist sicherlich super, aber wenn Drumherum alles PHP ist nutze ich halt auch PHP, wenn alle Zugriffe auf eine exotische DB gehen und der Kunde will sein System nicht wechseln dann greife ich halt auf diese exotische DB zu!
Access ist sicher nicht meine erste Wahl für ein performantes System, wie alle anderen Desktop-Datenbanken übrigens auch nicht, SQLite übrigens auch nicht, darum geht es aber doch gar nicht.

Es ging hier schon um die Zugriffsmöglichkeiten, Umstiegsmöglichkeit und die Unterschiede, macht doch jetzt nicht wirklich einen Flamewar daraus, sondern liefert weitere plausible Gründe die zur Entscheidungsfindung beitragen.
MfG Gocher
akt. Projekt: Webserver(HTTPS HTTP/2) mit integrierten CMS in Free Pascal - www.gocher.me

gocher
Beiträge: 298
Registriert: Di 23. Nov 2010, 23:41
OS, Lazarus, FPC: Ubuntu/Win, Lazarus trunk, FPC trunk
CPU-Target: 32Bit/64Bit
Wohnort: Geldern
Kontaktdaten:

Re: Access oder MySQL

Beitrag von gocher »

Wer von Euch da draußen im Netz hat z.B. Erfahrung mit PostgreSQL, hat schon mal jemand von Euch gravierende Unterschiede zu anderen Datenbanken festgestellt?

Es war ein Fehler die Frage hier zu stellen, ich werde später und konkreter hierzu einen neuen Thread anlegen :!:
Zuletzt geändert von gocher am Do 28. Mär 2013, 21:27, insgesamt 1-mal geändert.
MfG Gocher
akt. Projekt: Webserver(HTTPS HTTP/2) mit integrierten CMS in Free Pascal - www.gocher.me

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:

Re: Access oder MySQL

Beitrag von Christian »

Ich mach derzeit ne ganze Menge mit Postgres. Die Frage ist mir aber zu allgemein. Was willst du genau wissen ?
Ich bin sehr zufrieden mit.

Ws geht in dem Thread schon ne weile nicht mehr ums Ursprungsthema.
Das Ursprungsthema kann man denk ich auch ganz gut abhaken mit. Wenn man Access oder Jet vermeiden kann sollt mans tun. (jednefalls aus meiner Sicht)
Für Importgeschichten oder Auftragsarbeiten benutzt mans natürlich wenns vorgeschrieben ist.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Access oder MySQL

Beitrag von mschnell »

Christian hat geschrieben:1. du kannst uns doch keine Anwendung die auf JET entwickelt wurde und an ne Postgres drangefrickelt wurde als ernsthaften Geschwindigkeitsvergleich verkaufen
???? der Hersteller gibt an, dass man das Programm mit JET, MSSQL, MySQL und Postgres verwenden kann. Für die C/S Datenbanken liefert er SQL-Scripts, um die Tabellen einzurichten.
Christian hat geschrieben:2. Du sagst ja selbst das dein Beispiel für 90% der Anwendungen keine Relevanz hat
Da habe ich mich wohl schlecht ausgedrückt.
- Man macht mit dem Programm selten explizite Such-Vorgänge. Bei diesen ist Posgres deutlich schneller (möglicherweise Faktor 10). Die meiste (Datenbank-relevante) Zeit wird verwendet um Thumbnail-Tabellen auf dem Bildschirm darzustellen. Da ist Jet deutlich schneller (Faktor 2)
- 90 % der Bytes, die in der Datenbank gespeichert sind, sind BLOBs für die Thumbnails und es ist klar, dass die Vorteile einer "ordentlichen" Datenbank bei schaufeln von binärdaten nicht sehr zum Tragen kommen.

-Michael

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:

Re: Access oder MySQL

Beitrag von Christian »

Nee, du hattest schon recht.
In dem EINEN Programm ist es so das es egal ist das das suchen langsam ist und das laden von Blobs schnell.
In den meissten Programmen, ist es wichtiger Informationen schnell zu finden.

Wenn du den Postgres Server lokla betreibst, wirds da warscheinlich auch um einiges schneller.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Access oder MySQL

Beitrag von mschnell »

Christian hat geschrieben:Wenn du den Postgres Server lokla betreibst, wirds da warscheinlich auch um einiges schneller.
Da gehe ich von aus. Aber das Programm hat mehrere User auf mehreren Rechnern. Das geht vermutlich nur mit SQL C/S oder mit JET.

-Michael

hde
Beiträge: 556
Registriert: Mi 11. Aug 2010, 02:56

Re: Access oder MySQL

Beitrag von hde »

ErnstVolker hat geschrieben:Hallo Forumsgemeinde,

ich möchte mich mit Datenbanken beschäftigen

1.) Macht es Sinn für die Art der "Datenverwaltung" Access zu nehmen oder sollte man MySQL nehmen?
Das war doch wohl die Frage .. und nur darauf wollte Jemand eine Antwort .. oder ? :wink:

gocher
Beiträge: 298
Registriert: Di 23. Nov 2010, 23:41
OS, Lazarus, FPC: Ubuntu/Win, Lazarus trunk, FPC trunk
CPU-Target: 32Bit/64Bit
Wohnort: Geldern
Kontaktdaten:

Re: Access oder MySQL

Beitrag von gocher »

Fassen wir mal zusammen was wir von ErnstVolker und seinem Projekt wissen:
  • er hat sich mit Access schon befasst, deshalb kam ich auf ADO
  • er hat sich mit Ole-Automation befasst, deshalb kam ich auf die CreateOleObject Variante von ADO
  • wie wir im Verlauf festgestellt haben konnte Zeos unter Lazarus/Free Pascal kein ADO, das geht aber nun mit dem von mir gelieferten Patch damit wäre ein späterer Umstieg auf eine andere Datenbank möglich
  • für seine Projektgröße, ist abhängig von bestimmten Umgebungsumständen, die Datenbank irrelevant
  • hat von Datenbanken noch nicht viel Ahnung und braucht einen leichten Einstieg weil die Erste Programmierung mit Datenbankzugriff heftig genug sein wird, besonders wenn er die zusätzlichen Aufgabenstellungen wie Report-Funktion (Bildausgabe,...) auch noch realisieren muss
  • er muss Daten aus Excel in die Datenbank übernehmen
  • er spricht VBA an, es stellt sich die Frage von welcher Programmiersprache er mehr Ahnung hat, wenn das Projekt zeitrelevant ist sollte man auch diesen Aspekt beachten, allerdings nur wenn es zu den Umgebungsumständen passt (was mir nicht so erscheint)
Also für mich steht außer Frage ich würde das Projekt auf Basis eines Intranet-Auftritts aufsetzen,
da in dem Fall der Client der Browser ist und Server der Webserver und nicht die Datenbank,
  • Server wie vorhanden also wenn Windows den IIS, wenn Linux den Apache,
  • Datenbank unter Windows wenn Access wie bei Ihm vorhanden ist dann Access sonst MySQL, unter Linux MySQL,
  • Entwicklung des Webauftritts als CGI-Application, da es unter Lazarus existiert (ok ich nutze natürlich mein ISAPI-Interface das ist schneller und damit bin ich schneller)
  • Datenzugriffe über Zeos damit man für die Zukunft flexibel ist,
  • Druckfunktion über Druck-Stylesheet
  • Exportfunktionen über FPStreadsheet
Dafür sind HTML-/CSS-Kenntnisse erforderlich und ein wenig Einarbeitung in die Datenbank-Materie, ich denke ein überschaubares Projekt!
MfG Gocher
akt. Projekt: Webserver(HTTPS HTTP/2) mit integrierten CMS in Free Pascal - www.gocher.me

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Access oder MySQL

Beitrag von mschnell »

gocher hat geschrieben:Also für mich steht außer Frage ich würde das Projekt auf Basis eines Intranet-Auftritts aufsetzen,
Das verstehe ich nicht.

Ein Desktop-Programm, das auf mehreren Rechnern läuft ist doch viel einfacher zu erstellen und zu debuggen als ein CGI Programm (außer man möchte unbedingt mit PHP arbeiten).

Wir haben beispielsweise für unsere Kunden, die unbedingt ein "Browser-Anwendung" haben wollten, im Endeffekt ein Desktop-Programm (mit einer Oberfläche mit Status-Anzeigern und Sonder-Bienungen) gemacht, das auf dem (Windows-) Server (auch, ohne die Oberflächge zu zeigen) als Dienst gestartet werden kann. Dieses Programm bzw Dienst kommuniziert dann über einen proprietäres Rechner-internes Protokoll mit einer (ganz kleine) ISAP DLL, um via Webserver mit dem User am Browser zu sprechen. Dadurch lässt sich die eigentliche Applikation ordentlich debuggen, weil sie eben keine DLL oder ein CGI ist.

-Michael

gocher
Beiträge: 298
Registriert: Di 23. Nov 2010, 23:41
OS, Lazarus, FPC: Ubuntu/Win, Lazarus trunk, FPC trunk
CPU-Target: 32Bit/64Bit
Wohnort: Geldern
Kontaktdaten:

Re: Access oder MySQL

Beitrag von gocher »

Stimmt MIchael,

Du denkst mit!
Den Aspekt Debugging habe ich nicht berücksichtigt der ist natürlich für einen Anfänger in einem neuen Bereich auch relevant, das habe ich schon ganz vergessen ich habe glaube ich schon seit ca. 5Jahren kein Debug unter Lazarus mehr eingesetzt!

Ach so ja, hätte ich jetzt fast vergessen, vor genau einer Woche habe ich angefangen Access mit MySQL zu vergleichen und bin dann auf Zeos auch noch eingegangen, habe dann Codes offen gelegt und Werte, was muss ich noch alles machen damit mal jemand hier fachlich die Unterschiede und Problematiken in Bezug auf Datenbankzugriffe klärt?
Wie aussagekräftig sind Messwerte, was wird gemessen, wie viel Prozent fällt bei der Messung von mir eigentlich auf Datenbank-Zugriffe und wie viel auf Ausgabe?
Ich möchte eigentlich mal wissen ob sich mal jemand von Euch Gedanken darüber mach wie wichtig eine gute Programmierung ist und wie wenig Wert in vielen Fällen auf die Wahl der Datenbank gelegt werden kann, wenn die Programmierung gut ist! Ach so meine Programme die ich hier im Quellcode eingestellt habe, könnten ja mal optimiert werden um die Relevanz der Datenbank klar zu stellen, viel Spaß!

Hier noch die Routine zur Zeitmessung, damit das alles nicht in Arbeit ausartet:

Code: Alles auswählen

program Launcher;
uses
  Classes, SysUtils, Process;
var
  AProcess: TProcess;
  StartTime, EndTime: DWord;
begin
  AProcess := TProcess.Create(nil);
  StartTime := GetTickCount();
  AProcess.CommandLine := 'ole.exe';
//  AProcess.CommandLine := 'myAdo.exe';
//  AProcess.CommandLine := 'zeos.exe';
  AProcess.Options := AProcess.Options + [poWaitOnExit];
  AProcess.Execute;
  EndTime := GetTickCount();
  WriteLn('Zeit: ' + IntToStr(EndTime - StartTime));
  AProcess.Free;
end.
 
MfG Gocher
akt. Projekt: Webserver(HTTPS HTTP/2) mit integrierten CMS in Free Pascal - www.gocher.me

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Access oder MySQL

Beitrag von mschnell »

gocher hat geschrieben: Den Aspekt Debugging habe ich nicht berücksichtigt der ist natürlich für einen Anfänger in einem neuen Bereich auch relevant
Dann bin ich nach 25 Jahren noch Anfänger :( .
gocher hat geschrieben: ich habe glaube ich schon seit ca. 5Jahren kein Debug unter Lazarus mehr eingesetzt!
Ich meine nicht nur Debug "unter Lazarus". Ich finde es auch extrem praktisch, dass man mit Lazarus (bzw. Delphi) einem Programm "mal eben" eine sehr leicht konfigurierbare Oberfläche geben kann um es zu testen.

Ich habe z.B. gerade ein Programm gemacht, dass für den "embedded" Einsatz auf einer kleinen ARM / Linux Kiste gedacht ist, die keine grafische Oberfläche hat. (Diese hat auch keinen Webserver, aber für Programme, die als CGI laufen sollen, gilt im Prinzip ähnliches.)

Hier habe ich die "Funktionalität" in mehrere Units gepackt, die keine Oberfläche haben (und auch keine TTimer, etc, weil Lazarus dass in non-GUI Programmen nicht kann.

Dazu habe ich ein "Oberflächen" Unit, die auch die TTimer zur Verfügung stellt. Sie ruft Funktionen und Properties der "Funktionalität" Units auf und wird von diesen (z.B. für Status-Ausgaben) über Events versorgt.

Das kann man dann wunderbar testen (mit oder ohne Debugger.)

Nachdem es funktionierte habe ich eine "embedded" Unit gemacht, die die unveränderten "Funktionalität" Units einbindet und anspricht und bei Event-Aufrufen (die vielleicht vorher in TMemos landeten) z.B. Logfiles schreibt.

Das Ergebnis konnte wieder auf dem PC getestet werden (auch mit Debugger).

Dann das Ding mit fpc auf dem ARM System übersetzen und installieren. (Da gibt es kein Lazarus und (noch) keinen Debugger, also kann man sich nur die Logfiles und möglicherweise Kommandozeilen-Ausgaben anschauen. Aber man weiß ja dass alles Im Prinzip funktioniert.

(Es gibt einen anderen Thread im Forum über dieses Projekt.)

-Michael

Antworten