• Nenhum resultado encontrado

Aula 03. Evandro Deliberal

N/A
N/A
Protected

Academic year: 2021

Share "Aula 03. Evandro Deliberal"

Copied!
27
0
0

Texto

(1)

Evandro Deliberal

[email protected]

https://www.linkedin.com/in/evandrodeliberal

(2)

Concorrência

• Método

– Sincronização

• Problemas:

– Perda de consistência

– Acesso a dados inconsistentes

– Perda de atualizações

– Modelagem

• Dados e Sistemas

• A nível lógico, o banco de dados é descrito por um esquema

conceitual global consistindo de um conjunto de objetos lógicos

• A nível físico, o banco é descrito por uma série de esquemas

(3)

Concorrência

Concorrência em BD se refere à maneira pela qual os

produtos de BD tratam as situações nas quais um

agente (usuário ou programa) deseja ter acesso a

determinada porção de dados ao mesmo tempo que

(4)

Concorrência

• Níveis de bloqueio

– Bloqueio de BD

– Bloqueio de arquivo ou tabela

– Bloqueio de unidades lógicas como TABLESPACES ou

TABLES

– Bloqueio de blocos

– Bloqueio de linhas de tabelas ou registros

– Bloqueio de campos ou atributos

(5)

Concorrência

• Definição bem clara das regras

• Conhecimento de todos os nós ou objetos

envolvidos

• Conhecimento sobre os processos

• Acompanhamento da operação

• Atualização dos documentos

(6)

Concorrência

• Método

– Sincronização

• Problemas:

– Perda de consistência

– Acesso a dados inconsistentes

– Perda de atualizações

– Modelagem

• Dados e Sistemas

• A nível lógico, o banco de dados é descrito por um esquema

conceitual global consistindo de um conjunto de objetos lógicos

• A nível físico, o banco é descrito por uma série de esquemas

(7)

Concorrência – Em resumo

• Níveis de bloqueio

– Todo o banco de dados

– O arquivo

– A construção de dados

– A página ou bloco (mais

comum)

– A linha ou registro

• Tipos de bloqueio

– Apenas de leitura

– Leitura e Gravação

– Intenção de Bloqueio

• Invocação de bloqueio

– Implícito

– Explícito

• Disciplinas de bloqueio

– FIFO

– Detecção de tempo bloqueado

– Escalação de bloqueios

– Detecção de bloqueios fatais

• Versões

– Múltiplas cópias do mesmo

registro ou linha

– Trilha de cópias, modificações e

tempos

(8)

Conceito

Transação

Uma transação é uma seqüência de operações executadas como uma única unidade lógica de trabalho. Uma unidade lógica de trabalho deve mostrar quatro propriedades, designadas pelas iniciais ACID (atomicidade, consistência, isolamento e durabilidade), para que seja qualificada como uma transação. Atomicidade

Uma transação deve ser uma unidade atômica de trabalho; ou todas as suas modificações de dados são executadas ou nenhuma delas é executada. Consistência

Quando concluída, uma transação deve deixar todos os dados em um estado consistente. Em um banco de dados relacional, todas as regras devem ser aplicadas às modificações da transação para manter toda a integridade dos dados. Todas as estruturas de dados internas, tais como índices em árvore B ou listas duplamente vinculadas, devem estar corretas ao término da transação.

Isolamento

Modificações feitas por transações simultâneas devem ser isoladas das modificações feitas por qualquer outra transação simultânea. Uma transação reconhece os dados no estado em que estavam antes de outra transação simultânea tê-los modificado ou reconhece os dados depois que a segunda transação tiver sido concluída, mas não reconhece um estado intermediário. Isso é chamado serializabilidade porque resulta na

capacidade de recarregar os dados iniciais e reexecutar uma série de transações de modo que os dados obtidos estejam no mesmo estado em que estavam depois que as transações originais foram executadas.

Durabilidade

Depois que uma transação tiver sido concluída, seus efeitos ficam permanentemente no sistema. As modificações persistem até mesmo no caso de uma queda do sistema.

(9)

Transações

Os programadores são responsáveis por:

– Iniciar e terminar transações em pontos que imponham a consistência lógica dos dados.

– Definir a seqüência de modificações de dados que deixem os dados em um estado consistente em

relação às regras comerciais da organização.

– Inclui essas instruções de modificação em uma única transação de modo que o Mecanismo de banco

de dados do SQL Server possa aplicar a integridade física da transação.

É de responsabilidade de um sistema de banco de dados empresarial, tal como uma instância

do Mecanismo de Banco de Dados, oferecer mecanismos que assegurem a integridade física

de cada transação. O Mecanismo de Banco de Dados oferece:

– Recursos de bloqueio que preservam o isolamento da transação.

– Recursos de log que garantem a durabilidade da transação. Mesmo se o hardware do servidor, o

sistema operacional ou a instância do Mecanismo de Banco de Dados falharem, a instância usa os logs

da transação ao reinicializar para reverter automaticamente qualquer transação incompleta até o

ponto da falha do sistema.

– Recursos de administração de transação que impõem a atomicidade e a consistência da transação.

Depois que uma transação tiver sido iniciada, ela deve ser concluída com êxito ou a instância do

Mecanismo de Banco de Dados desfará todas as modificações de dados feitas desde que a transação

foi iniciada.

(10)
(11)

Transações

Métodos de bloqueio

• A técnica de bloqueio em duas fases para controle de concorrência é

baseado no bloqueio de itens de dados, sendo que, chamamos de

bloqueio uma variável que fica atrelada ao item de dados.

• Este bloqueio pode ser binário (possui dois valores: 1 e 0), logo, o item de

dados está bloqueado ou não está bloqueado. Permitindo que o item de

dado só esteja acessível para uma transação apenas se a variável não

estiver bloqueada (ou estiver com valor 0).

• São usadas duas operações para o bloqueio binário, são elas: lock(1) e

unlock(0), quando o item de dados está sendo usado, o estado da variável

é lock(1), assim que a transação encerra a utilização do item é emitida a

operação unlock(0), então, o item já está disponível para outra transação.

(12)

Transações

Métodos de Bloqueio:

• Duas maneiras de bloquear(lock) os dados são:

– Bloqueio Compartilhado: quando uma transação recebe este tipo de bloqueio

e a instrução é de leitura, então, mais de uma transação poderá acessar o

mesmo dado. Se a instrução for de gravação, então ela não poderá participar

de um bloqueio compartilhado, ou seja, é permitido que várias transações

acessem um mesmo item "A" se todas elas acessarem este item "A" apenas

para fins de leitura.

– Bloqueio Exclusivo: quando uma transação recebe este tipo de

bloqueio, ela fica exclusivamente reservada para a instrução que

compõe a transação, não permitindo que outra transação faça uso do

dado que está sendo utilizado, logo, um item bloqueado para gravação

é chamado de bloqueado exclusivo, pois uma única transação mantém

o bloqueio no item.

(13)

Transações

Importante:

• Uma transação precisa manter o bloqueio do item

de dado durante o tempo em que estiver

acessando aquele item.

– até mesmo porque nem sempre o desbloqueio imediato

após o acesso final é interessante, pois pode

(14)

Perguntas

Sempre haverá a necessidade de bloqueio e

desbloqueio dos itens de dados, mas existem algumas

situações em que a combinação dessas duas fases

pode gerar um problema no banco dados, que damos

o nome de? ...

(15)

Transações

Controle de transações

• Transações explícitas

– Inicie uma transação explicitamente por uma função de API ou

emitindo a instrução Transact-SQL BEGIN TRANSACTION.

• Transações de confirmação automática

– O modo padrão do Mecanismo de Banco de Dados. Cada instrução

Transact-SQL individual é confirmada na conclusão. Você não

(16)

Transações

Controle de transações

• Transações implícitas

– Defina o modo de transação implícito como ativado por uma função de API ou pela

instrução Transact-SQL SET IMPLICIT_TRANSACTIONS ON. A próxima instrução inicia uma

nova transação automaticamente. Quando essa transação é concluída, a próxima

instrução Transact-SQL inicia uma nova transação.

• Transações no escopo do lote

– Aplicável apenas a vários conjuntos de resultados ativos (MARS), uma transação

Transact-SQL explícita ou implícita iniciada em uma sessão MARS se torna uma transação no

escopo do lote. Uma transação no escopo do lote não confirmada ou revertida quando

um lote é concluído é revertida automaticamente pelo SQL Server.

Os modos de transação são gerenciados no nível de conexão. Se uma conexão for

alterada de um modo de transação para outro, isso não terá nenhum efeito nos modos

de transação de qualquer outra conexão.

(17)

Transações

Finalização de uma transação

• COMMIT

– Se uma transação for concluída com êxito, confirme-a. Uma instrução

COMMIT garante que todas as modificações na transação fazem parte

permanente do banco de dados. Um COMMIT também libera recursos,

como bloqueios, usados pela transação.

• ROLLBACK

– Se ocorrer um erro em uma transação ou se o usuário decidir cancelá-la,

reverta a transação. Uma instrução ROLLBACK desfaz todas as modificações

feitas na transação retornando os dados ao estado anterior ao início da

transação. Um ROLLBACK também libera recursos usados pela transação.

(18)

Transações

Transações Distribuídas

• Abrangem dois ou mais servidores conhecidos como

gerenciadores de recursos

• O gerenciamento da transação deve ser coordenado

entre os gerenciadores de recursos por um

componente de servidor chamado de gerenciador de

transações.

• A instância gerencia a transação distribuída

internamente. Para o usuário, ela opera como uma

transação local.

(19)

Transações

Transações Distribuídas

• No aplicativo, uma transação distribuída é

gerenciada da mesma forma como uma transação

local.

• No final da transação, o aplicativo solicita que a

transação seja confirmada ou revertida

(20)

Transações

Transações Distribuídas

• O gerenciamento do processo de confirmação,

ocorre em duas fases:

– Preparo

– Confirmação

Fase de confirmação

(21)

Transações

Fase de preparo

Quando o gerenciador de transações recebe uma solicitação de confirmação, ele envia um

comando de preparação a todos os gerenciadores de recursos envolvidos na transação. Cada

gerenciador executa todas as ações necessárias para tornar a transação durável, e todos os buffers

que mantêm imagens de log da transação são liberados no disco. À medida que cada gerenciador

de recursos conclui a fase de preparação, ele retorna informações de êxito ou de falha ao

gerenciador de transações.

Fase de confirmação

Se o gerenciador de transações receber preparos bem-sucedidos de todos os gerenciadores de

recursos, ele enviará comandos de confirmação a cada gerenciador de recursos. Em seguida, os

gerenciadores de recursos podem concluir a confirmação. Se todos os gerenciadores de recursos

relatarem uma confirmação bem-sucedida, o gerenciador de transações enviará uma notificação

de êxito ao aplicativo. Se um gerenciador de recursos informar uma falha na preparação, o

gerenciador de transações enviará um comando de reversão a cada gerenciador de recursos e

indicará a falha da confirmação ao aplicativo.

(22)
(23)

Transações Diferidas

(24)

Replicação - Fatores

• Definição

– Síncrono

– Assíncrono

• Rede

• O que mais?

(25)

Replicação

• Dados distribuídos são dados espalhados em múltiplos BD,

sendo que cada dado existe em apenas um lugar. Dados

replicados são dados copiados para múltiplos BD.

• Dados distribuídos são síncronos, pois as atualizações

tornam-se imediatamente disponíveis a todo o BD.

• Dados replicados são assíncronos, pois as atualizações só se

tornam visíveis após o refrescamento das replicações.

• Em caso de falha da rede todo o BD distribuído falha

enquanto os sistemas com dados replicados ainda podem

operar.

(26)

Duvidas

Evandro Deliberal

[email protected]

(27)

Obrigado

Evandro Deliberal

[email protected]

Referências

Documentos relacionados

Pricila Alves Pereira Materiais Duros, Superduros e Metais e suas Ligas 7,8 4,0 5,7 Eliminado Conforme Item 8.3 do edital. Aparecida Helena Fogaça de Almeida Materiais

Este presente artigo é o resultado de um estudo de caso que buscou apresentar o surgimento da atividade turística dentro da favela de Paraisópolis, uma

Conclui-se que o conhecimento do desenvolvimento ponderal evidenciou um padrão racial, que o perímetro torácico está altamente associado ao peso corporal e que equações de

Todo ser humano é único e, por isso, toda sala de aula é um berço de diversidade. O que os sistemas educacionais fizeram ao longo dos tempos foi homogeneizar o sistema educacional

Por isso na década de 1960 a prefeitura resolve criar não só o baile, mas também o chamado Voo do Frevo, que tinha por objetivo não só trazer artistas do sul e do sudeste do país

seria usada para o parafuso M6, foram utilizadas as equações 14 e 15, referentes aos parafusos de 8 mm de diâmetro e folga entre parafuso e furo de 0,5 mm, que definem,

No entanto, os resultados apresentados pelo --linalol não foram semelhantes, em parte, aos do linalol racêmico, uma vez que este apresenta um efeito vasorelaxante em anéis de

Resumo: O presente trabalho corresponde a um estudo empírico descritivo e exploratório que aborda comportamentos e falas de atores políticos que participaram do processo legislativo