Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica.

Slides:



Advertisements
Presentazioni simili
Informatica II – Basi di Dati (08/09) – Parte 1
Advertisements

DB -Algebra Relazionale
DB - Modello relazionale dei dati
Basi di dati: il modello relazionale
INSIEMI INSIEME= gruppo di oggetti di tipo qualsiasi detti elementi dell’insieme. Un insieme è definito quando viene dato un criterio non ambiguo che.
1 Progettazione logica: Il modello relazionale Eugenio Di Sciascio.
Semantica delle Informazioni
4 – Progettazione – Introduzione e Modello E-R
Basi di Dati prof. A. Longheu 4 – Progettazione – Introduzione e Modello E-R Cap. 5 Basi di dati Atzeni – Ceri – Paraboschi - Torlone.
Il modello relazionale: strutture e vincoli
LE FUNZIONI Definizione Campo di esistenza e codominio
Archivio Cé necessità di immagazzinare in modo permanente grandi quantità di dati. Esempio: anagrafe dei cittadini di un comune.
L’uso dei database in azienda
Corso di Informatica (Basi di Dati)
Corso di Informatica (Basi di Dati)
1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi.
Basi di dati. Vantaggi degli archivi digitali Risparmio di spazio: sono facilmente trasferibili e duplicabili Risparmio di tempo: si può accedere ai dati.
Basi di dati Università Degli Studi Parthenope di Napoli
Algebra Relazionale Linguaggio procedurale, cioè le operazioni vengono descritte attraverso la descrizione della sequenza di azioni da compiere per ottenere.
Modello Relazionale Definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso.
Duplicati Lalgebra relazionale non ammette duplicati, SQL li ammette. Quindi select Città from Persona where Cognome= Rossi estrae una lista di città in.
Proiezione Dati una relazione r(X) e un sottoinsieme Y di X, la proiezione di r su Y si indica con Y ( r ) o PROJ Y ( r ) ed è linsieme di tuple su Y ottenute.
Progettazione di una base di dati
Relazioni Relazione : concetto mutuato dalla definizione di relazione matematica della teoria degli insiemi, come sottoinsieme del prodotto cartesiano.
Normalizzazione Le forme normali certificano che la base di dati soddisfa criteri di qualità che mirano ad evitare le ridondanze e i conseguenti effetti.
Modello E-R Generalizzazioni
Modello Relazionale Proposto agli inizi degli anni ‘70 da Codd
Informazione incompleta Le tuple che compongono la base di dati devono essere omogenee. Quindi ad ogni attributo deve essere associato un valore in ogni.
Basi di dati Claudia Raibulet
Il modello relazionale (II). Informazione incompleta e valori nulli In una tupla di una relazione un attributo può non avere valore Per esempio: Mario.
MODELLO LOGICO DEI DATI
Progettare un database
Introduzione ai linguaggi formali e alle stringhe
Sistemi di Elaborazione delle Informazioni Mod.I.
Basi di Dati e Sistemi Informativi
Informatica II – Basi di Dati (07/08) – Parte 2 Gianluca Torta Dipartimento di Informatica dell’Università di Torino
DB- Sistemi Informativi
Il modello relazionale (II). Informazione incompleta e valori nulli In una tupla di una relazione un attributo può non avere valore Per esempio: Mario.
Microsoft Access (parte 5) Introduzione alle basi di dati Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico:
Informatica II – Basi di Dati (07/08) – Parte 2 Gianluca Torta Dipartimento di Informatica dell’Università di Torino
Informatica II – Basi di Dati (07/08) – Parte 1
Microsoft Access Query (II), filtri.
Introduzione alle basi di dati
Informatica Introduzione alle basi di dati Lezione 2 Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico:
Informatica 3 V anno.
Informatica Introduzione alle basi di dati Lezione 4 Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico:
IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare.
Algebra relazionale. Accesso ai dati di un DB Aggiornamento di DB: funzione che, data istanza di DB, produce altra istanza di DB, sullo stesso schema.
BASI DI DATI. 2 Sommario Introduzione e obiettivi Introduzione e obiettivi Il modello di dati relazionale Il modello di dati relazionale SQL SQL Software.
Progettazione di una base di dati Ciclo di vita di un sistema informativo Studio di fattibilità definisce le varie alternative possibili, i relativi costi.
Basi di dati e Relazioni Uno schema di relazione R(X) è costituito da un simbolo (nome della relazione) R e da una serie di attributi X={A 1, A 2, …, A.
Query languages per Basi di Dati Relazionali  Algebra Relazionale:  basato sulla teoria degli insiemi  procedurale  usato per l’implementazione di.
Progettazione di una base di dati relazionale Vincoli.
Sommario Oggetti immutabili e non Tipi Primitivi: String, Arrays.
Join Se ciascuna tupla di ciascun operando contribuisce ad almeno una tupla del risultato il join si dice completo. Se per alcune tuple non è verificata.
S. Costantini 06/05/2006 (parte del materiale è tratto da slide del 2001 di Ceri-Atzeni) Normalizzazione di Schemi.
Sistemi di Elaborazione delle Informazioni
Il modello relazionale
NORMALIZZAZIONE ESERCIZI. INTRODUZIONE La modellazione E-R ci ha consentito di descrivere schemi relazionali Lo strumento base per la modellizzazione.
Microsoft Access Filtri, query. Filtri Un filtro è una funzione che provoca la visualizzazione dei soli record contenenti dati che rispondono a un certo.
DB- Sistemi Informativi Insieme di programmi in grado di acquisire, elaborare, trasmettere ed archiviare informazioni in genere ad uso di un’organizzazione.
Linguaggi per basi di dati Linguaggi di definizione dei dati Utilizzati per definire gli schemi e le autorizzazioni per l’accesso Linguaggi di manipolazione.
Operazioni con gli insiemi
Normalizzazione. Introduzione Nell’organizzazione tradizionale degli archivi, si verificano alcuni problemi, quali: Ridondanza dei dati (gli stessi dati.
Il Modello Relazionale. I modelli logici dei dati Tradizionalmente, esistono tre modelli logici: –gerarchico –reticolare –relazionale I modelli gerarchico.
TEORIA ELEMENTARE DEGLI INSIEMI
Il modello relazionale. Modello Relazionale 2 Dal modello concettuale a quello logico Una volta stabilita la rappresentazione concettuale della realtà.
Gli insiemi Per insieme in senso matematico si intende un raggruppamento di elementi che possono essere individuati con assoluta certezza A i n s.
Il modello relazionale
Il modello relazionale
Transcript della presentazione:

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

Insiemi Insieme: collezione di elementi L’ordine non è importante  Per esempio: {1,5,3} = {1,3,5} Un insieme non contiene duplicati  Per esempio: {rosso,verde,rosso} è identificato con {rosso, verde}

Insiemi Esempi: {z | z è un colore primario} = {rosso, blu, giallo} {y | y è un numero pari tra 5 e 15} = {6, 8, 10, 12, 14} Caso speciale:  = {}, l’insieme vuoto

Elemento di un’insieme Per esempio, 1 è un elemento dell’insieme {1,5,3} Per esempio, rosso è un elemento dell’insieme {rosso, verde} L’elemento z è un elemento di un’insieme A: z in A (oppure z  A, z appartiene a A)

Sottoinsieme A è un sottoinsieme di B se ogni elemento z in A è anche un elemento di B A è un sottoinsieme di B è scritto A  B Per esempio, {1,3} è un sottoinsieme di {1,5,3} Per esempio, {rosso} è un sottoinsieme di {rosso, verde}

Prodotto cartesiano Prodotto cartesiano di due insiemi A e B AxB = {(z1,z2) | z1  A e z2  B} dove (z1,z2) 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)}

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

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}?

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

Unione Unione di due insiemi A e B A  B = {z | z  A o z  B} Per esempio: {1,5,3}  {4,5,9} = {1,5,4,9,3} {1,5,3}  {rosso, verde} = {1,5,rosso,verde,3}

Intersezione Intersezione di due insiemi A e B A  B = {z | z  A e z  B} Per esempio: {1,5,3}  {1,3,8} = {1,3} {rosso, blu}  {rosso, verde} = {rosso} {1,5,3}  {1} = {1} {1,5,3}  {1,5,3} = {1,5,3} {rosso, blu}  {verde, giallo} = 

Differenza insiemistica Differenza insiemistica tra due insiemi A e B A-B = {z | z  A e non z  B} Per esempio: {1,5,3} – {1,3} = {5} {rosso,blu,giallo} – {blu} = {rosso,giallo}

Esercitazioni 1. {10,20,30}  {5,10,15,20,25,30,35}? 2. {1,2,35}  {1,2,30}? 3. {10,20,30}  {z | z è tra 1 e 50}? 4. Che cos’è {1,2,3}x{a,b}?

Esercitazioni 5. Che cos’è {0,1}x{a,b}x{rosso,blu}? 6. Che cos’è {0,1}  {a,b}? 7. Che cos’è {a,b,c}  {a,b}? 8. Che cos’è {a,b,c}  {a,b}?

Esercitazioni 9. Che cos’è {1,2,3}  {a,b}? 10. Che cos’è {1,2,3} – {3}? 11. Che cos’è {1,2,3} – {1,2,3}? 12. Che cos’è {1,2,3} – {a,b}?

Esercitazioni 13. (2,3)  {1,2,3} x {a,b}? 14. (1,b)  {1,2,3} x {a,b}? 15. (1,b,blu)  {1,2,3} x {a,b} x {rosso,blu}? 16. {(1,b,a), (3,a,a)}  {1,2,3} x {a,b} x {a,b}?

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 1a 1b 4b

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 0bblu 1arosso 1b 1bblu

Relazioni e tabelle Per esempio: risultati partite di calcio JuventusLazio32 Milan20 JuventusRoma21 Milan12

Relazioni e tabelle Per esempio: risultati partite di calcio JuventusLazio32 Milan20 JuventusRoma21 Milan12 Sequenza di carattere (stringa) Numero naturale (intero)

Relazioni e tabelle Per esempio: risultati partite di calcio JuventusLazio32 Milan20 JuventusRoma21 Milan12 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-ple In una tabelle: attributo  intestazione di colonne della tabella Per esempio: SquadraDiCasa, SquadraOspitata, RetiCasa, RetiOspitata

Relazioni con attributi SquadraDiCasaSquadraOspitataRetiCasaRetiOspitata JuventusLazio32 Milan20 JuventusRoma21 Milan12

Relazioni con attributi D1D2D3D4 Ordinamento di colonne diventa irrilevante: Non serve più parlare di primo dominio, etc. SquadraDiCasaSquadraOspitataRetiCasaRetiOspitata JuventusLazio32 Milan20 JuventusRoma21 Milan12

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 XD A3 D7 DOM

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

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 SquadraDiCasaSquadraOspitataRetiCasaRetiOspitata JuventusLazio32 Milan20 JuventusRoma21 Milan12

Relazioni con attributi: esempio t1, t2, t3, t4: tuple t2[SquadraDiCasa]=Lazio t2[SquadraOspitata]=Milan t2[RetiCasa]=2 t2[RetiOspitata]=0 SquadraDiCasaSquadraOspitataRetiCasaRetiOspitata JuventusLazio32 Milan20 JuventusRoma21 Milan12

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 MatricolaCognomeNomeDataNascita RossiMaria25/11/ NeriAnna23/04/ VerdiFabio12/02/ RossiLuca10/10/ BruniMario01/12/1981 Studenti

Relazioni e Basi di Dati CodiceTitoloDocente 01AnalisiGiani 03ChimicaMelli 04ChimicaBelli StudenteVotoCorso Esami Corsi

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

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) StudenteVotoCorso Esami

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

Schemi di relazioni e di DB Istanza di relazione (o semplicemente relazione) su schema R(X) Insieme r di tuple su X Istanza di base di dati (o semplicemente 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)

Esempi di relazione “DA MARIO” Ricevuta n Del 5/2/04 3coperti3,00 2antipasti6,00 3primi12,00 2bistecche18,00 Totale39,00 “DA MARIO” Ricevuta n Del 7/2/04 2coperti2,00 1antipasti3,00 2primi8,00 2orate14,00 2caffè2,00 Totale29,00 “DA MARIO” Ricevuta n Del 13/2/04 3coperti3,00 2antipasti6,00 3primi14,00 1Orate18,00 1Caprese2,00 2Caffè2,00 Totale45,00

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

Esempi di relazione Num.Q.tàDescr.Importo 13573Coperti3, Antipasti6, Primi12, Bistecche18, Coperti2, Antipasti3, Primi8, Orate14, Caffè2, Coperti3, Antipasti6, Primi14, Orate18, Caprese2, Caffè2,00 Num.DataTotale 13575/2/0439, /2/0429, /2/0445,00 Ricevute Dettaglio

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

Esempi di relazione Num.RigaQ.tàDescr.Importo Coperti3, Antipasti6, Primi12, Bistecche18, Coperti2, Antipasti3, Primi8, Orate14, Caffè2, Coperti3, Antipasti6, Primi14, Orate18, Caprese2, Caffè2,00 Num.DataTotale 13575/2/0439, /2/0429, /2/0445,00 Ricevute Dettaglio

Esempi di relazione Num.RigaQ.tàDescr.Importo Coperti3, Antipasti6, Primi12, Bistecche18, Coperti2, Antipasti3, Primi8, Orate14, Caffè2, Coperti3, Antipasti6, Primi14, Orate18, Caprese2, Caffè2,00 Num.DataTotale 13575/2/0439, /2/0429, /2/0445,00 Ricevute Dettaglio

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

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

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

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