Banco de Dados com XML Aplicações Baseadas em Hiperdocumentos Lucio Henrique Franco [email protected] 06/12/2002 LAC INPE Lucio Henrique Franco, LAC, INPE - CAP 353 - 06/12/2002 – p.1/33 Roteiro • Objetivo • Bancos de Dados Referenciados: – MySQL – PostgreSQL – Ingress II – MS SQL Server 2000 – Caché – Oracle • Conclusão • Bibliografia Lucio Henrique Franco, LAC, INPE - CAP 353 - 06/12/2002 – p.2/33 Objetivo • Apresentação da relação dos banco de dados mais utilizados atualmente, seja ele open source ou proprietário, com XML (eXtensible Markup Language) Lucio Henrique Franco, LAC, INPE - CAP 353 - 06/12/2002 – p.3/33 MySQL versão 2.23.53 • PRINCIPAIS CARACTERÍSTICAS: • Portabilidade: Escrito em C e C++. Testado com vários compiladores. APIs para C, C++, Eiffel, Java, Perl, PHP, Python, Ruby, and Tcl • Multi-Thread: Usa kernel threads. Pode facilmente utilizar várias CPUs se disponível Lucio Henrique Franco, LAC, INPE - CAP 353 - 06/12/2002 – p.4/33 MySQL versão 2.23.53 • Armazenamento: Árvore-B com compressão de index • Funções SQL: classes otimizadas. Sem memória alocada depois de uma consulta Lucio Henrique Franco, LAC, INPE - CAP 353 - 06/12/2002 – p.5/33 MySQL versão 2.23.53 • Tamanho da Base de Dados: Manipula grande bases de dados. Há MySQL Server com 60.000 tabelas e aproximadamente 5.000.000.000 linhas • Conexão: Pode-se conectar usando TCP/IP Sockets, Unix Sockets (Unix) ou Named Pipes (NT), ODBC (Open-DataBase-Connectivity) Lucio Henrique Franco, LAC, INPE - CAP 353 - 06/12/2002 – p.6/33 PostgreSQL • PRINCIPAIS CARACTERÍSTICAS • Integrity Transaction • Início do projeto em 1986 - Release em Junho/88 • Release 3: Suporte a múltiplos gerenciadores de armazenamento Lucio Henrique Franco, LAC, INPE - CAP 353 - 06/12/2002 – p.7/33 PostgreSQL • Desde então focado em portabilidade • Pacote de monitoramento de performance e sistema de informação geográfica • Postgres95 • 1994 Andrew Yu e Jolly Cen acrescentam o interpretador SQL para Postgres • Domínio Público e Código Aberto descendente do código original de Berkeley • Importantes características de backend: incluindo subselects, constrains, triggers Lucio Henrique Franco, LAC, INPE - CAP 353 - 06/12/2002 – p.8/33 Ingress II • PRINCIPAIS CARACTERÍSTICAS • Release 2.6 • Acelerador de performance • Flexibilidade com suporte a XML Lucio Henrique Franco, LAC, INPE - CAP 353 - 06/12/2002 – p.9/33 Ingress II • Ferramentas de administração com capacidade de gerenciamento global • Ingres Enterprise Relational Database inclui tecnologias disponíveis como: Ingres II Enterprise Edition, Ingres II, Ingres Visual DBA, Ingres NET • Suporta computação distribuída Lucio Henrique Franco, LAC, INPE - CAP 353 - 06/12/2002 – p.10/33 Ingress II • Plataformas como Linux (Intel, OS/390, Z Series), UNIX (Solaris, HPUX, Tru64, AIX) e Windows (2000/NT/XP) • Disponibilidade 24x7 • Advantage Ingres Enterprise Relational Database Distributed Option: simplifica acesso aos dados distribuídos, de desktops para mainframes Lucio Henrique Franco, LAC, INPE - CAP 353 - 06/12/2002 – p.11/33 Microsoft SQL Server 2000 • PRINCIPAIS CARACTERÍSTICAS • Escalabilidade: Suporte a 32 CPUs SP(simetric multi-processor) com Windows 2000 DataCenter Server • Memória: Suporte a 64 GB RAM com Windows 2000 DataCenter Server Lucio Henrique Franco, LAC, INPE - CAP 353 - 06/12/2002 – p.12/33 Microsoft SQL Server 2000 • Tolerância à Falhas: Reinstala ou recontrói qualquer nó do cluster que falhar, sem impactar outros nós • Acesso via URL: Flexibilidade de acessar dados de Web via URL. Usando Structured Query Language (SQL), XML templates ou XPath nessas consultas Lucio Henrique Franco, LAC, INPE - CAP 353 - 06/12/2002 – p.13/33 Microsoft SQL Server 2000 • Padrões Suportados: Intregra sistemas existentes. Suporte padrões W3C como: XML, XPath, XSL e HTTP • Multi-Instâncias: Roda em hosts com instâncias das base de dados separadas para aplicações ou clientes • XML: Vê e acessa dados relacionais usando XML e facilmente mapeia elementos XML e atributos para o esquema relacional Lucio Henrique Franco, LAC, INPE - CAP 353 - 06/12/2002 – p.14/33 Microsoft SQL Server 2000 • SELECT FOR XML: Retorna consultas SQL como XML • OpenXML: Acessa, manipula e atualiza documentos XML • English Query: Permite os usuários acessar dados via consulta de linguagem natural • Data mining de clientes e dados financeiros Lucio Henrique Franco, LAC, INPE - CAP 353 - 06/12/2002 – p.15/33 Caché • PRINCIPAIS CARACTERÍSTICAS • Dados Multidimensionais: Todos os dados são armazenados em arrays multidimensionais que eliminam relativamente o processo de overhead para pesquisas em base de dados relacionais comuns. • Eficiente armazenamento de dados, consome pouco espaço em disco, requer pouco hardware Lucio Henrique Franco, LAC, INPE - CAP 353 - 06/12/2002 – p.16/33 Caché • Dados podem ser modelados como objetos. Suporta encapsulamento, herança múltipla, polimorfismo, referências, coleções, BLOBs • Objetos e tabelas relacionais são automaticammente gerados de uma simples definição dos dados • Implementa Bean-Managed Persistence sem a necessidade de mapear manualmente entre classes Java e tabelas relacionais Lucio Henrique Franco, LAC, INPE - CAP 353 - 06/12/2002 – p.17/33 Caché • Gera documentos XML e DTDs correspondentes ou XML schemas de classes Caché • Hyper-Events: permite ocorrer eventos no browser (mouse clicks, mouse movements, field value changes, timeouts, etc.). Podendo a base de dados responder os eventos com uma trigger Lucio Henrique Franco, LAC, INPE - CAP 353 - 06/12/2002 – p.18/33 • Caché Lucio Henrique Franco, LAC, INPE - CAP 353 - 06/12/2002 – p.19/33 Oracle • PRINCIPAIS CARACTERÍSTICAS • Oracle9i Database is the state of the art in object-relational databases • Unbreakable database clusters • Completa proteção de dados • Self-service error correction - flashback • Procura valores através de data mining • Compartilhamento de dados seguro • Sistema de arquivo inteligente Lucio Henrique Franco, LAC, INPE - CAP 353 - 06/12/2002 – p.20/33 Oracle • Row Level Lock: travamento somente do registro individual em questão • Replicação das base de dados • XML Center • Oracle XML Developer’s Kits: contém blocos básicos que lê, manipula, transforma e visualiza documentos XML – XML Parsers: suporta Java, C, C++ e PL/SQL, padrão DOM e SAX Lucio Henrique Franco, LAC, INPE - CAP 353 - 06/12/2002 – p.21/33 Oracle • XML Center (cont.) – XSLT Processor: tranforma ou manipula XML dentro de outros formatos de texto como HTML – XML Schema Processor: suporta Java, C e C++, permite usar XML como simples ou complexos tipos de dados – XML Class Generator: automaticamente gera classes Java e C++ de DTDs ou Schemas Lucio Henrique Franco, LAC, INPE - CAP 353 - 06/12/2002 – p.22/33 Oracle • XML Center (cont.) – XML Transviewer Java Beans: visualiza e transforma documentos XML e dados via componentes Java – XSQL Servlet: combina XML, SQL, e XSLT no servidor para entregar conteúdo dinâmico na web Lucio Henrique Franco, LAC, INPE - CAP 353 - 06/12/2002 – p.23/33 Oracle • XML Center (cont.) comprime documentos XML sem perder informações de estrutura e hierarquia da árvore DOM, reduzindo memória e mantendo o acesso aos dados mais rápido – XML compressor – Cria documentos conforme W3C XML 1.0 Recommendation – Escreve dados de um documento XML dentro de uma tabela ou view Lucio Henrique Franco, LAC, INPE - CAP 353 - 06/12/2002 – p.24/33 Oracle • XML Center (cont.) pode ser utilizado para comparar 2 arquivos XML e representar a diferença visualmente ou gerar o código – XMLDiff Bean XSL Lucio Henrique Franco, LAC, INPE - CAP 353 - 06/12/2002 – p.25/33 Oracle • Oracle XML DB é uma característica do Oracle9i Database Release 2. Ela provê uma alta performance, armazena XML nativo, utilizando um novo padrão de métodos de acessos, navegação e consultas XML Lucio Henrique Franco, LAC, INPE - CAP 353 - 06/12/2002 – p.26/33 Oracle Lucio Henrique Franco, LAC, INPE - CAP 353 - 06/12/2002 – p.27/33 Oracle Lucio Henrique Franco, LAC, INPE - CAP 353 - 06/12/2002 – p.28/33 Conclusão • Todos Alta Performance, Flexibilidade, Rápido Desenvolvimento • Informações de Fabricantes x Código Livre • Informações de marketing ofuscando informações técnicas • Procura por padrões XML Lucio Henrique Franco, LAC, INPE - CAP 353 - 06/12/2002 – p.29/33 Bibliografia • MySQL – http://www.mysql.com/documentation/mysql/full/index.html • PostgreSQL – http://www.manualy.sk/PostgreSQL/user/intro.htm\#AEN34 – http://www.manualy.sk/PostgreSQL/user/intro56.htm • Ingress II – http://www3.ca.com/Solutions/Product.asp?ID=1013 – http://www3.ca.com/Solutions/Overview.asp?ID=1013&TYPE=S – http://www3.ca.com/Solutions/ProductOption.asp?ID=1116 Lucio Henrique Franco, LAC, INPE - CAP 353 - 06/12/2002 – p.30/33 Bibliografia • MS SQL Server 2000 – http://www.microsoft.com/catalog/display.asp?site=10145&subid=22&pg=2 • Caché – http://www.e-dbms.com/cache/cache5/fb/fb_02.html – http://www.e-dbms.com/cache/cache5/fb/fb_03.html – http://www.e-dbms.com/cache/cache5/fb/fb_04.html – http://www.e-dbms.com/cache/cache5/components/xml/index.html Lucio Henrique Franco, LAC, INPE - CAP 353 - 06/12/2002 – p.31/33 Bibliografia • Oracle – http://www.oracle.com/ip/deploy/database/oracle9i/index.html?oracle9id – http://otn.oracle.com/tech/linux/content.html – http://otn.oracle.com/tech/xml/content.html – http://otn.oracle.com/tech/webservices/content.html – http://otn.oracle.com/tech/xml/xdkhome.html – http://www.oracle.com/lang/pt/features/ow/index.html?0625_ow_15securit Lucio Henrique Franco, LAC, INPE - CAP 353 - 06/12/2002 – p.32/33 Bibliografia • Oracle (cont.) – http://otn.oracle.com/tech/xml/xdk_java/content.html – http://otn.oracle.com/tech/xml/xmldb/content.html – http://otn.oracle.com/products/ias/daily/may01.html – http://otn.oracle.com/tech/xml/xdk_java/content.html Lucio Henrique Franco, LAC, INPE - CAP 353 - 06/12/2002 – p.33/33