1 / 52

Informatica II – Basi di Dati (07/08) – Parte 1

Informatica II – Basi di Dati (07/08) – Parte 1. Gianluca Torta Dipartimento di Informatica dell’Universit à di Torino torta@di.unito.it , 0116706782. 3 - Il modello relazionale. Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella

keren
Download Presentation

Informatica II – Basi di Dati (07/08) – Parte 1

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Informatica II – Basi di Dati (07/08) – Parte 1 Gianluca Torta Dipartimento di Informatica dell’Università di Torino torta@di.unito.it, 0116706782

  2. 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. Prodotto cartesiano • Prodotto cartesiano di due insiemi A e B AxB = {(x1,x2) | x1A e x2B} dove (x1,x2) sono coppie ordinate di elementi • Per esempio: A = {1,2,4}, B= {a,b} AxB = {(1,a),(1,b),(2,a),(2,b),(4,a),(4,b)}

  6. 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)}

  7. Relazioni e tabelle • Domini: per esempio • I numeri naturali tra 1 e 50 compresi • Le frase che contengono 255 carattere o meno

  8. 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

  9. 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

  10. Relazioni e tabelle • Relazioni rappresentate graficamente come tabelle

  11. Prodotto cartesiano • Prodotto cartesiano di n insiemi D1, D2, …, Dn D1x…xDn = {(z1,…,zn) | z1D1,…,znDn} dove (z1,…,zn) sono n-uple ordinate di elementi

  12. Prodotto cartesiano • Per esempio: • n=3: D1={0,1}, D2={a,b}, D3={rosso,blu} • Che cos’è D1xD2xD3? • Cioè, che cos’è {0,1}x{a,b}x{rosso,blu}?

  13. Prodotto cartesiano • Per esempio: • n=3: D1={0,1}, D2={a,b}, D3={rosso,blu} • Che cos’è D1xD2xD3? • Cioè, che cos’è {0,1}x{a,b}x{rosso,blu}? {(0,a,rosso), (0,a,blu), (0,b,rosso), (0,b,blu), (1,a,rosso), (1,a,blu), (1,b,rosso), (1,b,blu)}

  14. 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)}

  15. Relazioni e tabelle • Per esempio: risultati partite di calcio

  16. Relazioni e tabelle • Per esempio: risultati partite di calcio Sequenza di carattere (stringa) Numero naturale (intero)

  17. 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

  18. 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

  19. 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

  20. 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

  21. Relazioni con attributi • In una relazione, ogni dominio rappresenta un ruolo o attributo • Usiamo nome di attributo per identificare le rispettive componenti delle n-ple • In una tabelle: attributo  intestazione di colonne della tabella • Per esempio: • SquadraDiCasa, SquadraOspitata, RetiCasa, RetiOspitata

  22. Relazioni con attributi

  23. Relazioni con attributi D1 D2 D3 D4 Ordinamento di colonne diventa irrilevante: Non serve più parlare di primo dominio, etc.

  24. 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 AX un dominio DOM(A)  D D7 X D A3 DOM

  25. Relazioni con attributi • Tupla su insieme di attributi X è una funzione t che associa a ciascun attributo A X un valore del dominio DOM(A) • Per esempio: t[SquadraDiCasa]=Juventus • Relazione (con attributi) su X è insieme di tuple su X • n-uple: elementi individuati per posizione • Tuple: elementi individuati per attributo

  26. 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}

  27. 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

  28. Relazioni con attributi: esempio • t1, t2, t3, t4: tuple • t1[SquadraDiCasa]=Juventus • t1[SquadraOspitata]=Lazio • t1[RetiCasa]=3 • t1[RetiOspitata]=2

  29. Relazioni con attributi: esempio • t1, t2, t3, t4: tuple • t2[SquadraDiCasa]=Lazio • t2[SquadraOspitata]=Milan • t2[RetiCasa]=2 • t2[RetiOspitata]=0

  30. Relazioni e Basi di Dati • Un DB è solitamente costituito da più relazioni (tabelle) le cui tuple contengono valori comuni (usati per stabilire corrispondenza tra tuple) • Per esempio: tabelle che descrivono studenti, esami e corsi Studenti

  31. Relazioni e Basi di Dati Esami Corsi

  32. Relazioni e Basi di Dati • Sono ammissibile relazione con un solo attributo • Per esempio: • Si possono rappresentare informazioni complesse mediante tabelle diverse Lavoratori

  33. Schemi di relazioni e di DB • Schema di relazione: R(X) • Costituita da simbolo R (nome della relazione) e da insieme di nomi di attributi X={A1,…,An} • Per esempio: • Esami(Studente,Voto,Corso) Esami

  34. Schemi di relazioni e di DB • Schema di base di dati: R={R1(X1),…,Rn(Xn)} • Insiemi di schemi di relazione con nomi diversi • Per esempio: • Università = {Studenti(Matricola,Cognome,Nome,DataNascita), Esami(Studente,Voto,Corso), Corso(Codice,Titolo,Docente)}

  35. Schemi di relazioni e di DB • Istanza di relazione su schema R(X) • Insieme r di tuple su X • Istanza di base di dati su schema R={R1(X1),…,Rn(Xn)} • Insieme r di relazione r={r1,…,rn} dove ogni ri è una relazione sullo schema Ri(Xi)

  36. Esempi di relazione

  37. Esempi di relazione • Le ricevute hanno una struttura che prevede alcune informazioni fisse • Numero, data e totale • … e un numero di righe variabile • Non è possibile rappresentare l’insieme delle ricevute con un’unica relazione • Non sarebbe possibile rappresentare le righe in un numero non predeterminato

  38. Esempi di relazione Dettaglio Ricevute

  39. Esempi di relazione • La base di dati nella slide precedente rappresenta correttamente le ricevute solo a due condizioni: • Non interessa mantenere traccia dell’ordine con cui le righe compaiono in ciascuna ricevuta • In un ricevuta non compaiono due righe uguali • In entrambi i casi, si può risolvere il problema aggiungendo un attributo, che indica la posizione della riga sulla ricevuta

  40. Esempi di relazione Dettaglio Ricevute

  41. Esempi di relazione Dettaglio Ricevute

  42. Informazione incompleta e valori nulli • In una tupla di una relazione un attributo può non avere valore • Per esempio: Mario Rossi non ha telefono in Persone(Cognome,Nome,Indirizzo,Telefono) • Oppure il valore di un attributo potrebbe esistere ma essere sconosciuto a chi inserisce i dati nel DB • Per esempio: Mario Rossi ha telefono, ma non ne conosciamo il numero

  43. Informazione incompleta e valori nulli • NULL: valore nullo • Assegnato agli elementi di tuple inesistenti o sconosciuti • NULL è valore aggiuntivo rispetto al dominio di un attributo

  44. Informazione incompleta e valori nulli • In basi di dati, i due casi sopra trattati come assenza di informazione • In assenza di informazione su un attributo bisogna usare NULL perché non si confonde con altri valori del dominio dell’attributo

  45. Informazione incompleta e valori nulli • Per esempio: • Numero di telefono sconosciuto potrebbe essere rappresentato con 0 (numero che nessun telefono può avere). Però questa convenzione non è generale • Inoltre, per altri attributi, potrebbe non esistere valore di dominio che non si può assegnare mai: usare NULL

  46. Informazione incompleta e valori nulli • Non tutti gli attributi di una relazione devono poter assumere valore nullo • In definizione di relazione, si può specificare quali attributi non devono mai essere nulli nelle tuple Studenti

  47. Informazione incompleta e valori nulli • Non tutti gli attributi di una relazione devono poter assumere valore nullo • In definizione di relazione, si può specificare quali attributi non devono mai essere nulli nelle tuple OK Studenti

  48. Informazione incompleta e valori nulli • Non tutti gli attributi di una relazione devono poter assumere valore nullo • In definizione di relazione, si può specificare quali attributi non devono mai essere nulli nelle tuple Studenti No: matricola usata per correlare relazione

  49. Informazione incompleta e valori nulli Esami No: informazione inutile Corsi

  50. Informazione incompleta e valori nulli Esami No: informazione inutile Corsi

More Related