INDIETRO SU AVANTI

Evoluzione dei database

Un database e' una collezione di archivi dati tutti considerati come un unico corpus omogeneo. Le informazioni contenute in un database sono di argomento o ambito omogeneo e si trovano distribuite in piu' archivi a scopo organizzativo dell'informazione o per evitare replicazioni oppure per massimizzare l'efficienza di consultazione.

Vi sono database di varia struttura, che si sono evoluti e affermati nel tempo:

I database vengono progettati accuratamente prima della loro realizzazione. In particolare si indica con forme normali e normalizzazione l'operazione di riduzione al minimo di ridondanza contenuta nella base dati.

Se piu' record di una tabella hanno piu' di un campo ripetuto, che non sia un campo chiave, allora e' possibile spezzare la tabella in piu' tabelle, incrementando il grado di normalizzazione, ed eliminando le ripetizioni.

I programmi di gestione dei database si complicano corrispondentemente, poiche' devono trattare piu' tabelle simultaneamente, ma sparisce la probabilita' di creare in tabelle diverse informazioni contraddittorie e diminuisce il numero totale di byte necessario per mantenere la somma dei dati.

Un programma di gestione database conduce delle transazioni, che sono operazioni singole (atomiche) le quali devono simultaneamente gestire l'aggiornamento di piu' tabelle simultaneamente. In caso di fallito aggiornamento simultaneo, tali programmi devono essere in grado di portare avanti un roll-forward a completare comunque la transazione o un roll-back a ripristinare la situazione precedente alla transazione.

Mediante opportuni strumenti i programmi di gestione dei database debbono inoltre garantire l'accesso esclusivo alle tabelle in via di aggiornamento.

Vengono definite viste (views) dei rapporti in cui vengono presentati campi presi da piu' tabelle simultaneamente.

Il mondo dei mainframe fino ai primi anni 80 favoriva la definizione di database reticolari. Il mondo UNIX favoriva i database gerarchici, poiche strettamente supportati dal sistema operativo stesso (.p es. dbm).

L'arrivo dei PC ha visto l'introduzione dapprima di database piatti (elenchi indirizzi, ecc.) poi l'affermarsi di database relazionali che hanno avuto successo seguente anche nel mondo mainframe e UNIX. Esempi sono stati dBase II e dBase III.

A meta' degli anni 80 hanno cominciato ad affermarsi sistemi di gestione database (DBMS) sempre piu' poderosi e cross-platform quali Informix, Oracle e Sybase.

E' ora possibile quasi sempre definire dei permessi di accesso (lettura, scrittura, update) che associano operazioni permesse o vietate a particolari utenti o gruppi di utenti.

Con l'affermarsi delle reti sono nati i database distribuiti che permettono il mantenimento di tabelle appartenenti allo stesso database anche residenti su computer diversi collegati in rete.

Si va definendo un linguaggio standard di gestione dei database, lo SQL (Structured Query Language). Si definiscono anche estensioni standard per l'interrogazione in rete e per l'aggancio di comandi SQL a normali linguaggi di programmazione di terza generazione, come il C o il Pascal.

Con l'arrivo del Web si definisce la possibilita' di compiere interrogazioni e/o aggiornamenti dei database tramite normali browser. I server forniscono o un'interfaccia standard ai programmi di aggiornamento database (CGI - Common Gateway Interface) o addirittura delle estensioni API (Application Programming Interface) che permettono l'aggancio diretto tra pagine Web e linguaggio SQL.