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