Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Was spricht gegen MySQL (https://www.delphipraxis.net/747-spricht-gegen-mysql.html)

theomega 31. Aug 2002 22:14


Was spricht gegen MySQL
 
Hallo
ich habe ein Buchhaltungssoftware auf MYSQL-Basis entwickelt. Jetzt meine Frage: Wo liegen die Nachteile von MYSQL? Ich habe es halt deshalb genommen, weil ich von PHP her schon Ahnung davon hatte und weil es Freeware (Open Source) ist.

Danke

TO

Daniel 31. Aug 2002 22:35

Hallo,

ein paar Dinge fallen mir da direkt ein:
  • Views werden nicht unterstützt
  • Trigger werden nicht unterstützt
  • Stored-Procedures werden nicht unterstützt
  • Unterabfragen werden nicht unterstützt
  • Constraints sind nur rudimentär implementiert
  • Mengen-Operationen werden nicht unterstützt
Mal von der Tatsache abgesehen, dass ich mein eigenes Forum mit mySQL betreibe, würde ich i.A. vom Einsatz von mySQL abraten, sofern Alternativen zu Verfügung stehen.


Grüße,
Daniel


Nachtrag:
Jetzt wird es richtig AUA: mySQL gestattet es Dir, in der Tabellendefiniton einen oder mehrere Contraints anzulegen und akzeptiert diese Anweisungen ohne jegliche Fehlermeldung.
Im Betrieb jedoch werden sämtliche Contraints (Fremdschlüsselbeziehungen etc.) schlichtweg ignoriert! Dies ist aus meiner Sicht ein absolutes K.O. - Kriterium für den professionellen Einsatz. :x

Daniel B 31. Aug 2002 22:55

Hallo Daniel,

Zitat:

Zitat von Daniel
Stored-Procedures werden nicht unterstützt

Was ist denn das?

Grüsse, Daniel :hi:

Daniel 31. Aug 2002 23:15

Kurz gesagt sind dies Prozeduren, welche in einer vom Datenbank-Hersteller spezifizierten Sprache (oftmals wie z.B. bei "Oracle" an Pascal angelehnt) mit in der Datenbank gespeichert werden.

In diesen Prozeduren kannst Du im Rahmen dessen, was die Integrationsbedingungen zulassen, umfangreiche Datenänderungen vornehmen. (Wenn man jedoch wie bei mySQL erst gar keine Integrationsbedingungen definieren kann, hat man natürlich um so mehr Möglkichkeiten :mrgreen:) Beispielsweise könntest Du unter entsprechender Vergabe von Benutzer-Rechten die Datenbank so kapseln, dass Schreibzugriffe von Aussen nur noch über Deine Prozeduren möglich sind. Die Bandbreite der möglichen Anwendungsfälle ist gross. SPs sind eine tolles Werkzeug, welches ich i.A. nicht missen möchte.

Und ein Trigger ist im Groben nichts anderes als eine SP, welche zu einem festgelegten Zeitpunkt ausgeführt wird; beispielsweise immer vor oder nach dem Einfügen, Aktualisieren oder Löschen eines Datensatzes.

Grüße,
Daniel

Klabautermann 1. Sep 2002 11:08

Hallo,
Zitat:

Zitat von Chakotay1308
Außerdem gibt es ja auch noch Paradox, Interbase, uvvm. bei denen wirst du weniger Probleme haben...

Also Paradox ist nach meinen Erfahrungen äußerst Problemträchtig. Besonders (aber nicht nur) beim Netzwerkeinsatz.

Gruß
Klabautermann

Alfons_G 1. Sep 2002 14:15

:hi:
Es ist im Übrigen möglich, Oracle kostenlos und legal runterzuladen. Dies soll Entwicklern ermöglichen, Anwendungen zu erstellen, ohne selbst eine Oracle-Server-Lizenz zu erwerben.
Du darftst jedoch mit dieser Datenbank selbst kein Geld verdienen, sondern nur durch den eventuellen Verkauf Deiner Programme. Deren Anwender müssen dann selbst eine Oracle-Lizenz besitzen, bzw, kaufen.

Selbstverständlich darf man dieses Oracle auch nicht an Dritte weitergeben. Jeder Anwender muss selbst den Lizenzbedingungen von Oracle zugestimmt haben.

Du gehst auf Oracle (USA) und lässt Dich als Entwickler registrieren. Dann kannst Du Oracle 8i, 9i, Application Server usw. als ZIP-Dateien downloaden. Die Anwendungen umfassen jeweils ein bis drei CDs, also ist DSL Pflicht.

Man muss übrigens versichern, dass man mit der Datenbank keine Kriegswaffen herstellt, nicht Terrorismus betreibt und nicht Bürger eines "Schurkenstaates" ist. :kotz: :duck: :smile2: :roteyes:

:coder:

theomega 1. Sep 2002 15:44

Also von dem was ihr da oben als Nachteile schreibt, sagt mir kein eiziger Fachbegriff was. Wie ist das mit Oracle, gibt es da ordentliche Kompos?

Danke
TO

Hansa 1. Sep 2002 18:30

@Daniel,Alfons_G :

habe mir vor einiger Zeit MySQL runtergeladen und angeschaut. Irgendwie hat es mir nicht richtig gefallen, wenn ich das hier lese: AuWeia, dann habe ich den richtigen Riecher gehabt.

Geht das überhaupt im Netzwerk ??

Gruß
Hansa

Weiß was Trigger sind, aber wozu ich die Stored Procedures verwenden soll ? Kann einer mir das mal kurz sagen ? :witch:

Nachtrag: Habe im Moment Firebird und als IBconsole - Ersatz: IBexpert,
somit bin ich die blöde BDE los und die Interbase-politik von Borland. War in kurzer Zeit viel weiter als vorher.

Hansa 1. Sep 2002 18:36

Hallo Chris,

bitte lese meinen Nachtrag. Hier ist noch einer : Die Komponenten sind aus FIBplus, das kostet aber was (ca. 200E), habe im Moment nur die IDE-Version

Daniel 1. Sep 2002 18:37

Hallo Hansa,

mySQL ist netzwerk-fähig. Ich schreib ja, dass u.A. dieses Forum (und sehr, sehr viele andere auch!) damit betrieben wird.

Mit den Stored-Procedures kann ich Dir leider auch nicht weiterhelfen, wenn das, was ich in diesem Thread bereits geschrieben habe, Dich nicht zufriedenstellt. Was genau willst Du wissen?


Grüße,
Daniel

Daniel 1. Sep 2002 18:44

@Chakotay:
Ich glaube, Du vermischt da zwei Dinge: PHP und ein Datenbank-Management-System (DBMS).
Du kannst aus PHP heraus auch andere Datenbank-Systeme ansprechen (Oracle etc.) Das ist nur eine Frage der Schnittstelle (alle vorhanden!) und nicht schwieriger.
In diesem Thread geht es aber darum, was "gegen mySQL spricht" (s. Titel). Die genannten Negativ-Punkte von mySQL werden doch nicht dadurch kompensiert, dass man die DB über PHP anspricht. :? Wenn ich vorher mit mySQL keine Normalformen erreichen und absichern konnte, dann kann ich das mit PHP und mySQL ebenfalls nicht.


Grüße,
Daniel

theomega 2. Sep 2002 09:47

ich habe mich halt aus genau einem Grund für MySQL entschieden: weil ich wußte wie SQL Querys funktionieren und einen Komponenten gefunden hat, der einfach die Queries ausgeführt hat. Außerdem, und das ist die Frage an euch, wie einfach das bei anderen Datenbank geht:

Ich habe merhrere Tabellen. Unter MYSQL konnte ich das alles mit einem Komponenten lösen, meistens sogar in einem Query. Wie sieht es aber bei den anderen Datenbanken aus? Bei Pardox, z.b. brauch ich für jede Datenbank einen neuen Komponenten.

Daniel 2. Sep 2002 10:05

Hallo theOmega,

es kommt ganz auf die Datenbank an, die Du nutzen willst. Einen Oracle-Sever oder den MS-SQL-Server kannst Du genauso, wie Du das jetzt mit mySQL machst ebenso mit Deiner SQL-Komponenten ansprechen. Lediglich die Syntax kann ein wenig differieren, da SQL zwar in weiten Teilen, jedoch nicht vollständig genormt ist. Letzlich hängt es aber auch wesentlich vom Budget Deines Projektes ab, ob solche kommerziellen DB-Systeme überhaupt in Frage kommen.


Grüße,
Daniel

Nachtrag:
Ich habe herade gesehen, dass es sich bei Deinem Projekt um eine Buchhaltungs-Software handelt. Ich würde dies NIEMALS auf mySQL aufbauen: Eine Inkonsistenz in den Daten und Du kannst die Buchhaltung mit hoher Wahrscheinlichkeit vergessen!

theomega 2. Sep 2002 10:47

Aber gibt es eine kostenlose Alternative, mit der ich dass Programm nachher auch verkaufen kann?

Udontknow 2. Sep 2002 11:29

Hi!

Natürlich gibt es die: Firebird (a.k.a. Interbase) ist völlig umsonst, da OpenSource! Unterstützt alle genannten Features vom Trigger/SP bis zu ForeignKey-Definitionen. In unserem Unternehmen schwören wir drauf. :mrgreen:

Downloaden unter:

http://firebird.sourceforge.net/

Cu, :D
Udontknow

Hansa 2. Sep 2002 11:40

Hallo Udontknow,

Firebird ist gut, aber welche Komponenten verwendet ihr denn? Borland hat doch schon gedroht, sie würden für Firebird keine Extrawurst braten. Somit kann man die IBX wohl vergessen. Experimentiere gerade mit FIBplus, sieht ganz gut aus. Allerdings 200 Euro Investition. Aber Bei einem Buchhaltungsprogramm ?? :hello:

Gruß
Hansa

theomega 2. Sep 2002 11:47

also heißt das es gibt für dieses Firebird keine kostenlosen Komonenten?

Udontknow 2. Sep 2002 12:27

Also, wir setzen (leider) im Moment noch die BDE für den Zugriff auf die IB-Datenbanken ein. Unsere Experimente mit DBX sind allerdings auch schon ganz positiv. Von den richtigen IB-Komponenten müssen wir die Finger lassen, da wir uns immer das Hintertürchen "Wir könnten das RDBMS wechseln, wenn wir wollten" offen halten müssen (ziemlich bescheiden, wenn man bedenkt, daß wirklich seit Jahren keine anderere DB verwendet wurde :? ).

Cu,
Udontknow

Klabautermann 2. Sep 2002 18:44

Hallo,

das mit den Firebird Komponenten finde ich interessant. Wie steht es denn mit dem Zugriff auf Firebird per ADO. Ist das nicht möglich oder hat es wesentliche Nachteile?

Neugierig
Klabautermann

theomega 2. Sep 2002 19:33

mein Problem: ich kann kein Geld locker machen, deshalb viel meine Wahl auf auf MySQL. Wie sieht es also mit Komonenten für Firebird aus?

Hansa 2. Sep 2002 19:55

Hi theomega,

dann benutze die IBX und Firebird! Bis die IBX / Firebird inkompatibel gemacht haben, wird es schon noch dauern. Nur irgendwann alles umzubauen, mit mir nicht ! Leider brauche ich wahrscheinlich sehr viele Funktionen der Datenbank. Da habe ich keine Lust wegen irgendeiner Änderung, die dann irgendwo in 500 Seiten Dokumentation vielleicht erwähnt wird, mein eigenes Programm umzustricken, nur weil ein Update gemacht wurde.

Muß das Programm nicht netzwerkfähig sein, würde ich an Deiner Stelle sowieso etwas einfacheres nehmen.

Gruß
Hansa

theomega 2. Sep 2002 21:10

Nein, mein Programm muß nicht netzwerkfähig sein, ich will nur mit einem Komonenten auch auf mehrere Tabellen zugreifen können.

Hansa 2. Sep 2002 23:35

Hi Theomega,

dann nimm doch einfach Paradox.

Gruß
Hansa

Oder lese hier mal (hab ich ganz vergessen):

http://www.auq.de/viewtopic.php?t=160

theomega 3. Sep 2002 10:26

ich habe mich gerade aus einem ganz anderem Grund gegen MySQL entschieden: auf einem PC 166 Mghz lief die Anwendung fast gar nicht, die war aufgrund der Geschwindigkeit unbenutzbar. Habe dann schnell auf Pardox und BDE umgestellt. Jetzt läuft es zumindest so, dass es bedienbar ist. Und die BDE-installation habe ich auch schon hinbekommen ohne einen Installshield.

Aber wenn es weiterhin gute Tips gibt, dann her damit.

MrSpock 3. Sep 2002 10:51

Hallo theomega,

ich kann mich da Hansa nur anschließen und dir Paradox empfehlen. Es unterstützt immerhin auch eine Untermenge von SQL (localSQL), was für viele Fälle ausreicht.

theomega 3. Sep 2002 11:10

Genau das hat mich auch beeindruckt: ich konnte mein programm problemlos von MySQL auf Pardox umstellen, nur zwei Felder mußte ich kürzere Namen geben.

Ich habe nur noch eine Frage: was gibt es für ein vernüftiges Administrationstools für Pardox? Weil diese Datenbankoberfläche ist ja ziemlich bescheuert.

Hansa 3. Sep 2002 11:36

Hi Theomega,

Na also! Paradox hat noch einen Vorteil: Es gibt sehr viele und verständliche Beispiele und Bücher. Da kommst Du schnell voran.

Für mich ist es leider eine Nr. zu klein. Die bescheuerte Benutzeroberfl. würde ich in Kauf nehmen. Mit viel Schnickschnack kommt noch kein gutes Programm dabei heraus.

viel Erfolg :bounce2:
Hansa

MrSpock 3. Sep 2002 13:38

Hallo theomega,

Paradox 7 würde dir genügen. Wobei ich die Paradox Oberfläche nur noch selten nutze. Das meiste kannst du ja über die Datenbankoberfläche Menüpunkt Tools|Tabellenoperationen erledigen.

theomega 3. Sep 2002 13:45

Ich war halt von MySQL her mit PHP-MyAdmin und MySQL Front recht verwöhnt.

Klabautermann 3. Sep 2002 17:56

Hallo,

Zitat:

Zitat von theomega
Habe dann schnell auf Pardox und BDE umgestellt. Jetzt läuft es zumindest so, dass es bedienbar ist. Und die BDE-installation habe ich auch schon hinbekommen ohne einen Installshield.

auch wenn MrSpock jetzt sicherlich die Augen verdreht :roll: möchte ich dich drauf hinweisen, das es immer wieder Meldungen von Problemen mit Paradox gibt. Nicht zu letzt von mir ;). Dabei geht es meist um verlorende Daten und Probleme mit der Index-Integität.
Letzte Woche ist z.B. ein Partnerunternehmen an mich rangetreten mit der bitte um unterstützung bei einen solchen Problem (wir nutzen Paradox seit über einen Jahr nicht mehr). Dort kommt es alle paar Wochen, bei einer einfachen Single-User Datenbankanwendung, zu den Problem, das neue Daten nicht mehr angezeigt werden. Das interssante dadran ist, das dies nur beim zugriff über tTabe vorkommt, ein zugriff per tQuery (SELECT * FROM Tabelle) zeigt alle Datensätze an. Nach einer Reperatur der Tabelle (mit tUtil) klappt es auch mit tTable wieder - für die nächsten paar Wochen.

Nur damit du nachher nicht sagen kannst man habe dich nicht gewarnt ;).

Gruß
Klabautermann

MrSpock 3. Sep 2002 18:23

@Klabautermann,

ich und Augen verdrehen? Nein, nein, wo denkst du hin 8)?

Es stimmt sicherlich, dass es Probleme mit Indices gibt. Ich habe auch schon viel dazu gelesen, aber nur wenige Male selbst die Erfahrung machen müssen und dann auch nur nach einem Rechnerabsturz und mit der Möglichkeit, die Tabellen ohne Datenverlust wieder herzustellen. Außerdem möchte ich hinzufügen, dass wir schon seit einigen Jahren ohne solche Probleme Anwendungen schreiben, die in Netzen mit bis zu max. 10 Anwendern laufen. Dabei kommt zu mehr als 80% TTable und nur zu 20% TQuery zum Einsatz.

@theomega: Wie gesagt, du solltest die Warnung von Klabautermann wirklich Ernst nehmen. Ich bleibe aber bei meiner Empfehlung. Für deine Anwendung ist Paradox sicherlich geeignet.

Klabautermann 4. Sep 2002 09:13

Hallo,
Zitat:

Zitat von MrSpock
ich und Augen verdrehen? Nein, nein, wo denkst du hin 8)?

nach du das soche ausführungen von mir ja schon das eine oder andere mal gelesen (und auch entsprechende gegenkommentare auf meine Warnpostings geschrieben).
Aber ich finde dieses zumanspiel recht praktisch, so wird der Fragesteller von beiden Seiten informiert und kann sich seine eigene Meinung bilden.

Schade das du keine Erfahrungen mitsolchen Problemen gemacht hast sonst hättest du vieleicht eine lösung wie ich verhindern kann das mein aktuelles auftaucht ;).

Gruß
Klabautermann


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