# databases
**modello relazionale**
- dati rappresentati come tabelle
- le *associazioni* tra i dati sono ottenuti associando valori di attributi in tabelle diverse
**chiave** -> sottoinsieme degli attributi dello schema con le proprietà di *unicità* e *minimalità*
- *unicità* = non esistono due tuple con chiave uguale
- *minimalità* = è il più piccolo sottoinsieme degli attributi con la proprietà di unicità
In sostanza una chiave è un insieme di attributi che identificano univocamente le tuple di una relazione e quindi di una tabella
In presenza di attributi che ammettono **valori nulli** scegliamo una chiave che *non* li ammette nel suo dominio. Questa è definita **chiave primaria**
## Algebra relazionale