Administração e Optimização de BDs
|
|
- Leonardo Carreira
- 5 Há anos
- Visualizações:
Transcrição
1 Departamento de Engenharia Informática 2010/2011 Administração e Optimização de BDs Mini-Projecto 3 A entregar a 7 de Maio de º semestre A resolução deve ser claramente identificada com o número de grupo e entregue sob a forma de um relatório impresso, seguindo o template dado na página da cadeira. A entrega electrónica deve incluir o código Java com a solução da pergunta Uma instituição bancária nacional implementou um novo tipo de produto denominado conta casada que liga duas contas bancárias e permite que sejam efectuados levantamentos a descoberto desde que as soma dos saldos das contas participantes permaneça positiva. Assuma que o saldo inicial da primeira conta (conta A) é 200 euro e o da segunda (conta B) é 300 euro. Ou seja, o saldo conjunto é de 500 euro no total. Suponha que são submetidos dois pedidos de levantamento simultâneos (i.e., executados concorrentemente) de valores diferentes para as mesmas contas conjuntas, um no valor de 150 euro e outro no valor de 450. Note que em conjunto não deverá ser possível efetuar o levantamento euro. Os levantamentos são representados pelas transações T1 e T2 como se segue: T1: BEGIN TRANSACTION SELECT Saldo, Assoc INTO SaldoA, ContaB FROM Contas WHERE NumConta = A SELECT Saldo INTO SaldoB FROM Contas WHERE NumConta = ContaB IF (SaldoA + SaldoB > 150) THEN UPDATE Contas SET Saldo = Saldo WHERE NumConta = A END IF COMMIT T2: BEGIN TRANSACTION SELECT Saldo, Assoc INTO SaldoB, ContaA FROM Contas WHERE NumConta = B SELECT Saldo INTO SaldoA FROM Contas WHERE NumConta = ContaA IF (SaldoA + SaldoB > 450) THEN UPDATE Contas SET Saldo = Saldo WHERE NumConta = B END IF COMMIT Indique como podem variar os resultados e a execução da transação T1 consoante os diferentes níveis de isolamento. Tenha o cuidado de indicar problemas diferentes em cada uma das alíneas. Sugestão: Apresente para cada alínea um escalonamento em que T1 tenha um comportamento diferente consoante o nível de isolamento Diferenças entre a execução no nível de isolamento READ UNCOMMITED, face ao nível de isolamento READ COMMITED; IST/DEI Pág. 1 de 12
2 1.2. Diferenças entre a execução no nível de isolamento READ COMMITTED, face ao nível de isolamento READ COMMITTED SNAPSHOT Diferenças entre a execução no nível de isolamento READ COMMITTED SNAPSHOT, face ao nível de isolamento SERIALIZABLE 2 Considere os seguintes dois escalonamentos para transacções concorrentes. T1 T2 T3 T1 T2 T3 R(B) R(C) R(C) R(B) R(A) W(B) W(A) R(B) W(B) R(C) W(C) R(A) R(C) W(A) R(B) W(B) W(B) W(C) R(B) R(A) W(B) R(B) R(A) W(B) W(A) W(A) 2.1. Construa os grafos de precedências para os escalonamentos apresentados Os escalonamentos apresentados são conflict-serializable? Justifique a sua resposta indicando, em caso afirmativo, quais seriam os escalonamentos série correspondentes Considere as instruções envolvidas no primeiro escalonamento apresentado. Coloque as instruções de trinco apropriadas, obedecendo ao protocolo strict two-phase locking Diga o que entente por escalonamento recuperável e indique em que medida é que o protocolo de locking usado na alínea anterior garante esta propriedade Podem ocorrer deadlocks sob o resultado da alínea 2.4? Justifique a sua resposta. 3 Considere o primeiro escalonamento do Exercício 2 e considere ainda que, inicialmente, o relógio do sistema está a zero e que todos os recursos da base de dados têm um read-timestamp e um write-timestamp igual a zero. Indique quais as acções que são tomadas por um protocolo de escalonamento baseado em timestamps quando o mesmo recebe a sequência de operações para as transacções concorrentes indicada (i.e., para cada operação, indicar se a mesma é executada ou não, justificar a decisão de execução ou não, e indicar as actualizações nos valores dos timestamps). 4 Considere o segundo escalonamento do Exercício 2. Indique quais as acções que são tomadas por um protocolo de escalonamento multi-versões, baseado em timestamps, quando o mesmo recebe a sequência de operações para as transacções indicadas. IST/DEI Pág. 2 de 12
3 5 Tomando como base as classes Java disponibilizadas na página Web da cadeira, implemente o algoritmo de recuperação ARIES. As classes disponibilizadas na página da cadeira permitem-lhe simular a escrita/leitura de páginas no disco (por forma a verificar o PageLSN), as estruturas de dados onde são armazenados o registos do log de recuperação, e as estruturas de dados auxiliares necessárias à execução do algoritmo ARIES. IST/DEI Pág. 3 de 12
4 Abaixo encontram-se as resoluções para os problemas propostos no Mini-Projecto 3. Resolução do Problema 1 1. Em termos abstractos, considerando as linhas das contas A e B, representadas pelo objectos A e B respectivamente, as transações T1 e T2 pode ser descritas através das seguintes sequências de operações: T1= R 1 (A); R 1 (B); R 1 (A); W 1 (A); C 1 T2= R 2 (B); R 2 (A); R 2 (B); W 2 (B); C Diferenças entre a execução no nível de isolamento READ UNCOMMITED, face ao nível de isolamento READ COMMITED; Podem existir Dirty Reads, por exemplo. T1 R(A) = 200 R(B) = -150 Dirty Read => Lê o valor escrito por T2 antes do commit de T2 e já não entra no IF e não faz o levantamento (houve um Dirty Read que não poderia existir com isolamento READ COMMITED) Commit T2 R(B) = 300 R(A) = 200 R(A) = 300; W(B,-150) Commit 1.2. Diferenças entre a execução no nível de isolamento READ COMMITTED, face ao nível de isolamento READ COMMITTED SNAPSHOT. Podem existir Non-Repeatable Reads e Lost Updates. Um Non-repeatable read não é possível com estas transações pois teria de haver uma situação em que uma das transações re-lesse o valor entretanto committed por outra. Isto é, uma sequência com o padrão: R 1 (A); W 2 (A); C 2 ; R 1 (A). No entanto, isto não é possível porque a escrita efectuada por T2 é W 2 (B) e não existe nenhuma escrita no objecto A. Os Lost Updates simples, na forma R 1 (A); R 2 (A); W 1 (A); W 2 (A); C 1 ; C 2 ; não é possível com isolamento READ COMMITED pois o commit C 1 iria abortar a execução. A sequência R 1 (A); R 2 (A); W 1 (A); C 1 ; W 2 (A); C 2 ; causa um lost update com o nível de isolamento READ COMMITED uma vez que W 2 (A) re-escreve o valor de W 1 (A) e faz commit. A sequência R 1 (A)=20; R 2 (A)=20; W 1 (A,30); C 1 ; R 2 (A)=30; W 2 (A,40); C 2 ; é um lost update que pode ocorrer em READ COMMITED mas nunca em IST/DEI Pág. 4 de 12
5 READ COMMITED SNAPSHOT uma vez que, em READ COMMITED SNAPSHOT, o objecto A após lido pela transação T1 não seria re-lido com outro valor dentro da mesma transação Diferenças entre a execução no nível de isolamento READ COMMITTED SNAPSHOT, face ao nível de isolamento SERIALIZABLE. No nível de isolamento READ COMMITED SNAPSHOT podem ocorrer Read Skews e Write Skews que não ocorrem no nível de isolamento SERIALIZABLE. T1 T2 R(A) = 200 R(B) = 300 R(A) = 200 R(B) = 200 R(B) = 300; W(B, -150) R(A) = 200; W(A, 50) Write Skew => Mesmo com READ_COMMITED_SNAPSHOT o valor escrito por T2 e o levantamento é efectuado; T1 faz commit e o valor da conta fica a Qualquer escalonamento com isolamento SERIALIZABLE não efectua um dos levantamentos. Commit Commit Resolução do Problema 2 Pergunta 2.1 Para o primeiro escalonamento teriamos um grafo com três nós (T1, T2, T3) e com arestas de T3 -> T1 (por B), T3 -> T2 (por B,C) e T1 -> T2 (por A,B). Para o segundo escalonamento teriamos um grafo com três nós (T1, T2, T3) e com arestas de T3 -> T1 (por B), T1 -> T2 (por A), T2 -> T3 (por B,C) e T2 -> T1 (por B) Pergunta 2.2 O primeiro escalonamento é conflict-serializable, uma vez que o grafo de precedências não apresenta ciclos. Um escalonamento série equivalente seria T3 -> T1 -> T2. O segundo IST/DEI Pág. 5 de 12
6 escalonamento não é conflict-serializable, uma vez que o grafo de precedências apresenta ciclos. Pergunta 2.3 Para o primeiro caso: T1 : L-S(A), R(A), L-X(A), W(A), L-S(B), R(B), L-X(B), W(B), U(A), U(B) T2 : L-S(C), R(C), L-S(B), R(B), L-X(B), W(B), L-S(A), R(A), L-X(A), W(A), U(A), U(B), U(C) T3 : L-S(B), R(B), L-S(C), R(C), L-X(B), W(B), L-X(C), W(C), U(B), U(C) Para o segundo caso: T1 : L-S(A), R(A), L-X(A), W(A), L-S(B), R(B), L-X(B), W(B), U(A), U(B) T2 : L-S(C), R(C), L-S(B), R(B), L-X(B), W(B), L-S(A), R(A), L-X(A), W(A), U(A), U(B), U(C) T2 : L-S(B), R(B), L-S(C), R(C), L-X(B), W(B), L-X(C), W(C), U(B), U(C) Pergunta 2.4 Um escalonamento é recuperável se tivermos que as transacções apenas fazem commit depois das transacções de cujas actualizações elas dependem já tiverem feito commit. O protocolo strict-2pl (onde os locks de escrita apenas são libertados depois da transacção ter sido confirmada) garante a geração de escalonamentos recuperáveis. Com um protocolo strict-2pl, apenas conseguimos obter locks de leitura sobre objectos se os locks de escrita tiverem sido libertados, i.e. se as actualizações concorrentes já tiverem sido confirmadas. Pergunta 2.5 Podem ocorrer deadlocks, pois o protocolo strict-2pl não oferece garantias sobre a não ocorrência de bloqueios mútuos entre duas ou mais transacções. Resolução do Problema 3 Vamos assumir que cada operação no escalonamento apresentado corresponde a uma unidade de tempo e vamos assumir um relógio linear com pontos 0, 1, 2, 3,... Vamos ainda assumir que cada transacção tem um timestamp correspondendo ao tempo de execução da sua primeira operação, i.e. TS(T1) = 3, TS(T2)=7, TS(T3) = 1 IST/DEI Pág. 6 de 12
7 Os timestamps de leitura e escrita originais, para os items, terão também o valor zero: read_ts(a) = read_ts(b) = read_ts(c) = 0 write_ts(a) = write_ts(b) = write_ts(c) = 0 Aplicando o protocol ao escalonamento apresentado, temos que o escalonamento se iria executar com sucesso: read_ts(a)=0, read_ts(b)=0, read_ts(c)=0, write_ts(a)=0, write_ts(b)=0, write_ts(c)=0 T3: read_item(b) TS(T3) > write_ts(b) Executar read_item(b) Colocar read_ts(b) <- max(read_ts(b), TS(T3)) = 1 read_ts(a)=0, read_ts(b)=1, read_ts(c)=0, write_ts(a)=0, write_ts(b)=0, write_ts(c)=0 T3: read_item(c) TS(T3) > write_ts(c) Executar read_item(c) Colocar read_ts(c) <- max(read_ts(c), TS(T3)) = 1 read_ts(a)=0, read_ts(b)=1, read_ts(c)=1, write_ts(a)=0, write_ts(b)=0, write_ts(c)=0 T1: read_item(a) TS(T1) > write_ts(a) Executar read_item(a) Colocar read_ts(a) <- max(read_ts(a), TS(T1)) = 3 read_ts(a)=3, read_ts(b)=1, read_ts(c)=1, write_ts(a)=0, write_ts(b)=0, write_ts(c)=0 T1: write_item(a) TS(T1) = read_ts(a) and TS(T1) > write_ts(a) Executar write_item(a) Colocar write_ts(a) <- max(write_ts(a), TS(T1)) = 3 read_ts(a)=3, read_ts(b)=1, read_ts(c)=1, write_ts(a)=3, write_ts(b)=0, write_ts(c)=0 T3: write_item(b) TS(T3) = read_ts(b) and TS(T3) > write_ts(b) Executar write_item(b) Colocar write_ts(b) <- max(write_ts(b), TS(T3)) = 1 IST/DEI Pág. 7 de 12
8 read_ts(a)=3, read_ts(b)=1, read_ts(c)=1, write_ts(a)=3, write_ts(b)=1, write_ts(c)=0 T3: write_item(c) TS(T3) = read_ts(c) and TS(T3) > write_ts(c) Executar write_item(c) Colocar write_ts(c) <- max(write_ts(c), TS(T3)) = 1 read_ts(a)=3, read_ts(b)=1, read_ts(c)=1, write_ts(a)=3, write_ts(b)=1, write_ts(c)=1 T2: read_item(c) TS(T2) > write_ts(c) Executar read_item(c) Colocar read_ts(c) <- max(read_ts(c), TS(T2)) = 7 read_ts(a)=3, read_ts(b)=1, read_ts(c)=7, write_ts(a)=3, write_ts(b)=1, write_ts(c)=1 T1: read_item(b) TS(T1) > write_ts(b) Executar read_item(b) Colocar read_ts(b) <- max(read_ts(b), TS(T1)) = 3 read_ts(a)=3, read_ts(b)=3, read_ts(c)=7, write_ts(a)=3, write_ts(b)=1, write_ts(c)=1 T1: write_item(b) TS(T1) = read_ts(b) and TS(T1) > write_ts(b) Executar write_item(b) Colocar write_ts(b) <- max(read_ts(b), TS(T1)) = 3 read_ts(a)=3, read_ts(b)=3, read_ts(c)=7, write_ts(a)=3, write_ts(b)=3, write_ts(c)=1 T1: write_item(b) TS(T1) = read_ts(b) and TS(T1) > write_ts(b) Executar write_item(b) Colocar write_ts(b) <- max(read_ts(b), TS(T1)) = 3 read_ts(a)=3, read_ts(b)=3, read_ts(c)=7, write_ts(a)=3, write_ts(b)=3, write_ts(c)=1 T2: read_item(b) TS(T2) > write_ts(b) Executar read_item(b) Colocar read_ts(b) <- max(read_ts(b), TS(T2)) = 7 IST/DEI Pág. 8 de 12
9 read_ts(a)=3, read_ts(b)=7, read_ts(c)=7, write_ts(a)=3, write_ts(b)=3, write_ts(c)=1 T2: write_item(b) TS(T2) = read_ts(b) and TS(T2) > write_ts(b) Executar write_item(b) Colocar write_ts(b) <- max(write_ts(b), TS(T2)) = 7 read_ts(a)=3, read_ts(b)=7, read_ts(c)=7, write_ts(a)=3, write_ts(b)=7, write_ts(c)=1 T2: read_item(a) TS(T2) > write_ts(a) Executar read_item(a) Colocar read_ts(a) <- max(read_ts(a), TS(T2)) = 7 read_ts(a)=7, read_ts(b)=7, read_ts(c)=7, write_ts(a)=3, write_ts(b)=7, write_ts(c)=1 T2: write_item(a) TS(T2) = read_ts(a) and TS(T2) > write_ts(a) Executar write_item(a) Colocar write_ts(a) <- max(write_ts(a), TS(T2)) = 7 read_ts(a)=7, read_ts(b)=7, read_ts(c)=7, write_ts(a)=7, write_ts(b)=7, write_ts(c)=1 Resolução do Problema 4 Para nos referirmos a versões, usamos A, B, C para referênciar a versão original (valor) de cada item, e depois usamos índices (1, 2,...) para nos referirmos a uma nova versão (e.g., A1, A2,...) read_ts(a)=0,read_ts(b)=0,read_ts(c)=0, write_ts(a)=0,write_ts(b)=0,write_ts(c)=0 TS(T1)=6, TS(T2)=1, TS(T3)=4 (Estes valores não se alteram) T2: ler_item(c) Executar ler_item(c) Colocar read_ts(c) <- max(read_ts(c),ts(t2)) = 1 read_ts(a)=0,read_ts(b)=0,read_ts(c)=1, write_ts(a)=0,write_ts(b)=0,write_ts(c)=0 T2: ler_item(b) IST/DEI Pág. 9 de 12
10 Executar ler_item(b) Colocar read_ts(b) <- max(read_ts(b),ts(t2)) = 1 read_ts(a)=0,read_ts(b)=1,read_ts(c)=1, write_ts(a)=0,write_ts(b)=0,write_ts(c)=0 T2: write_item(b) TS(T2) = read_ts(b) Executar write_item(b) (criando uma nova versão B1 de B) write_ts(b1) <- TS(T2) = 1, read_ts(b1) <- TS(T2) = 1 read_ts(a)=0,read_ts(b)=1,read_ts(b1)=1,read_ts(c)=1, write_ts(a)=0,write_ts(b)=0,write_ts(b1)=1,write_ts(c)=0 T3: ler_item(b) Executar ler_item(b) lendo o valor da versão B1 read_ts(b1) <- max(read_ts(b1),ts(t3)) = 4 read_ts(a)=0,read_ts(b)=1,read_ts(b1)=4,read_ts(c)=1, write_ts(a)=0,write_ts(b)=0,write_ts(b1)=1,write_ts(c)=0 T3: ler_item(c) Executar ler_item(c) read_ts(c) <- max(read_ts(c),ts(t3)) = 4 read_ts(a)=0,read_ts(b)=1,read_ts(b1)=4,read_ts(c)=4, write_ts(a)=0,write_ts(b)=0,write_ts(b1)=1,write_ts(c)=0 T1: ler_item(a) Executar ler_item(a) read_ts(a) <- max(read_ts(a),ts(t1)) = 6 read_ts(a)=6,read_ts(b)=1,read_ts(b1)=4,read_ts(c)=4, write_ts(a)=0,write_ts(b)=0,write_ts(b1)=1,write_ts(c)=0 T1: write_item(a) Executar write_item(a) (criando uma nova versão A1 de A) write_ts(a) <- TS(T1) = 6, read_ts(a) <- TS(T1) = 6 read_ts(a)=6,read_ts(a1)=6,read_ts(b)=1,read_ts(b1)=4,read_ts(c)=4, write_ts(a)=0,write_ts(a1)=6,write_ts(b)=0,write_ts(b1)=1,write_ts(c)=0 T3: write_item(b) Executar write_item(b) (criando uma nova versão B2 de B) write_ts(b2) <- TS(T3) = 4, IST/DEI Pág. 10 de 12
11 read_ts(b2) <- TS(T3) = 4 read_ts(a)=6,read_ts(a1)=6,read_ts(b)=1,read_ts(b1)=4,read_ts(b2)=4, read_ts(c)=4, write_ts(a)=0,write_ts(a1)=6,write_ts(b)=0,write_ts(b1)=1,write_ts(b2)=4, write_ts(c)=0 T3: write_item(c) Executar write_item(c) (criando uma nova versão C1 de C) write_ts(c1) <- TS(T3) = 4, read_ts(c1) <- TS(T3) = 4 read_ts(a)=6,read_ts(a1)=6,read_ts(b)=1,read_ts(b1)=4,read_ts(b2)=4, read_ts(c)=4,read_ts(c1)=4, write_ts(a)=0,write_ts(a1)=6,write_ts(b)=0,write_ts(b1)=1,write_ts(b2)=4, write_ts(c)=0,write_ts(c1)=4 T2: ler_item(a) Executar ler_item(a) lendo o valor da versão inicial de A read_ts(a) <- max(read_ts(a),ts(t3)) = 6 read_ts(a)=6,read_ts(a1)=6,read_ts(b)=1,read_ts(b1)=4,read_ts(b2)=4, read_ts(c)=4,read_ts(c1)=4, write_ts(a)=0,write_ts(a1)=6,write_ts(b)=0,write_ts(b1)=1,write_ts(b2)=4, write_ts(c)=0,write_ts(c1)=4 T1: ler_item(b) Executar ler_item(b) lendo o valor da versão B2 read_ts(b2) <- max(read_ts(b2),ts(t3)) = 6 read_ts(a)=6,read_ts(a1)=6,read_ts(b)=1,read_ts(b1)=4,read_ts(b2)=6, read_ts(c)=4,read_ts(c1)=4, write_ts(a)=0,write_ts(a1)=6,write_ts(b)=0,write_ts(b1)=1,write_ts(b2)=4, write_ts(c)=0,write_ts(c1)=4 T1: write_item(b) Executar write_item(b) (criando uma nova versão B3 of B) write_ts(b3) <- TS(T3) = 4, read_ts(b2) <- TS(T3) = 4 read_ts(a)=6,read_ts(a1)=6,read_ts(b)=1,read_ts(b1)=4,read_ts(b2)=6, read_ts(b3)=6,read_ts(c)=4,read_ts(c1)=4, write_ts(a)=0,write_ts(a1)=6,write_ts(b)=0,write_ts(b1)=1,write_ts(b2)=4, write_ts(b2)=6,write_ts(c)=0,write_ts(c1)=4 T2: write_item(a) Abort and Rollback T2 since read_ts(a) >TS(T2) IST/DEI Pág. 11 de 12
12 Uma vez que T3 tinha lido o valor de B que havia sido escrito por T2, a transacção T3 deve também ser abortada e desfeita pela técnica de recuperação (cascading rollback). Como tal, todos os efeitos de T2 e T3 têm de ser desfeitos, e apenas a transacção T1 iria terminar a sua execução. Resolução do Problema 5 O código Java com a resolução da Pergunta 5 encontra-se online na página da disciplina. IST/DEI Pág. 12 de 12
Administração e Optimização de BDs
Departamento de Engenharia Informática 2011/2012 Administração e Optimização de BDs Mini Projecto 3 A entregar a 4 de Maio de 2012 2º semestre A resolução deve ser claramente identificada com o número
Leia maisde Bases de Dados Exame 1
Ano lectivo 2011/2012 2 o semestre Administração e Optimização de Bases de Dados Exame 1 Regras O exame tem a duração de 2 horas. O exame é individual e com consulta. Poderá consultar o livro, slides da
Leia maisse a transação falhar entre os 3 passos 4 6, os passos 1 3 ficam sem efeito 4 read(b) Consistência
Bases de Dados Transacções Propriedades ACID 1 T Atomicidade i : read(a) 2 A := A 50 se a transação falhar entre os 3 write(a) passos 4 6, os passos 1 3 ficam sem efeito 4 read(b) Consistência 5 B := B
Leia maisAdministração e Optimização de BDs
Departamento de Engenharia Informática 2010/2011 Administração e Optimização de BDs Mini-Projecto 4 A entregar a 28 de Maio de 2011 2º semestre A resolução deverá ser identificada com o número de grupo
Leia maisBases de Dados 2013/2014 Controlo de Concorrência
Bases de Dados 2013/2014 Controlo de Concorrência Helena Galhardas Sumário Serialização e Protocolos de Locking! 2PL Two Phase Locking! Tratamento de Deadlocks! Níveis de Isolamento em SQL! Aquisição Automática
Leia maisBDII SQL TRANSAÇÃO Revisão 2
exatasfepi.com.br BDII SQL TRANSAÇÃO Revisão 2 André Luís Duarte Honra a teu pai e a tua mãe (que é o primeiro mandamento com promessa), para que te vá bem, e sejas de longa vida sobre a terra.(ef 6:2,3)
Leia maisSistemas de Bases de Dados 2.º teste (com consulta limitada: 2 folhas identificadas) - Duração: 2 horas
DI-FCT/UNL 6 de junho de 2018 Sistemas de Bases de Dados 2.º teste (com consulta limitada: 2 folhas identificadas) - Duração: 2 horas Nome: Grupo 1 (7 valores) 1 a) Quais são as 4 propriedades ACID que
Leia maisSistemas de Bases de Dados 2.º teste (com consulta limitada: 2 folhas identificadas) - Duração: 2 horas
DI-FCT/UNL 6 de junho de 2018 Sistemas de Bases de Dados 2.º teste (com consulta limitada: 2 folhas identificadas) - Duração: 2 horas N. º : Nome: Grupo 1 (7 valores) 1 a) Quais são as 4 propriedades ACID
Leia maisSistemas de Gestão de Bases de Dados e-fólio B. Resolução e Critérios de Correção
21103 - Sistemas de Gestão de Bases de Dados 2015-2016 e-fólio B Resolução e Critérios de Correção PARA A RESOLUÇÃO DO E-FÓLIO, ACONSELHA-SE QUE LEIA ATENTAMENTE O SEGUINTE: 1) O e-fólio é constituído
Leia maisse a transacção falhar entre os passos 4 6, os passos 1 3 ficam sem efeito
Bases de Dados Transacções Propriedades ACID Atomicidade se a transacção falhar entre os passos 4 6, os passos 1 3 ficam sem efeito Consistência a soma A+B tem de ser igual antes e depois Isolamento nenhuma
Leia maisBases de Dados 2013/2014 Transações. Helena Galhardas. Sumário!
Bases de Dados 2013/2014 Transações Helena Galhardas Sumário! Conceito de Transação! Propriedades ACID! Conflitos e Serializabilidade! Recuperabilidade! Protocolos de controlo de concorrência! Transações
Leia maisde Bases de Dados Exame 2
Ano lectivo 2009/2010 2 o semestre Administração e Optimização de Bases de Dados Exame 2 Regras O exame tem a duração de 2 horas. O exame é individual e com consulta Só poderá abandonar a sala ao fim de
Leia maisde Bases de Dados Exame 1
Ano lectivo 009/0 o semestre Administração e Optimização de Bases de Dados Exame Regras O exame tem a duração de horas. O exame é individual e com consulta Só poderá abandonar a sala ao fim de hora, mediante
Leia maisSistemas de Informação e Bases de Dados 2012/2013. Transações. Alberto Sardinha
Sistemas de Informação e Bases de Dados 2012/2013 Transações Alberto Sardinha Sumário! Conceito de Transação! Propriedades ACID! Transações em SQL! Referências Raghu Ramakrishnan, Database Management Systems,
Leia maisBanco de Dados I 6 Transações e Controle de Concorrência
Banco de Dados I 6 Transações e Controle de Concorrência Grinaldo Lopes de Oliveira (grinaldo( grinaldo@gmail.com) Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas * Material com créditos
Leia maisCriando Transações. Prof. Fernanda Baião. TbEstoqueLivros. TbEstoqueLivros. ID IDLoja IDLivro Estoque
Criando Transações Prof. Fernanda Baião fernanda.baiao@uniriotec.com.br SQL Tabelas Exemplo TbAutor TbAutor TbEditora CNPJ TbEditora CNPJ TbLivro ISBN Autor Editora TbLivro ISBN Autor Editora TbLoja CNPJ
Leia maisINSTITUTO SUPERIOR TÉCNICO Administração e Optimização de Bases de Dados
Número: Nome: -------------------------------------------------------------------------------------------------------------- INSTITUTO SUPERIOR TÉCNICO Administração e Optimização de Bases de Dados Exame
Leia maisBases de Dados. Exame de 1 a Época. Identifique todas as folhas. Exame sem consulta. Duração: 2h30.
Bases de Dados Exame de 1 a Época 2012/2013 Identifique todas as folhas. Exame sem consulta. Duração: 2h30. Grupo 1 Número: 1a) Apresente o diagrama Entidade-Associação (E-A) para um novo jogo multiutilizador
Leia maisINSTITUTO SUPERIOR TÉCNICO Administração e Optimização de Bases de Dados
Número: Nome: 1 -------------------------------------------------------------------------------------------------------------- INSTITUTO SUPERIOR TÉCNICO Administração e Optimização de Bases de Dados Exame
Leia maisBanco de Dados I. Aula 18 - Prof. Bruno Moreno 22/11/2011
Banco de Dados I Aula 18 - Prof. Bruno Moreno 22/11/2011 Plano de Aula Introdução SPT Sistemas monousuários e multiusuários Sistemas multiprogramados Transação - Definição Concorrência de Transações Log
Leia maisControle de Transação
Curso: Ciência da Computação Disciplina: Banco de Dados Campus Lages Controle de Transação Prof. Edjandir C. Costa edjandir.costa@ifsc.edu.br Agenda Conceitos de transação e sistema Propriedades desejáveis
Leia maisLista de Exercícios 12 Transações
UNIVERSIDADE DE SÃO PAULO INSTITUTO DE CIÊNCIAS MATEMÁTICAS E DE COMPUTAÇÃO DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO SCC0141 - Bancos de Dados e Suas Aplicações Prof. José Fernando Rodrigues Júnior 2º semestre
Leia maisAdministração e Optimização de BDs
Departamento de Engenharia Informática 2010/2011 Administração e Optimização de BDs Mini-Projecto 2 Entrega a 16 de Abril de 2011 2º semestre A resolução deve ser claramente identificada com o número de
Leia maisrevisão Controle de Concorrência com Locks Bancos de Dados I 2015/02
Bancos de Dados I 2015/02 revisão Controle de Concorrência com Locks Transações em SQL Prof. Altigran Soares da Silva Atomico=transaction manager Consistencia=controle concorrencia/commit Isolamento=controle
Leia maisBases de Dados. Exame de 2 a Época. Identifique todas as folhas. Responda a cada grupo nas páginas respectivas do grupo. Exame sem consulta.
Bases de Dados Exame de 2 a Época 2012/2013 Identifique todas as folhas. Responda a cada grupo nas páginas respectivas do grupo. Exame sem consulta. Duração: 2h30. Grupo 1 Número: Nome: 1a) Considere que
Leia maisProcessamento de Transações
Processamento de Transações Processamento de Transações Transações Atômicas: Unidades lógicas de processamento sobre um banco de dados. Controle de Concorrência: Garantia de que múltiplas transações ativadas
Leia maisProcessamento de Transações
Processamento de Transações Banco de Dados II Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM é
Leia maisBases de Dados. Exame de 1 a Época. Identifique todas as folhas. Responda a cada grupo nas páginas respectivas do grupo. Exame sem consulta.
Bases de Dados Exame de 1 a Época 2013/2014 Identifique todas as folhas. Responda a cada grupo nas páginas respectivas do grupo. Exame sem consulta. Duração: 2h30. Grupo 1 Número: Nome: 1a) O primeiro
Leia maisProcessamento de Transações
Processamento de Transações Processamento de Transações ) Transações Atômicas: Unidades lógicas de processamento sobre um banco de dados. ) Controle de Concorrência: Garantia de que múltiplas transações
Leia maisTransacções Atómicas Distribuídas
Transacções Atómicas Distribuídas Exemplo O Senhor Silva é possuidor de duas contas em bancos diferentes (A e B) e pretende fazer um movimento de 100.000$00 do banco A para o banco B. O procedimento para
Leia maisProcessamento de Transações II
UNIVERSIDADE FEDERAL DO MARANHÃO - UFMA Banco de Dados II Processamento de Transações II Carlos Eduardo Portela Serra de Castro * Processamento de Transações II Sumário Definindo Plano de Execução Baseado
Leia maisBases de Dados. Parte VI SQL em Ambiente de Programação
Bases de Dados Parte VI SQL em Ambiente de Programação 1 SQL em Ambiente de Programação! O SQL pode ser usado de forma interactiva por utilização do interface normalmente disponibilizado pelo próprio SGBD
Leia maisPCS3413. Engenharia de So-ware e Banco de Dados. Aula 21. Escola Politécnica da Universidade de São Paulo
PCS3413 Engenharia de So-ware e Banco de Dados Aula 21 Escola Politécnica da Universidade de São Paulo 1 TRANSAÇÃO E CONTROLE DE CONCORRÊNCIA Transação unidade de execução de programa que acessa e, possivelmente,
Leia maisProcessamento de Transações. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri
Processamento de Transações Laboratório de Bases de Dados Introdução Ambiente multiusuário vários usuários utilizam o mesmo sistema ao mesmo tempo múltiplos programas (transações) compartilham a mesma
Leia maisConceitos. Gestão de Transacções. Transacção. Conceitos e Propriedades. Controlo de Concorrência. Recuperação. Transacções no SGBD Oracle
Conceitos e Propriedades Recuperação Transacções no SGBD Oracle Conceitos Transacção Uma acção ou um conjunto de acções, realizadas por um único utilizador ou programa de aplicação que acedem ou alteram
Leia maisSistemas Distribuídos Transações
Sistemas Distribuídos Transações Vinícius Fernandes Soares Mota 1 2 Transações Transação: Unidade lógica de trabalho abrange um conjunto de operações de manipulação de dados que executam uma única tarefa
Leia maisProcessamento de Transações. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri
Processamento de Transações Banco de Dados Introdução Ambiente multiusuário vários usuários utilizam o mesmo sistema ao mesmo tempo múltiplos programas (transações) compartilham a mesma CPU Forma de execução
Leia maisTécnicas de Controle de Concorrência
Técnicas de Controle de Concorrência Pessimistas supõem que sempre ocorre interferência entre transações e garantem a serializabilidade enquanto a transação está ativa técnicas bloqueio (locking) timestamp
Leia maisSumário. Introdução a Transações
Sumário 1 Introdução ao Processamento de Consultas 2 Otimização de Consultas 3 Plano de Execução de Consultas 4 Introdução a Transações 5 Recuperação de Falhas 6 Controle de Concorrência 7 Fundamentos
Leia maisAdministração e Optimização de BDs 2º semestre
DepartamentodeEngenhariaInformática 2009/2010 AdministraçãoeOptimizaçãodeBDs2ºsemestre Mini Projecto4 Aentregara26deMaiode2010 Aresoluçãodeveráseridentificadacomonúmerodegrupoeentregue electronicamentenosistemafénixenaaula.
Leia maisResolução e Critérios de Correção U.C Sistemas de Gestão de Bases de Dados. 13 de fevereiro de 2014 INSTRUÇÕES
Resolução e Critérios de Correção U.C. 21103 Sistemas de Gestão de Bases de Dados 13 de fevereiro de 2014 Ministério da Educação e Ciência p-fólio INSTRUÇÕES O tempo de duração da prova de p-fólio é de
Leia maisBD II (SI 587) Transações em Banco de Dados. Prof. Josenildo Silva
BD II (SI 587) Transações em Banco de Dados Prof. Josenildo Silva jcsilva@ifma.edu.br Nota Estes slides são adaptados de Database System Concepts, 6th Ed. Silberschatz, Korth and Sudarshan distribuídos
Leia maisResolução e Critérios de Correção U.C Sistemas de Gestão de Bases de Dados. 18 de julho de 2012
Ministério da Educação e Ciência p-fólio Resolução e Critérios de Correção U.C. 21103 Sistemas de Gestão de Bases de Dados 18 de julho de 2012 INSTRUÇÕES O tempo de duração da prova de p-fólio é de 90
Leia maisInstituto Federal de Educação, Ciência e Tecnologia de São Paulo - IFSP
Instituto Federal de Educação, Ciência e Tecnologia de São Paulo - IFSP Campus de Caraguatatuba Tecnólogo em Análise e Desenvolvimento de Sistemas 1 0 Semestre de 2013 BD I Prof. Lineu Mialaret Aula 25:
Leia maisTransacções concorrentes exemplo. B := B 50 write(b) read(a) A := A + 50 write(a)
Bases de Dados Concorrência Transacções concorrentes exemplo T 1 : B := B 50 write(b) A := A + 50 write(a) T 2 : display(a+b) T 2 pode dar um resultado inconsistente quando executada em paralelo com T
Leia maisBases de Dados 2006/2007 Exame
Exame 12 de Janeiro de 2007 Instituto Superior Técnico Departamento de Engenharia Informática Regras O exame tem a duração de 2h30m. A folha de capa deve ser identificada com o nome e número do aluno.
Leia maisSincronização e Concorrência
Tópicos da Aula Sincronização e Concorrência Sincronização sincronização interna sincronização externa sincronização de relógio métodos de sincronização Cristian Berkeley tempo lógico Controle de Concorrência
Leia maisLock. Administração de Banco de Dados
Lock Administração de Banco de Dados 1 Tópicos o Lock o Tipos de Lock o Recursos que podem ser bloqueados o Dica de Lock sobre uma Tabela o Dica de Lock em uma Sessão o Compatibilidade entre Locks 2 Lock
Leia maisExercícios Módulo Banco de Dados I (08/07/2006)
UNIVERSIDADE FEDERAL DE VIÇOSA CENTRO DE CIÊNCIAS EXATAS E TECNOLOGICAS DEPARTAMENTO DE INFORMÁTICA Exercícios Módulo Banco de Dados I (08/07/2006) Marcelo Santos Daibert João Carlos da Silva Juiz de Fora
Leia maisTransacções em Sistemas Distribuídos
Transacções em Sistemas Distribuídos Função transferir Primeira solução transferir(contaa, contab, Montante) { bancoa.lersaldo (contaa, SaldoA); bancob.lersaldo (contab, SaldoB); bancoa.actualizarsaldo
Leia maisBases de Dados. Parte VI SQL em Ambiente de Programação e Transações. Bases de Dados 2015/2016. Ricardo Rocha / Fernando Silva DCC-FCUP
Bases de Dados Parte VI SQL em Ambiente de Programação e Transações (Estes slides são a continuidade evolutiva dos slides de Ricardo Rocha (2005-2014) e de Fernando Silva (1995-2000), e são baseados no
Leia maisSumário. Controle de Concorrência
Sumário 1 Introdução ao Processamento de Consultas 2 Otimização de Consultas 3 Plano de Execução de Consultas 4 Introdução a Transações 5 Recuperação de Falhas 6 Controle de Concorrência 7 Fundamentos
Leia maisCONCORRÊNCIA. Buscando aumentar os níveis de concorrência redução da espera em detrimento do isolamento, a SQL definiu alguns níveis de isolamento.
CONCORRÊNCIA 1. Introdução O termo concorrência se refere ao fato de que os SGBDs em geral permitem que muitas transações tenham acesso ao mesmo banco de dados ao mesmo tempo. Em um sistema desse tipo,
Leia maisOracle Comandos para Processamento de Transações
Oracle Comandos para Processamento de Transações Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri Transação Unidade lógica de trabalho contém um ou mais comandos SQL para manipulação
Leia maisConcorrência. Prof. Márcio Bueno. Material do Prof. Paulo Pires
Concorrência Prof. Márcio Bueno {bd2tarde,bd2noite}@marciobueno.com Material do Prof. Paulo Pires Controle de Concorrência SGBD sistema multiusuário em geral diversas transações executando simultaneamente
Leia maisResolução e Critérios de Correção U.C Sistemas de Gestão de Bases de Dados. 13 de julho de 2015 INSTRUÇÕES
Resolução e Critérios de Correção U.C. 21103 Sistemas de Gestão de Bases de Dados 13 de julho de 2015 Ministério da Educação e Ciência p-fólio INSTRUÇÕES O tempo de duração da prova de p-fólio é de 90
Leia maisIntrodução. Processamento de Transações. Introdução. Introdução. Transações. Transações
Ciência da Computação GBC043 Sistemas de Banco de Dados Processamento de Transações Profa. Maria Camila Nardini Barioni camila.barioni@ufu.br Bloco B - sala 1B137 Introdução... SGBDs são em geral multi-usuários
Leia maisSistemas Distribuídos Aula 20
Sistemas Distribuídos Aula 20 Aula passada Redes sem fio Coordenando acesso ao meio Eleição de líder Aula de hoje Sistema transacional ACID Exemplos 2-Phase Locking Sistema Transacional Considere sistema
Leia maisPROCESSAMENTO DE TRANSAÇÕES
UNINGÁ UNIDADE DE ENSINO SUPERIOR INGÁ FACULDADE INGÁ CIÊNCIA DA COMPUTAÇÃO PROCESSAMENTO DE TRANSAÇÕES Profº Erinaldo Sanches Nascimento Objetivos Discutir a necessidade de controle de concorrência e
Leia maisGBC043 - Sistemas de Banco de Dados Lab8 : Transações no PostgreSql
GBC043 - Sistemas de Banco de Dados Lab8 : Transações no PostgreSql Ilmério Reis da Silva ilmerio@facom.ufu.br www.facom.ufu.br/~ilmerio/sbd UFU/FACOM/BCC Transações Ver conjunto de slides na opção Transações
Leia maisBD II (SI 587) Controle de Concorrência. Josenildo Silva.
BD II (SI 587) Controle de Concorrência Josenildo Silva jcsilva@ifma.edu.br Nota Estes slides são baseados nos slides disponibilizados pelos autores ELMASRI e NAVATHE, para o livro Sistemas de Banco de
Leia maisResolução e Critérios de Correção U.C Sistemas de Gestão de Bases de Dados. 16 de fevereiro de 2018 INSTRUÇÕES
Resolução e Critérios de Correção U.C. 21103 Sistemas de Gestão de Bases de Dados 16 de fevereiro de 2018 Ministério da Educação e Ciência p-fólio INSTRUÇÕES O tempo de duração da prova de p-fólio é de
Leia maisContato. professorluisleite.wordpress.com
BD II Controle de Concorrência Professor: Luis Felipe Leite Contato luisleite@recife.ifpe.edu.br professorluisleite.wordpress.com Ciclo de três aulas Processamento de transações. Controle de Concorrência.
Leia maisIntrodução. Processamento de Transações. Introdução. Introdução. Transações. Transações. Transação
Pós-graduação em Ciência da Computação CCM-202 Sistemas de Banco de Dados Processamento de Transações Profa. Maria Camila Nardini Barioni camila.barioni@ufabc.edu.br Bloco B - sala 937 Introdução... SGBDs
Leia maisSistemas Distribuídos. Ricardo Ribeiro dos Santos
Sistemas Distribuídos Ricardo Ribeiro dos Santos ricrs@ec.ucdb.br Curso de Engenharia de Computação UCDB Setembro/2003 Tópicos Sincronização em Sistemas Distribuídos Exclusão Mútua Transações Distribuídas
Leia maisTRANSAÇÕES E CONTROLE DE CONCORRÊNCIA Em resumo: Transações: clientes podem necessitar que um servidor execute uma sequência de requisições de forma a
Transações Transações Uma transação é um conjunto de operações que deve ser executado de forma atômica Atômica : se um erro ocorre no meio da transação, devemos voltar ao estado consistente anterior. Atômica
Leia maisScheduler Baseado em Timestamp
Scheduler Baseado em Timestamp Técnica na qual toda transação Tx possui uma marca timestamp (TS(Tx)) Princípio de funcionamento (TS-Básico) no acesso a um item de dado D por operações conflitantes, a ordem
Leia mais1º Exame de Base de Dados (2015/2016);
Instruções INDIQUE O SEU NOME E NÚMERO CADA UMA DAS 8 FOLHAS DE EXAME A duração do exame é de 2:30mn. O Exame é sem Consulta. Só se pode sair da sala após 60mn do início. Não responda às questões de um
Leia maisGerenciamento de Transações em Banco de Dados
Gerenciamento de Transações em Banco de Dados Daniela Barreiro Claro MAT A60 Aula 13 Introdução à Transação 2 Transação É uma coleção de operações que formam uma única unidade lógica As transações acessam
Leia maisControle de Concorrência
Controle de Concorrência Protocolos de Bloqueio Protocolo com base em Timestamps Protocolos Multi-versão Inserção e Remoção de Dados Controle de Concorrência Controle de concorrência é usado para garantir
Leia maisOrientações. Transações - PostgreSQL. Relembrando: Propriedades desejáveis. Abrir Prompt de comando ROLLBACK
Ciência da Computação GBC043 Sistemas de Banco de Dados Orientações Transações - PostgreSQL Profa. Maria Camila Nardini Barioni camila.barioni@ufu.br Bloco B - sala 1B137 Executar os comandos conforme
Leia maisÉpoca Normal 2º Teste Sem consulta
Bases de Dados 2013/14 17/Maio/14 10:00 Duração: 2h Época Normal 2º Teste Sem consulta Leia com atenção a informação constante desta página, enquanto espera a indicação do docente para começar a resolução
Leia maisResolução e Critérios de Correção U.C Sistemas de Gestão de Bases de Dados. 19 de fevereiro de 2013 INSTRUÇÕES
Resolução e Critérios de Correção U.C. 21103 Sistemas de Gestão de Bases de Dados 19 de fevereiro de 2013 Ministério da Educação e Ciência p-fólio INSTRUÇÕES O tempo de duração da prova de p-fólio é de
Leia maisUNIVERSIDADE FEDERAL DO MARANHÃO - UFMA. Banco de Dados II. Recuperação. Carlos Eduardo Portela Serra de Castro
UNIVERSIDADE FEDERAL DO MARANHÃO - UFMA Banco de Dados II Recuperação Carlos Eduardo Portela Serra de Castro * Sumário 1 Conceitos 2 Atualização adiada 3 Atualização imediata 4 Paginação shadow 5 Aries
Leia maisBases de Dados. Exame de 1 a Época. Identifique todas as folhas. Exame sem consulta. Duração: 2h30.
Bases de Dados Exame de 1 a Época 2011/2012 Identifique todas as folhas. Exame sem consulta. Duração: 2h30. Grupo 1 Número: 1a) Represente o seguinte domínio usando um diagrama Entidade-Associação: Uma
Leia maisANÁLISE E PROJETO DE BANCO DE DADOS
ANÁLISE E PROJETO DE BANCO DE DADOS PROCESSAMENTO DE TRANSAÇÕES FELIPE G. TORRES INTRODUÇÃO AO PROCESSAMENTO DE TRANSAÇÕES Transação pode ser conceituada como unidades lógicas de processamento de banco
Leia maisTécnicas de Controle de Concorrência
Técnicas de Controle de Concorrência Principais Técnicas bloqueio (locking) timestamp Técnicas Baseadas em Bloqueio Técnicas mais utilizadas pelos SGBDs Princípio de funcionamento controle de operações
Leia maisBases de Dados 2008/2009
Instituto Superior Técnico Bases de Dados 2008/2009 Exame de 12 de Janeiro de 2009 --- Resolução --- 1. Considere o seguinte cenário relativo a uma farmácia: Um paciente dirige-se ao médico e apresenta
Leia maisBANCO DE DADOS 2 TRANSAÇÃO
BANCO DE DADOS 2 TRANSAÇÃO Prof. Edson Thizon Reconstrução ( recovery ) Idéia básica Em algum momento no tempo, todo sistema computacional apresentará uma falha. O SGBD deve incorporar mecanismos de proteção
Leia maisAvisos. Processamento de Transações Controle de Concorrência. Roteiro da aula. Tipos de bloqueio: Binários. Protocolos baseados em bloqueio
Ciência da Computação GBC043 Sistemas de Banco de Dados Processamento de Transações Controle de Concorrência Avisos Lista de exercícios adicionais na página da disciplina Profa. Maria Camila Nardini Barioni
Leia maisGerência de Transações Distribuídas
Transação Gerência de Transações Distribuídas Uma é uma unidade de computação consistente e confiável Transparência de concorrência Transparência de falhas Fernanda Baião baiao@cos.ufrj.br Banco de dados
Leia maisContato. professorluisleite.wordpress.com
BD II Recuperação de Falhas Professor: Luis Felipe Leite Contato luisleite@recife.ifpe.edu.br professorluisleite.wordpress.com Ciclo de três aulas Processamento de transações. Controle de Concorrência.
Leia maisControle de Concorrência
Banco de Dados Fernando Fonseca Ana Carolina Definição Concorrência é a propriedade de uma transação poder ser executada em paralelo com outras transações Justificativa de uso Com a execução de várias
Leia maisRevisão e Introdução 23/05/12. Controle Distribuído da Concorrência. Revisão de Conceitos. Revisão de Conceitos. Transação Operação
Controle Distribuído da Concorrência Controle Distribuído da Concorrência REVISÃO E INTRODUÇÃO SERIALIZABILIDADE ALGORITMOS LOCKING-BASED Aluno: Walter Travassos Sarinho wts@cin.ufpe.br ALGORITMOS TIMESTAMP-BASED
Leia maisSistemas de Gerência de Bancos de Dados
Sistemas de Gerência de Bancos de Dados 4 - Consultas e Transações 4.4 - Gerência de Transações 1 Conceito de Transação Transação: seqüência de ações elementares que deverão ser executadas como se fossem
Leia maisU.C Sistemas de Gestão de Bases de Dados Resolução e Critérios de Correção INSTRUÇÕES
U.C. 21103 e-fólio B Sistemas de Gestão de Bases de Dados 2017-2018 Resolução e Critérios de Correção INSTRUÇÕES 1) O e-fólio é constituído por 5 perguntas. A cotação global é de 5 valores. 2) O e-fólio
Leia mais