CAPÍTULO 1
Introdução ao Oracle
Por onde começar? Um dos problemas em compreender um produto tão grande quanto a
base de dados Oracle é conseguir obter uma boa noção de como ele funciona sem se perder
nos detalhes. Este livro tem por objetivo fornecer uma base abrangente sobre os conceitos e
tecnologias que formam os fundamentos do Servidor de Base de Dados Oracle, atualmente
conhecido como Base de Dados Oracle 11g. O livro se destina a uma ampla faixa de pessoas,
administradores de bases de dados Oracle, desenvolvedores e usuários, servindo desde os
novatos até os mais experientes. Esperamos que, uma vez que você tenha uma compreensão
básica sobre o produto, seja capaz de ligar os pontos quando estiver usando o volumoso
conjunto de características e documentação do Oracle, bem como os muitos outros livros e
publicações que descrevem essa base de dados.
O Oracle também oferece um Servidor de Aplicativos, o Middleware* Fusion, ferramentas
de inteligência de negócios (business intelligence), e programas corporativos (o conjunto
de softwares E-Business, o PeopleSoft, o JD Edwards, Siebel, Hyperion, e o Project Fusion).
Uma vez que este livro se concentra na base de dados, vamos citar todos esses apenas quando
se relacionarem com tópicos expostos específicos do Oracle relativos a bases de dados.
O primeiro capítulo traça o mapa para o restante do livro. De todos os capítulos, é o que
concentra a maior variedade de tópicos. A maioria deles será discutida depois em maiores
detalhes, mas algumas das mais básicas - como por exemplo, a breve história do Oracle e o
conteúdo de diferentes implementações dos produtos dessa base de dados - serão mostrados
apenas aqui.
Nos últimos 30 anos, o Oracle cresceu de apenas um dos muitos produtos similares
desenvolvidos por diversas empresas que vendiam bases de dados até ser amplamente
reconhecido como o líder nesse mercado. Embora versões antigas fossem tipicamente
produtos de uma empresa iniciante, a qualidade e alcance cresceu tanto que suas capacidades
técnicas são atualmente vistas como as mais avançadas no ramo. Com cada versão da base
de dados lançada, o Oracle tem melhorado sua escalabilidade, funcionalidade e capacidade
de gerenciamento.
* (NT) middleware pode ser literalmente traduzido para “maquinário intermediário” e aqui é empregado para
indicar um sistema que é usado para criar e/ou executar outros sistemas.
(
Cap001.indd 1
1
03/09/2008 08:30:26
Este livro está agora em sua quarta edição. Ela exigiu, como aconteceu na terceira e na
segunda, muitas alterações uma vez que a base de dados em si mudou muito no decorrer do
tempo. Destaques sobre as diferentes versões do Oracle incluem:
• O Oracle 8 (lançado em 1997) melhorou sua performance e escalabilidade e teve
adicionada a capacidade de criar e armazenar objetos na base de dados;
• O Oracle 8i (lançado em 1999) acrescentou muitas vantagens à base de dados - uma
combinação de melhorias que fizeram dessa versão um ponto focal no mundo da
computação na Internet;
• O Oracle 9i (lançado em 2001) teve adicionado os Agrupamentos Reais de Aplicativos
(Real Application Clusters) em substituição ao Servidor Paralelo (Parallel Server) e
também ganhou muitas características de gerenciamento e organização de unidades
dedicadas de armazenamento de dados;
• O Oracle 10g (lançado em 2003) permitiu a distribuição de “computação de grade”
(grid computing). Uma grade é simplesmente um conjunto de computadores e recursos
de software que são fornecidos para aplicativos conforme são necessários. Para dar
suporte a este estilo de computação, o Oracle teve acrescentada a capacidade de reservar
CPUs e dados. Essa versão também reduziu ainda mais o tempo, custo e complexidade
do gerenciamento de bases de dados ao oferecer características auto-gerenciadas,
como o Monitor Automático de Diagnóstico de Bases de Dados (Automated Database
Diagnostics Monitor), o Ajuste Automático de Memória Compartilhada (Automated
Shared Memory Tuning), o Gerenciamento Automático de Armazenamento (Automated
Storage Management) e as Cópias e Restaurações de Segurança Automáticas Baseadas
em Disco (Automated Disk Based Backup and Recovery);
• O Oracle 11g (lançado em 2007) é a versão atual. Muitas das capacidades de autoajuste e gerenciamento foram melhoradas, especialmente o Gerenciamento Automático
de Memória, o particionamento e a segurança. O ciclo de vida de gerenciamento de
alteração de uma base de dados foi estendido dentro do Gerenciador Empresarial
(Enterprise Manager) agora que a Oracle melhorou a capacidade de diagnóstico
e a conexão com a assistência técnica através do Balcão de Atendimento (Support
Workbench, literalmente “bancada de suporte”). Essa versão também possui
capacidades de correção online melhoradas.
Antes de entrarmos em maiores detalhes, vamos retroceder um passo e discutir como as
bases de dados evoluíram, como chegaram ao modelo relacional, e a história da Oracle
em si. Depois, faremos um exame inicial dos elementos da base de dados Oracle e suas
características atuais.
A Evolução das Bases de Dados Relacionais
O conceito de base de dados relacional foi primeiro descrito pelo Dr. Edgar F. Codd numa
publicação de pesquisa da IBM chamada “Sistema R4 Relacional” que foi lançada em 1970.
Inicialmente, não ficou claro se qualquer sistema baseado nesse conceito obteria sucesso
comercial. A despeito disso, uma empresa chamada Laboratórios de Desenvolvimento de
Programas Relacionais (Software Development Laboratories Relational Software) surgiu em
1977 e então, em dois anos, lançou um produto chamado Oracle V.2 como a primeira base
2
Cap001.indd 2
(
Capítulo 1: Introdução ao Oracle
03/09/2008 08:30:26
de dados relacional comercial (e mudou de nome para Corporação de Aplicativos Relacionais
- Relational Software, Incorporated). Em 1985, a Oracle contava com mais de mil clientes.
Curiosamente, a IBM não adotou a tecnologia relacional em produtos comerciais até o
lançamento do Produto de Gerenciamento de Consultas (Query Management Facility) em
1983.
Porque a tecnologia de bases de dados relacionais cresceu até se tornar a dominante? Um
exame das técnicas anteriores pode ajudar a explicar esse fenômeno.
Sistemas de gerenciamento de bases de dados foram definidos pela primeira vez na década de
60 para servir como um arcabouço comum de organização de dados que eram anteriormente
armazenados em arquivos independentes. Em 1964, Charles Bachman, da General Electric,
propôs um modelo de rede com registros de dados associados, formando conjuntos de
dados nas interseções, como mostrado à esquerda da Figura 1-1. Esse trabalho se tornou a
base para a Força Tarefa de Base de Dados CODASYL (CODASYL Data Base Task Group).
Enquanto isso, A Divisão Norte Americana de Espaço de Aviação (North American Aviation’s
Space Division) e a IBM desenvolveram uma segunda abordagem baseada num modelo
hierárquico em 1965. Nele, dados são representados em estruturas em árvore que formam
uma hierarquia de registros, como mostrado à direita da mesma figura. O produto da IBM
baseado nesse modelo foi lançado no mercado em 1969 como o Sistema de Gerenciamento
de Informações (IMS, Information Management System). Numa data tão recente quanto
1980, quase todas as implementações de bases de dados usavam um modelo ou o outro.
Embora muitos concorrentes estivessem vendendo tecnologias similares por volta dessa data,
apenas o IMS ainda pode ser encontrado em muitas grandes empresas 20 anos mais tarde.
Figura 1-1. Modelo de rede (à esquerda) e hierárquico (à direita)
A Evolução das Bases de Dados Relacionais
Cap001.indd 3
(
3
03/09/2008 08:30:27
Conceitos Relacionais Básicos
As bases de dados relacionais usam o conceito de tabelas bidimensionais associadas
consistindo de linhas e colunas, como mostrado na Figura 1-2. Diferente da abordagem
hierárquica, nenhum relacionamento predeterminado existe entre tabelas distintas. Isso
implica que os dados necessários para associar as diferentes áreas da rede ou do modelo
hierárquico não precisam ser definidos. Já que os usuários de bases relacionais não precisam
entender a representação dos dados armazenados para recuperá-los (e muitos usuários nessa
condição podem criar consultas exclusivamente para esse fim), a facilidade de uso ajudou a
popularizar o modelo relacional.
DEPNUM
DEPNOME
LOCAL
10
20
30
40
Contabilidade
Pesquisa
Vendas Operações
São Francisco
São Francisco
Chicago
Dallas
EMPNUM
EMPNOME
TITULO DEPNUM
71712
83321
85332
88888
Johnson Smith
Stern
Carter Contínuo Gerente G. de Compras
Gerente 10
20
30
10
Figura 1-2. Modelo relacional com duas tabelas
Programação relacional é não-procedural e opera num conjunto de linhas de cada vez. Num
relacionamento mestre-detalhe (master-detail) entre tabelas, podem existir uma ou mais
linhas de detalhe para cada linha individual da tabela mestre, e ainda assim os comandos
usados para acessar, inserir ou modificar dados simplesmente descrevem o conjunto de
resultados. Em muitas bases de dados relacionais antigas, o acesso a dados exigia o uso de
linguagens procedurais que atuavam numa linha de cada vez. Graças a essa orientação para
conjuntos, programas podem acessar mais de uma linha numa base de dados relacional mais
facilmente. Essas bases podem ser usadas de forma mais produtiva para extrair valores de
grandes conjuntos de dados.
Os conteúdos das linhas na Figura 1-2 são algumas vezes chamados de registros. Uma coluna
dentro de uma linha é chamada de campo. Tabelas são armazenadas usando um esquema
de base de dados, que é uma unidade lógica de organização dentro de uma base de dados.
Outras estruturas lógicas dentro do esquema freqüentemente incluem o seguinte:
Visualizações (Views)
Permitem uma visualização única de dados derivados de uma ou mais tabelas ou outras
visualizações. São uma forma alternativa de acessar os dados, que são armazenados nas
tabelas subjacentes que compõem a visualização.
4
Cap001.indd 4
(
Capítulo 1: Introdução ao Oracle
03/09/2008 08:30:28
Sequências
Providenciam números únicos para valores de colunas.
Procedimentos armazenados (stored procedures)
Contêm módulos lógicos que podem ser chamados de programas.
Sinônimos
Providenciam nomes alternativos para objetos na base de dados.
Índices
Permitem acesso mais rápido a linhas de tabelas.
Conexões entre Bases de Dados (database links)
Permitem que se associem bases de dados distribuídas.
Os relacionamentos entre colunas em diferentes tabelas são tipicamente descritos através
do uso de chaves (keys), que são implementadas utilizando-se de restrições de integridade
referencial e os índices que as suportam. Por exemplo, na Figura 1-2, você pode estabelecer
uma associação entre a coluna DEPNUM na segunda tabela, que é chamada então de chave
secundária (foreign key, também chamada de chave estrangeira), e a coluna DEPNUM na
primeira tabela, que é então chamada de chave primária daquela tabela.
Finalmente, mesmo se forem definidos muitos índices diferentes para uma tabela, não é
preciso entendê-los ou gerenciar os dados a que eles se referem. O Oracle inclui um
otimizador de consultas (query optimizer, descrito no Capítulo 4) que escolhe quais índices
devem ser usados, e qual seria a melhor forma de usá-los, para acessar dados para uma
consulta em particular.
A abordagem relacional evoluiu naturalmente para a Linguagem Estruturada de Consulta
(SQL, Structured Query Language). A SQL foi inicialmente definida durante um período
de alguns anos pelo setor de Pesquisas da IBM, mas foi a Corporação Oracle que primeiro
a apresentou ao mercado em 1979. A SQL era notável na época por ser a única linguagem
necessária para bases de dados relacionais, uma vez que ela poderia ser usada para:
• Consultas (usando um comando SELECT);
• Como linguagem de manipulação de dados ou DML (data manipulation language,
usando os comandos INSERT, UPDATE e DELETE);
• Como linguagem de definição de dados ou DDL (data definition language, usando os
comandos CREATE e DROP para adicionar ou remover tabelas);
• Para estabelecer os privilégios de usuários e grupos (usando comandos GRANT ou
REVOKE).
Hoje em dia, a SQL contém muitas extensões e segue padrões ANSI/ISO que definem sua
sintaxe básica.
Como o Oracle Cresceu
Em 1983, a Relational Software Incorporated mudou de nome para Corporação Oracle
(Oracle Corporation) para evitar confusões com um competidor chamado Relational
Technologies Incorporated. Nessa época, os desenvolvedores tomaram uma decisão crítica
de criar uma versão portável do Oracle em C (versão 3) que não apenas executaria em
sistemas VAX/VMS da Digital, mas também em Unix e outras plataformas. Por volta de 1985,
a Oracle afirmava ter a capacidade de executar em mais de 30 plataformas. Algumas delas
A Evolução das Bases de Dados Relacionais
Cap001.indd 5
(
5
03/09/2008 08:30:28
são curiosidades históricas hoje em dia, mas outras ainda estão em uso (além do VMS, alguns
sistemas operacionais antigos com os quais o Oracle trabalhava incluem o MVS da IBM, o
HP/UX, o IBM AIX, e a versão Solaris do Unix da Sun). O Oracle foi capaz de permitir e
acelerar o crescimento de minicomputadores e servidores Unix durante a década de 1980.
Hoje em dia, o Oracle também oferece essa portabilidade entre sistemas operacionais como
o Windows da Microsoft e o Linux.
Adicionalmente ao suporte para múltiplas plataformas, outras características essenciais do
Oracle incluídas no meio da década de 80 ainda encontram respaldo hoje em dia, incluindo
desenvolvimento de programas complementares e ferramentas de suporte a decisões
(inteligência de negócios), padrões ANSI para SQL entre plataformas e conectividade entre
redes padrão. Desde o meio da década de 80, o modelo de distribuição de base de dados
evoluiu, indo de servidores dedicados de bases de dados para o modelo cliente/servidor até a
computação de Internet, que implementa clientes baseados em navegadores que se utilizam
de aplicativos de acesso à base de dados.
A Oracle introduziu muitas características técnicas inovadoras na sua base de dados, como
por exemplo, as modificações em modelos de computação e distribuição (que vão desde
oferecer a primeira base de dados distribuída até dar suporte à primeira Máquina Virtual Java
no sistema primário da base de dados para permitir computação de grade). O Oracle sempre
ofereceu suporte para padrões emergentes como o XML, que foi importante para a criação da
Arquitetura Orientada a Serviços (SOA, Service Oriented Architecture). A Tabela 1-1 apresenta
uma lista resumida das maiores novidades em cada versão do Oracle.
Tabela 1-1. Histórico de inovações no Oracle
6
Cap001.indd 6
Ano
Característica
1977
1979
1983
1984
1986
1987
1988
1989
1991
1993
1994
1996
1997
1999
2000
2001
2003
2005
2007
Os Laboratórios de Desenvolvimento de Programas foram fundados por Larry Ellison, Bob Miner e Ed Oates.
Oracle versão 2: primeira base de dados relacional comercial a empregar SQL.
Oracle versão 3: base de código única para o Oracle em múltiplas plataformas.
Oracle versão 4: conjunto de ferramentas portáveis, e consistência de leitura.
Oracle versão 5 disponível de forma geral: base de dados relacional Oracle cliente/servidor.
Conjuntos de ferramentas CASE e 4GL.
Aplicativos Financeiros Oracle desenvolvidos na base de dados relacional.
Oracle 6 disponível de forma geral: travamento em nível de linhas e cópias de segurança ativas (hot backups).
Servidor Oracle Paralelo para plataformas com acesso paralelo intenso.
Oracle 7: com otimizador baseado em custos.
Oracle versão 7.1 disponível de forma geral: operações paralelas incluindo consultas, carga e criação de índices.
Base de dados universal com SQL estendido via cartuchos, clientes leves e servidores de aplicativos.
Oracle 8 disponível de forma geral: características objeto-relacionais e VLDB (Very Large Data Bases, bases de dados muito grandes).
Oracle 8i disponível de forma geral: Máquina Virtual Java (JVM, Java Virtual Machine) na base de dados.
Oracle 9i Servidor de Aplicativos disponível de forma geral: ferramentas do Oracle integradas no nível intermediário do sistema.
Oracle 9i Servidor de Base de Dados disponível de forma geral: Agrupamentos Reais de Aplicativos, OLAP e mineração de dados (data mining) na base de dados.
Base de dados e o servidor de aplicativos Oracle 10g: computação “de grade” ativada. A base de dados automatiza as tarefas de gerenciamento de chaves.
A Oracle completa a compra da PeopleSoft e anuncia a da Siebel, dessa forma aumentando as ofertas de aplicativos ERP, CRM e inteligência de negócios.
Oracle base de dados 11g: aumento das capacidades de auto-gerenciamento e de gerenciamento de alteração da base de dados. A compra da Hyperion fez com que fossem incluídos um aplicativo OLAP independente de base de dados e um de gerenciamento de performance financeira.
(
Capítulo 1: Introdução ao Oracle
03/09/2008 08:30:28
A Família de Bases de Dados Oracle
A base de dados Oracle 11g é a versão mais recente da família de Sistemas de Gerenciamento de
Bases de Dados Relacionais Oracle (RDBMS, Relational Database Management System), produtos
que compartilham código fonte comum. Essa família de produtos inclui:
Oracle Edição Empresarial (Enterprise Edition)
Produto mais importante, é a nau capitânia da empresa e o principal tópico deste livro, destinada
a implementações de larga escala que requeiram o conjunto completo de características e opções
da base de dados Oracle. Para segurança avançada, apenas esta edição inclui suporte para
Bases de Dados Privadas Virtuais (VPD, Virtual Private Databases), auditoria detalhada (FineGrain Auditing, literalmente algo como “auditoria pente fino”), e opções que incluem o Átrio
de base de dados (Database Vault, que também pode ser traduzido para “saguão”), segurança
avançada e Segurança por Rótulo (Label Security).
As características para Centros de Dados (Data Warehousing*) incluídas apenas nesta
edição incluem a compactação de valores armazenados repetidamente, os espaços
transportáveis de tabelas entre múltiplas plataformas, o Gerenciamento de Tempo de
Vida de Informação (ILM, Information Lifecycle Management), a reescrita de consulta
de visualizações materializadas, as opções de particionamento, o OLAP, e o aplicativo de
mineração de dados.
As características para criar ambientes de alta disponibilidade exclusivas dessa versão
incluem a Guarda de Dados (Data Guard) e as base de dados, tabelas e consultas
transacionais Flashback (literalmente “retrospectiva”).
Como inovações nessa versão, temos uma Opção de Compactação Avançada (Advanced
Compression Option) para todas as cargas de trabalho esperadas, incluindo o
processamento de transações, o armazenamento de Objetos Grandes (LOB, Large Objects)
e as cópias de segurança.
Uma Opção de Teste Real de Aplicativos inclui o Reprodutor de Base de Dados (Database
Replay) e o Analisador de Performance SQL (SQL Performance Analizer), e uma Opção
de Relembrar Completamente (Total Recall) usada para permitir o Arquivo de Dados
Fashback que mantém dados para consultas históricas (onde um comando SQL especifica
uma data no passado usando “AS OF” - que pode ser traduzido como “na data”).
Oracle Edição Padrão (Standard Edition)
Destinada a pequenas e médias implementações, ela pode ser utilizada em configurações
de servidores contendo até 4 CPUs num único sistema ou num agrupamento de
computadores (cluster) usando Agrupamentos Reais de Aplicativos (RAC, Real Application
Cluster).
Oracle Edição Padrão Um (Standard Edition One)
Destinada a implementações pequenas, essa base de dados pode suportar até 2 CPUs
e não inclui o RAC. A lista de características, exceto essa, é semelhante à da Edição
Padrão.
* (NT) Data Warehouse é literalmente “armazém de dados”. Refere-se a locais especializados em manter grandes
conjuntos de dados empresariais. A despeito de diferir um pouco do conceito de Centro de Dados (Data Center,
empresa terceirizada especializada em hospedagem de dados) no sentido de ser normalmente de propriedade
das próprias empresas e não terceirizada, a expressão pode ser traduzida também para Centro de Dados.
A Família de Bases de Dados Oracle
Cap001.indd 7
(
7
03/09/2008 08:30:29
Oracle Edição Pessoal (Personal Edition)
Base de dados usada por desenvolvedores individuais para criar código para
implementações em bases multiusuário Oracle. Exige uma licença, diferente da Edição
Expressa, mas possui todas as funcionalidades da Edição Empresarial.
Oracle Edição Expressa (Express Edition)
Base de dados que serve de introdução para o Oracle disponível gratuitamente para
Windows e Linux. Essa base é limitada a 1GB de memória e 4GB no disco. Ela contém
um subconjunto das funcionalidades da Edição Padrão Um e não possui características
como a Máquina Virtual Java, as cópias de segurança e recuperação baseadas em servidor
e o Gerenciamento Automático de Armazenamento. Embora essa edição não possa ser
gerenciada pelo Gerenciador Empresarial Oracle (Enterprise Manager), pode-se usar
a interface de administração dos Aplicativos Expressos Oracle (Application Express, o
antigo HTML-DB).
A Oracle geralmente lança novas versões da sua base principal a cada três ou quatro anos.
Novos lançamentos tipicamente são seguidos por temas e um número significativo de novas
características é introduzido. Em lançamentos recentes, esses temas são indicados no nome
da versão do produto. Em 1998, a Oracle anunciou o Oracle 8i, com o “i” adicionado para
indicar novas funcionalidades que davam suporte à distribuição via Internet. O Oracle 9i
continuou usando esse tema. Em 2003, a Base de Dados 10g foi lançada, com o “g” indicando
o foco da Oracle nos emergentes modelos de distribuição de computação de grade. Esse tema
foi continuado na versão atual da base de dados que é descrita neste livro. Entre duas grandes
versões, a Oracle faz lançamentos pontuais que também acrescentam novas características,
mas é comum que estas se concentrem em melhorias de funções pré-existentes.
Pode parecer que os termos “Oracle”, “Oracle 8”, “Oracle 8i”, “Oracle 9i”, “Base de Dados
Oracle 10g” e “Base de Dados Oracle 11g” sejam usados de forma mais ou menos equivalente
e indistinta neste livro porque a versão 11g inclui todas as características das anteriores.
Quando descrevermos uma função nova que tenha sido lançada numa versão específica,
vamos tentar apontar esse fato para evitar confusões, já que reconhecemos que muitas
pessoas mantêm versões antigas do Oracle. Normalmente usaremos o termo mais simples,
“Oracle”, para descrever características comuns a todas as versões.
O setor de desenvolvimento da Oracle cria as versões da base de dados usando um único
modelo de código fonte para a família principal de produtos desde 1983. Embora cada
implementação da base de dados tenha algum código fonte dedicado a certos sistemas
operacionais em níveis de programação muito baixos para conseguir funcionar melhor em
plataformas específicas, a interface que usuários, desenvolvedores e administradores usam
a cada versão é consistente. Já que o comportamento de características é o mesmo entre
plataformas no que se refere à adoção dessas diferentes implementações do Oracle, empresas
podem migrar aplicativos e bases de dados facilmente entre várias plataformas de hardware
e de sistemas operacionais. Essa estratégia de desenvolvimento também permite que a Oracle
se concentre em implementar novas características uma única vez para todos os produtos
em seu conjunto.
8
Cap001.indd 8
(
Capítulo 1: Introdução ao Oracle
03/09/2008 08:30:29
Resumo das Características da Base de Dados Oracle
A base de dados Oracle é um produto amplo. Para dar alguma perspectiva inicial, começaremos
descrevendo o Oracle de um ponto de vista de alto nível das áreas básicas de funcionalidade.
No final desta parte do capítulo, você terá pontos de referência para se guiar na exploração
dos tópicos do restante deste livro.
Para estruturar de alguma forma o amplo espectro da base de dados Oracle, organizamos a
discussão inicial sobre as características nas seguintes seções:
•
•
•
•
•
•
•
Características de desenvolvimento de aplicativos para bases de dados;
Características de conexão com bases de dados;
Características de bases de dados distribuídas;
Características de deslocamento de dados;
Características de performance de base de dados;
Características de gerenciamento de base de dados;
Características de segurança de base de dados.
Neste capítulo, incluímos muita terminologia e descrições um tanto abreviadas
das características. O Oracle é um sistema imenso. Nosso objetivo aqui é
familiarizar o leitor rapidamente com o conjunto completo de características.
Capítulos subseqüentes fornecerão maiores detalhes. Obviamente, no
entanto, livros inteiros têm sido escritos sobre cada uma das características
que estamos resumindo aqui.
Características de Desenvolvimento de Aplicativos
para Bases de Dados
A base de dados Oracle é tipicamente usada para armazenar e recuperar dados através de
aplicativos. As características dessa base de dados e dos produtos descritos nesta seção são
usadas para criar aplicativos. Dividimos a discussão nas subseções de programação para bases
de dados e opções de extensão. Mais adiante no capítulo, descreveremos as ferramentas de
desenvolvimento da Oracle e os outros produtos incluídos juntamente com a base de dados
que atendem a necessidades específicas de distribuição de aplicativos.
Programação para Bases de Dados
Todas as implementações da base de dados Oracle incluem linguagens e interfaces que
permitem que programadores acessem e manipulem os dados. Características de programação
para bases de dados geralmente interessam aos desenvolvedores que estão criando aplicativos
baseados em Oracle para serem comercializados ou àqueles em departamentos de TI
programando aplicativos para atender necessidades exclusivas de suas empresas. Os dados
em Oracle podem ser acessados usando SQL, ODBC, JDBC, SQLJ, OLE DB, ODP.NET, SQL/
XML, Xquery e WebDav. Programas instalados dentro da base de dados podem ser escritos
em PL/SQL e Java.
Características de Desenvolvimento de Aplicativos para Bases de Dados
Cap001.indd 9
(
9
03/09/2008 08:30:29
SQL
O padrão ANSI para a Linguagem Estruturada de Consulta (Structured Query Language)
possui funções básicas para manipulação de dados, controle de transações e recuperação
de registros na base de dados. A maior parte dos usuários empresariais de bases de dados
interage com o Oracle através de aplicativos ou ferramentas de inteligência de negócios que
disponibilizam interfaces que escondem o SQL subjacente e sua complexidade.
PL/SQL
Essa linguagem da Oracle, uma extensão procedural ao SQL, é muito usada para
implementar módulos de programação lógica para aplicativos. Ela pode ser usada para
criar procedimentos armazenados e gatilhos (triggers), controles em laço (looping controls),
consultas condicionais e tratamento de erros. Pode-se compilar e armazenar procedimentos
PL/SQL na base de dados. Pode-se também executar blocos PL/SQL usando o SQL*Plus,
uma ferramenta interativa incluída em todas as versões do Oracle. As unidades de programas
PL/SQL podem ser pré-compiladas.
Java
O Oracle 8i introduziu o uso de Java como linguagem procedural e uma máquina virtual
java (JVM, Java Virtual Machine) na base de dados (originalmente chamada JServer). A JVM
disponibiliza suporte para procedimentos armazenados, métodos e gatilhos em Java, para os
JavaBeans™ Empresariais (Enterprise JavaBeans™, EJBs) para o CORBA, o IIOP e o HTTP.
A inclusão de Java dentro da base permitiu que desenvolvedores dessa linguagem utilizassem
seus conhecimentos para criar aplicativos Oracle. Estes podem ser distribuídos nos clientes,
no Servidor de Aplicativos ou na base de dados, o que for mais apropriado. A base Oracle 11g
inclui um compilador Java JIT (just-in-time, literalmente “bem na hora”) ativado por padrão.
Discutiremos sucintamente alguns aspectos do desenvolvimento em Java no Capítulo 14.
Oracle e Serviços Web
A partir da versão 11g, a base de dados pode ser usada como servidora de serviços web
implementados usando XML DB. Serviços Web permitem que SQL ou XQuery sejam usados
para efetuar consultas e receber os resultados como XML, ou invocar funções PL/SQL ou de
compactação e receber os resultados. XQuery na base Oracle 11g dá suporte para o padrão
emergente JSR-225 e inclui uma boa quantidade de melhorias de performance.
Objetos Grandes
O interesse no uso de Objetos Grandes (LOB, Large OBjects) está crescendo, particularmente
para o armazenamento de tipos de dados não tradicionais, como por exemplo: imagens.
A base Oracle é capaz de armazenar objetos grandes já faz algum tempo. O Oracle 8
introduziu a capacidade de usar múltiplas colunas LOB numa mesma tabela. Já o Oracle 10g
essencialmente eliminou a limitação de tamanho para esses objetos. E a versão 11g melhorou
muito a performance de consultas e operações de inserção usadas com LOBs ao introduzir
os SecureFiles (arquivos seguros). Criptografia de dados transparente está disponível para
dados LOB em SecureFiles.
10
Cap001.indd 10
( Capítulo 1:
Introdução ao Oracle
03/09/2008 08:30:29
Programação Orientada a Objetos
Suporte para estruturas de objetos existe desde o Oracle 8i para permitir o uso de uma
abordagem orientada a objetos para a programação. Por exemplo, desenvolvedores podem
criar tipos de dados personalizados, completos com seus próprios métodos e atributos. O
suporte para objetos no Oracle inclui uma característica chamada Visualização de Objetos
(Object Views) através da qual programas orientados a objeto podem fazer uso de dados
relacionais já armazenados na base. Pode-se também armazenar objetos na base de dados
como matrizes variantes (varying arrays, VARRAYs), tabelas aninhadas (nested tables) ou
tabelas organizadas por índices (IOTs, index organized tables). Discutiremos as características
de orientação a objeto do Oracle um pouco mais no Capítulo 14.
Linguagens de Terceira Geração (3GLs)
Programadores podem interagir com a base de dados Oracle em C, C++, Java ou COBOL, ao
incluir SQL nos aplicativos. Antes de compilá-los usando ferramentas nativas de plataformas
específicas, deve-se executar o código SQL incluído usando-se um pré-compilador. Ele
substitui os comandos SQL com chamadas para bibliotecas de código que o compilador
pode aceitar. O Oracle dá suporte para essas características através de pré-compiladores
“programadores” para C e C++ usando Pro*C e, para COBOL, usando Pro*COBOL. Em
versões recentes do Oracle, foi incluído o SQLJ, um pré-compilador para Java que substitui
comandos SQL incluídos em código nessa linguagem com chamadas para a biblioteca SQLJ
de tempo de execução, também escrita em Java.
Acesso a Dados
Todas as versões do Oracle incluem drivers* para a base de dados que permitem que
aplicativos efetuem acesso usando ODBC (o padrão Open DataBase Connectivity, padrão
aberto de conectividade entre bases de dados) ou JDBC (o padrão também aberto Java
DataBase Connectivity) . Também disponíveis estão fornecedores (providers) de dados para
OLE DB e .NET.
A Interface de Chamada Oracle
Se você é um programador experiente que procura otimizar performance, pode escolher
definir seus comandos SQL dentro de seqüências de caracteres contidas em linguagens de
programação e então explicitamente forçar a análise dessas seqüências, vincular variáveis
ao resultado e, então, executar a consulta usando a Interface de Chamada Oracle (OCI,
Oracle Call Interface). A OCI é uma interface muito mais detalhada que exige mais tempo
e esforço de programação para criação e depuração. Desenvolver um aplicativo que use a
OCI pode consumir muito tempo, mas a funcionalidade adicional e o ganho incremental de
performance conseguidos em alguns cenários podem fazer valer a pena empregar esse tempo
extra. Em outros cenários, pode-se conseguir somente uma vantagem ou outra. Por exemplo,
numa implementação de ambiente que exija alta disponibilidade em que múltiplos sistemas
compartilhem discos usando os Agrupamentos Reais de Aplicativos (Real Application
Clusters), poderia-se escrever programas usando a OCI para permitir que usuários sejam
conectados de forma transparente num segundo servidor se a primeira conexão falhar.
* (NT) driver traduz-se literalmente por condutor, principalmente no sentido de condutor de veículo.
Características de Desenvolvimento de Aplicativos para Bases de Dados
Cap001.indd 11
(
11
03/09/2008 08:30:30
Suporte para Linguagens Nacionais
O Suporte para Linguagens Nacionais (NLS, Nacional Language Support) providencia
conjuntos de caracteres e funcionalidades associadas, como formatos de data e hora, para
uma série de linguagens. A base de dados Oracle 11g dá suporte para o Unicode 5.0.
Todos os dados podem ser armazenados em Unicode, ou colunas selecionadas podem ser
incrementalmente armazenadas dessa forma. A codificação UTF-8 e UTF-16 dão suporte a
mais de 57 linguagens e 200 conjuntos de caracteres. Capacidade de localização extensiva
está disponível (por exemplo, para formatos de dados), e locais personalizados podem ser
adicionados através de Construtor de Locais Oracle (Locale Builder). Também está incluso
um Kit de Ferramentas de Globalização (Globalization Toolkit) para criar aplicativos que
serão usados em múltiplas linguagens.
Extensão de Base de Dados
A Internet e as intranets corporativas criaram uma crescente demanda por armazenamento
e manipulação de tipos de dados não tradicionais dentro das bases de dados. Existe uma
necessidade de adicionar extensões à funcionalidade padrão de uma base de dados para
armazenar e manipular imagens, áudio, video e uma série de informações espaciais e de
tempo. Essas capacidades são possibilitadas através de extensões ao SQL tradicional. Para
maiores detalhes a respeito dessas capacidades do Oracle, veja o Capítulo 14.
Multimídia Oracle
A Multimídia Oracle (antes chamada interMedia) permite manipulação de texto e adiciona
funções para imagens, áudio, vídeo e de localização na base de dados. As seguintes principais
funções ficam disponíveis:
• A porção de texto da Multimídia (Texto Oracle) pode identificar a essência de um
documento ao pesquisar por temas e frases chave dentro dele;
• A porção de imagem da Multimídia pode armazenar e recuperar imagens em vários
formatos. A partir da versão 11g, o tipo de imagem média DICOM foi incluído;
• As partes de áudio e vídeo da Multimídia podem armazenar e recuperar trechos desses
tipos de mídia;
• A porção de localização da Multimídia pode recuperar dados que incluem informações
sobre coordenadas espaciais.
Gerenciamento de Conteúdo Oracle
As soluções de gerenciamento de conteúdo incluem uma Opção de Base de Dados de
Conteúdo (Content Database Option) usada para armazenar e gerenciar documentos na
base de dados e aplicativos de gerenciamento de conteúdo da Stellent, que foi comprada
pela Oracle em 2007. Esses aplicativos incluem Gerenciamento de Conteúdo Universal
(Universal Content Management), Gerenciamento Universal de Registros (Universal Record
Management) e Gerenciamento de Direitos Autorais (Information Rights Management).
12
Cap001.indd 12
( Capítulo 1:
Introdução ao Oracle
03/09/2008 08:30:30
Capacidade de Pesquisa do Oracle
O Servidor de Aplicativos e de Base de Dados Oracle inclui uma ferramenta de pesquisa
chamada Ultra Search (Ultra Pesquisa). A Ultra Search é tipicamente usada para pesquisar
e recolher informações de localização para dados de texto armazenados dentro da rede de
uma empresa. Recuperação de documentos é baseada em direitos de acesso de usuários.
Adicionalmente, o Oracle oferece a Pesquisa Empresarial Segura (Secure Enterprise Search)
como alternativa, e esta é mais flexível em ambientes externos ao Oracle.
Opção Espacial Oracle
A Opção Espacial (Spatial Option) está disponível na Edição Empresarial do Oracle. Ela
pode otimizar a exibição de recuperação de dados associados a coordenadas e é usada no
desenvolvimento de sistemas espaciais de informações. Muitos produtos de vendedores de
Sistemas de Informações Geográficas (GIS, Geographic Information Systems) agora incluem
essa opção e a utilizam como seu sistema primário de pesquisa e recuperação.
XML DB
O Oracle adicionou suporte nativo para tipos de dados XML na base de dados 9i e
interoperação entre XML e SQL para pesquisa. O objeto XML estruturado é mantido
nativamente no armazenamento de objetos relacionais, o que atende os requisitos para a
DOM da W3C. A sintaxe do Xpath para pesquisar em SQL é baseada nas especificações do
grupo SQLX, e XQuery também é aceita.
Características de Conexão com Bases de Dados
A conexão entre o cliente e o servidor de base de dados é um componente chave da arquitetura
geral. Ela é responsável por todas as comunicações entre um aplicativo e os dados usados. O
Oracle possui várias características para estabelecer e ajustar conexões com bases de dados,
descritas nas subseções seguintes. Dividimos a discussão em duas categorias: bancos de
dados em rede e Servidor de Aplicativos Oracle.
Bancos de Dados em Rede
Usuários conectando-se em bases de dados estão estabelecendo uma conexão de rede. Podese também conectar servidores de bases de dados através de conexões de rede. O Oracle
disponibiliza uma série de características para estabelecer conexões entre usuários e bases de
dados e/ou entre servidores, conforme descrito a seguir.
Rede Oracle
A interface de rede do Oracle, Rede Oracle (Oracle Net), era anteriormente conhecida como
Net8 quando usada no Oracle 8, e SQL*Net quando usada no Oracle 7 e versões anteriores.
Pode-se utilizar a Rede Oracle sobre diversos protocolos de rede, embora TCP/IP seja de
Características de Conexão com Bases de Dados
Cap001.indd 13
(
13
03/09/2008 08:30:30
longe o mais comum em uso atualmente. Características associadas com a Rede Oracle,
como por exemplo, os servidores compartilhados, são conhecidas como Serviços de Rede
Oracle (Net Services).
Diretório de Internet Oracle
O Diretório de Internet Oracle (OID, Oracle Internet Directory) foi introduzido na versão
8i. O OID substituiu os Nomes Oracle (Oracle Names) usados em versões anteriores já que
ele dá aos usuários uma forma de se conectar com um servidor oracle sem a necessidade de
um arquivo de configuração no lado do cliente. O OID é um diretório LDAP (Lightweight
Directory Access Protocol, Protocolo de Acesso de Diretório Leve) e suporta a Rede Oracle e
outros protocolos que aceitam LDAPs.
Gerenciador de Conexões Oracle
Cada conexão com uma base de dados consome recursos importantes de rede, o que pode
ter um impacto sobre a performance geral do aplicativo de base de dados. O Gerenciador de
Conexões Oracle (CMAN, Connection MANager), ilustrado na Figura 1-3, reduz o número
de conexões para clientes de Rede Oracle através do uso de concentradores, que permitem
multiplexação de conexões com bases de dados, implementando múltiplas delas usando
apenas uma única conexão de rede. Multiplexação de conexões é mais benéfica quando
existe um grande número de usuários ativos.
Servidor de Base de Dados
Gerenciadores de Conexão
Clientes
Figura 1-3. Concentradores com Gerenciadores de Conexões para grande número de usuários
14
Cap001.indd 14
( Capítulo 1:
Introdução ao Oracle
03/09/2008 08:30:31
Pode-se também usar o Gerenciador de Conexões para conseguir conectividade entre vários
protocolos se, por exemplo, existirem clientes e servidores que não estejam usando TCP/IP
e outros que estejam. O Oracle 10g introduziu a configuração dinâmica do Gerenciador de
Conexão, que permite a alteração nos parâmetros do CMAN sem ter que desativá-lo.
Servidor de Aplicativo Oracle
A popularidade de aplicativos para Internet e intranet conduziu a uma mudança nos modelos
de distribuição de cliente/servidor (com clientes pesados executando uma parte significativa
do aplicativo) para uma arquitetura de três camadas (com um navegador fornecendo tudo o
que é necessário para um cliente leve). O Servidor de Aplicativos Oracle permite distribuir
a camada intermediária em soluções de três camadas para aplicativos baseados na web, para
os baseados em componentes, e também permite a integração de aplicativos empresariais.
É um componente chave do Middleware Fusion e pode ser empregado através de múltiplos
servidores de camada intermediária.
O produto inclui um listener (literalmente “ouvinte”, ou “aquele que presta atenção”) baseado no
popular listener Apache, e também servlets e páginas JavaServer (JSP, JavaServer Pages), lógica de
negócios, e/ou componentes de acesso a dados. A lógica de negócios freqüentemente é distribuída
como JavaBeans Empresariais (EJB, Enterprise JavaBeans). Componentes de acesso a dados podem
incluir JDBC, SQLJ, e EJBs. Uma ferramenta, TopLink (literalmente “ligação superior”), permite
mapeamento que associa objetos Java com a base de dados via JDBC de forma que o desenvolvedor
Java não precisa usar chamadas SQL nem ter que enfrentar aplicativos Java que falham depois que
um esquema de base de dados é alterado.
O Servidor de Aplicativos Oracle oferece soluções adicionais nas áreas de cache, portal,
inteligência de negócios e conexão sem fio (wireless):
Cache
O Cache de Rede do Servidor de Aplicativo Oracle (Web Cache) introduz uma camada
intermediária para cache de páginas ou de parte delas. Um cache numa versão anterior,
o Cache de Base de Dados do Servidor de Aplicativos Oracle (Database Cache) era usado
para efetuar cache de procedimentos e de blocos anônimos PL/SQL, mas não é mais
suportado desde o servidor de aplicativos da versão 10g.
Portal
O Portal do Servidor de Aplicativos Oracle (Application Server Portal) é também parte
do Ferramental do Desenvolvedor Oracle (Developer Suite, discutido mais adiante neste
capítulo) e é usado para criar painéis de controle empresariais fáceis de usar. O portal
desenvolvido é distribuído pelo Servidor de Aplicativos.
Inteligência de Negócios
Componentes da Inteligência de Negócios do Servidor de Aplicativos (Application Server
Business Intelligence) incluem o Portal, bem como as ferramentas de inteligência de
negócios originais do Oracle:
• Relatórios Oracle (Oracle Reports), que servem como uma camada intermediária
escalonável para relatar os resultados de consultas construídas previamente;
• O Descobridor Oracle (Oracle Discoverer), para consultas instantâneas e análise;
• Uma plataforma de distribuição para OLAP JDeveloper personalizado e para aplicativos
de mineração de dados.
Essas capacidades são discutidas no Capítulo 10.
Características de Conexão com Bases de Dados
Cap001.indd 15
(
15
03/09/2008 08:30:31
Comunicação Sem Fio Oracle
A Comunicação Sem Fio Oracle (Oracle Wireless, conhecida anteriormente como Portalto-Go*) inclui:
• Adaptadores para transformar conteúdo em XML;
• Transformadores de dispositivo para converter XML para linguagens de marcação
específicas de certos aparelhos;
• Portais de personalização para configuração pessoal de serviços de alerta, de endereços
de alerta, marcas de posição e perfis. O portal de personalização sem fio é também
usado para criar, servir, testar e publicar serviços de URL e para gerenciamento de
usuários.
O Servidor de Aplicativos Oracle está disponível em diversas edições: na Empresarial, Padrão,
Padrão Um e edição Java, e esta inclui componentes chave para desenvolvedores Java. Incluídos na
Edição Padrão e na Padrão Um estão o Portal, o TopLink com o Framework de Devenvolvimento de
Aplicativos (Application Development Framework) e o WebCache. A edição empresarial acrescenta
as seguintes capacidades: Serviços de Formulário (Formulários Services), Serviços de Relatórios
(Report Services), Visualizador de Descobridor (Discoverer Viewer), Diretórios de Internet Oracle,
Interconexão de Aplicativos Oracle (Application Interconnect), Opção Sem Fio (Wireless Option)
e integração com o Barramento de Serviços Empresariais (ESB, Enterprise Service Bus). A edição
Java inclui um servidor HTTP, OC4J e o TopLink com o Framework de Desenvolvimento de
Aplicativos. Forneceremos mais detalhes sobre o Servidor de Aplicativos Oracle no Capítulo 15.
A edição Empresarial do Servidor de Aplicativos Oracle tem muitas opções disponíveis
incluindo:
Opção BPEL de Gerenciador de Processos
A Linguagem de Execução de Processos Empresariais da Oracle (BPEL, Business Process
Execution Language) é uma ferramenta projetada para embientes utilizando a Arquitetura
Orientada a Serviços (SOA, Service Oriented Arquitecture) e é usada para criar, gerenciar
e distribuir processos empresariais usados através da fronteira de aplicativos. Ela suporta
padrões como Serviços Web, XML, XSLT, Xpath, JMS e JCA.
Monitoramento de Atividades de Negócios
O Monitoramento de Atividades de Negócios (BAM, Business Activity Monitoring)
é usado para criar painéis de controle em tempo real que exibem indicadores chave
de performance (KPI, Key Performance Indicators) e que sejam povoados com dados
retirados de alertas monitorados via Internet.
Publicador BI
Uma ferramenta de criação e publicação de relatórios usada para gerar informes de alta
fidelidade a partir de dados XML.
Registro de Serviços
O Registro de Serviços Oracle (Service Registry) permite publicar e informar a respeito de
serviços e fornece um Sistema de Registro (System of Record) para serviços SOA.
Ferramental SOA para o Middleware Oracle
Agrupa os itens do Middleware Fusion da Oracle, os de SOA incluindo BPEL, BAM,
sistema de regras de negócios, Barramento de Serviços Empresariais (para mensagens,
roteamento e transformações), Gerenciamento de Serviços Web (incluindo um gerenciador
de políticas e um painel de controle de monitoramento), Registro de Serviços Web e
adaptadores de aplicativos e tecnologias.
* (NT) “to-go” traduz-se literalmente como “para ir” e é uma expressão inglesa equivalente à nossa “para
viagem”, como em “lanche para viagem”.
16
Cap001.indd 16
( Capítulo 1:
Introdução ao Oracle
03/09/2008 08:30:31
Servidor de Comunicação e Mobilidade
Esse pacote inclui o TimesTen (literalmente “vezes dez”), e também um Contêiner de Servlets
SIP, framework para e instâncias de habilitadores, acessos via voz e móvel.
WebCenter
O WebCenter (Centro de Internet*) é o framework de portal mais recente da Oracle usado
para desenvolver portlets e componentes baseados em Ajax, especialmente em ambientes
Web 2.0. Ele inclui fóruns de discussão, servidores de presença, clientes de mensagens
instantâneas, Wiki, configuração e finalização de chamadas VOIP, Contêiner de Servlets SIP,
APIs para Serviços Web e Java, integração Click-2-dial (clique para discar) e cliente com
reconhecimento de voz.
Adaptadores para o Middleware Fusion
Incluem Aplicativos, Monitores de Processamento de Transações (Transaction Processing
Monitors), EDI e outros.
O Ferramental SOA do Middleware Fusion serve como base para a Arquitetura de Integração
de Aplicativos Oracle (AIA, Application Integration Architecture). A AIA também possui
objetos de negócios e processos empresariais conhecidos como Pacotes de Integração
de Processos (Process Integration Packs) e fornece alicerces chave usados para integrar
aplicativos atuais e futuros da Oracle.
Características de Bases de Dados Distribuídas
A base de dados Oracle é conhecida por sua capacidade de lidar com volumes de dados
e número de usuários extremamente altos. O Oracle não apenas se escalona através da
distribuição de plataformas unitárias cada vez mais poderosas, mas também pode ser usado
em configurações distribuídas. O Oracle distribuído em múltiplas plataformas pode ser
combinado para agir como uma única base de dados lógica.
Esta seção discute algumas das formas básicas pelas quais o Oracle lida com interações de
base de dados em sistemas distribuídos.
Transações e Consultas Distribuídas
Os dados dentro de uma grande empresa ficam freqüentemente distribuídos entre múltiplas
bases de dados tanto por motivos de capacidade quanto de responsabilidade de organização.
Os usuários podem querer consultar ou atualizar esses dados distribuídos como se eles
existissem dentro de uma única base de dados.
A Oracle introduziu pela primeira vez as bases de dados distribuídas em resposta às necessidades
de acessar dados em múltiplas plataformas no início da década de 80. Consultas distribuídas
podem recuperar dados de múltiplas bases. Transações distribuídas podem inserir, atualizar
ou apagar dados em bases de dados distribuídas. O mecanismo de efetivação de duas fases
da Oracle, descrito no Capítulo 13, garante que todos os servidores de bases de dados, que
façam parte de uma transação, ou efetivem ou voltem atrás e desfaçam a transação. Processos
de recuperação executando ao fundo garantem consistência nas bases de dados caso algum
sistema seja interrompido durante uma transação distribuída. Assim que o sistema que falhou
retornar, o mesmo processo vai completar a transação.
* (NT) Web traduz-se literalmente como “teia” e só tem o sentido de “rede” quando se refere à Internet.
Características de Conexão com Bases de Dados
Cap001.indd 17
(
17
03/09/2008 08:30:32
Transações distribuídas podem também ser implementadas usando os populares monitores
de transações (TPs) que interagem com o Oracle via XA, um padrão empresarial (X/Open)
de interface. O Oracle 8i introduziu coordenação de transações nativas usando o Servidor
de Transações Microsoft (MTS, Microsoft Transaction Server), de forma que se pode
implementar uma transação coordenada iniciada sob controle do MTS através de uma base
de dados Oracle.
Serviços Heterogêneos
Serviços Heterogêneos permitem que serviços e dados externos ao Oracle sejam acessados a
partir de uma base de dados Oracle usando formas de conectividade genéricas como ODBC
e OLE DB, que vêm incluídas no pacote.
Portais Opcionais Transparentes (Optional Transparent Gateways) usam agentes
especificamente criados para uma variedade de sistemas alvos. Eles permitem que usuários
executem comandos SQL do Oracle para fontes de bases de dados distribuídas que não
sejam da Oracle, fazendo com que eles sejam automaticamente traduzidos para o dialeto
SQL dos sistemas alvos, o que é transparente para o usuário. Os Serviços Heterogêneos
também funcionam de maneira similar ao prestar serviços relativos a transações utilizando a
efetivação de duas fases do Oracle para outras bases de dados e também serviços procedurais
que chamam rotinas em linguagens de terceira geração em sistemas que não sejam da Oracle.
Os usuários interagem com a base Oracle como se todos os objetos estivessem armazenados
nela, e os Serviços Heterogêneos permitem, para benefício desses usuários, interação
transparente com bases externas.
Características de Deslocamento de Dados
Mover dados de uma base Oracle para outra é freqüentemente uma necessidade quando usando
bases distribuídas, ou quando um usuário quer implementar múltiplas cópias da mesma base
em vários locais para reduzir o tráfego de rede ou aumentar a disponibilidade dos dados. Podese exportar dados e dicionários (metadados) de uma base e importá-los em outra. O Oracle 10g
introduziu um canal de dados* de alta velocidade para importação e exportação.
O Oracle também oferece muitas outras características avançadas nesta categoria, incluindo
espaços transportáveis de tabelas, Enfileiramento Avançado/Fluxos Oracle (Advanved
Queuing/Oracle Streams) e soluções de Extração, Transformação e Carga (ETL, Extraction,
Transformation and Loading). Apresentaremos todas essas em seguida.
Espaços Transportáveis de Tabelas
Os espaços transportáveis de tabelas (transportable tablespaces) apareceram pela primeira
vez no Oracle 8i. Ao invés de usar o processo de exportação/importação, que cria cópias
simplificadas de dados e das estruturas que os contém em arquivos intermediários para
serem carregados posteriormente, pode-se colocar um espaço de tabela em modo apenas
leitura, movê-lo ou copiá-lo de uma base de dados para outra, e então reativá-lo. O mesmo
dicionário de dados (metadados) descrevendo o espaço de tabelas deve existir na fonte e no
destino. Essa característica pode poupar muito tempo uma vez que simplifica a movimentação
de grandes quantidades de dados.
* (NT) data pump no original, literalmente “bomba de dados”, com “bomba” no sentido de aparelho mecânico
de bombeamento, ou “bombeador de dados”.
18
Cap001.indd 18
( Capítulo 1:
Introdução ao Oracle
03/09/2008 08:30:32
A partir do Oracle 10g, pode-se mover dados com os espaços transportáveis de tabelas entre
plataformas ou sistemas operacionais heterogêneos.
Enfileiramento Avançado e Fluxos Oracle
O Enfileiramento Avançado (AQ, Advanced Queuing), que apareceu pela primeira vez no Oracle
8i, fornece os meios para enviar mensagens assíncronas de uma base Oracle para outra. Já que
as mensagens são armazenadas numa fila de uma base e enviadas assincronamente quando uma
conexão é estabelecida, a quantidade de trabalho computacional e de tráfego de rede é muito
menor do que seria usando métodos de entrega garantida através do protocolo de efetivação de
duas fases entre a fonte e o destino. Ao armazenar as mensagens na base de dados, o AQ oferece
uma solução com grande capacidade de recuperação no caso de erros do que qualquer outra
solução de enfileiramento de mensagens que armazenam seus dados nos sistemas de arquivos.
O sistema de mensagens do Oracle ainda oferece a capacidade de desenvolver e distribuir
soluções de inscrição e publicação baseadas em conteúdo usando um sistema de regras para
determinar aplicativos relevantes para inscrição. Conforme novos conteúdos são publicados
para uma lista de inscritos, as regras dessa lista determinam quais dos inscritos devem receber
esse conteúdo. Essa abordagem implica que uma única lista pode atender eficientemente as
necessidades de diferentes comunidades de assinantes. No primeiro lançamento do Oracle 9i, o
AQ teve adicionado o suporte para XML e a integração do Diretório de Internet Oracle (OID).
No segundo lançamento do Oracle 9i, o AQ se tornou parte dos Fluxos Oracle (Oracle
Streams*). Estes têm três componentes principais: replicação baseada em logs para captura de
dados, enfileiramento para staging** de dados, e regras definidas pelo usuário para consumo de
dados. Desde o Oracle 10g, os Fluxos também apresentam suporte para captura de alteração de
dados e soluções de transferência de arquivos. Os Fluxos são gerenciados usando o Gerenciador
Empresarial (Enterprise Manager) e serão descritos com mais detalhes no Capítulo 13.
Extração, Transformação e Carga
O Criador de Centros de Dados Oracle (Warehouse Builder) é uma ferramenta usada na
criação de bases de dados, especialmente de armazenamento de dados empresariais de
análise, e fornece um repositório de metadados. Entretanto, é mais conhecido como uma
ferramenta baseada em GUI (Graphics User Interface, interface gráfica de usuário) usada para
criar mapeamentos entre fonte e destino e gerar scripts de extração, transformação e carga
(ETL, Extraction, Transformation and Loading). O OWB se utiliza de características nativas
chave de ETL na base de dados Oracle que primeiro foram disponibilizadas no Oracle 9i. O
OWB é incluído na base de dados Oracle desde o Oracle 10g versão 2. Vamos descrevê-lo
com mais detalhes no Capítulo 10.
Opcionalmente, a Oracle também oferece uma ferramenta de integração de dados, o
Integrador de Dados Oracle (ODI, Oracle Data Integrator), que não é tão centrada em
dados de bases Oracle como é o OWB (embora uma base Oracle possa ser uma fonte e/
ou um destino). O Integrador de Dados Oracle é baseado num produto e empresa que a
Oracle comprou chamados Sunopsis. Além de acrescentar capacidades de ETL, o ODI pode
gerar código como serviço web para distribuição SOA e é uma parte chave da estratégia de
integração SOA da Oracle.
* (NT) a palavra stream significa literalmente “riacho”, mas é muito usada para indicar fluxos de dados.
** data staging é a técnica de usar máquinas para armazenar dados para outras de menor capacidade. Não tem
tradução direta mas pode ser traduzido como “criar apoios para dados”, “criar andaimes” ou talvez “escorar dados”.
Características de Conexão com Bases de Dados
Cap001.indd 19
(
19
03/09/2008 08:30:32
Características de Performance de Base de Dados
O Oracle inclui muitas características especialmente projetadas para melhorar a performance
em certas situações. Dividimos a discussão nas seguintes subseções em duas categorias:
paralelismo de base de dados e centros de dados.
Paralelismo de Base de Dados
Tarefas de bases de dados implementadas em paralelo aumentam a velocidade de
enfileiramento, ajuste e manutenção da base. Ao dividir uma tarefa única em partes
menores e atribuindo cada subtarefa para um processo independente, pode-se melhorar
dramaticamente a performance de certos tipos de operações de base de dados. Exemplos de
características de consulta implementadas em paralelo incluem:
•
•
•
•
•
•
•
•
•
•
•
•
•
Escaneamento de tabelas;
Laços aninhados;
Ordenação de junções de dados;
Agrupamento usando GROUP BY;
Sub-consultas do tipo NOT IN (anti-junções);
Funções definidas pelo usuário;
Escaneamento de índices;
Uso de select distinct UNION e UNION ALL;
Junções de hash;
Uso de ORDER BY e agrupamento;
Junções de mapas de bits em consultas estrela (star query);
Junções em nível de partição;
Procedimentos armazenados (PL/SQL, Java e rotinas externas).
Além de consultas em paralelo, muitas outras características do Oracle apresentam
paralelismo. Operações em paralelo são melhor identificadas e descritas no Capítulo 7.
Centros de Dados e Inteligência de Negócios
Características paralelas melhoram a performance geral da base de dados Oracle, mas
melhorias particulares de performance para inteligência de negócios e centros de dados
também existem na base. Apresentamos muitas delas aqui, mas veja o Capítulo 10 para uma
explicação mais detalhada de produtos e características específicas para centros de dados e
inteligência de negócios.
20
Cap001.indd 20
( Capítulo 1:
Introdução ao Oracle
03/09/2008 08:30:32
Mapas de Bits Índices
O Oracle teve acrescentado um suporte para mapas de bits índices armazenados no Oracle
7.3 como uma maneira de providenciar uma forma rápida de selecionar e recuperar alguns
tipos de dados. Os mapas de bits índices tipicamente funcionam melhor para colunas que
tenham poucos valores diferentes com relação ao número geral de linhas numa tabela.
Em vez de armazenar o valor em si, um índice mapa de bits usa um bit individual para cada
valor em potencial, e ele pode estar ativo (valor igual a 1) indicando que a linha contém um
valor, ou desligado (valor igual a 0), para mostrar que a linha não contém um valor. Os
mapas de bits índices são descritos com mais detalhes no Capítulo 4.
Otimização de Consultas Estrela
Consultas típicas em centros de dados ocorrem contra uma grande tabela de fatos com chaves
estrangeiras para tabelas de dimensão muito menores. O Oracle inclui uma otimização para
esse tipo de consultas estrela na versão 7.3. Os ganhos de performance são conseguidos
através do uso de junções que são produtos cartesianos das tabelas de dimensão com uma
única junção de volta para a grande tabela de fatos. O Oracle 8 introduziu outro mecanismo
chamado junção estrela paralela de mapa de bits (parallel bitmap star join), que usa bits
índices mapas de bits nas chaves estrangeiras para as tabelas de dimensão para acelerar as
junções estrela envolvendo um grande número de tabelas de dimensão.
Visualizações Materializadas
Desde o Oracle 8i, visualizações materializadas (materialized views) são outra forma de
conseguir um aumento significativo de velocidade de consulta. Informação sumarizada
derivada de uma tabela de fatos e agrupada ao longo de valores de dimensão é mantida
como uma visualização materializada. Consultas que podem usar essa visualização são
redirecionadas para ela, de forma transparente para o usuário e para o SQL da consulta
inicial. A Oracle continuamente melhora o uso de otimização via visualizações materializadas
em cada versão da base de dados.
Funções Analíticas
Uma tendência crescente no Oracle e em outras bases de dados é a inclusão de funções
estatísticas e analíticas acessíveis via SQL. O Oracle primeiro apresentou tais capacidades
na versão 8i com as funções CUBE e ROLLUP. Hoje em dia, a funcionalidade disponível
também inclui funções de classificação, de agrupamento por janelas, de análise de resultado/
desempenho (lag and lead), de agrupamento de relatórios, de agrupamento estatístico,
regressão linear, estatística descritiva, correlação, tabulação cruzada (cross tabulation), teste
de hipótese, enquadramento em distribuições e análises Pareto.
Opção OLAP
A Opção OLAP fisicamente armazena cubos cientes de dimensão na base de dados relacional
Oracle. Esses cubos são mais freqüentemente acessados usando SQL, embora uma API Java
Características de Conexão com Bases de Dados
Cap001.indd 21
(
21
03/09/2008 08:30:33
também exista. Desde a versão 11g, o otimizador do Oracle reconhece os níveis dentro
desses cubos. Como resultado, qualquer ferramenta de inteligência de negócios que envie
SQL para uma base de dados Oracle pode se aproveitar de forma transparente da melhoria
de performance oferecida por essa opção. A atualização dos valores nesses cubos agora são
mantidos de forma similar à atualização das visualizações materializadas.
Opção de Mineração de Dados
Desde o Oracle 9i, algoritmos populares de mineração de dados têm sido incluídos na base
de dados através da Opção de Mineração de Dados (Data Mining Option) e são expostos
através do PL/SQL ou da API de mineração de dados Java. Aplicativos de mineração de dados
que usem esses algoritmos são freqüentemente feitos usando o Minerador de Dados Oracle
(Oracle DataMiner) ou outras ferramentas para isso de parceiros da Oracle como InforSense
ou SPSS. Algoritmos disponíveis nessa opção da versão 11g incluem análise de Associações
Bayesianas ingênuas (naive Bayesian), Redes Bayesianas Adaptivas (Adaptive Bayes Networks),
Agrupamento (clustering), Máquinas de Vetor de Suporte (SVM, Support Vector Machines),
Fatoração Não Negativa de Matrizes (NMF, Nonnegative Matrix Factorization), Árvores de
Decisão e Modelos Lineares Generalizados.
Ferramentas de Inteligência de Negócios
Os centros de dados Oracle são freqüentemente acessados através de ferramentas de
inteligência de negócios de outros fabricantes populares. Entretanto, as ferramentas da
própria Oracle se tornaram mais comuns para esse tipo de distribuição conforme a empresa
foi aumentando a oferta desses produtos através de compras de empresas. A oferta inicial de
produtos desse tipo da Oracle incluía o Descobridor e Relatórios Oracle (Oracle Discoverer
/ Oracle Reports), e essas ferramentas ainda estão disponíveis no Servidor de Aplicativos ou
isoladamente no Ferramental Edição Padrão de Inteligência de Negócios Oracle (Business
Intelligence Standard Edition Suite).
O produto principal da Oracle nessa área é o Ferramental Edição Empresarial de Inteligência
de Negócios Oracle (Oracle Business Intelligence Enterprise Edition Suite, OBI EE), que
consistia originalmente do antigo Análises Siebel (Siebel Analytics), incluindo as Respostas
Oracle (Oracle Answers), Painéis de Controle (Dashboards), Entregas (Delivers), Publicador
de BI (BI Publisher) e componentes para o Office. A Oracle expandiu essa oferta de produtos
no OBI EE Plus adicionando componentes Hyperion que incluem Serviços Fundamentais
(Foundation Services), Relatórios Interativos (Interactive Reporting), relatórios de produção
SQR, Relatórios Financeiros, SmartView (literalmente visualização inteligente) para o Office
e Web Analysis.
Como uma opção para providenciar um cubo OLAP e funcionalidade independente das
capacidades para centros de dados da base temos a Essbase. Um subconjunto do OBI EE faz
parte do Inteligência de Negócios Edição Padrão Um (Business Intelligence Standard Edition
One), junto com a base de dados Oracle Edição Padrão Um e o Criador de Centros de Dados
Oracle.
A Oracle também oferece aplicativos de inteligência de negócios que incluem modelos de
dados e relatórios e análises com metadados de negócios pré-criados. Aplicativos importantes
que podem ser citados são os Aplicativos de Inteligência de Negócios Oracle (os antigos
aplicativos de Análise de Negócios Siebel, Business Analytics applications) e os aplicativos de
Gerenciamento de Performance Financeira Hyperion (Financial Performance Management).
22
Cap001.indd 22
( Capítulo 1:
Introdução ao Oracle
03/09/2008 08:30:33
Características de Gerenciamento de Base de Dados
O Oracle inclui muitas características que fazem a base de dados mais fácil de gerenciar. A
facilidade de gerenciamento no Oracle melhorou de forma fundamental com o lançamento
da versão 10g, e tem continuado a evoluir no sentido de ser mais auto-ajustável e autogerenciável com o lançamento da versão 11g. Se você ainda está gerenciando bases de dados
Oracle usando técnicas de versões anteriores (como scripts) e está com intenção de atualizar
a base para uma das versões mais recentes, agora é a hora de reavaliar seus conceitos sobre
gerenciamento.
Começando com a versão 10g, as estatísticas são automaticamente reunidas num Repositório
Automático de Carga de Trabalho (AWR, Automatic Workload Repository) dentro da base
de dados. O Monitor Automático de Diagnóstico de Base de Dados da Oracle (ADDM,
Automatic Database Diagnostic Monitor) faz avaliações das estatísticas em intervalos regulares
e envia alertas de potenciais condições problemáticas para o Gerenciador Empresarial
Oracle (Enterprise Manager), onde a condição pode ser analisada em mais detalhes e ações
corretivas podem ser adotadas. Algumas das características novas totalmente automáticas,
como o Gerenciamento Automático de Memória (Automatic Memory Management) também
se aproveitam de dados do AWR.
O Oracle apresenta uma visualização atualizada quase em tempo real das condições atuais
da base de dados conforme vai fazendo recomendações automáticas. Tais recomendações
freqüentemente serão mais precisas do que seria possível com procedimentos manuais que
eram usados no passado. Nas subseções seguintes falaremos sobre o impacto desse fato no
Gerenciador Empresarial Oracle e em pacotes adicionais, no Gerenciamento de Ciclo de
Vida de Informações, nas cópias de segurança e sua restauração e na disponibilidade da base
de dados.
Gerenciador Empresarial Oracle
O Gerenciador Empresarial Oracle (Enterprise Manager) é um dos mais amplamente
distribuídos produtos da empresa. O EM serve como um ferramental de gerenciamento de
base de dados e uma interface baseada em HMTL usada para gerenciar usuários, instâncias
e características de bases de dados. O EM pode também gerenciar o Servidor de Aplicativos
Oracle, os Aplicativos Oracle, a versão do Oracle para Linux, e produtos de software de
outros fabricantes.
O console de base de dados na versão atual do Oracle fornece informações sobre o estado
da base de dados, sua disponibilidade, esquema, configuração de movimentações de dados
e manutenção de software. Novo na versão 11g é o Balcão de Atendimento (Support
Workbench) e a infra-estrutura de diagnósticos que servem para relatar problemas para o
Suporte Oracle. Vários administradores de bases de dados podem acessar o repositório do
EM todos ao mesmo tempo.
O EM pode ser distribuído de muitas formas: como um console central para monitorar
múltiplos agentes de suporte de base de dados, como um “console de produtos” (intalado
por padrão em cada base de dados individual), ou através de acesso remoto, também
conhecido como “modo estúdio” (studio mode). Quando distribuído como um console
central, o Gerenciador Empresarial é chamado de “Controle de Grade” (Grid Control), e
pode ser usado para instalação rápida de programas da Oracle, para provisionamento e
instalação automática de atualizações de correção de softwares ativos (rolling patch updates,
literalmente “atualizações rolantes de correção”).
Características de Gerenciamento de Base de Dados
Cap001.indd 23
(
23
03/09/2008 08:30:33
Um subconjunto da funcionalidade do Gerenciador Empresarial é acessível através do
Internet Explorer para Computadores de Bolso (Pocket PC) da Microsoft em PDAs sem
fio usando o EM2Go (algo como “Gerenciador Empresarial para viagem”). O EM2Go pode
monitorar o estado da base de dados Oracle e do Servidor de Aplicativos.
Gerenciamento de Tempo de Vida de Informação e
Assistente ILM
Introduzido em 2006, o Gerenciamento de Tempo de Vida de Informação (ILM, Information
Lifecycle Management) fornece os meios para definir classes de dados e armazená-las em
camadas e mover os dados para essas camadas que providenciam a combinação correta
de performance e custo. A interface do Assistente ILM para configurar e gerenciar o ILM
pode ser baixada da Rede de Tecnologia Oracle (Oracle Technology Network) em http://otn.
oracle.com. Para maiores detalhes, veja o Capítulo 5.
Cópias de Segurança e sua Recuperação
Como todo administrador de base de dados sabe, tirar cópias de segurança de bases de
dados é uma tarefa comum e necessária. Uma cópia mal feita torna a recuperação difícil, se
não impossível. Infelizmente, freqüentemente se percebe a importância dessa tarefa diária
apenas depois de perder dados críticos para negócios ao experimentar falhas de sistemas
relacionados.
A seção seguinte descreve algumas das características usadas para realizar operações de cópia
de segurança em bases de dados. Discutiremos estratégias e opções para cópias de segurança
e sua recuperação com muito mais detalhes no Capítulo 11.
Gerenciador de Recuperação
Opções típicas de cópias de segurança incluem copiar a base inteira (a operação mais
comum), cópias de espaços de tabelas, de arquivos de dados, de arquivos de controle e de
arquivos de log. O Oracle 8 introduziu o Gerenciador de Recuperação (RMAN, Recovery
MANager) para cópias de segurança e recuperação de bases de dados baseadas em servidores,
deixando um Catálogo de Recuperação (Recovery Catalog) armazenado na base. O RMAN
pode automaticamente localizar, copiar, recuperar dados e restaurar arquivos de dados, de
controle e de logs de repetição (redo logs). Desde o Oracle 9i, o RMAN pode reiniciar cópias
de segurança e implementar políticas de janelas de recuperação quando as cópias expiram.
O Gerenciador Empresarial providencia uma interface gráfica para o RMAN. Na versão 10g
foi melhorado o agendador de tarefas do EM que pode ser usado em conjunto com o RMAN
para gerenciar cópias de segurança automáticas para o disco.
Cópias de segurança incrementais e sua recuperação
O RMAN pode fazer cópias de segurança incrementais nas bases de dados da Edição
Empresarial. Esse tipo de cópia salva somente os blocos modificados desde a última vez que a
operação foi efetuada em bases de dados, espaços de tabela ou arquivos. Dessa forma, as cópias
serão menores e mais rápidas do que cópias completas. O RMAN pode também executar
recuperações de pontos no tempo, o que permite que dados sejam recuperados até exatamente
antes de um evento indesejado (como por exemplo, ter apagado uma tabela por engano).
24
Cap001.indd 24
( Capítulo 1:
Introdução ao Oracle
03/09/2008 08:30:33
Cópia Segura Oracle
Muitos vendedores de programas de gerenciamento de mídia se apóiam no RMAN da
Oracle, mas a partir da versão 10g, a base de dados também inclui uma solução extra de
gerenciamento de armazenamento em nível de entrada em fita totalmente independente
conhecida como Cópia Segura Oracle XE (Oracle Secure Backup XE). Opcionalmente, a
Oracle oferece uma solução empresarial simples para cópias de segurança chamada Cópia
Segura Oracle (Secure Backup).
Disponibilidade de Base de Dados
A disponibilidade de bases de dados depende da confiança e do gerenciamento da base, do
sistema operacional e de componentes de hardware específicos do sistema físico. O Oracle tem
melhorado a disponibilidade reduzindo o tempo de cópia de segurança e sua restauração ao:
• Providenciar cópias e recuperação online em paralelo;
• Melhorando o gerenciamento de dados online através de faixas de particionamento;
• Se aproveitando de capacidades de hardware para melhorias de monitoramento e de
recuperação de falhas.
As características relevantes são descritas nas subseções seguintes.
Opção de Particionamento
A Oracle introduziu o particionamento como opção no Oracle 8 para providenciar um alto
grau de capacidade de gerenciamento e disponibilidade. Pode-se deixar partições específicas
desativadas para manutenção enquanto outras permanecem ativas para acesso pelos usuários.
Em implementações de centros de dados, particionamento é algumas vezes usado para
implementar janelas móveis baseadas em faixas de datas. Outros tipos de particionamento
incluem particionamento de hash (usado para dividir dados em partições usando uma função
de hash e providenciando uma divisão balanceada de dados) e particionamento de listas
(permitindo particionamento de dados baseado em valores discretos como determinante de
geografia). Começando com o Oracle 11g, intervalos de particionamento podem também
ser usados para automaticamente criar novas faixas fixas conforme elas forem se tornando
necessárias durante inserções de dados.
Muitos desses tipos de particionamento podem ser usados em combinação em partições
“compostas”. Exemplos na versão 11g incluem faixa-faixa, faixa-hash, faixa-lista, lista-faixa,
lista-hash e lista-lista.
Guarda de Dados
A Oracle primeiro introduziu uma característica de cópia de salva-guarda no Oracle 7.3. A
base de dados de salva-guarda (standby database, literalmente “base de dados em espera”)
é uma cópia da base de produção que pode ser usada se a base de dados primária for
perdida - por exemplo, caso o servidor primário falhe ou durante manutenção de rotina.
Bases primárias e de salva-guarda podem estar separadas geograficamente. A base de dados
de salva-guarda é criada a partir de uma cópia da de produção e é atualizada através do
aplicativo de arquivamento de logs de repetição também gerados pela cópia de produção. A
Guarda de Dados (Data Guard) primeiro introduzida no Oracle 9i automatiza completamente
esse processo. Antes dela, era preciso copiar e aplicar os logs manualmente. Agentes são
distribuídos tanto na base de produção quanto na de salva-guarda, e um Coordenador de
Características de Gerenciamento de Base de Dados
Cap001.indd 25
(
25
03/09/2008 08:30:34
Guarda de Dados (Data Guard Broker) coordena os comandos. Um comando único da
Guarda de Dados invoca os oito passos necessários para recuperação de falhas.
Além de providenciar suporte físico para a base de salva-guarda, a Guarda de Dados pode criar
uma base desse tipo, mas lógica. Nesse cenário, os logs de arquivo do Oracle são transformados
em transações SQL e aplicados numa base de dados de salva-guarda aberta.
A versão 10g introduziu muitas novas características, incluindo suporte para aplicação de
dados de repetição em tempo real, integração com a característica de base de dados conhecida
como Flashback, e compactação de arquivos de log. Começando na versão 10g, atualizações
em softwares ativos (rolling updates, literalmente “atualizações rolantes”) são suportadas.
Desde a versão 11g, a Opção de Guarda de Dados de Arquivo permite que a base de dados de
salva-guarda seja utilizada para consultas, ordenação e relatórios mesmo quando alterações
na base de dados de produção estão em curso.
Recuperação de Falhas
A característica de Recuperação de Falhas (Fail Safe) dá um alto grau de confiabilidade para
uma base de dados Oracle. A recuperação é implementada através de um segundo sistema
ou nó que permite acesso aos dados contidos num disco compartilhado quando o primeiro
sistema ou nó falha. A Recuperação de Falhas Oracle para Windows, em combinação com o
Sistema de Agrupamentos Microsoft (Microsoft Cluster Services), constituem uma solução para
a ocorrência de problemas no evento de uma falha de sistema.
A Recuperação de Falhas é principalmente uma ferramenta para recuperação de desastres, então
o sistema é desativado como parte de uma operação de recuperação. A solução recomendada para
disponibilidade de servidor, desde o Oracle 9i, é o Agrupamento Real de Aplicativos.
Agrupamento Real Oracle de Aplicativos
O Agrupamento Real de Aplicativos (RAC, Real Application Clusters) substituiu a Opção
de Servidor Paralelo Oracle desde a versão 9i. O RAC pode disponibilizar suporte para
recuperação de falhas bem como aumentar a escalabilidade em agrupamentos de máquinas
(clusters) Unix, Linux e Windows. A chave para a melhoria de escalabilidade foi a introdução
do Cache Fusion (literalmente “fusão de área de armazenamento”) que diminui muito a
quantidade de operações de escrita em disco que era usada anteriormente para controlar
travamentos de dados. A versão 10g introduziu um novo nível de portabilidade de RAC e
de suporte ao providenciar um “aparelhamento para agrupamentos” (clusterware) integrado
para as plataformas suportadas pelo RAC.
Com o Agrupamento Real de Aplicativos, pode-se distribuir múltiplas instâncias do Oracle
em diversos nós de uma solução em agrupamentos de máquinas ou numa configuração de
grade. O RAC coordena o tráfego entre os sistemas ou nós, permitindo que as instâncias
funcionem como se fossem uma única base de dados. Como resultados, a base se provou
capaz de aumentar de escala por até dezenas de nós. Uma vez que os agrupamentos de
computadores funcionam como um meio onde múltiplas instâncias podem acessar os mesmos
dados, a falha de uma instância em particular não causa demasiada demora enquanto o
sistema se recupera. Pode-se simplesmente redirecionar os usuários para outra instância que
ainda esteja operando. Aplicativos podem se aproveitar da Interface de Chamadas Oracle
(OCI, Oracle Call Interface) para se recuperar de falhas e redirecionar usuários para outras
instâncias de forma transparente.
26
Cap001.indd 26
( Capítulo 1:
Introdução ao Oracle
03/09/2008 08:30:34
Guarda de Dados e o RAC
A Guarda de Dados e o RAC em combinação substituíram a Recuperação Paralela de Dados
desde o Oracle 9i. A Guarda permite correção automática com tempo de recuperação
determinado em conjunto com o Agrupamento Real Oracle de Aplicativos. Adicionalmente,
permite redirecionar clientes para fora das instâncias com falha para outras que estejam
disponíveis com reconexão rápida e captura automática de dados de diagnóstico.
Gerenciamento Automático de Armazenamento
A versão 10g introduziu o Gerenciamento Automático de Armazenamento (ASM, Automated
Storage Management), que permite taxas ótimas de divisão e repetição de dados em função
da performance e disponibilidade. Já que o ASM é gerenciado através do Gerenciador
Empresarial, o administrador de base de dados agora pode controlar essa tarefa crítica de
gerenciamento. A necessidade de coordenar essa atividade com um administrador de sistema
foi, portanto, muito reduzida.
Opção de Teste Real de Aplicativos
A versão 11g introduziu a capacidade de executar novamente cargas de trabalho de
produção e testar alterações de sistemas, usando a Opção de Teste Real de Aplicativos (Real
Application Testing Option). Essa opção inclui um Reprodutor de Base de Dados (Database
Replay) e o Analisador de Performance de SQL (SQL Performance Analyzer). O Repetidor
captura informações de carga de trabalho da base de dados, incluindo acessos simultâneos,
dependências e tempos de resposta. Ele transforma os arquivos de dados de informações
capturadas em arquivos de repetição, disponibiliza um Cliente de Repetição para processar
esses arquivos, e fornece os meios para relatar estatísticas de performance e qualquer erro
encontrado. O Analisador de Performance de SQL captura uma carga de trabalho de SQL
para ser analisada, mede a performance antes e depois de alterações na base de dados e
identifica alterações de performance com relação a comandos SQL.
Características de Segurança de Base de Dados
O Oracle possui segurança básica para gerenciar acesso de usuários através de competências
(roles) e privilégios. Eles podem ser gerenciados usando o Gerenciador Empresarial de forma
local ou global se aproveitando da segurança empresarial do Oracle, uma característica da
Opção de Segurança Avançada. Descreveremos as características de segurança Oracle no
Capítulo 6.
As características de segurança de base de dados permitem que se implementem Bases
de Dados Privadas Virtuais (VPD, Virtual Private Databases) usando o Oracle para criar
e associar políticas para tabelas, visualizações ou sinônimos. Essas políticas são mantidas
colocando-se uma cláusula predicativa WHERE em comandos SELECT, INSERT, UPDATE,
DELETE e INDEX.
Muitas empresas enfrentam a necessidade de empregar esquemas mais restritivos para
melhorar a proteção de dados, ainda mais que o uso das bases de dados atualmente pode
se estender além dos limites da empresa. A Oracle adicionou muitas opções nas bases para
permitir distribuição segura em tais ambientes desafiadores. Essas opções incluem a Opção
de Segurança Avançada, a de Segurança por Rótulo (Label Security), o Átrio de Base de
Dados (Database Vault) e o Átrio de Auditoria (Audit Vault).
Características de Segurança de Base de Dados
Cap001.indd 27
(
27
03/09/2008 08:30:34
Opção de Segurança Avançada
A Opção de Segurança Avançada (Advanced Security Option) já foi chamada de Opção de
Comunicação Avançada de Rede (Advanced Networking Option, ANO). As características chave
para permitir uma Rede Oracle mais segura incluem o uso de serviços de criptografia como
Segurança de Dados RC4 da RSA, o Padrão norte americano de Criptografia de Dados (DES,
Data Encryption Standard), o DES Triplo (Triple DES) e o Padrão de Criptografia Avançado
(AES, Advanced Encryption Standard). A autenticação pode ser através do Kerberos, RADIUS
ou do Ambiente de Computação Distribuída (DCE, Distributed Computing Environment).
Checagens de integridade de dados em redes usam o MD5 ou o SHA-1. A base de dados Oracle
11g adicionou melhorias na criptografia transparente de dados e ampliou a autenticação via
Kerberos se aproveitando dos tipos de criptografia da Oracle.
Opção de Segurança de Rótulo
A Segurança de Rótulo Oracle controla acesso a dados ao comparar rótulos associados com
linhas de dados com autorizações que também usam rótulos atribuídos aos usuários através
de seus privilégios. Múltiplos níveis de autorização são possíveis dentro de uma mesma base
de dados. Autorizações de segurança de rótulo são gerenciadas através de um Gerenciador
de Políticas (Policy Manager). Políticas são mantidas diretamente na base de dados em vez de
através de visualizações, dessa forma simplificando muito o gerenciamento de acesso a dados
e permitindo uma implementação mais segura.
Opção de Átrio de Base de Dados
A Opção de Átrio de Base de Dados Oracle (Database Vault Option) permite controle refinado
de acesso a dados para todos que possam interagir com a base, incluindo os administradores. O
administrador de segurança pode criar fatores para definir capacidade de acesso à base e auditar
dimensões específicas de segurança. Num nível ainda mais detalhista, domínios* (realms) de dados
podem ser definidos para limitar o acesso para esquemas e competências (roles) específicos.
Servidor de Átrio de Auditoria
O Servidor de Átrio de Auditoria Oracle (Audit Vault Server) monitora as tabelas de auditoria
da base de dados, os logs de repetição de dados e os arquivos de auditoria do sistema
operacional à procura de atividades suspeitas. Ele pode gerar relatórios ou enviar alertas
quando essas atividades incomuns ocorrerem.
Ferramentas de Desenvolvimento Oracle
Muitas ferramentas da Oracle estão disponíveis para desenvolvedores para ajudar a apresentar
dados e desenvolver aplicativos Oracle mais sofisticados. Embora este livro se concentre na
base de dados, esta seção descreve brevemente as principais ferramentas da Oracle para
desenvolvimento de aplicativos: O JDeveloper, o Desenvolvedor SQL (SQL Developer) e
Ferramental para Desenvolvedores Oracle (Developers Suite). Esta última, às vezes chamada
de Ferramental de Desenvolvedores de Internet (Internet Developer Suite), é composta do
Desenvolvedor de Formulário Oracle (Forms Developer), do Desenvolvedor de Relatórios
(Reports Developer), do Designer Oracle, da Edição Administrativa do Descobridor Oracle
(Discoverer Administrative Edition) e do Portal Oracle.
* (NT) Sem relação com o termo “domínio de rede”.
28
Cap001.indd 28
( Capítulo 1:
Introdução ao Oracle
03/09/2008 08:30:35
JDeveloper Oracle
O JDeveloper foi primeiro introduzido pela Oracle em 1998 para permitir o desenvolvimento
de aplicativos Java básicos sem a necessidade de escrever o código. Ele agora está disponível
gratuitamente e pode ser baixado da Rede de Tecnologia da Oracle (Oracle Technology
Network). Ele inclui um assistente de Formulário de Dados (Data Formulários wizard), um
assistente rápido para Beans (Beans Express wizard) para criar JavaBeans e classes BeanInfo
e um assistente de Distribuição (Deployment wizard). Inclui também características de
desenvolvimento de bases de dados como os diversos drivers Oracle, um Editor de Conexões
(Connection Editor) para ocultar a complexidade da API JDBC, componentes de dados para
vincular a controles visuais e um pré-compilador SQLJ para embutir SQL no código Java
de forma a possibilitar seu uso com as bases Oracle. Pode-se também distribuir aplicativos
desenvolvidos usando o JDeveloper usando o Servidor de Aplicativos Oracle. Embora o
JDeveloper use assistentes para permitir que programadores criem objetos Java sem escrever
o código, o resultado final é gerado através de código desse tipo.
Desenvolvedor de SQL Oracle
O Desenvolvedor de SQL Oracle (SQL Developer) foi primeiro introduzido em 2006 e
pode ser usado para conectar qualquer base de dados Oracle até a base 9i versão 2. Ele
pode criar conexões para as bases, navegar pelos objetos nelas, criar e modificar objetos,
consultar e atualizar dados, exportar dados e comandos de definição de dados (DDL, Data
Definition Language), importar dados, processar comandos e criar e executar relatórios. As
ferramentas do produto suportam edição, depuração e execução de scripts PL/SQL. Além
disso, o Desenvolvedor SQL pode ser apontado para bases que não sejam da Oracle para
visualizar seus objetos particulares e dados e tem a capacidade de iniciar uma migração para
uma base de dados Oracle.
O Desenvolvedor SQL está disponível gratuitamente e pode ser baixado da Rede de Tecnologia
Oracle. Existem versões para o Windows, o Linux e para o Mac OS X da Apple. A Oracle
também mantém um fórum sobre o produto no site da Rede de Tecnologia.
Desenvolvedor de Formulários Oracle
O Desenvolvedor de Formulários Oracle (Form Developer) é uma ferramenta para criar
aplicativos baseados em formulários e gráficos para distribuição no padrão tradicional cliente/
servidor ou como programas em arquiteturas de três camadas baseados em navegadores,
tudo através do Servidor de Aplicativos. Ele é uma linguagem de desenvolvimento de
quarta geração (4GL, fourth Generation Language). Com uma 4GL, define-se aplicativos ao
atribuir valores para propriedades, em vez de escrever código procedural. O produto suporta
uma ampla variedade de clientes, incluindo programas comuns do padrão cliente/servidor
e baseados em Java. Ele também inclui uma JVM embutida para executar previamente
aplicativos destinados à Internet.
Desenvolvedor de Relatórios Oracle
O Desenvolvedor de Relatórios Oracle (Report Developer) fornece um ambiente para
desenvolvimento e distribuição rápidos de relatórios baseados na Internet usando o Relatórios
Ferramentas de Desenvolvimento Oracle
Cap001.indd 29
(
29
03/09/2008 08:30:35
para o Servidor de Aplicativos Oracle (Reports for Oracle Application Server). Os dados
podem ser formatados em tabelas, matrizes, relatórios de grupos, gráficos e em combinações
destes. Apresentação de alta qualidade é possível usando a extensão HTML das Planilhas de
Estilo em Cascata (CSS, Cascading Style Sheets).
Designer Oracle
O Oracle Designer fornece uma interface gráfica para Desenvolvimento Rápido de Aplicativos
(RAD, Rapid Application Development) para todo o processo de desenvolvimento de bases
de dados - desde criar o modelo de negócios até projetar, gerar e distribuir o esquema da base
de dados. Projetos e alterações são mantidos num repositório multiusuário. Essa ferramenta
pode fazer engenharia reversa em tabelas e esquemas de bases de dados existentes para
reutilização e re-projeto com bases da Oracle e de outras empresas.
O Designer também inclui geradores para criar aplicativos para o Desenvolvedor Oracle,
clientes HTML que usam o Servidor de Aplicativos, e em C++. O Designer pode gerar
aplicativos ou fazer engenharia reversa em programas existentes ou outros que tenham sido
alterados por desenvolvedores. Essa capacidade permite um processo chamado engenharia
em ciclos (round-trip engineering), no qual um desenvolvedor gera um aplicativo, modifica-o,
e então faz a engenharia reversa dessas alterações e as armazena no repositório do Designer.
Edição de Administração do Descobridor Oracle
A Edição de Administração do Descobridor Oracle (Discoverer Administration Edition)
permite que administradores configurem e mantenham a Camada de Usuário Final do
Descobridor (EUL, Discoverer End User Layer) para as gerações anteriores de ferramentas
de inteligência de negócios da Oracle. Essa camada serve para proteger da complexidade do
SQL as análises de negócios que usam o Descobridor como uma ferramenta de análise de
consultas instantâneas. Assistentes guiam o administrador através do processo de criar um
EUL. Além disso, os administradores podem estabelecer limites para os recursos disponíveis
para analistas, o que é monitorado pelo controlador de consultas Descobridor (Discoverer
query governor).
Portal Oracle
O Portal Oracle, introduzido como WebDB em 1999, é uma ferramenta baseada em HTML
para desenvolver aplicativos que se aproveitam da Internet e para páginas de Internet baseadas
em conteúdo. Sistemas de aplicativos Portal são desenvolvidos e distribuídos num ambiente
simples de navegador. O Portal inclui assistentes para desenvolver componentes de aplicativos
incorporando “servlets” e acesso a outros sites HTTP. O Portal pode ser programado para ser
personalizável pelos usuários e é distribuído como camada intermediária do Servidor de
Aplicativos Oracle.
O Portal Oracle teve um grande avanço com relação ao WebDB: a capacidade de criar e usar
portlets, que permitem que uma página de Internet em particular seja dividida em diferentes
áreas que podem mostrar informações e interagir com o usuário independentemente. Por
exemplo, as Respostas Oracle, o Descobridor, e os Relatórios podem ser acessados como
portlets.
30
Cap001.indd 30
( Capítulo 1:
Introdução ao Oracle
03/09/2008 08:30:35
O produto de ferramental de portais de próxima geração da Oracle, introduzido em 2006
e inicialmente disponibilizado como uma opção do Servidor de Aplicativos, é o WebCenter
(algo como “Centro de Internet”).
Bases de Dados Embutidas
Embora a família de bases de dados Oracle possa ser distribuída para aplicativos embutidos,
seu tamanho e funcionalidade podem ser mais do que é necessário. Hoje em dia, a Oracle
oferece outras bases de dados embutidas incluindo a TimesTen (literalmente “vezes dez”),
a BD Berkeley e a Base de Dados Leve Oracle (Database Lite). Esses sistemas de base de
dados têm código fonte exclusivo feito para diminuir seu tamanho e servir a diferentes
propósitos. Por esse motivo, vamos descrevê-los brevemente nas seguintes subseções, mas
não exploraremos suas capacidades em detalhes em nenhum lugar deste livro.
TimesTen Oracle
O TimesTen (literalmente “vezes dez”) da Oracle é uma base de dados relacional que é
armazenada na memória física e é tipicamente usada quando cargas de trabalho muito
altas de processamento de transações de alta performance são necessárias. Acesso para a
base de dados TimesTen é possível via SQL, JDBC, JMS e ODBC. Essas bases podem ser
distribuídas como exclusivas ou compartilhadas e podem ser criadas como permanentes ou
temporárias.
A base é atualizada recolhendo dados usando as bibliotecas TimesTen distribuídas em
aplicativos ou através do uso de uma opção de Conexão de Cache a uma base de dados
Oracle. Porque os dados são lidos e atualizados na memória, o tempo de resposta médio
de atualização ou leitura é tipicamente medido em milionésimos de segundo. A opção de
Conexão de Cache suporta cache tanto de leitura quanto de escrita para dados das bases
Oracle. As atualizações podem ser bidirecionais entre o TimesTen e o Oracle.
Como é comum para bases de dados embutidas, o TimesTen exige quase nenhuma
administração à medida que executa. Replicação é possível entre uma base TimesTen e outra
através de uma opção e ela é feita, por padrão, de forma assíncrona.
BD Berkeley da Oracle
O Berkeley DB da Oracle é uma base de dados embutida extremamente pequena que permite
travamento de dados em nível de registro. Ela vem em versões Java e XML. É projetada para
ser distribuída com e executar no mesmo processo que um aplicativo. Quando essa base é
distribuída dessa forma, nenhuma administração de base de dados em separado é necessária.
O tamanho dessa base quando vazia pode ser tão pequeno quanto 400KB.
A edição Java da base suporta a API de Transações Java (JTA, Java Transaction API), a
Arquitetura de Conexão J2EE (JCA, J2EE Connection Architecture), e as Extensões de
Gerenciamento Java (JMX, Java Management eXtensions). A base de dados é um único
arquivo JAR que tem 820KB e executa na mesma Máquina Virtual Java que o aplicativo.
Uma Camada de Persistência Direta (DPL, Direct Persistence Layer) é suportada para acessar
objetos Java.
Bases de Dados Embutidas
Cap001.indd 31
(
31
03/09/2008 08:30:35
A Edição XML da BD Berkeley é usada com mais freqüência em aplicativos baseados em rede
onde o conteúdo é gerenciado. XQuery e Xpath são suportados.
Ambas as edições podem ser configuradas para alta disponibilidade usando replicação.
Recuperação automática é também suportada. Decisões de distribuição como essas são feitas
pelo desenvolvedor do aplicativo durante o tempo de projeto do programa.
Oracle Lite
O Oracle Lite (Oracle Leve) é um conjunto de produtos que permite o uso em dispositivos
portáteis de aplicativos centrados em bases de dados. Componentes chave do Oracle Lite
incluem a Base de Dados Oracle Lite, o Kit de Desenvolvimento Portátil (Mobile Development
Kit) e o Servidor Portátil (uma extensão do Servidor de Aplicativos).
A base de dados Oracle Lite tem de 50KB a 1MB dependendo da plataforma. Aplicativos
escritos usando SQL Portátil (Mobile SQL), C++ e Java podem ser usadas com essa base.
ODBC também é suportado. O suporte a Java inclui procedimentos armazenados Java e JDBC.
A base Lite é também projetada para ser auto-ajustável e auto-administrável e é suportada em
dispositivos portáteis que executem Windows CE, Symbian, Windows e Linux.
Num uso típico do Oracle Lite, o usuário vai conectar seu dispositivo portátil executando
a base Lite num servidor de base de dados Oracle muito maior. Os dados são então
automaticamente sincronizados entre os dois sistemas. O usuário então encerrará a conexão
e trabalhará desconectado. Depois de ter efetuado suas tarefas, ele vai conectar e sincronizar
novamente os dados com o servidor da base maior.
O Oracle Lite suporta uma variedade de capacidades de sincronização, incluindo as
seguintes:
• Sincronização bidirecional entre o dispositivo portátil e as bases de dados maiores;
• Modelos baseados em Publicação/Inscrição;
Suporte para protocolos como TCP/IP, HTTP, CDPD, 802.1 e HotSync.
Pode-se definir replicação baseada em prioridades para subconjuntos de dados. Porque dados
distribuídos em vários locais podem levar a conflitos - como por exemplo, quando um local
tem a versão “correta” dos dados – a resolução automática de conflitos foi disponibilizada.
Pode-se também personalizar isso.
O Servidor Portátil serve como plataforma única para publicar, distribuir, sincronizar e
gerenciar os aplicativos de dispositivos portáteis. O centro de controle baseado na Internet
pode ser usado para controlar o acesso para aplicativos de dispositivos portáteis. O antigo
produto “Web-to-Go” (algo como “rede para viagem”) da Oracle faz também parte do Servidor
Portátil e serve como uma forma centralizada baseada em assistentes de desenvolvimento e
distribuição de aplicativos.
32
Cap001.indd 32
( Capítulo 1:
Introdução ao Oracle
03/09/2008 08:30:36
Download

Baixar Capítulo