Este documento discute os conceitos de banco de dados orientados a objetos (BDOO), incluindo suas características principais como persistência, objetos complexos, identidade de objetos, encapsulamento, hierarquia de classes e herança. Também aborda tópicos como transações, concorrência, gerenciamento de recuperação, versionamento, consultas e padrões/especificações.
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
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
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