Zusammenfassungen
Universitätsnotizen im Markdown-Format aus Obsidian.
Modello dei dati relazionale
download MD herunterladenIl modello relazione è un modello logico dei dati, direttamente supportato dai DBMS commerciali. Si basa su un unico costrutto chiamato relazione (tabella). Nella progettazione di una BD, lo schema relazionale si ottiene per trasformazione dello schema concettuale ER.
Una relazione ha uno }{schema e una estensione. Lo schema si può spiegare matematicamente con R(X), dove R è il nome della relazione e X = {A1, ..., An*} è l'insieme dei valori che può assumere. Ogni attributo $A_i$ ha associato un dominio $D_i$ che è l'insieme dei valori che può assumere. L'estensione di R(A1, ..., An)* è:
$ R \subseteq D1 ... Dn $ Ogni elemento (n-pla) di R è detto tupla.
Per spiegare i prossimi argomenti utilizziamo l'esempio di Professore e Dipartimento.
Schemi di relazione:
- Professore(CodP, Nome, Età, Dip)
- Dipartimento(CodD, Nome, Univ, Dir)
Estensioni di relazione(o solo relazioni):

Schemi BD relazionale:
{Prof(CodP, Nome, Età, Dip), Dip(CodD, Nome, Univ, Dir)}
Base di dati:

Chiavi primarie e secondarie
Gli attributi CodP e CodD sono chiavi primarie cioè non possono esistere due tuple con gli stessi valori di questi attributi.
Gli attributi Dip e Dir sono chiavi secondarie:
- Dip assume valori della chiave primaria CodD presenti nella relazione Dipartimento;
- Dir assume valori della chiave primaria CodP presenti nella relazione Professore. Le chiavi secondarie consentono di rappresentare le relazioni Afferenza e Direzione.
Quindi, una chiave secondaria (o esterna) è un attributo (o insieme di attributi) che assumono come valori i valori della chiave primaria presenti in qualche relazione e consente di rappresentare associazioni tra relazioni.
Vincolo di integrità referenziale
Se una chiave secondaria X assume un valore x, allora x deve apparire come valore della chiave primaria cui X è riferita.

Supponiamo che modifichiamo una chiave esterna con una chiave primaria che non esiste:

Valori nulli
Può succedere che il valore di un attributo sia }{sconosciuto, inesistente o senza informazione.
Per spiegare i vari tipi di valori nulli, utilizziamo un esempio:
- Mario non possiede il telefono (valore inesistente);
- di Gianni non conosciamo il numero telefonico (valore sconosciuto);
- di Chiara non sappiamo se abbia o meno il telefono (valore senza informazione). Una chiave primaria non può assumere valori nulli! Un esempio di seguito: