30 giugno 2006

Mi sono certificato!


Da oggi sono certificato Oracle DBA 9i di livello OCA, ovvero il primo livello di certificazione DBA disponibile.
Sono troppo felice!
Gli esami sono stati difficili, molto più di quanto mi aspettassi.
Ora inizia la seconda fase, ancora più difficile, che richiederà mesi di studio: la seconda parte dell'amministrazione del database (backup and recovery) e la fase finale di performance tuning, per cui avrò l'aiuto del testo di Tom Kyte :-)

29 giugno 2006

Database e filesystem

Sembra che WinFS, il nuovo filesystem dell'annunciato Windows Vista, non venga più inserito nel nuovo sistema operativo della Microsoft (da Zeus News).
A quanto dice Quentin Clark, del WinFS Team, una parte del progetto riguarda l'integrazione di dati non strutturati in un database relazionale. Ritengo che sia molto istruttivo considerare questa profonda relazione tra filesystem e database, un rapporto che a volte è più sbilanciato verso l'uno o l'altro, come ad esempio mysql.
Lo scopo finale di WinFS è quello di ridurre o annullare il lavoro di amministrazione del database nel caso di dati non strutturati, caratteristica che dovrebbe essere integrata nella prossima versione di SQLServer.
La relazione database-filesystem porta però a pensare a quanto lo storage e la gestione delle transazioni dei database vengano sviluppate secondo linee di pensiero parallele (es. LVM e datafiles, journal e redo-log, indici dei file e indici delle tabelle).

23 giugno 2006

The daily WTF (what the...)

Segnalo il divertente blog The daily WTF, che raccoglie le stranezze (a dir poco) che gli autori incontrano nell'information technology, ma non solo.
Divertentissimi i racconti del Report Misterioso, il Black-box Blackboxing, Pointless. Chi lavora su queste cose si sarà sicuramente trovato in molte situazioni simili.

15 giugno 2006

Matematica di Oracle

Segnalo un ottimo articolo di Database Joournal sul calcolo delle funzioni trascendenti in Oracle e, più in generale, per i computer.
Interessante il fatto che le funzioni ln2a e ln2b sono state scritte in PL/SQL, con una performance comparabile a quella delle funzioni native.

17 maggio 2006

SQL Server 2005

Ieri sono andato alla prima giornata della introduzione tecnica a Microsoft SQL Server 2005, dedicata all'amministrazione del sistema.
Sono rimasto piacevolmente sorpreso della sobrietà e serietà dell'evento, tutt'altro che dedicato a pubblicità e marketing; anzi, alla fine si è praticamente trattato di un corso in piena regola, molto denso di contenuti ed esempi pratici.
Un plauso a Gianluca Hotz, che ha tentato l'impossibile per condensare tutti i concetti dalle 9:30 del mattino alle 18:00 di sera con un'ora di pausa totale per caffé e cibo!
Peccato non poter presenziare anche alle altre due giornate, si preannunciavano ricche di contenuti.

Ecco i principali argomenti interessanti che ho rilevato:

  • Ricerca full-text con possibilità di scrivere plug-in personalizzati, con comandi DDL per accedere al catalogo invece di stored procedures; supporto per più lingue anche sulla stessa colonna; ft indexing di dati XML

  • Service Broker è un'estensione di T-SQL per implementare le code asincrone di messaggi, che vengono usate per le funzioni più disparate del DB.

  • Supporto SOAP per i web-service direttamente nel DB

  • Catalogo molto arricchito e tabelle di sistema inaccessibili a chiunque se non tramite le viste di sistema, non più aggiornabili :-) Il catalogo contiene inoltre una serie di viste che permettono di avere le statistiche di base prese durante il funzionamento.

  • CLR: è possibile programmare il DB anche in C#, .NET, VB, C, C++ con vari livelli di sicurezza

  • Nuovi tipi di dato serie varchar senza più limitazioni a 4000 o 8000 byte

  • Caricamento ed esportazione dei dati in XML

  • Gestione dei punti di entrata nel DB come endpoints, quindi maggiore controllo e sicurezza (tutto è disabilitato di default, a quanto pare)

  • SQL Server Management Studio è spettacolare, l'ho visto utilizzare per vari compiti, molto semplice e immediato ed è un'applicazione MS nativa.


Da approfondire con l'Express edition, gratuita, da provare insieme a SSMS.

02 maggio 2006

AJAX, RAC e PHP

Dalla newsletter OTN:

28 aprile 2006

View e order by

In un libro su Oracle che sto leggendo ora ho trovato varie versioni della questione se sia possibile creare una view con una query contenente la clausola "ORDER BY".
Nel libro (di cui vi dirò in futuro) ho trovato prima una versione che permetteva questa sintassi:

create or replace view myview as
(select * from emp)
order by ename;


Alla fine diceva che era possibile anche omettere le parentesi:

create or replace view myview as
select * from emp
order by ename;


A quanto pare nel passato ciò era impossibile, a quanto risulta da questa risposta di Tom Kyte su un newsgroup, ma oggi lo è.
Tom Kyte, nel post citato, spiega anche chiaramente perché l'ordinamento nelle view è fondamentalmente inutile; infatti nella teoria relazionale non se ne fa menzione, e tutte le relazioni vengono trattate come insiemi, in cui l'ordinamento non è rilevante, ma riguarda solo una rappresentazione dei dati.

18 aprile 2006

Oracle verso Linux e l'open-source

Su arstechnica.com è apparso un servizio secondo il quale Oracle sarebbe interessata ad entrare nel mercato delle distribuzioni Linux.
Ellison si è dichiarato interessato a Novell; la collaborazione tra Oracle e Novell recentemente si è rafforzata con la soluzione Accelerator per Oracle 10g.
Molte delle funzioni del sistema operativo sono ora incorporate in Oracle, come ad esempio la gestione dei dati su disco con ASM e 10g; Oracle avrebbe la possiblità di fornire una soluzione completa, nonch´ di confezionare su misura una distribuzione Linux e il suo kernel.

Oracle 9iR2 (9.2.0.4.0) su Dapper Drake!

Ieri, approfittando della festa E del brutto tempo, ho provato ad installare Oracle 9iR2 9.2.0.4.0 su Ubuntu 6 Dapper Drake in prerelease.
Interessante la difficoltà a far partire la JVM per colpa delle librerie libstdc++ troppo aggiornate: ho dovuto installare la prima versione disponibile da APT.
Alla fine la parte più comica è stato il segmentation fault proprio all'inizio della configurazione del DB, dopo l'ultima fase dell'installazione; meno male che avevo fatto creare come da buona usanza gli script di creazione del DB, quindi con qualche tentativo manuale à andato tutto a posto.
Ora mancano le configurazioni dei nomi di rete e del listener.

09 aprile 2006

Concatenazione in mysql

Ho recentemente avuto a che fare con una query in mysql dove le condizioni di join erano espresse nel seguente modo (con ansi-mode attivato):

[...] on
a.col = 'cost' || b.col

Nonostante b.col e a.col fossero indicizzate, l'explain della query portava l'uguaglianza a considerare TUTTE le righe della tabella b, circa 2 milioni.
Incredibilmente la versione seguente funzionava a dovere:

[...] on
a.col = concat('cost', b.col)

smentendo quindi il manuale, dove si afferma che le due versioni sono la stessa cosa (nella pagina: PIPES_AS_CONCAT).

21 marzo 2006

Kernel Linux e OCFS2

Durante la mia installazione RAC 10g su Ubuntu 5 ho incontrato diverse difficoltà con OCFS2, che sembra andare ma alla fine blocca l'installazione di Clusterware; in più segnala come utilizzati solo dalle rispettive macchine i dischi condivisi, nonostante non vengano evidenziati errori.
A quanto pare la soluzione definitiva arriva dai sorgenti del kernel Linux stesso: la nuova versione 2.6.16 incorpora OCFS2 nativamente. Una bella descrizione di OCFS si può trovare nelle pagine di LWN.
Sarà quindi meglio per me attendere Ubuntu "Dapper Drake" prima di poter proseguire nell'installazione di RAC.

20 marzo 2006

Torno a studiare

Ieri ho deciso di iniziare a studiare per la certificazione Oracle.
Era da tempo che ci pensavo, e visto che ho all'attivo un corso di DBA Oracle fundamentals I, ho deciso per il percorso 9i.
Su Amazon ho deciso per il kit della Oracle Press, OCP Oracle9i DBA Certification Boxed Set, anche se ho letto opinioni contrastanti sui newsgroup e nei commenti di Amazon.
Intanto sono arrivato a più di 1/3 di Oracle Concepts, documentazione ufficiale. Un libro assolutamente fondamentale, che consiglio a chiunque.

10 marzo 2006

Novità techblast Oracle

Dalla newsletter OTN due importanti novità:

  • Project Raptor è diventato Oracle SQL Developer, è arrivato alla versione 3 Early Adopter, liberamente scaricabile come sempre.

  • Segnalo un bell'articolo sulle connessioni persistenti di PHP con Oracle, dal PHP Cookbook

09 marzo 2006

Oracle 10gR2 RAC e Ubuntu

Ho sotto mano un server di test con 2 GB di RAM, quindi ho deciso di provare a installare Oracle 10gR2 RAC su Ubuntu Linux server usando VMware server, che a quanto pare è diventato gratuito.
Sono a metà dell'installazione, non so se arriverò ad un sistema funzionante, ma le premesse ci sono tutte.
Ubuntu mi sorprende sempre più, si dimostra un sistema operativo completissimo e aggiornatissimo.
Per i dettagli, che sono abbondanti, ci vorrà tempo.
Intanto potete leggervi gli interessantissimi articoli di Tarry Singh.

21 febbraio 2006

MySQL verso Firebird


Le recenti acquisizioni di Oracle sono state recentemente completate da Sleepycat software (leggi post a riguardo), ovvero BerkeleyDB, che fa anche parte degli storage engines di mysql.
Mysql sembra quindi come privato della piena disponibilità dei suoi motori "transazionali" di ricerca. Sotto questa luce diventa maggiormente comprensibile la recente contromossa di mysql dell'acquisto di Netfrastructure, che offre una implementazione di Firebird.
È interessante la lettura dell'articolo relativo nelle Firebird news, specialmente nella parte centrale, dove si afferma che la mossa di mysql valida il fatto che Firebird possiede un codice più maturo e ricco. Sembra quindi che l'evoluzione futura di mysql vada verso l'implementazione delle transazioni tramite l'adozione dell'architettura Firebird.

Nella foto: il logo firebird sulle Pontiac americane :-)

19 febbraio 2006

Oracle acquisisce Sleepycat

È una notizia di ieri l'acquisizione di Sleepycat software da parte di Oracle.
Il link del titolo di questo post porta all blog di arstechnica, l'articolo migliore che ho trovato fin'ora, che mi ha spinto a commentare la notizia; sulla pagina del comunicato stampa di Oracle si trovano comunque tutte le ragioni dell'azienda.
Personalmente ho trovato molto interessante DBXML, versione XML nativa di Berkeley DB. Ho cominciato a leggere la documentazione e fare qualche prova sul mio portatile con Ubuntu, e le prime impressioni sono favolose. Per lavoro maneggio milioni di documenti XML, e questo database mi apre muovi e interessantissimi orizzonti. È un db XML nativo, quindi è possibile immagazzinare direttamente i documenti e poi eseguire query con XQuery e indicizzare il contenuto.
L'acquisizione di Oracle continua, a mio giudizio, la politica di mettere le mani nei prodotti open-source, e nello stesso tempo offrire una gamma di prodotti diversificata, ma questo è puro marketing. Dal punto di vista tecnico stiamo parlando di prodotti molto diversi (es. InnoDB di mysql), che non vanno a cambiare l'ordine delle cose.

14 febbraio 2006

Cluster MySQL

Dalla versione 5 di mysql è presente la funzionalità di clustering, che a detta della pagina del prodotto prometterebbe velocità, stabilità, ecc.
Dopo gli entusiasmi iniziali dati dalla lettura del capitolo del manuale che parla di cluster mysql, mi sono imbattuto verso la fine nelle "Known limitations"; infatti il server mysql in realtà poggia le proprie capacità di clustering sul motore del database, ovvero ciò che immagazzina effettivamente i dati, separato dal server che li elabora. Per fare un paragone, siamo sempre nel caso della differenza tra le tabelle myisam e innodb: se le prime possono avere indici fulltext, le seconde no, ma hanno le transazioni.
Per il cluster c'è un altro motore di database chiamato NDB, che ha caratteristiche sue particolari e deve essere specificato in fase di creazione delle tabelle; le tabelle che andrete quindi a creare nel cluster non saranno né myisam né innodb.

  • Gli indici fulltext non sono supportati, come i tipi di dati geografici

  • Il livello di isolamento è read committed (c'è da capire come si comporti il database in un caso reale con gli accessi contemporanei - le prove fatte in passato non erano molto confortanti)

  • Tutte le righe delle tabelle sono di lunghezza fissa (!)

  • La lunghezza massima di ogni riga è di 8 KB (!)

  • Nessun supporto per foreign key


Come al solito ci si trova davanti ad un prodotto innovativo, ma con pesanti limitazioni, che possono anche annullare i vantaggi. Tipico alla mysql.
Spero di potere presto fare qualche prova.

10 febbraio 2006

Migrazioni verso Oracle

Scopro oggi che Oracle ha un centro dedicato alla migrazione da altri database. L'applicazione è il migration workbench.

Ah, aggiornate il feed RSS del blog: http://feeds.feedburner.com/RDBLand

Che cosa manca a MySQL?

Ce lo dice Monty Widenius, in un'intervista per Linux Magazine dell'11 novembre 2005:

Linux Magazine: [...] However, what desirable Oracle -- or other database -- features are still needed in MySQL?

Monty Widenius: Oracle has a lot more performance indicators than MySQL (which makes it easier to tune Oracle for different kinds of load). We want to extend the status information and tuning parameters in MySQL to allow advanced users to do similar things with MySQL.
Partition is also a nice feature that exists in other databases and we are working on having our own partition solution. (First version of this will be in 5.1)
Advanced replication with better conflict resolution and federated tables to other databases are also on the roadmap.
And of course, we are always working on making MySQL even faster for a an even broader set of cases.

Di concorrenza e transazionalità nessun accenno.

08 gennaio 2006

Indici su funzioni e constraints

Sto leggendo Effective Oracle by Design, e sono arrivato alla gestione degli schemi.
Ho trovato un interessante esempio di come esplicitare i constraint su una tabella in modo da scrivere le condizioni di integrità dei dati direttamente nella definizione della tabella e non tramite trigger o simili.
Ecco il post originale su asktom.oracle.com. In un followup nella stessa pagina viene riportata la soluzione più elegante al problema.

29 dicembre 2005

Raptor è arrivato!

Finalmente, dopo un paio di giorni piuttosto impegnativi, riesco a postare nuovamente con le novità e le mie prove.
È uscito Raptor, un ambiente operativo grafico per Oracle, scritto in Java.
Viene distribuito in versione Windows "full", ovvero con la virtual machine java e JDK completo, mentre per gli altri sistemi operativi bisogna scaricarsi JDK 1.5.
Non ho trovato il JDK per Mac OS X, quindi mi sono dovuto accontentare della versione per Windows; in compenso mi sono collegato a Oracle 10gR1 su Mac :-)

Ecco la finestra dei report con i datafile sul Mac:

Il data dictionary con tutti i commenti originali:

La gestione delle tabelle, editing compreso:

L'editor SQL:

È necessario dire che Raptor è gratuito e liberamente scaricabile da OTN? Beh, sì, viste le premesse e visto che intacca un mercato già consolidato come quello degli editor SQL. Oracle continua sulla doppia strada di introdurre innovazione tecnologica (più o meno guidata dal marketing) e di fornire strumenti e accessori di alto e altissimo livello a titolo gratuito per migliorare l'utilizzo dei suoi prodotti.
Ancora complimenti alla Oracle. Non si potrebbe sperare di più nemmeno dal fronte open-source.

26 dicembre 2005

Oracle 10gR1 su Mac OS X

I giorni di festa per me sono il momento giusto per fare qualcosa di insolito, non avendo nulla da fare ed essendo praticamente bloccato in casa.
Il Natale poi è una delle festività che meglio si prestano per attività da perditempo.
Ieri, complice anche un discreto pranzo natalizio, sono riuscito ad installare Oracle 10gR1 sul mio fido Mac mini. Sì, avete letto bene. È stato come parcheggiare una nave in un porticciolo, ma è una soddisfazione vedere il placido e piccolo Mac eseguire senza fatica apparente un gigante come 10gR1. Questa versione di Oracle è certificata solamente per la versione server di Mac OS X, ma la procedura manuale a linea di comando descritta nella Quick installation guide è stata sufficiente per preconfigurare correttamente il sistema.
Ecco le principali fasi dell'installazione:
L'installer parte:
Il database di prova viene creato da DBAssistant:

Oracle Enterprise Manager è attivo e dalla finestra di iTerm provo a eseguire query sullo schema scott classico :-):

Dopo qualche prova posso tranquillamente affermare che per scopi didattici l'installazione su Mac OS X normale (nel mio caso Panther) è assolutamente utilizzabile. Tempo fa provai l'installazione su Linux, con pessimi risultati per quanto riguarda la velocità di installazione, ma probabilmente feci errori nella configurazione dei parametri del kernel.
L'installazione fa un lavoro eccellente nel considerare le caratteristiche della macchina su cui si sta installando il software, regolando la SGA e gli altri parametri in modo da utilizzare circa la metà delle risorse disponibili.

14 dicembre 2005

VMWare

Prendendo spunto dall'ultima blog entry di Tom Kyte, sono andato a vedere che cosa offre VMWare per i nostri interessi.
La pagina del Virtual Machine Center contiene tutti i link necessari per provare la virtual machine e le sue applicazioni precostruite.
Tutto è molto interessante, specialmente per provare combinazioni di sistemi operativi e applicazioni avendoli sempre disponibili su disco.

28 novembre 2005

Usare le "pipe" in Oracle

Molto istruttivo questo articolo sull'uso delle "pipe" in Oracle con il package apposito.

27 novembre 2005

Comparazione DB2-MySQL

Ho letto questa whitepaper di Martin Hubel Consulting, Inc., in cui vengono evidenziati gli innumerevoli difetti di mysql, se posso permettermi con qualche imprecisione, che però non invalida il contenuto.
Sembra un po' di parte, comunque è un'utile lettura.

13 novembre 2005

Zend e session clustering


La piattaforma Zend per lo sviluppo di applicazioni PHP si arricchisce con il session clustering, che fa in modo di trattenere le informazioni sulla sessione $_SESSION di PHP sul primo webserver su cui viene creata.
Un demone fa in modo che l'accesso alle informazioni di sessione sia sincronizzato tra i vari server, come si legge nel whitepaper.
Non sono d'accordo con l'affermazione che il database, usato come memoria delle sessioni, sia un single point of failure, in quanto lo sarebbe per tutta l'applicazione; con in cluster di database si risolve brillantemente il problema.
Interessante anche il fatto che non è necessaria alcuna modifica ai listati PHP già in produzione.

31 ottobre 2005

Oracle Database 10g Express Edition

Da un paio di giorni è possibile scaricare la versione free di Oracle 10g.
La decisione di rilasciare una versione di Oracle per il mercato di fascia bassa dovrebbe contrastare la presenza di mysql e Postgres, ma soprattutto portare gli operatori a conoscenza delle possibilità di 10g.
XE comunque ha una serie di limitazioni che sono be descritte nelle FAQ e nel data sheet.

25 ottobre 2005

L'intruso

Leggendo qua e là mi sono imbattuto in una nuova sigla: MAMP.
I dettagli parlano chiaro: Mac+Apache+mysql+PHP. Personalmente trovo la piattaforma LAMP già piuttosto riduttiva; essendo ormai abituato al Mac e alla qualità delle sue realizzazioni penso che MAMP sia un'eccessiva semplificazione, per dirla con un eufemismo.
Nella pagina, poi, c'è una presenza poco pertinente, e anche il logo non mi convince per nulla. Fate i vostri confronti con questa pagina.

19 ottobre 2005

EnterpriseDB

Leggo di EnterpriseDB, un "clone" PostgreSQL incentrato sulle compatibilità con l'SQL di Oracle. Ne è appena uscita la versione 2005, corrispondente a una 8.0.3 di PostgreSQL, troppo poco per i miei gusti: la 8.1 ha nuove caratteristiche molto interessanti.

Le pagine PHP di OTN si arricchiscono di un nuovo contributo: "Oracle+PHP cookbook" che, a differenza di DeployPHP series, si propone a quanto pare di fornire linee guida per scrivere il codice migliore possibile, mentre DeployPHP è più incentrato sulle varie tecnologie.

10 ottobre 2005

Oracle compra Innobase

Sembra che Oracle abbia acquistato Innobase, la società che sviluppa e mantiene InnoDB, la parte "transazionale" (ahem...) di mysql. A mio modo di vedere l'acquisizione è la reazione della Oracle all'uscita della versione 5 di mysql, che promette varie novità come i trigger, le view e le procedure.

Qualcuno è anche riuscito ad installare Oracle su Mac OS-X 10.4.

05 ottobre 2005

Oracle OpenWorld 2005 online

Qualche aggiornamento sul mondo Oracle: è disponibile online gran parte delle diapositive usate all'Oracle OpenWorld 2005 di San Francisco.

Club Oracle invece propone una serie di simpatici sfondi e screensaver.

Oracle TimesTen è arrivato alla versione 6.0.1.

Amazon USA ha una sezione dedicata a Oracle.

28 settembre 2005

Oracle HTML DB e Raptor

Ho provato per qualche giorno Oracle HTML DB, un tool 10g (che funziona anche dalla 9.2) che permette di creare applicazioni basate su web, comprendendo tutte le fasi dello sviluppo, senza conoscere la sintassi SQL e la programmazione web.
OTN fornisce un interessante demo, in cui si vedono le potenzialià dell'interfaccia di HTML DB.
È anche possibile provare subito a creare le proprie applicazioni richiedendo una login su http://htmldb.oracle.com/.

Gira la notizia che stia per uscire Raptor, un software che ha scopi simili ai vari Toad o Tora. Per ora ci sono solo alcuni screenshots e qualche notizia sparsa.

23 settembre 2005

Filesystem e DB

Leggo oggi da qualche parte l'uscita di NOOFS, un filesystem unix basato su database, che promette di rendere indicizzabili e ricercabili i file molto più facilmente.
In qualche modo mi è tornato in mente Oracle Cluster File System, a parte che non c'entra nulla con l'indicizzazione dei contenuti; il punto di partenza però è simile.
Le caratterisctiche di NOOFS sono più o meno le stesse promesse da Windows Vista, su una scala aziendale però, non confinata al singolo PC (anche se Vista promette una ricerca sui PC dello stesso dominio); un altro vantaggio è il facile controllo diretto e centralizzato sui dati.

18 settembre 2005

Web tier

Ecco un bell'esempio di quello che si può fare con le ultime tecnologie web applicate ai database.
L'esempio tratta delle fotografie di C.W. Cushman degli anni '40, su Kodachrome (!) a colori.
A parte le ottime fotografie, per noi è specialmente interessante la sezione tecnologica basata su Oracle.

15 settembre 2005

il mio db è pronto!

evviva!

non pensavo di farcela ma il mio db è pronto. tecnicamente è in fase alfa e cioè "al fa già cul ca serva", pertanto è assolutamente consegnabile all'utente, che potrà farsi venire i calli nel segnalarmi errori e malfunzionamenti più o meno gravi.

ora è diviso in un frontend e in un backend con tutte le tabelle e (miraculo!) sembra che tutto questo faccia senso (in questo caso l'inglese mi lusinga: it all makes sense!)

la soluzione frontend - backend è un compromesso (l'ideale sarebbe una reale multiutenza) però già l'aver creato una casella di testo che sputa asterischi al posto di mostrare in chiaro la tua password è un passo avanti (per me).

probabilmente i puristi di ADO storcerebbero il naso a qualcuna delle mie scelte e quelli di VBA si metterebbero a sghignazzare, ma d'altronde se facessi lo sviluppatore questo sarebbe il mio blog :)

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.

07 settembre 2005

ZendCore for Oracle

È disponibile per il download gratuito ZendCore for Oracle, un ambiente di sviluppo e messa in produzione per PHP con db Oracle; è dotato di connessione al database tramite Oracle Instant Client, praticamente le librerie client condivise della 10g.
L'installazione viene fatta tramite un'interfaccia di testo tipo Debian; è molto precisa e identifica tutte le installazioni di Apache presenti sulla macchina, modificandone in automatico i file di configurazione (attenzione: viene disattivata l'eventuale libreria PHP già installata tramite commento nei file .conf).

Ecco alcune schermate:






Ottima la possibilità di controllare le performance del sistema e di configurare sia le opzioni di php.ini che attivare le librerie direttamente dall'interfaccia web.
L'interfaccia OCI8 è stata riscritta e migliorata. Sono possibili aggiornamenti automatici (interessanti per PHP, che ogni tanto mostra problemi di sicurezza).
Non so ancora quali siano le differenze nell'API o nel namespace del linguaggio, ma è tutto molto interessante!

Oracle Data Unloader

Quante volte ci siamo chiesti come è possibile ottenere in modo semplice da una tabella Oracle un file di testo CSV?
Per questi scopi esiste Oracle Data Unloader!
Qui dove lavoro abbiamo sviluppato un programma apposito chiamato oraselector, chissà se può competere con i programmi di Tom Kyte :-)

DUL può essere usato anche in caso di perdita di dati: leggete questa guida per il recupero di tabelle danneggiate.

06 settembre 2005

MySQL 5.0

Sto valutando per motivi puramente lavorativi (ci tengo a precisarlo) MySQL 5.0 beta.
Leggo con un certo piacere le novità rispetto alla versione 4 (riporto quelle interessanti IMHO):

  • Cursori: Necessari per la programmazione SQL, vista l'introduzione delle stored procedures.

  • Dizionario dati: Toh, chi si vede. Questa mi pare proprio la scoperta dell'acqua calda.

  • Storage engines: interessante l'archive, che serve a creare tabelle a basso consumo di disco, in cui sono permessi solo select e insert; molto meno interessanti le tabelle federated, l'analogo mysql dei database link di Oracle. Incredibilmente complessa la procedura per il loro utilizzo.

  • Stored procedures - triggers - views: inutile rimarcare il ritardo rispetto agli altri prodotti...

31 agosto 2005

il mio db langue :(

purtroppo la problematica organizzativa mi tiene lontano dalla programmazione... se da una parte questo limita drasticamente il numero di bachi che vado a produrre, dall'altra rende giustizia a quella regola che dice più o meno che il 20% finale della soluzione di un problema è quello che ti costa circa l'80% dello sforzo totale. in ossequio al mio segno zodiacale, notoriamente patria di precisini e scrotoclasti, il db verrà quindi pronto a dicembre... 2006.