Tipo di database complesso. Può essere composto da uno o più file.
I dati sono suddivisi in più tabelle, con record in relazione fra di loro grazie ad indici contatori.
In questo modo si riescono a rappresentare facilmente anche realtà molto complesse e si riduce la dimensione del database, l'elaborazione delle query e la visualizzazione dei record, quando vi sono molti dati ripetuti.
Ad esempio: in un database di indirizzi, nel quale ricorrano spesso le stesse città. Si crea una tabella con tutte le città comprese nel database, e si associa a ciascuna città un determinato codice unico. Nella tabella degli indirizzi, invece di riportare il nome completo della città riporta solo il codice: se nella tabella delle città il codice "23" è associato a "Bologna", nella tabella degli indirizzi avremo "23" in tutti gli indirizzi di Bologna.