Você está na página 1de 69

1

NDICE GERAL

TUTORIAL SOBRE TCP/IP................................................................01


INTRANET E EXTRANET...................................................................09
BANCO DE DADOS e SQL.................................................................19
ACCESS 2000..................................................................................40
GERENCIANDO UMA INSTANCE ORACLE..........................................60
DIFERENAS BSICAS ENTRE ORACLE E SQL SERVER 7.0...............63

Tutorial sobre TCP/IP

TCP: Transmission Control Protocol


IP: Internet Protocol

Protocolos: Simplesmente um conjunto de regras bem definidas que definem uma acao a ser executada (parece
definicao de algoritmo mas na verdade pode ate ser encarado como um). Assim, protocolos em computacao, e em
especial a redes, define como computadores podem se comunicar entre si.
Todo computador conectado em rede necessita de uma identificacao, sendo assim, j de posse dessa identificacao,
o protocolo tem por papel primordial estabelecer a conexao mais confiavel e duradoura possivel entre
computadores. Dessa forma, se define: como enviar e receber e-mails, como me identifico a outro computador,
quanto tempo devo esperar para que voc me envie um conjunto de informacoes, com que intervalo um conjunto
de informacoes deve ser espacado a fim de se obter a conexao mais confiavel possivel, como comear e como
terminar uma conexao, etc.
Intranet: Intranet o novo conceito para redes de acesso discado mas no vinculado diretamente ao que
conhecemos como Internet. Tal como um provedor de acesso Internet, a Intranet conecta clientes a suas redes
corporativas internas. Encare uma Intranet como servidora dela mesma, ou seja, voce pode acessa-la sem mesmo
ter uma conta com um provedor Internet, contudo, o acesso limita-se apenas a rede privada e, de forma alguma,
voce poderia, por exemplo, visitar paginas em outros locais alem da qual foi pre-programada pela empresa. As
diferenas residem ai, no resto, temos todas as caracteristicas de uma rede qualquer: servios WWW, ftp e o que
mais a empresa venha a necessitar para atender seus clientes. Um bom exemplo a dar a respeito sobre os
servios de Home Banking do Banco Itau (Isso no propaganda heim?); voc conecta-se, por acesso discado, do
seu modem, a rede interna de servicos privados do Banco Itau e usufrui dos servicos de um caixa on-line.
Extranet: Extranet uma variante da Intranet, ou seja, podemos defini-la como sendo uma interligao entre
Intranets por meio da Internet. Dessa forma, uma Intranet pode se comunicar a outra bastando apenas a sua
interligacao por meio da Internet o que, nesse caso, envolveria um provedor de acesso discado. Pense comigo:
uma empresa com varias filiais precisando de comunicao urgente com uma outra localizada a varios milhares de
quilometros; a comunicacao por acesso puramente discado, Intranet a Intranet seria invivel; usa-se, ento, um
provedor de acesso local para a interligao entre as duas filiais.

Introduo

Ao contrario do que muita gente possa pensar, TCP/IP nao o unico protocolo utilizado em comunicao
em redes, tanto que ao mesmo nivel de um IP, por exemplo, existe o x.25 e, ao TCP, o UDP. E algo mais que
algumas pessoas possam fazer confusao a respeito do que cada um faz, ou seja, TCP define um papel um tanto
diferente do IP e vice-versa, cada qual com um papel especifico mas com sobrevivencia mutua e sempre "ajudado"
por protocolos semelhantes. Na realidade podemos ate mesmo estudar os dois protocolos separadamente.
O TCP/IP foi adotado como padrao em todo mundo como meio de comunicacao com a Internet. Algumas
empresas podem implementar seus proprios protocolos de comunicacao em redes internas, se quiserem, mas para
a comunicacao com a Internet deverao adaptar seus equipamentos a fim de operar em TCP/IP.
O TCP/IP foi primeiramente desenvolvido como um projeto particular que atendesse aos servicos do
Governo Americano em especial as Forcas Armadas. No tempo da Guerra Fria, nao era possivel um nivel de
comunicao satisfatorio entre bases comandadas, entao foi necessario a criacao de um nivel de transmissao de
informacoes mais adequado. Logicamente existiam as transmissoes puramente fisicas com dados trafegando por
meio de pulsos eletricos tal qual um barramento transfere dados entre perifericos. Pensar em algo como isso
naqueles tempos era no minimo ridiculo. Como me comunicar dessa forma com uma base militar a algumas
centenas ou milhares de quilometros? Levando em conta alguns conceitos de eletronica, o sinal se perderia ou se
anularia facilmente nesse meio, os fios.
Mesmo levando em conta que fosse possivel tal meio de comunicao, as informacoes nao sao enviadas
como em um protcolo por TCP/IP, ou seja, por pacotes. tudo enviado de uma vez so. Se a transmissao por
algum motivo fosse interrompida todo o processo iria falhar e a informacao nao chegaria ao destino final.
Desastroso.
Alem de permitir uma conexao mais confiavel em redes, o TCP/IP permitia transmissoes bem mais
arrojadas do que aquelas realizadas em modo puramente fisico, ou seja, unicamente por transmissao em pulsos.
Assim, uma transmissao puramente fisica so poderia ser realizada somente por dois usuarios por vez e se se
quisesse enviar mais informacoes a outros computadores nao seria possivel ou entao deveria-se fechar uma das
conexoes para que a informao pudesse chegar em dois locais. Levando em conta que naquele tempo a

1
2
comunicacao era primordial entre varios lugares ao mesmo tempo, esse modo de transmissao nao era o mais
indicado. Pelo TCP/IP (outros protocolos permitiam isso tambem) era possivel comunicacao entre vrios
computadores ao mesmo tempo e isso atendia as pretensoes da epoca.
Nesse tempo, os cientistas tiveram a ideia de transmissao por pacotes, ou seja, somente partes da
informacao que deveria ser transmitida seriam enviadas. Assim, uma mensagem nao corria o risco de se perder no
meio da transmissao e mesmo uma conexao mal realizada nao seria de toda inutil.
Bem ,alguem poderia estar se perguntando: "Tudo bem, entendi o que voc quis dizer, mas se se usa
qualquer protocolo para meios de comunicao atraves de pacotes segmentados, isso tambem implica um meio fisico
de transmissao e nesse meios os dados trafegam normalmente como pulsos eletricos tambem." -- Ok, voc esta
certo, nao ha diferencas em como a informao chega ao destino, ha sim no modo como ela enviada. Como sera
explicado mais adiante, o IP segmenta a informao em varios pacotes e esse pacotes sao tratados meramente
como pulsos eletricos quando transmitidos e quando chegam ao computador destino, mas o TCP (o responsavel
pelo recebimento) implementa um metodo seguro de transmissao, isso porque se o que se queria ser enviado nao
chegou ao destino de forma completa, uma nova conexao pode ser restabelecida sem prejuizo do que j havia sido
feito.
Creio que voc j deve ter ouvido falar no GetRight nao? Otimo programa. Isso seria um bom exemplo
para dar a voc: quando uma conexao termina por qualquer motivo com o meio de origem, o que envia os dados,
uma nova conexo pode ser estabelecida sem prejuizo dos dados que estavam sendo recebidos, ou seja, pode ser
reinicializada de onde se parou sem problemas. Assim funciona o meio de transmissao de pacotes e acho que voc
j pegou o espirito da coisa sobre a importancia desse protocolo.
O protocolo TCP/IP implantou um novo conceito arrojado no modo de transmissao mundial entre redes
mesmo as heterogeneas (Sistemas Operacionais diferentes) e qualquer Sistema que tenha por pretensao conectar
o usuario em rede mundial Internet deve ter tais protocolos instalados Bom, era isso que eu queria falar a voc
como introducao. Agora vamos a parte tecnica da coisa.

Conceitos Tcnicos

Antes de comecar, um esclarecimento: Um provedor de acesso a internet funciona por concessao de uma
outra grande rede maior. Assim, seu provedor nada mais do que uma rede conectada a outra maior e voc,
quando conectado ao seu provedor e fazendo parte dele como um host, um micro-host em toda a essa rede
maior. Essa grande rede maior chamada de backbone (espinha-dorsal em ingles) e nela onde estao
conectadas as redes menores que oferecem servicos, as provedoras. o nivel mais alto das redes. Os backbones
nacionais sao: RNP, Embratel, Unysis, Global One, IBM e Banco Rural. Creio que sao os unicos ate o momento.
Esse sao os de nivel mais alto no Brasil, mas existem os backbones estaduais tambem (na realidade podem ser
considerados como centros de roteamento aos backbones nacionais): ANSP - SP; Rede Bahia - BA; Rede
Catarinense - SC; Rede Internet Minas - MG; Rede Paraibana de Pesquisa - PB; Rede Rio - RJ; Rede Pernambuco
de Informtica - PE; Rede Norte-riograndense de Informtica - RN e Rede Tch - RS.
Sendo assim, a sua provedora seu backbone pessoal, que se liga ao backbone do estado onde esta
localizada que por sua vez conectada ao de maior nivel, os backbones nacionais. Se seu estado nao possui
backbone provavelmente sua provedora utiliza um backbone de outro estado ou entao de algum instituto de
tecnologia proprio que possa fazer pelo menos um roteamento satisfatorio.
Quando estabelecemos uma comunicacao com nosso provedor de acesso a internet, por exemplo, nos
atribuido um numero de identificacao na rede. Esse numero de identificacao o IP. Um numero IP nada mais do
um numero de 32 bits segmentado em quatro partes, portanto com oito bits, formando um byte. Ao total teriamos
4 bytes. Se voce recebe por exemplo 11001000.11111001.11011111.1110010 esse numero define voce no
mundo inteiro, ou seja, seu computador unico na internet naquele momento e voce perfeitamente identificado
por ele. Assim como um numero de telefone, no existem dois numeros IP conectados ao mesmo tempo a no ser,
obvio, que seja pertencente a uma rede interna (que no possua acesso a Internet).
Algo interessante a se dizer sobre essa identificacao que, como foi dito, sao um conjunto de bits e
como tal representado por numeros binarios. O mesmo numero acima traduzido para tabela decimal ficaria:
200.249.223.114. Isso importante notar, porque um numero como esse nao dado a voce em formato
decimal mas sim binario e depois convertido gracas ao servidor ou servidores DNS. Outra coisa interessante a ser
dita a respeito que numeros IP nunca ultrapassam o patamar de numero 256. Assim, voce nunca ira ver nada
como 200.286, isso no possivel. Simplesmente porque a tabela de conversao atinge somente 256 possibilidades
numericas (de 0 a 255). Portanto, o maximo que voce ira ver sera 255 como numero identificador de um dos
segmentos do quarteto decimal. Na realidade poderiamos dizer 253 possibilidades porque o numero 0 eh
destinado a processos especiais e 255 no pode ser atribuido a numeros IP de hosts, eles possuem outra
finalidade (a mascara de sub-rede). Maiores detalhes sobre isso na secao "HIERARQUIA DE REDES".
Outro fato que eu acredito muitas pessoas facam confusao a respeito do host. Um host nada mais do
que um computador conectado em rede (em uma rede interna ele tambem pode ser chamado de n). Vamos citar
um exemplo de provedora, a ELOGICA. Quando voce disca para la e voc conectado, eles te fornecem um
numero IP, ok. Para a ELOGICA voce nada mais do que um computador conectado na rede dela, meramente um
numero de identificacao.
Como identifico um host? simples. Um endereco IP dividido em duas partes: uma destinada a
identificao da rede e a outra identificando o host, ou seja o micro que pertence a essa rede e se conectou a ela.
Voltando ao exemplo acima: se nos temos 200.249.223.114 os dois primeiros bytes desse numero (lembre-se da
definicao mais acima, para nao ficar perdido) sao destinados a rede, entao: 200.249 a rede a qual me conectei.

2
3
Ok. Os outros dois ultimos bytes definem o host: 223.114. Entao, para ficar facil, eu sou um micro chamado de
host com identificacao 223.114 conectado na rede 200.249.
Mais outra coisa deve ser dita: acho que voce j ouviu falar em sub-rede, claro. Pois , uma sub-rede
nada mais do que uma rede hierarquicamente inferior em relacao a uma rede maior. Geralmente, os numeros
que identificam a sub-rede sao referidos ao terceiro byte da cadeia do IP, assim o mesmo numero
200.249.223.114 pode definir uma sub-rede de identificacao 223. Como voce pode ver, uma rede pode ter varias
sub-redes menores cada uma interdependente entre si mas dependente em relacao a rede maior.
(*Esse conceito de identificacao de sub-redes envolve detalhes maiores e voce ira obter melhores informacoes na
secao "HIERARQUIA DE REDES"*)
Voltando ao exemplo da ELOGICA: ela possui varias sub-redes cada uma com um papel diferente mas de
importancia suma dentro de toda a rede. Para a ELOGICA foi concedido o numero 200.249.XXX como identificador
da rede em geral. Dentro dessa rede maior, a ELOGICA criou varios outros departamentos menores cada um com
um servico especifico. Assim, poderiamos ter 200.249.223; 200.249.238; 200.249.219; 200.249.218, etc. Cada
uma dessas sub-redes com uma funcao especifica. Se voc por exemplo, se conecta a rede e recebe:
200.249.219.15 entao voce um host de numero 15 dentro da sub-rede 219 na rede 200.249.
(*Infelizmente desconheco o menor e o maior nivel de rede concedido a ELOGICA porque, como eh uma rede
classe C, apenas o segundo byte no informa a sub-rede verdadeira. Assim outras redes tambem podem ter
200.249.XXX como identificador, o que vai diferenciar ai seria o terceiro byte, justamente o que define uma rede
dessa classe.*)

O conjunto de sub-redes da ELOGICA segue abaixo:

200.249.238.2 bbs.ELOGICA.com.br
200.249.238.3 PE.ELOGICA.com.br
200.249.238.4 ceiun01.ELOGICA.com.br
200.249.238.9 irc.ELOGICA.com.br
200.249.238.11 os390.ELOGICA.com.br
200.249.238.15 dominus.ELOGICA.com.br
200.249.238.16 oxente.ELOGICA.com.br
200.249.238.17 clovis.ELOGICA.com.br.238.249.200.in-addr.arpa
200.249.238.18 host238-18.ELOGICA.com.br
200.249.238.19 host238-19.ELOGICA.com.br

Observe que os servidores principais se concentram na sub-rede 238. Isso nao significa que um host de
um usuario nao possa entrar e ser identificado como pertencente a sub-rede 238. De fato, esses sao enderecos
fixos e pertencem aos servidores que atendem servicos tais como o IRC mais acima ou o de e-mail (se nao me
engano o responsavel ai seria o ceiun01). Mas observe que mais abaixo (os dois ultimos hosts) encontramos
numeros de hosts comuns, ou seja, sao de usuarios conectados no momento.
Um outro exemplo:
200.249.223.1 host223-1.ELOGICA.com.br
200.249.223.2 host223-2.ELOGICA.com.br
200.249.223.3 host223-3.ELOGICA.com.br
200.249.223.4 host223-4.ELOGICA.com.br
200.249.223.5 host223-5.ELOGICA.com.br
200.249.223.6 host223-6.ELOGICA.com.br
200.249.223.7 host223-7.ELOGICA.com.br
200.249.223.8 host223-8.ELOGICA.com.br
200.249.223.9 host223-9.ELOGICA.com.br
200.249.223.10 host223-10.ELOGICA.com.br
200.249.223.11 host223-11.ELOGICA.com.br
200.249.223.12 host223-12.ELOGICA.com.br

Nessa sub-rede de agora, a 223 nao ouve nenhum servidor anunciado, apenas usuarios conectados.
Outras sub-redes foram verificadas mas nao houve nenhuma nova inclusao de servidores, parece que todo o
servico se concentra na sub-rede 238. De fato, como sera visto no proximo capitulo, sub-redes superiores a 224
so destinadas a servicos especiais e ficam destinadas aos servidores.

Hierarquia de Redes

Como havia dito antes, a ELOGICA no obteve um numero de rede do nada. A ela foi concedido um
numero de rede que : 200.249.XXX. O fato de ter colocado os caracteres X porque a ELOGICA no nica no
mundo com identificacao 200.249. De fato, assim como ela, a NETPE (uma outra provedora aqui de PE) tambem
recebeu 200.249 como identificacao. Ambas so redes classe C e so varias pelo mundo. O que vai diferenciar as
duas sera o terceiro byte da cadeia do IP. Uma organizao mundial chamada IETF (Internet Engineering Task
Force, ou Fora Tarefa de Engenharia da Internet) eh quem outorga esses numeros a quem a solicita.

3
4
As redes so divididas hierarquicamente no mundo, assim nos temos rede de maior tamanho e aquelas
menores. Essa definicao de maior ou menor atende o simples fato da possibilidade de um numero maior ou menor
de hosts conectados. Assim nos temos: Redes classe A, B e C.
Redes classe A: So as redes de maior numero de hosts conectados e somente pouquissimos orgaos ao
redor do mundo possuem o privilegio de possuir um endereco de rede situado na classe A (diga-se de passagem,
no existem mais enderecos dessa classe disponiveis a novos cadastros, a no ser que alguem se descadastre).
De fato, no eh qualquer organizacao no mundo que possui esse privilegio e eh apenas concedido a Universidades
e organismos Governamentais. A quantidade de enderecos disponiveis a esse nivel pequena, atinge numeros de
1 a 126. Observe que no utilizei os caracteres X pra identificar um outro nivel, isso no eh necessario em classes
do tipo A, porque o primeiro byte jah eh suficiente para a identificacao de toda a rede. J deu pra perceber
portanto que essas redes so muito poucas mas atende o maior numero possivel de hosts conectados:
16.777.215. No mundo inteiro somente existe 126 redes classe A com demanda de aproximadamente 16 milhoes
de hosts. Entao nos poderiamos ter: 1.0.0.1 ate 126.255.255.254. Esses dezesseis milhoes de hosts reflete o
numero de possibilidades possiveis entre os tres ultimos bytes do quarteto. Assim, se fizermos uma analise
combinatoria desses termos chegariamos no numero em questao. Bom, uma pergunta poderia surgir: "Ok, redes
desse tipo so realmente grandes mas no entendi como ficou essa ultima parte, e quanto aos outros enderecos?
Por que no foram incluidos? - Os outros enderecos de rede no foram incluidos poque so o resultado da analise
combinatoria entre os outros possiveis hosts. Levando em conta que possuimos ainda os tres ultimos bytes da
cadeia do IP, teriamos 256 possibilidades diferentes em um byte da cadeia do IP.
Se temos 256 possibilidades entre cada um dos tres ultimos bytes da cadeia do IP entao faca o seguinte:
eleve 256 ao cubo. O que voce vai obter exatamente 16.777.216 como resultado. Uma pergunta interessante
poderia surgir: "Certo, mas em outra parte do tutorial voce afirma que o numero 0 e o 255 no podem ser
atribuidos a numeros IP porque possuem outras funcoes" - No eh bem assim. O que afirmei eh que numeros de
hosts no podem ter esses numeros e quando me refiro a host me refiro a um micro conectado e no um servidor
de rede. Dessa forma, uma rede pode se utilizar de todas as possibilidades desde que no seja atribuido aqueles
valores a hosts.
Rede tipo B: Essas so as redes intermediarias e possuem enderecos de rede de 128 a 16.384. Redes
desse tipo so identificadas pelos dois primeiros bytes. So possiveis portanto um numero de redes dessa classe
da ordem de 16.256. Faca as contas: se voce j sabe que a rede ira comecar em 128 e terminara em 191 (o
proximo nivel da hierarquia das redes comeara em 192) , basta subtrair 128 de 192, o resultado voce multiplica
por 256. Assim, voce ira obter 16.384. Por exemplo: o resultado que voce obteve foi 64 jah que o primeiro byte do
nivel iria de 128 a 192 e o segundo de 0 a 255. Assim, como exemplo, poderiamos ter: 128.0.0.1 ate
191.255.255.254. O numero de hosts disponiveis nessa classe eu acho que voce j sabe como calcular: 256
elevado ao quadrado (so os dois ultimos bytes restantes). Teriamos entao 65.536. Esse o numero possivel de
hosts conectados nessa classe. No mundo temos entao 16.256 redes classe B com um maximo de 65.536 hosts
conectados.
Uma pergunta poderia surgir: "Voce comecou a contar esta rede a partir de 128, a rede anterior no
terminou em 126? Onde esta o numero 127?" - O numero 127 no se destina a identificar redes publicas. De fato,
esse numero eh destinado a testes de loopback em uma rede. Um loopback nada mais eh do que a conexao que a
rede faz com ela mesma para testes internos, configuracoes, etc. Isso no eh exclusivo de redes e tanto eh que
loopbacks existem quando queremos verificar a velocidade de trafego numa comunicacao paralela ou serial por
exemplo. Dessa forma, uma rede que comece com 127 no eh uma rede que conecte hosts. Eh um teste interno
apenas. Entao se voce vir 127.0.0.1, por exemplo, isso eh um numero de loopback.
Rede tipo C: Essas so as menores e so as mais numerosas em todo mundo. Provavelmente a sua
provedora de acesso a Internet usa uma rede tipo C. Enderecos de rede vao de 192 ate 2.097.152. No mundo so
possiveis, entao, algo em torno de 2 milhoes de redes com apenas 254 hosts conectados (que eh o ultimo byte).
Os endereos de rede ficariam entao: 192.0.0.1 a 224.255.255.254. Como provavelmente sua provedora no
possui apenas 254 usuarios cadastrados, ela com certeza dividiu a sua rede em redes menores cada uma
comportando 254 usuarios. Isso ira acontecer sempre a medida que a demanda por acessos a novos usuarios
aumentar, ou seja, se uma rede classe C jah no atende mais a demanda, ela pode ser aumentada com a inclusao
de novas sub-redes. Para se chegar a esse numero de 2 milhoes o calculo eh o mesmo do que jah foi feito acima,
ou seja, redes classe C so identificadas pelos tres primeiros bytes entao faa somente o 256 elevado ao cubo e vc
achara o valor, certo? Bastante errado.
Ao contrario das outras redes, uma rede classe C possui mais restricoes. Uma rede classe C comeca do
numero 192, ok. Mas no termina em 256! De fato, ela termina no numero 224. Isso acontece porque numeros
superiores a 224 so destinados a servicos especiais (com protocolos diferentes) e no so incluidos como
identificador de rede. Assim nos teriamos apenas 32 possibilidades no primeiro byte (de 192 ate 224). Os dois
bytes seguintes continuariam da mesma forma, ou seja, no existem restricoes e continuariam com 256
possiblidades. Entao nos teriamos: 32 x 256 x 256 = 2.097.152. E assim nos temos o numero de redes disponiveis
nessa classe. Na verdade o numero de redes disponiveis eh isso menos uma rede: a 192.168 que eh feita quando
queremos construir nossa rede particular. Se algum dia voce quiser montar sua rede provavelmente ira nomear
seus hosts como: 192.168.0.1; 192.168.0.2.... ate o fim do numero de maquinas disponiveis. Se chegar na
maquina de numero 24, por exemplo, era podera ser conhecia como: 192.168.2.4.
Outro item a ser comentado eh sobre o que se chama de mascara da sub-rede. Isso nada mais eh do
que a determinacao da classe a qual uma rede pertence. Assim nos poderiamos ter:
Classe A: 255.0.0.0
Classe B: 255.255.0.0
Classe C: 255.255.255.0

4
5
Parece desnecessario? Pois eh, realmente nos damos a olhar a primeira vista e pensar que no eh
necessario um tipo de identificacao de redes desse tipo. Bastaria olhar o numero do primeiro byte e isso jah seria
suficiente p/ saber a que classe a rede pertence. Isso a nossos olhos eh otimo mas para uma maquina, a que ira
analisar pedidos, por exemplo, isso no eh suficiente. Precisamos informar a ela que a rede eh do tipo C, A ou B e
isso eh feito pela mascara da sub-rede (tambem chamada de netmask). Eh necessario esse tipo de informcao
porque uma rede de amplo espectro, uma classe A, por exemplo, pode ser dividida em redes classe B que por sua
vez pode ser subdividida em redes classe C.
Por exemplo, voce pode ter uma rede classe A mas achou muito grande e resolveu dividi-la em varias
redes B, no final voce quis varias tipo C, ok, sem problemas. Mas quando voce fez isso, voce automaticamente
criou redes verdadeiras e no apenas subsividoes. Assim a menor divisao que voce fez foi em 20 vezes. No se
deu por satisfeito e resolveu criar redes menores dentro daquelas 20, vamos supor 5. Cada uma dessas divisoes
no eh tratada como um mero host, por exemplo, eh uma rede inteira. Sendo assim, voce precisa informar que
aquela subdivisao das 20, as outras 5 redes, no so hosts e sim redes classe C. E, na verdade, quando se chega
a um ponto como esse, nem mesmo uma simples "olhada" nos numeros eh suficiente para informar que tipo de
rede e fatalmente voce ira precisar se certificar disso por meio do netmask. Isso eh importante porque sem
essas informacoes no eh possivel o roteamento de dados. Eh necessario manter o nivel de hierarquia das redes.
Se voce tem, por exemplo, um numero de rede como: 125.142.75.6 isso parece ser uma rede classe A.
Quem pode garantir? Uma "olhada" nesse numero no eh suficiente pra termos certeza. Essa pode ser a nossa
divisao de redes que fizemos nas linhas acima ou entao uma rede A verdadeira. Sendo assim, extremamente
necessario informar que essa rede no eh uma rede A e sim uma classe C dentro de uma A. Dependendo di
sistema em uso, podemos definir simplesmente pelo netmask. 255.255.255.0 eh suficiente pra informar que essa
eh uma rede C.
Espero que tenha sido esclarecedor essas informacoes. Eh muito importante o conhecimento desses
topicos se quiser saber mais sobre construcao de redes.

Conceitos Tcnicos

O protocolo IP possui outras determinacoes alem de identificar voce na rede: ele transforma a
informacao a ser enviada em pequenos pacotes cada um contendo em torno de 512 bytes (alguns autores se
divergem quanto ao tamanho dos pacotes, alguns chegam a admitir 200 bytes). Esses pacotes recebem o nome de
datagrams e em cada um desses pacotes alocada a informacao do computador de origem e de destino. Que
informacao essa? o numero IP. Assim, se por exemplo voce estabelece uma conexao com algum servidor tipo
ftp, junto de cada pacote vai o seu numero IP, para que o servidor saiba para quem esta enviando os dados, alem
do proprio numero IP do servidor para que possa ser localizado, logico.
A respeito do tamanho dos pacotes eles podem ser facilmente percebidos: experimente fazer um upload
por e-mail de um arquivo qualquer de, digamos, 137 kb. Na janela informativa de status da operacao voce ira
perceber que aquele pacote de 137 kb aumentou para algo em torno de 188 kb. Esse arquivo de 137 kb foi
segmentado em varias partes de mais ou menos 512 bytes cada e foi anexado um cabealho informativo feito pelo
IP (explicado mais adiante) contendo informacoes do computador de origem e de destino. Essa informacoes
adcionais, colocadas em cada pacote, constituem alguns kbytes a mais em tudo e foi por isso que aumentou para
188 kb.
Um dado interessante a respeito que algumas aplicacoes cliente (leia-se programas que recebem
exclusivamente dados) como um mIRC por exemplo, anexa os dois protocolos em seu meio e perfeitamente
configuravel o tamanho de cada pacote, ou seja, voce poderia enviar pacotes de dados com 512 ou 200 bytes sem
problemas. Contudo, pacotes maiores sao mais confiaveis e sempre aconselhavel voce utilizar pacotes de 512
byes. Tambem nao vamos exagerar e colocar pacotes de 1024 bytes. Absurdo. possivel? . Mas nao uma boa
ideia.
Uma cartacteristica interessante da rede que os dados transformados em pacotes podem se perder no
caminho da transmissao. Nos primordios do TCP/IP, essas informacoes nao se perdiam tao facilmente mas com o
crescente congestionamento da rede, um ou outro pacote pode se perder no caminho ou no minimo chegar na
ordem errada. Isso ocorre primeiramente porque qualquer coisa enviado atraves de rede deve passar pelo meio
fisico e nesse meio essas "coisas" nada mais sao do que sinais eletricos provenientes de um meio digital. Assim,
um pacote de informacoes sao varios pulsos de interrupcao numa corrente continua.
Assim, os pacotes sao enviados sequencialmente mas nao garantida a sucessao correta, assim um
pacote de numero 20 pode chegar na frente do 15. Ai entao entra o TCP responsavel pelo recebimento dos pacotes
que chegam. Esse protocolo tem sua maior funcao no reordenamento dos pacotes. Assim, se um pacote enviado
pelo IP se perde no caminho, o TCP manda novo pedido ao computador que estava enviando a informacao a fim de
ser reestabelecido o processo e o envio novamente do mesmo pacote ou entao, se todos os pacotes conseguiram
chegar, po-los na ordem correta. Esse pedido geralmente eh feito pelo protocolo ICMP (parte do IP que trata de
controle de erros, explicado mais adiante) o qual enviado em um pacote menor do que 512 bytes informando
que um pacote chegou de forma inadequada ou nao chegou.
Perceba que a informacao nao chega inteira mas segmentada em centenas ou milhares de pacotes,
dependendo do tamanho do que se quer enviar. Entao como o TCP ao receber o pacote sabe em que ordem ele
deve ficar? Nesse caso entra o TCP de origem. O TCP do computador de origem fornece um numero sequencial a
cada pacote segmentado pelo IP. Assim, quandos os pacotes chegam no destino, o TCP de destino se incumbe de
"ver" esses numeros e po-los na ordem correta e nao na ordem em que chegam. J pensou se nao fosse assim?
Quando uma pagina html fosse "aberta" no seu navegador ficaria tudo desorganizado, porque o seu TCP os
receberia e os ordenaria do modo como chegassem.

5
6
Outro protocolo que acredito que poucas pessoas possam conhecer ou se conhecem tem certa duvida o
UDP. O UDP (User Datagram Protocol) possui as mesmas qualificacoes que o protocolo TCP e exerce a nivel de
rede a mesma coisa. A diferenca real se resume no fato de que qualquer conexao realizada por UDP bastante
falha e insegura. Enquanto o TCP fornece um numero sequencial a cada pacote a fim de serem reorganizados na
ordem correta, o UDP envia os pacotes a esmo, ou seja, sem sequencia. Quando esse pacotes chegam no destino
fica meio dificil a conexao. Mas ai fica a pergunta: para que diabos serve o UDP entao? Bom, se voce tem certeza
que possui uma conexao confiavel e sabe que os pacotes nao irao se perder no meio do caminho ou entao que
chegarao na ordem correta, o UDP pode ser a sua escolha. Nesse caso nao se perderia tempo na reordenacao de
pacotes.
Um exemplo paratico de quando se usa o UDP? quando se nuka alguem ou quando se da o chamado
death ping. Ninguem vai se preocupar em enviar alguma coisa a vitima na ordem correta. O objetivo do nuke eu
creio que voc j conheca. Entao pode ser uma boa pedida j que o envio mais rapido, se bem que nuke alem de
ser condenavel eh um pouco antigo e diversas formas de protecao jah foram feitas. Bom, entao alguem poderia se
perguntar: "mas e como fica o IP?". Bom, o IP fica na mesma, ou seja, ele, a nivel de rede, continua a exercer a
mesma funcao de antes e nao porque foi incluido o UDP que ele nao vai ser usado. Isso no implica. O TCP ai foi
substituido meramente para se acelerar o processo ou com algum outro proposito como o do nuke ou death ping.

Os Servidores

Bom, resolvi incluir esse adido como parte integrante desse tutorial a respeito de modos de transmissao
em redes por ser um assunto que, acredito, muita gente ainda faa bastante confusao.
Como havia dito em outra parte do texto, IP sao numeros de 32 bits segmentados em quatro partes cada
uma contendo oito bits, um byte portanto. Quando voce faz uma comunicacao remota com um computador
qualquer em especial os que atendem servicos, os chamados servidores, o IP fornece um numero de identificacao
que recebe o nome de IP como simples alusao ao servio que ele faz. Nao so o numero de identificacao do seu
proprio host mas tambem do servidor que atendera os pedidos. Entao, quando voce faz a solicitacao de um pedido
qualquer a um servidor como o ftp por exemplo, junto a ele vai o seu IP e o IP do servidor. Lembre-se que o
processo IP "quebra" qualquer informacao em pequenos pacotes conhecidos como datagrams. Entao como feita
a comunicacao? Bastante simples: vamos supor que voce esteja no seu navegador, um Netscape por exemplo, e
voce quer acessar uma pagina qualquer. Entao voce descreve uma url e aponta o browser nesse pedido. O IP
entao entra em aao. Ele agrupa esse pedido num unico pacote contendo os Ips de identificacao e manda ao
servidor que atendera os pedidos.
(*Eu nao sei como funciona um servidor como um Windows NT, por exemplo, entao vou descrever como se
processa tudo em uma maquina padrao POSIX, um Linux por exemplo. Embora o NT esteja incluido nesse padrao
tambem, eu nao sei como o servico atendido por la.*)
Esse pacote chegando por la recebido por algo como se fosse um grande secretario geral de um grande
departamento. O responsavel nesse caso seria o que chamado em servidores UNIX de daemon, mais conhecido
como inetd (nao vou entrar em detalhes sobre isso, acredito que ira fugir bastante do assunto em questao). Esse
"secretario geral" atende todos os pedidos que chegam, mas desvia o sercvico a um servidor especifico que no
nosso exemplo sera o httpd (outro daemon) . Nesse caso, o servico que o inetd fez foi somente "avisar" ao pacote
que ele por si nao faz o servico, mas avisa quem o responsavel, o httpd. Entao, chegado o pedido, o httpd
verifica em seus arquivos (novamente nomes de arquivos nao sao importantes ao entendimento do assunto, isso
uma questao especificca a assuntos em UNIX e nao preciso entrar em detalhes sobre isso) onde se encontra,
por exemplo, uma pagina qualquer. Encontrando essa pagina, o httpd a organiza e segmenta em pacotes e envia
ao computador que fez o pedido, o cliente.
Os pacotes recem chegados no computador de origem sao colocados em sua ordem correta e a aplicacao
cliente, o Netscape, ira se encarrega de mostrar o conteudo da pagina que foi organizada.

Portas de Comunicao

Esse outro assunto bastante difundido na internet e temido por muita gente. Mas antes, merece uma
descricao detalhada:
Tal como os numeros IP, numeros de portas sao formados por bits. As portas sao atendidas em numeros
que vao de 0 a 65534 (na verdade o mais correto seria de 1 a 65535. Ate agora nao vi nenhum servidor que
atendesse em portas de numero 0). Numeros de portas de comunicao sao formadas por sequencia de 16 bits
dividido em duas partes cada uma com um byte portanto e separados por pontos de divisao como em um numero
IP.
Como havia dito, numeros de portas vao de 0 a 65535, sao muitas portas portanto e cada uma destinada
a alguma conexao qualquer. Lembre-se que a cada dia sao inventados novos servicos que se utilizam do protocolo
TCP/IP como meio e esses novos servicos, vamos citar como exemplo o ICQ, precisam de uma dessas portas
disponiveis para conexao. "Qualquer uma?" -- Sim, qualquer uma. Nao ha um padrao para as portas serem
abertas com o mesmo numero anterior. O Sistema Operacional se encarregara de escolher uma porta adequada
nao necessariamente igual a anterior.
Numeros de porta inferiores a 1024 sao destinadas ao computador que atende determinado servico.
Voltando ao exemplo anterior, o dos servidores: observe que esse pedido sempre atendido na porta 80 (porta
padrao de servicos http), contudo, nada impede que essa porta seja atendida em outro numero. Em relacao a isso,
tal pratica muito corriqueira, ou seja, numa Intranet, por exemplo, bastante comum o administrador da rede

6
7
reservar um numero maior a um servico especial que nao possa ser acessado assim tao facilmente. Nesse ultimo
exemplo, vamos supor que o administrador tenha ficado receoso porque algumas pessoas estao conseguindo
acessar um determinado servico que, embora deva ficar sempre no ar porque atende a certas pessoas, nao deve
ser acessivel a todos. Entao ele pode muito bem mudar a porta padrao do servico - vamos supor um telnet que
atende na porta 23 - para algo em torno de 56263. Bem, o administrador realmente uma pessoa responsavel e
muda todos os dias o endereco da porta de forma a que ninguem possa acessa-lo assim tao facilmente, dessa
forma se tornando bastante dificil a alguem o acesso a esse servico. Essa uma pratica bastante difundida em
servidores particulares visando a seguranda de toda a rede, mas nao pde ser usada em servidores permanentes
como um proevdor de acesso a intenet. Nesse caso , a medida mais correta inabilitar o servico inteiro j que nao
se pode avisar a todos os usuarios que o numero da porta mudou de numero.
Alguem pode estar se perguntando: "Ok, entendi o que voce quis dizer. Mas vamos supor que o meu
progama cliente, o que envia o pedido, vamos supor um telnet, queira se comunicar com um servidor telnet
remoto. Nao saberia ele a porta correta de comunicao?" -- BBBem, nao assim tao simples. J pensou se tudo
fosse assim? Simplesmente eu saberia onde qualquer servico atendido e todo o trabalho do administrador vai
por agua a baixo com todas aquelas mudancas de numeros. Na verdade, o seu telnet envia o pedido e o inetd o
repassa ao telned. Mas acontece uma coisa: se eu mudar o endereco de porta do telnet para outro numero
qualquer, o inetd nao sabera o numero a nao ser que eu o informe. O pedido vai ser atendido? Nesse caso nao.
Mas se voce indicar a porta correta onde o servico esta disponivel, a comunicacao sera estabelecida. Entao, voce
teria de apontar o numero correto ao seu cliente telnet e este enviaria o numero ao servidor remoto. Simples? Pois
, assim que as coisas funcionam e a seguranca mantida.
Algo importante que nao foi explicado anteriormente que um dos papeis que o TCP exerce nesse monte
de protocolos que ele fornece o numero da porta a ser atendida. Assim, me utilizando do cliente telnet, o TCP
fornece o numero da porta. Mas quem envia o IP.
Confundiu? Vamos dizer assim: O IP responsavel na rede pela transmissao de pacotes, como voc j
sabe. Em cada pacote vai o IP de destino e de origem (isso esta meio repetitivo mas necessario). Isso como se
fosse um envelope onde no corpo externo da carta vai o endereo para onde quero enviar, o destinatario, e de
onde foi mandado, o remetente. Dentro do envelope vai uma carta. Nessa carta sao fornecidos os enderecos de
portas onde o servico atendido. interessante dizer que o IP nao sabe o numero da porta, isso papel do TCP
ou do proprio UDP. Nem o UDP nem o TCP sabem para onde vao, ou seja, eles nao sabem quais sao os numeros
IP.
Bom, ok. Mas e quanto aos numeros de portas acima de 1024? Bem, essas sao destinadas apenas a
comunicao entre programas que se utilizam de TCP/IP. Como havia dito mais acima, vamos citar o exemplo do
ICQ. Otimo programa. Quando voce estabelece uma comunicacao com os servidores que conectam voce ao ICQ,
automaticamente aberta uma porta de comunicao. Se voce executar qualquer PortScan para rastreamento de
portas abertas, voce ira verificar que uma porta, sempre acima de 1024, foi aberta.
Voce pode verificar agora mesmo se alguma porta de comunicacao foi aberta no seu micro.
Simplesmente no prompt do seu MS-DOS digite:netstat -an. Algo como o que segue abaixo vai aparecer:

Route Table
Active Connections

Proto Local Address Foreign Address State


TCP 127.0.0.1:1041 0.0.0.0 LISTENING
TCP 127.0.0.1:1041 127.0.0.1:110 ESTABLISHED
TCP 200.215.169.67:1034 200.215.160.63:110 TIME_WAIT
TCP 200.215.169.67:1040 200.215.160.63:110 TIME_WAIT
TCP 200.215.169.67:137 0.0.0.0:0 LISTENING
UDP 200.215.169.67:138 0.0.0.0:0 LISTENING
UDP 200.215.169.67:139 0.0.0.0:0 LISTENING

Podemos interpretar isso assim:

Proto: o protocolo utilizado para transportar o servico, nesse caso foi utilizado o TCP, mas poder poderia ter sido
utilizado o UDP sem problemas, quer dizer, ate certo ponto e dependendo do servico.
Local Address: o numero de porta local ode foi estabelecida a conexao. Observe que foram todas acima de
1024. Excecoes foram vistas mas serao explicadas.
Foreign Address: o endereco de porta remoto onde a conexao foi estabelecida. Foi colocado o nome do
protocolo que atende o servico, o pop3. Poderia ter sido colocado o numero de porta sem problemas, nesse caso
ficaria 110.
State: Define o estado em que a conexao se encontra no momento. Desses estados, tres foram efetuados:
listening: isso a espera de conexao que ainda nao foi estabelecida. No momento em que foi executado o
netstat, a porta estava sendo ouvida.
Established: Essa nao precisa de muita definicao, a conexao foi efetuada com sucesso nas portas em questao e o
programa cliente esta recebendo dados de forma normal.
Time Wait: O servidor parou momentaneamente de enviar dados e no momento em que o comando netstat foi
executado isso estava ocorrendo.

7
8
Observe as portas que foram estabelecidas no computador local: 1041, 1034, 1040, 137, 138, 139.
Como voce pode verificar foram estabelecidas conexoes nas portas menores a 1024, como 137, 138, 139. Essas
portas atendem servicos portanto. Vamos a elas:
A porta 139 na realidade apenas um bug encontrado nas versoes Windows anteriores a OSR2 e pode
ser fechada pelo usuario com programas especificos ou pelo renomeamento de um driver de dispositivo virtual que
nesse caso o vnbt.386. Os efeitos provocados pelo mau uso dessa porta j sao bastante divulgados: isso causa
uma pane geral nos sistemas Windows e mesmo os NTs mais antigos ainda sofrem com esse problema. Nao
um nuke propriamente dito porque os efeitos sao diferentes. Na realidade aproveita-se a falha que o Windows
possui em atender servicos marcados como urgente (os chamados OOB ou out-of-band). O Windows da
preferencia a pacotes marcados dessa forma e relega a segundo plano as outras conexoes que voc possui. O
efeito o termino da sua conexao TCP/IP.
Isso siginifica que alguem poderia tentar usar seu micro com alguma forma de hacking? Provavelmente
nao. Digo provavelmente porque a porta 139 usada ainda como brincadeira por muita gente metida a hacker
mas que nada mais fazem do que cancelar uma conexao TCP/IP e travar a maquina de um usuario inocente
(existem exceoes). Brincadeira de criana. Essa porta, portanto, nao atende servicos a nao ser o de enviar
resposta ao pacote OOB.
As portas 137 e 138 sao reservadas ao NetBios (Network Input/Output System) do Windows. Na
verdade nao exclusividade dos sistemas Windows e pode ser implementado em qualquer maquina. O NetBios
foi desenvolvido pela IBM como forma de servir o micro cliente como host servidor em alguns casos especificos.
Assim, alguem usando um Windows 95 poderia disponibilizar essas duas portas para permitir servicos como
acesso a uma impressora compartilhada por exemplo. Mas altamente recomendavel que estas portas estejam
fechadas. Se voce nao usuario de uma rede interna de algum departamento e ninguem usa seu micro como host
servidor temporario para, por exemplo, compartilhar sua impressora entao nao ha nenhum motivo para
permanecer com essas portas abertas. O usuario dessa configuracao de portas precisa urgentemente de uma re-
configuracao do Windows. Verifique em seu micro, caso use Windows, se voce esta com algum servico
compartilhador de redes como o NetBios. Se est, nao permita nenhum compartilhamento entao. Isso constitui-se
de uma forma de hacking realmente e nao usada por criancas que adoram nukar o usuario inocente, hackers que
possuem conhecimento dessas portas abertas (e tem conhecimento da tecnica) podem acessar seu micro da forma
como quiserem jah que essas portas sao atendentes de servicos ao contrario da porta 139. O Windows usando o
NetBios vai permitir acesso nesse caso.
Essa descricao acima (do NetBios) nao se constitui de uma falha dos sistemas Windows propriamente
dita - inclusive anunciada pela Microsoft. sim uma m configuracao do usuario que, por algum descuido,
permitiu essa forma de conexao.
Mas as tres portas se encontravam em modo listening o que quer dizer que nenhuma conexao foi
estabelecida, o que nao significa que nao possa ser feito.
Agora poderia sobrevir uma duvida: "Ok, essas tres portas foram estabelecidas e estavam em modo
listening mas e quanto ao endreo do host? Por que nao foi informado nada?" - Bom, simples. As portas estavam
abertas apenas, todas as tres, mas nenhum host externo, naquele momento, estava tentando acessa-las
Exatamente por isso nao foi informado nenhum IP de identificao remoto. Possivelmente, quando alguem
tentasse firmar uma conexao, o IP seria fornecido.
As outras portas maiores, acima de 1024 foram estabecidas normalmente no computador local sem
problemas. O que acontece o seguinte: Como expliquei mais acima a respeito de uma conexao telnet, o
programa cliente informa a porta na qual devera ser estabelecida a conexao mas nao informa a porta local. Isso
sera feito depois e quem o fara o seu Sistema Operacional. Assim, o computador remoto, o servidor envia um
pacote qualquer de volta ao computador de origem (lember-se que ele sabe qual o IP de origem) e somente
depois disso a porta aberta. Sera que isso seria motivo de preocupacao de alguem? Acredito que, infelizmente, a
maioria das pessoas ainda temem essas portas abertas quando dao o comando netstat. Na verdade nao ha o que
se preocupar. As portas sao estabelecidas temporariamente e depois que a conexao terminada a porta se fecha,
a nao ser aquelas que sao conhecidas, como o bug do Windows da porta 139 e/ou as 137 e 138. Se isso nao
acontecesse ninguem receberia informacao de lugar nenhum. Assim, uma porta origem e destino devem ser
abertas.
Uma outra duvida que poderia surgir a respeito: "Ok, as portas sao fechadas, mas e durante a minha
conexao, as portas estao abertas e nao possuem conexao com portas tao altas, qualquer pessoa com um
scaneador de portas conseguiria descobrir facilmente onde estou conectado." -- Calma, nao bem assim. Uma
porta so atende um servico de cada vez e nao consegue estabelecer conexao em dois pontos simultaneamente.
Assim, qualquer um que tentasse estabelecer qualquer comunicacao com seu computador primeiro teria de
esperar a porta aberta parar de ser solicitada para depois atender outra coisa. Ou seja, para poder scanear as
suas portas de comunicacao primeiro o servico teria de cancelar a conexao que havia estabelecido antes, o que
nao possivel , e segundo lhe enviar um pacote informando a porta que esta aberta. Assim, deu para entender
como o scaneador de portas funciona: ele fica perturbando o computador remoto com pacotes aleatorios de dados
(ai entraria o UDP, porque nao necessrio nenhuma reorganizacao de pacotes) funcionando como uma especie de
ping esperando pelas resposta.

TCP/IP em Camadas

Uma rede TCP/IP eh dividida apenas em quatro camadas (no confunda com divisao de redes em
camadas OSI, isso jah eh aplicado a construcao de redes desde o andamento e construcao dela em um escritorio,
por exemplo ate o ponto final, em outra localidade. Divisao em camadas por TCP/IP no envolve os conceitos de

8
9
construcao desde a origem real ate o final). A divisao das redes TCP/IP eh como se segue (Esse modelo de rede
TCP/IP foi feito pensando-se na origem em relacao ao destino):

Aplicao
Transporte
Rede
Fsico

Fisico: Esse o proprio meio fisico da rede ou , em outras palavras, onde as coisas acontecem de
fato. Assim, qualquer comunicacao entre mcros deverao pessar pelo meio fisico. Nessas camada esto incluidas
todos os dispositivos fisicos de sua rede: cabos, placas da rede, enfim todo hardware usado em comunicacao em
redes esta incluido nessa camada. Em relacao a esse nivel, todos os dados sao tratados como pulsos eletricos, ou
seja, interrupcoes na corrente continua do micro.
Rede: Essa camada a responsavel pelo roteamento dos pacotes entre os hosts, ou seja, tem por
funcao encontrar o caminho mais curto e confiavel entres os computadores. Eh exercida pelo protocolo IP. A nivel
de redes espcificicamente, (no apenas a TCP/IP podemos incluir ainda nessa camada um outro protocolo
conhecido como X.25) esse nivel eh ainda responsavel pelo envio dos pacotes.
Transporte: Essa camada jah inclue o protocolo que transporta o servico, ou seja, ai esta incluido o
TCP e/ou o UDP. Assim, essa camada eh a responsavel pelos pacotes criados pelo IP da camada anterior. Eh
obrigacao da camada de transporte oferecer a comunicacao mais confiavel entre os hosts de uma rede e tentar a
todo custo enviar dados da forma mais clara e limpa possivel. Caso algum pacote se perda na rede, por exemplo,
eh obrigacao dessa camada enviar novo pedido a fim de ser restabecida a conexao correta novamente. Para no
evitar confusao nessa camada: o nivel mais acima, o de rede, cria os pacotes e os envia mas lembre-se que o TCP
eh quem tem por obrigacao fornecer uma maneira de colocar esses pacotes na ordem correta. Assim, o TCP aloca
essas informacoes em cada pacote e o IP o envia. Quando esses pacotes chegam ao destino, o TCP desse destino
eh quem vai coloca-los em ordem de acordo com o que o TCP de origem fez.
Aplicao: Aqui se incluem as aplicacoes processadas (os programas). Assim, quando voce faz um
pedido a fim de receber uma pagina html, o seu navegador processa os pacotes que chegam (ai entrar o TCP) e
forma a pagina para que voce possa ver. Isso no ocorre apenas com o destino, ou seja, para que voce recebesse
essas informacoes um outro programa teve de ser processado para que as informacoes chegassem a voce.

INTRANET

A Intranet uma rede interna baseada no protocolo IP que se caracteriza pelo uso das tecnologias Word
Wide Web no ambiente privativo da empresa. Composta por um servidor Web corporativo, tornando-se disponveis
para os usurios atravs de uma rede interna ou acesso discado privativo, fornecendo assim uma variedade de
informaes por meio de um nico front-end, o paginador (browser) Web.

Alm de incorporar toda a tecnologia Internet, as Intranets podem utilizar a estrutura de comunicao de
dados da prpria rede pblica para se comunicar com filiais ou com qualquer empresa conectada grande rede.

Dentro dos limites da empresa, tudo o que circula em forma de papel pode ser colocado na intranet de
forma simples e objetiva: desde manuais e polticas de procedimento at informaes de marketing, catlogos de
venda de produtos, recursos humanos e catlogos telefnicos. Tudo baseado na estrutura de Hipertexto,
interligados por links.

Origem da Intranet no Brasil

9
10
A Rhodia, esta foi uma das primeiras organizaes brasileiras a implantar a Intranet, isso ocorreu em
1995. Isto porque a organizao necessitava de um sistema que engloba-se correio eletrnico, vdeo texto, listas
telefnicas e outras facilidades. E como a Intranet j era utilizada inicialmente em outras organizaes de grande
porte no exterior e estava dando certo, a Rodhia resolveu inicialmente implantar na organizao como experincia,
mas logo percebeu-se que era vantajoso utiliza-la pois os resultados da experincia foram timos, ou seja,
atenderam as necessidades da empresa.

Inicialmente a esse novo sistema, aqui no Brasil foi trabalho chamado de Internet - In - House, mas tarde
de intranet, e adotaram na organizao como Internet Rodhia. Em seguida foram tomadas as seguintes medidas
de mudanas na organizao, ou seja, foram migradas todas as aplicaes que so comuns a todos os usurios
Rodhia para a Intranet e criaram tambm uma opo para consultar as noticias do dia, totalizando 600 pginas.

A quem se destina a Intranet

A grande gama de produtos disponveis para a informatizao e automao de processos sempre foi
voltada para as mdias e grandes empresas.

Com as ferramentas disponibilizadas na Internet, muitas delas a um custo irrisrio, esto surgindo
recursos que permitem a empresas de qualquer porte implementar uma rede corporativa com baixo nvel de
investimento quando comparado aos sistemas proprietrios.

O uso de sistemas de informao proprietrios sempre exigiu pessoal tcnico especializado, treinamentos,
investimentos em equipamentos de grande porte, em aplicativos e consultores que somente se justificavam em
grandes corporaes capazes de amortizar tais investimentos em perodos longos.

Porm muitos especialistas, recomendam para as empresas de pequeno porte apenas o acesso Internet
atravs de um Gateway na rede local, onde diversos microcomputadores tero acesso simultneo Internet
utilizando apenas um modem e uma nica linha telefnica (dedicada ou telefnica comum). A comunicao com
filiais, fornecedores pode ser facilitada com a utilizao correio eletrnico e at mesmo troca de arquivos via
Internet.

Mas como em qualquer rede corporativa, a implantao de intranets exige planejamento alm de
investimento de tempo e capital, porm, os benefcios obtidos com a otimizao de processos e a organizao de
informaes tem levado empresrios, diretores e gerentes de empresas a darem uma ateno especial a esta
tecnologia

As Vantagens
- uma excelente plataforma para divulgao de informaes sobre marketing, pessoal, benefcios e poltica
corporativa internamente.
- Paginador Web com mltiplos recursos est disponvel para praticamente qualquer sistema operacional
cliente.
- Pode substituir tanto os sistemas de informao para executivos (EIS) como os de computao
colaborativa.
- Os servidores Web no necessitam de tanto hardware e espao em disco como os pacotes de software
para grupos de trabalhos clssicos.
- A tecnologia Web apresenta capacidade expanso e pode ser utilizada atravs de redes remotas.
- A Intranet fornece os recursos da Internet sem o risco de invaso.
- As informaes confinadas numa rede Intranet so acessveis apenas organizao a que pertence e s
pessoas autorizadas por ela.
- Os produtores de front-end competem entre si, o que resulta em baixa no preo dos produtos e at
produtos gratuitos.
- Diminui gastos com hardware e software, treinamento, troca de arquivos, backups peridicos,
gerenciamento e tudo o que necessrio para uma rede convencional funcionar.
- Disponibiliza as informaes sob demanda, quando e onde ela necessria.
- Mantm uma nica fonte de informao.
- Utiliza o mesmo pessoal que normalmente seria responsvel por preparar o material impresso.

As Desvantagens
- Os grupos de trabalhos tradicionais, apresenta aplicativos de colaborao mais poderosos.
- No existe um sistema unificado como os pacotes de grupos de trabalho. necessrio configurar e manter
aplicativos separados, como correio eletrnico e servidores Web.
- As Intranets exigem uma rede com o protocolo TCP/IP, ao contrrio de outras solues de software para
grupos de trabalho que funcionam com os protocolos de transmisso de rede local existentes.
- Deve-se manter uma equipe de manuteno do servidor Web, em dedicao exclusiva, a nvel de fazer e
manter pginas Web, pois as informaes ali guardadas so dinmicas, dependendo do caso, podendo ser
alteradas da noite para o dia.

10
11
Como construir uma Intranet:

Escolha de uma plataforma


Os softwares para Intranet esto disponveis em praticamente todas as plataformas. recomendvel
escolher um ambiente robusto, com boas ferramentas de segurana e gerenciamento. Historicamente, o Unix tem
sido preferido nessa funo. para ele que foi criada a maior variedade de programas capazes de implementar e
gerenciar essas redes. " o mais confivel. J tem muitos anos de tradio", diz Srgio Pretto, diretor da
prestadora de servios Nutec. No entanto, o Windows NT vem emergindo como alternativa atraente. " mais
barato contratar um especialista em NT do que um conhecedor do Unix", argumenta Paulo Marques, especialista
da U-Net.

O NetWare aparece como uma opo para a empresa que j possui uma rede Novell e quer aproveitar um
servidor existente. Sua principal limitao a escassa oferta de softwares de Intranet. O programa bsico que vai
implementar a rede o servidor de Web, tambm chamado de servidor HTTP (leia a tabela 01). Em geral, ele
proporciona vrios outros servios aos usurios, alm de suprir as pginas de hipertexto que caracterizam a Web.
Outro software bsico um servidor de correio eletrnico que, na Internet e nas Intranets, segue o padro
SMTP/POP3. O Unix j vem com uma ferramenta desse tipo, mas ela oferece poucos recursos, o que torna
recomendvel a instalao de um programa adicional. Isso pode ser dispensado se a organizao j possui outro
sistema de correio eletrnico.

Um servidor de grupos de discusso tambm til. Ele cria newsgroups semelhantes aos da parte da
Internet conhecida como Usenet. "A empresa pode definir, por exemplo, uma rea para a troca de informaes
sobre um determinado aplicativo ou sobre ocorrncias de suporte e de manuteno", exemplifica Paulo Marques.
Outro servio popular na Internet, o Telnet (emulao de terminal) serve, na corporao, apenas para permitir a
administrao remota do servidor. Essa facilidade est disponvel nativamente no sistema Unix. O recurso de
conversa on-line do tipo IRC, Internet Relay Chat, outro opcional que pode ser agregado ao sistema.
Normalmente, no necessrio adquirir todos esses programas separadamente. Pacotes como o da Netscape e o
da Microsoft j oferecem vrios desses servios integrados.

Servidores Intranet
No existe uma regra exata para dimensionar um servidor de Intranet., recomenda-se como ponto de
partida, um Pentium de 133 MHz com 64 MB de memria e 4 GB de disco SCSI. Essa configurao capaz de
atender a mais de uma centena de sees HTTP simultneas. adequada para uma organizao com vrias
centenas de usurios. O computador deve estar equipado com drive de CD-ROM e com um dispositivo de backup,
que pode ser uma unidade de fita do tipo DAT.

O que colocado nos servidores Web de uma Intranet


Procedimentos administrativos internos, manuais de funcionamento de departamentos, atribuies das
funes e cargos dos funcionrios, tabelas de preos, circulares, descrio de produtos, notcias do dia, notcias da
semana, e tudo aquilo que a criatividade permitir.

Hipertexto
Para que a Intranet atinja seu pleno potencial como ferramenta de gesto, ela deve comunicar-se com os
bancos de dados da empresa. Assim, seus executivos podero utilizar o navegador de WWW para acessar as
informaes corporativas. A maneira clssica de fazer essa ligao por meio da interface CGI, Common Gateway
Interface. Cria-se um formulrio em HTML no qual o usurio vai especificar que informaes deseja consultar. Um
programa, desenvolvido em Perl (Practical Extraction and Report Language) ou em outra linguagem de
programao, recebe a solicitao pela CGI e se encarrega de repass-la ao gerenciador de bancos de dados.

Atendido o pedido, os dados so inseridos em uma pgina HTML, que enviada ao usurio que a
requisitou. Um exemplo tpico de aplicao desse tipo um banco de dados de telemarketing. O profissional que
atende ao telefone preenche um formulrio com os dados a registrar. Para buscar uma informao especfica na
base de dados, utiliza outro formulrio. A comunicao entre o aplicativo e o gerenciador pode ser feita por meio
da linguagem SQL, pelo padro Microsoft ODBC ou pela linguagem de consulta nativa do gerenciador. Esta ltima
opo, que proporciona um melhor desempenho, oferecida por fabricantes de bancos de dados, como Oracle,
Sybase e Informix.

Segurana
Mesmo com uma rede totalmente privativa, possvel ter conexes remotas por meio de linhas telefnicas
discadas ou dedicadas. No entanto, muitas companhias preferem ligar suas Intranets Internet e, assim,
aproveitar a estrutura de comunicao da rede mundial. Essa abertura para o mundo externo possibilita, ainda,
que os parceiros comerciais da empresa acessem seus registros para obter determinadas informaes. A conexo
com a Internet potencialmente perigosa porque cria uma porta por onde os eventuais sabotadores e
bisbilhoteiros podem entrar nos sistemas da empresa. Por isso, requer cuidados especiais com a segurana.

O principal deles a instalao de um firewall (parede contra fogo), uma espcie de guarda de fronteira
que passa a controlar que tipo de informao pode entrar ou sair da empresa. A maneira mais segura de

11
12
implementar isso fisicamente definir um segmento parte na rede apenas para os servidores que tero acesso
pela Internet. Esse segmento se liga rede interna da companhia por meio de um roteador ou do prprio firewall.
A conexo fsica com um ponto de acesso Internet -- a Embratel, por exemplo -- feita por um modem ligado a
uma linha de comunicao dedicada e ao roteador.

Embora haja equipamentos especialmente construdos para atuar como firewall, a maneira mais comum de
implementar esse aparato rodando um software especfico num servidor equipado com duas placas de rede. H
dois tipos bsicos de firewall. O primeiro atua como um filtro de pacotes. O protocolo TCP/IP, que forma a base da
Internet e das Intranets, divide a informao em pequenos pacotes. Cada um deles contm, entre outros
elementos, seus endereos de origem e de destino. O firewall de pacotes verifica esses endereos, barrando a
passagem quando se tratar de um emissor no autorizado.

H muitas histrias de hackers habilidosos que conseguiram enganar um firewall de pacotes e invadir um
sistema. Um mtodo popular consiste em filtrar todos os pacotes por meio de um programa que falsifica o
endereo do emissor de forma a dar a impresso de que o acesso est sendo feito de dentro da empresa. Para
evitar isso, muitas organizaes protegem suas Intranets com firewalls de aplicaes, considerados mais seguros.
O firewall de aplicao analisa a solicitao de acesso e verifica que tipo de servio o usurio est querendo obter.

Quando se trata de servios considerados perigosos para a segurana do sistema, o acesso barrado. o
que acontece, por exemplo, se algum tentar assumir o controle do servidor via Telnet. Como norma de
segurana, o firewall de aplicaes bloqueia todos os tipos de servio que no foram explicitamente liberados pelo
administrador. Nesse ponto, necessrio muito cuidado para no limitar demais a liberdade dos usurios e, ao
mesmo tempo, no criar brechas na segurana. "Configurao de firewall um trabalho para profissionais. A
empresa no deve hesitar em pagar um especialista em segurana para isso", recomenda Paulo Marques, da U-
Net.

Alm da instalao do firewall, h outros cuidados a tomar para garantir a segurana na Intranet. Os
usurios devem ser divididos em grupos com direitos de acesso especficos. Assim, por exemplo, apenas
determinados executivos conseguiro obter dados financeiros da companhia. Todos devem ter um controle de
senha para ingressar no sistema. O servidor deve ficar fisicamente protegido para que somente os operadores do
sistema possam manuse-lo. Por fim, indispensvel ter um no-break e uma programao de backup (produo
de cpias de segurana) para todos os documentos armazenados. Com esses cuidados, o risco de ter uma rede de
portas abertas para o mundo pode ser mantido sob controle. Ao mesmo tempo, evita-se o risco maior de, por falta
de uma comunicao interna eficiente, a empresa tornar-se menos competitiva e perder espao para os
concorrentes.

O crescimento de servidores internos (mquinas que permitem que computadores pessoais individuais
compartilhem arquivos) j est ultrapassando os servidores externos. Hoje, aproximadamente dois teros dos
240.000 servidores do mundo esto voltados para o uso interno e privativo, de acordo com a Netscape
Communications Corp. O San Jose Mercury News calculou que para o ano de 2000 haver 10 vezes mais
servidores de Intranet do que Internet.
Os fabricantes de servidores, como a Compaq, acreditam agora que as vendas de servidores para a
Internet possam representar at 40% do mercado total de servidores nos Estados Unidos e na Europa. Mas o que
s foi descoberto agora que uma grande quantidade destes servidores de Internet na realidade so servidores de
Intranet.

Crescimento das Intranets no mercado mundial.

12
13
Conforme previses da Zone Research para 1998 o faturamento dos servidores Intranet em todo o mundo
ser da ordem de US$ 7,8 bilhes, quase 4 vezes o tamanho do mercado de servidores de Internet, de US$ 1,8
bilhes. Conforme declaraes do grupo europeu de pesquisa de mercado, Input, para 2001 os produtos e servios
relacionados com a Intranet representaro 20% do mercado total de produtos e servios da TI. Isso representa
um crescimento combinado anual de 130%, o dobro do previsto para as vendas de Internet, e muito, maior que o
crescimento das tecnologias convencionais de sistemas cliente/servidor. Estas projees so espetaculares, at
para os padres de um mercado acostumado a picos de crescimento de at trs dgitos.

Extranet
o nome dado a um conjunto de Intranets interligadas atravs da Internet.
uma rede de negcios que une empresas parceiras por meio de suas Intranets utilizando os padres
abertos da Internet. Esses parceiros no precisam Ter o mesmo tipo de computador (hardware), sistema
operacional , gerenciadores de banco de dados (software) ou browser para navegao.

Esta uma das formas mais baratas, fceis e inteligentes para as empresas se interligarem com os
parceiros e clientes. Principalmente para aqueles que j so usurias de Internet e as que j possuem uma
Intranet.

Mas necessrio com a Intranet se ter uma poltica de segurana, ou seja, preciso se ter desde do incio,
quando se estar instalando a senha para acesso de cada participante, at um firewall, dependendo do nvel de
preocupao da empresa.

Principais Termos
A proliferao das redes intranet trouxe para dentro das empresas uma srie de siglas e conceitos que
devem estar na ponta da lngua dos tcnicos. Veja a seguir os principais termos relacionados a Internet/Intranet:

- CGI (Common Gateway Interface) - Conjunto de regras que descreve como um servidor Web se comunica
com um programa existente na mesma mquina (chamado programa CGI). Normalmente, o programa CGI recolhe
os dados enviados pelo servidor e coloca o contedo numa mensagem ou num banco de dados.

- DN (Domain Name) - Um nome nico que identifica os sites na internet. Para traduo do nome de um
endereo, necessrio um programa especial chamado Domain Name Server.

- Firewalls - Combinao de hardware e software que separa uma rede LAN em duas ou mais partes. O objetivo
evitar que intrusos tenham acesso a dados confidenciais.

- FTP (File Transfer Protocol) - Mtodo muito comum de mover arquivos entre dois sites na internet. Usado
para grandes arquivos.

- HTTP (Hyper Text Transport Protocol) - Protocolo utilizado para mover arquivos de hipertexto na internet.
Necessita de um HTTP cliente (o navegador), de um lado, e de um HTTP server (servidor Web), de outro.

- ISAPI (Internet System Application Program Interface) - Conjunto de chamadas desenvolvido pela
Microsoft para acesso acesso ao seu servidor Web.

- NSAPI (Netscape System Application Program Interface) - Conjunto de chamadas desenvolvido pela
Netscape para acesso ao seu servidor Web.

13
14
- POP (Post Office Protocol) - Maneira como um software de correio eletrnico, como o Eudora, localiza as
mensagens num servidor.

- Portas e Mltiplas Portas - Na Internet, cada servio ou processo l as requisies que chegam da rede por
uma porta ou nmero. Voc pode especificar a porta pela URL. Exemplo: os servidores Web tm como padro a
porta 80. Quando o servidor consegue ler vrias delas, chamado de servidor de mltiplas portas.

- Proxy Server - Programas utilizados para guardar os documentos acessados mais freqentemente no servidor.

- Servidores Virtuais - So os que suportam mltiplos domain names, ou seja, podem lidar com diferentes home
pages na mesma mquina.

- SSL (Secure Sockets Layer) - Modo padronizado de encriptar senhas e dados para garantir transaes seguras
entre um cliente e um servidor. A verso mais usada atualmente a v2, mas a v3 mais segura e comea a
ganhar adeptos. Para t-la preciso conseguir antes um certificado (ou senha) criado por empresa especializada.

- TCP/IP (Transmission Control Protocol/Internet Protocol) - Conjunto de protocolos que define a internet.
Originalmente desenvolvido para os sistemas UNIX, agora est disponvel em todas as plataformas.

Planejamento do Sucesso de uma Intranet


A chave para que seu investimento em tecnologia da informao (IT) seja compensador o planejamento.
Esses investimentos implicam custos desde o momento em que voc comea a pensar no assunto - o custo do
tempo que voc dedica ao planejamento. Os custos vo aumentando com o projeto e o desenvolvimento (ou
aquisio) do sistema, treinamento, operao e manuteno. At mesmo a desativao de sistemas de rede pode
ter um custo elevado, entre alteraes no mapa de fiao e a eliminao de materiais de risco.

Embora os gastos associados tecnologia da informao sejam contnuos, o valor agregado apenas
durante uma fase da vida de um sistema: a utilizao. A maximizao do retorno sobre o investimento se resume
na maximizao dos benefcios proporcionados pelo uso de um sistema, aliado minimizao dos custos.

Uma intranet no representa uma exceo. Para maximizar os benefcios proporcionados pela utilizao de
um sistema, voc deve Ter uma noo bem clara de quaisbenefcios pretende obter e de quem voc espera que
gere esses benefcios. Os benefcios de uma intranet no ocorrem de forma espontnea. Voc deve gerenciar os
usurios tendo esses benefcios em mente. A minimizao dos custos, por outro lado, depende da previso do ciclo
de vida desde o incio e do planejamento da eficincia do sistema. Voc precisa planejar cuidadosamente a
instalao o gerenciamento da configurao, o treinamento dos usurios e programadores, a manuteno do
contedo, a capacidade da rede e diversos outros aspectos desde o incio para poder minimizar os custos inerentes
a todas as fases do processo.

Determine o Tamanho da Sua Web


A primeira e mais importante deciso que tem efeito direto sobre o custo de um sistema o escopo. A
duplicao do tamanho de uma rede (ou seja, do nmero de usurios associados) aumenta em mais de duas vezes
o overhead. O efeito quase exponencial.

muito mais difcil estimar a rapidez com que os benefcios da rede aumentam em funo do tamanho
dessa rede, mas certamente esse aumento no exponencial, pelo menos entre grupos de trabalho. Na verdade,
se alguns grupos da sua empresa no precisarem colaborar uns com os outros, voc poder prejudicar a eficincia
de uma rede ao inclui-los nela. Afinal, o trabalho na Torre de Babel estava correndo bem antes de as pessoas
comearem a falar diferentes idiomas. Alm disso, so muitas as diferenas semnticas e culturais nas empresas.
Imagine todos os advogados, engenheiros, contadores e vendedores da sua empresa participando de uma reunio.
Uma reunio virtual (por exemplo, atravs de uma intranet) com todos esses profissionais produzir uma confuso
apenas um. pouco menor que a da Torre de Babel, a menos que voc adote processos para harmonizar a
comunicao.

Uma Estratgia de Duas Etapas para Dar Incio Sua Web


Se os custos se elevam drasticamente em funo do tamanho da rede, e os benefcios aumentam somente
quando h coordenao, o que isso indica em relao definio do escopo da sua intranet? Bem, essa
perspectiva fornece estas duas diretrizes fundamentais para a estratgia que voc dever adotar para dar incio a
uma intranet:
1. Inclua o menor grupo que for capaz de tirar proveito de uma Web interna e se concentre em
atender aos requisitos de rede desses usurios. Essa espcie de projeto-piloto de aplicativo Web
permite que voc descubra - em uma escala menor - onde se encontram as reas de risco do seu projeto
de intranet e onde elas so menos evidentes. Ao mesmo tempo, esse projeto-piloto aumenta as suas
perspectivas de sucesso, pois voc se concentra em usurios que j esto motivados para o trabalho em
equipe. Uma intranet no nvel do grupo de trabalho evita questes relacionadas semntica interfuncional
que podem prejudicar redes maiores.

14
15
2. Amplie a sua intranet ao redor de um grupo de trabalho ou ncleo departamental. Cada servidor
Web que voc acrescentar dever atender primeiramente a uma necessidade local. Em seguida, poder
atender a uma necessidade global. Esse tipo de expanso mostrado na Figura abaixo. A ampliao do
sistema de forma incremental ao redor dos centros funcionais ajuda a garantir que os benefcios sejam
maiores que os custos.

Mas, antes de voc atribuir a cada departamento seu prprio oramento de intranet e coloc-los em
contato com uma revenda de produtos de informtica, deve se lembrar do conhecido dizer de pra-choque de
caminho de alguns anos atrs que dava o seguinte conselho: "Pense Globalmente, Aja Localmente." O simples
fato de voc ter instalado servidores Web nos locais em que eles provavelmente sero mais teis no o libera da
necessidade de planejar a sua rede empresarial como um todo! As Webs locais so normalmente segmentos de
rede TCP/IP interligados por roteadores. Um roteador pode tambm funcionar como um firewall que conecte a
intranet corporativa Internet global.
No exemplo mostrado na Figura, o grupo de marketing utiliza uma conexo WWW para reunir dados de
levantamentos sobre os clientes. O grupo usa ento sua intranet local para analisar as respostas obtidas nos
levantamentos e publica os resultados sob a forma de uma especificao de um novo produto. O departamento de
engenharia obtm essa especificao e, aps usar sua prpria intranet para colaborar com um projeto preliminar,
publica um conjunto de desenhos, que ser usado pelo grupo de manufatura.

Definio de Objetivos: Quem Se Beneficia? Quem Paga por Isso ?


Aps identificar um ou mais grupos de trabalho que se beneficiaro de uma intranet, a prxima etapa do
planejamento consiste na obteno da participao nas decises. Essa etapa fundamental muitas vezes omitida.
A sua empresa pode no estar acostumada a envolver os usurios em decises de tecnologia da informao em
etapas anteriores implantao do sistema e ao treinamento. Mas uma Web interna agrega valor de uma forma
inteiramente diferente, por exemplo, de um sistema de contabilidade ou at mesmo de correio eletrnico. E a
iniciativa do usurio a chave para a concretizao desse valor.

Envolvimento dos Usurios na Experincia com a Intranet


As Webs seguem um modelo "pull" de distribuio de dados. Quando voc surfa na WWW, por exemplo, os
sites no vm ao seu encontro. Voc quem tem de localiz-los e acess-los. Naturalmente, voc far esse
esforo apenas para ter acesso aos sites do seu interesse. Voc extrai ("pull") as informaes que considera
importantes. Todas as outras informaes que no so selecionadas com um clique no mouse so ignoradas.
O mesmo princpio se aplica a uma intranet. As pessoas acessam um navegador para extrair informaes
que as ajudam a realizar seu trabalho. Se essas informaes no estiverem disponveis na Web ou puderem ser
obtidas mais rpida e facilmente em outro local, isso significa que a Web no est funcionando.
Na verdade, como as intranets podem perfeitamente ser usadas para a publicao de material no
relacionado a trabalho - fotos de bebs, programaes de acontecimentos sociais, contagem de pontos de boliche
etc.-, uma Web que no esteja sendo utilizada para trabalhar para a empresa pode perfeitamente trabalhar contra
ela.
Alm disso, boa parte do contedo armazenado em um servidor Web local ser fornecido pelos usurios.
Muitas Webs internas acessaro algumas informaes de fontes remotas, como, por exemplo, fontes de artigos, ou
conexes baseadas na Web a dados corporativos. Mas, para expor para toda a empresa dados armazenados
localmente e at mesmo compartilh-los em um grupo de trabalho, o contedo tem de ser transmitido a um
servidor. Apenas as bases locais podem executar essa tarefa com eficincia.
Por todos esses motivos, voc precisa envolver os usurios desde o incio e de forma intensa na
experincia com a intranet. O envolvimento pode comear com um frum de debate simples baseado na Web. Se
voc j tiver uma rede TCP/JP, para configurar esse frum, bastar instalar navegadores Web e um nico servidor
Web. Voc dever ser capaz de manter a despesa total de capital inferior a alguns milhares de dlares se usar
produtos comerciais - e a nveis ainda menores se optar pelo uso de programas freeware.

Clculo do Custo das Necessidades do Usurio


Esteja voc usando um frum de uma intranet ou participando de uma reunio cara a cara, tem de
catalogar os tipos de dados que os usurios precisam trocar. Nem todos os fruns de informaes funcionam bem
em uma Web. Um projeto grfico, por exemplo, exige em geral uma grande variedade de formatos de arquivo. E
pode ter um resultado inadequado quando transmitido em um meio que pode apresentar apenas imagens GIF ou
JPEG. Dependendo das necessidades especficas dos usurios, isso pode obrig-lo a incluir um conjunto de
requisitos de projeto, ou a excluir o uso da tecnologia Web para determinado aplicativo.
A catalogao dos tipos de dados, das quantidades e da periodicidade das atualizaes dar a voc uma
noo mais clara do custo que a intranet ter. Uma Web de texto consumir menos recursos de rede que uma
Web que transmita dados multimdia continuamente. Da mesma forma, uma biblioteca de documentos atualizada
de trs em trs meses exigir menos recursos humanos que uma biblioteca de noticirio que tenha de ser
atualizada diariamente. O custo das atualizaes do contedo e outras despesas paralelas podem ultrapassar em
muito o oramento inicial de aquisio.
aconselhvel conscientizar todas as pessoas envolvidas sobre os custos desde o incio para que no haja
(ou haja menos) surpresas. Parte desses custos de longo prazo assumem a forma de mo-de-obra contratada. Os
gerentes devem reconhecer o investimento em pessoal, em dlares, ou em ambos, necessrio para a manuteno

15
16
do contedo da Web. Se eles conclurem de antemo que os benefcios pretendidos compensam o investimento
necessrio, se sentiro motivados a gerenciar sua equipe tendo em mente esses benefcios. Uma intranet com
esse tipo de apoio tem condio de obter xito.

Redes Distribudas, Custos Distribudos


A menos que a sua empresa seja muito pequena, o modelo local de desenvolvimento da intranet dar
lugar gradativamente a uma condio mais interconectada. Isso pode no estar evidente nos estgios iniciais do
desenvolvimento. Mas, medida que as Webs locais se expandirem e a sinergia interfuncional ficar evidente para
os usurios, os servidores Web sero cada vez mais acessados por usurios remotos.
Em virtude disso, o custo da integrao da Web comear a aumentar. Nesse momento, provvel que
cada um dos departamentos comece a solicitar que esses custos de integrao sejam alocados globalmente, entre
os grupos, e no localmente. No seja muito duro com esses departamentos - eles esto certos. Voc dever
prever esse estgio de desenvolvimento alocando determinados custos em uma escala maior que outros. O mapa
de fiao, por exemplo, de uma rede empresarial pode ter um componente local (para que um grupo de 100 ns
pague mais que um de apenas 10 ns), mas a maior parte da despesa ser compartilhada. Isso faz sentido, pois a
rede um recurso compartilhado.
Da mesma forma, uma intranet local pode ser custeada localmente at o ponto em que as demandas
globais relacionadas a seu contedo possibilitem a definio de parte do recurso, pelo menos, como propriedade
comum. Uma abordagem preventiva em relao ao custeio pode impedir que os grupos isolem seu contedo. Esse
tipo de territorialidade tem sempre um motivo econmico. Se a gerncia incentivar o compartilhamento de
informaes, por exemplo atravs da diviso do custeio, os grupos trabalharo melhor em conjunto. Afinal, no
exatamente para isso que voc est montando uma intranet?

Justifique o Seu Investimento em uma Intranet


Ter em mente os benefcios e identificar os custos do ciclo de vida constituem a base para o planejamento
do projeto de uma intranet, e tambm a chave para justificar esse investimento.
O perfil da sua intranet pode diferir consideravelmente da intranet apresentada, pois as suas metas
especficas podem exigir atributos de projeto com custos associados. No entanto, voc dever ser capaz de usar a
abordagem apresentada a seguir como um ponto de partida para o clculo do valor "lquido" do projeto.

Como Compor uma Estimativa de Custo


A tabela apresentada abaixo fornece uma noo inicial dos custos de uma intranet. medida que o projeto
se desenvolver, retorne essa tabela e redefina as suas estimativas para manter um quadro preciso do
investimento.

Item de Linha Iniciais Contnuos


CONFIGURAO DO CLIENTE
Pilha TCP/IP (Inclui o Winsock)
Licenciamento
Instalao
Suporte
Navegador
Avaliao
Licenciamento
Integrao
Plug-ins
Atualizao de Plataforma
Memria/Processador
Disco
Sistema Operacional
Configurao do Servidor Web
Licenciamento
Instalao e suporte
Outros Softwares do Servidor
Gateway SMTP (correio eletrnico da intranet)
Servidor Proxy
Servidor de artigos (news server)
Recursos de pesquisa
Acesso a bancos de dados
Analisadores de log
Certificados digitais (para servidores seguros)
OUTROS SOFTWARES
Ferramentas de Autoria
Editores de HTML
Editores Grficos

16
17
Software de gerenciamento do site
Ferramentas de Desenvolvimento
Plataformas de programao
Novas linguagesn (Java, VBScript)
Bibliotecas de cdigos
CUSTOS DE PESSOAL
Treinamento
Navegao/Pesquisa/Recuperao
Especficos do aplicativo
Qualificao do provedor de contedo
Manuteno do Contedo
Horas por arquivo
Arquivos por semana
Gerenciamento e Suporte
Administrao do servidor Web
Suporte interno
Comit de normalizao

Como Estimar o Retorno sobre o Investimento


A checklist de benefcios apresentada a seguir dar algumas idias. Ao preencher essa lista para a sua
empresa, dedique ateno especial ao momento da ocorrncia dos benefcios e das despesas. Um investimento
que recompensado em um perodo de seis meses muito mais interessante que um investimento que promete
um retorno aps cinco anos.

OBS : Os benefcios que voc estabelece nesta etapa tornam-se as metas de desempenho da sua intranet. Toda
deciso sobre tecnologia ou contedo dever ser avaliada com base nessas metas.

Os benefcios mostrados a seguir se enquadram nestas duas categorias: novas


receitas e custo reduzido. Lembre-se de que so apresentados apenas exemplos dos
benefcios que voc pode estabelecer para a sua empresa. Alguns dos benefcios
apresentados podem no se aplicar ao seu caso especfico, e voc pode considerar
outros que no constem nesta lista.

Benefcio Resulta de...


Novas Receitas Anlise de mercado aprimorada
Anlise competitiva aprimorada
Gerenciamento de contatos aprimorada
Tempo de lanamento reduzido
Cobrana aprimorada
Novos servios
Custo Reduzido Reduo do quadro de funcionrios
Reduo do tempo de durao das reunies
Reduo das viagens
Reduo dos custos de processo
Inventrio reduzido (em virtude do
processamento just-in-time)
Aquisio mais rpida (atravs da automao
do fornecimento, por exemplo)

Concluso

1. custo da operao e da manuteno de uma rede de computadores aumenta exponencialmente em relao


ao nmero de usurios associados, ao passo que a utilidade da rede aumenta mais lentamente. As
intranets no so uma exceo.
2. Ao definir o escopo da sua primeira intranet, inclua o menor grupo capaz de tirar proveito da nova Web e
se concentre em satisfazer aos requisitas dessa equipe.
3. Quando chegar o momento de ampliar as suas Webs internas, promova a expanso ao redor dos grupos
de trabalho ou centros departamentais importantes (centros funcionais).

17
18
4. Envolva os usurios de forma intensa na experincia com uma intranet desde o planejamento conceitual.
5. Enquadre os custos nestas duas categorias: custos iniciais -que correspondem a despesas realizadas uma
nica vez, como, por exemplo, a aquisio de equipamentos - e custos contnuos - por exemplo, os custos
decorrentes de contratos de manuteno de software.
6. Enquadre os benefcios pretendidos nestas duas categorias: custos empresariais reduzidos e perspectiva
aprimorada de receita.

O que diferencia a Internet da Intranet


A Internet define tecnologias com o propsito de globalizao da comunicao (externa), enquanto a
Intranet aplica essas tecnologias dentro de uma organizao, possibilitando a sua comunicao interna.

Vantagem que a Intranet tem sobre a Rede Local


Em uma rede empresarial tpica, voc normalmente precisa saber o nome do arquivo que contem as
informaes que deseja. Depois o nome da pasta ou do diretrio em que o arquivo est guardado e saber em qual
disco e servidor se encontra. Para um especialista, isto uma coisa corriqueira. Mas pode virar um dor de cabea,
mesmo para um especialista, quando alguem muda o nome, localizao ou contedo de um arquivo, e para quem
apenas um usurio isto pode ser um grande problema, seno impossvel.

O que necessrio uma pgina de texto que descreva o que est acontecendo para que enquanto se
navega de um lugar para outro, tenha-se a mo um guia que explique o contedo e a localizao dos arquivos.
Esse texto descritivo, explicando como a informao organizada, exatamente o que uma intranet fornece.

Remoteware
O Remoteware um recurso de conectividade desenvolvido para responder s necessidades de conexo
remota dos atuais usurios de ambiente DOS / NOVELL(*), que tenham aplicaes desenvolvidas em quaisquer
linguagens (Clipper / COBOL / Pascal / C / etc.), j estveis e confiveis, e que no tenham tempo, "folga
oramentria", pacincia e esprito de aventura suficientes para comear sua INTRANET jogando fora todo o
investimento j realizado no passado, comeando do ZERO.

O remoteware uma soluo de software e hardware que visa solucionar os problemas das empresas que
precisam efetuar o acesso remoto a servidores / sistemas em ambiente DOS/NOVELL(*), sem abrir mo do
desempenho da rede local, mesmo que num acesso de baixa velocidade (mnimo de 19.2Kbps), para operar uma
aplicao escrita em Clipper, manipulando dezenas de arquivos.

Como feita a segurana na conexo com a Internet

18
19
A confidencialidade dos dados da empresa de extrema relevncia num projeto de Intranet, o qual deve
estar em conformidade com a poltica de segurana da corporao.

Quando uma empresa se conecta a Internet, todos os seus funcionrios podem, confortavelmente e ao
mesmo tempo, acessarem a Internet. Da mesma forma, qualquer pessoa ou empresa conectada a Internet pode
tambm acessar os dados da empresa em questo, incluindo seus clientes e concorrentes. Surge portanto a
necessidade de controlar o acesso rede de dados, separando o que se deseja que seja pblico do que se quer
manter sob acesso restrito.

Num projeto Intranet, a proteo ou restrio de acesso aos dados vital e feita atravs de um
mecanismo ou ferramenta conhecido como porta fogo (FireWall).

O FireWall uma combinao de Hardware e Software, com caractersticas tais como filtros de endereamento,
isolao rede local x remota, criptografia, autenticao, entre outras. Podem ser implementados parcialmente em
roteadores, ou em sua totalidade em microcomputadores e at mesmo equipamentos dedicados. Existem diversos
produtos no mercado para Windows NT, Unix, etc. e tem preos que variam de R$ 3.000 a R$ 30.000.

Web Sites
<http://www.computerworld.com.br/><http://www.megasisti.com.br/artigos/garcia/><http://www2.uol.com.br/i
nfo/arquivo/ie121/intranet.html><http://www.elogica.com.br/users/giuseppe/><http://www.artnet.com.br/>
http://www.netds.com.br/><http://www.geocities.com/EnchantedForest/Fountain/3919/><http://www.viavale.co
m.br/~v0199601/>

Apostila de Banco de Dados e SQL

Autores: Prof. Jorge Surian


Prof. Luiz Nicochelli
Introduo

Devido a carncia de literatura destinada ao ensino de Banco de Dados e SQL para estudantes, elaboramos a
presente apostila, que no possue o intento de esgotar to abrangente volume de informaes, servindo to
somente para estabelecer um mnimo de conhecimentos destinados a introduzir o estudante no mundo dos
Gerenciadores de Banco de dados e da Linguagem SQL.

Banco de Dados

Todos ns sabemos existirem gigantescas bases de dados gerenciando nossas vidas. De fato sabemos que nossa
conta bancria faz parte de uma coleo imensa de contas bancrias de nosso banco. Nosso Ttulo Eleitoral ou
nosso Cadastro de Pessoa Fsica, certamente esto armazenados em Bancos de Dados colossais. Sabemos
tambm que quando sacamos dinheiro no Caixa Eletrnico de nosso banco, nosso saldo e as movimentaes
existentes em nossa conta bancria j esto nossa disposio.
Nestas situaes sabemos que existe uma necessidade em se realizar o armazenamento de uma srie de
informaes que no se encontram efetivamente isoladas umas das outras, ou seja, existe uma ampla gama de
dados que se referem a relacioamentos existentes entre as informaes a serem manipuladas.

19
20
Estes Bancos de Dados, alm de manterem todo este volume de dados organizado, tambm devem permitir
atualizaes, incluses e excluses do volume de dados, sem nunca perder a consistncia. E no podemos
esquecer que na maioria das vezes estaremos lidando com acessos concorrentes a vrias tabelas de nosso
banco de dados, algumas vezes com mais de um acesso ao mesmo registro de uma mesma tabela!
O fato de montarmos uma Mala Direta em um micro PC-XT com um drive j faz de ns um autor de um Banco de
Dados?
Claro que no! Um Banco de Dados antes de mais nada uma coleo logicamente coerente de dados com
determinada significao intrnseca. Em outras palavras um arquivo contendo uma srie de dados de um cliente,
um arquivo com dados aleatoriamente gerados e dois arquivos padro dbf (dBase) que tem uma relao definida
entre ambos, no pode ser considerada uma Base de Dados Real.
Um Banco de Dados contm os dados dispostos numa ordem pr-determinada em funo de um projeto de
sistema, sempre para um propsito muito bem definido.
Um Banco de Dados representar sempre aspectos do Mundo Real. Assim sendo uma Base de Dados (ou Banco de
Dados, ou ainda BD) uma fonte de onde poderemos extrair uma vasta gama de informaes derivadas, que
possui um nvel de interao com eventos como o Mundo Real que representa. A forma mais comum de interao
Usurio e Banco de Dados, d-se atravs de sistemas especficos que por sua vez acessam o volume de
informaes geralmente atravs da linguagem SQL.
Os Administradores de Banco de Dados (DBA) so responsveis pelo controle ao acesso aos dados e pela
coordenao da utilizao do BD. J os projetistas de Banco de Dados (DBP) so analistas que identificam os
dados a serem armazenados em um Banco de Dados e pela forma como estes sero representados.
Os Analistas e Programadores de Desenvolvimento, criam sistemas que acessam os dados da forma necessria ao
Usurio Final, que aquele que interage diretamente com o Banco de Dados.

SGBD x GA

Um SGBD - Sistema de Gerenciamento de Banco de Dados uma coleo de programas que permitem ao usurio
definir, construir e manipular Bases de Dados para as mais diversas finalidades.
Um conceito que dever ficar bastante claro inicialmente o que envolve a separao clara entre os Gerenciadores
de Base de Dados dos Gerenciadores de Arquivo.
Sistemas baseados em "Banco de Dados" baseados em Btrieve e dBase (Fox e Clipper), podem no mximo simular
as caractersticas tpicas de um ambiente de Banco de Dados. As linguagens Delphi (utiliza opcionalmente o padro
dBase) e o VB (que utiliza o Access), recomendam a utilizao de Banco de Dados reais, porm utilizam queles
"Banco de Dados" que possuem algumas caractersticas de Bancos de Dados, mas possuem caractersticas tpicas
de Gerenciadores de Arquivo.
Vamos definir algumas regras bsicas e claras para um sistema de manipulao de dados ser considerado um
SGBD. Fica implcito que se ao menos uma das caractersticas abaixo no estiver presente no nosso "candidato" a
SGBD, este poder ser um GA (Gerenciador de Arquivo) de altssima qualidade, "quase" um
SGBD, mas no um SGBD.

Regra 1: Auto-Conteno- Um SGBD no contm apenas os dados em si, mas armazena completamente toda a
descrio dos dados, seus relacionamentos e formas de acesso. Normalmente esta regra chamada de Meta-Base
de Dados. Em um GA, em algum momento ao menos, os programas aplicativos declaram estruturas (algo que
ocorre tipicamente em C, COBOL e BASIC), ou geram os relacionamentos entre os arquivos (tpicos do ambiente
xBase). Por exemplo, quando voc obrigado a definir a forma do registro em seu programa, voc no est
lidando com um SGBD.
Regra 2: Independncia dos Dados- Quando as aplicaes estiverem realmente imunes a mudanas na
estrutura de armazenamento ou na estratgia de acesso aos dados, podemos dizer que esta regra foi atingida.
Portanto, nenhuma definio dos dados dever estar contida nos programas da aplicao. Quando voc resolve
criar uma nova forma de acesso, um novo ndice, se precisar alterar o cdigo de seu aplicativo, voc no est
lidando com um SGBD.
Regra 3: Abstrao dos Dados- Em um SGBD real fornecida ao usurio somente uma representao
conceitual dos dados, o que no inclui maiores detalhes sobre sua forma de armazenamento real. O chamado
Modelo de Dados um tipo de abstrao utilizada para fornecer esta representao conceitual. Neste modelo, um
esquema das tabelas, seus relacionamentos e suas chaves de acesso so exibidas ao usurio, porm nada
afirmado sobre a criao dos ndices, ou como sero mantidos, ou qual a relao existente entre as tabelas que
dever ser mantida ntegra. Assim se voc desejar inserir um pedido em um cliente inexistente e esta entrada no
for automaticamente rejeitada, voc no est lidando com um SGBD.
Regra 4: Vises- Um SGBD deve permitir que cada usurio visualize os dados de forma diferente daquela
existente previamente no Banco de Dados. Uma viso consiste de um subconjunto de dados do Banco de Dados,
necessariamente derivados dos existentes no Banco de Dados, porm estes no devero estar
explicitamente armazenados. Portanto, toda vez que voc obrigado a replicar uma estrutura, para fins de acesso
de forma diferenciada por outros aplicativos, voc no est lidando com um SGBD.
Regra 5: Transaes- Um SGBD deve gerenciar completamente a integridade referencial definida em seu
esquema, sem precisar em tempo algum, do auxlio do programa aplicativo. Desta forma exige-se que o banco de
dados tenha ao menos uma instruo que permita a gravao de uma srie modificaes simultneas e uma
instruo capaz de cancelar um srie modificaes. Por exemplo, imaginemos que estejamos cadastrando um
pedido para um cliente, que este deseje reservar 5 itens de nosso estoque, que esto disponveis e portanto so
reservados, porm existe um bloqueio financeiro (duplicatas em atraso) que impede a venda. A transao dever
ser desfeita com apenas uma instruo ao Banco de Dados, sem qualquer modificaes suplementares nos dados.

20
21
Caso voc se obrigue a corrigir as reservas, atravs de acessos complentares, voc no est lidando com um
SGBD.
Regra 6: Acesso Automtico- Em um GA uma situao tpica o chamado Dead-Lock, o abrao mortal. Esta
situao indesejvel pode ocorrer toda vez que um usurio travou um registro em uma tabela e seu prximo passo
ser travar um resgistro em uma tabela relacionada primeira, porm se este registro estiver previamente
travado por outro usurio, o primeiro usurio ficar paralisado, pois, estar esperando o segundo usurio liberar o
registro em uso, para que ento possa trav-lo e prosseguir sua tarefa. Se por hiptese o segundo usurio
necessitar travar o registro travado pelo primeiro usurio (!), afirmamos que ocorreu um abrao mortal, pois cada
usurio travou um registro e precisa travar um outro, justamente o registro anteriormente travado pelo outro!
Imaginemos um caso onde o responsvel pelos pedidos acabou de travar o Registro Item de Pedido, e, necessita
travar um registro no Cadastro de Produtos, para indicar uma nova reserva. Se concomitantemente estiver sendo
realizada uma tarefa de atualizao de pendncias na Tabela de Itens, e para tanto, previamente este segundo
usurio travou a Tabela de Produtos, temos a ocorrncia do abrao mortal. Se a responsabilidade de evitar esta
ocorrncia for responsabilidade da aplicao, voc no est lidando com um SGBD.
Concluso: Um SGBD deve obedecer INTEGRALMENTE as seis regras acima. Em caso contrrio estaremos diante
de um GA ou de um "quase" SGBD.

Consideraes Finais

Atualmente, existe uma tendncia de mercado em se dizer que qualquer problema ser resolvido, caso a empresa
adquira um Banco de Dados. Naturalmente, em um ambiente com acesso constante ao Banco de Dados (acesso
concorrente, obviamente), onde a segurana seja de vital importncia e que o desempenho da aplicao escrita
estiver comprometendo a empresa, considerando-se logicamente uma aplicao bem escrita, sem dvida a
aquisio de um Banco de Dados poder ser o primeiro passo na soluo do problema.
Analogamente ao que ocorreu com o aparecimento das primeriras linguagens de programao voltadas ao
Windows, onde estas foram apresentadas como capazes de alavancar os negcios da empresa, e no geral
causaram mais frustao do que soluo, a aquisio do Banco de Dados, pode gerar o mesmo tipo de problema.
fundamental que a empresa candidata a utilizar um Banco de Dados, normatize-se totalmente, pois solues
quebra-galho, tpicas do ambiente que dispe de um Gerenciador de Arquivo, tendem a ser impossveis em um
ambiente estruturado sobre o Banco de Dados. Portanto, sob pena de se realizar um grande investimento, e no
se colher fruto algum, muito conveniente, que a empresa antes de adquirir um Banco de Dados, passe por um
processo de adaptao, preferencialmente contando com pessoal especializado, geralmente consultores, que no
tenham qualquer ligao com fabricantes de Bancos de Dados.

Caractersticas Gerais de um SGBD

Os SGBD tem sete caractersticas operacionais elementares sempre observadas, que passaremos a listarr:

Caracterstica 1: Controle de Redundncias- A redundncia consiste no armazenamento de uma mesma


informao em locais diferentes, provocando inconsistncias. Em um Banco de Dados as informaes s se
encontram armazenadas em um nico local, no existindo duplicao descontrolada dos dados. Quando existem
replicaes dos dados, estas so decorrentes do processo de armazenagem tpica do ambiente Cliente-Servidor,
totalmente sob controle do Banco de Dados.
Caracterstica 2: Compartilhamento dos Dados- O SGBD deve incluir software de controle de concorrncia ao
acesso dos dados, garantindo em qualquer tipo de situao a escrita/leitura de dados sem erros.
Caracterstica 3: Controle de Acesso- O SGDB deve dispor de recursos que possibilitem selecionar a
autoridade de cada usurio. Assim um usurio poder realizar qualquer tipo de acesso, outros podero ler alguns
dados e atualizar outros e outros ainda podero somente acessar um conjunto restrito de dados para escrita e
leitura.
Caracterstica 4: Interfaceamento- Um Banco de Dados dever disponibilizar formas de acesso grfico, em
linguagem natural, em SQL ou ainda via menus de acesso, no sendo uma "caixa-preta" somente sendo passvel
de ser acessada por aplicaes.
Caracterstica 5: Esquematizao- Um Banco de Dados dever fornecer mecanismos que possibilitem a
compreenso do relacionamento existentes entre as tabelas e de sua eventual manuteno.
Caracterstica 6: Controle de Integridade-Um Banco de Dados dever impedir que aplicaes ou acessos pelas
interfaces possam comprometer a integridade dos dados.
Caracterstica 7: Backups- O SGBD dever apresentar facilidade para recuperar falhas de hardware e software,
atravs da existncia de arquivos de "pr-imagem" ou de outros recursos automticos, exigindo minimamente a
interveno de pessoal tcnico.

Existe a possibilidade de encontramos Bancos de Dados que no satisfaam completamente todas as


caractersticas acima, o que no o invlida como Banco de Dados. Na prtica podemos encontrar situaes onde a
primeira caracterstica no seja importante, pois podemos ter o Banco de Dados baseado totalmente em um nico
servidor, e as redundncias podem ser aceitas em algumas situaes sob controle da aplicao (algo no muito
recomendado, mas passvel de aceitao, em situaes onde a existncia do nome do cliente em um arquivo
contendo duplicatas emitidas, possibilita o acesso a apenas uma tabela sem relacionamentos, e sabe-se de
antemo que uma duplicata depois de emitida, no pode ter seu cliente alterado).
A segunda caracterstica (Compartilhamento dos Dados) pode ser desconsiderada principalmente em ambiente de
desenvolvimento, ou ainda em aplicaes remotas.

21
22
O Controle de Acesso pode ser descartado em pequenas empresas, sendo que o aplicativo em questo, mais o
software de rede, podem facilmente se imcumbir desta caracterstica, no caso de pequenas empresas, com
reduzido nmero de pessoas na rea operacional.
O Interfaceamento e a Esquematizao, so caractersticas sempre disponveis, o que varia neste caso qualidade
destes compoenentes, que vai desde o sofrvel at o estado da arte. muito conveniente que esta caracterstica
seja muito boa em um Banco de Dados, onde estiverem em atuao mais de um Administrador de Banco de Dados
e tivermos um nmero relativamente alto de sistemas desenvolvidos ou em desenvolvimento neste ambiente.
De fato, quanto maior o nmero de pessoas envolvidas no desenvolvimento de aplicaes e gerenciamento do
Banco de Dados, mais importante tornam-se estas duas caractersticas, pois cada novo sistema desenvolvido
precisar sempre estar adequado ao Banco de Dados da Empresa e aderente aos padres de acesso utilizados nos
sistemas concorrentes.
As interfaces ISQL e WinSQL devem deixar muito claro ao estudante como uma interface pobre (no caso a
existente no ISQL) perde muito, quando comparada a uma interface mais recursiva. A esquematizao existente
no Banco de Dados muito melhor do que aquela mantida em alguma pasta, em algum arquivo do CPD, que
sempre est um pouquinho desatualizada.
O Controle de Integridade, outra caracterstica sempre presente nos Bancos de Dados, mas existem diferenas
quando da implementao desta caracterstica. Assim, comum encontrarmos Bancos de Dados que suportam
determinado acesso, enquanto outros no dispe de recurso equivalente.
O Backup em tempo de execuo, outra caracterstica sempre disponvel, porm temos aplicaes que
invariavelmente so comprometidas por falhas de hardware, e outras, que o mesmo tipo de falha no causa perda
alguma de dados ou de integridade. Novamente, cada Banco de Dados tem esta caracterstica melhor ou pior
implementada, cabendo ao Administrador de Banco de Dados escolher aquele que lhe oferecer mais segurana.
Devemos ressaltar ainda, que podemos ter um Banco de Dados Modelo A, que respeite integralmente as regras
bsicas e disponha de todas as caractersticas apresentadas, enquanto um Modelo B que apesar de respeitar as
regras bsicas, no suporte uma ou outra caracterstica desejvel, mas tenha um desempenho excelente,
enquanto o Modelo A seja apenas razovel no quesito desempenho, nos levar seguramente a escolher o Modelo B
como sendo o ganhador para nossa instalao!
Isto ocorre pois, na prtica, todo usurio deseja um tempo de resposta muito pequeno. O chamado prazo de
entrega muito comum em Bancos de Dados operando nos limites de sua capacidade, ou nos casos onde o
hardware est muito desatualizado, fonte de inmeros problemas para o pessoal de informtica. Neste caso
melhor abrirmos mo de uma Interface Amigvel, de um Gerenciamente Automtico de Backups ou ainda de
outras caractersticas que no julgarmos fundamentais, para nos livrarmos do problema tpico de ambiente
extremamente comprometido, por m performance do Banco de Dados.
A escolha do Banco de Dados da empresa, portanto uma deciso muito delicada, na medida em que est ir
acarretar troca de aplicativos e troca de hardware. Os investimentos diretamente aplicados no Banco de Dados,
costumam ser infinitamente menores do que aqueles a serem aplicados na empresa, visando sua perfeita
adeqao ao novo SGBD. Esta deciso, sempre que possvel, deve ser tomada por especialistas em Banco de
Dados, com profundos conhecimentos de Anlise de Sistemas, de Banco de Dados e de Software de
Gerenciamento de Bases de Dados, de forma a evitar que a empresa escolha um Banco de Dados inadequado aos
seus propsitos, e que pouco tempo depois, seja obrigada a perder todos investimento realizado em Software e
Hardware.

Arquitetura de um SGBD

Estrutura

Podemos dizer que o Banco de Dados tem um Nvel Interno, onde descrita a estrutura de armazenamento fsico
dos dados, um Nvel Intermedirio, onde temos a descrio lgica dos dados e um Nvel Externo onde so
descritas as vises para grupos de usurios.
No podemos deixar de lembrar ainda que o Banco de Dados garante a Independncia Lgica e Fsica dos Dados,
portanto podemos alterar o esquema conceitual dos dados, sem alterar as vises dos usurios ou mesmo alterar o
esquema interno, sem contudo alterar seu esquema conceitual.

Modelos de Dados

O Modelo de Dados basicamente um conjunto de conceitos utilizados para descrever um Banco de Dados. No
existe uma nica forma de representao deste modelo, porm qualquer forma que permita a correta
compreenso das estruturas de dados compreendidas no Banco de Dados, pode ser considerada adequada. Vamos
descrever sucintamente este modelo, pois estes sero objetos de outras disciplinas:

Modelo Orientado ao Registro: So modelos que representam esquematicamente as estruturas das tabelas de
forma bastante prxima a existente fisicamente. Basicamente so apresentados os registros de cada tabela
(inclusive seus campos) e seus relacionamentos elementares. O Modelo Relacional, o Modelo de Rede e o
Hierrquico so exemplos deste tipo de representao.
Modelo Semntico: So modelos onde existe uma representao explcita das entidades e relacionamentos. O
Modelo Entidade-Relacionamento e o Funcional, so exemplos deste tipo de abordagem.
Modelo Orientado ao Objeto: So modelos que procuram representar as informaes atravs dos concietos
tpicos da Programao Orientada ao Objeto, utilizando o conceito de Classes que iro conter os objetos. Citamos
os Modelos O2 e o de Representao de Objetos como exemplos tpicos desta abordagem.

22
23
O conceito de instncia, sempre muito presente, poderia ser definido como sendo o conjunto de dados que
definem claramente um Banco de Dados em deteminado instante. Devemos entender ento o Banco de Dados
como sendo no apenas um conjunto de dados digitados, mas tambm todo o esquema e regras armazenada e
controladas pelo SGBD.
Em outras palavras, podemos dizer que os SGBD, vieram para eliminar todo o trabalho que anteriormente um
programador de aplicao realizava controlando o acesso, integridade e redundncia dos dados.

Componentes de um Banco de Dados

Um Banco de Dados composto pelas seguintes partes:

Gerenciador de Acesso ao Disco: O SGBD utiliza o Sistema Operacional para acessar os dados armazenados em
disco, controlando o acesso concorrente s tabelas do Banco de Dados. O Gerenciador controla todas as pesquisas
queries) solicitadas pelos usurios no modo interativo, os acessos do compilador DML, os acessos feitos pelo
Processador do Banco de Dados ao Dicionrio de Dados e tambm aos prprios dados.
O Compilador DDL (Data Definition Language) processa as definies do esquema do Banco de Dados, acessando
quando necessrio o Dicionrio de Dados do Banco de Dados.
O Dicionrio de Dados contm o esquema do Banco de Dados, suas tabelas, ndices, forma de acesso e
relacionamentos existentes.
O Processador do Banco de Dados manipula requisies prpria Base de Dados em tempo de execuo. o
responsvel pelas atualizaes e integridade da Base de Dados.
O Processador de Pesquisas (queries) dos usurios, analisa as solicitaes, e se estas forem consistentes,
aciona o Processador do Banco de Dados para acesso efetivo aos dados.
As aplicaes fazem seus acessos ao pr-compilador DML da linguagem hospedeira, que os envia ao Compilador
DML (Data Manipulation Language) onde so gerados os cdigos de acesso ao Banco de Dados.

Tipos de SGBD

Introduo

Podemos citar como tipos principais os Bancos de Dados Relacionais, os Hierrquicos, os de Rede, os Semnticos,
os Orientados a Objetos e os Universais.
Os Bancos de Dados alvo de nosso estudo sero os Relacionais, sendo que os demais tipos sero apenas citados
superficialmente, por no serem parte integrante de nosso curso.

Esquema de Organizao dos Dados

Em Linguagem C os estudantes tomaram (ou iro tomar contato) com os ponteiros de registro, que aqui
representaremos como sendo nmeros de acesso ao registro. Visando diferenciar o nmero do registro fsico do
nmero do registro apontado pelo ponteiro, usaremos o smbolo (#) para indicar o nmero do registro fsico,
enquanto o smbolo (*) ser utilizado pelo para indicar o endereo indicado pelo ponteiro, a semelhana da
representao usual dos programadores da Linguagem C.

Vamos supor o arquivo abaixo ordenado alfabeticamente (fsico):

#1- Amarelo *2
#2- Azul *3
#3- Branco *4
#4- Preto *5
#5- Verde *6
#6- Vermelho --

Supondo desejarmos incluir a cor Laranja, seramos obrigado a re-escrever todo o arquivo de modo a Laranja
ocupar o registro 4. Vamos antes de fazer uma nova ordenao, analisar a soluo abaixo:

#1- Amarelo *2
#2- Azul *3
#3- Branco *7
#4- Preto *5
#5- Verde *6
#6- Vermelho --
#7- Laranja *4

Observe que o registro #3 (Branco) passou a apontar para o registro *7, que contm o novo dados (Laranja). O
novo dado passa a apontar para o registro previamente apontado pelo registro que agora o aponta. Parece, e
confuso, mas se voc analisar o esquema abaixo perceber que apesar do palavreado confuso, facilmente
qualquer um de ns percebe a maneira adequada de inserir novos registros.

Algo --> Apontado

23
24
Algo --> Novo --> Apontado

#1 Algo --> *2
#2 Apontado no aponta ( o ltimo fsica e logicamentex)

#1 Algo --> *3
#2 Apontado no aponta ( o ltimo logicamente)
#3 Novo --> *2 ( o ltimo fisicamente)

A chamada perda de ponteiros, fenmeno dos mais temidos pelos profissionais de sistema, nada mais que a
perda de referncia lgica entre registros de uma tabela.

Existem diversas tcnicas de acesso como as chamadas Btree+ (Arvore Binria Balanceada), Hashing, Sequencial
Ordenado, Hashing Dinmico, Hashing Extensvel e Hashing Linear, prprios para um curso especfico de Banco de
Dados, que no chegaremos a analisar em nosso curso.

Sabemos que em linguagem C foi (ou ser) apresentada a tcnica de balanceamento de estruturas, que mostrou
(ou mostrar) como um Banco de Dados arranjado internamente.

Exerccio: Represente esquematicamente o arranjo alfabtico dos seguintes times de futebol: Fluminense,
Flamengo, Vasco, Botafogo, Madureira, Amrica e Olria. Suponha ainda que o Bangu queira participara do
campeonato, como ficaria a nova ordem da tabela?

Banco de Dados Hierrquicos

Seguem o estilo de um organograma empresarial (Diretoria-Diviso-Seo-Setor) ou de biblioteca (Exata-


Matemtica-Algebra Linear-Vetores). Este modelo capaz de representar este tipo de organizao de forma direta,
mas apresenta inconvenientes quando esta situao no aparece claramente com relaes de hierarquia.

O Exemplo a seguir (Folha de Pagamento) deve servir para esclarecer melhor o estilo deste modelo

Fbrica Financeiro Comercial

Injeo Extruso Pagar Receber Contbil Vendas Marketing

Paulo Vincius Vilma Slvia Dagoberto Juracy Richard


Pedro Carlos Ernesto Sandra Paula Pedrinho
Joo

Sabemos que Paulo "filho" da Injeo que por sua vez "filha" da Fbrica.

Banco de Dados em Redes

Neste modelos os dados so dispostos em registros, previamente classificados em classes que descrevem a
estrutura de determinado tipo de registro. Os registros so descritos em relaes de conjuntos onde so
estabelecidas as ligaes lgicas entre eles.

O esquema abaixo representa este tipo de Ligao

Fbrica
#1 Nome Local ... Apontada Aponta_Incio Aponta_Final
Injeo
#7 Nome Mquina ... Apontada (*1) Aponta_I(*15) Aponta_F(*18)
#15 Paulo 28 (Idade) ... (*7) (*17)
#18 Joo 25 ... (*17) (*7)

Um confuso habitualmente verificada, diz respeito a confuso que existe entre o conceito do Modelo de Redes e o
existente na matemtica. No modelo de Redes temos sempre um elemento distitivo, o registro base e a partir dele
so dispostos os demais registros. Temos sempre tipos de conjunto, que dispe de trs elementos, a saber: nome,
tipo de registro pai e tipo de registro filho. Supondo um Registro contido no Arquivo de Disciplinas ministradas na
bero, este seria um registro pai, na medida em que conteria a referncia aos seus registros filhos (os alunos
cursando aquela disciplina).

As restries impostas pelo Modelo de Redes podem ser descritas como de ordem de Entrada e de Existncia. Em
relao as restries de entrada citamos a obrigatoriedade de cada novo registro estar conectado (ou apontado,
como preferem os programadores C) ao conjunto indicado. Em relao a restries de Existncia podemos dizer

24
25
que um componente de um tipo de registro pode existir de forma independente de outros desde que esteja
conectado a algum outro registro fazendo parte de algum conjunto, ou sendo base de um novo conjunto. A
identificao de um conjunto pode ser verificada atravs do esquema de ligao entre o registro pai e o registro
filho, assim sendo, cada instncia de conjunto apresenta um elemento de distino, o tal registro pai, e os
registros filhos devidamente ordenados, e portanto passveis de serem acessados pelos seus elementos.

Exemplo: Disciplina Tpicos Avanados e seus Alunos

Registro de Disciplinas

Informtica

lvaro

Maurcio

Cludio

Registro de Alunos

O exemplo anterior representa uma instncia de connjunto, no caso Disciplinas (Tpicos Avanados) e seus alunos
(no caso lvaro, Amorim e Cludio).

Banco de Dados Orientados ao Objeto

Representam os dados como colees que obedecem propriedades. So modelos geralmente conceituais dispondo
de pouqussimas aplicaes reais. Neste Modelo no seria interessante a existncia de uma tabela de funcionrios
e dentro dela alguma referncia para cada registro, de forma a podermos saber onde (em que departamento) o
funcionrio est alocado. Um conjunto de regras disponibilizaria em separado os funcionrios da fbrica, que no
entanto estariam agrupados aos demais, para o sistema de folha de pagamento.

Banco de Dados Universal

Usa fortemente o conceito dos bancos de dados relacionais (ainda a serem vistos), no que concerne ao tratamento
da informao dita caracter e muito do Modelo Orientado ao Objeto, no tocante ao tratamento de Imagens e Sons.
um dos assuntos top do momento, e ser alvo de pesquisas na disciplina Tpicos Avanados - Atualidades, no
sendo objeto imediato de nossa matria.

Banco de Dados Relacional

O Modelo de Dados relacional representa os dados contidos em um Banco de Dados atravs de relaes. Estas
relaes contm informaes sobre as entidades representadas e seus relacionamentos. O Modelo Relacional,
claramente baseado no conceito de matrizes, onde as chamadas linhas (das matrizes) seriam os registros e as
colunas (das matrizes) seriam os campos. Os nomes das tabelas e dos campos so de fundamental importncia
para nossa compreenso entre o que estamos armazenando, onde estamos armazenando e qual a relao
existente entre os dados armazenados.

Cada linha de nossa relao ser chamada de TUPLA e cada coluna de nossa relao ser chamada de ATRIBUTO.
O conjunto de valores passveis de serem assumidos por um atribruto, ser intitulado de DOMNIO.

Estes tpicos sero estudados cuidadosamente na disciplina Anlise de Sistemas, que se incumbir de apresentar
cuidadosamente regras e normas para elaborao destes modelos.

Em nosso curso, voltado construo prtica dos Bancos de Dados, e no de sua construo tericas, apenas
citaremos os aspectos bsicos da construo terica, de forma a facilitar ao estudante o relacionamento que existe
entre Anlise de Sistemas e Banco de Dados (uma das sub-disciplinas de Tpicos Avanados).

O domnio consiste de um grupo de valores atmicos a partir dos quais um ou mais atributos retiram seus valores
reais. Assim sendo Rio de Janeiro, Paran e Par so estados vlidos para o Brasil, enquanto que Corrientes no
um estado vlido (pertence a Argentina e no ao Brasil).

O esquema de uma relao, nada mais so que os campos (colunas) existentes em uma tabela. J a instncia da
relao consiste no conjunto de valores que cada atributo assume em um determinado instante. Portanto, os
dados armazenados no Banco de Dados, so formados pelas instncias das relaes.

25
26
As relaes no podem ser duplicadas (no podem existir dois estados do Par, no conjunto de estados brasileiros,
por exemplo), a ordem de entrada de dados no Banco de Dados no dever ter qualquer importncia para as
relaes, no que concerne ao seu tratamento. Os atributos devero ser atmicos, isto , no so veis de novas
divises.

Chamaremos de Chave Primria ao Atributo que definir um resgistro, dentre uma coleo de registros. Chave
Secundria (Terceria, etc), sero chaves que possibilitaro pesquisas ou ordenaes alternativas, ou seja,
diferentes da ordem criada a partir da chave primria ou da ordenao natural (fsica) da tabela. Chamaremos de
Chave Composta, aquela chave que contm mais de um atributo (Por exemplo um cadastro ordenado
alfabticamente por Estado, Cidade e Nome do Cliente, necessitaria de uma chave composta que contivesse
estes trs atributos). Chamaremos de Chave Estrangeira, aquela chave que permitir a ligao lgica entre uma
tabela (onde ela se encontra) com outra na qual ele chave primria.

Exemplo:

Cidade Estado
* CidCodi * EstCodi
CidNome EstNome
EstCodi (E)

CidCodi e EstCodi, so chaves primrias respectivamente das tabelas Cidade e Estado, enquanto EstCodi chave
estrangeira na tabela de cidades. precisamente por este campo (atributo, ou coluna), que ser estabelecida a
relao entre as tabelas Cidade-->Estado.
Forma Normal

A disciplina Anlise de Sistemas abordar detalhadamente esta importante metodologia para definio das tabelas
que iro compor a base de dados, que aqui apenas citaremos.

Primeira Forma Normal: Uma relao se encontra na primeira forma normal se todos os domnios de atributos
possuem apenas valores atmicos (simples e indivisveis), e que os valores de cada atributo na tupla seja um valor
simples. Assim sendo todos os atributos compostos devem ser divididos em atributos atmicos.

Segunda Forma Normal: Uma relao se encontra na segunda forma normal quando estiver na primeira forma
normal e todos os atributos que no participam da chave primria so dependentes desta. Assim devemos verificar
se todos os atributos so dependentes da chave primria e retirar-se da relao todos os
atributos de um grupo no dependente que dar origem a uma nova relao, que conter esse atributo como no
chave. Desta maneira, na segunda forma normal evita inconsistncias devido a duplicidades.

Terceira Forma Normal: Uma relao estar na terceira forma normal, quando estiver na primeira forma norma
e todos os atributos que no participam da chave primria so dependentes desta porm no transitivos. Assim
devemos verificar se existe um atributo que no depende diretamente da chave, retir-lo criando uma nova
relao que conter esse grupo de atributos, e defina com a chave, os atributos dos quais esse grupo depende
diretamente.

O processo de normalizao deve ser aplicado em uma relao por vez, pois durante o processo de normalizao
vamos obtendo quebras, e por conseguinte, novas relaes. No momento em que o sistema estiver satisfatrio, do
ponto de vista do analista, este processo iterativo interrompido. De fato existem
literaturas indicando quarta, quinta formas normais, que no nos parece to importante, nem mesmo
academicamente.
A normalizao para formas apoiadas em dependncias funcionais evita inconsistncias, usando para isso a prpria
construo da Base. Se a mesma consistncia for passvel de ser garantida pelo aplicativo, a normalizao pode
ser evitada com ganhos reais no desempenho das pesquisas. No caso da
consistncia no ser importante, tambm podemos no normalizar totalmente uma Base de Dados.

Exemplo: Normalizar os seguintes atributos:

N do Pedido, Nome do Cliente, Nome dos Produtos, Quantidades

N do Pedido, Cdigo do Cliente, Nome dos Produtos, Quantidades


Cdigo do Cliente, Nome do Cliente

N do Pedido, Cdigo do Cliente, Cdigo dos Produtos, Quantidades


Cdigo do Cliente, Nome do Cliente
Cdigo do Produto, Nome do Produto

N do Pedido, Cdigo do Cliente


Cdigo do Cliente, Nome do Cliente
Cdigo do Produto, Nome do Produto
N do Pedido, Cdigo do Produto, Quantidade

26
27
Cliente Pedido Item Produto

CliCodi PedNume PedNume ProCodi


CliNome CliCodi ProCodi ProNome
IteQtde

O esquema apresentado anteriormente poderia ser inferido diretamente, usando metodologia tipicamente
apresentada em Organizao e Mtodo. Se soubermos, por hiptese, que um profissional habilitado desenhou o
pedido da empresa, e que esta o est utilizando com sucesso, poderamos basear nosso modelo de dados neste
formulrio. Devemos notar que muitos Analistas de Sistemas no adotam estes procedimentos, por preferirem os
mtodos convencionais para elaborao do Modelo de Dados.

Considerando qualquer formulrio de pedidos podemos notar que o Nmero do Pedido geralmente tem destaque
e sempre nico, ou seja encontramos nossa chave primria da Tabela de Pedidos, como sabemos que um
cliente pode fazer mais de uma compra, achamos nossa Tabela de Clientes, que pode ter um Cdigo, portanto
achamos sua chave primria, que por conseguinte ser a chave estrangeira da Tabela de Pedidos.

Um ponto delicado, diz respeito aos itens do pedido, que formam geralmente um espao destacado dentro do
formulrio de pedidos. Geralmente, e este um dos casos, estas reas em separado dos formulrios daro origem
a tabelas filhas, como o caso tpico das duplicatas em notas fiscais, ou dos dependentes na ficha de funcionrios.
Portanto achamos nossa Tabela de Itens que ser ligada Tabela de Pedidos atravs do Nmero do Pedido,
que ao mesmo tempo chave primria e chave estrangeira para a Tabela de Itens.

Finalmente podemos perceber, que da mesma forma como os clientes se repetem em relao a Tabela de Pedidos,
os produtos podem se repetir na tabela de itens (observe que no obstante no termos nenhum pedido com o
mesmo item grafado duas vezes, este item pode ser adquirido em outro pedido). Assim descobrimos nossa quarta
tabela, a Tabela de Produtos e a chave primria Cdigo do Produto.

SQL - Structured Query Language

Introduo

Quando os Bancos de Dados Relacionais estavam sendo desenvolvidos, foram criadas linguagens destinadas sua
manipulao. O Departamento de Pesquisas da IBM, desenvolveu a SQL como forma de interface para o sistema
de BD relacional denominado SYSTEM R, incio dos anos 70. Em 1986 o American National Standard Institute
( ANSI ), publicou um padro SQL.

A SQL estabeleceu-se como linguagem padro de Banco de Dados Relacional.

SQL apresenta uma srie de comandos que permitem a definio dos dados, chamada de DDL (Data Definition
Language), composta entre outros pelos comandos Create, que destinado a criao do Banco de Dados, das
Tabelas que o compe, alm das relaes existentes entre as tabelas. Como exemplo de comandos da classe DDL
temos os comandos Create, Alter e Drop.

Os comandos da srie DML (Data Manipulation Language), destinados a consultas, inseres, excluses e
alteraes em um ou mais registros de uma ou mais tabelas de maneira simultnea. Como exemplo de comandos
da classe DML temos os comandos Select, Insert, Update e Delete.

Uma subclasse de comandos DML, a DCL (Data Control Language), dispe de comandos de controle como Grant e
Revoke.

A Linguagem SQL tem como grandes virtudes sua capacidade de gerenciar ndices, sem a necessidade de controle
individualizado de ndice corrente, algo muito comum nas linguagens de manipulao de dados do tipo registro a
registro. Outra caracterstica muito importante disponvel em SQL sua capacidade de construo de vises, que
so formas de visualizarmos os dados na forma de listagens independente das tabelas e organizao lgica dos
dados.

Outra caracterstica interessante na linguagem SQL a capacidade que dispomos de cancelar uma srie de
atualizaes ou de as gravarmos, depois de iniciarmos uma seqncia de atualizaes. Os comandos Commit e
Rollback so responsveis por estas facilidades.

Devemos notar que a linguagem SQL consegue implementar estas solues, somente pelo fato de estar baseada
em Banco de Dados, que garantem por si mesmo a integridade das relaes existentes entre as tabelas e seus
ndices.

O Ambiente SQL

Dispomos na Ibero de dois softwares destinados a linguagem SQL o ISQL e o WinSQL.

27
28
O ISQL faz parte do pacote Ideo e permite construirmos Banco de Dados e tabelas diretamente pelo interpretador
SQL, bem como acessarmos as Bases de Dados construdas no Ideo. O ISQL pode gerar Banco de Dados em seu
ambiente proprietrio (Watcom, hoje pertencente a Symantech) ou ainda nos consagrados Banco de Dados Oracle,
SyBase, Ingres (Computer Associates), DB/2 (IBM) e Informix. Devido as origens do Ideo, o Banco de Dados SQL
Server da Microsoft no suportado, pois este Banco de Dados originou-se na microinformtica e somente
recentemente a Sapiens migrou seu software dos Ambientes Mainframe e Unix.

J o WinSQL um ambiente inteiramente grfico (ao contrrio do ISQL que guarda fortes caractersticas do
ambiente em Mainframe onde se originou), destinado ao apredinzado, portanto somente pode criar Banco de
Dados em seu formato proprietrio.

Os comandos do WinSQL por serem visuais, no necessitam de maior esclarecimento alm daqueles j contidos no
Help. J o ISQL apesar de possuir um Help bastante completo necessita, em nosso entender, de alguns
esclarecimentos iniciais.

Uma srie de comandos do interpretador, que funciona de forma anloga quela existente no dBase modo
interativo, podem ser utilizados pelo usurio. No obstante alguns comandos tenham nome idntico a alguns
comandos do DOS, devemos notar que muitas vezes sua sintaxe bastante diversa daquele sistema operacional.
Vamos destacar os seguintes comandos:

\EDIT - Carrega o editor de bloco de notas do windows, o qual serve para a criao de arquivos para serem
executados no Ideo.
Ex: \edit teste.sql

\CD - Mostra o diretrio onde sero gravados os arquivos *.sql, *.dic *.dat.
Permite alterar para determinado diretrio (\CD DADO, far com que o diretrio corrente passe a ser C:\DADO,
caso o diretrio corrente fosse a raiz. Permite retornar ao diretrio de nvel inferior (\CD ..). Ateno este
comando no anlogo ao Change Dir do DOS, na medida em que no permite a mudana direta de um subnvel
do diretrio X para um diretrio Y por exemplo.

\DEFAULT <drive> - permite alterarmos o drive corrente.


Ex: \DEFAULT F:

\INCLUDE - Executa arquivos *.sql. O arquivo .sql dever conter uma srie de instrues SQL.
Ex: \include teste.sql

@< file > ; - Tambm executa arquivos *.sql.


Ex: @teste.sql;

EXIT; - Finaliza a sesso do ISQL. ou ( \QUIT )

COMMIT; - Confirma a transao.

ROLLBACK; - Desfaz a transao.

SHOW <tabela>; - Mostra os nomes das tabelas existentes em determinado banco de dados.
Ex: SHOW tables;

SHOW FIELDS FOR <tabela>; - Mostra os campos de determinada tabela.


Ex: SHOW FIELDS FOR ATOR;

SHOW INDEXES FOR <tabela>; - Lista de indices da tabela.

SHOW RELATIONSHIPS FOR <tabela>; - Lista de relacionamentos da tabela.

LIST <tabela> ; - Lista contedo da tabela.

Estudo Dirigido

Consideramos a linguagem SQL eminentemente prtica, desta forma criamos um exmplo completo e propomos um
exerccio anlogo, para tornar o estudante apto a manipular a linguagem SQL de maneira prtica, em
conformidade a filosofia eminentemente prtica da Linguagem SQL.

O exemplo apresentado nesta apostila j est disponvel para sua utilizao do diretrio \IDEO\SQL, bastando
para isso voc copiar este exemplo para seu diretrio e iniciar os testes de forma simultnea a
sua apresentao pelo professor.

28
29
conveniente que voc procure montar o exerccio clssico (mundo), de forma a testar todos os conhecimentos
adquiridos. Para tanto analise cuidadosamente o exerccio proposto a seguir, e construa as relaes, tabelas e
queries adequadas ao final de cada exemplo.

Exerccio: Elabore Banco de Dados Mundo que contenha as seguintes tabelas: Continente, Pas e Cidade. Observe
que uma cidade dever pertencer exclusivamente a um pas e que cada pas dever estar cadastrado no
continente onde se localizar sua rea mais importante. Assim no obstante grande parte do territrio russo fazer
parte sia, a Rssia ser considerada fazendo parte da Europa. Assim teramos basicamente uma relao do tipo:

Cidade --> Pas --> Continente

PARTE I - Comandos de Modificaes do Esquema e Criao de Banco de Dados

Comando Create
Este comando permite a criao de tabelas no banco de dados ou mesmo de sua criao.

Sintaxe:
CREATE DATABASE < nome_db >;

onde:
nome_db - indica o nome do Banco de Dados a ser criado.

Sintaxe:
CREATE TABLE < nome_tabela >
( nome_atributo1 < tipo > [ NOT NULL ],
nome_atributo2 < tipo > [ NOT NULL ],
......
nome_atributoN < tipo > [ NOT NULL ] ) ;

onde:
nome_table - indica o nome da tabela a ser criada.
nome_atributo - indica o nome do campo a ser criado na tabela.
tipo - indica a definio do tipo de atributo ( integer(n), char(n),
real(n,m), date... ).
n- nmero de dgitos ou de caracteres
m- nmero de casas decimais

Agora vamos criar uma tabela. Use o editor para salvar em um arquivo ou digite na linha de comando do ISQL.

CREATE DATABASE TRABALHO;

O comando acima criou um Banco de Dados, porm este na verdade no passa de uma abertura no diretrio, pois
no conta com nenhuma tabela.

Agora criaremos as tabelas que estaro contidas no Banco de Dados TRABALHO.

A primeira Tabela ser a de Departamentos (DEPT). Esta tabela conter alm dos campos tambm sua chave
primria, suas chaves estrangeiras e tambm seus ndices. A segunda tabela ser a de Empregados (EMP), que
tambm ser criada.

No devemos esquecer de primeiramente abrirmos o Banco de Dados. Diferentemente do que ocorre em alguns
aplicativos, em SQL o fato de criarmos um Banco de Dados, no significa que o banco recm criado j est
preparado para utilizao. A instruo a seguir, providencia a abertura do Banco de Dados criado.

OPEN DATABASE TRABALHO;

Agora estamos prontos para criarmos as tabelas necessrias. Lembramos aos Estudantes, que o Arquivo
TABS.SQL, contm todas as instrues necessrias para criao do Banco de Dados Trabalho e de suas tabelas. J
o Arquivo DADOS.SQL ir popular estas tabelas. Para efeitos didticos, criamos as tabelas de forma que sua
populao, em outras palavras os dados, sejam facilmente referenciveis pelos estudantes. Assim sendo, na tabela
de departamentos, contamos com 5 departamentos, cada um deles tendo seu gerente. Todos os gerentes tem
nomes de cantoras brasileiras (Gal Costa, Marina Lima, etc), todos os operrios tem nomes de jogadores de
futebol, todas as vendedoras tem nomes de jogadoras de volei, todas as balconistas tem nome de jogadoras de
basquete e o presidente da empresa exemplo, tem o mesmo nome do presidente do Brasil. Desta forma os testes
devem resultar em grupos bastante definidos. Assim se voc estiver listando Gerentes e aparecer um homnimo
da Ana Paula (jogadora de volei), verifique sua query atentamente, pois muito provavelmente a mesma estar
errada.

29
30
A seguir cdigo necessrio a criao da tabela Departamento e seu ndice:

create table Dept


(DepNume integer(4) not null,
DepNome char(20) not null,
DepLoca char(20) not null,
DepOrca integer(12,2),
primary key (DepNume)
);

create unique index DepNum on Dept (DepNume asc);

Note-se que a chave primria j est definida juntamente com o registro da tabela. A criao do ndice, que por
razes bvias deve ser criado aps a tabela, naturalmente um comando totalmente independente do primeiro
create, que serviu para criar a tabela e suas caracterstica bsicas.

Vamos analisar o cdigo necessrio para a criao da tabela de empregados, apresentado a seguir:

create table Emp


(EmpNume integer(5) not null,
EmpNome char(30) not null,
EmpGere integer(5) ,
EmpServ char(20) ,
DepNume integer(4) not null,
EmpAdmi date not null,
EmpSala integer(10,2),
EmpComi integer(10,2),
primary key (EmpNume),
foreign key has (DepNume)
references Dept
on delete restrict
on update cascade
);

create unique index EmpNum on Emp (EmpNume asc);


create index EmpDep on Emp (DepNume asc);

A Tabela de Empregados no poderia ter sido criada antes da Tabela de Departamento, pois contm uma
referncia direta quela tabela. Quando declaramos que DepNume chave estrangeira, promovemos de fato a
ligao do cadastro de empregados como o cadastro de departamentos. Ao restringirmos as excluses, permitimos
a existncia de funcionrios no alocados a nenhum departamento. Apesar desta prtica ser contrria a tese de
que devemos possuir apenas tuplas perfeitamente relacionveis em nossas tabelas, podemos deixar esta pequena
abertura, pois um usurio que excluisse inadivertidamente determinado departamento, acabaria por excluir
tambm uma grande quantidade de funcionrios, que estivessem ligados a este departamento.

J a atualizao em cascata dos cdigos de departamento uma boa providncia, na medida em que teremos,
uma vez alterado algum cdigo de departamento, a atualizao imediata de todos os funcionrios pertencentes ao
departamento cujo cdigo foi modificado.

Observaes:
1- Observar que os ndices so parte intrnseca das tabelas.
2- A integridade relacional garantida pelo Banco de Dados e no pelo aplicativo.
3- Excluses ou Alteraes em Chaves Primrias, podem acarretar excluses, anulaes ou at mesmo perda de
integridade nas tabelas onde esta chave primria existir como chave estrangeira. Portanto imprescindvel
muito cuidado quando da elaborao do Banco de Dados. Uma tentao muito comum ao estudante comear
criando as tabelas do Banco de Dados sem prvia Normalizao. Este talvez seja o melhor caminho para perder-
se tempo em vo, pois quando voc terminar de projetar suas telas de entrada de dados, notar "que nada
funciona!". Esta ser a senha para usar o velho comando DEL do DOS e depois comear tudo de novo ...

Comando Drop

Este comando elimina a definio da tabela, seus dados e referncias.

Sintaxe:
DROP TABLE < nome_tabela > ;

Ex:
DROP TABLE EMP;

30
31
Comando Alter

Este comando permite inserir/eliminar atributos nas tabelas j existentes.

Comando:
ALTER TABLE < nome_tabela > ADD / DROP (
nome_atributo1 < tipo > [ NOT NULL ],
nome_atributoN < tipo > [ NOT NULL ] ) ;

No existe nenhum comando SQL que permita eliminar algum atributo de uma relao j definida. Assim caso
voc desejar eliminar uma chave primria devidamente referenciada em outra tabela como chave estrangeira, ao
invs de obter a eliminao do campo, obter apenas um erro.

Alm do comando DROP que poder eliminar uma tabela e suas relaes, tambm podemos criar uma relao que
tenha os atributos que se deseja, copiar-se a relao antiga sobre a nova e apgando-se ento a relao que
originalmente desejvamos eliminar.

Ex:
ALTER TABLE DEPT (
ADD DEPSALA DECIMAL (10,2) );

Exerccio: Criar o Banco de Dados Mundo. Observar que se um continente for excludo, todos os pases contidos
em tal continente tambm o sero. Esta situao conhecida como excluso em Cascata. Observar tambm que a
excluso de um Pas eliminar todas as Cidades contidas no mesmo.

Prtica

O Exemplo Trabalho j possue pequeno programa destinado a construo das tabelas contidas no Banco de Dados
TRABALHO. Execute "trabalho.sql" de forma a obter as tabelas acima sem necessidade de digitar as instrues
SQL de maneira interativa.

Para tanto, voc dever copiar para seu diretrio de trabalho o arquivo "trabalho.sql" do diretrio \IDEO\SQL.

Execute: "@trabalho;" que dever:

- Criar o banco de dados Trabalho.


- Abrir o banco de dados Trabalho.
- Criar as Tabelas, Indices e Relaes contidas neste Banco de Dados.

Posteriormente execute o comando "show tables", que dever exibir as tabelas "dept" e "emp".
E ao executar "show fields dept" sero exibidos os campos da tabela "dept".

Copie e execute enchetra.sql do diretrio \IDEO\SQL de forma a obter um conjunto de dados preparados para os
testes a seguir apresentados.

Na prxima etapa de nosso curso, estaremos realizando pesquisas utilizando a instruo Select. Julgamos
conveniente que os estudantes populem seu exerccio e realizem exerccios anlogos aos apresentados na Base de
Dados Trabalho no Banco de Dados Mundo.

Parte II - Comandos de Consulta ao Esquema

Devemos ressaltar que a linguagem SQL utilizada tanto pelos profissionais responsveis pelos dados, onde
ressaltada a figura do Administrador do Banco de Dados e dos Analistas de Dados, como tambm pelos
desenvolvedores de Aplicaes. Enquanto queles esto preocupados com o desempenho, integridade do Banco de
Dados e utilizam toda gama de recusos disponveis no SQL, estes esto preocupados apenas em "transformar
dados em informaes", portanto para os desenvolvedores costuma-se dizer que conhecer o "select" j basta. Em
nosso curso enfatizaremos a importncia de TODOS os comandos do SQL, mas sabemos de antemo que os
professores responsveis pelas linguagens IDEO, VB e Delphi, ressaltaro a preponderncia da instruo "select",
que ser apresentada a seguir e no no final do curso de SQL como geralmente acontece, pelo fato de que
diversas disciplinas necessitam especificamente deste comando, que passaremos a apresentar:

1) Seleo de todas os campos (ou colunas) da tabela de Departamentos.

Resp:
SELECT * FROM DEPT;

31
32
O exemplo utiliza o coringa "*" para selecionar as colunas na ordem em que foram criadas. A instruo Select,
como pudemos observar seleciona um grupo de registros de uma (ou mais) tabela(s). No caso a instruo From
nos indica a necessidade de pesquisarmos tais dados apenas na tabela Dept.

Where como base das Restrio de tuplas.

A clusula "where" corresponde ao operador restrio da lgebra relacional. Contm a condio que as tuplas
devem obedecer a fim de serem listadas. Ela pode comparar valores em colunas, literais, expresses aritmticas
ou funes.

A seguir apresentamos operadores lgicos e complementares a serem utilizados nas expresses apresentadas em
where.

Operadores lgicos

operador significado
= igual a
> maior que
>= maior que ou igual a
< menor que
<= menor que ou igual a

Exemplos:
SELECT EMPNOME, EMPSERV
FROM EMP
WHERE DEPNUME > 10;

SELECT EMPNOME, EMPSERV


FROM EMP
WHERE EMPSERV = 'GERENTE';

O conjunto de caracteres ou datas devem estar entre apstrofes () na clusula "where".

2) Selecione todos os departamentos cujo oramento mensal seja maior que 100000. Apresente o
Nome de tal departamento e seu oramento anual, que ser obtido multiplicando-se o oramento
mensal por 12.

Resp: Neste problema precisamos de uma expresso que a combinao de um ou mais valores, operadores ou
funes que resultaro em um valor. Esta expresso poder conter nomes de colunas, valores numricos,
constantes e operadores aritmticos.

SELECT DEPNOME, DEPORCA * 12


FROM DEPT
WHERE DEPORCA > 100000;

3) Apresente a instruo anterior porm ao invs dos "feios" DepNome e DepOrca, os Ttulos
Departamento e Oramento.

Resp: Neste exemplo deveremos denominar colunas por apelidos. Os nomes das colunas mostradas por uma
consulta, so geralmente os nomes existentes no Dicionrio de Dado, porm geralmente esto armazenados na
forma do mais puro "informatiqus", onde "todo mundo" sabe que CliCodi significa Cdigo do Cliente. possvel
(e provvel) que o usurio desconhea estes smbolos, portanto devemos os apresentar dando apelidos s colunas
"contaminadas" pelo informatiqus, que apesar de fundamental para os analistas, somente so vistos como
enigmas para os usurios.

SELECT DEPNOME "DEPARTAMENTO", DEPORCA * 12 "ORCAMENTO ANUAL"


FROM DEPT
WHERE DEPORCA > 100000;

4) Apresente todos os salrios existentes na empresa, porm omita eventuais duplicidades.

Resp: A clusula Distinct elimina duplicidades, significando que somente relaes distintas sero apresentadas
como resultado de uma pesquisa.

SELECT DISTINCT EMPSERV


FROM EMP;

5) Apresente todos os dados dos empregados, considerando sua existncia fsica diferente de sua
existncia lgica (ou seja devidamente inicializado).

32
33
Resp: Desejamos um tratamento diferenciado para valores nulos. Qualquer coluna de uma tupla que no contenha
informaes denominada de nula, portanto informao no existente. Isto no o mesmo que "zero", pois zero
um nmero como outro qualquer, enquanto que um valor nulo utiliza um "byte" de armazenagem interna e so
tratados de forma diferenciada pelo SQL.

SELECT EMPNOME, EMPSALA + EMPCOMI


FROM EMP;

SELECT EMPNOME, NVL(EMPSALA,0) + NVL(EMPCOMI,0)


FROM EMP;

Obs: a funo "NVL" utilizada para converter valores nulos em zeros.

6) Apresente os nomes e funes da cada funcionrio contidos na tabela empresa, porm classificados
alfabeticamente (A..Z) e depois alfabeticamente invertido (Z..A).

Resp: A clusula Order By modificar a ordem de apresentao do resultado da pesquisa (ascendente ou


descendente).

SELECT EMPNOME, EMPSERV


FROM EMP
ORDER BY EMPNOME;

SELECT EMPNOME, EMPSERV


FROM EMP
ORDER BY EMPPNOME DESC;

Nota: Tambm possvel fazer com que o resultado da pesquisa venha classificado por vrias colunas. Sem a
clasula "order by" as linhas sero exibidas na sequncia que o SGBD determinar.

7) Selecione os Nomes dos Departamentos que estejam na fbrica.

Resp:
SELECT DEPNOME
FROM DEPT
WHERE DEPLOCA = "SAO PAULO";

O exemplo exigiu uma restrio (So Paulo) que nos obrigou a utilizar da instruo Where. Alguns analistas
costumam afirmar em tom jocoso que SQL no passa de

"Selecione algo De algum lugar Onde se verificam tais relaes"

Acreditamos que esta brincadeira pode ser til ao estudante, na medida em que facilita sua compreenso dos
objetivos elementares do SQL.

Demais Operadores

Operador Significado
between ... and ... entre dois valores ( inclusive )
in ( .... ) lista de valores
like com um padrao de caracteres
is null um valor nulo

Exemplos:
SELECT EMPNOME, EMPSALA
FROM EMP
WHERE EMPSALA BETWEEN 500 AND 1000;

SELECT EMPNOME, DEPNUME


FROM EMP
WHERE DEPNUME IN (10,30);

SELECT EMPNOME, EMPSERV


FROM EMP
WHERE EMPNOME LIKE 'F%';

SELECT EMPNOME, EMPSERV


FROM EMP
WHERE EMPCOMI IS NULL;

33
34
O smbolo "%" pode ser usado para construir a pesquisa ("%" = qualquer sequncia de nenhum at vrios
caracteres).

Operadores Negativos

operador descrio
<> diferente
not nome_coluna = diferente da coluna
not nome_coluna > no maior que
not between no entre dois valores informados
not in no existente numa dada lista de valores
not like diferente do padrao de caracteres informado
is not null no um valor nulo

8) Selecione os Empregados cujos salrios sejam menores que 1000 ou maiores que 3500.

Resp: Necessitaremos aqui a utilizao de expresso negativas. A seguir apresentamos operadores negativos.

SELECT EMPNOME, EMPSALA


FROM EMP
WHERE EMPSALA NOT BETWEEN 1000 AND 3500;

9) Apresente todos os funcionrios com salrios entre 200 e 700 e que sejam Vendedores.

Resp: Necessitaremos de consultas com condies mltiplas.

Operadores "AND" (E) e "OR" (OU).

SELECT EMPNOME, EMPSALA, EMPSERV


FROM EMP
WHERE EMPSALA BETWEEN 700 AND 2000
AND EMPSERV = 'VENDEDOR';

10) Apresente todos os funcionrios com salrios entre 200 e 700 ou que sejam Vendedores.

Resp:
SELECT EMPNOME, EMPSALA, EMPSERV
FROM EMP
WHERE EMPSALA BETWEEN 700 AND 2000
OR EMPSERV = 'VENDEDOR';
11) Apresente todos os funcionrios com salrios entre 200 e 700 e que sejam Vendedores ou
Balconistas.

Resp:
SELECT EMPNOME, EMPSALA, EMPSERV
FROM EMP
WHERE EMPSALA BETWEEN 700 AND 2000
AND ( EMPSERV = 'BALCONISTA' OR EMPSERV = 'VENDEDOR' );

Funes de Caracteres

Lower - fora caracteres maisculos aparecerem em minsculos.


Upper - fora caracteres minsculos aparecerem em maisculos.
Concat(x,y)- concatena a string "x" com a string "y".
Substring(x,y,str)- extrai um substring da string "str", comeando em "x", e termina em "y".
To_Char(num)- converte um valor numrico para uma string de caracteres.
To_Date(char,fmt)- converte uma string caracter em uma data.
^Q - converte data para o formato apresentado.

12) Apresente o nome de todos os empregados em letras minsculas.

Resp:
SELECT LOWER( EMPNOME )
FROM EMP;

13) Apresente o nome de todos os empregados (somente as 10 primeiras letras).

34
35
Resp:
SELECT SUBSTRING (1,10,EMPNOME)
FROM EMP;

14) Apresente o nome de todos os empregados admitidos em 01/01/80.

Resp:
SELECT *
FROM EMP
WHERE EMPADMI = ^Q"DD-AAA-YYYY"("01-JAN-1980");
ou

SELECT *
FROM EMP
WHERE EMPADMI = ^Q("01-JAN-1980");

Funes Agregadas (ou de Agrupamento)

funo retorno
avg(n) mdia do valor n, ignorando nulos
count(expr) vezes que o nmero da expr avalia para algo nao nulo
max(expr) maior valor da expr
min(expr) menor valor da expr
sum(n) soma dos valores de n, ignorando nulos

15) Apresente a Mdia, o Maior, o Menor e tambm a Somatria dos Salrios pagos aos empregados.

Resp:
SELECT AVG(EMPSALA) FROM EMP;

SELECT MIN(EMPSALA) FROM EMP;

SELECT MAX(EMPSALA) FROM EMP;

SELECT SUM(EMPSALA) FROM EMP;

Agrupamentos

As funes de grupo operam sobre grupos de tuplas(linhas). Retornam resultados baseados em grupos de tuplas
em vez de resultados de funes por tupla individual. A clasula "group by" do comando "select" utilizada para
dividir tuplas em grupos menores.

A clusula "GROUP BY" pode ser usada para dividir as tuplas de uma tabela em grupos menores. As funes de
grupo devolvem uma informao sumarizada para cada grupo.

16) Apresente a mdia de salrio pagos por departamento.

Resp:
SELECT DUPNUME, AVG(EMPSALA)
FROM EMP
GROUP BY DEPNUME;

Obs.: Qualquer coluna ou expresso na lista de seleo, que no for uma funo agregada, dever constar da
clasula "group by". Portanto errado tentar impor uma "restrio" do tipo agregada na clusula Where.

Having

A clusula "HAVING" pode ser utilizada para especificar quais grupos devero ser exibidos, portanto restringindo-
os.

17) Retome o problema anterior, porm apresente resposta apenas para departamentos com mais de
10 empregados.

Resp:
SELECT DEPNUME, AVG(EMPSALA)

35
36
FROM EMP
GROUP BY DEPNUME
HAVING COUNT(*) > 3;

Obs.: A clasula "group by" deve ser colocada antes da "having", pois os grupos so formados e as funes de
grupos so calculadas antes de se resolver a clusula "having".

A clusula "where" no pode ser utilizada para restringir grupos que devero ser exibidos.

Exemplificando ERRO tpico - Restringindo Mdia Maior que 1000:

SELECT DEPNUME, AVG(EMPSALA)


FROM EMP
WHERE AVG(SALARIO) > 1000
GROUP BY DEPNUME;
( Esta seleo est ERRADA! )

SELECT DEPNUME, AVG(EMPSALA)


FROM EMP
GROUP BY DEPNUME
HAVING AVG(EMPSALA) > 1000;
( Seleo Adequada )

Seqncia no comando "Select":

SELECT coluna(s)
FROM tabela(s)
WHERE condio(es) da(s) tupla(s)
GROUP BY condio(es) do(s) grupo(s) de tupla(s)
HAVING condio(es) do(s) grupo(s) de tupla(s)
ORDER BY coluna(s);

A "sql" far a seguinte avaliao:

a) WHERE, para estabelecer tuplas individuais candidatas (no pode conter funes de grupo)
b) GROUP BY, para fixar grupos.
c) HAVING, para selecionar grupos para exibiao.

Equi-Juno ( Juno por igualdade )

O relacionamento existente entre tabelas chamado de equi-juno, pois os valores de colunas das duas tabelas
so iguais. A Equi-juno possvel apenas quando tivermos definido de forma adequada a chave estrangeira de
uma tabela e sua referncia a chave primria da tabela precedente. Apesar de admitir-se em alguns casos, a equi-
juno de tabelas, sem a correspondncia Chave Primria-Chave Estrangeira, recomendamos fortemente ao
estudante no utilizar este tipo de construo, pois certamente em nenhum momento nos exemplos propostos em
nossa disciplina ou nas disciplinas de Anlise e Projeto de Sistemas, sero necessrias tais junes.
18) Listar Nomes de Empregados, Cargos e Nome do Departamento onde o empregado trabalha.

Resp: Observemos que dois dos trs dados solicitados esto na Tabela Emp, enquanto o outro dado est na Tabela
Dept. Deveremos ento acessar os dados restringindo convenientemente as relaes existentes entre as tabelas.
De fato sabemos que DEPNUME chave primria da tabela de Departamentos e tambm chave estrangeira da
Tabela de Empregados. Portanto, este campo ser o responsvel pela equi-juno.

SELECT A.EMPNOME, A.EMPSERV, B.DEPNOME


FROM EMP A, DEPT B
WHERE A.DEPNUME = B.DEPNUME;

Obs.: Note que as tabelas quando contm colunas com o mesmo nome, usa-se um apelido "alias" para substituir o
nome da tabela associado a coluna. Imagine que algum tivesse definido NOME para ser o Nome do Empregado na
Tabela de Empregados e tambm NOME para ser o Nome do Departamento na Tabela de
Departamentos. Tudo funcionaria de forma adequada, pois o alis se encarregaria de evitar que uma ambiqidade
fosse verificada. Embora SQL resolva de forma muito elegante o problema da nomenclatura idntica para campos
de tabelas, recomendamos que o estudante fortemente evite tal forma de nomear os campos. O SQL nunca
confundir um A.NOME com um B.NOME, porm podemos afirmar o mesmo de ns mesmos?

19) Liste os Cdigos do Cada Funcionrio, seus Nomes, seus Cargos e o nome do Gerente ao qual este
se relaciona.

36
37
Resp: Precisamos criar um auto-relacionamento, ou seja, juntar uma tabela a ela prpria. possvel juntarmos
uma tabela a ela mesma com a utilizao de apelidos, permitindo juntar tuplas da tabela a outra tuplas da mesma
tabela.

SELECT A.EMPNUME, A.EMPNOME, A.EMPSERV, B.EMPNOME


FROM EMP A, EMP B
WHERE A.EMPGERE = B.EMPNUME;

As Sub-Consultas

Uma sub-consulta um comando "select" que aninhado dentro de outro "select" e que devolve resultados
intermedirios.

20) Relacione todos os nomes de funcionrios e seus respectivos cargos, desde que o oramento do
departamento seja igual a 300000.

Resp:

SELECT EMPNOME, EMPSERV


FROM EMP A
WHERE 300000 IN ( SELECT DEPORCA
FROM DEPT
WHERE DEPT.DEPNUME = A.DEPNUME );

Nota: Observe que a clusula IN torna-se verdadeira quando o atributo indicado est presente no conjunto obtido
atravs da subconsulta.

21) Relacione todos os departamentos que possuem empregados com remunerao maior que 3500.

Resp:

SELECT DEPNOME
FROM DEPT A
WHERE EXISTS (SELECT *
FROM EMP
WHERE EMPSALA > 3500 AND EMP.DEPNUME = A.DEPNUME');

Nota: Observe que a clusula EXISTS indica se o resultado de uma pesquisa contm ou no tuplas. Observe
tambm que poderemos verficar a no existncia (NOT EXISTS) caso esta alternativa seja mais conveniente.

Unies

Podemos eventualmente unir duas linhas de consultas simplesmente utilizando a palavra reservada UNION.

22) Liste todos os empregados que tenham cdigos > 10 ou Funcionrios que trabalhem em
departamentos com cdigo maior que 10.

Resp: Poderamos resolver esta pesquisa com um nico Select, porm devido ao fato de estarmos trabalhando em
nosso exemplo com apenas duas tabelas no consiguimos criar um exemplo muito adequado para utilizao deste
recurso.

(Select *
From Emp
Where EmpNume > 10)
Union
(Select *
From Emp
Where DepNume > 10);

Inseres, Alteraes e Excluses

Uma linguagem direcionada a extrao de informaes de um conjunto de dados, em tese no deveria incorporar
comandos de manipulao dos dados. Devemos observar contudo que a mera existncia de uma linguagem
padronizada para acesso aos dados "convidava" os desenvolvedores a aderirem a uma linguagem "padro" de
manipulao de tabelas. Naturalmente cada desenvolvedor coloca "um algo mais" em seu SQL (SQL PLUS, SQL *,
ISQL, e toda sorte de nomenclaturas), por um lado desvirtuando os objetivos da linguagem (padronizao
absoluta), mas em contrapartida otimiza os acessos ao seu banco de dados e por maior que sejam estas

37
38
mudanas, jamais so to importantes que impeam que um programador versado em SQL tenha grandes
dificuldades em se adaptar ao padro de determinada implementao. De fato as diferenas entre o SQL da
Sybase, Oracle, Microsoft, so muito menores dos que as existentes entre o C, o BASIC e o Pascal, que so
chamadas de linguagens "irms", pois todas originam-se conceitualmente no FORTRAN. Podemos observar que
todas as trs linguagens mencionadas possuem estruturas de controle tipo "para" (for), "enquanto" (while) e
repita (do..while, repeat..until). Todas trabalham com blocos de instruo, todas tem regras semelhantes para
declarao de variveis e todas usam comandos de tomada deciso baseadas em instrues do tipo "se" ou
"caso", porm apesar de tantas semelhanas (sic), praticamente impossvel que um programador excelente em
uma linguagem consiga rapidamente ser excelente em outra linguagem do grupo. Poderamos arriscar a dizer que
um excelente programador C que utilize a implementao da Symantech ter que passar por um breve perodo
de adaptao para adaptar-se ao C da Microsoft.

O que ocorreria ento se este programador tiver que adaptar-se ao Delphi (Pascal) da Borland?

De forma alguma o mesmo ocorrer com o especialista em SQL ao ter que migrar do Banco de Dados X para o
Banco de Dados Y. Naturalmente existir a necessidade de aprendizado, mas este programador poder ir
adaptando-se aos poucos sem precisar ser retreinado, o que um aspecto extremamente vantajoso para as
empresas.

Inserir (Insert)

INSERT INTO <tabela> [<campos>] [VALUES <valores>]

Ex:
INSERT INTO DEPT;
Possibilita a insero de registros de forma interativa.
INSERT INTO DEPT (DEPNUME,DEPNOME,DEPLOCA) VALUES (70,"PRODUCAO","RIO DE JANEIRO");
Possibilita a insero de registros em tabelas sem digitao dos dados.

Atualizar (Update)

UPDATE <tabela> SET <campo> = <expresso> [WHERE <condio>];

Ex:
UPDATE EMP SET EMPSALA = EMPSALA* 1.2 WHERE EMPSALA< 1000;
Excluir (Delete)

DELETE FROM <tabela> [WHERE <condio>];

Ex:
DELETE FROM emp WHERE EMPSALA > 5000;

Transaes

Muitas vezes gostaramos que determinado processo, caso fosse abortado por qualquer motivo, pudesse ser
inteiramente cancelado. Imaginemos por exemplo um usurio digitando um pedido. Imaginemos ainda que o
sistema possa reservar cada item solicitado de maneira "on line", ou seja ao mesmo tempo em que estou
digitando a quantidade o sistema j "empenhe" uma quantidade equivalente no estoque. Imaginemos ainda que o
sistema deve cancelar todas as operaes se apenas um dos itens no puder ser atendido. Grande problema, caso
no pudssemos anular todos os processos a partir de determinada condio.

Vamos simular tal ocorrncia com nosso banco de dados EMP. Imaginemos que ao invs de digitarmos DELETE
FROM emp WHERE salario > 5000; tivssemos digitado DELETE FROM emp WHERE salario > 500; Ao invs de
eliminarmos 2 registros, praticamente teramos eliminado o banco de dados todo. Para evitarmos que um erro de
digitao, ou um processo iniciado porm sem condio de ser completado integralmente comprometa todos
nossos dados podemos criar uma transao que nos assegurar que nossos testes sejam bem sucedidos ou
cancelados sem comprometer nossos dados.

begin transaction;
delete from emp where salario > 500;
if SQL_RECORDCOUNT > 20 THEN;
ROLLBACK TRASACTION;
else
COMMIT;
endif;
end transaction;

Vises

38
39
Uma viso consiste basicamente de uma tabela derivada de outras tabelas. Considerando o exemplo TRABALHO,
poderamos criar uma viso baseada na Tabela de Empregados (EMP) e na Tabela de Departamentos (DEPT) onde
tivssemos somente os Nomes dos Funcionrios e os Departamenos nos quais estes trabalhassem. Teramos algo
assemelhado ao abaixo representado

CREATE VIEW EMP_DEP


AS SELECT E.EMPNOME, D.DEPNOME
FROM EMP E, DEPT D
WHERE E.DEPNUME = D.DEPNUME;

Devemos observar que:

1- Uma viso definida sobre uma nica tabela somente ser atualizvel se os atributos da tal viso contiverem a
chave primria de tal tabela.
2- Vises sobre vrias tabelas no so passveis de atualizaes.
3- Vises que se utilizam de funes de agrupamentos, tambm no podero ser atualizadas.

PARTE III - Relatrios

Comando:

REPORT DISTINCT / UNIQUE


[ atributo(s) ]
REPORTTOP
PAGETOP
TOP
DETAIL
NONE
BOTTOM
PAGEBOTTOM
REPORTBOTTOM
FROM [ tabela(s) ]
[ WHERE clausula-where ]
[ GROUP BY clausula-grupo ]
[ ORDER BY clausula-order by ];

Como exemplo converteremos um simples Select em um Report, temos:

SELECT EMPNOME
FROM EMP
WHERE DEPNUME = 1000;

REPORT
DETAIL EMPNOME
WHERE DEPNUME = 1000;

Podemos direcionar a saida de um relatrio tanto para um arquivo como para uma impressora.

Para um arquivo:

REPORT ON RELAT.DAT ...

Para uma impressora:

REPORT ON LP: ...

Agora incrementando um report temos:

REPORT
REPORTTOP COL 10, *** RELATORIO DE FUNCIONARIOS *** ,
TODAY %QDD/MM/YY, SKIP,
COL 10, =================================, SKIP 2

DETAIL COL 10, NOME %C22, SALARIO %FS, ADMISSAO %QDD/MM/YY


REPORTBOTTOM COL 10,
=================================, SKIP,
COL 20, TOTAL:, TOTAL(SALARIO)
FROM EMP

39
40
ORDER BY NOME;

Onde:

REPORTTOP - O que sera impresso no topo do relatrio.


PAGETOP - Impresso em cada topo de pagina.
TOP - Impresso em cada Topo do Sort-Grupo do relatrio.
DETAIL - O que sera impresso em cada linha.
NONE - Se no tiver resultado o select, no sera impresso o relatrio.
BOTTOM - Impresso em cada Bottom do Sort-Grupo do relatrio
PAGEBOTTOM - O que sera impresso no rodap de cada pagina.
REPORTBOTTOM - O que sera impresso no rodape do relatrio.

Formatos:

%C - caracter
%D - data
y - ano,
n - mes numrico,
a - mes alfanumrico,
d - dia,
j - dia e ano juliano
Exemplo: %Ddd/mm/yy

%I - inteiro
%F - ponto flutuante

%FSZ onde: S - separador de 3 digitos e decimal point


Z - zeros sero suprimidos

%Q - data
%J - Hora
h - hora, m - minutos, s - segundos

%T - hora

E temos as funes: TOTAL, AVERAGE, MAXIMUM, MINIMUM.

ACCESS 2000

Conceitos Microsoft Access

O que o Access?
O Access um Sistema de Gerncia de Banco de Dados Relacional Interativo (SGBD) para o Microsoft Windows.
Sua utilizao muito simples, no sendo necessrio programar para criar um banco de dados.
O que um SGBD?
O Sistema de Gerenciamento de Banco de Dados um sistema capaz de armazenar e recuperar informaes em
banco de dados.
O que um Banco de Dados?
Um Banco de Dados um recurso para a manipulao eficiente de um grande conjunto de informaes
estruturadas e armazenadas de forma organizada e integrada.
O que um Objeto?
Um objeto uma unidade que pode ser selecionada e manipulada. No Access existem alguns objetos que podem
ser criados e utilizados, tais como: tabelas, formulrios, relatrios, macros e mdulos. Outros recursos que
tambm so considerados objetos so: figuras, grficos, caixa de dilogos, etc.

Caixa de dilogo apresentada na inicializao do Access

40
41

Ao inicializar o Access ser apresentada esta caixa de dilogo, voc dever escolher
uma das opes a seguir:
Banco de Dados Vazio Criar um banco de dados vazio. Ao exibir a caixa de dilogo
Novo Arquivo de Banco de Dados, na caixa de texto Salvar em voc dever
procurar o caminho, em Nome do Arquivo preencher o nome do novo banco de dados
e em Salvar como tipo escolher Banco de Dados Microsoft Access e clique no boto
CRIAR.
Assistente de Banco de Dados - Criar um banco de dados utilizando o assistente de
banco de dados. Ao exibir a caixa de dilogo Novo, voc ter as guias:
Geral - apresentar um cone de Banco de Dados Vazio (idem a primeira opo).
Banco de Dados - apresentar vrios cones de banco de dados pr-definidos, voc
dever clicar duas vezes no banco que mais lhe convm, ir exibir a caixa de dilogo
Novo Arquivo de Banco de Dados (seguir os passos da caixa de dilogo Novo
Arquivo de Banco de Dados que esto descritos na primeira opo). Aps ter clicado
no boto CRIAR automaticamente ser aberto o assistente de Banco de Dados, com
as tabelas pr-definidas para este banco.
Abrir Banco de Dados Existente - Abrir um banco de dados j criado. Ao escolher
esta opo voc poder selecionar Mais Arquivos..., ir exibir a caixa de dilogo
Abrir, na caixa de texto Examinar voc dever procurar o caminho, em Nome do
Arquivo preencher o nome do arquivo de banco de dados e em Arquivos do tipo
escolher Banco de Dados Microsoft Access, ou voc poder selecionar um dos ltimos
arquivos de banco de dados acessados.

Iniciando um Banco de Dados

41
42

Esta a tela inicial do Access, a partir dela voc poder criar, abrir, converter,
compactar ou reparar um banco de dados. Poder atribuir segurana ao definir contas
de usurios e grupos e/ou criptografar um Banco de Dados (codificar um banco de
dados que s poder ser lido pelo Access).
A janela inicial constituda por:
1. Barra de Ttulo: Ttulo de apresentao do Microsoft Access.
2. Barra de Menu: Menu que contm funes desempenhadas pelo Access.
3. Barra de Ferramentas: Botes com as funes mais utilizadas no Access.
Para criar um novo banco de dados:
A partir do menu Arquivo, escolha a opo Novo Banco de Dados ou clique sobre o
cone Novo banco de Dados na barra de ferramentas. O Access exibir a caixa de
dilogo Novo, voc ter duas guias:
A guia Geral apresentar um cone de Banco de Dados Vazio, ao clicar duas vezes
com o mouse ir exibir a caixa de dilogo Novo Arquivo de Banco de Dados, na caixa
de texto Salvar em voc dever procurar o caminho, em Nome do Arquivo
preencher o nome do novo banco de dados e em Salvar como tipo escolher Banco de
Dados Microsoft Access e clique no boto "CRIAR".
A guia Banco de Dados apresentar vrios cones de banco de dados pr-definidos,
voc dever clicar duas vezes no banco que mais lhe convm, ir exibir a caixa de
dilogo Novo Arquivo de Banco de Dados (seguir os passos da caixa de dilogo Novo
Arquivo de Banco de Dados que esto descritos na primeira guia), aps ter clicado no
boto CRIAR automaticamente ser aberto o assistente de Banco de Dados, com as
tabelas pr-definidas para este banco.

42
43
Janela Banco de Dados

A janela principal de banco de dados aparece assim que criado um novo banco de dados ou carregado para a
memria um banco de dados j existente, nesta janela voc ir trabalhar com os objetos do seu banco de dados.
Esta janela constituda:
1. Nome do Banco de Dados.
2. Boto Novo: Para criar um novo objeto.
3. Boto Abrir: Para executar um objeto j existente.
4. Boto Estrutura: Para entrar na estrutura do objeto.
5. Guias de Objetos: Tabelas, Consultas, Formulrios, Relatrios, Macros e Mdulos (Uma srie de procedimentos
programados na linguagem VBA - Visual Basic para Aplicativos).
6. Lista dos objetos existentes no seu banco de dados.
Para trabalhar com os objetos nesta janela preciso:
Clicar sobre a guia do objeto desejado.
Clicar sobre o boto Novo ou selecionar o objeto e clicar sobre o boto Abrir ou Estrutura.

Criando uma Tabela

Uma tabela um objeto do Access que armazena dados em linhas (registros) e colunas (campos). Os dados normalmente
descrevem um assunto como, por exemplo, empregados ou vendas.
Para criar uma nova tabela, siga os passos abaixo:
Com a janela de banco de dados ativa, clique sobre o objeto Tabela.
Clique sobre o boto Novo.
O Access exibir a caixa de dilogo Nova Tabela, onde voc possui as alternativas:
Modo Folha de Dados - Voc ir cadastrar diretamente os dados e a estrutura ser criada baseada no contedo
dos dados cadastrados, como por exemplo, se voc cadastrar uma data (15/07/97), na estrutura o tipo do campo
ser data/hora.
Modo Estrutura - Voc primeiramente criar a estrutura de sua tabela, como nome, tipo de dados e
caractersticas de cada campo, para depois cadastrar os dados.
Assistente de Tabela - O assistente ajudar na criao de sua tabela, porm, limitado em tabelas pr-definidas.
Importao de Tabela - O assistente ajudar na importao de dados (veja em "Importar Dados").

43
44
Assistente de Vinculao de Tabela - O assistente criar tabelas no banco de dados atual que esto vinculadas a
um arquivo externo, voc poder utilizar o arquivo como se fosse uma tabela do seu banco de dados atual, porm,
no poder modificar a estrutura de uma tabela vinculada.

Estrutura da Tabela

O Access apresenta esta janela para voc definir a estrutura da tabela que ser criada.
Para criar uma tabela, voc precisa:
Criar os campos que a compem (nome campo).
Definir o tipo de dados dos campos (texto, memorando, nmero, data/hora, ...).
Definir as propriedades dos campos (tamanho, formato, regras, ...).
Definir que campos so indexados e o tipo de ndice.
Definir qual campo ou conjunto de campos ser chave primria da tabela.
A Janela de Estrutura da Tabela constituda por:
Nome do Campo: nesta coluna voc deve definir os campos para a tabela (os nomes podem ter at 64
caracteres, espaos, undescore, acento).
Tipo de Dados: onde voc define o tipo dos campos (nesta coluna, clique em cima da seta para baixo para
visualizar a lista dos tipos de campos disponveis).
Descrio: Digite uma descrio que informe sobre o contedo do campo (no obrigatrio).
Propriedades: aqui voc deve definir as propriedades (caractersticas) dos campos e da tabela. Todos os objetos
do Microsoft Access possuem propriedades, que so definidas para determinar a sua aparncia e o seu
funcionamento.
Para criar um campo na estrutura da Tabela:
Clique na primeira linha da coluna Nome do Campo. Depois de digitar o nome do campo aperte a tecla <TAB>
para mover o cursor para as prximas colunas.

Propriedades do Campo

Para cada campo que criado na tabela, o Access atribui um conjunto de propriedades de acordo com o tipo de
dados escolhido. Veja a seguir a descrio dessas propriedades:
Tamanho - Define o tamanho do campo na tabela (tipo texto, nmero e autonumerao).
Casa Decimal - Define o nmero de casas decimais dos campos numricos (tipo nmero e moeda).
Formato - Define o layout que o campo assume (todos os tipos, exceto o objeto OLE).
Mscara de Entrada - Define o padro para entrada de dados num campo (tipo texto, nmero, data/hora e
moeda).
Legenda - um ttulo para o campo (todos os tipos).
Valor Padro - Define o mesmo contedo para um campo (todos os tipos exceto autonumerao e objeto OLE).

44
45
Regra de Validao - uma condio de validade para a informao ser aceita (todos os tipos, exceto
autonumerao e objeto OLE).
Texto de Validao - A mensagem que o usurio recebe quando afeta a regra de validao (todos os tipos, exceto
autonumerao e objeto OLE).
Requerido - Define se um campo deve ou no ser preenchido (todos os tipos, exceto autonumerao).
Permitir Comprimento Zero - Indica se uma seqncia vazia vlida como informao para um campo (tipo
texto, memorando e hyperlink).
Indexado - Ajuda na pesquisa e classificao dos campos de maneira rpida e eficiente (todos os tipos, exceto
memorando, objeto OLE e hyperlink).
Novos Valores - Como novos valores devem ser gerados (tipo autonumerao): incremento ou aleatrio.

Definindo as Propriedades do Campo

Para definir qualquer propriedade de um campo:


Clique no seletor de linhas do campo desejado.
Clique na linha da propriedade que deseja alterar.
Na propriedade Tamanho do Campo procure usar sempre o menor tipo de dados, pois exige menos memria e
o processamento fica mais rpido. Um campo definido como tipo de dados igual a Nmero, pode ter os seguintes
tamanhos: Byte (ocupa 1 byte); Inteiro (ocupa 2 bytes); Inteiro Longo (ocupa 4 bytes); Simples (ocupa 4 bytes);
Duplo (ocupa 8 bytes); Cdigo de Replicao (ocupa 16 bytes).

Chave Primria

A Chave Primria permite a identificao nica de cada registro de uma tabela. Considerada como ndice principal para a tabela,
ela utilizada para associar dados entre as tabelas. Voc pode selecionar mais de um campo (at dez campos) para Chave
Primria, ou seja, a concatenao dos campos passa a ser uma Chave Primria. Os campos do tipo memorando, objeto OLE e
hyperlink no podero compor sua chave primria.
Para definir a chave primria:
Clique no seletor de linhas do campo que ser chave primria.
Para selecionar mais de um campo:
Clique no seletor do primeiro campo, aperte a tecla <CTRL> e clique nos outros campos que deseja marcar.
Clique sobre o cone Chave Primria na barra de ferramentas ou a partir do menu
Editar, escolha a opo Chave Primria.
Se ao gravar sua tabela, o Access no encontrar um campo como chave primria, ele pergunta se voc deseja ou
no que ela seja criada. Caso responda Sim, o Access criar na tabela um campo com o nome Cdigo, do tipo
AutoNumerao e o definir como chave primria da tabela, se a tabela j possuir um campo do tipo
AutoNumerao, o Access o designar como chave primria da tabela.

Modo Folha de Dados Incluir e Excluir registros

45
46

Atravs da folha de dados voc pode incluir e excluir registros em uma tabela.
Se a janela de Banco de Dados estiver ativa, selecione a Tabela desejada e clique o boto Abrir.
Se a Estrutura da Tabela estiver ativa, clique o cone Folha de Dados na barra de ferramentas.
Para incluir um registro na tabela:
Digite as informaes campo a campo, registro a registro, utilize o mouse ou a tecla <TAB> para mudar de
campo. Cada registro digitado automaticamente inserido na tabela ativa.
Para excluir um registro da tabela:
Clique com o mouse no seletor de linha do registro desejado e pressione a tecla <DEL> ou clique sobre o cone:

Criando uma Consulta

Tipos de Consulta:

Uma consulta um objeto onde voc pode fazer perguntas ao Access sobre determinados dados armazenados em
sua(s) tabela(s).
O Access permite que voc crie vrios tipos de consultas:
Consulta seleo - So as mais usadas. Voc pode selecionar os dados de uma ou mais tabela(s)/consulta(s)
para visualizao.
Consulta de tabela de referncia cruzada - apresenta seus dados na forma de uma planilha eletrnica. til para
melhor visualizao de grande quantidade de informaes.
Consulta criar tabela - atravs desta consulta voc poder criar uma nova tabela.
Consulta atualizao - utilizada para alteraes em um conjunto de dados que voc possa selecionar atravs de
condies.
Consulta acrscimo - utilize este tipo de consulta para copiar todos os registros ou um conjunto de registros
especificados, de uma tabela para outra atravs de condies.
Consulta excluso - esta consulta permite que voc exclua um conjunto de registros especificados atravs de
uma condio.
Para terminar a execuo de uma consulta, tecle CRTL+BREAK.

Criando uma nova consulta

46
47

Com a Janela de Banco de Dados ativa, siga os passos abaixo para criar uma consulta:
Clique sobre o objeto Consulta.
Clique sobre o boto Novo.
Access exibir a caixa de texto Nova Consulta, com as seguintes opes:
Modo Estrutura: cria uma nova consulta sem utilizar assistente.
Assistente de Consulta Simples: cria uma consulta de seleo a partir de campos que voc escolheu.
Assistente de Consulta de Tabela de Referncia Cruzada: exibe os dados no formato de uma planilha
eletrnica.
Assistente de Consulta Localizar Duplicatas: localiza registros com valores de campos duplicados na tabela.
Assistente de Consulta Localizar no Coincidentes: encontra os registros em uma tabela que no possuem
registros relacionados em outra.

Escolhendo as tabelas/consultas para compor a sua consulta

Ao escolher o modo estrutura ser apresentada a tela Mostrar Tabela onde voc deve selecionar uma tabela ou consulta para
compor sua nova consulta.
Para selecionar o objeto:
Clique sobre a consulta ou tabela desejada.
Clique sobre o boto Adicionar.
Para fechar a janela:
Clique sobre o boto Fechar.
Se a janela Mostrar Tabela no for apresentada ou se voc precisar apenas inserir uma nova tabela/consulta em

uma consulta j existente, na barra de ferramentas, clique sobre o cone:

Tela de Estrutura da Consulta

47
48

Ao escolher o modo estrutura e ter adicionado as tabelas desejadas para sua consulta voc poder especificar os campos
desejados e condies para executar a consulta.
Nesta tela de estrutura, mostrado o relacionamento existente entre as tabelas, se no existir esse
relacionamento, voc ter que cri-lo em sua consulta, ligando os campos que possuem o mesmo propsito.
Na grade de consulta, voc dever preencher as linhas da seguinte forma:
Campos: Preencher o nome dos campos que desejar para a Consulta.
Tabela: Tabela que o campo faz parte.
Classificao: Para classificar um campo voc dever escolher se o campo ser apresentado na ordem crescente
ou decrescente.
Mostrar: Assinalar somente o campo que ser apresentado na Consulta.
Critrio: Conjunto de informaes que definiro as caractersticas da sua Consulta.
Ou: Faz parte do critrio.

Como montar uma consulta, executar e gravar

Para incluir um campo em sua Consulta:


Selecione o campo a ser adicionado na Consulta.
Arraste-o at a linha Campo.
Para incluir TODOS os campos:
Clique no asterisco (*) existente no topo de cada lista de campos e depois arraste-o para a linha de campo.
Nesta linha ser apresentado um campo assim: tabela3.* - o que significa que todos os campos da tabela3 foram
selecionados para consulta.
Para executar uma consulta:

clique sobre o cone Executar na barra de ferramentas.


Conhecendo os modos da consulta, na barra de ferramentas clique na seta do cone "Exibir", aparecer as opes:

48
49

Modo estrutura - Para alterar a consulta.


Modo folha de dados - Para visualizar o resultado da consulta.
Modo SQL - Para consultar o cdigo em SQL.
Para gravar sua consulta:
Clique o cone Salvar na barra de ferramentas ou no menu Arquivo, escolha a opo Salvar.

Criando consultas com critrios

Consulta utilizando Critrios:


Critrio a condio utilizada para limitar o conjunto de registros desejados para o resultado da consulta. Como o exemplo
acima, onde voc consulta apenas o jogador Eduardo. Para isso, com o modo estrutura da Consulta ativo:
Na linha Critrio, do campo "nome do jogador" digite Eduardo* (o asterisco *, quando no sei o nome
completo) e execute a consulta.
Voc pode especificar os critrios de vrios outros modos, por exemplo:
Na linha Critrio, do campo "num do jogador", digite:
Entre 2 e 3 e execute, depois digite: > 1 e < 4 e execute.
Na linha Critrio, do campo "nome do jogador", digite:
c* (o resultado desta consulta ser os registros com os nomes dos jogadores que comeam com c).

Criando consultas, classificando registros e fornecendo parmetros

Consulta classificando registros:


Para especificar a ordem de classificao dos registros, faa o seguinte:
Na linha de Classificao do campo desejado, especifique Crescente (0-9 e A-Z) ou Decrescente (9-0 e Z-A).

Consulta de parmetros solicitando critrio:


Estabelea parmetros para que a consulta faa uma pergunta ao usurio.
Na linha Critrio, do campo desejado, digite a pergunta entre colchetes, como a seguir:
[Entre com o nmero do jogador]
Ao executar a consulta, o Access exibir uma caixa de dilogo onde o usurio dever digitar o nmero do jogador
que deseja pesquisar.

49
50
O que um filtro? Quais os mtodos usados para filtrar registros?

Filtro uma consulta rpida feita diretamente na tabela. Ambos recuperam um subconjunto de registros de uma tabela/consulta.
Quando usar o filtro?
Voc dever usar o filtro para visualizar temporariamente ou editar um subconjunto de registros enquanto estiver
dentro de uma tabela.
Quando usar a consulta de seleo?
Voc dever usar a consulta de seleo se desejar:
Visualizar um subconjunto de registros sem abrir uma tabela.
Consultar registros de mais de uma tabela ao mesmo tempo.
Escolher os campos que exibiro o resultado.
Efetuar clculos na consulta.
Quais os mtodos usados para filtrar registros?
Filtrar Por Seleo - Utiliza um valor ou parte de um valor selecionado em um campo da folha de dados, para
localizar somente registros que contenham ou que no contenham esse valor.

Filtrar Por Formulrio - Utiliza uma verso da folha de dados com campos vazios, voc poder digitar os valores
que deseja que os registros filtrados contenham.

Filtrar Para Entrada - Utiliza um valor ou expresso que voc digita na caixa Filtro para:", para localizar somente
registros que contenham o valor ou satisfazem a expresso que voc especificar. (para localizar a caixa "Filtro
para:", basta clicar com o boto direito em um campo no modo folha de dados de uma tabela/consulta)
Como criar um filtro:
No objeto Tabela, selecione a tabela desejada e clique no boto Abrir (para abrir no modo folha de dados).
Escolher o mtodo desejado para filtrar registros na barra de ferramentas ou na barra de menu no item
Registros .
Para executar esse filtro, clique o cone Aplicar Filtro na barra de ferramentas.

Como criar um filtro avanado?

Voc pode criar tambm um Filtro Avanado.


Para criar um filtro avanado:
No objeto Tabela, selecione a tabela desejada e clique no boto Abrir (para abrir no modo folha de dados).
Na barra de menu no item Registros, escolha a opo "Filtrar" e "Filtrar/classificar avanado". O Access exibir
uma tela parecida com uma estrutura de Consulta.
Selecione o(s) campo(s) desejados para o filtro do mesmo modo como voc fez na consulta.
Digite a condio na linha do critrio da coluna do campo desejado.
Para executar esse filtro, clique o cone Aplicar Filtro na barra de ferramentas.

O Access, aps a execuo do filtro, exibir os registros de acordo com o critrio estipulado.
Para mostrar todos os registros novamente:
Na barra de ferramentas ou na barra de menu no item Registros, escolha a opo "Remover Filtro".
Para voltar na estrutura do filtro:
Na barra de menu no item Registros, escolha a opo Filtrar" e "Filtrar/classificar avanado"
Para salvar um filtro como consulta, faa o seguinte:
Primeiramente voc deve estar na estrutura do filtro.

Na barra de ferramentas, clique o cone Salvar como Consulta.

50
51

Criando um formulrio

Um formulrio um objeto do banco de dados que permite a visualizao e manipulao (incluso /alterao /excluso das
informaes contidas em uma tabela ou consulta atravs de um Layout mais agradvel).
Criando um novo Formulrio:
Para criar um formulrio, voc deve estar com a Janela de Banco de Dados ativa:
Clique sobre o objeto Formulrio.
Clique sobre o boto Novo
A caixa de dilogo Novo Formulrio ser apresentada. nesta caixa que voc definir em qual consulta ou tabela
o seu formulrio ser baseado.
Voc dever escolher uma das seguintes opes que lhe ajudaro a criar um formulrio automaticamente (exceto
modo estrutura que ser manual):
Modo de Estrutura: cria um formulrio sem utilizar um assistente, os campos so selecionados manualmente.
Assistente de Formulrio - cria o seu formulrio automaticamente baseado nos campos que voc selecionou.
AutoFormulrio: Colunar - exibe as informaes em uma nica coluna, um campo embaixo do outro.
AutoFormulrio: Tabular - exibe as informaes como em uma planilha, ou seja, linhas e colunas onde cada linha
equivale a um registro e cada coluna um campo.
AutoFormulrio: Folha de Dados cria automaticamente um formulrio de Folha de Dados
(formato tabela).
Assistente de grfico - exibe as informaes na forma de grficos.
Assistente de tabela dinmica cria formulrio como uma Tabela Dinmica do Microsoft Excel.
No nosso caso, clique em Assistente Formulrio
Clique sobre o boto OK.

Assistente de Formulrio

51
52
Esta a janela do Assistente de formulrio, que ir ajud-lo, nesta primeira etapa voc deve escolher os campos que iro
compor o seu formulrio.

Para selecionar apenas um campo, clique no cone ; ou se voc quiser todos, clique no cone .

Os cones e vo permitir que voc remova da lista dos campos que iro compor seu formulrio os
campos que voc no deseja.
Siga os passos do assistente respondendo as perguntas:
Selecione todos os campos que deseja para o formulrio.
Clique sobre o boto Avanar.

Agora, voc deve escolher o Layout do Formulrio e clique em Avanar.

Escolhendo estilo e titulo para seu formulrio

Selecione o Estilo do seu formulrio e depois, clique sobre o boto Avanar.


Na prxima tela escolha um ttulo para o seu formulrio, escolha a opo Abrir o formulrio para iniciar as
alteraes ou entrar na Estrutura do Formulrio para modific-la e clique sobre o boto Concluir.

Visualizando registros em um formulrio

Os objetos que existem dentro de um formulrio so chamados de Controles. Esses controles so usados para visualizar,
modificar e incluir seus dados nas tabelas, so utilizados tambm para exibir resultados de um clculo, ttulos ou mensagens,
grficos, imagens e outros objetos.
Access possui vrios controles que voc pode adicionar ao seu formulrio, veja alguns exemplos:
Rtulos: so controles utilizados para incluir uma legenda, um ttulo ou uma mensagem.

52
53
Caixa de Texto: neste controle so mostrados as informaes contidas nas suas tabelas ou consultas, so
utilizados tambm para incluso, excluso e alterao dos dados. Para movimentao dos registros, voc pode
utilizar a barra de navegao como mostra a figura abaixo:

Trabalhando na Estrutura do seu formulrio

Agora que voc j criou seu formulrio, vamos aprender como alterar sua aparncia. Para isso, na barra de ferramentas, clique
no cone de Estrutura.
Sees dentro de um formulrio:
Voc pode perceber que, quando estamos no modo Estrutura, o nosso formulrio est dividido entre trs partes
(chamadas sees): Cabealho, Detalhe e Rodap.
Cabealho: nesta seo, geralmente, est o ttulo do Formulrio. Um cabealho pode conter outros objetos,
como, por exemplo, uma caixa de texto indicando a data do dia, mas isso no muito comum.
Detalhe: nesta seo encontra-se todo o corpo do formulrio, isto , as informaes contidas em uma tabela ou
consulta.
Rodap: a seo Rodap usada normalmente para exibir, por exemplo, nmero de pginas em um formulrio
impresso.

53
54

Um controle formado por um rtulo e uma caixa de texto. Para selecionar:


clique no controle desejado.
Para mover um controle:
Posicione o cursor em um gerenciador de movimentao, o cursor do mouse deve aparecer como uma mo

aberta (para mover a etiqueta e a caixa de texto juntos) ou apenas com o dedo indicador (para mover ou a
caixa de texto ou a etiqueta separadamente).
Para redimencionar um controle:
Posicione o mouse em um gerenciador de redimensionamento. Ele deve assumir as seguintes mscaras: (veja
exemplo na figura.)

Obs: Toda vez que o mouse assumir a mscara: voc poder selecionar ou digitar um texto.

Adicione um Rtulo e um Campo

Para adicionar novos controles em um formulrio utilizaremos a Caixa de Ferramentas. Para isso, verifique se ela est ativa, se

no estiver, ento na barra de ferramentas, clique o cone Caixa de Ferramentas para acion-la.
Para inserir um texto no seu formulrio:

Clique sobre o cone Rtulo e solte.


Na estrutura do formulrio, clique no local onde voc deseja incluir o texto. No nosso caso, digitar o texto: (Para uso Interno). O
Access mesmo j dimensiona o rtulo conforme sua necessidade.
Para inserir uma Caixa de Texto no Formulrio:

54
55

Clique sobre o cone Caixa de Texto na caixa de ferramentas e solte.


Na estrutura do formulrio, clique no local onde voc deseja incluir a caixa de texto. O Access criar uma caixa de texto No
Acoplado. Isso significa que no existe nenhum campo de sua tabela ou consulta vinculado a essa caixa de texto. O que voc
deve fazer o seguinte:
Clique dentro da Caixa de Texto onde est escrito No Acoplado e digite o nome do campo da tabela/consulta desejado
para esta Caixa. O mesmo vale para o Rtulo que acompanha a Caixa de Texto.

Alterando a aparncia do seu formulrio

Para alterar a aparncia do seu formulrio voc deve estar no modo estrutura, utilizar
a barra
de ferramentas formatao (figura acima) ou clicar com o boto direito do mouse
sobre o
objeto desejado.
Usando a barra de ferramentas de formatao:
Primeiramente deve-se selecionar o objeto desejado, clicando sobre o objeto ou
escolhendo o objeto na caixa de combinao objeto.
Altere o tipo da fonte escolhendo na caixa de combinao Fonte e seu tamanho na
caixa
de combinao Tamanho da Fonte.
Altere o estilo para negrito N, itlico I ou sublinhado S, clicando sobre o cone
desejado.
Altere o alinhamento para alinhar esquerda ou centralizar ou alinhar direita,

clicando sobre o cone


Altere a cor de fundo, cor da fonte ou cor da borda, clicando sobre o cone

Altere o estilo e largura das bordas, clicando sobre o cone

Trabalhando com as propriedades dos controles, sees ou formulrios.

No Access, um formulrio, cada uma de suas sees e controle possui o seu conjunto de propriedades que determinam a sua
aparncia e o seu comportamento. Algumas propriedades dos controles assumem as mesmas caractersticas definidas em uma
tabela.
Para visualizar as propriedades de um controle, um formulrio ou uma seo, faa o seguinte:

55
56
Selecione o objeto que voc deseja alterar ou visualizar suas propriedades.

Clique, na barra de ferramentas, o cone Propriedades ou na barra de menu, o item Exibir e escolha
Propriedades.
Definindo algumas propriedades de um controle:
Nome um nome de identificao para seu controle.
Origem do Controle Voc determinar a origem de seu controle, ou seja, o valor que este controle ir assumir
estar acoplado a uma tabela ou consulta.
Comportamentos da Tecla ENTER - nesta propriedade voc pode definir qual o efeito da tecla ENTER no seu
formulrio.
Visvel - definir se o seu controle deve ou no ser exibido no Formulrio.
Exibir Quando - definir quando um controle pode ser exibido, se somente em um formulrio, ou impresso ou
impresso e formulrio.
Bloqueado - se seu controle permitir a alterao de seus dados no modo formulrio.
Ativado - permite que o campo tenha o foco no modo Formulrio.
Parada de Tabulao - permite que voc mude de campo apertando a tecla <TAB>.

Criando um relatrio

O relatrio um objeto do banco de dados com a finalidade de imprimir registros em um Layout personalizado, alm de permitir
a utilizao de agrupamento de registros em vrios nveis, clculos de somatria, mdias e outros, obtendo totais e subtotais. O
relatrio muito parecido com o formulrio, porm possui maior controle sobre a exibio dos dados quando impressos.
Para criar um relatrio, voc deve:
Estar com a janela de Banco de Dados ativa.
Clique sobre o objeto Relatrios
Clique sobre o boto Novo
A caixa de dilogo Novo Relatrio ser apresentada. nesta caixa que voc definir em qual consulta ou tabela o
seu relatrio ser baseado.
Voc dever escolher uma das seguintes opes que lhe ajudaro a criar o relatrio automaticamente (exceto
modo estrutura que ser manual):
Modo de estrutura: cria um relatrio sem utilizar um assistente, os campos so selecionados manualmente.
Assistente de relatrio ir ajud-lo a criar o seu relatrio baseado nas respostas que voc fornecer para o
assistente.
AutoRelatrio: Colunar - exibe as informaes em uma nica coluna, um campo embaixo do outro.
AutoRelatrio: Tabular - exibe as informaes como em uma planilha, ou seja, linhas e colunas onde cada linha
equivale a um registro e cada coluna um campo.
Assistente de grfico - exibe as informaes na forma de grficos.
Assistente de etiqueta - relatrio para emisso de Etiquetas. Por exemplo, etiquetas de endereamento para Mala
Direta.

56
57
Assistente de relatrios

Selecionando a opo Assistente de relatrio, escolha a tabela/consulta desejada e clique no boto OK. Siga respondendo o
assistente.

voc deve escolher os campos que faro parte do seu Relatrio, para isso utilize as flechas > (move campo a
campo), >> (move todos os campos) e clique sobre o boto Avanar.

Agrupando Dados no Assistente

Nesta tela voc definir os nveis de grupo que deseja, basta selecionar o campo que ser agrupado e clicar no
cone >. Se desejar mais de um agrupamento, voc poder definir a prioridade, o relatrio exibir os dados
classificados por grupos. Por exemplo, este relatrio estar agrupado por cidade. Dentro de opes de
agrupamento, voc poder definir o intervalo de agrupamento do campo.
Siga no assistente clicando no boto Avanar.
Especifique a ordem de classificao para seus campos na tela abaixo.

57
58

Se desejar incluir um resumo de valores (subtotal) para cada grupo, clique no boto Opes de resumo.

Escolhendo o Layout, Orientao e Estilo

58
59
Na primeira tela voc dever escolher:
layout forma mais agradvel de apresentao de seus dados, depender do tipo de relatrio que voc escolher se agrupado
ou no.
orientao forma de apresentao horizontal definir como paisagem ou forma vertical definir como retrato.
clicar em Avanar .
Escolher na segunda tela o estilo do seu relatrio e clicar em Avanar. Na prxima tela digite um ttulo para o
seu Relatrio e clicar no boto Concluir.

Visualizando o relatrio

Visualizar Impresso: neste modo o Access exibe seu relatrio como ele seria impresso.
Para alternar para o Modo de Visualizao:
Clique sobre o cone Visualizar Impresso, na barra de ferramentas. Para mudar de pgina em um Relatrio, siga os passos a
seguir:

Para imprimir um relatrio:


Na barra de menu no item Arquivo, escolha imprimir ou na barra de ferramentas, clique o cone Imprimir.

Trabalhando na Estrutura do relatrio

No Modo Estrutura, voc pode alterar a aparncia do seu Relatrio. Para isso:

Clique sobre o cone Estrutura, na barra de ferramentas. Ser apresentada a tela da estrutura, como
mostra a figura acima.
Um relatrio divido basicamente em trs partes: Cabealhos, Detalhes e Rodaps.
Cabealhos - aqui ficaro os dados constantes. Por exemplo, um ttulo ou uma data. Os dados do cabealho do
relatrio s sero exibidos na primeira pgina do relatrio e os dados do cabealho da pgina sero exibidos a
cada nova pgina. Poderemos ter tambm cabealho de campo ao escolhermos agrupar por um determinado
campo, neste caso a cada agrupamento ser apresentado um conjunto de registros.
Detalhes - aqui ficaro os dados que variam, como o campo nmero do telefone.
Rodap - funciona como um cabealho, s que exibido no final da pgina.
Para inserir, excluir ou modificar qualquer objeto do relatrio siga as mesmas instrues dos formulrios.

59
60
Conhecendo tela de Classificar e agrupar

Para adicionar um novo grupo ao relatrio, excluir um grupo ou alterar suas propriedades voc deve:
Visualizar o relatrio no modo estrutura.

Clicar no cone Classificar e agrupar ou no menu Editar nesta mesma opo.


Trabalhando na tela Classificar e agrupar:
Campo/Expresso: Nesta coluna voc dever selecionar o campo para o agrupamento ou classificao. O
primeiro campo indica o primeiro nvel.
Ordem de classificao: determina se os dados sero classificados em ordem crescente ou decrescente.
Selecione o campo e preencha as propriedades do grupo:
Cabealho e Rodap de grupo: Em um agrupamento necessrio que o campo a ser agrupado fique em um
cabealho de grupo, separado dos demais campos.
Reagrupar: define como os valores so agrupados.
Nmero de caracteres: determina um intervalo vlido para os valores no campo.
Manter junto: define como um grupo ser impresso.

Crie e imprima etiquetas de endereamento

Para criar etiquetas de endereamento no Access:


Na Janela Banco de Dados selecione o objeto relatrio e clique no boto Novo.
Na tela Novo relatrio selecione a opo Assistente de etiqueta, escolha a tabela/consulta desejada e
clique no boto OK.
Na prxima tela voc definir o tamanho da etiqueta desejado.

60
61

Clique no boto Avanar, siga respondendo o assistente.

Montando sua etiqueta

Na primeira tela voc ir determinar a aparncia do texto (fonte, cor) e clique no boto Avanar.
Na segunda tela voc desenhar o prottipo da etiqueta, movendo os campos desejados com o cone > e clique
em Avanar.

Na prxima tela voc poder classificar por um ou mais campos.


Clique no boto Avanar, escolha um nome para o seu relatrio de etiquetas e clique no boto Concluir.
Na barra de menu no item Arquivo, escolha imprimir ou na barra de ferramentas, clique o cone Imprimir.

Onde obter ajuda

61
62
Para ajud-lo a solucionar dvidas de informtica, utilize o sistema Rau-Tu de perguntas e respostas, que foi desenvolvido pelo
Centro de Computao da Unicamp em conjunto com o Instituto Vale do Futuro. Tem por objetivo possibilitar que um time de
colaboradores possa responder a perguntas colocadas por qualquer pessoa no site, cobrindo diversas reas de conhecimento.
Acesse: www.rau-tu.unicamp.br

62
63

63
64

64
65

Diferenas entre o ORACLE e o SQL Server 7.0

65
66
Visto os objetivos principais de um SGBD, ser feita uma breve explanao sobre os SGBD mais utilizados
no mercado, observado suas caractersticas e diferenas.

Oracle

O servidor Oracle apresenta facilidade de uso, potncia e relao custo/desempenho sem precedentes. Pr
ajustado e pr configurado para os ambientes de grupos de trabalho, dinmicos e diversificados para os dias de
hoje, o Oracle contm um conjunto totalmente integrado de ferramentas de gerenciamento simples de usar, alm
de recursos completos de distribuio, replicao e utilizao na Web. Os recursos de acesso a dados distribudos e
replicados permitem que os usurios compartilhem dados relacionais entre aplicativos e servidores. As capacidades
internas de utilizao da Web proporcionam uma soluo completa para a implementao de uma Intranet.

Poder para Grupos de Trabalho Distribudos: No atual ambiente de computao em constante


modificao, os novos grupos de usurios exigem o acesso rpido e eficiente s informaes. Eles exigem solues
de baixo custo que permitam a acelerao do processo de tomada de decises. fundamental a capacidade de
reagir rapidamente s necessidades de mudanas empresariais, o que exige solues gerenciveis, potentes e de
boa relao custo-benefcio. O Oracle atende s demandas de grupos de trabalho distribudos e diversificados. O
servidor Oracle reduz os custos de implementao, ao mesmo tempo em que utiliza a mais ampla variedade de
hardwares. Dos ambientes com um s servidor para pequenas empresas at ambientes com vrias filiais,
amplamente distribudos, o servidor Oracle contm todos os recursos necessrios para criar aplicativos de acordo
com a empresa, garantindo o acesso eficiente e seguro aos dados, gerenciando os dados da corporao de
maneira simples e completa.

Fcil de Usar: O Oracle incorpora recursos de fcil utilizao para ambientes computadorizados com
grupos de trabalho distribudos. Um procedimento de instalao intuitivo o suficiente para que o servidor Oracle8
pr-ajustado e pr-configurado possa estar "ativo e em execuo". A ferramenta grfica Oracle Enterprise
Manager, totalmente integrada, permite que os administradores executem tarefas complexas de gerenciamento
com a facilidade de apontar e clicar atravs do mouse. A combinao de potncia e simplicidade permitem que
qualquer administrador, experiente ou no, gerencie o banco de dados Oracle8, deixando parte de seu tempo
livre para outras tarefas.
Acesso a Dados Distribudos: O Oracle oferece um novo nvel de sistemas de computao para usurios
de grupos de trabalho distribudos. Consultas e atualizaes distribudas permitem o compartilhamento de dados
entre vrios servidores e o two-phase commit garante a consistncia dos dados. A replicao de dados permite
que os usurios criem vrias cpias de leitura de partes de tabelas ou tabelas completas com consistncia
transacional e integridade de dados garantida. Atualizaes baseadas em eventos ou conforme demandas
proporcionam a flexibilidade mxima. Os links de bancos de dados permitem que dados remotos sejam definidos e
utilizados como se fossem locais, garantindo que os aplicativos nunca precisem de recodificao, caso os dados
sejam transferidos de um n a outro.

Capacidade de Uso na Web: O servidor Oracle8 oferece aos usurios um servidor intranet completo, com
todos os recursos. Aplicativos de Web podem acessar, rpida e facilmente, quaisquer dados armazenados no
banco de dados Oracle e podem apresentar documentos Web gerados dinamicamente aos usurios finais. Todos os
componentes so totalmente configurveis e gerenciveis atravs de uma srie de HTML.

Ajuste Automtico do Banco de Dados: O gerenciador do servidor Oracle otimiza automaticamente o


desempenho do banco de dados. Depois de analisar os recursos do sistema e os requisitos de aplicativos durante o
processamento do banco de dados, o Oracle Self-Tuner recomenda os valores apropriados para os parmetros
mais crticos do banco de dados e aplicaes em momentos de baixa utilizao.

66
67

Fcil Gerenciamento Local: O Oracle Enterprise Manager permite o gerenciamento fcil dos bancos de
dados do servidor Oracle, atravs de uma interface totalmente grfica. Ferramentas de gerenciamento local
executam tarefas crticas rpida e facilmente, de forma independente ou em conjunto com o console de
gerenciamento central. As tarefas de gerenciamento local incluem:

Inicializao e parada temporria do banco de dados.


Criao do usurio e atribuio de funes/privilgios;
Monitorao de sesses do usurio final;
Backup e recuperao do banco de dados;
Criao de tabela e gerenciamento de tamanhos e
Importao e exportao de dados.

Fcil Gerenciamento Central: Oracle Enterprise Manager contm um console nico, integrado, de
gerenciamento para a administrao central de vrios grupos de trabalho remotos, permitindo o tipo de
gerenciamento distncia, essencial em ambientes grandes e distribudos.
Os administradores visualizam uma representao grfica personalizada de objetos-chave, incluindo ns,
bancos de dados, listeners, usurios, funes e perfis que podem ser agrupados com base em qualquer critrio.
Eles podem programar e automatizar trabalhos e eventos em objetos ou grupos de objetos especficos,
simplificando o desempenho das operaes de gerenciamento. O Oracle Intelligent Agent, implantado em todos os
bancos de dados de servidores Oracle, executa com eficincia trabalhos e eventos enviados pelo console do Oracle
Enterprise Manager. Instrumentando o banco de dados, o Oracle Intelligent Agent automatiza a coleta de dados e
a deteco de problemas, funcionando independentemente do status do console ou das conexes da rede,
garantindo a alta disponibilidade do banco de dados.

Acesso Aberto a Dados: O Oracle valoriza seu investimento nas ferramentas e aplicativos existentes,
oferecendo um acesso aberto aos dados atravs de uma variedade de mtodos padro. Entre estes mtodos,
encontram-se ODBC, Oracle Objects for OLE, JDBC e drivers originais da Oracle. Oferecendo conectividade
aberta com implementao livre, o Oracle ajusta-se a qualquer ambiente, independentemente dos padres
vigentes na corporao. O Oracle Objects for OLE oferece um controle personalizado (OCX ou ActiveX) combinado
a um servidor OLE que permite a explorao da funcionalidade original do Oracle a aplicativos Windows.

Banco de Dados para Computao Baseada em Redes: O Oracle um dos principais componentes da
NCA baseada em padres abertos. Foi projetado para atender demanda dos mtodos de sistemas centralizados
em redes e de desenvolvimento orientado a objeto. A NCA proporciona capacidade mxima de extenso, com base
em padres industriais abertos, como CORBA e IIOP. Seja para grupos de trabalho tradicionais e aplicativos
empresariais ou para comrcio eletrnico na Web, o Oracle8 e a NCA oferecem a potncia, robustez, integrao
de rede e flexibilidade para suportar os aplicativos mais exigentes.

Extensvel: O Oracle proporciona um sistema nico de gerenciamento de banco de dados capaz de atender
a novos requisitos de dados, agora e futuramente. O Oracle ConText Cartridge permite que o Oracle gerencie
texto com a mesma segurana, escalabilidade, integridade e inteligncia com que gerencia dados estruturados. O
Oracle Vdeo Cartridge armazena, gerencia e produz vdeos de alta resoluo e tela cheia, alm de udio de alta
fidelidade de um servidor para um cliente, atravs de uma rede.
Devido ao carter aberto da arquitetura do cartucho de dados sob a NCA, os desenvolvedores podem
estender as capacidades do Oracle desenvolvendo cartuchos adicionais.

67
68

Otimizado para o Sistema Operacional: O Oracle8 oferece a mais avanada e escalvel plataforma de
banco de dados de cliente leve ou cliente/servidor disponvel. Para garantir o mais alto nvel de desempenho em
todos os sistemas operacionais suportados, o Oracle8 Server otimizado para aproveitar recursos especficos do
sistema operacional, como o modelo de encadeamento no Windows NT e dos drivers registrar-aguardar e do
sistema de E/S assncrono em sistemas Unix.

SQL Server

O SQL Server um excelente banco de dados para a plataforma Microsoft Windows e a opo em
sistemas de gerenciamento de banco de dados escolhido por uma grande variedade de clientes empresariais e
programadores. O SQL Server oferece uma plataforma eficiente e flexvel suportando banco de dados com enorme
volume de informaes, ele se adapta perfeitamente a aplicativos existentes e fornece um ambiente de baixo
custo para personalizar e desenvolver novos aplicativos criados exclusivamente para atender s necessidades de
uma corporao.
O SQL Server pode ser usado tanto no Windows 95 ou Windows 98 quanto no Windows NT com uma base
nica de cdigos, fornecendo 100 por cento de compatibilidade do aplicativo com uma variedade de opes de
distribuio.
Dentre suas caractersticas principais, temos:

Facilidade de Criar, Gerenciar e Distribuir: O SQL Server foi desenvolvido para reduzir o custo total da
empresa, facilitando a criao, o gerenciamento e a distribuio de aplicativos baseados no processamento de
transaes on-line (ou no) O SQL Server fornece ajuste e administrao automatizados ao banco de dados com
excelente desempenho, bem como ferramentas sofisticadas para operaes complexas. Inovaes na facilidade de
uso, escalabilidade, confiabilidade e desempenho, um modelo de programao rpido e simples para
desenvolvedores, backup ativo e gerenciamento fazem do SQL server a escolha ideal para operaes da empresa.

Desenvolvido para Computao Mvel: O SQL Server para Windows 95, Windows 98 ou Windows NT
Workstation permite ao usurio acessar dados e aplicativos a partir de qualquer lugar. O SQL Server oferece
muitas opes de replicao para assegurar que alteraes efetuadas em dados sejam automaticamente
sincronizadas, incluindo alteraes realizadas com o sistema operando off-line.

Uma Plataforma Ideal para Comrcio: O SQL Server perfeitamente compatvel com o Windows NT e
com sua tecnologia Internet Information Server (IIS), fornece a plataforma ideal de banco de dados para o
comrcio eletrnico. O SQL Server oferece preo/desempenho, fcil distribuio, excelente capacidade de
gerenciamento, consulta de texto inovadora, fcil publicao na Web, alm da confiabilidade, escalabilidade e
segurana necessrias para manter um site de comrcio dinmico.

Armazenamento de Dados Eficiente: O SQL Server fornece uma plataforma completa que torna fcil e
rpido desenvolver, criar, manter e usar solues de armazenamento de dados, permitindo sua organizao
tomar decises empresariais baseadas em informaes oportunas e precisas.

Concluso

Pelas caractersticas descritas anteriormente sobre os dois Gerenciadores, percebe-se que os prs e os
contras de cada um, hora facilita, hora dificulta a escolha ideal. Quando se fala em segurana e portabilidade de
base de dados, o Oracle desponta como o favorito pela sua facilidade de manuteno. A ferramenta grfica
Oracle Enterprise Manager, totalmente integrada, permite que os administradores executem tarefas complexas

68
69
de gerenciamento com a facilidade do apontar e clicar do mouse. O Oracle oferece um novo nvel de sistemas de
computao para usurios de grupos de trabalho distribudos. Sistemas amplamente distribudos, sejam eles
cliente/servidor ou sistemas de clientes simples so agora viveis por uma frao do custo e complexidade dos
sistemas tradicionais. O SQL Server, apesar de possuir descendncia nobre, a Microsoft, trata-se de um Sistema
Gerenciador de Bancos de Dados, Relacional, SGBDR, que funciona unicamente sob sistema operacional Windows
NT. Possui um mdulo que permite sua utilizao no Sistema Operacional Windows 95. Por um outro lado, a
alocao fsica necessria para a sua utilizao, torna at certo ponto, invivel num servidor que possua Hard Disk
de baixa capacidade. Independente se a base tiver 1 ou 100000 registros, o espao fsico alocado ser sempre o
mesmo. O SQL Server tambm possui uma interface bastante amigvel. Ambos, Oracle e SQL Server, possuem
acesso via ODBC, JDBC, DAO e outros.
No dia 23/11/1998 foram anunciadas as verses mais atualizadas das duas maiores empresas de softwares. A
Oracle anunciou o Oracle8i, seu novo banco de dados, apostando seu cacife na integrao com a Web. A Microsoft
lanou o SQL Server 7.0 marcando sua estria no segmento de data warehouse. A diferena de enfoque de ambas
grande. O novo BD da Oracle se contrape ao modelo cliente/servidor que na opinio da companhia aumenta o
custo. A Microsoft confia na escalabilidade para ganhar adeptos no mundo corporativo. Uma das caractersticas
principais da nova verso Oracle 8i que ela detm uma padronizao de arquivo prpria o IFS - Internet File
System que permite execuo de operaes tipo drag and drop com qualquer tipo de arquivo (web page,
documentos, planilhas e imagem) diretamente no sistema de arquivo do banco de dados. Voc no precisa mais
saber a extenso de seu arquivo Word se o acesso for feito do Excel. Com o Oracle8i, o arquivo pode ser
encontrado pelo nome que o usurio quiser dar ao mesmo. O preo de lista do novo produto nos EUA foi fixado
em US$ 1.475 para a verso inicial com licena para cinco usurios, enquanto que a Microsoft fez sua premire no
mundo de data warehouse na semana passada com a chegada do SQL Server 7.0, nova verso de seu banco de
dados relacional. Ele traz integrado ao software uma ferramenta OLAP que permite anlises multidimensionais dos
dados armazenados nas tabelas do BD. Com o novo produto, a MS est dando um grande passo para polarizar a
competio com a Oracle, lder no segmento. Cerca de 300 produtos foram portados para o novo banco de dados.
E a expectativa dos executivos da companhia que esse nmero seja quatro vezes maior nos prximos quatro
meses. So duas as verses do produto: uma standard, com preo de US$ 2.400 com cinco licenas, e outra
enterprise, US$ 8.000 para 25 licenas.

69