Hardware Upgrade Forum

Hardware Upgrade Forum (https://www.hwupgrade.it/forum/index.php)
-   Programmazione (https://www.hwupgrade.it/forum/forumdisplay.php?f=38)
-   -   [SQL] MySQL, PostgreSQL e FireBirdSQL: Quale scegliere? (https://www.hwupgrade.it/forum/showthread.php?t=2167200)


Mantis-89 26-03-2010 16:21

[SQL] MySQL, PostgreSQL e FireBirdSQL: Quale scegliere?
 
Tra MySQL, PostgreSQL e FireBirdSQL quale scegliereste e perchè?

CozzaAmara 26-03-2010 17:15

Quote:

Originariamente inviato da Mantis-89 (Messaggio 31402766)
Tra MySQL, PostgreSQL e FireBirdSQL quale scegliereste e perchè?

Dipende, sono tre ottimi RDBMS.

MySQL: vastissima documentazione, molto veloce per piccole basi dati.
Postgres: completamente gratuito e molto maturo.
FirebirdSQL: non lo conosco ma ricordo che sia il preferito di cdimauro :D

lupoxxx87 26-03-2010 17:43

nessuno è meglio e nessuno è peggio ....

dipende dal sistema operativo e dall'utilizzo soprattutto...


un mio prof citava sempre questa frase quando dovevamo scegliere qualcosa
Quote:

“Ogni uomo deve cercare senza sterili imitazioni il suo modo di vivere la verità”
Siddarta

Mantis-89 26-03-2010 18:25

Intanto grazie per le risposte.
Come OS principale avrei Windows però non escludo di utilizzare anche Linux (o BSD).
L'applicazione che vorrei scrivere per adesso dovrebbe essere in c# (anche se prevedo di riscriverla in Java più avanti) e il database che andrebbe ad utilizzare non sarebbe tanto grande.

Quale tra questi rispetta meglio lo standard SQL?
Quale è più semplice da installare/configurare?
E quale dispone di tool di configurazione migliori?

PS:A lavoro utilizzo MS SQL Server 2005 e (purtroppo) mi trovo bene.

Grazie :D

lupoxxx87 26-03-2010 18:32

a mio parere quei 3 vanno bene su un ambiene unix, non su windows...

se devi lavorare su windows ti consiglio oracle, che non ha problemi di stabilità (e ci mancherebbe altro...con quello che costano le licenze per la full version), però è anche abbastanza pesantuccio...

se devi salvare pochi dati potresti dare un'occhiata ai db non relazionali....

o se i dati che devi salvare sono proprio pochi prova con sqlite

cionci 26-03-2010 18:34

Puoi sempre usare MS SQL Express se ti interessa lavorare sull'applicazione che usi a lavoro. Anche perché è chiaro che non siano affatto interscambiabili.

Mantis-89 26-03-2010 18:52

Quote:

Originariamente inviato da cionci (Messaggio 31404614)
Puoi sempre usare MS SQL Express se ti interessa lavorare sull'applicazione che usi a lavoro. Anche perché è chiaro che non siano affatto interscambiabili.

MS SQL Express non mi piace (detesto le versioni castrate, sopratutto se ti limitano nell'uso e non solo sulle funzionalità, mi riferisco ai 4 GB) e non devo lavorare con l'applicazione che uso a lavoro ma scriverne una mia.

Quote:

Originariamente inviato da lupoxxx87 (Messaggio 31404563)
a mio parere quei 3 vanno bene su un ambiene unix, non su windows...

:(

Quote:

Originariamente inviato da lupoxxx87 (Messaggio 31404563)
se devi lavorare su windows ti consiglio oracle, che non ha problemi di stabilità (e ci mancherebbe altro...con quello che costano le licenze per la full version), però è anche abbastanza pesantuccio...

Vorrei rimanere su qualcosa di gratuito e distribuibile

Quote:

Originariamente inviato da lupoxxx87 (Messaggio 31404563)
se devi salvare pochi dati potresti dare un'occhiata ai db non relazionali....

o se i dati che devi salvare sono proprio pochi prova con sqlite

Si non andrò a trattare una mole di dati enorme (credo verrà fuori qualcosa come 3 tabelle di sistema, 3-6 tabelle di dati con una velocità di crescita di 400 record al giorno) però mi serve un database relazionale che lavori in rete e in multi utenza (la concorrenza la gestirò a livello di applicazione)

Grazie

lupoxxx87 26-03-2010 19:38

se hai un server linux ti consiglio 1) postgres 2) mysql...

se hai un server windows c'è una versione free di oracle...la express

cionci 26-03-2010 20:22

Ma di che tipo di prestazioni hai bisogno ?

anto_demeter 26-03-2010 21:41

Ho avuto a che fare con postgres (per l'università) e tutt'ora con MySQL.

Ti dico alcuni degli aspetti in cui mi sono imbattuto:
immediatamente le differenze che si presentano riguardano la documentazione che molto più consistente nel caso di MySQL.
La seconda differenza è più di tipo tecnico....secondo me la struttura di Postgresql è molto pi ben fatta vedi Trigger e foreign key (ad esempio) molto più semplici da fare con postgres.
Per quanto riguarda la velocità, e credo non sia solo un mio parere, MySQL tutta la vita!!

In definitiva ti dico che nonostante la migliore struttura che da vincente postgres io ti consiglierei tra i due MySQL, molto più diffuso, molto più veloce e performante e molta molta più documentazione online!

tutto ovviamente ImHo

cionci 26-03-2010 21:49

Di MySQL c'è anche da considerare il tipo di licenza se fai un'applicazione di tipo commerciale. Infatti non è gratuito per applicazioni commerciali.

Mantis-89 27-03-2010 00:18

Per quanto riguarda le prestazioni non ho particolari esigenze.
Per quanto rigurda MySQL mi sembra si possa utilizzare gratuitamente anche per scopi commerciali perchè la versione gratuita è distribuita secondo la GPL.

cionci 27-03-2010 00:26

Quote:

Originariamente inviato da Mantis-89 (Messaggio 31408515)
Per quanto rigurda MySQL mi sembra si possa utilizzare gratuitamente anche per scopi commerciali perchè la versione gratuita è distribuita secondo la GPL.

Mi sono spiegato male. E' utilizzabile gratuitamente per scopi commerciali a patto di rilasciare il codice sorgente a cui è linkata la libreria client e il connector sotto GPL.
E' vero che non necessariamente GPL significa gratuito, ma è altrettanto vero che linkare codice GPL in un software commerciale è un bel problema.
Qualche anno fa era rilasciato sotto forma di LGPL e non c'erano di questi problemi.

cdimauro 27-03-2010 05:49

Quote:

Originariamente inviato da CozzaAmara (Messaggio 31403487)
Dipende, sono tre ottimi RDBMS.

MySQL: vastissima documentazione, molto veloce per piccole basi dati.
Postgres: completamente gratuito e molto maturo.
FirebirdSQL: non lo conosco ma ricordo che sia il preferito di cdimauro :D

:rotfl: Vero, e fra i 3 è il più maturo, visto che deriva direttamente dai sorgenti di InterBase (RDBMS di classe enterprise venduto dalla ex Borland).
Quote:

Originariamente inviato da Mantis-89 (Messaggio 31404450)
Intanto grazie per le risposte.
Come OS principale avrei Windows però non escludo di utilizzare anche Linux (o BSD).
L'applicazione che vorrei scrivere per adesso dovrebbe essere in c# (anche se prevedo di riscriverla in Java più avanti) e il database che andrebbe ad utilizzare non sarebbe tanto grande.

Quale tra questi rispetta meglio lo standard SQL?

Firebird sicuramente: si pone proprio l'obiettivo della maggior aderenza possibile agli standard.
Quote:

Quale è più semplice da installare/configurare?
Setup, Avanti, Avanti, Fine. :D

Inoltre è disponibile anche in versione embedded, eventualmente (non è il tuo caso, ma è giusto che tu lo sappia): quindi zero installazioni.
Quote:

E quale dispone di tool di configurazione migliori?
Firebird condivide in parte quelli di InterBase, e ce ne sono diversi dotati spesso di interfaccia grafica.
Quote:

Originariamente inviato da anto_demeter (Messaggio 31406838)
Ho avuto a che fare con postgres (per l'università) e tutt'ora con MySQL.

Ti dico alcuni degli aspetti in cui mi sono imbattuto:
immediatamente le differenze che si presentano riguardano la documentazione che molto più consistente nel caso di MySQL.
La seconda differenza è più di tipo tecnico....secondo me la struttura di Postgresql è molto pi ben fatta vedi Trigger e foreign key (ad esempio) molto più semplici da fare con postgres.
Per quanto riguarda la velocità, e credo non sia solo un mio parere, MySQL tutta la vita!!

In definitiva ti dico che nonostante la migliore struttura che da vincente postgres io ti consiglierei tra i due MySQL, molto più diffuso, molto più veloce e performante e molta molta più documentazione online!

tutto ovviamente ImHo

Per quanto riguarda le prestazioni è tutto da vedere. Se parliamo di database transazionali, non credo ci sia storia fra MySQL e FireBird/PostgreSQL.

FireBird poi ha un engine multitransazionale di tipo ottimistico. Giusto per fare un esempio: prova a modificare lo schema di una tabella con MySQL e poi con FireBird, e vedi la differenza che c'è (specialmente se ci sono parecchi dati). Con MySQL il lock è sempre in agguato; con FireBird NO! :cool:
Quote:

Originariamente inviato da cionci (Messaggio 31408588)
Mi sono spiegato male. E' utilizzabile gratuitamente per scopi commerciali a patto di rilasciare il codice sorgente a cui è linkata la libreria client e il connector sotto GPL.
E' vero che non necessariamente GPL significa gratuito, ma è altrettanto vero che linkare codice GPL in un software commerciale è un bel problema.
Qualche anno fa era rilasciato sotto forma di LGPL e non c'erano di questi problemi.

Meglio FireBird da questo punto di vista, che ha una licenza Mozilla/BSD-like.

cionci 27-03-2010 07:48

Quote:

Originariamente inviato da cdimauro (Messaggio 31409158)
Per quanto riguarda le prestazioni è tutto da vedere. Se parliamo di database transazionali, non credo ci sia storia fra MySQL e FireBird/PostgreSQL.

Concordo. MySQL è veloce soprattutto su tabelle MyISAM, le tabelle InnoDB non eccellono assolutamente per prestazioni.
Quote:

Originariamente inviato da cdimauro (Messaggio 31409158)
Con MySQL il lock è sempre in agguato; con FireBird NO! :cool:

Spiega un po' meglio... Intendi il lock a livello di tabella usato sulle MyISAM ?
Quote:

Originariamente inviato da cdimauro (Messaggio 31409158)
Meglio FireBird da questo punto di vista, che ha una licenza Mozilla/BSD-like.

PostgreSQL ha addirittura licenza BSD ;)

Per PostgreSQL sarebbe interessante provare questa distribuzione (tutti i tool e tutti i connector sono inclusi): http://www.enterprisedb.com/products...us/download.do

Mantis: secondo me bisogna valutare bene anche come, da C#, ci si connette al DB.
Per PostgreSQL c'è questo: http://npgsql.projects.postgresql.org/
Sinceramente non ne conosco le prestazioni.
Per MySQL c'è il .Net Connector sul sito ufficiale.
Per Firebird c'è questo: http://www.firebirdsql.org/index.php...ub=netprovider
Peccato che attualmente siano irraggiungibili sia le api che il tutorial.
Ecco, quello che non mi è mai piaciuto di Firebird è una certa confusione nella documentazione e soprattutto nelle metodologie di connessione con i vari linguaggi. Nelle release notes si parla di versione 2.5.x. Il link mancante è alle API 1.7. La feature list è della versione 1.6 :D
Al contrario uno dei punti di forza di PostgreSQL è proprio al documentazione.

Mantis-89 27-03-2010 08:55

Quote:

Originariamente inviato da cionci (Messaggio 31408588)
Mi sono spiegato male. E' utilizzabile gratuitamente per scopi commerciali a patto di rilasciare il codice sorgente a cui è linkata la libreria client e il connector sotto GPL.
E' vero che non necessariamente GPL significa gratuito, ma è altrettanto vero che linkare codice GPL in un software commerciale è un bel problema.
Qualche anno fa era rilasciato sotto forma di LGPL e non c'erano di questi problemi.

E allora il campo si restringe (a meno di trovare una libreria rilasciata in un altra licenza).

Quote:

Originariamente inviato da cdimauro (Messaggio 31409158)
Inoltre è disponibile anche in versione embedded, eventualmente (non è il tuo caso, ma è giusto che tu lo sappia): quindi zero installazioni.

All'inizio avevo in mente un programma monoutente e avevo proprio guardato a questo ;)

Quote:

Originariamente inviato da cionci (Messaggio 31409405)
Mantis: secondo me bisogna valutare bene anche come, da C#, ci si connette al DB.

In che senso?

Comunque inizio ad evere una certa preferenza per FireBird, me lo installo e lo provo intanto :)

cdimauro 27-03-2010 08:59

Quote:

Originariamente inviato da cionci (Messaggio 31409405)
Spiega un po' meglio... Intendi il lock a livello di tabella usato sulle MyISAM ?

Esatto, ma non solo con le MyISAM: è capitato sicuramente anche con NDS (se non ricordo male si chiama così l'engine usato per il cluster).
Quote:

PostgreSQL ha addirittura licenza BSD ;)
Vabbé, c'è poca differenza. :D
Quote:

Per Firebird c'è questo: http://www.firebirdsql.org/index.php...ub=netprovider
Peccato che attualmente siano irraggiungibili sia le api che il tutorial.
Strano. Magari c'è qualche problema di manutenzione.
Quote:

Ecco, quello che non mi è mai piaciuto di Firebird è una certa confusione nella documentazione e soprattutto nelle metodologie di connessione con i vari linguaggi.
Mumble. Perché? La libreria di FireBird è sempre la stessa (interfaccia C-like).

Poi, eventualmente, ci sono wrapper per alcuni linguaggi che ne semplificano l'utilizzo e/o ne adattano l'accesso per essere conformi con le specifiche standard di connessione ai DB (qui mi riferisco a Python e PERL, in particolare).
Quote:

Nelle release notes si parla di versione 2.5.x. Il link mancante è alle API 1.7. La feature list è della versione 1.6 :D
Ehm. Potresti riportare i link a questi documenti? Mi sono perso. :D
Quote:

Al contrario uno dei punti di forza di PostgreSQL è proprio al documentazione.
Questo sicuramente: è più ben curata, non v'è dubbio. D'altra parte la comunità di PostgreSQL è ben più numerosa.

cionci 27-03-2010 09:14

Quote:

Originariamente inviato da cdimauro (Messaggio 31409933)
Strano. Magari c'è qualche problema di manutenzione.

Il link è sempre quello sopra: http://www.firebirdsql.org/index.php...ub=netprovider
Prova clickare su API documentation (1.7), quando l'ultima release note (subito sotto) è per la versione 2.5.2. Poi clicka su "Feature List" e vengono presentate quelle della release 1.6 :)

WarDuck 27-03-2010 09:20

Tra i tre credo che quello che stia messo peggio a livello di supporto degli standard sia MySQL... l'ultima versione che avevo provato ignorava i CHECK.

cionci 27-03-2010 09:27

Quote:

Originariamente inviato da Mantis-89 (Messaggio 31409892)
E allora il campo si restringe (a meno di trovare una libreria rilasciata in un altra licenza).

Non è possibile che esista perché in ogni caso la client library di basso livello è comunque GPL e quindi non puoi rilassare la licenza.
Quote:

Originariamente inviato da Mantis-89 (Messaggio 31409892)
In che senso?

Nel senso che non è detto che gli ADO.Net connector di tutti i tre siano fatti bene. Dovresti testarli un po'.


Tutti gli orari sono GMT +1. Ora sono le: 17:35.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Hardware Upgrade S.r.l.