n-upla = riga di una tabella
Dentro le nostre tabelle abbiamo gli attributi, esistono molteplici attributi speciali tra cui:
- Chiave primaria: attributo not null, ogni riga contiene una chiave univoca (nelle rappresentazioni grafiche è una linea continua sotto il nome della colonna)
- Chiave esterna: il riferimento ad una chiave primaria di una tabella esterna (potrebbe anche non essere not null, nelle grafiche si usa una linea trattegiata sotto il nome della colonna) è la relazione che intercorre tra una chiave primaria e una esterna
per ogni n-upla dell’istanza esiste una n-upla dell’istanza di (riferita da )
Esercizi
QUOTE
Definire uno schema relazionale per organizzare le informazioni di un’azienda che ha impiegati (ognuno con codice fiscale, cognome, nome e data di nascita), filiali (con codice, sede e direttore, che è un impiegato). Ogni lavoratore lavora presso una filiale. Indicare le chiavi e i vincoli di integrità referenziale dello schema. Mostrare un’istanza della base di dati e verificare che soddisfa i vincoli.
Impiegati (CF (pk), nome, cognome, data_di_nascita, filiale (fk))
Filiali (Cod (pk), sede, direttore (FK))
Da fare per casa: Un albero genealogico rappresenta, in forma grafica, la struttura di una famiglia (o più famiglie, quando è ben articolato). Mostrare come si possa rappresentare, in una base di dati relazionale, un albero genealogico, cominciando eventualmente da una struttura semplificata, in cui si rappresentano solo le discendenze in linea maschile (cioè i figli vengono rappresentati solo per i componenti di sesso maschile) oppure solo quelle in linea femminile.
Algebra relazione
l’algebra relazione consiste in un set di operatori che:
- Sono definiti sulle relazioni
- Producono come risultato una relazione
Questi operatori primitivi sono:
- Ridenominazione
- Unione
- Differenza
- Proiezione
- Restrizione
- Prodotto
Ridenominazione
Che usa come simbolo: ES: Il nome della colonna Matricola della tabella studente diventa CodiceStudente
Unione, differenza e intersezione
Le relazione sono degli insiemi di n-uple, se abbiamo molteplici insiemi omogenei possiamo applicare queste 3 operatori:
Unione
Intersezione
Differenza
Questi operatori si posso anche concatenare

Proiezione
Produce un sottoinsieme degli attributi dell’operando
Sia una relazione e siano alcuni suoi attributi allora:

Selezione
Produce un risultato con lo stesso schema dell’operando iniziale ma con un sottoinsieme di ennuple
Data una formula proposizionale e dato una relazione allora si ha che:

Prodotto cartesiano
Date due relazione e con
Allora si pone:

JOIN
Permette di combinare tuple da relazioni diverse basandosi sui valori degli attributi, sono principalmente di due tipi:
- Natural JOIN
Sia con attributi ed con attributi allora è una relazione quindi:
cioè: le ennuple del risultato sono ottenute combinando le ennuple di e che hanno gli stessi valori negli attributi con lo stesso nome

- Theta JOIN
Viene specificato un predicato per la selezione delle ennuple, definito in questo modo:
Nel caso in cui è una congiunzione di uguaglianze si parla di equi-JOIN

//TODO inserire le dimostrazioni che sia natural che equi join sono operatori derivati
Query
Una query è una funzione da una istanza di una database (insiemi di relazioni) ad una relazione