BDOO e Java

Propaganda
Banco de dados orientados a
objetos e Java: uma visão prática
Luciano Döll
Mestrando em Informática Industrial CEFET-PR
Bacharel em Informática
UEPG
O que é um banco de dados?
"Uma coleção de dados operacionais
inter-relacionados. Estes dados são
armazenados de forma independente
dos programas que os utilizam,
servindo assim a múltiplas aplicações
de uma organização."
1
O que é um SGBD?
l
Um Sistema Gerenciador de Banco
de Dados é um programa que
controla:
– Estrutura, gravação e leitura de dados
– Recuperação de falhas - logs
– Concorrência - estratégias de bloqueio
– Métodos de acesso
– Segurança dos dados - autorização
O que é um Modelo de Dados?
l
É uma coleção de ferramentas conceituais
utilizadas para descrever a estrutura dos
dados de um SGBD
2
Evolução dos Modelos de dados
Modelo Relacional
l
l
Os dados são armazenados em tabelas
bidimensionais, denominadas relações
Linhas x colunas
Nome
RG
Departamento
Salário
José
1234
Finanças
1000
João
4321
Diretoria
2000
Maria
1111
Marketing
1500
Paula
2222
Secretaria
500
3
Conceitos do Modelo Relacional
l
Chave primária
Funcionários (Nome, RG, Departamento, Salário)
l
Linguagem de consulta (SQL)
select * from funcionários
l
Álgebra relacional
σ (salario
l
> 1500)(Funcionários)
Primeira Forma Normal (1FN)
– Não é permitido atributos compostos
Modelo Relacional Não
Normalizado (MRNN)
l
Permite atributos multivalorados ou
compostos
ISBN Título
Assuntos *
1234 A Internet
Computadores José
Redes
João
Maria
Pedro
Cozinha
Ney
Decoração
Arquitetura
4321 Casa e fogão
Autores *
4
Banco de dados
orientados a objetos
l
São bancos de
dados onde a
estrutura básica
é o objeto
Por que surgiram os BDOOs?
l
Aplicações não convencionais
– Sistemas com objetos complexos
l
Aplicações convencionais
– Paradigma de orientação a objetos
5
Sistemas com objetos complexos
l
l
l
l
l
l
l
l
CAD/CAM
Ferramentas CASE
GIS (Sistemas de Informação Geográfica)
Textos (Automação de Escritórios)
Hipertexto
Vídeos
Sons
Imagens
SGBDOO na Internet
l
Uso de SGBDOO como servidores
proxy, para armazenarem as páginas
HTML acessadas mais
freqüentemente
l
Curiosidade: O Brasil é o 2° país do
mundo em crescimento de uso da
Internet. Na frente, está a Eslováquia
(Giga Information Group)
6
Como os SGBDR armazenam
objetos complexos?
l
Existem campos do tipo BLOB
(Bynary Large Objects)
l
Não é possível indexar uma coluna
com este tipo de dado, nem realizar
uma query
l
Eles simplesmente armazenam os
dados
Limitações dos SGBDRs?
l
Quais as cinco imagens mais
parecidas com uma dada imagem?
l
Quantos dos meus clientes moram
num raio de 3 KM de minha loja?
l
Quais dos artigos do nosso jornal a
palavra Diana aparece próximo à
palavra Charles?
7
Paradigma de orientação a objetos
Análise e projeto orientado a objetos
l Transparência entre análise e projeto
l Promessa de reusabilidade
l Padrão para modelagem - UML
l
Principais obstáculos para
SGBDOO
l
Desempenho e Maturidade
Tecnológica
l
Resistência em se migrar a
gigantesca quantidade de dados dos
SGBDR para SGBDOO
8
SGBD Objeto -relacionais
“O híbrido objeto-relacional é
como misturar óleo e água”
Cezar Lorenzo
Conceitos de orientação a objetos
l
l
l
l
l
l
l
l
Abstração
Herança
Polimorfismo
Encapsulamento
Mensagens
Classe e objeto
Escala
Associação
9
Abstração
É a habilidade de ignorar
os aspectos de um
assunto não relevantes
para o propósito em
questão, tornando
possível uma
concentração maior nos
assuntos principais
Herança
Uma classe B é definida
a partir da classe A, com
todos seus atributos e
métodos, além de
outros atributos e
métodos que
diferenciam a classe B
da classe A
10
Polimorfismo
1
Permite que um
nome de um mesmo
método possa ser
definido em várias
classes, tendo
implementações
diferentes em cada
classe
Polimorfismo
Janela ( )
Janela ( 1 x 2 , 2 )
Janela ( 1 x 2 , 2, Azul )
95 + 5 = 100
2
4
3
5
8
1
7
2
3
5
3
1
2
2
5
+
1
4
4
=
Encapsulamento
É a proteção da
estrutura interna do
objeto. O único
modo de se obter
informação sobre um
objeto é através dos
métodos
11
Mensagens
Os diversos objetos
de um programa
comunicam-se
através de
mensagens
Abram seus
livros na
página 36
Qual a
próxima
lição?
Classe e objeto
Uma classe é um
classe Pessoa
modelo onde os
objetos são criados.
Um objeto é composto
por estado interno e
comportamento e
tem identificador
único
objeto Maria
objeto Pedro
12
Escala
É o princípio que
TODO
permite ao
desenvolvedor
considerar algo
muito grande através
d o e n f o q u e T o d oParte (Agregação)
PARTES
Associação
É um relacionamento
Cliente
que um objeto
precisa ter com
outro(s) objeto(s),
para cumprir suas
Faz
responsabilidades
Pedido
13
Banco de dados orientados a
objetos
l Persistência
l Objetos complexos
l Identificador de objeto (OID)
l Acesso aos dados
l Completeza computacional
l Versões de objetos
l Controle de transações
l Relacionamentos
Persistência
Nas linguagens de programação, os
objetos existem apenas durante a
execução do programa. Nos BDOO, os
objetos podem continuar existindo
mesmo após o encerramento do
programa
14
Objetos complexos
A 1FN não é respeitada nos BDOO,
pois pode-se representar em um
objeto valores não atômicos, como
conjuntos, listas, vetores ou mesmo
outros objetos
Identificador de objeto (OID)
O identificador deve ser único e
imutável, durante toda a existência do
objeto. Isto não ocorre nas linguagens
de programação
15
Acesso aos dados
É feito de duas formas:
– Por uma linguagem de programação,
através do identificador dos objetos
– Por uma linguagem de consulta
derivada do SQL (OQL)
Solução para o problema do não
casamento de impedâncias
16
“Utilizar tabelas para
armazenar objetos é como
dirigir o carro até a casa e
então d e s m o n t á-lo para
g u a r d á-l o na garagem”
Esther Dyson
Frameworks para mapeamento
objeto - relacional
17
Completeza computacional
SQL não é linguagem de programação,
mas de acesso aos arquivos de banco
de dados
Versões de objetos
São usadas para:
– Armazenar estados anteriores de um
objeto
• E x. : C o n s u l t a r o s a l á r i o q u e u m f u n c i o n á r i o
possuía em uma data determinada
– Manter uma versão já estável de um
objeto enquanto a nova versão ainda é
testada
18
Controle de transações
Podem ser necessárias transações de
longa duração
Relacionamentos
A representação dos relacionamentos
entre objetos é feito através de
atributos que armazenam o OID do
objeto relacionado
19
Alguns exemplos de BDOO
l ObjectStore
l Jasmine
l FastObjects
l Objectivity/ D B
l Versant Developer Suite
Análise dos exemplos
l Relacionamentos
– São declarados de forma implícita e não
explícita. O mesmo ocorre com o MR.
l Falta de modelo formal
– MR baseado na álgebra relacional e na
teoria de conjuntos
l Falta de padrão
– ODMG
20
ODMG
l Object Database Management Group
l Fundação: setembro de 1991
l Objetivo: Definir um padrão para
garantir a portabilidade das
aplicações entre S G B D O O s
l Presidente: R. G. G. Cattell
l Web: http:// w w w. o d m g . org
21
ODL ( Object Definition Language )
O D L - Relacionamento
22
Mapeamento UML ↔ O D M G
OQL ( Object Query Language )
23
Estatísticas
l Segundo a ObjectDesign, 16
empresas de t e l e c o m u s a m S G B D O O
l Segundo a O 2 , o mercado relacional
movimenta US$ 5 bilhões, com 30%
de crescimento anual, contra US$
100 milhões e crescimento de 60%
ao ano das orientadas a objeto
l São mais de 25 produtos no mercado
Java
l 78% das universidades americanas
p o s s u e m J a v a em seu currículo, e o
n ú m e r o d e p r o g r a m a d o r e s Java no
mundo já ultrapassa 1,7 milhão
l 7 9 % d a s e m p r e s a s Fortune 1000 já
implantaram aplicações J a v a
l Na última edição do J a v a O n e , estiveram
presentes 20.000 congressistas
24
Serialização : uma alternativa para
persistência de objetos em Java
l Consiste em armazenar cópias de
objetos em arquivo
l Permite recriar objetos equivalentes
àqueles que foram gravados no
arquivo
Desvantagens da serialização
Não é uma boa escolha para
aplicações que:
– Gerenciam grandes quantidades de
objetos persistentes
– Atualizam objetos freqüentemente
– Desejam confiabilidade no dispositivo
de armazenamento persistente
25
ObjectStore PSE for Java
l Primeiro BDOO escrito em Java
l Performance para acessar uma
grande quantidade de objetos
l Gerenciamento de objetos confiável
– Controle de transações
– Recuperação após falha
l Queries
Projeto de software no futuro
l Ferramenta CASE integrada ao
ambiente de programação
l Alto grau de reusabilidade, tanto na
análise, como no projeto
l Integração de plataformas, sistemas
distribuídos e multi-c a m a d a s
l Métodos de modelagem de negócios
26
Agradecimento
l D r. João Umberto Furquim de Souza
l D rª. Maria Salete Marcon G o m e s Vaz
27
Download