L architettura di un DBMS



Похожие документы
Introduzione all Architettura del DBMS

Tecnologia di un Database Server (centralizzato) Introduzione generale

Linguaggio SQL: costrutti avanzati

Pag. 1. Gestione delle transazioni. Linguaggio SQL: costrutti avanzati. Esempio applicativo. Gestione delle transazioni. Prelievo. Esempio applicativo

Sistemi di gestione delle basi di dati. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone

Informatica Generale Andrea Corradini Sistemi di Gestione delle Basi di Dati

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014

Transazioni. Architettura di un DBMS. Utente/Applicazione. transazioni. Transaction Manager. metadati, statistiche.

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1

Lezione V. Aula Multimediale - sabato 29/03/2008

Corso di Basi di Dati e Conoscenza

CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?)

DBMS (Data Base Management System)

Il linguaggio SQL: transazioni

Basi di dati. Concetti introduttivi ESEMPIO. INSEGNAMENTI Fisica, Analisi, Aule. Docenti. Entità Relazioni Interrogazioni. Ultima modifica: 26/02/2007

Basi di dati. Corso di Laurea in Ingegneria Informatica Canale di Ingegneria delle Reti e dei Sistemi Informatici - Polo di Rieti

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione

Introduzione al data base

Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere

Recovery manager Gestore della affidabilità

Data Base Management System. Strumenti: Formato: Pro: Contro: Software specifico. Proprietario

Basi di Dati Distribuite

Introduzione ai Sistemi di Gestione di Basi di Dati XML

Archivi e Basi di Dati

Corso di Informatica

Informatica Documentale

Il linguaggio SQL: query innestate

Basi di dati. Docente: Andrea Bulgarelli. Università di Modena e Reggio Emilia. andrea.bulgarelli@gmail.com Argomento: presentazione corso (1.

Corso di Informatica (Basi di Dati)

Basi di Dati prof. A. Longheu. 5 Progettazione fisica

Organizzazione degli archivi

IL SISTEMA INFORMATIVO

Progettazione di Basi di Dati

Transazioni. Capitolo 13. Scrittura immediata e scrittura differita. Concorrenza in un DBMS. Una transazione. Gestione delle transazioni

1. BASI DI DATI: GENERALITÀ

DB - Cenni sulla gestione delle transazioni

Introduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni

Facoltà di Farmacia - Corso di Informatica

Introduzione ai database relazionali

Tecnologia di un Database Server (centralizzato) Gestione del buffer

BASE DI DATI: introduzione. Informatica 5BSA Febbraio 2015

LABORATORIO di INFORMATICA

Introduzione ai sistemi di basi di dati

Base di dati e sistemi informativi

File e indici. Tecnologia delle BD: perché studiarla? Le basi di dati sono grandi e persistenti. DataBase Management System DBMS

Informatica (Basi di Dati)

DATABASE RELAZIONALI

Riccardo Dutto, Paolo Garza Politecnico di Torino. Riccardo Dutto, Paolo Garza Politecnico di Torino

Il linguaggio SQL: trigger. Versione elettronica: 04.7.SQL.trigger.pdf

Introduzione. Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni aerei

Access. P a r t e p r i m a

Database. Francesco Tapparo Informatica e Bioinformatica /16

DATABASE.

8 Tecniche di recovery

Dati relazionali e XML

GERARCHIE RICORSIVE - SQL SERVER 2008

Il linguaggio SQL: viste e tabelle derivate

Il linguaggio SQL: viste e tabelle derivate. Versione elettronica: SQLd-viste.pdf

Vincoli di Integrità Approccio dichiarativo alla loro implementazione

Sistemi centralizzati e distribuiti

Sistemi per la gestione di database: MySQL ( )

I database relazionali (Access)

Al giorno d oggi, i sistemi per la gestione di database

corso di Access MICROSOFT ACCESS Docente: Andrea Mereu Università degli studi di Cagliari 16 aprile 9 maggio 2012

I comandi del linguaggio DDL (Data Definition Language): CREATE E ALTER

Architettura MySQL. E Motori MySQL

Data Warehousing (DW)

Le Basi di dati: generalità. Unità di Apprendimento A1 1

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

Database. Si ringrazia Marco Bertini per le slides

TRANSAZIONI DISTRIBUITE TRANSAZIONI

Definizione di domini

Archivi e database. Lezione n. 7

Che cos è un DBMS? Capitolo 1. Perché usare un DBMS? DBMS. Descrizioni dei dati nei DBMS. Modelli di dati

Trasformazione DB Access In SQL Server. Michele De Nittis

Progettaz. e sviluppo Data Base

UN PROGRAMMA APPLICATIVO: ACCESS Access è un programma del pacchetto Office che permette di realizzare database

FIRESHOP.NET. Utilizzare il FireSoft. Rev

Basi di dati. Il Modello Relazionale dei Dati. K. Donno - Il Modello Relazionale dei Dati

Testi di riferimento. Atzeni, Ceri, Paraboschi, Torlone Basi di Dati Modelli e linguaggi di interrogazione Mc Graw Hill 2008 (III Edizione)

Sistema di Gestione di Basi di Dati DataBase Management System DBMS

Strumenti per la gestione della configurazione del software

Le Basi di Dati. Le Basi di Dati

Installazione e caratteristiche generali 1

Database: collezione di fatti, registrabili e con un ben preciso significato, relazionati fra di loro

Esecuzione concorrente di transazioni

Gestione ed analisi di base dati nell epidemiologia. delle malattie infettive

Транскрипт:

L architettura di un DBMS sources: Lucidi del corso di Lucidi del corso di Laboratorio di Basi di dati e sistemi informativi, Montesi, Magnani, Corso di laurea in Informatica per il management, Scienze Matematiche Fisiche e Naturali, Alma Mater Studiorum Universita di Bologna, A. A.: 2010-2011 Database Systems The complete book (2 edition) - Hector Garcia Molina, Jeffrey D. Ullman, Jennifer Widom Prentice Hall

Architettura di un dbms! Un DBMS e un software per la gestione di basi di dati, e piu in generale e uno strumento potente per creare e gestire in maniera efficiente una grande quantita di dati e per permettere la loro persistenza nel tempo.! Come funziona e si usa un DBMS? Nome Cognome Sesso Stipendio Maria Rossi F 1700 Piero Neri M 1200 Luca Rossi M 1550 Elena Bianchi F 1500 Select Cognome, Stipendio From Impiegati Where Stipendio>1300? Cognome Stipendio Rossi 1700 Rossi 1550 2 Bianchi 1500

Esercitazione di gruppo! Vogliamo implementare un DBMS relazionale!! Il sistema deve essere in grado di:! Memorizzare relazioni come R(A,B,C), S(A,B) e T(A,B).! Eseguire interrogazioni come: Select A, B From R Where B = 2000 Select R.A, T.B From R, S, T Where R.B = S.A And S.B = T.A 3

Verifica del sistema Come si comporta il sistema nei confronti di:! Ricerca di tuple?! Ordine delle operazioni?! Aggiornamenti di tuple?! Accesso ripetuto alle stesse locazioni su disco?! Modifiche concorrenti?! Controllo degli accessi?! Interfacce di programmazione? 4

Architettura di un DBMS relazionale (1) DDL Compiler Query compiler Transaction Manager Execution Engine Logging/Recovery Concurrency Control Index/File/Record Manager Buffer Manager Buffer Lock Table Storage Manager Dati e comandi Dati 5

Architettura di un DBMS relazionale (2)! L architettura presentata nel lucido precedente è composta da tre sottosistemi principali:! Per la gestione dei dati su disco.! Per l esecuzione delle interrogazioni.! Per la gestione delle transazioni. 6

Sottosistema per le interrogazioni Query compiler Execution Engine Select A, B From R1, R2 Where C = D And C = c Index/File/Record Manager Buffer Manager Buffer Storage Manager 7

Query compiler (1)! Il Query Compiler fa il parsing e ottimizza le interrogazioni.! L interrogazione viene prima riconosciuta e controllata sintatticamente.! Il risultato del parsing viene tradotto in una espressione in una versione estesa dell algebra relazionale.! L espressione viene trasformata in un espressione equivalente ma considerata più efficiente.! Il risultato del query compiler è un query plan, cioè un elenco cronologico delle operazioni da compiere per eseguire l interrogazione. 8

Query compiler (2) Query compiler Execution Engine Select A, B From R1, R2 Where C = D And C = c Index/File/Record Manager π A,B (σ C=D (σ C=c (R1) R2)) Buffer Manager Buffer Storage Manager 9

Execution Engine (1)! L Execution Engine crea una sequenza di richieste di dati (tipicamente record) e implementa le istruzioni ottenute dal query compiler. 10

Execution Engine (2) Query compiler Execution Engine Select A, B From R1, R2 Where C = D And C = c Index/File/Record Manager π A,B (σ C=D (σ C=c (R1) R2)) Buffer Manager Storage Manager Buffer σ C=c (R1), R2, σ, π 11

Resource Manager (1)! Il Resource Manager sa dove sono i dati (file e record) e come recuperarli velocemente (indici).! Le richieste di dati vengono tradotte in richieste di blocchi su disco. 12

Resource Manager (2) Query compiler Execution Engine Select A, B From R1, R2 Where C = D And C = c Index/File/Record Manager π A,B (σ C=D (σ C=c (R1) R2)) Buffer Manager Storage Manager Buffer σ C=c (R1), R2, σ, π R1 13

Gestione dati su disco (1)! Il Buffer Manager ha il compito di trasportare in memoria centrale i blocchi richiesti.! Per farlo, si affida allo Storage Manager, che gestisce i dispositivi di memoria secondaria.! I Dischi sono i principali dispositivi utilizzati per memorizzare database.! I dati gestiti dal buffer manager sono di vario tipo:! Dati: il contenuto del database.! Metadati: lo schema del database.! Statistiche: informazioni sul contenuto del database.! Indici: strutture di supporto per l accesso rapido ai dati. 14

Gestione dati su disco (2) Query compiler Execution Engine Select A, B From R1, R2 Where C = D And C = c Index/File/Record Manager π A,B (σ C=D (σ C=c (R1) R2)) Buffer Manager Storage Manager Buffer σ (R1) σ C=c (R1), R2, σ, π R1 15

Gestione dati su disco (3) Select A, B Query compiler From R1, R2 Where C = D Execution Engine And C = c Index/File/Record Manager π A,B (σ C=D (σ C=c (R1) R2)) Buffer Manager Storage Manager R2 Buffer σ C=c (R1), R2, σ, π R2 16

Gestione dati su disco (4) Query compiler Execution Engine Select A, B From R1, R2 Where C = D And C = c Index/File/Record Manager Buffer Manager Storage Manager σ, π Buffer π A,B (σ C=D (σ C=c (R1) R2)) σ C=c (R1), R2, σ, π 17

Gestione delle transazioni! L accesso a un database spesso non si riduce a una singola istruzione SQL, ma prevede una serie di operazioni.! Ad esempio, per effettuare un bonifico occorre leggere il saldo di un conto, sottrarvi la somma dovuta, leggere il saldo di un secondo conto e aggiungervi la stessa somma: Start transaction; update ContoCorrente Set Saldo = Saldo+10 Where NumConto=12202; update ContoCorrente Set Saldo = Saldo-10 Where NumConto=42177; commit work; 18

Gestione delle transazioni! Una sequenza di operazioni detta transazione ha le seguenti proprietà:! Atomicità: viene eseguita del tutto o per niente.! Consistenza: i vincoli del database devono essere rispettati.! Isolamento: si comporta bene nei confronti di altre transazioni eseguite in concorrenza.! Durabilità: l effetto sul database deve essere persistente. 19

Sottosistema per le transazioni Transaction Manager Logging/Recovery Concurrency Control Lock Table 20

Log Manager! Per assicurare la persistenza dei dati del database anche in caso di crash, ogni modifica viene registrata separatamente sul disco (durabilità).! Il log manager può così ripristinare il database nel caso esso si trovi in uno stato inconsistente (consistenza) o nel caso la transazione non vada a buon fine (atomicità).! Anche il log manager utilizza il buffer manager per scrivere i propri dati su disco.! Tuttavia, richiede garanzie riguardo al fatto che questi vengano effettivamente copiati su supporto persistente.! In aggiunta, per evitare problemi dovuti alla rottura dei dischi si utilizzano copie di backup del database. 21

Concurrency Control Manager! Le transazioni devono essere eseguite in isolamento ma concorrentemente.! Il concurrency control manager determina un ordine di esecuzione delle operazioni tale che esse non interferiscano le une con le altre.! Tipicamente questo comportamento viene ottenuto tramite la gestione di una lock table (ma esistono molti modi diversi per farlo).! Questo modulo ha anche il compito di risolvere eventuali deadlock, facendo abortire una o più transazioni. 22

Accesso ai dati! Ora sappiamo come funziona un DBMS!! Come fare eseguire al DBMS un interrogazione?! Come gestire la privatezza dei dati? Nome Cognome Sesso Stipendio Maria Rossi F 1700 Piero Neri M 1200 Luca Rossi M 1550 Elena Bianchi F 1500 C.Credito 1234 7545 7345 3466 Select Cognome, Stipendio From Impiegati Where Stipendio>1300 DDL Compiler Query compiler Execution Engine Index/File/Record Manager Buffer Manager Storage Manager Transaction Manager Logging/Recovery Buffer Concurrency Control Lock Table Cognome Stipendio Rossi 1700 Rossi 1550 Bianchi 150023