Banco de dados orientado a objetos (BDOO) armazena objetos de forma persistente, permitindo que objetos criados durante a execução de um programa continuem a existir. BDOO combina conceitos de orientação a objetos com bancos de dados, permitindo a representação fiel de dados complexos e hierarquias de classes no banco de dados. Transações, concorrência, recuperação e identificadores únicos (OIDs) garantem a integridade e persistência dos dados nos BDOOs.
4. O Até meados dos anos 60 os dados eram
armazenados em arquivos.
Um pouco de História...
1960
5. O No início dos anos 70 surgiram as
primeiras linguagens de alto nível,
permitindo assim a manipulação eficiente
dos dados.
Um pouco de História...
1970
6. O A partir dos anos 80 as aplicações
evoluíram juntamente com as máquinas,
surgindo a necessidade de tratar os
dados mais complexos.
Um pouco de História...
1980
7. O Durante a década de 80, vieram novas
aplicações, para essas aplicações, os
modelos de dados tradicionais, baseados
no modelo relacional, não eram
adequados.
Um pouco de História...
1980
8. O Nada mais que a junção entre conceitos
de OO com conceitos de SGBD.
O que é BDOO?
9. Em uma aplicação o objeto existe somente
durante a execução do programa. O Banco
de dados Orientado a objetos possibilita a
capacidade de um objeto ser criado e existir
permanentemente, ou seja persistir.
10.
11. Objetos e Identidade
Cada objeto é associado um estado e um
comportamento.
O estado é representado pelos valores dos
atributos do objetos.
O comportamento é definido pelos métodos que
agem sobre o estado do objeto pela invocação.
12. Como identificar cada Objeto?
O Cada objeto armazenado no banco é
associado a um identificador ( OID: Object
Identifier ).
O valor do OID deve ser:
O Imutável;
O Utilizado unicamente.
13. (OID)
O No BDOO os identificadores de objetos
têm uma identidade muito mais forte que
a linguagem de POO, pois os objetos têm
a necessidade de continuar a existir.
14. Persistência de Objetos
Para que o BD00 posa funcionar é preciso
aplicar a estrutura da persistência de
objetos em sua aplicação.
Existem várias formas dentre elas podem-
se considerar as seguintes:
15. Persistência de Objetos
O Por tipo de Classe onde os objetos
pertencentes às classes assim declaradas
serão persistentes.
O Por chamada explicita onde o objeto pode
ser tornar persistente após a sua criação
através de comandos reservados
16. Objetos Complexos
O Para uma representação direta de objetos
complexos, Nota-se que essa forma não é
respeitada nos BDs, pois podemos
representar em um objeto valores não
atômicos,
17. Herança
O Todo o conceito de OO está presente no
BDOO.
O Uma Hierarquia de classes oferece muito
mais flexibilidade para efetuar alterações
na estrutura do banco.
18. Conceitos de BDOO
O Transações
O Transações demoradas
O Transações aninhadas
O Transações em cooperação
O Concorrência
O Gerenciamento de Recuperação
19. Transações
O Transação é um conceito fundamental de todo
o sistema de banco de dados. A base
fundamental de transações é englobar vários
passos em uma única operação.
O Teste ACID
O (Atomicidade, Coerência, Isolamento e
Durabilidade)
20. Transações demoradas
O Algumas transações tendem a levar um
tempo relativamente longo, isto por que o
BDOO interagem com muitos objetos
complexos.
21. Transições aninhadas
O Utilizadas para melhorar as transações
demoradas, esse modelo consiste em
decompor a transação principal em
subtransações.
22. Transações em cooperação
O Este modelo de transação é utilizado
para resolver os problemas de
transações que necessitam trabalhar
em conjunto para serem concluídas,
sendo que essas transações podem ser
executadas por diversos usuários.
23. Concorrência
O Concorrência para SGBDOO permite o acesso
simultâneo aos dados para diferentes usuário.
O Tem um algoritmo notável de controle de
concorrência que funciona em forma de
bloqueios.
O Tipos de Bloqueios simples: Leitura e Gravação
24. Aspectos do controle de concorrência
O Bloqueio de hierarquia de classe.
O Bloqueio de objeto complexo
25. Gerenciamento de recuperação
O Os BDOO possuem muitas formas de
contornar algum possível problema
relacionado à falha do sistema.
O Mecanismo de duplicação
O Espelhamento de dados
O Logs (mais utilizado)
26. Logs
O Consiste em armazenar imagens
anteriores e posteriores dos objetos
atualizados.
Introdução apresentação do que é a palestra
UM POUCO DE HISTORÍA
DEFINICÃO
QUAIS CARACTERÍSTICAS
COMO FUNCIONA
PRÁTICA
geralmente como partes integrantes da aplicação. A partir dessa época, surgiram os
primeiros Sistemas Gerenciadores de Bancos de Dados (SGBDs) comerciais, provendo
armazenamento dos dados de forma independente da aplicação, contudo, sem
mecanismos de acesso eficientes.
A partir dos anos 80 as aplicações computacionais evoluíram, juntamente com
o poder de processamento das máquinas, surgindo a necessidade de tratar dados mais
complexos, não-convencionais.
Devido a esse aumento na complexidade dos dados,
surgiu a necessidade de formas mais adequadas de representação e armazenamento,
como as bases de dados orientadas a objetos.
Durante a década de 80, como resultado das inovações de hardware, emergiram
novas aplicações com utilização intensiva de dados. Para essas aplicações, os modelos
de dados tradicionais, baseados no modelo relacional, não eram adequados. Alguns
exemplos de aplicações desse tipo incluem sistemas de design e produção, como CAD
(Computer-Aided Design) e CAM (Computer-Aided Manufacturing), sistemas para as
áreas científica e médica, sistemas de informação geográfica e bases de dados com
informações multimídia. Essas aplicações possuem requisitos e características,
Ex: Aplicação objeto PESSOA com
NOME
IDADE
Mesmo após a finalização do programa, prq precisaram serem usados futuramente.
Persistência de dados consiste em não deixar com que objetos deixem de existir,
Tendo o seu estado armazenado de um meio físico persistente
Ex: Conjuntos, Listas e vetores
Assim como as linguagem OO a representação se torna extremamente fácil.
Caso necessário, uma determinada aplicação pode herdar atributos e métodos das classes do sistema. Pois a maioria dos SGBDOO possuem uma coleção de classes e objetos
Algumas adaptações internas no BDOO sobre o conceitos de OO a objetos possibilitam o uso de alguns recursos como:
Os espaços intermediários entre esses passos não são vistos pelas demais transações
simultâneas e caso alguma falha impeça por ventura a finalização da transação, então
nenhum dos passos intermediários irá afetar o banco de dados,
Uma transação deve levar o banco de dados de um estado coerente para outro.
Para que essa coerência ocorra, cada transação de um banco de dados deve passar pelo
teste de ACID (Atomicidade, Coerência, Isolamento e Durabilidade).
Atomicidade emprega o conceito de que uma transação é executada por completo ou não é executada.
Coerência emprega o conceito de que as transações mapeiam um banco de dados persistente de um estado coerente para o outro
Isolamento emprega o conceito de que transações não leem resultados intermediários de outras transações não efetivadas.
Durabilidade emprega o conceito de que uma vez que uma transação é efetivada, seus efeitos ficam permanentemente no banco de dados, mesmo que ocorram falhas.
CONTROLE DE PONTO
Caso uma subtransações venha por ventura falhar, fica a critério da transação de
alto nível tentar executá-la novamente ou ate mesmo cancelá-la.
Em um contraste das transações
mais tradicionais, as transações em cooperação podem ver os resultados imediatos umas
das outras.
Em SGBDOO cada objeto persistente pode ser bloqueado. Isto normalmente é
feito por meio de uma LISTA de bloqueio que armazena os OID dos objetos bloqueados.
O modo de leitura (modo compartilhado) permite que diversas transações de
operações de leituras sejam executadas no mesmo objeto concorrentemente
O modo de gravação (modo exclusivo) reserva o acesso (operações de leitura e gravação) de um
objeto à transação que contem esse bloqueio no momento.
Exemplo a SEGUIR
Bloqueio de hierarquia de classe: as classes em BDOO são organizadas
em hierarquias de herança. Caso uma superclasse venha a ser bloqueada
o mesmo ocorrerá de forma implícita para todas as suas subclasses, que
são descendentes diretas da superclasses
Bloqueio de objeto complexo: os BDOO podem conter objetos que
referenciam ou incorporam outros objetos, isto pode causar problemas,
pois algum objeto complexo pode possuir subobjetos bloqueados,
ocasionando problemas de atualizações e/ou possíveis problemas de
acesso. Tal problema pode ser resolvido pelo bloqueio de intenção. Neste
bloqueio as subclasses de uma classe não são bloqueadas implicitamente.
Somente as instancia dependentes do objeto-pai são bloqueadas. Diante
disso as outras instancias ficam livres para serem acessadas
A imagem anterior é o estado do objeto antes de sua atualização e a imagem posterior é o estado do objeto após sua atualização.