informatica introduzione alle basi di dati lezione 4 scienze e tecniche psicologiche dello sviluppo...
Post on 03-May-2015
214 Views
Preview:
TRANSCRIPT
Informatica
Introduzione alle basi di datiLezione 4Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistraleAnno accademico: 2005-2006
3 - Il modello relazionale
3
Il modello relazionale
Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica di
una relazione; un concetto intuitivo
4
Il modello relazionale
Garantisce indipendenza dei dati Utenti che accedono ai dati e
programmatori che sviluppano applicazioni fanno riferimento al livello logico dei dati
Cioè, agli utenti e ai programmatori, non serve sapere come i dati sono memorizzati fisicamente
5
Relazioni e tabelle
Domini: per esempio I numeri naturali tra 1 e 50 compresi Le frase che contengono 255
carattere o meno
6
Relazioni e tabelle
Assumiamo che i DB siano costituiti da relazioni finite su domini eventualmente infinitiFinito o infinito? Per esempio: {z|z è un numero naturale} è un insieme
infinito {y|y è un numero naturale tra 1 e 50
compresi} è un insieme finito {x|x è una frase che contiene 255 carattere o
meno} è un insieme finito
7
Relazioni e tabelle
In un DB non possono esserci insiemi infiniti Sistemi di calcolo gestiscono solo
insiemi finiti
Ma è utile ammettere domini infiniti per permettere ad ogni istante di assumere esistenza di un valore non presente nel DB
8
Relazioni e tabelle
Relazioni rappresentate graficamente come tabelle
1 a
1 b
4 b
9
Relazione matematica
Relazione matematica su insiemi A e B (domini della relazione) = sottoinsieme di AxB
Per esempio: AxB = {(1,a),(1,b),(2,a),(2,b),(4,a),(4,b)}
Una relazione matematica su insieme A e B potrebbe essere:
R={(1,a),(1,b),(4,b)}
10
Relazione matematica
Relazione matematica sugli insiemi D1,…,Dn (domini della relazione)
= un sottoinsieme di D1x…xDnPer esempio: un relazione sugli insiemi {0,1}, {a,b}, {rosso,blu} potrebbe essere
{(0,b,blu), (1,a,rosso), (1,b,rosso), (1,b,blu)}
11
Relazioni e tabelle
Relazione {(0,b,blu), (1,a,rosso), (1,b,rosso), (1,b,blu)} rappresentata graficamente come tabella
0 b blu
1 a rosso
1 b rosso
1 b blu
12
Relazioni e tabelle
Per esempio: risultati partite di calcio
Juventus Lazio 3 2
Lazio Milan 2 0
Juventus Roma 2 1
Roma Milan 1 2
13
Relazioni e tabelle
Per esempio: risultati partite di calcio
Juventus Lazio 3 2
Lazio Milan 2 0
Juventus Roma 2 1
Roma Milan 1 2
Sequenza di carattere (stringa)
Numero naturale (intero)
14
Relazioni e tabelle
Per esempio: risultati partite di calcio
Juventus Lazio 3 2
Lazio Milan 2 0
Juventus Roma 2 1
Roma Milan 1 2
Sequenza di carattere (stringa)
Numero naturale (intero)
Questa relazione: un sottoinsieme di Stringa x Stringa x Intero x Intero
15
Relazioni e tabelle
n-upla di relazione contiene dati tra loro collegati, che verificano la relazionen-uple sono ordinate: ordine dei loro elementi è significativo Per esempio: (Juventus,Lazio,3,2) significa
che il risultato della partita Juventus-Lazio, giocata in casa dalla Juventus, è 3 a 2
16
Relazioni e tabelle
Una relazione è un insieme: n-uple della relazione devono essere
distinte (no righe ripetute in tabella) n-uple non sono tra loro ordinate (tabelle
con stesse righe ordinate in modo diverso rappresentano la stessa relazione)
Insieme: collezione di elementiL’ordine degli elementi non è importanteUn insieme non contiene duplicati
17
Relazioni con attributi
Ordinamento dei domini di una relazione impone ordinamento posizionale degli elementi di n-upleNella gestione di dati, preferenza per ordinamenti non posizionali … in cui si può far riferimento alle
componenti delle n-uple in modo non ambiguo
18
Relazioni con attributi
In una relazione, ogni dominio rappresenta un ruolo o attributo Usiamo nome di attributo per identificare le
rispettive componenti delle n-uple In una tabelle: attributo intestazione di
colonne della tabella
Per esempio: SquadraDiCasa, SquadraOspitata, RetiCasa,
RetiOspitata
19
Relazioni con attributi
SquadraDiCasa
SquadraOspitata
RetiCasa
RetiOspitata
Juventus Lazio 3 2
Lazio Milan 2 0
Juventus Roma 2 1
Roma Milan 1 2
20
Relazioni con attributiD1 D2 D3 D4
Ordinamento di colonne diventa irrilevante: Non serve più parlare di primo dominio, etc.
SquadraDiCasa
SquadraOspitata
RetiCasa
RetiOspitata
Juventus Lazio 3 2
Lazio Milan 2 0
Juventus Roma 2 1
Roma Milan 1 2
21
Relazioni con attributiDati insieme di attributi X={A1,…,An} e insieme di domini D={D1,…,Dm} Stabiliamo corrispondenza tra attributi e
domini mediante funzione DOM: X D Cioè, la funzione DOM associa a ciascun
attributo AX un dominio DOM(A) D
X DA3D7
DOM
22
Relazioni con attributi
Tupla su insieme di attributi X è una funzione t che associa a ciascun attributo AX un valore del dominio DOM(A) Per esempio, tupla t, valore per l’attributo
SquadraDiCasa: t[SquadraDiCasa]=Juventus
Relazione (con attributi) su X è insieme di tuple su Xn-uple: elementi individuati per posizioneTuple: elementi individuati per attributo
23
Relazioni con attributi: esempio
DOM:{SquadraDiCasa, SquadraOspitata, Reti Casa, RetiOspitata} {Stringa, Intero}Cioè: Insieme di attributi X = {SquadraDiCasa,
SquadraOspitata, Reti Casa, RetiOspitata} Insieme di attributi D = {Stringa, Intero}
24
Relazioni con attributi: esempio
DOM:{SquadraDiCasa, SquadraOspitata, Reti Casa, RetiOspitata} {Stringa, Intero} DOM(SquadraDiCasa) = Stringa DOM(SquadraOspitata) = Stringa DOM(Reti Casa) = Intero DOM(RetiOspitata) = Intero
25
Relazioni con attributi: esempio
t1, t2, t3, t4: tuple t1[SquadraDiCasa]=Juventus t1[SquadraOspitata]=Lazio t1[RetiCasa]=3 t1[RetiOspitata]=2
SquadraDiCasa
SquadraOspitata
RetiCasa
RetiOspitata
Juventus Lazio 3 2
Lazio Milan 2 0
Juventus Roma 2 1
Roma Milan 1 2
26
Relazioni con attributi: esempio
t1, t2, t3, t4: tuple t2[SquadraDiCasa]=Lazio t2[SquadraOspitata]=Milan t2[RetiCasa]=2 t2[RetiOspitata]=0
SquadraDiCasa
SquadraOspitata
RetiCasa
RetiOspitata
Juventus Lazio 3 2
Lazio Milan 2 0
Juventus Roma 2 1
Roma Milan 1 2
top related