Componenti di un DBMS • Come fa un DBMS a garantire le proprietà ACIDe di una transazione? • Vediamo i componenti principali dal più interno a quello di più alto livello: – – – – – Controllore di Concorrenza Gestore del Buffer Controllore di Affidabilità Gestore degli Accessi (RSS) Ottimizzatore (incluso Compilatore) Sistemi di Elaborazione dell’Informazione Economia del Commercio Internazionale - Economia e Amministrazione delle Imprese Hadley C. Taylor Componenti di un DBMS Ottimizzatore Gestore degli Accessi Controllo Affidabilità Gestore del Buffer Controllo Concorrenza Sistemi di Elaborazione dell’Informazione Economia del Commercio Internazionale - Economia e Amministrazione delle Imprese Hadley C. Taylor 1 Componenti di un DBMS • Controllore di Concorrenza – Problemi da risolvere per transazioni concorrenti: • Caso A: – Transazione1 legge un campo e lo ricalcola senza aggiornarlo » Transazione2 legge, ricalcola e aggiorna il campo e commit – Transazione1 aggiorna il campo e commit • Caso B: – Transazione1 legge, ricalcola e aggiorna un campo » Transazione2 legge, ricalcola e aggiorna il campo e commit – Transazione1 rollback • Ecc… Sistemi di Elaborazione dell’Informazione Economia del Commercio Internazionale - Economia e Amministrazione delle Imprese Hadley C. Taylor Componenti di un DBMS • Controllore di Concorrenza – Caso A: Perdita di aggiornamento Transazione1 Read1 (x) x = x+1 Transazione2 Read2 (x) x=x+1 Write2 (x) Commit2 Write1 (x) Commit1 Sistemi di Elaborazione dell’Informazione Economia del Commercio Internazionale - Economia e Amministrazione delle Imprese Hadley C. Taylor 2 Componenti di un DBMS • Controllore di Concorrenza – Caso A: Perdita di aggiornamento • Transazione1 legge un campo e lo ricalcola senza aggiornarlo – Transazione2 legge, ricalcola e aggiorna il campo e commit • Transazione1 aggiorna il campo e commit Transazione1 Read1 (x) x = x+1 Transazione2 Read2 (x) x=x+1 Write2 (x) Commit2 Write1 (x) Commit1 Risultato 10 11 10 11 11 11 11 11 Problema L’aggiornamento della transazione2 è andato perduto! Sistemi di Elaborazione dell’Informazione Economia del Commercio Internazionale - Economia e Amministrazione delle Imprese Hadley C. Taylor Componenti di un DBMS • Controllore di Concorrenza – Caso B: Lettura sporca: Transazione1 Read1 (x) x = x+1 Write1 (x) Transazione2 Read2 (x) x=x+1 Write2 (x) Commit2 Rollback1 Sistemi di Elaborazione dell’Informazione Economia del Commercio Internazionale - Economia e Amministrazione delle Imprese Hadley C. Taylor 3 Componenti di un DBMS • Controllore di Concorrenza – Caso B: Lettura sporca: • Transazione1 legge, ricalcola e aggiorna un campo – Transazione2 legge, ricalcola e aggiorna il campo e commit • Transazione1 rollback Transazione1 Read1 (x) x = x+1 Write1 (x) Transazione2 Read2 (x) x=x+1 Write2 (x) Commit2 Rollback1 Risultato 10 11 11 11 12 12 12 12 Problema Il valore di partenza per Transazione2 era un valore sbagliato! Sistemi di Elaborazione dell’Informazione Economia del Commercio Internazionale - Economia e Amministrazione delle Imprese Hadley C. Taylor Componenti di un DBMS • Controllore di Concorrenza – Problemi da risolvere per transazioni concorrenti: • Caso A: Perdita di aggiornamento – Transazione1 legge un campo e lo ricalcola senza aggiornarlo » Transazione2 legge, ricalcola e aggiorna il campo e commit – Transazione1 aggiorna il campo e commit L’aggiornamento della transazione2 è andato perduto! • Caso B: Letture sporche – Transazione1 legge, ricalcola e aggiorna un campo » Transazione2 legge, ricalcola e aggiorna il campo e commit – Transazione1 rollback Il valore di partenza per Transazione2 era un valore sbagliato! Soluzione può sembrare ‘causare rollback anche di T2’ no: si vuole evitare l’effetto domino. • Ecc… Sistemi di Elaborazione dell’Informazione Economia del Commercio Internazionale - Economia e Amministrazione delle Imprese Hadley C. Taylor 4 Componenti di un DBMS • Controllore di Concorrenza – Soluzione • Il controllore di concorrenza sequenzializza le operazioni di lettura e scrittura bloccando l’accesso in scrittura per le transazioni seguenti • Problema: due transazioni possono bloccarsi a vicenda su campi diversi: DEADLOCK! • Soluzione, vari metodi: – Timeout: blocco possibile solo temporaneamente poi scade – Anzianità: non consentire attesa per transazione più giovane – Rilevazione di blocco: causare rollback Sistemi di Elaborazione dell’Informazione Economia del Commercio Internazionale - Economia e Amministrazione delle Imprese Hadley C. Taylor Componenti di un DBMS • Gestore del Buffer Manager – Il Buffer è l’area di memoria centrale allocata al DBMS – Problema • La memoria Centrale di solito non contiene tutto il database perciò l’utilizzo dell’area deve essere condiviso alternando le pagine dalla Memoria Centrale alla Memoria di Massa – Soluzione • Politiche di ‘swapping’ analoghe a Sistemi Operativi. • Esempio: – Togli dal buffer le pagine meno utilizzate ( 20% dei dati è acceduto dall’80% delle applicazioni) – Tieni pagine con accessi pù recenti – Ecc… Sistemi di Elaborazione dell’Informazione Economia del Commercio Internazionale - Economia e Amministrazione delle Imprese Hadley C. Taylor 5 Componenti di un DBMS • Controllore di Affidabilità – Problema • Se avviene un guasto i dati in Memoria Centrale vanno perduti! – Soluzione • Archiviare su memoria ‘stabile’ (es.:RAID) in un file (LOG) le sequenze di modifica, in modo che possano essere rieseguite • Archiviare su backup, periodicamente, tutto il database (DUMP) • Se avviene – Guasto di sistema (SW) ripartire da LOG (warm boot) – Guasto di Memoria di Massa (HW) ripartire da DUMP (cold boot) e poi da LOG Sistemi di Elaborazione dell’Informazione Economia del Commercio Internazionale - Economia e Amministrazione delle Imprese Hadley C. Taylor Componenti di un DBMS • Gestore degli Accessi (Relational Storage System) – Problema • Accedere alla memoria fisica in modo efficiente – Soluzione • Metodi a seconda della struttura dei record nelle pagine – Sequenziale ricerca sequenziale o dicotomica (se ordinata) – Hashing ricerca in base ad un calcolo (Hash) – Albero ricerca in base ad Indicizzazione della chiave: viene costruita una struttura di puntatori aggiuntiva alla struttura dati per consentire una ricerca efficiente dei record Sistemi di Elaborazione dell’Informazione Economia del Commercio Internazionale - Economia e Amministrazione delle Imprese Hadley C. Taylor 6 Componenti di un DBMS • Ottimizzatore – Problema • – Scegliere i metodi di esecuzione delle operazioni e l’ordine migliore in cui eseguirli per minimizzare i tempi Soluzione 1. 2. 3. 4. 5. Analisi delle dimensioni tabelle e attributi (Dizionario Dati) Analisi dei costi dei metodi in base a struttura fisica Costruzione di albero delle alternative con costi Ricerca di una alternativa buona (non ottima) Produzione del codice sorgente e compilazione Sistemi di Elaborazione dell’Informazione Economia del Commercio Internazionale - Economia e Amministrazione delle Imprese Hadley C. Taylor DBMS: Ottimizzazione Esempio: Quanti impiegati lavorano a Milano? Diverse soluzioni… Impiegati Dipartimento Sistemi di Elaborazione dell’Informazione Economia del Commercio Internazionale - Economia e Amministrazione delle Imprese Hadley C. Taylor 7 Accesso al DBMS Ottimizzatore Gestore degli Accessi Controllo Affidabilità Gestore del Buffer Controllo Concorrenza Sistemi di Elaborazione dell’Informazione Economia del Commercio Internazionale - Economia e Amministrazione delle Imprese Hadley C. Taylor Accesso al DBMS • Program mazione L’accesso ai dati può avvenire: 1. con linguaggi testuali interattivi (es. SQL) utilizzati come comandi da una interfaccia testuale 2. con interfacce amichevoli interattive non testuali (es. ACCESS) 3. con linguaggi della quarta generazione (4GL) specifici del DBMS, che permettono di sviluppare complete applicazioni 4. con comandi (del linguaggio interattivo) immersi in un linguaggio ospite di alto livello (Pascal, C, Cobol, Java, etc.) Sistemi di Elaborazione dell’Informazione Economia del Commercio Internazionale - Economia e Amministrazione delle Imprese Hadley C. Taylor 8 Linguaggi per DBMS Introduzione ai Linguaggi per DBMS: • Schemi e Istanze – In ogni base di dati esistono: • lo Schema: che ne descrive la struttura – le intestazioni delle tabelle, i legami • l’Istanza, costituita dai valori – il “corpo” di ciascuna tabella Sistemi di Elaborazione dell’Informazione Economia del Commercio Internazionale - Economia e Amministrazione delle Imprese Hadley C. Taylor Linguaggi per DBMS • Nei DBMS esistono linguaggi separati per la definizione e per la manipolazione delle strutture: – Data Definition Language (DDL) • per la definizione di Schemi (la struttura): – le intestazioni delle tabelle, i legami – Data Manipulation Language (DML) : • per l’interrogazione e l’aggiornamento di Istanze (valori): – il “corpo” di ciascuna tabella Sistemi di Elaborazione dell’Informazione Economia del Commercio Internazionale - Economia e Amministrazione delle Imprese Hadley C. Taylor 9 SQL (’74) • SQL è un linguaggio sia DDL che DML – Data Definition Language (DDL) : • per la definizione di schemi – Data Manipulation Language (DML) : • per l’interrogazione e l’aggiornamento di istanze Sistemi di Elaborazione dell’Informazione Economia del Commercio Internazionale - Economia e Amministrazione delle Imprese Hadley C. Taylor SQL • Primitive DDL: – Create, Alter, Drop • Domain (tipo di dato) utente • Table con – Attributi – Vincoli • Index (campi indicizzati) • Assertion (vincoli generici) • View (vistetabelle temporanee) Sistemi di Elaborazione dell’Informazione Economia del Commercio Internazionale - Economia e Amministrazione delle Imprese Hadley C. Taylor 10 SQL • Primitive DML principali di interrogazione: – Select EspressioneAttributi From tabelle Where condizioni Group by attributi Order by attributi – Union, Intersect,Except Sistemi di Elaborazione dell’Informazione Economia del Commercio Internazionale - Economia e Amministrazione delle Imprese Hadley C. Taylor SQL • Primitive DML principali di manipolazione: – Insert (valori nei campi o righe nella tabella) – Delete (righe nella tabella) – Update (valori nei campi) Sistemi di Elaborazione dell’Informazione Economia del Commercio Internazionale - Economia e Amministrazione delle Imprese Hadley C. Taylor 11 SQL • Primitive DML principali di manipolazione: Sintassi: – Inserimento • Di valori nei campi: • insert into tabella (attributi) values (valori) • Di righe nella tabella • insert into tabella SelectSQL – Cancellazione • Di righe dalla tabella: • delete from tabella where (condizione) – Modifica • Di valori nei campi : • update tabella set attributo = <espressione | SelectSQL |null | default > [where condizione] Sistemi di Elaborazione dell’Informazione Economia del Commercio Internazionale - Economia e Amministrazione delle Imprese Hadley C. Taylor Accesso al DBMS Sistemi di Elaborazione dell’Informazione Economia del Commercio Internazionale - Economia e Amministrazione delle Imprese Hadley C. Taylor 12 Interfaccia di Accesso ai Dati Fonte dati propria dell’applicazione Applicazione DB appl Sistemi di Elaborazione dell’Informazione Economia del Commercio Internazionale - Economia e Amministrazione delle Imprese Hadley C. Taylor Interfaccia di Accesso ai Dati Fonti dati diverse su vari elaboratori: molte interfacce! Applicazione DB appl File System Elaboratore B Elaboratore A Leggenda: emails Elaboratore Applicazione Data Source DB DB Elaboratore C DB Elaboratore C Sistemi di Elaborazione dell’Informazione Economia del Commercio Internazionale - Economia e Amministrazione delle Imprese Hadley C. Taylor 13 Interfaccia di Accesso ai Dati E’ necessaria una libreria (Driver) per ogni specifica tripla: • DBMS • Sistema Operativo • Protocollo di Rete ODBC: Open Database Connectivity (’91) – Supporta un SQL ristretto definito da c.a 50 grandi utenti (aziende, enti, …) Sistemi di Elaborazione dell’Informazione Economia del Commercio Internazionale - Economia e Amministrazione delle Imprese Hadley C. Taylor Interfaccia di Accesso ai Dati Fonti dati diverse su vari elaboratori: una sola interfaccia – ODBC… Applicazione Driver Manager DB appl Driver 1 File System Driver 2 Elaboratore B Driver 4 Driver 3 Elaboratore A Driver 5 Leggenda: emails Elaboratore Applicazione Data Source DB DB Elaboratore C DB Elaboratore C Sistemi di Elaborazione dell’Informazione Economia del Commercio Internazionale - Economia e Amministrazione delle Imprese Hadley C. Taylor 14 Interfaccia di Accesso ai Dati E’ necessaria una libreria (Driver) per ogni specifica tripla: • DBMS • Sistema Operativo • Protocollo di Rete ODBC: Open Database Connectivity (’91) – Supporta un SQL ristretto definito da c.a 50 grandi utenti (aziende, enti, …) • Problema: – Interfaccia solo verso Database (relazionali): • di • su • con DBMS Sistemi Operativi Protocolli di Rete diversi diversi diversi Sistemi di Elaborazione dell’Informazione Economia del Commercio Internazionale - Economia e Amministrazione delle Imprese Hadley C. Taylor Interfaccia di Accesso ai Dati • Evoluzione verso • fonti eterogenee (non solo DB) • fonti non connesse (tecnologia Web Services) – Microsoft: • ODBCDAORDOOLE DB ADOADO.NET – Java • JDBC – XML Sistemi di Elaborazione dell’Informazione Economia del Commercio Internazionale - Economia e Amministrazione delle Imprese Hadley C. Taylor 15 Progettazione di Basi di Dati • La progettazione di una base di Dati si divide in tre fasi: 1. Progettazione Concettuale 2. Progettazione Logica 3. Progettazione Fisica Sistemi di Elaborazione dell’Informazione Economia del Commercio Internazionale - Economia e Amministrazione delle Imprese Hadley C. Taylor Progettazione di Basi di Dati • Schemi nell’architettura del DBMS Schema Fisico Sistemi di Elaborazione dell’Informazione Economia del Commercio Internazionale - Economia e Amministrazione delle Imprese Hadley C. Taylor 16 Progettazione di Basi di Dati Progettazione Concettuale – Utilizza un modello concettuale per rappresentare i dati in modo indipendente da ogni sistema, cercando di descrivere i concetti del mondo reale • il più noto è il modello Entity-Relationship – Produce lo Schema Concettuale Sistemi di Elaborazione dell’Informazione Economia del Commercio Internazionale - Economia e Amministrazione delle Imprese Hadley C. Taylor Progettazione di Basi di Dati Progettazione Concettuale – Modello Entity-Relationship • Entity: concetto che descrive una classe di oggetti che ha proprietà comuni ed esistenza autonoma – Es.: Impiegato, Dipartimento, Progetto • Relationship: concetto che associa due o più Entity – Es.: Direzione (tra Impiegato e Dipartimento), Appartenenza (tra Impiegato e Dipartimento), Partecipazione (tra Impiegato e Progetto) • Attribute: concetto con struttura semplice rappresentabile come attributo di un altro concetto – Es.: Cognome di un Impiegato, Budget di un Progetto Sistemi di Elaborazione dell’Informazione Economia del Commercio Internazionale - Economia e Amministrazione delle Imprese Hadley C. Taylor 17 Progettazione di Basi di Dati Progettazione Concettuale Modello Entity-Relationship Direzione Nome Cognome Nome Impiegato Dipartimento Appartenenza Stpendio Città Data appartenenza Partecipazione Budget Entità, Relazioni e Attributi Data inizio Nome Progetto Data consegna Sistemi di Elaborazione dell’Informazione Economia del Commercio Internazionale - Economia e Amministrazione delle Imprese Hadley C. Taylor Progettazione di Basi di Dati Progettazione Concettuale Modello Entity-Relationship 1 Direzione 1 Nome Cognome Nome Impiegato Dipartimento Appartenenza Stpendio Città Data appartenenza Partecipazione Data inizio Nome Budget Data consegna Cardinalità delle relazioni: Progetto Quante volte una occorrenza di una relazione può essere legata a occorrenze di un’altra relazione Massima Relazione 1 a 1 Sistemi di Elaborazione dell’Informazione Economia del Commercio Internazionale - Economia e Amministrazione delle Imprese Hadley C. Taylor 18 Progettazione di Basi di Dati Progettazione Concettuale Modello Entity-Relationship 1 Direzione 1 Nome Cognome Nome 1 Impiegato Appartenenza N Dipartimento Stpendio Città Data appartenenza Partecipazione Data inizio Nome Budget Cardinalità delle relazioni: Quante volte una occorrenza di una relazione può essere legata a occorrenze di un’altra relazione Massima Relazione 1 a N Progetto Data consegna Sistemi di Elaborazione dell’Informazione Economia del Commercio Internazionale - Economia e Amministrazione delle Imprese Hadley C. Taylor Progettazione di Basi di Dati Progettazione Concettuale Modello Entity-Relationship 1 Direzione 1 Nome Cognome Nome 1 Impiegato Appartenenza N Dipartimento Stpendio Città N Data appartenenza Partecipazione N Nome Budget Data consegna Progetto Cardinalità delle relazioni: Data inizio Quante volte una occorrenza di una relazione può essere legata a occorrenze di un’altra relazione Massima Relazione N a N Sistemi di Elaborazione dell’Informazione Economia del Commercio Internazionale - Economia e Amministrazione delle Imprese Hadley C. Taylor 19 Progettazione di Basi di Dati Progettazione Concettuale Modello Entity-Relationship ( 0 , 1) Direzione (1,1) Nome Nome ( 1 , N) Impiegato ( 1 , 1 ) Appartenenza Dipartimento Cognome Stpendio Città ( 0 , N) Data appartenenza Partecipazione Nome Budget Cardinalità delle relazioni: ( 1 , N) Data inizio Quante volte una occorrenza di una relazione può essere legata a occorrenze di un’altra relazione Minima Progetto Data consegna Sistemi di Elaborazione dell’Informazione Economia del Commercio Internazionale - Economia e Amministrazione delle Imprese Hadley C. Taylor Progettazione di Basi di Dati Progettazione Concettuale Modello Entity-Relationship ( 0 , 1) Direzione (1,1) Nome Cognome Nome Impiegato ( 1 , 1) Appartenenza ( 1 , N) Dipartimento Stpendio Città ( 0 , N) Data appartenenza Partecipazione Nome Budget ( 1 , N) Identificatori delle entita: Data inizio Concetto che permette di identificare in maniera univoca una entità Progetto Data consegna Sistemi di Elaborazione dell’Informazione Economia del Commercio Internazionale - Economia e Amministrazione delle Imprese Hadley C. Taylor 20 Progettazione di Basi di Dati Progettazione Logica – Utilizza Schema Concettuale e lo traduce nel Modello di Dati scelto • esempi: relazionale, reticolare, gerarchico, a oggetti – indipendente dalla struttura fisica dei dati – produce uno Schema Logico Sistemi di Elaborazione dell’Informazione Economia del Commercio Internazionale - Economia e Amministrazione delle Imprese Hadley C. Taylor Progettazione di Basi di Dati Progettazione Logica • La Progettazione Logica avviene in due fasi 1. Ristrutturazione dello Schema Concettuale di EntityRelationship • Analisi ed eliminazione delle ridondanze Normalizzazione • 2. Scelta Identificatori Principali Chiavi Primarie Traduzione verso il modello Logico Sistemi di Elaborazione dell’Informazione Economia del Commercio Internazionale - Economia e Amministrazione delle Imprese Hadley C. Taylor 21 Progettazione di Basi di Dati Normalizzazione Impiegati Informazione Ridondante Sistemi di Elaborazione dell’Informazione Economia del Commercio Internazionale - Economia e Amministrazione delle Imprese Hadley C. Taylor Progettazione di Basi di Dati Normalizzazione Impiegati Informazione Ridondante Sistemi di Elaborazione dell’Informazione Economia del Commercio Internazionale - Economia e Amministrazione delle Imprese Hadley C. Taylor 22 Progettazione di Basi di Dati Normalizzazione Impiegati Problemi: 1. aggiornamento 2. cancellazione 3. inserimento Informazione Ridondante Vantaggi: meno accessi Sistemi di Elaborazione dell’Informazione Economia del Commercio Internazionale - Economia e Amministrazione delle Imprese Hadley C. Taylor Progettazione di Basi di Dati Normalizzazione Impiegati Dipartimento DB Normalizzato Sistemi di Elaborazione dell’Informazione Economia del Commercio Internazionale - Economia e Amministrazione delle Imprese Hadley C. Taylor 23 Progettazione di Basi di Dati Normalizzazione • • L’eliminazione delle ridondanze (dati derivabili) è una scelta opzionale di progettazione – Vantaggi • Maggiore efficienza nel mantenere i dati aggiornati Consistenza • Risparmio memoria – Svantaggio • Aumento degli accessi necessari per derivare il dato Si parla di 1ª (Boyce-Codd), 2ª e 3ª Forma Normale Sistemi di Elaborazione dell’Informazione Economia del Commercio Internazionale - Economia e Amministrazione delle Imprese Hadley C. Taylor Progettazione di Basi di Dati Progettazione Fisica – Utilizza Schema Logico per determinare • parametri prestazionali del DBMS – – – – Dimensioni iniziali ed espansione dei file Contiguità di allocazione Dimensioni aree di swapping … • e caratteristiche della tabelle – Individuazione Indici da definire per ciascuna tabella – Tipo e dimensione degli attributi – Produce uno Schema Fisico Sistemi di Elaborazione dell’Informazione Economia del Commercio Internazionale - Economia e Amministrazione delle Imprese Hadley C. Taylor 24