2. 27/11/2007 11.30 Autore: Antonino Bartolone - 2007 2 I database sono ormai una componente fondamentale della vita di tutti i giorni: molte delle nostre più banali attività ci portano ad interagire con qualche tipo di database. Qualche esempio: Ricerca di un libro nel catalogo elettronico di una biblioteca Richiesta di un certificato Spesa al supermercato Operazioni bancarie Pagamento autostradale con Telepass / Viacard Acquisto tramite siti Internet Prenotazioni on line di alberghi, biglietti aerei
3. Definizioni e concetti di base 27/11/2007 11.28 Autore: Antonino Bartolone - 2007 3 Definizioni
4. 27/11/2007 11.28 Autore: Antonino Bartolone - 2007 4 DATABASE (abbreviato in DB) – Altri termini: “Base di dati” (utilizzato soprattutto in ambiti accademici) “Banca dati” (utilizzato in genere in ambito giuridico per le collezioni di dati riguardanti leggi, norme, sentenze, ecc..) “Archivio elettronico” Cos’è un Database: un insieme di dati correlati tra di loro e organizzati in modo ben preciso Per “dati” si intendono dei fatti noti, con un significato implicito, che possono essere memorizzati Es: nome, cognome, indirizzo e telefono di un abbonato telefonico
5. 27/11/2007 11.28 Autore: Antonino Bartolone - 2007 5 Un database può avere qualsiasi dimensione e complessità Esempi Una rubrica telefonica personale può avere poche centinaia di voci Il database dei contribuenti americani e delle relative dichiarazioni dei redditi ha delle dimensioni notevoli: - 100 milioni di contribuenti - mediamente 5 moduli per ciascuna dichiarazione, - 200 byte per ogni modulo: 100 milioni x 5 x 200 = 100.000.000.000 = 100 Gigabyte Tenendo traccia delle ultime quattro dichiarazioni, risulterebbe una base di dati di 4 x 100 Gbytes=400 Gigabyte Questo enorme ammontare di informazioni deve essere organizzato e gestito in modo adeguato per fare in modo che gli utenti possano interrogare, recuperare ed aggiornare i dati
6. 27/11/2007 11.28 Autore: Antonino Bartolone - 2007 6 Un database può essere gestito manualmente (es. lo schedario di una biblioteca) o attraverso un sistema informatico Un database informatizzato può essere creato e gestito o da programmi realizzati “ad hoc” o da un tipo di software indicato con il termine DBMS (DataBase Management System)
8. 27/11/2007 11.28 Autore: Antonino Bartolone - 2007 8 Un DataBase Management System (DBMS) è un sistema di gestione di database, un insieme di programmi che consentono di creare e manutenere una base di dati. E’ un software "general-purpose" che facilita la creazione, costruzione e gestione di database per differenti applicazioni. Fornisce un modo per memorizzare informazioni in strutture datiefficienti, scalabili e flessibili.
12. aggiornare i dati con modifiche e/o cancellazioni- generare reports dei dati
13. 27/11/2007 11.28 Autore: Antonino Bartolone - 2007 10 Un DBMS NON E’ un DataBase Un DBMS è un applicativo per gestire database - Esempio: Microsoft Access Un database è un insieme di dati - Esempio: file con estensione .MDB Stessa differenza esistente tra Word (applicativo) e file .DOC (dati)
14. Caratteristiche di un database 27/11/2007 11.28 Autore: Antonino Bartolone - 2007 11 Caratteristiche
15. 27/11/2007 11.28 Autore: Antonino Bartolone - 2007 12 Grandezza: che possono avere dimensioni di migliaia di miliardi di byte, generalmente in base alla memoria disponibile Condivisione: cioè che applicazioni e utenti diversi possono poter accedere, secondo opportune modalità, ai dati comuni Persistenza: cioè hanno un tempo di vita che non è limitato a quello delle singole esecuzioni dei programmi che lo utilizzano
16. 27/11/2007 11.28 Autore: Antonino Bartolone - 2007 13 Affidabilità: cioè garantiscono la capacità del sistema di conservare sostanzialmente intatto il contenuto del DB in caso di malfunzionamento di HW o SW, (fornendo funzionalità automatiche di backup e recovery) Privatezza: riguardo i dati, cioè che ciascun utente identificato con un codice di accesso, viene abilitato a svolgere solo le sue operazioni Efficacia/efficienza: che raggiungono il risultato richiesto dal cliente nella maniera migliore possibile
17. Le figure professionali che in qualche modo sono coinvolte nei DB sono varie 27/11/2007 11.28 Autore: Antonino Bartolone - 2007 14 Figure coinvolte
18. 27/11/2007 11.28 Autore: Antonino Bartolone - 2007 15 Database Designer (progettista di database) E’ colui che progetta il database in base alle richieste che gli vengono fatte e in base alle esigenze dei futuri utenti del DB. E’ responsabile quindi dell'individuazione dei dati da memorizzare nel DB ed è responsabile della scelta delle strutture opportune. DataBaseAdministrator (DBA) Il DBA è il responsabile dell’autorizzazione all'accesso al database; coordina e monitorizza il suo uso. In grosse organizzazioni è assistito da uno staff. Spesso ha anche compiti di progettazione dei DB.
19. 27/11/2007 11.28 Autore: Antonino Bartolone - 2007 16 Utenti finali utenti finali casuali: accedono occasionalmente al DB e lo interrogano attraverso queryLanguages sofisticati utenti finali parametrici: rappresentano una parte considerevole di utenza. Usano aggiornamenti e queries standard utenti finali sofisticati: ingegneri, scienziati e analisti di affari che hanno familiarità con le facilities del DBMS per richieste complesse utenti stand-alone: gestiscono databases personali usando pacchetti applicativi costruiti ad-hoc Analisti e Programmatori di applicazioni gli analisti di sistema determinano i requisiti degli utenti finali e sviluppano specificazioni per le transazioni; i programmatori di applicazioni implementano le specifiche all’interno dei programmi sviluppati
20. 27/11/2007 11.28 Autore: Antonino Bartolone - 2007 17 Progettisti e Implementatori di DBMS Disegnano e implementano moduli e interfacce di DBMS come un pacchetto software. Un DBMS è un complesso sistema software che consiste di molti moduli Sviluppatori di Tools Implementano pacchetti software per il progetto, il monitoraggio, l’interfaccia, la prototipazione, ecc. di databases Operatori e Personale per la Manutenzione Personale che si occupa dell'amministrazione del sistema e della manutenzione hw e sw del sistema di database
21. I modelli di dati (Data Models) indicano il modo in cui i dati vengono organizzati logicamente 27/11/2007 11.28 Autore: Antonino Bartolone - 2007 18 Modelli di dati
24. Modello relazionale (utilizza una struttura dati detta “tabella”; più tabelle sono messe in “relazione” tra loro)
25.
26. 27/11/2007 11.28 Autore: Antonino Bartolone - 2007 21 DATABASE : una o più tabelle eventualmente collegate (messe in relazione) tra di loro Un database relazionale è organizzato logicamente con tabelle che contengono i dati su più righe e colonne. Tutti i dati del DB possono essere organizzati con più tabelle. Le tabelle possono eventualmente essere “collegate logicamente” tra loro (messe in relazione) per ottimizzarne le funzionalità e le dimensioni . Es.: DATABASE “Personale” Dipendente Stipendio
27. 27/11/2007 11.29 Autore: Antonino Bartolone - 2007 22 Una tabella è costituita da righe e colonne Le righe della tabella (ad esclusione della prima) rappresentano i record (o tuple). Ogni record è l’insieme dei dati di un singolo soggetto/argomento. Le colonne della tabella rappresentano i campi. Le intestazioni delle colonne rappresentano i nomi dei campi (cognome, nome…). Ogni campo di ogni singolo record contiene un singolo dato. “Paolino” è quindi il dato rappresentato dal campo Nome del record n. 2
28.
29.
30. Linguaggi utilizzati per la definizione e l’interrogazione dei Database 27/11/2007 11.28 Autore: Antonino Bartolone - 2007 25 Linguaggi
31. 27/11/2007 11.28 Autore: Antonino Bartolone - 2007 26 DDL = Data DefinitionLanguage (Linguaggio per la definizione dei dati) Si definiscono DDL, quei linguaggi che consentono la definizione dello schema (o struttura) del database. DML = Data ManipolationLanguage (Linguaggio per la manipolazione (gestione) dei dati) Si definiscono DML, quei linguaggi che consentono di intervenire sul database per l’inserimento, cancellazione, aggiornamento, recupero e visualizzazione dei dati.
32. 27/11/2007 11.28 Autore: Antonino Bartolone - 2007 27 I DBMS hanno, al loro interno, un unico linguaggio integrato, con le funzionalità di DDL ed DML. Il DBMS Microsoft Access, ad esempio, consente di creare e gestire un database in modo completo, senza uscire dal suo ambiente. Il DBMS MySQL, utilizza al suo interno un linguaggio che ha funzionalità sia di DDL che di DML: SQL Il linguaggio SQL (StructureQueryLanguage), è un linguaggio specifico per la gestione di database. SQL è diventato uno standard tra i linguaggi per la gestione di database. SQL è il linguaggio di interrogazione di database relazionali più diffuso ed utilizzato dai DBMS relazionali (RDBMS).