Basi di Dati

Click here to load reader

  • date post

    23-Jan-2016
  • Category

    Documents

  • view

    32
  • download

    3

Embed Size (px)

description

Basi di Dati. Tecnologia di un DBMS: Concorrenza e Affidabilità Concetti Avanzati. versione 2.0. Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina). Tecnologia DBMS >> Sommario. Concetti Avanzati. Transazioni proprietà “acide” - PowerPoint PPT Presentation

Transcript of Basi di Dati

  • Basi di DatiTecnologia di un DBMS:Concorrenza e AffidabilitConcetti Avanzativersione 2.0Questo lavoro concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

    G. Mecca - [email protected] - Basi di Dati

  • Concetti AvanzatiTransazionipropriet aciderapporto con il S. O.ConcorrenzaconsistenzaisolamentoAffidabilitArchitettura di un DBMSTecnologia DBMS >> Sommario

    G. Mecca - [email protected] - Basi di Dati

  • TransazioniTransazionesequenza di operazioni effettuate da una applicazione sulla base di datiTransazioni semplicies: aggiungi un nuovo studenteTransazioni complessees: bonifico bancario Approccio alla descrizione: sviluppatoriTecnologia DBMS >> Concetti Avanzati >> Transazioni

    G. Mecca - [email protected] - Basi di Dati

  • TransazioniNormalmente: modalit non concatenatauna transazione per operazione (autocommit)Conseguenzail completamento di unoperazione della transazione non implica necessariamente il completamento delle successivepossibilit di inconsistenze nella base di dati Tecnologia DBMS >> Concetti Avanzati >> Transazioni

    G. Mecca - [email protected] - Basi di Dati

  • TransazioniModalit concatenatauna transazione contiene pi operazionitutte le operazioni della transazione vengono eseguite oppure non ne viene eseguita nessuna (esecuzione atomica)Inizio della transazionesintassi non standard SQL:1999: START TRANSACTION)in PgSQL: START TRANSACTION (>=7.3) oppure BEGIN TRANSACTIONTecnologia DBMS >> Concetti Avanzati >> Transazioni

    G. Mecca - [email protected] - Basi di Dati

  • TransazioniFine della transazioneistruzioni COMMIT e ROLLBACK (ABORT) (standard SQL-92)Esito della transazioneesecuzione come unit indivisibileCOMMIT: rende permanenti le operazionierrore: operazioni annullate dal sistemaROLLBACK: annulla esplicitamente le operazioniTecnologia DBMS >> Concetti Avanzati >> Transazioni>> esempio di transazionecommit con successocommit dopo errorerollback

    G. Mecca - [email protected] - Basi di Dati

  • Transazioni: La Base di Dati dei VideoTecnologia DBMS >> Concetti Avanzati >> TransazioniCREATE TABLE Videoc ( cod integer PRIMARY KEY, titolo varchar(50) NOT NULL, regista varchar(20), quantita integer DEFAULT 1, prezzo numeric(4,2));CREATE TABLE Noleggi ( video integer NOT NULL REFERENCES Videoc(cod), tessera char(4) NOT NULL REFERENCES Tessere(cod), data date NOT NULL, PRIMARY KEY (video, tessera, data));CREATE TABLE Tessere ( cod char(4) PRIMARY KEY, nomeCliente varchar(50), indirizzo varchar(50), totalenoleggi integer DEFAULT 0);BEGIN TRANSACTION; INSERT INTO Noleggi VALUES (110, pp02, 2002-04-15); UPDATE Videoc SET quant.=quant.-1 WHERE cod=110; UPDATE Tessere SET totn.=totn.+1 WHERE cod=pp02;COMMIT;Esempio: noleggio di una videocassetta

    G. Mecca - [email protected] - Basi di Dati

  • Propriet ACIDE delle TransazioniAtomicittutte le operazioni oppure nessunaConsistenzastati consistenti della base di datiIsolamentocorrettezza dellaccesso concorrenteDurevolezzaeffetto persistente sulla base di dati (guasti)Tecnologia DBMS >> Concetti Avanzati >> Transazioni

    G. Mecca - [email protected] - Basi di Dati

  • Gestione delle Transazioni in un DBMSDue moduli fondamentaliGestore della concorrenzagarantisce isolamento e consistenzaimplementa tecniche pi sofisticate di sincr.Gestore dellaffidabilitgarantisce atomicit e durevolezzautilizza un file di registrazioni (log) per consentire il recupero in caso di guastiTecnologia DBMS >> Concetti Avanzati >> Transazioni

    G. Mecca - [email protected] - Basi di Dati

  • Gestione della ConcorrenzaAssume atomicit e durevolezzafornite dal gestore dellaffidabilit >>Due obiettivi fondamentaligarantire la consistenza della base di dati (partendo da uno stato consistente, la transazione genera uno stato consistente)garantire lisolamento delle transazioni (le transazioni devono essere eseguite come se fossero isolate)Tecnologia DBMS >> Concetti Avanzati >> Gestione della Concorrenza

    G. Mecca - [email protected] - Basi di Dati

  • ConsistenzaImpone i vincoli di integritdefiniti nel DDL (pi eventuali trigger)Vincoli di riferimentola verifica pu essere immediata o differitaIstruzione SET CONSTRAINTSSET CONSTRAINTS ALL DEFERRED;Vincoli differibili (deferrable)i vincoli vengono verificati solo al COMMITTecnologia DBMS >> Concetti Avanzati >> Gestione della Concorrenza

    G. Mecca - [email protected] - Basi di Dati

  • ConsistenzaEsempio: in Noleggivideo integer NOT NULL REFERENCES Videoc(cod) DEFERRABLE;Tecnologia DBMS >> Concetti Avanzati >> Gestione della ConcorrenzaBEGIN TRANSACTION;SET CONSTRAINTS ALL DEFERRED; INSERT INTO Noleggi VALUES (200, pp02, 2002-04-15); INSERT INTO Videoc VALUES (200, Clerks, ...); UPDATE Videoc SET quantita=quantita-1 WHERE cod=200;COMMIT;Attenzione: partedellintegrit a carico del programmatore (in questo caso nonviene aggiornatoil totalenoleggi dellatessera)

    G. Mecca - [email protected] - Basi di Dati

  • IsolamentoLesecuzione di una transazione deve essere indipendente da quella delle altreStrategia di esecuzione (schedule)ordine di esecuzione delle operazioniCorrettezza di una strategia concorrentepropriet di serializzabilitil risultato equivalente a quello di unesecuzione seriale (in ordine qualsiasi)evita vari problemi di esecuzione (>>)Tecnologia DBMS >> Concetti Avanzati >> Gestione della Concorrenza

    G. Mecca - [email protected] - Basi di Dati

  • Gestione dellAffidabilitDue obiettivi fondamentaligarantire latomicit delle transazionigarantire la durevolezza degli effetti, anche in caso di guasti (recupero della base di dati)Idee di baseregistrare tutte le azioni eseguite in un file di registro (log)mantenere copie dei dati e del log (mirror)strettamente legato alla gestione del bufferTecnologia DBMS >> Concetti Avanzati >> Gestione dellAffidabilit

    G. Mecca - [email protected] - Basi di Dati

  • Gestione dellAffidabilitFile di registro (log)si registrano tutte le istruzioni di aggiornamentotutte le istruzioni di start transactiontutte le istruzioni committutte le istruzioni rollbackFormato dei record del logciascun record del log registra la modifica di un record della base di dati da parte di una transazione

    Tecnologia DBMS >> Concetti Avanzati >> Gestione dellAffidabilit

    G. Mecca - [email protected] - Basi di Dati

  • Gestione dellAffidabilitProtocollo di scrittura anticipataWrite Ahead Logging (WAL)Ideale informazioni vengono scritte secondo un ordine che garantisce la ripristinabilit in caso di guastii record del log sono scritti prima dei record della base di dati (garantisce latomicit)i record del log di una transazione sono scritti tutti prima di effettuare il commit (garantisce la durevolezza)Tecnologia DBMS >> Concetti Avanzati >> Gestione dellAffidabilit

    G. Mecca - [email protected] - Basi di Dati

  • Gestione dellAffidabilitAttenzionein ogni istante parte delle pagine del disco sono nel buffer in memoria centralese sono state modificate, in caso di guasto si perdono le modifichePunto di controllo (checkpoint)fotografia stabile della situazione della base di dati in un certo istanteinformazioni sulle transazioni attive in quel momentoscrittura su disco delle pagine relative del bufferTecnologia DBMS >> Concetti Avanzati >> Gestione dellAffidabilit

    G. Mecca - [email protected] - Basi di Dati

  • Gestione dellAffidabilitSituazione di guastoes: corrente, rottura disco, crash sistemaProblema: ripristinare la base di datiripetere lesecuzione delle transazioni a partire dal contenuto del logattenzione alle transazioni interrotte a metAlgoritmo ARIESsul log viene localizzato il primo checkpointazione di ripetizione (in avanti)azione di annullamento (indietro)Tecnologia DBMS >> Concetti Avanzati >> Gestione dellAffidabilit

    G. Mecca - [email protected] - Basi di Dati

  • Gestione dellAffidabilitLocalizzazione del checkp.Tecnologia DBMS >> Concetti Avanzati >> Gestione dellAffidabilitFase 1: Analisiricerca di transazioni concluse e fallite dal checkpointFase 2: REDOripetizione di tutte le azioni delle transazioni attiveFase 3: UNDOannullamento di tutte le azioni delle transazioni interrotte

    G. Mecca - [email protected] - Basi di Dati

  • Gestione dellAffidabilitDescrizione semplificataTipicamentein caso di interruzione improvvisa, il recupero completamente automaticosupponendo di avere a disposizione log e checkpointes: PostgreSQL /var/lib/pgsql/dataal riavvio la base di dati viene ripristinataTecnologia DBMS >> Concetti Avanzati >> Gestione dellAffidabilit

    G. Mecca - [email protected] - Basi di Dati

  • Gestione dellAffidabilitTecniche per laffidabilitmantenere copie del log; es: mirrormantenere copie di backup della base di datiCopie della base di dati (dump)copia di /var/lib/pgsql/data (a DBMS fermo)pg_dump: estrae un file di comandi esempio: pg_dump U pguser deputati > deputati.sql psql d deputati f deputati.sqlTecnologia DBMS >> Concetti Avanzati >> Gestione dellAffidabilit

    G. Mecca - [email protected] - Basi di Dati

  • Architettura di un DBMSTecnologia DBMS >> Concetti Avanzati >> Architettura di un DBMS

    G. Mecca - [email protected] - Basi di Dati

  • Architettura di un DBMSPostgreSQLpiattaforma LinuxtransazionaleSQL-92 intermediateestensioni SQL:1999sicurezza (connessioni in chiaro e cifrate)multi-version concurrency controlWALTecnologia DBMS >> Concetti Avanzati >> Architettura di un DBMS