I database relazionali, sono i database più diffusi su tutti i sistemi. Tali database memorizzano le informazioni in appositi contenitori detti tabelle tra le quali possono essere definite delle relazioni logiche. Si tenga comunque presente che la rappresentazione dei dati raccolti in tabelle è soltanto una rappresentazione logica, poiché i dati possono essere effettivamente memorizzati dal DBMS in maniera diversa.
[da completare ...]
E. F. Codd, che ha definito il modello relazionale dei database, ha espresso le caratteristiche che un RDBMS deve soddisfare
“Le informazioni sono rappresentate in uno solo modo: come valori di colonne all’interno di righe”
Dunque, i dati sono reppresentati per mezzo di tabelle. Questa regola denota la semplicità e quindi la versatilità dei RDBMS. Questo è il requisito fondamentale del modello relazionale.
“Ogni valore può essere acceduto fornendo il nome della tabella, la colonna e la chiave”
Tutte le informazioni sono univocamente identificate ed accessibili tramite quest’insieme di valori.
“Separazione della gestione delle informazioni mancanti da quelle non significative”
“Il catalog o data dictionary deve essere accessibile con gli strumenti messi a disposizione dal DBMS per l’accesso ai dati”
Il catalog, ovvero la struttura del DB, deve essere parte del DB stesso.
“Supporto di almeno un linguaggio che include funzionalità per la definizione delle strutture dati (DDL, Data Definition Language), per la gestione delle stesse (DML, Data Manipulation Language), per la gestione della sicurezza, dei vincoli e dell’integrità delle informazioni”
Ad oggi significa: deve supportare SQL (tutte le implementazione di DBMS oggi implementano SQL come linguaggio di gestione dello stesso).
“Tutte le viste teoricamente possibili devono essere realmente possibili”
Le informazioni possono essere presentate come combinazioni logiche di tabelle, le viste. Ogni vista deve supportare le stesse funzionalità delle tabelle.
“Supporto di aggiornamenti a più record con una singola istruzione”
Questo implica che le operazioni di inserimento, aggiornamento e cancellazione dovrebbero essere supportate per ogni insieme di informazioni accessibile del DB.
“Dal livello logico del DBMS è possibile effettuare qualunque operazione che è possibile da quello fisico”
Gli utenti ed i programmi che accedono al DB non devono essere dipendenti dalla sua struttura fisica.
“Gli utenti ed i programmi sono indipendenti dalla struttura logica del DB”
La struttura logica dei dati, può essere modificata con un impatto minimo sui programmi che accedono al DB.
“I vincoli di integrità dei dati devono essere memorizzati nel catalog, non nei programmi”
Le modifiche dei vincoli di integrità dei dati non dovrebbero riflettersi sui programmi (questo semplifica la logica dei programmi).
“Le applicazioni dovrebbero funzionare anche in un database di tipo distribuito (DDB, Distributed DataBase)”
“Se esiste un’interfaccia per la visualizzazione/gestione di un record alla volta, la sicurezza e l’integrità del database non deve essere violata”
Non deve esistere nesuna backdoor che escluda la sicurezza imposta dal DBMS, ovvero non deve essere possibile modificare la struttura del DB se non attraverso il linguaggio messo a disposizione dal DBMS.
Esiste anche una regola zero per i RDBMS
“Un RDBMS deve essere in grado di gestire i database attraverso le proprie capacità di gestire le relazioni, senza appoggiarsi a caratteristiche addizionali supportate dal sistema sul quale esso gira”
[da completare ...]
[da completare ...]