Componenti di un DBMS Componenti di un DBMS

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