+ Rispondi al Thread
Visualizzazione dei risultati da 1 a 1 su 1

Discussione: PHP 5: Scegliere un database - parte 2°

  1. #1
    L'avatar di McGraw-Hill
    McGraw-Hill non è in linea Novello
    Post
    6
    Scegliere un database

    Sebbene i database (anche quelli relazionali) esistano da lungo tempo, fino a poco tempo fa erano abbastanza costosi o limitati nelle funzionalità. Di conseguenza, anche molti programmatori esperti non hanno mai dovuto imparare molto su come scegliere un database per una particolare esigenza. Per questo motivo, vale la pena esaminare gli elementi fondamentali che portano a questa decisione.

    Si potrebbe non avere scelta

    Realisticamente, si potrebbe non avere molta scelta. Molte persone stanno cercando specificatamente il modo più veloce per mettere online i loro vecchi database, invece di avere il lusso di decidere prima il linguaggio di scripting e poi di scegliere un database. Inoltre, le scelte di SO, server Web e linguaggi di programmazione possono prendere automaticamente alcune decisioni. Un’applicazione Java personalizzata su una piattaforma UNIX “Big Iron” non andrà molto d’accordo con Microsoft SQL Server (in teoria è possibile, ma in pratica bisogna essere un masochista, anche se l’altra strada non è così male). Più grande diventa il sistema, più le scelte saranno limitate da decisioni precedenti. La buona notizia è che PHP si impegna a supportare molti database e altri server di back-end. Può aiutare unire le estremità slegate di un’architettura cresciuta organicamente nel tempo, come hanno fatto molte. In PHP alcune funzioni esistono esclusivamente per aiutare ad allineare i dati in un database più moderno.

    Flat fi le, relazionale, relazionale a oggetti

    I database sono come gli strumenti da cucina: più lo strumento è semplice, più l’operatore deve essere bravo per ottenere un buon risultato. I cuochi esperti possono creare cibi deliziosi utilizzando solo un coltello molto affilato e poche e vecchie pentole; mentre per raggiungere gli stessi risultati i dilettanti devono tirare fuori sofisticati attrezzi ed elettrodomestici. La stessa cosa vale per i database. Può diventare abbastanza ridicolo leggere le discussioni delle persone sui difetti impliciti di questo o di quel database, sapendo che l’esperienza del singolo utente viene riflessa da questo software più che da qualsiasi altro. Basta questo per dire che molti capolavori tecnici si trovano nelle tabelle hash più semplici, mentre i disordini segreti eseguiti in malo modo ribollono sui più recenti e grandi DBMS abilitati a Java e orientati agli oggetti.
    Con PHP si possono utilizzare tre tipi principali di database: flat file, I flat file o database di hash, come Gnu DBM e Berkeley DB (noto come Sleepycat DB2), vengono utilizzati soprattutto da o in altri programmi come i server di posta elettronica. Forniscono il mezzo più leggero e veloce per la memorizzazione e la ricerca di dati come le coppie nome utente/password o i messaggi di posta elettronica datati. I programmatori C di vecchia scuola solitamente hanno la maggior esperienza con questo tipo di database. Questi database non creano da soli una rappresentazione di relazioni più complesse tra punti di dati. Questa operazione viene invece eseguita dal programma client di accesso. Sebbene i risultati possano essere estremamente impressionanti, dipende tutto dall’esperienza del programmatore. Oggi la varietà relazionale è il tipo di database più comune. Le persone hanno idee diverse su ciò che costituisce un database relazionale, e quindi non si scenderà nei particolari. Di conseguenza, si affermerà arbitrariamente che i database che parlano un SQL scorrevole sono relazionali. La maggior parte dei database popolari utilizzata comunemente con PHP è relazionale. Per una descrizione più dettagliata dei database relazionali consultare il Capitolo 13.
    Ma ci sono relazionali e relazionali. Alcuni database commerciali molto popolari, come Filemaker Pro e Microsoft Access, non sono stati progettati per essere utilizzati sul back end di un sito Web di produzione. Nonostante abbiano un livello di supporto ODBC abbastanza elevato, e di conseguenza PHP può in teoria ottenere i dati da essi, sono stati progettati principalmente per la facilità di utilizzo più che per la velocità. Ancora peggio, la maggior parte degli utenti di questi prodotti si rifiuta di servirsi di quello che sono le funzioni relazionali, preferendo ripetere informazioni di testo in ogni elemento invece di creare una tabella separata che rappresenta una relazione. Infine, questi database di solito non dispongono dei thread, dei blocchi e di altre caratteristiche di produzione. Ci sono alcune persone che provano a utilizzare Microsoft Access con PHP, poiché lo hanno scritto nei forum e nelle mailing list PHP, ma chiaramente non per siti pubblici con un traffico rilevante. Tuttavia, gli autori conoscono sviluppatori che utilizzano Access o Filemaker Pro come strumenti di sviluppo sui loro portatili, così da poter programmare sull’aereo, e ci sono sempre progetti che utilizzano i dati legacy da questi database semi relazionali. Si può scoprire che l’impiego migliore di questi tipi di database sarà quello di realizzare un prototipo delle loro controparti Web. Nonostante tutti i difetti di Access, molti sviluppatori sostengono che dispone di buone funzioni di visualizzazione di dati/relazione. Infine, ci sono i database orientati agli oggetti e quelli relazionali a oggetti, modelli di accesso dei dati nuovi e ancora in fase di sviluppo. Il database orientato agli oggetti è progettato per lavorare più uniformemente con i linguaggi di programmazione orientati agli oggetti; mentre il relazionale a oggetti è un ibrido utilizzato per i tipi di dati (come i dati astronomici e genetici) che non vengono serviti bene dai normali database relazionali. Tuttavia, PHP stesso non richiede uno stile di programmazione a oggetti né ai suoi utenti né ai programmi con i quali comunica. E nonostante in PHP5 sia presente una vasta quantità di nuove funzioni a oggetti, gli sviluppatori riconosceranno comunque che la potenza del linguaggio si trova nelle root procedurali più semplici. Questo non significa che non è possibile utilizzare PHP con alcune di esse,
    ma la necessità assoluta di comportarsi in questo modo è discutibile.

    ODBC/JDBC e API nativa a confronto

    Esistono due API generiche standard di accesso al database: Open DatabaseConnectivity (ODBC) e Java Database Connectivity (JDBC). ODBC è strettamente collegata a Microsoft e JDBC è ancora più saldamente legata a Sun Microsystems. Tuttavia, altre società hanno implementato questi standard nei loro prodotti, con l’aggiunta di driver specifici per ciascun programma client.
    ODBC e JDBC sono più o meno mutuamente esclusive. Una cosa chiamata “ ponte ODBC-JDBC” viene utilizzata per permettere ai programmi Java di accedere ai database ODBC, ma è molto lenta. Esistono anche driver proprietari che eseguono lo stesso lavoro più velocemente.
    Ci sono anche database a cui possono accedere i client attraverso le loro API invece che sfruttando ODBC o JDBC. Questa operazione è sicuramente più veloce poiché ci sono meno livelli nello stack. La maggior parte dei database
    open source rientra in questa categoria. Alcuni hanno anche i driver ODBC o JDBC. Così per esempio, PHP può accedere a MySQL con una API nativa, mentre un sotto sistema Java può utilizzare lo stesso database con JDBC. Prima di realizzare un qualsiasi schema di accesso multiplo, occorre assicurarsi che i driver di cui si ha bisogno siano disponibili e che possano essere acquistati e gestiti.

    Database scambiabili

    Sebbene ODBC sia più lento delle API native, ha il vantaggio di essere uno standard aperto. Di conseguenza, il codice PHP scritto con i comandi ODBC funzionerà con qualsiasi database compatibile con ODBC. Questa funzione è
    molto utile se si deve iniziare un progetto con un database che non scala, come Microsoft Access, e in seguito si deve passare a un database più potente dal punto di vista industriale. Sebbene entrambi siano ottimi prodotti nelle loro
    categorie, può diventare un lavoro lungo passare da un database leggero come Mini SQL (noto come mSQL) a una suite per server pronta come DB2 di IBM (di nuovo, un buon programmatore a cui vengono dati il tempo e le risorse può realizzare qualsiasi applicazione relativamente facile da portare, mentre uno sviluppatore inesperto o precipitoso può non essere in grado di farlo).
    Ultima modifica di Master85; 20-11-2006 16:21 
    McGraw-Hill Informatica
    Visita il nostro catalogo online http://www.informatica.mcgraw-hill.it

+ Rispondi al Thread

Discussioni simili

  1. Articolo: PHP 5: Scegliere un database - parte 4°
    Da McGraw-Hill nel forum PHP
    Risposte: 0
    Ultimo Post: 21-12-2005, 10:25
  2. Articolo: PHP 5: Scegliere un database - parte 3°
    Da McGraw-Hill nel forum PHP
    Risposte: 0
    Ultimo Post: 21-12-2005, 10:11
  3. Articolo: PHP 5: Scegliere un database - parte 1°
    Da McGraw-Hill nel forum PHP
    Risposte: 0
    Ultimo Post: 15-12-2005, 15:35

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi