corso di basi di dati - università degli studi di roma ... · scopi di un database unificare e...
TRANSCRIPT
2Basi di dati (Inf/Aut)- a.a. 2007/8
Scopi del Corso: Introduzione ai concetti di base dei Sistemi di gestione delle Basi di Dati (DBMS).
Uso dei DBMS per la progettazione di Basi di Dati nella applicazioni del softwareOrganizzazione ed Modelli dei dati a livello logico e fisico
Prospettive nell'uso dei DBMS nelle moderne applicazioni:
Three-Tier Architecturesapplicazioni alla condivisione dei dati ed alla modellazione concettuale (XML)
3Basi di dati (Inf/Aut)- a.a. 2007/8
Requisiti
IL corso e’ diretto agli studenti del Corso di Laurea in Ingegneria Informatica e Automatica
Prerequisiti: elementi di programmazione in Pascal, C o C++, progettazione ed implementazione di strutture dati (liste, alberi)elementi di sistemi operativi (corso Sistemi Operativi, da seguire in parallelo).
4Basi di dati (Inf/Aut)- a.a. 2007/8
Organizzazione
Una particolare attenzione verra' dedicata ad aspetti pratici legati a
utilizzo di piattaforme DBMS software esistenti (es. Oracle)integrazione tra applicazioni sw e DBMS
Esercitazioni dedicate
5Basi di dati (Inf/Aut)- a.a. 2007/8
Orari
Martedì dalle 16:00 alle 17:45 - aula 4 PP2Giovedì dalle 9:30 alle 11:15 - aula 1 PP2Venerdi’ dalle 14:00 alle 15:45 – aula 4 PP2
Ricevimento: Martedi’ dopo la lezione
6Basi di dati (Inf/Aut)- a.a. 2007/8
Testi ConsigliatiTesto di Riferimento
Sistemi di Basi di Dati, di Raghu Ramakrishnan e Johannes Gehrke,
Edizione Italiana, McGraw Hill, 2004Risorse e Dispense distribuite dal docente, es.
Introduzione a MySQL, PL/SQLUso delle librerie di JDBC
Slides delle lezioni anche disponibil al sito degli autori:
http://www.cs.wisc.edu/~dbbook/
7Basi di dati (Inf/Aut)- a.a. 2007/8
Modalita’ d’Esame
1 Test in itinere –inizio Novembre (data da definire tra il 5 ed il 9 Novembre)
1 Progetto Finale –Una applicazione basata su un DBMS
Prova Finale
8Basi di dati (Inf/Aut)- a.a. 2007/8
Scopi di un Database
Unificare e generalizzare l’accesso ai datiConsentire un accesso semplificato e … efficienteProteggere i dati
Integrità e Riservatezza (Sicurezza)Tolleranza a malfunzionamenti/guasti
Supportare la concorrenzaFacilitare lo sviluppo dei programmi “utente”
9Basi di dati (Inf/Aut)- a.a. 2007/8
DBMS
Un Data Base Management System(DBMS) è un sofware per la gestione e la registrazione di datiVantaggi:
Indipendenza ed accesso efficiente ai datiRiduzione del tempo di sviluppoIntegrita’ e sicurezza dei datiGestione degli accessi ai datiAccesso concorrenteGestione delle transazioniCrashe recovery
10Basi di dati (Inf/Aut)- a.a. 2007/8
Database vs. Files
Es. “Anagrafica di una compagnia multinazionale” - taglia > 10 Gb
diverse funzionalita’ => molteplicita’ di librerie di accessouso concorrenteimpossibilita’ di un indirizzamento diretto e sequenzialesicurezza robustezza dell’accesso
11Basi di dati (Inf/Aut)- a.a. 2007/8
Applicazioni e Database
• Diverse applicazioni usano porzioni diverse dei datiL’astrazione sui dati e’ diversa ma “coerente”L’accesso ai dati e’
dipendente dalla astrazione (modello logico)vincolato dalla natura fisica della memorizzazione
⇒ e’ necessario svincolare la natura logica dei dati dalla loro rappresentazione in memoria, cioè dalle forme di memorizzazione
12Basi di dati (Inf/Aut)- a.a. 2007/8
Prospettiva Storica
Integrated Data Store (C.Bachman) ‘60Standardizzazione del Network Data Model (CODASYL)Information Management System (IBM) hierarchical data modelModello Relazionale (Codd) 1970SQL Standard ’80DBMS distribuiti ‘90
14Basi di dati (Inf/Aut)- a.a. 2007/8
Data ModelSchema Fisico: definisce i dettagli legati alla memorizzazione dei dati (file, indici e ecc).Schema Logico/Concettuale:Definisce i dati in base alla loro natura concettuale. E’ basato su un Modello Logico di definizione dei dati (ad esempio Modello Relazionale)Schema esterno:Rappresentazione, basata sul modello logico, dei dati che sono utili/necessari e legali per un gruppo di utenti. Sottoinsieme delle informazioni descritte nello schema concettuale (spesso detto view)
E’ necessario svincolare la natura logica dei dati dalla rappresentazione in memoria,
o meglio dalle forme di memorizzazione
15Basi di dati (Inf/Aut)- a.a. 2007/8
SCHEMA CONCETTUALE
Schema Esterno 1
SCHEMA FISICO
Livelli di Astrazione Schema
Esterno 2Schema
Esterno N…
INDIPENDENZA
LOGICA dei Dati
INDIPENDENZA
FISICA dei Dati
16Basi di dati (Inf/Aut)- a.a. 2007/8
Schema Fisico
Definisce i dettagli legati alla memorizzazioneEs.
liste per rappresentare insiemiliste per rappresentare alberialberi per rappresentare insiemi con chiavi
Determina la struttura dei files dedicati a contenere i diversi datiDefinisce forme utili al ritrovamento (es. indici)
17Basi di dati (Inf/Aut)- a.a. 2007/8
Schema Concettuale ( o Logico)
Definisce i dati relativamente alla loro natura concettuale, cioe’ legata al mondo della/e loro applicazione/iViene realizzato all’interno di modello logico di definizione dei dati (per es. quello relazionale)In generale, descrive tutte le entita’ e le relazioni tra di loro che si rendono necessarie per descrivere completamente i dati in modo logico
18Basi di dati (Inf/Aut)- a.a. 2007/8
Schema Esterno
Descrive i dati che sono utili/necessari e legali per gruppi di utentiUtilizza il modello logico di descrizione dei datiE’ rappresentato da un sottoinsiemedelle informazioni dello schema concettuale, spesso detto “vista”
19Basi di dati (Inf/Aut)- a.a. 2007/8
Progettazione Concettuale
Modellare un mondo in cui le applicazioni utente operano richiede un linguaggio di specificaTale linguaggio e’ detto MODELLO dei DATI (DM)
e’ una astrazione di tutte le possibili informazioni che mondi possibili richiedono
La applicazione di un MODELLO dei DATI al mondo W produce lo SCHEMA LOGICO del risultante DB (relativo a W)
21Basi di dati (Inf/Aut)- a.a. 2007/8
Progettazione ConcettualeIl modello dei dati richiede competenze e linguaggi gia’ propri dell’informatica ma …
la progettazione logica parte dalle descrizioni che gli utenti finali (non informatici) fanno del loro mondo operativo
=> e’ necessario un modello (ed un sottostante linguaggio) piu’ adatto a catturare la semantica del dominio applicativo, cioe’ un modello semantico (indipendente a sua volta dal modello dei dati)
Il modello semantico e’ poi mappabile in un modello logico tramite processi semplici e per i quali esistono prassi standard
22Basi di dati (Inf/Aut)- a.a. 2007/8
Progettazione Concettuale(3)
W Semantic Model
Schema Logico
Schema Concettuale
Data Model
DBW
23Basi di dati (Inf/Aut)- a.a. 2007/8
Indipendenza dei Dati
I livelli logici di progettazione supportano la Indipendenza Logica dei Dati ...
Cambiamenti del mondo W si rifletteranno solo come estensioni/ridefinizioni dello schema logico minimizzando i cambiamenti nelle applicazioni utente (tramite adattamento degli schemi esterni)
24Basi di dati (Inf/Aut)- a.a. 2007/8
Indipendenza dei Dati (2)
... e l’Indipendenza Fisica dei Dati
Cambiamenti nella struttura fisica delle rappresentazioni (ad es. nuovi dispositivi di memorizzazione) potranno essere resi invisibili (cioè trasparenti) alle applicazioni utente, mantenendo invariato lo schema logico
25Basi di dati (Inf/Aut)- a.a. 2007/8
La manipolazione dei Dati
Gli utenti di un database hanno in generale necessita’ di:
INSERIMENTOAGGIORNAMENTOCANCELLAZIONEINTERROGAZIONE
delle singole “parti” di informazione
26Basi di dati (Inf/Aut)- a.a. 2007/8
Le transazioni
La realizzazione delle operazioni di accesso ai dati da luogo ad una molteplicita’ di azioni piu’ elementari sui dati
es. verifica dell’esistenza di un dato x < aggiornamento del dato x < preparazione dell’ouput < avviso di terminazione
La successione delle operazioni determinate da una (sola) manipolazione e’ detta transazione
27Basi di dati (Inf/Aut)- a.a. 2007/8
Transazioni (2)Diverse operazioni (pur identiche) determinano diverse transazioniLa esecuzione di una transazione non e’ completa se non alla fine della sequenza di (micro)operazioni richiesteLe transazioni possono essere concorrenti, cioe’ determinare operazioni legali ma in contrasto tra loro (es. prelievo Bancomat)Il completamento deve essere assicurato per mantenere l’integrita’ dei dati
28Basi di dati (Inf/Aut)- a.a. 2007/8
TransazioniUna Transazione è un raggruppamento di operazioni che deve avere le seguenti proprieta’:
ATOMICITA’ATOMICITA’ -- La transazione viene eseguita La transazione viene eseguita completamentecompletamente o non viene eseguita affattoo non viene eseguita affatto
CONSISTENZA CONSISTENZA -- Le transazioni debbono conservare Le transazioni debbono conservare la consistenza dei dati nel databasela consistenza dei dati nel database
ISOLAMENTO ISOLAMENTO -- L’effetto di una transazione eseguita inL’effetto di una transazione eseguita inambiente concorrente deve essere lo stesso della medesima ambiente concorrente deve essere lo stesso della medesima transazione eseguita singolarmentetransazione eseguita singolarmente
DURABILITA’DURABILITA’ -- LL’effetto di una transazione in un ’effetto di una transazione in un Database deve essere persistente anche in caso di Database deve essere persistente anche in caso di crash del sistema crash del sistema
29Basi di dati (Inf/Aut)- a.a. 2007/8
SQL Interface
Data FilesIndex Files
Plan Executor
Operator Evaluator
Parser
Optimizer
Query Evaluation
Engine
TransactionManager
LockManager
ApplicationsFront-EndsWEB Forms
Files and Access Method
Buffer Manager
Disk Space Manager
RecoveryManager
DBMS
30Basi di dati (Inf/Aut)- a.a. 2007/8
Disk Space Manager
Buffer Manager
Files and Acces Method
ParserPlan Executor
OptimizerOperator Evaluator
RecoveryManager
TransactionManager
LockManager
QueryEvaluation
Engine
DBMS
WEB Forms Applications Front-Ends SQL Interface
SQL Commands
INDEX FILES
DATA FILES
Architettura di un Database
31Basi di dati (Inf/Aut)- a.a. 2007/8
Utenti di un Database
Programmatori del DBMSUtenti (diretti) esperti e non espertiProgrammi applicativiAmministratore
progetto degli schemi fisici e logicigestione della sicurezza e dei criteri di autorizzazioneManutenzione e prevenzione dei mafunzionamentiCustomizzazione