Banco de dados Orientado a Objetos pt 5
Transações, Concorrência, Recuperação e Vercionamento de BDOO´s
Transações
- Uma transação é um programa executado inteiramente ou então não executado. As transações devem mapear bancos de dados de um estado coerente para outro. Para manter a coerência, as transações devem passar pelo teste ACID: Atomicidade, coerência, isolamento, e durabilidade.
Atomicidade
- Como uma transação é executada inteiramente ou então não é executada, ou a seqüência completa de operações é aplicada ao banco de dados ou então nenhuma. Este recurso chama-se de Atomicidade; as transações são atômicas.
Coerência
- Diz-se que o banco de dados é coerente se todas as suas restrições de integridade são satisfeitas. Pressupõe-se que na execução de uma transação, na ausência de interferência de outras transações concorrentes, o banco de dados seja levado de um estado coerente para outro.
Isolamento
- Como as transações são executadas concorrentemente no mesmo banco de dados, elas devem ser isoladas das outras operações. Do contrário, a operação intercalada de transações concorrente pode levar a anomalias. Assim, os SGBD suportam isolamento, que fornece segurança contra interferências entre as transações concorrentes.
Durabilidade
- A durabilidade está relacionada à capacidade do SGBO de se recuperar de falhas no sistema e no meio. As atualizações de uma transação efetivada devem devem ser preservadas e registradas em algum meio durável. Deve-se manter redundância suficiente para que se reconstrua um banco de dados coerente.
Transações aninhadas
- As transações de aplicações de banco de dados orientadas a objetos são normalmente mais demoradas que as de aplicação comerciais convencionais. Alonga duração das transações em aplicações avançadas é uma característica das aplicações de banco de dados da próxima geração. Varias estratégias relacionadas á longa duração das transações foram propostas na pesquisa de banco de dados. Algumas estratégias influenciaram as implementações de banco de dados orientado a objetos.
- As transações aninhadas são utilizadas para resolver alguns problemas associados as transações de longa duração. Um modelo de transação aninhada pode conter subtransações, também chamadas de transações-filhas. Em uma transação aninhada, todas as transações-filhas devem ser efetivadas para que a transação de alto nível se efetive. Cada subtransação deve ser concluída ou abortada. Também, em aplicações avançadas, as tarefas normalmente envolve vários usuários. As transações em cooperação são utilizadas para suportar essas tarefas em conjunto.
Concorrência
- Vários algoritmos de controle podem ser usados para garantir a capacidade de serialização das transações e a coerência do banco de dados. O mais notável deles é o bloqueio. Nos bancos de dados orientados a objeto, o bloqueio pode ser associado a vários grânulos que são manipulados pelos usuários, incluindo classes, instancias e objetos complexos.
- Nos bancos de dados orientados a objeto, há dois aspectos de bloqueio que são relevantes para o compartilhamento concorrente de objetos:
- Bloqueio de Hierarquia de classe:
- As classes nos bancos de dados orientados a objeto são organizadas em hierarquias de herança, de modo que cada classe da hierarquia tenha uma extensão ou instancia preexistente. Por isso é importante fornecer bloqueio de granularidade a essas estruturas. Por exemplo, uma superclasse poderia bloquear implicitamente todas as subclasses no mesmo modo de bloqueio. As subclasses incluem os descendentes diretos da superclasse e os descendentes de suas subclasses.
- Bloqueio de Objeto complexo:
- Os bancos de dados orientados a objetos contêm objetos que podem referenciar ou incorporar outros objetos. Alem disso, alguns objetos são "valores", enquanto outros possuem identidade. Para otimizar a concorrência na presença de modelos que envolvam objetos complexos, foram analisados vários esquemas de bloqueio de "objetos compostos" ou de "objetos dependentes" para objetos complexos.
Recuperação
- A confiabilidade e a grata recuperação de falhas são importantes recursos de um sistema de gerenciamento de banco de dados. O gerenciador de recuperação é o modulo que administras as técnicas de recuperação dessas falhas. Os três importantes tipos de falhas que são responsabilidade do gerenciador de recuperação são: as falhas de transação, as falhas no sistema, as falhas no meio.
- Uma das estruturas mais utilizadas para o gerenciamento de recuperação é o log. O log é utilizado para registrar e armazenar as imagens anteriores e posteriores dos objetos atualizados. A imagem anterior é o estado do objeto antes da atualização da transação, e a imagem posterior é o estado do objeto após a atualização da transação.
- Quase todos os bancos de dados orientados a objeto suportam a recuperação. A maioria dos SGBDOO utiliza o logging para a recuperação do banco de dados a um estado coerente. Alguns utilizam a duplicação ou espelhamento de dados.
Vercionamento
- O acesso a estados anteriores ou a estados alterados de objetos é parte inerente de muitas aplicações. Ele é obtido por meio de várias versões do mesmo objeto. O gerenciamento de versão em um banco de dados orientados a objeto consiste em ferramentas e construções que automatizam ou simplificam a construção e a organização de versões ou configurações. Sem essas ferramentas, caberia ao usuário organizar e manter as versões.
- Podemos considerar a configuração como um grupo de objetos tratados como uma unidade para bloqueio e Vercionamento. Os objetos individuais dentro da configuração podem sofrer modificações, de modo que cada objeto pode Ter um histórico das versões. Vários objetos dentro da configuração são atualizados em momentos diferentes e não necessariamente na mesma freqüência.
Nenhum comentário:
Postar um comentário