banco de dados orientado a objetos

102
Grupo Andrêsa Cibelly Clébia Alves Cleyton Vanut Mouglas Eugênio Ronnie Edson

Upload: ronnie

Post on 19-Jun-2015

3.161 views

Category:

Documents


1 download

DESCRIPTION

Seminário apresentado na turma de Projeto de Banco de Dados 2010.1 no Curso de Bacharelado em Sistemas de Informação. Universidade Federal Rural de Pernambuco - Unidade Acadêmica de Serra Talhada.

TRANSCRIPT

Page 1: Banco de Dados Orientado a Objetos

Grupo

Andrêsa Cibelly

Clébia Alves

Cleyton Vanut

Mouglas Eugênio

Ronnie Edson

Page 2: Banco de Dados Orientado a Objetos

Roteiro

1 - Modelos de Banco de Dados

2 - Banco de Dados Orientado a Objetos

3 - Exemplos de Sistemas de Gerência Banco de Dados Orientado a Objetos

4 - O Padrão ODMG

5 - Operações no BDOO

6 - Técnicas e Ferramentas de Apoio

7 – Vantagens e Desvantagens

8 - Tendências

Banco de Dados Orientados a Objetos

2

Page 3: Banco de Dados Orientado a Objetos

Introdução

Banco de Dados Orientados a Objetos

Problemas

atuais no

desenvolvimento

de BD

Falta de abordagens

adequada

Resultados indesejáveis

Ineficiência no atendimento

da demanda

Problemas na manutenção

3

Page 4: Banco de Dados Orientado a Objetos

Modelos de Banco de Dados

Banco de Dados Orientados a Objetos

O modelo de dados é

a principal ferramenta

no fornecimento de

informações sobre a

abstração.

Consiste de um conjunto

de conceitos utilizados

para descrever a

estrutura de um BD, ou

seja, os tipos de dados,

relacionamentos e

restrições sobre estes

dados.

4

Page 5: Banco de Dados Orientado a Objetos

Primeiro a ser conhecido como Modelo de Dados

Banco de Dados Orientados a Objetos

Modelo Hierárquico

Tarciso 505 A Gama Valmer 204 C Paranoá Cesar 713 B Ceilândia

3B4 20,00 5B2 52,25 2C3 100,00 8A1 5,00

Registro: coleção de campos contendo somente um valor.

Link: é uma associação entre exatamente dois registros.

Possui estrutura do tipo árvore

5

Page 6: Banco de Dados Orientado a Objetos

Banco de Dados Orientados a Objetos

Modelo Hierárquico

Tarciso 505 A Gama Valmer 204 C Paranoá Cesar 713 B Ceilândia

3B4 20,00 5B2 52,25 2C3 100,00 8A1 5,00

Os registros filhos só podem ter um pai;

Caso um registro necessite ter dois pais, deve ser replicado.

Desvantagens da replicação:

Inconsistência ao realizar atualizações

Desperdício de espaço;A navegação neste modelo deve obedecer os padrões do modelo

6

Page 7: Banco de Dados Orientado a Objetos

Banco de Dados Orientados a Objetos

1. Não pode haver ciclos no gráfico básico de um

diagrama de estrutura de árvore

2. Restrições nos relacionamentos (links) de muitos

para muitos (N:M) e de muitos para um (N:1)

3. Necessidade de navegação por ponteiros para

acessar a informação desejada

4. Só trabalha com dados primitivos

Modelo Hierárquico

Dificuldades

7

Page 8: Banco de Dados Orientado a Objetos

Banco de Dados Orientados a Objetos

Modelo em Rede

Este modelo surgiu para suprir algumas deficiências no Modelo Hierárquico

O conceito de hierarquia foi abolido;

Esse modelo aceita relacionamentos NxM

Um filho pode ter mais de um pai;

Utiliza grafos ao invés de árvores;

Possui uma linguagem própria para definição e manipulação

Concorrência e segurança

Características:

8

Page 9: Banco de Dados Orientado a Objetos

Banco de Dados Orientados a Objetos

• Aumenta significativamente o trabalho do

programador, tanto para o projeto de um banco de

dados quanto para a manipulação dos dados

• Necessidade do uso de mecanismo complicados

(ponteiros)

• Projetista do banco de dados tem que criar tipos de

registros artificiais para implementar simples

relacionamentos muitos para muitos (N:M)

Modelo em Rede

Dificuldades

9

Page 10: Banco de Dados Orientado a Objetos

Banco de Dados Orientados a Objetos

Modelo Relacional

Surgiu com o propósito de aumentar a

independência dos sistemas gerenciadores de BD.

Características:

Baseado em funções de álgebra relacional

Representado por coleções de tabelas;

Cada tabela possui nome, tuplas, etc.

Restrições:

Não pode haver tuplas repetidas

Restrições de chave;

10

Page 11: Banco de Dados Orientado a Objetos

Banco de Dados Orientados a Objetos

Modelo Relacional - OO

Junção do modelo Relacional com modelo OO

Características:

Segue o padrão SQL

Possui identidade de objeto, encapsulamento, herança e

polimorfismo;

A semântica da aplicação é modelada através de objetos,

porém a implementação física ainda é feita através de tabelas

11

Page 12: Banco de Dados Orientado a Objetos

Banco de Dados Orientados a Objetos

Motivação

A maioria das aplicação são desenvolvidas em OO;

Necessidade de tradução para uma linguagem que o

BD entenda;

Dificuldade de trabalhar com objetos complexos no

modelo relacional.

12

Page 13: Banco de Dados Orientado a Objetos

Surgimento

Banco de Dados Orientados a Objetos

Combinação de ideias

dos modelos de dados

tradicionais e linguagens

de Programação OO

Crescimento em 2004

A ODMG padronizou

uma linguagem para

consulta de objetos

O acesso aos dados

neste modelo é bem

mais rápido, já que o

acesso é feito

diretamente aos

objetos.

13

Page 14: Banco de Dados Orientado a Objetos

Banco de Dados Orientados a Objetos

BDOO

Conceitos

Básicos

Um SGBDOO provê um identificador único

(IDO) para cada objeto independente

armazenado no BD.

Propriedade essencial: não mudar

Propriedade desejável: um IDO não deve ser

reutilizado.

Então... IDOs não podem depender de

valores de atributos dos objetos.

Identidade do Objeto

14

Page 15: Banco de Dados Orientado a Objetos

Formalmente, um objeto pode ser representado por um trio (triple) (i,c,v), onde:

i: IDO

c: construtor de tipo

v: estado (ou valor) do objeto

o1=(i1,atom, „Houston‟)

o2=(i2,atom, „Bellaire‟)

o3=(i3,atom, „Sugarland‟)

15

Banco de Dados Orientados a Objetos

Exemplo

BDOO

Conceitos

Básicos

Objeto

Page 16: Banco de Dados Orientado a Objetos

Banco de Dados Orientados a Objetos

BDOO

Conceitos

Básicos

O interesse pela representação de objetos

complexos é a principal motivação para o

desenvolvimento de sistemas OO.

Requerem grande quantidade de memória.

Imagens ou longos objetos textuais

O SGBDOO não conhece sua estrutura (somente

a aplicação que deles faz uso pode interpretar

seu significado)

Possuem uma estrutura definida pela repetida

aplicação dos construtores de tipo providos

pelo SGBDOO.

Objetos complexos

Não Estruturados

Estruturados

16

Page 17: Banco de Dados Orientado a Objetos

Em que

são

usados os

BDOO?

Banco de Dados Orientados a Objetos

São usados em aplicações que utilizam objetos

complexos

• Projetos de engenharia e arquitetura.

• Experiências cientificas.

• Telecomunicações.

• Sistemas de informações geográficas.

• Multimídia.

Aplicações complexas

Características das Aplicações complexas

• Transações e duração mais longa

• Novos tipos de dados para

armazenar: imagens ou documentos

de texto

17

Page 18: Banco de Dados Orientado a Objetos

Banco de Dados Orientado a Objetos

Banco de Dados Orientados a Objetos

Cada informação é armazenada na forma de

objeto;

Só pode ser manipulada por métodos;

Lembrando....

São mais adequados para o tratamento

de objetos complexos (textos, gráficos,

imagens)

18

Page 19: Banco de Dados Orientado a Objetos

BD Relacional BDOO

BDOO x BD Relacional

Banco de Dados Orientados a Objetos

Coleção de tabelas com

nomes únicos

Integridade referencial e

chaves primárias

garantem a consistência

das informações

Já um BDOO possui três pilares

principais:

Herança;

Polimorfismo;

e encapsulamento.

Este modelo apresenta maior

flexibilidade na manipulação de

seu conteúdo e por meio de

identificadores de objetos

manipula os dados de forma

consistente.

19

Page 20: Banco de Dados Orientado a Objetos

O conceito (OO) forma uma base de aplicações mais avançadas como:

Aplicações de engenharia;

SI Geográficos, Multimídia;

Sistemas de Interface de Usuários.

BDOO‟s diferem dos BD‟sTradicionais pela:

Estrutura de dados mais complexa;

Transações duradouras;

Novos tipos de dados para armazenar imagens e textos;

Necessidade de definir operações não padrões específica da aplicação.

Banco de Dados Orientados a Objetos

20

Page 21: Banco de Dados Orientado a Objetos

Banco de Dados Orientados a Objetos

Características

Banco de Dados Orientados a Objetos

21

Page 22: Banco de Dados Orientado a Objetos

BDOO requer conceitos próprios;

Possui Objetos Persistentes;

Modelagem BDOO

Objetos armazenados no BDOO está

associado a um identificador único

chamado de OID (Object Indentifier),

que é gerado pelo SGBDOO;

Banco de Dados Orientados a Objetos

22

Page 23: Banco de Dados Orientado a Objetos

Valor invisível ao usuário;

É imutável;

Desejável que seja usado apenas uma vez;

Não pode depender de valor de atributo do

objeto.

Modelagem BDOO‟s

Características do OID

Banco de Dados Orientados a Objetos

23

Page 24: Banco de Dados Orientado a Objetos

Estrutura do Objeto

Programadores sem muitas

preocupações;

Melhor desempenho;

O valor de cada

atributo de um o

objeto pode ser:

- atômico: integer,

real, character,

booleano, etc.

- complexo: tuple, set, list, bag e array.

Vantagens de OID’s em relação as

Chaves:

No MOO não existe conceito de chave primária, existe os OID‟s dos

objetos que são criados e

mantidos pelo SGBD e não são de

acesso de usuários.

Banco de Dados Orientados a Objetos 24

Page 25: Banco de Dados Orientado a Objetos

Método consiste de

assinatura e corpo;

O comportamento de um

objeto em um BDOO é

representada do por meio de

métodos .

Métodos

Banco de Dados Orientados a Objetos

25

Page 26: Banco de Dados Orientado a Objetos

São

agrupamentos

de objetos de

um mesmo tipo,

possuindo

comportamentos

e propriedades

em comum.

ClassesExemplo:

Banco de Dados Orientados a Objetos

26

Page 27: Banco de Dados Orientado a Objetos

Classes

Os BDOO‟s que novos tipos sejam criados

para se adequar ao requerimento da

aplicação, sendo combinados com os

tipos existentes no sistema e sendo

utilizados da mesma maneira.

Banco de Dados Orientados a Objetos

27

Page 28: Banco de Dados Orientado a Objetos

No BDOO esta noção é mais visível;

A maioria dos SGBDOO‟s permitem acesso direto aos atributos, onde é uma violação do encapsulamento que o BD permite.

Encapsulamento

Determina que somente as

operações sobre os objetos são visíveis e sua estrutura é escondida;

Banco de Dados Orientados a Objetos

28

Page 29: Banco de Dados Orientado a Objetos

Herança

Na herança uma classe chamada subclasse pode ser

definida com base na definição de outra classe

chamada superclasse.

Banco de Dados Orientados a Objetos

29

Page 30: Banco de Dados Orientado a Objetos

Polimorfismo

Exemplo:uma operação display que recebe um objeto como entrada e apresenta o objeto na tela. Se o objeto for:

Uma pessoa: deseja-se apresentar os dados sobre a pessoa (nome,

endereço, etc);

Uma imagem: deseja-se apresentar a imagem;

Um gráfico: deseja-se apresentar uma representação gráfica.

Os SGBDOO‟s permitem o recurso de polimorfismo de operações conhecido como Sobrecarga de operador (overloading) ;

Banco de Dados Orientados a Objetos

30

Page 31: Banco de Dados Orientado a Objetos

Usando um sistema convencional :

Usando o Sistema OO

for x in X do

begin

case of type(x)

pessoa: display_pessoa(x);

figura: display_figura(x);

gráfico: display_gráfico(x);

end;

end;

for x in X do display(x)

Polimorfismo

A operação tem um único nome

e pode ser chamada por vários

objetos;

O sistema decide qual

implementação usar para a

execução.

Banco de Dados Orientados a Objetos

31

Page 32: Banco de Dados Orientado a Objetos

Um banco de dados é usualmente mantido e

acessado por meio de

um software conhecido

como Sistema Gerenciador de Banco

de Dados (SGBD).

Podem ser definidos como

um BD capaz de armazenar

além de dados, outros tipos

diferentes de dados que

não podem ser convertidos

somente em arquivos

lineares ou bidimensionais

como tabelas, e sim um

tipo especial de objeto.

Definição

Banco de Dados Orientados a Objetos

32

Page 33: Banco de Dados Orientado a Objetos

SGBDOO

Caracteristicas

A principal característica de SGBDOO é

modelar estruturas complexas

armazenando não somente a estrutura

de dados, mas também seu

comportamento.

a noção de objeto é usada no nível

lógico e possui características não

encontradas nas linguagens de

programação tradicionais;

Banco de Dados Orientados a Objetos

33

Page 34: Banco de Dados Orientado a Objetos

SGBDOO no mercado

Banco de Dados Orientados a Objetos

34

Page 35: Banco de Dados Orientado a Objetos

Órion

Foi resultado de um projeto

desenvolvido no Programa

Advanced Computer

Architecture da MCC

(Microelectronics and

Computer Corporation),

empresa de Austin;

Muito usado em perícias;

Mais barato do mercado.

Caracteristicas

Banco de Dados Orientados a Objetos

35

Page 36: Banco de Dados Orientado a Objetos

Órion

Conta com 1103 veículos de

carga;

4121 veículos de passeio e

comerciais leves cadastrados em

seu banco de dados;

Além de ser o mais barato do

mercado. Presente em mais de

640 oficinas, o Órion possibilitou a

realização de mais de130 mil

perícias, no ano de 2006.

Banco de Dados Orientados a Objetos

36

Page 37: Banco de Dados Orientado a Objetos

Órion Novo layout da agenda de visitas: Possui

todas as informações necessárias para o

trâmite de realização de orçamento e comunicação direta com o perito da

seguradora;

Novo layout de fotos: Possibilita a inserção de mais de 30 fotos por

processo;

Consulta eletrônica de peças: Permite a consulta eletrônica de peças, tanto por

descrição como por part-number.

Novas Funcionalidades

Banco de Dados Orientados a Objetos

37

Page 38: Banco de Dados Orientado a Objetos

Agenda de Visitas

Banco de Dados Orientados a Objetos 38

Page 39: Banco de Dados Orientado a Objetos

Agenda de Visitas

Banco de Dados Orientados a Objetos 39

Page 40: Banco de Dados Orientado a Objetos

Consulta de Peças

Banco de Dados Orientados a Objetos 40

Page 41: Banco de Dados Orientado a Objetos

Layout de Fotos

Banco de Dados Orientados a Objetos 41

Page 42: Banco de Dados Orientado a Objetos

Órion

Banco de Dados Orientados a Objetos 42

Page 43: Banco de Dados Orientado a Objetos

DB4O

Poderoso SGBDOO para

manipulação de objetos como

base de dados;

Possui uma performance ate 40 vezes maior que qualquer banco de dados relacional;

Processa aproximadamente 200.000 objetos por segundo, seu código é aberto e seu custo é muito baixo (praticamente zero).

CaracteristicasFacilidade de uso;

Voltado a objeto;

A ferramenta permite armazenar classes

Java diretamente no banco, sem precisar

utilizar consultas SQL ou qualquer tipo de ferramenta que faça o mapeamento

objeto-relacional.

Banco de Dados Orientados a Objetos

43

Page 44: Banco de Dados Orientado a Objetos

Implementação com o DB4O em Java:

/**

* Definição básica de um Carro.

* */

public class Carro {

private String fabricante;

private String modelo;

//Construtor

public Carro(String marca, String modelo) {

this.fabricante = marca;

this.modelo = modelo;

}

//gets e sets

}

/**

* Exemplo de utilização do db4o.

* */

public class GravaObjeto {

private static final String DB_FILENAME = "exemplo.db";

private static ObjectContainer db;

public static void main(String args[]) {

// Abrindo o arquivo de dados.

db = Db4o.openFile(DB_FILENAME);

try {

// Instanciando dois objetos da classe Carro.

Carro corsa = new Carro("Chevrolet", "Corsa

Hatch 1.6");

Carro fiesta = new Carro("Ford", "Fiesta

Hatch 1.6");

// Gravando os dois objetos no banco de dados.

db.set(corsa);

db.set(fiesta);

db.commit();

} finally {

// Fechando o arquivo de dados.

db.close();

}

Banco de Dados Orientados a Objetos

44

Page 45: Banco de Dados Orientado a Objetos

Caché

Banco de

dados mais

rápido do

mundo!

Disponível para Windows, Open

VMS, Linux e a maioria das

plataformas UNIX e é entregue em

sistemas que vão de dois a mais de 10,000 de usuários simultâneos.

BD pós-relacional OO, vem conquistando espaço no mercado

devido ao seu desempenho com as aplicações.

Permite a integração entre a linguagem padrão de banco de dados:

SQL (Structured Query Language –Linguagem de Consultas Estruturada)

OQL (Object Query Language –Linguagem de Consutlas a Objetos).

Banco de Dados Orientados a Objetos

45

Page 46: Banco de Dados Orientado a Objetos

Linguagens de Programação

Caché

Banco de Dados Orientados a Objetos 46

Page 47: Banco de Dados Orientado a Objetos

Vantagens

Aplicações web de alta

performance ;

Menos trabalho;

Custo-efetividade;

Banco de Dados Orientados a Objetos

47

Page 48: Banco de Dados Orientado a Objetos

ZODBO ZODB (banco de

dados orientado à

objetos para

aplicalções

Phyton,

originalmente

criado como um

componente do

servidor de

Aplicação Zope2

(Z Object

Publishing

Environment).

Um banco de dados objeto nativo para Python

Objetivo principal: transparência

para o desenvolvedor Python;

Não impõe que estruturas de

tabelas e índices sejam usadas

para armazenar os dados;

O desenvolvedor pode utilizar

qualquer estrutura de dados

nativa da linguagem para

armazenar e pesquisar seus

objetos no SGBD como: listas,

dicionários ou árvores B.

Banco de Dados Orientados a Objetos

48

Page 49: Banco de Dados Orientado a Objetos

GemStone Utiliza a técnica de BD

distribuídos;

Oferece uma arquitetura

cliente/servidor;

Trabalha com diversas

linguagens de dados;

49

Banco de Dados Orientados a Objetos

Page 50: Banco de Dados Orientado a Objetos

Oracle 10g

Oracle é o mais popular

banco de dados

relacional do mundo para aplicações

transacionais;

Tiram proveito de características dos sistemas relacionais e do sistema orientado a objeto;

50

Banco de Dados Orientados a Objetos

O banco de dados mais rápido para

aplicações OLTP;

O banco de dados mais rápido para

aplicações de datawarehouse;Banco de dados autogerenciável;

Características

Page 51: Banco de Dados Orientado a Objetos

Padrão ODMG

O ODMG (Object Database Management Group) era um consórcio de vendedores de banco de

dados orientados a objetos e mapeadores objeto-relacionais, membros da comunidade acadêmica,

e parceiros interessados. A meta era criar um conjunto de especificações que permitiriam a portabilidade das aplicações que armazenam

objetos em sistemas de gerenciamento de banco de dados.

Banco de Dados Orientados a Objetos

51

Page 52: Banco de Dados Orientado a Objetos

Padrão ODMG

Padronização vinda através do consórcio de

SGBDO que criou o padrão ODMG (Object

Data Management Group), lançando o

ODMG-93 ou ODMG 1.0.

Banco de Dados Orientados a Objetos

52

Page 53: Banco de Dados Orientado a Objetos

Linguagens de consulta

O ODMG definiu sua própria SQL:

OQL (Object Query Language), linguagem de

recuperação de objetos;

ODL (Object Definition Language), linguagem

para definir e armazenar estes objetos.

Banco de Dados Orientados a Objetos

53

Page 54: Banco de Dados Orientado a Objetos

Características básicas do objeto

1 ° - OID – O número de identificação do

objeto;

2 º - nome – Uma identificação feita durante

a aplicação.

3 º - tempo de vida – Um objeto é persistente

(ou seja, um objeto do banco de dados) ou

um objeto transiente (ou seja, próprio do

aplicativo);

4 º - estrutura – Define se o objeto é atômico

ou uma coleção.

Banco de Dados Orientados a Objetos

54

Page 55: Banco de Dados Orientado a Objetos

Tipos de Dados

O tipo de um objeto é definido pelo seu comportamento (conjunto de operações que podem ser executadas) e estado (valores que tomam suas propriedades – atributos e relações).

Existem três formas de caracterizar um tipo:

Uma interface define apenas o comportamento abstrato de um tipo de objeto.

Um literal define apenas o estado abstrato de um tipo literal.

Uma classe define o comportamento abstrato e o estado abstrato de um tipo de objeto.

Banco de Dados Orientados a Objetos

55

Page 56: Banco de Dados Orientado a Objetos

Banco de Dados Orientados a Objetos 56

Page 57: Banco de Dados Orientado a Objetos

Por que surgiram os

bancos de dados OO e

por que utilizá-los

57

Banco de Dados Orientados a Objetos

Page 58: Banco de Dados Orientado a Objetos

Os usuários não precisavam se preocupar com

conceitos ligados a maquina

Apenas com Objetos e operações

Beneficio elevar o nível de abstração ao Maximo

O objetivo de um programa de aplicação

é resolver um problema especifico

Já o BD resolve uma variedade de

problemas diferentes

58

Banco de Dados Orientados a Objetos

Page 59: Banco de Dados Orientado a Objetos

Em programas de aplicações é bom inserir

muita inteligência em OB complexos

Já No BD não é uma boa idéia

Alguns acreditam que

técnicas que envolvem

modelagem de Objetos são

as mais adequada para

aplicações complexas

59

Banco de Dados Orientados a Objetos

Page 60: Banco de Dados Orientado a Objetos

Os SQL‟s clássicos apresentam

dificuldades nessas áreas

60

Banco de Dados Orientados a Objetos

Page 61: Banco de Dados Orientado a Objetos

Modelo relacional

Curso {curso#, titulo}

Oferta {curso#, ofer#, dataofer, local}

Professor {curso#, ofer#,emp#}

Matricula{curso#, ofer#,grau}

emp{emp#,enome,salario,posição}

61

Banco de Dados Orientados a Objetos

Page 62: Banco de Dados Orientado a Objetos

Exemplo de modelagem

Curso

ProfessorMatricula

EMP

Oferta

62

Banco de Dados Orientados a Objetos

Page 63: Banco de Dados Orientado a Objetos

Linguagem de dados OPAL

baseada na smallTalk

63

Banco de Dados Orientados a Objetos

Page 64: Banco de Dados Orientado a Objetos

object subclasse : „emp‟

Nomesvarinst : #[„emp#‟,‟enome‟,‟posição‟]

Restrições : #[ #[#emp#,string],

[#enome, string],

[#posição, string]].

64

Banco de Dados Orientados a Objetos

Page 65: Banco de Dados Orientado a Objetos

Method : emp

Get_emp#

^emp#

%

Method : emp

Set_emp# : emp#_parm

emp# :=emp#_parm

%

65

Banco de Dados Orientados a Objetos

Page 66: Banco de Dados Orientado a Objetos

object subclasse : „curso‟

Nomesvarinst : #[„curso#‟,‟titulo‟,‟ofertas‟]

Restrições : #[ #[#curso#,string],

[#titulo, string],

[#oferta, oset]].

66

Banco de Dados Orientados a Objetos

Page 67: Banco de Dados Orientado a Objetos

object subclasse : „oferta‟

Nomesvarinst :

#[„ofer#‟,‟odate‟,‟local‟,‟matriculas‟,‟professore

s‟]

Restrições : #[ #[#ofer#,string],

[#odate, datetime],

[#local, string],

[#matriculas,nset],

[#professores, tset]].

67

Banco de Dados Orientados a Objetos

Page 68: Banco de Dados Orientado a Objetos

object subclasse : „matricula‟

Nomesvarinst : #[„emp‟,‟grau‟],

Restrições : #[ #[#emp,emp],

[#grau, string]].

68

Banco de Dados Orientados a Objetos

Page 69: Banco de Dados Orientado a Objetos

Emp subclasse : „professor‟

nomesvarinst : #[„cursos‟],

restrições : #[#[#cursos,cset]].

Set subclasse :‟eset‟

restrições : emp.

69

Banco de Dados Orientados a Objetos

Page 70: Banco de Dados Orientado a Objetos

Set subclasse :‟cset‟

restrições : curso.

Set subclasse :‟oset‟

restrições : oferta.

Set subclasse :‟nset‟

restrições : matricula.

Set subclasse :‟tset‟

restrições : professor.

70

Banco de Dados Orientados a Objetos

Page 71: Banco de Dados Orientado a Objetos

Como preencher o banco de dados

Method : eset

add_emp# : emp#_parm

add_enome# : enome#_parm

add_pos# : pos_parm

| emp_oid |

emp_oid := emp new.

emp_oid set_emp# : emp#_parm;

set_nome : enome parm;

set_pos : pos_parm.

Self add: emp_oid.

71

Banco de Dados Orientados a Objetos

Page 72: Banco de Dados Orientado a Objetos

Vamos inserir agora!

Oid_de_conj_de_todos_os_emps

add_emp# : „e009‟

add_enome : „helms‟

add_pos : „zelador‟.

72

Banco de Dados Orientados a Objetos

Page 73: Banco de Dados Orientado a Objetos

Busca

| curso_c001, c001_ofers, c001_ni_ofers |

Curso_c001

:= oosoac detect : [:cx | (cx get_curso#)=„c001‟].

C001_ofers

:= curso_c001 get_ofertas.

C001_ni_ofers

:= c001_ofers select :

[:ox | (ox get_local)=„nova york‟].

^c001_ni_ofers.

73

Banco de Dados Orientados a Objetos

Page 74: Banco de Dados Orientado a Objetos

Excluir

E001 := oid_de_conj_de_todos_os_emps

detect : [:ex | (ex get_emp#)=„e001‟].

oid_de_conj_de_todos_os_emps

remove : e001.

74

Banco de Dados Orientados a Objetos

Page 75: Banco de Dados Orientado a Objetos

Operações no BD

Linguagem de definição de Objetos

(ODL)

75

Banco de Dados Orientados a Objetos

Page 76: Banco de Dados Orientado a Objetos

Declaração de uma classe

Class <nome> [extends <nome_pai>]

[:<nomes_interfaces>] [(extends

<nome_extensão>)] {<elementos: atributos,

relacionamentos e metodos>

[<declaração_chaves>]}

76

Banco de Dados Orientados a Objetos

Page 77: Banco de Dados Orientado a Objetos

Declarações

Atributos:

Attribute <tipo> <nome>;

Relaciomentos:

Relationship <rangetype> <nome> [inverse

<nome_classe_inv>::<metodo_inv>]

77

Banco de Dados Orientados a Objetos

Page 78: Banco de Dados Orientado a Objetos

Rangetype

Declaração:

Set <tipo_conj>

78

Banco de Dados Orientados a Objetos

Page 79: Banco de Dados Orientado a Objetos

Metodos:

<tipo_retorno> <nome_metodo>

(<lista_parametros>) [raizes(<lista_exceçoes>)]

[in | out | inout] <nome_parametro>

79

Banco de Dados Orientados a Objetos

Page 80: Banco de Dados Orientado a Objetos

Chaves não são necessárias!

80

Banco de Dados Orientados a Objetos

Page 81: Banco de Dados Orientado a Objetos

Modelo entidade relacionamento

cliente

agencia

emprestimo

nome

ssn endereç

o

Id_empresti

mo

quanti

a

tipo

idagenci

a

localida

de

Cliente de

emprestant

e

Pertence_a

81Banco de Dados Orientados a Objetos

Page 82: Banco de Dados Orientado a Objetos

Entidade cliente em ODL

Interface cliente {

Attribute string nome;

Attribute integer ssn;

Attribute string addr {string rua, String cidade, int cep} endereço:

Relationship set<emprestimo> emprestou

inverse emprestimo :: emprestou:

Relationship set<agencia> tem_conta_eminverse agencia :: clientes:

Key (ssn)

}

82

Banco de Dados Orientados a Objetos

Page 83: Banco de Dados Orientado a Objetos

Linguagem de consulta de Objetos

(OQL)

83

Banco de Dados Orientados a Objetos

Page 84: Banco de Dados Orientado a Objetos

Não tem operações para atualizações

Possível define nome para uma consulta

Contém construtores de objetos

Suporta clausulas

84

Banco de Dados Orientados a Objetos

Page 85: Banco de Dados Orientado a Objetos

Sintaxe OQL igual a SQL

Select d.dnome from d in departamento

where d.faculdade=„engenharia‟;

Exemplo:

85

Banco de Dados Orientados a Objetos

Page 86: Banco de Dados Orientado a Objetos

Necessário um ponto de entrada!

Devemos definir uma variável de interação

86

Banco de Dados Orientados a Objetos

Page 87: Banco de Dados Orientado a Objetos

Três variáveis especificar interações87

Banco de Dados Orientados a Objetos

Page 88: Banco de Dados Orientado a Objetos

Uma consulta só

precisa de um objeto

persistente

88

Banco de Dados Orientados a Objetos

Page 89: Banco de Dados Orientado a Objetos

Fazer uma referência desse modo

89

Banco de Dados Orientados a Objetos

Set <departamento>

Page 90: Banco de Dados Orientado a Objetos

Inclusão de objetos no banco

João := cliente(nome: “joão”, ssn: 12345,

endereco: struct (rua: “rua A”, cidade:

“salvador”, cep: 12345));

Ou

Add emprestimo(quantia: 500, id_emprestimo:

1234, tipo: 2) to joão.emprestou;

90

Banco de Dados Orientados a Objetos

Page 91: Banco de Dados Orientado a Objetos

Swizzling

Clustering

Hibernate

Doctrine

91

Banco de Dados Orientados a Objetos

Page 92: Banco de Dados Orientado a Objetos

Swizzling

Swizzling é o processo de

conversão entre a

representação persistente

do objeto, na base de

objetos, e sua

representação dinâmica,

na linguagem de

programação orientada a

objetos adotada pela

aplicação, onde o objeto

será efetivamente

manipulado.

Banco de Dados Orientados a Objetos

92

Page 93: Banco de Dados Orientado a Objetos

Swizzling

A conversão ocorre:

1. No momento em que o objeto é transferido da base de objetos para o espaço de memória da aplicação (checkout);

2. Quando o objeto, já transferido para a memória, é referenciado pela primeira vez pela aplicação;

3. Se a aplicação o solicita explicitamente; e

4. Quando não é possível reaproveitar um endereço físico designado anteriormente, o qual é registrado também na base de dados.

Banco de Dados Orientados a Objetos

93

Page 94: Banco de Dados Orientado a Objetos

Clustering

Adoção de estratégias de

alocação de objetos no

sistema de

armazenamento de

modo a minimizar a

quantidade de páginas

necessárias para

manipular objetos.

Banco de Dados Orientados a Objetos

94

A

B

C

D

Objeto Complexo

Page 95: Banco de Dados Orientado a Objetos

Estratégias de Clustering

Banco de Dados Orientados a Objetos

95

A B C

Referências

A B C

Objetos complexos

AA AB AC

Tipos de objetos

A1 A2 A3

Índices

A B (A.atr)

Definição do usuário

Page 96: Banco de Dados Orientado a Objetos

Hibernate

O Hibernate é uma ferramenta de mapeamento

objeto/relacional para Java. Ela transforma os

dados tabulares de um banco de dados em

um grafo de objetos definido pelo

desenvolvedor.

Banco de Dados Orientados a Objetos

96

1. criar as classes ;

2. mapear cada uma das classes feitas;

3. criar os arquivo de configuração do hibernate;

A utilização do Hibernate consiste em:

Page 97: Banco de Dados Orientado a Objetos

Banco de Dados Orientados a Objetos 97

O Doctrine é um mapeador de

objeto–relacional que utiliza

objetos em PHP.

Doctrine

Page 98: Banco de Dados Orientado a Objetos

Vantagens

• Capacidade de Armazenamento de Objetos;

• Os Objetos se comunicam entre si através de mensagens;

• Permitem representar a semântica do problema do mundo real;

• Manipulam objetos complexos;

• Objetos podem ser reusados;

• Melhor gerenciamento de transação e concorrência;

• Linguagem de consulta mais expressiva;

• Melhor suporte para trabalho cooperativo.

Banco de Dados Orientados a Objetos

98

Page 99: Banco de Dados Orientado a Objetos

Desvantagens

Falta de Padronização das linguagens de

manipulação dos dados;

Alto custo de aquisição das novas

tecnologias;

Curva de aprendizagem e adaptação ao

novo ambiente demorada.

Banco de Dados Orientados a Objetos

99

Page 100: Banco de Dados Orientado a Objetos

Tendências

Entre as tendências

emergentes neste

contexto está o

armazenamento em

memória.

Prevayler (2006);

SOA (Service Oriented

Architecture)

Banco de Dados Orientados a Objetos

100

Page 101: Banco de Dados Orientado a Objetos

Conclusão

A evolução dos SGBDOO‟s facilitará a forma de

se trabalhar com dados mais complexos e com

os objetos das LPOO‟s.

Banco de Dados Orientados a Objetos

101

O paradigma de objeto relacional ainda não

esta bem consolidado no mercado de trabalho,

porém vem ganhando seu espaço rapidamente

devido ao seu conjunto de características que

facilitam a implementação da persistência.

Page 102: Banco de Dados Orientado a Objetos

Referências

• Jefferson A. do Rosario, Hemerson L. S. Carlin e Alexandre S. Cardoso. Bancos de Dados Orientados a Objetos e Objeto/Relacional. UNIOESTE – Universidade Estadual do Oeste do Paraná, 2009.

• Clodis Boscarioli, Anderson Bezerra, Marcos de Benedicto, Gilliard Delmiro. Uma reflexão sobre Banco de Dados Orientados a Objetos. UNIOESTE – Universidade Estadual do Oeste do Paraná / FASP - Faculdades Associadas de São Paulo, 2006.

• Cattel, R.G.G. Object-Oriented and Extended Relational Database Systems. Addison-Wesley, 1994.

• Cattell, R.G.G. The Object Database Standard: ODMG-93 -Release 1.2, Morgan Kaufmann Publishers, inc., 1996.

• Leonardo Jones, Luis Alberto, Murilo de Lima. Bancos de Dados Orientados a Objetos. Universidade Federal da Bahia, 2007.

Banco de Dados Orientados a Objetos

102