Introduzione al corso Sistemi Informativi L-B Home Page del corso: http://www-db.deis.unibo.it/courses/sil-b/ Versione elettronica: introduzione.pdf Sistemi Informativi L-B Docente Prof. Paolo Ciaccia Email: paolo.ciaccia@unibo.it Web: http://www-db.deis.unibo.it/~pciaccia Ricevimento: giovedì 9:30-11:00, c/o IEIIT (ex-csite) Introduzione Sistemi Informativi L-B 2 1
La Home Page di SI L-B Contiene: Copia dei lucidi in formato PDF Guida al lab Testi e soluzioni delle esercitazioni svolte in lab Testi e soluzioni di prove d esame Regole d esame Bibliografia Avvisi Introduzione Sistemi Informativi L-B 3 Orario Lunedì ore 10-12 Aula 0.2 Lunedì ore 12-13 Aula 2.6 Il laboratorio avrà inizio verso la quarta-quinta settimana di lezioni In totale: 6 esercitazioni (18 ore) Introduzione Sistemi Informativi L-B 4 2
Obiettivi del corso Cosa: Il corso intende fornire gli strumenti necessari per imparare a progettare ed amministrare Basi di Dati relazionali progetto amministro quindi utilizzo Come: presentando una metodologia di progettazione basata sul modello Entity-Relationship e illustrando i principi costruttivi dei DBMS Perché: per poter agevolmente gestire (disegnare e comprendere) DB complicati, per capire come si possono migliorare le prestazioni, per sapere come funziona un DBMS, Il corso richiede necessariamente familiarità con i contenuti di Sistemi Informativi L-A!! Introduzione Sistemi Informativi L-B 5 Programma del corso Aula Laboratorio Progettare una base di dati Modello E-R Progettazione concettuale Progettazione logica Vincoli Il sistema DB-MAIN disegno di schemi E-R progettazione concettuale progettazione logica Tecnologia dei DBMS Memorizzazione dei dati Indici Elaborazione di query Transazioni Introduzione Sistemi Informativi L-B 6 3
Modalità d esame L esame si svolge in laboratorio Tipicamente: 1. Progettazione concettuale di una base di dati usando DB-MAIN 2. Progettazione logica, vincoli, ecc. 3. Esercizio su aspetti tecnologici Introduzione Sistemi Informativi L-B 7 Progettazione Prima parte del corso Aspetti metodologici Modello concettuale Aderenza di ciò che progettiamo a ciò che vorremmo rappresentare (la realtà ) Introduzione Sistemi Informativi L-B 8 4
Ricordiamo Immatricolazione Verbalizzazione DomandaLaurea PianiStudio DBMS Dati Ognuna delle molteplici applicazioni che usa i dati di un DBMS ha i suoi specifici requisiti, quindi: Per progettare una buona base di dati bisogna innanzitutto capire bene che dati deve contenere e che relazioni esistono tra tali dati Sembra semplice (sembra) Introduzione Sistemi Informativi L-B 9 Un esempio di requisiti Introduzione Sistemi Informativi L-B 10 5
il relativo DB (concettuale) Introduzione Sistemi Informativi L-B 11 e un possibile schema relazionale Prodotti(PCod,udm,descrizione) ProdLocali(PCod,Satellite) ProdTerrestri(PCod,prezzo,periodo) Partite(PartCod,PCodLocale,quantità,data,prezzo,Satellite) Supermercati(nome,n_coloni,Satellite) Satelliti(Nome) QuoteAssegnate(Satellite,PCodTerrestre,quantità) Rivendite(SatelliteProvenienza,PartCod) PrezziRivendite (PartCod,SatelliteProvenienza,SatelliteDestinazione,prezzo,quantità) Scambi(Supermercato,PCodLocale,PCodTerrestre,data,n_locali,n_terrestri) Introduzione Sistemi Informativi L-B 12 6
e un altro schema (simile ma diverso) Prodotti(PCod,udm,descrizione,tipo,Satellite,prezzo,periodo) Partite(PartCod,PCodLocale,quantità,data,prezzo,Satellite) Supermercati(nome,n_coloni,Satellite) Satelliti(Nome) QuoteAssegnate(Satellite,PCodTerrestre,quantità) Rivendite(SatelliteProvenienza,PartCod) PrezziRivendite (PartCod,SatelliteProvenienza,SatelliteDestinazione,prezzo,quantità) Scambi(Supermercato,PCodLocale,PCodTerrestre,data,n_locali,n_terrestri) In un DB reale è normalissimo che vi siano centinaia-migliaia di tabelle! Introduzione Sistemi Informativi L-B 13 e uno schema errato (?!) Scambi(Supermercato,PCodLocale,PCodTerrestre,data,n_locali,n_terrestri) Introduzione Sistemi Informativi L-B 14 7
Perché queste complicazioni.. Per non perdersi Per dotarsi di strumenti efficaci, chiari e sintetici in grado di rappresentare i dati di interesse e le loro relazioni E importante imparare a ragionare a diversi livelli di astrazione, così come si fa quando si deve sviluppare del software Quindi: il modello relazionale sarà il nostro target, ma dobbiamo sforzarci di pensare più in grande Introduzione Sistemi Informativi L-B 15 Dati e vincoli Come visto in Sistemi Informativi L-A, sappiamo che è cosa normale che i dati che si vogliono gestire devono rispettare dei vincoli: di dominio e di tupla assenza di valori nulli chiavi e chiavi primarie chiavi straniere ( foreign keys ) Ma da dove hanno origine questi vincoli? I vincoli si esprimono a livello di schema, sulla base di un analisi della realtà che si vuole modellare La conoscenza dei vincoli è quindi essenziale per: Progettare un buon DB (qualità dei dati ) Analizzare la "bontà" di un DB Introduzione Sistemi Informativi L-B 16 8
Dati e vincoli: ancora? In Sistemi Informativi L-B ci occupiamo di capire come hanno origine i vincoli, ovvero come ciò che rappresentiamo a livello concettuale genera automaticamente dei vincoli sugli schemi relazionali imparare a far rispettare (mediante query SQL, trigger e transazioni) quei vincoli che non si possono esprimere mediante DDL Esempio: In ogni ordine ci deve essere almeno un prodotto ordinato Ordini LineeOrdini IdOrdine Cliente Data Importo IdOrdine IdLinea CodProdotto Qtà A123 Rossi 01/12/2004 1000 A123 1 P0014 10 A234 Verdi 12/12/2004 500 A123 2 P1233 3 Questo DB non va bene!! Introduzione Sistemi Informativi L-B 17 Tecnologia dei DBMS Seconda parte del corso Aspetti sistemistici e algoritmici Cosa c è sotto NB: Nell edizione 2009-10 a questa parte verrà data minore enfasi, in quanto tali argomenti, notevolmente ampliati e approfonditi, verranno trattati nel corso di Tecnologia delle Basi di Dati M Ad esempio Introduzione Sistemi Informativi L-B 18 9
come fa un DBMS a eseguire le interrogazioni SQL? Introduzione Sistemi Informativi L-B 19 I 3 ingredienti di base Il linguaggio SQL è dichiarativo (non-procedurale), e pertanto ogni richiesta può dar luogo a diverse modalità specifiche di esecuzione Un DBMS è in grado di determinare la modalità (piano di accesso) più efficiente, facendo ricorso a 3 strumenti di base: Metodi di accesso, che prendono i dati Operatori, che elaborano i dati Ottimizzatore, che compone gli operatori Introduzione Sistemi Informativi L-B 20 10
Cos è un metodo di accesso? È un modo per accedere ai dati (tabella), supportato da una specifica implementazione fisica Ad es. facendo ricorso a opportuni indici ad albero (B+-tree), si possono risolvere in maniera efficiente richieste del tipo: Prendi le sole righe della tabella Incassi in cui Importo ha un valore compreso tra 20000 e 40000 index_scan(incassi.importo,[20000,40000]) Data Ora Cassa Prodotto Qtà Importo 20-12-1997 17:53 21 Panettone GnamGnam 1Kg 2 26000 20-12-1997 17:53 21 Spumante Bollicin 1 lt. 5 60000 20-12-1997 18:01 21 Dentifricio WhiteTeeth 1 3400 20-12-1997 18:02 15 Spumante Bollicin 1 lt. 2 24000 21-12-1997 9:06 3 Caffè BlackMoka 250 gr. 1 4100 Introduzione Sistemi Informativi L-B 21 Cos è un operatore? È un operatore ;-), ossia: Prende in input dei dati (una o più tabelle!) e produce un output (una tabella!) Ad es. l operatore di Sort prende in input una tabella, la ordina secondo il valore di uno o più campi e produce in output la tabella ordinata sort(incassi,[importo]) Data Ora Cassa Prodotto Qtà Importo 20-12-1997 18:01 21 Dentifricio WhiteTeeth 1 3400 21-12-1997 9:06 3 Caffè BlackMoka 250 gr. 1 4100 20-12-1997 18:02 15 Spumante Bollicin 1 lt. 2 24000 20-12-1997 17:53 21 Panettone GnamGnam 1Kg 2 26000 20-12-1997 17:53 21 Spumante Bollicin 1 lt. 5 60000 Gli operatori sono molteplici e variano da un DBMS all altro; tutti i DBMS però supportano quelli definiti dall algebra relazionale Introduzione Sistemi Informativi L-B 22 11
Cos è l ottimizzatore? È un modulo del DBMS che ha il compito di determinare il migliore piano di accesso per una richiesta, componendo in modo opportuno gli operatori e i metodi di accesso a disposizione Migliore in che senso? Nel senso che il DBMS reputa tale piano di accesso il più economico in termini di risorse consumate In generale (i dettagli dipendono dal DBMS specifico), la scelta si avvale di: Meccanismi di enumerazione dei piani di accesso Informazioni statistiche sui dati che permettono di stimare, mediante opportuni modelli, i costi di esecuzione delle varie operazioni Introduzione Sistemi Informativi L-B 23 Esempi di piani di accesso Vendite della cassa 5 del 20/12/1997 ordinate per prodotto SELECT * FROM Incassi WHERE Data = 20/12/1997 AND Cassa = 5 ORDER BY Prodotto Sort[Prodotto] Sort[Prodotto] Filter[Data,=,20/12/97] Filter[Data,=,20/12/97] Filter[Cassa,=,5] Filter[Cassa,=,5] ix_scan[cassa,5] ix_scan[data,20/12/97] ix_scan[prodotto,_] Data Ora Cassa Prodotto Qtà Importo 20-12-1997 17:53 5 Panettone GnamGnam 1Kg 2 26000 20-12-1997 17:53 21 Spumante Bollicin 1 lt. 5 60000 20-12-1997 18:01 5 Dentifricio WhiteTeeth 1 3400 21-12-1997 18:02 5 Spumante Bollicin 1 lt. 2 24000 21-12-1997 9:06 3 Caffè BlackMoka 250 gr. 1 4100 Introduzione Sistemi Informativi L-B 24 12
Un piano di accesso vero Introduzione Sistemi Informativi L-B 25 13