Please enable JavaScript.
Coggle requires JavaScript to display documents.
Architetture e Database Distribuiti, Le Transazioni nelle Basi di Dati,…
Architetture e Database Distribuiti
Architettura Client-Server
Definizione
Tecnica strutturazione software
Interfaccia di servizi pubblica
Componenti
Client: richiede servizi e presentazione
Server: fornisce servizi e gestione dati
Rete: trasferimento comandi e risultati
Linguaggio SQL
Separazione ambienti
Formulazione query (Client)
Esecuzione query (Server)
Database Distribuiti
Definizione
Controllo DBMS unico
Dati su computer distinti e distanti
Interconnessione in rete
Funzioni DBMS
Trasparenza locazione dati
Accesso concorrente
Integrità dei dati
Vantaggi
Affidabilità e disponibilità
Scalabilità e modularità
Riflesso struttura organizzativa
Protezione dati sensibili
Ottimizzazione prestazioni locale
Economicità hardware (rete di piccoli DB)
Svantaggi e Sfide
Complessità di gestione e progettazione
Costi elevati personale specializzato
Procedure di sicurezza critiche (crittografia)
Difficoltà mantenimento integrità
Necessità di competenze elevate
Classificazioni e Problemi
Tipologie
Rete: LAN o WAN
DBMS: Omogeneo o Eterogeneo
Problematiche
Autonomia locale
Cooperazione tra DB
Efficienza
Affidabilità transazioni multi-server
Le Transazioni nelle Basi di Dati
Definizione
Unità di lavoro applicativo
Interazione con DB
Principio "O tutto o niente"
Proprietà ACID
Atomicità
Eseguita come un tutt'uno
Rollback in caso di errore
Consistenza
Rispetto vincoli integrità
Isolamento
Gestione concorrenza
Problemi: Lost Update
Problemi: Dirty Read
Problemi: Unrepeatable Read
Problemi: Phantom Row
Durabilità
Protezione da guasti
Permanenza del commit
Comandi SQL
BEGIN TRANSACTION (Inizio)
COMMIT (Conferma)
ROLLBACK (Annullamento)
Esito
Positivo (Commit)
Esplicito: Comando
Implicito: DDL
Negativo (Rollback)
Esplicito: Comando
Implicito: Fallimento
Scenari Complessi
Database Distribuiti
Coinvolgimento più DB
Esempio Amazon/Banca
Atomicità globale
Gestione Privilegi SQL (GRANT e REVOKE)
GRANT
Funzione
Concedere privilegi
Sintassi
Privilegi (ALTER, DELETE, INDEX, INSERT, SELECT, UPDATE)
Lista colonne (opzionale)
ON oggetto
TO utente/PUBLIC
Opzioni Speciali
ALL (tutti i privilegi)
WITH GRANT OPTION (permesso di delega)
REVOKE
Funzione
Revocare privilegi
Sintassi
Privilegi specifici o ALL
ON oggetto
FROM utente/PUBLIC
Esempi
GRANT SELECT
Su colonne cognome, nome
Tabella anagrafica
Destinatario PUBLIC
REVOKE SELECT
Tabella anagrafica
Da PUBLIC