corso di basi di dati - università degli studi di roma ... · scopi di un database unificare e...

31
1 Corso di Basi di Dati Roberto Basili a.a. 2007/8 Basi di dati (Inf/Aut)

Upload: nguyendang

Post on 14-Feb-2019

219 views

Category:

Documents


0 download

TRANSCRIPT

1

Corso di Basi di Dati

Roberto Basilia.a. 2007/8

Basi di dati (Inf/Aut)

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

13Basi di dati (Inf/Aut)- a.a. 2007/8

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)

20Basi di dati (Inf/Aut)- a.a. 2007/8

Progettazione Concettuale (2)

W Data Model

Schema Logico

DBW

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