Buscar

Evolução dos Bancos 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 312 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 312 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 312 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

MODELAGEM E 
DESENVOLVIMENTO 
DE BANCO DE DADOS 
Fabrício Felipe Meleto Barboza
Evolução dos bancos 
de dados
Objetivos de aprendizagem
Ao final deste texto, você deve apresentar os seguintes aprendizados:
 � Identificar a evolução dos bancos de dados.
 � Reconhecer a ordem cronológica dos bancos de dados.
 � Explicar as origens dos bancos de dados.
Introdução
Um banco de dados é um conjunto de valores e arquivos que se relacio-
nam entre si e demonstram um cadastro de pessoas, vendas, produtos, 
agendas, etc. Por exemplo, uma planilha ou uma ficha cadastral podem ser 
exemplos de cadastros. O banco de dados guarda todos esses cadastros 
em formato virtual e os disponibiliza para as aplicações consultarem e 
emitirem relatórios, realizarem vendas, etc.
Neste capítulo, você vai estudar sobre a evolução dos bancos de 
dados decorrente das necessidades impostas por seus utilizadores e 
para solucionar problemas da sociedade. Adicionalmente, você verá, em 
uma escala de tempo, os principais marcos da história dos bancos de 
dados com suas características e particularidades. Por fim, irá conhecer 
o início de tudo, isto é, o que deu origem aos bancos de dados como 
são conhecidos hoje em dia.
A evolução dos bancos de dados
A evolução dos bancos de dados foi e continua sendo de constante melhoria, 
trazendo mais segurança e rapidez para as informações ou dados nele salvas. 
Para Korth, Silberschatz e Sudarshan (2012), um banco de dados “[...] é uma 
coleção de dados inter-relacionados, representando informações sobre um 
domínio específico”.
Pense em uma situação hipotética em que você tenha uma loja de sapa-
tos em um shopping. Você está verificando a implantação de um sistema 
para controlar todas as suas vendas e também as compras de reposição de 
estoque, de maneira que todas as informações da sua loja estarão salvas 
em um sistema no computador da loja que, obviamente, utiliza um banco 
de dados.
Agora imagine se o vendedor do sistema pedisse pra você escolher 
entre 1) um sistema rápido, que tira relatórios gigantescos em menos de um 
segundo, processa vendas também em menos de um segundo do relógio, 
mas, por outro lado, não garante que a informação está íntegra e consis-
tente, e 2) um banco de dados que garante a integridade e a consistência 
das informações, mas demora dez segundos para processar alguma venda 
ou um minuto para criar o relatório complexo solicitado. Qual você, dono 
da loja, escolheria?
Lembre-se de que a evolução em sistemas de tecnologia da informação é importante, 
mas a segurança sempre deve vir em primeiro lugar para que, depois, possamos pensar 
em estabilidade, funcionalidade e velocidade.
Uma tendência da evolução comum é sempre mirar e colocar o foco e as 
metas em realizar a ação com mais e mais rapidez, cada vez provendo maior 
velocidade e resultados instantâneos para o usuário do sistema. Porém, ao 
decidir pela evolução de um sistema de banco de dados, é necessário pensar 
em outros fatores além da velocidade. Com toda a certeza, a velocidade é 
importante e sempre levada em consideração, mas os outros pilares precisam 
ser garantidos para toda transação de um banco de dados. Esses pilares são:
 � Atomicidade;
 � Isolamento;
 � Consistência;
 � Durabilidade.
Evolução dos bancos de dados2
Essas quatro características são garantidas para cada transação realizada 
no banco de dados, independentemente de quem realizou o comando: o próprio 
sistema, o usuário final ou ainda alguma rotina automática.
Mas o que seria uma transação em um sistema de banco de dados? Uma 
transação para um sistema de gerenciamento de banco de dados (SGBD) é 
toda e qualquer atividade que o próprio sistema de gerenciamento de banco 
de dados executa após o usuário ter uma interação com o banco.
Assim, qualquer atividade provocada pelo usuário via interface do sistema 
dispara uma transação ou uma cadeia de transações no banco de dados que 
precisam estar garantidas e ter aderência a esses pilares. Consequentemente, 
essa é a regra de ouro dos bancos de dados.
A regra de ouro dos sistemas de gerenciamento de bancos de dados é a garantia de 
que todos os pilares das transações sejam assegurados e respeitados em cada uma 
de suas transações internas.
Sabendo disso, agora, é necessário entender o que cada um desses pilares 
representa, defende e significa para os bancos de dados.
Atomicidade
Para entender o pilar da atomicidade, fazemos uma analogia à expressão “08 
ou 80”, ou seja, ou finaliza com sucesso ou tudo é abortado. Portanto, ou o 
SGBD conclui todas as ações em cascata para uma transação (commit) ou ele 
retorna ao estado anterior da transação (rollback). 
Assim, a atomicidade é a responsável por garantir que ou uma transação 
é gravada com sucesso e garantida ou é realizado o rollback de toda a transa-
ção para que o banco de dados retorne ao estado anterior daquela transação. 
Nunca um sistema de gerenciamento de banco de dados pode permitir que 
uma transação seja executada pela metade e fique sem rollback, pois isso faz 
a consistência do banco de dados ficar quebrada.
3Evolução dos bancos de dados
Atomicidade é a regra do “ou tudo ou nada”. Ou toda a transação é salva com sucesso 
no banco ou toda a transação é descartada.
Isolamento
Este pilar representa a independência de cada transação no sistema de geren-
ciamento de banco de dados. Cada transação é única e independente, o que 
faz com que duas transações que alterem o mesmo valor de uma tabela não 
entrem em conflito. Toda transação é uma engrenagem no sistema maior, que 
seria o SGBD.
Conforme o sistema tem mais usuários trabalhando nele, mais esta regra 
se torna verdadeira e necessária. Imagine um e-commerce que realiza venda 
de enfeites natalinos. Quando chegar a época de procura por esses enfeites, o 
fluxo de pessoas utilizando o sistema irá aumentar consideravelmente. Agora 
imagine que existe apenas um item de Papai Noel em estoque e dois clientes 
realizam a compra desse item no mesmo segundo; como resolver? O pilar de 
isolamento garante que a transação que for processada em primeiro lugar pelo 
sistema de gerenciamento de banco de dados leve a compra e que a segunda 
pessoa receba um alerta de que o produto ficou fora de estoque.
No exemplo, duas transações estavam tentando inserir dados referentes ao 
mesmo valor único, que seria a quantidade de estoque do produto. Por tratar-se 
de duas transações isoladas e independentes, o sistema de gerenciamento de 
banco de dados rapidamente resolve essa questão, de modo que tal responsa-
bilidade não fica para a equipe de desenvolvimento.
Isolamento é a garantia de que as transações não terão disputa para edição ou escrita 
em um determinado dado ou valor.
Evolução dos bancos de dados4
Consistência
As regras, em sua totalidade, sempre devem ser respeitadas para que o sistema 
de gerenciamento de banco de dados tenha atendido suas características de 
base. Isso inclui, por exemplo, que o tipo de valor inserido seja correto em 
relação ao tipo do seu atributo (VARCHAR, INT, DATE, etc.).
Assim, em face da consistência, um campo do tipo Integer nunca poderá 
receber caracteres alfabéticos. Essa separação se dá para a criação de buscas e 
resultados mais rápidos em campos do tipo numérico. Computadores só sabem 
interpretar números, de modo que campos não numéricos por natureza exigem 
mais processamento do computador, que precisa transformar a informação 
alfabética salva em códigos e linguagem de máquinas que são representados 
por números para conseguir trabalhar.
Consistência é ter o dado certo no local esperado. Um campo do tipo Integer sempre 
deverá conter um valor de número inteiro.
Durabilidade
Quando uma transação é finalizada, seus dados estão a salvo de qualquer 
modificação. Somente outra transação pode modificar os dados. Assim, os 
dados ficam protegidos!
Imagine que a sua compra foi finalizada com sucesso e, quando você vai 
buscar seu histórico de compras, ela não aparece. Ruim, correto? A durabi-
lidade garanteque a informação de sua compra só seja modificada por outra 
transação e, dessa forma, consegue-se rastrear as requisições e buscar o que 
ou quem fez tal atividade.
O próprio sistema de gerenciamento de banco de dados não realiza nenhuma 
modificação após a conclusão de todas as transações pendentes. Portanto, 
qualquer modificação de um valor do banco de dados será de origem do 
usuário ou do sistema.
5Evolução dos bancos de dados
Durabilidade é a proteção dos dados contra qualquer coisa que não seja uma nova 
transação do banco de dados.
Cronologia dos bancos de dados
Há divergência na ordem cronológica do surgimento das versões dos bancos 
de dados, exceto as versões mais comumente utilizadas. Observe a Figura 1, 
que representa as etapas mais importantes da evolução dos bancos de dados.
Figura 1. Cronograma de evolução dos BDs.
Evolução dos bancos de dados6
Com base na Figura 1, percebe-se grande concentração de lançamentos e 
popularização dos bancos de dados no período compreendido entre os anos 
1980 até os 2000. Essa intensa movimentação se deu em virtude da infor-
matização das empresas, que aconteceu ao longo desses anos. Cada empresa 
precisou incrementar seu parque tecnológico para que atendesse seus objetivos 
internos, como redução de custo, melhora do valor da entrega ao cliente, ou 
também objetivos externos, como estar de acordo com uma nova lei, receber 
auditoria de órgãos competentes ou, ainda, pela concorrência, que está em 
franca evolução e em busca por melhores resultados a todo custo.
Antes da década de 1980, temos o estágio embrionário dos bancos de dados. 
Sua evolução estava ocorrendo, mas era centralizada em forma de pesquisas 
e experimentos. Até porque, quando fossem apresentados para as empresas e 
para o público geral, era necessário confiar no produto oferecido ao custo de 
milhões de dólares em pesquisas.
Após os anos 2000, a evolução continua até os dias atuais, mas de forma 
menos acelerada, já que o foco, atualmente, é em estabilidade e segurança 
cada vez maiores. Partindo desse princípio, temos o surgimento de bancos 
de dados NoSQL, que fazem frente aos tradicionais bancos de dados rela-
cionais SQL.
Retome a Figura 1 e atente-se para o quadrante “Anos 2000”, no qual você 
verá que foi nesse período que surgiu o MongoDB, banco de dados NoSQL (Not 
only SQL) e com grande poder de processamento. Aí você pode se perguntar: 
“mas se ele é melhor, por que todos não migram pra ele?”. A resposta é direta: 
custo e foco do projeto.
O banco de dados NoSQL não veio para matar os bancos de dados relacio-
nais como muitos imaginavam em seu lançamento, mas para complementar 
e oferecer uma opção a mais para as empresas e desenvolvedores segundo 
Guedes (2017).
Dessa forma, podemos exemplificar o uso de cada um dos tipos de bancos 
de dados de forma mais didática: caso a aplicação tenha relacionamentos entre 
as entidades e o volume de informações não for gigantesco, os bancos de dados 
relacionais tradicionais atenderão muito bem a sua demanda por um sistema.
Agora, caso você tenha um sistema de bancos de dados grandioso, com 
muitos valores sendo escritos e lidos ao mesmo tempo, a indicação é um banco 
de dados do tipo NoSQL para que o seu sistema ganhe em desempenho e não 
frustre os usuários com telas de “carregando”, erros de timeout de conexão 
ou ainda a negação de serviço por falta de recursos ao processar uma consulta 
gigante do gerente que trabalha remoto, impedindo de abrir a agenda de 
reuniões de outro funcionário.
7Evolução dos bancos de dados
Lembre-se também de que, por ser uma tecnologia mais nova, o custo 
para manter um banco de dados NoSQL é grande, até pela escassez de mão 
de obra qualificada no mercado de trabalho. Portanto, mensure esse custo ao 
tomar uma decisão sobre qual tipo de sistema de gerenciamento de bancos 
de dados utilizar no projeto.
Origens dos bancos de dados
Antigamente, as empresas produziam e mantinham cadastros de tudo que 
fosse necessário em fichas e papéis armazenados em um ou vários arquivos 
dentro de uma ou várias salas. Portanto, cliente, fornecedor, colabora-
dor, agendas de compromisso, agendas telefônicas, inventário, controle 
de estoque, etc. estavam em um papel, em algum lugar dentro de algum 
arquivo. 
Obviamente, organizar e manter tudo atualizado era uma tarefa complexa 
demais, pois envolvia um esforço muito grande para buscar informações 
básicas e que deveriam estar acessíveis para qualquer colaborador de forma 
instantânea.
Imagine que é necessário buscar todos os registros de ponto de entrada 
e saída de um colaborador que ficou durante vinte anos na empresa pois ele 
entrou com uma ação trabalhista, por exemplo. Agora imagine essa mesma 
situação e com um prazo de cinco dias para entregar toda essa informação ao 
Ministério do Trabalho. Impossível, certo?
Além disso, as informações contidas nesses papéis ficavam facilmente ob-
soletas em virtude da demora em atualizar o registro. Portanto, nada confiável.
Imagine a probabilidade de um desastre na sala de arquivos, como um cano 
de água rompido que encharque todos os registros da empresa. Com certeza, 
a empresa em questão teria sérios problemas ou, em um caso mais extremo, 
mas não descartado, até mesmo fecharia as portas se algo dessa magnitude 
acontecesse. 
Pode-se ir mais a fundo e imaginar que algum funcionário espião ou insa-
tisfeito com a empresa roube a informação de um projeto que iria ser lançado 
no próximo ano e a venda para a concorrência. Todo o esforço empregado na 
pesquisa e no desenvolvimento daquele projeto foi praticamente em vão, pois 
o elemento surpresa, para pegar o mercado no ponto certo e os concorrentes 
ficarem desequilibrados, foi perdido.
Evolução dos bancos de dados8
Sempre que um problema é detectado, ele deve ser resolvido logo por meio do 
fomento de ideias para o seu contorno ou para a criação de solução definitiva.
Pense que os bancos de dados só foram inventados porque existiu uma necessidade 
latente de diminuir despesas e melhorar a confiança nas informações salvas pela 
empresa com o passar dos anos.
Dessa forma, havia um problema grande e generalizado em todas as cor-
porações em que registros eram feitos em papéis e armazenados em um lugar 
qualquer, muitas vezes sem a devida importância para o dado, para o registro 
ali contido. Como grandes problemas sugerem soluções altamente lucrativas, 
iniciou-se pesquisas que apresentassem uma solução para todo esse caos vi-
venciado em cada pequeno, médio ou grande escritório ou empresa no mundo.
Na década de 1960, surge uma solução para esse caos: o banco de dados. 
Vários modelos foram apresentados à IBM, financiadora do projeto, e, entre 
os modelos propostos, estavam o hierárquico e o de rede.
Apesar disso, nada muito usual ou com uma viabilidade de escala foi 
apresentado, o que fez os projetos serem engavetados.
Segundo Alves (2013), já na década de 1970, mais precisamente no mês 
de junho, o então pesquisador da IBM Edgar Frank “Ted” Codd apresentou 
um artigo que mudaria a história dos modelos de bancos de dados para 
sempre – ele estava propondo o modelo relacional de bancos de dados. 
Em seu artigo Relational Model of Data for Large Shared Data Banks, 
Ted descrevia como usuários leigos conseguiriam extrair os dados que 
lhes eram importantes.
No raciocínio de Alves (2013), vemos que, já no fim da década de 1970, surge 
o Sistema R, um sistema baseado nas ideias de Ted. Junto ao lançamento do 
Sistema R, veio a linguagem SQL, acrônimo para Structured Query Language, 
a linguagem que dominou o mercado. O Sistema R não foi bem comercialmente 
e acabou sendo abandonado, mas serviu, com toda a certeza, de inspiração e 
base para muitos dos bancos de dados que temos nos dias de hoje.
Finalizando seu pensamento, Alves (2013) diz que, na década de 1980, 
ocorrem dois marcos importantes na linha cronológica dos bancos de dados: 
o lançamento do Oracle 2 pela própria Oracle e, também, o lançamento do 
SQL/DS pela IBM, conhecidopor DB2 atualmente.
9Evolução dos bancos de dados
Portanto, temos aí a origem dos bancos de dados. Com o passar de mais 
anos e décadas, os sistemas de gerenciamento de bancos de dados foram 
evoluindo segundo a necessidade dos clientes, no caso de sistemas pagos, ou 
pela produção da comunidade, no caso de sistemas opensource. 
Aliás, uma curiosidade que também permeia este cenário de evolução: 
sempre que a comunidade dos sistemas de bancos de dados opensource lança 
algo inovador, as empresas que têm bancos de dados licenciados correm atrás e 
vice-versa. Com isso, muitas funcionalidades que estão presentes em sistemas 
de bancos de dados opensource também se tornam presentes nos sistemas 
proprietários, assim como o inverso.
A aplicação de cada sistema de banco de dados se dará pela escolha cru-
cial de quem irá desenvolver baseado no orçamento e conhecimento daquela 
tecnologia de banco de dados específica para otimizar o tempo do projeto e 
também o seu custo.
Lembre-se de quem fez a pesquisa para obter os bancos de dados relacionais que 
conhecemos hoje: Edgar Frank “Ted” Codd, pesquisador da IBM na época e que lançou o 
artigo intitulado Relational Model of Data for Large Shared Data Banks. Ted é considerado 
o pai dos bancos de dados relacionais.
ALVES, G. F. O. A história dos bancos de dados. 01 abr. 2013. Disponível em: <https://dicas-
deprogramacao.com.br/a-historia-dos-bancos-de-dados/>. Acesso em: 21 maio 2018.
GUEDES, M. SQL vs NoSQL, qual usar? 19 jul. 2017. Disponível em: <https://www.treina-
web.com.br/blog/sql-vs-nosql-qual-usar/>. Acesso em: 21 maio 2018.
KORTH, H. F.; SILBERSCHATZ, A.; SUDARSHAN, S. Sistema de banco de dados. 6. ed. Rio 
de Janeiro: Campus, 2012.Leituras recomendadas
CODD, E. F. A Relational Model of Data for Large Shared Data Banks. Communications 
of the ACM, v. 13, n. 06, June 1970.
REZENDE, R. Conceitos fundamentais de banco de dados. 2017. Disponível em: <https://
www.devmedia.com.br/conceitos-fundamentais-de-banco-de-dados/1649>. Acesso 
em: 21 maio 2018.
Evolução dos bancos de dados10
MODELAGEM E 
DESENVOLVIMENTO 
DE BANCO DE DADOS 
Fabrício Felipe Meleto Barboza
Tipos de bancos de dados
Objetivos de aprendizagem
Ao final deste texto, você deve apresentar os seguintes aprendizados:
 � Identificar os vários tipos de bancos de dados.
 � Reconhecer os tipos de bancos de dados pela sua sintaxe.
 � Relacionar os bancos de dados com os vários tipos existentes.
Introdução
Neste capítulo, você vai estudar sobre como identificar e reconhecer os 
diversos tipos de bancos de dados pela sua sintaxe. Assim, será capaz de 
reconhecer os padrões de cada sintaxe e identificar o banco de dados 
associado. Você verá exemplos de uso e os diferentes padrões em cada 
um dos bancos de dados: PostgreSQL, Microsoft SQL Server, MySQL/
MariaDB e Oracle. Adicionalmente, verá como relacionar os bancos de 
dados em função dos vários tipos existentes atualmente.
Os vários tipos de bancos de dados
Vamos relembrar o conceito de bancos de dados? Segundo Korth, Silbers-
chatz e Sudarshan (2012), banco de dados “[...] é uma coleção de dados inter-
-relacionados, representando informações sobre um domínio específico”.
Dessa forma, estudaremos, neste capítulo, os diversos tipos de bancos de 
dados mais comumente utilizados e conhecidos atualmente, limitando-nos às 
quatro primeiras posições desse mesmo ranking de utilização.
Usualmente, as empresas utilizam um dos quatro bancos de dados a seguir 
em suas aplicações, sistemas ou projetos:
 � MySQL/MariaDB;
 � Oracle;
 � Microsoft SQL Server;
 � PostgreSQL.
Analisaremos cada um desses bancos de dados, abordando sua origem, 
plataforma compatível, características únicas e escopo de trabalho.
MySQL/MariaDB
O MySQL foi inserido junto ao MariaDB em virtude deste segundo ser 
um fork do primeiro, tendo estrutura e comandos bem semelhantes e de 
funcionamento idêntico. O MySQL era um banco de dados opensource 
até a sua compra pela Oracle em 2009. Esse paralelismo é tão grande e 
forte que os próprios administradores de bancos de dados do MySQL 
conseguem, de forma bem fácil, gerenciar um banco de dados do tipo 
MariaDB e vice-versa.
Fork significa uma bifurcação. Portanto, o MariaDB ser um fork do MySQL quer dizer 
que o MySQL teve uma bifurcação em sua história que originou o MariaDB. 
A instalação de um banco de dados do tipo MySQL ou MariaDB pode 
ser realizada tanto em sistema operacional Linux nas distribuições CentOS, 
RedHat, Ubuntu, Debian ou Fedora quanto no Windows.
Lembre-se que o banco de dados MySQL é quase que totalmente compatível com 
o MariaDB exatamente porque o MariaDB é um fork do MySQL. Um dos criadores 
originais do MySQL desenvolveu o MariaDB.
Até mesmo a forma de abrir e realizar uma conexão ao banco de dados 
é semelhante entre o MySQL e o MariaDB. Outra característica curiosa é a 
semelhança entre os dois logotipos que representam cada um destes bancos 
de dados (Figura 1).
Tipos de bancos de dados2
Figura 1. Logos do MySQL (a) e do MariaDB.
Fonte: MySQL (2018, documento on-line) e MariaDB
Repare que ambos os animais presentes nos logotipos fazem parte do 
ambiente marinho: um golfinho para o MySQL e uma foca para o MariaDB. O 
licenciamento do MySQL é pago e o MariaDB veio para suprir a comunidade 
opensource e, assim, não ter custo pelo licenciamento do banco de dados.
Sua grande disseminação se dá em virtude de diversos sistemas e linguagens 
de programação terem uma fácil e rápida conexão com ele. Como linguagens, 
destacam-se o PHP e Python. Já para os sistemas, temos Wordpress e Magento.
Oracle
A gigante de tecnologia Oracle possui um banco de dados de mesmo nome e 
que é um dos bancos de dados mais utilizados do mundo. 
Um dos maiores salários dos profissionais de tecnologia da informação é o dos admi-
nistradores do banco de dados Oracle.
Seu lançamento ocorreu em 1980 e ele domina o mercado desde então. É 
um banco de dados do tipo relacional, tem uma base confiável e robusta, e é 
muito utilizado para projetos muito grandes, com várias transações ocorrendo 
em um mesmo segundo, tanto de leitura quanto de escrita, além de uma 
incrível performance.
3Tipos de bancos de dados
Como seu licenciamento é pago e a cifra gira em um valor muito alto, 
na casa de cinco ou seis dígitos, as empresas que o utilizam são de porte 
médio para grande em função do alto custo — além do já mencionado custo 
diferenciado pelo profissional que o administra.
A Oracle, exatamente por saber de seu diferencial competitivo no mercado, 
lançou diversas certificações para capacitar o profissional que irá trabalhar 
com o seu sistema de banco de dados. Essas certificações também atestam, 
para a empresa contratante, o conhecimento e a experiência do profissional 
em questão. Conforme lembra Almeida (2018), os demais sistemas de bancos 
de dados também possuem certificação, mas a trilha de certificação da Oracle 
é a mais estruturada e reconhecida no mercado de trabalho exatamente pela 
importância do banco de dados em questão. O banco de dados Oracle é ins-
talado em sistemas operacionais Linux e também em sistemas operacionais 
Microsoft Windows.
Microsoft SQL Server
A gigante de Redmond lançou o seu banco de dados em 1989 e vem evoluindo 
esse banco desde então. Um limitador do sucesso do Microsoft SQL Server é 
que, até pouco tempo atrás, só era possível instalá-lo em sistema operacional 
Windows, deixando toda a comunidade que trabalha com opensource Linux 
sem a possibilidade de usá-lo. Eis que a Microsoft, em 2017, lançou uma versão 
do banco de dados para Linux de forma a reverter a situação e alavancar seu uso.
Como o Oracle, o Microsoft SQL Server tem o seu licenciamento na mo-
dalidade paga. O grande trunfo do Microsoft SQL Server é a sua aproximação 
da linguagem .NET e, também, seus desenvolvedores.
PostgreSQL
Outro banco de dados de licenciamento livre é o PostgreSQL. Ele é do tipo 
relacional e foi lançado em 1989 pela PostgreSQL Global Development Group.
O PostgreSQL,assim como o MySQL e o MariaDB, tem forte apelo para 
aplicações WEB de pequeno e médio porte. Grande parte dos sites e sistemas 
do tipo WEB utilizam um banco de dados PostgreSQL para armazenamento 
dos dados.
Diversos sistemas operacionais são suportados pelo PostgreSQL (Figura 2), 
sendo tanto Linux quanto o Microsoft Windows. Dessa forma, seu concorrente 
no mundo dos bancos de dados acaba sendo, por eliminação e proximidade, 
o MariaDB.
Tipos de bancos de dados4
Seu logo é composto pela representação da cabeça de um elefante, reme-
tendo à lendária ideia de que um elefante nunca se esquece do que ou quem 
ele visualizou.
Figura 2. Logo do PostgreSQL.
Fonte: PostgreSQL (2018, documento on-line).
Os tipos de bancos de dados e sua sintaxe
Para facilitar o seu entendimento, serão disponibilizados exemplos de inser-
ção, edição e deleção de um dado. Esses comandos podem ser utilizados em 
qualquer um dos bancos de dados MySQL, MariaDB, Oracle, Microsoft SQL 
Server ou PostgreSQL.
Como complemento e para diferenciar os bancos, também serão de-
monstrados os comandos particulares de cada banco de dados para exibir 
todos os databases e o comando para mostrar todas as tabelas de um 
database. Esses comandos serão exemplificados nos quatro bancos de 
dados descritos no parágrafo anterior. Para a inserção de dados, é utilizada 
a sintaxe a seguir.
Exemplificando em um insert na tabela “cliente” o cadastro de José da 
Silva, podemos usar algo semelhante a:
5Tipos de bancos de dados
Já para a edição de dados, é utilizada a sintaxe a seguir:
Exemplificando em uma edição da tabela “cliente” e no cadastro de José da 
Silva, modificando seu número de telefone, podemos usar algo semelhante a:
Para a exclusão de dados, é utilizada a sintaxe a seguir:
Exemplificando a deleção com o cadastro de José da Silva da tabela 
“cliente”, podemos usar algo semelhante a:
Tipos de bancos de dados6
Portanto, os comandos apresentados anteriormente podem ser utilizados 
em qualquer um dos quatro bancos de dados estudados aqui: MySQL ou 
MariaDB, Oracle, Microsoft SQL Server ou, por último, mas não menos 
importante, o PostgreSQL.
Os comandos de exibir os databases ou exibir as tabelas são particulares 
para cada banco de dados e, dessa forma, foram separados. A seguir, são 
apresentados cada um deles.
MySQL/MariaDB
A sintaxe do MySQL é praticamente idêntica ao MariaDB exatamente pelo 
fato deste segundo ser um fork do primeiro. 
Para exibir todas os databases no MySQL ou no MariaDB, utiliza-se:
O retorno do comando será o nome de todos os databases contidas no banco 
de dados independentemente de ter, ou não, tabelas, um database por linha.
Já para exibir todas as tabelas de um database, primeiro é necessário fazer 
a seleção do database desejada:
Após a seleção do database, pode-se realizar a consulta das tabelas com 
o comando:
O retorno desse comando será uma listagem de todas as tabelas daquele 
database selecionada previamente, uma tabela por linha.
Oracle
Para o Oracle, os comandos de exibição são diferentes do MySQL ou do 
MariaDB. Caso precise exibir todos os databases, você pode usar o comando:
7Tipos de bancos de dados
Novamente, o retorno do comando será o nome de todos os databases 
contidos no banco de dados independentemente de ter ou não tabelas, um 
database por linha. Se a necessidade é exibir todas as tabelas de um database, 
antes de executar o comando necessário para conseguir o resultado esperado, 
é preciso selecionar o schema desejado:
Após isso, rode o comando a seguir para exibir as tabelas:
Microsoft SQL Server
Para que o Microsoft SQL Server liste os databases, é necessário fazer a 
consulta de forma um pouco diferente dos demais bancos:
Caso não queria que o retorno inclua os databases do sistema, ou seja, 
que exiba somente os databases que foram criados, pode-se usar o comando:
Já para listar as tabelas de um database, é necessário escolher um database 
com o comando:
Tipos de bancos de dados8
Após o comando de escolha do database, execute o comando para realizar 
a consulta de todas as tabelas daquele database:
Perceba que o Microsoft SQL Server é menos preparado para trazer esse 
tipo de informação de database ou tabela se comparado aos demais bancos 
de dados.
PostgreSQL
Exibir todos os databases no PostgreSQL é bem simples. Basta digitar:
O retorno do comando será o nome de todos os databases contidos no 
banco de dados independentemente de ter, ou não, tabelas, um database por 
linha. Já para exibir todas as tabelas de um database, primeiro é necessário 
fazer a seleção do database desejada com o comando:
Após a seleção do database, pode-se realizar a consulta das tabelas com 
o comando: 
O retorno desse comando será uma listagem de todas as tabelas daquele 
database selecionado previamente, uma tabela por linha.
Relação entre os bancos de dados
A relação entre os bancos de dados que utilizam a linguagem SQL para con-
sultas é idêntica para o trabalho de manipulação dos dados envolvidos, seja o 
comando de INSERT, UPDATE ou até mesmo o DELETE.
Partindo dessa premissa e também pelo que explica Gomes (2018), a di-
ferenciação entre os bancos de dados, mesmo os que utilizam a linguagem 
SQL, ocorre no âmbito de gerenciamento desses bancos, seja na consulta aos 
nomes de databases que o mesmo possui ou ainda na listagem do nome das 
tabelas (Quadro 1).
9Tipos de bancos de dados
Banco de dados Tipo Exibir os databases
MySQL / MariaDB SQL Show databases;
Microsoft SQL 
Server
SQL SELECT [name] FROM master.
dbo.sysdatabases;
Oracle SQL/NoSQL SELECT NAME FROM v$database;
PostgreSQL SQL \list
MongoDB NoSQL show dbs;
Quadro 1. Relação de banco de dados que utilizam a linguagem SQL
Lembre-se de que os bancos de dados que utilizam a linguagem SQL para realizar a 
manipulação dos dados têm a mesma sintaxe para esse fim.
Edgar Frank “Ted” Codd, pesquisador da IBM na época e que lançou o artigo intitulado 
Relational Model of Data for Large Shared Data Banks, foi considerado o pai dos bancos 
de dados relacionais.
Tipos de bancos de dados10
ALMEIDA, R. Certificação Oracle. 2018. Disponível em: <www.linhadecodigo.com.br/
artigo/451/certificacao-oracle.aspx>. Acesso em: 04 jun. 2018.
GOMES, E. H. Linguagem SQL: linguagem de manipulação, consulta e controle de 
dados. 2018. Disponível em: <ehgomes.com.br/disciplinas/bdd/sql.php>. Acesso 
em: 04 jun. 2018.
KORTH, H. F.; SILBERSHATZ, A.; SUDARSHAN, S. Sistema de banco de dados. 6. ed. Rio 
de Janeiro: Campus, 2012.
MARIADB. 2018. Disponível em: <http://mariadb.org/>. Acesso em: 04 jun. 2018.
MYSQL. 2018. Disponível em: <https://www.mysql.com/>. Acesso em: 04 jun. 2018.
POSTGRESQL. 2018. Disponível em: < https://www.postgresql.org/>. Acesso em: 04 
jun. 2018.
Leituras recomendadas
MIRANDA, W. Certificações Oracle: diferença entre o desenvolvedor e o DBA. 2018. 
Disponível em: <aprendaplsql.com/oracle/certificacao/certificacoes-oracle-diferenca-
-entre-o-desenvolvedor-e-o-dba/>. Acesso em: 04 jun. 2018.
REZENDE, R. Conceitos fundamentais de banco de dados. 2006. Disponível em: <https://
www.devmedia.com.br/conceitos-fundamentais-de-banco-de-dados/1649>. Acesso 
em: 04 jun. 2018.
11Tipos de bancos de dados
Conteúdo:
MODELAGEM E 
DESENVOLVIMENTO 
DE BANCO DE DADOS
Fabrício Felipe 
Meleto Barboza
Revisão técnica:
Izabelly Soares de Morais
Graduada em Licenciatura em Ciência da Computação
Mestre em Ciência da Computação
Catalogação na publicação: Karin Lorien Menoncin – CRB 10/2147
B238m Barboza, Fabrício Felipe Meleto.
Modelagem e desenvolvimento de banco de dados 
[recurso eletrônico] / Fabrício Felipe Meleto Barboza, Pedro 
Henrique Chagas Freitas ; [revisão técnica: Izabelly Soares de 
Morais] – Porto Alegre: SAGAH, 2018. 
ISBN 978-85-9502-517-2
1. Ciência da computação. 2. Banco de dados. I. Freitas, 
Pedro Henrique Chagas.
CDU 004.65
Sistemas de gerenciamento 
de banco de dados
Objetivos de aprendizagem
Ao final deste texto, você deve apresentar os seguintesaprendizados:
 � Identificar os sistemas de gerenciamento de banco de dados (SGBD).
 � Criar dicionário de dados.
 � Diferenciar os sistemas de gerenciamento de banco de dados.
Introdução
Neste capítulo, você vai aprender a identificar e reconhecer os diversos 
tipos de sistemas de gerenciamento de bancos de dados. Assim, será 
capaz de discernir os padrões de cada um deles. Além disso, você verá 
para que serve um dicionário de dados e como criá-lo. Por fim, você vai 
saber diferenciar os sistemas de gerenciamento de banco de dados de 
forma natural e rápida.
Os sistemas de gerenciamento de banco 
de dados (SGBDs)
Para realizar o acesso a um banco de dados, é imprescindível utilizar um sistema 
de gerenciamento de banco de dados (SGBD). Aí surge a grande dúvida de 
qual é a diferença entre um banco de dados e um SGBD. Para facilitar o seu 
entendimento, vamos relembrar o conceito de bancos de dados, mencionado 
por Korth, Silberschatz e Sudarshan (2012), que definem que banco de dados 
é uma coleção de dados inter-relacionados, representando informações sobre 
um domínio específico. O SGDB, por sua vez, é definido por Macêdo (2012, 
documento on-line) como “[...] uma coleção de programas que permitem ao 
usuário definir, construir e manipular bases de dados para as mais diversas 
finalidades”.
De forma mais simples e para resumir esses conceitos, você deve considerar 
que bancos de dados são a porção que representa os dados efetivamente salvos, 
e o SGBD é a ferramenta que fica encarregada de salvar, editar, deletar ou ainda 
garantir que esses dados estejam disponíveis quando a aplicação ou o usuário 
requisitar.
Para visualizar essa discussão, veja, a seguir, a Figura 1, que mostra um 
fluxo de trabalho baseado em um relatório solicitado pelo usuário em um 
sistema qualquer e as etapas necessárias para que o resultado seja exibido na 
tela do sistema:
Figura 1. Fluxo de trabalho.
Sistemas de gerenciamento de banco de dados48
Ao observar a Figura 1, vemos que o fluxo de trabalho é dividido entre 
alguns degraus até chegar à informação: sistema, SGBD e o dado necessário 
dentro do banco de dados. Entenda que o sistema não irá acessar diretamente 
o valor desejado, e sim pedir que SGBD o faça.
Novamente surge outra grande dúvida: “mas por que colocar mais com-
plexidade ao pedir que o SGBD execute a busca e retorne com os valores 
desejados e não o sistema final?”.
Antigamente, quando não existiam os SGBDs, a própria aplicação final (ou 
sistema final) deveria fazer essa busca e esse tratamento. O problema disso 
é o aumento da complexidade do código por parte do desenvolvedor, além 
do fato de que a manipulação de dados é algo muito específico. O resultado 
eram sistemas com erros diversos e genéricos, com grande carga de trabalho 
para a correção; quando chegavam a ela, percebiam que era uma exceção que 
o banco de dados havia retornado e que não havia sido tratada.
Com o surgimento dos SGBDs, esses problemas acabaram. A aplicação 
final deve se preocupar em chamar o SGBD conforme sua necessidade, passar 
os valores de busca ou edição desejados e aguardar o retorno. 
Esses SGBDs foram e são desenvolvidos com o único propósito de gerenciar 
e manipular os dados e as variáveis dos bancos de dados, maximizando o 
foco dos desenvolvedores de aplicações naquilo que elas se propõem a fazer 
e entregar valor, em vez de manipular dados.
Um exemplo dessa complexidade maior ao não utilizar um SGBD é a con-
corrência. Imagine que um usuário solicita a edição de um cadastro e salva os 
novos valores no mesmo segundo que outro usuário também salva a informa-
ção desse mesmo cadastro. Como deve proceder a validação? Quem deve ter 
prioridade de tarefa? Qual será a forma de resolver esse impasse? Tudo isso 
deveria estar dentro do código da aplicação final, caso não utilize um SGBD.
Para garantir que um SGBD esteja devidamente cumprindo seu papel, 
Macêdo (2012) menciona que é importante que ele atenda a algumas caracte-
rísticas básicas de trabalho. Estas características elementares são:
 � controle de redundâncias;
 � compartilhamento de dados;
 � controle de acesso;
 � interfaceamento;
 � esquematização;
 � controle de integridade;
 � backups.
49Sistemas de gerenciamento de banco de dados
Likah
Likah
Likah
Likah
A seguir, você verá o conceito que cada uma dessas características engloba 
e exemplos para melhor absorção do conteúdo.
Controle de redundâncias
Os valores de um banco de dados estão armazenados única e exclusivamente 
em um local, evitando problemas com inconsistência devido a valores dife-
rentes. Caso o SGBD tenha replicação de dados, ela ocorrerá após o banco 
de dados máster (principal) ter salvo totalmente os dados, garantindo a 
integridade.
Imagine que uma planilha é enviada por e-mail para várias pessoas e cada uma delas 
faz a edição conforme sua necessidade. Não será mais possível saber quais são os 
valores corretos de cada campo, pois não existe um ponto único de guarda. 
Compartilhamento de dados
O SGBD deve garantir que a concorrência por um mesmo valor de dados 
ocorra sem problemas.
Vários acessos a um mesmo valor e ao mesmo tempo devem retornar igualmente 
para todos, sem problema de valores travados ou ocupados.
Controle de acesso
Deve ser assegurado o controle de acesso ao banco de dados pelo SGBD. 
Para controlar este tipo de atividade, o SGBD utiliza a relação de usuários e 
permissões. 
Sistemas de gerenciamento de banco de dados50
Usuário administrador que possui todos os privilégios, usuário somente para leitura, 
usuário somente para escrita e leitura, etc.
Interfaceamento
Como o SGBD é o único responsável pelo acesso aos dados efetivamente 
guardados, deverá disponibilizar interface de acesso aos dados presentes no 
banco de dados, não podendo ser uma “caixa-preta” de informações.
Consulta por meio de linguagem SQL, interface gráfica, etc.
Esquematização
A existência de uma forma de relacionamento dos dados, presentes nas mais 
diversas tabelas, deve ser clara e precisa.
Chave privada ou estrangeira.
Controle de integridade
Um SGBD deve impedir a todo custo o comprometimento do banco de dados. 
Uma atividade de leitura, escrita, edição, deleção ou qualquer outra manipu-
lação ou é concluída 100% dentro das regras ou é descartada totalmente. Não 
existe manipulação de dados incompleta ou quase completa.
51Sistemas de gerenciamento de banco de dados
Tentativa de gravar um valor do tipo varchar em um campo do tipo numérico resultará 
em erro e não processamento.
Backups
O SGBD deve ser autônomo e conseguir recuperar-se de falhas de software 
e hardware sem a intervenção do pessoal técnico ou ser minimamente de-
pendente deste pessoal.
Ao estar salvando um determinado valor, o servidor do banco de dados sofre algum 
problema e reinicia. Quando o SGBD iniciar novamente, ele irá descartar aquela tran-
sação, retornando ao estado imediatamente anterior àquele job.
Dicionários de dados
Agora que você já tem conhecimento sobre as articulações dos bancos de 
dados e seus sistemas de gerenciamento, como podemos padronizar as infor-
mações? Isso é importante para garantir a integridade dos dados e também 
sua consistência, fatores importantes e totalmente determinantes para a saúde 
do banco de dados.
O dicionário de dados vem para realizar esta padronização básica e ex-
tremamente importante, pois, à medida que o banco de dados cresce e mais 
desenvolvedores são escalados para trabalhar no projeto, mais fora de padrão 
pode ficar o banco de dados como um todo.
De exemplo inicial, imagine que o campo celular, por definição do escopo 
inicial do projeto, deverá ser do tipo varchar e comportar a máscara “(DDD) 
xxxxx-xxxx”. 
Bem, tomando por base essa definição de escopo inicial, foi criada a tabela 
“clientes”, na qual um dos atributos é o campo “celular”, que obedece a essas 
Sistemas de gerenciamento de banco de dados52
regras. Todo o sistema da aplicação foi construído e finalizado, a implantação 
no cliente finalrealizada e, por isso, o banco de dados também foi finalizado 
com sucesso e aderente às regras.
Então, surge uma necessidade de upgrade de funcionalidade exigida 
pelo cliente, o qual deseja que, no cadastro de fornecedores, coloque-se um 
campo de celular de contato com esses fornecedores. Como passou muito 
tempo desde o início do projeto, esqueceu-se que aquela regra do campo de 
celular foi elaborada e é feito este segundo campo sem a opção de DDD ou, 
ainda, em vez de utilizar o separador “-” como pede a regra, foi utilizado 
o separador “.”.
Veja que o banco de dados começa a ficar confuso e sem padrão, fazendo 
com que a função de chamada de cadastro apresente erro ou, ainda, que 
precise ser feita de forma diferente para quando chamar o cadastro de cliente 
em relação a quando chamar o cadastro de fornecedor.
Vamos além? Imagine que exista mais uma tabela que contenha o campo 
celular: a tabela de cadastro de colaboradores. Ela pode ter sido desenvolvida 
por outro programador e, assim, recebeu outra validação de tipo e máscara.
Extrapolando esse exemplo, pense em um sistema de aplicação gigante, 
como um sistema bancário. Como garantir que todos os desenvolvedores 
respeitem as mesmas regras de escopo de campos durante todo o projeto?!
A resposta para essas situações é o dicionário de dados!
No dicionário de dados, também estará a relação de usuários e permissões, 
a estrutura geral e a alocação de espaço.
Assim, definindo a regra do número de celular no dicionário de dados, 
todas as tabelas do sistema devem respeitar o dicionário de dados, criando um 
padrão fácil de ser entendido e respeitado por todos que manipulam o sistema, 
incluindo, aqui, desenvolvedores diferentes.
Um dicionário de dados é, em essência, composto por tabelas que servem de consulta 
para a construção de todas as outras tabelas do SGBD.
O dicionário de dados deve ter regras e valores para cada campo das 
tabelas, de modo que é natural que ocorram situações de opcionalidade de 
um caractere, por exemplo.
53Sistemas de gerenciamento de banco de dados
Para sanar essa situação, você verá, no Quadro 1, um exemplo de tabela 
de símbolo utilizada em um dicionário de dados qualquer:
Fonte: Dicionário de Dados (2017, documento on-line).
Símbolo Significado
= é composto de
( ) opcional
{ } cavalar
[ ] escolha entre uma das alternativas
** comentário
@ chave
/ separa opções alternativas
Quadro 1. Operadores no dicionário de dados
Observe, na Figura 2, um exemplo simples de um dicionário de dados para 
a construção das tabelas cidade, cliente e vendas.
Sistemas de gerenciamento de banco de dados54
Likah
Figura 2. Dicionário de dados.
Fonte: IDCODEX (2014, documento on-line).
Os diferentes Sistemas de Gerenciamento 
de Bancos de Dados 
Cada SGBD, seja ele MySQL, MariaDB, Oracle, Microsoft SQL Server ou 
PostgreSQL, garante a base de administração e manipulação de dados estudada 
e, além disso, apresenta características que o tornam ímpar.
A escolha pelo melhor SGBD se dará em virtude de qual é a aplicação a 
ser desenvolvida, o fluxo de acesso, o tipo de dados a serem guardados e a 
necessidade de profissionais no mercado.
55Sistemas de gerenciamento de banco de dados
Caso sua aplicação seja web, com acessos moderados e tamanho de pequeno 
a médio, poderá optar pelo MySQL, MariaDB ou, ainda, pelo PostgreSQL.
Se a necessidade for a de suportar uma aplicação grande, com vários acessos 
simultâneos, cruzamento de dados intenso e grande granularidade de perfis, 
prefira o Oracle ou o Microsoft SQL Server.
Por fim, se a necessidade de performance estiver acima de qualquer ou-
tra frente, será necessária a utilização de bancos de dados NoSQL, como o 
MongoDB, por exemplo.
Sintaxes
De forma resumida, veja, no Quadro 2, as diferentes sintaxes para exibir as 
databases, selecionar uma database e também exibir as suas tabelas nos mais 
diversos SGBDs.
SGBD
Exibir 
databases
Selecionar 
database
Exibir 
tabelas
MySQL/
MariaDB
Show databases; Use nomeDataBase; Show tables;
Oracle Select NAME from 
v$database;
Connect 
nomeDataBase;
Select table_name 
from user_tables;
Microsoft 
SQL Server
Select [name] 
from master.dbo.
sysdatabases;
Use nomeDataBase; Select * from 
sys.Tables;
PostgreSQL \list \connect 
nomeDataBase;
\dt
Quadro 2. Relação de sintaxes nos SGBDs
Lembre-se que cada tipo de SGBD serve para um propósito. Portanto, é necessário 
entender o ambiente da aplicação para, aí sim, tomar a melhor decisão de escolha 
do sistema.
Sistemas de gerenciamento de banco de dados56
DICIONÁRIO DE DADOS. Wikipédia, 2017. Disponível em: <https://pt.wikipedia.org/
wiki/Dicion%C3%A1rio_de_dados>. Acesso em: 02 jul. 2018.
IDCODEX. Trabalhando com o banco de dados MYSQL (intermediário). 19 mar. 2014. 
Disponível em: <http://idcodex.id3design.com.br/?p=372>. Acesso em: 02 jul. 2018.
KORTH, H. F.; SILBERSCHATZ, A.; SUDARSHAN, S. Sistema de banco de dados. 6. ed. Rio 
de Janeiro: Campus, 2012.
MACÊDO, D. SGBD - Sistema de Gerenciamento de Banco de Dados. 15 jan. 2012. Disponível 
em: <www.diegomacedo.com.br/sgbd-sistema-de-gerenciamento-de-banco-de-
-dados/>. Acesso em: 02 jul. 2018.
Leituras recomendadas
GOMES, E. H. Linguagem SQL: linguagem de manipulação, consulta e controle de 
dados. 2018. Disponível em: <ehgomes.com.br/disciplinas/bdd/sql.php>. Acesso 
em: 02 jul. 2018.
REZENDE, R. Conceitos fundamentais de banco de dados. 2006. Disponível em: <https://
www.devmedia.com.br/conceitos-fundamentais-de-banco-de-dados/1649>. Acesso 
em: 02 jul. 2018.
57Sistemas de gerenciamento de banco de dados
Encerra aqui o trecho do livro disponibilizado para 
esta Unidade de Aprendizagem. Na Biblioteca Virtual 
da Instituição, você encontra a obra na íntegra.
Esta obra é resultado da experiência do autor, adquirida em aulas ministradas em cursos de graduação e pós-
graduação. O texto apresenta a base para entender a tecnologia de banco de dados que oferece suporte aos 
problemas de computação corporativa.
O autor parte do princípio de que o iniciante no estudo de gerenciamento de banco de dados precisa entender os 
conceitos fundamentais sobre o assunto, assim como o modelo de dados relacionais. Com inúmeros exemplos e bancos 
de dados de amostra, o texto permite ao aluno adquirir capacidade para resolver, de forma sistemática, problemas 
básicos e avançados em formulação de consultas, modelagem de dados, normalização, gerenciamento de dados de 
aplicação e customização de aplicações de banco de dados.
T Ó P I C O S I M P O R TA N T E S
• Abordagem abrangente do Oracle 10g e SQL 2003, as aplicações mais recentes de banco de dados.
• Informações novas sobre modelagem de dados e requisitos de sistema.
• Material atualizado sobre normalização.
• Enfoque especial em otimização de banco de dados físico.
• Tendências mais atuais em data warehousing e data mining.
• Abordagem profunda de computação distribuída.
• Questões e problemas no final dos capítulos, além de resumo da sintaxe do SQL:2003.
• Utilização do ER Assistant, uma ferramenta fácil de usar que oferece uma interface simples para criar e con-
verter os diagramas entidade-relacionamento apresentados no livro.
Projeto, Desenvolvimento de Aplicações e Administração de Banco de Dados apresenta as tecnologias 
fundamentais de banco de dados para cada ambiente de processamento e discute o relacionamento de cada 
tecnologia com os avanços do comércio eletrônico e da computação corporativa. Essas características fazem deste 
livro-texto uma ferramenta essencial para aquele que pretende tornar-se especialista em projeto e desenvolvimento 
de aplicações de banco de dados.
Aplicações: Livro-texto para os cursos da área de Computação, como Engenharia de Computação, Ciência da Computação e 
Sistemas de Informação, nas disciplinas específicas de Banco de Dados e outras relacionadas a Desenvolvimento de Sistemas. 
Interessa também aos tecnólogos e aos profissionais que atuam na área de Desenvolvimento de Software utilizando as mais 
recentese avançadas tecnologias de bancos de dados. Ideal para estudantes e profissionais que precisam desenvolver e man-
ter aplicações baseadas em banco de dados.
CRIE UMA BASE SÓLIDA PARA 
GERENCIAMENTO DE BANCO DE DADOS
PROJETO, DESENVOLVIMENTO DE APLICAÇÕES
& ADMINISTRAÇÃO DE BANCO DE DADOS 
PRO
JETO
, D
ESEN
VO
LVIM
EN
TO
 D
E A
PLIC
A
Ç
Õ
ES
&
 A
D
M
IN
ISTRA
Ç
Ã
O
 D
E BA
N
C
O
 D
E D
A
D
O
S 
M
annino
T E R C E I R A E D I Ç Ã O
TRADUÇÃO DA
TERCEIRA
EDIÇÃO
Michael V. ManninoVisite nosso site:
www.mcgraw-hill.com.br9 2 6 0 2 0 1
ISBN 978-85-7726-020-1
7 8 8 5 7 7
TRADUÇÃO DA
M284p Mannino, Michael V.
 Projeto, desenvolvimento de aplicações e administração
 de banco de dados [recurso eletrônico] / Michael V.
 Mannino ; tradução: Beth Honorato ... [et al.] ; revisão
 técnica: Antônio Fernandes Nunes Guardado, Sidney da
 Silva Viana. – 3. ed. – Dados eletrônicos. – Porto Alegre:
 AMGH, 2014.
 Editado também como livro impresso em 2008.
 ISBN 978-85-8055-363-5
 1. Banco de dados – Gerenciamento – Programas de
 computador. 2. Projeto de banco de dados. 3. Software de
 aplicativos – Desenvolvimento. I. Título. 
 CDD 005.74
 CDU 004.658
Catalogação na publicação: Ana Paula M. Magnus – CRB 10/2052
481
Capítulo 14
Administração de Dados
e de Banco de Dados
Objetivos de Aprendizagem
Este capítulo oferece uma visão geral das responsabilidades e ferramentas dos especialistas em
banco de dados conhecidos por administradores de dados e administradores de banco de
dados. No final deste capítulo, o estudante deverá ter adquirido os seguintes conhecimentos
e habilidades:
• Comparar e contrastar as responsabilidades dos administradores de banco de dados e 
administradores de dados.
• Controlar bancos de dados usando instruções SQL em prol da segurança e integridade.
• Gerenciar gatilhos e procedimentos armazenados.
• Compreender os papéis das tabelas dos dicionários de dados e o dicionário de recursos 
de informação.
• Descrever o processo de planejamento de dados.
• Compreender o processo para escolher e avaliar SGBDs.
• Adquirir uma visão sobre os ambientes de processamento nos quais a tecnologia de banco
de dados é utilizada.
Visão Geral
Utilizando o conhecimento e as habilidades das partes 1 a 6, você provavelmente terá capaci-
dade para desenvolver bancos de dados e implementar aplicações que usam banco de dados.
Você obteve informações sobre modelagem conceitual de dados, projeto de banco de dados re-
lacional, formulação de consultas, desenvolvimento de aplicações com visões, procedimentos 
armazenados, gatilhos e desenvolvimento de banco de dados usando requisitos representados
como visões. A Parte 7 complementa essas áreas de conhecimento e habilidade explorando
questões e habilidades concernentes ao gerenciamento de banco de dados em diferentes ambi-
entes de processamento. Este capítulo descreve as responsabilidades e as ferramentas dos es-
pecialistas em dados (administradores de dados e administradores de bancos de dados) e
fornece uma introdução aos diferentes ambientes de processamento de banco de dados.
Antes de conhecer os detalhes dos ambientes de processamento, você precisa com-
preender o contexto organizacional no qual os bancos de dados se encontram e conhecer as
ferramentas e os processos para gerenciá-los. Este capítulo primeiramente examina um con-
texto organizacional para banco de dados. Você obterá informações sobre o suporte do banco
de dados para o gerenciamento da tomada de decisão, os objetivos do gerenciamento de 
14manCap14.qxd 24.10.07 11:51 Page 481
482 Parte Sete Gerenciamento de Ambientes de Banco de Dados
recursos de informação e as responsabilidades dos administradores de dados e de banco de
dados. Após a explanação do contexto organizacional, este capítulo apresenta novos proces-
sos e ferramentas para o gerenciamento de banco de dados. Você aprenderá instruções SQL
para segurança e integridade, gerenciamento de gatilhos e procedimentos armazenados e
manipulação do dicionário de dados, bem como processos para o planejamento de dados e
seleção de SGBDs. Este capítulo é finalizado com uma introdução aos diferentes ambientes
de processamento, os quais serão apresentados mais detalhadamente nos outros capítulos da
Parte 7.
banco de dados 
operacional
um banco de dados para 
dar suporte às funções diárias 
de uma organização.
Hierarquia gerencial
Alta
(estratégia)
Fontes de dados externos e dados resumidos,
bancos de dados táticos
Bancos de dados operacionais
resumidos e integrados
Bancos de dados
operacionais individuais
Bancos de dados operacionais
Média
(tática)
Baixa
(operacional)
FIGURA 14.1 Apoio do Banco de Dados para os Níveis de Gerência
14.1 Contexto Organizacional para o Gerenciamento de Banco de Dados
Esta seção revisa os níveis de tomada de decisão gerencial e discute o suporte do banco de
dados para a tomada de decisão em todos os níveis. Após essa ambientação, esta seção des-
creve a função do gerenciamento de recursos de informação e as responsabilidades dos espe-
cialistas em dados no gerenciamento desses recursos.
14.1.1 Utilização do Banco de Dados como Suporte para a Tomada
de Decisão Gerencial
Os bancos de dados fornecem suporte às operações de negócio e à tomada de decisão geren-
cial em vários níveis. As grandes organizações, em sua maioria, desenvolveram vários ban-
cos de dados operacionais para ajudar a conduzir seus negócios com eficácia. Os bancos de
dados operacionais oferecem assistência direta às principais funções organizacionais, como
processamento de pedidos, manufatura, contas a pagar e distribuição de produtos. Os fatores
que justificam o investimento em um banco de dados operacional em geral são: maior ve-
locidade de processamento, maior volume de negócios e menores custos com pessoal.
À medida que as organizações conseguem aprimorar suas operações, elas começam a
perceber o potencial para tomada de decisão de seus bancos de dados. Os bancos de dados
operacionais oferecem a matéria-prima para a tomada de decisão gerencial, como descrito na
Figura 14.1. Os níveis inferiores de gerência podem obter relatórios sobre exceções e proble-
mas diretamente dos bancos de dados operacionais. Entretanto, maior valor deve ser adi-
cionado para alavancar os bancos de dados operacionais para a alta e média gerência. Os ban-
cos de dados operacionais devem ser limpos e organizados, integrados e resumidos para
proporcionar valor para a tomada de decisão tática e estratégica. A integração é necessária
porque os bancos de dados operacionais em geral são desenvolvidos isoladamente, sem levar
em consideração as necessidades de informação da tomada de decisão tática e estratégica.
14manCap14.qxd 24.10.07 11:51 Page 482
Capítulo 14 Administração de Dados e de Banco de Dados 483
A Tabela 14.1 fornece exemplos de gerenciamento de decisões e requisitos de dados. A
baixa gerência lida com problemas de curto prazo relacionados com transações individuais.
Os resumos periódicos dos bancos de dados operacionais e os relatórios de exceção ajudam o
gerenciamento operacional. A média gerência, que se vale dos dados resumidos que são inte-
grados nos bancos de dados operacionais, pode querer integrar os dados dos diferentes de-
partamentos, fábricas e lojas de varejo. A alta gerência, que se vale dos resultados da análise
da média gerência e das fontes externas de informação, necessita integrar os dados de modo
que os clientes, os produtos, os fornecedores e outras entidades importantes possam ser lo-
calizados em toda a organização. Além disso, os dados externos devem ser resumidos e inte-
grados com os dados internos.
14.1.2 Gerenciamento de Recursos de Informação para o 
Gerenciamento do Conhecimento
Em resposta aos desafios de alavancar bancos de dados operacionais e tecnologia da infor-
mação para a tomadade decisão gerencial, ganhou corpo a filosofia do gerenciamento de re-
cursos de informação. O gerenciamento de recursos de informação abrange o processamento,
a distribuição e a integração de informações em toda a organização. Um dos elementos prin-
cipais do gerenciamento de recursos de informação é o controle dos ciclos de vida da infor-
mação (Figura 14.2). Cada nível de tomada de decisão gerencial e de operações de negócio
tem seu próprio ciclo de vida da informação. Para que a tomada de decisão seja eficaz, os ci-
clos de vida devem ser integrados para fornecer informações oportuna e consistentemente.
Por exemplo, os ciclos de vida da informação das operações oferecem informações aos ciclos
de vida da tomada de decisão gerencial.
ciclo de vida 
da informação
os estágios da transformação 
da informação em uma
organização. O ciclo de vida 
da informação é exclusivo para
cada entidade e deve ser
gerenciado e integrado com 
os ciclos de vida em outras
entidades.
Armazenamento
Aquisição
Uso
Disseminação
Formatação
Processamento
Proteção
FIGURA 14.2
Estágios Típicos do Ciclo 
de Vida da Informação
TABELA 14.1
Exemplos de Tomada 
de Decisão Gerencial
Nível Gerencial Exemplos de Decisão Requisitos de Dados
Alto Identificar novos mercados e produtos; Previsões econômicas e tecnológicas;
planejar o crescimento; realocar resumo de notícias; relatórios industriais;
recursos nas divisões. relatórios de desempenho de médio prazo.
Médio Selecionar fornecedores; fazer a previsão Tendências históricas; desempenho do 
de vendas, de estoque e de caixa; examinar fornecedor; análise do caminho crítico;
os níveis de pessoal; preparar orçamentos. planos de curto e médio prazo.
Baixo Montar escala de funcionários; corrigir Relatórios sobre problemas; relatórios de
atrasos nos pedidos; identificar gargalos na exceções; escala de funcionários; resultados
produção; monitorar o uso de recursos. da produção diária; níveis de estoque.
14manCap14.qxd 24.10.07 11:51 Page 483
484 Parte Sete Gerenciamento de Ambientes de Banco de Dados
A qualidade dos dados é um fator especial do gerenciamento de recursos de informação
em virtude de seu impacto sobre a tomada de decisão gerencial. Como discutido no Capítulo
2, a qualidade dos dados está relacionada a inúmeras dimensões, como correção, oportu-
nidade, consistência, completude e confiabilidade. Normalmente, o nível de qualidade dos
dados suficiente para as operações de negócio pode ser insuficiente para a tomada de decisão
nos níveis de gerência superiores. Esse conflito é especialmente verdadeiro para a dimensão
consistência. Por exemplo, a inconsistência na identificação de um cliente nos bancos de
dados operacionais pode prejudicar a tomada de decisão no nível de gerência superior. O
gerenciamento de recursos de informação enfatiza um ponto de vista sobre qualidade de
dados de longo prazo para a organização como um todo com vistas a apoiar a tomada de deci-
são gerencial.
Nos últimos anos, tem havido um movimento para estender o gerenciamento de recursos
de informação para o gerenciamento do conhecimento. Tradicionalmente, o gerenciamento
de recursos de informação tem enfatizado a tecnologia no sentido de apoiar receitas pre-
definidas para a tomada de decisão, em vez de a capacidade para reagir a um ambiente de
negócios em constante mudança. Para ter êxito no atual ambiente de negócios, as organiza-
ções devem enfatizar a reação e adaptação rápidas, em vez de planejamento. Para enfrentar
esse desafio, o Dr. Yogesh Malhotra, famoso consultor gerencial, defende que as organizações
devem desenvolver sistemas que facilitem a criação de conhecimento, em vez de o gerencia-
mento da informação. Para a criação de conhecimento, ele é defensor de uma maior ênfase
sobre o processamento de informações humanas e a dinâmica da organização para equilibrar
a ênfase sobre a tecnologia, como mostrado na Figura 14.3.
Essa visão do gerenciamento do conhecimento oferece um contexto para o uso da tecnolo-
gia da informação para solucionar problemas corporativos. Não basta ter a melhor tecnologia da
informação, é preciso alinhá-la com os elementos humanos e da organização. A tecnologia da in-
formação deve ampliar a capacidade intelectual do indivíduo, compensar as limitações do
processamento humano e apoiar a dinâmica organizacional positiva.
14.1.3 Responsabilidades dos Administradores de Dados e dos
Administradores de Banco de Dados
Novas responsabilidades gerenciais surgiram como parte do controle de recursos de infor-
mação. Administrador de dados (DA, data administrator) é uma posição da média ou alta
gerência que tem amplas responsabilidades pelo gerenciamento de recursos de informação. O
administrador de banco de dados (DBA, database administrador) desempenha uma função de
suporte cujas responsabilidades estão relacionadas aos bancos de dados individuais e aos
SGBDs. A Tabela 14.2 compara as responsabilidades de ambas as funções. O administrador
de dados vê os recursos de informação em um contexto mais amplo que o administrador de
banco de dados. O primeiro considera todos os tipos de dados, estejam eles armazenados 
em bancos de dados relacionais, arquivos, páginas Web ou fontes externas. O segundo nor-
malmente considera apenas os dados armazenados nos bancos de dados.
gerenciamento 
do conhecimento
aplicar a tecnologia da
informação com as capacidades
humanas de processamento de
informações e os processos da
organização para suportar uma
rápida adaptação à mudança.
Tecnologia
Dinâmica da
organização
Processamento de
informações humanas
FIGURA 14.3
Três Pilares do
Gerenciamento do
Conhecimento
14manCap14.qxd 24.10.07 11:51 Page 484
Likah
Likah
Likah
Likah
Capítulo 14 Administração de Dados e de Banco de Dados 485
O desenvolvimento de um modelo de dados corporativo é uma das responsabilidades
mais importantes do administrador de dados. Ele oferece um modelo integrado de todos os
bancos de dados da organização. Por causa de seu escopo, ele é menos detalhado que os ban-
cos de dados individuais que ele engloba. Esse modelo concentra-se nos principais assuntos
dos bancos de dados operacionais, e não no detalhamento completo, e pode ser desenvolvido
para o planejamento de dados (que banco de dados desenvolver) ou como suporte à tomada
de decisão (como integrar e resumir os bancos de dados existentes). A Seção 14.3 descreve
em detalhes o planejamento de dados, ao passo que o Capítulo 16 descreve em detalhes o 
desenvolvimento de um modelo de dados corporativo como suporte à tomada de decisão. O ad-
ministrador de dados em geral participa significativamente de ambos esses empreendimentos.
As grandes organizações podem oferecer especialização em administração de dados e de
banco de dados. No primeiro caso, a especialização pode ocorrer por tarefa e ambiente. Em
relação à tarefa, os administradores de dados podem especializar-se em planejamento em
contraste com o estabelecimento de políticas. Em relação ao ambiente, eles podem espe-
cializar-se em ambientes como apoio a decisões e processamento de transações e em dados
não tradicionais como imagens, textos e vídeo. No caso do administrador de banco de dados, a
especialização pode ocorrer por SGBD, tarefa e ambiente. Por causa da complexidade da
aprendizagem de SGDBs, os administradores de banco de dados normalmente se especia-
lizam em um ou em poucos produtos. No que diz respeito à tarefa, a especialização em geral
se divide entre modelagem de dados e avaliação de desempenho. Com respeito ao ambiente,
a especialização em geral se divide entre processamento de transações e datawarehouses.
Nas pequenas organizações, a fronteira entre a administração de dados e a administração
de banco de dados é flexível. É provável que não haja posições distintas para administradores de
dados e de banco de dados. A mesma pessoa pode desempenhar ambas as funções. À medida
que as organizações evoluem, a especialização normalmente se desenvolve de modo que se
criem funções distintas.
TABELA 14.2
Responsabilidadesdos
Administradores de Dados 
e dos Administradores de
Bancos de Dados
Posição Responsabilidades
Administrador de dados Desenvolve um modelo de dados corporativo.
Estabelece padrões e políticas entre bancos de dados com
relação à nomeação, ao compartilhamento de dados e à
propriedade dos dados.
Negocia prazos contratuais com os fornecedores de tecnologia
da informação.
Desenvolve planos de longo prazo de tecnologia da informação.
Administrador de banco de dados Desenvolve conhecimento detalhado dos SGBDs individuais.
Procura informações sobre o desenvolvimento de aplicações.
Realiza a modelagem de dados e o projeto lógico de banco 
de dados.
Faz cumprir os padrões de administração de dados.
Monitora o desempenho do banco de dados.
Realiza a avaliação técnica dos SGBDs.
Cria instruções de segurança, integridade e processamento 
de regras.
Concebe padrões e políticas relacionadas aos bancos de dados 
e SGBDs individuais.
modelo de dados 
corporativo
um modelo conceitual de dados
de uma organização. Um
modelo de dados corporativo
pode ser usado para o
planejamento de dados e o
suporte à tomada de decisão.
14.2 Ferramentas de Administração de Banco de Dados
Para cumprir as responsabilidades mencionadas na seção anterior, os administradores de banco
de dados usam uma variedade de ferramentas. Você já obteve informações sobre ferramentas
para modelagem de dados, projeto lógico de banco de dados, projeto físico de banco de dados,
gatilhos e procedimentos armazenados. Algumas das ferramentas são instruções SQL (CREA-
TE VIEW e CREATE INDEX), ao passo que outras fazem parte das ferramentas CASE para o
desenvolvimento de banco de dados. Esta seção apresenta outras ferramentas para segurança,
integridade e acesso a dicionários de dados, e examina o gerenciamento de gatilhos e procedi-
mentos armazenados.
14manCap14.qxd 24.10.07 11:51 Page 485
486 Parte Sete Gerenciamento de Ambientes de Banco de Dados
14.2.1 Segurança
A segurança está relacionada à proteção de um banco de dados contra acesso não autorizado
e ações mal-intencionadas de devastação. Por causa do valor dos dados nos bancos de dados
corporativos, há grande motivação por parte dos usuários não autorizados a ganhar acesso
não autorizado a esses bancos. Os concorrentes se sentem muito motivados a acessar infor-
mações confidenciais sobre planos de desenvolvimento de produtos, iniciativas de economia
de custos e perfil de clientes. O desejo dos criminosos à espreita é furtar informações ainda
não divulgadas sobre resultados financeiros e transações de negócio e dados confidenciais
sobre clientes, como número de cartão de crédito. Os transgressores sociais e terroristas
podem causar problemas e prejuízos significativos destruindo intencionalmente os registros
de um banco de dados. Dado o uso crescente da Internet para a condução de negócios, con-
correntes, criminosos e transgressores sociais têm cada vez mais oportunidade de compro-
meter a segurança dos bancos de dados.
Segurança é um tema amplo que envolve várias áreas. Existem os aspectos éticos e
legais sobre quem pode acessar os dados e quando os dados podem ser divulgados. Existem
redes, hardware, sistemas operacionais e controles físicos que aumentam os controles ofere-
cidos pelos SGBDs. Existem ainda problemas operacionais relacionados com senhas, dis-
positivos de autenticação e cumprimento da privacidade. Essas questões não são tratadas em
maior profundidade porque estão além do escopo dos especialistas em SGBDs e bancos de
dados. O restante desta subseção enfatiza as abordagens de controle de acesso e as instruções
SQL para regras de autorização.
Para o controle de acesso, os SGBDs ajudam a criação e a armazenagem de regras de au-
torização e o cumprimento dessas regras quando os usuários tentam acessar o banco de
dados. A Figura 14.4 mostra a interação desses elementos. Os administradores de banco 
de dados criam regras de autorização que definem quem pode acessar que parte de um banco de
dados e para qual operação. O cumprimento das regras de autorização requer a autenticação do
usuário e assegura que as referidas regras não foram violadas pelas solicitações de acesso (re-
cuperação e modificação de informações do banco de dados). A autenticação ocorre quando um
usuário se conecta pela primeira vez ao SGBD. As regras de autorização devem ser verificadas
para cada solicitação de acesso.
A abordagem mais comum de regras de autorização é conhecida por controle de acesso
discricionário. Nesse tipo de controle, os usuários recebem direitos ou privilégios de acesso a
partes específicas de um banco de dados. Para exercer um controle preciso, os privilégios em
geral são especificados para visões, e não para tabelas ou campos. Os usuários podem receber
permissão para ler, atualizar, inserir e excluir partes específicas de um banco de dados. Para
simplificar a manutenção das regras de autorização, é possível conceder privilégios a grupos ou
papéis, em vez de a usuários individuais. Pelo fato de os papéis serem mais estáveis que usuários
segurança do banco 
de dados
proteger bancos de dados contra
acessos não autorizados e
destruição mal-intencionada.
regras de autorização
definem usuários autorizados,
operações permissíveis e partes
acessíveis do banco de dados. 
O sistema de segurança do
banco de dados armazena regras
de autorização e as aplica para
cada acesso ao banco de dados.
controle de acesso 
discricionário
os usuários recebem direitos ou
privilégios de acesso a partes
específicas de um banco de
dados. O controle de acesso
discricionário é o tipo mais
comum de controle de 
segurança suportado por 
SGBDs comerciais.
DBA
Usuários
Dicionário de dados
 Sistema de segurança
do banco de dados
Regras de autorização
Autenticação,
requisições de acesso
FIGURA 14.4
Sistema de Segurança 
de um Banco de Dados
14manCap14.qxd 24.10.07 11:51 Page 486
Capítulo 14 Administração de Dados e de Banco de Dados 487
individuais, as regras de autorização que fazem referência a papéis exigem menor manutenção
que as regras que fazem referência a usuários individuais. Os usuários são designados a papéis e
recebem senhas. Durante o processo de login em um banco de dados, o sistema de segurança do
banco de dados autentica os usuários e menciona os papéis aos quais eles pertencem.
Os controles de acesso obrigatório são menos flexíveis que os controles de acesso dis-
cricionários. Nas abordagens de controle obrigatório, a cada objeto é atribuído um nível de
classificação e a cada usuário é atribuído um nível de autorização. Um usuário pode acessar
um objeto se o seu nível de autorização oferecer acesso ao nível de classificação do objeto em
questão. Os níveis comuns de autorização e classificação são confidencial, secreto e ultra-se-
creto. As abordagens de controle de acesso obrigatório foram originalmente aplicadas em
bancos de dados altamente sensíveis e estáticos para defesa nacional e coleta de informações
secretas. Em virtude da limitada flexibilidade dos controles de acesso obrigatórios, apenas 
alguns SGBDs os aceitam. Entretanto, os SGBDs que são usados na defesa nacional e coleta
de informações secretas devem aceitar controles obrigatórios.
Além dos controles de acesso, os SGBDs aceitam encriptação de dados. A encriptação
envolve a codificação de dados para obscurecer seu significado. Um algoritmo de encriptação
modifica os dados originais (conhecidos por texto puro ou plaintext). Para decifrar os dados,
o usuário fornece uma chave de encriptação para restaurar os dados encriptados (conhecidos
por texto cifrado ou ciphertext) para o seu formato original (texto puro). Dois entre os algo-
ritmos de encriptação mais comuns são o padrão de encriptação de dados e encriptação de
chave pública. Pelo fato de o padrão de encriptação de dados poder ser quebrado por um
poder computacional gigantesco, o algoritmo de encriptação de chave pública tornou-se a
abordagem preferida.
Instruções de Segurança do SQL:2003
O SQL:2003 oferece suporte a regras de autorização discricionária usandoas instruções
CREATE/DROP ROLE e as instruções GRANT/REVOKE. Quando se cria o papel, o SGBD
concede o papel tanto ao usuário atual quanto ao papel atual. No Exemplo 14.1, os papéis Pro-
fessorSI e ConsultorSI são concedidos ao usuário atual, enquanto o papel AdministradorSI é
concedido ao papel do usuário atual. A cláusula WITH ADMIN significa que um usuário ao
qual foi atribuído o papel pode atribuir o papel a outros usuários. A opção WITH ADMIN
deve ser usada moderadamente porque oferece ampla liberdade de ação ao papel. Um papel pode
ser suspenso com a instrução DROP ROLE.
controle de acesso 
obrigatório
uma abordagem de segurança de
banco de dados para bancos 
de dados altamente sensíveis e
estáticos. Um usuário pode
acessar um elemento do banco
de dados se o nível de
autorização do usuário permite o
acesso ao nível de classificação
do elemento.
EXEMPLO 14.1 Exemplos da Instrução CREATE ROLE
(SQL:2003) CREATE ROLE ProfessorSI;
CREATE ROLE AdministradorSI WITH ADMIN CURRENT_ROLE;
CREATE ROLE ConsultorSI;
Na instrução GRANT, você especifica os privilégios (consulte a Tabela 14.3), o objeto
(tabela, coluna ou visão) e a lista de usuários autorizados (ou papéis). No Exemplo 14.2, o
acesso SELECT é atribuído a três papéis (ProfessorSI, ConsultorSI, AdministradorSI), ao
passo que o acesso UPDATE é dado apenas a AdministradorSI. Aos usuários individuais
devem ser atribuídos papéis para que possam acessar a visão MediaGeralAlunoSI.
TABELA 14.3
Explicação sobre os
Privilégios Comuns do
SQL:2003
Privilégio Explicação
SELECT Consulta o objeto; pode ser especificado para colunas individuais
UPDATE Modifica o valor; pode ser especificado para colunas individuais
INSERT Adiciona uma nova linha; pode ser especificado para colunas individuais
DELETE Exclui uma linha; não pode ser especificado para colunas individuais
TRIGGER Cria um gatilho em uma tabela estipulada
REFERENCES Menciona as colunas de uma determinada tabela nas restrições de integridade
EXECUTE Executa o procedimento armazenado
14manCap14.qxd 24.10.07 11:51 Page 487
Likah
488 Parte Sete Gerenciamento de Ambientes de Banco de Dados
A instrução GRANT pode também ser usada para designar usuários aos papéis, como
mostrado nas três últimas instruções GRANT no Exemplo 14.2. Além de conceder os privi-
légios da Tabela 14.3, um usuário pode ser autorizado a passar privilégios a outros usuários
por meio da palavra-chave WITH GRANT OPTION. Na última instrução GRANT do Exem-
plo 14.2, o usuário Smith pode conferir o papel AdministradorSI a outros usuários. A opção
WITH GRANT deve ser usada com moderação porque oferece ampla liberdade de ação ao
usuário.
Para remover um privilégio de acesso, é usada a instrução REVOKE. Na última ins-
trução do Exemplo 14.2, o privilégio SELECT é removido de ProfessorSI. A cláusula RES-
TRICT significa que o privilégio é revogado apenas se ele não tiver sido concedido por mais
de um usuário ao papel especificado.
Segurança no Oracle e no Access
O Oracle 10g estende as instruções de segurança do SQL:2003 com a instrução CREATE
USER, papéis predefinidos e privilégios adicionais. No SQL:2003, a criação de usuário é
tratada como implementação. Visto que o Oracle não depende do sistema operacional para a
criação de usuário, ele oferece a instrução CREATE USER. O Oracle fornece papéis pre-
definidos para usuários altamente privilegiados, incluindo o papel CONNECT, para a criação
de tabelas em um esquema, o papel RESOURCE, para a criação de tabelas e objetos de apli-
cação – por exemplo, procedimentos armazenados –, e o papel DBA, para o gerenciamento
do banco de dados. Em relação aos privilégios, o Oracle faz distinção entre privilégios de sis-
tema (independentes do objeto) e privilégios de objeto. A concessão de privilégios de sistema
normalmente está reservada aos papéis altamente seguros em virtude das amplas conseqüên-
cias que os privilégios de sistema podem causar, como mostrado na Tabela 14.4. Os privilé-
gios de objeto do Oracle são semelhantes aos do SQL:2003, exceto que o Oracle fornece mais
objetos que o SQL:2003, como mostrado na Tabela 14.5.
Os SGBDs, em sua maioria, permitem restrições de autorização por objetos de apli-
cação, como formulários e relatórios, além dos objetos de banco de dados permissíveis na
instrução GRANT. Essas outras restrições de segurança geralmente são especificadas em in-
terfaces proprietárias ou em ferramentas de desenvolvimento de aplicações, em vez de no
SQL. Por exemplo, o Microsoft Access 2003 permite que se definam regras de autorização
por meio da janela Permissões para Usuário e Grupo, como exibido na Figura 14.5. As per-
missões para os objetos de banco de dados (tabelas e consultas armazenadas), bem como para
os objetos de aplicação (formulários e relatórios), podem ser especificadas por meio dessa
janela. Além disso, o SQL aceita as instruções GRANT/REVOKE semelhantes às instruções
do SQL:2003, assim como as instruções CREATE/DROP para usuários e grupos.
EXEMPLO 14.2 Definição de Visão e Instruções GRANT e REVOKE
(SQL:2003) CREATE VIEW MediaGeralAlunoSI AS
SELECT CPFAluno, NomeAluno, SobrenomeAluno, MediaAluno
FROM Aluno
WHERE Especializacao = ‘SI’:
-- Concede privilégios aos papéis
GRANT SELECT ON MediaGeralAlunoSI
TO ProfessorSI, ConsultorSI, AdministradorSI
GRANT UPDATE ON MediaGeralAlunoSI.MediaAluno TO AdministradorSI;
-- Designa usuários aos papéis
GRANT ProfessorSI TO Mannino;
GRANT ConsultorSI TO Olson;
GRANT AdministradorSI TO Smith WITH GRANT OPTION;
REVOKE SELECT ON MediaGeralAlunoSI FROM ProfessorSI RESTRICT;
14manCap14.qxd 24.10.07 11:51 Page 488
Capítulo 14 Administração de Dados e de Banco de Dados 489
TABELA 14.4
Explicação sobre os
Privilégios de Sistema
Comuns do Oracle
Privilégio de Sistema Explanação
CREATE X, CREATE ANY X Cria objetos do tipo X no esquema de alguém; CREATE ANY
permite que se criem objetos em outros esquemas1
ALTER X, ALTER ANY X Altera objetos do tipo X no esquema de alguém; ALTER ANY X
permite que se alterem objetos em outros esquemas.
INSERT ANY, DELETE ANY, Insere, exclui, atualiza e seleciona em uma tabela de qualquer 
UPDATE ANY, SELECT ANY esquema
DROP X, DROP ANY X Exclui objetos do tipo X no esquema de alguém. DROP ANY
permite que se excluam objetos em outros esquemas
ALTER SYSTEM, ALTER Emite comandos ALTER SYSTEM, comandos ALTER DATABASE 
DATABASE, ALTER SESSION e comandos ALTER SESSION
ANALYZE ANY Analisa qualquer tabela, índice ou grupo
TABELA 14.5
Mapeamento entre
Privilégios e Objetos
Comuns do Oracle
Procedimento, Função,
Privilégio/ Pacote, Biblioteca, Visão
Objeto Tabela Visão Seqüência2 Operador, Tipo de Índice Materializada3
ALTER X X
DELETE X X X
EXECUTE X
INDEX X
INSERT X X X
REFERENCES X X
SELECT X X X X
UPDATE X X X
1 Esquema é um conjunto de tabelas relacionadas e outros objetos Oracle que são tratados como uma
unidade.
2 Seqüência é um conjunto de valores mantido pelo Oracle. As seqüências normalmente são usadas para
chaves primárias geradas pelo sistema.
3 A visão materializada é armazenada, em vez de derivada. As visões materializadas são úteis em
datawarehouses, como descrito no Capítulo 16.
FIGURA 14.5
Janela Permissões para
Usuário e Grupo no
Microsoft Access 2003
14manCap14.qxd 24.10.07 11:51 Page 489
Encerra aqui o trecho do livro disponibilizado para 
esta Unidade de Aprendizagem. Na Biblioteca Virtual 
da Instituição, você encontra a obra na íntegra.
 
BANCO DE 
DADOS
Edinilson da Silva Vida
Projeto de banco de dados: 
modelos conceitual, 
lógico e físico
Objetivos de aprendizagem
Ao final deste texto, você deve apresentar os seguintes aprendizados:
 � Definir os modelos conceitual, físico e lógico.
 � Converter modelos de banco de dados conceitual, lógico e físico.
 � Ilustrar a modelagem de banco de dados relacional com SQL.
Introdução
O conhecimento acerca dos modelos entidade-relacionamento (MERs) 
possibilita a criação de pequenos e grandes projetos lógicos de bancos 
de dados e de modelagens de alta qualidade, propiciando o sucesso dos

Outros materiais