08 settembre 2005

MySQL: nuova versione = nuovi problemi

Non ho ancora avuto la possibilità di provare il nuovo MySQL 5 ma partendo dal messaggio di Rudy ho letto le nuove funzionalità e mi sono fatto un'idea.
Sono partito da "What's New in MySQL 5.0".

Prima novità(probabilmente solo a causa dell'ordine alfabetico): BIT Data Type: Can be used to store numbers in binary notation.
Qui c'è un po' di confusione tra il valore memorizzato e la sua rappresentazione: ogni numero può essere rappresentato in notazione binaria o decimale o esadecimale ma resta sempre quel numero! E anche parlando strettamente della memorizzazione su disco non penso che ci possa essere una alternativa alla notazione binaria. Del resto se qualcuno ha avuto a che fare con le date in MySQL (mi riferisco alle versioni precedenti) probabilmente si è già scontrato con questioni simili.

Seconda novità (in realtà è l'ultima riportata ma ci sta bene qui per contrasto con la precedente): le view
Nella descrizione estesa leggo: In designing an implementation of views, our ambitious goal, as much as is possible within the confines of SQL, has been full compliance with “Codd's Rule #6” for relational database systems: “All views that are theoretically updatable, should in practice also be updatable.”
A me sembra una "nota stonata" citare il modello relazionale nel manuale di MySQL: probabilmente bisognava averlo ben chiaro in testa prima di iniziare a scrivere tutto il programma.

Terza novità: le federated tables, ovvero un maldestro tentativo di implementare l'equivalente dei dblink di Oracle.
A parte la sintassi che è una barzelletta ho letto le limitazioni e cito solo due punti:
- The remote table that a FEDERATED table points to must exist before you try to access the table through the FEDERATED table.
Accidenti che limitazione! Se non esistesse cosa dovrebbe fare: inventarsi i dati?
- There is no way for the FEDERATED engine to know if the remote table has changed. The reason for this is that this table has to work like a data file that would never be written to by anything other than the database. The integrity of the data in the local table could be breached if there was any change to the remote database. Questa frase (anche se non mi è del tutto chiara) la dice lunga sul modo in cui sono implementate e sull'utilità che possono avere.

Se la documentazione rispecchia quello che descrive, il mio timore che l'affidabilità del prodotto sia rimasta molto bassa nonostante l'aumento della versione, è fondato.

2 commenti:

ste ha detto...

Non pareva che postgres fosse il miglior dbms free? Come mai ancora interessi per mysql?

Rudy ha detto...

Beh, qui sul blog stiamo sempre attenti a tutte le novità tecnologiche... e poi cmq per lavoro s'ha da fa' (leggi il corsivo del mio post precedente su maisiquel).