Un database e' una collezione di dati che viene gestita e organizzata da un software specifico, il DBMS (DataBase Management System, Sistema di Gestione di DataBase).
Un DBMS e' sostanzialmente uno strato software che si frappone fra l'utente ed i dati veri e propri.
Grazie a questo strato intermedio l'utente e le applicazioni non accedono ai dati cosi' come sono memorizzati effettivamente, cioe' alla loro rappresentazione fisica, ma ne vedono solamente una rappresentazione logica.
Cio' permette un elevato grado di indipendenza fra le applicazioni e la memorizzazione fisica dei dati.
L'amministratore del database, se ne sente la necessita', puo' decidere di memorizzare i dati in maniera differente o anche di cambiare il DBMS senza che le applicazioni, e quindi gli utenti, ne risentano.
La cosa importante e' che non venga cambiata la rappresentazione logica di quei dati, che e' la sola cosa che i loro utilizzatori conoscono. Questa rappresentazione logica viene chiamata 'Schema del database' ed e' la forma di rappresentazione dei dati piu' a basso livello a cui un utente del database puo' accedere. La caratteristica pricipale secondo cui i DBMS vengono normalmente classificati e' appunto la rappresentazione logica dei dati che essi mostrano ai loro utilizzatori. Nel corso degli anni sono stati adottati numerosi modelli per i dati, a fronte dei quali esistono quindi vari tipi di database. I tipi piu' comuni sono:
|
La principale differenza con i modelli esaminati finora e' la non passivita' dei dati. Infatti con un database tradizionale (intendendo con questo termine qualunque database non ad oggetti) le operazioni che devono essere effettuate sui dati vengono demandate alle applicazioni che li utilizzano. Con un database object-oriented, al contrario, gli oggetti memorizzati nel database contengono sia i dati che le operazioni possibili su tali dati. In un certo senso potremmo pensare agli oggetti come a dati a cui e' stata fatta una iniezione di intelligenza, che gli permette di sapere come comportarsi, senza doversi appoggiare ad applicazioni esterne.
Indipendentemente dal tipo di database, le funzionalita' principali che ci si deve aspettare da un DBMS sono quelle di:
consentire l'accesso ai dati attraverso uno schema concettuale, invece che
attraverso uno schema fisico;
permettere la condivisione e l'integrazione dei dati fra applicazioni differenti;
controllare l'accesso concorrente ai dati;
assicurare la sicurezza e l'integrita' dei dati.
Grazie a queste caratteristiche le applicazioni che vengono sviluppate possono
contare su una sorgente dati sicura, affidabile e generalmente scalabile.
Tali proprieta' sono auspicabili per applicazioni che usano la rete Internet
come infrastruttura e che hanno quindi evidenti problemi di sicurezza e scalabilita'.
|