Your SlideShare is downloading. ×
Apresentação Banco de Dados - Caché
Apresentação Banco de Dados - Caché
Apresentação Banco de Dados - Caché
Apresentação Banco de Dados - Caché
Apresentação Banco de Dados - Caché
Apresentação Banco de Dados - Caché
Apresentação Banco de Dados - Caché
Apresentação Banco de Dados - Caché
Apresentação Banco de Dados - Caché
Apresentação Banco de Dados - Caché
Apresentação Banco de Dados - Caché
Apresentação Banco de Dados - Caché
Apresentação Banco de Dados - Caché
Apresentação Banco de Dados - Caché
Apresentação Banco de Dados - Caché
Apresentação Banco de Dados - Caché
Apresentação Banco de Dados - Caché
Apresentação Banco de Dados - Caché
Apresentação Banco de Dados - Caché
Apresentação Banco de Dados - Caché
Apresentação Banco de Dados - Caché
Apresentação Banco de Dados - Caché
Apresentação Banco de Dados - Caché
Apresentação Banco de Dados - Caché
Apresentação Banco de Dados - Caché
Apresentação Banco de Dados - Caché
Apresentação Banco de Dados - Caché
Apresentação Banco de Dados - Caché
Apresentação Banco de Dados - Caché
Apresentação Banco de Dados - Caché
Apresentação Banco de Dados - Caché
Apresentação Banco de Dados - Caché
Apresentação Banco de Dados - Caché
Apresentação Banco de Dados - Caché
Apresentação Banco de Dados - Caché
Apresentação Banco de Dados - Caché
Apresentação Banco de Dados - Caché
Apresentação Banco de Dados - Caché
Apresentação Banco de Dados - Caché
Apresentação Banco de Dados - Caché
Apresentação Banco de Dados - Caché
Apresentação Banco de Dados - Caché
Apresentação Banco de Dados - Caché
Apresentação Banco de Dados - Caché
Apresentação Banco de Dados - Caché
Apresentação Banco de Dados - Caché
Apresentação Banco de Dados - Caché
Apresentação Banco de Dados - Caché
Apresentação Banco de Dados - Caché
Apresentação Banco de Dados - Caché
Apresentação Banco de Dados - Caché
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Apresentação Banco de Dados - Caché

10,748

Published on

0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
10,748
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
1
Comments
0
Likes
4
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Banco de Dados II Seminário: Banco de Dados Orientado a Objeto Guilherme Gomes Renzo Petri
  • 2. Roteiro Introdução • Histórico • Características/Áreas de aplicação • Exemplos de BDOO Motivação Características essenciais a Banco de dados OO Características opcionais a Banco de dados OO Padronização - Padrão ODMG • ODL • OQL Um exemplo de SGBDOO: Caché um SGBD Pós-Relacional • Plataformas, Linguagens, Características, Vantagens, Caché & Java. Exemplo Prático • Curiosidades • Conclusão
  • 3. Introdução Histórico • Difusão da tecnologia e utilização do computador em diversas áreas. • Necessidade de representação de tipos complexos de dados: • Listas ordenadas, conjuntos, dados multimídia, imagem, som, texto, etc. • Anos 80 – Uso Crescente de Linguagens de Programação OO: • Reutilização e manutenção de software. • Bancos de Dados OO • Acompanhando as tendências do momento e suprindo as carências dos Bancos de Dados Relacionais.
  • 4. Introdução Características Importantes: • Permitem que o projetista especifique tanto a estrutura de objetos complexos como as operações que podem ser aplicadas a esses objetos. • BDOO foram projetados para que sejam integrados a softwares desenvolvidos com linguagens OO.
  • 5. Introdução Áreas de Aplicação: • Bancos de dados para projetos de engenharia e Arquitetura • Experiências Científicas • Telecomunicações • Sistemas de Informações Geográficas • Sistemas multimídia • Sistemas de escritório • Banco de dados hipertexto (links)
  • 6. Introdução Exemplos de BDOO • Protótipos experimentais • ORION (Microeletronics Corporation) • OPENOODB(Texas Instruments) • Sistema IRIS (Hewlett-Packard) • ODE (AT&T BELL Labs – agora Lucent Technologies) • Projeto ENCORE/ObServer (Brown University)
  • 7. Introdução Exemplos de BDOO • Comerciais • GEMSTONE/OPAL (Gemstone System) • ONTOS (Ontos) • Objectivity (Objectivity Inc.) • Versant (Versant Object Technology) • ObjectStore (Object Design) • ARDENT (ARDENT Software) • POET (POET Software) • Caché (InterSystems)
  • 8. Motivação Banco de Dados Relacionais X Banco de Dados OO • Atualmente, os bancos de dados são predominantemente relacionais, mas uma aplicação orientada a objeto precisa armazenar objetos. Como armazenar objetos em um banco de dados relacional? Os bancos de dados orientados a objeto são viáveis? É neste contexto que se insere a figura do SGBDOO.
  • 9. Motivação
  • 10. Porque adotar o modelo lógico de dados OO? Modelagem e programação OO cada vez mais utilizadas na prática. • Padrão UML. Naturalidade do modelo OO para persistência. Requisitos de novas aplicações: • Restrições complexas • Estruturas de dados complexas • Identidade de objetos e referências diretas • Código de aplicação interno ao banco de dados
  • 11. Características essenciais a Bancos de dados OO Identificação de objetos Objetos complexos Encapsulamento Tipos ou classes Herança Redefinição Completeza computacional
  • 12. Características opcionais a Bancos de dados OO Herança múltipla Verificação e inferência de tipos Distribuição Transações de projeto Versões
  • 13. Padronização Padronização • ODMG (Object Database Management Group) – consórcio de vendedores e usuários de SGBDs Orientados a Objetos – definiu um modelo e uma linguagem padrão. • ODMG 93 • ODMG 2.0
  • 14. Padrão ODMG Object Data Management Group –consórcio de vendedores e usuários de SGBDs. Define um padrão para sistema gerenciador de banco de dados orientado a objetos. Banco de dados convencional que integra as características de linguagens de programação orientadas a objetos. Objetos persistentes Controle de concorrência Consultas associativas Recuperação de dados
  • 15. Padrão ODMG A definição de um padrão assegura: Portabilidade - capacidade de executar um determinado programa de aplicação em diferentes sistemas, com o mínimo de modificações no programa. Interoperabilidade – o mesmo programa de aplicação pode acessar dados armazenados em pacotes diferentes que podem ser um mesmo banco de dados ou em bancos de dados diferentes. Escolha do produto comercial a partir do conhecimento do padrão que é implementado por cada produto.
  • 16. Padrão ODMG Dividido em: Modelo de Objetos Linguagem de definição de objetos (ODL- Object Definition Language) Linguagem de consulta de objetos (OQL – Object Query Language) Bindings de linguagens de programação OO: • Smaltalk • C++ • Java
  • 17. Padrão ODMG – ODL ODL - linguagem de especificação usada para definir a especificação de tipos objeto. Alguns aspectos devem ser considerados: Deve suportar todas as construções semânticas do Modelo de Objetos ODMG. Não é uma linguagem de programação completa, mas uma linguagem de definição para especificação de objetos. Deve ser independente de linguagem de programação. Deve ser extensível.
  • 18. Padrão ODMG – ODL - Exemplo
  • 19. Padrão ODMG – ODL - Exemplo Especificação ODL class Pessoa ( extent pessoas key nss) { attribute struct Nomep{string sobrenome, string primeiro_nome} attribute string nome; attribute string nss; attribute date data_nascimento; attribute enum Genero{M,F} sexo; attribute struct Endereço {short num, string logradouro, sort numapto, string cidade, string estado, short cpe} attribute string endereço; short idade(); };
  • 20. Padrão ODMG – ODL - Exemplo Especificação ODL class Professor extends Pessoa ( extent professores ) { attribute string classificação; attribute float salário; attribute string escritório; attribute string telefone; relationship Departamento trabalha_em inverse Departamento::possui_professor; relationship set<aluno_grad> dá_assistência inverse AlunoGrad::assistente; relationship set<aluno_grad> no_comitê_de inverse AlunoGrad::comitê; void dar_aumento(in float aumento); void promove(in string nova_classificação); };
  • 21. Padrão ODMG – ODL - Exemplo Especificação ODL class Aluno extends Pessoa ( extent alunos) { attribute string classe; attribute Departamento cursa_eletiva_em; relationship Departamento especializa_em inverse Departamento::possui_especializações; relationship set <DisciplinaCorrente> registrado_em inverse DisciplinaCorrente::alunos_registrados; void alterar_especialização (in string nomed) raises disciplina_inválida); float mg(); void registrado(in short nomseção; in ValorGrau grau) raise (disciplina_inválida,grau_invalido); };
  • 22. Padrão ODMG – OQL OQL – É uma linguagem declarativa para consultar os objetos do BD. Pode ser usada dentro de uma linguagem de programação. Sintaxe baseada no SQL. Não fornece operadores para atualização, devendo esta ser feita através dos métodos definidos para os objetos. Suporta todas as potencialidades da cláusula Select- From-Where. Possui algumas características mais poderosas, tal como, chamar métodos dos tipos envolvidos na consulta.
  • 23. OQL, O-R SQL : Definição de Consultas
  • 24. OQL , O-R SQL : Sintaxe
  • 25. OQL, O-R SQL : Consultas • resultado representa uma das variáveis (ou combinação) presentes em operando e identifica a origem da lista de objetos/valores que será fornecida como resultado da consulta. • operando da consulta consiste de expressões do tipo coleção v ,onde v representa os objetos em coleção. • predicado é o conjunto de cláusulas que representam as condições que devem ser satisfeitas pelas variáveis de lista de variáveis.
  • 26. Padrão ODMG – OQL - Exemplos Class Departamento (extent departamentos key nomed) { attribute string nomed; attribute string telefoned; attribute string escritóriod; attribute string faculdade; attribute Professor presidente; relationship set <Professor> possui_professor inverse Professor::trabalha_em; relationship set <Aluno> possui_especializações inverse Aluno::especializa_em; relationship set <Curso> oferece inverse Curso::oferecido_por; }; C1: Select d.nomed From d in departamentos Where d.faculdade=‘Engenharia’
  • 27. Padrão ODMG – OQL - Exemplos C2: departamentoCC.presidente; C3: departamentocc.presidente.classificação; C4: departamentocc.tem_professor; C5: select f.classificação From f in departamentocc.tem_professor; C6: select distinct f.classificação From f in departamentocc.tem_professor;
  • 28. Padrão ODMG – OQL - Exemplos C7: select struct (sobrenome: s.nome.sobrenome,primeiro_nome: s.nome.primeiro_nome) from s in departamentocc.possui_especializações where s.classe = ‘Superior’ order by sobrenome asc; C8: select struct (sobrenome: s.nome.sobrenome,primeiro_nome: s.nome.primeiro_nome) from s in alunos where s.especializa_em.nomed = ‘Ciência da Computação’ order by sobrenome asc;
  • 29. Caché - Um SGBD Pós Relacional Uma das características importantes do Caché é permitir uma integração entre dois mundos: • SQL e Objetos. • A sua arquitetura unificada de dados constrói uma camada de descrição para objetos e tabelas relacionais que são mapeadas diretamente em sua estrutura ultidimensional. • Assim, aplicações relacionais podem coexistir como novos componentes de negócio construídos com a tecnologia OO.
  • 30. Plataformas de Desenvolvimento • Caché Web Quando se trata de desenvolvimento de complexas aplicações web de alta performance, o Caché se torna único. A tecnologia Caché para a web leva todas as capacidades do Caché para o exigente ambiente Internet, onde o rápido desenvolvimento e a conectividade são tão importantes quanto a velocidade do banco de dados e a escalabilidade. • Servidor de Dados Caché Quando se trata do processamento de transações, a performance é crítica. A tecnologia do servidor de dados do Caché permite levar suas aplicações até dezenas de milhares de usuários sem comprometer o desempenho. • Servidor de Aplicações Caché Quando se trata de desenvolvimento rápido e conectividade, as características do servidor de aplicações do Caché dão aos desenvolvedores toda a flexibilidade e todo o poder de que necessitam.
  • 31. Linguagens de Programação do Caché Caché ObjectScript e o Caché Basic • Ambas foram projetadas para bases de dados e lógica de negócios de alta performance e ambas suportam objetos, SQL e acesso multidimensional aos dados Caché.
  • 32. Linguagens de Programação do Caché
  • 33. Caché ObjectScript Caché ObjectScript é uma linguagem orientada a objeto. • Poderosa e muito fácil de aprender. • Uma característica interessante do Caché ObjectScript é que ele permite a mistura de métodos de acesso aos dados – os desenvolvedores podem ver os dados como objetos, como tabelas relacionais (usando SQL), ou como arrays multidimensionais. • Também, diferentemente de outras linguagens de objetos, o Caché ObjectScript permite rotinas stand- alone. Ele não requer que todo o código faça parte do método de uma classe de objetos.
  • 34. Caché Basic O Caché Basic foi adicionado como linguagem de programação a fim de fornecer uma maneira fácil para os programadores de Visual Basic começarem a usar o Caché. Similar ao VBScript, o Caché Basic inclui extensões que permitem que ele rode na Caché Virtual Machine. Assim, o Caché Basic é interoperável com o Caché ObjectScript e usufrui as mesmas características especiais. Assim como o Caché ObjectScript, ele suporta objetos, SQL e acesso multidimensional aos dados Caché. O Caché Basic também permite rotinas stand-alone.
  • 35. Características Data Engine Multidimensional: Todos os dados são armazenados em arrays multidimensionais esparsos que eliminam a sobrecarga do processamento relacionado à “ligação” de dados que comumente ocorre nos bancos de dados relacionais. Acesso a Dados Objetos: Os dados podem ser modelados como objetos. O Caché suporta encapsulamento, heranças múltiplas, polimorfismo, objetos embutidos, referências, coleções, relações e BLOBs. Acesso a Dados SQL: Permite acesso relacional à base de dados Caché. Suporta tanto ODBC como JDBC.
  • 36. Características Acesso a Dados Multidimensionais: Fornece controle direto de estruturas multidimensionais no Banco de Dados Caché. Arquitetura Unificada de Dados: Classes de objetos e tabelas relacionais são automaticamente geradas a partir de uma única definição de dados. Indexação Bit-Map Transacional: Os índices bit-map do Caché podem ser atualizados de forma extremamente rápida, tornando-os adequados para uso com dados “em tempo real”. API para Monitoramento da Performance: Conecta-se com ferramentas de monitoramento de mercado como o Patrol da BMC e o Sightline da Fortel.
  • 37. Vantagens Caché Alta Performance Desenvolvimento Ágil Confiabilidade Robusta Operação Econômica Crescimento Irrestrito Distribuição Flexível
  • 38. Alta Performance • As aplicações baseadas em Caché geralmente operam 5 vezes mais rápido do que as aplicações comparáveis,baseadas em tecnologia relacional. • O Caché tem um mecanismo de dados multidimensional e ultra-eficiente, especialmente quando lida com informações ricas e complexas usadas pelas soluções sofisticadas de software de hoje em dia.
  • 39. Desenvolvimento Ágil • Com o Caché o desenvolvimento de novos produtos e melhorias em antigas soluções são distribuídos no tempo mais curto possível. • O Caché tem um ambiente rápido de desenvolvimento, que faz uso intenso da tecnologia avançada de objetos, da geração automática de códigos e de wizards, permitindo a criação e adaptação rápida das aplicações. • Os objetos Caché também são compatíveis com uma variedade ampla de tecnologias de desenvolvimento, incluindo Java, J2EE, .NET, COM, C++, XML, e Web Services. • Assim, os desenvolvedores podem usar o Caché com quaisquer ferramentas ou tecnologias que sejam mais produtivas para eles.
  • 40. Confiabilidade Robusta • O Caché é tão confiável que ele potencia mais aplicações na indústria de saúde do que qualquer outra tecnologia de banco de dados. • Ele inclui uma série de funcionalidades rápidas de recuperação, tal como espelhamento e clusters, que permitem a operação contínua de aplicações de missão- crítica. • Além de impulsionar a escalabilidade, o Enterprise Cache Protocol do Caché proporciona uma distribuição contínua entre os servidores de aplicação nos sistemas distribuídos.
  • 41. Operação Econômica • Na maioria dos casos, as instalações de aplicações baseadas no Caché não requerem os serviços de um administrador de banco de dados. • Seu mecanismo multidimensional usa “sparse arrays “ (matrizes escassas), assim, as aplicações baseadas no Caché geralmente requerem menos hardware do que os produtos dos competidores embutidos nos bancos de dados relacionais. • Além disso, o banco de dados Caché nunca precisa ser “regulado”, as tarefas administrativas de rotina podem ser facilmente realizadas sem reiniciar, e todo o sistema de administração pode ser feito remotamente através do fácil portal de administração do Caché.
  • 42. Crescimento Irrestrito • As aplicações baseadas em Caché podem ser escaladas proporcionalmente sem sacrificar a performance, e podem manter o ritmo até mesmo com a organização crescendo rapidamente em número de usuários finais. • O Caché potencia o sistema de informática mais distribuído do mundo, o qual serve mais de 50.000 usuários.
  • 43. Distribuição Flexível • Com o Caché, as organizações de usuários finais nunca ficam obrigadas a usar um sistema operacional específico. • O Caché roda em Unix, Linux, Windows, Mac OS X e OpenVMS. • Ele suporta uma grande variedade de linguagens, padrões e protocolos, assim as aplicações baseadas em Caché podem funcionar continuamente com outras aplicações em quase todas as arquiteturas de sistemas.
  • 44. Caché & JAVA Caché é o banco de dados de alta performance ideal para aplicações Java, pois oferece três diferentes modos de conexão dados do Caché podem ser acessados: • Com SQL via JDBC; • Classes Caché podem ser projetadas como classes Java • ou ainda como Enterprise Java Beans. As projeções são automatizadas de forma que os desenvolvedores Java possam ganhar persistência de dados sem a necessidade de tediosas codificações.
  • 45. Prática Mãos á obra!!!
  • 46. Modelo UML - Prática
  • 47. E o melhor é FREE!!! O download é gratuito. Disponível na versão 5.2 monousuário, completa e funcional, sem data de expiração do Caché . Se você preferir, pode receber uma cópia do software em CD. As Documentações e Atualizações de Caché atuais e anteriores estão disponíveis on-line, ou fazendo o download para impressão.
  • 48. Curiosidades Guia: http://www.intersystems.com.br/isc/cache/guiatecnolog.csp Download: http://www.intersystems.com.br/isc/cache/downloads.csp Material/Tutorial - Pdf’s: http://www.intersystems.com.br/isc/cache/brochuras.csp Demosntração On-line: http://www.intersystems.com.br/isc/cache/demonstracoes.csp
  • 49. Empresas que usam o Caché
  • 50. Conclusão • As aplicações cliente/servidor, desenvolvidas em bancos de dados relacionais, não se adaptam à nova realidade imposta pela Internet, naturalmente heterogênea e distribuída. • Novas aplicações são construídas com arquitetura de três camadas, utilizando as vantagens tecnológicas da orientação a objeto. • Armazenar objetos em um banco de dados relacional é uma tarefa difícil. O modelo relacional não possui os mecanismos necessários para representar características básicas do modelo OO. • Nesse cenário, um banco de dados relacional não traz nenhuma vantagem. A escolha de um banco de dados OO é a evolução natural.
  • 51. Conclusão • Hoje, bancos de dados OO são produtos estáveis, oferecem segurança, performance e escalabilidade. • Armazenar e recuperar objetos de um banco de dados OO é efetivamente mais rápido do que pulverizar seus atributos em tabelas de duas dimensões. Mas a performance do seu banco de dados OO é apenas uma parte. • Definir corretamente a arquitetura de sua aplicação é fundamental e requer experiência.

×