Aula 03. Evandro Deliberal

Documentos relacionados
Banco de Dados II. Transações. Segurança: Introdução; Controle de Acesso; Criptografia; Recursos de SQL.

Controle de Transação

Banco de Dados I 6 Transações e Controle de Concorrência

Processamento de Transações. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Gerenciamento de Transações em Banco de Dados

Processamento de Transações. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Controle de Transações. Banco de Dados André Luiz do Vale Soares

Instituto Federal de Educação, Ciência e Tecnologia de São Paulo - IFSP

Banco de dados. Prof. Emiliano S. Monteiro

BDII SQL TRANSAÇÃO Revisão 2

Técnicas de Recuperação em Banco de Dados

A instância Oracle é composta de :

Curso: Banco de Dados I. Conceitos Iniciais

Formação de DBAs SQL Server 2008

BD II (SI 587) Técnicas de Recuperação. Josenildo Silva.

Lock. Administração de Banco de Dados

Bancos de Dados Distribuídos. Lucas Henrique Samuel Queiroz

Sumário. Recuperação de Falhas

TRANSAÇÕES: SISTEMA DE RECUPERAÇÃO E CONTROLE DE CONCORRÊNCIA

TRANSAÇÕ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

Arquiteturas para SGBD. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Introdução. descrever os tipos de interfaces e linguagens oferecidas por um SGBD. mostrar o ambiente de programas dos SGBD s

Sistemas de Informação e Bases de Dados 2012/2013. Transações. Alberto Sardinha

SGBD. Definição. Funções básicas

Banco de Dados. SGBDs. Professor: Charles Leite

Sistemas da Informação. Banco de Dados I. Edson Thizon

Processamento de Transações

Processamento de Transações

Bancos de Dados Distribuídos

GBC053 Gerenciamento de Banco de Dados. Plano de Curso e Introdução. Ilmério Reis da Silva UFU/FACOM/BCC

Sistemas Distribuídos. 13 Transações Distribuídas. Transações Distribuídas. Prof a Ana Cristina B. Kochem Vendramin DAINF / UTFPR

PROCESSAMENTO DE TRANSAÇÕES

Banco de Dados e Aplicações em Negócios: Introdução.

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

Bancos de Dados Distribuídos. Gabriel Resende Gonçalves 4 de fevereiro de 2014

GBC043 - Sistemas de Banco de Dados Lab8 : Transações no PostgreSql

Processamento de Transações

Universidade Federal da Paraíba CCEN Departamento de Informática Disciplina: Banco de Dados. Aula 1 Introdução a Banco de Dados

Bancos de Dados Notas de Aula Introdução Prof. Dr. Daniel A. Furtado

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

LISTA DE EXERCÍCIOS TEORIA DE BANCO DE DADOS

Bancos de Dados NoSQL

SGBD. Funções Básicas de um SGBD

Banco de Dados. Controle de Concorrência e Recuperação de Transação. Prof. João Eduardo Ferreira Prof. Osvaldo Kotaro Takai

DDL). O resultado da compilação dos parâmetros DDLs é

Banco de Dados - Conceitos. Baseado no material da Profa. Vania Bogorny (UFSC)

Manual de instalação, configuração e utilização do Enviador XML

Lista de Exercícios 12 Transações

BCD29008 Banco de dados

Sistemas Distribuídos

Sistemas Operacionais - UCSAL Professor : Marco Antônio C. Câmara Primeira Lista de Exercícios

Matéria Introdutória. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

revisão Controle de Concorrência com Locks Bancos de Dados I 2015/02

Sistemas Distribuídos Transações

Roteiro. Noções de Recuperação de Falhas. BCC321 - Banco de Dados I. Ementa. Posicionamento

Avisos. Processamento de Transações Controle de Concorrência. Roteiro da aula. Tipos de bloqueio: Binários. Protocolos baseados em bloqueio

Sistemas de arquivos distribuídos. ECO036 - Sistemas Paralelos e Distribuídos

Sistema de arquivos Distribuidos

Conceitos de Sistemas de Banco de Dados INE 5323

Parte I Multiprocessamento

Bancos de dados. Sistemas de bancos de dados. Professor Emiliano S. Monteiro

Linha de Sistemas Folhamatic

MANUAL PERFIL ADMINISTRADOR LOCAL

Introdução. Qual é a importância dos bancos de dados no nosso dia a dia? Imaginem como seria as grandes empresas sem os bancos de dados?

Comunicação entre Processos

Bancos de Dados Distribuídos. Bancos de Dados Distribuídos. Conteúdo. Motivação. Motivação. Introdução aos BDs Distribuídos.

Transcrição:

Aula 03 Evandro Deliberal evandro@deljoe.com.br https://www.linkedin.com/in/evandrodeliberal

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 internos, um para cada nó onde está armazenado

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 outro agente

Níveis de bloqueio Bloqueio de BD Bloqueio de arquivo ou tabela Concorrência Bloqueio de unidades lógicas como TABLESPACES ou TABLES Bloqueio de blocos Bloqueio de linhas de tabelas ou registros Bloqueio de campos ou atributos

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 Concorrência

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 internos, um para cada nó onde está armazenado

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 Concorrência Em resumo 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

Transação Conceito 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.

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.

Controle de Transações

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.

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.

Importante: Transações 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 comprometer a serialização em alguns casos.

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?...

Controle de transações 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 precisa especificar nenhuma instrução para controlar transações.

Controle de transações 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.

Finalização de uma transação Transações 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.

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.

Transações Distribuídas Transações 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

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 Transações Distribuídas Transações O gerenciamento do processo de confirmação, ocorre em duas fases: Preparo Confirmação

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.

Transações Avançadas

Significado Transações Diferidas

Definição Síncrono Assíncrono Rede O que mais? Replicação - Fatores

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.

Duvidas Evandro Deliberal evandro@deljoe.com.br

Obrigado Evandro Deliberal evandro@deljoe.com.br