SlideShare una empresa de Scribd logo
1 de 35
Banco de Dados
Orientados a Objetos
Rayane Menezes
Raquel Machado
Programa de Pós-Graduação em Engenharia da Eletricidade – UFMA
Prof. Dr. Sofiane Labidi
ROTEIRO
• Introdução
• Conceito de BDOO
• Características do BDOO
• Transações
• Concorrência
• Gerenciamento de recuperação
• Versionamento
• Consultas
• Especificações e Padrões
• Considerações
Introdução
● Banco de Dados Relacional
○ Aumento da independência dos dados nos SGBD’s;
○ Disponibilização de um conjunto de funções apoiadas em álgebra relacional para
armazenar e recuperar dados;
○ Permite processamento ad hoc.
○ Modelo é feito através de coleções de tabelas onde, cada tabela tem nome, linhas,
domínio, atributos, relação e chave.
Introdução
● Banco de Dados Relacional
○ Adequado apenas para aplicações “estruturalmente” simples;
○ Poder de expressão das tabelas é limitado;
○ É complexo o desenvolvimento de um bom projeto relacional, normalizado.
● Aplicações mais complexas
○ CAD - Projeto Auxiliado por Computador – armazenar dados de projeto de
engenharia.
○ CASE - Engenharia de software Auxiliada por Computador – armazenar dados para
apoiar desenvolvedores de software.
○ Banco de dados hipertexto - armazenar textos com links.
Introdução
● Maior motivação para o surgimento de novas abordagens para o
gerenciamento de dados.
● BDOO - Integração do paradigma de orientação a objetos a sistemas de
banco de dados.
Introdução
BDOO - Conceito
● É um banco em que cada informação é armazenada na forma de objetos, e
só podem ser manipuladas através de métodos pela classe que esteja o
objeto.
● Junção dos conceitos de O.O com os conceitos de SGBD.
● Unidade de armazenamento: objeto.
BDOO - Características
PERSISTÊNCIA
● A característica que diferencia os BDOO em relação às LPOO.
● Nas LPOO os objetos existem apenas durante a execução do programa.
● Nos BDOO o objeto continua existindo a após o encerramento do
programa.
Abordagens para persistência dos objetos
● Persistência por classe – objetos pertencentes às classe assim declaradas são
persistentes.
● Persistência por criação – objetos podem se tornar persistentes após sua
criação.
● Persistência por referência – objetos referenciados por outros objetos se tornam
persistentes.
BDOO - Características
OBJETOS COMPLEXOS
● Objetos que contém outros objetos.
● São formados por construtores (conjuntos, listas, tuplas, registros, coleções,
arrays) aplicados a objetos simples(inteiros, booleanos, strings).
● Operações de acesso mais complexas.
BDOO - Características
IDENTIDADE DO OBJETO (OID)
● Um SGBDOO provê um identificador único para cada objeto
independente criado.
● Propriedade essencial: ser imutável.
● Propriedade desejável: um OID não deve ser reutilizado.
● OIDs não podem depender de valores de atributos de objetos.
BDOO - Características
ENCAPSULAMENTO
● É possível definir o comportamento de um tipo de objetos, através das
operações que podem ser aplicadas externamente aos objetos do mesmo
tipo.
● A estrutura interna do objeto permanece escondida, e o acesso ao mesmo
se dá somente através das operações definidas..
BDOO - Características
OPERAÇÕES MAIS COMUNS
● Criar um objeto
● Destruir um objeto
● Atualizar um objeto
● Recuperar dados do objeto
● Efetuar algum cálculo
• Especificando o comportamento dos objetos
• define class Empregado:
• type tuple ( nome: string;
• snome: string;
• cpf: string;
• endereco: string;
• sexo: char;
• salario: float; )
• operations idade: integer;
• criar_emp: Empregado;
• excluir_emp: boolean;
• end Empregado;
HIERARQUIA DE TIPOS (CLASSES) E HERANÇA
● Classes similares postas em uma hierarquia de especialização.
● É possível a definição de novos tipos a partir de tipos outros predefinidos.
● O novo tipo herdará todas as funções (atributos e operações) do primeiro
(supertipo).
BDOO - Características
● EXEMPLO
• PESSOA: Nome, Endereço, DataNasc, Idade, CPF
• EMPREGADO subtype-of PESSOA: Salario, DataContact
• ESTUDANTE subtype-of PESSOA: Matricula, Curso
Transações
● Uma unidade de execução do programa que acessa e, possivelmente,
atualiza vários itens.
● Atomicidade | Consistência |Isolamento | Durabilidade
● Transações Demoradas
Interação de muitos objetos complexos Longo tempo
● Transações Aninhadas
● Transações em Cooperação
Concorrência
• Permite o acesso simultâneo aos dados para vários usuários
• Controle de concorrência:
Bloqueio Os objetos persistentes podem ser bloqueados
• Bloqueio por hierarquia de classe
• Bloqueio de objeto complexo
Gerenciamento de recuperação
• Estrutura de logs:
• Armazenar imagens anteriores e posteriores dos objetos atualizados
Imagem anterior
Imagem posterior
Estado do objeto antes da atualização
Estado do objeto depois da atualização
Versionamento
• Há necessidade de armazenar versões anteriores devido a uma possível
situação de utilização dessa versão.
• Conjunto de ferramentas e construções que automatizam ou simplificam a
construção e a organização de versões ou configurações.
• OID é uma propriedade comum no controle de versões
Consultas
• O acesso aos dados pode ser feito de duas formas:
• Linguagem de programação que utiliza OID
• Linguagem de consultas derivadas do SQL
• Padrões e especificações da ODMG
Especificação e Padronização
● ODMG - Object Database Management Group responsável pela
padronização de especificações para persistência de objetos de linguagem
de programação OO para objetos em banco de dados;
● Escopo da especificação:
○ Object Database Management Systems (ODBMSs)
○ Object-to-Database Mappings (ODMs)
Especificação e Padronização
● Maiores componenentes:
○ Object Model – Modelo de Objeto;
○ Object Specification Languages;
○ Object Query Language;
Object Model – Modelo de Objeto
● É importante porque especifica os tipos de semântica que podem ser
definidas explicitamente para um ODMS.
● Determina:
○ As características dos objetos;
○ Os relacionamentos;
○ Chamadas e identificadores;
Object Model – Modelo de Objeto
● Construtores suportados por um ODMS:
Object Literal
Types Instance
Properties Attributes
Relationships Operations
Schema
Object Specification Languages –
Linguagem de Especificação do Objeto
• São independentes da linguagem de programação e são usados para
representar os sistemas de gerenciamento de dados de objeto
• Definem esquemas, estados e operações de um ODMS
• Facilitam a migração dos dados entre o banco e a aplicação, garantindo a
interoperabilidade
Object Query Language – Linguagem de
Consulta de Objetos
• É a linguagem de consulta que suporte o modelo de objetos
• É próxima a linguagem SQL e agrega as noções de objetos complexos,
herança, identidade do objeto, polimorfismo, operações, etc.
• Fornece um acesso declarativo ao objeto
• Não é uma linguagem completa e pode ser chamada dentro de uma
linguagem de programação
ODMG - Especificação
• Define padrões para linguagens:
• C++
• Smalltalk
• Java
Exemplos de banco de dados OO
Exemplo - PostgreSQL
CREATE TYPE NOME AS (
primeiro_nome VARCHAR(20),
sobrenome VARCHAR(20)
);
CREATE TYPE ENDERECO AS (
rua VARCHAR(40),
numero INTEGER,
bairro VARCHAR(40),
cep VARCHAR(10),
cidade VARCHAR(40),
estado CHAR(2),
pais VARCHAR(40)
);
CREATE TYPE TELEFONE AS (
ddi CHAR(3),
ddd CHAR(3),
telefone VARCHAR(20)
);
CREATE TYPE CLIENTE AS (
nm_cliente NOME,
end_cliente ENDERECO,
tel_clienteTELEFONE
);
CREATE TABLE TB_CLIENTE(
client CLIENTE,
fg_ativo INTEGER
);
Vantagens
• Capacidade de armazenamento de objetos;
• Poder de processamento de requisições;
• Não possui chave primária nem estrangeira, aumentando o desempenho das
consultas e processos;
• Objetos se comunicam entre si através de mensagens;
Desvantagens
• Falta de padronização das linguagens de manipulação de dados;
• Alto custo de aquisição das novas tecnologias;
• Curva de aprendizagem e adaptação ao novo ambiente demorada;
Bibliografia
• SILBERSCHATZ, Abraham. Sistemas de Banco de Dados. 3 ed. Makron
Books (Grupo Pearson). 1999
• NASSU, Euginio A. Banco de dados orientado a objetos. Valdemar W. Setzer
– São Paulo: Blucher, 1999
• The Object Data Standard: ODMG 3.0 – Disponível em:
http://www.odbms.org/odmg/ Acesso: novembro de 2013
Obrigada pela Atenção!
Dúvidas?

Más contenido relacionado

La actualidad más candente

Banco de Dados Orientado a Objetos
Banco de Dados Orientado a ObjetosBanco de Dados Orientado a Objetos
Banco de Dados Orientado a ObjetosSuzana Viana Mota
 
Bddm recuperação de falhas em banco distribuido
Bddm   recuperação de falhas em banco distribuidoBddm   recuperação de falhas em banco distribuido
Bddm recuperação de falhas em banco distribuidoAntonio Ezequiel Mendonça
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POODaniel Brandão
 
Aula 7 expressão regular
Aula 7   expressão regularAula 7   expressão regular
Aula 7 expressão regularwab030
 
Aula 4 - Sistemas Gerenciadores de Banco de Dados
Aula 4 - Sistemas Gerenciadores de Banco de DadosAula 4 - Sistemas Gerenciadores de Banco de Dados
Aula 4 - Sistemas Gerenciadores de Banco de DadosVitor Hugo Melo Araújo
 
07 Modelagem de banco de dados: Modelo Físico
07 Modelagem de banco de dados: Modelo Físico07 Modelagem de banco de dados: Modelo Físico
07 Modelagem de banco de dados: Modelo FísicoCentro Paula Souza
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetosCleyton Ferrari
 
Banco de Dados Não Relacionais vs Banco de Dados Relacionais
Banco de Dados Não Relacionais vs Banco de Dados RelacionaisBanco de Dados Não Relacionais vs Banco de Dados Relacionais
Banco de Dados Não Relacionais vs Banco de Dados Relacionaisalexculpado
 
Banco de Dados II Aula 12 - Gerenciamento de transação (controle de concorrên...
Banco de Dados II Aula 12 - Gerenciamento de transação (controle de concorrên...Banco de Dados II Aula 12 - Gerenciamento de transação (controle de concorrên...
Banco de Dados II Aula 12 - Gerenciamento de transação (controle de concorrên...Leinylson Fontinele
 
Normalização de Banco de Dados
Normalização de Banco de DadosNormalização de Banco de Dados
Normalização de Banco de Dadoselliando dias
 
Processos de Desenvolvimento de Software - teoria e prática
Processos de Desenvolvimento de Software - teoria e práticaProcessos de Desenvolvimento de Software - teoria e prática
Processos de Desenvolvimento de Software - teoria e práticaRalph Rassweiler
 
Introdução a poo
Introdução a pooIntrodução a poo
Introdução a pooSedu
 
Análise, projeto e implementação de sistemas
Análise, projeto e implementação de sistemasAnálise, projeto e implementação de sistemas
Análise, projeto e implementação de sistemasDiego Marek
 
Programação Orientada A Objectos (Poo)
Programação Orientada A Objectos (Poo)Programação Orientada A Objectos (Poo)
Programação Orientada A Objectos (Poo)guest18b3c00
 

La actualidad más candente (20)

Banco de Dados Orientado a Objetos
Banco de Dados Orientado a ObjetosBanco de Dados Orientado a Objetos
Banco de Dados Orientado a Objetos
 
Bddm recuperação de falhas em banco distribuido
Bddm   recuperação de falhas em banco distribuidoBddm   recuperação de falhas em banco distribuido
Bddm recuperação de falhas em banco distribuido
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POO
 
Banco De Dados
Banco De DadosBanco De Dados
Banco De Dados
 
JAVA - Orientação a Objetos
JAVA - Orientação a ObjetosJAVA - Orientação a Objetos
JAVA - Orientação a Objetos
 
Programação Orientado a Objetos
Programação Orientado a ObjetosProgramação Orientado a Objetos
Programação Orientado a Objetos
 
Aula 7 expressão regular
Aula 7   expressão regularAula 7   expressão regular
Aula 7 expressão regular
 
Aula 4 - Sistemas Gerenciadores de Banco de Dados
Aula 4 - Sistemas Gerenciadores de Banco de DadosAula 4 - Sistemas Gerenciadores de Banco de Dados
Aula 4 - Sistemas Gerenciadores de Banco de Dados
 
07 Modelagem de banco de dados: Modelo Físico
07 Modelagem de banco de dados: Modelo Físico07 Modelagem de banco de dados: Modelo Físico
07 Modelagem de banco de dados: Modelo Físico
 
Introdução a Bancos de Dados
Introdução a Bancos de DadosIntrodução a Bancos de Dados
Introdução a Bancos de Dados
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetos
 
Modelagem de dados
Modelagem de dadosModelagem de dados
Modelagem de dados
 
Banco de Dados Não Relacionais vs Banco de Dados Relacionais
Banco de Dados Não Relacionais vs Banco de Dados RelacionaisBanco de Dados Não Relacionais vs Banco de Dados Relacionais
Banco de Dados Não Relacionais vs Banco de Dados Relacionais
 
Banco de Dados II Aula 12 - Gerenciamento de transação (controle de concorrên...
Banco de Dados II Aula 12 - Gerenciamento de transação (controle de concorrên...Banco de Dados II Aula 12 - Gerenciamento de transação (controle de concorrên...
Banco de Dados II Aula 12 - Gerenciamento de transação (controle de concorrên...
 
Normalização de Banco de Dados
Normalização de Banco de DadosNormalização de Banco de Dados
Normalização de Banco de Dados
 
Processos de Desenvolvimento de Software - teoria e prática
Processos de Desenvolvimento de Software - teoria e práticaProcessos de Desenvolvimento de Software - teoria e prática
Processos de Desenvolvimento de Software - teoria e prática
 
Introdução a poo
Introdução a pooIntrodução a poo
Introdução a poo
 
Análise, projeto e implementação de sistemas
Análise, projeto e implementação de sistemasAnálise, projeto e implementação de sistemas
Análise, projeto e implementação de sistemas
 
Programação Orientada A Objectos (Poo)
Programação Orientada A Objectos (Poo)Programação Orientada A Objectos (Poo)
Programação Orientada A Objectos (Poo)
 
Normalização
NormalizaçãoNormalização
Normalização
 

Similar a Banco de Dados Orientados a Objetos

Apresentação Banco de Dados - Caché
Apresentação Banco de Dados - CachéApresentação Banco de Dados - Caché
Apresentação Banco de Dados - CachéRenzo Petri
 
Bancos de Dados Orientados a Objetos
Bancos de Dados Orientados a ObjetosBancos de Dados Orientados a Objetos
Bancos de Dados Orientados a ObjetosGlaucio Scheibel
 
Modelo orientado a objetos
Modelo orientado a objetosModelo orientado a objetos
Modelo orientado a objetosDaiana de Ávila
 
Estudo de técnicas de persistência e acesso concorrente a ontologias
Estudo de técnicas de persistência e acesso concorrente a ontologiasEstudo de técnicas de persistência e acesso concorrente a ontologias
Estudo de técnicas de persistência e acesso concorrente a ontologiasHelio Henrique L. C. Monte-Alto
 
Processos iniciais do mapeamento OR
Processos iniciais do mapeamento ORProcessos iniciais do mapeamento OR
Processos iniciais do mapeamento ORNécio de Lima Veras
 
Banco de Dados em Grafos com Neo4J
Banco de Dados em Grafos com Neo4J  Banco de Dados em Grafos com Neo4J
Banco de Dados em Grafos com Neo4J Daniel San Martin
 
Resumo Anotacoes Certificacao OCE WebLogic Portal 10g Developer
Resumo Anotacoes Certificacao OCE WebLogic Portal 10g DeveloperResumo Anotacoes Certificacao OCE WebLogic Portal 10g Developer
Resumo Anotacoes Certificacao OCE WebLogic Portal 10g DeveloperGilberto Holms
 
Introdução a JPA (2010)
Introdução a JPA (2010)Introdução a JPA (2010)
Introdução a JPA (2010)Helder da Rocha
 
Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadospichiliani
 
Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadospichiliani
 
Plataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKPlataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKRyan Padilha
 

Similar a Banco de Dados Orientados a Objetos (20)

Apresentação Banco de Dados - Caché
Apresentação Banco de Dados - CachéApresentação Banco de Dados - Caché
Apresentação Banco de Dados - Caché
 
Bancos de Dados Orientados a Objetos
Bancos de Dados Orientados a ObjetosBancos de Dados Orientados a Objetos
Bancos de Dados Orientados a Objetos
 
Modelo orientado a objetos
Modelo orientado a objetosModelo orientado a objetos
Modelo orientado a objetos
 
Artigo oo em bd
Artigo   oo em bdArtigo   oo em bd
Artigo oo em bd
 
Estudo de técnicas de persistência e acesso concorrente a ontologias
Estudo de técnicas de persistência e acesso concorrente a ontologiasEstudo de técnicas de persistência e acesso concorrente a ontologias
Estudo de técnicas de persistência e acesso concorrente a ontologias
 
ORM e EF
ORM e EFORM e EF
ORM e EF
 
Apresentação mapeamento objeto relacional
Apresentação mapeamento objeto relacionalApresentação mapeamento objeto relacional
Apresentação mapeamento objeto relacional
 
5 bdoo+bdor
5 bdoo+bdor5 bdoo+bdor
5 bdoo+bdor
 
SQL Oracle
SQL OracleSQL Oracle
SQL Oracle
 
Processos iniciais do mapeamento OR
Processos iniciais do mapeamento ORProcessos iniciais do mapeamento OR
Processos iniciais do mapeamento OR
 
Banco de Dados em Grafos com Neo4J
Banco de Dados em Grafos com Neo4J  Banco de Dados em Grafos com Neo4J
Banco de Dados em Grafos com Neo4J
 
Resumo Anotacoes Certificacao OCE WebLogic Portal 10g Developer
Resumo Anotacoes Certificacao OCE WebLogic Portal 10g DeveloperResumo Anotacoes Certificacao OCE WebLogic Portal 10g Developer
Resumo Anotacoes Certificacao OCE WebLogic Portal 10g Developer
 
Introdução a JPA (2010)
Introdução a JPA (2010)Introdução a JPA (2010)
Introdução a JPA (2010)
 
Banco de dados
Banco de dadosBanco de dados
Banco de dados
 
Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dados
 
Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dados
 
Banco de dados 1
Banco de dados 1Banco de dados 1
Banco de dados 1
 
Treinamento ORM .Net
Treinamento ORM .NetTreinamento ORM .Net
Treinamento ORM .Net
 
Hibernate
HibernateHibernate
Hibernate
 
Plataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKPlataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDK
 

Banco de Dados Orientados a Objetos

  • 1. Banco de Dados Orientados a Objetos Rayane Menezes Raquel Machado Programa de Pós-Graduação em Engenharia da Eletricidade – UFMA Prof. Dr. Sofiane Labidi
  • 2. ROTEIRO • Introdução • Conceito de BDOO • Características do BDOO • Transações • Concorrência • Gerenciamento de recuperação • Versionamento • Consultas • Especificações e Padrões • Considerações
  • 3. Introdução ● Banco de Dados Relacional ○ Aumento da independência dos dados nos SGBD’s; ○ Disponibilização de um conjunto de funções apoiadas em álgebra relacional para armazenar e recuperar dados; ○ Permite processamento ad hoc. ○ Modelo é feito através de coleções de tabelas onde, cada tabela tem nome, linhas, domínio, atributos, relação e chave.
  • 4. Introdução ● Banco de Dados Relacional ○ Adequado apenas para aplicações “estruturalmente” simples; ○ Poder de expressão das tabelas é limitado; ○ É complexo o desenvolvimento de um bom projeto relacional, normalizado.
  • 5. ● Aplicações mais complexas ○ CAD - Projeto Auxiliado por Computador – armazenar dados de projeto de engenharia. ○ CASE - Engenharia de software Auxiliada por Computador – armazenar dados para apoiar desenvolvedores de software. ○ Banco de dados hipertexto - armazenar textos com links. Introdução
  • 6. ● Maior motivação para o surgimento de novas abordagens para o gerenciamento de dados. ● BDOO - Integração do paradigma de orientação a objetos a sistemas de banco de dados. Introdução
  • 7. BDOO - Conceito ● É um banco em que cada informação é armazenada na forma de objetos, e só podem ser manipuladas através de métodos pela classe que esteja o objeto. ● Junção dos conceitos de O.O com os conceitos de SGBD. ● Unidade de armazenamento: objeto.
  • 8.
  • 9. BDOO - Características PERSISTÊNCIA ● A característica que diferencia os BDOO em relação às LPOO. ● Nas LPOO os objetos existem apenas durante a execução do programa. ● Nos BDOO o objeto continua existindo a após o encerramento do programa.
  • 10. Abordagens para persistência dos objetos ● Persistência por classe – objetos pertencentes às classe assim declaradas são persistentes. ● Persistência por criação – objetos podem se tornar persistentes após sua criação. ● Persistência por referência – objetos referenciados por outros objetos se tornam persistentes. BDOO - Características
  • 11. OBJETOS COMPLEXOS ● Objetos que contém outros objetos. ● São formados por construtores (conjuntos, listas, tuplas, registros, coleções, arrays) aplicados a objetos simples(inteiros, booleanos, strings). ● Operações de acesso mais complexas. BDOO - Características
  • 12. IDENTIDADE DO OBJETO (OID) ● Um SGBDOO provê um identificador único para cada objeto independente criado. ● Propriedade essencial: ser imutável. ● Propriedade desejável: um OID não deve ser reutilizado. ● OIDs não podem depender de valores de atributos de objetos. BDOO - Características
  • 13. ENCAPSULAMENTO ● É possível definir o comportamento de um tipo de objetos, através das operações que podem ser aplicadas externamente aos objetos do mesmo tipo. ● A estrutura interna do objeto permanece escondida, e o acesso ao mesmo se dá somente através das operações definidas.. BDOO - Características
  • 14. OPERAÇÕES MAIS COMUNS ● Criar um objeto ● Destruir um objeto ● Atualizar um objeto ● Recuperar dados do objeto ● Efetuar algum cálculo
  • 15. • Especificando o comportamento dos objetos • define class Empregado: • type tuple ( nome: string; • snome: string; • cpf: string; • endereco: string; • sexo: char; • salario: float; ) • operations idade: integer; • criar_emp: Empregado; • excluir_emp: boolean; • end Empregado;
  • 16. HIERARQUIA DE TIPOS (CLASSES) E HERANÇA ● Classes similares postas em uma hierarquia de especialização. ● É possível a definição de novos tipos a partir de tipos outros predefinidos. ● O novo tipo herdará todas as funções (atributos e operações) do primeiro (supertipo). BDOO - Características
  • 17. ● EXEMPLO • PESSOA: Nome, Endereço, DataNasc, Idade, CPF • EMPREGADO subtype-of PESSOA: Salario, DataContact • ESTUDANTE subtype-of PESSOA: Matricula, Curso
  • 18. Transações ● Uma unidade de execução do programa que acessa e, possivelmente, atualiza vários itens. ● Atomicidade | Consistência |Isolamento | Durabilidade ● Transações Demoradas Interação de muitos objetos complexos Longo tempo ● Transações Aninhadas ● Transações em Cooperação
  • 19. Concorrência • Permite o acesso simultâneo aos dados para vários usuários • Controle de concorrência: Bloqueio Os objetos persistentes podem ser bloqueados • Bloqueio por hierarquia de classe • Bloqueio de objeto complexo
  • 20. Gerenciamento de recuperação • Estrutura de logs: • Armazenar imagens anteriores e posteriores dos objetos atualizados Imagem anterior Imagem posterior Estado do objeto antes da atualização Estado do objeto depois da atualização
  • 21. Versionamento • Há necessidade de armazenar versões anteriores devido a uma possível situação de utilização dessa versão. • Conjunto de ferramentas e construções que automatizam ou simplificam a construção e a organização de versões ou configurações. • OID é uma propriedade comum no controle de versões
  • 22. Consultas • O acesso aos dados pode ser feito de duas formas: • Linguagem de programação que utiliza OID • Linguagem de consultas derivadas do SQL • Padrões e especificações da ODMG
  • 23. Especificação e Padronização ● ODMG - Object Database Management Group responsável pela padronização de especificações para persistência de objetos de linguagem de programação OO para objetos em banco de dados; ● Escopo da especificação: ○ Object Database Management Systems (ODBMSs) ○ Object-to-Database Mappings (ODMs)
  • 24. Especificação e Padronização ● Maiores componenentes: ○ Object Model – Modelo de Objeto; ○ Object Specification Languages; ○ Object Query Language;
  • 25. Object Model – Modelo de Objeto ● É importante porque especifica os tipos de semântica que podem ser definidas explicitamente para um ODMS. ● Determina: ○ As características dos objetos; ○ Os relacionamentos; ○ Chamadas e identificadores;
  • 26. Object Model – Modelo de Objeto ● Construtores suportados por um ODMS: Object Literal Types Instance Properties Attributes Relationships Operations Schema
  • 27. Object Specification Languages – Linguagem de Especificação do Objeto • São independentes da linguagem de programação e são usados para representar os sistemas de gerenciamento de dados de objeto • Definem esquemas, estados e operações de um ODMS • Facilitam a migração dos dados entre o banco e a aplicação, garantindo a interoperabilidade
  • 28. Object Query Language – Linguagem de Consulta de Objetos • É a linguagem de consulta que suporte o modelo de objetos • É próxima a linguagem SQL e agrega as noções de objetos complexos, herança, identidade do objeto, polimorfismo, operações, etc. • Fornece um acesso declarativo ao objeto • Não é uma linguagem completa e pode ser chamada dentro de uma linguagem de programação
  • 29. ODMG - Especificação • Define padrões para linguagens: • C++ • Smalltalk • Java
  • 30. Exemplos de banco de dados OO
  • 31. Exemplo - PostgreSQL CREATE TYPE NOME AS ( primeiro_nome VARCHAR(20), sobrenome VARCHAR(20) ); CREATE TYPE ENDERECO AS ( rua VARCHAR(40), numero INTEGER, bairro VARCHAR(40), cep VARCHAR(10), cidade VARCHAR(40), estado CHAR(2), pais VARCHAR(40) ); CREATE TYPE TELEFONE AS ( ddi CHAR(3), ddd CHAR(3), telefone VARCHAR(20) ); CREATE TYPE CLIENTE AS ( nm_cliente NOME, end_cliente ENDERECO, tel_clienteTELEFONE ); CREATE TABLE TB_CLIENTE( client CLIENTE, fg_ativo INTEGER );
  • 32. Vantagens • Capacidade de armazenamento de objetos; • Poder de processamento de requisições; • Não possui chave primária nem estrangeira, aumentando o desempenho das consultas e processos; • Objetos se comunicam entre si através de mensagens;
  • 33. Desvantagens • Falta de padronização das linguagens de manipulação de dados; • Alto custo de aquisição das novas tecnologias; • Curva de aprendizagem e adaptação ao novo ambiente demorada;
  • 34. Bibliografia • SILBERSCHATZ, Abraham. Sistemas de Banco de Dados. 3 ed. Makron Books (Grupo Pearson). 1999 • NASSU, Euginio A. Banco de dados orientado a objetos. Valdemar W. Setzer – São Paulo: Blucher, 1999 • The Object Data Standard: ODMG 3.0 – Disponível em: http://www.odbms.org/odmg/ Acesso: novembro de 2013