14.4 I RDBMS

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

  1. Information rule

    “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.

  2. Guaranteed access rule

    “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.

  3. Systematic treatment of null values

    “Separazione della gestione delle informazioni mancanti da quelle non significative”

  4. Relational online catalog

    “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.

  5. Comprehensive data sublanguage

    “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).

  6. View updating rule

    “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.

  7. High-level insert, update and delete

    “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.

  8. Physical data independence

    “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.

  9. Logical data independence

    “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.

  10. Integrity independence

    “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).

  11. Distribution independence

    “Le applicazioni dovrebbero funzionare anche in un database di tipo distribuito (DDB, Distributed DataBase)”

  12. Nonsubversion rule

    “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 ...]


  14.4.1 Le tabelle
  14.4.2 Le chiavi e gli indici
  14.4.3 Le relazioni e l’integrità referenziale
  14.4.4 La normalizzazione dei dati
  14.4.5 Il linguaggio SQL
   14.4.5.1 Le viste logiche
   14.4.5.2 I cursori
  14.4.6 Le stored procedure
  14.4.7 I trigger
  14.4.8 Le transazioni