Escolar Documentos
Profissional Documentos
Cultura Documentos
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?,"'::'
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
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
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
.
~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
~
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
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
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
~
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- -
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
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.
-: ... ~.
aquele que pode ser codificado, sendo '\"t;••... , campo poderá aumentar significativamente o tamanho do banco de dados e
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~'
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.
~
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~:~;.
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-
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
-_._----- .-_._-'.
../ 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
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
'.;~
>l~:
'.:;:
'-:".:i
',i.:-
'~
nter valores (ou textos, quando aplicá-
.:,:
/~~
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
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
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
~
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
~
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
'~
266 ADMINISTRAÇÃO DE SISTEMAS DE INFORMAÇÃO
(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~
~--
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
.-:~ ..:~~:.
;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
peração, com os mesmos dados e os . Figura 6.15 Uso de banco de dados único em Data Center.
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
mações.
i#
Clientes na web ou
acesso corporativo
,~
./ 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 ' "
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.
~
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.