Un database relazionale o RDB (Relational DataBase) permette anche di specificare le relazioni esistenti tra le entità. Ad esempio, nel caso della biblioteca esisterà sicuramente una relazione tra libro ed autore, in quanto l’esistenza di un libro è legata all’esistenza di un autore (se non esiste l’autore, non esite il libro). Quindi vi sarà una relazione tra i campi nome_autore e cognome_autore della tabella libro ed i campi nome e cognome della tabella autore. In particolare l’insieme dei campi nome_autore e cognome_autore costituisce quella che viene detta una foreign key (chiave esterna) per la tabella autore.
Inoltre è possibile che un autore possa aver scritto più libri presenti sugli scaffali, quindi la relazione tra l’entità autore e l’entità libro è del tipo 1:n, cioè ad 1 autore possono corrispondere più libri. Dunque i campi nome_autore e cognome_autore della tabella libro, non potranno costituire una chiave univoca per tale tabella. Tale tipo di relazione è quella più utilizzata tra le tabelle.
Un altro tipo di relazione quella n:m che indica che ad un record della tabella A possono corrispondere più record della tabella B e ad un record della tabella B possono corrispondere più record della tabella A. Questo tipo di relazione può essere implementato soltanto con l’ausilio di una terza tabella C in modo tale che tra la tabella C e la tabella A esista la relazione 1:n e la tessa relazione esista tra la tabella C e la tabella B. In questo caso la tabella C non rappresenta un’entità ma rappresenta una relazione.
Per mezzo di una relazione, il DBMS è in grado di controllare l’integrità dei riferimenti tra i record delle tabelle, ovvero quella che comunemente viene detta integrità referenziale. Cioè, quando viene aggiornata una tabella il DBMS è in grado di verificare se esistono i record ad essa collegati nelle altre tabelle. Se ciò non accade, il DBMS non permette l’aggiornamento della tabella: questo vincolo rafforza l’integrità referenziale del database.
Ad esempio, nel caso della gestione di un biblioteca è naturale mettere in relazione i campi nome_autore e cognome_autore della tabella libro con i campi nome e cognome della tabella autore, specificando che tra la tabella autore e la tabella libro c’è una relazione 1:n. In questo modo se si tenta di inserire un record nella tabella libro senza che sia presente il record corrispondente nella tabella autore, il record non viene inserito nella tabella libro.
È possibile tracciare uno schema composto dalle strutture dati che costituiscono il database, ovvero le entità, e le relazioni esistenti tra esse. Tale schema è noto come ERD (Entity Relation Diagram) o diagramma entità-relazioni.
[da completare ...]