Una base di dati relazionale è una collezione di relazioni | |
Una relazione è una tabella costituita da un numero fisso di colonne (dette attributi) e un numero variabile di righe (dette tuple) |
Ciascuna colonna assume valori estratti da uno stesso dominio | |
Il numero di colonne di una relazione si chiama grado, il numero di righe cardinalità |
Schema = Nome della relazione + [nome di attributo + dominio dell'attributo]
Relation Conto_corrente (Numero_cc: integer, Nome: char(20), Indirizzo: char(20), saldo: integer)
Istanza di una relazione
Insieme delle tuple presenti nella base di dati in un certo istante.
Nella definizione formale del modello relazionale è richiesto che le tuple siano tutte distinte.
Restrizione di una tupla
La restrizione di un tupla sugli attributi A della relazione R (indicata con t[A]), è data dalla lista dei valori assunti da t sugli attributi A
Sia t=(1, Rossi, v. Anemoni 5, L. 3.678.000) la tupla.
Allora una possibile restrizione è: t[Numero_cc, Nome]=(1, Rossi)
Chiave di una relazione
E un sottoinsieme K degli attributi che soddisfa le proprietà:
unicità |
in qualunque istanza di R, non possono esistere due tuple distinte la cui restrizione su K sia uguale
minimalità |
non è possibile sottrarre a K un attributo senza violare la condizione di unicità
In generale una relazione può avere più di una chiave
Esempio
Record |
Nome |
Indirizzo |
Telefono |
1 |
Rossi Carlo |
Via dei Tigli, 32 |
02-33249187 |
Numero_cc è una chiave
Nome non è una chiave
(Nome, Indirizzo) non è una chiave
Chiave primaria
Corrisponde alla chiave usata più frequentemente per accedere ai dati
In genere si indica sottolineando gli attributi che la costituiscono:
Conto_corrente (Numero_cc, Nome, Indirizzo, saldo)