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

Slides:



Advertisements
Presentazioni simili
Training On Line - CONP. 2 Richiesta Da Menu: Conferimenti ad inizio anno termico > Agosto > Pluriennali > Nuova Richiesta Si accede alla pagina di Richiesta.
Advertisements

Informatica II – Basi di Dati (08/09) – Parte 1
Dipartimento di Ingegneria Idraulica e Ambientale - Universita di Pavia 1 Caduta non guidata di un corpo rettangolare in un serbatoio Velocità e rotazione.
Le distribuzioni di probabilità continue
DB - Modello relazionale dei dati
1 MeDeC - Centro Demoscopico Metropolitano Provincia di Bologna - per Valutazione su alcuni servizi erogati nel.
TAV.1 Foto n.1 Foto n.2 SCALINATA DI ACCESSO ALL’EREMO DI SANTA CATERINA DEL SASSO DALLA CORTE DELLE CASCINE DEL QUIQUIO Foto n.3 Foto n.4.
1 Pregnana Milanese Assessorato alle Risorse Economiche Bilancio Preventivo P R O P O S T A.
Basi di dati: il modello relazionale
1 Progettazione logica: Il modello relazionale Eugenio Di Sciascio.
Frontespizio Economia Monetaria Anno Accademico
La scelta del paniere preferito
1 la competenza alfabetica della popolazione italiana CEDE distribuzione percentuale per livelli.
Basi di Dati prof. A. Longheu
Il modello relazionale: strutture e vincoli
Implementazione dell algortimo di Viterbi attraverso la soluzione del problema di cammino mi- nimo tramite software specifico. Università degli studi di.
I MATEMATICI E IL MONDO DEL LAVORO
EIE 06/07 II / 1 Strumenti delle politiche agricole in economia aperta equilibrio di mercato in economia aperta politiche di un paese importatore politiche.
Programmazione 1 9CFU – TANTE ore
Canale A. Prof.Ciapetti AA2003/04
1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) SQL: Data Manipulation Language (DML) Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi,
Corso di Informatica (Basi di Dati)
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.
Ufficio Studi UNIONCAMERE TOSCANA 1 Presentazione di Riccardo Perugi Ufficio Studi UNIONCAMERE TOSCANA Firenze, 19 dicembre 2000.
Test di ipotesi X variabile casuale con funzione di densità (probabilità) f(x; q) q Q parametro incognito. Test Statistico: regola che sulla base di un.
1 A cura di Vittorio Villasmunta Metodi di analisi dei campi meteorologici Corso di base sulluso del software di analisi meteorologica DIGITAL ATMOSPHERE.
Master universitario di II livello in Ingegneria delle Infrastrutture e dei Sistemi Ferroviari Anno Accademico 2012/2013 Cultura dimpresa, valutazione.
La partita è molto combattuta perché le due squadre tentano di vincere fino all'ultimo minuto. Era l'ultima giornata del campionato e il risultato era.
Dipartimento di Ingegneria Idraulica e Ambientale - Universita di Pavia 1 Scritte scritte scritte scritte scritte scritte scritte Scritte scritte Titolo.
OPERAZIONI CON TRINOMI DI II° GRADO
Modello Relazionale Definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso.
Relazioni Relazione : concetto mutuato dalla definizione di relazione matematica della teoria degli insiemi, come sottoinsieme del prodotto cartesiano.
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.
Contatore: esempio di circuito sequenziale
2 3 4 RISERVATEZZA INTEGRITA DISPONIBILITA 5 6.
Nuove frontiere della medicina trasfusionale: il contributo Avis
Esercitazione 1: Rispetto al test di ansia (Media=25; σ=5), calcolare:
1 Negozi Nuove idee realizzate per. 2 Negozi 3 4.
ISOIVA (LOCALE) TO ISOIVA (WEB) RIPARTIZIONE INFORMATICA UFFICIO APPLICATIVI AMMINISTRATIVI 13/04/2011 UNIVERSITÀ DEGLI STUDI DI FERRARA 1.
Il modello relazionale (II). Informazione incompleta e valori nulli In una tupla di una relazione un attributo può non avere valore Per esempio: Mario.
Scheda Ente Ente Privato Ente Pubblico. 2ROL - Richieste On Line.
TECNOLOGIE DELLINFORMAZIONE E DELLA COMUNICAZIONE PER LE AZIENDE Materiale di supporto alla didattica.
Bando Arti Sceniche. Per poter procedere è indispensabile aprire il testo del Bando 2ROL - Richieste On Line.
Progettare un database
1 Questionario di soddisfazione del servizio scolastico Anno scolastico 2011/2012 Istogramma- risposte famiglie.
Informatica II – Basi di Dati (08/09) – Parte 2 Gianluca Torta Dipartimento di Informatica dellUniversità di Torino
21 marzo 2002 (ri-)Avvisi: Giovedi 28 marzo la lezione e sospesa. Nuovo indirizzo di Spedire messaggi e esercizi solo.
Sistemi di Elaborazione delle Informazioni Mod.I.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – Ver. aggiornata al 18 Ottobre.
Sviluppare un programma in C che, dato un array da 100 elementi interi caricato con numeri casuali compresi tra [10,100], sia in grado di cercare il valore.
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill,
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.
Informatica II – Basi di Dati (07/08) – Parte 2 Gianluca Torta Dipartimento di Informatica dell’Università di Torino
Numeri Interi senza segno
Modulo 5 - Database. Contenuti della lezione 5.1.1Concetti Fondamentali 5.1.2Organizzazione di un Database 5.1.3Relazioni 5.2.1Lavorare con i database.
A.P. cat. B - 1 Per chi vuole: Libro di testo D.P. Curtis, K. Foley, K. Sen, C. Morin Informatica di base 2° edizione Mc Graw-Hill Companies.
OPERAZIONI CON TRINOMI DI II° GRADO
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:
IL GIOCO DEL PORTIERE CASISTICA. Caso n. 1 Il portiere nella seguente azione NON commette infrazioni.
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 logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica.
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.
Il modello relazionale
Linguaggi per basi di dati Linguaggi di definizione dei dati Utilizzati per definire gli schemi e le autorizzazioni per l’accesso Linguaggi di manipolazione.
Transcript della presentazione:

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

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

AxB = {(1,a),(1,b),(2,a),(2,b),(4,a),(4,b)} 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)}

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

D1x…xDn = {(z1,…,zn) | z1D1,…, znDn} 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)}

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 Per esempio: risultati partite di calcio Juventus 3 2 Milan Roma 1

Relazioni e tabelle Per esempio: risultati partite di calcio Juventus 3 2 Milan Roma 1 Sequenza di carattere (stringa) Numero naturale (intero)

Relazioni e tabelle Per esempio: risultati partite di calcio Juventus 3 2 Milan Roma 1 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 SquadraDiCasa SquadraOspitata RetiCasa RetiOspitata Juventus Lazio 3 2 Milan Roma 1

Relazioni con attributi D1 D2 D3 D4 SquadraDiCasa SquadraOspitata RetiCasa RetiOspitata Juventus Lazio 3 2 Milan Roma 1 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 AX 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 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 SquadraDiCasa SquadraOspitata RetiCasa RetiOspitata Juventus Lazio 3 2 Milan Roma 1 t1, t2, t3, t4: tuple t1[SquadraDiCasa]=Juventus t1[SquadraOspitata]=Lazio t1[RetiCasa]=3 t1[RetiOspitata]=2

Relazioni con attributi: esempio SquadraDiCasa SquadraOspitata RetiCasa RetiOspitata Juventus Lazio 3 2 Milan Roma 1 t1, t2, t3, t4: tuple t2[SquadraDiCasa]=Lazio t2[SquadraOspitata]=Milan t2[RetiCasa]=2 t2[RetiOspitata]=0

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 Matricola Cognome Nome DataNascita 276545 Rossi Maria 25/11/1981 485745 Neri Anna 23/04/1982 200768 Verdi Fabio 12/02/1982 587614 Luca 10/10/1981 937653 Bruni Mario 01/12/1981

Relazioni e Basi di Dati Esami Studente Voto Corso 276545 28 01 485745 27 04 200768 25 587614 24 Codice Titolo Docente 01 Analisi Giani 03 Chimica Melli 04 Belli Corsi

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

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 Studente Voto Corso 276545 28 01 485745 27 04 200768 25 587614 24

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

Esempi di relazione “DA MARIO” Ricevuta n. 1357 Del 5/2/04 3 coperti 3,00 2 antipasti 6,00 primi 12,00 bistecche 18,00 Totale 39,00 “DA MARIO” Ricevuta n. 2334 Del 7/2/04 2 coperti 2,00 1 antipasti 3,00 primi 8,00 orate 14,00 caffè Totale 29,00 “DA MARIO” Ricevuta n. 3002 Del 13/2/04 3 coperti 3,00 2 antipasti 6,00 primi 14,00 1 Orate 18,00 Caprese 2,00 Caffè Totale 45,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 Dettaglio Ricevute Num. Data Totale 1357 5/2/04 Q.tà Descr. Importo 1357 3 Coperti 3,00 2 Antipasti 6,00 Primi 12,00 Bistecche 18,00 2334 2,00 1 8,00 Orate 14,00 Caffè 3002 Caprese Dettaglio Ricevute Num. Data Totale 1357 5/2/04 39,00 2334 7/2/04 29,00 3002 13/2/04 45,00

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 Dettaglio Ricevute Num. Data Totale 1357 5/2/04 Riga Q.tà Descr. Importo 1357 1 3 Coperti 3,00 2 Antipasti 6,00 Primi 12,00 4 Bistecche 18,00 2334 2,00 8,00 Orate 14,00 5 Caffè 3002 Caprese 6 Dettaglio Ricevute Num. Data Totale 1357 5/2/04 39,00 2334 7/2/04 29,00 3002 13/2/04 45,00

Esempi di relazione Dettaglio Ricevute Num. Data Totale 1357 5/2/04 Riga Q.tà Descr. Importo 1357 1 3 Coperti 3,00 2 Antipasti 6,00 Primi 12,00 4 Bistecche 18,00 2334 2,00 8,00 Orate 14,00 5 Caffè 3002 Caprese 6 Dettaglio Ricevute Num. Data Totale 1357 5/2/04 39,00 2334 7/2/04 29,00 3002 13/2/04 45,00

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

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 Matricola Cognome Nome DataNascita 276545 Rossi Maria NULL Neri Anna 23/04/1982 Verdi Fabio 12/02/1982 587614 Luca 10/10/1981 937653 Bruni Mario 01/12/1981

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 Matricola Cognome Nome DataNascita 276545 Rossi Maria NULL Neri Anna 23/04/1982 Verdi Fabio 12/02/1982 587614 Luca 10/10/1981 937653 Bruni Mario 01/12/1981

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 Matricola Cognome Nome DataNascita 276545 Rossi Maria NULL Neri Anna 23/04/1982 Verdi Fabio 12/02/1982 587614 Luca 10/10/1981 937653 Bruni Mario 01/12/1981 No: matricola usata per correlare relazione

Informazione incompleta e valori nulli Esami Studente Voto Corso 276545 28 01 NULL 27 200768 25 587614 24 No: informazione inutile Codice Titolo Docente 01 Analisi Giani 03 Chimica NULL Belli Corsi

Informazione incompleta e valori nulli Esami Studente Voto Corso 276545 28 01 NULL 27 200768 25 587614 24 No: informazione inutile Codice Titolo Docente 01 Analisi Giani 03 Chimica NULL Belli Corsi

Informazione incompleta e valori nulli Esami Studente Voto Corso 276545 28 01 NULL 27 200768 25 587614 24 Codice Titolo Docente 01 Analisi Giani 03 Chimica NULL Belli Corsi No: codice usato Per correlare relazione

Informazione incompleta e valori nulli Esami Studente Voto Corso 276545 28 01 NULL 27 200768 25 587614 24 Codice Titolo Docente 01 Analisi Giani 03 Chimica NULL Belli Corsi OK