Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
DBMS: Architettura
Consideriamo due diversi tipi di utenti:
Utenti convenzionali/applicazioni che modificano dati e formulano interrogazioni Lamministratore della base di dati(database administrator DBA) responsabile per la struttura, lo schema e la gestione della base di dati
Notazione: rettangoli denotano componenti software, rettangoli spessi denotano strutture dati in memoria, linee continue rappresentano flusso di dati e controllo, le linee tratteggiate indicano soli il flusso dei dati
3
DBMS: Architettura
Comandi di Query
La maggior parte delle interazioni sono di questo tipo: operazioni che non modificano lo schema del database ma ne alterano il contenuto o semplicemente ne leggono i dati Questi comandi attivano due sottosistemi distinti del DBMS:
Query processing Transaction Processing
6
Componenti dellarchitettura
Esamineremo le varie componenti e discuteremo le loro relazioni. Pi precisamente:
Storage (Dischi e file) Storage manager Buffer manager Index/file/record manager Execution engine Query compiler Concurreny control manager Logging/recovery manager Transaction manager
7
Query Processing
Il Query Complier fa il parsing e ottimizza la query. Il risultante query plan viene passato al.. Execution Engine, che crea una sequenza di richieste di dati (tipicamente record) al .. Resourcer Manager (Index/File/record), che sa dove sono i dati(file) e come recuperarli velocemente (indici). Le richieste di dati vengono tradotte in richieste di pagine e inoltrate al.. Buffer Manager , che ha il compito di trasportare in memoria principale le pagine rilevanti (per la risposta alla query) dallo.. Storage Manager , che ha il compito di gestire i dati memorizzati nelle pagine dello.. Storage (Dischi ), che immagazzinano stabilmente tutti i dati
8
Transaction Processing
Una query e altre azioni vengono raggruppate in una transazione che deve:
Essere eseguita atomicamente Essere isolata dalle altre Modificare in modo permanente e consistente il DB
10
Log Manager
Per assicurare la persistenza dei dati del database anche in caso di crash, ogni modifica al database viene registrata separatamente sul disco Il Log Manager registra queste modifiche per consentire in qualsiasi momento (in seguito ad un crash) al Recovery Manager di ripristinare il database in uno stato consistente Anche il Log Manager scrive i suoi dati attraverso il Buffer Manager ma prima di continuare si assicura che siano stati effettivamente scritti sul disco.
11
12
Buffer Manager
I dati sono in memoria secondaria (dischi magnetici) Per eseguire operazioni sui dati questi devono essere in memoria principale (RAM) A tale proposito una componente del DBMS chiamata Buffer Manager si occupa di gestire il movimento dei dati tra i due tipi di memoria organizzando la memoria principale in pagine che corrispondono ai blocchi dei dischi magnetici I dati gestiti dal buffer manager sono di vari tipi:
Data: il contenuto del database Metadata: lo schema dei dati Statistics: informazioni sul funzionamento del database Indexes: strutture dati di supporto per laccesso veloce ai dati
13
Query processor
Questo il componente del DBMS che maggiormente influisce sulle performance del sistema. Il query processor composto da due componenti: Query Compiler: trasforma le query in un formato interno chiamato query plan. composto da tre unit funzionali:
Il query parser analizza la query e crea lalbero di parsing Il query preprocessor effettua i controlli semantici e crea il query plan Il query optimizer ottimizza il query plan per migliorare le prestazioni