Resúmenes

Apuntes universitarios en formato Markdown desde Obsidian.

Modello dei dati relazionale

download Descargar MD

Il 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):

estensioniRelazioni
estensioniRelazioni

Schemi BD relazionale:

{Prof(CodP, Nome, Età, Dip), Dip(CodD, Nome, Univ, Dir)}

Base di dati:

estensioniRelazioni
estensioniRelazioni

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.

primarieSecondarie
primarieSecondarie

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.

vincoliIntegritaReferenziale1
vincoliIntegritaReferenziale1

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

vincoliIntegritaReferenziale2
vincoliIntegritaReferenziale2

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:

valoriNulli1
valoriNulli1

  • 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:

valoriNulli2
valoriNulli2