Controle de Concorrência

Slides:



Advertisements
Apresentações semelhantes
Ana Paula B. Barboza Ivana Xavier Rodrigues
Advertisements

Professor: Marcus Sampaio Monitor: Eduardo Santiago Moura
CONTROLE DE CONCORRÊNCIA
Introdução Gdes. bancos de dados: Concorrência: Transação:
Sistemas Cliente/Servidor Introdução
Banco de Dados Prof. Antonio.
Curso: Banco de Dados I Análise de Sistemas PUC Campinas
Aula 3 Requisitos dos SGBD
Prof.: Bruno Rafael de Oliveira Rodrigues
Sistemas de Informação Redes de Computadores
© Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 1 Disciplina Banco de Dados II Gerenciamento de transações Msc, Marcelo Bezerra de Alcântara.
Bloqueios partilhados
Visões Marilde Santos.
Maurício Edgar Stivanello
Motor de Armazenamento
SGBD.
Transações Atômicas Distribuídas
Transações Atômicas Distribuídas
Sistema Gerenciador de Banco de Dados SGBD
Sumário 1 SQL Embutida 2 Processamento de Consultas
Processamento de Transação
Componentes Arquitetônicos de um Banco de Dados Oracle
Banco de Dados Oracle AESO.
Controle de Concorrência em Sistemas Distribuídos
Introdução a Mecanismos de controle de concorrência
Conceitos Básicos Dado: fato do mundo real que está registrado e possui um significado implícito no contexto de um domínio de aplicação Exemplos: endereço,
Org. e Projeto de Banco de Dados
Material III-Bimestre Wagner Santos C. de Jesus
Prof. Alexander Roberto Valdameri
Fundamentos de Banco de Dados Prof. Alexander Roberto Valdameri
Professor Victor Sotero
Linguagem de Banco de Dados - SQL
RECUPERAÇÃO APÓS FALHA
Threads sem Sincronização
Aula 7 Prof. Naércio Filho Técnico em Informática
Controle de Concorrência em Transações Álvaro Vinícius de Souza Coêlho
Banco de Dados e Usuários do Banco de Dados (capítulo 1)
SGBD - Regra 1 Regra 1: Auto-Contenção- Um SGBD não contém apenas os dados em si, mas armazena completamente toda a descrição dos dados, seus relacionamentos.
(Linguagem de Consulta Estruturada)
Transações Atômicas Distribuídas Prof. Alcides Calsavara
FaculdadePitágoras Curso Superior de Tecnologia: Banco de Dados Disciplina: Sistemas Gerenciadores de Banco de Dados Prof.: Fernando Hadad Zaidan.
Controle de concorrência
Banco de Dados Parte 04 Ceça. Ceça Moraes 2 Conteúdo  Os três níveis da arquitetura  Mapeamentos  Arquitetura cliente-servidor.
A abordagem de banco de dados para gerenciamento de dados
Transações Concorrentes
Assunto: Transações concorrentes, Disciplina: Banco de dados II, profa. Cristina Paludo Max W. Ourique Ranieri R. Tremea
SISTEMAS DISTRIBUÍDOS Transações Atômicas
Bancos de Dados Estrutura e Funcionamento de um SGBD
Bloqueios de Atualização
1 15/4/ :36 FMU – 1. Semestre – Tecnologia – Analise e Desenvolvimento de Sistemas Professor: Eduardo Silvestri Aluno:Clóvis de Oliveira- RA
Protocolo de Bloqueios
Banco de Dados I I Comandos SQL
Linguagem SQL Prof. Juliano.
DELETE, UPDATE, COMMIT, ROLLBACK
PostGres - Transacções
Sumário 1 Processamento de Consultas 2 Introdução a Transações
Conceitos básicos Professor Esp. Diego André Sant’Ana
TLBD II – Técnicas e Linguagem para Bando de Dados II
Daniel Paulo SQL Server 2014 Módulo II Daniel Paulo
UCSal – Bacharelado em Informática
UCSal – Bacharelado em Informática Banco de Dados Profa. Semíramis Assis
Deadlocks.
Aula 13 - Triggers. Triggers no SGBD Postgres  Os Triggers (Gatilhos) são funções preparadas para serem disparadas no caso de alguma alteração ocorrer.
Persistência de dados e padrão DAO
Prática de Banco de Dados Créditos: Prof. Jefferson Silva Adaptações: Prof. Nécio de Lima Veras.
Programação para Internet Aula 11 SQL (Introdução a linguagem, comandos de modificação: Create, Drop, Alter, Insert, Delete, Update)
Persistência de dados e padrão DAO Padrões de Projeto Orientado a Objetos Profa. Danielle Martin/Mauricio Universidade de Mogi das Cruzes.
Banco de Dados para Redes– Aula 03 Prof. Me. Ronnison Reges Vidal.
Modelagem de Banco de Dados: Conceitos
Universidade de Passo Fundo Tecnologia em Sistemas de Informação TSI109- Fundamentos de Banco de Dados (Restrições de Integridade) Prof. Alexandre Tagliari.
Transcrição da apresentação:

Controle de Concorrência

Transação Uma transação em ORACLE começa com o início da primeira instrução após uma instrução de COMMIT ou ROLLBACK, ou o estabelecimento de uma conexão ao servidor. Uma transação termina com uma instrução de COMMIT, ROLLBACK ou com a finalização da conexão. Se a conexão termina normalmente, o ORACLE executa um COMMIT implicitamente. Se a conexão termina abruptamente o ORACLE emite um ROLLBACK. Quando é executada uma instrução da DDL, o ORACLE previamente emite um COMMIT.

CONTROLE DE CONCORRÊNCIA Uma das tarefas do RDBMS é o controle da concorrência, que é o acesso aos mesmos dados por vários usuários. Se não existir um controle de concorrência apropriado, vários dados podem ser alterados incorretamente, comprometendo a integridade do banco de dados. Para manter a consistência e integridade do banco de dados, um mecanismo de bloqueio é implantado.

O QUE É O BLOQUEIO (LOCK)? Locks são mecanismos que previnem conflitos entre transações que acessam o mesmo recurso O bloqueio previne que alterações simultâneas não ocorram no mesmo pedaço de dado por dois ou mais usuários, garantindo que uma tabela ou coluna não seja alterada enquanto está ocorrendo uma alteração na tabela.

O QUE É O BLOQUEIO (LOCK)? O ORACLE permite que vários usuários façam leitura ao mesmo dado ao mesmo tempo (concorrente), isto significa que não é necessário fazer um bloqueio (LOCK), quando o banco de dados é acessado para recuperar dados (LEITURA). Locks no Oracle são automáticos e não necessitam de interação do usuário. Os usuários que fazem leitura não bloqueiam os usuários que fazem escrita, e os usuários que fazem escrita não bloqueiam os usuários que fazem leitura.

QUANDO É NECESSÁRIO O BLOQUEIO (LOCK)? O bloqueio sempre é necessário quando um usuário tentar fazer alguma alteração no banco de dados. Insert, update, delete

QUANDO O BLOQUEIO (LOCK) É LIBERADO? O bloqueio é liberado quando ocorre um COMMIT ou ROLLBACK com sucesso, ou seja, quando a transação é finalizada.

TIPOS DE BLOQUEIO A) Bloqueio DDL - DATA DICTIONARY LOCK · O controle de acesso é definido nos objetos do Banco de Dados; · É utilizado nas operações dos comandos SQL que modificam o DICIONÁRIO DE DADOS; EX.: CREATE TABLE, ALTER TABLE, DROP TABLE; · Automaticamente controlado pelo núcleo do banco de dados; B) Bloqueio DML - DATA MANIPULATION LOCK · Bloqueio IMPLÍCITO - É controlado pelo ORACLE, e ocorre automaticamente quando os comandos, INSERT, UPDATE e DELETE são utilizados por um usuário; · Bloqueio Explícito - É controlado pelo usuário, e ocorre quando o usuário especifica o bloqueio desejado na tabela, através dos comandos SQL SELECT...FROM, UPDATE e LOCK TABLE, anulando o bloqueio default. O bloqueio é liberado através de um COMMIT ou ROLLBACK;

Tipos de Lock exclusive: shared lock: Previne que recursos sejam compartilhados. A primeira transação que realiza lock exclusivo em um recurso, é a única transação que pode alterar o recurso até que o lock exclusivo seja liberado shared lock: Permite que recursos sejam compartilhados. Vários usuários podem ler os dados, realizando “shared lock” para prevenir acesso concorrente de escrita(necessita de um lock exclusive) Várias transações podem adquirir um “shared lock” em um recurso

NÍVEL DE BLOQUEIO O bloqueio pode ser feito de duas formas: nível de tabela ou nível de linha (ROW); O bloqueio de tabela - Toda tabela fica bloqueada; O bloqueio de linha (ROW) - Uma linha individual da tabela fica bloqueada.

DEADLOCK Um DEADLOCK pode ocorrer quando dois ou mais usuários estão tentando acessar o mesmo objeto do banco de dados.

Assumindo T1 e T2 como transações, considere o exemplo a seguir transação T1 adquire um lock exclusivo para o objeto A; T2 adquire um lock exclusivo para o objeto B; T1 requisita um lock exclusivo para o objeto B e o pedido é armazenado numa fila; T2 requisita um lock exclusivo para o objeto A e o pedido é armazenado numa fila. T1 está aguardando que T2 liberte o lock do objeto B e T2 está aguardando que T1 liberte o lock do objeto A. Tal ciclo de transações aguardando a liberação de locks é chamado de deadlock. Fica claro que essas transações não terão progresso. Ou pior, podem estar solicitando locks que estão sendo requeridos por outras transações. O SGBD deve prever ou detectar (e resolver) qualquer situação de deadlock.

DEADLOCK Uma maneira simples de detectar deadlocks é utilizar um mecanismo de timeout. Se uma transação tem aguardado muito tempo por um pedido de lock, pode-se assumir que um ciclo de deadlock foi detectado e escolhe-se por abortá-lo.

Prática