260 likes | 425 Views
Informatica. Introduzione alle basi di dati Lezione 4 Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico: 2005-2006. 3 - Il modello relazionale. Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella
E N D
Informatica Introduzione alle basi di dati Lezione 4 Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico: 2005-2006
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
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
Relazioni e tabelle • Domini: per esempio • I numeri naturali tra 1 e 50 compresi • Le frase che contengono 255 carattere o meno
Relazioni e tabelle • Assumiamo che i DB siano costituiti da relazioni finite su domini eventualmente infiniti • Finito 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
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
Relazioni e tabelle • Relazioni rappresentate graficamente come tabelle
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)}
Relazione matematica • Relazione matematica sugli insiemi D1,…,Dn (domini della relazione) = un sottoinsieme di D1x…xDn • Per 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)}
Relazioni e tabelle • Relazione {(0,b,blu), (1,a,rosso), (1,b,rosso), (1,b,blu)} rappresentata graficamente come tabella
Relazioni e tabelle • Per esempio: risultati partite di calcio
Relazioni e tabelle • Per esempio: risultati partite di calcio Sequenza di carattere (stringa) Numero naturale (intero)
Relazioni e tabelle • Per esempio: risultati partite di calcio Sequenza di carattere (stringa) Numero naturale (intero) Questa relazione: un sottoinsieme di Stringa x Stringa x Intero x Intero
Relazioni e tabelle • n-upla di relazione contiene dati tra loro collegati, che verificano la relazione • n-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
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 elementi • L’ordine degli elementi non è importante • Un insieme non contiene duplicati
Relazioni con attributi • Ordinamento dei domini di una relazione impone ordinamento posizionale degli elementi di n-uple • Nella gestione di dati, preferenza per ordinamenti non posizionali • … in cui si può far riferimento alle componenti delle n-uple in modo non ambiguo
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
Relazioni con attributi D1 D2 D3 D4 Ordinamento di colonne diventa irrilevante: Non serve più parlare di primo dominio, etc.
Relazioni con attributi • Dati 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 D7 X D A3 DOM
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 X • n-uple: elementi individuati per posizione • Tuple: elementi individuati per attributo
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}
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
Relazioni con attributi: esempio • t1, t2, t3, t4: tuple • t1[SquadraDiCasa]=Juventus • t1[SquadraOspitata]=Lazio • t1[RetiCasa]=3 • t1[RetiOspitata]=2
Relazioni con attributi: esempio • t1, t2, t3, t4: tuple • t2[SquadraDiCasa]=Lazio • t2[SquadraOspitata]=Milan • t2[RetiCasa]=2 • t2[RetiOspitata]=0