14.2 Tipi di database

I database sono sistemi per la gestione di grosse quantità di informazioni che offrono prestazioni elevate nella ricerca delle informazioni stesse. Alla base di un database ci sta quello che viene definito il DBMS (DataBase Management System), ovvero il “motore” del database che è in grado di gestire a basso livello le operazioni da effettuare sulle informazioni (memorizzazione, aggiornamento, cancellazione e ricerca).

La forma più semplice di database è costituita da un file contenente tante righe quante sono le informazioni che devono essere memorizzate nel database. Queso tipo di archiviazione dei dati ha notevoli limitazioni: tempi di ricerca elevati, problemi di ridondanza delle informazioni memorizzate, problemi nella manutenzione delle informazioni, ... Il vantaggio è che si basa su una struttura semplicissima e relativamente facile da gestire. Questo tipo di database viene utilizzato generalmente quando la quantità di informazioni da memorizzare è molto piccola.

Da questo tipo di database si sono sviluppati i database gerarchici, che utilizzano più file per memorizzare le informazioni, introducendo una relazione gerarchica di tipo padre-figlio (ad albero) fra gli stessi. Un database di questo tipo è IMS (Information Management System) di IBM (spesso è riferito con il nome del linguaggio da questo utilizzato, DL/I - Data Language I). Oggigiorno questo tipo di database non viene più utilizzato.

I database reticolari (network) espandono il concetto di relazione gerarchica, rendendo possibile il raggiungimento di un nodo da più percorsi. Tale tipologia di database viene anche riferita con il nome CODASYL DBTG (Conference on Data System Languages, Data Base Task Group). Nonostante il fatto che sia possibile definire relazioni multiple tra le varie informazioni, la gestione di tali tipi di database diviene sempre più cresente all’aumentare del numero di relazioni, tant’è che oggigiorno questo tipo di database non viene più utilizzato.

Dal modello a rete è nato il database relazionale o RDB (Relational DataBase). In questo tipo di database, la struttura logica è indipendente da quella fisica e fornisce sia elevate prestazioni che flessibilità di gestione, sia dei dati che della struttura del database stesso.

Il database a oggetti (object-oriented) risolve alcune limitazioni del modello relazionale, in particolare la scarsa capacità di gestione dei BLOB (Binary Large OBject) cioè dei tipi di dati complessi come le immagini, documenti, ... Questo è dovuto al fatto che i database sono nati per gestire dati (sequenze di 0 e di 1) con dimensioni relativamente piccole. I BLOB sono oggetti che possono avere dimensioni decisamente più grosse rispetto a quelle per le quali sono nati i database. I BLOB vengono generalmente memorizati all’esterno del DB e sul DB viene memorizzato soltanto un riferimento ad essi (ad esempio il loro path sul filesystem). I database ad oggetti gestiscono nativamente i BLOB, ma ogni database utilizza un proprio modo di gestione dei BLOB. Le informazioni vengono memorizzate in oggetti che hanno relazioni di tipo gerarchico. Questi tipi di database non sono molto diffusi: vengono utilizzati soltanto in ambienti CAD ed engineering.