Você está na página 1de 86

1

2 - Introduo a Bancos de Dados


Conceitos iniciais Um Banco de Dados pode ser considerado: 0* A soma de todos os dados que uma organizao possui. 1* Uma coleo de dados, organizada logicamente e gerenciada sob um conjunto unificado de princpios, procedimentos e funcionalidades, que ajuda a garantir a aplicao consistente e a interpretao dos dados em toda a organizao. Um produto de banco de dados um programa ou conjunto de programas que gerencia o armazenamento e a recuperao de um conjunto de dados, organiza-o logicamente e fornece aos usurios certas funcionalidades garantindo que os dados sero logicamente organizados e aplicados de maneira consistente. Um Sistema de Gerenciamento de Bancos de Dados (SGBD) ou Data Base Management System, ou DBMS um produto de banco de dados com capacidades superiores quelas de simples armazenamento e recuperao de dados. Normalmente estes produtos executam operaes de cpias de segurana e recuperao, gravao de dirios de operaes, controle de concorrncia e bloqueios e mecanismos de segurana. So objetivos usuais de bancos de dados: 2* Facilitar o fornecimento de informaes aos usurios de um sistema. 3* Organizar dados que um sistema utiliza. 4* Controlar o armazenamento e a recuperao de dados. 5* Melhorar o rendimento de todo sistema e de sua mantenibilidade. Um perfil de banco de dados a definio de um conjunto de funes de suporte e descreve os diversos meios pelos quais diversos bancos de dados fornecem esse suporte. Os perfis assim definidos podem ser: 6* Perfil de Programao 7* Perfil de Arquitetura 8* Perfil de Armazenamento 9* Perfil de Administrao 10* Perfil de Distribuio

Componentes de um Banco de Dados Para a existncia de um Bancos de Dados essencial a existncia de trs entidades : 11* Os arquivos fsicos; 12* Um programa ou sistema gerenciador de Banco de Dados (DBMS ou SGBD); 13* Uma autoridade (pessoa ou grupo de pessoas) Administrador de Banco de Dados (DBA ou ABD). O DBA deve implantar a poltica de administrao de dados da direo da organizao.

Mapeamentos feitos por Bancos de Dados Um banco de dados realiza duas transformaes lgicas ou mapeamentos : * Mapeamento dos programas de aplicaes no Banco de Dados lgico, que a viso que o usurio tem dos dados. Esta viso recebe o nome de Banco de Dados Funcional. Os Banco de Dados Funcionais so estabelecidos pelo DBA para cada usurio. * Mapeamento do Banco de Dados lgico nos arquivos fsicos. Banco de Dados lgico a viso do DBA.

Os usurios dispem de linguagens para comunicao com o Banco de dados (BD). Estas linguagens so as suas linguagens de programao ou linguagens hospedeiras. A linguagem do usurio deve incluir uma sub linguagem de dados, a chamada Data Sub Language ou DSL, voltada para os objetos e as operaes dos bancos de dados. Esta DSL compreende a Data Definition Language, ou DDL, para definio dos objetos do banco de dados e a Data Manipulation Language, ou DML, que suporta a manipulao ou processamento desses objetos. Freqentemente a DSL compreende tambm uma Data Control Language, ou DCL, para controlar a segurana e o acesso aos dados.

3 - Perfil de Programao
O processamento externo de um BD ocorre quando ou um usurio final, ou um programa ou um sistema de gerenciamento de interfaces fazem requisies de incluso, excluso, modificao ou recuperao ao BD. Este o tipo de processamento mais freqente e a origem do processo est fora do controle do BD. O processamento interno disparado por gatilhos, procedimentos armazenados e sistemas orientados a objeto e o cdigo ou inteligncia do sistema est programado no SGBD. Para a utilizao de um BD h necessidade da montagem de um ambiente adequado, da forma: 14* Criao de uma rea de memria compartilhada na qual esto definidas as variveis do programa usurio e do BD. 15* Utilizao pelos programas de comandos e variveis destinados a interao com o BD, do tipo: 0* Conexo com o BD 1* Requisio de servios de criao, leitura, atualizao e excluso 2* Requisio de operaes administrativas e de controle como pontos de controle, bloqueios, congelamentos, anulao de aes executadas e outros 16* Utilizao pelo programa de comandos e variveis destinados a atender requisies do BD, do tipo: 3* reas de variveis compartilhadas para os valores de dados das operaes de criao, leitura, atualizao e excluso 4* Comandos que permitam a extrao dessas operaes Uma seqncia de atividades tpicas dessa interao pode ser algo como: Um programa requisita e obtm conexo com o BD O programa requisita e obtm uma operao O BD procura os dados armazenados Os dados so retornados ao SGBD O SGBD envia dados procurados ao programa chamador O SGBD envia uma mensagem de relatrio de estado ao programa chamador Parte do processamento interno consiste na implementao do ajustamento s regras do negcio, tais como:

17* 18* 19* 20* 21* 22*

23*

Regras de identidade dos dados, garantindo que o sistema no permita valores duplicados para os mesmos elementos. 24* Gesto de domnio, garantindo que cada valor de atributo esteja dentro dos valores aceitveis. 25* Integridade referencial, garantindo ao desenvolvedor o estabelecimento de relacionamentos obrigatrios entre os diversos campos e/ou registros do BD. 26* Inter dependncias complexas, permitindo aos BD filtrar os dados neles contidos para que mantenham consistncia com os valores do mundo real que representam. Para verificar a convenincia de utilizar ou no as facilidades de programao interna existem diversos aspectos a considerar. Se o sistema em projeto prever muito acesso por parte de usurios finais pode-se evitar a programao por parte deles com programao interna. Caso o sistema deva ser usado primordialmente por programas de aplicao pr escritos ou por pacotes, ento a programao interna apenas acrescenta overhead ao sistema. Para sistemas destinados a atender objetivos de longo prazo preciso lembrar que sistemas muito grandes ou para durar muito tendem a conviver com mltiplas verses de regras de negcios. Os programas de aplicao tem de conviver com mltiplas geraes de verses adaptadas s novas regras. Quanto mais os sistemas durarem maiores sero os problemas de manuteno dos programas. A utilizao da capacidade de programao interna dos BD concentra a adaptao a novas regras de negcio no SGBD.

Resumo O perfil de programao , de maneira geral, abrange os tpicos que se seguem: 1 - Capacidades de baixo nvel 1.1 - Acesso ao banco de dados sem processamento 1.1.1 - Chamadas de programas em DML 1.1.2 - DML utilizada diretamente pelos usurios 1.1.3 - Facilidades de acesso direto 2 - Programao Externa 2.1 - Linguagens de Programao 2.1.1 - Linguagens de 2a gerao 2.1.2 - Linguagens de 3a gerao 2.1.3 - Linguagens de 4a gerao 2.1.4 - Linguagens visuais e orientadas a objeto 2.2 - Sistemas de Gerenciamento de Interface com o Usurio 2.2.1 - Ferramentas de consulta 2.2.2 - OLAP 2.2.3 - Anlise Estatstica 2.2.4 - Descoberta de Dados 2.2.5 - Visualizao 2.2.6 - Agentes 2.2.7 - Ferramentas da Web 3 - Interna com gatilhos, procedimentos armazenados, etc. 3.1 - Razes de Emprego 3.1.1 - Centralizao da execuo da programao e do gerenciamento 3.1.2 - Facilidade de uso 3.1.3 - Imposio das regras de negcio * Imposio de identidade * Imposio de restries * Integridade referencial * Interdependncias complexas 3.2 - Mecanismos de execuo 3.2.1 - Procedimentos armazenados * Dirigidos a comandos * Dirigidos a eventos (gatilhos) 3.2.2 - Reforo estrutural 3.2.3 - Sistemas de Gerenciamento das regras de interface 3.2.4 - Bancos de dados orientados a objetos

4 - ODBC e Jet
ODBC Open Data Base Connectivity, ou ODBC a interface estratgica da Microsoft para acesso a dados em ambientes heterogneos de Bancos de Dados. Com o uso de ODBC os desenvolvedores de aplicaes podem conseguir o acesso, a viso e a atualizao de dados de mltiplos e diversos Bancos de Dados. ODBC uma especificao para a qual os programas devem se dirigir da forma: 27* Uma aplicao cliente ODBC ou front end 28* Um driver ODBC para um servidor DBMS de segundo plano. O emprego de ODBC exige a presena dos componentes: 29* Cliente ODBC tal como Access, VB ou aplicaes ODBC-enabled tais como Lotus. Este produto gera uma linguagem de comandos de requisio de dados para os BD. 30* Driver ODBC tal como os drivers j fornecidos com os clientes ODBC. Este produto torna as requisies de dados inteligveis para os DBMS. 31* Servidor ODBC tal como Oracle, Foxpro, Access e outros. Este produto dispensa a existncia de Driver ODBC entendendo diretamente os comandos ODBC.

O motor de banco de dados Jet

Generalidades Chama-se de Jet ao motor de bancos de dados relacionais que roda na famlia de Sistemas Operacionais Windows da Microsoft. Jet trata do processamento de bancos de dados para o Access e Visual Basic, alm de fornecer dados para aplicaes ODBC. Jet no possui interface para usurio. Sua utilizao feita por programas de aplicao, quase sempre em Access. Jet composto das DLL: 32* DLL Jet 33* DLL Data Access Objects 34* DLL External ISAM A DLL Jet avalia e executa as requisies de dados. A DLL Data Access Objects o componente que providencia a interface do programador ao motor Jet. Jet fornece acesso a muitos formatos de arquivos ISAM, entre eles xBase, Paradox e Btrieve. O formato de arquivo de banco de dados Microsoft Access Jet armazena dados no formato de arquivo Microsoft Access Database (.mdb) que um tipo de ISAM. Podem ser armazenados ndices (at 32 por tabela), relaes entre tabelas, regras de avaliao, definio de consultas e permisses de segurana nos arquivos .mdb. Alm disso estes arquivos podem armazenar todos os mdulos de formulrios, relatrios e macros usados pelo Access. Jet suporta dois esquemas de bloqueio para ambientes multi usurios: bloqueio otimista e bloqueio pessimista.

O modelo de segurana de Jet Jet, em seu modelo de segurana, utiliza contas de usurios e contas de grupos. Estas contas e suas senhas so armazenadas em um banco de dados especial chamado de System DB que define um grupo de trabalho. As permisses de acesso para particulares objetos de bancos de dados so armazenadas em cada banco de dados. Separando informaes de contas de informaes de permisses, permite-se aos administradores de sistemas gerenciar apenas um conjunto de contas para todos os bancos de dados de uma rede.

O mecanismo de consultas Jet O mecanismo processador de consultas de Jet o Jet Query Engine. Os usurios podem criar consultas utilizando a interface Query By Example, ou QBE. Podem tambm utilizar SQL. Os usurios de Access Basic podem usar a linguagem Data Access Objects, ou DAO para criar definies de consultas que utilizam comandos SQL Select.

O modelo dynaset As consultas Jet retornam conjuntos dinmicos de dados que so ligados s tabelas fonte das consultas. Estes conjuntos so chamados de dynasets. Atualizaes em dados de conjuntos dynaset so propagadas automaticamente s tabelas originais. Os usurios podem tratar os resultados de consultas como se fossem tabelas.

Dynasets e instantneos Quando os resultados de consultas so estticos e no podem ser atualizados constituem um snapshot ou instantneo. Quando Jet executa uma consulta do tipo dynaset cria um conjunto de valores nicos de chaves, chamado de hyset e que fica em memria, apontando para as linhas das tabelas correspondentes. Para consultas do tipo instantneo Jet necessita processar inteiramente a consulta e extrair para o instantneo todas as colunas da consulta.

Data Access Objects Alm das interfaces proprietrias de acesso que dispe Visual Basic e Access, Jet proporciona um processo de manipulao direta de dados chamada de DAO, que fornece uma linguagem consistente, orientada a objeto para definio de tabelas e consultas, conjuntos de registros e segurana. DAO possui uma Data Definition Language, ou DDL, para criao de tabelas, consultas e relacionamentos. A Data Manipulation Language, ou DML, permite a incluso de registros em tabelas, edio e excluso de registros e consultas usando SQL. A rea de trabalho em memria constituda em diversos Workspaces, que so objetos dos quais muitos podem ser abertos simultaneamente mas que s um deles est ativo em cada instante. Pode-se abrir simultaneamente at 255 Workspaces. Um banco de dados Jet composto de uma coleo de tabelas. O objeto Recordset tem trs sub tipos: o objeto tabela, o objeto dynaset e o objeto snapshot.

RDO e RDC Remote Data Object, ou RDO e Remote Data Control, ou RDC so outros mtodos de acesso. RDC une RDO a um controle de maneira semelhante quela pela qual RDC une DAO a um controle. RDO uma fina camada de cdigo colocada no topo da camada ODBC. RDO foi projetado para o acesso a dados em servidores remotos tais como SQL Server ou Oracle enquanto DAO foi projetado para acessar dados remotos e locais incluindo arquivos xBase, Access e Paradox. A utilizao de RDO para acesso a um banco de dados Access em sua estao local m opo pois h necessidade da utilizao de todas as camadas de protocolo que DAO utiliza. A grande vantagem do RDO que ele no utiliza o motor Jet que consome muitos recursos e acarreta grande sobrecarga. RDO utiliza uma pequena camada de cdigo sobre a camada ODBC e o driver gerenciador que estabelece conexo com o banco de dados. Este perfil reduzido provoca uma grande diferena na memria necessria para seu processamento e enxuga o cdigo em swaps para algumas estaes. Nos sistemas menores este alvio dos discos magnticos extremamente significativo.

10

5 - Java e Acessos a Bancos de Dados


A linguagem Java no suporta o acesso a Banco de Dados. Para esta tarefa foi desenvolvida a Java Database Connectivity ou JDBC. Sua finalidade consiste em associar programas Java a Banco de Dados relacionais e transmitir consultas SQL recebendo os resultados de volta. Como Java trabalha com objetos deve-se construir classes do lado do programa Java sempre que isto for necessrio na integrao. A API JDBC define as classes Java que representam as conexes, comandos SQL, resultados de consultas e metadados do Banco de Dados. Baseado em Open Data Base Connectivity, ou ODBC, JDBC implementa uma API SQL (ANSI SQL-2 Entry Level). Para acesso remoto um driver JDBC pode ser designado para acessar o Banco de Dados atravs de uma interface de rede. Neste caso uma aplicao Java acessa o Banco de Dados pela rede intervindo entre o driver JDBC e o Banco de Dados fsico. Quando no existir driver JDBC para uma aplicao especfica, JDBC pode acessar um driver ODBC atravs de pontes JDBC-ODBC. A operao de uma interface JDBC conseguida em trs etapas, a saber: 35* Abertura de uma conexo com o Banco de Dados 36* Envio de comandos SQL para a interface e recepo dos resultados correspondentes 37* Processamento dos resultados da consulta Um problema que no pode ser contornado a dicotomia de paradigmas entre o modelo relacional do Banco de Dados e o modelo orientado a objeto da linguagem Java, o chamado Object Relational Model, ou ORM. Alguns fornecedores trabalham na criao de uma API sobre JDBC mapeando objetos Java de maneira transparente em tabelas relacionais de maneira aderente ao padro do Object Database Management Group, ou ODMG. Os monitores de transaes foram desenvolvidos para que os main frames pudessem gerenciar o processamento e os recursos de comunicaes para suportar milhares de terminais. Um dos produtos deste tipo o TUXEDO projetado para servir sistemas baseados em transaes distribudas e em mltiplas camadas interagindo com clientes escritos em C, C++ e COBOL. O produto denominado Jolt um conjunto de componentes de software Java que permite ao TUXEDO o processamento de requisies provenientes de aplicaes Java e de navegadores adaptados a Java. Dentre os componentes de um SGBD destacam-se: 38* a interface do usurio 39* o motor do banco de dados A interface do usurio cuida de toda a interao entre o usurio e os programas do SGBD incluindo a visualizao e edio dos dados por meio de formulrios, relatrios, etc. O motor de banco de dados a parte do SGBD que o elo entre os programas do SGBD e os dados. O SGBD deve providenciar o suporte requerido nos ambientes corporativos no tocante a: 40* segurana 41* integridade referencial 42* dados remotos 43* outras caractersticas avanadas Open Database Connectivity, ou o ODBC, a estratgia da Microsoft para o acesso a dados em um ambiente heterogneo de bancos de dados relacionais ou no. Com o ODBC os desenvolvedores de aplicaes podem fazer com que uma aplicao, de maneira concorrente, possa ter acesso, ver e atualizar dados de mltiplos bancos de dados distintos. A especificao ODBC permite aos desenvolvedores escrever: 44* Aplicaes clientes vistas pelos usurios 45* Drivers ODBC para servidores SGBD

11

12

46* 47* 48*

Para a utilizao do ODBC so necessrios: Cliente ODBC Driver ODBC para o SGBD servidor Servidor SGBD

13

6 - Perfil de arquitetura
Duas caractersticas desejveis nos BD porm antagnicas so a flexibilidade e o controle. Quanto mais controle um sistema exerce menos flexvel ele e vice-versa. Para se obter flexibilidade exige-se overhead sob a forma de memria, velocidade, espao em disco, etc. Se for exigido um alto desempenho de um sistema e os requisitos forem estveis ento os BD mais rgidos so melhores escolhas do que os produtos mais flexveis. Quanto mais flexvel for o sistema mais fcil ser para os usurios e programadores a criao de ambientes personalizados e mais difcil para os administradores o exerccio do controle. No caso de arquiteturas xBase o sistema pode, em curto prazo, tornar-se cheio de ndices e cpias de dados desnecessrias, pois esta arquitetura no suporta gerenciamento e controle. No caso de BD relacionais possvel aos usurios a construo de consultas SQL que penalizem imensamente o sistema. A capacidade de um BD de desempenhar seu trabalho depende da capacidade do projetista do sistema em mesclar pessoas, programas, produtos e plataformas como componentes de um ambiente operacional integrado. Em verdade no existem solues fceis. Tudo que existe so capacidades, opes e compromissos. No meio da dcada de 80 a arquitetura relacional parecia destinada a soterrar todas as demais e praticamente todos os produtos passaram a ser apregoados como relacionais. Muito embora esta arquitetura tenha grandes qualidades tem tambm algumas limitaes. Para contornar estas limitaes os BD relacionais atuais dispem de muitos recursos no relacionais para melhorar seu desempenho, tais como navegao, redundncia, ponteiros, espalhamento e outros. Um BD definido para o sistema usando: 49* DDL 50* Gerao pelo sistema 51* Usando uma coleo de telas (sistema de gerenciamento de interface) Mapeamento o processo pelo qual o BD auxilia no processamento de informaes contidas em mais de um local. O mapeamento esttico estabelece relaes permanentes entre colees de registros. O mapeamento dinmico permite ao programador ou usurio declarar a qualquer tempo um relacionamento entre registros. Considerando uma chamada especfica o mapeamento esttico muito mais eficiente que o mapeamento dinmico. Por outro lado, medida que os sistemas se tornam mais complexos, mais difcil garantir que os usurios e programadores acessem o sistema de maneira eficiente. Aumentando o nmero de usurios ineficientes reduz-se substancialmente a vantagem do emprego do mapeamento esttico. As arquiteturas em rede, hierrquicas e com listas invertidas utilizam o mapeamento esttico. As arquiteturas xBase, Access, relacional e orientada a objeto utilizam mapeamento dinmico. O mapeamento esttico chamado de navegacional enquanto o mapeamento dinmico chamado de no navegacional (ou ainda navegacional pelo usurio contra navegacional pelo sistema). Os registros podem retornar quele que os requisitou um de cada vez ou todo o conjunto de uma s vez. O processamento tradicional trata um registro de cada vez. Os processamentos mais recentes so baseados em conjuntos e no em registros isolados.

14

Resumo O perfil de arquitetura , de maneira geral, abrange os tpicos que se seguem: 1 - Terminologia 1.1 - Terminologia para construo de dados 1.2 - Construtores de dados 1.2.1 - DDL 1.2.2 - Gerados pelo sistema 1.2.3 - Gerenciamento de interface definido pelo sistema 2 - Capacidades e paradigmas 2.1 - Busca total ou parcial 2.2 - Mapeamento ou referncias cruzadas de dados 2.2.1 - Dinmico 2.2.2 - Esttico 2.3 - Modo de Processamento 2.3.1 - Um registro de cada vez 2.3.2 - Um conjunto de cada vez

15

7 - Arquitetura para computadores pessoais


Bancos de Dados de Arquivos Convencionais Estes produtos destinam-se exclusivamente a computadores pessoais e so empregados em aplicaes simples e isoladas servindo para armazenamento de registros e gerao de relatrios. No possuem linguagem de programao e o acesso s pode ser feito pela sua interface padro. Estes produtos s permitem acesso a um arquivo de cada vez. As caractersticas dos Bancos de Dados com arquivos convencionais podem ser assim resumidas: Caracterstica Descrio de Dados Organizao de Dados Construo de Dados Navega Busca o Referncias cruzadas Mapeamento Processamento Os produtos tpicos so: PC-File Q&A Reflex Rapidfile File Maker Pro Descrio Campos, Registros, Arquivos Arquivos simples e isolados Definio por telas e menus Buscas simples com um campo de cada vez No permite No permite Apenas um registro de cada vez

52* 53* 54* 55* 56*

16

Banco de Dados xBase

A programao feita por uma linguagem que faz parte do produto, sendo funcional, procedimental, de 4 a gerao. Pode-se fazer interface com linguagem de 2a a 3a geraes. A maioria dos produtos e utilitrios de 4a gerao, tais como os processadores de texto e as planilhas, possuem interface xBase embutida. Estes bancos de dados armazenam dados de diferentes arquivos lgicos em diferentes arquivos fsicos. Cada arquivo aberto possui um ponteiro para o registro corrente. Os ndices podem ser criados e destrudos a qualquer tempo, sendo arquivos de referncias fsicas que armazenam uma cpia parcial dos campos de indexao bem como ponteiros internos para as reas aonde os registros fonte esto armazenados. O sistema utiliza arquivos base e arquivos relacionados. Um arquivo base o primeiro arquivo aberto por um programa xBase e permanece como o arquivo que mantm a posio do ponteiro corrente. Depois da abertura do arquivo base, pode-se relacionar a ele diversos arquivos. medida em que a programao move o ponteiro corrente no arquivo base, todos os ponteiros secundrios movem-se de maneira correspondente. Pertencem a esta categoria: 57* dBase II, III, III+, IV 58* Alpha IV 59* FoxBase 60* DBExcel 61* Multibase 62* DBMan 63* DBFast Os produtos desta categoria caracterizam-se pelos aspectos do quadro seguinte: Caracterstica Descrio de Dados Organizao de Dados Construo de Dados Navega o Busca Referncias cruzadas Mapeamento Processamento Descrio Campos, Registros, Arquivos Mltiplos arquivos relacionados pela correspondncia de valores de campos Criao de arquivos e ndices por meio da linguagem de programao xBase ndices (mltiplos) Relacionamento entre arquivos estabelecido por ndices e ponteiros Apenas dinmico Apenas um registro de cada vez

17

Bancos de Dados Access Os produtos deste tipo assemelham-se aos Bancos de Dados de Arquivos Convencionais no fato da construo de dados e o acesso aos dados ser tratado atravs de telas. Contudo estes produtos possuem capacidade de programao e de cruzamento de arquivos. Alm da linguagem de programao nativa estes produtos permitem acesso direto atravs de interfaces nativas do Windows, tais como Visual Basic e ODBC. Usualmente dispem de linguagens macro. Uma macro de editor de textos ou planilha eletrnica um programa feito de uma coleo codificada de seqncias de entradas de teclado ou comandos de alto nvel que simulam seqncias de entradas de teclado. A construo de dados no feita diretamente e sim pela criao de formulrios na tela, isolando o usurio da construo. Os sistemas do tipo Access obtm a capacidade de navegao do perfil de programao e no do perfil de arquitetura. Existem duas maneiras de cruzamento de tabelas. A primeira pelo uso da linguagem SQL padro. Com SQL os usurios podem criar, a qualquer tempo, junes de tabelas que relacionem quaisquer duas tabelas por meio de qualquer atributo comum. A outra maneira pelo uso do relacionamento MS Access (tela de relacionamentos). Para as consultas existe uma tela especial. Inicialmente relacionam-se as tabelas sobre as quais vai ser feita a consulta. Escolhidas as tabelas escolhem-se os campos. Com os campos escolhidos pode-se refinar a consulta atravs de Sort, Show e Criteria. Pode-se tambm fazer consultas com a linguagem SQL. As caractersticas dos Bancos de Dados Access podem ser assim resumidas: Caracterstica Descrio de Dados Organizao de Dados Construo de Dados Navega Busca o Referncias cruzadas Mapeamento Processamento Descrio Linhas, Colunas e Tabelas Mltiplos arquivos relacionados por SQL Definio pelo preenchimento de formulrios nas telas Buscas simples e complexas por mecanismo prprio ou SQL Relacionamento lgico qualquer entre arquivos Permite mapeamento dinmico Permite processamento de conjuntos

64* 65* 66* 67* 68* 69*

Como exemplo destes bancos de dados destacam-se: Microsoft Access DataEase Paradox Omnis 7 Formbase Double-Helix

18

8 - Arquiteturas tradicionais
Bancos de Dados com Arquivos Invertidos

Generalidades Os BD de listas invertidas esto em declnio principalmente porque seus fornecedores esto convertendo seus produtos para BD relacionais. A programao de BD de listas invertidas definida mais pelo ambiente no qual rodam do que pelo BD em si mesmo. Estes produtos so caractersticos dos main frames e, em conseqncia, os nicos acessos de programao so por linguagens de programao de 2a, 3a e 4a geraes. Um ndice um arquivo. As referncias cruzadas entre arquivos nas arquiteturas de BD de listas invertidas podem ser feitas por dois processos: 70* Acoplamento de arquivos, quando cada registro de um dos arquivos est relacionado, atravs de ndices, com todos os registros do segundo arquivo que possuem valores correspondentes para o atributo em tela. 71* Vises de dados ou vises de usurios, quando vises de dados recebem nomes especficos. Chamadas referenciando uma viso comportam-se como dando acesso a super arquivos formados por todas as entradas coincidentes, no atributo em tela, de ambos os arquivos que formam a viso. 72* Acoplamento lgico, quando os arquivos acoplados comportam-se como se estivessem sendo submetidos a uma juno de bancos de dados relacionais. Os produtos comerciais desta categoria so o ADABAS, o Model 204 e o Datacom.

Componentes fsicos do ADABAS O BD ADABAS tem como componentes fsicos principais: Trs tipos de reas de armazenamento de dados * Associador * Armazenamento * De trabalho 74* Um dicionrio de dados 75* A mquina de BD (programas) Uma requisio de servio ao BD enviada mquina de BD, que consulta o dicionrio de dados sobre as informaes a respeito dos diferentes mtodos de acesso que estiverem disponveis. Depois de analisar as alternativas a mquina de BD, ou ncleo, efetua a execuo do comando usando os passos: 76* Analisa-se a rea do associador, aonde so armazenados os ndices, extraindo-se uma coleo de endereos fsicos dos dados desejados. 77* O motor de BD acessa a rea de armazenamento para recuperar os itens de dados desejados. 78* Caso a complexidade da consulta seja grande, o motor de BD transfere os dados desejados para a rea de trabalho aonde prossegue com o processamento. 79* Os resultados obtidos so retornados ao usurio.

73*

As caractersticas dos Bancos de Dados com listas invertidas podem ser assim resumidas: Caracterstica Descrio

19

Descrio de Dados Organizao de Dados Construo de Dados Navega o Busca Referncias cruzadas Mapeamento Processamento

Campos, Registros, Arquivos Mltiplos arquivos independentes, logicamente relacionados por ndices de listas invertidas Associaes, armazenamento, reas de trabalho, arquivos temporrios e ndices Buscas simples e complexas Arquivos ligados, ligao lgica e vises de usurios Permite mapeamento esttico (arquivos ligados) e dinmico (ligaes lgicas) Apenas um registro de cada vez

Bancos de Dados Hierrquicos A arquitetura hierrquica destina-se a captura e controle de estruturas de dados com as seguintes caractersticas: 80* Existe uma ordem de precedncia entre os dados 81* Todos os dados esto em relaes 1:n 82* Todas as relaes so uni direcionais 83* As estruturas de dados formam estruturas semelhantes a rvores Nos ambientes de main frames esta arquitetura ainda a dominante com os produtos IMS e DMS II. Para os computadores pessoais os produtos correspondentes so Formbase e Data Perfect. Estes BD exigem dos usurios a codificao da chamada ao BD e a passagem dessa codificao a partir de uma rea de controle. Tomando por base o produto IMS da IBM, o BD tem como componentes: 84* rea de armazenamento de dados 85* Definio do BD 86* Coleo de blocos de controle de programas O descritor de bancos de dados, ou DBD, identifica: Nome do BD Nome de cada segmento Chaves de identificao de cada segmento Relacionamentos de cada segmento com os demais Nome, tamanho e estrutura dos arquivos fsicos que armazenam o BD

87* 88* 89* 90* 91*

Nos BD hierrquicos ou em rede tanto a organizao lgica quanto a organizao fsica do BD precisam ser codificadas explicitamente. O programa DBDGEN consulta a descrio dessas organizaes e gera o BD criando os arquivos, ndices e outras construes fsicas. Com o BD gerado o DBA cria certo nmero de Program Communication Blocks, ou PCB, que definem os diversos relacionamentos lgicos que os programas de aplicao podero utilizar. Os programas s podem ter acesso ao BD por meio dos PCB. Cada programa possui um ou mais Program Specification Blocks, ou PSB, que funcionam como interfaces para os PCB. Estando gerado o BD, os dados so carregados a partir de arquivos convencionais pelo utilitrio LOAD.

20

O estabelecimento de uma estrutura hierrquica muito mais complicado do que a especificao de estruturas xBase ou tipo listas invertidas. E mais, qualquer mudana em estruturas IMS requer a completa regenerao do BD. As caractersticas dos Bancos de Dados hierrquicos podem ser assim resumidas: Caracterstica Descrio de Dados Organizao de Dados Construo de Dados Navega Busca o Referncias cruzadas Mapeamento Processamento Descrio Campos, Segmentos, Datasets, reas, Databases Coleo de segmentos hierrquicos relacionados uns aos outros hierarquicamente DBDGEN Buscas simples e complexas Arquivos ligados, ligao lgica e vises de usurios Apenas esttico, definido pela estrutura do banco de dados Apenas um registro de cada vez

21

Bancos de Dados em Rede Um BD em rede organizado em data items, que so campos, record type, que so colees de registros semelhantes e sets, ou relacionamentos lgicos. Esta arquitetura permite relaes m:n e relaes recursivas nas quais a arquitetura mais eficiente. Um exemplo tpico desta arquitetura o IDMS, da Computer Associates. A navegao nos BD em rede feita seguindo encadeamento de ponteiros. Os usurios devem descobrir a chave pr definida para um record type, preparar os parmetros para uma chamada ao banco, e disparar o comando GET NEXT ou OBTAIN NEXT. Para relacionar dois record types o DBA deve criar um elo entre estas construes de dados. Este relacionamento encadeado chamado de set. A navegao feita acompanhando os sets. Um BD CA-IDMS composto de pginas, que so conjuntos de registros, e de reas, que so colees de pginas. A definio global de dados feita por um esquema. O esquema compe-se de diversos sub esquemas, que definem as reas, os sets, os registros, os itens de dados. Uma linguagem de controle de meios e dispositivos mapeia as reas em arquivos fsicos. Chama-se de communication block a uma rea de trabalho utilizada para a comunicao entre os programas de aplicao e o BD. Por meio desta rea so passados comandos ao BD e recebidas as informaes de estado. As caractersticas dos Bancos de Dados em rede podem ser assim resumidas: Caracterstica Descrio de Dados Organizao de Dados Construo de Dados Navega Busca o Referncias cruzadas Mapeamento Processamento Descrio Esquemas, Tipos de Registros, Campos, reas, Bancos de Dados Coleo de tipos de registros relacionados uns aos outros por encadeamento (ponteiros fsicos) IDMS-GEN Buscas simples e ligeiramente complexas Navegao na rede de ponteiros Apenas esttico, definido pelos caminhos da rede Apenas um registro de cada vez

22

9 - Bancos de Dados Relacionais


Generalidades Bancos de Dados Relacionais so os produtos que: Usam a linguagem SQL como nica linguagem de manipulao de dados (como exceo existem aqueles que escondem essa linguagem em produtos de interface). 93* Usam a linguagem de definio de dados e a linguagem de controle de dados SQL para gerenciar a criao, manipulao e segurana dos componentes do BD.

92*

Existem produtos com quaisquer arquiteturas e que mesmo assim utilizam SQL como linguagem de acesso secundrio a dados, tais como Fox-Pro, Dbase IV, Omnis7 e Focus. Sem dvida alguma a maior contribuio da abordagem relacional para a indstria de BD foi a criao da linguagem SQL. Antes da SQL as linguagens de acesso a dados partiam do princpio que o usurio conhecia os ndices, as relaes entre diferentes tipos de dados e a ordem em que os dados foram carregados. A busca de dados de um BD quando se conhece o armazenamento antes da consulta chamada de navegao. O custo do acesso a dados atravs de navegao no vem da obteno da informao desejada. O acesso por navegao muito menor do que o acesso por SQL. Em verdade para uma organizao utilizando mtodos de armazenamento com navegao, o caro fazer as modificaes necessrias cada vez que o BD necessita ser modificado. Quando uma aplicao que utiliza navegao necessita mover seus segmentos, trocar ndices ou alterar chaves todas as aplicaes relevantes devem ser modificadas para poder continuar operando. Os BD relacionais foram criados para reduzir o custo do desenvolvimento e manuteno de aplicaes. Estes custos no param de subir, pois quanto maior o nmero de programas escritos maior o nmero de problemas. Abordagens relacionais so aquelas nas quais uma representao de dados e um esquema de armazenamento procuram usar lgebra relacional avanada e suas propriedades matemticas e lgicas como um meio timo de armazenamento e acesso a informaes em um sistema de BD.

Conceitos de Estruturas de Dados Objetos sobre os quais se armazenam informaes so chamados de entidades. Os objetos podem ser tangveis como empregados, navios, escolas como tambm podem ser intangveis como eventos, contas correntes, centros de custos , etc. Um conjunto de entidades representando objetos de mesma natureza constituem uma classe de entidades. Como exemplos pode-se citar : 94* Empregados de uma empresa; 95* Alunos de uma escola; 96* Equipes esportivas; 97* Navios de uma frota; 98* Itens de estoque de um almoxarifado. Entidades podem ento ser consideradas como elemento selecionados dentre classes de entidades. Como exemplos pode-se citar : 99* O empregado Gabriel; 100* A aluna Jussara; 101* A equipe Brabham;

23

102* 103*

O navio Doceangra; O item radiador.

24

A caracterizao de entidades em um determinado contexto feita por intermdio de propriedades caractersticas denominadas atributos de entidade. Para a classe de entidades empregados de uma empresa so possveis atributos os seguintes: 104* Nome 105* Matrcula; 106* Profisso; 107* Departamento aonde trabalha; 108* Salrio; 109* Endereo; 110* Outros. Os atributos das entidades podem receber valores em determinados domnios para caracterizar as diversas ocorrncias ou instncias das entidades. Na legislao brasileira, por exemplo o domnio do atributo idade do empregado o conjunto 18 a 70 anos. A poltica salarial de uma organizao pode fixar salrios entre $100 e $10,000. Um conjunto de pares <atributo, valor de atributo> que identifica uma entidade chamado de registro de entidade. Um registro de empregado poderia ser do tipo: Atributo Nome Matrcula Profisso Departamento aonde trabalha Salrio Endereo Outros Valor do atributo Oswaldo Peres 2.044.431 Contabilista Administrativo R$1.200,00 Rua Salvador de 35/902 -----

Almeida,

Um conjunto de registros que caracteriza uma classe de entidades pode ser mantido em memria principal, quando recebe o nome de tabela ou array, ou pode ser mantido em memria secundria, quando chamado de arquivo. Existem trs domnios de conhecimento que podem estar sendo utilizadas quando se discute informao. O primeiro domnio constitui o mundo real no qual existem os objetos, suas propriedades e seus atributos. O segundo domnio o das idias e da informao contida nas mentes dos profissionais de informtica. Neste domnio os atributos so smbolos em linguagens naturais ou linguagens de programao com estruturas de dados especificadas para os representar. O terceiro domnio o dos dados no qual seqncias de caracteres ou de bits so armazenadas para codificar itens ou campos de informao Dados so informaes de entrada e sada dos computadores, representando fatos ou conceitos, freqentemente representados por valores numricos ou alfanumricos. A interpretao dos dados permite o processamento da informao neles contida. Para referenciar de maneira prtica e eficiente um registro ou um conjunto de registros necessrio fornecer aos algoritmos um processo de recuperao de um dado registro sem necessidade de fornecer ao algoritmo a totalidade da informao gravada no registro. Para tanto busca-se caracterizar um subconjunto de atributos que sirva para tal. Este subconjunto chamado de chave. Por sua vez uma chave uma expresso lgica de elementos de chave. Os elementos de chave so pares formados por um atributo e uma expresso que caracterize o valor do atributo desejado, tal como <idade, valor entre 18 e 30 anos>, ou <nome, igual a Jos da Silva Peixoto>.

25

Seleo de registros um critrio que identifica ou destaca registros de um determinado arquivo ou tabela. Chaves nulas so aquelas que selecionam todos os registros de um determinado arquivo ou tabela. Chaves primrias so aquelas que identificam um nico registro de um arquivo ou tabela. Chaves secundrias so aquelas que identificam um conjunto de registros de um arquivo ou tabela que possuem um mesmo valor para um determinado atributo ou conjunto de atributos.

Modelo relacional Dada uma coleo de conjuntos D1, D2, ..., Dn ( no necessariamente disjuntos), R uma relao sobre os N conjuntos se for um subconjunto do produto cartesiano D1 X D2 X ... X Dn . A relao tem uma representao tabular. Cada coluna da tabela caracteriza um dos conjuntos. Os conjuntos D1, D2, ..., Dn so os domnios de R e n o grau da relao. Cada linha de relao denominada t-upla ou tupla. A relao R portanto um conjunto ordenado de tuplas { d1, d2, ... , dn } tal que di Di.

Associao entre Entidades

Conceito Associaes entre atributos so as restries semnticas das informaes que so armazenadas como dados. Existem trs tipos de associaes entre dois atributos: 1:1, 1:N e M:N . Sejam A e B dois atributos, tais que A determina B. A associao do tipo 1:1 aquela em que o atributo A determina um nico valor do atributo B. J na associao do tipo 1:N, um valor de A pode determinar vrios valores de B, dentro do domnio de B. Por ltimo, nas associaes do tipo M:N, um valor do atributo A pode determinar um conjunto finito de valores de B e um valor do atributo B pode determinar um outro conjunto finito de valores de A. O primeiro tipo de associao citado (1:1) um exemplo de dependncia nica, ou simplesmente valorada. Os demais tipos de associaes (1:N e M:N) so exemplos de dependncias multivaloradas.

26

Neste ponto interessante introduzir mais algumas definies:

Chaves, Determinantes, Dependncias Termo Dependncia Definio Um atributo (ou um conjunto de atributos) B dependente de um atributo (ou conjunto de atributos) A se, para cada valor de A, existe um valor de B associado a ele. Ou ainda, uma dependncia funcional pode ser vista na relao R com atributos A e B onde os valores de B so dependentes dos valores de A ( R.A R.B ), ou seja , R.A determina funcionalmente R.B Uma super chave de uma relao uma combinao de atributos capaz de identificar suas tuplas univocamente. Uma chave candidata uma super chave com um nmero mnimo de atributos. Ou ainda, um conjunto de atributos de uma relao uma chave candidata se e s se no h duas tuplas com o mesmo valor desse conjunto de atributos e nenhum desses atributos pode ser retirado do conjunto sem perda da propriedade anterior. Uma chave candidata escolhida para identificar preferencialmente as entidades chamada de chave primria. Uma chave secundria uma combinao de um ou mais atributos de uma relao com o propsito de se criar uma estrutura de acesso mais otimizada. Uma chave estrangeira uma combinao de um ou mais atributos de uma relao que funciona como chave primria em outra relao. Todas as chaves candidatas no escolhidas como chave primria so consideradas chaves alternativas ou alternadas. Qualquer atributo que no participe da chave primria da relao em questo chamado de atributo no chave. Determinante funcional um atributo do qual outro atributo seja dependente. Dois ou mais atributos so mutuamente independentes se nenhum dos atributos em questo for funcionalmente dependente de um dos outros Um atributo (ou conjunto de atributos) B funcionalmente dependente de um atributo (ou conjunto de atributos) A se, para cada valor de A existir um valor de B associado a ele.

Super chave Chave candidata

Chave primria Chave secundria Chave estrangeira Chave alternativa Atributo no chave Determinante (funcional) Atributos mutuamente independentes Atributos funcionalmente dependentes

27

Termo Dependncia Funcional Dependncia Parcial Dependncia Transitiva

Dependncia Boyce/Codd Dependncia de Juno

Dependncia Multivalorada

Definio Uma dependncia funcional se um atributo B determinado pelo conjunto de atributos de A porm no o por qualquer subconjunto prprio de A. Uma dependncia parcial quando um atributo no chave B dependente de um subconjunto do conjunto de atributos da chave primria composta A. Ocorre uma dependncia transitiva em uma entidade quando os atributos no chave contm dependncias funcionais entre eles. Ocorre uma dependncia transitiva quando R.X R.Y e R.Y R.Z . partir dessas dependncias caracteriza-se uma dependncia transitiva R.X R.Z . De outra forma, X determina Y que determina Z , ento X determina Z . Ocorre uma dependncia Boyce/Codd em uma entidade quando um atributo no chave determina parte de uma chave primria composta. Uma relao satisfaz a uma dependncia de juno s e somente s ela for a juno de suas projees em subconjuntos do conjunto de atributos. Ou ainda, uma relao para satisfazer a uma dependncia de juno no pode ser obtida pela juno de parte de suas projees. necessrio projetar e juntar todas as possibilidades. De maneira mais formal seja R uma relao. Sejam X, Y, ... ,Z conjuntos de atributos de R. A dependncia de juno *(X,Y,...,Z) vale em R se, e somente se, R eqivale juno natural de suas projees em X,Y,...,Z. Se uma dependncia de juno *(A,B,C) vale em R, ento R eqivale juno natural de suas projees em A, B e C para qualquer estado do banco de dados. Uma dependncia de juno *(X,Y,...,Z) trivial se X,Y,...,Z for o conjunto formado por todos os atributos de R. Ocorre uma dependncia multivalorada quando um atributo pode determinar mais de um valor para outro atributo. Seja R uma relao. Sejam A, B, C atributos (ou conjuntos de atributos) de R. A dependncia multivalorada R.A R.B vale em R se, e somente se, o conjunto de valores do atributo B associado a um par em R (valor de A, valor de C) depender apenas do valor de A e for independente do valor de C. Diz-se que R.B multidependente de A ou que R.A multidetermina R.B.

O quadro abaixo ilustra relao entre determinantes e dependncias. Determinante Chave primria Parte da chave primria No chave No chave Atributo No chave No chave No chave Parte da chave primria Tipo de Dependncia Funcional Parcial Transitiva Boyce/Codd

28

Integridade de dados Para obter eficincia relacional no armazenamento e relacionamento de elementos de dados necessrio, no projeto de BD, identificar as tabelas base. Essas tabelas so a representao das relaes do mundo real. As regras de integridade para essas tabelas so: 111* Toda relao tem diversas chaves candidatas 112* Toda relao tem uma chave primria 113* Qualquer atributo de uma relao pode ser uma chave estrangeira 114* Toda relao pode ter chaves alternativas

Manipulao de dados Desde que as tabelas tenham sido criadas pode-se ter acesso aos dados usando operadores relacionais baseados na teoria algbrica dos conjuntos: 115* unio 116* interseo 117* diferena 118* produto cartesiano 119* seleo 120* projeo 121* juno 122* diviso As operaes correspondentes so definidas usando uma linguagem de acesso a dados chamada SQL.

SQL A linguagem Structured Query Language, ou SQL, baseada no modelo relacional mas no uma rgida implementao daquele mtodo. A primeira verso da linguagem foi padronizada em 1986. Uma reviso feita em 1992 foi chamada de SQL2. Presentemente trabalha-se em nova verso prevista para meados de 1998 chamada de SQL3. SQL3 pretende ser uma linguagem computacional completa para a definio e gerenciamento de objetos complexos persistentes. Para tanto so includos: 123* generalizao e especializao de hierarquias 124* herana mltipla 125* tipos de dados definidos pelo usurio 126* gatilhos e assertivas 127* suporte a sistemas baseados em conhecimento 128* expresses recursivas de consulta 129* outras ferramentas de administrao No que tange a orientao a objeto a linguagem vai suportar: 130* especificao de tipos abstratos de dados 131* identificadores de objetos 132* mtodos

29

133* 134* 135* 136*

herana polimorfismo encapsulamento todas as demais facilidades associadas ao gerenciamento de dados de objetos

30

As unidades bsicas da linguagem so tabelas, linhas e colunas. Uma relao mapeada em uma tabela, uma coluna representa um elemento de dado presente na tabela e uma linha representa uma instncia de um registro. Algumas de suas caractersticas (da SQL) so: 137* A linguagem no sensvel a espaos CR, LF, TAB etc. 138* Palavras reservadas so limitadas por vrgulas quando aplicvel e usam-se parnteses para agrupamentos. 139* Quando se utiliza mltiplas consultas usa-se ; para separar umas das outras. 140* As consultas so indiferentes a maisculas. Um esquema uma coleo de zero ou mais tabelas sendo que cada tabela s pode pertencer a um esquema. Um catlogo contm zero ou mais esquemas. A linguagem SQL dividida em trs partes: 141* Data Definition Language, ou DDL, para definio dos dados, criao de tabelas (CREATE TABLE). 142* Data Control Language, ou DCL, para controlar a segurana e o acesso aos dados (GRANT REVOKE). 143* Data Manipulation Language, ou DML, para manipulao dos dados, armazenamento, modificao e recuperao. A linguagem SQL pode ser utilizada pelos usurios finais. As tabelas relacionais so autnomas. Referncias cruzadas entre tabelas podem ser estabelecidas por comandos SQL. A lgebra relacional opera sobre conjuntos. Para bancos de dados relacionais no preciso navegar sobre arquivos. Toda consulta retorna todos os dados que respondem a consulta. Usurios da linguagem SQL no precisam se preocupar com ndices, chaves ou qualquer outra estrutura de navegao. Para esses usurios qualquer campo pode ser uma chave. Quando duas ou mais tabelas so relacionadas pela linguagem SQL existe uma juno. Os BD relacionais tentam postergar o mapeamento de relaes entre as estruturas de dados at o momento em que um agente deseja que algo seja feito. Esta abordagem traz algumas vantagens: 144* O DBA no precisa pr estabelecer todos os possveis relacionamentos que os programas e usurios podem precisar. 145* O sistema pode fornecer uma face consistente para os usurios alm de mais amigvel. 146* Os BD relacionais no utilizam navegao. 147* A ocultao dos detalhes de armazenamento chamada de independncia de acesso a dados. Muito embora a linguagem SQL no seja extremamente amigvel sua operao intuitiva para muitos usurios e mais simples que a maioria das linguagens procedimentais de acesso. Sistemas relacionais propriamente construdos, bem utilizados e gerenciados cuidadosamente podem ser os sistemas de BD mais eficientes. Todavia, quando esses critrios no forem seguidos os resultados podem ser opostos. Usando Bancos de Dados em listas invertidas, hierrquicas ou em rede impossvel fazer consultas ineficientes. Os Bancos de Dados xBase ou relacionais do muito poder aos usurios, que podem usar esse poder gerando consultas extremamente ineficientes. A linguagem SQL garante acesso padronizado aos bancos de dados. O perfil de programao da maioria dos produtos relacionais muito mais robusto do que o dos produtos no relacionais. Pelo fato de todos os BD relacionais usarem a mesma linguagem de acesso os fornecedores de software podem construir sistemas de gerenciamento de interfaces que podem ser facilmente acoplados a qualquer nmero de bancos de dados. Muitos processadores de texto, planilhas e EIS esto sendo construdos com interfaces SQL. Quase todos os fornecedores de BD relacionais embutem em seus pacotes suas prprias solues de gerenciamento de interfaces e linguagem de 4a gerao.

31

32

Componentes estruturais dos BD Relacionais Os sistemas de BD so feitos de tabelas armazenadas em um ou vrios arquivos fsicos. Cada tabela criada por um comando CREATE TABLE que constri a estrutura do arquivo e armazena a informao sobre a tabela em um conjunto especial de tabelas controladas pelo sistema chamadas de catlogo do sistema. Quando um comando SQL executado endereado a um BD, um programa especial chamado programa otimizador analisa as entradas do catlogo e determina a melhor maneira de encaminhar a consulta. Uma vez tendo sido determinada a melhor maneira de recuperao esta direcionada a um programa chamado de plano. O plano executado, as tabelas so pesquisadas e manipuladas para gerar a informao e o sistema conclui a requisio. Para poder responder dinamicamente s requisies, os BD relacionais tem uma rea de trabalho comum, as tabelas temporrias, ou reas de trabalho. Os BD relacionais tem ndices como todos os outros BD, mas os programadores ou usurios nem devem saber que eles existem. Esses BD permitem que quaisquer relacionamentos sejam acessados a qualquer tempo sem qualquer pr determinao. Isto diferente dos BD xBase que exigem a construo de ndices e seu uso explcito no mapeamento de relacionamentos. Difere tambm dos BD em listas invertidas, em rede ou hierrquicos que permitem apenas a manipulao de alguns relacionamentos pr definidos. Os BD relacionais consomem muitos recursos computacionais e, portanto, no so adequados para todas as aplicaes. A flexibilidade dos sistemas requer responsabilidade e proficincia dos usurios. Quando estas caractersticas esto em falta os BD relacionais podem criar desastres em vez de sistemas teis. Muitas aplicaes necessitam da estabilidade estrutural que um BD hierrquico ou em rede pode oferecer ou ento da velocidade das referncias cruzadas das listas invertidas ou ainda da flexibilidade e amigabilidade dos BD xBase. BD relacionais so poderosos e flexveis mas no fazem milagres.

Bancos de Dados DB2 O Banco de Dados DB2 da IBM, o BD relacional mais vendido no ambiente dos main frames. O acesso a esses BD pode ser feito nas linguagens hospedeiras COBOL, PL/I, C, Assembly. Os produtos TSO, CICS e IMS/DC oferecem interface para eles alm dos produtos Cross System Product, ou CSP, Query Management Facility, ou QMF (a mais popular das interfaces). Os componentes fsicos de um BD DB2 so: 148* STOGROUPS, que definem os espaos em disco. 149* TABLESPACES, que so os arquivos fsicos. 150* TABLES, que so os componentes lgicos de trabalho da SQL. 151* INDEXES, que so criados para aumentar a velocidade de execuo dos comandos. Os componentes lgicos de um BD DB2 so: Dados dos usurios. Tabelas de catlogos do sistema. Buffer pools, que so reas de memria para agilizao de I/O. Banco de Dados.

152* 153* 154* 155*

Normalmente, aps a criao das tabelas, os dados so nelas carregados a partir de arquivos seqenciais com o utilitrio Load. Muito embora possa-se usar um programa COBOL ou qualquer produto de terceiros para gerao de relatrios, o mais comum que os relatrios sejam produzidos pelo utilitrio QMF, da forma: 156* Conexo ao sistema QMF 157* Escolha da opo de consulta PF6 158* Preenchimento da tela de consulta com o comando SQL

33

159* Execuo do comando pela tecla PF2 160* Visualizao, modificao ou impresso dos resultados

Bancos de Dados Inteligentes O software do servidor de Banco de Dados deve proporcionar integridade referencial garantindo que dados relacionados em diversas tabelas mantenham consistncia. Se uma linha ancestral for excluda, as linhas a elas relacionadas em tabelas descendentes tambm devem ser excludas. A centralizao do controle da integridade de dados garante a obedincia s regras independentemente de qual o n pelo qual se d o acesso e libera os desenvolvedores da tarefa de incluso de regras de integridade nos programas de aplicao. As regras de negcio tambm podem ser controladas de maneira centralizada. As regras podem validar dados ou ser associadas a eles. Uma regra pode testar domnios de valores ou fazer comparao com padres especficos ou entradas em determinadas listas. As regras podem ser associadas a uma coluna, a vrias colunas ou a todas as colunas de um certo tipo de dados. Um tipo especial de regra passiva, que s pode retornar mensagens de erro, chamada de restrio. Uma restrio pode ser do tipo Se o nome comear com Sr. o sexo deve ser M.

Procedimentos armazenados Procedimentos armazenados so colees de comandos SQL que so compilados e armazenados no servidor de Banco de Dados. Estes procedimentos permitem aos desenvolvedores a codificao de consultas e outros grupos de comandos, sua compilao, seu armazenamento no servidor e sua invocao diretamente pelas aplicaes. Na primeira consulta o procedimento compilado e armazenado em cache. As chamadas subseqentes utilizam a verso j compilada. Estes procedimentos podem aceitar parmetros permitindo mltiplas aplicaes com diferentes dados. Podem tambm ser utilizados para reforar as regras de negcios e a integridade dos dados.

Gatilhos Os gatilhos so procedimentos armazenados que so invocados automaticamente pelos servidores de banco de dados. Os procedimentos armazenados so invocados explicitamente enquanto os gatilhos so associados a tabelas particulares e so executados quando existe uma tentativa de modificao dos dados da tabela. Gatilhos e regras so associados a tabelas especficas mas enquanto as regras s podem realizar testes simples sobre os dados, os gatilhos podem utilizar todo o poder da SQL, podendo ser utilizados para garantir a integridade referencial. Os gatilhos tambm podem ser usados para disparar uma seqncia de modificaes em diversas tabelas relacionadas de um Banco de Dados. Dependendo do SGBD relacional, um gatilho pode ter acesso a outras bases de dados pela rede atravs da chamada de procedimentos remotos. Pode-se tambm utilizar gatilhos para garantir regras de negcios. Um pedido de cliente pode ser recusado se a sua conta corrente apresentar dbito pendente, por exemplo.

Esquemas de Bloqueio

34

O processamento de aplicaes com transaes requer o uso de esquemas de bloqueio para garantir que o registro de um Banco de Dados que um usurio esteja acessando permanea protegido enquanto estiver sendo utilizado. Registros bloqueados por uma transao no podem ser atualizados at seu desbloqueio. Os bloqueios podem ser compartilhados ou exclusivos. Registros sob bloqueio compartilhado podem ser lidos por mais de uma transao. Bloqueios exclusivos so utilizados quando uma transao vai atualizar um registro e neste caso nenhum outro acesso ao registro permitido. Os bloqueios podem ser a nvel de blocos de registros, a nvel de registros ou a nvel de atributos.

35

As caractersticas dos Bancos de Dados relacionais podem ser assim resumidas: Caracterstica Descrio de Dados Organizao de Dados Construo de Dados Navega Busca o Referncias cruzadas Mapeamento Processamento Descrio Atributos, Tuplas, Tabelas Coleo de arquivos independentes relacionados logicamente pelos valores comuns de atributos DDL relacional Buscas simples e complexas Por meio de junes (SQL) Apenas dinmico Conjuntos

36

10 - Bancos de Dados Orientados a Objeto


Conceito As abordagens orientados a objeto foram inicialmente desenvolvidas como resultado de pesquisas de tcnicas de programao mais eficientes. Os bancos de dados orientados a objeto ainda esto em fase inicial de desenvolvimento. Dentre os produtos comerciais existentes em 1998 destacam-se Versant, Ontos, Objectivity DB e Open DB. O desenvolvimento das maiores aplicaes de bancos de dados orientados a objeto tem ocorrido nas aplicaes de pequeno volume e com baixa taxa de transaes. Bancos de Dados orientados a objeto funcionam melhor em ambientes extremamente complexos mas que possuam parmetros de operao bem definidos. Os campos mdico e de engenharia tem servido como alvo preferencial de aplicao dessa tcnica.

A expresso orientado a objeto refere-se ao conceito de reduo da identidade e das complexidades de todas as coisas de um sistema ao estado de simples objetos. No mundo orientado a objeto todas as pessoas, coisas, eventos e transaes so consideradas objetos. Esta aproximao diametralmente oposta s abordagens tradicionais que se concentram na separao de dados e processos. A orientao a objeto baseia-se nos seguintes conceitos: 161* Abstrao - O projeto de sistemas deve basear-se em atributos abstratos e nos processos e no na implementao de tarefas 162* Encapsulamento - As operaes devem ser autnomas e independentes umas das outras 163* Partilhamento - Nenhuma funo deve ser armazenada, movida ou manipulada mais do que o estritamente necessrio So conceitos importantes na orientao o objeto:

164* Polimorfismo - As caractersticas das operaes e dados devem ser ligadas aos objetos. No mundo
orientado a objeto nenhum programador trabalha com tabelas e sim com um objeto que a combinao dos programas e tabelas que o compem. Para adicionar um registro de empregado a uma tabela em um ambiente no orientado a objeto o programa deve obter todas as informaes sobre o empregado, validar lexicalmente a entrada, verificar a classificao e as interdependncias entre esse registro e os j existentes no banco de dados e, finalmente, fazer a incluso do registro. No ambiente orientado a objeto cria-se um objeto empregado. Esse objeto faz todas as rotinas de validaes e faz a incluso do registro para o programa. O trabalho do usurio final reduz-se substancialmente. 165* Herana - Os objetos possuem uma hierarquia de pertinncia a diversas super classes, classes e sub classes Uma rea na qual a orientao a objeto tem tido grande sucesso a rea de interfaces grficas com o usurio e produtos de janelas. Nestes ambientes o mundo do usurio feito de objetos tais como arquivos, programas, bancos de dados e de eventos tais como apontamento por setas, acionamento de botes de mouse e outros. A orientao a objeto mais uma abordagem do que um mtodo.

37

Escopo de controle das aes pelas linguagens de programao


Antes da existncia dos Bancos de Dados

Programas e Programadores <=============================================================> Apresentao dos dados Preparao e Imposio de Gerncia de acesso processamento dos conformidade com aos dados dados as regras de negcio e de integridade Utilizando Bancos de Dados no Relacionais

Programas e Programadores <============================================> Apresentao dos dados Preparao e Imposio de processamento dos conformidade com dados as regras de negcio e de integridade Utilizando Bancos de Dados Relacionais

SGBD e DBA <============> Gerncia de acesso aos dados

Na arquitetura relacional com o emprego de procedimentos armazenados, integridade referencial e outros meios de validao de regras, os programadores so aliviados das tarefas de codificar a lgica dessas verificaes. Programas e Programadores <============================> Apresentao dos dados Preparao e processamento dos dados SGBD e DBA <============================> Imposio de Gerncia de acesso conformidade com aos dados as regras de negcio e de integridade

Utilizando Bancos de Dados Orientados a Objeto A orientao a objeto procura transferir a responsabilidade pela preparao, processamento, imposio de restries de integridade e gerenciamento de dados para rotinas especializadas que cuidam de tudo nas aplicaes. Programas e Programadores <============> Apresentao dos dados SGBD e DBA <============================================> Preparao e Imposio de Gerncia de acesso processamento dos conformidade com aos dados dados as regras de negcio e de integridade

38

39

Programao orientada a objeto Objetos, em verdade so apenas programas especializados, parte do fluxo dos programas normais para ajudar a modulao do processamento tanto quanto possvel. Para fazer com que um programa escrito na linguagem C, por exemplo, possa tratar objetos, a linguagem C++ permite a criao de um tipo especial de programa chamado de classe. Uma classe um pequeno programa que tem como tarefa o gerenciamento de objetos. As classes so definidas da mesma maneira que os programas, com a exceo de uma nova declarao, chamada de declarao de classe, que adicionada seo de incluso do programa. So definidos dois tipos de funes e variveis dentro da classe: aqueles que os prprios programas da classe podem usar (privados) e aqueles que qualquer programa chamador possa usar (pblicos). Em C++ as classes (objetos) so definidos como programas autnomos de um tipo especial. Estes programas podem ser chamados dentro de um programa C++ pela invocao de seus nomes. Para trabalhar com registros de banco de dados os programas devem ter uma rea de memria cuja estrutura coincida com as estruturas a serem utilizadas pelos registros. Para inicializar esta rea os programas utilizam comandos especiais denominados construtores, que so funes sem entrada e sem sada. Sua invocao simplesmente inicializa reas de armazenamento. Destrutores liberam reas de memria.

Instncias e Persistncia Como o ambiente orientado a objeto muito dinmico, a permanncia dos dados armazenados na memria dos programas considerada transiente. Os valores de uma linha de dados so temporrios. A existncia de valores em uma estrutura de dados chamada de instncia ou ocorrncia do objeto. As estruturas armazenadas em discos so consideradas permanentes e os objetos correspondentes so considerados persistentes.

O padro ODMG O padro de bancos de dados orientados a objeto o Object Database Management Group, ou ODMG-93. Este documento o padro de fato usado como guia da construo dos bancos de dados cobrindo no s a construo como o comportamento dos objetos. Este documento compe-se de: 166* A definio de um modelo de objeto bsico 167* Object Definition Language, ou ODL, que constri o BD 168* Object Query Language, ou OQL, que especifica a linguagem de acesso aos BD 169* Ligaes para Smalltalk e C++

ODL No mundo dos BD orientados a objeto, um BD definido logicamente por um esquema que identifica todos os objetos que compem o mundo do BD e as relaes entre cada um deles. Cada objeto deve ser definido. Cada coleo lgica de objetos (mais ou menos como as tabelas) referenciada como um tipo de objeto dentro do esquema. Um tipo de objeto possui diversas caractersticas incluindo chaves, caractersticas de persistncia, atributos, relaes e operaes. A linguagem ODL fornece a sintaxe para cada um deles.

40

OQL A linguagem OQL bastante similar SQL e, como tal, mal ajustada a muitas das tarefas esperadas pelos puristas da orientao a objetos. Em conseqncia a popularidade da OQL pequena. Enquanto os bancos de dados anteriores aos BD relacionais forneciam meios de fazer o armazenamento e recuperao de informaes de maneira mais rpida, os BD relacionais e orientados a objeto desafiam as crenas bsicas que a maioria das pessoas possua a respeito do relacionamento entre programas e bancos de dados. As caractersticas dos Bancos de Dados orientados a objeto podem ser assim resumidas: Caracterstica Descrio de Dados Organizao de Dados Construo de Dados Navega Busca o Referncias cruzadas Mapeamento Processamento Descrio Relacionamentos, Atributos, Tipos de Objetos, Esquemas Coleo de objetos independentes de mesmo tipo, relacionados fisicamente por ponteiros Linguagem de Definio de Objetos Buscas simples e complexas por programao ou por meio de OQL Por ponteiros Permite mapeamento esttico e dinmico Apenas um registro de cada vez

41

11 - Arquitetura do Sistema Estrela


Definies

O esquema estrela atualmente a metodologia preferencial no projeto de Data Warehouses. Sua popularidade provm de uma viso dos dados centrada em consultas e muito adequada a anlise dos dados. Os Bancos de Dados Relacionais, ou RDBMS, tem larga experincia em OLTP e pela caracterstica da demanda maximizam o acesso concorrente e otimizam o desempenho das operaes de incluso, atualizao e excluso.
Viso Centrada em Consultas

O esquema estrela fornece uma abordagem distinta, baseada nos requisitos dos analistas sobre uma viso dos seus dados centrada em consultas. Os esquemas estrela classificam as informaes em dois tipos de tabelas. As tabelas de fatos contm linhas de fatos indexados ou o ncleo dos elementos de dados sendo analisados. O outro tipo de tabelas o das tabelas de dimenso que contm atributos sobre os fatos.

42

Exemplo: Inicialmente exibe-se um esquema clssico de OLTP


Companhia Origem_de_embarque

Ordem_de_compra

Destino_de_embarque

Item_de_ordem_de_compra

Item

Para o mesmo problema o esquema estrela da forma


Companhia Origem_de_embarque

Compra

Item

Data

Destino_de_embarque

Nos esquemas estrela uma tabela de fatos muito maior do que qualquer tabela de suas dimenses. muito mais fcil para um analista de negcios formular questes em um esquema estrela do que em um esquema OLTP. No exemplo anterior pode-se buscar fatos especficos sobre compras atravs de um conjunto de dimenses, tais como Origem_de_embarque, Destino_de_embarque e Item. As consultas podem ir diretamente aos fatos chave enquanto que nos esquemas OLTP os analistas gastam muito tempo navegando no labirinto de tabelas correlacionadas.

43

Desafios do processamento de Junes

Nos RDBMS a necessidade de recuperao de informao de mltiplas tabelas em uma s consulta, ou processamento de juno, severamente limitada. Se uma juno complexa envolver mais de duas tabelas, um RDBMS OLTP necessita dividir artificialmente a consulta em uma srie de junes de tabelas duas a duas. A seleo da ordem das junes duas a duas causa tremendo impacto no desempenho das consultas e, em conseqncia, os RDBMS OLTP tradicionais fazem um enorme esforo de busca da ordem ideal de execuo das junes. Considerando que nos esquemas estrela a tabela de fatos muito maior do que as demais e se forem utilizadas junes de tabelas duas a duas ela sempre aparecer nas junes, pode-se tentar outro mtodo. Pode-se obter o produto cartesiano de todas as tabelas de dimenses e s fazer a juno com a tabela de fatos no ltimo instante. Caso o custo de gerao do produto cartesiano seja inferior ao custo de gerao de resultados intermedirios de junes com a tabela de fatos, esta otimizao ter valido a pena. O paralelismo pode ajudar de duas formas. Pode reduzir o tempo de execuo de uma consulta individual e tambm pode permitir a uma aplicao tratar consultas adicionais ou mais complexas sem degradao do tempo mdio de execuo de consulta. Estas duas propriedades so chamadas de acelerao e ampliao.
Algoritmos para a Otimizao do Processamento de Junes

A capacidade de execuo de junes de mltiplas tabelas com alta velocidade, em um nico passo, pode ser obtida por uma tecnologia chamada juno estrela. Esta tcnica similar indexao. Quando ndices so definidos sobre uma s coluna de uma tabela e a consulta restringe-se a uma coluna, o RDBMS pode usar o ndice para identificar rapidamente as linhas de interesse. A tecnologia juno estrela suportada pela criao de ndices especializados, chamados de ndices estrela, criados sobre uma ou mais colunas de chaves estrangeiras de uma tabela de fatos. Os ndices estrela contm informao comprimida que relaciona as dimenses da tabela de fatos com as linhas que contm aquelas dimenses. O algoritmo de juno estrela pode fazer uso do ndice estrela para identificar de maneira eficiente todas as linhas requeridas para uma dada juno. Como os ndices estrela so criados sobre as chaves estrangeiras nenhuma hiptese feita sobre o tipo de consulta que possa fazer uso deles. Existem algumas similaridades entre os ndices estrela e os ndices tradicionais baseados em mltiplas colunas. Uma diferena capital consiste no fato de que os ndices baseados em mltiplas colunas referem-se a uma s tabela enquanto um ndice estrela refere-se a mltiplas tabelas. Outra diferena que, com ndices sobre mltiplas colunas, se uma consulta no estender-se sobre todas as colunas do ndice composto, o ndice no pode ser completamente utilizado a menos que as colunas especificadas sejam as primeiras do sub conjunto. Por exemplo, Index (A, B, C) pode ser empregado se a consulta estende-se sobre A + B, ou sobre apenas A mas no caso a consulta estenda-se sobre A + C. Ao contrrio dos ndices baseados em mltiplas colunas, um ndice estrela pode ser utilizado independentemente de onde as tabelas referenciadas aparecem.

44

O algoritmo de juno estrela pode gerar conjuntos de resultados para linhas de interesse e evitar a gerao de produtos cartesianos nas quais no existam linhas de interesse.
Exemplo

Fazendo referncia ao exemplo anterior considere-se que uma loja de animais representada por tabelas como as que se seguem: Tabela Item Companhias Datas Compras Cardinalidade 500 200 300 1.000.000

Se uma dada consulta selecionasse 50 Itens, 20 Companhias, 30 Datas e 1000 Compras ento as junes de tabelas duas a duas poderiam ser da forma: Tabela 1 Compras Compras + Item Compras + Item + Data Total Tabela 2 Item Data Companhia Cardinalidade 100.000 10.000 1.000 111.000

Caso fossem utilizados produtos cartesianos o produto cartesiano teria uma cardinalidade de 50 x 20 x 30 = 30.000 linhas. A juno desse produto cartesiano com a tabela de Compras produziria 1.000 linhas e o custo total de processamento seria de 31.000 linhas. Uma juno de mltiplas tabelas em um passo nico geraria um nmero de combinaes ligeiramente superior ao das linhas selecionadas na tabela de compras, talvez 1.100 linhas. Neste caso a abordagem por produto cartesiano 3,5 vezes melhor do que a abordagem de junes de tabelas duas a duas mas o algoritmo de acelerao de consultas 101 vezes mais eficiente. possvel ter diversos ndices estrela em uma tabela para garantir que sempre exista um ndice timo para qualquer consulta. Pode-se utilizar diversos tipos de ndices, tais como rvores B e mapas de bits e sempre possvel testar vrios ndices para verificar qual o mais adequado para cada situao.

45

12 - Sistemas OLAP
Definies

O Processamento Analtico em Linha, ou ainda Online Analytical Processing (OLAP), d origem aos Sistemas OLAP. Estes sistemas so tambm conhecidos como bancos de dados multidimensionais, planilhas de clculo multidimensionais, sistemas de informaes executivas e sistemas de data warehousing. OLAP consiste em uma maneira especial de organizar e exibir dados para facilitar o acesso e a anlise por parte dos usurios. As variaes de OLAP denotadas por ROLAP e DOLAP referem-se a Relational OLAP e Database OLAP. Estas variaes tratam de produtos de front-end OLAP que utilizam bancos de dados relacionais (ROLAP) ou no (DOLAP). A popularidade das aplicaes OLAP devida maneira poderosa e amigvel fornecida aos usurios para a navegao atravs de grandes bancos de dados multidimensionais de maneira intuitiva.
Exemplo de Aplicao

Como exemplo considere-se uma cadeia de lojas de animais de estimao. A cadeia tem centenas de lojas organizadas por cidade, estado e regio do pas e esta organizao constitui a primeira dimenso ou hierarquia geogrfica. Existe tambm uma organizao por famlias de animais (peixes, mamferos, rpteis, insetos, etc.), dentro de cada famlia existem diversos tipos (mamferos compreendem ces, gatos, roedores, etc.), em cada tipo existem diversas raas (ces compreendem dobermans, filas, pastores, etc.) e em cada raa existem diversos animais (dobermans podem chamar-se rex, lulu, brutus, etc.). Esta seqncia consiste a segunda dimenso, a hierarquia de animais, como se pode ver abaixo: Mamferos Ces Doberman rex lulu brutus mike paquita lassie pluto capeto milu duque flix mimi jerry mickey peralta

Pastor Fila Gatos Roedores Siams Angor Rato Camundongo Hamster

46

O banco de dados organiza-se tambm por vendedores, por gerentes de distritos e gerentes regionais consistindo na terceira dimenso ou hierarquia de vendas. Para montar uma aplicao necessrio definir quais os dados reais que o usurio ir poder pesquisar. No exemplo em tela ser considerado o dado volume de vendas. Em casos reais seriam necessrios dezenas de valores, tais como preos de animais, lucro, etc. A tela inicial do sistema poderia ser do tipo: Ttulo Dimenso Animais Ltda. - Relatrio por regio Geografia Animais Norte Sul Leste Oeste

Vendas $100000 $400000 $250000 $150000 $900000

Uma tela seguinte mostra a quebra por regio de vendas: Ttulo Dimenso Animais Ltda. Geografia

Animais Volume total de vendas

Vendas $900000

Caso fosse acionado um clique sobre o indicador de uma das regies obter-se-ia: Ttulo Dimenso Animais Ltda. - Gerentes de Distrito na Regio Leste Geografia Animais Vendas Jos de Souza $80000 Manoel da $70000 Conceio La lvares $100000 $250000

47

Caso se desejasse obter as vendas para um certo gerente de distrito pode-se acionar um clique no nome do gerente e ento acionar outro clique no indicador de animais obtendo a tela. Ttulo Dimenso Animais Ltda. - Venda de Animais por Manoel da Conceio Geografia Animais Vendas Mamferos $40000 Peixes $20000 Rpteis $10000 $70000

Pode-se navegar em cada uma das hierarquias.


Histrico

OLAP originou-se em 1962 com a linguagem APL que introduziu o conceito de anlise e processamento multidimensional de grandes arrays de dados para tornar inteligvel informao complexa. O primeiro produto tpico de OLAP foi o Express, da IRI, liberado nos anos 70. Esta ferramenta atualmente faz parte dos produtos Oracle. Nos anos 80 surgiu um novo paradigma, na forma dos Executive Information Systems, ou EIS. O ponto de vista da observao dos EIS levou os produtores de software a introduzir as interfaces que se tornariam conhecidas como OLAP.
Opes de Visualizao

Os produtos OLAP podem apresentar diversos estilos de fornecimento de capacidade de gerao de relatrios multidimensionais. 1- Estilo direto de linhas aninhadas, uma varivel, uma dimenso e uma hierarquia em quatro partes. Pas Brasil Brasil Brasil Brasil Brasil Brasil Brasil Mxico Mxico Mxico Mxico Regio Leste Leste Leste Sul Sul Norte Norte Centro Oeste Sul Leste Cidade Rio de Janeiro Rio de Janeiro Niteri Curitiba Florianpolis Manaus Belm Cidade do Mxico Acapulco Cancun Vera Cruz CEP 20510-000 20062-970 24001-000 80001-000 88010-000 69001-000 66017-000 1 4 9 2 Vendas 215440 5720 38450 45300 21770 15830 28710 150880 90120 50430 7540

48

2- Estilo esparso de linhas aninhadas. Pas Brasil Regio Leste Cidade Rio de Janeiro Niteri Curitiba Florianpolis Manaus Belm Cidade do Mxico Acapulco Cancun Vera Cruz CEP 20510-000 20062-970 24001-000 80001-000 88010-000 69001-000 66017-000 1 4 9 2 Vendas 215440 5720 38450 45300 21770 15830 28710 150880 90120 50430 7540

Sul Norte Mxico Centro Oeste Sul Leste

3- Estilo empilhado de linhas aninhadas. Brasil LESTE Rio de Janeiro Niteri 24001-000 SUL Curitiba 80001-000 Florianpolis 88010-000 NORTE Manaus 69001-000 Belm 66017-000 28710 18710 10000 15830 8830 7000 21770 11770 10000 45300 25300 20000 38450 38450 10000 CEP 20510-000 20062-970 Vendas 215440 5720 Renda 115440 3720 Custo 100000 2000

Seja qual for o estilo adotado o resultado final deve ser uma exibio de dados na qual se possa navegar facilmente.

49

O Desafio das grandes massas de dados

O grande problema das ferramentas OLAP consiste em armazenar e recuperar dados de forma que os tempos de resposta sejam pequenos e os custos do sistema baixos. Para visualizar o significado de processamento de informao multidimensional considere-se o exemplo abaixo: * Uma linha com uma pessoa e uma dimenso. Eusbio Pimentel Rua Cotingo, 735 $ 5200 Abr

* Muitos indivduos, com a mesma informao, resultando em duas dimenses. Eusbio Pimentel Aurlio Tarqunio Pedro Almeida Luza Franco Rua Cotingo, 735 Praa Seca, 412 Rua Viuva Lacerda, 15 Rua General Artigas, 443 $ 5200 $ 1700 $ 3800 $ 2900 Abr Jan Mar Fev

50

* Trs dimenses.

* Quatro dimenses.

Vendas de 1996

Vendas de 1997

51

Vendas de 1998 A exploso combinacional vem do fato que o processamento multidimensional trata com o produto cartesiano dos dados. Suponha-se que deva-se tratar com dados tais como volume de vendas e que se deseje sumariar este volume de vendas sobre uma dimenso, por exemplo a dimenso geogrfica. Hipteses Quantidade de animais vendidos por ano Espao para armazenar o volume de vendas Itens de anlise na dimenso geogrfica

Espao para armazenar cada chave Espao para o ncleo de dados Espao para as demais chaves

1.000.000 5 Bytes Pas Regio Estado Cidade Loja que fez a venda 10 Bytes 5 MB 50 MB

52

O Banco de dados resultante armazena tabelas totalmente no normalizadas com 55 MB, do qual um pequeno trecho seria da forma: Hierarquia de Animais Mamfero Ces s Mamfero Ces s Mamfero Ces s Mamfero Ces s Mamfero Ces s Mamfero Ces s Mamfero Ces s Mamfero Ces s Mamfero Ces s Mamfero Gatos s Mamfero Gatos s Mamfero Gatos s Mamfero Roedores s Mamfero Roedores s Mamfero Roedores s

Doberman Doberman Doberman Pastor Pastor Pastor Fila Fila Fila Siams Persa Angor Rato Camundongo Hamster

rex brutus mike paquita lassie pluto capeto milu duque flix tom mimi jerry mickey peralta

$ 1412 $ 1315 $ 1280 $ 750 $ 980 $ 670 $ 1100 $ 790 $ 910 $ 340 $ 480 $ 440 $ 80 $ 150 $ 230

Este tipo de armazenamento muito eficiente para determinar o volume de vendas de mamferos, por exemplo: basta fazer acumulao de registros seqenciais. Todavia, esta eficincia s existe ao longo da dimenso escolhida. Basta imaginar um usurio desejando saber qual o volume de vendas de animais cujos nomes comecem com a letra f, por exemplo, e verificar que a eficincia ser muito baixa pois haveria necessidade de varredura total do Banco de Dados. evidente que nenhum DBA adotaria relaes no normalizadas como estas. Em vez disso usam-se ndices e executam-se junes de tabelas. Pode-se criar um ndice para
53

cada dimenso ou criar um ndice dimensional que engloba toda a hierarquia e aponta para os ndices. Isto permite reduzir a demanda de armazenamento e aumentar o rendimento. Contudo os problemas no desaparecem. Se os ndices acompanham as dimenses e as consultas so apenas sobre informaes sumariadas ao longo dessas linhas os resultados sero bons. Por outro lado, informaes no dimensionais podem requerer a varredura de todo o banco de dados.

54

Acrescentando mais uma dimenso

Quando se adiciona outra dimenso no mais ser possvel ter os dados organizados para que sejam otimizadas as consultas sumariadas em ambas as dimenses. Pode-se apenas fazer a classificao ao longo de uma das dimenses. Nem sempre a incluso de nova dimenso traz impacto muito negativo pois, em alguns casos, as novas dimenses so complementares s j existentes. A ttulo de exemplo, caso fosse adicionada a dimenso de tempo loja de animais armazenando os valores de vendas por cinco anos haveria novo critrio de hierarquia. Passam a existir dimenses de ano, trimestre, ms e data no banco de dados. A agregao de vendas por diferentes perodos de vendas complica o BD mas no muito. Adicionando a dimenso de tempo ao BD existente, o que se obteria seriam dados organizados primeiro por ano e depois por hierarquia animal. Utilizando ndices ainda possvel obter bom rendimento do BD cuja amostra se segue: Hierarquia de Animais 1995 Mamfero s 1995 Mamfero s 1995 Mamfero s 1996 Mamfero s 1996 Mamfero s 1996 Mamfero s 1996 Mamfero s 1997 Mamfero s 1997 Mamfero s 1997 Mamfero s 1997 Mamfero s 1997 Mamfero s 1998 Mamfero s 1998 Mamfero s 1998 Mamfero s Ces Gatos Gatos Ces Ces Ces Gatos Ces Ces Ces Roedores Roedores Ces Ces Roedores Pastor Angor Siams Doberman Doberman Fila Persa Doberman Fila Fila Hamster Rato Pastor Pastor Camundong o paquita mimi flix brutus mike capeto tom rex milu duque peralta jerry lassie pluto mickey $ 750 $ 440 $ 340 $ 1315 $ 1280 $ 1100 $ 480 $ 1412 $ 790 $ 910 $ 230 $ 80 $ 980 $ 670 $ 150

55

56

Dimenses No Complementares

Suponha-se o caso de se desejar adicionar outras dimenses tais como: 170* Clientes 171* Vendedores 172* Cor do animal 173* Qualquer outro nmero de critrios de consulta perfeitamente vlidos Nesta situao descobre-se que no h maneira de organizar os dados para otimizar todas as opes. Em resumo, processamento do tipo OLAP necessita tratamento diferente do processamento normal dos bancos de dados. Quanto mais dimenses existirem mais complexo ser o processamento a ponto de se tornar invivel. Uma soluo alternativa para esse problema efetuar o clculo prvio de todas as agregaes previsveis. Assim, qualquer consulta pode ter resposta quase instantnea uma vez que tudo que o sistema tem de fazer fornecer cada viso possvel dos dados, encontrar o registro adequado de agregao e exibi-lo. Este clculo prvio resolve o problema mas aumenta a quantidade de dados que necessrio armazenar. O ncleo de dados ou dados de nvel mais baixo, no exemplo presente, compreende de 5 MB. As outras chaves necessitam de mais 50 MB. Alm disso passa a ser necessrio armazenar os valores pr calculados e suas chaves. Em conseqncia os volumes de dados a armazenar crescem exponencialmente. Para determinar o nmero necessrio de valores pr calculados precisa-se descobrir quantos valores de agregao existem (a agregao dos nmeros de vendas para todos os diferentes nveis de agregao que um usurio possa pedir). Em uma hierarquia simples unidimensional o nmero de valores a ser armazenados pode ser obtido de
x + di
i =1 n

, onde:

x nmero de valores ao nvel bsico ou nmero de registros da base original n nmero de dimenses a considerar d1 nmero de valores na dimenso 1 ou nmero de valores nicos que a dimenso de mais alto nvel possa conter d2 nmero de valores na dimenso 2 ou nmero de valores nicos que a dimenso de segundo mais alto nvel possa conter dn nmero de valores na dimenso n ou nmero de valores nicos que a dimenso de n-simo mais alto nvel possa conter

57

Para o banco de dados do exemplo, o que se tem : Abrangncia Pases Regies por pas Estados por regio Cidades por estado Nmero de registros base Total Quantidad e 5 4 5 3 1.000 Indicao 1x5 5x4 20 x 5 100 x 3 1 x 1.000 Resultado 5 20 100 300 1.000 1.425

O nmero de valores pr calculados necessrio de 1.425. O acrscimo de volume para uma dimenso no quase nada comparado com o que acontece quando mais de uma dimenso envolvida. Adicionando a dimenso do tempo necessrio armazenar dados sumariados para anos, trimestres, meses, semanas e dias, alm daqueles para a geografia. Abrangncia Anos Trimestres Meses Semanas Dias Total Quantidad e 5 4 3 4 7 Indicao 1x5 5x4 20 x 3 60 x 4 240 x 7 Resultado 5 20 60 240 1.680 2.005

Deve-se armazenar ento 1.000.000 + 425 + 2.005 = 1.002.430 dados. Caso se desejasse verificar as vendas em um dado perodo de tempo e um dado espao (vendas em Belo Horizonte no dia 12 de Maro de 1997, por exemplo) dever-se-ia armazenar as intersees de dados. Multiplicando os nmeros de nveis das duas hierarquias obter-se-ia 2.005 x 425 = 852.125. Em resumo, um BD com 1.000.000 de valores de vendas armazenados em 5 bytes cada cresce para 852.125 x 5 = 4.260.265 Bytes que devem ser adicionados aos 5 MB devidos ao milho de registros iniciais, obtendo 9.272.775 Bytes. Acrescentando ainda mais dimenses ao BD os nmeros explodem.

Soluo do Problema nos Produtos OLAP

Uma primeira abordagem de soluo do problema consiste em armazenar todos os dados ao mais baixo nvel e permitir ao sistema calcular dinamicamente as intersees do sistema medida que forem solicitadas. O problema bsico dessa abordagem que medida que se acrescentam novas dimenses diminui a capacidade do projetista do BD de otimizar o projeto.
58

Uma segunda abordagem consiste no clculo prvio de todos os valores que os usurios possam desejar e armazenamento desses valores. Esta abordagem necessita de enorme quantidade de espao de armazenamento e de rotinas de manuteno do BD extremamente complexas consumindo muito tempo de processamento. Como se v ambas as abordagens so problemticas e os produtos comerciais consistem em misturas das duas abordagens.

Abordagens Fundamentais OLAP

O quadro abaixo resume algumas abordagens da tcnica OLAP e suas caractersticas. Abordagem Esquema estrela Clculo prvio Clculo dinmico Arquiteturas hbridas com clculo prvio e dinmicas Modelos de extrao incremental Caracterstica Utilizao de uma tabela de fatos e de mltiplas tabelas de dimenses ou atributos dos registros de fatos. Exige demasiado do espao de armazenamento. Exige demasiado da memria e do processador. O sistema armazena os dados de base e alguns valores pr calculados relacionados estrategicamente. Por este modelo quando um usurio entra no sistema ele identifica um subconjunto dos dados nos quais deseja navegar. O sistema encontra os dados bsicos no BD e interativamente constri o cubo de dados desejado.

Concluso

OLAP nada mais do que uma extenso lgica dos mesmos tipos de funcionalidades de BD com os quais sempre se conviveu. Em verdade os problemas de OLAP restringem-se natureza fsica dos dados e do BD, capacidade do projetista na preveno da natureza das consultas que o usurio possa propor e capacidade do software de fornecer os dados de acordo com esses critrios.

59

13 - Perfil de armazenamento

Resumo O perfil de armazenamento , de maneira geral, abrange os tpicos que se seguem:

1 - Tcnicas usuais de Entrada e Sada 1.1 - Blocagem 1.2 - Bufferizao 2 - Maneiras de armazenamento de dados 2.1 - Compresso 2.2 - Seqencial 2.3 - Agrupamento 2.4 - Tabelas de ndices 2.5 - Tabelas residentes em memria 3 - Maneiras de localizar dados 3.1 - Espalhamento 3.2 - Indexao 3.2.1 - Busca binria 3.2.2 - rvores B 3.2.3 - Listas invertidas 3.2.4 - Mapas de bits 3.3 - Encadeamento 4 - Maneiras de efetuar a navegao atravs do arquivo 4.1 - Controlada por programas e com baixa carga ou overhead 4.2 - Controlada pelo sistema e com alta carga ou overhead 5 - Tcnicas de associao atravs do arquivo 5.1 - Ponteiros 5.2 - Varredura 5.3 - ndices 5.4 - Espalhamento

60

16 - Perfil de Administrao
Caractersticas O perfil administrativo compe-se de caractersticas opcionais. Um sistema pode funcionar sem controles de segurana, concorrncia ou recuperao. Estas funes podem acarretar uma sobrecarga de processamento de 10 a 30% sobre o sistema e necessitam da dedicao de especialistas de administrao, administradores de bancos de dados, administradores de segurana alm de pessoal de suporte de sistemas para funcionar. Para o atendimento a mltiplos usurios de um BD necessrio que sejam criadas reas especiais na memria chamadas de reas de trabalho dos usurios. preciso tambm a criao de identificadores para usurios e para transaes. Quando uma requisio de acesso a bancos de dados recebida, o BD aloca uma rea de memria para rea de trabalho do usurio , que usada como rascunho. Depois disso o sistema identifica o usurio e a transao executa as atividades requisitadas e retorna os resultados ao usurio. O conjunto de todas as atividades executadas em favor de uma transao recebe o nome de teia. Uma unidade de trabalho computacional uma tarefa e seu conjunto constitui uma teia.

Transaes Uma transao um conjunto de operaes constituindo uma unidade de trabalho no ponto de vista do usurio. Consiste de uma seqncia de operaes que transforma o estado consistente de informaes armazenadas em outro estado consistente, sem contudo preservar a consistncia nos pontos intermedirios. Para ser caracterizada como tal, uma transao deve atender a quatro requisitos : 174*Atomicidade - Propriedade caracterizada pelo fato da transio de estados ocorrer entre o estado inicial e final sem caracterizar nenhum estado intermedirio. Em resumo, ou se completa toda a transio ou nada se faz. 175*Consistncia - Propriedade obtida pela observncia das restries que caracterizam a transao antes de efetivamente dar inicio mesma. 176*Isolamento - Os efeitos da transao s devem tornar-se visveis aps a concluso da mesma. 177*Durao - As transaes so perenes s podendo ser desfeitas por outras transaes. Os sistemas que suportam transaes gerenciam a consistncia assegurando que uma transao seja inteiramente executada ou inteiramente cancelada. Para executar uma transao inicialmente verifica-se a viabilidade de execuo de cada operao elementar. Havendo viabilidade disparado o processo COMMIT para o inicio da transao, caso contrrio disparado o processo ROLLBACK que desfaz operaes porventura executadas e libera os bloqueios. Ponto de sincronizao um ponto limite entre duas transaes consecutivas, isto , um ponto onde as informaes esto em estado consistente. Pontos de sincronizao so estabelecidos de trs maneiras :Inicializao do programa, COMMIT e ROLLBACK. A execuo de um programa consiste em uma seqncia de transaes. Transaes so unidades de trabalho e de recuperao. Para poder haver recuperao em caso de falha h necessidade de uma agenda de transaes, ou dirio, ou "log". O "log" deve ser gravado antes do disparo de um COMMIT. A maioria dos sistemas de informao baseia-se em transaes. Transaes so definidas como o "tomo" da execuo dos sistemas. Clculos so divididos em pedaos pequenos, resultando em pequenos mdulos, enquanto o sistema lgico dividido em duas partes : a lgica de cada transao individual e a ordem da execuo das transaes. A anlise e a especificao de transaes baseadas em sistemas de informao pode, consequentemente, ser vista como constituda dos seguintes passos : 178* Analise das necessidades do sistema para definir a transao individual, 179* especificao de cada transao individual, e

61

180* definio do fluxo da execuo das transaes.

Cpia de segurana, recuperao e dirios Uma vantagem do uso de BD a capacidade deles de auto recuperao voltando ao estado exato que estavam em determinado ponto no tempo. Esta caracterstica permite que se poupe enorme trabalho e que se evite sensveis prejuzos aos ambientes computacionais. Esta caracterstica permite ainda que os desenvolvedores de aplicaes tenham seu trabalho muito simplificado. Quando a recuperao est habilitada basta ao DBA especificar o instante, no tempo, para o qual se deseja a recuperao e o SGBD providencia a execuo das tarefas necessrias.

Cpias de Segurana As cpias de segurana podem ser feitas pelo sistema de computao ou pelos BD. Quando feitas pelo sistema seu escopo grande e a preciso baixa, englobando discos ou arquivos. Normalmente estas cpias so feitas noite. As cpias feitas pelos BD tem menor escopo e maior preciso. As cpias de segurana podem ser: 181* Incrementais, copiando as alteraes efetuadas aps a ltima cpia. 182* Cpia concorrente, quando os utilitrios de cpia tem de funcionar em tempo compartilhado com as transaes usuais do BD. 183* Utilitrios da cpia de massa, copiando dados sem levar em conta as divises das estruturas dos dados.

Dirios Os dirios armazenam as mudanas dos BD medida que ocorrem. Alteraes em um BD so armazenadas duas vezes sendo uma delas no arquivo de dados e outra no arquivo de dirio (log). A teia de atividades de cada usurio deve ser mantida separada das teias dos demais e cada atividade de cada usurio deve ser registrada. Alguns SGBD gravam os dirios diretamente em arquivos enquanto outros utilizam um buffer de dirios para maior rapidez. Ao lotar um buffer feita sua gravao.

62

Recuperao A recuperao do estado de um BD depende da existncia de cpias de segurana e de dirios. Quando especificado um determinado instante como alvo de recuperao so realizadas as seguintes atividades: 184* Identificao da cpia de segurana mais recente que abrange todas as informaes do escopo determinado. 185* Cpia dessa verso para a rea de trabalho. 186* Identificao nos dirios da primeira transao posterior cpia que est na rea de trabalho. 187* Aplicao rea de trabalho de todas as transaes do dirio, partir da transao selecionada. 188* Substituio da instncia atual do banco pela instncia atualizada na rea de trabalho.

Segurana A segurana dos BD garante as regras de acesso ao BD pelo SGBD. O SGBD e no os programas que decide quem pode ter acesso a que informaes. Reduz-se o trabalho dos programadores e amplia-se a capacidade de gerncia do sistema. O perfil de segurana de um produto de BD compreende vrios nveis: 189* Segurana do BD, impedindo totalmente o acesso ao banco. 190* Segurana de acesso, impedindo o acesso ao banco de usurios no autorizados. 191* Segurana interna, filtrando o tipo de acesso de usurios autorizados. A segurana pode ser aplicada por meio de trs opes:

192* Nenhuma segurana, com acesso irrestrito ao BD. 193* Segurana autnoma, com os usurios conectando-se ao BD por um par sigla/senha independente da
conexo ao sistema. A conexo ao BD define o perfil de acesso do usurio.

194* Segurana mista, na qual o DBA administra os perfis de acesso dos usurios.
Um problema complexo para a segurana de acesso encontra-se em caso de redes. Sistemas autnomos tem seus prprios sistemas de segurana, que devem ser compatibilizados com os correspondentes do sistema hospedeiro e do BD. Em algumas combinaes de situaes podem ocorrer falhas de segurana. O acesso seletivo s informaes feito pela implementao de regras que ficam armazenadas no sistema. Estas regras podem ser armazenadas de duas maneiras: 195* Segurana baseada em catlogos, quando tabelas informam ao sistema quais usurios podem ter acesso a quais tabelas, vistas ou colunas e que tipo de acesso podem ter a esses objetos. 196* Segurana baseada em construtores, quando cada usurio s tem acesso a determinados caminhos, segmentos ou chaves. Estas informaes so geradas durante a construo do BD. A tcnica eficiente porm difcil de administrar e atualizar.

Concorrncia Concorrncia em BD se refere maneira pela qual os produtos de BD tratam as situaes nas quais um agente (usurio ou programa) deseja ter acesso a determinada poro de dados ao mesmo tempo que outro agente. Para fazer esse tratamento o sistema deve armazenar ou a identificao do usurio (ou agente) ou a identificao da transao ou ambas.

63

A concorrncia controlada atravs de bloqueios. Cada poro de dado possui um indicador de bloqueio. Para ter acesso a essa informao preciso consultar o indicador de bloqueio. Se o mesmo estiver livre o acesso permitido e o estado do indicador muda enquanto durar o acesso. O controle do indicador feito por filas.

Nveis de bloqueio Os bloqueios podem ser de vrios nveis: Bloqueio de BD Bloqueio de arquivo ou tabela Bloqueio de unidades lgicas como TABLESPACES ou TABLES Bloqueio de blocos Bloqueio de linhas de tabelas ou registros Bloqueio de campos ou atributos

197* 198* 199* 200* 201* 202*

Tipos de bloqueio Os bloqueios podem ser de dois tipos:

203* compartilhado, no qual a classe do bloqueio pode ler uma informao sem privar os demais
usurios desse direito.

204* exclusivo, no qual geralmente se pretende fazer uma gravao. Os usurios no detentores de
bloqueio perdem acesso informao bloqueada. Os bloqueios podem ainda ser:

205* implcitos, quando disparados por uma requisio de acesso ao dado desejado. 206* explcitos, quando disparados pelo DBA para tirar do alcance dos usurios determinado objeto que
deva ter uso preferencial por dado processo.

Execuo dos bloqueios As requisies de dados podem ter sucesso ou no. Em qualquer situao a requisio retorna um cdigo que os programas devem reconhecer como operao realizada com sucesso, condio de bloqueio, inexistncia de dado, etc. Para maximizar o desempenho do BD as requisies de dados que encontram dados bloqueados devem repetir a tentativa de acesso periodicamente certo nmero de vezes antes de retornar cdigo de bloqueio. Quando a concorrncia leva a elevado nmero de bloqueios utiliza-se a tcnica de escalada de bloqueios. Cada sistema tem uma capacidade mxima de armazenamento de processos bloqueados. Ao se aproximar dessa capacidade existem dois limites: 207* o nmero de bloqueios permitido para cada estrutura 208* o nmero de bloqueios correspondentes a um usurio Ao atingir um limite ocorre a escalada de bloqueios. Quando o nmero mximo de bloqueios em uma estrutura de dados atingido o sistema passa a executar o bloqueio em uma unidade de dados maior e

64

descarta todas as transaes enfileiradas retornando cdigo de erros. Quando um usurio tenta um acesso tendo pendentes transaes em nmero igual ao mximo que lhe permitido, a nova transao no aceita e retorna-se o cdigo de erro. Para agilizar o sistema usurios e programas podem alterar dados temporariamente at ter a garantia de que todas as aes da transao so viveis. Esse tipo de alterao permite que atualizaes concorrentes possam ser feitas em vrios arquivos simultaneamente. O disparo do processo de confirmao ou commit faz com que as alteraes temporrias tornem-se permanentes.

65

Resumo O perfil de administrao , de maneira geral, abrange os tpicos que se seguem: 1 - Abordagem do gerenciamento de transaes 1.1 - Simples ou modo de usurio isolado 1.2 - Compartilhamento de dados 1.3 - Mltiplos usurios 2 - Cpias de segurana, dirios e recuperao 2.1 - Tipos de cpia de segurana 2.1.1 - Cpia total 2.1.2 - Cpia incremental 2.1.3 - Cpia em acesso concorrente com os usurios 2.1.4 - Cpia de massa 2.2 - Opes de dirio 2.2.1 - Log buffers 2.3 - Opes de recuperao 2.3.1 - Nenhuma 2.3.2 - Recuperao apenas atravs das cpias 2.3.3 - Recuperao combinando cpias e dirio 3 - Segurana 3.1 - Segurana de arquivos 3.2 - Segurana de acesso 3.2.1 - Nenhuma 3.2.2 - Autnoma com sigla e senha para o banco de dados 3.3 - Segurana interna 3.3.1 - Usando programas produto de segurana 3.3.2 - Usando catlogos e Data Control Language - DCL 3.3.3 - Usando modificao de construtor de dados 4 - Concorrncia 4.1 - Nveis de bloqueio 4.1.1 - Todo o banco de dados 4.1.2 - O arquivo 4.1.3 - A construo de dados 4.1.4 - A pgina ou bloco (mais comum) 4.1.5 - A linha ou registro 4.2 - Tipos de bloqueio 4.2.1 - Apenas de leitura 4.2.2 - Leitura e Gravao 4.2.3 - Inteno de Bloqueio 4.3 - Invocao de bloqueio 4.3.1 - Implcito 4.3.2 - Explcito 4.4 - Disciplinas de bloqueio 4.4.1 - FIFO 4.4.2 - Deteco de tempo bloqueado 4.4.3 - Escalao de bloqueios 4.4.4 - Deteco de bloqueios fatais 4.5 - Verses 4.5.1 - Mltiplas cpias do mesmo registro ou linha 4.5.2 - Trilha de cpias, modificaes e tempos 66

67

17 - O Perfil de Distribuio
Generalidades A distribuio de BD trata da incorporao de mltiplas plataformas gerando grandes ambientes homogneos de BD. Os computadores pessoais e seus sistemas espalham-se por toda a parte na maioria das empresas e continuam a expandir sua esfera de influncia. Esta enorme expanso tem vantagens mas torna muito difceis a coordenao, verificao e compartilhamento dos dados. Grandes sistemas podem tornar-se de difcil manuteno ao longo do tempo. medida que estes sistemas se tornam maiores e mais velhos menos adaptveis a mudanas eles se tornam. As companhias gastam cada vez mais para obter cada vez menos produtividade de seus sistemas existentes. O mtodo de resolver os problemas tanto dos pequenos sistemas quanto dos grandes integr-los procurando aproveitar os pontos fortes de cada qual deles. Pequenos sistemas contribuem com versatilidade, baixo custo e facilidade de uso enquanto os grandes sistemas fornecem a capacidade de tratar grandes volumes de dados e de gerenciar ambientes complexos. Quanto ao custo, os grandes sistemas encarecem continuamente muito embora tanto o software quanto o hardware tenham preos declinantes. A manuteno dos sistemas que cresce sem parar e impossvel abandon-los ou substitu-los a curto prazo. Aparentemente a nica soluo consiste em gradualmente mov-los para ambientes mais flexveis. Melhores razes custo/benefcio das pequenas plataformas combinadas com facilidades de redes mais rpidas, mais simples e mais baratas tem encorajado as organizaes a se empenharem na migrao para os sistemas distribudos. Um outro vetor na direo dos sistemas distribudos vem do desejo dos gerentes de criar super bancos de dados. Pretende-se que todo e qualquer usurio, no importando o tipo de computador ou terminal que esteja utilizando, possa ter acesso a dados armazenados em qualquer lugar da corporao apenas com uma requisio de dados. Ainda mais, pretende-se que o usurio faa a requisio sem ter a menor idia de aonde esteja o dado desejado. evidente que apenas sistemas distribudos podem se aproximar desse desejo. Resumindo, so razes para a distribuio de sistemas: 209* O custo de hardware 210* O ganho de versatilidade ainda que com perda de desempenho 211* A sofisticao dos usurios 212* A natureza das novas tecnologias

Bancos de Dados Distribudos Um BD distribudo envolve um ambiente de desenvolvimento de aplicaes com mltiplas plataformas. A distribuio de funes pelas plataformas deve ser transparente aos usurios finais. Uma abordagem simplista encara o problema de distribuio fsica de dados, que pode ser da seguinte forma: 213* Movimentao de arquivos off line 214* Download/Upload 215* Compartilhamento de discos virtuais Todas estas tcnicas requerem que o usurio saiba de onde vem os dados e para aonde vo. Nenhuma destas operaes envolve as funcionalidades esperadas de um BD, implicando apenas acesso aos dados e no ao BD. As vantagens desta abordagem so: 216* Baixo custo

68

217* Simplicidade 218* Facilidade de tratamento

69

Para tratar realmente do ambiente de BD, todas as aplicaes de BD podem ser vistas como uma mistura dos componentes funcionais: 219* interface com o usurio 5* funes de gerncia de I/O e telas 6* servios de gerenciamento de transaes 7* servios de execuo das aplicaes 8* servios de requisio ao BD 220* lgica da aplicao 221* funcionalidade de BD 9* Aceitao e gerenciamento de consultas 10* Traduo (Parsing) da consulta 11* Desenvolvimento do plano de consulta 12* Coordenao do plano 13* Execuo de cada parte do plano 222* armazenamento fsico dos dados 14* Partio horizontal, com diviso por linhas 15* Partio vertical, com diviso por colunas (projees) 16* Parties hbridas 17* Replicao

Arquitetura em Camadas Arquitetura em camadas a descrio de como as funes de um sistema esto distribudas ao longo dos domnios fsico, funcional e de rede configurando um modelo unificado. Arquiteturas em uma s camada ocorrem nos computadores pessoais e nas estaes de trabalho. Arquiteturas em duas camadas podem ser dos tipos: 223* Dados fsicos comuns 224* Clusters de hardware 225* Modelo tpico dos main frames 226* Modelo cliente servidor Nos dados fsicos comuns mltiplas verses do SGBD operam em distintos computadores pessoais tendo acesso aos mesmos dados armazenados em um disco comum. O sistema vai precisar de algum tipo de bloqueio para tratar da concorrncia mas, em geral, esse tipo de bloqueio no muito eficiente, alm do que o perfil administrativo deste modelo muito fraco. Nos clusters de hardware, mltiplos computadores, cada qual com uma verso de SGBD esto ligados compartilhando um mesmo espao em disco. A diferena da situao anterior que os bancos de dados dialogam entre si para sincronizao de operaes e, com isso, o sistema aceita maior nmero de transaes sobre os mesmos dados. No ambiente cliente servidor cada par de mquinas tem relacionamento definido, sendo uma delas o cliente, ou requisitante de servios, e a outra o servidor, ou provedor de servios. Ocorre que, como as aplicaes de BD possuem diversos componentes funcionais nos ambientes cliente servidor, os componentes podem se distribuir entre as mquinas de diversas maneiras. Para gerenciar um complexo ambiente cliente servidor, o SGBD deve providenciar os dirios, as cpias de segurana, a recuperao e o controle de concorrncia das transaes sobre as quais s possui controle parcial. Uma das maneiras de fazer isto atribuir a um dos BD a funo de master, que armazena as trilhas de operaes de requisies de dados entre os sistemas e gerencia a concorrncia e a recuperao. O BD orientado a objeto Objectivity-BD um exemplo desse tipo de produto. Outra maneira de gerenciar a distribuio consiste no estabelecimento de protocolos e regras de conduta aos quais todos os BD no ambiente

70

aderem. Neste tipo de organizao cada BD tem o potencial para atuar como master nas transaes iniciadas em sua rea de trabalho. Os produtos de BD relacionais Sybase, Informix e Interbase so exemplos dessa abordagem. Um procedimento padro para a maioria das configuraes de BD no ambiente cliente servidor o chamado two phase commit, ou 2PC. Neste procedimento a deciso de comprometer (efetivar) uma poro do trabalho do BD ou de anular essa poro postergada at que o cliente requisitante da operao receba uma mensagem de validao de cada um dos servidores de BD que estejam envolvidos na transao. Se o cliente receber todas as mensagens de compromisso ele sabe que os dados sofreram as operaes de incluso, excluso ou modificao com sucesso e, s ento, compromete-se com a poro do trabalho. Caso ele no receba todas as mensagens de compromisso as operaes que ele fizera, na transao em curso, so anuladas.

Arquitetura em trs Camadas Dentre os exemplos de arquiteturas em trs camadas pode-se citar:

227* Arquitetura da Web e das Intranets 228* Sistemas de gerenciamento de transaes 229* Organizaes de BD em mltiplas camadas
Na utilizao tpica da Web um usurio, em um computador pessoal, na camada um, conecta-se a um servidor de Web, na camada dois. O servidor de Web controla o trfego entre o cliente e a rede e o servidor de Web executa a maior parte do processamento, tendo a responsabilidade de criar e enviar as requisies de dados para a prxima camada. A prxima camada engloba o servidor de BD. Nos grandes ambientes de produo atuais comum encontrar milhares de usurios de um s sistema. Quando o BD grande e a taxa de transaes alta o problema bastante complicado. Os sistemas de gerenciamento de transaes buscam resolver os problemas assim relatados. Produtos deste tipo, tais como CICS, COMS, Encina, Tuxedo, tornam possvel aos sistemas suportar muitas camadas de funcionalidade criando ambientes homogneos que o software de gerenciamento de transaes consegue tratar. Por exemplo, 10.000 usurios podem se conectar a 100 servidores de transaes e um servidor de BD trata apenas com esses 100 servidores e no com 10.000 clientes. Nos ambientes completamente distribudos cada BD considerado tanto um potencial cliente quanto um potencial servidor para qualquer outra mquina. A posio fsica dos dados irrelevante. Uma requisio de dados (comando SQL) submetida rede sem se importar com o endereo do dado. Cada n da rede sabe se contm a informao requisitada. Caso no contenha a informao o n passa a requisio adiante at que outro n a encontre. Este tipo de distribuio o mais poderoso deles e tambm o que consome maiores recursos. Produtos de BD deste tipo so Oracle, Ingres, Datacom e Interbase.

71

20 - Bancos de Dados na Internet


A Internet e a WWW A Internet nada mais do que uma frouxa confederao de milhes de servidores que partilham determinadas caractersticas. A World Wide Web, ou WWW, uma coleo de aplicaes sistemas de software que rodam na Internet e fornecem certos servios e caractersticas comuns. Os comandos HTML se concentram na exibio de algo na tela de algum navegador ou na recuperao de informaes de algum servidor Web. A conexo de um banco de dados ao ambiente da Web corresponde a conectar um servidor de banco de dados a um servidor de Web. As maneiras de se fazer isso so atravs de: 230* Commom Gateway Interface, ou CGI 231* API 232* Middleware ou produtos de gateway 233* Por aplicaes de Web

CGI CGI a maneira pela qual os programas podem interagir com as pginas da Web. Como simples obter um programa em um servidor para interagir com um banco de dados, CGI a tcnica mais bvia para fazer esse tipo de acesso. CGI o modo padro pelo qual pode-se potencializar as pginas da Web para fazer mais do que simplesmente permitir exibio e navegao. Quando um comando CGI encontrado em uma pgina ele passado ao servidor de Web que executa o programa CGI correspondente. Uma pgina HTML com um comando CGI embutido chama o servidor Web que reconhece o comando CGI como um programa executvel e chama esse programa. O programa retorna seus resultados ao servidor Web que os direciona pgina Web. Os programas CGI so escritos em: 234* C++ 235* scripts UNIX 236* Visual Basic 237* Perl As maneiras mais comuns de um programa CGI ter acesso a um banco de dados so por meio de ISINDEX e por POST e GET. A utilizao de ISINDEX permite aos usurios a digitao de instrues a ser executadas por um servidor Web. O DBA pode escrever programas CGI que executem comandos SQL pr determinados contidos nos programas CGI ou que executem programas de procedimentos armazenados no prprio banco de dados. Neste tipo de utilizao quando o usurio aciona a tecla ENTER o navegador analisa o cdigo HTML, encontra o nome do programa a disparar e concatena a ele o contedo da caixa de entrada que porventura exista na tela. A seguir a cadeia de caracteres obtida encaminhado ao servidor. Quando o programa for executado preciso retornar essa informao ao servidor Web e ao navegador. O programa CGI pode construir pginas e envi-las ao navegador utilizando o stdout. A maneira mais fcil de fazer isso por meio de comandos ECHO. Infelizmente, se fcil para um programa disparar algo muito mais difcil fazer com que um programa CGI consiga paginar bem qualquer resultado retornado pelo servidor.

72

73

GET e POST O comando GET concatena a entrada de dados a um formulrio da mesma maneira que o comando ISINDEX. O comando POST empacota os dados da tela e os transmite como um pacote separado, o que permite a transmisso de mais dados.

API As API mais comuns so a Java, de Sun, e a Activex, da Microsoft. As opes de conectividade de Bancos de Dados Web so JDBC pela Sun e ODBC pela Microsoft.

Produtos de middleware e de gateway Existe uma vasta gama de produtos de conectividade que tornam fcil a tarefa de conectar bancos de dados a cdigo HTML e navegar em complexos ambientes de Internet e Intranets. Dentre estes produtos destacam-se: 238* Oracle Web Listener, Oracle Web Agent, Oracle7 Server 239* Sybase WWW Tools 240* Informix CGI Interface Kit 241* Ingress Tool Archive 242* PROCGI ToolKit

74

21 - Bancos de Dados de Documentos


Histrico Os bancos de dados tradicionais armazenam registros. Existe uma crescente demanda pelo armazenamento de documentos inteiros e esta demanda tem sido expandida pela Web. As primeiras iniciativas no armazenamento de documentos foram atravs de bancos de dados de imagens e de software de catalogao/publicao. Estes sistemas armazenam cpias de imagens dos documentos que se pretende guardar fornecendo capacidade de indexao e busca/recuperao. Microfilmes e micro fichas representam esta abordagem. Sistemas mais recentes captam as imagens e as armazenam como arquivos de imagens digitais que podem ser reproduzidas quando necessrio. O grande problema desses sistemas a indexao que no pode ser automtica. Os usurios tpicos desses sistemas so as agncias governamentais e a rea de varejo nas quais apenas os dados e a indexao baseada em eventos so suficientes para as aplicaes usuais.

Gerncia de documentos: Pesquisa e Desenvolvimento Os maiores desafios para a gerncia de documentos so: 243* Esquemas de indexao - Deseja-se criar ndices de maneira rpida e sem interveno humana. 244* Relevncia contextual - Nem sempre palavras chaves so relevantes. O que se busca a capacidade de busca de objetos baseada nos conceitos e no contexto do objeto buscado. 245* Elos entre documentos e teias - Para que um banco de dados de documentos seja til necessrio que possua capacidade de navegao entre documentos relacionados. 246* Padronizao do formato dos documentos - Esta padronizao dificultada pelo fato de diferentes grupos de usurios precisarem de diferentes tipos de aplicaes para trabalharem em seus documentos. Os bancos de dados de documentos de grande porte existente so: WWW Servios de registro, tal como o Archie Wide rea Information Servers, ou WAIS Mecanismos de busca, robs, aranhas e formigas Bibliotecas digitais corporativas

247* 248* 249* 250* 251*

Deve-se salientar que a Web um grande banco de dados que funciona perfeitamente na ausncia de DBA. Pode-se lembrar que o acionamento de um hiperlink em uma pgina da Web o mesmo que aplicar o comando Get Next Record em uma rede de navegao de um Banco de Dados tradicional.

Servios de Registro e Catalogao na WEB

Archie A primeira coisa a fazer para facilitar o uso da Web consiste na criao de pginas pblicas com ndices para a Web. Esta a mesma tcnica que utilizada nos SGBD.

75

Archie um servio de indexao de arquivos. Existe um servidor principal na Universidade Mc Gill. Mensalmente este servidor l os diretrios de todas as mquinas da Internet registradas como participantes montando um grande arquivo com os nomes dos arquivos. Este arquivo distribudo para diversos servidores Archie. Quando os usurios desejarem encontrar um documento especfico enviam uma lista de palavras chave para um dos servidores Archie. Estes servidores analisam seu arquivo e retornam os nomes de arquivos que comportem as palavras chave.

76

Gopher O sistema Gopher foi criado na Universidade de Minnesota e seus servidores exibem menus que listam diferentes reas e ttulos. Selecionando a rvore de menus os usurios podem chegar aos documentos. Como sua implantao foi anterior Web seus ponteiros so ponteiros fsicos.

WAIS WAIS um banco de dados que permite a indexao e busca de arquivos de texto para que possam ser recuperados diretamente ou por assunto.

Robs, aranhas e formigas Robs, aranhas e formigas so programas com a finalidade de efetuar a maior parte do trabalho de busca que era da alada dos usurios. Normalmente estes programas utilizam tcnicas de inteligncia artificial. Todos estes programas utilizam uma abordagem bsica tal como a do WAIS. Robs e aranhas so dois nomes para programas que trabalham sobre teias simples de ponteiros ou hiperlinks enquanto formigas so grupos de aranhas que trabalham em paralelo realizando o mesmo trabalho. Os robs podem ser classificados em: 252* Robs que identificam, mapeiam e consertam elos entre pginas da Web 253* Robs que conduzem buscas 254* Robs que constrem ndices ou bancos de dados

77

23 - O Ambiente de BD Oracle
Histrico A empresa ORACLE foi fundada em 1978 e ofereceu o primeiro banco de dados comercial relacional. Um banco de dados Oracle composto de dois componentes essenciais: o banco de dados armazenado e a instncia que o motor do banco de dados. No caso de implementaes paralelas existem muitos motores de banco de dados, cada qual em um sistema separado, em um sistema masssivamente paralelo ou em uma fazenda de discos compartilhados, todos esses motores tendo acesso ao mesmo banco de dados.

Estruturas do BD Um Banco de Dados Oracle contm 3 tipos de arquivos: arquivos de controle, dirios de anulao de aes e arquivos de dados. Adicionalmente dirios de arquivamento podero ser gerados caso esteja ligado o modo archivelog. Um arquivo de controle contm informaes tais como: 255* nome do BD 256* nomes e endereos dos arquivos de dados e dirios de anulao de aes 257* o nmero de seqncia do dirio de anulao de aes corrente 258* o nmero de mudana do sistema (SCN) do ltimo ponto de controle 259* uma marca de tempo para o ltimo SCN 260* uma marca de tempo para a criao do BD Estes arquivos tem tamanho fixo, usualmente de 50 a 250 KB. Quando se dispara um BD o motor de BD iniciado, o BD montado e depois aberto. Na montagem do BD o arquivo de controle lido para que se conhea o endereo dos arquivos de dados e dos dirios de anulao de aes. As informaes nos blocos de cabealho desses arquivos so lidos e comparadas com o arquivo de controle para verificar se h necessidade de recuperao. Como o arquivo de controle crtico, ele costuma ser espelhado at mais de uma vez. Os dirios de anulao de aes contm informaes usadas em recuperaes do BD. So fixos em tamanho, usualmente com 2 a 50 MB e normalmente funcionam em lotes como em um carrossel. necessrio especificar pelo menos dois desses dirios, porm usual que seu nmero varie entre 4 e 10. Quando o gravador de registros de log detecta um fim de arquivo ou o DBA dispara um evento ocorre uma troca de dirios. As gravaes nos dirios so bufferizadas e os buffers so esvaziados por ocasio de commit, checkpoint, ou eventos especficos. Os dirios so gravados antes da execuo das aes gravadas. Os dirios tambm podem ser espelhados. Os dirios de arquivamento so cpias dos dirios de anulao de aes, porm com tamanho varivel. Estes arquivos devem, periodicamente, ser copiados para fitas magnticas. Se estes dirios de arquivamento estourarem o seu espao fsico, o BD, pode parar. Os arquivos de dados contm os objetos do BD, tais como tabelas, ndices e o dicionrio de dados. Usualmente so de tamanho fixo, variando de 1 MB a 1 GB ou at mais. Cada arquivo de dados atribudo a um espao de tabelas. Espaos de tabelas possuem um ou mais arquivos de dados e podem se espalhar por diversos discos fsicos. Objetos tais como tabelas ou ndices, chamados de segmentos, so criados em um espao de tabelas. Segmentos constituem-se de um ou mais extents. Extents ou extenses

78

so reas contguas de espao em disco. Extenses so compostas de dois ou mais blocos de dados. Blocos de dados tem tamanho fixo, tipicamente 2,4 ou 8 KB.

Exemplo: Segmento (Tabela de animais) 96K Blocos de Dados Extens 64 K Extens 32 K Arquivo 2 Arquivo 1 Disco 2 Disco 1 4 4 4 4 K K K K 4 4 4 4 K K K K 4 4 4 4 K K K K 4 4 4 4 K K K K

79

Esquemas Um esquema composto por um usurio e todos os objetos que esse usurio possui. Um modelo conceitual de dados implementado em um esquema. Objetos de esquema so: 261* tabelas 262* ndices 263* agregaes (clusters) 264* segmentos de rollback 265* vises 266* seqncias 267* sinnimos 268* elos de bancos de dados 269* gatilhos de BD 270* procedimentos armazenados 271* pacotes As tabelas so a unidade bsica de armazenamento de dados. So organizadas como linhas e colunas. Sendo segmentos so constitudos de uma ou mais extenses. As restries de integridade NOT NULL, PRIMARY KEY e FOREIGN KEY podem ser definidas. Cada tabela possui uma pseudo coluna chamada ROWID, que contm o nmero da linha, o nmero do bloco fsico em que a linha est armazenada e a posio dessa linha dentro do bloco. As tabelas agregadas so utilizadas para armazenar mltiplas tabelas nos mesmos blocos fsicos. Estas tabelas devem ter pelo menos uma coluna em comum chamada de chave de agregado. As tabelas agregadas sofrem uma operao de juno no armazenamento podendo proporcionar melhoras de 30 a 60% no tempo de recuperao. As operaes de incluso, todavia, so piores do que no caso de tabelas no agregadas. Para ter acesso a qualquer agregado necessrio um ndice de agregado contendo uma entrada por valor de chave de agregado. Caso todas as linhas que possuam o mesmo valor de chave de agregado no couberem em um s bloco ento qualquer acesso a uma das linhas no bloco de dados implica na necessidade de ter acesso a uma cadeia de blocos. ndices so objetos opcionais. Podem ser usados para reforar a integridade (UNIQUE e PRIMARY KEY). O ndice default rvore binria ou rvore B e relaciona valores de dados a ROWID em uma tabela. Com rvores B existe uma entrada de ndice para cada linha na tabela que possua valor de ndice no nulo. As tabelas de espalhamento so implementadas por um espalhamento em agregadas que correspondem aos buckets. O espalhamento no extensvel. O emprego mais eficiente feito quando em uma recuperao pelo comando SELECT, a clusula WHERE recebe hash-key-column = valor. Oracle comporta mapas de bits apenas para leitura. Pode-se criar ndices multi dimensionais com a opo spatial data option. Estes dados usualmente representam longitude, latitude, altitude e tempo, mas podem representar outras grandezas, tais como vendas por regio, cdigo de produtos e volume de vendas. Os segmentos de rollback armazenam as informaes dos dirios de anulao de aes nas transaes. Estes segmentos so encontrados nos esquemas administrativos SYS ou SYSTEM, e tem como funes: 272* Recompor informaes em caso de rollback 273* Permitir a recomposio de informaes quando ocorrem os processos PMON e SMON ou nas recuperaes

80

274* Fornecer informaes consistentes, pois comandos SELECT recuperam imagens de tabelas. Se essas
tabelas tiverem sido atualizadas no intervalo entre a seleo e outra ao s o rollback vai permitir manter a consistncia Os segmentos temporrios s ocorrem no esquema administrativo SYS e so criados quando preciso fazer ordenaes ou classificaes.

81

Vises so tabelas virtuais copiadas de outras tabelas consistindo, em essncia, em uma consulta. Usualmente servem para mascarar os dados ou esconder a complexidade de uma juno. Uma seqncia Oracle um gerador de seqncias numricas freqentemente usado para gerar chaves nicas para uma tabela. Seqncias no so segmentos e no ocupam espao de armazenamento, podendo ainda ser compartilhadas por diversas tabelas. Sinnimos so nomes alternativos para objetos podendo ser pblicos ou pertencer a esquemas individuais (privados). Elos de bancos de dados so caminhos armazenados para bancos de dados remotos. Estes podem ser pblicos ou privados. Eles recebem um nome e definem: 275* protocolo de comunicao 276* identificador de mquina 277* identificador de instncia 278* identificao de usurio 279* senha para o BD remoto Gatilhos so procedimentos armazenados disparados quando a tabela de referncia sofre um evento de incluso, atualizao ou excluso. Os gatilhos podem ser habilitados ou desabilitados. Funes armazenadas so unidades de programas que recebem um ou mais parmetros de entrada e retornam um nico valor. Procedimentos armazenados podem ter um ou mais parmetros de entrada ou de sada, ou de entrada/sada. So escritos em PL/SQL, que a linguagem procedimental da Oracle, extenso da SQL e anloga a Ada. Pacotes so colees lgicas de procedimentos e funes, possuindo uma especificao e um corpo. A especificao descreve as variveis pblicas, os parmetros e os nomes externos das funes ou procedimentos contidos. O corpo de um pacote contm tanto as variveis pblicas quanto as privadas, as funes e os procedimentos. Os pacotes permitem a sobrecarga de funes e procedimentos.

Processos em segundo plano, ou retaguarda, e Estruturas em memria Uma instncia Oracle compe-se de processos de retaguarda e estruturas de memria. Cada processo tem uma tarefa a executar. O nmero mnimo de processos 4 podendo haver 30 ou mais. Em ambientes mono processados os processos separam funcionalidades distintas. Em ambientes multi processados os processos dividem o trabalho em paralelo. Alguns dos processos de retaguarda so os seguintes: Processo Finalidade SMON recupera instncias LGWR grava o dirio DBWR faz a gravao de dados PMON faz a limpeza quando um processo de usurio falha ARCH copiar os dirios para um arquivo CKPT atualiza cada cabealho de arquivo nos checkpoints RECO faz a limpeza quando uma transao distribuda falha tentando reconectar o banco de dados remoto e efetuar a recuperao SNP0 a SNP9 atualiza os instantneos e tabelas replicadas LCK0 a LCK9 gerencia os bloqueios entre mltiplas instncias em um ambiente de servidor multi usurio Dxxx permite que mltiplos processos partilhem uma conexo a um banco de dados

82

Estruturas de Memria As estruturas de memria do ambiente Oracle so as Shared Global reas, ou SGA, as Program Global reas, ou PGA, as reas de trabalho para classificaes e as reas para armazenamento de cdigos. As SGA contm buffers e informaes de controle. Os buffers so de log, shared pool cache de blocos. Cada processo servidor possui sua prpria PGA alocada quando um usurio abre uma seo. As PGA contm variveis de sesso, arrays recuperados e outras informaes.

Interfaces de Programao Todos os acessos a um BD Oracle so feitos via SQL ou PL/SQL. Quando Oracle recebe uma consulta ou comando PL/SQL alocada uma rea privada na SGA e verifica-se se o comando j no existe no shared pool. Caso no exista o comando compilado e colocado no cache. Consultas recursivas so preparadas e variveis de ligao so alocadas e s depois dispara-se a execuo. Oracle possui interface para Ada, C, C++, Cobol, Fortran e PL/1. Existem tambm API para essas linguagens com os respectivos pr compiladores.

Acesso a Dados e Otimizao A otimizao de consultas envolve a seleo de um plano de execuo na ordem da seleo, qual ndice ser usado, qual tabela ser recuperada em primeiro lugar, etc. Oracle possui uma regra e um otimizador baseado em custo. O otimizador de regras analisa 15 nveis de precedncia de operaes, a ordem das tabelas na clusula FROM e a ordem de comandos na clusula WHERE. O otimizador baseado em custo analisa estatsticas de BD, tais como o nmero de linhas das tabelas e o nmero e distribuio dos valores de chaves e ndices. Oracle permite a paralelizao das consultas e a paralelizao dos processos servidores.

Gerenciamento Administrativo

Cpia de Segurana e Recuperao Uma cpia de segurana ou backup uma cpia do banco de dados armazenada para caso de recuperao de BD danificado. A recuperao de um BD Oracle pode ser feita at um dos pontos abaixo: 280* ltima transao compromissada 281* ponto especfico no tempo 282* transao especfica dada por nmero SCN 283* um particular dirio armazenado 284* uma cpia consistente conhecida do BD

83

As cpias de segurana podem ser em linha e fora de linha. Nas operaes fora de linha o motor de BD est desligado e copiam-se os arquivos de dados, o arquivo de controle e os dirios. Nas operaes em linha o espao de tabelas passa para modo backup e os pontos de controle deixam de ser gravados nos arquivos de dados, s sendo registrados nos dirios. As cpias no ficam necessariamente consistentes, mas utilizando os dirios com as anulaes de aes e aplicando novamente as transaes anuladas pode-se levar o sistema at o estado consistente.

84

285* 286* 287* 288* 289* 290*

Para a recuperao Oracle reconhece os seguintes tipos de falhas: Falhas de instncias Falhas de comandos Falhas de processo Falhas de rede Falhas do meio de armazenamento Falhas do usurio As recuperaes de falhas s podem ser feitas fora de linha.

Concorrncia e Consistncia Os problemas ou fenmenos de Consistncia e Concorrncia reconhecidos pela ANSI/ISO SQL92 so: Fenmeno Leitura suja Leitura no possvel de repetio Leitura fantasma Descrio Uma transao l dados de outra transao no compromissada Uma transao repete um comando e obtm resultados diferentes devido a atualizaes nos dados feitas por transaes compromissadas Uma transao repete um comando e obtm resultados diferentes devido a incluses de dados feitas por outras transaes compromissadas

Os nveis de isolamento ANSI/ISO SQL92 so: Nvel de isolamento Leitura no compromissada Leitura compromissada Leitura repetvel Realizvel possvel fazer leitura suja? Sim No No No possvel leitura no repetvel? Sim Sim No No possvel leitura fantasma? Sim Sim Sim No

Oracle usa como default leitura compromissada e suporta isolamento serializvel.

Bloqueio O bloqueio default do Oracle o bloqueio de linha e pode-se suportar bloqueio de tabela. Processos de leitura no realizam bloqueios. Os processos de gravao podem obter bloqueios e bloquear outros processos de gravao mas no conseguem bloquear processos de leitura.

85

Segurana Os usurios precisam se identificar antes do estabelecimento de uma conexo ao BD. A identificao pode ser feita pelo BD ou pelo Sistema Operacional. Privilgios so as permisses de acesso a objetos de outros usurios ou de execuo de certos tipos de comandos SQL. Oracle possui privilgios a nvel de sistema e a nvel de objeto. Privilgios de sistema consistem na permisso de execuo de determinados comandos SQL. Os privilgios a nvel de objeto so permisses de: 291* selecionar 292* incluir 293* modificar 294* excluir 295* alterar 296* indexar 297* verificar restries de integridade 298* executar gatilhos ou procedimentos armazenados A auditoria pode ser de trs tipos:

299* Auditoria de comandos 300* Auditoria de privilgios (tentar usar privilgios) 301* Auditoria de objetos (tentar usar privilgios)
A auditoria pode ser por comando, por comando com xito, por comando sem xito. Oracle alega possuir uma opo de banco de dados nvel B1 TCSEC ou E3 ITSEC.

Oracle suporta two phase commit Oracle permite a distribuio e a replicao de dados. Dados distribudos so dados espalhados em mltiplos BD, sendo que cada dado existe em apenas um lugar. Dados replicados so dados copiados para mltiplos BD. Dados distribudos so sncronos, pois as atualizaes tornam-se imediatamente disponveis a todo o BD. Dados replicados so assncronos, pois as atualizaes s se tornam visveis aps o refrescamento das replicaes. Em caso de falha da rede todo o BD distribudo falha enquanto os sistemas com dados replicados ainda podem operar.

86

Você também pode gostar