Basi di dati Corso di Laurea in Ingegneria Informatica Canale di Ingegneria delle Reti e dei Sistemi Informatici - Polo di Rieti Anno Accademico 2008/2009 Introduzione alle basi di dati Docente Pierangelo Di Sanzo Dipartimento di Informatica e Sistemistica “Antonio Ruberti” “Sapienza Università di Roma“ First Year Ph.D. Report Cos’è una base di dati (database) Base di dati: definizione Collezione di dati che rappresenta informazioni (di interesse per un’organizzazione, un’azienda, un ufficio, una persona, …) interpretazione rappresentazione informazione dati informazione Quando si interagisce con una base di dati In molti contesti… es: biblioteca; videoteca; prenotazione esami; prenotazione on-line di biglietti, viaggi e soggiorni; acquisti on-line; sportelli bancomat,… 2 First Year Ph.D. Report Sistemi informativi, sistemi informatici e basi di dati Il sistema informativo di un’organizzazione è costituito dall’insieme delle informazioni di interesse unitamente alle procedure utilizzate ed alle risorse (umane, tecnologiche, …) per la relativa gestione. Il sistema informativo ha come funzioni: - la raccolta, - la conservazione, - l’elaborazione, - lo scambio Sistema azienda delle informazioni. Sistema informativo 3 First Year Ph.D. Report Sistemi informativi, sistemi informatici e basi di dati Sistema informativo: esempi Ente comunale: gestione anagrafe, dipendenti, stipendi, …; Università: gestione iscritti, docenti, corsi, esami e prenotazioni, …; Esercizio commerciale: gestione fatturazione, fornitori, ordini, magazzino, …; Esercizio commerciale “on-line”: come il precedente + gestione registrazione utenti, gestione cataloghi on-line, … 4 First Year Ph.D. Report Sistemi informativi, sistemi informatici e basi di dati Parte del sistema informativo può essere automatizzato. Il sistema informatico è la porzione del sistema informativo automatizzato per mezzo di tecnologie informatiche. Sistema azienda Sistema informativo Sistema informatico 5 First Year Ph.D. Report Sistemi informativi, sistemi informatici e basi di dati In un sistema informatico i dati possono essere archiviati attraverso una base di dati. Sistema informatico Sistema informatico archivio archivio base di dati archivio 6 First Year Ph.D. Report Sistemi informativi, sistemi informatici e basi di dati Una soluzione per la gestione dei dati in un sistema informatico è costituita dall’utilizzo di una base di dati e da un relativo sistema di gestione, ossia un DBMS (Database Management System). Sistema informatico DBMS dati 7 First Year Ph.D. Report DBMS (Database Management System) Un DBMS è un sistema software preposto alla gestione delle basi di dati. In tal caso gli utenti hanno accesso ad una base di dati esclusivamente attraverso il DBMS che fornisce specifiche interfacce per la creazione e la gestione delle basi di dati. I DBMS in particolare sono ottimizzati per la gestione di basi di dati: grandi, condivise, persistenti, e fornisce diversi vantaggi, tra cui: indipendenza dei dati, efficienza nell’accesso ai dati, integrità e sicurezza dei dati, affidabilità, gestione delle transazioni, gestione della concorrenza, amministrazione centralizzata, interfaccia di accesso ai dati, … Sistema di basi di dati (Database System) Un sistema di basi di dati è l’insieme del dbms, della base di dati e delle eventuali applicazione correlate. 8 First Year Ph.D. Report Architettura di un DBMS external interface (DDL, DML, other languages) DBMS parser optimizer executor transaction manager file access manager buffer manager concurrency control logging and recovery manager storage manager data 9 First Year Ph.D. Report Modelli di dati Un modello di dati è una collezione di costrutti per organizzare i dati e descriverne le relazioni. Un DBMS consente di gestire i dati attraverso un’organizzazione basata su un modello. Gli utenti dispongono di una vista logica dei dati (modello logico), che ne nasconde i dettagli relativi alla memorizzazione a livello più basso. Esempi di modelli logici adottati dai DBMS: modello gerarchico, modello reticolare, modello relazionale. 10 First Year Ph.D. Report Schemi ed istanze Uno schema descrive la struttura relativa all’organizzazione dei dati. Un esempio di schema nel modello di dati relazionale è il seguente: Studente (matricola:int, nome:string, indirizzo:string, città:string) EsamiSostenuti (esame:string, matricola:int, voto:int) Un’istanza di uno schema è costituita da un insieme di dati organizzati secondo la struttura definita dallo schema. Un esempio relativo allo schema precedente è il seguente: 2424 7878 Rossi Verdi Basi di dati Sistemi operativi Calcolatori elettronici Corso Italia Via Roma 2424 7878 7878 Rieti Firenze 25 23 30 11 First Year Ph.D. Report Livelli di astrazione di un DBMS utente utente schema esterno 1 utente utente schema esterno 2 utente utente schema esterno 3 schema logico schema fisico data 12 First Year Ph.D. Report Livelli di astrazione di un DBMS • uno schema fisico descrive le strutture relative all’organizzazione dei dati per la memorizzazione a livello fisico. • uno schema logico descrive come sono logicamente organizzati i dati attraverso i costrutti del modello logico adottato dal DBMS, indipendentemente dallo schema fisico. • uno schema esterno (o di vista logica) descrive come l’utente “vede” l’organizzazione logica dei dati. Domanda: quali possono essere i vantaggi (e gli svantaggi) di una tale organizzazione a tre livelli? 13 First Year Ph.D. Report Linguaggi per la gestione delle basi di dati Un DBMS deve fornire dei meccanismi per la gestione degli schemi e delle istanze. Tali meccanismi sono forniti attraverso due tipi di linguaggi: •DDL (data definition language), è il linguaggio per la gestione degli schemi (creazione, modifica, …); •DML (data manipulation language), è il linguaggio per la gestione delle istanze (interrogazioni, aggiornamenti, …). . 14 First Year Ph.D. Report Attori I DBMS sono sistemi particolarmente complessi. La crescente complessità ha portato nel tempo alla nascita di figure che si sono specializzate nei diversi tasks relativi alle attività connesse alla gestione delle basi di dati. In particolare due figure specializzate sono: - i progettisti, che si occupano della progettazione della base di dati (ad es.: progettazione dello schema logico, definizione dei vincoli sui dati); - gli amministratori, che si occupano della manutenzione della base di dati in esercizio (ad es.: gestione degli utenti, sicurezza nell’acceso ai dati, backup, monitoraggio delle prestazioni ed ottimizzazione); In genere gli utenti finali di un sistema di basi di dati non si interfacciano con il DBMS attraverso il linguaggio offerto per la manipolazione dei dati (DML), piuttosto tramite interfacce offerte da altre applicazioni che interagiscono con il DBMS. Un’altra figura specializzata è il programmatore di applicazioni per basi di dati. 15 First Year Ph.D. Report Alcuni DBMS Commerciali •Oracle Database •IBM DB2 •Microsoft SQL Server Open Source •MySQL •PostgreSQL Diffusione dei DBMS Fonte: “ICT Watch”, http://ictwatch.blogosfere.it/ 16