Uno strumento per il “Data Modeling”

La settimana scorsa, tramite il blog di Laurent Schneider, ho appreso che Oracle ha rilasciato una pre-versione di un nuovo strumento: “Oracle SQL Developer Data Modeling“. Si tratta al momento di un programma stand-alone per il “Data Modeling” ovvero per la modellazione dati, insomma uno strumento per la progettazione di schemi dati, che permette il disegno grafico di diagrammi entità-relazione (E-R) ed altro.

Appena capito di cosa si trattava mi sono precipitato a scaricarlo e ci ho dato subito un’occhiata. Non ho dedicato molto tempo, ho fatto solo una prova di “reverse-engineering” ovvero di creazione di uno schema E-R a partire da un database esistente. Il programma ha superato bene la prova e mi è parso molto interessante. Non ho poi fatto altre prove ma mi sono ripromesso di scrivere qualcosa su questo blog.

Il mio entusiasmo era principalmente dovuto al fatto che fin’ora non ho trovato un simile strumento free. Qualche settimana fa ho provato a scaricarmi “DIA“, ma non è proprio quello che cercavo. Stamattina però mi è venuto un dubbio su Oracle SQL Developer Data Modeling: è free? Purtroppo dalle FAQ si desume che versione ufficiale sarà un opzione a pagamento (“cost option”). Mi sono poi riguardato (mooolto velocemente) la licenza che ho accettato al download: nella sezione “You may not” dice che non si può usare il programma per processare i propri dati ne per uso commerciale e poi non si può usare dopo il rilascio delle versioni ufficiali o per più di sei mesi.

Pare che in SQL Developer verrà incluso un “visualizzatore” di diagrammi, mentre appunto la versione per editarli sarà da pagare, peccato.

15 pensieri su “Uno strumento per il “Data Modeling”

  1. Manuele Alonzo

    Io ho fatto la stessa identica cosa quando ho letto lo stesso post.
    Da prima l’ho provato da vuoto.
    Mi è piaciuto abbastanza. Il modello risultava chiaro e semplice da leggere e la modellazione abbastanza intuitiva.
    Poi ho fatto come te il reverse engineering del nostro prodotto (circa 2000 tabelle con annessi e connessi) e mi è venuto fuori un modello da 260 mb.
    PRO: al contrario di Erwin (che è lo strumento che utilizziamo adesso) il modello non è un binario (anche se il rapporto è 260mb/19mb) ma una serie di file xml. Il vantaggio è intuitivo: usando strumenti di versioning come CVS riesci a fare una diff delle modifiche velocemente e soprattutto quando esegui un’update tiri giu solo le modifiche e non tutto il modello. Tra i pro anche il fatto che sul server cvs (nel mio caso) lo spazio utilizzato sarà molto più piccolo (con i binari si tiene una copia di ogni modifica). Nella mia azienda chiunque può mettere mano al Modello e poi io alla fine ne devo venire a capo e queste piccole cose sono molto comode.
    CONTRO: un modello da 2000 tabelle con questo strumento è totalmente ingestibile. Si pianta. Non esiste una funzione di ricerca della tabella che ti fa vedere dov’è. Si c’è la possibilità di definire delle workarea ma se in una workarea di 50 tabelle non puoi fare una ricerca rischi di perdere davvero molto tempo.

    Ammetto di non averci perso più di un’oretta totale quindi forse non ho capito niente dell’utilizzo e forse dopo la ricerca non si posizionava sulla tabella solo per problemi di lentezza. Comunque l’impressione è abbastanza positiva.
    Mi rimane da provare se è possibile fare un compare sul DB (ma questo è impossibile che non ci sia) ma soprattutto qual’è la precisione degli script creati per l’allineamento (su questo erwin a volte parte per la tangente e non sono assolutamente attendibili) e se c’è la possibilità di configurare la comparazione (su questo erwin è veramente imbattibile).
    Il compare tra due modelli invece con l’xml viene ad essere inutile e questo è un super PRO.

  2. @Manuele,
    la tua testimonianza è interessante. In effetti non avevo visto in che formato aveva salvato il modello. Vedo però che è un po’ complesso, sono diversi file organizzati in varie directory, ciò però non impedisce di utilizzare in maniera comoda il CVS.
    Io ho fatto una prova con un db con 800 tabelle ma senza vincoli di integrità definiti, quindi il volume dei file è quasi accettabile (una ventina di MB).
    Non ho molta esperienza di questi strumenti, certo gestire un modello con 2000 tabelle deve essere veramente un’impresa ardua

  3. Provato al volo su una decina di tabelle con integrità referenziale.
    Il software è ancora in fase molto (molto) beta (e gli errori a runtime in console lo dimostrano), ma promette bene.
    Mi auguro che rinuncino alla “cost option”, altrimenti ho il sospetto che resterà sempre un prodotto di nicchia….

    Vedremo 😉

  4. Manuele Alonzo

    @Diego,
    Dipende dal prezzo. Ti faccio presente che l’ultima volta che mi hanno detto il costo della licenza di erwin mi pare si aggirasse intorno ai 30.000 eurini. A momenti costa di più della enterprise di Oracle. Ed in ogni modo è indispensabile per gestire un prodotto grande. Ad oggi ho provato il modeler di Toad (assolutamente non paragonabile e non al livello di Toad come prodotto), Embarcadero, quello della Sybase senza mai trovare uno strumento veramente completo. Questo si avvicina ma è proprio beta.
    D’altra parte un altro pro gigantesco: è l’unico non legato a window (facile che sotto linux sia più veloce come sqldeveloper)

  5. @Manuele
    In effetti io ho un pc linux-only (con un paio di macchine virtuali WinXP per lo sviluppo in .net) e il fatto che sia disponibile per linux è quindi il requisito minimo per me.

    Sul discorso prezzo: vero quello che dici.
    Ma Oracle è ritenuto, non so dirti se a ragione o a torto, molto carente in quanto a strumenti di amministrazione/sviluppo, soprattutto se confrontato con MS SQL server.
    Il rilascio di uno strumento di modellazione a titolo gratuito potrebbe essere una buona mossa per riguadagnare quote di mercato.
    O, al limite, rilasciare una versione oracle-only da includere nella distribuzione di Oracle Database.

  6. Alessandro Deledda

    in quanto a strumenti di sviluppo ed amministrazione non mi pare proprio che Oracle sia carente, cominciai a sviluppare con Oracle Developer 2000 e non lo trovavo affatto male e poi ho utilizzato anche jdeveloper che trovavo un’ottimo strumento di sviluppo;
    utilizzai anche webDB, ed ora utilizzo APEX che mi piace molto

    come strumento per documentare i DBs ho utilizzato spesso i prodotti di http://www.net2000ltd.com/, il problema è che non è visuale e ti permette solamente di avere i metadata delle ddl del database

    Alessandro

  7. Adriano

    Ciao, se ti interessa JDeveloper è free ed ha un sistema di data modeling migliore rispetto a quello attuale di SqlDeveloper.
    Certo, alcune cose sono da migliorare ad esempio manca un simbolino che ti dica quali sono le primary key o le foreign key.
    Ti permette inoltre di creare un offline database ovvero di memorizzare la struttura delle tabelle, va da se che avendo jdeveloper il supporto per subversion puoi usare queste feature per fare un versioning del database.
    Se ti va provalo. Ciao
    Adriano

  8. Grazie Adriano e Alessandro,
    lo sto scaricando (sperando che qualcuno non si lamenti del fatto che sto saturando la banda). Però dando un’occhiata alla licenza non ho capito bene quanto free sia. Spero di aver tempo per dare un’occhiata sia a dbdesigner che a jdeveloper.

  9. Ho provato l’ultima versione di JDeveloper, la 11.1.1.0.0
    A parte che per le mie esigenze è un programma un po’ complesso, che richiede un periodo di apprendimento, sembra che richieda anche un PC molto ben dotato. La grafica mi piace molto, ma sul mio PC che ha un paio d’anni il programma è lentissimo.

  10. Nicola

    è uscita oggi la versione 2. Rimane free. Sicuramente il miglior tool free di questo tipo.
    Il relativo tool di mysql è pressochè un giochino, visto che su diagrammi complessi si pianta e nn ha gestione logica/fisica

Lascia un commento