|
|
Alessandro Pellizzari <alex(at)neko.it> L'autore: Here you write a little paragraph about you. What you do, who you are etc... Contenuto: |
Bookreview: Beginning PHP4 DatabasesPremessa:
Questo articolo è una recensione del nuovo libro della Wrox sull'implementazione
e sull'uso di database con PHP4.
|
Oggigiorno la gran parte dei siti sviluppati in PHP si basa sulla presentazione di dati contenuti in uno o più database. Ma quanti sono i programmatori che conoscono veramente il funzionamento dei database relazionali, le possibilità che essi mettono a disposizione, le tecniche per velocizzare l'accesso ai dati, le estensioni a oggetti dei database?
Questo libro vuole essere una base per i programmatori che vogliono sviluppare applicazioni web basate su database, per fornire al lettore le capacità necessarie alla scelta del database da utilizzare e le tecniche per la miglior definizione della struttura dei dati e per l'accesso agli stessi.
Il libro è composto da 13 capitoli e tre appendici, mentre un ulteriore capitolo è disponibile sul sito Wrox.
Dopo una breve introduzione al libro che ne spiega la struttura ed elenca le numerose risorse online a supporto del libro stesso, il primo capitolo è una rapida introduzione al PHP, che si sofferma solo per approfondire la programmazione a oggetti del linguaggio. Il secondo capitolo tratta invece i fondamenti dei database, spiegando i vari modelli e la loro evoluzione nel tempo, per giungere ai moderni RDBMS, le loro estensioni a oggetti, e i database in formato XML. Questo capitolo continua accennando ai metodi in interfacciamento dei database con PHP, elencando poi i database disponibili e le opzioni per la compilazione di PHP con il loro supporto.
Dal terzo capitolo inizia l'approfondimento della struttura dei DB, con la normalizzazione delle tabelle e una breve introduzione sui diagrammi Entità-Relazione, per arrivare al quarto e quinto capitolo che approfondiscono l'SQL rispettivamente nella parte di creazione della struttura del database e in quella di inserimento, modifica e recupero dei dati. Il sesto capitolo infine introduce alle caratteristiche tipiche dei database relazionali, in particolare all'integrità referenziale, ai trigger e alle transazioni.
Nel capitolo sette si torna a parlare di PHP e dell'integrazione dei costrutti avanzati di SQL nel linguaggio, spaziando dai cursori ai trigger e dalle view agli indici. Nel capitolo otto troviamo una breve introduzione allo sviluppo multi-tier in PHP e una disamina delle principali librerie e classi esistenti per l'astrazione del collegamento a database, per passare nel capitolo nove all'esame di PEAR::DB, che verrà usato nel resto del libro per tutti gli esempi.
Il decimo capitolo è interamente dedicato allo studio di una applicazione basata su PEAR::DB per la memorizzazione di fatture e il tracciamento dei pagamenti, partendo dall'analisi del problema, passando per la definizione delle tabelle necessarie nel database, e infine scrivendo il codice dell'applicazione.
Il capitolo seguente è organizzato allo stesso modo, esemplificando la gestione di una biblioteca, ma approfondisce l'argomento dei database relazionali a oggetti, usando in particolare PostgreSQL. Anche qui si parte dall'analisi del problema per passare alla definizione della struttura del DB, mentre il codice stesso dell'applicazione, per motivi di spazio, è scaricabile dal sito abbinato al libro.Dal capitolo dodici si cambia completamente argomento, pur rimanendo, ovviamente,
nel campo dei database, e si inizia l'analisi dei database in formato XML, elencandone
pregi e difetti rispetto ai DB relazionali. Viene presentata una lista di diverse
implementazioni, sia commerciali che free, e infine si analizza in dettaglio Xindice della
Apache Software Foundation.
La spiegazione spazia dalla creazione di un database al suo popolamento tramite documenti XML
per poi analizzare in dettaglio le tecnologie XPath e XUpdate per la ricerca e
la modifica dei dati, con una piccola introduzione all'emergente XQuery.
Il capitolo tredici riprende la struttura dei capitoli dieci e undici, analizzando dallo studio del problema alla realizzazione pratica un sistema di scambio di ricette, con suddivisione dei privilegi di normale utente da quelli di amministrazione del sistema.
Le appendici sono dedicate rispettivamente all'amministrazione dei database, analizzando strategie di backup e di ottimizzazione, alle funzioni PHP per l'accesso ai database, e all'installazione di Apache, PHP e iODBC su Linux/Unix.
Gli autori non si soffermano troppo, come fanno altri, sulla sintassi o su una introduzione
a PHP, che può essere meglio spiegata in testi dedicati, concentrandosi fin da subito
sull'argomento principale: i database e la loro integrazione con PHP.
Il codice è sempre chiaro e ben commentato sia all'interno degli esempi sia con
una spiegazione al di fuori degli stessi.
All'interno degli esempi si trovano spesso utili trucchi e suggerimenti anche in campi
non prettamente attinenti all'argomento del libro.
C'è qualche errore di battitura nel testo che può infastidire durante la lettura
soprattutto i lettori non madrelingua inglese, ma non si trovano mai nel codice, quindi
non ci sono problemi a comprendere gli esmepi.
Non esiste (ancora) Profesional PHP4 Databases, e per casi molto particolari si
sentirebbe l'esigenza di un maggior approfondimento di alcuni argomenti, che per
estensione non hanno potuto essere inseriti in questo testo per non appesantirlo
troppo.
Il libro centra perfettamente il suo bersaglio, fornendo solide basi per l'utilizzo
di database in applicazioni PHP e buone tecniche di progettazione della struttura delle
tabelle.
Molte delle tecniche descritte nel libro troppo spesso sono ignorate dai programamtori,
che invece potrebbero tratte profitto dal loro utilizzo in termini di sicurezza e di velocità
di acesso ai dati, oltre che di pulizia di memorizzazione.
Un libro caldamente consigliato a chiunque voglia cimentarsi nell'uso di database con PHP4, ma anche e soprattutto a chi già li usa senza aver ricevuto informazioni dettagliate sul lor miglior uso.
|
Webpages maintained by the LinuxFocus Editor team
© Alessandro Pellizzari, FDL LinuxFocus.org |
Translation information:
|
2004-02-15, generated by lfparser version 2.46