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

Banco de dados orientados a objetos

Embed Size (px)

DESCRIPTION

Apresentação sobre banco de dados orientados a objetos

Citation preview

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

ODMG - Especificação

• Define padrões para linguagens:

• C++

• Smalltalk

• Java

Exemplos de banco de dados OO

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

Obrigada pela Atenção!Dúvidas?