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