SlideShare une entreprise Scribd logo
1  sur  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?

Contenu connexe

Tendances

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
 
Trabalho banco de dados orientado a objetos
Trabalho banco de dados orientado a objetosTrabalho banco de dados orientado a objetos
Trabalho banco de dados orientado a objetoseneck
 
Banco de dados atividade de sala
Banco de dados atividade de salaBanco de dados atividade de sala
Banco de dados atividade de salaCarlos Melo
 
Banco de Dados - MySQL Basico
Banco de Dados - MySQL BasicoBanco de Dados - MySQL Basico
Banco de Dados - MySQL BasicoRangel Javier
 
Banco de Dados I - Aula 10 - Banco de Dados Relacional (Modelo Físico)
Banco de Dados I - Aula 10 - Banco de Dados Relacional (Modelo Físico)Banco de Dados I - Aula 10 - Banco de Dados Relacional (Modelo Físico)
Banco de Dados I - Aula 10 - Banco de Dados Relacional (Modelo Físico)Leinylson Fontinele
 
Banco de Dados I - Aula 09 - Normalização de Dados
Banco de Dados I - Aula 09 - Normalização de DadosBanco de Dados I - Aula 09 - Normalização de Dados
Banco de Dados I - Aula 09 - Normalização de DadosLeinylson Fontinele
 
Banco de Dados II Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)
Banco de Dados II  Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)Banco de Dados II  Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)
Banco de Dados II Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)Leinylson Fontinele
 
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
 
Modelo Relacional, Rede e Hierárquico
Modelo Relacional, Rede e HierárquicoModelo Relacional, Rede e Hierárquico
Modelo Relacional, Rede e Hierárquicorosimaracorsino
 
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
 
08 modelo conceitual_fisico_logico_er
08 modelo conceitual_fisico_logico_er08 modelo conceitual_fisico_logico_er
08 modelo conceitual_fisico_logico_erWalter Alves Pereira
 
Banco de Dados II: Aspectos de Segurança em Banco de Dados (aula 13)
Banco de Dados II: Aspectos de Segurança em Banco de Dados (aula 13)Banco de Dados II: Aspectos de Segurança em Banco de Dados (aula 13)
Banco de Dados II: Aspectos de Segurança em Banco de Dados (aula 13)Gustavo Zimmermann
 
Introdução a modelagem de dados - Banco de Dados
Introdução a modelagem de dados - Banco de DadosIntrodução a modelagem de dados - Banco de Dados
Introdução a modelagem de dados - Banco de Dadosinfo_cimol
 
Mer - Modelo Entidade Relacionamento
Mer - Modelo Entidade RelacionamentoMer - Modelo Entidade Relacionamento
Mer - Modelo Entidade RelacionamentoRademaker Siena
 
Banco de Dados Conceitos
Banco de Dados ConceitosBanco de Dados Conceitos
Banco de Dados ConceitosCleber Ramos
 

Tendances (20)

Modelos de Banco de dados e SGBDS
Modelos de Banco de dados e SGBDSModelos de Banco de dados e SGBDS
Modelos de Banco de dados e SGBDS
 
Modelos de base de dados
Modelos de base de dadosModelos de base de dados
Modelos de base de dados
 
Aula 4 banco de dados
Aula 4   banco de dados Aula 4   banco de dados
Aula 4 banco de dados
 
Apresentação Banco de Dados - Caché
Apresentação Banco de Dados - CachéApresentação Banco de Dados - Caché
Apresentação Banco de Dados - Caché
 
Trabalho banco de dados orientado a objetos
Trabalho banco de dados orientado a objetosTrabalho banco de dados orientado a objetos
Trabalho banco de dados orientado a objetos
 
Banco de dados atividade de sala
Banco de dados atividade de salaBanco de dados atividade de sala
Banco de dados atividade de sala
 
Aula 9 banco de dados
Aula 9   banco de dadosAula 9   banco de dados
Aula 9 banco de dados
 
Banco de Dados - MySQL Basico
Banco de Dados - MySQL BasicoBanco de Dados - MySQL Basico
Banco de Dados - MySQL Basico
 
Banco de Dados I - Aula 10 - Banco de Dados Relacional (Modelo Físico)
Banco de Dados I - Aula 10 - Banco de Dados Relacional (Modelo Físico)Banco de Dados I - Aula 10 - Banco de Dados Relacional (Modelo Físico)
Banco de Dados I - Aula 10 - Banco de Dados Relacional (Modelo Físico)
 
Banco de Dados I - Aula 09 - Normalização de Dados
Banco de Dados I - Aula 09 - Normalização de DadosBanco de Dados I - Aula 09 - Normalização de Dados
Banco de Dados I - Aula 09 - Normalização de Dados
 
Banco de Dados II Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)
Banco de Dados II  Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)Banco de Dados II  Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)
Banco de Dados II Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)
 
Banco de Dados Orientado a Objetos
Banco de Dados Orientado a ObjetosBanco de Dados Orientado a Objetos
Banco de Dados Orientado a Objetos
 
Modelo Relacional, Rede e Hierárquico
Modelo Relacional, Rede e HierárquicoModelo Relacional, Rede e Hierárquico
Modelo Relacional, Rede e Hierárquico
 
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
 
08 modelo conceitual_fisico_logico_er
08 modelo conceitual_fisico_logico_er08 modelo conceitual_fisico_logico_er
08 modelo conceitual_fisico_logico_er
 
Banco de Dados II: Aspectos de Segurança em Banco de Dados (aula 13)
Banco de Dados II: Aspectos de Segurança em Banco de Dados (aula 13)Banco de Dados II: Aspectos de Segurança em Banco de Dados (aula 13)
Banco de Dados II: Aspectos de Segurança em Banco de Dados (aula 13)
 
Introdução a modelagem de dados - Banco de Dados
Introdução a modelagem de dados - Banco de DadosIntrodução a modelagem de dados - Banco de Dados
Introdução a modelagem de dados - Banco de Dados
 
Modelagem de dados
Modelagem de dadosModelagem de dados
Modelagem de dados
 
Mer - Modelo Entidade Relacionamento
Mer - Modelo Entidade RelacionamentoMer - Modelo Entidade Relacionamento
Mer - Modelo Entidade Relacionamento
 
Banco de Dados Conceitos
Banco de Dados ConceitosBanco de Dados Conceitos
Banco de Dados Conceitos
 

Similaire à Banco de Dados Orientados a Objetos

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
 

Similaire à Banco de Dados Orientados a Objetos (20)

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
 
Mongo db
Mongo dbMongo db
Mongo db
 

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