La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Corso di Informatica Corso di Laurea in Conservazione e Restauro dei Beni Culturali Gianluca Torta Dipartimento di Informatica Tel: 011 670 6782 Mail:

Presentazioni simili


Presentazione sul tema: "Corso di Informatica Corso di Laurea in Conservazione e Restauro dei Beni Culturali Gianluca Torta Dipartimento di Informatica Tel: 011 670 6782 Mail:"— Transcript della presentazione:

1 Corso di Informatica Corso di Laurea in Conservazione e Restauro dei Beni Culturali Gianluca Torta Dipartimento di Informatica Tel: Mail:

2 lo scopo di una Base di Dati (BD) è quello di memorizzare informazioni in modo strutturato e di permetterne la modifica e il reperimento da parte di utenti e applicazioni lo scopo di una Base di Dati (BD) è quello di memorizzare informazioni in modo strutturato e di permetterne la modifica e il reperimento da parte di utenti e applicazioni Basi di Dati usiamo quotidianamente le BD quando: usiamo quotidianamente le BD quando: –accediamo al Sistema Informativo della azienda o istituzione in cui lavoriamo –accediamo al nostro conto corrente via Internet –prenotiamo un volo o albergo via Internet

3 al fine di assolvere efficacemente al compito di memorizzazione, la BD: al fine di assolvere efficacemente al compito di memorizzazione, la BD: Memorizzazione dei Dati –può memorizzare grandi quantità di dati (scalabilità) –utilizza la memoria secondaria (persistenza) –può duplicare/archiviare (alcuni) dati su più dispositivi di memoria secondaria (affidabilità) –permette un accesso controllato (sicurezza) –permette di specificare vincoli di integrità che aiutino a mantenere consistenti le informazioni

4 al fine di assolvere efficacemente al compito di manipolazione, la Base Dati: al fine di assolvere efficacemente al compito di manipolazione, la Base Dati: Manipolazione dei Dati –permette laccesso agli stessi dati da parte di molti utenti, anche contemporaneamente (concorrenza) –permette di reperire/modificare le informazioni desiderate per mezzo di potenti linguaggi di interrogazione

5 un Data Base Management System (DBMS) è una applicazione che permette di creare e gestire delle Basi di Dati un Data Base Management System (DBMS) è una applicazione che permette di creare e gestire delle Basi di Dati DBMS leffettivo utilizzo delle BD avviene invece per mezzo di applicativi che sfruttano il DBMS per accedere alle BD stesse leffettivo utilizzo delle BD avviene invece per mezzo di applicativi che sfruttano il DBMS per accedere alle BD stesse

6 DBMS Applicazione DBMS DB Utente DB

7 il DBMS realizza una separazione tra Base Dati e le applicazioni che la utilizzano il DBMS realizza una separazione tra Base Dati e le applicazioni che la utilizzano DBMS la struttura della BD, invece, tende a essere molto stabile (es. tipi di informazioni con cui descriviamo una prenotazione) la struttura della BD, invece, tende a essere molto stabile (es. tipi di informazioni con cui descriviamo una prenotazione) il contenuto della BD varia normalmente molto spesso (es. prenotazioni di voli) il contenuto della BD varia normalmente molto spesso (es. prenotazioni di voli) le applicazioni che utilizzano la BD variano normalmente meno frequentemente del suo contenuto e più della sua struttura le applicazioni che utilizzano la BD variano normalmente meno frequentemente del suo contenuto e più della sua struttura

8 la separazione tra applicazioni e DB realizzata del DBMS è detta indipendenza fisica la separazione tra applicazioni e DB realizzata del DBMS è detta indipendenza fisica Indipendenza Fisica se vale lindipendenza fisica è possibile apportare modifiche al modo in cui i dati sono memorizzati senza modificare le applicazioni se vale lindipendenza fisica è possibile apportare modifiche al modo in cui i dati sono memorizzati senza modificare le applicazioni ad es. i dati vengono spostati su un altro disco, o partizionati su più dischi o indicizzati per velocizzare il reperimento ad es. i dati vengono spostati su un altro disco, o partizionati su più dischi o indicizzati per velocizzare il reperimento

9 prima dellavvento dei DBMS le applicazioni accedevano direttamente ai dati prima dellavvento dei DBMS le applicazioni accedevano direttamente ai dati Indipendenza Fisica al cambiare della memorizzazione (fisica) dei dati lapplicazione doveva essere modificata al cambiare della memorizzazione (fisica) dei dati lapplicazione doveva essere modificata con lindipendenza fisica, lapplicazione deve essere modificata solo quando varia la struttura (logica) dei dati con lindipendenza fisica, lapplicazione deve essere modificata solo quando varia la struttura (logica) dei dati

10 la quasi totalità dei moderni DBMS permette la gestione di BD basate sul Modello Relazionale (MR) la quasi totalità dei moderni DBMS permette la gestione di BD basate sul Modello Relazionale (MR) Modello Relazionale la proposta del MR risale al 1970 ed è opera del matematico E.F. Codd la proposta del MR risale al 1970 ed è opera del matematico E.F. Codd dato lelevato livello di astrazione del MR, le prime realizzazioni commerciali risalgono alla fine degli anni 70 dato lelevato livello di astrazione del MR, le prime realizzazioni commerciali risalgono alla fine degli anni 70

11 il concetto base del MR è la relazione (o tabella, secondo luso comune) il concetto base del MR è la relazione (o tabella, secondo luso comune) Tabelle ogni entità è rappresentata dai valori di un insieme di attributi ogni entità è rappresentata dai valori di un insieme di attributi una tabella rappresenta in modo omogeneo un insieme di entità del mondo reale (es. studenti di un Corso, acquisti su una Carta di Credito) una tabella rappresenta in modo omogeneo un insieme di entità del mondo reale (es. studenti di un Corso, acquisti su una Carta di Credito) nel MR un DB è semplicemente un insieme di tabelle nel MR un DB è semplicemente un insieme di tabelle

12 Tabelle per esempio un insieme di studenti (entità reali) può essere rappresentato da una tabella con gli opportuni attributi per esempio un insieme di studenti (entità reali) può essere rappresentato da una tabella con gli opportuni attributi record attributo campo Studenti

13 vi sono molte differenze tra le tabelle del MR e le tabelle di un Foglio Elettronico vi sono molte differenze tra le tabelle del MR e le tabelle di un Foglio Elettronico Tabelle una differenza fondamentale è che la tabella del MR memorizza dei meta-dati una differenza fondamentale è che la tabella del MR memorizza dei meta-dati alcuni di tali meta-dati sono: alcuni di tali meta-dati sono: –nome della tabella –nome e tipo di ciascun attributo

14 Omogeneità uno dei vincoli fondamentali è lomogeneità dei record di una tabella uno dei vincoli fondamentali è lomogeneità dei record di una tabella grazie ai meta-dati il MR può imporre vincoli grazie ai meta-dati il MR può imporre vincoli ogni record è composto dai valori di uno stesso insieme di attributi (stesso numero, stessi nomi, stessi tipi) ogni record è composto dai valori di uno stesso insieme di attributi (stesso numero, stessi nomi, stessi tipi) questo ci permette di trattare in modo omogeneo i record di una tabella questo ci permette di trattare in modo omogeneo i record di una tabella

15 Chiave Primaria un altro vincolo fondamentale è lunicità dei record di una tabella: dati due record essi devono differire almeno per il valore di un attributo un altro vincolo fondamentale è lunicità dei record di una tabella: dati due record essi devono differire almeno per il valore di un attributo la chiave primaria di una tabella è un insieme minimale di attributi i cui valori (combinati) per ciascun record devono essere univoci la chiave primaria di una tabella è un insieme minimale di attributi i cui valori (combinati) per ciascun record devono essere univoci

16 Chiave Primaria nella tabella Studenti linsieme di attributi {Matricola} può essere la chiave primaria nella tabella Studenti linsieme di attributi {Matricola} può essere la chiave primaria Studenti

17 Chiave Primaria invece linsieme di attributi {Cognome, Nome} non è una buona chiave primaria invece linsieme di attributi {Cognome, Nome} non è una buona chiave primaria se si iscrive un altro Mario Rossi dobbiamo modificare la struttura del DB se si iscrive un altro Mario Rossi dobbiamo modificare la struttura del DB Studenti

18 Ridondanza uno degli scopi principali delladozione dei DB è leliminazione (riduzione) della ridondanza dei dati uno degli scopi principali delladozione dei DB è leliminazione (riduzione) della ridondanza dei dati la presenza di ridondanza di dati in un sistema informativo: la presenza di ridondanza di dati in un sistema informativo: –incrementa i dati da inserire e modificare –incrementa le possibilità di inconsistenza (falsità) –incrementa la quantità di memoria secondaria utilizzata

19 Ridondanza App 1 DB 1 Sig. Rossi, Via Roma ridondanza indesiderabile ridondanza indesiderabile App 2 DB 1 Sig. Rossi, Via Roma

20 Ridondanza App 1 DB 1 Sig. Rossi, Via Cigna App 2 DB 1 Sig. Rossi, Via Roma ridondanza indesiderabile ridondanza indesiderabile

21 Ridondanza App 1 DB Sig. Rossi, Via Roma App 2 DB* REPLICA Sig. Rossi, Via Roma DBMS ridondanza utile per affidabilità ridondanza utile per affidabilità

22 Ridondanza App 1 DB Sig. Rossi, Via Cigna App 2 DB* Sig. Rossi, Via Roma DBMS ridondanza utile per affidabilità ridondanza utile per affidabilità

23 Ridondanza App 1 DB Sig. Rossi, Via Cigna App 2 DB* REPLICA Sig. Rossi, Via Cigna DBMS ridondanza utile per affidabilità ridondanza utile per affidabilità

24 Ridondanza la condivisione di un DB da parte di molte applicazioni riduce drasticamente i problemi legati alla ridondanza la condivisione di un DB da parte di molte applicazioni riduce drasticamente i problemi legati alla ridondanza è desiderabile però eliminare (ridurre) la ridondanza anche allinterno di un singolo DB è desiderabile però eliminare (ridurre) la ridondanza anche allinterno di un singolo DB

25 Ridondanza una tabella con dati ridondanti una tabella con dati ridondanti Esami

26 Ridondanza possiamo distribuire i dati su due tabelle possiamo distribuire i dati su due tabelle Esami Studenti

27 Chiavi Esterne il legame tra le tabelle Studenti ed Esami si esprime con un vincolo di integrità referenziale il legame tra le tabelle Studenti ed Esami si esprime con un vincolo di integrità referenziale lattributo Matricola della tabella Esami è detto chiave esterna di Esami su Studenti lattributo Matricola della tabella Esami è detto chiave esterna di Esami su Studenti lintegrità referenziale richiede che ogni valore della chiave esterna Matricola di Esami corrisponda a un valore della chiave (primaria) Matricola di Studenti lintegrità referenziale richiede che ogni valore della chiave esterna Matricola di Esami corrisponda a un valore della chiave (primaria) Matricola di Studenti

28 Chiavi Esterne il nome di un attributo chiave esterna può essere diverso dal nome dellattributo chiave (primaria) cui si riferisce il nome di un attributo chiave esterna può essere diverso dal nome dellattributo chiave (primaria) cui si riferisce ID… IDIDResp… ImpiegatiProgetti

29 Chiavi Esterne una chiave esterna può essere composta da più attributi una chiave esterna può essere composta da più attributi CittaNome… StazioniOrarioFermate…CittaStazNomeStaz…

30 Chiavi Esterne una tabella può definire più chiavi esterne una tabella può definire più chiavi esterne CittaNome… Stazioni Tratte…CittaStazDaNomeStazDaCittaStazANomeStazA…

31 Tipi di Associazioni grazie alle chiavi esterne possiamo creare dei legami (associazioni) tra tabelle grazie alle chiavi esterne possiamo creare dei legami (associazioni) tra tabelle unassociazione tra le tabelle T1 e T2 è caratterizzata dalla cardinalità con cui T1 e T2 partecipano allassociazione unassociazione tra le tabelle T1 e T2 è caratterizzata dalla cardinalità con cui T1 e T2 partecipano allassociazione distinguiamo tra: distinguiamo tra: –associazioni uno-a-uno –associazioni uno-a-molti –associazioni molti-a-molti

32 Tipi di Associazioni in unassociazione uno-a-uno, ogni record di T1 è associato (al più) a un record di T2 (e viceversa) in unassociazione uno-a-uno, ogni record di T1 è associato (al più) a un record di T2 (e viceversa) ID… IDIDOrdine… OrdiniFatture uno-a-uno

33 Tipi di Associazioni in unassociazione uno-a-molti, ogni record di T1 è associato a zero, uno o più record di T2 in unassociazione uno-a-molti, ogni record di T1 è associato a zero, uno o più record di T2 Nome… IDViveA… CittàPersona uno-a-molti

34 Tipi di Associazioni in unassociazione molti-a-molti, ogni record di T1 è associato a zero, uno o più record di T2 (e viceversa) in unassociazione molti-a-molti, ogni record di T1 è associato a zero, uno o più record di T2 (e viceversa) ID… ID… TuristaViaggio molti-a-molti

35 Tipi di Associazioni in unassociazione molti-a-molti, ogni record di T1 è associato a zero, uno o più record di T2 (e viceversa) in unassociazione molti-a-molti, ogni record di T1 è associato a zero, uno o più record di T2 (e viceversa) ID… ID TuristaViaggioIDTurIDViag Partecipazione

36 Interrogazioni la strutturazione di una BD in tabelle, a loro volta strutturate in record con attributi omogenei, permette interrogazioni molto sofisticate la strutturazione di una BD in tabelle, a loro volta strutturate in record con attributi omogenei, permette interrogazioni molto sofisticate il linguaggio formale più utilizzato per interrogare le BD relazionali è SQL (Structured Query Language) ma esistono altri linguaggi, spesso meno potenti ma più semplici da utilizzare il linguaggio formale più utilizzato per interrogare le BD relazionali è SQL (Structured Query Language) ma esistono altri linguaggi, spesso meno potenti ma più semplici da utilizzare

37 Interrogazioni in una BD relazionale, il risultato di una interrogazione è una tabella temporanea (persiste fintanto che il risultato viene analizzato) in una BD relazionale, il risultato di una interrogazione è una tabella temporanea (persiste fintanto che il risultato viene analizzato) in una interrogazione specifichiamo: in una interrogazione specifichiamo: –gli attributi da includere nella tabella risultato –i criteri di selezione che devono essere soddisfatti dai record della tabella risultato

38 Interrogazioni consideriamo le tabelle Studenti ed Esami viste prima consideriamo le tabelle Studenti ed Esami viste prima Esami Studenti

39 Interrogazioni vogliamo spedire delle congratulazioni agli studenti che hanno superato lesame L0507 vogliamo spedire delle congratulazioni agli studenti che hanno superato lesame L0507 Esami Studenti

40 Interrogazioni vogliamo spedire delle congratulazioni agli studenti che hanno superato almeno un esame con voto 27 vogliamo spedire delle congratulazioni agli studenti che hanno superato almeno un esame con voto 27 Esami Studenti

41 Interrogazioni vogliamo spedire delle congratulazioni agli studenti che hanno superato lesame L0507 con voto 27 vogliamo spedire delle congratulazioni agli studenti che hanno superato lesame L0507 con voto 27 Esami Studenti

42 Interrogazioni vogliamo spedire delle congratulazioni agli studenti che hanno superato lesame L0014 o L0507 con voto 27 vogliamo spedire delle congratulazioni agli studenti che hanno superato lesame L0014 o L0507 con voto 27 Esami Studenti

43 SQL SELECT * FROM Studenti S, Esami E WHERE S.Matricola = E.Matricola AND CodiceCorso = L0507 CodiceCorso = L0507 vogliamo spedire delle congratulazioni agli studenti che hanno superato lesame L0507 vogliamo spedire delle congratulazioni agli studenti che hanno superato lesame L0507

44 SQL SELECT * FROM Studenti S, Esami E WHERE S.Matricola = E.Matricola AND CodiceCorso = L0507 AND CodiceCorso = L0507 AND Voto >= 27 Voto >= 27 vogliamo spedire delle congratulazioni agli studenti che hanno superato lesame L0507 con voto 27 vogliamo spedire delle congratulazioni agli studenti che hanno superato lesame L0507 con voto 27

45 SQL SELECT * FROM Studenti S, Esami E WHERE S.Matricola = E.Matricola AND (CodiceCorso = L0507 OR (CodiceCorso = L0507 OR CodiceCorso = L0014) AND CodiceCorso = L0014) AND Voto >= 27 Voto >= 27 vogliamo spedire delle congratulazioni agli studenti che hanno superato lesame L0014 o L0507 con voto 27 vogliamo spedire delle congratulazioni agli studenti che hanno superato lesame L0014 o L0507 con voto 27

46 Query by Example il metodo di interrogazione QBE permette di costruire le interrogazioni in modo simile a come le abbiamo discusse informalmente il metodo di interrogazione QBE permette di costruire le interrogazioni in modo simile a come le abbiamo discusse informalmente vedremo luso delle QBE in Access vedremo luso delle QBE in Access

47 Esempio Il DB di una azienda contiene le seguenti tabelle: Il DB di una azienda contiene le seguenti tabelle: –Impiegati Cognome, Nome, ID, Indirizzo, Città, Provincia, CAP, Telefono, Data_ass –Stipendi ID, Paga, Deduzioni, Sanità, Vita –Risorse_Umane ID, Dipa, Data_ass, Commenti, Supervisor, Progetti –Calcetto ID, Piede, Presenze, Goal, Posizione

48 Esempio – Chiavi Primarie Esplicitiamo le chiavi primarie: Esplicitiamo le chiavi primarie: –Impiegati Cognome, Nome, ID, Indirizzo, Città, Provincia, CAP, Telefono, Data_ass –Stipendi ID, Paga, Deduzioni, Sanità, Vita –Risorse_Umane ID, Dipa, Data_ass, Commenti, Supervisor, Progetti –Calcetto ID, Piede, Presenze, Goal, Posizione

49 Esempio - Associazioni Consideriamo ora le associazioni Consideriamo ora le associazioni ID… ID… ImpiegatiStipendi Impiegati Cognome, Nome, ID, Indirizzo, Città, Provincia, CAP, Telefono, Data_ass Stipendi ID, Paga, Deduzioni, Sanità, Vita uno-a-uno

50 Esempio - Associazioni Consideriamo ora le associazioni Consideriamo ora le associazioni ID… ID… ImpiegatiRisorse_Umane Impiegati Cognome, Nome, ID, Indirizzo, Città, Provincia, CAP, Telefono, Data_ass Risorse_Umane ID, Dipa, Data_ass, Commenti, Supervisor, Progetti uno-a-uno

51 Esempio - Associazioni Consideriamo ora le associazioni Consideriamo ora le associazioni ID… ID… ImpiegatiCalcetto Impiegati Cognome, Nome, ID, Indirizzo, Città, Provincia, CAP, Telefono, Data_ass Calcetto ID, Piede, Presenze, Goal, Posizione uno-a-uno

52 Esempio - Associazioni Abbiamo individuato le associazioni: Abbiamo individuato le associazioni: ID… ImpiegatiID… StipendiID… Risorse_UmaneID… Calcetto uno-a-uno

53 Esempio - Associazioni Ci sono altre associazioni? Ci sono altre associazioni? –Impiegati Cognome, Nome, ID, Indirizzo, Città, Provincia, CAP, Telefono, Data_ass –Stipendi ID, Paga, Deduzioni, Sanità, Vita –Risorse_Umane ID, Dipa, Data_ass, Commenti, Supervisor, Progetti –Calcetto ID, Piede, Presenze, Goal, Posizione

54 Esempio - Associazioni Cè unaltra associazione tra Impiegati e Risorse_Umane Cè unaltra associazione tra Impiegati e Risorse_Umane ID… ID…Supervisor… ImpiegatiRisorse_Umane Impiegati Cognome, Nome, ID, Indirizzo, Città, Provincia, CAP, Telefono, Data_ass Risorse_Umane ID, Dipa, Data_ass, Commenti, Supervisor, Progetti uno-a-molti

55 Esempio - Associazioni Abbiamo individuato le associazioni: Abbiamo individuato le associazioni: ID… ImpiegatiID… StipendiID… Risorse_UmaneID… Calcetto uno-a-uno uno-a-molti

56 Esempio - Ridondanza La data di assunzione Data_ass è ridondante La data di assunzione Data_ass è ridondante Per rimuovere la ridondanza possiamo rimuovere lattributo Data_ass dalla tabella Impiegati oppure dalla tabella Risorse_Umane Per rimuovere la ridondanza possiamo rimuovere lattributo Data_ass dalla tabella Impiegati oppure dalla tabella Risorse_Umane In questo caso sembra preferibile rimuovere Data_ass da Risorse_Umane perché altrimenti, il DB potrebbe non specificare la data di assunzione per qualche impiegato In questo caso sembra preferibile rimuovere Data_ass da Risorse_Umane perché altrimenti, il DB potrebbe non specificare la data di assunzione per qualche impiegato

57 Esempio - View Consideriamo il DB da diversi punti di vista (view) Consideriamo il DB da diversi punti di vista (view) Lallenatore di calcetto non dovrà (necessariamente) avere accesso a tutte le tabelle Impiegati, Stipendi, Risorse_Umane e Calcetto Lallenatore di calcetto non dovrà (necessariamente) avere accesso a tutte le tabelle Impiegati, Stipendi, Risorse_Umane e Calcetto Gli sarà sufficiente avere accesso alla tabella Calcetto e a (parte) dei dati nella tabella Impiegati relativi a impiegati che giocano a calcetto Gli sarà sufficiente avere accesso alla tabella Calcetto e a (parte) dei dati nella tabella Impiegati relativi a impiegati che giocano a calcetto

58 Esempio - View La view dellallenatore di calcetto potrebbe essere il risultato di una query. La view dellallenatore di calcetto potrebbe essere il risultato di una query. ID… ImpiegatiID… Calcetto … attributi di Calcetto attributi di Impiegati tranne Data_ass ID ViewAllenatore


Scaricare ppt "Corso di Informatica Corso di Laurea in Conservazione e Restauro dei Beni Culturali Gianluca Torta Dipartimento di Informatica Tel: 011 670 6782 Mail:"

Presentazioni simili


Annunci Google