Data">
9 Banco de Dados Completo
9 Banco de Dados Completo
9 Banco de Dados Completo
COMPUTACIONAIS
Introdução
Atualmente, os sistemas de informação são desenvolvidos juntamente
com uma base de dados. Essa base é responsável por gerenciar a manipu-
lação dos dados utilizados. Por isso, é fundamental que os profissionais da
área de desenvolvimento de sistemas tenham o conhecimento adequado
sobre os bancos de dados. Assim, esses profissionais podem integrar
sistemas e bancos de dados de maneira conveniente.
Neste capítulo, você vai conhecer a definição de banco de dados,
associando-a a exemplos. Além disso, vai ver os diferentes tipos de banco
de dados e a linguagem utilizada neles.
Colunas
https://goo.gl/faJXMp
176 Banco de dados
Departamento Empregado
Leia mais sobre sistemas de banco de dados na obra “Sistemas de banco de dados”
(ELMASRI, R.; NAVATHE, S. B., 2005).
Referência
Leituras recomendadas
ELMASRI, R.; NAVATHE, S. B. Sistemas de banco de dados. São Paulo: Pearson, 2005.
REZENDE, R. Conceitos fundamentais de banco de dados. [201-?]. Disponível em: <ht-
tps://www.devmedia.com.br/conceitos-fundamentais-de-banco-de-dados/1649>.
Acesso em; 22 abr. 2018.
SANTANCHÈ, A.; CAVOTO, P. Banco de dados. Campinas: [S.n.], (2013).
Sistemas de Gerenciamento
de Banco de Dados
Tradução da
Terceira Edição
Ramakrishnan • Gehrke
SISTEMAS DE GERENCIAMENTO
DE BANCO DE DADOS
Raghu Ramakrishnan
University of Wisconsin
Madison, Wisconsin, USA
Johannes Gehrke
Cornell University
Ithaca, New York, USA
Tradução
Célia Taniwake
João Eduardo Nóbrega Tortello
Revisão Técnica
Elaine Parros Machado de Sousa
Professora Doutora do Departamento de Ciências de Computação —
Instituto de Ciências Matemáticas e de Computação da Universidade de São Paulo
Versão impressa
desta obra: 2008
2011
1
VISÃO GERAL SOBRE
SISTEMAS DE BANCO DE DADOS
Reparou que todas as letras da palavra database (banco de dados, em inglês) são
digitadas com a mão esquerda? Sabemos que a disposição do teclado da máquina de
escrever (QWERTY) foi projetada, entre outras coisas, para facilitar o uso uniforme
de ambas as mãos. Conclui-se, então, que escrever sobre bancos de dados, além de ser
algo não natural, é bem mais difícil do que parece.
— Anônimo
2
Visão Geral sobre Sistemas de Banco de Dados 3
um passivo, cujo custo de aquisição e gerenciamento excede em muito o valor por ele
produzido.
Um banco de dados é uma coleção de dados que, tipicamente, descreve as ativida-
des de uma ou mais organizações relacionadas. Por exemplo, um banco de dados de
uma universidade poderia conter informações sobre:
2. Análise dos Dados: Como um usuário pode responder a dúvidas sobre a empresa
formulando consultas sobre os dados do SGBD? (Capítulos 4 e 5.)1
3. Concorrência e Robustez: Como um SGBD permite que vários usuários acessem os
dados de forma concorrente, e como ele protege os dados na ocorrência de falhas do
sistema? (Capítulos 16, 17 e 18.)
4. Eficiência e Escalabilidade: Como um SGBD armazena grandes conjuntos de dados
e responde a questões sobre esses dados de forma eficiente? (Capítulos 8, 9, 10, 11,
12, 13, 14 e 15.)
1Um capítulo on-line sobre Consulta por Exemplo (QBE — Query-by-Example) também está disponível.
Veja mais informações no Prefácio.
Visão Geral sobre Sistemas de Banco de Dados 5
3Um kilobyte (KB) são 1024 bytes, um megabyte (MB) são 1024 KBs, um gigabyte (GB) são 1024 MBs,
um terabyte (TB) são 1024 GBs, e um petabyte (PB) são 1024 terabytes.
Visão Geral sobre Sistemas de Banco de Dados 7
Dadas todas essas vantagens, há alguma razão para não se utilizar um SGBD? Al-
gumas vezes, sim. Um SGBD é um software complexo, otimizado para alguns tipos de
processamento (por exemplo, responder a consultas complexas ou tratar várias requisi-
ções concorrentes), e seu desempenho pode não ser adequado para determinados apli-
cativos especializados. Exemplos incluem aplicativos com restrições rígidas de tempo
real ou algumas operações críticas bem definidas para as quais um código customizado
eficiente deve ser escrito. Uma outra razão para não se utilizar um SGBD é que o apli-
cativo pode precisar manipular os dados de maneiras não suportadas pela linguagem
de consulta. Em tais casos, a visualização abstrata dos dados apresentada pelo SGBD
pode não corresponder às necessidades do aplicativo e realmente impossibilitar o seu
uso. Como um exemplo, os bancos de dados relacionais não suportam a análise flexível
de dados textuais (embora os fabricantes estejam atualmente estendendo seus produtos
nesta direção).
Se o desempenho especializado ou solicitações de manipulação de dados são essen-
ciais num aplicativo, pode-se optar por não utilizar um SGBD, especialmente se os
benefícios de um SGBD (por exemplo, consulta flexível, segurança, acesso concorrente
e recuperação de falha) não forem exigidos. Entretanto, na maioria das situações
em que é necessário gerenciamento de dados em grande escala, os SGBDs têm se
tornado uma ferramenta indispensável.
Encerra aqui o trecho do livro disponibilizado para
esta Unidade de Aprendizagem. Na Biblioteca Virtual
da Instituição, você encontra a obra na íntegra.
MODELAGEM E
DESENVOLVIMENTO
DE BANCO 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.
Pense em uma situação hipotética em que você tenha uma loja de sapatos
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 consistente, 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?
Atomicidade;
Isolamento;
Consistência;
Durabilidade.
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.
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 gerencia-
mento 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.
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
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 durabilidade garante
que 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.
Durabilidade é a proteção dos dados contra qualquer coisa que não seja uma nova
transação do banco de dados.
Década de 80
Utilização de modelos em rede e hierárquico diminui
A IBM utiliza o DB2
Primeiros bancos orientados a Objeto: O2 [1988], Exodus [1986], ORION [1986]
O desenvolvimento do IBM PC ocasiona o surgimento de muitos
produtos em BD
Há a padronização do SQL pelo American National
Standards Institute (ANSI) [1986, 1989]
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.
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.
CASTELANO, C. R. História dos bancos de dados. [20--] Disponível em: http://castelano.
com.br/site/aulas/bd/Aula%2001%20-%20Introdu%C3%A7%C3%A3o.pdf. Acesso
em: 23 jun. 2021.
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. A história dos bancos de dados. 2006. Disponível em: https://www.dev-
media.com.br/a-historia-dos-banco-de-dados/1678. Acesso em: 23 jun. 2021.
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.
Márcio Motta
OBJETIVOS DE APRENDIZAGEM
INTRODUÇÃO
TECNOLOGIAS
Nos últimos anos, o surgimento de forças, como a TI híbrida, virtualização,
computação em nuvem, convergência continuada de infraestrutura e BYOD
(traga seu próprio dispositivo) ofereceram aos profissionais de tecnologia
novas formas de trabalhar, revolucionando o modelo tradicional até então
praticado na área. A expectativa é de que as pessoas que trabalham nessa
área consigam colocar em prática conceitos e tendências tecnológicas, como
bancos de dados embutidos, Internet das Coisas (IoT) e Cloud Computing, mas
sem deixar de lado as habilidades de gerenciar tecnologias e infraestruturas
tradicionais.
4
Com sua promessa de economia de custos e maior flexibilidade e agilidade,
a Nuvem está atraindo muitas organizações como uma alternativa para
a implantação de novos aplicativos, incluindo aqueles com altos requisitos
de desempenho de banco de dados. Entretanto, essa transição cria novas
complexidades e desafios para os DBAs, especialmente porque os DBAs
ainda são, em última análise, os responsáveis tanto pelo desempenho dos
bancos de dados quanto pela segurança dos dados, independentemente de
eles estarem nas próprias instalações ou na nuvem.
5
A Figura 1 a seguir procura relatar o ranking dos SGBDs mais utilizados e
traçar uma relação entre as suas tecnologias:
PERFORMANCE
6
estão ocorrendo de forma organizada e coerente com as necessidades da
plataforma, causando transtornos e inconsistências.
Fonte: autor
7
Um erro bastante comum é se preocupar com segurança e desempenho
apenas diante da reclamação dos usuários de um dado alterado indevidamente
ou lentidão na utilização do sistema, pois um monitoramento pontual não
terá fundamento para mostrar que o banco de dados não é o culpado. É
necessário monitoramento e relatórios constantes que auxiliem o DBA a
identificar gargalos, tomando as ações necessárias preventivamente, ou
mesmo comprovando que o problema não está no banco de dados, podendo
direcionar o tratamento do problema para o local correto.
SEGURANÇA
8
Controle de Acesso
É todo controle feito quanto ao acesso ao BD, impondo regras de restrição,
através das contas dos usuários. O DBA é o responsável superior por declarar
as regras dentro do SGBD. Ele é o responsável por conceder ou remover
privilégios, criar ou excluir usuários, e atribuição de um nível de segurança
aos usuários do sistema, de acordo com a política da empresa.
Controle de Inferência
É um mecanismo de segurança para banco de dados estatísticos que atua
protegendo informações estatísticas de um individuo ou de um grupo. Bancos
de dados estatísticos são usados principalmente para produzir estatísticas
sobre várias populações. O banco de dados pode conter informações
confidenciais sobre indivíduos. Os usuários têm permissão apenas para
recuperar informações estatísticas sobre populações e não para recuperar
dados individuais, como, por exemplo, a renda de uma pessoa específica.
Controle de Fluxo
É um mecanismo que previne que as informações fluam por canais secretos
e violem a política de segurança ao alcançarem usuários não autorizados.
Ele regula a distribuição ou fluxo de informação entre objetos acessíveis. Um
fluxo entre o objeto A e o objeto B ocorre quando um programa lê valores de
A e escreve valores em B. Os controles de fluxo têm a finalidade de verificar se
informações contidas em alguns objetos não fluem explicita ou implicitamente
para objetos de menor proteção. Dessa maneira, um usuário não pode obter
indiretamente em B aquilo que ele ou ela não puder obter diretamente de A.
Criptografia de Dados
Você pode ler aqui um pouco mais sobre criptografia. É uma medida de
controle final, utilizada para proteger dados sigilosos que são transmitidos
por meio de algum tipo de rede de comunicação. Ela também pode ser
usada para oferecer proteção adicional para que partes confidenciais de um
banco de dados não sejam acessadas por usuários não autorizados. Para
isso, os dados são codificados através da utilização de algum algoritmo de
codificação. Assim, um usuário não autorizado terá dificuldade para decifrá-
los, mas os usuários autorizados receberão chaves para decifrar esses dados.
A criptografia permite o disfarceda mensagem para que, mesmo com o desvio
da transmissão, a mensagem não seja revelada.
9
Privilégios
Os privilégios são permissões únicas dadas a cada usuário ou grupo. Eles
definem permissões para tipos de autorização. Pelos privilégios é possível
autorizar o usuário a modificar ou alcançar determinado recurso do Banco de
Dados.
10
REFERÊNCIAS
11
MODELAGEM E
DESENVOLVIMENTO
DE BANCO DE
DADOS
Fabrício Felipe
Meleto Barboza
Conceitos de banco
de dados
Objetivos de aprendizagem
Ao final deste texto, você deve apresentar os seguintes aprendizados:
Introdução
Neste capítulo, você vai estudar a necessidade do uso de banco de dados
no lugar de outra forma de guardar as informações, como, por exemplo,
planilhas eletrônicas ou documentos de textos.
Adicionalmente, você também conseguirá vislumbrar a diferença
entre os sistemas de bancos de dados existentes atualmente, suas apli-
cações mais comumente utilizadas nas corporações em geral e, também,
os aspectos positivos e negativos de cada opção de uso dos sistemas
abordados.
Acesse o link a seguir e leia a notícia da ANATEL, que apresenta a enorme quantidade
de linhas fixas existentes em todos os estados brasileiros.
https://goo.gl/6wcb8D
uma nova ligação por parte do cliente da grande companhia telefônica resulta
em um novo registro no próprio banco de dados — portanto, uma nova linha
da “planilha”. Como os bancos de dados, em sua maioria, estão conectados aos
sistemas, esse registro é feito de forma automática e é garantida a integridade
da informação.
Cliente
Nome
Telefone
Produto
Endereço Código
Cidade Nome
Estado Preço
CPF Qtd Estoque
Venda
Código
CPF_Cliente
Código_produto
Data
Valor
Código_nfe
Note que existem três tabelas ou tables no banco de dados da Figura 2: tabela
“Cliente”, tabela “Produto” e tabela “Venda”. O relacionamento entre elas é
executado quando o colaborador registra uma venda; então, o banco de dados
cria um registro na tabela “venda” contendo os dados do produto comprado
e os do cliente que comprou. Cada tabela tem atributos próprios, que seriam
suas colunas, nas quais ficam as informações correspondentes. Ou seja, pela
tabela “Cliente” foi mapeado que o cadastro de cliente terá os campos “Nome”,
“Telefone”, “Endereço”, “Cidade”, “Estado” e “CPF”. Já na tabela “Produto”, os
atributos (colunas) são “Código”, “Nome”, “Preço” e “Quantidade Estoque”. Por
fim, temos a tabela “Venda” com os atributos (colunas) “Código”, “CPF_cliente”,
“Código_produto”, “Data”, “Valor” e “Código_nfe”.
Para otimizar a quantidade de registros no banco de dados, existe a chave
primária e a chave estrangeira. A chave primária é um campo que é definido
como único e não pode repetir-se naquela tabela. Como exemplo de chave
primária para a tabela “Cliente”, pode-se utilizar o CPF, que é um número
único por pessoa (ninguém no Brasil tem o mesmo CPF que o seu). Para a
tabela “Produto”, foi criado um atributo chamado “Código”. Já a tabela “Venda”
pode usar o seu campo “Código”.
A chave estrangeira ocorre quando pegamos um atributo de outra tabela
que é chave primária nela. Veja novamente a Figura 2 e observe que, na tabela
“Venda”, existem duas possíveis chaves estrangeiras: “CPF_cliente”, que
vem da tabela “Cliente”, e “Código_produto”, que vem da tabela “Produto”.
Isso se dá para que, quando alguém pedir relatório de vendas, ao consultar a
tabela “Venda”, o sistema consiga buscar, por meio do campo “CPF_cliente”,
os dados do cliente na tabela “Cliente” e os dados do produto por meio do
campo “Código_produto” na tabela “Produto”.
A dúvida que surge é a de por que realizar esses relacionamentos e não
simplesmente criar mais atributos na tabela “Venda” para comportar os dados
do cliente e dos produtos nessa própria tabela. A resposta é bem simples: em
bancos de dados, assim como em qualquer sistema tecnológico, os dados têm
complexidade e, quanto mais dados, maior a complexidade para processá-
-los. Ao registrar apenas o código do produto e o CPF do cliente e, com
isso, realizar a busca nas tabelas correspondentes de “Cliente” e “Produto”,
você está otimizando recursos computacionais e mantendo o banco de dados
totalmente escalável.
Imagine que podem existir milhões de vendas diárias, de maneira que você
pouparia muito processamento ao identificar as vendas apenas com os códigos
das demais tabelas e, caso necessário, poderia recuperar a informação dessas
tabelas em um relatório para o gerente da loja, por exemplo. Outra vantagem é
Conceitos de banco de dados 7
MySQL;
MariaDB;
Microsoft SQLServer;
PostgreSQL;
Oracle;
MongoDB (franca expansão).
Linguagem SQL
Para realizar a inserção, remoção, edição ou qualquer outra atividade com
os dados que irão ou estão no banco de dados, é necessária uma interação
com o mesmo. Dessa forma, a linguagem SQL (Structure Query Language
ou Linguagem de Consulta Estruturada) é a que intermedeia essa interação,
criando a ponte necessária entre o que precisa ser feito e o banco de dados
efetivamente. Assim, para que algo aconteça, é necessário que a linguagem
SQL esteja com a sintaxe correta e os valores desejados também corretos.
Conceitos de banco de dados 9
A linguagem SQL tem uma sintaxe bem estruturada. Um exemplo básico seria:
SELECT atributos (obrigatório);
FROM tabelas (obrigatório);
WHERE condições (opcional).
Assim, para retornar o nome e CPF de todos os clientes que moram no Paraná
cadastrados na tabela “Cliente” da Figura 2, faríamos:
SELECT Nome, CPF;
FROM Cliente;
WHERE Estado = PR.
Uma resposta para por que a linguagem SQL é tão utilizada e difundida
em todo o mundo pode ser compreendida como:
Custo do
Tipo de administrador Tamanho do
Banco de dados licença do database projeto
Leituras recomendadas
HEUSER, C. A. Projeto de banco de dados. 6. ed. Porto Alegre: Bookman, 2008. (Série
Livros Didáticos Informática UFRGS, v. 4).
KORT, H. F.; SILBERSCHATZ, A.; SUDARSHAN, S. Sistemas de bancos de dados. 6. ed. Rio
de Janeiro: Campus, 2012.
Conteúdo:
MODELAGEM E
DESENVOLVIMENTO
DE BANCO DE DADOS
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.
MySQL/MariaDB;
Oracle;
Microsoft SQL Server;
PostgreSQL.
2 Tipos de bancos de dados
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.
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.
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.
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 dados 5
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:
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:
8 Tipos de bancos de dados
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:
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 dados 11
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.
TRADUÇÃO DA
TERCEIRA EDIÇÃO
Michael V. Mannino
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.
CDD 005.74
CDU 004.658
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
481
482 Parte Sete Gerenciamento de Ambientes de Banco de Dados
Alta
(estratégia) Bancos de dados operacionais
resumidos e integrados
Média
(tática) Bancos de dados
operacionais individuais
Baixa
(operacional)
TABELA 14.1
Nível Gerencial Exemplos de Decisão Requisitos de Dados
Exemplos de Tomada
de Decisão Gerencial 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.
FIGURA 14.2
Estágios Típicos do Ciclo
de Vida da Informação
Uso
Aquisição
Disseminação
Armazenamento
Formatação
Proteção
Processamento
484 Parte Sete Gerenciamento de Ambientes de Banco de Dados
FIGURA 14.3
Três Pilares do
Gerenciamento do Tecnologia
Conhecimento
Processamento de Dinâmica da
informações humanas organização
TABELA 14.2
Posição Responsabilidades
Responsabilidades dos
Administradores de Dados Administrador de dados Desenvolve um modelo de dados corporativo.
e dos Administradores de Estabelece padrões e políticas entre bancos de dados com
Bancos de Dados 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.
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 do banco Segurança é um tema amplo que envolve várias áreas. Existem os aspectos éticos e
de dados legais sobre quem pode acessar os dados e quando os dados podem ser divulgados. Existem
proteger bancos de dados contra redes, hardware, sistemas operacionais e controles físicos que aumentam os controles ofere-
acessos não autorizados e cidos pelos SGBDs. Existem ainda problemas operacionais relacionados com senhas, dis-
destruição mal-intencionada. 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
regras de autorização
definem usuários autorizados,
SQL para regras de autorização.
operações permissíveis e partes Para o controle de acesso, os SGBDs ajudam a criação e a armazenagem de regras de au-
acessíveis do banco de dados. torização e o cumprimento dessas regras quando os usuários tentam acessar o banco de
O sistema de segurança do dados. A Figura 14.4 mostra a interação desses elementos. Os administradores de banco
banco de dados armazena regras de dados criam regras de autorização que definem quem pode acessar que parte de um banco de
de autorização e as aplica para dados e para qual operação. O cumprimento das regras de autorização requer a autenticação do
cada acesso ao banco de dados. 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
controle de acesso
discricionário
para cada solicitação de acesso.
os usuários recebem direitos ou A abordagem mais comum de regras de autorização é conhecida por controle de acesso
privilégios de acesso a partes discricionário. Nesse tipo de controle, os usuários recebem direitos ou privilégios de acesso a
específicas de um banco de partes específicas de um banco de dados. Para exercer um controle preciso, os privilégios em
dados. O controle de acesso geral são especificados para visões, e não para tabelas ou campos. Os usuários podem receber
discricionário é o tipo mais permissão para ler, atualizar, inserir e excluir partes específicas de um banco de dados. Para
comum de controle de
simplificar a manutenção das regras de autorização, é possível conceder privilégios a grupos ou
segurança suportado por
SGBDs comerciais. papéis, em vez de a usuários individuais. Pelo fato de os papéis serem mais estáveis que usuários
FIGURA 14.4
Sistema de Segurança
de um Banco de Dados
Regras de autorização
DBA
Autenticação, Sistema de segurança
requisições de acesso do banco de dados
Usuários
Dicionário de dados
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
controle de acesso banco de dados autentica os usuários e menciona os papéis aos quais eles pertencem.
obrigatório Os controles de acesso obrigatório são menos flexíveis que os controles de acesso dis-
uma abordagem de segurança de cricionários. Nas abordagens de controle obrigatório, a cada objeto é atribuído um nível de
banco de dados para bancos classificação e a cada usuário é atribuído um nível de autorização. Um usuário pode acessar
de dados altamente sensíveis e um objeto se o seu nível de autorização oferecer acesso ao nível de classificação do objeto em
estáticos. Um usuário pode questão. Os níveis comuns de autorização e classificação são confidencial, secreto e ultra-se-
acessar um elemento do banco creto. As abordagens de controle de acesso obrigatório foram originalmente aplicadas em
de dados se o nível de
autorização do usuário permite o
bancos de dados altamente sensíveis e estáticos para defesa nacional e coleta de informações
acesso ao nível de classificação secretas. Em virtude da limitada flexibilidade dos controles de acesso obrigatórios, apenas
do elemento. 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.
TABELA 14.3
Privilégio Explicação
Explicação sobre os
Privilégios Comuns do SELECT Consulta o objeto; pode ser especificado para colunas individuais
SQL:2003 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
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.
TABELA 14.4
Privilégio de Sistema Explanação
Explicação sobre os
Privilégios de Sistema CREATE X, CREATE ANY X Cria objetos do tipo X no esquema de alguém; CREATE ANY
Comuns do Oracle 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
Procedimento, Função,
Mapeamento entre Privilégio/ Pacote, Biblioteca, Visão
Privilégios e Objetos Objeto Tabela Visão Seqüência2 Operador, Tipo de Índice Materializada3
Comuns do Oracle
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
FIGURA 14.5
Janela Permissões para
Usuário e Grupo no
Microsoft Access 2003
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.
Encerra aqui o trecho do livro disponibilizado para
esta Unidade de Aprendizagem. Na Biblioteca Virtual
da Instituição, você encontra a obra na íntegra.
MODELAGEM E
DESENVOLVIMENTO
DE BANCO DE DADOS
Fabrício Felipe
Meleto Barboza
Revisão técnica:
ISBN 978-85-9502-517-2
CDU 004.65
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.
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:
controle de redundâncias;
compartilhamento de dados;
controle de acesso;
interfaceamento;
esquematização;
controle de integridade;
backups.
50 Sistemas de gerenciamento de banco de dados
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.
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 dados 51
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.
Esquematização
A existência de uma forma de relacionamento dos dados, presentes nas mais
diversas tabelas, deve ser clara e precisa.
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.
52 Sistemas de gerenciamento de banco de dados
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.
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 dados 53
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.
54 Sistemas de gerenciamento de banco de dados
Símbolo Significado
= é composto de
() opcional
{} cavalar
[] escolha entre uma das alternativas
** comentário
@ chave
/ separa opções alternativas
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.
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 dados 57
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.
Encerra aqui o trecho do livro disponibilizado para
esta Unidade de Aprendizagem. Na Biblioteca Virtual
da Instituição, você encontra a obra na íntegra.