Você está na página 1de 35

..

;\1';' ' ' '"


~ r.~r;l. r'ff.~iíjj'
:rji/. .";~:n;
-:" ~.., 'Wt
:.;·t;
oi, :,. •••
:~~r
.."1
--:::
o::!
~Ul~ "
'/i
.'
:
;i~~
'~~~
:::~
.~;lH
.~;J-~
..:,=~
BANCOS DE DADOS
E INFORM~ÇÕES· )~
"\
. ~. '.
:i
~:~
~~
!'.
.~
.'i·
'lt
c~~~
.,.t
.:~:
.:,:"
;t·
6.1 INTRODUÇÃO
Os dados e informações c~,nstituem um dos principais ativos de uma empresa, ';.~
sendo de vital importância para o correto planejamento, desenvolvim~ e opera- .~
":.f.
ção de. atividades nos níveis operacionais, táticos e estratégicos, Na medida que as
empresas investem em sistemas de info;m~importânciado~ b~cos de dados '.i'
J~
. ~
~em crescendo, demandando o lançamento de novos produtos e soluções por parte :~
,~
dos fornecedores de ·seiftware.. '"oS
Assim como a infra-estrutura de hard~are e rede apresenta-se como fundamental
.::~
,~
ao correto funcionamento dos seiftwares e sisteIr)as integrados disponíveis, os bancos
de dados formam quase um universo paralelo que, utilizando essa mesma infra-es-
trutUra, compõem a memória da organização.
:.;!~
[ ~f
lJi.·
218 ADMINISTRAÇÃO DE SISTEMAS DE INFORMAÇÃO

Compreender esse novo universo é tarefa relevante para os administradores de tados, complementados ou excluído
sistemas de informação, porque fornece subsídios para que possam prospectar tec- automáticos, incorporados ao banco de d
nologias, assim como efetuar o planejamento e implementação de soluções que Para Date (2000, p. 4), "um sistema d
garantam a eficácia dos sistemas em uso pela empresa. ma computadorizado de armazenamento
.'. tadorizado cujo propósito geral é armaz
buscar e atualizar essas informações quan
6.2 DEFINIÇÕES
Haag, Cummíngs e Dawkins (1998) c
Para o correto uso do termo "banco de dados" é importante conhecer a opinião é, provavelmente, um dos mais exagerada
de alguns autores, por meio das quais será possível estabelecer um panorama sobre ambiente de negócios. Para eles, muitas
o tema e, ao mesmo tempo, servir de base à constituição de uma definição única de dados, na verdade, possuem apenas
e adequada aos propósitos deste capítulo. Nas transcrições apresentadas a seguir, definição de banco de dados: um conju
foram destacados alguns termos para uso em uma definição posterior. acessa de acordo com a estrutura lógic
Segundo Laudon e Laudon (2001, p. 158) "uma definição muito rigorosà de um Turban, Rainer Jr. e Potter (2003, p.
banco de dadosfuma coleta de dados organizados para servir a muitas aplica- campos, registros e arquivos, definem b
ções eficientemente pela centralização dos dados e pela minimização de da- lógico de arquivos relacionados".
dos redundantes". Prosseguindo, acrescentam que "em vez de armazenar os dados Pelas definições anteriores, de imedia
em arquivos separados para cada aplicação, os dados são armazenados fisicamente bora tratem da definição de banco de
para aparecerem aos usuários como sendo armazenados em um único local" . explicitamente o termo informação (
O'Brien (2004, p. 136) define banco de dados como "um conjunto integrado DATE, 2000; SILVA, 2001). Por outro la
'\-
de elementos dedados relacionados logicamente". Por sua vez, Mattos (2005, (LAUDON e LAUDON, 2001; O'BRIE
p. 43) considera que um banco de dados "é um conjunto de dados logicamente Turban, Rainer Jr. e Potter (2003, p. 132
organizados, no sentido de que sabemos como encontrar, com rapidez, qualquer "agrupamento lógico de arquivos r
dado lá armazenado". Conforme visto no Capítulo 2, existe
Para Alves (2004, p. 25) "falando de forma bastante genérica, um banco de dados é informação. Dados são sucessões de fat
um conjunto de dados com um significado implícito". O autor alerta para o fato de que cessados, relacionados, avaliados ou inte
o uso do termo banco de dados é mais restrito, apontando características tais como "um isoladas de eventos, situações ou ocorrênc
banco de dados representa uma porção do mundo real, o qual chamamos de o relacionamento, avaliaçãO, interpretaçã
minimundo ou Universo de Discurso" sendo que "qualquer alteração nesse minimundo patamar imediatamente, e hierarquicame
deve ser refletida no banco de dados". Adicionalmente, Alves argumenta que "um banco Em termos práticos, tanto os dados t
de dados é um conjunto lógico e ordenado de dados que possuem algum significado, e ções (que representam dados relacionad
não uma coleção aleatória", contendo um objetivo específico. trônicos ou em bases estruturadas de m
Silva (2001, p. 3) argumenta que banco de dados "é um conjunto de informa- Ocorre em termos práticos, é interessant
ções manipuláveis de mesma natureza, inseridas em um mesmo local, obedecendo uma definição posterior.
a um padrão de armazenamento".
Côrtes (2005) define banco de dados como "um sistema de armazenamento ../ Instituições bancárias armazen
e organização lógica e fisica de dados, que permite que eles sejam lidos, edi- rias (como valores creditados ou d
~
Bancos de dados e informações ZZ1
na emissão de demonstrativos, seja para é necessário aprofundar essa discussão, evidenciando como um dado ou uma infor- ,--~~l~i
s (como CPMF, por exemplo). mação pode ser armazenado, compatibilizando-~num primeiro momento, com .. ~~\~
ne armaz,enam textos, artigos, reporta- a estrutura básica dos computadores e, posteriormente, com a estrutura de unI
-_ ~iW_Jj~
ivos em repositórios usualmente deno- banco de dados e informações. Para isso, é importante tecer algumas considerações ;·\;~~~li
:f,n.,~~
onstituam informações). de ordem histórica, a começar por uma explicação sobre por que os computadores
são digitais.
letrônica estruturada (comumente cha- Resumidamente, um computador nada mais faz do que trabalhar de maneira
r tanto dados (como em um sistema organizada e estruturada com fluxos elétricos distribuídos em seus diversos circui-
s portais de notícias e jornais on-line).
o termo banco de dados e informa-
ssibilidades verificadas no dia-a-dia.
nição de banco de dados apresentada

tos. Conforme menciona Tanenbaum (2001, p. 33) "Às vezes, se ouve falar que
os computadores usam a aritmética binária por causa da 'eficiência'. O que se que
quer dizer com isso (embora aqueles que o dizem não imaginem) é que um sistema
de armazenamento de informação digital é baseado na distinção entre dois valores
diferentes de alguma grandeza física, como corrente ou tensão. Quanto mais vaIo-
res houver a serem identificados, menor será a separação entre valores adjacentes,

, ']
---''--'1'
e como conseqüência o sistema de memória será menos confiável. No sistema de
':"/~i
-""1
numeralião binário só há a necessidade de se distinguir entre dois valores. Conse-
;:;:~~.í
qüentemente, o método de codificação de informação digital em binário é o mais
stema de armazenamento e organização confiável de todos".
e permite que eles sejam lidos, editados, Dessa forma, a fim de evitar que erros e imprecisões ocorressem, optou-se pelo
com a utilização de sistemas manuais ou
desenvolvimento de computadores digitais, que trabalham com apenas dois estados
possíveis: há corrente ou não há corrente em um circuito (em outras palavras, o
circuito está ligado ou desligado).
a época em que o espaço disponível para Se por um lado essa simplificação eliminava o problema de ter de arbitrar esta-
nde porte (mairifTames) era, muito exíguo. dos intermediários (corrente elétrica menor ou maior, por exemplo), gerava outro. 'i
mento de dados, uma vez que constituem Na natureza, a grande maioria dos fenômenos são claramente analógicos, podendo
do que as informações, que são unidades assumir estados ou valores dentro d~ uma ampla gama de possibilidades. Um carro
espaço de armazenamento. pode estar parado ou em movimento. Uma vez em movimento, pode assumir dife-
de de espaço, os chamados bancos de da- rentes velocidades, até mesmo com uma variação mínima. De maneira similar, um
is do que apenas dados, embora: o nome som pode ter diferentes freqüências (mais grave ou mais agudo) e assumir diferentes
stume. intensidades. A temperatura para uma mesma região pode variar dentro de um arn-
pIo intervalo, seja ao longo de um ano seja e1!1 apenas algumas horas.
Sendo assim, como é que um computador cujos circuitos trabalham com apenas
dois estados (ligado ou desligado) poderá representar valores analógicos? Como ele
ui a unidade básica a partir da qual infor- poderá representar uma velocidade de 63 km!h ou 91 krn/h? Como ele poderá pro-
Embora essa afirmação continue válida, cessar um som de 1000 Hz? Como ele armazenará uma temperatura de 22°C?
sr1
'I?,"'::'

222 ADMINISTRAÇÃO DE SISTEMAS DE INFORMAÇÃO

Apesar dessa aparente incongruência, mesmo utilizando a notação binária ou Tabela 6.2 Tabela ASCII com os códigos deci
dígito binário (que adota apenas os números O e 1, sendo O o equivalente a desligado
Caractere Dedrnal Binário Caractere Decimal
e'l o equivalente a ligado), é possível representar núllleros oriundos de um univer-
l2 00100000 @ 64
so analógico. A Tabela 6.1 apresenta um comparativo entre números em notação
! JJ 00100001 .~ 65
decimal e binária, demonstrando que é possível transformar valores analógicos (em 00100010 B 66
. l4
notação decimal) em valores binários. # 35 0010001 I C 67

Esse dígito binário é denominado de bit (do inglês binary digit), podendo as- S 36 00100100 O 68

sumir um entre dois valores (O ou I) e constituindo a unidade básica de arma- 96 37 00100101 E 69

zenamento físico em um computador. Posto isso, é importante considerar que a & 38 001001 lO F 70

representação de um número pode envolver diversos bits, conforme pôde ser visto 39 00100111 G 71

( 40 OOIOJOOO H 72
na Tabela 6.1. Os bits, quando agrupados, formam unidades denominadas bytes.
) 41 00101001 I 73
Embora possa haver diferenças, geralmente, um byte representa um grupo de oito
. 42 00101010 J 74
bits, o que está relacionado à arquitetura da grande maioria dos computadores em
+ 4l 00101011 K 75
uso e à representação de caracteres.
.. OOlOllOO L 76
Sendo assim, em lugar de considerar que um número demanda x bits e outro
.5 OOIOllOI M 77
número demanda y bits para serem representados, tem-se esse espaço mais bem 78
46 00101110 N
especificado sob a forma de bytes. Além disso, a idéia de utilizar bytes facilita a 47 00101111 o 79
I
representação de caracteres. Para isso, o artifício utilizado foi atribuir a cada letra o 48 00110000 P 80

(ou caractere especial) um número decimal e, a partir daí, fazer a conversão para 1 49 00110001 Q 81

notação binária, conforme pode ser visto na Tabela 6.2. Nessa tabela, cada caractere 2 50 00110010 R '2

consome 8 bits, o que corresponde a 1 byte. 3 51 0011001 J 5 83

4 52 00110100 T 84

5 53 00110lpl U 85

6 54 00110110 V 86
Tabela 6.1 Comparativo de valores em notação decimal e binária.
7 55 00110111 w 87
..
Veloddade (km/h) 8 56 00111000 X 88
Notação binária
(notação decimal) 9 57 001 J 1001 \' 89
O O , 58 00111010 2 90
21 10101 : 59 QOIIIOII l 91

38 100110 < 60 00111100 \ 92

63 111111 = 61 0011 I 101 J 93


!
~
91 1011011 > 62 00111110 94

120 1111000 1 63 00111111 95


-
131 10000011 Nota: ASCII é o acrônimo de American Standard Cod
180 10110100 para codificação de caracteres surgida durante os an
210 11010010 representação de textos e números em computadores
~'
Bancos de dados e informações 225
, '::!i
~,~;~.
ura 6.1, que mostra o relacionamento Cada tipo de dado o\.Cinformação ocupa um determinado espaço na memória
nto) e o abstrato (campo das idéias). do computador. Por exemplÇ), um caractere ocupa 1 byte. Verificando a Tabela 6.2,
rifica-se, dentro do nível físico, que a tem-se que o primeirQ caractere comum, correspondente ao decimal 32, é repre-
e logo a2~a tem-se o byte (um agTu- .. ~ . sentado em binário por 00 100000 (8 bits ou 1 byte). O último caractere comum,
sa variar para algumas plataf~rmas de correspondente ao decimal 126 é representado em binário por 01111110 (8 bits
ou 1 byte).
Um número inteiro, por outro lado, ocupa 2 bytes (ou 16 bits). Há que se con-
dos níveis físico (armazenamento) e siderar, entretanto, que o intervalo admitido para números inteiros vai de -32.768 a
s níveis intermediários.
32.767, para processadores de 16 ou 32 bits da Intel (ou similares). Por sua vez, um
a.~.edor~_{~'.~~~~~; >:;j r,..~·,:::~~· ~~r/}?~·~: número real ocupa 4bytes (32 bits), sendo que os. valores admitido~ estão dentro
·sobre determinado tema'ê ampliada, ... ',
do intervalo 3,4 x 10- 38 a 3.4 x 10+ 38 , aproximadamente. A5 quantidades de bytes
:i~~f~rt.f~fn~~~~~1ti:~:' indicadas e os intervalos mencionados são fornecidos como referência inicial. Con-
forme será visto mais adiante, os bancos de dados podem consumir uma quantidade
nteligência . .
eo ftuxo constante de troca de dados; :'
ntos. aliada à experiênda adquirida e' .

.
~J!@' diferente de bytes para os tipos inteiro, real, caractere e suas variações.
ove a geração de inteLigência. '.~~;,,:. Adicionalmente, é importante considerar que, dependendo da natureza. do dado,
ele poderá ser armazenado como um conjunto de caracteres, como número inteiro
nhecimento :'-.. ~.:
ou mesmo como númeró real. Tomando como exemplo um sistema que contr~le a
ado5. c~m' maior abrangênda e
ultado do relacionamento de velocidade de veículos, como os radares utilizados em ruas e estradas, suponha-se
riundas de diferentes ireas:
que esse sistema esteja ajustado para fotogTafar veículos que estejam acima de 80
nformação km/h. A tendência é que esse valor seja processado como número inteiro, consumin-
de textos mais elaborados e '::
.,:;.:; do 2 bytes. Uma alternativa é que ele seja processado como número real (4 bytes) , o
fruto do relacionamento de
formações mais simples. que permitiria ajústar valores decimais como 80,5 krnIh. Uma outra possibilidade é
que essa velocidade seja tratada como tex'to, com dois caracteres ou 2 bytes. Nesse
ou Informação caso, embora a velocidade seja a mesma (80), como foi considerada texto, ela não
,
poderá ser processada matematicamente sem antes passar por uma conversão (de
texto para número real ou de tex'to para número inteiro, por exemplo).
Em uma primeira análise, o tamanho que uma variável ocupa pode não ser apa-
1 caraelere • 1 byte
1 palavra com 10 caracteres rentemente importante, tendo em vista que os computadores atuais possuem uma
ocupa 10 bytes
boa quantidade de memória disponível para o proceSsamento de dados e informa-
ções temporárias e espaço em disco para seu armazenamento.' É necessário consi-
derar, entretanto, algumas implicações que merecem ser destacadas quanto ao uso
1 byte • 8 bits de variáveis. A primeira delas - ecertamente a mais imediata - é que variáveis
maiores (que ocupam mais bytes) implicam um espaço maior de armaZenamento
GGGGG em meio físico (discos rígidos, disquetes, CDs ou DVOs, por exemplo), o que po-
derá ser de vital importância para gTandes bancos de dados. Além disso, consomem
~

226 ADMINISTRAÇÃO DE SISTEMAS DE INFORMAÇÃO

mais memória para o seu armazenamento temporário durante o processamento. sistema de cadastro de obras para u
Com o acúmulo de programas sendo executados ao mesmo tempo, o que era, em zar espaço armazenando apenas os d
princípio, um problema de alguns bytes a mais, acaba tomando grandes proporções, para cada livro). Caso o sistema de c
chegando a prejudicar a performance do sistema ou ~esmo inviabilizar a execução (que trabalha com livros de diferente

de programas. .', todo o ISBN.


Outra questão importante reflete-se na velocidade de processamento. Um com-
putador que utilize um processador de 16 bits teria capacidade de processar facil- Voltando à Figura 6.1, verifica-se que o
mente um caractere (8 bits ou 1 byte) ou um número inteiro (16 bits ou 2 bytes). ascende a um nível mais abstrato. Em gera
Porém, não teria condições imediatas de processar um número real (32 bits ou 4 em discos rígidos sob a forma de arquívo
bytes). Para isso, consumiria duas vezes mais tempo de processamento, pois precisa- pequenas partes que vão sendo distribuídas
ria quebrar os 32 bits em dois pacotes de 16 bits, processando-os individualmente. sumidamente, um arquivo nada mais é do q
Algumas situações corriqueiras poderão ajudar numa maior compreensão desse distribuídos no espaço disponível na mídia
assunto: O que permite abstrair sua existência é
está organizada de uma maneira lógica, p
./ O total de aulas de um curso é indicado sob a forma de um número inteiro informações originais.
(por exemplo, 32 aulas). Da mesma forma, a quantidade de aulas que um
aluno assistiu é indicada por um número inteiro (p. ex. 28 aulas). Sendo 6.4 PRINCIPAIS CARACTERÍST
assim, é natural que esses números sejam processados e armazenados como DE DADOS EINFORMAÇÕE
números inteiros (que consomem apenas 2 bytes) em lugar de serem tratados
como números reais (que consomem 4 bytes). Afinal, que vantagem haveria Conforme visto anteriormente, um banc
em indicar que o total de aulas é 32,0000 e o número de aulas que um aluno armazenamento e organização lógica e física
assistiu foi igual a 28,0000? que eles sejam lidos, editados, complement
./ Determinados tipos de dados, embora envolvam apenas números, devem ser dos, com a utilização de sistemas manuais o
tratados como texto. Um exemplo é o número de telefone que, usualmente, O que diferencia um banco de dados (
possuí um hífen entre grupos de números para facilitar a leitura. Além dis- de arquivos são algumas características que
so, é necessário considerar o código do DDD (discagem direta a distância), como um todo, são encontradas em'muito
muítas vezes, indicado entre parênteses. Dessa forma, (11) 1234-5678 é mais
fácil de ler do que 1112345678. Com a presença dos parênteses e do hífen, ./ Controle de redundância: siste
o telefone deve ser tratado como texto. mesma informação seja armazenada
./ O ISBN, abreviatura de International Standard Book Number, é um identi- ./ Escalabilidade: possibilidade de c
ficador único utilizado para livros, para facilitar a localização de obras, assim significativa de performance, o que
como sua comercialização. Ele é composto por quatro blocos de númeroS, físico de armazenamento c/ou de pl
separados por hífens (o que justificaria seu tratamento como texto). É inte- ./ Garantia de integridade dos da
ressante notar que, para uma mesma editora, os dois blocos iniciais são cons- e recuperação de falhas que garante
tantes, variando apenas os dois blocos finais. Dessa forma, ao desenvolver um a possibilidade de sua recuperação
~~

Bancos de. dados e informações 229


'.'-.>!>~ .
.~ ~~~', :' ..
stema de backup integrado ou associa- ;\Fig~ra~ ~.2 ExempLo de estrutura de banco de dados hierárquico.
óu parcial de dados e informações.
rmazenamento: permite que os da- disciplina sala
de um mdo para outro sem que isso
ECF 010- Fundamentos de Macroeconomia I 334
culdade de acesso. .
restringir o acesso dos usuári6s, possi-
e dados uma definição quanto ao uso
es para cada grupo de usuários.
ando que diversos usuários realizem
n' professor I nome professor
utenção de dados ao mesmo tempo.
ossibilidade de uso do banco de da- 102 I José Antonio
aformas (processadores e/ou sistemas
,..
COS :'.:'-.,
.... -'T. .
ados: hierárquico, de rede e relacional,
s, conforme relatado a seguir. Embora
utilizado atualmente, ainda 'é possível
dados hierárquico e de rede.
o e de rede foram os precursores dos
sibilitará a configuração de um contex-
s bancos de dados relacionais.
ÁRQUICO
co de dados é similar a um organograma
iados a um nível principal (chamado de
uica, Zwass (1997) utiliza o exemplo de
inada disciplina, com a indicação do seu
Associado a essa disciplina, há o profes-
forme pode ser visto na Figura 6.2. .
nco de dados seja rápido e ainda possa
o em mairiframes, há que se considerar
m operacional. Tomando a Figura 6.2
~
230 ADMINISTRAÇÃO DE SISTEMAS DE INFORMAÇÃO

a estrutura, por vezes, muito complexa. Adicionalmente, segundo Date (2000), as Figura 6.3 Exemplo de estrutura de banco de
e~truturas complexas em forma de árvore necessitam de ponteiros que descrevem
os caminhos entres os diversos níveis e subníveis, o que pode dificultar ainda mais a disciplina

compreensão das estruturas mais densas.

6.5.2 BANCO DE DADOS DO TIPO REnE


É importante ressaltar que, em geral, os autores que trabalham com bancos de
dados referem-se a eles como bancos de dados em rede. Nesta obra, entretanto,
utiliza-se banco de dados do tipo rede, uma vez que há, neste capítulo, um tópico
específico sobre a utilização de bancos de dados relacionais em rede (LAN), o que
poderia causar alguma confusão.
Segundo Date (2000), é chamado de CODASYL (Conference on Data Syste- disciplina
ms Languages) ou DBTG (DataBase Task Group), lembrando o grupo de trabalho
MAR 100 - Matemát
(DBGT) ou a entidade que o propôs (CODASYL).
Esse tipo de banco de dados procura resolver um problema verificado no mode- disc1ptina
lo hierárquico, no qual cada registro poderia ter apenas um pai. Essa limitação do
DIR 011 - Introdução ao direito
modelo anterior acabava criando sistemas complexos, com vários links a fim de obter
as relações necessárias.
Prosseguindo no exemplo mencionado por Zwass (1997), tem-se que no mo-
delo do tipo rede, um mesmo aluno pode ser conectado a mais de um professor,
uma vez que cada registro pode ter vários pais (Figura 6.3), fornecendo mais flexi-
Fonte: Adaptado de Zwass (1997).
bilidade. Apesar disso, o banco de dados do tipo rede acaba tendo uma estrutura
complexa, consumindo muitos recursos de hardware. relational mode! cf dataJor lar8e shared data ban
de pesquisas que ele realizava na IBM.
5.5.3 BANCO DE DADOS DO TIPO RElACEONAl Conforme menciona esse autor, sobre o
Além dos problemas mencionados anteriormente, e que levavam ao estabeleci- usuários de grandes bancos de dados 'não d
mento de estruturas complexas, os modelos hierárquico e em rede apenas fornecem estão organizados na máquina (~ represent
dados e informações a partir de caminhos preestabelecidos. Relações originalmente usuários em terminais, e na maioria dos pro
não previstas na estrutura adotada por um determinado banco de dados somente do a representação interna dos dados fosse
poderiam ser viabilizadas com o redesenho dessa estrutura. Como resultado disso, Essas alterações na representação de d
não havia qualquer flexibilidade em buscar novas relações entre dados (ou informa- em conseqüência de mudanças diversas, s
ções) armazenados. - seja em função do tráfego, ou mesmo em r
Essa forma de armazenamento de dados seria radicalmente transformada a partir de dados. Entretanto, como os programas
das pesquisas que Edgar Frank Codd, cientista inglês, realizou nos anos 1960, en- ponteiros, esses recursos não podem ser d
volvendo teorias sobre arranjo de dados. Em 1970, E. F. Codd publicou o artigo A prejudicados. Com o passar do tempo, as
~
Bancos de dados e informações 233
mais difícil sua compreensão e manu- Dados ou DBMS - Database Management System) que organiza os dados, ge-
rencia o acesso simultâneo dos usuários e providencia a execução de comandos
mento do System/R, iniciado em 1974 SQL (Figura 6.4).
IBM, n~iaboratório de San Jose, Cali- A Figura 6.4 mostra, de maneira esquemática, uma situação bastante corri-
a recuperação de dados, pos.s.ibilitando queira, na qual um mesmo sistema de gerenciamento é utilizado para armazenar
m que elas estivessem necessariamente diferentes bancos dedados. No exemplo apresentado, dois bancos de dados (RH
e dados. Dessa forma, era possível re- e Clientes e Fornecedores) são utilizados de maneira independente. Cada um con-
e uma consulta, sem a necessidade da tém suas respectivas tabelas, reservadas para seus dados. Embora o gerenciador
nte definido na estrutura do banco de possa trabalhar com diversos bancos ao mesmo tempo, eles são considerados de
mento da arquitetura de um banco de maneira independente, podendo inclusive ser armazenados em diferentes equipa-
(2000, p. 22) " ... 0 usuário de um sis- mentos. Para referência adicional sobre armazenamento de dados e internações,
ada mais do que tabelas. Em contraste,
tras estruturas de dados, seja em lugar
Figura 6.4 Os bancos de dados relacionais são compostos por tabelas com seus
adição a elas". respectivos campos (que armazenam o conjunto de dados). Um mesmo
uma linguagem de manipulação de da- sistema gerenciador pode conter diferentes bancos de dados independentes,
cada qual com suas respectivas tabelas.
lish Query Language), que utilizava co-
s fácil a manipulação e o relacionamen-
QUEL foi sendo aprimorada, servindo
Dados
P;~l::'~~~l~~:

Tabelas
Fundonlrio,
-=.r=;~-.~-.-:!:.:~~=-
l=;...~.:-~:,:_.J~ ~~~~"do",'
Banco de dados . Banco de dados

Tabela.
t
Dado.
I-::::;;:::::;;,,:i:~ Em'.Ú, ••,,,,,,,,,,,
,nentes
-J'!!':'!':D...!..••.,.. u'!!O.~_ . Kci"M S.A.
t
Language) que propiciava novas formas H."", H."., RH ,b.nt.....
=--==.:.~ª--:-' ~~:;:~ Jrm~Dlllda.
Em meados dos anos 1980, essa lingua- ,~j~~~~:;~:} -~~.::.:~~~~_.} ~k' 11~{ . _. _ . _ .... _ .~ _ Filie Equipatne"tD~ 5.0\.
Standard Institute) e, posteriormente, Finlllcrirtl} dep."'menIO' ~ .:..";,-J;{;.•.•. fornecedo""
I~~ ~~:-;::.";II
"$ I~~,~~ ~I·· lli'l
A,.. ' ...,oU. S.Ao
~-----;;-;;;;;;';
_... HetahíllllU AlIda•. 5.0\.
andardization).
~~~~~1-- ~:~~c~~i~l~;~.
nais constituem o principal modelo em
umes de dados, performances e plata- ,roduto, {
de uso livre até aquelas mais onerosas,
OSistema Gerenciador de Bancos de Dados
(SGBO) geralmente fica hospedado em um·
servidor especifico. podendo administrar -..
I:-==-"'-'=-';~.:-:"":..D
·~~k;-;-~~~~·'
-~=~~~~;
lutK.dlac(ltllo:.!tan
T,.o , .." 'O" lO,m
~::: ::~~: ~::
om MySQL, Oracle, DB2, SQL-Server, um ou mais bancos de dados
wlr: H
independentes. ~
ões de bancos de dados relacionais dis-
Esses bancos de dados podem ficar
armazenados fisicamente no mesmo :11
equipamento utilizado pelo SGBO (ao ISGBD I ~.E
lado) ou em equipamentos diferentes
(conforme indicado abaixo).
ento de um banco de dados relacional,
u
Os programas utilizados pelos
usuArios conectam-se ao SGBO. que
re a sua estrutura. Os bancos de dados' gerenda as solicitações e demandas.
as quais os dados e informações são
m disso, um componente importante Blnco de dadol
r
B,"co di dados
RH di'"til.foMIC'lcIom
BD (Sistema Gerenciador de Banco de
~

234 ADMINISTRAÇÃO DE SISTEMAS DE INFORMAÇÃO

vide Quadro 6.2. Quando os usuários, por meio de aplicativos específicos, solici- Figura 6.6 Cada registro (linha) corresponde
distribuídos pelos diversos camp
tam dados para um ou outro banco, caberá ao gerenciador (SGBD) cuidar dessas
solicitações, encaminhando-as ao respectivo banco de dados. campos
Aestrutura básica de uma tabela é reproduzida na' Figura 6.5, sendo composta Ir-~~~==~===
'por colunas e linhas. Cada coluna está relacionada a um campo (um tip~ ,de dado SOD,'GO '::' ~~A ••-:",- ••...•-
t ,.-. - íio~~·~.L- -

registros 'I ,,,.1...,,


u
~spedfico como nome ou endereço, por exemplo). Por sua vez, cada linha armazena -,-1 J. Alv!.5
"'pw~'!';"-·--.
~~~"".l)~s." .. ~
-li 1 Ftnr<SA
um registro (um conjunto de dados associados e disoibuídos pelos diversos cam- 5 ACD1Pl!.tr6cothS.A.
~ " Ml!ulilltnc.a ÁlJdax S.A.
~==--=:~
~!
--=-==-====-=-~-=--
S:~~:~~CJAj~:i~t~·~
pos), conforme pode ser visto na Figura 6.6. 1
Como os diversos campos estão destinados a dados específicos (nome ou en- Fonte: Adaptado de Côrtes (2005).
dereço da empresa, por exemplo), é importante considerar os tipos de dados que
podem ser armazenados e sua repercussão IlO que se refere ao espaço ocupado. Em
geral, bancos de dados são utilizados para o armazenamento de uma grande quanti- Sendo assim, é importante considerar a
dade de registros, demandando um espaço físico considerável em discos rígidos ou nados juntamente com os principais tipos
outros sistemas de armazenamento, com implicações que vão desde a performance bancos de dados, buscando uma solução
para a realização de consultas, inclusões, alterações ou exclusões de dados, até no circunstâncias apresentadas.
Os principais tipos de campos são CH
tempo gasto para fazer cópias de segurança (backup).
conforme detalhado a seguir:

Quadro 6.2 Armazenamento de Massa ou Mass Storage.


'.0
..r CHAR: armazena caracteres (letras,
Mass Storage: é um termo freqüentemente utilizado em computação. Refere-se ao rão tratados como texto. Um númer
armazenamento de grandes volumes de dados e informações. Indica o uso de dispositivos armazenados em um campo do tipo
de armazenamento não volátil (ou:seja, que conserva os dados e irifonmações mesmo forma que um conjunto de letras.
quando desconectados de um computador ou desprovidos de fonte de energia elétrica). tipo de campo varia de acordo com o
tais como discos rígidos, fitas magnéticas. discos ópticos, flash memories. por exemplo. o Oracle aceita até 2.000 caracteres.
aceita 8.000 caracteres. Já o MySQL
Figura 6.5 . Uma tabela é composta por colunas e linhas. Cada coluna está relacionada caracteres). É importante considerar
a um campo. sendo destinada ao armazenamento de dados específicos. Cada
linha da tabela corresponde a um registro (um conjunto de dados associados tamanho fixo, independente do cont
e disttibuidos pelos diversos campos). definido para armazenar 50 caractere
campos texto menor (por exemplo, Admini
I ~----',.-_ com 39 caracteres), o restante será
branco, completando o restante do c
reg'.'" 1~". ~~~-~~-~_.--~-~~~~--~~".~~:~~,,-"""~ adicionais serão retirados por ocasião
Algumas considerações e possib
. ~ __..+_._._ ._.__,.__~... .J... _
-._-"'t---' I
(mais antigo) não é utilizado em no
pelo tipo VARCHAR (mais novo), de
Fonte: Adaptado de Côrtes (2005).
t";
'.I':'
~ ~:
~l

~~
Bancos, de dados e informações 237
"
ancos de dados a fim de manter a com­ armazenamento e a difusão de informações e de conhecimento explícito.

De acordo com o que foi discutido no Capítulo 3, esse tipo de conh~cirriento

AR, inclusive no que se refere aos tipos é "digital" e pode ser armazenado em banco de dados, sendo ,acessado de

ento p~~~ SQL Server (comportando maneira seqüencial (NONAKA, 1994). No processo conhecido por exter­

teres). Já no Oracle, o VARC.I:lAR acei­ nalização, o conhecimento tácito passa a ser expresso sob a forma de

ue o aceito pelo tipo CHAR. A grande conceitos, hipóteses ou modelo~, sendo transformado em conhecimento

HAR não possui um tamanho fixo, mas f"c


:,;
explícito. Para Nonaka e Tak.euchi (1997), a externalização é a chave para a

o o exemplo anterior, em um campo :~j; criação do conhecimento (ver Capítulo 3).

dade máxima), o teJ.."toAdministração Além de bloas e fóruns, os campos do' tipo TEXT ou LongVARCHAR podem

..•.
ará apenas 39 caracteres, sem espaços "" ser utilizados em jornais e revistas on-line, possibilitando o armazenamento

do campo. Devido a essa característica, ',,;,-: de grandes quantidades de texto, embora não seja recomendável que teJ.."tos

um espaço menor no banco de dados r,:: muito longos sejam apresentados em tela.

.1.;, . Adicionalmente, eles podem ser utilizados para o armazenamento de relató­

idades: os campos VARCHAR são in­


rios, pareceres, catálogos, FAQs (frequentlyasked questions ou perguntas mais

possibilita o armazenamento de infor­


freqüentes), sistemas de ajuda on-line, dentre diversas outras possibilidades.

relacionamento de dados) ou mesmo


Há que se considerar, entretanto, que o uso indiscriminado desse tipo de '

-: ... ~.
aquele que pode ser codificado, sendo '\"t;••... , campo poderá aumentar significativamente o tamanho do banco de dados e

uma linguagem formal e sistematizada, até mesmo comprometer a sua performance.

mas de bloas ou fóruns podem servir a .,{ INT: utilizado para o armazenamento de' números inteiros. Os valores aceitos
formações e difusão de coI}hecimento, ~ar:iam confqrme o banco de dados utilizado.
dos para armazenar os textos inseridos ~ ...::; Algumas considerações e poss~bilidades: é importante verificai- a natu­
ampo do tipo VARCHAR é uma opção reza dos dados numéricos que serão armazenados, evi~ndo que um espaço
.~1{~- desnecessário seja gasto no banco de dados. Determin~dos levantamentos ou
s VARCHAR é o armazenamento de pe­
sl' fatos somente são eJ..-pressos em n~eros inteiros. AlguAs exemplos: ,número
l;~~.
egócios, contatos com clientes, sugestão de funcionários em uma empresa, número de alunos em uma escola, veíçulos
ades promocionais em empresas.
mpo VARCHAR pode ser utilizado para
dutos, com um resumo das principais
I em um estacionamento, quantidade de peças em um contêiner. Nesses casos,
não há razão para que os valores correspondentes sejam armazenados como
números reais. Além disso, é importante considerar que alguns bancos de
dados (ornecem subtipos, dentro de Um mesmo grupo, ampliando as alter­
os para textos muito longos. O campo
o SQL Server, armazenando respectiva­
es dois bancos de dados. O Oracle, por
itando até 2 Gigabytes.

11
'~i~'

, nativas quanto à capacidade dos çampos ou o espaço 'requerido para o arma­


zenamento. Por exemplo, no SQL Server, o campo INT consome 4 bytes,

enquanto campos especificados como SMÀLLINT ou TINYINT consomem,

respectivamente, 2 e 1 bytes, sendo uti.lizadospara valores mais baixos.

lidades: devido a sua grande capacida­ .,{ FLOAT: utilizado para o armazenamento de niímeros reais. Os valores acei- ,
a uso em fóruns e bioas, possibilitando o tos variam conforme o banco de dados utilizado.
~

238 ADMINISTRAÇÃO DE SISTEMAS DE INFORMAÇÃO

Algumas considerações e possibilidades: da mesma maneira como foi pode receber o atributo de chave primária
comentado para o campo do tipo INT, o FLOAT deve ser utilizado confor- registro nulo para esse campo (uma pessoa
me os dados que serão armazenados. Em geral, os bancos de dados permi- ou a existência de registros duplicados (
tem especificar a precisão do campo FLOAT, s~ndo que o número de casas . com o mesmo CPF).
decimais amplia a quantidade de bytes consumidos. Por exempl~" no SQL Dessa forma, ao tentar cadastrar um re
Server, os campos FLOAT com até 9 casas decimais consomem 5 bytes. En- o banco de dados ge.ra uma mensagem de
tre 10 e 19 casas decimais, o número de bytes sobe para 9. Esse valor sobe gistro. Essa é uma segurança adicional imp
para 13 bytes entre 20 e 28 casas decimais, chegando a 17 bytes entre 29 e a integridade dos dados.
38 casas decimais. A seguir, são apresentados alguns exe
Para uma otimização do espaço consumido no armazenamento, os valores têm atributo de chave primária:
de ser armazenados de acordo c~m a precisão com que foram obtidos ou cal-
culados. Geralmente, a temperatura ambiente é medida com uma casa decimal ../ ISBN: o ISBN, já mencionado ante
de precisão, por exemplo. Nesse caso, de nada adianta gravar no banco de da- para livros, possibilitando não apena
dos um valor com número excessivo de casas decimais (28,4000000000, em tora de origem. Em um banco de da
lugar de 28,4), o que somente consumiria espaço adicional. Outro exemplo, se ou site de vendas on-line, o ISBN po
a taxa de juros cobrada em um determinado financiamento é de 2,25% ao mês pois impede que obras diferentes se
(ou 0,0225 ao mês) ela deverá ser armazenada em um campo com a precisão ficador. Há que se considerar, entret
(número de casas decimais) adequada, evitando o desperdício de espaço. exemplares do mesmo livro, isso pod
../ Nota: é importante considerar que os valores apresentados para o MySQL, co em vez de cadastrar o mesmo livr
SQL-Server e Oracle são indicados apenas como referência, podendo variar ../ Código de barras: praticamente
conforme a versão de cada banco de dados. supermercados e lojas têm um cód
identificação. Em um banco de dado
6.5.3.2 Chave. primária
de barras pode ser utilizado como c
A chave primária é um atributo aplicado a um campo específico de uma tabela diferentes sejam cadastrados com o
e que impede a existência de registros duplicados. Em um cadastro de clientes, mas no caixa, por exemplo.
por exemplo, pode ocorrer de duas ou mais pessoas terem o mesmo nome, o que
poderia criar uma série de dificuldades. Para contornar esse tipo de problema, ge- Finalizando este tópico, recomenda-se
ralmente, utiliza-se o CPF ou RG, uma vez que esses números são individuais. Para méricos, em especial números inteiros (q
facilitar a identificação de um cliente, costumeiramente, os serviços de atendimento bytes). Isso se explica porque a comparaçã
solicitam apenas o CPF e, a partir dele, recuperam as demais informações (nome, relação ao uso de textos.
endereço etc.).
É necessário~considerar, entretanto, que por um erro no momento da digita- 6.5.3.3 Relacionamento de tabelas
ção poderia ocorrer de duas pessoas serem cadastradas com o mesmo CPF, o que Conforme o próprio nome indica, os
geraria uma série de problemas quando da manipulação dos dados armazenados. Uma grande flexibilidade no que se refere
Para evitar esse tipo de situação, o campo destinado ao armazenamento do CPF dados entre suas tabelas. Diferentemente
~

/f;'
1':
Bancos de dados e informações 241
um mesmo produto disponível em Figura' 6.8 Exemplo de relacionamento de duas tabelas com o uso de chave primária.
idades em um campo específico, sem a
iguais (o qúe seria bloqueado com o Relacionamento Um para Um
cada produto está associado
a um preço espedfico
I Editoril N' Piqinas
rl Gentric.a 1250 tabela 1 tabela 2
GentriCl 1250 c6digo produto ,c6digo. preço
I Ge~rita 1250 '7:' 'úió' Café 601úvel 3210" 4,50
Gentrica 1250
1411, Leite em pó 1411: 4.51
GentriCl 1250
3453: AÇ'Ücar ·3453' 1.80
2393 , Adoçante 2393 2.35
1843 . Achocole.te.do 1843: 5.20
;1:,': chave primAria .__...... •..•• "'---4. ._... "
~ .~_
..
.... --_: )
~' chave primAria
;~:.: .. cada produto ; cada c6digo é exclusivo
:~ ..Y. tem um c6digo e está relacionado a
exclus;vo relacionamento um preço
.. :.. por meio do c6digo é
Editora 1- -H· P6glnas/f "EstoQue' '1',- posslvel associar cada
Grntrit.l I 1250 l j 15 produto ao seu preço
.......
O correto é cadastrar o

impressão
Ce.fé solúvel - 4,50
produto apenas uma vez e Leite em p6 - 4,51
indicar a quantidade Açúcar - 1.80
disponível em estoque :.~i:'.· Adoçante - 2.35
:~{.
Achocoletado - 5;20
-----....
·:it.r
s relacional essas relações podem ser -r:;:...
:j~:~;.

maior freqüência. Quando o consumidor vai ao caixa, o sistema verifica o código de


.:!~;':~.

nativas que Simplifiquem a estrutura . .:.~.:;: barras e, a partir dele, identifica o produto, obtém a sua descrição e o seu preço por
meio do relacionamento apresentado.
Para obter esse relacionamerito, os sistemas gerenciadores de bancos de dados
(SGBDs) fornecem interfaces - geralmente gráficas - em que o analista ou admi-
estabelecer um relacionamento entre
o pela Figura 6.8. Nessa figura, tem-se
al com seu respectivo c6digo, à seme-
, cada código tem o preço C9rrespon-

11 nistradordo banco de dados poderá.relacionar as tabelas existentes. Embora esse


tipo de relacionamento possa ser obtido sem o uso de chaves primárias,
recurso garante que não haverá dUjJlicidade de c6digos em cada uma das tabelas, o
que poderia prejudicar o relacionamento.

o. uso desse
6digo (que é chave primária nas duas Complementando, algumas considerações devem ser efetuadas sobre o relacio-
e para cada produto é feita a indicação namento de tabelas:
a na Figura 6.8 é verificada em super- ../' Os campos utilizados no relacionamento devem ser do mesmo tipo (inteiro
ela C9m o. cadastro de produtos sofre com inteiro, por exemplo) ou de mesma natureza (inteiro longo com 'inteiro
a de preços. Em função de promoções, convencional), dependendo do banco de. dados.
s, os preços podem ser alterados com ../' As tabelas relacionadas devem pertencer ao mesmo banco de dados.
L"
6
-_._----- .-_._-'.

242 ADMINISTRAÇÃO DE SISTEMAS DE INFORMAÇÃO

../ Deve-se priorizar o relacionamento de campos numéricos, pois a performan- Figura 6.9 Relacionamento um para muito
ce desse tipo de relacionamento é maior do que a obtida com a utilização de
Relacionamento Um para Muitos
campos CHAR, TEXT ou similares. um-mesmó fornecedor com muftos'produtos

. 6.5.3.5 Reladonamento um para muitos, chave estrangeira


e integridade rejerendal ~, .

Retomando o exemplo do supermercado apresentado na Figura 6.8, verifica-se


que vários produtos podem ser distribuídos por um mesmo fornecedor. Em um
banco de dados bem estruturado, cada fornecedor deverá ser previamente cadas-
trado, antes mesmo de os produtos dele adquiridos serem introduzidos no banco .;. lntegridade :referendal
somente serão' aceitos
de dados. produtos cujos .
fornecedores já estejam
Dessa forma, quando um novo produto for adicionado no banco de dados, será previamente cadastrados
associado a um fornecedor específico, criando um relacionamento denominado de
um para muitos (um fornec~dor para muitos produtos, no exemplo citado). Na fi- I
gura 6.9, tem-se o exemplo desse tipo de relacionamento, no qual o fornecedor Note que apenas o campo c6digo da tabela 1
recebeu o atributo de chave primária. pois
"Fazenda Real" é responsável pelos produtos "Café solúvel" e "Leite em pó". Esse cada fornecedor tem o seu código específico.

tipo de relacionamento é muito comum, ocorrendo em situações em que um tipo O campo código na tabela 2 não foi marcado
como chave primária, pois um mesmo código
de registro pode estar associado a diversos outros (um professor para muitos alunos, repete-se para mais de um produto. Ele é
denominado chave estrangeira.
uma agência bancária para muitos clientes, um vôo para muitos passageiros, por
exemplo).
Ampliando o exemplo do supermercado, em caso de falta de um produto, será
fácil verificar o fornecedor responsável, tornando mais rápida a geração de um pe- haja produtos a ele associados. Nesse ca
dido de reposição. Em certos casos, esses procedimentos podem ser bastante au- associados a um determinado fornecedo
tomatizados, fazendo com que um pedido de compra ou cotação seja disparado de dados.
automaticamente (por serviços de fax disponíveis na rede local ou e-mail) assim Em grandes redes de supermercado,
que um nível crítico for a~gido no estoque. Caso essa associação entre produto e podem ser difíceis, diante do pode~·eco
fornecedor não fosse estabelecida, para cada item que estivesse em falta no estoque grande fornecedor, é importante que os s
seria necessário pesquisar o fornecedor, consumindo tempo que poderia ser apro- des redes. Por outro lado, as grandes rede
veitado em outras tarefas. e condições especiais de pagamento, o q
Cabe, entretanto, uma pergunta: caso o fornecedor seja apagado do banco de Como essa, como proceder caso o banco
dados, como ficariam os produtos por ele distribuídos? Para evitar esse tipo de automaticamente pedidos de compra ou
problema, além do relacionamento, é possível utilizar o recurso de integridade gociação está sendo estabelecida em um
referencia!. cadastro de fornecedores poderá contar c
Dessa forma, um produto somente poderá ser cadastrado caso o seu fornecedor car se um fornecedor está ativo, inativo
já esteja cadastrado. Adicionalmente, um fornecedor não poderá ser eliminado caso ou solicitações de orçanlento somente se
';,
,. o:;
,I ;:"'. Bancos de dados e informações 245 :1
i:~:
:,1;
trangimentos e confusões, ao efetuar,' 6.5.4 "A LINGUAGEM SQl
ão.
A linguagem SQL é um dos principais recursos disponíveis para acesso e ma- ..:;
possível ~~sativar um fornecedor sem
nip.l!lação de dados em bancos relacionais. Constituída de uma sér~e de comandos
adastrados. Ao atribuir o status de ina- 3,\
em inglês, com uma estrutura razoavelmente próxima daquela utilizada em uma ':.,5i
'~
disponíveis para os usuários e.sistemas
comW1icação entre pessoas, ela se apresenta com um bom nível de pa'dronização,
sejam eliminados.
especialmente quanto à consulta de dados. Apesar disso, há que se considerar a
rencial melhora a qualidade do relacio-
existência de comandos específicos para cada banco de dados, implementado pelos
usência de dados órtaos. Na concepção seus desenvolvedores. llff
o banco de dados não contém qualquer
No que se refere à realização de consultas, sua estrutura básica é a seguinte: ~ ~'~f:
chave primária preexistente. Utilizando
m fornecedores (Figura 6.9).
SELEcr campos desejadps FROM nome da,tabeja it!i
~ ':'
;:~'
Esse comando pode ser traduzido como: ~ ~t
da, torna-se necessário observar as se-
~a chave primária. Nesse caso, o campo
nto será chamado de chave estrangeira

r 6.5.4.1 Select

SELECIONE campos desejadas DA nome da tabela


A seguir, serão apresentadas diversas possibilidades quanto ao uso do SQL.

'.;~
>l~:
'.:;:
'-:".:i
',i.:-
'~
nter valores (ou textos, quando aplicá-
.:,:

A instrução SELECT é, possivelmente, a mais utilizada dentro do SQL, permi-


tindo consultar os conteúdos dos campos de uma tabela. Coqforme visto ant~or­
mente, sua sintaxe é SELECT campos desejados FROM tabeJa(SELECIÜNE caro-
t
;:~
ma tabela com a chave primária s~ exis- ,,;' 'pos desejados DA nome da tabela). Uma outra opção é o uso do asteri~co (*) em lugar
abela relacionada (com a chave estran- '~ ...~~~. . do nome dos campos (SELEcr oi< FRüM tabela). Com isso, serão apresentados os
3H;·ii~
I
,,:-~:
excluir um fornecedor se houverem conteúdos de todos os campos da tabela indicada (Tabela 6.3).
e primária caso ele esteja sendo utiliza-
j~ Tabela 6.3 Exemplo de aplicação de uma consulta do tipo SELECT • FROM tabela.
!4~
,I'~

/~~
Número Nome .Departamento Ramal Salário
1 Daniela Reis RH 2002 2942
~';. :5.;~~:
2 Werner Sanches RH 2196 2082
especial de relacionamento, denominado
ode ter vários 'autores, e cada um desses,
ii 3
4
Flávio Lopes
Maria Martins
Manutenção
RH
2005
2160
3307
4401
~I
~I
ira similar, um professor pode ministrar 5 Tamiris Machado RH 2125 3660
da alW10 ter aula com vários professores. 6 Roberta pinheiro RH 2195 4401
os para muitos um registro em uma ta- 7 Diego Machado RH 2002 5104
dade de registros em uma tabela B. Da 8 Gilda Martins Relações Públicas, 2131 2312
estar associado a qualquer quantidade, 9 Fabiana Souza RH ·2085 4182
10 Fabiana Franco loglstica 2125 5104
~
"""
246 ADMINISTRAÇÃO DE SISTEMAS DE INFORMAÇÃO

6.5.4.2 Where e operadores = > <


TabeLa 6.6 ExempLo de apLicação de uso do
tabeLa WHERE Salario < 800.
Adicionalmente à estrutura SELECT, é possível acrescentar uma condição, res-
tringindo os dados apresentados. A cláusula WHERE,.colocada ao final de uma ins- Numero ' Nome Dep
. trução SELECT, permite restringir os resultados, seja especificando um conteúdo 12 Guilherme Sanches L
para um campo (por exemplo, nome = 'José Mariano'), seja um limite de valores 16 Pedro Lopes
Com O US6 dos operadores < (menor que) ou :> (maior que). As Tabelas 6.4 a 6.8 26 Pedro Costa
27 Roberta Moreno
exemplificam diversos usos:
43 Luciana Palmeira Su
66 Tamiris Souza
73 Manuel Araújo
75 Werner Cabral Di
Tabela 6.4 ExempLo de apLicação de uso do operador = (iguaL) em pesquisa numérica, 76 Daniela Martins
apLicado por meio da consulta SELECT • FROM TabeLa WHERE SaLario - 4421
92 Ferdinando Franco
Numero Nome Departamento Ramal Salario
31 Lúcia Sanches RH 2125 4421 Tabela 6.7 ExempLo de aplicação de uma c
50 Gilda Almeida Diretoria 2002 4421 Departamento = 'RH',
67 Jurandir Chagas Telemarketing 2177 4421
84 Fabiana Fontana Manutenção 2058 4421 Numero Nome Dep
86 Oswaldo Cabral RH 2086 4421 1 Da niela Reis
Obs.: Nos bancos de dados recomenda-se que os nomes de campos não sejam acentuados, pois 2 Werner Sanches
nem todos os bancos de dados aceitam caracteres especiais com essa finalidade. Por essa razão, os 4 Maria Martins
campos Número e Salário não foram acentuados. 5 Tamiris Machado
6 Roberta Pinheiro
7 Diego Machado
9 Fabiana Souza
Tabela 6.5 ExempLo de apLicação de uso do operador> (maior que) SELECT • FROM 19 Luciana Toledo
TabeLa WHERE SaLario > 1000 22 Eliana Franco
23 Marisa Machado
Numero Nome Departamento Ramal Salario
É importante notar que o termo RH foi colocado en
1 Daniela Reis RH 2002 2942
caracteres (texto),
2 Werner Sa nches RH 2196 2082
3 Flávio Lopes Manutenção 2005 3307
4 Maria Martins RH 2160 4401 , Tabela 6.8 ExempLo de apLicação de uso d
5 Tamiris Machado RH 2125
por meio da consuLta SELECT •
3660
Ramos',
6 Roberta Pinheiro RH 2195 4401
7 Diego Machado RH 2002 5104 Numero Nome Dep
8 Gilda Martins Relações Públicas 2131 2312 30 Guilherme Ramos
9 Fabiana Souza RH 2085 4182
Éimportante notar que o termo Guilherme Ramos f
10 Fabiana Franco Logística 2125 5104 Um conjunto de caracteres (texto),
~-'.'"''
~ !'f'~~;j
':'~"
Bancos de dados e informações 249 :.~
Tabela 6.10 ExempLo de apLicação de uma consuLta do tipo SELECT • FROM tabeLa
ORDER BY Nome.
quando da realização de uma consulta,
pessoas, pelo departamento ou mesmo Numero Nome Departamento ' Ramal Salario
58 Carlos Oliveira Manutenção 2125 1163
76 Daniela Martins RH 2102 414
sula ORDER BY campo a uma estru-
1 Oaniela Reis RH 2002 2942
ntados nas Tabelas 6.9 e 6.10.
15 Daniela Sanches Relações Públicas 2161 2749
62 Diego Gonzales RH 2125 2703
7 Diego Machado RH 2002 5104
údos parecidos ou similares dentro de 85 Diego Rosa RH 2101 2494
sociada ao operador % (no Access, a% 53 Eliana Araújo RH 2101 2312
connao em uma pesquisa. Dessa forma, 22 Eliana Franco RH 2103 3345
...._~
32 Fabiana Almeida Marketing 2072 5187
2077 ···2
;-'1
70 Fabiana da Silva RH 5236
. :i
78 Fabiana Fontana RH 2196 4311 ,li
uLta do tipo SELECT • FROM tqbeLa ORDER Manutenção 2058
.~~
84 Fabiana Fontana 4421
I,·
10 Fabiana Franco Logística 2125 5104
mento Ramal Salário i 64 Fabiana Ramos RH 2186
2085
5104
Exterior 2072 3660 9 Fabiana Souza RH 4182
Exterior 2158 1183
pras 2112 2901
pras 2131 5187 é possível realizar pesquisas mesmo que apenas parte do conteúdo de um campo
pras 2101 1092 seja especificado, Por exemplo, a Tabela 6.11 mostra uma pesquisa em que apenas
pras 2003 3248 o primeiro nome de uma pessoa foi especificado. O uso do operador % faz com
pras 2133 5236 que sejam apresentados todos os nomes que começam com Maria, por exemplo,
lidade 2103 2619
a ocorrência Maria% é entendido como Maria + qualquer sobrenome. Na Tabela
lidade 2131 2494
6.11, Maria% foi colocado entre aspas simples pois se trata de um texto.
oria 2112 3493
oria 2002 4421 Diferentemente do que ocorre com o uso do operador '=, com que um con-
uição 2135 5187 teúdo específico deve ser indicado, a cláusula LIKE com o operador % apresenta
uição 2177 1786 maior flexibilidade, admitindo que apenas parte do conteúdo seja especificado. Seu
uição 2067 730 uso é especialmente útil quando se deseja pesquisar dados sem que seja conhecido o
uição 2063 2312 conteúdo exato a ser procurado, tal como encontrar um cliente quando se conhece
que 2177 4731 }
_ 813 apenas uma parte do nome.
que 2152 :.~.
enção
Para restringir a pesquisa, reduzindo a quantidade de registros apresentados, é
2125 1163
enção 2005 3307 possível associar cláusulas, por meio do operador ANO (e), como no exemplo apre-
enção 2003 2889 sentado na Tabela 6.12. Nela, além de a primeira parte do nome ter sido indicada'
enção 2058 4421 (LIKE 'Maria%'), associou-se outra condição (ANO Departamento = 'RH').
.::~
~

250 ADMINISTRAÇÃO DE SISTEMAS DE INFORMAÇÃO

Assim como é possível utilizar o AND, que funciona como um elo de ligação 6.5.4.5 AVG
entre duas condições, também é possível utilizar o OR (ou), possibilitando que duas
Cálculos também podem ser efetuados
condições sejam verificadas ao mesmo tempo (sem q~~ uma interfira na outra). A
sula Ave permite a verificação de médias
Tabela 6.13 mostra um exemplo do uso do OR, no qual dois nomes são pesquisados
6.15 mostram exemplos de aplicação da cl
. de marieira independente.
foram verificados todos os registros de u
valores analisados ficaram restritos ao depa
Tabel~ 6.11 Exemplo de aplicação de uma consulta do tipo SELECT • FROM tabela
WHERE Nome LIKE 'MariaOfo'. 6.5.4.6 MIN

Numero Nome Departamento Ramal Salarlo A cláusula MIN permite verificar o me


4 Maria Martins RH 2160 4401 mérico, conforme demonstrado pelas Tabe
11 Maria Arruda Produção 2177 4076
54 Maria Pinheiro Distribuição 2177 1786
72 Maria Araújo RH 2131 5104 Tabela 6.14 Cálculo de média com a aplica
tabela.

Result
Tabela 6.12 Exemplo de aplicação de uma consulta com o uso de LIKE e ANO por
meio da aplicação da estrutura SELECT • FROM tabela WHERE Nome LIKE 3188,
'Maria%' AND Departamento ~ 'RH'.

Numero Nome Departamento Ramal Salarlo Tabela 6.15 Cálculo de média, incluindo cl
4 Maria Martins RH 2160 4401 pesquisados, com a aplicação
72 Maria Araújo RH 2131 5104 tabela WHERE Departamento ~

Result
, - I ., '.{'
Tabela 6.13 Exemplo de aplicação de uma consulta com o uso de LIKE e OR por 3532,
meio da aplicação da estrutura SELECT • FROM tabela WHERE Nome LIKE
'MariaOfo' OR Nome LIKE 'LucianaOfo'.
I
Tabela 6.16 Uso da cláusula MIN para verifi
Numero Nome Departamento Ramal Salarlo tabela, por meio da aplicação
4 Maria Martins RH 2160 4401 tabela.
11 Maria Arruda Produção 2177 4076
19 Luciana Toledo RH 2125 2287
Result
480,
43 Luciana Palmeira Suprimentos 2125 519
45 Luciana Esteves RH 2101 3660
54 Maria Pinheiro Distribuição 2177 1786 J
I ·:r~:S lT.~bela 6.17 Uso da cláusula MIN para verific
55 Luciana Pinheiro Relações Públicas 2002 5104 tabela, restrito ão departamento
72 Maria Araújo RH 2131 5104 estrutura SELECT MIN (Salário) F
74 Luciana Souza Transporte 2117 5222
Tecnologia de Result
95 Luciana Chagas 2147 4179
Informação 480,
--;-
',_. ~,
Bancos de dados e informações 253
tição de registros (Tabela 6.21). Quando se faz nec~ssário obter apenas uma relação
o armazenado em um registro numé- dos conteúdos de registros mas sem repetição, é possível utilizar o comando SELECT
8. DISTINCT, fornecendo resultados como no exemplo fornecido pela Tabela 6.22.
É possível agregar condições, a fim de restringir o conjunto pesquisado, obtendo
informações mais específicas (Tabela 6.23).
de de registros em uma tabela, sendo
6.5.4.10 Group by
conjunto pesquisado. As Tabelas 6.19
o dessa cláusula. No primeiro deles, é A cláusula GROUP BY permite agrupar resultados apresentados, facilitando sua
eis na tabela (total de funcionários da interpretação. O seu u,so possibilita agregar valores, como no exemplo apresentado
), é informada a quantidade de pessoas pela Tabela 6.24.
LECT convencional, são retornadas to- Tabela 6.21 ReLação de departamentos retornada peLa consulta SELECT Departamento
FROM tabela. Constata-se a ocorrência de várias repetições.
alizada, mesmo quando ocorre a repe-
Departamento
RH
ar o maior valor do campo SaLário em uma RH
strutura SELECT Max (SaLário) FROM tabeLa. Manutenção
RH
o RH
Relações Públicas
RH
Logística
tabela a partir da apLicação da cláusuLa Produção
T (Nome) FROM tabeLa. Logística
SAC
o Estoque
Rela.ções Públicas
:l Estoque
TEi!.emarketing
RH
dem a uma condição WH ERE a partir da
RH
estrutura SELECT COUNT (Nome) FROM
R H'. Logística
Compras
do Compras
Tecnologia de Informação
~

254 ADMINISTRAÇÃO DE SISTEMAS DE INFORMAÇÃO

Tabela 6~22 Relação de departamentos retornada pela consulta SELECT DISTINCT . Tabela 6.24 Quantidade de funcionários por
Departamento FROM tabeLa. expressão SELECT Departamento,
Departamento.
I.:.".-},
Departamento
Departamento .......
Comércio Exterior
Comércio Exterior
Compras
Compras
Contabilidade
Contabilidade
Diretoria
Diretoria
Distribuição
Distribuição
. Estoque
Estoque
Logística
Logistica
Manutenção
Manutenção
Marketing
Marketing
Produção
Produção
Projetos
Projetos
Relações Públicas
Relações Públicas
RH
RH
SAC
SAC
Suprimentos
Suprimentos
Tecnologia da Informação Informação
Tecnologia da Informaçã
Telemarketing
Telemarketing
Transporte
Transporte

Tabela 6.23 ReLação de departamentos retornada pela consulta SELECT DISTINCT


Departamento FROM tabeLa WHERE SaLário < 1000. Foram apresentados 6.5.4.11 Between
os departamentos que tenham peLo menos algum funcionário com salário
inferior a 1000. A cláusula WHERE permite selec~onar
pecífica que funciona como filtro. No ca
Departamento
:WHERE determina um valor máximo ou
Distribuição
Estoque "com o uso da cláusula BETWEEN, é poss
Logística que serão apresentados, impondo um lim
RH 6.25 e 6.26).
Suprimentos

o oposto da cláusula BETWEEN é o N


,1,.~/:&: "._, que não será apresentado, conforme os
o inverso das tabelas 6.25 e 6.26.
Y.,
::'i'
;(.~
·.4~

---===.. . - - . '-..- '_. -%P~


~.~.
.!~~-; Bancos de dados e informaçõ~s 257
é possíveL determinar um intervaLo para
t~~~
" Tabela 6.27 ResuLtado da apLicação da consuLta SELECT * FROM tabeLa WHERE SaLário
abeLa foi obtida com a apLicação da
NOT BETWEEN 500 ANO 1500. Os saLários apresentados estão abaixo de
WHERE SaLário BETWEEN 500 ANO 1500. 500 ou acima de 1500.
.: ....
amento Ramal Salário Número Nome Departamento Ramal Salário
pras 2101 1092 ,. ~:: 1 Da niela Reis RH 2002 2942
;:~..: 2 Werner Sanches
H 2161 519 RH 2196 2082
';;;' 3 Flávio Lopes
H 2085 730 " Manutencão 2005 3307
H 2147 1163 \~;-' 4
5
Maria Martins RH 2160 4401
Tamiris Machado
H 2086 1163 ~1~· RH 2125 3660
,~:~.. 6 Roberta Pinheiro RH 2195
H 2125 1143 ,.~;:1'
4401
7 Diego Machado RH 2002 5104
!~i
mentos 2125 519 8 Gilda Martins Relacões Públicas . 2131 2312
H 2077 1163 9 Fabiana Souza RH 2085
i~,~ 4182
o Exterior 2158 1183 ~:;.
10 Fabiana Franco LOQística 2125 5104
'lIt 11 Maria Arruda Produção 2177
tenção 2125 1163 4076
12
RH 2132 730 ~1: Guilherme Sanches Logística 2103 414
13 Werner Martins SAC 2177
oque 2152 813 5187
14 Gilvan CabraL estoque 2177 4731
buição 2067 730 15 . Daniela Sanches Relacões PúbLicas 2161 2749
RH 2011 1163 16 Pedro Lopes Estoque 2112 414
RH 2002 1261
Tabela 6.28 ResuLtado da aplicação da consuLta SELECT * FROM tabeLa WHERE Nome
NOT BETWEEN 'Mo;.' AND 'Ro;.:
Número . Nome Departamento Ramal Salário
1 Daniela Reis RH 2002
I Ramal Salário 2942
2 Werner Sanches RH 2196 2082
RH 2160 4401 3 Flãvio Lopes Manutenção 2005 ·3307·
ducáo 2177 4076 5 Tamiris Machado RH 2125 3660
oaue 2112 414 6 Roberta Pinheiro RH 2195 4401
7 DieQo Machado RH
bilidade I 2131 2494 2002 5104
8 Gilda Martins . Relacões Públicas
RH I 2101 3660
9 Fabiana Souza RH
2131 2312
2085
RH 1 2161 519
~,~.- -
10 Fabiana Franco Logística 2125
4182
- 5104
... ::J .... ......
12 Guilherme Sanches
- I 2131 3125
13 Werner Martins
Logística 2103 414
SAC 2177 5187
buicão I 2177 1786 14 Gilvan Cabral Estoque 2177 4731
RH I 2004 4455 15 Da niela Sa nches Relacões Públicas . 2161 2749 ;
o Exterior 2158 1183 . 17 Helena Toledo LOQística
'';
2125 1786 ~:
.<
19 Luciana Toledo
RH ' 2131 5104
20
RH 2125 2287 t.i; -
Werner Marcondes Compras
RH 2131 414
0_' .21 ,.
Vania Lopes
2101 1092 • - . -- --- .t!-
Estoque 2003
- <#-_. - --:r~ - - -
RH 2086 4421 5063
22 Eliana Franco-~ - . *RH • •. 2103 . 3345
.
mpras - - 2133 5236 24 ;~
Gilvan Mourão LOQística 2177 5187 't~·'j.
RH I 2196 4052 25
~
Guilherme Mourão Compras 2112 2901
!'1!1!:
·.. 1
. ...
• ---

~
258 ADMINISTRAÇÃO DE SISTEMAS DE INFORMAÇÃO

6.5.4.13 Having
As Tabelas 6.30 e 6.31 apresentam resultad
A cláusula HAVING oferece possibilidades adicionais quanto à especificação de conforme mencionado, é facultativo en1 cas
.condições, possibilitando o seu uso com a cláusula C<?.UNT. Por exemplo, em uma
pesquisa, deseja-se obter uma relação de filiais que tenham mais de 500 clientes Tabela 6.30 Resultado da aplicação da cons
.. WHERE Salario > 5150 ORDER B
cadastrados. Uma primeira o~!ão seria o uso da consulta:
-, .Nome
SELECT Filial, COUNT (NomeCliente) FROM tabela WHERE COUNT
Fabiana ALmeida
(NomeCliente) > 500
Fabiana da Silva
A estrutura dessa consulta está errada e não seria processada, uma vez que a Geraldo Sanches
Gilda Cabral
cláusula WHERE não consegue trabalhar associada a uma cláusula COUNT. Nesse
GiLvan Mourão
caso, a solução seria o uso do HAVING:
Guilherme Toledo
SELECT Filial, COUNT (NomeCliente) FROM tabela GROUP BY Filial Jurandir Fontana
Luciana Souza
HAVING COUNT (NomeCliente) > 500
Pedro Lopes
A Tabela 6.29 apresenta o resultado do processamento da consulta com a cláu- Rodolfo Cruz
sula HAVING: Silvia Rosa
Ubiratan Reis
6.5.4.14 ASC e DESC Vera Sanches
Werner Martins
Além de ordenar os registros é possível indicar se isso será feito em ordem
crescente ou decrescente. Isso pode ser feito com o uso dos complementos ASC
: Tabela 6.31 Resultado da aplicação da cons
(ascendente) ou DESC (descendente) associados à cláusula ORDER BY. É im- WHERE Salario > 5150 ORDER B
portante notar que o uso da cláusula ASC é optativo, uma vez que essa é a con-
Nome
dição padrão adotada pelo ORDER BY. As Tabelas 6.30, 6.31 e 6.32 mostram
Fabiana Almeida
alguns exemplos. Fabiana da Silva
Geraldo Sa.nches
Tabela 6.29 Resultado da aplicação da consulta SELECT Filial, COUNT (NomeCliente) Gilda CabraL
FROM tabela GROUP BY Filial HAVING COUNT (NomeCliente) > 500. Gilvan Mourão
Guilherme Toledo
filiaL ResuLtado Jurandir Fonta na
Curitiba 510 Luciana Souza
SaLvador 530 Pedro Lopes
BeLo Horizonte 621 Rodolfo Cruz
Recife 530 Silvia Rosa
Rio de Janeiro 728 Ubiratan Reis
Vitória 502 Vera Sanches
Porto ALegre 610 Werner Martins
~i~~:
,:s;:;. ~~
;lt~·
'l,:'~i
Bancos de dados e informações 261
~:;' ~;~~<
a sELECT Nome. salario FROM tabela :.:;';~.; determinada condiçãO, conforme pode ser visto na Tabela 6.35. Nessa pesquisa,
'lo ~:"":".
Nome DEsC. foram desconsiderados os registros dos departamentos Diretol"ia, RH e Rela-
o:: ções Públicas.
Salari,o...
5187
5236 ~ ~~. ,Tabela 6.33 Resultado da aplicação da consulta sELECT Nome, Ramal FROM tabela
WHERE Nome NOT UKE '0%' ORDER BY Nome. Os registros com o campo
5187
nome iniciando com a letra Oforam excluídos pelo uso do NOT UKE '0%:
ti'
5187
5187 Nome Ramal
5236 Carlos Olivei ra 2125
5222 Eliana AraÚjo 2101
'5187 Fabial1a Almeida 2072
5187
~I..
Ferdinando Franco 2077
5187 Flávio Lopes 2005
5222 Geraldo Gonzales 2063
,.
)~{it\
_
5187 Gilvan Bastos 2002
~~ ~~~~.::
5236 Guilherme Almeida 2196
5187 Helena Toledo 2125
!~I
Jurandir Reis 2125
Lúcia Sanches 2125
Maria Pinheiro 2177
fornece grande flexibilidade na pesquisa Oswaldo Cabral 2086
expresso por NOT LIKE - pode ser
conforme apresentado pela Tabela 6.33. "Oj i;'\<;;', , Tabela 6.34 Resultado da apliCação da consulta SELECT Nome, Departamento FROM
tabela WHERE Departamento IN ('Diretoria', 'R H', 'Relações Públicas') ,
ORDER BY Departamento, Nome.
11
ntervalo é possível utilizar as cláusulas Nome Departamento
quação. Apesar disso, por vezes pode Gilda Almeida Diretoria,
ser pesquisados apenas em determina- Tamiris Fontana Diretoria
Daniela Sanches Relações Públicas ! ~
uso da cláusula IN, conforme exemplo
Gilda Martins Relações Públicas
foram pesquisados nomes dos seguin- "':"~
Luciana Pinheiro Relações Públicas
es Públicas. Note-se o uso da cláusula Vera Sa nches Relações Públicas :~.~
ordena os nomes apresentados por de- Geraldo Sanches RH í!:'
~~
pelo nome. Jurandir Reis RH
Lúcia Sanches RH '~.~
Marisa Machado RH ....
•.~
o inverso ao da cláusula IN apresen- Ubiraci Farias RH
:..~
Vanessa Souza RH
ultados os registros contidos em uma
,:"-:;
Ll
-~------ o

~
262 ADMINISTRAÇÃO DE SISTEMAS DE INFORMAÇÃO

6.5.4.18 Consultando tabelas reladonadas Tabela 6.36 Continuoção.


Com freqüência, um bahco de dados possui mais de uma tabela, sendo necessá-
Código· Pro
rio realizar consultas que envolvam tabelas relacionad~.s. Com o SQL isso é possível, 10 Ba
bastando indicar as tabelas utilizadas e associar cada campo pesquisado a sua res- 11 D
pectivatabela (Figura 6.10). A Tabela 6.36 mostra um exemplo de uma.consulta a 12 Pão de
tabelas relacionadas. 13 Req
14 Ma
15 Mar
Tabela 6.35 ResuLtado da apLicaçãó da consuLta SElECT Nome, Departamento FROM
tabeLa WHERE Departamento NOT IN ('Diretoria', 'RH', 'Relações PúbLicas') 16 Iog
ORDER BY Departamento, Nome. 17 Ba
18 To
Nome Departamento 19 Li
Werner Ma rcondes Compras 20 Lar
GiLvan MacieL Contabilidade
Manuel Esteves Contabilidade
Figura 6.10 ConsuLta simuLtânea, com uso
Vanessa Sanches Estoque pertencentes ao mesmo banco
Vania Lopes Estoque tabelas, foi utilizado para ide
Teodoro Souza Manutenção
Fabiana Almeida Marketing
Maria Arruda Produção
Ubiraci Martins Produção'
Vania Mota Projetos
Werner Martins SAC
Luciana Palmeira Suprimentos
tabeLa produto
cbdi~o produto
Tabela 6.36 ResuLtado da apLicação da consuLta SElECT TabeLa_Produto.Codigo, TabeLa_ 1 café ".
Produto. Produto, TabeLa_Preco.Preco FROM TabeLa_Preco, TabeLa_Produto 2 Leite
3 OVos
WHERE TabeLa_Produto.Codigo = TabeLa]reco.Codigo 4 Farinha. .•.
chave I' 5 .Macarrão
primária 6 Achocolatedo
Código Produto Preço
1 Café 1,22
SELECT Tabela]roduto.Codig
2 Leite 1.36 FROM Ta
WHERE Tabela]ro
3 Dvos 1,56
4 Farinha 2.36
5 Macarrão 2.32 1 C
- 2 L
6 Achocolatado 4.98 3. 'O
7 Pão 12,39 4 F
5 M
8 Molho 7,01 6 .A
9 Azeite 9,12
~."
Bancos de dados e informações 265
L Aproveitando a tabela criada anteriormente com a instrução CREATE TABLE,
portante considerar que o SQL fornece foi elaborado o exemplo a seguir, no qual um novo registro é cadastrado:
utenção d~. um banco de dados. É pos-
INSERT INTO Cadastro_Funcionarias
os registros ou alterar registros preexis-
(Codigo_Funcional, Nome, Departamento, Cargo, Salario)
ens.
VALUES (29, 'Geraldo M~ciel', 'Financeiro', 'Gerente', 4500.21)
Obs.: usualmente, as casas decimais de números reais (campo do tipo FLOAT e similares)
tainente no sciftware administrativo uti- são separadas com pontos em IU8ar de vír8ulas.
s, ou via instrução SQL com o uso da
trado a seguir: Uma outra possibilidade é o uso da instrução INSERT para duplicar o conteúdo
de uma tabela, o que pode ser bastante útil para a re!Jlização de testes, sem que os
ampo_l TIpo_Campo_1 (capaddade*), .
dados originais sejam prejudicados. Nesse caso, o INSERT é utilizado junto com a
*), ... , Nome_Campo_n TIpo_Campo_ n
instrução SELECT:
de*))
INSERT INTO Tabela_Copia SELECT * FROM Tabela_Ori8inal
a campos do tipo CHAR, VARCHAR, TEXT
o exemplo mostrado a seguir insere na Tabela_Teste todos os registros contidos
nstrução utilizada para criar uma tabela na tabela Cadastro_Funcionarias. É fundamental considerar que todas as tabelas
s seguintes campos: devem ter a mesma estrutura e capacidade quanto à extensão dos campos:
os inteiros), INSERT INTO Tabela_Teste SELECT * FROM Cadastro_Funcionarios
6.5.4.22 Update
capacidade para 65 caracteres.
A instrução UPDATE altera o conteúdo de um ou mais campos em um ou mais
capacidade de 20 caracteres.
registros, sendo de grande utilidade na manutenção e atualização de bancos de da-
ade para 15 caracteres.
dos. Sua estrutura básica é mostrada a seguir:
(Codigo_Funcional INT PRIMARY UPDATE Nome_Tabela
VARCHAR (20), Cargo VARCHAR· SET campo_l = 'conteúdo'
FLOAT) WHERE campo _x = valor
Os dois exemplos apresentados a seguir mostram a atualização da tabela Cadas-
tro_ Funcionarios, seja alterando o salário de um funcionário específico, seja .modi-
serir um novo registro em Uma tabela, ficando o seu cargo.
guir:
UPDATE Cadastro Funcionarios
mpo_I, campo_2, ... , campo_n) SET Salario 5200 =
simpes', valor, ... , valor) WHERE Codigo_Funcional = 29
,'~

'~
266 ADMINISTRAÇÃO DE SISTEMAS DE INFORMAÇÃO

ou Figura 6.11 ResuLtado da apLicação do co


. ' . . 'Roberta Pinheiro'.
UPDATE Cadastro_Funcionarios
Número Nome Oeoartamento
... : . , SETCargo ~'Diretor' ;>," . '. 1 Daniel Reis RH
2 Werner Sanches RH
::~;wHERE'c:odigo Juncioluu = 29 ..' 3 Flávio lones Manutenrão
.', 4 Maria Martins RH
É possível efetuar a manutenção de diversos registros com uma única instrução. 5 Tamiris Machado RH
JS Roberta Pinheiro RH
O exemplo mostrado a seguir aumenta em R$ 1,00 os preços de produtos cujo có- 7 DieCJo Machado RH
8 Gilda Martins Relarões Públicas
digo seja menor ou igual a 10: 9 Fabiana Souza RH
10 Mariana Franco looística
11 Maria Arruda Produrão
UPDATE Tabela_Preco SETPreco = Preco + 1WHERE Codigo < = 10 12 Guilherme Sanches Lonfstica 2
J3 Werner Martins
Número No
14 Gitvan Cabral

DELETE FROM TabeLa WHERE Nome - 'R


6.5.4.23 Detete O 4 Maria Martin
'\
Com o uso de SQL é possível apagar registros com facilidade. Para isso, é utiliza- Tamiris Mac
Dieqo Macha
"H~
do o comando DELETE, sendo a sua sintaxe a seguinte: 8 Gilda Martin
9 Fabiana Sou
10 Mariana Fra
DELETE FROM Nome_do_Tabela WHERE Condição 11 Maria Arruda
12 Guilherme S
13 Werner Marti
A condição pode expressar um registro específico (por exemplo, WHERE Nome 14 Gilvan Cabra
15 Daniela Sanc
= 'Roberta Pinheiro' ou WHERE Codigo = 126) ou um conjunto de registros 16 Pedro Looes

(WHERE Nome LIKE 'Maria%' apagará todos os registros cujo campo Nome tem
o conteúdo iniciado por Maria). A Figura 6.11 mostra um exemplo de aplicação do
comando DELETE.
É importante lembrar que, em caso de tabelas relacionadas que possuam Para otimizar o desempenho de um ba
integridade referencial, um registro não poderá ser apagado se possuir uma que funcionam como uma espécie de catá
chave primária utilizada por outra tabela. Nesse caso, será necessário apagar o dos armazenados. Fazendo uma analogia
registro filho (com a chave estrangeira) para depois apagar o registro pai (com um sumário ou índice remissivo. Certam
a chave primária). Dessa forma, não será possível apagar um fornecedor se a ele conteúdos em um livro mesmo sem -ütiliz
estiver relacionado um ou mais produtos. Os produtos deverão ser apagados em tanto isso demandará um tempo maior (q
primeiro lugar e, somente então, o fornecedor poderá ser finalmente excluído de páginas).
da tabela. Em um banco de dados, a situação é
registros, maior será o tempo empregado
utilização de índices, o tempo gasto em co
6.6 A IMPORTÂNCIA DOS ÍNDICES
substancialmente reduzido.
A velocidade de acesso a dados, assim como a performance na realização de de- Por exemplo, ao longo dos anos um ho
terminadas operaçõ.es, é uma preocupação constante dos administradores de banco referências sobre um grande número de
de dados (DBAs no jargão té=ico, uma abreviatura de Database Administrators). eletrônico. Uma equipe interna de médico
~""
Banco~'de dados e informações 269
isar no banco de dados o termo "Infec- Figurá 6.ii Formas básicas de aplicação de comandos SOL em um banco de dados.
o similar à apresentada a seguir: .. ~-"
'Jf=~ .~CD

't,'
':~:~'
escricao LIKE '%Infecção hospitalar%'
'é1:">"§~:': 'i-: ; {;: c ~U
o',
redura na tabela Prontuario o que pode
ndo do número de registros existentes e
® I '.
=,;.
~\,
~ I.... :
.:'.
~.,
Comandos SOL são apLicados

"""'"""""~ -
',1f$ ---..:
.: ~' ...~
.. '~~:;~j

.i
j~;:tl.~:~~ .~~ ~ o equipamento do usu~rio roda um
programa. Instruç6es SOL co~tidas
nesse programa executam açoes no.
banco de dados. Oacesso ocorre
da um deles, diretamente no SGBO - Sistema
., ..,,\@ via rede (LAN, MAN ou WAN)
dados passa a contar com uma espécie
Gerendador do banco de dados, seja
pela digitação direta em uma
··;I~l '
,J~ L ••' ®
interface ou pela execução de
os registros onde elas ocorrem. Ao rea- Stored Procedures.
ápida identificação dos locais (registros) ~ ,.',:{~r;;
:l:·Jl~.
Forma de acesso utilizada para a 0:;:: . . . .;" , ,
realização de manutenção do banco Banco de .dados . ',<."
(criação de tabelas, alteração de
svantagens. Uma delas é que os proce- . ~ ~~;~ registros etc.) ou para definição de O equipamento do usuãrio roda um
" :~~:::" grupos e direitos de usuârios. programa que adona instruções SOL
~"t.
êm sua performance prejudicada. Outra , :~<:
armazenadas no banco de dados
I ..,:":
(Stored Procedures). O acesso ocorre
co, que tende a ser significativo. ..,~:~~{ via rede (LAN, MAN ou WAN)
o de índices poderá ser muito interes- ;:.:
pra via Internet e livrarias on-line, cujo ~1~1~~
o. De qualquer forma, a correta escolha T:;;;
er objeto de análise, preferencialmente, '?~ Formas de acesso: os programas podem ter acesso ao banco de dados via rede
l~
nistrator), da estrutura das tabelas, fluxo local (forma mais usual) ou via redes MAN ou· WAN. Dependendo da velocidade da
amentos, dentre outros itens. linha utilizada, mesmo redes de longa distância podem ter desempenho· muito bom,
"'IC possibilitando o acesso ao banco de dados com performance equivalente ao de uma
~, ~~:~. rede local (LAN).
SQL 1il!~ Dependendo da fo'rma de acesso e de como o programa foi desenvolvido. sem-
pre qu~ uma consulta for realizada ela pesquisará diretamente o banco de dados
as de diversas maneiras. É importante l~) ..,';'-",
(técnica denominada dynaset, abreviatura de dynamic set) ou' então. quando o
os sejam iguais no que se refere a consul- programa conectar-se ao banco de dados. será obtida uma espécie de fotografia na
las ou registros e inserção de conteúdo,
ter repercussão no desempenho obtido
i memõria dos registros disponíveis (processo denominado de snapshot). Cõrtes e
Scherr (2005) comentam que a primeira forma de acesso (pesquisa sendo refeita a
lI
cada solicitação) pode ser muito útil em sistemas multiusuários. nos quais os da-
~, !ft dos podem ser modificados constantemente. Com isso, a pesquisa sempre refletirá
UM PROGRAMA uma situação atual dos registros obtidos.
Também é necessário considerar que o dynaset pode aumentar o tráfego na rede,
ograma que trabalha com um banco' de
;::,~:': . caso as consultas tenham de ~.er efetuadas com muita freqüência. situação essa qúe
ara a realização de consultas, inclusão e
:'~
deve ser analisada em função da natureza dos negõcios.
das nas instruções do programa (Figura Por outro lado. no snapshot ("fotografia" dos dados), com o decorrer do tempo,
mento é exe~utado no computador do , o quefór apres·entado pode não condizer com a realidade diante dá possibilidade de
mento onde está o banco'de dados. ;~~ alterações terem sido realizadas nos registros disponiveis.
4i1~
~--

270 ADMINISTRAÇÃO DE SISTEMAS DE INFORMAÇÃO

Essa forma de acesso pode economizar tráfego na rede, mas também demandar sua execução, eLa será feita diretamen
uma capacidade maior de memória e processamento de cada estação conectada via cursos da estação-cliente.
rede ao servidor de banco de dados. View: é uma espécie de tabeLa virtua
Essa soLução pode ser adequada a serviços de atendimento ao consumidor, pois ou consulta SQl), atualizada dinamicame
não ocOrrem aLterações freqüentes nos dados armazenados. Por exempLo, se uma em- pLifica o processamento de ações (especi
presa faz aLterações de dados apenas uma vez por dia - no início da manhã ou duran- muita freqüência. Por exempLo, se os fun
te a noite - o snapshot pode ser uma boa aLternativa, reduzindo o tráfego na rede. uma determinada pesquisa, como tabeLa
Mas isso vai requerer maior capacidade de cada estação na rede. uma View poderá reduzir o tempo de p
Por outro Lado, em serviços de teLemarketing em que ocorrem aLterações freqüen- sempre estará pronto para ser apresentad
tes nOS bancos de dados - preços, quantidades em estoque, prazos de entrega, por Trigger: é uma rotina executada no b
exempLo -, o acesso via dynaset pode ser uma meLhor aLternativa, uma vez que evento ocorrer. Por exempLo, quando um
mostra registros mais atuaLizados. estoque, uma Trigger poderá ser executad
Vantagens desse tipo de solução: com a utiLização de instruções SQl contidas por e-moi!. Isso automatiza procediment
em programas, o processamento é distribuído, ocorrendo - conforme mencionado usuários ou do administrador do banco d
- em dois computadores distintos (estação e servidor de banco de dados), o que Essas são soluções muito utilizadas pe
pode ser interessante a fim de aLiviar a carga de trabaLho do servidor. corporativas, tendo em vista a facilidade
Desvantagens desse tipo de solução: quando aLguma instrução SQl contida nos de performance.
programas tiver de ser aLterada (devido a mudanças de nome de um campo ou na Formas de acesso: se um programa te
estrutura de uma tabeLa), todos os programas terão de ser substituídos, o que pode mente, seja via LAN, MAN ou WAN), a ex
acarretar uma série de probLemas, especiaLmente em grandes redes com dezenas ou uma View poderão ser soLicitados, desde
mesmo centenas de equipamentos. identificado por um lagin e senha) tenha
Como o processamento é distribuído, pode ocorrer um aumento do tráfego da Vantagens desse tipo de solução: é
rede, acarretando perda de performance da rede como um todo, caso um número configuradas para armazenar os bancos
excessivo de soLicitações sejam transportadas ao mesmo tempo. um servidor para esse fim. Esses equipa
cessadores, boa quantidade de memória
6.7.1.1 Utilização de Stored procedures, Views e Triggers
mento rápidos e com eLevado grau de c
Os bancos de dados para uso profissional têm a capacidade de armazenar inter- cedures, Views e Triggers podem ser exe
namente rotinas escritas em SQL. Dentre essas rotinas, tem-se as Stored procedu- com eLevado grau de soLicitação, sem o
res, Views e Triggers, que podem realizar procedimentos bastante complexos. Os Quando se fizer necessária aLgu~ã aL
programas que acessam o banco de dados podem solicitar a execução dessas rotinas, Trigger, eLa pode ser impLementada diret
tenham de ser aLterados. Isso simpLifica
que serão processadas integralmente pelo banco de dados (no computador onde ele
não será necessário substituir programas
está armazenado), contrastando com o uso de rotinas ou comandos SQL contidos
da rede.
nos programas (Figura 6.12 - 2). Desvantagens desse tipo de solução
mento onde o banco de dados está arma
Stored procedures: em Lugar de executar comandos· e consuLtas em um pro- Como o processamento será efetuado prin
grama, é possíveL preparar rotinas específicas para as tarefas mais usuais, man- o computador poderá ficar sobrecarregado
tendo-as armazenadas no próprio banco de dados. Quando um programa demandar taneamente, por isso é essenciaL a aquisiç
expansão.
~r~
"'I" ~'
~~.~ :"~;:'- .~
(~ '~#;
.~' ~~~:~:.

..•
Bancos de dados e informações 273

; .A~.;:·
'-;' {;";
A Figura 6.13 mostra uma situação' em que uma rede local (LAN) conta com
o Sistema Gerenciador do Banco de um servidor exclusivo para gerenciá-la (servidor de rede) e servidores dedicados
mente é considerada nos casos de ma- ao banco de dados a ao acesso à Internet. Ao 'conectar-se à rede, o usuário tem seu
te o desenvolvimento ou manutenção l08in e senha autenticados pelo servidor de rede, o qual verificará a quais serviços
a pessoa tem acesso. Quando o usuário necessita utilizar o banco de dados, duas
m programas administrativos que per- possibilidades podem ser verificadas em relação à sua autenticação:
tabelas, alteração em campos já exis-
definição de chaves primárias, indica- ../ será necessário efetuar um segundo l08in, informando o nome do usuário e a
ão de integridade referencial, configu- sua senha para que o servidor de banco de dados verifique quais os serviços
ecíficos (o que cada grupo pode fazer disponíveis (consulta, inclusão,' alteração ou exclusão de dados) e quais as
utras facilidades. tabelas a que essa pessoa tem acesso.
amentas administrativas, o acesso a elas " não será necessário efetuar um segundo l08in para acesso ao banco de dados,
danos possam ocorrer na estrutura do uma vez que ele já foi feito no acesso inicial. Com base nessa informação, o
essados por usuários não autorizados. banco de dados terá condições de verificar as permissões de acesso..
De maneira similar, qu~do um usuário vai utilizar a Internet via rede local, po-
ONAIS OPERADOS EM REDE derá - ou não - ser necessário fornecer um l08in e senha, dependendo do nível
verificada com maior freqüência é a de controle pretendido e até mesmo dos srjtwares de segurança utilizados.
m rede (LAN, IvlAN e WAN ou seus Embora o mais usual seja a utilização de bancos de dados.em redes locais (LAN),
e os usuários de aplicativos e sistemas tem crescido o uso em redes de médio e longo alcance (MAN e WAN), devido à
de dados e informações. disponibilidade de linhas de comunicação de alta velocidade e preço acessível. Dessa
'~'~~i' forma, O acesso ao banco de dados poderá ser aberto a outras redes externa's, via
- Sistemas Integrados de Gestão. servidor de Internet, por exemplo (Figura 6'.13).
Nesse caso, os acessos e>..1:ernos são recebidos por um servidor, que verifica e
autentica o usuário, permitindo o acesso ao banco de dados corporativo. Com essa
O E INTERNO
'~1
.-:~ ..:~~:.

forma de acesso ao banco de dados"é possível identificar as seguintes ·vantagens e


problemas:
','.1Z~:.

;1
ilizado em rede, é necessário que seja
izada. Caberá a esse servidor receber e " Vantagens: como ~ base é única, todos os uSuários (internos e e>..1:ernos) tra-
as pela rede" distribuindo os resultados balham com um mesmo conjunto de dados, sem problemas de discrepância
s. ou desatualização de ~ados (que podem ocorrer quando do uso de múltiplas
dados no mesmo servidor que gerenci.a ~.~ bases).
por uma questão de performance, re- "o:. ::-~;~.f' '. " Problemas: ao permitir o acesso e>..1:erno ao' banco de 'dados, podem ocorrer
pendente. .~~ .:;~~. . problemas com a segu;ança, criando condições - ao menos em t~~e - para
J~
acessos indevidos de hackers.
~
274 ADMINISTRAÇÃO DE SISTEMAS DE INFORMAÇÃO

Figura 6.13 Acesso ao banco de dados corporativo em redes remotas. •. Figurá 6.14 . Uso de banco específico para
. conteúdo do banco de dados
LAN
(escritório central) lnternetejou
linhas dedicadas . LAN
IID -c:::J t:>. . . empresa de vendas = •
8~D ~~
tl~ (gID O banco de dados
corporativo ê
acessado diretamente.
o lIUl! p.aq~ lIqilinT
4 .'

. '.
~
..
",,_

.
on·line
~~ 8.

~
E •
8 ~
~~ I[ "
I'r(lcessos, mas
também pode traZf'r .
il ~'\ 10 ]i~
problemas de Clientes na web ou
seguranç/l. acesso corporativo

Os usuários externos podem ter problemas com a velocidade de acesso, uma cundário, eventuais perdas ou alte
vez que ela dependerá não apenas do link utilizado pelo servidor de acesso, compensadas pela existência desse
mas também disponível em cada escritório regional. Os problemas com a velocidade d
O uso de linhas dedicadas à transmissão de dados, contratadas nas operado- mente, para usuários ou escritório
ras de telecomunicação, poderá reduzir significativamente a ocorrência desse de alta velocidade.
tipo de problema. É necessário considerar que a atua
ser permanente, evitando que o b
6.8.2 USO DE BANCOS DE DADOS ESPELHO PARA REDES MAN OU WAN não condizentes com a realidade (
Outra forma de acesso aos dados corporativos é apresentada na Figura 6.14, com quantidades em estoque reduzidas
a utilização de um banco de dados espelho no servidor de acesso remoto. Como o
banco de dados principal (corporativo) e o banco de dados espelho estão na mesma 6.8.3 USO DE BANCOS DE DADOS E
rede, a atualização de dados poderá ser feita rapidamente com a utilização de Trig- OU PROVEDOR DE ACESSO PA
gers (rotinas executadas automaticamente nos bancos de dados). Sobre as vantagens Uma solução que tem sido utiliiada c
e desvantagens desse recurso, é possível ressaltar as seguintes questões: aquelas voltadas para a venda on-line) é
provedor de acesso ou Data Center, conf
./ Vantagens: a segurança tende a ser maior, uma vez que o banco de dados Grandes provedores de acesso e D
corporativo estará mais preservado em relação a acessos externos. que controlam o acesso físico e as re
Como o processamento interno e o externo ocorrem sobre bancos de dados truturas e recursos para proteger servi
diferentes (processamento distribuído), é possível que isso resulte em um externos.
ganho de performance para todos os usuários. Adicionalmente, eles possuem recurs
./ Problemas: os problemas de segurança persistem, com a possibilidade de gurança), com instalações à prova de fog
alteração de dados contidos no banco espelho. Como esse é um banco se- dispositivos de armazenamento de dados.
~'~
I
J Bancos de dados e informações 277
t
m Data Center ou provedor de acesso,
adotar procedimentos específicos, a fim de evitar problemas com a utilização
anco de dados corporativo. de dados errados.

Data center ou
provedor de acesso 6.8.4 USO DE BANCOS DE DADOS ÚNICO EM DATA CENTER
~
oo~
<:J

Internet" e/ou
Linhas dedicadas
Rotinas especiais
[>­
e':
~ ~ ~
1·i ~
.g.~ s"ª
~.;:

Uma tendência cada vez mais efetiva entre empresas que. atuam em diversos
países é a adoção de um banco de dados único, hospedado em um pata Center,
atualizam o banco de
dados utilizado na Y/eb.
[ ~~~
conforme esquematizado na Figura 6.16.
I
Internet
Pode oc.orret um certo
delay (retardo) na e/ou linhas
Essa arquitetura de hospedagem, com a utilização de um banco de dados
iltuillh:il~áo do banco dE:
1:
I··
dedicadas único em escala mundial apresenta vantagens e desvantagens, conforme relatado
dados web.
1"1';
a seguir:
J#
..
../ Vantagens: a empresa tem acesso imediato a todos os dados e informações
Clientes na web OU
acesso corporativo
I
I

necessários, sem necessidade de pedir a uma filial que providencie a emissão


de relatórios sobre faturamento ou movimentação de recursos.
Isso agiliza a tomada de decisões em escala mundial, sendo muito adequado
a empresas que atuam com a comercialização de commodities, agregam pro­
dutos oriundos de diferentes unidades ao redor do mundo, trabalham com
'.i.
acidentes, falhas de equipamento ou movimentação de cargas em escala transcontinental, efetuam investimentos
no setor financeiro internacional, e diversas outras possibilidades.
de servidores operando em paralelo.

idor ou banco de dados em uso, outro

peração, com os mesmos dados e os . Figura 6.15 Uso de banco de dados único em Data Center.

dança é efetuada em tempo real, sem Data center


~
~ ~
oo
mance. Como os demais recursos, esse LAN Internet e/ou
empresa de vendas linha dli!dicada ~ ti!
~ ~
on-line -<l t>
A
<li Aempresa mantem o seu
banco de dados em um
date! cel"lter. fazendo

W
C'
l ~
~
'I'
J:
o
~
~
edagem do banco de dados e do servi­ aceno remoto.por linha
!
dedicada oU Internet. Internet
ada, o cliente contará com uma infra­ e/ou linhas
dedicadas
o, acesso, proteção e recuperação de hub ou 5witeh
o remotamente é um espelho (ao me­

necessário ad~tar procedimentos ade­

mações.

ualização praticamente em tempo real,


ez ao dia. Nesse caso, a empresa deverá

i#
Clientes na web ou
acesso corporativo
,~

278 ADMINISTRAÇÃO DE SISTEMAS DE INFORMAÇÃO

./ Problemas: em caso de falhas graves (oriundas de acidentes naturais ou sobre produção, histórico de consumo de
ataques terroristas, por exemplo), a empresa enfrentará problemas em nível de produtos, tendências de consumo, dado
mundial, com prejuízos sendo distribuídos a todas as unidades envolvidas, do em vista o planejamento de uma nova l
Nesse caso, é fundamental contar com uma i~f~a-estrutura paralela, e que agregar dados históricos sobre vendas realiz
garanta a continuidade de negócios em caso de imprevistos. Certam.ente, isso ,fim de efetuar projeções de vendas de mod
enc~n~c.erá o custo desse tipo de operação. '
Problemas com a velocidade ~e acesso devem ser muito bem equacionados , Para informações adicionais: Capítulo 8, ,
em todas as unidades envolvidas. Enquanto alguns países e localidades pos- ning,Data W
suem uma boa infra-estrutura de telecomunicações, outras regiões podem
sofrer com problemas crônicos, dificultando a realização de transações em
6.10 BANCOS DE DADOS MUL
arquiteturas desse tipo.
Com o relacionamento de tabelas é p
multidimensional, com os dados sendo dis
6.9 DATA WAREHOUSE E DATA MART
dimensões (Figura 6.17). Isso abre uma sé
Grandes organizações necessitam, com freqüência, reunir e consolidar dados e dos, com diferentes níveis de profundidade
informações originados de diferentes unidades de trabalho (como escritórios regio- j..
nais, plantas industriais, centros de distribuição e representantes) a fim de extrair
novas informações e obter conhecimento sobre determinadas questões, subsidian- 1,''. Figura 6.17 Bancos de dados multidimensio
do o planejamento estratégico. , relacionamento de diferentes ta
Esses dados e informações são reunidos em um Data Warehouse (depósito de
dados, em uma tradução literal), que constituem repositórios de dados oriundos de
bases diversas, tanto internas quanto externas à organização, relacionadas a períodos
~ ...
diversos de tempo. /, :> .~
"O ' "

Um Data Warehouse abrange um amplo cenário (tanto temporal, quanto geo-


Um banco de dados multidimensional
gráfico), possibilitando a realização de análises e correlações em processos de ex- pode ser constituido por várias
tabelas relacionadas.
tração de conhecimentos para utilização em áreas estratégicas, táticas ou mesmo
operacionais da organização.
Um Data Mart (empório de dados, em uma tradução literal), por sua vez, é um v
repositório de dados sobre um assunto específico, oriundos de bases diversas,
tendo como finalidade a realização de análises e correlações em processos de extra- Data Warehouse
ou Data Mart
ção de conhecimentos para utilização em áreas estratégicas, táticas ou operacionais
Atualização
de uma organização. peri6djc~ ~

A diferença entre um Data Warehouse e um Data Mart é que, enquanto o pri- _~~J'::::>~,,_,_
meiro é mais abrangente no que se refere à natureza e origem dos dados e informa- ~i' ~: ~;"­
ções, o Data Mart trata de um assunto específico. Por exemplo, uma organização ~:l: l~: ~,
Bases de dados diversas
pode utilizar um Data Warehouse para agregar e consolidar dados e informações
~!~
Bancos de dados e informações 281
tilizados em processos de Business In- impressão ou acesso a Intern~t). O uso de um'servidor específico para o ban-
to sobre os negócios a partir de fontes' .
.' I. ...~-.
~'; .
. co de dados é condição necessária para a garantia de boa performance.
. ~. :
.,;1. ",C-. '. É impOL1:ante considerar que o volume de dados armazenados precede ao
crescimento da empresa. Dessa forma, se uma empresa pretende atingir um
usiness.lntelligence, CRM, O~P, Data: determinado nível de crescimento em cinco anos, provavelmente para o ban-
Warehouse e Data Mart. .' . . co de dados esse crescimento ocorrerá em três anos.
Sendo assim, é necessário considerar o uso de equipamentos com capacidade
NHO de expansão, como a adição de mais memória e a utilização de mais de um
processador. Com isso,. a perfor,mance poderá ser mantida II).esmo diante do ,
crescimento da quantidade de dados. Alguns sistemas operacionai~ e bancos
cada vez mais as empresas dependem de dados possuem ferramentas que monitoram o uso da memória e do pro-
ue precisam responder prontamente a cessador, permitindo ao administrador do sistema verificar possíveis gargalos,
empenho passa a ser questão de funda- considerando a ampliação da memória, a utilização de mais processadores
o, realização de negócios, prestação de (em máquinas projetadas para essa finalidade) ou mesmo o aumento da capa-
da empresa e de seus clientes. cidade de armazenamento dos discos rígidos.
um banco de dados seja assunto sufi- Adicionalmente, recomenda-se que o servidor de banco de dados tenha pelo me-
ico s'obre o tema, é possível conseguir nos dois discos rígidos, sendo um dedicado exclusivamente ao sistema operacional
o das seguinte medidas: e outro utilizado especificamente p~o banco de dados. Como as operações de aces-
so a disco costumam ser mais demoradas, se o equipamento contar com um único
mente esse é o ponto fundamental para disco rígido, ele poderá ficar sobrecarregado com as solicitações simultâneas do
. Uma escolha inadequada certamente sistema operacional e do banco de dados, reduzindo a performance do conjunto.
de desempenho. É necessário verificar " Correto dimensionamento da estrutura do banco de dados: a con-
ondições de suportar um crescimento figuração adequada dos campos e tabelas pode contribuir para uma melh()r
e/ou usuários, o que poderá degradar a performance do sistema. Por vezes, uma única tabela recebe uma carga exces-
siva de dados e informações Ü:om vários campos contendo te>."tos longos, por
car a capacidade do banco de dados de exemplo), aumentando o temF)o necessário à realização de consultas e outras
horias no servidor utilizado. Por exem- operações. Em casos como esse, a divisão de tabelas pode agilizar diversos
ciador utilizado tem condições efetivas processos, distribuindo as solicitações e evitando sobrecargas desnecessárias.
s de um processador, situação essa que Outra questão que pode ser considerada refere-se ao armazenamento de va-
anco de dados for sendo' ampliado. riáveis. Conforme visto anteriormente, campos do tipo INT podem consu-
ífico: o usq de um servidor compar- mir apenas 4 bytes, sendo que alguns bancos de dados dispõem de subtipos
ação da rede quanto ao gerenciamento (smallint ou tinyint) que consomem espaços ainda menores. Dessa forma, em
a performanc~ de maneira significativa. vez de armazenar Q nome de um departamento ou função, pode-se associar
desempenho do banco de dados, mas um número inteiro a um nome, eco'nomizando espaço no banco de dados. A
na rede (por exemplo, os serviços de Fi~ra 6. I 8 mostra um exemplo de como isso pode ser obtido.
~

282 ADMINISTRAÇÃO DE SIfiMAS DE INFORMAÇÃO

Figura 6.18 Exemplos de mudanças na estrutura de armazenamento com impacto no Para uma pequena quantidade de d
tamanho e na performance do banco de dados. mero de usuários, a estrutura de
o sua performance. É possível, entret
Cargos e departamentos
. NOME, CARGO DBPAR'l'AMR~O'" armazenados repetidamentl! sob l quantidade de dados e usuários, ver
J~8' Silveira-' '. Auit> Adm.ioi8trat1~~ . Financeiro a formôll de tl!XUlS consomem ii
Luciiana Orti:' ep.r.: Teilemarke~iDg' : vendas ,_., muito espaço.
'Sandra Maciel' "Dir.tora·' . . . . Financeiro' ~ ticos ou mais usuais.
Robert'~ Cabral" a.rent. .' Compra. (om o aumento da ~b~1.I de õ
Alberto Santo8 Op.:r:~. TelálDark.ting .: V.nd.a." fundon,irios. ocorrI! uTTi21 !' Embora essas simulações demande
redu~!o da perfonnllnce do ~
baF\Co de dados. baixo quando comparado aos bene
i
ram pela necessidade de migrar dad
Cada departal'flE.'nto e cargo ê
COD_CARGO CARGO C'OD_DEP DEPARTAMENTO cadastraoo a;:>ena!> uma vez.
Financeiro
alterar diversos aspectos na estrutu
1 Aux. Administrativo 10 cada quat recebendo c6digo~
2 Oper. Telemarketing 11 Vendas eJCclu~i",o~.
) Diretora 13 Compras
de uma melhor performance, têm
4 Gerente Quando um fundonarío é
cadastrado. ele recebe côdigos pode representar. A adaptação de S
indicalwo~ do seu cargo e
"~~.
departamento. da necessidade de reescrever várias
~~ A Com i~~o. associa-se o texto a
um cOdígo numérico do tipo consumir tempo e recursos muito s
NOME eOD_CARGO COD_DEP inteirO. economü~ndCl espa<;o
Ii
José Silveira 1 10 no banco de dados. pas iniciais.
Luciana Orti: 2 11 ~
sandra Maciel 1 10 Com o aumento Oll tabela, il
Roberto Cabral 4 1) redução de performance ê Dessa forma, simulações devem ser
Alberto Santolil 2 11 meno~ significaLiv<l. pois
campo~ do tipo lNT consomem das tabelas e configuração da estrut
nleno~ espaçO.

será possível prever o comportame


situações de plena carga.
Para um melhor dimensionamento da estrutura do banco de dados, é fundamen- ./ Prever com adequação o uso
tal contar com a experiência de analistas de sistemas ou profissionais certificados Views: conforme mencionado ant
para o banco de dados em uso na empresa. Esses profissionais poderão aferir quais no uso desses recursos. Adicional
são os dados e informações necessários com maior freqüência, verificando a melhor rotinas executadas no banco de da
alternativa quanto a sua alocação. processamento no servidor. É nece
servidor e as estações, buscando ot
./ Utilização de índices: conforme mencionado anteriormente, a utilizaÇão a manutenção dos programas e d
de índices pode otimizar consideravelmente processos de consultas. Seu uso, de Stored procedures, Triggers e V
entretanto, poderá trazer problemas para processos de inserção ou alteração solicitações que poderiam ser pro
de dados, consumindo grande espaço em disco. O uso de índices deve mere- outro lado, seu uso poderá facilitar
cer uma análise criteriosa, tendo em vista as potencialidades oferecidas para a analista de sistemas com experiênc
obtenção de um bom desempenho do banco de dados. sional encarregado de administrar
./ Correta previsão do crescimento do ban~o de dados: conforme men- solicitações.
cionado, um banco de dados tende a crescer antes da empresa (ou de maneira ./ Limpeza preventiva do banco
mais acelerada do que ela). Sendo assim, é imp0rUnte contar com um banco dados deve ser permanente. Com
de dados que que possa ser ampliado na proporção necessária, evitando que serão mais necessários para o dia-
seja um empecilho à expansão da empresa. tabelas poderá degradar o desempe
Bancos de dados e informações 285
s são mais demoradas em tabelas com -,-- ; SCHERR, R. A. Conhecendo e trabalhando com o ~sual Basic 6.0. 9. ed. São Paulo:
Érica, 2005.
DATE, C. J. Introdução a sisremas de banco de dados. Rio de Janeiro: Campus, 2000.
erminad()s. dados e informações sejam HMG, S.; CUMMINGS, M.; DAWKlNS, J. Manaaemellt iriformation sysúmsfor the lriformation Aae.
em utilização. Por exemplo, se a mé- Nova York: Ir"~n/McGraw-Hill, 1998.
LAUDON, K. c.; LAUDON, J. P. Gerenciamento de sistemas de iriformação. 3. ed. Rio de Janeiro:
s meses, um cliente que ficÇ-f mais de LTC,2001.
cadastro remanejado para uma tabela MATTOS, A. C. M. Sisremas de iriformaçãa: uma visão executiva. São Paulo: Saraiva, 200S.
NONAKA, I. A Dynamic Theory of organizational knowledge creation. Oraanization Sdence, v. S, nO 1,
portante ressaltar que esses dados não 1994.
nsferidos para áreas onde não causem ___---..,.__; TAKEUCHI, H. Criação da canhecimento ná empresa: como as empresas japonesas
geram a dinâmica da inovação. Rio de Janeiro: Campus, 1997.
antendo enxutas as tabelas em uso no
O'BRIEN, A J. Sistemas de iriformação e as decisães aerendais na &a da Imernet. 2. ed. São Paulo:
Saraiva, 2004. .
icar a documentação do banco de da- SILVA, L. C. Banca de dados para a web: do planejamento à implementação. São Paulo: Érica, 2001 .
TANENBAUM, A. S. Oraanização estruturada de camputadores. Rio de Janeiro: LTC,. 200 1.
formações oferecidas pelo site do for- TURBAN, E.; RAINERJr., R.K.; POTTER, R. E. Administração de tecnolaaia da iriformação. Rio de
oderá sugerir medidas específicas para Janeiro: Campus, 2003.
Z\~'ASS, V. Foundatians '!finformation ~stenu. Boston: Ir"~n/McGrw-Hill, 1997.
tualizaçÕes' necessárias à melhoria da
casos que podem ajudar na elucidação
sitório essencial para os dados e infor-
ssibilidades quanto à sua configuração
nstituem os principais ativos de muitas
m seriamente prejudicadas, ou mesmo
s de dados, assim como sua adminis-
tes para o sucesso de organizações que
o: Érica, 2004.
ared data banks". Communicatians '!f u,e ACM. v.
da a Delphi 2005: MySQ.L 4, SQ.L Server 2000,
a, 200S.

Você também pode gostar