Transações em Bancos de Dados - professorleomir

Propaganda
Transações em Bancos de Dados
distribuidos
Banco de dados em aplicativos WEB
Aula 18
09/05/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
1
Agenda
•
•
•
•
•
Conceito
Fundamentação – 12 regras
Vantagens
Desvantagens
Exemplo
25/04/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
2
Conceito
•
•
•
Banco de dados distribuído (BDD) é uma coleção de várias Base de Dados
logicamente inter-relacionadas, distribuídas por uma rede de computadores.
Existem dois tipos de banco de dados distribuídos, os homogêneos e os
heterogêneos. Os homogêneos são compostos pelos mesmos bancos de dados, já
os Heterogêneos são aqueles que são compostos por mais de um tipo de banco de
dados.
Num banco de dados distribuídos os arquivos podem estar replicados ou
fragmentados, esses dois tipos podem ser encontrados ao longo dos nós do
sistema de BDD's. Quando os dados se encontram replicados, existe uma cópia de
cada um dos dados em cada nó, tornando as bases iguais (ex: tabela de produtos
de uma grande loja). Já na fragmentação, os dados se encontram divididos ao
longo do sistema, ou seja a cada nó existe uma base de dados diferente se
olharmos de uma forma local, mas se analisarmos de uma forma global os dados
são vistos de uma forma única, pois cada nó possui um catálogo que contém cada
informação dos dados dos bancos adjacentes.
A replicação dos dados pode se dar de maneira síncrona ou assíncrona. No caso de
replicação síncrona, cada transação é dada como concluída quando todos os nós
confirmam que a transação local foi bem sucedida. Na replicação assíncrona, o nó
principal executa a transação enviando confirmação ao solicitante e então
encaminha a transação aos demais nós
09/05/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
3
Fundamentação – 12 regras
 Autonomia local
 Apesar de existirem diversos sites no sistema, para o cliente existe somente
um servidor de dados, sendo transparente para o mesmo, a distribuição tanto
dos dados como do processamento. Ex. :Para o sistema da Caixa Econômica
Federal existem três importantes sites, mas para o cliente existe somente um
banco de dados.
 Inexistência de um site central
 Em um sistema distribuído não há uma hierarquia de sites, mas todos podem
trabalhar independentemente. Com a queda de um site, o sistema continua
executando, mas com uma redução de recursos proporcional à representação
do potencial computacional do site que caiu em relação ao sistema
(Performance). Ex.: Não há um servidor mestre, nem um escravo no sistema
da Caixa. Não há uma hierarquia entre eles. Há uma distribuição de atividades
que o sistema deve executar de maneira igual.
09/05/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
4
Fundamentação – 12 regras
 Operação contínua
 Uma importante característica de um sistema de dados distribuído é a
sua alta tolerância a falhas tanto de hardware, software, como de
rede. Em um sistema monolítico, havendo falha em qualquer dos
quesitos mencionados anteriormente, ocorre a indisponibilidade do
mesmo. Em um sistema distribuído, as chances de indisponibilidade
são inversamente proporcionais à quantidade de sites. Havendo falha
em um site, o sistema poderá continuar processando de forma
reduzida ao invés de sair do ar. Há uma queda de performance, e até
indisponibilidade de alguns dados, mas não a indisponibilidade do
serviço. Ex.: Já houve queda de um ou dois sites do sistema existente
da Caixa Econômica, mas o mesmo nunca saiu do ar. É claro que o
sistema ficou seriamente comprometido, mas não saiu do ar.
09/05/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
5
Fundamentação – 12 regras
Independência de localização
Em um sistema distribuído, o cliente solicitará
qualquer dado existente no sistema sem a
preocupação em acessar o site onde se encontra
armazenada cada informação. Para o cliente,
todas as informações estarão no site que ele
acessa.
09/05/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
6
Fundamentação – 12 regras
Independência de fragmentação
 Um sistema de bancos de dados distribuído deverá acatar a
possibilidade fragmentar os dados de forma a manter em um
site as informações que seus clientes solicitam mais,
distribuindo assim os dados e o processamento das
informações. Estes dados são unificados por meio de junções
para fragmentações verticais e de uniões para fragmentações
horizontais. Para o cliente esta fragmentação não é visível.
Exemplo: No sistema da CEF há uma divisão geográfica da
informação: dados referentes a clientes de São Paulo estão na
base de São Paulo, Rio de Janeiro concentra as informações do
centro-sul-brasileiro, e a base de Brasília armazena dados das
regiões norte e nordeste. Mas para o usuário do sistema, estas
informações estão em um único site.
09/05/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
7
Fundamentação – 12 regras
Independencia de replicação
 Dados podem estar replicados em vários nós da rede, de
forma transparente. As réplicas de dados devem ser
mantidas sincronizadas automaticamente pelo SGBDD
09/05/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
8
Fundamentação – 12 regras
Processamento de consultas distribuído
 O desempenho de uma consulta deve ser independente
do local onde a mesma é submetida. Um SGBDD deve
possuir um otimizador capaz de selecionar não apenas o
melhor caminho para o acesso a um determinado nó da
rede, mas também otimizar o desempenho de uma
consulta distribuída, levando em conta a localização dos
dados, utilização de CPU, I/O e o tráfego na rede.
09/05/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
9
Fundamentação – 12 regras
Gerenciamento de transações distribuído
 Um sistema distribuído será capaz de conferir atomicidade
a uma transação, mesmo que a mesma envolva sites
diferentes.
 Ex. CEF, quando há uma transferência de valores de uma
conta armazenada no site São Paulo para outra
armazenada site Rio de Janeiro o valor é retirado da conta
do site São Paulo e depositada no site Rio de Janeiro,
havendo a confirmação desta transação somente no
término da mesma. Isto confere atomicidade a uma
transação distribuída.
09/05/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
10
Fundamentação – 12 regras
Independência de hardware
Um sistema de dados distribuído deve operar em
cima de uma abstração de software capaz de
operar em diferentes arquiteturas – daí o suporte
a diversos tipos de hardwares.
09/05/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
11
Fundamentação – 12 regras
Independência de sistema operacional
 Um sistema de dados distribuído assim como deve
oferecer tolerância a diversas arquiteturas, deverá
oferecer implementação em diversos sistemas
operacionais por meio de versões do SGBD capazes de
operar em diversos sistemas operacionais. No caso do
sistema utilizado na CEF o SGBD utilizado é o DB2 da IBM
que pode ser utilizado em diversos sistemas Operacionais.
09/05/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
12
Fundamentação – 12 regras
Independência da rede
 Se o SGBD utilizado para implantação da rede
distribuída suporta diversos sistemas
operacionais, deverá ser capaz de operar sobre
um sistema operacional que tenha suporte a
diversos tipos de rede.
09/05/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
13
Fundamentação – 12 regras
Independência de SGBD
 O sistema de bancos de dados distribuído poderá
ter sites implementados com SGBDs diferentes.
No sistema da CEF, é utilizado somente o DB2,
mas se for viável, poderá ser instanciado um site
com outro SGBD.
09/05/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
14
Exemplo
SGBDD Distribuido geograficamebnte em três
sites, interligados em uma WAN.
09/05/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
15
Vantagens
 Reflete a estrutura organizacional
 Fragmentos do banco de dados estão localizados nos departamentos que se relacionam com
os dados que estes persistem.
 Autonomia Local
 Um departamento pode controlar seus dados (já que é o mais familiarizado com estes).
 Maior disponibilidade
 Uma falha em um banco de dados afetará somente um fragmento, ao invés do banco de dados
inteiro.
 Melhor performance
 Os dados estão localizados próximo do local de maior demanda e os sistemas de banco de
dados por si só são paralelizáveis, permitindo carregar no banco de dados para o
balanceamento entre servidores (a elevada carga em um módulo do banco de dados não irá
afetar os outros módulos de banco de dados em um banco de dados distribuído).
 Econômico
 Custa menos criar uma rede de pequenos computadores com o mesmo poder que um único
computador maior.
 Modularidade
 Sistemas podem ser modificados, adicionados ou removidos do banco de dados distribuído
sem afetar os outros módulos (sistemas).
09/05/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
16
Desvantagens
 Complexidade — Trabalho extra deve ser feito pelos DBAs para garantir que a natureza da
distribuição do sistema é transparente. Trabalho extra deve ser feito para manter sistemas
múltiplos diferentes, ao invés de um único grande. Design de banco de dados extra deve
também ser feito para levar em conta a natureza desconectada do banco de dados - por
exemplo, joins tornam-se proibitivamente caros quando são rodados entre múltiplas
plataformas.
 Implantação mais cara — Aumento da complexidade e uma infra-estrutura mais extensa
significa custo extra de trabalho
 Segurança — Fragmentos de banco de dados remotos devem ser seguros e, como eles não
são centralizados então os lugares remotos também devem ser seguros. A infraestrutura
também deve ser segura (por exemplo, pela encriptação dos links de rede entre os lugares
remotos).
 Difícil de manter a integridade — Sistemas distribuídos, reforçar a integridade ao longo de
uma rede pode exigir demais dos recursos da rede para ser viável.
 Inexperiência — Pode ser difícil trabalhar com banco de dados distribuídos e como é uma
área relativamente nova ainda não há tantos casos (ou experiências) práticos de seu uso
disponíveis como exemplo.
 Design do banco de dados mais complexo – Além das dificuldades normais, o design de um
banco de dados distribuídos tem que considerar a fragmentação dos dados, alocação dos
fragmentos em lugares específicos e a replicação de dados.
09/05/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
17
Bibliografia
BIBLIOGRAFIA BÁSICA
DATE, C.J. Introdução a Sistemas de Bancos de Dados. 8ª Ed. Rio de Janeiro: Campus, 2004.
1
2
NAVATHE, S. B.; ELMASRI, R. E. Sistemas de Banco de Dados, 4ª edição, Editora Pearson Addison
Wesley, 2005.
SETZER, V. W., SILVA, F.S.C. Banco de Dados. 1ª Ed. São Paulo: Edgard Blucher, 2005.
3
BIBLIOGRAFIA COMPLEMENTAR
COUGO, P. Modelagem Conceitual e Projeto de Banco de Dados, Editora Campus.
4
5
KORTH, H. F.; SILBERSCHATZ, A.; SUDARSHAN, S., Sistemas de Banco de Dados, Editora Makron
Books, 1999.
MACHADO, Felipe Nery Rodrigues: Análise Relacional de Sistemas; São Paulo: Editora Érica, 2001.
6
7
SETZER, V.W., NASSU, E.A. Banco de Dados Orientados a Objetos. São Paulo: Ed. Edgard Blucher,
1999.
09/05/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
18
Download