Banco de Dados Orientados a
ObjetosRayane 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
PropertiesAttributes
RelationshipsOperations
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
Exemplo - PostgreSQLCREATE 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