O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.
Banco de Dados
Orientados a Objetos
Rayane Menezes
Raquel Machado
Programa de Pós-Graduação em Engenharia da Eletricidade ...
ROTEIRO
• Introdução
• Conceito de BDOO
• Características do BDOO
• Transações
• Concorrência
• Gerenciamento de recuperaç...
Introdução
● Banco de Dados Relacional
○ Aumento da independência dos dados nos SGBD’s;
○ Disponibilização de um conjunto ...
Introdução
● Banco de Dados Relacional
○ Adequado apenas para aplicações “estruturalmente” simples;
○ Poder de expressão d...
● Aplicações mais complexas
○ CAD - Projeto Auxiliado por Computador – armazenar dados de projeto de
engenharia.
○ CASE - ...
● Maior motivação para o surgimento de novas abordagens para o
gerenciamento de dados.
● BDOO - Integração do paradigma de...
BDOO - Conceito
● É um banco em que cada informação é armazenada na forma de objetos, e
só podem ser manipuladas através d...
BDOO - Características
PERSISTÊNCIA
● A característica que diferencia os BDOO em relação às LPOO.
● Nas LPOO os objetos ex...
Abordagens para persistência dos objetos
● Persistência por classe – objetos pertencentes às classe assim declaradas são
p...
OBJETOS COMPLEXOS
● Objetos que contém outros objetos.
● São formados por construtores (conjuntos, listas, tuplas, registr...
IDENTIDADE DO OBJETO (OID)
● Um SGBDOO provê um identificador único para cada objeto
independente criado.
● Propriedade es...
ENCAPSULAMENTO
● É possível definir o comportamento de um tipo de objetos, através das
operações que podem ser aplicadas e...
OPERAÇÕES MAIS COMUNS
● Criar um objeto
● Destruir um objeto
● Atualizar um objeto
● Recuperar dados do objeto
● Efetuar a...
• Especificando o comportamento dos objetos
• define class Empregado:
• type tuple ( nome: string;
• snome: string;
• cpf:...
HIERARQUIA DE TIPOS (CLASSES) E HERANÇA
● Classes similares postas em uma hierarquia de especialização.
● É possível a def...
● EXEMPLO
• PESSOA: Nome, Endereço, DataNasc, Idade, CPF
• EMPREGADO subtype-of PESSOA: Salario, DataContact
• ESTUDANTE s...
Transações
● Uma unidade de execução do programa que acessa e, possivelmente,
atualiza vários itens.
● Atomicidade | Consi...
Concorrência
• Permite o acesso simultâneo aos dados para vários usuários
• Controle de concorrência:
Bloqueio Os objetos ...
Gerenciamento de recuperação
• Estrutura de logs:
• Armazenar imagens anteriores e posteriores dos objetos atualizados
Ima...
Versionamento
• Há necessidade de armazenar versões anteriores devido a uma possível
situação de utilização dessa versão.
...
Consultas
• O acesso aos dados pode ser feito de duas formas:
• Linguagem de programação que utiliza OID
• Linguagem de co...
Especificação e Padronização
● ODMG - Object Database Management Group responsável pela
padronização de especificações par...
Especificação e Padronização
● Maiores componenentes:
○ Object Model – Modelo de Objeto;
○ Object Specification Languages;...
Object Model – Modelo de Objeto
● É importante porque especifica os tipos de semântica que podem ser
definidas explicitame...
Object Model – Modelo de Objeto
● Construtores suportados por um ODMS:
Object Literal
Types Instance
Properties Attributes...
Object Specification Languages –
Linguagem de Especificação do Objeto
• São independentes da linguagem de programação e sã...
Object Query Language – Linguagem de
Consulta de Objetos
• É a linguagem de consulta que suporte o modelo de objetos
• É p...
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 (
r...
Vantagens
• Capacidade de armazenamento de objetos;
• Poder de processamento de requisições;
• Não possui chave primária n...
Desvantagens
• Falta de padronização das linguagens de manipulação de dados;
• Alto custo de aquisição das novas tecnologi...
Bibliografia
• SILBERSCHATZ, Abraham. Sistemas de Banco de Dados. 3 ed. Makron
Books (Grupo Pearson). 1999
• NASSU, Eugini...
Obrigada pela Atenção!
Dúvidas?
Banco de dados orientados a objetos
Próximos SlideShares
Carregando em…5
×

Banco de dados orientados a objetos

812 visualizações

Publicada em

Apresentação sobre banco de dados orientados a objetos

Publicada em: Tecnologia
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Banco de dados orientados a objetos

  1. 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. 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. 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. 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. 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. 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. 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. 8. 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.
  9. 9. 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
  10. 10. 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
  11. 11. 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
  12. 12. 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
  13. 13. OPERAÇÕES MAIS COMUNS ● Criar um objeto ● Destruir um objeto ● Atualizar um objeto ● Recuperar dados do objeto ● Efetuar algum cálculo
  14. 14. • 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;
  15. 15. 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
  16. 16. ● EXEMPLO • PESSOA: Nome, Endereço, DataNasc, Idade, CPF • EMPREGADO subtype-of PESSOA: Salario, DataContact • ESTUDANTE subtype-of PESSOA: Matricula, Curso
  17. 17. 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
  18. 18. 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
  19. 19. 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
  20. 20. 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
  21. 21. 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
  22. 22. 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)
  23. 23. Especificação e Padronização ● Maiores componenentes: ○ Object Model – Modelo de Objeto; ○ Object Specification Languages; ○ Object Query Language;
  24. 24. 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;
  25. 25. Object Model – Modelo de Objeto ● Construtores suportados por um ODMS: Object Literal Types Instance Properties Attributes Relationships Operations Schema
  26. 26. 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
  27. 27. 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
  28. 28. ODMG - Especificação • Define padrões para linguagens: • C++ • Smalltalk • Java
  29. 29. Exemplos de banco de dados OO
  30. 30. 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 );
  31. 31. 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;
  32. 32. 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;
  33. 33. 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
  34. 34. Obrigada pela Atenção! Dúvidas?

×