Note
I DataBase Management System (DBMS) sono software che permettono di creare e gestire basi di dati in modo organizzato ed efficiente. I DBMS devono permettere la condivisione dei dati e garantire la loro qualità, garantendo inoltre la loro efficienza, sicurezza e robustezza.
Per farlo ogni dato, a prescindere dalle applicazioni dalle quali viene utilizzato, compare una sola volta. Questo è fatto per eliminare inutili ridondanze, e migliorare la consistenza dei dati.
I DBMS funzionano definendo la struttura generale dei dati (schema) e successivamente definendo le specifiche operazioni sui dati. I dati in sé, dentro lo schema, sono detti istanza.
Il DBMS utilizza due linguaggi:
- DDL (Data Definition Language): Per manipolare lo schema.
- DML (Data Manipulation Language): Per manipolare le istanze.
Modello relazionale
Note
Il modello relazionale è un modello di dati dove sono rappresentati come tabelle, e le associazioni tra dati sono ottenute associando valori di attributi in tabelle diverse.
Dal punto di vista matematico si ha che il grado della relazione è il numero di domini
, La cardinalità della relazione è il numero di -uple, e l’attributo è il nome dato al dominio di una relazione.
Relazione matematica
Una relazione su
è un sottoinsieme tale che: Questa è detta relazione -aria. Nel caso reale si ha che .
I riferimenti fra dati in relazioni diverse sono rappresentati per mezzo di valori dei domini che compaiono nelle
Questa organizzazione delle tabelle permette:
- Indipendenza dalle strutture fisiche che possono cambiare anche dinamicamente.
- Possibilità di rappresentare solo ciò che è rilevante dal punto di vista dell’utente.
- Portabilità dei dati da un sistema all’altro.
Talvolta è possibile che le informazioni in una istanza siano incomplete, in questo caso si utilizza il valore NULL. È tuttavia necessario imporre restrizioni sulla presenza di valori nulli.
Vincoli di integrità
I vincoli di integrità escludono istanze in quanto non rappresenta correttamente . I vincoli di integrità si distinguono in vincoli intrarelazionali e vincoli interrelazionali.
Tra i vincoli intrarelazionali troviamo il vincolo di
-upla, cioè una condizione sui valori di ciascuna -upla, indipendentemente dalle altre -uple. I vincoli intrarelazionali più importanti sono:
not nulluniqueprimary keycheckMentre il vincolo interrelazionale più importante è
foreign key.
Chiavi
Le chiavi sono un sottoinsieme degli attributi dello schema che hanno la proprietà di unicità (non esistono due
-uple con chiave uguale) e minimalità (sottraendo un qualunque attributo alla chiave si perde la proprietà di unicità). Se il sottoinsieme non è minimo si parla di superchiave. In questo caso una delle chiavi è detta primaria mentre le altre sono secondarie.
In presenza di valori nulli, i valori degli attributi che formano la chiave non permettono di identificare le
-uple come desiderato, per questo la presenza di valori nulli nelle chiavi deve essere limitate. Se ci sono informazioni in relazioni diverse correlate attraverso valori comuni, in particolare i valori delle chiavi, si può creare un vincolo di integrità referenziale fra un insieme di attributi
di una relazione e un’altra relazione impone ai valori su di una ciascuna -upla dell’istanza di comparire come valori della chiave dell’istanza di . Questa è detta Foreign Key.
Una tabella consiste di un insieme ordinato di attributi ed un insieme di vincoli. Per crearlo si usa il comando:
CREATE TABLE Studente (
Matr character(6) primary key,
Nome varchar(30) not null,
Città varchar(20),
CDip char(3)
)