Sei sulla pagina 1di 99

ENIO KILDER OLIVEIRA DA SILVA

UM ESTUDO SOBRE SISTEMAS DE BANCO DE DADOS CLIENTE/SERVIDOR

ASPER - ASSOCIAO PARAIBANA DE ENSINO RENOVADO FACULDADE PARAIBANA DE PROCESSAMENTO DE DADOS CURSO SUPERIOR DE TECNOLOGIA EM PROCESSAMENTO DE DADOS

Joo Pessoa PB 2001

UM ESTUDO SOBRE SISTEMAS DE BANCO DE DADOS CLIENTE/SERVIDOR

FICHA CATALOGRFICA
004.65 S586u SILVA, Enio Kilder Oliveira Um Estudo sobre Sistemas de Banco de Dados Cliente/Servidor. Joo Pessoa PB, 2001 97p Monografia 1. Banco de Dados Sistemas. 2. Cliente/Servidor Arquitetura I . Ttulo ilus.

ENIO KILDER OLIVEIRA DA SILVA

UM ESTUDO SOBRE SISTEMAS DE BANCO DE DADOS CLIENTE/SERVIDOR

Monografia apresentada ao Curso de Processamento de Dados da Faculdade Paraibana de Processamento de Dados, como um dos requisitos para a obteno do ttulo de Graduado em Processamento de Dados. Orientador: Prof. Nilton Freire Santos .

ASPER - ASSOCIAO PARAIBANA DE ENSINO RENOVADO FACULDADE PARAIBANA DE PROCESSAMENTO DE DADOS CURSO SUPERIOR DE TECNOLOGIA EM PROCESSAMENTO DE DADOS

ENIO KILDER OLIVEIRA DA SILVA

UM ESTUDO SOBRE SISTEMAS DE BANCO DE DADOS CLIENTE/SERVIDOR

Aprovada em _____/_____________/ 2001

BANCA EXAMINADORA __________________________________ Orientador

__________________________________ Examinador (1)

__________________________________ Examinador (2)

Aos meus pais Jos de Arimata da Silva e Maria de Lourdes Oliveira da Silva e aos meus irmos Nen e Hercnio, DEDICO.

AGRADECIMENTOS

Primeiramente a Deus, por ter me dado vida, sade e sabedoria necessria para enfrentar os obstculos. Aos meus pais Arimata e Lourdes, pelo amor, carinho, educao e todo apoio necessrio para minha formao. Ao Prof. Nilton, por sua orientao para a concluso deste trabalho, fica a minha eterna gratido. bibliotecria Cristiane Gaspar, pelo apoio tcnico dado na organizao deste trabalho. Jailma pela sua amizade, carinho e apoio, e tambm por ter me ajudado a organizar o trabalho em cima da hora.

SUMRIO

LISTA DE FIGURAS RESUMO CAPTULO 1 - APRESENTAO.............. ........................................................ ...... 1.1. Introduo........................................................................................................... ...... 1.2. Justificativa......................................................................................................... ...... 1.3. Objetivos............................................................................................................. ...... 1.3.1. Geral ................................................................................................................ ...... 1.3.2. Especficos....................................................................................................... ...... 1.4. Organizao do Trabalho ................................................................................... ...... CAPTULO 2 - REVISO BIBLIOGRFICA.................................................... ...... 2.1. Fundamentos sobre Sistemas de Banco de Dados.............................................. ...... 2.1.1. Retrospectiva Histrica ................................................................................... ...... 2.1.2. Teoria de Banco de Dados Multiusurio ......................................................... ...... 2.2. Fundamentos sobre a Arquitetura Cliente/Servidor ........................................... ...... 2.2.1. Aspectos Bsicos da Arquitetura Cliente/Servidor ......................................... ...... 2.2.2. Tipos de Sistema Cliente/Servidor .................................................................. ...... 2.2.3. Principais Mecanismos.................................................................................... ...... 2.2.3.1. O Sistema Cliente ......................................................................................... ...... 2.2.3.2. O Sistema Servidor....................................................................................... ...... 2.2.3.3. A Rede de Comunicao de Dados .............................................................. ...... 2.2.4. Aplicaes e Perspectivas................................................................................ ...... CAPTULO 3 - SISTEMAS DE BANCO DE DADOS CLIENTE/SERVIDOR...... 3.1. Definies .......................................................................................................... ...... 3.1.1. O Sistema Cliente ............................................................................................ ...... 3.1.2. O Sistema Servidor.......................................................................................... ...... 3.2. Vantagens e Desvantagens ................................................................................. ...... 3.3. Componentes Principais ..................................................................................... ...... 3.3.1. O Sistema de Gerenciamento de Banco de Dados (SGBD) ............................ ...... 3.3.2. O Modelo de Representao de Dados............................................................ ...... 3.3.2.1. Modelo Relacional........................................................................................ ...... 3.3.2.2. Modelo Orientado a Objetos ........................................................................ ...... 3.3.2.3. Modelo Objeto-Relacional ........................................................................... ...... 3.3.3. A Linguagem SQL e seus Recursos ................................................................ ...... 3.3.3.1. Vises ........................................................................................................... ......

10 10 12 14 14 14 15 16 16 16 22 23 23 24 26 26 28 30 32 33 33 34 35 36 38 38 40 41 43 46 47 50

3.3.3.2. ndices........................................................................................................... ...... 3.3.3.3. Transaes .................................................................................................... ...... 3.3.3.4. Procedimentos Armazenados ....................................................................... ...... 3.3.3.5. Triggers......................................................................................................... ...... 3.3.4. Interfaces de Comunicao para Bancos de Dados ......................................... ...... 3.3.4.1. ODBC ........................................................................................................... ...... 3.3.4.2. DBI ............................................................................................................... ...... 3.3.4.3. JDBC ............................................................................................................ ...... 3.3.4.4. BDE .............................................................................................................. ...... 3.3.5. Os Programas de Aplicao............................................................................. ...... 3.3.6. Gerncia de Transaes................................................................................... ...... 3.3.7. Controle de Concorrncia................................................................................ ...... 3.3.8. Segurana e Administrao ............................................................................. ...... 3.4. Principais Solues da Indstria de Banco de Dados Cliente/Servidor............. ...... 3.4.1. Oracle .............................................................................................................. ...... 3.4.2. SQL Server...................................................................................................... ...... 3.4.3. Sybase SQL Server ......................................................................................... ...... 3.4.4. Informix........................................................................................................... ...... 3.4.5. C/A Ingres ....................................................................................................... ...... 3.4.6. IBM DB2......................................................................................................... ...... 3.4.7. Centura SQLBase............................................................................................ ...... 3.4.8. PostgreSQL ..................................................................................................... ...... 3.4.9. MySQL............................................................................................................ ...... 3.4.10. GemStone ...................................................................................................... ...... CAPTULO 4 - APLICAES DE BANCO DE DADOS CLIENTE/SERVIDOR 4.1. Aspectos Bsicos................................................................................................ ...... 4.2. Processamento de Bancos de Dados Distribudos ............................................. ...... 4.3. Internet e Intranets Organizacionais .................................................................. ...... 4.4. Sistemas de Informaes Geogrficas (GIS) ..................................................... ...... 4.5. Banco de Dados Multimdia............................................................................... ...... 4.6. Data Warehouses................................................................................................ ...... CAPTULO 5 - CONCLUSO.............................................................................. ...... 5.1. Consideraes Finais.......................................................................................... ...... ABSTRACT .............................................................................................................. ...... Referncias Bibliogrficas ...................................................................................... ......

50 51 51 52 52 53 55 57 59 60 64 67 69 72 72 74 75 76 78 79 80 81 81 83 85 85 86 87 89 91 92 93 93 95 96

LISTA DE FIGURAS

FIGURA 1 - Representao de um sistema de banco de dados ................................ ...... FIGURA 2 - Representao da arquitetura cliente/servidor ..................................... ...... FIGURA 3 - Tipos de sistema cliente/servidor ......................................................... ...... FIGURA 4 - Componentes de um sistema cliente .................................................... ...... FIGURA 5 - Componentes de um sistema servidor .................................................. ...... FIGURA 6 - Representao de um sistema de banco de dados cliente/servidor ...... ...... FIGURA 7 - Estrutura de um SGBD......................................................................... ...... FIGURA 8 - Modelo de banco de dados relacional .................................................. ...... FIGURA 9 - Modelo de banco de dados orientado a objeto ..................................... ...... FIGURA 10 - Exemplos de resultados obtidos atravs de instruo SQL ............... ...... FIGURA 11 - A arquitetura ODBC........................................................................... ...... FIGURA 12 - A arquitetura DBI............................................................................... ...... FIGURA 13 - A arquitetura JDBC ............................................................................ ...... FIGURA 14 - A arquitetura do BDE......................................................................... ...... FIGURA 15 - Interface de um programa de aplicao.............................................. ...... FIGURA 16 - Estrutura de uma aplicao ................................................................ ...... FIGURA 17 - Representao de um processo de transao...................................... ...... FIGURA 18 - Conexo com SGBD cliente/servidor ................................................ ...... FIGURA 19 - Definindo privilgios no SQL Server 6.5........................................... ...... FIGURA 20 - Viso Geral do Oracle Enterprise Manager ....................................... ...... FIGURA 21 - Viso geral do Microsoft SQL Server................................................ ...... FIGURA 22 - Viso geral do Sybase SQL Server .................................................... ...... FIGURA 23 - Viso geral do Command Center do Informix ................................... ...... FIGURA 24 - Viso geral do Centro de Controle do DB2 ....................................... ...... FIGURA 25 - Viso geral do MySQL para Windows .............................................. ...... FIGURA 26 - Exemplo de aplicao web de comrcio eletrnico ........................... ...... FIGURA 27 - Exemplo de processamento de dados geogrficos na Internet ........... ......

17 24 25 28 30 35 39 42 44 48 55 56 58 59 61 62 66 70 71 73 75 76 77 79 83 88 90

RESUMO Esta pesquisa tem por objetivo, apresentar uma abordagem sobre os sistemas de banco de dados utilizados em ambientes de processamento cliente/servidor, descrevendo seus principais componentes e as tecnologias empregadas para integrao entre bancos de dados e aplicaes. Com base nesta anlise so apontados os principais aspectos que levaram os sistemas de bancos de dados cliente/servidor a se tornarem as principais plataformas para gerenciamento de dados e suporte s novas aplicaes.

CAPTULO 1 - APRESENTAO

1.1. INTRODUO

Segundo Hackathorn (1993, p.2), a ltima dcada do sculo XX ocasionou uma profunda reavaliao sobre os fundamentos relativos aos sistemas de informao utilizados nas empresas. Tal fato originou-se em virtude da discusso gerada em relao real efetividade de custo, desempenho e flexibilidade dos sistemas centralizados.

Com base na meta de reduzir custos operacionais e ao mesmo tempo oferecer solues de forma imediata aos seus clientes, as empresas apontaram como alternativa, adotar um processo de modernizao atravs do achatamento de suas estruturas organizacionais. Tal processo visava integrar novas tecnologias s aplicaes que representam as regras de negcio da organizao.

11

Paralelamente, mesmo com a mudana imposta pela adoo de novos paradigmas empresariais, sempre houve a preocupao por manter dados pessoais e gerenciais armazenados com segurana e ao mesmo tempo, gerenciados de forma rpida e eficiente. Com a aquisio de novas solues tecnolgicas de tratamento de dados, esperava-se atingir o objetivo esperado, que a produo de informaes operacionais, necessrias para o processo de tomada de decises.

De acordo com Date (1990, p.5), o propsito principal a ser alcanado pelos sistemas de bancos de dados desde o seu surgimento, era o de oferecer recursos que visam manter os dados organizacionais e torn-los disponveis quando solicitados. Com a adoo de sistemas de banco de dados, as empresas puderam dispor de uma ferramenta eficiente para tratamento e disseminao de informaes, superando assim todas as limitaes impostas pelos sistemas anteriores.

Hoje podemos afirmar que os sistemas de informao evoluram consideravelmente, contribuindo de forma significativa para o amadurecimento e o crescente uso dos sistemas de banco de dados. Com o surgimento de novos modelos de SGBDs, os sistemas de informao ganharam mais capacidade para armazenar e gerenciar bancos de dados de forma simples e eficiente.

J com a arquitetura cliente/servidor, os sistemas de banco de dados ampliaram ainda mais a sua potencialidade e a sua importncia para as empresas. Isso impulsionou nos ltimos anos o desenvolvimento de novas tecnologias capazes de prover integrao entre banco de dados e suporte a vrias aplicaes em diferentes plataformas computacionais.

12

1.2. JUSTIFICATIVA

Os sistemas de banco de dados cliente/servidor passaram a ser adotados por todas as empresas, devido s inmeras vantagens apresentadas para prover suporte s novas aplicaes empresariais.

De acordo com Prado (1998, p.3), o que contribuiu de forma decisiva para a disseminao do uso dos sistemas de bancos de dados cliente/servidor, foram os inmeros problemas encontrados em sistemas que utilizam o modelo de bancos de dados centralizado. Apesar dos sistemas centralizados proporcionarem ganhos significativos de produtividade, no ofereciam solues para os seguintes problemas encontrados:

Aumento de trfego na rede, tendo como causa o acesso simultneo dos usurios ao banco de dados, gerando assim uma significativa degradao na performance do sistema;

Ausncia de mecanismos que possibilitem restringir o acesso de usurios no autorizados a determinadas informaes do banco de dados;

O grande volume de dados que eram processados em estaes que, em muitos casos, no possuam capacidade de processamento adequada nem memria suficiente.

13

A utilizao da arquitetura cliente/servidor permitiu que os sistemas de banco de dados atuais pudessem superar todas as limitaes impostas pelos sistemas centralizados, tornando o processo de gerncia de banco de dados mais eficiente e com maior grau de segurana. Alm desses benefcios, a arquitetura cliente/servidor possibilitou que os sistemas de informao pudessem evoluir, adotando novos recursos de hardware e software, capazes de oferecer maior eficincia e performance aos sistemas de gerncia de banco de dados e suas aplicaes.

Como justificativa para o tema proposto, podemos destacar que a importncia deste trabalho leva em conta que, os sistemas de banco de dados cliente/servidor, so os principais recursos da tecnologia da informao empregados atualmente nas empresas. A fim de ter-se um conhecimento amplo a respeito destes sistemas, pretende-se com este trabalho fornecer uma fonte de informao abrangente a respeito dos fundamentos e dos recursos tecnolgicos empregados, de modo a contribuir para desenvolvimento de novas aplicaes cliente/servidor.

Vale lembrar que, a mudana do paradigma de sistema centralizado para o paradigma de sistema cliente/servidor, acabou se tornando uma atitude a ser adotada firmemente pelas organizaes. Paralelamente, os sistemas de banco de dados, dentro deste novo paradigma, continuaro em pleno processo de evoluo de modo a expandir cada vez mais a sua capacidade de forma a lidar com novos tipos de aplicaes.

14

1.3. OBJETIVOS

1.3.1. GERAL

Apresentar um estudo sobre sistemas de banco de dados que usam a arquitetura cliente/servidor, descrevendo os principais aspectos que contriburam para transforma-la na principal plataforma para desenvolvimento de novas solues, voltadas ao gerenciamento de dados empresariais.

1.3.2. ESPECFICOS

Apresentar os principais componentes dos sistemas de banco de dados cliente/servidor e sua aplicabilidade no processo de gerncia de banco de dados;

Identificar as principais ferramentas disponveis e os processos utilizados no gerenciamento de banco de dados multiusurio atuais;

Descrever os principais benefcios dos modelos de banco de dados cliente/servidor e suas aplicaes.

15

1.4. ORGANIZAO DO TRABALHO

Os itens subseqentes deste trabalho esto distribudos da seguinte forma:

O Captulo 2 aborda os conceitos fundamentais sobre os sistemas de banco de dados e a arquitetura cliente/servidor. Descreve os aspectos histricos e tcnicos destas tecnologias, de modo a servir de base para compreenso a respeito da metodologia de funcionamento dos sistemas de banco de dados cliente/servidor.

O Captulo 3 relata uma viso geral sobre os conceitos fundamentais referente aos sistemas de banco de dados cliente/servidor. So apresentadas as caractersticas de seus componentes e os principais mecanismos utilizados no processo de gerenciamento e segurana dos dados. Tambm sero abordados neste captulo os principais SGBDs cliente/servidor existentes no mercado, descrevendo algumas das principais caractersticas empregadas nestes produtos.

O Captulo 4 descreve as principais aplicaes de banco de dados clientes/servidor, analisando os principais aspectos funcionais e tecnolgicos e empregados nestas aplicaes.

O Captulo 5 apresenta a concluso do trabalho realizado, expondo as consideraes finais do autor, sugestes e outras observaes que podero contribuir para futuras pesquisas relacionadas o tema deste trabalho.

CAPTULO 2 - REVISO BIBLIOGRFICA

2.1. FUNDAMENTOS SOBRE SISTEMAS DE BANCO DE DADOS

2.1.1. Retrospectiva Histrica

Em meados dos anos 60 do Sculo XX, os paradigmas de armazenamento e processamento de informaes passaram por uma grande mudana com o surgimento da tecnologia de armazenamento baseada em discos magnticos. Isso fez com que dados e aplicaes de software, que antes formavam um nico elemento, passaram a ser independentes um do outro. Isso permitiu a criao de ferramentas capazes de gerenciar e manipular estes dados da forma mais eficiente possvel a fim de obter os resultados esperados.

Os sistemas de banco de dados vieram a surgir na dcada de 60, com o objetivo de fornecer recursos capazes de armazenar, organizar, manipular e recuperar dados de forma segura, rpida e eficiente. Trata-se de uma soluo que supera todas as

17

limitaes da tecnologia baseada nos sistemas de arquivos tradicionais, que tinham uma ampla dependncia com relao forma de organizao da estrutura dos arquivos. Essa dependncia obrigava a alterar toda programao das funes de dados, sempre que houvesse alteraes em sua estrutura. Alm disso, eles no apresentavam solues para problemas relativos duplicao da informao, inconsistncias e integridade.

Segundo Melo (1997, p.3), um sistema de banco de dados pode ser definido como um ambiente de hardware e software composto por dados armazenados em banco de dados (BD), o software que gerencia o banco de dados (SGBD) e os programas de aplicao.

Pode-se dizer que esta modalidade de processamento de dados trouxe uma srie de vantagens, sendo que a mais significativa foi tornar os bancos de dados independentes da aplicao. As aplicaes, que antes acessavam os dados diretamente, passaram a se comunicar com o SGBD, enviando apenas as requisies necessrias para obter os resultados desejados.

Figura 1: Representao de um sistema de banco de dados

18

Para chegar aos modelos atuais, os sistemas de banco de dados passaram por uma srie de mudanas na sua arquitetura, de forma a se tornar compatvel com as novas tendncias de tecnologia adotadas pelas organizaes. Nos anos 70, quando o foco principal era voltado exclusivamente aos programas de aplicao, os sistemas projetados tinham a funo de atender apenas as necessidades especficas da empresa. Isso resultou em sistemas robustos, que dependiam diretamente da plataforma computacional na qual eram projetados para operar.

J nos anos 80, o avano da tecnologia dos chips contribuiu de forma significativa para diminuir o tamanho e o custo dos computadores. Juntamente com a popularizao do software e a disseminao das redes de computadores, criou-se uma nova filosofia de desenvolvimento de aplicaes de bancos de dados, cujo foco estaria centralizado no usurio final. Com a difuso da computao distribuda, que levou a aplicao a ser executada nas estaes de trabalho, os requisitos de novas aplicaes se baseavam em oferecer recursos que tornassem a apresentao dos dados mais simples para os usurios. Para complementar, as ferramentas de conectividade remotas adequadas, fizeram com que os dados pusessem ser compartilhados por sistemas computacionais de diferentes plataformas.

Atualmente os sistemas de banco de dados podem ser agrupados em modelos, os quais representam claramente os diversos estgios de evoluo at chegar aos modelos atuais. Segundo Salemi (1994, p.7), os modelos de banco de dados possibilitaram dividir os sistemas em vrias categorias que sero apresentadas a seguir.

19

a) Sistema de Gerenciamento de Arquivos (FMS File Management System): Foi a primeira forma utilizada para armazenamento de dados em banco de dados. A metodologia de funcionamento e baseia em armazenar os dados de forma seqencial em um nico arquivo. Esse sistema tem como vantagem a simplicidade na forma em que os dados so estruturados no arquivo. No entanto esse sistema no apresenta relao entre os dados, nem mecanismos de busca, classificao e recursos para evitar problemas de integridade.

b) Sistema de Banco de Dados Hierrquico (HDS Hierarquical Database System): Surgiu na dcada de 60 com a primeira linguagem de banco de dados conhecida como a DL/I desenvolvida pela IBM e a North American Aviation. um modelo de banco de dados onde os dados armazenados so estruturados em forma de rvore. Cada estrutura de dados se origina a partir de um n raiz e se ramifica criando relaes pai-filho com outras classes de dados, criando assim relaes de um para vrios elementos. A desvantagem estaria na rigidez da estrutura de dados, que obrigaria refazer todo o banco de dados, caso a classe de dados principal ou a classe que possuem classes dependentes fosse alterada. So exemplos de bancos de dados hierrquicos o IMS (Information Management System) da IBM e TDMS (Time-shared Corporation. Database Management System) da System Development

c) Sistema de Banco de Dados em Rede (NDS - Network Database System): Esse modelo surgiu entre a dcada de 60 e 70 como uma extenso do modelo hierrquico, incorporando recursos para criar mais de uma relao pai-filho e estabelecer relaes entre os seus elementos. Esta metodologia torna a pesquisa

20

mais rpida e mais flexvel, pois no depende de um nico n raiz como vetor de inicializao de pesquisa. Entretanto apesar da flexibilidade, o modelo de rede ainda apresenta os mesmos problemas com relao ao projeto de estrutura do modelo hierrquico. Qualquer alterao feita em uma classe de dados implicaria na criao de uma nova estrutura para suportar quela alterao. Seus principais representantes so o IDS da General Eletric e o Idms da Cullinet.

d) Modelo de Dados Relacional (RDM Relational Data Model): Trata-se de um modelo criado na dcada de 70 pelo pesquisador da IBM Dr. E. F. Codd, cujo propsito era representar os dados de forma mais simples, atravs de um modelo matemtico de conjuntos de tabelas inter-relacionadas. Este modelo abandona por completo os conceitos anteriores, tornando os bancos de dados mais flexveis, tanto na forma de representar as relaes entre os dados, como na tarefa de modificao de sua estrutura, sem ter que reconstruir todo o banco de dados. A nica peculiaridade com os modelos anteriores que os detalhes sobre como os dados so armazenados e acessados no so revelados ao usurio, o que torna necessrio projetar as aplicaes de forma de acessem os dados baseados apenas no formato j estabelecido pelo SGBD.

Com base nesta retrospectiva, podemos notar que os modelos de dados so diretamente responsveis pela evoluo dos sistemas de banco de dados. Com o surgimento de novos modelos, novas categorias de SGBDs puderam ser utilizadas ao longo dos anos. Podemos citar como exemplo o ADABAS da Software A. G. que usa o modelo de banco de dados baseados em listas invertidas1.
1

Trata-se de um tipo de banco de dados que se baseia em realizar pesquisas atravs de mecanismos de rotas de acesso, diferente dos bancos de dados relacionais que se fundamentaram na lgebra relacional.

21

Os novos modelos de banco de dados com tecnologia de orientao a objetos (OODBMS Object-Oriented Database Management System)2 so considerados uma forte tendncia para estabelecimento de um modelo para novas tecnologias de banco de dados. No entanto, devido falta de um modelo padro para construo de bancos de dados OO puros, a baixa performance apresentada por eles, e a falta de recursos utilizados atualmente em grande escala em aplicaes empresariais, fizeram com que a demanda por OODBMS diminussem.

Como alternativa, vrios fabricantes de SGBD adotaram a medida de incorporar caractersticas OO aos modelos relacionais, criando assim os modelos de banco de dados objeto-relacionais (ORDBMS Object-Relational Database Managenent System).

Atualmente o modelo de dados Objeto-Relacional j est sendo implementado na maioria dos produtos de SGBD. Acredita-se que o uso estes produtos ser cada vez mais difundido em relao aos ORDBMS devido ao sucesso dos j consolidados bancos de dados relacionais.

Considera-se orientao a objetos como uma terminologia usada para desenvolvimento de sistemas com uso de recursos de modularidade e reusabilidade de componentes.

22

2.1.2. Teoria de Banco de Dados Multiusurio

Um banco de dados multiusurio, segundo Kroenke (1999, p.205), um tipo especial de banco de dados que pode ser manipulado por mais de um usurio ao mesmo tempo. Este conceito surgiu com base na preocupao em fazer com que os processos de um usurio no interferissem nos dos demais, garantindo assim a integridade dos dados do sistema.

Atualmente, os bancos de dados multiusurio so utilizados em todos os tipos de aplicaes, onde os acessos so realizados simultaneamente por vrios usurios. Podemos ter como exemplo os sistemas de dados bancrios, automao comercial, agncia de viagens, etc.

Com relao arquitetura, os bancos de dados multiusurio, no princpio, eram baseados nos modelos de sistemas onde todo o processamento era feito em um computador central (mainframe ou minicomputador). Todas as requisies dos usurios eram feitas atravs de terminais ou em computadores que emulavam esses terminais. Com o surgimento dos microcomputadores e a interligao destes atravs de rede de comunicao de dados, a exigncia de bancos de dados com caractersticas de processamento multiusurio tornou-se um requisito cada vez mais importante, devido s inmeras operaes de transaes que so realizadas pelas aplicaes.

23

2.2. FUNDAMENTOS SOBRE A ARQUITETURA CLIENTE/SERVIDOR

2.2.1. Aspectos Bsicos da Arquitetura Cliente/Servidor

A arquitetura cliente/servidor atualmente a principal plataforma tecnolgica da indstria tecnologia da informao. A sua popularizao se deve aos vrios fatores oriundos do processo de achatamento das estruturas organizacionais, fazendo com que muitos dos sistemas fossem descentralizados.

Segundo Renaud (1994, p.3) cliente/servidor um conceito lgico, mais precisamente um paradigma, ou modelo para interao entre processos de software em execuo concorrente. Isso significa dizer que a metodologia cliente/servidor foi criada com o objetivo de possibilitar que vrios tipos de aplicaes, executadas em mquinas distintas, se comuniquem entre si, sem que a execuo de um processo interfira no do outro.

Baseado neste conceito, a arquitetura cliente/servidor estabeleceu um novo paradigma de processamento de dados, diversificando o processamento entre dois processos de software distintos (cliente e servidor). Ao mesmo tempo a arquitetura visa fornecer recursos que coordenem estes processos de forma que, a perda de sincronizao, no resulte em alteraes ou perda de informaes para o sistema.

24

Seu funcionamento se baseia no seguinte esquema: o usurio do sistema, atravs do processo de software cliente, envia o pedido de requisio ao processo de software servidor, que por sua vez devolve ao cliente os resultados solicitados. Todos os processos de software rodam sobre o controle do Sistema Operacional que coordena todos os recursos do sistema computacional utilizado.

Figura 2: Representao da arquitetura cliente/servidor

2.2.2. Tipos de Sistema Cliente/Servidor

Ainda segundo o autor, os sistemas cliente/servidor podem ser divididos em vrios tipos, dependendo da forma em que os processos cliente e servidor esto alocados. Os tipos de sistema podem ser classificados nas seguintes categorias descritas a seguir.

25

a) Intra-sistema cliente/servidor: sistemas nos quais os processos cliente e servidor residem no mesmo local. So exemplos tpicos as estaes de trabalho, isoladas ou no da rede. O usurio ao fazer uso da aplicao local emite uma solicitao de servio ao processo servidor situado na mesma mquina onde o usurio est operando;

b) Servidor Desktop: abrange os sistemas nos quais tanto o processo cliente quanto o servidor residem na mquina servidora e os usurios, atravs de uma estao ou terminal remoto, interagem com o processo cliente remotamente emitindo o pedido e recebendo os resultados;

c) Cliente Desktop: nesse sistema o processo cliente executado na estao de trabalho do usurio na qual so enviadas as requisies mquina servidora atravs da rede. O servidor por sua vez recebe as requisies do cliente, efetua o processamento e devolve os resultados.

Figura 3: Tipos de sistema cliente/servidor

26

Atualmente, mesmo possibilitando a execuo dos processos tanto o cliente quanto o servidor em uma nica mquina, o que caracteriza realmente o fundamento da arquitetura cliente/servidor hoje em dia a diviso do poder de processamento. Os dois processos so separados em mquinas distintas e ao mesmo tempo, so interligadas atravs de uma rede de computadores local (LAN) ou remota (WAN), o que permite as estaes de trabalho processarem os dados armazenados no servidor, liberando o mesmo para a execuo de outras aplicaes.

2.2.3. Principais Mecanismos

Os principais mecanismos da arquitetura esto divididos entre sistema cliente, sistema servidor e a rede de comunicao de dados. Sero analisadas neste tpico as principais caractersticas que complementam cada um destes mecanismos, visando um melhor entendimento sobre a sua importncia para o processamento das informaes.

2.2.3.1. O Sistema Cliente

O sistema cliente a parte responsvel pela tarefa de requisio de pedidos ao servidor e tambm por toda a parte relativa interao com o usurio final. Normalmente os sistemas cliente abstraem do usurio todas as funes de rede e do servidor, fazendo parecer que todos os processos esto rodando em um mesmo local.

27

Para prover esta interao, o sistema cliente abrange um conjunto de componentes bsicos que auxiliam nas funcionalidades, tanto ao nvel de aplicao como de sistema. Estes componentes de acordo com Melo (1997, p.28) so agrupados em:

a) Hardware de estao: formado pelos componentes bsicos de um sistema de computao, tais como unidade central de processamento (CPU), memria, unidades de disco e dispositivos de entrada e sada de dados (perifricos);

b) Sistema operacional: o software que possui o conjunto de instrues necessrias para gerenciar os recursos de hardware e fornecer os meios necessrios para que as aplicaes utilizem estes recursos de forma adequada;

c) Interface de conectividade: concentra o conjunto de instrues para permitir que os processos cliente interajam com o processo servidor atravs da rede de comunicao;

d) Os programas de aplicao: consiste em um conjunto de programas desenvolvidos com a finalidade de realizar operaes que atendam a uma necessidade especfica do usurio ou organizao;

e) Interface Grfica de Usurio (GUI): o principal componente de interao de interao com os usurios finais, pois o que torna as aplicaes serem utilizadas de forma mais simples e intuitiva.

28

Figura 4: Componentes de um sistema cliente

2.2.3.2. O Sistema Servidor

O sistema servidor a parte responsvel de um sistema cliente/servidor que tem a funo de receber dos clientes as requisies, processa-las e devolve-las ao mesmo os resultados. A grande vantagem desse sistema que, por ser totalmente reativo, s disparado quando recebe alguma requisio do cliente. Isso faz com que o servidor no procure interagir com outros servidores durante um pedido de requisio, o que torna o processo de ativao uma tarefa a ser desempenhada apenas pelo cliente que o solicitou.

29

Da mesma forma que o sistema cliente, o sistema servidor possui um conjunto de componentes bsicos para prover as funcionalidades necessrias ao processamento de informaes atravs da rede. Estes componentes so divididos em:

a) Hardware de servidor: normalmente so compostos por sistemas de computao que variam de microcomputadores de alto desempenho at computadores de grande porte. Estes sistemas, para cumprir a funo de servidor, devem possuir alta capacidade de armazenamento e grande quantidade de memria para fornecer melhor desempenho aos processos que estaro sempre rodando a espera de requisies;

b) O sistema operacional de rede: consiste em um recurso de software que alm de gerenciar os componentes de hardware, fornecem recursos que possibilitam obter o controle total da rede de comunicaes atravs de componentes de controle de acesso, compartilhamento de recursos, administrao e gerncia, alm de outras funes de rede necessrias;

c) Interface de conectividade: so caracterizados pelo uso de protocolos de comunicao e de interfaces para acesso a bancos de dados;

d) O SGBD: o componente do sistema de banco de dados responsvel por todo o gerenciamento e controle centralizado dos dados operacionais.

30

Figura 5: Componentes de um sistema servidor

2.2.3.3. A Rede de Comunicao de Dados

A rede de comunicao de dados consiste em um conjunto de componentes de hardware e software, interligados de forma a oferecer interao entre os sistemas cliente e servidor. As redes de computadores, as quais so formadas pela interconexo entre os computadores de um sistema computacional, estabelecem um caminho fsico para que os processos cliente e servidor se comuniquem.

31

Segundo Melo (1997, p.41), as ligaes podem ser implementadas atravs de linhas telefnicas pblicas, linhas privadas de comunicao, canais de satlite ou de rdio e outros meios que a tecnologia est disponibilizando, com a mesma funo. Com base nesta observao, pode-se dizer que o avano tecnolgico contribuiu bastante para disseminao e uso das redes e conseqentemente para a expanso do uso dos recursos computacionais em diversas reas de aplicao.

Atualmente os tipos de rede so agrupados em trs categorias distintas. Esta classificao feita de acordo com a distncia em que os componentes de hardware esto alocados. Estas redes podem ser:

a) Redes Locais (Local Area Networks - LANs): so redes que permitem a interconexo de equipamentos de comunicao de dados e compartilhamento de recursos numa rea fisicamente prxima, tais como as propriedades privadas;

b) Redes Metropolitanas (Metropolitan Area Networks - MANs): so redes que apresentam as mesmas caractersticas das redes locais, porm cobrem distncias maiores do que as LANs e operam em velocidades maiores;

c) Redes Geograficamente Distribudas (Wide Area Networks - WANs): so redes capazes de compartilhar recursos especializados por uma comunidade maior de usurios geograficamente dispersos.

32

Outro fator importante com relao comunicao a questo de como as estaes de trabalho se comunicam atravs da rede, independente do tipo de rede utilizado. Para que seja possvel viabilizar esta comunicao, os sistemas cliente/servidor utilizam protocolos de rede, que so elementos responsveis pela interao entre sistemas de igual, ou diferentes plataformas. Dentre os principais protocolos podemos destacar o TCP/IP, Netware IPX/SPX, AppleTalk, NetBios e OSI (Open Systems Interconnection).

2.2.4. Aplicaes e Perspectivas

Embora as aplicaes destinadas ao acesso aos bancos de dados em rede sejam as mais utilizadas nesta arquitetura, elas apenas representam apenas um tipo comum de sistemas cliente/servidor. Existem vrias outras aplicaes entre as quais podemos citar a prpria Internet, que utiliza redes de comunicaes para prover uma grande variedade de servios. Outras aplicaes podem ser inseridas neste contexto, como por exemplo, os sistemas de gerenciamento de backup, gerenciamento de impresso, aplicaes multimdia e comunicaes.

Convm afirmar que a adoo desta arquitetura impulsionou o mercado a desenvolver produtos cada vez mais poderosos, no s para oferecer interao com o usurio, como tambm para aumentar a produtividade no campo de desenvolvimento de aplicaes, deixando de lado a filosofia de se desenvolver produtos voltados apenas ao gerenciamento do banco de dados.

CAPTULO 3 - SISTEMAS DE BANCO DE DADOS CLIENTE/SERVIDOR

3.1. DEFINIES

Um sistema de banco de dados cliente/servidor pode ser definido como um sistema cliente/servidor onde pelo menos uma mquina servidora responsvel por manter e processar o banco de dados. Os dados armazenados ficam disponveis aos usurios que podero manipula-los atravs das aplicaes cliente, instaladas em suas estaes de trabalho individuais.

Os sistemas de banco de dados cliente/servidor so utilizados atualmente pela maioria das organizaes, devido flexibilidade obtida com esta plataforma. Com a arquitetura cliente/servidor, tornou-se possvel criar um ambiente capaz de fornecer um controle centralizado dos dados. Ao mesmo tempo, pode-se integrar novas tecnologias e aplicaes de banco de dados, independente do tipo de plataforma ou sistema operacional utilizado. Isso refora ainda mais a demanda por novas aplicaes que no aderem a padres especficos de arquitetura (sistemas abertos).

34

Com base na filosofia cliente/servidor, os sistemas de banco de dados dividem o processamento entre os dois sistemas distintos. Para execuo de suas respectivas tarefas, estes sistemas utilizam uma estrutura, que normalmente compe um servidor de banco de dados e as estaes de trabalho, interligadas atravs da rede.

Os sistemas podem ser definidos em sistemas Cliente e Servidor, cujos detalhes sero descritos a seguir.

3.1.1. O Sistema Cliente

Encarrega-se de executar nas estaes cliente as aplicaes responsveis pela manipulao dos dados armazenados no servidor de banco de dados. As aplicaes cliente/servidor, chamadas de aplicaes front-end, correspondem a um conjunto de programas integrados desenvolvidos em alguma linguagem de programao1.

Essas aplicaes so na sua grande maioria compostas de uma interface grfica de usurio (GUI Graphical User Interface) e de funes que permitem realizar tarefas de requisio de servios ao servidor. Isso permite ao usurio interagir com o SGBD sem ter que se preocupar com as complexidades da arquitetura, no que diz respeito aos mtodos utilizados para acesso aos dados armazenados, bem como na forma na qual eles so atualizados.

Trata-se de um software que tem a capacidade de desenvolver novos programas de aplicao. Algumas linguagens podem ser utilizadas para desenvolver at mesmo outras linguagens de programao.

35

3.1.2. O Sistema Servidor

Constitui na parte que concentra o banco de dados, o SGBD propriamente dito a as demais aplicaes, conhecidas como aplicaes back-end. Estes componentes tm a funo realizar o processamento dos dados requisitados pelo cliente atravs da rede.

No que se refere localizao dos dados e do SGBD no servidor, tanto podem estar armazenados em servidores que executam outras tarefas (como por exemplo, um servidor de arquivos ou de comunicaes), ou em um servidor dedicado (servidor de banco de dados).

Figura 6: Representao de um sistema de banco de dados cliente/servidor

36

3.2. VANTAGENS E DESVANTAGENS

Com base na filosofia cliente/servidor voltada ao processamento de banco de dados, existe uma srie de vantagens significativas, dentre as quais podemos destacar:

O aumento de desempenho, atravs da distribuio das tarefas de banco de dados entre computadores clientes e servidores. Todo o processamento desempenhado pelo SGBD passou a ser executado no lado do servidor, enquanto que as aplicaes que manipulam dados, passaram a ser executadas no lado do usurio nas estaes de trabalho, reduzindo drasticamente o trfego da rede;

A independncia da estao de trabalho, que torna possvel aos usurios executarem aplicaes de banco de dados em qualquer tipo de plataforma ou sistema;

A preservao da integridade dos dados, dando ao SGBD a capacidade de efetivar controle de atualizaes atravs de mecanismos de transaes e controle de concorrncia, adequados ao processamento de banco de dados multiusurio;

Segurana dos dados reforada, atravs de mecanismos de backup e restaurao de banco de dados implementados nos produtos de SGBDs.

37

No que se refere s desvantagens, a utilizao de banco de dados cliente/servidor pode apresentar alguns inconvenientes, tais como:

Aumento de custo com pessoal, o que obriga a investir em capacitao ou contratao de profissional para administrao e suporte para manuteno do banco de dados;

O aumento da quantidade de componentes de sistema pode contribuir para aumentar a complexidade;

A independncia de aplicativos cliente/servidor pode aumentar a quantidade de suporte de programao para estaes de trabalho;

A necessidade de se ter controle efetivo das operaes de transao com dados. Como as estaes de trabalho tendem a acessar os dados de forma simultnea, tornaria necessrio ento coordenar o processamento das aplicaes para evitar perda de atualizao de dados na rede.

38

3.3. COMPONENTES PRINCIPAIS

3.3.1. O Sistema de Gerenciamento de Banco de Dados (SGBD)

Podemos caracterizar o SGBD como um recurso de software composto por programas e utilitrios destinados s tarefas voltadas para o completo gerenciamento de um sistema de banco de dados. As principais tarefas a serem desempenhadas pelo SGBDs se constituem no armazenamento, organizao, atualizao e restaurao de banco de dados de sistemas computacionais.

O SGBD considerado o componente mais importante do sistema de banco de dados, pois concentra todos recursos que definem o que um sistema computacional deve possuir para gerenciar bases de informaes, de modo a atender s necessidades de integrao, exigidas pelas novas tecnologias.

Sob o ponto de vista lgico, seu principal propsito era de estabelecer um modelo que representasse o mundo real, capturando os dados e dando a eles contedo e estrutura de forma a tornar possvel ao banco de dados representar logicamente os aspectos da vida real de cada elemento para um fim especfico de um usurio ou grupo de usurios.

39

Na prtica, alm de cobrir estas necessidades, a utilizao dos SGBDs tornou a administrao do banco de dados mais segura, fazendo com que as aplicaes no tenham acesso direto ao dados armazenados, como era o caso dos sistemas de arquivos convencionais. Todas as requisies feitas pelas aplicaes passaram a ser analisadas e processadas pelo SGBD. Isso favoreceu a sua utilizao como base de administrao de dados para diversos tipos de aplicaes.

Figura 7: Estrutura de um SGBD

Em resumo, as principais caractersticas funcionais dos SGBDs, podem ser definidas da seguinte maneira:

Todas as operaes em banco de dados solicitadas pelos clientes so realizadas diretamente pelo SGBD no prprio servidor, devolvendo ao cliente apenas o resultados;

40

Utiliza esquemas de controle de acesso, que determinar quais usurios tero acesso aos dados armazenados no banco de dados, assim como os privilgios que cada um ter sobre eles;

Utiliza-se de toda a potencialidade do servidor para a execuo de operaes de validao de dados e execuo de instrues mais complexas;

Garante a segurana dos dados armazenados e as mantm ao mesmo tempo rapidamente disponveis aos usurios.

Com o passar dos anos, a evoluo dos SGBDs vem contribuindo bastante para o surgimento de produtos cada vez mais sofisticados. Muitas empresas produtoras de software tm investido constantemente na criao e aprimoramento destes produtos. Um dos fatores que tem contribuido bastante o aprimoramento dos modelos de representao de dados que so considerados o principal elemento responsvel pela evoluo dos SGBDs.

3.3.2. O Modelo de Representao de Dados

O modelo de representao de dados o elemento que est diretamente relacionado qualidade dos SGBDs, pois d a eles a capacidade de traduzir ou modelar o mundo real, descrevendo como os dados sero acessados e manipulados pelos usurios.

41

Com o passar dos anos, vrios modelos surgiram gerando novas categorias de banco de dados. Atualmente o modelo relacional a principal base para o desenvolvimento de produtos de SGBDs. Esse modelo, alm de solucionar os problemas encontrados nos modelos que o antecederam, ainda deu mais flexibilidade na organizao e manipulao de bancos de dados maiores e mais complexos. No entanto, com o avano da tecnologia, a demanda por sistemas capazes de gerenciar dados complexos tornou-se um fator que impulsionou a elevao de esforos para criar novos modelos de tratamento de dados.

Segue aqui um relato sobre os principais modelos de dados existentes e os que podero se tornar a plataforma principal para desenvolvimento de novos SGBDs cliente/servidor.

3.3.2.1. Modelo Relacional

O modelo relacional foi criado por Codd em 1970 com o propsito de tornar o mundo mais simples na viso dos usurios e dar aos SGBDs a capacidade de processar os dados de forma mais eficiente. O modelo relacional se baseia em representar os dados em forma de tabelas, que se relacionam atravs de um elemento comum que atenda s restries impostas pelo prprio modelo, garantindo a integridade dos dados.

42

Figura 8: Modelo de banco de dados relacional

O sucesso atual dos SGBDs que usam o modelo relacional fez com que estes produtos dominassem cerca de 90% do mercado de bancos de dados corporativos. Juntamente com a linguagem SQL e as interfaces de comunicao, este modelo facilitou a implementao de vrios processos disponveis na vida dos usurios. Hoje comum encontrar aplicaes de bancos de dados relacionais cliente/servidor em diversos ambientes de sistemas empresariais, seja na Internet ou em ambientes corporativos mais restritos.

No entanto, a ampla utilizao dos bancos de dados ao logo do tempo fez com que houvesse uma demanda cada vez maior por modelos capazes de operar com novos tipos de dados (como som, imagens, texto, etc.), cada vez mais comuns nas aplicaes empresariais atuais.

43

3.3.2.2. Modelo Orientado a Objetos

Analisando as aplicaes atualmente existentes, podemos perceber que existe uma grande variedade de novos tipos de dados os quais somos obrigados a lidar. A necessidade de fazer com que dados no-convencionais, pudessem ser estruturados e armazenados em banco de dados, tornou-se um motivo para que se desenvolvessem modelos de dados mais complexos para atender a esses requisitos.

O modelo de banco de dados orientado a objetos (OO) baseado nos conceitos de orientao a objetos, j difundidos em linguagens de programao como o SmallTalk e o C++. Seu objetivo principal tratar os tipos de dados complexos como um tipo abstrato (objeto), podendo ser definidos tanto nvel interno como pelo prprio usurio.

Segundo Silberschatz (1999, p.269), a filosofia do modelo de dados OO consiste em agrupar os dados e o cdigo que manipula estes dados em um nico objeto, estruturando-os de forma que possam ser agrupados em classes. Isso significa que, baseado nos conceitos OO, os objetos de banco de dados agrupados podem usar o mesmo mecanismo de herana para definir superclasses e subclasses de objetos, criando assim hierarquias.

44

Figura 9: Modelo de banco de dados orientado a objeto

Dentre as vantagens significativas proporcionadas pelos SGBD orientados a objetos (SGBDOO), podemos destacar a capacidade de integrao com linguagens de programao OO. Esta integrao permite que os mtodos envolvidos no processo de armazenamento e gerenciamento possam ser feitos de forma automtica, desconsiderando a necessidade de ter conhecimento da linguagem de programao utilizada.

Outra vantagem do modelo OO a capacidade de permitir que os usurios definam tipos de dados que sero gerenciados pelo SGBD. No modelo OO no existe dependncia de relacionamentos. Os tipos dados tambm no precisam ser incorporados aos SGBDs, como ocorre nos modelos relacionais.

45

As desvantagens significativas, no entanto, estariam relacionadas s exigncias impostas pela linguagem de programao OO, alm do alto custo de converso do banco de dados tradicional para o modelo OO. A ausncia de ferramentas mais eficientes para gerao de consultas e relatrios tambm um fator a ser considerado.

Podemos considerar ainda que no se tem uma informao precisa sobre o desempenho dos SGBDOO em sistemas que lidem com grande volume de dados, o que levanta a dvida sobre se os SGBDOO so ou no melhores do que os SGBDs, utilizados atualmente no processamento de dados convencionais. Acredita-se tambm que os SGBDOO demandem recursos mais eficazes destinados ao processamento de transaes e controle de concorrncia.

Para finalizar, importante que se tenha uma definio de um padro especfico para a construo de SGBDOO. Segundo Kroenke (1999, p.322), so apresentadas duas solues de padronizao para incluir recursos de orientao a objetos aos bancos de dados. Uma delas o desenvolvimento do padro SQL3 proposta pelos comits ISO e ANSI fundamentada na ampliao do padro SQL92, usado nos modelos relacionais.

A outra soluo se origina de um consrcio entre fabricantes de banco de dados de objetos com outros especialistas. Trata-se do modelo ODMG-93, que se baseia no objeto como sua estrutura fundamental e os aspectos relacionados ao gerenciamento de dados so tidos como um processo evolutivo.

46

O ODMG-93 um modelo completamente diferente do padro SQL3 que se baseia na viso do banco de dados e evolui na viso do objeto. Ainda segundo o autor, no se tem certeza de qual padro ser o mais utilizado, mas acredita-se que muitas empresas produtoras de software podero se apoiar em qualquer um destes padres para construo de SGBDOO cliente/servidor.

3.3.2.3. Modelo Objeto-Relacional

O Modelo Objeto-Relacional surgiu como uma alternativa de expandir o modelo relacional para atender a demanda de construo de sistemas a lidar com dados complexos no suportados pelo modelo relacional. O fator que obrigou o seu surgimento se fundamentou nas questes relacionadas a real efetividade do modelo OO, no que diz respeito ao desempenho e custos com a migrao de bancos de dados relacionais para bancos de dados OO. Como conseqncia, a migrao ocasionaria uma brusca mudana em praticamente todas as aplicaes que completam o sistema computacional da organizao.

Este modelo se baseia na adoo de conceitos de orientao a objetos integrados ao modelo relacional. Isso significa dizer que este modelo capaz de incluir caractersticas de orientao a objetos e ao mesmo tempo incorporar estruturas s linguagens de consultas relacionais como a SQL.

47

Como principal benefcio, esse modelo permite ampliar a capacidade dos SGBDs para lidar com dados complexos, evitando que os produtores de software desconsiderem os investimentos feitos na produo de SGBDs relacionais.

Entretanto, da mesma forma que o modelo OO, no existe um modelo padro padronizado para construo de SGBDs objeto-relacionais. Diferente dos SGBDs relacionais, que so sustentados por um modelo formal j definido, os SGBDs objetorelacionais obtiveram sucesso comercial graas s iniciativas de implementaes em produtos comerciais j disponveis no mercado como o Oracle 8.x da Oracle Corporation.

3.3.3. A Linguagem SQL e seus Recursos

A linguagem SQL (Structured Query Language), surgiu em meados os anos 70 com a finalidade de se tornar uma linguagem padro para acessar um antigo banco de dados relacional (o System R da IBM), que rodava em computadores de grande porte (mainframes). Atualmente, esta linguagem garante seu sucesso no mercado de banco de dados simplesmente porque est integrada em praticamente todos os produtos de SGBDs Relacionais e Objeto-Relacionais.

48

Segundo Kroenke (1999, p.175), a linguagem SQL tida como uma linguagem orientada a transformaes que aceita uma ou mais relaes como entrada e produz uma relao nica como sada. Isso significa dizer que a linguagem SQL capaz de transformar em resultado, qualquer operao envolvendo uma ou mais tabelas dentro de banco de dados. Cada um destes resultados gera uma nova tabela com linhas e colunas conforme a definio estabelecida pelo modelo relacional.

Sua principal vantagem a capacidade de facilitar e agilizar a consulta e manipulao de dados, independente da plataforma que est sendo usada, ou em qual linguagem o aplicativo que ir interagir com os dados tenha sido desenvolvido.

Figura 10: Exemplo de resultados obtidos atravs de instruo SQL.

49

Esta linguagem apresenta uma srie de instrues (comandos) para definir e manipular estruturas de banco de dados. No que diz respeito definio de dados, a SQL utiliza a chamada de DDL (Data Definition Language), que composta pelos comandos destinados a criao de banco de dados, tabelas e relaes. Como exemplo de comandos da classe DDL temos os comandos Create, Alter e Drop.

No que diz respeito manipulao de dados, a SQL utiliza chamadas da srie DML (Data Manipulation Language), destinadas a operaes de consulta, incluso, excluso e alterao de registros das tabelas de uma banco de dados. Como exemplo de comandos da classe DML temos os comandos Select, Insert, Update e Delete.

Devido a sua popularidade, a linguagem SQL fez com que muitos produtos de banco de dados SQL fossem lanados no mercado. Cada um com caractersticas prprias do vendedor. Isso fez com que o comit de padronizao ANSI (American National Standard Institute) estabelecesse uma padronizao para esta linguagem, que resultou na criao de vrias especificaes.

Hoje o SQL2 ou SQL92 tido como o padro mais utilizado nos SGBDs cliente/servidor comerciais, devido aos novos mecanismos introduzidos nesta linguagem que sero apresentados a seguir.

50

3.3.3.1. Vises

Uma viso em SQL consiste em uma forma que a linguagem utiliza para gerar uma tabela virtual com resultados oriundos de outras tabelas fisicamente existentes no banco de dados.

Trata-se de um recurso que pode ser bastante utilizado em casos onde aplicao necessite acessar informaes que geralmente j so resultados de outra operao de consulta. Como exemplo temos o Create View que o principal comando SQL utilizado definio de vises.

3.3.3.2. ndices

Os ndices so caracterizados como um meio utilizado para melhorar o desempenho das aplicaes de banco de dados. Trata-se de um mtodo que possibilita criar uma tabela auxiliar, contendo uma seqncia de registros indexados por uma ou mais colunas, freqentemente utilizadas como critrios de pesquisa em uma tabela. A definio para criao de ndices feita atravs do comando Create Index.

51

3.3.3.3. Transaes

Para realizar transaes, que so uma das tarefas mais importantes dos SGBDs cliente/servidor, a linguagem SQL utiliza instrues que permitem realizar com sucesso as transaes, garantindo a integridade para as informaes. Tambm permite desfaze-las antes de realizar as alteraes no banco de dados. A SQL utiliza os comandos Commit e Rollback que, respectivamente, efetiva e desfaz as transaes.

3.3.3.4. Procedimentos Armazenados

Os procedimentos armazenados so objetos de banco de dados que ficam localizados no servidor, tendo como finalidade armazenar um conjunto de instrues SQL que podero ser executadas em qualquer momento pelas aplicaes.

Outra caracterstica dos procedimentos armazenados a capacidade de receber parmetros e retornar valores quando necessrio, agilizando assim trabalho das aplicaes. A criao de procedimentos armazenados no SGBD feita atravs do comando Create Procedure.

52

3.3.3.5. Triggers

Da mesma forma que os procedimentos armazenados, os triggers contm conjuntos de instrues SQL que ficam armazenadas no servidor, porm eles no podem receber parmetros nem retornar valores.

Em um banco de dados cliente/servidor, os triggers permitem especificar regras de negcio que so chamadas pelo prprio banco de dados no momento em que ocorre um determinado evento, reforando ainda mais as restries de integridade do banco de dados. A definio para a criao de triggers no banco de dados feita com o comando Create Trigger.

3.3.4. Interfaces de Comunicao com Banco de Dados

Vimos que a arquitetura cliente/servidor proporcionou aos sistemas de computao distribuir os processos cliente e servidor atravs da rede, levando a funcionalidade da aplicao para o lado do usurio. Com esta distribuio, os SGBDs puderam seguir seu padro, concentrando as atividades de gerncia de banco de dados apenas no lado do servidor, limitando as aplicaes apenas ao processo de atualizao dos dados atravs das estaes cliente.

53

No entanto, a grande variedade de bancos de dados de diferentes fabricantes, alm da prpria separao dos sistemas em front-end e back-end, ocasionou a demanda por padres e mecanismos que possibilitassem s aplicaes cliente/servidor interagirem com bancos de dados, independente da plataforma ou sistema operacional.

Com isso, vrios fabricantes de software se uniram formando o SQL Access Group (SAG), com o objetivo de produzir especificaes de acesso a dados para produtos de SGBDs que usam o padro SQL. Estes mecanismos, conhecidos como interfaces de comunicao com banco e dados, concentram um conjunto de instrues que permitem s aplicaes se comunicarem com o SGBD e estabelecer um meio compatvel de transferncia de dados atravs da rede.

Com o desenvolvimento das novas tecnologias, surgiram vrios modelos de interface de banco de dados para diversas plataformas. Dentre os modelos existentes, podemos destacar nos tpicos subseqentes, algumas das principais interfaces de comunicao para bancos de dados comumente usadas.

3.3.4.1. ODBC

O padro ODBC (open database connectivity) foi desenvolvido pela Microsoft e acabou se tornando o padro dominante no mercado de interfaces comum para acesso a bases de dados. Sua arquitetura em camadas permite aos aplicativos acessarem uma grande variedade de banco de dados utilizando a linguagem SQL.

54

Segundo Melo (1997, p.205) a arquitetura ODBC composta por quatro componentes bsicos: a aplicao, o gerente de driver (driver manager), o driver e a fonte de dados (data source).

A aplicao consiste em um recurso de software que tem a funo de processar as chamadas das funes ODBC que cria meios padronizados para estabelecer uma conexo com o banco de dados, de modo que torne possvel emitir instrues SQL ao SGBD.

O gerente de drivers a parte intermediria da arquitetura, responsvel pelo recebimento das requisies emitidas pelas aplicaes e pela determinao de qual driver ser carregado para fazer a conexo com o SGBD apropriado. Uma vantagem significativa do gerente de driver a capacidade de permitir que mltiplos drivers estejam ativos simultaneamente utilizando o nome da fonte de dados fornecido pela aplicao.

O driver2 por sua vez consiste em uma biblioteca de funes que processam as solicitaes ODBC enviando instrues SQL especificas para cada fonte de dados. Quando uma aplicao faz uma requisio, o driver ODBC traduz a requisio para o formato apropriado do SGBD, servindo assim como um mediador entre os dois elementos.

A fonte de dados contm a definio de um driver ODBC utilizado pela aplicao para acessar um SGBD especfico. Trata-se dos dados propriamente ditos na abordagem ODBC e cada fonte de dados deve possuir um driver apropriado para que a intermediao possa ser estabelecida.
2

O driver corresponde a um conjunto de informaes que fornece as instrues necessrias para que o sistema operacional possa se comunicar com componentes de hardware especficos.

55

Figura 11: A arquitetura ODBC

3.3.4.2. DBI

A DBI (Database Interface) uma interface de programao de aplicaes (API) desenvolvida para a linguagem Perl3. Sua arquitetura foi projetada com o intuito de oferecer um conjunto de funes, variveis e convenes que possam prover um mecanismo de comunicao de banco de dados consistente e independente da plataforma computacional utilizada pelo SGBD.

PERL (Practical Extraction and Report Language) uma linguagem criada por Larry Wall, inicialmente para sistemas Unix, e hoje roda em vrios outros sistemas como Windows, Amiga, VMS, etc.

56

Essa interface (Descartes, 2000, p.1), se divide em dois grupos onde, o primeiro, corresponde a prpria arquitetura DBI, que implementa todas as funes de chamada de drivers, enquanto que o segundo, corresponde aos drivers responsveis pela conexo ao seu SGBD especfico.

Figura 12: A arquitetura DBI

Esta separao permite que a DBI suporte uma grande variedade de bancos de dados para utilizao em ambientes de computao distribuda. Com isso a DBI capaz de fornecer acesso mltiplo a diferentes tipos de bancos de dados, de uma forma transparente para os usurios. Com ela pode-se estabelecer conexes com bancos de dados Oracle, Informix, mSQL, Sybase, ou qualquer outra base de dados compatvel, sem a necessidade de conhecer o mecanismo utilizado para efetuar esta tarefa.

Como benefcio principal, a DBI d s aplicaes capacidade de conectar duas bases de dados de fabricantes diferentes, fazendo com que elas se comuniquem atravs do mesmo cdigo-fonte escrito na linguagem Perl. Isso d aplicao capacidade de atualizar bases de dados atravs de uma forma bastante simples, facilitando assim o trabalho do programador.

57

3.3.4.3. JDBC

O JDBC (Java Database Conectivity) uma interface desenvolvida pela Sun Corporation com a finalidade de estabelecer conexo entre bancos de dados SQL e aplicaes desenvolvidas atravs da linguagem Java4. Com a JDBC os programadores podem criar aplicaes Java capazes de acessar dados corporativos, independente da plataforma onde a aplicao est sendo executada.

A sua arquitetura, de acordo com Hamilton (1997, p.8) composta por um conjunto de interfaces abstratas que permite ao programador estabelecer conexes a um determinado banco de dados, manipula-los atravs de instrues SQL e processar os resultados. Estas interfaces podem ser resumidas em quatro classes principais, a saber:

java.sql.DriverManager: gerencia o carregamento de drivers para criar novas conexes de banco de dados;

java.sql.Connection: representa uma conexo de um banco de dados especfico;

java.sql.Statement: funciona como um container para declarao ou execuo de comandos SQL;

java.sql.ResultSet: controla o acesso aos resultados das requisies.

A linguagem Java foi desenvolvida para ser uma linguagem independente de plataforma tornando-se uma boa opo para criao de aplicaes de acesso remoto a banco de dados.

58

Figura 13: A arquitetura JDBC

Com base nesta arquitetura, podemos perceber que a principal caracterstica da JDBC permitir um acesso genrico a banco de dados atravs de SQL. Ao mesmo tempo, a JDBC oferece uma interface padronizada para diferentes fontes de dados, cabendo ao programador apenas construir uma interface de usurio para facilitar a interao com o banco de dados.

Os tipos de drives suportados pela JDBC podem fornecer interfaces para SGBDs, tais como o Oracle, Sybase, Informix, alm de outros que utilizam protocolos de acesso a banco de dados especficos, independentes ou no de protocolos de rede. Alm desses, a JDBC, fornece conectividade para drivers ODBC.

59

3.3.4.4. BDE

O Borland Database Engine (BDE) uma interface de acesso a banco de dados que contm um conjunto de funes e drivers que possibilitam s aplicaes se comunicarem com uma variedade de sistemas de banco de Dados local ou remotamente. Sua arquitetura fornece uma forma nica e transparente para a aplicao acessar os diferentes tipos de SGBDs.

Segundo Rudraraju (1995, p.1) o BDE utiliza drivers SQL IDAPI nativos para fornecer conectividade aos diferente servidores de bancos de dados. Atravs da IDAPI (Integrated Database Application Program Interface), pode-se estabelecer conexes para SGBDs cliente/servidor Interbase, Oracle, Sybase, Informix, DB2 e SQL Server. Atravs desta interface, pode-se executar vrios tipos de operaes, tais como: criao de sesses, bancos de dados, tabelas, ndices, campos, consultas, procedimentos e filtros.

Figura 14: A arquitetura do BDE

60

Para concluir, o BDE se constitui em uma soluo desenvolvida pela Borland Corporation para ser executada em plataformas Windows 9x/2000/ME e Windows NT. O BDE prov suporte a base de dados para aplicaes desenvolvidas atravs de ambientes de desenvolvimento integrados, tais como o Delphi e C++ Builder.

3.3.5. Os Programas de Aplicao

Vimos que a arquitetura cliente/servidor divide o poder de processamento de um sistema computacional em sistemas cliente e servidor. Neste sentido, cada componente tem seu papel especfico. A aplicao cliente fica encarregada de fazer a interface com o usurio, capturando os dados e exibindo informaes, enquanto que a aplicao servidora, fornece recursos necessrios para as aplicaes clientes.

O programa de aplicao o principal recurso que d ao usurio a possibilidade de interagir com os sistemas de computao, principalmente nas tarefas que envolvem o acesso banco de dados. Para prover esta funcionalidade, principalmente em sistemas cliente/servidor, as aplicaes devem conter um conjunto de funes que possibilitem interao entre dois ou vrios processos distribudos em diferentes plataformas, de forma a cooperarem entre si para produzir os resultados desejados.

61

Para Melo (1997, p.60), uma aplicao possui funes que podem ser agrupadas em componentes para o processamento da lgica da interface do usurio, para o processamento da lgica de negcios, para a manipulao de dados e para os servios de acesso aos dados.

Figura 15: Interface de um programa de aplicao

As funes de interface de usurio correspondem a todas as atividades de interao entre o usurio e a mquina. Concentra recursos de controle de dispositivos de entrada e sada de dados, formatao de tela de apresentao, alm de outras funes avanadas como verificao e validao de dados. As funes da lgica do negcio so aquelas que definem o verdadeiro propsito da aplicao, pois compreende toda a regra de

62

negcio e os processos administrativos de uma organizao. As funes de gerncia dos dados processam todas as operaes de acesso e manipulao de dados fornecidos pelo usurio. Por fim, as funes de acesso a dados encarregam-se de fornecer recursos para acesso fsico aos dados armazenados em um banco de dados.

Figura 16: Estrutura de uma aplicao

Com isso podemos perceber que um programa de aplicao tem uma estrutura claramente definida e que cada um de seus componentes cooperam entre si para executar a tarefa desejada pelo usurio. No que se refere sua alocao, quando se tratava de ambientes centralizados, eles eram alocados em um nico local. No entanto, a arquitetura cliente/servidor permitiu distribuir as funes entre os servidores e clientes da rede de forma a aumentar o desempenho dos sistemas de informao.

63

Com base nesta distribuio, a arquitetura cliente/servidor permitiu criar vrias categorias de arquitetura, dividindo-a em camadas para tratar com diferentes configuraes de seus componentes de aplicao. As principais arquiteturas abrangem dois tipos de modelos, a saber:

a) modelo de duas camadas: modelo no qual as aplicaes cliente/servidor normalmente concentram as funes de interface de usurio e da lgica de negcio em um nico componente. Esse componente fica alocado no cliente, enquanto que os dados e as funes de acesso a dados se concentram no servidor;

b) modelo de trs camadas: neste modelo os dados e suas funes de acesso se concentram no servidor, enquanto que as regras de negcio e as aplicaes so separadas em camadas distintas. Neste modelo as operaes de acesso e manipulao de dados so executadas pela aplicao. O servidor s ir processa-los obedecendo s regras de negcio, que podem estar alocadas, ou na mquina servidora, ou na mquina cliente, ou em ambas as mquinas.

Atravs da arquitetura cliente/servidor, podemos perceber que a diviso das tarefas em camadas distintas resulta em um grande benefcio para as aplicaes. A distribuio de suas funes aproveitando de todos os recursos existentes, resulta em um melhor aproveitamento e um considervel ganho de performance, sem comprometer a integridade dos dados armazenados.

64

Para o desenvolvimento das aplicaes, podemos encontrar atualmente uma grande variedade de ferramentas, ou linguagens, capazes de produzir aplicativos. Estas linguagens dispem de todas as funes necessrias para criao de interfaces e implementao de funes de controle e de manipulao de dados. As ferramentas de desenvolvimento mais utilizadas atualmente so as linguagens orientadas a objetos e dirigidas por eventos, tendo como exemplo Java, Delphi, Powerbuilder, Visual Basic, SQL Windows, SmallTalk e Kylix.

3.3.6. Gerncia de Transaes

Um SGBD cliente/servidor implementa mecanismos de gerncia de transaes como um mtodo destinado a assegurar que o banco de dados no sofra algum tipo de alterao que resulte em perda de dados ou resultados indesejados. O uso de transaes em ambientes de banco de dados cliente/servidor se deve ao fato de que, muitos ambientes corporativos, em seus processos dirios de trabalho, executam uma seqncia complexa de atividades que dependem constantemente da atualizao dos seus dados para gerar resultados imediatos ao usurio da aplicao.

Segundo Silberschatz (1999, p.441) uma transao uma unidade lgica de execuo que acessa e, possivelmente, atualiza itens de dados. Pode-se dizer que uma transao consiste em elemento importante para os SGBDs cliente/servidor, pois trata-se de um mecanismo que possibilita as aplicaes em execuo simultnea, atualizarem os dados de um banco de dados, sem comprometer a sua integridade.

65

Esse benefcio s pde ser obtido graas a um conjunto de operaes, originadas de um estudo baseado em quatro regras fundamentais para gerenciamento de dados em ambientes multiusurio. Estas regras conhecidas como propriedades ACID, correspondem respectivamente a:

a) Atomicidade: define se todas as aes que representam a transao em um banco de dados sero aplicadas, ou caso contrrio nenhuma delas ser;

b) Consistncia: assegura que um banco de dados ao sofrer uma alterao, mova seu estado de consistncia de forma a garantir que os dados afetados no violem as regras de integridade;

c) Isolamento: define que uma transao no poder ser afetada por outra, mesmo quando ambas so executadas simultneamente;

d) Durabilidade: implica que os resultados de um processo de transao sejam permanentes, caso sejam concludas com sucesso.

Um exemplo mais comum de um processo de transao (Hackathorn 1993, p.61) a transferncia de fundos entre contas bancrias. Uma transao s dever ser completada se existirem fundos suficientes na conta original, verificando sempre se houve alguma alterao no banco de dados antes que ocorra a transferncia. Se isto acontecer, a transao dever ser abortada, evitando que o banco de dados seja alterado.

66

Figura 17: Representao de um processo de transao

Os SGBDs cliente/servidor realizam as transaes atravs de comandos introduzidos na prpria linguagem SQL conhecidos como Commit e Rollback. Estes comandos definem se as alteraes sero concludas com sucesso ou desfeitas quando h risco de inconsistncia. Uma vez concluda a transao (atravs do comando commit), o SGBD muda o estado do banco de dados, tornando as alteraes imediatamente visveis para outros processos de transaes. Caso o processo de transao no puder ser completado, a transao pode ser desfeita (atravs do comando rollback), fazendo que banco de dados retorne ao seu estado original.

Normalmente estas instrues so executadas atravs da aplicao, de acordo com o critrio de processamento estabelecido pela lgica do negcio, ficando o SGBD responsvel por toda parte de gerncia, podendo ou no utilizar mecanismos de controle, que muitas vezes so necessrios em ambientes em que haja a execuo de transaes concorrentes.

67

3.3.7. Controle de Concorrncia

Vimos que em um sistema de banco de dados cliente/servidor, ocorrer situaes em que vrios itens de dados estaro sendo manipulados pelos usurios e quase que ao mesmo tempo. Isso significa dizer que, todas as atividades que ocorrem no banco de dados, esto em pleno processo de concorrncia, podendo acontecer naquela mesma unidade de tempo, porm em fatias de tempo definidas.

O sistema de gerncia de transaes de um SGBD oferece mecanismos que torna possvel realizar tarefas no banco de dados de forma isolada. No entanto, no podero garantir a confiabilidade dos dados se o SGBD, no possuir meios para controlar o sincronismo entre as operaes.

Segundo Kroenke (1999, p. 210), o controle de concorrncia consiste em medidas que so tomadas para evitar que o trabalho do usurio no interfira no do outro. Isso significa dizer que, se um SGBD cliente/servidor tiver que gerenciar atualizaes em seu banco de dados, ele dever possuir meios que garantam ao usurio, que o resultado se seu trabalho seja o mesmo, como se ele estivesse trabalhando isoladamente.

Existem atualmente dois mecanismos bsicos de controle de concorrncia utilizados pelos SGBDs. Estes mecanismos so baseados em princpios de bloqueios (deadlocks) ou de ordenao, de acordo com um critrio estabelecido para a efetivao das aes de atualizao de dados. Estes mecanismos so conhecidos como:

68

a) Controle de Concorrncia Pessimista: funciona de maneira a bloquear o item de dado impedindo que outras transaes executem atualizaes no item bloqueado. Trata-se de um mtodo que trabalha sempre na premissa de que sempre haver possibilidade de conflito entre operaes de transao, fazendo com que uma operao interfira na execuo da atual. Com o mtodo de bloqueio, torna-se possvel garantir o isolamento, que a principal propriedade das operaes de transao. A desvantagem significativa estaria relacionada aos considerveis atrasos que podem ocorrer, e que s vezes podem ser at desnecessrios;

b) Controle de Concorrncia Otimista: trata-se de uma tcnica que se concentra em realizar alteraes, baseados na premissa da no-existncia de conflitos. Cada processo de transao age sem comprometer a execuo de outra. Neste mecanismo toda a avaliao feita no momento em que o item de dado est sendo atualizado. Neste perodo, feita a verificao das demais transaes para ver se algum dado foi alterado no perodo em que a transao foi iniciada. Este mecanismo evita a possibilidade de usar mtodos de bloqueio durante o processo. A desvantagem desta tcnica que, em algum caso de falha, toda a operao de transao dever reinicializada para assegurar a integridade dos dados.

69

3.3.8. Segurana e Administrao

Segundo Silberschatz (1999, p.13), uma das principais razes que motivaram o uso de SGBDs o controle centralizado, tanto dos dados, quanto dos programas de acesso a esses dados. Isso convm afirmar que o controle centralizado de um sistema de banco de dados, em um ambiente cliente/servidor, consiste em um grande benefcio para a segurana das informaes. No entanto, ao fazer uma analogia com os sistemas de informao atuais, observamos que as empresas disponibilizam seus dados a vrios tipos de usurios, dentro ou fora do seu ambiente fsico.

Por essa razo tem-se por definido que, para garantir a segurana do prprio banco de dados da empresa, no se deve levar em conta apenas o uso das ferramentas de administrao incorporadas nos SGBDs. Deve-se considerar tambm o fator humano, que determina qual pessoa tem o perfil necessrio para administrar os recursos primrios (banco de dados) e secundrios (SGBD e ferramentas relacionadas) do sistema.

O Administrador de Banco de Dados (DBA), a pessoa que possui a competncia tcnica para gerenciar todo o sistema de banco de dados de uma organizao. Suas principais funes envolvem um conjunto de atividades que partem, desde a definio da estrutura e do contedo do banco de dados, at atividades relacionadas administrao dos componentes principais do sistema. Dentre esses componentes so mencionados os servidores, estruturas de armazenamento e mtodos de acesso, mecanismos de medio de desempenho, backup e recuperao de dados, administrao de usurios e restries de integridade.

70

Outra tarefa importante do DBA tambm servir de elo de ligao entre os bancos de dados e os usurios. O DBA define os critrios de autorizao atravs de mecanismos que permitam criar contas de usurio, implementando o critrio de segurana apropriado. Alm disso, o DBA pode fornecer aos analistas e programadores, todas as informaes necessrias para viabilizar o desenvolvimento de aplicaes de banco de dados especficas, que sero utilizadas pelos usurios finais.

Com relao tecnologia utilizada para resolver as questes de segurana ao nvel de usurio, o DBA pode atravs do SGBD, implementar mecanismos de segurana baseados em esquemas de login e senha, e tambm em nveis de privilgios.

Os mecanismos de controle de acesso baseados em login e senha, permitem aos SGBDs, no s garantir ou restringir o acesso dos usurios, como tambm registrar todas as operaes a partir do perodo em que o usurio acessa o banco de dados at o momento em que ele encerra suas atividades.

Figura 18: Conexo com SGBD cliente/servidor

71

Os nveis de privilgios por sua vez, permitem restringir o acesso a determinado banco de dados a um grupo restrito de usurios. Uma vez definido qual banco de dados poder ser acessado, poderemos tambm definir quais tipos de operaes podero ser realizadas pelos usurios sobre seus objetos. Vrios produtos de SGBD que utilizam SQL implementam mtodos conhecidos como GRANT e REVOKE para garantia e a revogao dos nveis de privilgios dos usurios.

Figura 19: Definindo privilgios no SQL Server 6.5

Em um ambiente cliente/servidor, pudemos observar que as tecnologias de SGBDs so capazes de garantir a segurana dos dados contra usurios no autorizados. No que se refere s questes de hardware e software, o controle centralizado dos dados tambm torna possvel reforar os nveis de segurana. O DBA pode em caso de pane ou perda de dados durante alguma operao complexa, utilizar mecanismos de backup e recuperao adequados para garantir a restaurao do banco de dados.

72

3.4.

PRINCIPAIS

SOLUES

DA

INDSTRIA

DE

BANCO

DE

DADOS

CLIENTE/SERVIDOR

Nos ltimos anos, os SGBDs cliente/servidor evoluram dando origem a produtos cada vez mais poderosos, capazes de gerenciar bancos de dados de forma mais eficiente, dando ao mesmo tempo mais simplicidade nas operaes. Atualmente podemos encontrar no mercado diversos produtos de SGBD cliente/servidor, projetados para vrios tipos de plataformas e sistemas operacionais. A seguir sero apresentadas caractersticas de alguns dos produtos atualmente disponveis.

3.4.1. Oracle

O Oracle um SGBD cliente/servidor objeto-relacional (ORDBMS) de alta performance produzido pela Oracle Corporation. Foi projetado para ser executado em plataformas UNIX, Linux e Microsoft Windows NT. Sua tecnologia integra recursos, capazes de gerenciar grande volume de dados em ambientes multi-usurio. Isso garante o acesso simultneo dos usurios ao banco de dados, sem comprometer o desempenho do sistema.

Como linguagem SQL nativa o Oracle utiliza a PL/SQL, que implementa vrios recursos ativos, tais como triggers e procedimentos armazenados. Alm disso, o Oracle fornece um potente mecanismo de integridade referencial.

73

Para prover facilidade na administrao dos recursos, as verses mais recentes o Oracle dispem de uma ferramenta conhecida como Oracle Enterprise Manager. Essa ferramenta integra vrios utilitrios de administrao e manipulao de elementos de banco de dados.

Outro mecanismo importante a ser destacado o Data Manager, que oferece recursos que permitem importar e exportar objetos de um banco de dados para outro, facilitando as tarefas de migrao e atualizao.

Figura 20: Viso geral do Oracle Enterprise Manager.

74

3.4.2. SQL Server

O SQL Server (Soukup, 1999, p.30) um SGBD cliente/servidor relacional (RDBMS), projetado para oferecer alto desempenho e suporte a processamento de alto volume de dados. Sua plataforma baseada em sistemas operacionais Windows NT Server ou Workstation, Windows 95/98/ME e em plataformas Windows 2000. Tem como linguagem SQL nativa a Transact-SQL, que incorpora vrios recursos como otimizao de consultas, construo de programao e procedimentos armazenados.

Na sua verso 7, o SQL Server possui um ambiente integrado de desenvolvimento, conhecido como Enterprise Manager, onde permite administrar todos os recursos de qualquer servidor de banco de dados SQL acessvel. Trata-se de uma interface que apresenta uma estrutura de rvore, onde possvel visualizar todos os detalhes de um servidor de banco de dados, incluindo, alm dos bancos de dados, todas as ferramentas de gerncia necessrias.

Outra ferramenta importante o Query Analyzer, que permite executar instrues SQL e visualizar os resultados atravs de uma interface simples. A principal vantagem dessa ferramenta admitir que vrias janelas sejam abertas ao mesmo tempo, possibilitando realizar conexes simultneas a bancos de dados diferentes.

75

Figura 21: Viso geral do Microsoft SQL Server.

3.4.3. Sybase SQL Server

O Sybase SQL Server, na sua verso 11 (Freeman 1996, p.1), foi desenvolvido de acordo com o processo de certificao ISO 9000 para ser um dos mais avanados SGBDs do mercado.

Sua arquitetura inclui um conjunto ferramentas baseadas em ambiente grfico Windows. Dentre essas ferramentas, inclui o Server Manager, que permite gerenciar todo o processo de manipulao de banco de dados e de seus objetos, alm de fornecer um utilitrio para gerar scripts SQL.

76

Figura 22: Viso geral do Sybase SQL Server.

Dentre os outros recursos do Sybase SQL Server, tambm podemos destacar o Service Manager, que oferece recursos para carregar e interromper servidores de banco de dados Sybase. Outra ferramenta, o Server Config, permite configurar servidores a um nvel mais alto, envolvendo tarefas de ajuste de controles, parmetros de linha de comando, conexes de rede, segurana e registro de erros.

3.4.4. Informix

O Informix, desenvolvido pela Informix Corporation, um SGBD multiusurio que possui como ncleo principal o Command Center, que concentra ferramentas usadas na administrao de servidores de banco de dados.

77

Alm do Command Center, o Informix possui outras ferramentas administrativas voltados para as seguintes finalidades: gerenciamento de espao de armazenamento de banco de dados (Space Explorer), criao e manipulao de objetos de banco de dados (Database Explorer), execuo de instrues SQL (SQL Editor). Alm destas ferramentas, o Informix tambm possui o Dbschema, que permite criar arquivos de scripts para serem executados em outros bancos de dados.

Figura 23: Viso geral do Command Center do Informix

Os bancos de dados Informix podem escalar e rodar em qualquer plataforma de sistema operacional, que pode variar desde o Windows NT at sistemas baseados em Linux ou Unix.

78

3.4.5. C/A Ingres

O C/A Ingres um SGBD relacional que teve seu incio nas plataformas Unix, DEC e VAX, onde a maioria das ferramentas tinha interfaces orientadas a caracter.

Na suas verses 1.1 e 1.2, o Ingres traz um subsistema de gerenciamento de objetos baseado em ambiente grfico Windows (CA-Visual/DBA), alm de outros utilitrios importantes, dentre os quais destaca-se o CBF (Configuration by Forms), usado para configurar diversos tipos de servidores, incluindo os de SGBDs e de banco de dados distribudo.

Atualmente a verso do Ingres, conhecida como Ingres II tida como a soluo mais completa de sua categoria para aplicaes de mltiplas camadas e gerenciamento de informao. O Ingres II est disponvel em duas verses, conhecidas como Workgroup e Enterprise. A verso Workgroup, roda em plataforma Windows NT e permite conexes de at 25 usurios simultneos. J a verso Enterprise permite conexo de um nmero ilimitado de usurios e pode ser utilizado em qualquer ambiente multiplataforma.

79

3.4.6. IBM DB2

O DB2 Universal Database um SGBD relacional da IBM Corporation, projetado para ser um banco de dados capaz de oferecer um suporte relacional de gerenciamento de dados rpido, seguro e eficiente. Sua tecnologia derivada do conceito de Banco de Dados Universal, que visa ampliar as capacidades da tecnologia de banco de dados, permitindo manipular tipos de dados no-convencionais, tais como: informaes armazenadas em documentos, planilhas e objetos multimdia. Hoje as verses mais recentes oferecem suporte a vrios tipos de aplicaes cliente/servidor disponveis, incluindo a internet.

Figura 24: Viso geral do Centro de Controle do DB2.

80

O DB2 na sua verso 7.1, possui vrias ferramentas de administrao que podem ser gerenciadas atravs do Centro de Controle (Control Center), que seu ambiente principal. Trata-se de um ambiente que permite ao DBA, atravs de uma interface grfica de usurio (GUI), gerenciar de forma simples e transparente, todos os bancos de dados DB2 alocados em diferentes tipos de plataformas ou sistemas operacionais.

3.4.7. Centura SQLBase

O Centura SQLBase um SGBD relacional multiusurio desenvolvido para plataformas Windows e Novell Netware. Na sua verso 6.00, o SQLBase integra ferramentas GUI baseadas no estilo Windows, dando ao DBA a capacidade de administrar os recursos de forma mais simples.

Uma das principais ferramentas do SQLBase o SQL Console, que permite gerenciar servidores de banco de dados, dando a possibilidade de carregar, criar, modificar e excluir bancos de dados ou objetos de banco de dados. Possui tambm um utilitrio onde o DBA pode executar backups e outros servios de manuteno.

81

3.4.8. PostgreSQL

O PostgreSQL um SGBD objeto-relacional (ORDBMS) de cdigo-fonte aberto, desenvolvido para plataformas Linux e Windows. Segundo Vasudevan (2000, p.1), o PostgreSQL um aperfeioamento do antigo SGBD Postgres. Sua arquitetura foi projetada para se tornar 100% de acordo com o padro ANSI/ISO SQL, e ao mesmo tempo, a principal base de dados de livre distribuio no mundo.

Dentre as principais vantagens a capacidade de permitir herana entre tabelas, alm de prover suporte a qualquer tipo de aplicao, que pode variar desde pginas web simples at um sistema administrativo completo. Outros benefcios a serem destacados so: o excelente desempenho, suporte a transaes e integridade referencial.

3.4.9. MySQL

O MySQL um sistema de banco de dados relacional de cdigo aberto, projetado oferecer um suporte a banco de dados cliente/servidor, oferecendo rapidez e flexibilidade. Pode ser capaz de rodar em qualquer servidor e suportar diferentes aplicaes cliente, alm de prover interao com diferentes ferramentas de administrao e interfaces de programao, tais como C, C++, Eiffel, Java, Perl, PHP, Python e Tcl.

82

Dentre os componentes principais do MySQL destaca-se o MySqlAdmin, que pode ser utilizado para uma variedade de tarefas tais como: criao e excluso de banco de dados, controle de conexes em memria, controle de contas de usurio e monitoramento de servidor.

O MySqlDump outro utilitrio importante, pois atravs dele, pode-se gravar em um arquivo texto, todos os comandos SQL necessrios para criar uma cpia de um banco de dados, inteiro ou em parte. Para execuo de instrues SQL, o MySQL dispe o cliente MySQL, onde possvel criar e manipular banco de dados e seus respectivos objetos.

Existem atualmente verses do MySQL disponveis para plataformas, incluindo todas as variedades de sistema operacional Linux, AIX, FreeBSD, Irix e Windows 95/98/NT.

Na verso Windows, foi incorporado o WinMySqlAdmin, que permite atravs de uma interface grfica, visualizar e alterar as configuraes do MySQL, alm de criar novos bancos de dados. Outro utilitrio, o MySQLManager, permite executar instrues SQL nos bancos de dados criados pelo MySQL.

83

Figura 25: Viso geral do MySQL para Windows.

3.4.10. GemStone

O GemStone um SGBDOO comercial disponvel pela GemStone Systems. Foi projetado para combinar os conceitos de linguagem de programao orientada a objetos Smalltalk, com funes de sistema de gerenciamento de banco de dados. Sua tecnologia apresenta robustez suficiente para manipular grande quantidade de dados a uma baixa taxa de erros, alm de possibilitar a recuperao de falhas sem comprometer a disponibilidade dos dados.

84

Suas linguagens de manipulao (DML) e definio de dados (DDL) so derivadas do Smalltalk, tendo como base os objetos, mensagens e mtodos para tratamento de dados. Os objetos tm uma interface e um estado, e se comunicam uns com os outros atravs de mensagens. O suporte a transmisso de mensagens, encapsulamento, hierarquia de classe, herana e identidade de objetos, so amplamente suportados pelas DML e DDL do GemStone. Em comparao com a linguagem SQL, a DML do GemStone bem completa no aspecto de linguagem de programao.

O GemStone tem como componente bsico o Gem Server, que concentra todos os objetos que so executados pela DML do GemStone, inclusive a avaliao das consultas. Outro componente principal o Stone Monitor que aloca novos identificadores de objetos e coordena a execuo de transaes.

CAPTULO 4 - APLICAES DE BANCO DE DADOS CLIENTE/SERVIDOR

4.1. ASPECTOS BSICOS

Podemos afirmar que os sistemas de banco de dados cliente/servidor so utilizados hoje em dia em uma grande variedade de aplicaes, sendo que a maioria delas, so e vo continuar sendo voltadas ao uso comercial pelas organizaes. No entanto, novas aplicaes surgiram nos ltimos anos, contribuindo de maneira que tornasse possvel s empresas expandirem seus limites de atuao no mercado, dispondo ao mesmo tempo de novos recursos de gerncia de dados para seu negcio. Estes novos recursos permitem que as aplicaes possam lidar com informaes no-convencionais, podendo ainda ser acessadas e manipuladas em diferentes locais.

Com base nestas novas aplicaes, as produtoras de software puderam incorporar novos mecanismos de gerenciamento de dados em seus produtos de SGBDs. Isso fez com que as aplicaes de banco de dados tambm pudessem participar deste processo evolutivo, de forma a poder lidar com tipos de informaes, que antes era inimaginveis pelos sistemas do passado.

86

Neste contexto relacionamos algumas das novas aplicaes de banco de dados que nos ltimos anos, se tornaram cada vez mais importantes para as organizaes.

4.2. PROCESSAMENTO DE BANCOS DE DADOS DISTRIBUDOS

Segundo Ceri e Pelagatti citado por Melo et al. (1997, p.165), um sistema de banco de dados distribudo uma coleo de dados que distribuda por diferentes computadores, possivelmente em diferentes locais. Os computadores so conectados por uma rede de comunicao. O sistema deve suportar aplicaes locais em cada computador, bem como aplicaes globais nas quais mais de um computador esteja envolvido.

Na verdade, um sistema de banco de dados distribudo, considerado como uma modalidade de processamento de banco de dados cliente/servidor, que integra a filosofia dos bancos de dados como resoluo dos problemas apresentados pelos sistemas gerenciamento de arquivos. Um banco de dados distribudo tambm se fundamenta na distribuio dos processos, que leva para o lado do usurio as tecnologias utilizadas para manipular dados atravs da rede. Todos esses requisitos resultam em oferecer aos usurios um sistema integrado para troca de informaes, porm distribudos no que se refere ao local onde os bancos de dados sero alocados.

Em um banco de dados distribudo, o requisito fundamental fazer com que os bancos de dados, dispersos nos diversos locais, sejam vistos pelas aplicaes como um nico banco de dados centralizado. Para isso, o SGBD cliente/servidor disponibiliza vrias

87

funes que tornam os bancos de dados independentes uns dos outros. Ao mesmo tempo, esses recursos visam a transparncia na distribuio e na fragmentao, de forma que os usurios vejam os dados de forma nica, sem se preocupar com a sua localizao fsica. No que se refere aos requisitos de desempenho e disponibilidade dos dados, os SGBDs utilizam tcnicas de replicao que cria cpias locais de um banco de dados inteiro ou parte dele.

4.3. INTERNET E INTRANETS ORGANIZACIONAIS

Internet

pode

ser

considerada

atualmente

como

ambiente

cliente/servidor mais utilizado para transaes comerciais e disseminao de informaes empresariais de diferentes reas de atuao. Trata-se de uma rede pblica, que surgiu a partir de um projeto conhecido como ARPANET, que tinha a finalidade de interligar grandes centros de informaes militares americanos. Quando os militares se retiraram do projeto para a formao da MILNET, a ARPANET passou a ser conhecida como Internet, se popularizando entre centros de pesquisa, empresas e universidades.

88

Com a sua liberao para uso comercial nos Estados Unidos, vrias empresas viram neste novo ambiente a possibilidade de expandir as suas fronteiras comerciais, disponibilizando produtos e servios aos seus clientes em qualquer parte do mundo. Hoje podemos afirmar que o comrcio eletrnico pde se tornar uma realidade, graas ao surgimento de interfaces que permitiram que bancos de dados pudessem ser interligados ao ambiente Web1.

A integrao de banco de dados na web tambm possibilitou que inmeras outras aplicaes empresariais pudessem rodar neste novo ambiente. Como exemplo prtico, podemos destacar os prprios sistemas de transaes bancrias pela Internet, que nos ltimos anos tm apresentado um nvel de utilizao bastante acima das previses.

Figura 26: Exemplo de Aplicao web de comrcio eletrnico.

Um acrnimo para World Wide Web (WWW). Corresponde a uma grande rede de informaes que concentra todos os sistemas de informao disponveis na Internet.

89

No ambiente corporativo, a infra-estrutura de comunicao de dados usada na internet tambm usada para criao de redes privadas, conhecidas como Intranets. Trata-se de uma rede restrita apenas ao ambiente da empresa e que normalmente utilizada para compartilhamento de informaes empresariais.

Da mesma forma que a internet, o uso de aplicaes de banco de dados permitiu expandir a funcionalidade das Intranets, dando a possibilidade de criar aplicaes para diversos fins.

4.4. SISTEMAS DE INFORMAES GEOGRFICAS (GIS)

Um Sistema de Infomaes Geogrfica (GIS Geographic Information System) consiste em uma modalidade no-convencional de aplicao de banco de dados, que tem como caractersticas principais o armazenamento de informaes baseadas em dados geofsicos e a integrao de ferramentas voltadas para processamento de imagens geogrficas. Seu funcionamento (Davis, 2001, p.2) baseado na utilizao de

componentes organizados em uma estrutura hierrquica que inclui: interface com o usurio, entrada e integrao de dados, consulta e anlise espacial, visualizao/plotagem, funes de processamento grfico de imagens e funes de gerncia de dados baseada em bancos de dados geogrficos.

90

Os bancos de dados geogrficos so implementados em praticamente todas as modalidades de GIS atualmente disponveis, podendo operar em conjunto com vrios SGBDs cliente/servidor relacionais ou orientado a objetos. Um exemplo de banco de dados geogrfico o SPRING2, que roda em plataformas de SGBD Oracle e Ingres, armazenando informaes descritivas sobre dados geogrficos, tais como mapas e imagens de satlites. Outro exemplo prtico o acesso a dados geogrficos pela Internet, que acabou criando um novo segmento de aplicaes voltadas para pesquisa e desenvolvimento em geoprocessamento.

Figura 27: Exemplo de processamento de dados geogrficos na internet.

O SPRING (Sistema para Processamento de Informaes Georeferenciadas) foi desenvolvido pelo INPE (Instituto Nacional de Pesquisas Espaciais) para ser utilizado em ambientes UNIX e Windows.

91

4.5. BANCO DE DADOS MULTIMDIA

Os bancos de dados multimdia passaram a ganhar interesse nos ltimos anos devido aos novos tipos de informao que passaram a estar presente em vrios segmentos de aplicaes.

Tipos de dados como textos com livres formatos, documentos web, grficos estruturados, imagens estticas ou com animao, voz e sons, se tornaram cada vez mais comuns no ambiente corporativo. Hoje j possvel pensar em sistemas capazes de operar com tipos de dados que possam representar imagens de impresses digitais, eletrocardiogramas, ressonncia magntica e radiografias, freqentemente utilizados em hospitais ou rgos especializados.

Os SGBDs cliente/servidor relacionais e objeto-relacionais implementam recursos destinados ao armazenamento de elementos grficos e de texto em grandes objetos binrios, conhecidos como BLOB3. No entanto, devido s limitaes para operar outros novos tipos de dados, como vdeos e sons, os ORDBMS podem ser vistos como a alternativa mais eficaz entre os dois modelos para gerenciar novos tipos de informao e dar suporte mais adequado s novas aplicaes.

BLOB (Binary Large Objects) consiste em um bloco de dados em formato binrio que armazenado fisicamente, separado do registro principal. A sua localizao normalmente feita atravs do uso de ponteiros sempre que o registro correspondente referenciado.

92

4.6. DATA WAREHOUSES

Um Data Warehouse (Kroenke, 1999, p.280) um depsito de dados corporativo cuja estrutura inclui recursos destinados a facilitar o acesso a determinados tipos de dados para tomada de decises. Seu objetivo principal aumentar o valor patrimonial dos dados da empresa, armazenando dados de diversos clientes para gerao de informaes integradas futuras.

O ambiente Data Warehouse agrega vrias tecnologias para oferecer a integrao necessria aos bancos de dados de uma organizao. Alm da prpria arquitetura cliente/servidor aliada aos recursos dos SGBDs, so utilizadas interfaces de usurios e ferramentas adequadas para anlise e consulta de dados de modo a fornecer uma interface nica para gerar consultas de suporte deciso.

De forma a viabilizar a implementao de Data Warehouses nos sistemas de informao das empresas, vrias produtoras de SGBDs j implementam em seus produtos um conjunto de recursos, dentre os quais se destacam as ferramentas de processamento analtico on-line (OLAP), que facilitam o compartilhamento de metadados (dados referentes a dados) com outros bancos de dados e demais aplicaes, de modo a fornecer acesso e anlise desses dados de forma simples para o usurio-final.

CAPTULO 5 - CONCLUSO

5.1. CONSIDERAES FINAIS

Conclui-se que, o ambiente de computao cliente/servidor uma rea que est em plena evoluo no que diz respeito ao segmento de novas aplicaes de banco de dados e tecnologias de integrao. Paralelamente, os sistemas de banco de dados cliente/servidor podem hoje ser tambm considerados como parte indispensvel em qualquer sistema computacional multi-plataforma.

A contribuio deste trabalho para compreenso dos principais aspectos dos sistemas de banco de dados cliente/servidor foi uma abordagem genrica, que delimitou o estudo dos principais elementos envolvidos no processamento de banco de dados para os diversos segmentos de aplicaes empresariais que lidam com tipos de informaes, tanto convencionais, como no-convencionais.

94

Com base nesse estudo, pode-se afirmar que a abordagem apresentada sobre os aspectos tecnolgicos e funcionais, empregados na arquitetura cliente/servidor para banco de dados, serviu para mostrar que esse ambiente conseguiu superar os problemas apresentados pelos sistemas centralizados, principalmente no que se refere s questes relativas reduo de custos operacionais e implementao de novos recursos tecnolgicos para oferecer solues imediatas para tomada de decises. Ao mesmo tempo, os sistemas de banco de dados no ambiente cliente/servidor puderam ainda estabelecer nas empresas um novo padro de comportamento, incentivando o estudo de novas solues corporativas e adotando estratgias para prover melhor organizao e controle de todo o seu sistema de informao, contribuindo ainda para dar amplo suporte s novas aplicaes que podero ser adotadas ao longo do tempo.

Como sugesto para novos trabalhos, pode ser feita uma pesquisa sobre as principais solues de mercado que utilizam ORDBMS cliente/servidor, a fim de ter uma idia mais precisa sobre a real efetividade das aplicaes OO cliente/servidor existentes para processamento de dados no-convencionais.

Para finalizar, deve-se ter conhecimento sobre quais componentes podero ser considerados mais adequados para determinado tipo de aplicao cliente/servidor de banco de dados. Apesar da arquitetura cliente/servidor oferecer independncia de plataforma e sistema operacional para comunicao entre processos, o melhor conjunto de recursos pode fazer a diferena em termos de desempenho e produtividade.

ABSTRACT This research has for objective to present a boarding about database systems used in client/server processing environments, describing its main components and the technologies used for integration between databases and the applications. Based in this analysis will be pointed the main aspects that had taken the client/server database systems to become the main plataforms for data management and support to the new applications.

Referncias Bibliogrficas

DATE, C.J. Introduo a Sistemas de Bancos de Dados. 9. ed. Rio de Janeiro: Editora Campus, 1990. DAVIS, Clodoveu; CMARA, Gilberto. Fundamentos de Geoprocessamento Arquitetura de Sistemas de Informao Geogrfica. 04 Junho 2001. Disponvel em: <http://www.dpi.inpe.br/gilberto/livro/introd/cap3-arquitetura.pdf> Acesso em 30 de julho de 2001 DESCARTES, Alligator: Programming the Perl DBI, 1 Ed, 2000. Disponvel em: <http://www.oreilly.com/catalog/perldbi/chapter/ch04.html> Acesso em 07 de maio de 2001 FREEMAN, Miller. Sybase SQL Server 11. DBMS and Internet Systems, 1996. Disponvel em: <http://www.dbmsmag.com/9611d54.html> Acesso em 26 de junho de 2001 HACKATHORN, Richard D. Conectividade de Bancos de Dados Empresariais. Rio de Janeiro: Infobook, 1993. HAMILTON, Graham; CATTELI, Rick. JDBC A Java SQL API. Sun Microsystems Inc. 1997. Disponvel em: < ftp://ftp.java.sun.com/pub/jdbc/953287-12/jdbc-spec-0120.pdf> Arquivo capturado em 13 de junho de 2001 KROENKE, David M. Banco de Dados: Fundamentos, Projeto e Implementao. 6. Ed. Rio de Janeiro: LTC, 1999. MELO, Rubens N.; SILVA, Sidney D.; TANAKA, Asterio K. Banco de Dados em Aplicaes Cliente/Servidor. Rio de Janeiro: Infobook, 1997. PRADO, Juano A. Nunez del. Acessando SQL Server com Visual Basic 5. Santa Catarina: Advanced Editora, 1998. RENAUD, Paul E. Introduo aos Sistemas Cliente/Servidor: Guia Prtico para Profissionais de Sistemas. Rio de Janeiro: Infobook, 1994. RUDRARAJU, Pandu. Borland Database Engine and IDAPI - A Technology Overview. Borland Software Corporation, 1995. Disponvel em: <http://www.borland.com/bde/papers/idapi/> Acesso em 18 de junho de 2001

SALEMI, Joe. Guia para Banco de Dados Cliente/Servidor. 2. ed. Rio de Janeiro: Infobook, 1995. SILBERSCHATZ. Abrahan; KORTH, Henry F. e SUDARSHAN, S. Sistema de Banco de Dados. 3. ed. So Paulo: Makron Books, 1999. SOUKUP, Ron. Desvendando o SQL Server 7.0. Rio de Janeiro: Campus, 1999. VASUDEVAN, Alavoor. Database-SQL-RDBMS HOW-TO - document for Linux (PostgreSQL Object Relational Database System). v40.0, 09 dez. 2000. Disponvel em: <http://www.cybersite.com.au/HOWTO/PostgreSQL-HOWTO.html> Acesso em 05 de junho de 2001.