Capitolo 4. Modello relazionale

Sommario

1. Definizioni
Insieme
Prodotto cartesiano
Relazione (matematica)
Grado e cardinalità di una Relazione
Tabella
Attributi
Dominio
2. Vincoli intrarelazionali
3. Vincoli extrarelazionali
4. Operazioni relazionali
Selezione
Proiezione
Congiunzione
5. Lacune del modello relazionale

Definizioni

Per introdurre il modello matematico relazionale è necessario ricordare alcune definizioni: insieme, prodotto cartesiano, relazione, tabella, n-uple, t-uple, attributo, dominio

Insieme

una collezione di oggetti chiamati elementi dell'insieme; un elemento può appartenere o non appartenere a un determinato insieme, non ci sono vie di mezzo. Un elemento non può comparire più di una volta in un insieme; gli elementi di un insieme non hanno un ordine di comparizione (l'insieme non è ordinato); gli elementi di un insieme lo caratterizzano univocamente: due insiemi coincidono se e solo se hanno gli stessi elementi.

Prodotto cartesiano

il prodotto cartesiano di due insiemi A e B (si scrive A x B) è l'insieme costituito dalle coppie ordinate (a,b), dove a è un elemento di A e b un elemento di B. Le coppie sono ordinate, cioè la coppia (a,b) è diversa dalla coppia (b,a), perciò il prodotto A x B è diverso dal prodotto B x A.

Esempio 4.1. Esempio di prodotto cartesiano

Dati gli insiemi A = {Rossi,Verdi} e B = {1980, 1990, 1991} ; il loro Prodotto cartesiano vale A x B = { (Rossi,1980), (Rossi,1990), (Rossi,1991), (Verdi,1980), (Verdi,1990), (Verdi,1991) }.

Notare che l'insieme A è di 2 elementi, B di 3 elementi, A x B di 6 elementi. L'ordine con cui sono disposti gli elementi all'interno di un insieme non è importante, ma lo è invece, quello con cui sono disposti gli elementi all'interno delle parentesi tonde.

In generale il prodotto cartesiano può riguardare anche più di due insiemi (A, B, C, D,...), e al posto delle coppie si possono avere triple, quadruple, e in generale n-uple (pronunciato enn-uple).

Relazione (matematica)

Si può definire la Relazione matematica (o più brevemente Relazione) R su A e B incata da R(A,B) un sottoinsieme dell'insieme prodotto cartesiano A x B.

Esempio 4.2. Esempio di relazione matematica

Continuando il precedente esempio, una possibile relazione su A e B potrebbe essere costituita da R(A,B) = { (Rossi,1990), (Rossi,1991), (Verdi,1980) }

Come il prodotto cartesiano, anche una relazione può riguardare più di due insiemi (A, B, C, D,...), e al posto delle coppie si possono avere triple o quadruple.

Nota

Mentre in matematica per il Prodotto cartesiano, l'ordine degli elementi delle coppie (a,b) è importante, nelle relazioni studiate nei database, l'ordine (Rossi,1990) è meno importante. Per questo motivo, al posto del termine «n-uple» viene usato anche il termine «t-uple».

Importante

vista la natura insiemistica della relazione, e visto anche il precedente esempio, si può dedurre che non ci possono essere due n-uple (o t-uple) identiche nella stessa relazione matematica. Nonostante ciò, nella pratica dei DBMS, questo vincolo non esiste, ma è il programmatore che deve aggiungerlo, per fare in modo che le tabelle del DBMS abbiano le proprietà delle relazioni matematiche.

Grado e cardinalità di una Relazione

Il «grado» è pari al numero degli insiemi su cui è affettuata la relazione (A, B, C, D, ...), mentre la «cardinalità» è pari al numero degli elementi che la costituiscono.

Esempio 4.3. Esempio di grado e cardinalità

Continuando il precedente esempio R(A,B) = { (Rossi,1990), (Rossi,1991), (Verdi,1980) } è di grado 2 e di cardinalità 3.

Tabella

è una delle possibili rappresentazioni in cui può essere espressa una Relazione, quindi permette di visualizzare gli elementi che la costituiscono, ma parlando in termini strettamente matematici, una tabella non è una Relazione.

Esempio 4.4. Esempio di tabella

La precedente Relazione R su A e B potrebbe essere espressa dalla seguente tabella

Tabella 4.1. Rappresentazione di R(A,B)

A B
Rossi 1990
Rossi 1991
Verdi 1980


I DBMS utilizzano spesso il termine «tabella» in luogo del termine «relazione»; altri DMBS ad interfaccia grafica, addirittura, usano il termine «relazione» per indicare i collegamenti tra le chiavi primarie e le chiavi esterne: si eviti di fare la stessa confusione di termini che fanno questi DBMS.

Attributi

sono gli insiemi che vengono utilizzati per costriure la Relazione, come A e B , oppure Cognome, Nome, ecc.

Dominio

è l'insieme dei valori che può assumere un attributo: per esempio A è un insieme di nomi (stringhe), B è un insieme di numeri interi. Importante: ogni attributo ha un proprio dominio di valori, che non può essere modificato.