Buscar

Banco de Dados

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 143 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 143 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 143 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Prof. Me. Edson Yanaga
BANCO DE DADOS
grADuAçãO
ANáliSE E DESENvOlvimENtO DE SiStEmAS
SiStEmAS pArA iNtErNEt
mAriNgá-pr
2012
reitor: Wilson de Matos Silva
vice-reitor: Wilson de Matos Silva Filho
pró-reitor de Administração: Wilson de Matos Silva Filho
presidente da mantenedora: Cláudio Ferdinandi
NEAD - Núcleo de Educação a Distância
Diretoria do NEAD: Willian Victor Kendrick de Matos Silva
Coordenação pedagógica: Gislene Miotto Catolino Raymundo
Coordenação de marketing: Bruno Jorge
Coordenação Comercial: Helder Machado
Coordenação de tecnologia: Fabrício Ricardo Lazilha
Coordenação de Curso: Danillo Xavier Saes
Supervisora do Núcleo de produção de materiais: Nalva Aparecida da Rosa Moura
Capa e Editoração: Daniel Fuverki Hey, Fernando Henrique Mendes, Jaime de Marchi Junior, José Jhonny Coelho, Luiz 
Fernando Rokubuiti e Thayla Daiany Guimarães Cripaldi
Supervisão de materiais: Nádila de Almeida Toledo 
revisão textual e Normas: Cristiane de Oliveira Alves, Gabriela Fonseca Tofanelo, Janaína Bicudo Kikuchi, Jaquelina 
Kutsunugi, Karla Regina dos Santos Morelli e Maria Fernanda Canova Vasconcelos.
Ficha catalográfica elaborada pela Biblioteca Central - CESUMAR
 
 
 CENTRO UNIVERSITÁRIO DE MARINGÁ. Núcleo de Educação
 a distância:
C397 Banco de dados / Edson Yanaga. Maringá - PR, 2012.
 143 p.
 “Graduação em Análise e Desenvolvimento de Sistemas e 
 Sistemas para Internet - EaD”.
 
 1. Banco de dados. 2. Arquitetura de sistemas. 3.EaD. I. Título.
 CDD - 22 ed. 005.74 
 CIP - NBR 12899 - AACR/2
 
“As imagens utilizadas neste livro foram obtidas a partir dos sites pHOtOS.COm e SHuttErStOCK.COm”.
Av. Guedner, 1610 - Jd. Aclimação - (44) 3027-6360 - CEP 87050-390 - Maringá - Paraná - www.cesumar.br
NEAD - Núcleo de Educação a Distância - bl. 4 sl. 1 e 2 - (44) 3027-6363 - ead@cesumar.br - www.ead.cesumar.br
BANCO DE DADOS
Prof. Me. Edson Yanaga
5BANCO DE DADOS | Educação a Distância
AprESENtAçãO DO rEitOr
Viver e trabalhar em uma sociedade global é um grande desafio para todos os cidadãos. 
A busca por tecnologia, informação, conhecimento de qualidade, novas habilidades para 
liderança e solução de problemas com eficiência tornou-se uma questão de sobrevivência no 
mundo do trabalho.
Cada um de nós tem uma grande responsabilidade: as escolhas que fizermos por nós e pelos 
nossos fará grande diferença no futuro.
Com essa visão, o Cesumar – Centro Universitário de Maringá – assume o compromisso 
de democratizar o conhecimento por meio de alta tecnologia e contribuir para o futuro dos 
brasileiros.
No cumprimento de sua missão – “promover a educação de qualidade nas diferentes áreas 
do conhecimento, formando profissionais cidadãos que contribuam para o desenvolvimento 
de uma sociedade justa e solidária” –, o Cesumar busca a integração do ensino-pesquisa-ex-
tensão com as demandas institucionais e sociais; a realização de uma prática acadêmica que 
contribua para o desenvolvimento da consciência social e política e, por fim, a democratização 
do conhecimento acadêmico com a articulação e a integração com a sociedade.
Diante disso, o Cesumar almeja ser reconhecido como uma instituição universitária de referên-
cia regional e nacional pela qualidade e compromisso do corpo docente; aquisição de compe-
tências institucionais para o desenvolvimento de linhas de pesquisa; consolidação da extensão 
universitária; qualidade da oferta dos ensinos presencial e a distância; bem-estar e satisfação 
da comunidade interna; qualidade da gestão acadêmica e administrativa; compromisso social 
de inclusão; processos de cooperação e parceria com o mundo do trabalho, como também 
pelo compromisso e relacionamento permanente com os egressos, incentivando a educação 
continuada.
Professor Wilson de Matos Silva
Reitor
6 BANCO DE DADOS | Educação a Distância
Caro(a) aluno(a), “ensinar não é transferir conhecimento, mas criar as possibilidades para a 
sua produção ou a sua construção” (FREIRE, 1996, p. 25). Tenho a certeza de que no Núcleo 
de Educação a Distância do Cesumar, você terá à sua disposição todas as condições para se 
fazer um competente profissional e, assim, colaborar efetivamente para o desenvolvimento da 
realidade social em que está inserido.
Todas as atividades de estudo presentes neste material foram desenvolvidas para atender o 
seu processo de formação e contemplam as diretrizes curriculares dos cursos de graduação, 
determinadas pelo Ministério da Educação (MEC). Desta forma, buscando atender essas 
necessidades, dispomos de uma equipe de profissionais multidisciplinares para que, 
independente da distância geográfica que você esteja, possamos interagir e, assim, fazer-se 
presentes no seu processo de ensino-aprendizagem-conhecimento.
Neste sentido, por meio de um modelo pedagógico interativo, possibilitamos que, efetivamente, 
você construa e amplie a sua rede de conhecimentos. Essa interatividade será vivenciada 
especialmente no ambiente virtual de aprendizagem – AVA – no qual disponibilizamos, além do 
material produzido em linguagem dialógica, aulas sobre os conteúdos abordados, atividades de 
estudo, enfim, um mundo de linguagens diferenciadas e ricas de possibilidades efetivas para 
a sua aprendizagem. Assim sendo, todas as atividades de ensino, disponibilizadas para o seu 
processo de formação, têm por intuito possibilitar o desenvolvimento de novas competências 
necessárias para que você se aproprie do conhecimento de forma colaborativa.
Portanto, recomendo que durante a realização de seu curso, você procure interagir com os 
textos, fazer anotações, responder às atividades de autoestudo, participar ativamente dos 
fóruns, ver as indicações de leitura e realizar novas pesquisas sobre os assuntos tratados, 
pois tais atividades lhe possibilitarão organizar o seu processo educativo e, assim, superar os 
desafios na construção de conhecimentos. Para finalizar essa mensagem de boas-vindas, lhe 
estendo o convite para que caminhe conosco na Comunidade do Conhecimento e vivencie 
a oportunidade de constituir-se sujeito do seu processo de aprendizagem e membro de uma 
comunidade mais universal e igualitária.
Um grande abraço e ótimos momentos de construção de aprendizagem!
Professora Gislene Miotto Catolino Raymundo
Coordenadora Pedagógica do NEAD- CESUMAR
7BANCO DE DADOS | Educação a Distância
AprESENtAçãO
livro: BANCO DE DADOS
Professor Me. Edson Yanaga
Salve, caríssimo(a) leitor(a). Tenho um enorme prazer em apresentar-lhe o livro de Banco 
de Dados, elaborado especificamente para contribuir na sua formação de futuro(a) 
desenvolvedor(a) de software. Sou o Professor Edson Yanaga, autor deste livro. Espero que 
você tenha um bom proveito do material.
Permita-me apresentar-me adequadamente: sou Bacharel em Ciência da Computação pela 
Universidade Estadual de Maringá (UEM) e Mestre em Engenharia Elétrica e Informática 
Industrial pela Universidade Tecnológica Federal do Paraná (UTFPR) na área de Telemática. 
Sou empresário (consultor e desenvolvedor) na área de software e trabalho com a plataforma 
Java desde 1997 – completando 15 anos de experiência neste ano de 2012. Trabalho também 
como administrador de sistemas Unix (Solaris, HP-UX e Linux) desde 2000, e desde 2008 
já era adepto e entusiasta da computação em nuvem (cloud computing). Participo de vários 
cursos em nível de especialização em diversas instituições, como Cesumar, UEM, UNIPAR 
e Faculdade Integrado; e sou coordenador do curso de Especialização em Desenvolvimento 
Orientado a Objetos em Java do Cesumar desde 2004. Possuo as seguintes certificações: 
Oracle Certified Professional, Java Platform, Enterprise Edition 6 Enterprise JavaBeans 
Developer; Certified ScrumMaster; Sun Certified Developer for Java Web Services 5; Sun 
Certified Specialist for NetBeans IDE; Sun Certified Web Component Developerfor J2EE 1.4; 
e Sun Certified Programmer for Java 2 Platform 1.4. Como líder do Redfoot JUG (Java Users 
Group) – Grupo de Usuário Java do Norte do Paraná – atuo desde 2004. Tive o prazer de ser 
membro do comitê técnico do JavaOne Latin America nas edições de 2010 e 2011. Apresento 
palestras em diversos eventos em nível nacional e internacional, e ultimamente sou um grande 
entusiasta do Artesanato de Software e do código bem-feito.
Confesso que foi um tremendo desafio escrever este material. Até certo ponto é uma repetição 
cansativa dizer que o ritmo das mudanças e inovações cada vez mais se acelera, mas a 
princípio o tema “banco de dados” aparentaria ser algo tranquilo pelo fato de ser uma área 
do conhecimento bastante consolidada. Ledo engano. Nos últimos cinco anos, a disciplina 
de banco de dados passou por profundas transformações que chacoalharam os alicerces 
de fundamentos criados e utilizados desde a década de 1970. Os desafios dos sistemas de 
8 BANCO DE DADOS | Educação a Distância
informação atuais exigem que manipulemos não gigabytes ou terabytes de informações, e sim 
petabytes, exabytes e zetabytes.
Sistemas de informação das gerações anteriores tinham como objetivo gerar informações que 
pudessem agregar valor aos processos de negócios. Pois bem, esse objetivo foi alcançado. 
Com a tão aguardada e estimulada onipresença de software, a magnitude destas informações 
geradas cresceu. Redes sociais, smartphones, tablets, sensores de automação e vários outros 
dispositivos geram inúmeros bits de informação a todo momento. Conceitos antigos já não são 
soberanos nesses ambientes inóspitos atuais. Diante destes cenários surgiram os conceitos 
de Big Data e NoSQl.
Mas para irmos longe e chegarmos a este ponto, devemos dar o primeiro passo. Este material 
aborda os conceitos que até recentemente eram considerados como as “regras sagradas” de 
banco de dados: os bancos de dados relacionais. E não se engane, caro(a) leitor(a), estes 
fundamentos de bancos de dados relacionais são imprescindíveis para que se possa dar o 
“próximo passo” rumo ao conhecimento de Big Data e NoSQL.
Na Unidade I teremos a apresentação de tópicos conceituais e definições sobre bancos de 
dados, sistemas gerenciadores de bancos de dados e os tipos de usuários que interagem com 
esses sistemas. Teremos também uma breve explanação sobre o conceito de transações, 
que é uma ferramenta essencial no desenvolvimento de aplicações mais tradicionais como 
aquelas que envolvem dados financeiros. Como leitura complementar, temos um texto de 
Cezar Taurion (Evangelista Técnico da IBM) falando sobre Big Data. Afinal, é importante 
darmos um passo no presente – mas sempre com um olho no futuro. Essa será a tônica das 
nossas leituras complementares e sugestões de vídeos: apresentar-lhe sempre os conceitos 
de vanguarda que já são aplicados em muitos casos de uso em aplicações modernas.
A Unidade II descreverá a terminologia e outros conceitos básicos que serão utilizados no 
restante deste material, tais como a diferenciação entre schemas e instâncias de dados; bem 
como a arquitetura de sistemas de banco de dados. Conhecer a arquitetura permitirá que você, 
como desenvolvedor(a) de software, possa explorar melhor os recursos do seu sistema de 
banco de dados – além de auxiliá-lo(a) na escolha dos diferentes tipos de produtos existentes 
e também dos produtos concorrentes em cada tipo ofertado.
O modelo relacional de banco de dados propriamente dito será abordado na Unidade III. A 
9BANCO DE DADOS | Educação a Distância
partir deste ponto você estará apto a identificar as características de modelos relacionais e 
passar a construir seus próprios modelos de dados baseado nos fundamentos apresentados. 
Na modelagem relacional, você identificará entidades do seu domínio de negócios, suas 
restrições e os relacionamentos entre as diversas entidades modeladas.
Nas Unidades IV e V aprenderemos a linguagem SQL (Structured Query Language), que é uma 
ferramenta dominada por 10 em cada 10 desenvolvedores de software que utilizam sistemas de 
banco de dados. De conceito simples, acredito piamente que não será um problema para você, 
futuro(a) desenvolvedor(a) de software bem feito. Mas convém ressaltar que SQL possui uma 
natureza declarativa, que é diferente das linguagens imperativas como Java, C ou Pascal 
com as quais você provavelmente está acostumado(a). Após sua criação, a SQL tornou-se um 
padrão de facto para manipular informações em sistemas de banco de dados por meio de seus 
comandos para inserção, atualização, remoção e consulta de instâncias de dados.
E antes que você possa apreciar o conteúdo do material, permita-me apresentar meu ponto de 
vista para reflexão: em muitas empresas o sistema de banco de dados tornou-se o repositório 
“sagrado” das informações, trancado a sete chaves e reservado ao guardião denominado de 
DBA (DataBase Administrator). Aliás, é bastante comum que os alunos aprendam ou venham 
a concluir que o banco de dados é o coração de um sistema de informação – baseados 
nessas falsas impressões transmitidas até certo ponto em grande quantidade. Para mim e 
também para muitos autores renomados do mundo do software, o banco de dados é apenas 
uma ferramenta utilizada na construção de nossos sistemas de informação. E como toda 
e qualquer ferramenta, não pode ficar acima do próprio código que atende ao processo de 
negócios da empresa. Isso diminui sua importância? Certamente que não! Mas quando 
modelar seu sistema de informação, pense primeiro no seu modelo de negócios e postergue 
até o último momento a sua visão sobre o banco de dados. Tenho certeza de que isso tornará 
a sua aplicação muito melhor projetada e permitirá que ela ofereça um retorno muito melhor 
ao seu negócio.
O banco de dados é só um detalhe. Um detalhe importante, mas o considere um detalhe. 
O coração da sua aplicação é o código bem feito que você elaborará para atender ao seu 
negócio. Pense nisso, e a cada batida desse coração você poderá usufruir de muito retorno (e 
muito dinheiro, espero).
Um bom proveito e uma ótima leitura.
Prof. Me. Edson Yanaga
SumáriO
uNiDADE i
CONCEITOS DE BANCOS DE DADOS
CARACTERÍSTICAS DE SISTEMAS DE BANCOS DE DADOS ............................................20
TRANSAÇÕES ........................................................................................................................27
VANTAGENS DE SE UTILIZAR UM SGBD ............................................................................31
uNiDADE ii
OS BANCOS DE DADOS E O SOFTWARE
SCHEMAS, INSTÂNCIAS E ABSTRAÇÕES ..........................................................................42
INTERFACES DOS SGBDS ....................................................................................................43
ARQUITETURAS DE SISTEMAS DE BANCO DE DADOS ...................................................46
MODELO CENTRALIZADO ....................................................................................................47
CLASSIFICAÇÃO DOS SISTEMAS DE BANCO DE DADOS ................................................56
uNiDADE iii
O MODELO RELACIONAL
CONCEITUAÇÃO ....................................................................................................................68
RESTRIÇÕES DO MODELO RELACIONAL ..........................................................................71
uNiDADE iv
SQL BáSICO
DEFINIÇÕES DE DADOS E TIPOS EM SQL .........................................................................93
RESTRIÇÕES .........................................................................................................................97
CONSULTAS BáSICAS EM SQL ............................................................................................99
COMANDOS DE MODIFICAÇÃO DE DADOS EM SQL .......................................................104uNiDADE v
MAIS SQL
CONSULTAS ENVOLVENDO NULL ..................................................................................... 118
CONSULTAS UTILIZANDO JOINS .......................................................................................124
CONSULTAS COM FUNÇÕES DE AGREGAÇÃO ...............................................................126
COMANDOS DE ALTERAÇÃO DE SCHEMA ......................................................................128
CONCluSãO ........................................................................................................................ 141
rEFErÊNCiAS .....................................................................................................................143
uNiDADE i
CONCEitOS DE BANCOS DE DADOS
Professor Me. Edson Yanaga
Objetivos de Aprendizagem
•	 Apresentar	os	conceitos	fundamentais	envolvendo	dados	e	bancos	de	dados	em	
sistemas computacionais.
•	 Descrever	as	formas	interação	dos	usuários	com	os	bancos	de	dados.
•	 Comparar	as	vantagens	desta	abordagem	em	relação	a	outras	similares.
plano de Estudo
A seguir, apresentam-se os tópicos que você estudará nesta unidade:
•	 Conceituar	bancos	de	dados,	sistemas	gerenciadores	de	banco	de	dados	e	
sistemas de banco de dados
•	 Apresentar	as	principais	características	de	sistemas	de	banco	de	dados
•	 Enumerar	alguns	papéis	de	usuários	envolvidos	na	interação	com	sistemas	
de bancos de dados
•	 Descrever	algumas	vantagens	na	utilização	de	sistemas	de	bancos	de	dados	
comparados a outras abordagens
15BANCO DE DADOS | Educação a Distância
iNtrODuçãO
Fo
nte
: S
HU
TT
ER
ST
OC
K.
CO
M
“Scientia potentia est”: “Conhecimento é poder”.
Sim, caro(a) leitor(a), conhecimento é poder. Informação é poder. Na sociedade do século 
XXI, chamamos estas informações armazenadas em sistemas computacionais de dados. E 
temos informação em abundância. O desafio crescente dos próximos anos é encontrar formas 
eficientes de processar os dados que já temos e ainda criar para gerar conhecimento e, 
consequentemente, riqueza.
Nas últimas décadas, boa parte do software desenvolvido envolve além do processamento 
de informações: as informações de entrada e de saída do software (além de outras 
metainformações intermediárias) devem ser armazenadas em um mecanismo confiável, e que 
possibilite o acesso simples e rápido à leitura e escrita destas informações.
Há alguns anos, escrever sobre o tema “banco de dados” seria uma tarefa relativamente 
tranquila, pois muitos acreditavam tratar-se de um assunto absolutamente consolidado. 
Mas o nosso mundo está em constante mudança e os modelos de negócios que surgiram 
recentemente provocaram uma ruptura na forma de se pensar no armazenamento de 
informações em bancos de dados.
16 BANCO DE DADOS | Educação a Distância
Mas de onde vem este termo que conhecemos como “banco de dados”? Pois em inglês, o 
termo refere-se a databases, que numa tradução literal definiríamos como “base de dados”. Um 
bom palpite remete a uma visão generalizada de que as instituições denominadas de “bancos” 
guardam de modo bastante seguro o nosso dinheiro. Os “bancos de dados” seriam então 
ferramentas que guardariam nossas informações (dados) de modo também supostamente 
seguro e confiável.
Outra confusão bastante comum e plenamente justificada refere-se à diferença entre os termos 
“banco de dados” e os sistemas que o gerenciam. Segue uma definição segundo Navathe 
(2011, p.3):
Um banco de dados é uma coleção de dados relacionados. Os dados são fatos que 
podem ser gravados e que possuem um significado implícito. Por exemplo, considere 
nomes, números telefônicos e endereços de pessoas que você conhece. Esses dados 
podem ter sido escritos em uma agenda de telefones ou armazenados em um computador, 
por meio de programas como o Microsoft Access ou Excel. Essas informações são 
uma coleção de dados com um significado implícito, consequentemente, um banco de 
dados.
Nossos bancos de dados podem ser coleções de dados relacionados dos mais diversos 
tamanhos. Desde uma pequena agenda contendo números e contatos de pessoas até um 
índice gigantesco de páginas de Internet e buscas relacionadas ou todas as mensagens e 
informações trocadas entre bilhões de usuários de uma rede social.
Em termos computacionais, há uma categoria de software especializado que é desenvolvido 
especificamente com o propósito de se gerenciar estas coleções de dados: os sistemas 
gerenciadores de banco de dados – popularmente reconhecidos pela sigla SGBD (ou DBMS 
– DataBase Management Systems, na sigla original em inglês). Segue mais uma definição de 
Navathe (2011, p.3), sobre o termo:
Um sistema gerenciador de banco de dados (SGBD) é uma coleção de programas 
que permite aos usuários criar e manter um banco de dados. O SGBD é, portanto, 
um sistema de software de propósito geral que facilita os processos de definição, 
construção, manipulação e compartilhamento de bancos de dados entre vários usuários 
e aplicações. A definição de um banco de dados implica especificar os tipos de dados, 
17BANCO DE DADOS | Educação a Distância
as estruturas e as restriçõ es para os dados a serem armazenados em um banco de 
dados.
Embora não seja necessário utilizar um SGBD para se desenvolver quaisquer sistemas de 
software, tal opção não se mostra viável. Relembrando o nosso conceito de que a importância 
do software consiste em sua capacidade de se gerar valor com as informações que manipula, 
tem-se que implementar nosso próprio mecanismo de manipulação de dados em nossas 
aplicações não gera valor: somente custo. É por este motivo que atualmente definimos os 
SGBDs numa categoria de software que consideramos como commodity.
Exemplos de SGBDs relacionais (mais tradicionais e consolidados) incluem Oracle, DB2, SQL 
Server, Access, PostgreSQL, MySQL, Derby e H2. Já exemplos de SGBDs não relacionais 
(também conhecidos como NoSQL) incluem MongoDB, Redis, Neo4j e Riak.
Para propósitos de definição, finalizaremos denominando o conjunto formado pelo banco de 
dados e o sistema que o gerencia, o SGBD, de sistema de banco de dados.
Bancos de dados Open Source: presente ou futuro?
Cezar Taurion
Fo
nte
: S
HU
TT
ER
ST
OC
K.
CO
M
Nos eventos sobre Open Source, volta e meia surge uma pergunta sobre bancos de dados Open 
Source. Bem, tenho minha opinião pessoal e quero compartilhar com vocês. Vamos ver se vai gerar 
muita discordância...
18 BANCO DE DADOS | Educação a Distância
Os softwares de banco de dados são um dos mais importantes componentes de software de uma 
organização. Neste ambiente as alternativas de software livre já são bastante conhecidas e freqüente-
mente são mencionadas na mídia, como MySQL, PostgreSQL, Ingres e Derby. 
O MySQL é um produto de uma empresa privada, a MySQL AB. Seu código é desenvolvido pelos 
funcionários da empresa e com isso ela garante a propriedade intelectual sobre o produto. Existe uma 
comunidade envolvida, mas submissões de código são restritas apenas à correção de bugs. Uma 
pergunta: o MySQL pode ser considerado realmente Open Source, uma vez que não adota o modelo 
de desenvolvimento colaborativo? O MySQL é ofertado tanto em GPL como sob licença comercial. 
As duas versões são funcionalmente equivalentes, sendo diferenciadas pelo nível de suporte e cer-
tificação.	Indiscutivelmente	é	o	banco	de	dados	Open	Source	mais	popular,	com	o	maior	mindshare	
do setor.
Outro software é o PostgreSQL, que tem suas origens no Postgres desenvolvido pela Universidade 
de Berkeley. Podemos citar também o Ingres, que foi um banco de dados da Computer Associates e 
agora pertence a uma organização independente, a Ingres Corporation (www.ingres.com) e o Derby, 
originalmente o Cloudscape da IBM e recentemente doado para a Apache Software Foundation, onde 
agora é o projetoDerby. O Derby (http://db.apache.org/derby/) é um banco de dados em Java, geral-
mente embarcado em outros softwares. A IBM, por exemplo, o utiliza embutido em diversos softwares 
das famílias WebSphere, Tivoli e Lotus. 
Nas minhas andanças pelo mercado tenho visto que na prática os bancos de dados Open Source só 
aparecem	como	competidores	dos	produtos	mais	avançados	nas	aplicações	pouco	sofisticadas	ou	
bem	especificas.	
Por sua vez, os sistemas de banco de dados proprietários buscam competir com funcionalidades di-
ferenciadoras, principalmente as relacionadas com administração de ambientes complexos; escalabi-
lidade; desempenho com grande volume de transações; alta disponibilidade e capacidade de recupe-
ração rápida; e recursos de data warehousing. Além disso, foi criado um ecossistema de negócios em 
torno dos principais software de banco de dados proprietários, com diversas empresas independentes 
oferecendo ferramentas de software complementares (geradores de relatórios, analisadores estatís-
ticos e outros), serviços de suporte técnico especializado e formação de recursos humanos, e assim 
por diante, o que também cria uma barreira de entrada difícil de transpor por qualquer novo entrante. 
Já o ecossistema empresarial criado em torno dos bancos de dados Open Source (onde se gera di-
nheiro) ainda é incipiente, sendo formado por pequenas empresas com abrangência de atuação bas-
tante limitada. Ano passado, a MySQL gerou cerca de 50 milhões de dólares em receita (http://news.
com.com/MySQL+hits+50+million+revenue,+plans+IPO/2100-7344_3-6179290.html), mas ainda é 
um	traço	(cerca	de	0,03%)	no	gráfico	que	mostra	o	mercado	global	de	bancos	de	dados	relacionais,	
estimado pelo IDC em 16 bilhões de dólares. Como comparativo, o IDC estima que neste mesmo ano, 
19BANCO DE DADOS | Educação a Distância
a receita da IBM com a família de produtos DB2 foi de aproximadamente 3,5 bilhões de dólares.
Qual o papel que os bancos de dados Open Source desempenharão? Na minha opinião estarão 
atuando (pelo menos nos próximos 3 a 4 anos) na chamada faixa de produtos com funcionalidades 
comoditizadas, onde as características de preço são as de maior importância. Os usuários típicos 
serão	organizações	e	aplicações	que	não	precisam	de	recursos	mais	sofisticados.	
Como avaliar a qualidade de um banco de dados Open Source? Existem diversos critérios que podem 
e devem ser considerados em uma análise para seleção de um banco de dados. Os níveis de impor-
tância das variáveis da análise estão diretamente relacionadas com os objetivos do negócio e das 
necessidades a serem impostas aos softwares de bancos de dados.
Alguns dos principais fatores a serem considerados são:
a) Recursos de gerenciamento e administração. São as ferramentas de apoio às tarefas do admi-
nistrador do banco de dados.
b) Desempenho e escalabilidade. Os recursos que o software oferece para garantir desempenho 
adequado, nos volumes de transações que serão demandados.
c) Recursos técnicos. Disponibilidade de recursos como triggers, stored procedures, cursors, sub-
queries, capacidade de replicação, recursos de indexação, aderência a padrões (ANSI SQL), par-
ticionamento, backup/recovery, suporte a dados não estruturados, independência de plataforma 
e recursos de segurança.
d) Custos de Propriedade.
e) Suporte técnico e disponibilidade de recursos humanos. Abrangência do ecossistema em termos 
de	serviços	de	suporte	e	qualificação	de	recursos	humanos.
f) Disponibilidade de aplicativos.
g) Recursos de data warehousing e BI.
h) Recursos de desenvolvimento de aplicações.
i) Modalidade de licenciamento.
j) Visão, estratégia e road map do produto.
k) Tamanho e participação/envolvimento da comunidade.
l) Modelo de governança adotado pela comunidade.
m) Base instalada e adoção pelo mercado.
Bem e quanto a uma pergunta que muitos me fazem... Minha empresa deve adotar um banco de da-
dos Open Source? Para mim, para mudar um software de banco de dados deve haver uma estratégia 
impulsionada	por	 razões	 fortes	e	consistentes.	Por	exemplo,	se	houver	desconfianças	que	o	atual	
fornecedor esteja saindo do mercado; falta de funcionalidade do software (não é mais adequado às 
20 BANCO DE DADOS | Educação a Distância
necessidades das novas aplicações da empresa); falta de visão estratégica por parte do fornecedor 
do software atual; custos de manutenção e operação muito elevados para o resultado obtido; falta de 
pessoal gabaritado, que esteja disponível no mercado; carência de consultorias e serviços de suporte 
externos; relacionamento com o fornecedor cada vez mais deteriorado... Mudar para um banco de 
dados Open Source simplesmente por questões ideológicas deve estar fora de cogitação, pois banco 
de dados é muito sério para ser tratado de forma simplista.
OK, e quais seriam então os custos e riscos da migração? Existem custos de migração que não po-
dem	ser	subestimados.	Temos	os	custos	da	conversão	de	dados,	custos	da	codifi	cação,	testes,	e	o	
que chamamos reconciliação entre as aplicações no novo e no antigo ambiente, sempre considerando 
que	difi	cilmente	conseguiremos	fazer	uma	migração	estilo	big	bang,	mas	que	esta	será	gradual.
Quanto mais complexas forem as aplicações a serem convertidas, mais custosa será a migração. Esta 
complexidade pode ser medida pelo número de programas, número de tabelas relacionais, restrições 
de integridade referencial e tamanho do banco de dados. Existem custos indiretos como a construção 
de interfaces entre as aplicações já convertidas e as que ainda estão no banco de dados antigo. Tam-
bém os custos de suporte técnicos aos dois ambientes implicam muitas vezes, em gastos adicionais 
elevados, principalmente quando o novo banco de dados não for de completo domínio da equipe 
técnica da empresa. 
Em resumo, os custos da migração afetam os cálculos de custos totais de propriedade. A maioria das 
empresas é extremamente cautelosa em trocar de fornecedor de softwares críticos. O perigo de uma 
interrupção nos seus negócios decorrente de uma troca mal planejada ou inadequada faz com que 
os custos de troca possam ser extremamente elevados e desestimuladores. Migrar de um banco de 
dados para outro é sempre uma tarefa complexa e de alto risco, que só deve ser efetuada quando os 
benefícios forem claramente demonstráveis.
Fonte: <https://www.ibm.com/developerworks/mydeveloperworks/blogs/ctaurion/entry/bancos_de_da-
dos_open_source?lang=pt_br>. Acesso em: 14 ago. 2012.
CArACtErÍStiCAS DE SiStEmAS DE BANCOS DE DADOS
Se utilizar um sistema de banco de dados parece uma solução natural, qual seria a outra 
solução alternativa? Pense em algumas aplicações que você utiliza e que não fazem uso de 
SGBDs. Processadores de texto, planilhas, ferramentas de desenho etc., são alguns exemplos 
21BANCO DE DADOS | Educação a Distância
dessas aplicações. O que todas têm em comum? A necessidade de se armazenar a informação 
manipulada por meio de arquivos.
Em qualquer aplicação que necessite do armazenamento de dados, faz-se necessário dispor de 
algum mecanismo que permita que estes sejam gravados de modo persistente. A abordagem 
de arquivos tem suas vantagens, como por exemplo, a portabilidade dos dados. Você pode 
carregá-los eletronicamente ou fisicamente para locais diferentes de modo bastante simples. 
Mas entre as desvantagens desta abordagem há todo o trabalho necessário para se criar um 
formato e processar a sua gravação e recuperação – e acredite, não é pouco trabalho!
Um SGBD, por outro lado, já dispõe de uma série de funcionalidades prontas para serem 
utilizadas pelo desenvolvedor da aplicação. Deste modo, uma série de preocupações passa 
a ser delegada a um software de terceiros (o SGBD). A seguir, apresentaremos uma série de 
características que diferenciam a abordagem de sistemas de banco de dados da manipulação 
manual das informações (como em arquivos, por exemplo).
Naturezaautodescritiva
Uma característica fundamental que distingue os sistemas de bancos de dados de outras 
abordagens é o fato de que nos SGBDs, o banco de dados e as metainformações sobre 
o banco de dados são armazenados conjuntamente. Essas metainformações armazenadas 
contêm informações como o tipo, tamanho e restrições do banco de dados. Em termos 
técnicos, as metainformações são chamadas de esquema (ou schema, em seu termo original 
em inglês).
isolamento entre programa e Dados
Numa aplicação que utilize arquivos para o armazenamento de dados, quaisquer alterações na 
estrutura do arquivo também implicarão em alterações no programa. Nesse caso, dizemos que 
o programa é altamente acoplado à sua estrutura de armazenamento de dados. Em contraste, 
SBGDs permitem que o programa somente informe quais dados são armazenados, sem se 
22 BANCO DE DADOS | Educação a Distância
importar em como esses dados serão manipulados internamente. Esta característica aumenta 
bastante o nível de manutenibilidade do sistema, quando bem aplicada.
múltiplas visões dos dados
Esta não é uma característica fundamental, mas muitos SGBDs fornecem a possibilidade de 
que diferentes usuários com diferentes permissões possam acessar diferentes “visões” dos 
dados. Essas visões (views) correspondem a estruturas virtuais criadas a partir dos dados 
armazenados e podem conter, além dos próprios dados, também informações derivadas 
(calculadas) a partir desses dados.
A criação de diferentes usuários com diferentes permissões a visões específicas é uma 
abordagem muito utilizada em sistemas cliente/servidor; ou na integração de aplicações 
mediante banco de dados. O auge do uso destas abordagens deu-se no final da década 
de 1990, embora ainda hoje seja possível testemunhar aplicações sendo executadas sob 
este modelo. Recomenda-se fortemente que no desenvolvimento de novas aplicações, a 
abordagem de múltiplas visões e de integração mediante banco de dados seja substituída 
por uma abordagem orientada a serviços como SOA (Service Oriented Architecture) ou como 
REST (REpresentational State Transfer).
Visões não são uma má prática. São um recurso bastante útil, mas não imprescindível. Como 
toda ferramenta, bem utilizada e de modo adequada, é um recurso valioso.
Acesso	concorrente	de	múltiplos	usuários
Um SGBD multiusuário, como o próprio nome já define, deve permitir o acesso de múltiplos 
usuários. Além disso, o acesso deve ser concorrente, permitindo que todos os usuários 
conectados executem operações “ao mesmo tempo”.
Vale a pena refletir sobre dois termos muitas vezes utilizados de forma errônea na área 
de Tecnologia da Informação: “paralelo” e “concorrente”. Paralelismo puro é algo raro em 
23BANCO DE DADOS | Educação a Distância
computação, embora seja perfeitamente possível. Ao lidarmos com sistemas de banco de 
dados, utilizamos o termo “concorrente”, pois vários usuários têm a impressão de que estão 
executando instruções ao mesmo tempo – quando na verdade, por se tratar de informações 
acessadas em disco ou com um único barramento de acesso, torna-se necessário algum 
mecanismo de contenção que serialize (coloque em fila) cada uma dessas instruções. 
Como idealmente a execução dessas instruções é bastante curta, tem-se a impressão do 
pseudoparalelismo.
Um conceito fundamental para que o acesso destes múltiplos usuários mantenha o banco de 
dados num estado consistente é o mecanismo de transações, que será descrito na próxima 
seção.
A	revolução	do	Big	Data	está	prestes	a	acontecer
Cezar Taurion
Fo
nte
: S
HU
TT
ER
ST
OC
K.
CO
M
O	termo	Big	Data	começa	a	despertar	muita	atenção,	mas	ainda	é	um	conceito	mal	defi	nido	e	com-
preendido.	Com	uma	rápida	pesquisa	ao	Google,	identifi	quei,	pelo	menos,	uma	dúzia	de	defi	nições.	
Neste	artigo,	vou	falar	um	pouco	sobre	o	assunto	e	debater	alguns	desafi	os	que	temos	para	conseguir	
colocar projetos de Big Data em ação. 
24 BANCO DE DADOS | Educação a Distância
Sem	entrar	em	definições	e	nos	atendo	apenas	a	conceitos,	podemos	resumir	com	uma	fórmula	sim-
ples o que é Big Data: volume + variedade + velocidade de dados. Volume porque, além dos dados 
gerados pelos sistemas transacionais, temos a imensidão de dados gerados pelos objetos na Internet 
das Coisa, como sensores e câmeras, e os gerados nas mídias sociais, via PCs, smartphones e ta-
blets. Variedade porque estamos tratando tanto de dados textuais estruturados, quanto dos não estru-
turados,	como	fotos,	videos,	emails	e	tuítes.	E,	por	fim,	velocidade	porque,	muitas	vezes,	precisamos	
responder aos eventos quase que em tempo real. Ou seja, estamos falando de criação e tratamento 
de dados em volumes massivos.
Outro	desafio:	criar	e	 tratar	apenas	de	dados	históricos,	como	os	veteranos	Data	Warehouse	e	as	
tecnologias de BI (Business Intelligence) começam a se mostrar lentos demais para a velocidade com 
que os negócios precisam tomar decisões. Aliás, o termo BI já tem mais de 50 anos. Ele foi cunhado 
por Hans Peter Luhn, pesquisador da IBM em um artigo escrito nos idos de 1958.
Quando falamos em volume, os números são gigantescos. Se olharmos globalmente, estamos fa-
lando em zetabytes, ou 10²¹ bytes. Grandes corporações armazenam multiplos petabytes e mesmo 
as pequenas e médias empresas trabalham com dezenas de terabytes de dados. Este volume tende 
a crescer geométricamente. Em mundo cada vez mais competitivo e rápido, as empresas precisam 
tomar decisões baseadas não apenas em palpites, mas em dados concretos. Assim, para um setor de 
marketing faz todo sentido ter uma visão 360° de um cliente, olhando não apenas o que ele comprou 
da empresa, como registrado no ERP, mas saber o que ele pensa e diz sobre a empresa e como os 
faz - pelo Facebook e Twitter, por exemplo. 
Hoje, já é consenso que dados são os recursos naturais da nova Revolução Industrial. Na atual socie-
dade industrial, ter apenas recursos naturais, como minério, e exportá-los de forma bruta - importando 
em troca produtos manufaturados, não garante a competitividade de um país no longo prazo. O im-
portante	é	a	tecnologia	e	o	conhecimento	que	cria	produtos	manufaturados.	Afinal,	um	quilo	de	satélite	
vale imensamente mais do que um quilo de minério de ferro. 
Fazendo um paralelo, na sociedade da informação é crucial saber tratar os dados na velocidade 
adequada. Dados não tratados e analisados em tempo hábil são dados inúteis, pois não geram in-
formação. Dados passam a ser ativos corporativos importantes e como tal, podem - e deverão - ser 
quantificados	econômicamente.
Big	Data	 representa	um	desafio	 tecnológico,	 pois	 demanda	atenção	à	 infraestrutura	e	 tecnologias	
analíticas. O processamento de volumes massivos de dados pode ser facilitado pelo modelo de com-
putação em nuvem, desde, é claro, que este imenso volume não seja transmitido repetidamente via 
Internet. Só para lembrar, os modelos de cobrança pelo uso de nuvens públicas tendem a gerar pro-
cessamentos muito baratos, mas tornam caro a transmissão de muitos dados. 
A principal base tecnológica para Big Data Analytics é o Hadoop e os bancos de dados NoSQL, onde 
25BANCO DE DADOS | Educação a Distância
“No”	significa	Not	Only	SQL,	ou	seja,	usa-se	bases	de	dados	SQL	e	não	SQL.	A	importância	do	“Not	
Only” SQL explica-se pelo fato do modelo relacional ser baseado na época de sua criação, no início 
dos anos 70. Nessa época, acessar, categorizar e normalizar dados era bem mais fácil do que hoje. 
Praticamente não existiam dados não estruturados circulando pelos computadores da época. Tam-
bém não foi desenhado para escala massiva, ou para um processamento muito rápido. Seu objetivo 
básico era possibilitar a criação de queries que acessacem bases de dados corporativas e, portanto, 
estruturadas. Para soluções Big Data, tornam-se necessárias varias tecnologias, desde bancos de 
dados SQL, a softwares que utilizemoutros modelos, que lidem melhor com documentos, grafos, 
processamento paralelo, etc.
A complexidade do Big Data vem à tona quando lembramos que não estamos falando apenas de 
armazenamento e tratamento analítico de volumes massivos de dados, mas de revisão, ou criação, 
de processos que garantam a qualidade destes dados e de processos de negócios que usufruam dos 
resultados obtidos. Portanto, Big Data não é apenas um debate sobre tecnologias, mas, principalmen-
te, sobre como os negócios poderão usufruir da montanha de dados que está agora à sua disposição. 
Aí emerge a questão da integração: como integrar bases de dados estruturadas e não estruturadas 
com diversos softwares envolvidos? 
O	Big	Data	abre	oportunidades	profissionais	bem	amplas.	Na	minha	opinião,	existe	espaço	para	dois	
perfis	profissionais:	um	mais	voltado	para	os	negócios	e	qualificados	para	 tratar	analiticamente	as	
informações geradas por estas imensas bases de dados e outro com viés mais técnico, ou Data 
Architect.
Pelo viés dos negócios, um artigo interessante que foi publicado há poucos meses pelo Wall Street 
Journal, na edição brasileira, aponta como problema a escassez de talentos. Ele fala que muitas 
empresas	americanas	começaram	a	procurar	profissionais	que	saibam	interpretar	os	números	usando	
a	análise	de	dados,	 também	conhecida	como	 inteligência	empresarial.	Mas	encontrar	profissionais	
qualificados	tem	se	mostrado	difícil.	O	resultado	foi	que	várias	faculdades	americanas,	como	a	Facul-
dade de Pós-Graduação em Administração da Universidade Fordham e a Faculdade de Administração 
Kelley, da Universidade de Indiana, começaram a oferecer disciplinas eletivas, cursos de extensão e 
mestrados em análise de dados. Já o Data Architect deve lidar com tecnologias SQL e NoSQL, conhe-
cer profundamente conceitos como stream processing e Event Driven Architecture (EDA) e, portanto, 
ter capacidade de desenhar estratégias para manusear e analisar grandes volumes de dados de 
formatos diferentes, quase que em tempo real.
A idéia de stream processing, ou stream computing, é fantástica; é um novo paradigma. No modelo 
de	data	mining	tradicional,	uma	empresa	filtra	dados	dos	seus	vários	sistemas	e,	após	criar	um	data	
warehouse, dispara “queries”. Na prática, faz-se uma garimpagem em cima de dados estáticos, que 
não	refletem	o	momento,	mas	sim	o	contexto	de	horas,	dias	ou	mesmo	semanas	atrás.	Com	o	stream	
computing, esta garimpagem é efetuada em tempo real. Em vez de disparar queries em cima de uma 
26 BANCO DE DADOS | Educação a Distância
base de dados estática, coloca-se uma corrente contínua de dados (streaming data) atravessando 
um	conjunto	de	queries.	Podemos	pensar	em	inúmeras	aplicações,	sejam	estas	em	fi	nanças,	saúde	
e mesmo manufatura. 
Vamos ver este último exemplo: um projeto em desenvolvimento com uma empresa de fabricação 
de	semicondutores	monitora	em	tempo	real	o	processo	de	deteção	e	classifi	cação	de	falhas.	Com	o	
stream computing, as falhas nos chips que estão sendo fabricados são detetadas em minutos e não 
em horas ou semanas. Os wafers defeituosos podem ser reprocessados e, mais importante ainda, 
pode-se fazer ajustes em tempo real nos próprios processos de fabricação.
Quanto ao EDA, pode-se começar a estudar o assunto acessando seu verbete na Wikipedia. 
O termo Big Data vai aparecer na tela do radar dos CIOs em breve. Aliás, já aparece no canto da tela 
de um ou outro CIO, e, provavelmente, em alguns anos já será um dos temas mais prioritários das 
tradicionais listas de “tecnologias do ano”. Portanto, é bom estar atento à sua evolução e começar a 
colocar em prática algumas provas de conceito.
Fonte: <http://imasters.com.br/artigo/23437/banco-de-dados/a-revolucao-do-big-data-esta-prestes-a-
-acontecer>. Acesso em 15 jul. 2012.
O maior evento da comunidade brasileira de NoSQL:
<http://nosqlbr.com/>. 
27BANCO DE DADOS | Educação a Distância
trANSAçÕES
Fo
nte
: S
HU
TT
ER
ST
OC
K.
CO
M
O conceito de transação é fundamental em muitas áreas da computação, e particularmente 
fundamental em sistemas de banco de dados. Consideramos como transação uma 
determinada “unidade de trabalho”, que é realizada em qualquer sistema computacional de 
um modo coerente e independente de outras transações. Estas transações devem permitir 
que o sistema esteja num estado coerente antes e depois de sua execução, independente de 
falhas ou outros problemas que possam ocorrer. Devem permitir também que vários clientes 
diferentes acessem concorrentemente o sistema sem que isso possa corromper ou levar a 
estados que não sejam considerados coerentes.
Uma definição clássica do conceito de transações envolve o acrônimo ACID, oriundo das 
propriedades de Atomicidade, Consistência, Isolamento e Durabilidade.
Atomicidade
A propriedade atomicidade de banco de dados advém do conceito de átomo da física – o qual 
até recentemente supunha-se indivisível. Essa indivisibilidade pressupõe que as operações 
realizadas numa transação sejam todas realizadas por completo; ou que nenhuma seja 
realizada. Popularmente seria o conceito do “tudo ou nada”. Isto permite que durante a nossa 
interação com um banco de dados, possamos agrupar vários comandos relacionados com 
28 BANCO DE DADOS | Educação a Distância
a garantia de que todos sejam executados – de modo que as informações armazenadas 
permaneçam num estado consistente após a execução da transação.
Consistência
A propriedade de consistência assegura que a execução de qualquer transação trará o 
banco de dados de um estado consistente para outro estado também consistente. No caso, 
a “consistência” implica que todos os dados de um banco de dados devem ser válidos de 
acordo com um conjunto de regras que podem incluir restrições de tipo, valor, referências entre 
informações etc.
isolamento
A propriedade de isolamento determina que o resultado da execução concorrente de um 
conjunto de transações terá o mesmo resultado de sua execução em série (uma após a outra).
O isolamento transacional é o que garante e permite o acesso concorrente de múltiplos 
usuários ao mesmo SGBD.
Durabilidade
A propriedade de durabilidade garante que uma vez que uma transação tenha sido finalizada 
com sucesso, os dados terão a garantia de terem sido armazenados corretamente – 
independentemente da eventualidade de falhas, falta de energia, erros de aplicação etc.
Na opinião deste autor, é justamente a propriedade de durabilidade que faz com que os 
bancos de dados sejam posicionados como “ferramentas sagradas” em muitas empresas. 
Novamente, não há menosprezo algum em dizer que o mais importante é o código que atende 
aos processos de negócios. Durabilidade é essencial: imagine qualquer empresa perdendo 
todos os seus dados. A continuidade do próprio negócio está em risco. Mas mais importante 
do que os dados em si está o uso que se faz deles.
29BANCO DE DADOS | Educação a Distância
Sistemas tradicionais que vêm sendo desenvolvidos nas últimas décadas sempre tiveram como pre-
missa em seus dados sua corretitude (grau em que o software executa suas funções de modo correto). 
Isso normalmente implicou na utilização de um banco de dados que pudesse satisfazer as proprieda-
des ACID.
Com o aumento da quantidade de informações e usuários nas aplicações, o fator disponibilidade pas-
sou em alguns casos a ser mais importante do que a própria consistência das informações.
Além do ACID, surgiu o acrônimo BASE (Basically Available, Soft state, Eventually consistent) – tradu-
zido	literalmente	como	Basicamente	Disponível,	Estado	fl	exível	e	Eventualmente	consistente.	O	BASE	
tornou-se uma sigla bastante comum ao lidar com bancos de dados não relacionais.
Uma	refl	exão	que	vale	a	pena	ser	feita	é:	para	os	novos	desafi	os	e	empreitadas	que	vocês,	futuros	
profi	ssionais,	enfrentarão,	em	quais	situações	o	ACID	é	recomendado	e	em	quais	outras	situaçõeso	
BASE mostra-se mais adequado?
Referência: <http://queue.acm.org/detail.cfm?id=1394128>. Acesso em 15 jul. 2012.
30 BANCO DE DADOS | Educação a Distância
Papéis	assumidos	pelos	usuários	de	SGBDs
Desenvolvedores de SGBDs São	pessoas	que	projetam	e	codificam	os	SGBDs.	Exem-
plos de pessoas nestes papéis incluem os funcionários de 
empresas como Oracle, IBM e Microsoft que atuam dire-
tamente na programação do software SGBD. No caso de 
SBGDs livres, podem ser também voluntários ou pessoas 
e empresas interessadas na evolução do software. Nor-
malmente	são	programadores	altamente	qualificados	que	
trabalham no código-fonte do SBGD. Mas voluntários de 
projetos de software livre também podem contribuir em ou-
tras atividades como documentação, por exemplo.
Desenvolvedores de aplicações e 
Administradores de Bancos de Da-
dos (DBAs – DataBase Administra-
tors)
São pessoas que desenvolvem software que armazena 
as informações num SGBD. Tradicionalmente, em abor-
dagens mais tradicionais e conservadoras, as equipes de 
desenvolvimento são separadas em desenvolvedores e 
DBAs. Os primeiros desenvolvem o software que acessa 
o SGBD. Os segundos projetam os bancos de dados e os 
mantém. Em abordagens de desenvolvimento mais mo-
dernas tende-se a eliminar esta distinção entre os papéis, 
pois quanto maior a distância entre os membros da equi-
pe envolvidos no projeto de software, menor tende a ser a 
qualidade do software entregue.
Usuários	finais São pessoas que não interagem diretamente com os 
bancos de dados, e sim com as aplicações criadas pelos 
desenvolvedores de software que armazenam suas infor-
mações em SGBDs. A maioria das pessoas enquadra-se 
nesta	categoria,	e	embora	sejam	os	grandes	beneficiados	
pela tecnologia dos sistemas de bancos de dados, rara-
mente possuem ciência do fato.
31BANCO DE DADOS | Educação a Distância
<http://youtu.be/Car5V9l8BiQ>.
Klaus Wuestfeld – Prevayler
Neste vídeo Klaus Wuestfeld, um dos pioneiros do XP (eXtreme Programming) no Brasil e criador do 
conceito de prevalência de objetos, mostra uma abordagem inovadora e de alto desempenho para 
manipulação e persistência de objetos. Atualmente, alguns dos sistemas de transações mais rápidos 
do mundo utilizam este conceito.
vANtAgENS DE SE utiliZAr um SgBD
Durante as seções anteriores, já citamos algumas vantagens de se utilizar um SGBD para 
armazenar as informaçõ es de nossas aplicações. A seguir, as enumeraremos de um modo 
mais detalhado, de forma a justificar seu uso numa diversidade de situações.
Diminuir a redundância e fornecer consistência
Imagine uma situação bastante comum: você resolve elaborar um documento e necessita da 
colaboração de várias pessoas para fazê-lo. Você então cria o esboço deste documento e o 
envia por e-mail a todos os interessados. Cada pessoa realiza as suas modificações em suas 
próprias cópias dos documentos e depois repassa novamente por e-mail. Quem tem a última 
versão do documento? Quais são os dados corretos? Estas são perguntas difíceis de serem 
respondidas nesta abordagem, e provavelmente exigirá muito trabalho manual para se chegar 
à versão final do documento.
Um SGBD centraliza todas estas informações, fazendo com que todos os usuários acessem 
os mesmos dados. Desse modo, diminui-se a redundância: há somente uma cópia dos dados 
32 BANCO DE DADOS | Educação a Distância
a serem manipulados. Isto permite também que o banco de dados sempre permaneça num 
estado consistente, pois todos os usuários terão sempre a “última versão” dos dados. Não há 
a possibilidade de alguém permanecer com um “pedaço” dos dados antigos e outro “pedaço” 
com a informação atual.
Controle de acesso
Muitas informações armazenadas em sistemas são confidenciais. Ao mesmo tempo, é 
necessário que esta informação seja compartilhada com as pessoas para que sejam 
trabalhadas. Ao utilizar arquivos, é necessário que uma cópia seja enviada aos interessados. 
Por múltiplos motivos, essas cópias podem acabar sendo enviadas por e-mail a pessoas 
cujo acesso é indevido; ou a mesma pode ser deixada num dispositivo de armazenamento 
removível esquecido em alguma mesa de reunião.
No mínimo um SGBD oferece uma combinação de login/senha para acesso a um determinado 
banco de dados. Outras restrições relativas a qual usuário pode acessar quais dados também 
costumam ser implementadas pela maioria dos SBGDs. Como o acesso é centralizado, 
também tem-se uma única cópia para proteção.
Consultas eficientes
Como são aplicações de software de propósito específico, os SGBDs são especialmente 
projetados para armazenar eficientemente os dados a eles delegados; e para permitir formas 
de consulta eficientes aos mesmos dados. Cada SGBD possui sua estratégia interna para 
transformar estas informações em bytes gravados no dispositivo de armazenamento, mas de 
um modo geral, não há uma grande diferença de desempenho entre diferentes produtos em 
uma quantidade razoável de aplicações.
Em casos de usos típicos, é muito mais importante a eficiência em consultas do que a 
eficiência em armazenamento de informações. Assim, os SBGDs utilizam dispositivos como 
índices (que são estruturas criadas para otimizar consultas baseadas em certos critérios) e 
33BANCO DE DADOS | Educação a Distância
cachês (caches) para armazenar em memória os dados mais frequentemente acessados. 
Estes dispositivos permitem que as consultas possam ser executadas de modo mais rápido, e 
em muitos SGBDs, adequar estes dispositivos de modo otimizado chega a quase ser uma arte, 
tamanha a quantidade de opções disponíveis.
Backup e Restore
Para garantir a continuidade dos negócios, é essencial executar periodicamente o backup das 
informações armazenadas no servidor. Ao invés de cópias físicas dos arquivos do SGBD, é 
comum os próprios SGBDs fornecerem ferramentas que permitem a exportação dos dados 
para um formato intermediário (texto ou binário) para backup. Estas mesmas ferramentas 
suportam a restauração destes dados em caso de necessidade.
As rotinas de backup/restore também são uma ferramenta bastante útil na migração ou cópia 
de servidores onde o mesmo SGBD esteja instalado. Situações de migração costumam ocorrer 
em caso de falhas ou upgrade de equipamento. Cópias costumam ser utilizadas para permitir o 
teste de aplicações em desenvolvimento.
CONSiDErAçÕES FiNAiS
Nesta unidade, pudemos perceber que os bancos de dados são uma coleção de dados 
relacionados que representam, por meio de um nível determinado de abstração, o modelo 
do mundo real de nossas aplicações de software. Boa parte das aplicações de software 
desenvolvidas na atualidade envolve a manipulação, e principalmente, o armazenamento dos 
dados – estes muitas vezes em enormes quantidades. Para manipular estes bancos de dados, 
criou-se uma categoria de software específico denominada de sistemas gerenciadores de 
bancos de dados (SGBDs). O banco de dados (os dados) e o sistema que o gerencia são 
denominados conjuntamente de sistemas de bancos de dados.
Durante esta unidade também descrevemos as características que identificam as 
propriedades de sistemas de bancos de dados quando comparados a abordagens tradicionais 
de processamento de arquivos. Certamente que determinados casos de uso ainda exigem 
a utilização de arquivos como meio de armazenamento das informações. Mas com as 
informações que detalhamos como características destes sistemas de banco de dados, 
esperamos que você, como desenvolvedor(a) possa ter argumentos suficientes para decidir 
34 BANCO DE DADOS | Educação a Distância
adequadamente entre uma abordagem e outra.
Como existem muitos tipos de usuários diferentes que podem interagir com os sistemas de 
bancos de dados, também apresentamos uma lista não exaustiva dos papéis que estes usuários 
podem assumir nestas interações. Uma máxima que devemos sempre utilizar é a “técnicado 
espelho”. Olhe sempre para o software que você desenvolve por meio dos olhos de quem usa. 
Compreender as situações em que cada tipo de usuário interage com um sistema de banco 
de dados permite que tenhamos uma consciência melhor das dificuldades e das necessidades 
que os usuários possuem em cada caso de uso cotidiano da nossa vida profissional.
Por fim, tentamos discutir algumas vantagens da abordagem de sistemas de bancos de 
dados em relação à implementação de aplicações sem a facilidade e funcionalidade de 
um SGBD. Claro que, tendenciosamente, um estudioso de sistemas de bancos de dados 
observaria argumentos bastante positivos em relação à abordagem dos SGBDs. O papel de 
um desenvolvedor experiente é distanciar-se destes apegos a uma determinada tecnologia ou 
outra e decidir sobriamente qual a solução mais adequada para a sua aplicação.
Uma vez entendidos estes conceitos, podemos nos dedicar a estudar melhor alguns dos 
detalhes internos dos modelos utilizados pelos sistemas de bancos de dados e das arquiteturas 
de software existentes que utilizam estes sistemas. Tais tópicos serão abordados em nossa 
próxima unidade.
AtiviDADE DE AutOEStuDO
1. Transações tradicionalmente são melhor entendidas por meio do conjunto de suas pro-
priedades ACID (Atomicidade, Consistência, Isolamento e Durabilidade). Em quais situ-
ações da vida real você consegue enxergar a necessidade de se executar operações 
com estas propriedades?
2. Ao enumerar as vantagens de se utilizar um SBGD, fizemos uma comparação com a 
utilização de arquivos para armazenamento dos dados. Tendenciosamente, o SGBD 
apareceu como o vencedor nas comparações. Quais seriam as situações em que os 
arquivos seriam uma solução mais adequada? Você consegue exemplificar alguma 
outra situação em que uma terceira alternativa seria mais viável?
3. Pense no SBGD como um módulo do sistema ou como uma outra aplicação a ser inte-
grada (pois em muitas concepções modernas, é assim que ele deve ser tratado). Uma 
das características dos SGBDs é o isolamento entre o programa e os dados. Quais 
os benefícios deste isolamento? Em que outras partes do sistema esta característica 
também pode trazer benefícios?
35BANCO DE DADOS | Educação a Distância
Banco de Dados na Nuvem
Jin Zhang, Diretor de Programas da IBM
Fo
nte
: S
HU
TT
ER
ST
OC
K.
CO
M
Profi	ssionais	de	dados	estão	adotando	conceitos	de	computação	em	nuvem	para	oferecer	bancos	de	
dados	como	um	serviço	–	facilitando	as	difi	culdades	de	gerenciamento	e	enviando	usuários	para	a	
nuvem nove.
“Leva	semanas	para	confi	gurar	um	novo	banco	de	dados.	Preciso	dele	agora!”
“Nossos dados de desenvolvimento/teste estão uma bagunça. Por que eles nunca são limpos?”
Qualquer	uma	dessas	reclamações	soa	familiar?	Provavelmente	sim,	se	você	for	um	profi	ssional	de	
dados em uma grande empresa. Os departamentos de TI dos dias de hoje são afetados por uma lista 
não processada de demandas de administração de dados. De solicitações por novos bancos de dados 
de desenvolvimento e teste de aplicativos até o backup e a restauração de volumes de dados cada vez 
mais crescentes, nunca há uma falta de muito trabalho para manter DBAs na correria.
Em	uma	tentativa	de	minimizar	o	tempo	que	os	profi	ssionais	de	dados	gastam	no	modo	reativo	-	res-
pondendo a solicitações de usuários com tarefas sem parada de “banco de dados, clone, banco de 
dados, clone” - algumas organizações estão tomando emprestado conceitos de autoatendimento do 
domínio de computação em nuvem e indo em direção a um modelo de banco de dados como serviço 
ou DBaaS, em que usuários podem simplesmente “acessar uma nuvem” e capturar um banco de 
dados conforme necessário.
É	uma	ideia	provocante	—	principalmente	para	usuários	fi	nais.	Desenvolvedores	de	sistemas	e	de	
software adoram o controle que eles obtêm com recursos de autoatendimento de DBaaS. Quando eles 
estão na toada, em vez de esperando que o departamento de TI volte uma semana mais tarde com um 
banco de dados de desenvolvimento/teste, eles podem solicitar e provisionar recursos imediatamente 
— mantendo seu ímpeto ativo e suas ideias frescas.
Para	tornar	essa	visão	uma	realidade,	no	entanto,	os	profi	ssionais	de	dados	nos	bastidores	devem	
realizar uma quantia considerável de trabalho no backend. Desenvolver uma nuvem de dados privada 
36 BANCO DE DADOS | Educação a Distância
e	lançar	com	sucesso	DBaaS	para	usuários	finais	requer	que	DBAs	considerem	diversos	fatores,	en-
tre eles a infraestrutura de hardware subjacente da nuvem, as “boas práticas” de dados abrangentes 
a	serem	implementadas	e	replicadas	pela	nuvem	e,	por	fim,	a	interface	de	serviços	que	trará	todos	
esses	itens	de	forma	transparente	aos	usuários	finais	para	concluir	a	imagem.
“Nossos dados de desenvolvimento/teste estão uma bagunça. Por que eles nunca são limpos?”
penetrando as nuvens
Computação em nuvem refere-se a uma categoria de soluções de tecnologia que permite que usu-
ários acessem recursos de computação (neste caso, recursos de dados) on demand, conforme ne-
cessário, sejam os recursos físicos ou virtuais, dedicados ou compartilhados e independentemente 
de como são acessados (por meio de uma conexão direta, rede local [LAN], rede de longa distância 
[WAN] ou a Internet).
Para oferecer DBaaS na nuvem, os departamentos de TI corporativos devem construir e gerenciar 
uma nuvem de dados corporativa privada — uma plataforma que consiste em hardware de armaze-
namento, imagens virtuais, esquemas de banco de dados e mais — e disponibilizar essa nuvem a 
usuários por meio de uma interface de serviços.
Quando esta infraestrutura estiver instaurada, à medida que necessidades de banco de dados sur-
gem, os usuários podem simplesmente ir para a nuvem, solicitar os recursos que requerem e obter 
acesso instantâneo a seu próprio banco de dados pessoal on demand. Quando eles não precisarem 
mais dos ativos de dados, os ativos são reciclados de volta na nuvem para redesignação, em vez de 
serem deixados desperdiçados e inativos.
Figura 1. uma infraestrutura otimizada para entrega em nuvem do banco de dados enfatiza 
simplicidade	e	eficiência	por	meio	de	automação	e	normatização	de	hardware.	
37BANCO DE DADOS | Educação a Distância
Etapa um: Desenvolver a base da nuvem
Sua primeira parada no caminho para construir um ambiente de computação em nuvem e entregar 
DBaaS será considerar sua infraestrutura de hardware subjacente e assegurar que seja alinhada 
aos objetivos de DBaaS (consulte a Figura 1). Devido à maneira como a maioria dos departamentos 
de TI está estruturada, essas decisões de hardware provavelmente não ocorrerão em um vácuo. Na 
verdade, a maioria do DBAs precisará colaborar com administradores de sistemas e contrapartes da 
arquitetura corporativa para chegarem a um consenso sobre qual deve ser a infraestrutura de hardwa-
re. Esse processo pode requerer concessões de todos os lados, portanto, tente entrar na conversa 
com um entendimento claro de suas principais prioridades de hardware e as “boas de ter”. Não tem 
certeza de quais devem ser essas prioridades? Leia adiante.
Como em qualquer decisão de compra de hardware, muitos atributos afetarão a discussão — plata-
forma, tamanho de armazenamento, velocidade, custo e mais. Para suportar DBaaS na nuvem, acima 
de tudo você irá querer assegurar que seu hardware seja o mais padronizado possível. Como é muito 
mais fácil automatizar um script em execução em um sistema aberto homogêneo do que muitos scripts 
diferentes em um heterogêneo, a normatização é a chave para automação. DBaaS em seu âmago é 
nada	mais	que	automação	—	a	automação	do	processo	de	configuração	e	fornecimento	de	um	banco	
de dados — de forma que quanto mais uniforme for sua plataforma de hardware, mais simples será 
configurar	DbaaS.
Em seguida, dê uma olhada nas opções de armazenamento disponíveis para suportar seu banco de 
dados.Certifique-se	de	que	você	tenha	um	entendimento	claro	dos	tipos	de	recursos	que	receberá	
prontos para uso - inclusive atributos como alta disponibilidade, recuperação de desastre e autonomia 
- assim como a capacidade geral de armazenamento e recursos de sua infraestrutura de hardware. 
Como	essa	plataforma	formará	por	fim	a	base	de	sua	oferta	DBaaS,	é	crítico	entender	exatamente	do	
que	é	capaz	-	e	o	que	é	possível	passar	a	seus	usuários	finais.	Se	você	usar	uma	base	de	armazena-
mento	que	tenha	recursos	excepcionais	de	confiabilidade,	disponibilidade	e	capacidade	de	manuten-
ção (RAS), por exemplo, estará mais bem equipado a fornecer bancos de dados na nuvem que são 
resilientes e altamente disponíveis também.
Etapa	dois:	Identificar	cargas	de	trabalho	comuns	e	melhores	práticas
O	próximo	estágio	de	planejamento	de	DBaaS	fornece	a	você,	como	um	profissional	de	dados	expe-
riente com conhecimento íntimo dos funcionamentos internos de sua organização e suas estruturas 
de dados, a chance de brilhar. A etapa mais crítica para a entrega de DBaaS que realmente traz valor 
a	seus	usuários	finais	é	decidir	antecipadamente	o	tipo	de	modelos	e	imagens	de	banco	de	dados	que	
devem	ser	disponibilizados	na	nuvem.	Para	tomar	tais	decisões,	você	deve	identificar	as	cargas	de	tra-
balho comuns e os processos chaves que ocorrem em seu ambiente de negócios e coletar melhores 
práticas. Esses são os principais candidatos para automação e entrega por meio de DBaaS e a chave 
para seu lançamento bem-sucedido.
Por exemplo, os DBAs podem trabalhar juntamente com os gerentes de linha de negócios para identi-
ficarem	os	conjuntos	de	dados	que	“precisam	ter”	e	usarem	essas	informações	para	criarem	modelos	
de	bancos	de	dados	que	conectem	de	forma	eficiente	a	sistemas	front-end,	funcionem	bem	com	ferra-
mentas de consulta e possam ser facilmente clonados para fornecimento futuro por meio de DBaaS. 
Em seguida, a equipe e os sistemas podem acessar a nuvem e ter acesso a todos os modelos que 
contêm os dados mais recentes, informações atualizadas no minuto e estruturas de dados - sem cria-
38 BANCO DE DADOS | Educação a Distância
rem	as	difi	culdades	de	administração	de	dados	de	mudanças	de	esquema,	mapeamento,	migração	
de dados e mais.
Em outros ambientes corporativos, DBAs podem escolher imagens de bancos de dados - frequente-
mente	incorporando	metadados	específi	cos	do	segmento	de	mercado	e	dados	de	referência	-	como	
candidatos para automação. Um DBA familiarizado com os requisitos de negócios pode isolar uma ins-
tância de um banco de dados de produção que contenha um conjunto crítico de tabelas, visualizações, 
acionadores e procedimentos armazenados - assim como dados de referência chave - para criar uma 
imagem de banco de dados para ser automatizada por meio de DBaaS. Quando os negócios solicitam 
um	banco	de	dados	para	suportar	uma	nova	fi	lial	ou	para	testar	um	aplicativo,	não	haverá	nenhuma	
necessidade de esperar semanas enquanto DBAs o constroem. Em vez disso, ele estará disponível 
instantaneamente por meio de DBaaS na nuvem.
Etapa três: Estabelecer um modelo de entrega
Agora	que	você	decidiu	sobre	a	sua	infraestrutura	de	hardware	e	identifi	cou	os	processos	e	procedi-
mentos	a	serem	automatizados	por	meio	de	DBaaS,	sua	etapa	fi	nal	será	trabalhar	com	usuários	fi	nais	
para educar e ajudar os mesmos a selecionarem a interface por meio da qual esses serviços de dados 
serão disponibilizados.
Há	 três	métodos	principais	de	acesso	a	DBaaS:	por	meio	de	uma	 interface	gráfi	ca	com	o	usuário	
(GUI), uma interface da linha de comandos (CLI) ou diretamente por meio de uma interface repre-
sentational	 state	 transfer	 (REST)	padrão.	Qual	 interface	será	empregada	por	fi	m	dependerá	muito	
da	preferência	do	usuário	fi	nal.	Por	exemplo,	enquanto	a	GUI	é	a	abordagem	mais	 fácil	e	simples	
das	três,	se	os	usuários	fi	nais	já	utilizarem	aplicativos	que	empregam	CLI,	pode	ser	que	não	queiram	
alternar. Como alternativa, os usuários podem querer eliminar a necessidade de intervenção humana 
inteiramente e promover uma integração mais forte com seu ambiente, programando aplicativos para 
se comunicarem diretamente com DBaaS por meio de REST. Quando se sabe as opções, é possível 
trabalhar com seus usuários e ajudar a guiá-los para a interface de DBaaS mais adequada para seus 
desejos	e	necessidades	específi	cos	e	juntos	selecionar	o	wrapper	que	unirá	todo	o	pacote	DBaaS.
uma nuvem com um raio de esperança
Não é nenhum segredo que gerenciar os valores de dados em rápida expansão e as necessidades 
de administração de banco de dados das grandes empresas dos dias de hoje é uma grande proeza. 
DBAs têm uma tarefa dura e não há outra maneira de descrever isso. A boa notícia é que com DBaaS, 
os	profi	ssionais	de	dados	estão	em	uma	posição	exclusiva	não	somente	de	darem	aos	usuários	fi	nais	
novos níveis de liberdade e serviço, mas também para saírem do ciclo vicioso de tarefas de dados 
rotineiras e irem para as coisas boas. E apesar de isso poder exigir algum fundamento para chegar 
lá, no que se refere a uma nuvem com um raio de esperança, isso é praticamente o melhor que se 
pode obter.
Fonte: <http://www.ibm.com/developerworks/br/data/library/dmmag/DMMag_2011_Issue2/cloudDBa-
aS/>. Acesso em: 14 ago. 2012.
uNiDADE ii
OS BANCOS DE DADOS E O SOFtWArE
Professor Me. Edson Yanaga
Objetivos de Aprendizagem
•	 Apresentar	as	definições	fundamentais	de	sistemas	de	bancos	de	dados.
•	 Descrever	as	arquiteturas	de	bancos	de	dados	e	suas	características.
plano de Estudo
A seguir, apresentam-se os tópicos que você estudará nesta unidade:
•	 Conceituar	schemas,	instâncias,	abstrações	e	as	interfaces	de	interação	com	
o SgBD
•	 Estudo	do	histórico	das	arquiteturas	de	computação	em	geral	e	de	sistemas	
de banco de dados
•	 Classificação	dos	diferentes	 tipos	de	banco	de	dados	de	acordo	com	suas	
características
41BANCO DE DADOS | Educação a Distância
iNtrODuçãO
Fo
nte
: S
HU
TT
ER
ST
OC
K.
CO
M
Nesta unidade, apresentaremos alguns conceitos fundamentais que serão utilizados nas demais 
unidades. Para compreender adequadamente os sistemas de banco de dados, é necessário 
diferenciar adequadamente os modelos das instâncias dos modelos – pois possuem ciclos de 
vida e finalidades bastante distintas.
Diferentes tipos de interface de usuário são disponibilizadas para diferentes tipos de usuários 
em vários produtos diferentes comercializados no mercado. Apresentaremos algumas delas 
para que você, desenvolvedor(a), possa explorá-las posteriormente.
Entender como podem ser construídos sistemas com SGBDs implica em conhecer também a 
história da arquitetura de sistemas de computação, que evoluíram do monolítico até o distribuído 
em camadas. Cada geração possui suas particularidades, que também são refletidas na 
construção dos diferentes SGBDs.
Apresentaremos também alguns critérios de classificação de SGBDs para que você, como 
desenvolvedor(a) de software incumbido(a) da árdua tarefa de escolher um produto, possa 
avaliar subjetivamente e objetivamente diferentes alternativas do mercado.
42 BANCO DE DADOS | Educação a Distância
SCHEMAS,	INSTÂNCIAS	E	ABSTRAÇÕES
Uma característica fundamental de qualquer modelo de software (o que inclui o banco de 
dados) é o seu nível de abstração. É impossível conseguir modelar todos os aspectos do 
mundo real numa aplicação. Assim, decidimos adequadamente escolher somente os aspectos 
mais relevantes para resolver um determinado problema, e representamos estes aspectos por 
meio de um modelo – que é uma abstração dos dados do mundo real. Um modelo de dados 
é uma coleção de conceitos que pode ser utilizada para descrever a estrutura de um banco 
de dados. Por meio desses conceitos, conseguimos alcançar a abstração necessária para 
construir o nosso modelo de software.
Em qualquer modelo de dados, é importante distinguiraquilo que representa a descrição do 
banco de dados com o banco de dados em si. A descrição do banco de dados é denominada 
de schema1, que é especificado durante o projeto do sistema de software.
Os dados realmente armazenados num banco de dados podem mudar com uma alta 
frequência. No conjunto de contatos da minha agenda pessoal, esse banco de dados muda 
toda vez que eu adiciono um novo contato ou altero um telefone ou e-mail deste contato. O 
conjunto de dados de um banco de dados num determinado instante do tempo é denominado 
de snapshot. Também é definido como o estado atual de todas as instâncias no banco de 
dados. Uma instância é um item dentro do banco de dados que segue as definições de seu 
schema correspondente.
A distinção entre o schema do banco de dados e o estado do banco de dados é muito importante. 
No processo de desenvolvimento de software, quando definimos um novo banco de dados, 
primeiro definimos o seu schema – que após criado representa um snapshot inicial vazio. Ao 
manipularmos este banco de dados com operações de inserção, alteração e remoção, nós 
modificamos o snapshot. O SGBD é responsável por garantir a consistência do snapshot em 
1 O plural correto de schema é schemata, mas praticamente não é utilizado. Na área de tecnologia da informação, 
costuma-se utilizar o plural schemas, mesmo sendo errado.
43BANCO DE DADOS | Educação a Distância
qualquer momento do tempo.
Não é uma operação usual ter que realizar modificações no schema, mas elas são realizadas 
toda vez que uma mudança nos requisitos do negócio demanda uma alteração no modelo de 
dados. Este conjunto de alterações para acomodar mudanças no software é denominado de 
schema evolution.
iNtErFACES DOS SgBDS
Algumas das interfaces do SGBD com o usuário são:
Linha de Comando Sem dúvida nenhuma a linha de comando é a interface mais poderosa e 
flexível	para	a	interação	do	usuário	com	o	SGBD.	Por	este	mesmo	motivo,	
normalmente não é uma opção que a maioria considere como amigável. 
Mas desenvolvedores devem sem dúvida nenhuma dominá-la para poder 
explorar os recursos do mesmo.
44 BANCO DE DADOS | Educação a Distância
Interfaces Web Muitos SGBDs fornecem interfaces Web que podem ser acessadas por 
meio de qualquer navegador para a administração e manipulação dos ban-
cos de dados. Embora não sejam tão poderosas ou produtivas, são bastan-
te amigáveis e possuem ainda a vantagem da disponibilização do acesso. 
Muitos administradores de rede não se sentem confortáveis em permitir o 
acesso direto ao banco de dados, mas não se importam em liberar o aces-
so por meio de HTTP (Web).
45BANCO DE DADOS | Educação a Distância
Interfaces Desktop São tão amigáveis quanto as Interfaces Web, mas costumam fornecer ca-
pacidades	de	manipulação	gráfica	de	diagramas.	Isso	auxilia	os	desenvol-
vedores a “enxergar” os relacionamentos entre as entidades do banco de 
dados.
46 BANCO DE DADOS | Educação a Distância
Interfaces baseadas 
em formulários
O Oracle Forms é um exemplo clássico desta interface, típica de sistemas 
implementados utilizando-se triggers e stored procedures.	Os	usuários	fi-
nais conseguem executar seus processos de negócios por meio da própria 
interface do SGBD, preenchendo formulários e interagindo com a interface 
de controle.
ArQuitEturAS DE SiStEmAS DE BANCO DE DADOS
A arquitetura de sistemas de banco de dados confunde-se com a própria história da arquitetura 
de sistemas de computação em geral. De fato, ao mesmo tempo em que as aplicações e os 
modelos de arquitetura de aplicações evoluíram, também evoluíram os sistemas de banco de 
dados. Dentre os fatores que influenciaram estas evoluções estão o aumento da capacidade 
de processamento, o aumento da capacidade de armazenamento, o aumento da quantidade e 
capacidade das redes de comunicação, a redução de custo dos equipamentos, o aumento do 
número de usuários, o aumento da quantidade de informações e a universalização do acesso. 
Não há como explicar adequadamente as arquiteturas de sistemas de banco de dados sem 
descrever conjuntamente as arquiteturas de sistemas de computação em geral. Nas próximas 
seções, apresentaremos e descreveremos concomitantemente estas diferentes arquiteturas, 
da centralizada até o modelo em camadas.
47BANCO DE DADOS | Educação a Distância
mODElO CENtrAliZADO
Os primeiros modelos computacionais eram centralizados, baseados num único mainframe 
fornecendo processamento, armazenamento e interface de interação com o usuário no 
mesmo equipamento/aplicação. Raros eram os mainframes (devido ao seu alto custo) e por 
consequência também poucos eram os usuários que tinham acesso a aplicações baseadas 
em mainframe. A interação dos usuários com as aplicações era realizada por meio de terminais 
burros, que não possuíam poder de processamento: somente teclado; e exibiam telas geradas 
no próprio mainframe e transmitidas até o monitor (usualmente de fósforo verde ou amarelo) 
por meio de um cabo de comunicação. A Figura 1 retrata um típico sistema centralizado 
baseado em mainframe.
Mainframe
Terminal
Burro
Terminal
Burro
Terminal
Burro
Figura 1
Fonte: o autor
48 BANCO DE DADOS | Educação a Distância
Costumamos retratar este modelo de computação como monolítico, pois todas as atividades 
eram baseadas no mainframe. Naturalmente, as aplicações desenvolvidas para este tipo de 
equipamento também foram concebidas e implementadas de modo monolítico. Isso significa 
que não havia uma distinção clara entre o que era interface com o usuário ou o que era 
código de negócios ou código responsável pelo armazenamento de dados. Esta situação é 
denominada de sistema altamente acoplado, pois qualquer alteração numa pequena parte 
do sistema costuma levar a várias outras alterações em cascata para diversas outras partes 
do sistema.
Os bancos de dados eram então extensões da própria aplicação e eram baseados nos modelos 
hierárquicos e em rede, que serão apresentados adiante.
Modelo cliente/servidor
Com a popularização dos PCs e o declínio de seus preços, iniciaram-se as primeiras 
implantações da arquitetura cliente/servidor. A ideia é que ao invés de termos um grande 
equipamento monolítico (mainframe), passamos a ter vários equipamentos menores (e de custo 
e capacidade inferior) com propósito específico (banco de dados, arquivos, e-mail, impressão 
etc.) interligados por meio de uma rede de comunicação. Cada servidor tornou-se um serviço 
especializado (embora não seja incomum agrupar vários serviços num único equipamento, 
dependendo da conveniência).
Os clientes, que também são PCs, podem acessar os recursos disponibilizados por estes 
servidores por meio de rede. A Figura 2 mostra um esquema simplificado da arquitetura 
cliente/servidor.
49BANCO DE DADOS | Educação a Distância
Servidor Servidor Servidor
PC PC PC PC
Figura 2
Fonte: o autor
Em termos de arquitetura das aplicações, denominamos o modelo cliente/servidor como modelo 
de 2 camadas, respectivamente camada cliente e camada servidor. No lado cliente costuma-
se implantar os recursos da aplicação relacionados à interface com o usuário, enquanto no 
lado servidor implanta-se a lógica de negócios, armazenamento e controle transacional. Este 
modelo tornou-se extremamente popular no final da década de 1980 e início da década de 1990, 
e com ele também popularizou-se a prática do desenvolvimento de aplicações utilizando-se 
triggers e stored procedures dentro do próprio SGBD. Cada cliente estabelece uma conexão 
remota ao SGBD, que passa a executar a lógica de negócios, armazenar os dados e controlar 
as transações.
O modelo cliente/servidor é bastante adequado quanto às aplicações que possuem um número 
limitado de usuários concorrentes (de 100 a até 300 ou 400 usuários). A partir deste número, 
50 BANCO DE DADOS | Educação a Distância
o desempenho desta

Outros materiais