Vous êtes sur la page 1sur 54

UnB Departamento de Cincia da Computao

Bancos de Dados Orientados a Objeto Estudo de Casos


Kelly Prudente Pereira Luciano Soares Bohnert
Orientador: Fernando Albuquerque
29/10/2013 07:55:47
1

UnB Departamento de Cincia da Computao

Objetivos do Projeto
Estudar a evoluo na rea de Bancos de Dados at o paradigma da Orientao a Objetos. Avaliar o porque de Bancos de dados Orientados a Objetos. Analisar duas opes disponveis no mercado:
- Jasmine - Poet

Implementar um sistema exemplo utilizado um banco de dados Orientado a Objetos (Jasmine).


29/10/2013 07:55:47
2

UnB Departamento de Cincia da Computao

Introduo
Um Histrico da Evoluo dos Modelos de Dados
Como tudo aconteceu aps os anos 60 Modelo Hierrquico
Novas vantagens Novos Problemas

Modelos de Rede
IDS (Integrated Data Store) Rede Simples Rede Complexa
29/10/2013 07:55:47
3

UnB Departamento de Cincia da Computao

Introduo
Modelo Relacional
Tabelas bidimensionais. ad hoc queries

Modelo Orientado a Objeto


Armazenamento de objetos persistentes. Armazenamento de dados complexos. Categorias de Produtos

29/10/2013 07:55:47

ODBMSs puros Gerenciadores de Armazenamento Persistente Object Wrappers DBMSs hbridos ou post-relacional ou ORDBMS
4

UnB Departamento de Cincia da Computao

Elementos da Orientao a Objetos


Objetos
Classes Tipos de mtodo Sobrecarga

Orientao a Objetos e o Modelo de Dados Orientado a Objetos

29/10/2013 07:55:47

UnB Departamento de Cincia da Computao

A Orientao a Objetos
Herana

29/10/2013 07:55:47

UnB Departamento de Cincia da Computao

A Orientao a Objetos
Herana mltipla Interface Polimorfismo

29/10/2013 07:55:47

UnB Departamento de Cincia da Computao

O modelo de Dados Orientado a Objeto


Relacionamentos entre os dados
Identificadores de Objetos Gerenciamento de memria Relacionamento Um-Muitos Relacionamento Muitos-Muitos Relacionamento um (a) Relacionamento Extends Relacionamento Todo-Parte
29/10/2013 07:55:47
8

UnB Departamento de Cincia da Computao

O modelo de Dados Orientado a Objeto


Integridade de Relacionamento
Para a Classe Pas:

Estados : (set) Estado inverse is Estado.Pas


Para a Classe Estado:

Diagramas de relacionamentos A UML (Unified Modeling Language)

Pais : pais inverse is Pas.Estado

29/10/2013 07:55:47

UnB Departamento de Cincia da Computao

Porque ODBMS: Comparando RDBMS e ODBMS


Bancos Relacionais e Linguagens Orientadas a Objeto
Vantagens do Relacional:
Capacidade Velocidade Eficincia

SQL (Joins)

29/10/2013 07:55:47

10

UnB Departamento de Cincia da Computao

O Modelo de Relacional
Bidimensional Chaves para manter os relacionamentos

29/10/2013 07:55:47

11

UnB Departamento de Cincia da Computao

O Modelo de Objeto
Combina:
Cdigo Dados

Caractersticas:
Herana Encapsulamento Polimorfismo

OID
29/10/2013 07:55:47
12

UnB Departamento de Cincia da Computao

Combinando os modelos
Esquema de definio no Banco de Dados para Objetos
Mapear objetos em RDBMS(programao extra) Mapear RDBMS em objetos (poucos tipos, no tem suporte a caractersticas OO)

Camadas de persistncia.

29/10/2013 07:55:47

13

UnB Departamento de Cincia da Computao

Manipulao de Dados para Objetos


Gereciamento de objetos em memria Excluso de todas as tabelas Consulta em todas as tabelas Limitao destas solues
Dois Modelos

29/10/2013 07:55:47

14

UnB Departamento de Cincia da Computao

Bancos da Dados Orientados a Objeto


Suporte a Objetos Operaes Bsicas no Banco de Dados
Banco conhece o esquema real No h perigo de dois objetos estarem carregados em memria

29/10/2013 07:55:47

15

UnB Departamento de Cincia da Computao

Padronizaes
ODMG (Object Database Management Group)
A proposta padro ODMG
Terminologia bsica Tipos: Especificaes e implementaes
Tipos primitivos

29/10/2013 07:55:47

16

UnB Departamento de Cincia da Computao

Padronizaes
Herana
Herana e interfaces
interface interface interface interface Empregado {....}; Professor : Empregado {....}; Professor_Substituto : Professor {....}; Professor_Auxiliar : Professor {....};

Extends

29/10/2013 07:55:47

17

UnB Departamento de Cincia da Computao

Padronizaes
Objetos
Identifcadores Nomes Persistentes e transientes Objetos atmicos Colees Objetos Estruturados

Modelando estados Propriedades


Atributos Relacionamentos
29/10/2013 07:55:47
18

UnB Departamento de Cincia da Computao

Padronizaes
Modelando comportamentos Mtodos Locking e controle de concorrncia Modelo de transao
Transao e Processos Operaes Tradicionais
interface Transaction { void begin() raises(TransactionlnProgress,DatabaseClosed); void commit() raises(TransactionNotlnProgress); void abort() raises(TransactionNotlriFrogress); void checkpoint() raises(TransactionNotlnProgress); void join() raises(TrarisactionNotlnProgress); void Leave() raises(TransactionNotlnProgress); boolean isOpen(): }

29/10/2013 07:55:47

19

UnB Departamento de Cincia da Computao

Padronizaes
Operaes no Banco
Open() Close() Bind() Unbind() Lookup()

29/10/2013 07:55:47

20

UnB Departamento de Cincia da Computao

ODL
ODL(Object Definition Language )
Estrutura de classes e interfaces
class nome_classe extends nome_super_classe

: nome_interface

Declarando atributos

(extent nome_extenso) { //elementos da classe };

attribute tipo nome_atributo ;

Relacionamentos
relationship classe_relacionada_a nome_relacionamento inverse classe_relacionada_a :: nome_relacionamento_da_classe_relacionada;

29/10/2013 07:55:47

21

UnB Departamento de Cincia da Computao

ODL
Assinaturas de mtodos
tipo_retorno nome_metodo(lista parmetros) raises (lista_excees)

29/10/2013 07:55:47

22

UnB Departamento de Cincia da Computao

OQL
OQL(Object Query Language) Entrada e resultado de consulta
select struct (i: x.idade, s: x.sexo) from (select y from Empregados y where y.anosdecasa = 10) as x where x.nome = Kelly

Navegando nas expresses


p.pai.endereo.cidade.nome

29/10/2013 07:55:47

23

UnB Departamento de Cincia da Computao

OQL
Predicados Operadores booleanos Polimorfismo
late binding
select p.atividades from Pessoas p

Class indicator
select ((Estudante)p).nota from Pessoas p
where curso in atividades

29/10/2013 07:55:47

24

UnB Departamento de Cincia da Computao

Jasmine
OBD puro Bancos Objeto-Relacionais (Hbridos) Velocidade (Performance) Flexibilidade Desenvolvimento com Jasmine

29/10/2013 07:55:47

25

UnB Departamento de Cincia da Computao

Object Databases Conceitos do Jasmine

29/10/2013 07:55:48

26

UnB Departamento de Cincia da Computao

Componentes do Jasmine

29/10/2013 07:55:48

27

UnB Departamento de Cincia da Computao

O Projeto do Jasmine
Componentes do Jasmine A Arquitetura do Jasmine O Servidor de Bancos de Dados O Cliente Jasmine Consideraes com a Largura de Banda

29/10/2013 07:55:48

28

UnB Departamento de Cincia da Computao

O Projeto do Jasmine - cont


A estrutura do Jasmine A Biblioteca de Classes do Jasmine As famlias de Classes do Usurio Desenvolvimento por terceiros A ODQL Stores (Armazns) As Bibliotecas de classes do Jasmine
29

29/10/2013 07:55:48

UnB Departamento de Cincia da Computao

5. Persistent Java
Como o pJ funciona? Transaes Persistncia e Transincia Classes providas pelo pJ Classes criadas pelo Usurio

29/10/2013 07:55:48

30

UnB Departamento de Cincia da Computao

Como o pJ funciona?

29/10/2013 07:55:48

31

UnB Departamento de Cincia da Computao

Persistent Java Ativao

29/10/2013 07:55:48

32

UnB Departamento de Cincia da Computao

Persistent Java - cont


O modelo de ativao do pJ Bases de Dados e Transaes (Objetos) Abrindo uma base de Dados Nomeando e procurando por Objetos no Banco de Dados Gerenciando Transaes Mtodos Gerados
29/10/2013 07:55:48
33

UnB Departamento de Cincia da Computao

POET
Sobre a POET Software
O POET Object Server Suite (OSS) A arquitetura do OSS

29/10/2013 07:55:48

34

UnB Departamento de Cincia da Computao

POET
A Tecnologia POETs Fast Object
Armazenamento nativo de objetos e Otimizador de consultas Sistema de smart cahching Consultas baseadas no servidor Patterns de acesso Locking em nvel de objetos

29/10/2013 07:55:48

35

UnB Departamento de Cincia da Computao

POET
Recuperao de espao de armazenamento Mapeamento de cdigo Versionamento On-the-fly Suporte a tipos de dados definidos pelo usurio Ferramentas de administrao

29/10/2013 07:55:48

36

UnB Departamento de Cincia da Computao

Plataformas Suportadas pelo OSS 6.1


Windows Solaris Linux HP-UX Netware

29/10/2013 07:55:48

37

UnB Departamento de Cincia da Computao

Edio do POET SDK para Java


Persistncia e o Banco de dados POET
POET Java enhancer(PTJ) Arquivo de configurao
[classes\Pessoa] persistent = true
[schemata\my_dict] oneFile = false [databases\my_base] oneFile = false

Funes bsicas de manipulao de dados


Bind Lookup Delete
29/10/2013 07:55:48
38

UnB Departamento de Cincia da Computao

POET
Banco de dados e Dicionrios Collections Navegao pelos objetos
Alcance da persistncia Acess Patterns
[schemata\dict\accessPatterns] usedPatterns = AmigosEParentes defaultPreloadDepth = 2 maxPreloadObjects = 7 [schemata\dict\accessPatterns\ AmigosEParentes] pattern = *.Pessoa.pai, *.Pessoa.mae:4,*.Person.amigos[0-$]:1 [databases\Contas] schema = SchemaConta onefile = true

29/10/2013 07:55:48

39

UnB Departamento de Cincia da Computao

Access Patterns

29/10/2013 07:55:48

40

UnB Departamento de Cincia da Computao

Poet - Transaes
Transaes
Database db = new Database();
db.open(...); Transaction trans = new Transaction( db ); trans.begin();

Locks Checkpoints Transaes aninhadas

29/10/2013 07:55:48

41

UnB Departamento de Cincia da Computao

Edio do POET SDK para Java - cont


POET Java e aplicaes multicamada

29/10/2013 07:55:48

42

UnB Departamento de Cincia da Computao

Desenvolvimento com Bancos de Dados Orientados a Objeto


O processo de desenvolvimento (RUP)
Orientado a Casos de Uso Centrado na Arquitetura Interativo e Incremental

29/10/2013 07:55:48

43

UnB Departamento de Cincia da Computao

Modelagem do Sistema
Business Modeling
Business Actors Business Use-Case Model Business Object Model

29/10/2013 07:55:48

44

UnB Departamento de Cincia da Computao

Modelagem de Negcio
Banco Genrico
O propsito do modelo de negcio : Business Modeling - Entender a estrutura e dinmica da Organizao. - Garantir que clientes, usurios finais, e desenvolvedores tenham um entendimento comum da organizao. - Derivar requisitos de sistemas para suporte a organizao.

Use Cases Model

O Modelo de Casos de Uso um modelo de que funes o sistema prover e seu ambiente, e serve como um contrato entre clientes e desenvolvedores. O modelo de casos de uso usado como insumo essencial para as atividades de anlize, projeto e testes.

29/10/2013 07:55:48

45

UnB Departamento de Cincia da Computao

Modelo de Casos de Uso


Business Uses Cases (Processos)

Internet Banking

Auto Atendimento

Atendimento Personalizado

29/10/2013 07:55:48

46

UnB Departamento de Cincia da Computao

Modelo de Casos de Uso Auto-Atendimento


Casos de Uso Auto Atendimento
Sacar Auto Atendimento

Correntista Auto-Atendido (from Business Actors)

Transferir Auto Atendimento

Obter Saldo Auto Atendimento

Pagar Auto Atendimento Obter Extrato Auto Atendimento

Depositar Auto Atendimento

29/10/2013 07:55:48

47

UnB Departamento de Cincia da Computao

Sistema de Auto-Atendimento - Anlise e Projeto


Logical View
O Modelo de Anlise contem as classes de anlise e outros artefatos associodos. um modelo de objeto descrevendo as realizaes dos Casos de Uso e serve como abstrao para o Modelo de Projeto. Analysis Model

ProjBanGen

Modelo de Projeto dos Sistemas do Banco Genrico - O Modelo de Projeto o modelo do sistema que contem as classes e colaboraes que realizam os Casos de Uso do Sistema. Ele representa o espao de solues.

29/10/2013 07:55:48

48

UnB Departamento de Cincia da Computao

Projeto Banco Genrico


Projeto SisCon Projeto SisAA

Modelo de Desing do Banco Genrico


SisAA SisCon

29/10/2013 07:55:48

49

UnB Departamento de Cincia da Computao

Projeto Sistema de Contas

29/10/2013 07:55:48

50

UnB Departamento de Cincia da Computao

Projeto SisCon

29/10/2013 07:55:48

51

UnB Departamento de Cincia da Computao

Projeto Sistema de AutoAtendimento

29/10/2013 07:55:48

52

UnB Departamento de Cincia da Computao

Projeto - SisAA

29/10/2013 07:55:48

53

UnB Departamento de Cincia da Computao

Concluso
Problemas Vantagens Referncias

29/10/2013 07:55:48

54

Vous aimerez peut-être aussi