Escolar Documentos
Profissional Documentos
Cultura Documentos
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:
BANCO DE
DADOS
Introdução
Os bancos de dados surgiram principalmente em função da grande
necessidade de armazenar dados de forma permanente e organizada.
É importante salientar que o volume de dados que tem surgido é cada
vez maior. Graças ao advento dos sistemas de gerenciamento de banco
de dados (SGBDs), é possível extrair diversas informações que auxiliem
no processo de tomada de decisão, exatamente no formato de que
precisamos e em poucos minutos.
Além disso, a arquitetura de um banco de dados determina a escolha
da configuração adequada para a implantação de um SGBD e as regras
para a estruturação dos dados a partir da abstração do mundo real, tudo
isso de acordo com o projeto de banco de dados. A arquitetura de um
banco de dados sofre grande influência do sistema de computadores
no qual um SGBD está instalado. Logo, saber mensurar a capacidade de
processamento exigida por um SGBD irá ser determinante para a escolha
da arquitetura mais adequada em um projeto.
No geral, os SGBDs oferecem a possibilidade de armazenar e manipular
arquivos. Alguns permitem trabalhar com diferentes arquiteturas/estru-
turas, e cada arquitetura apresenta vantagens e desvantagens quando
adotada em certo contexto e com determinada aplicação.
2 Arquitetura de banco de dados
Programas de
aplicação
Sistema gerenciador
de banco de dados
Dados
Arquitetura de dados
A arquitetura de um banco de dados sofre grande influência da arquitetura
ou do sistema de computadores no qual o SGBD está instalado. Os modelos
arquiteturais mais comuns e que estão relacionados ao esquema do ambiente
no qual o banco de dados é instalado são do tipo centralizados, cliente/servidor,
paralelos e distribuídos (GARCIA-MOLINA; ULLMAN; WIDOM, 2001),
conforme mostra a Figura 2.
Modelo de dados
Quando falamos dos modelos de dados de um SGBD, estamos nos referindo
à estrutura utilizada para organizar os dados no banco. Esse aspecto dos
SGBDs, em específico, tem se modificado ao longo dos anos, com o surgimento
dos SGBDs com modelos não relacionais (NoSQL), que propõem estruturas
completamente diferentes para armazenamento dos dados. Existem várias
estruturas de dados que podem ser adotadas por um SGBD. A seguir, serão
apresentados alguns modelos de SGBDs existentes.
É a estrutura mais comum aos SGBDs, e os SGBDs que a adotam são também
os mais utilizados. Temos como exemplos Oracle, Microsoft SQL Server,
MariaDB, MySQL, PostgreSQL etc. O modelo de dados relacional foi criado
em 1985 por Edgar Frank Codd, que definiu que os bancos desse modelo
devem apresentar a informação uma única vez, ou seja, devem possuir um
identificador de cada informação para que não haja registros duplicados. Além
disso, os dados precisam estar dispostos em forma de tabela. Ao todo, foram
estabelecidas premissas para o modelo relacional, das quais podemos destacar:
relações de integridade;
recursos para inserção, alteração e remoção de dado em alto nível;
acesso ao dado por meio da consulta de sua tabela.
Tabelas
Quando falamos que as tabelas são relações, estamos dizendo que as lógicas
entre os dados do banco são definições da tabela. Ao criar e modificar uma
tabela, podemos estipular que determinados atributos se relacionam com dados
de outra tabela. A construção dessas relações é fundamental para que quem
precisar utilizar o banco possa executar consultas posteriores e compreender
a lógica entre os dados.
Registros
Atributos
Por último, temos as colunas ou atributos, que são as identificações dos da-
dos. Os atributos são responsáveis por caracterizar os dados inseridos em
determinada coluna.
Esquema de dados
Podemos afirmar que, em um modelo de dados, um esquema é uma descrição
em uma linguagem formal da estrutura do banco de dados. De acordo com
Alves (2013, p. 32), “[...] para construção de um esquema, devem ser despre-
zadas todas as especificações dos campos das tabelas, listando apenas os seus
nomes”. Na Figura 5, podemos observar um exemplo de um diagrama para o
esquema de um banco de dados. É possível notar a identificação das chaves
primárias de cada tabela, observando o sublinhado que foi colocado no nome
dos referidos campos.
Tipos de dados
Com o passar do tempo, surgiram novos tipos de dados, e, consequentemente,
os SGBDs se adaptaram para aceitá-los sem a necessidade de trabalhar com
conversões o tempo todo. Atualmente, quanto aos tipos de dados, os SGBDs
podem ser classificados em dados clássicos, textos/documentos, dados multimí
dia e dados geográficos, categorias descritas a seguir.
Níveis de abstração
Na arquitetura de banco de dados, temos várias categorias de modelos de
dados. Podemos classificar cada modelo de acordo com os tipos de conceitos
utilizados para descrever sua estrutura. Os modelos de dados conceituais, ou
modelos de alto nível, possuem conceitos que descrevem os dados como são
percebidos pelos usuários. Os modelos de dados conceituais usam conceitos
como entidades, atributos e relacionamentos. Uma entidade corresponde a um
objeto do mundo real descrito no banco de dados. Um atributo corresponde a
uma propriedade que auxilia na descrição de uma entidade. O relacionamento
entre duas ou mais entidades representa uma associação entre elas.
Os modelos de dados físicos, ou modelos de baixo nível, contêm conceitos
que descrevem os dados, detalhadamente, como estão armazenados no banco
de dados. Esses modelos descrevem os dados pela representação do formato
dos registros, da ordem e da disposição dos registros e das suas rotas de acesso,
que são estruturas que tornam as pesquisas por registros no banco de dados
mais rápidas e eficientes. Os conceitos obtidos dos modelos de dados de baixo
nível geralmente são mais significativos para os especialistas em tecnologia
da informação do que para os usuários finais das aplicações.
Entre esses dois níveis extremos, temos uma classe de modelos de dados
chamada de modelos representacionais ou de implementação, que descreve
conceitos que ocultam alguns detalhes de como os dados estão organizados e
armazenados no banco de dados. Estes, porém, podem ser interpretados pelos
usuários finais dos aplicativos. Atualmente, os modelos de dados representa-
cionais são os mais usados comercialmente pelos SGBDs mais tradicionais.
Essa classe inclui o modelo de dados relacional, utilizado mais popularmente
nos projetos de bancos de dados, e também os modelos hierárquicos e os
modelos de rede, considerados modelos de dados legados, que já foram muito
utilizados no passado.
14 Arquitetura de banco de dados
Oracle
A Oracle é uma empresa que surgiu nos anos 1980. Hoje, é uma das maiores
do mercado da tecnologia da informação e é proprietária de diversos recursos
conhecidos, como o banco da Oracle e o pacote de desenvolvimento Java. O
SGBD é um dos produtos mais conhecidos da empresa e é utilizado mundial-
mente. É uma ferramenta robusta, constantemente atualizada e aperfeiçoada
para atender às demandas do mercado. Esse SGBD é desenvolvido com foco
no mercado empresarial, e seus recursos atendem a empresas de pequeno e
grande porte. Adota o modelo de dados relacional e oferece a possibilidade de
manipulação de seus dados por meio da linguagem procedural/SQL. A Oracle
trabalha com o lançamento de diferentes versões, com características diferentes
e adequadas a necessidades diversas, sob a concessão de diferentes licenças.
MySQL
PostgreSQL
MariaDB
MongoDB
Redis
Cassandra
Tipo de Arqui-
SGBD Plataforma Modelo
licença tetura
Leituras recomendadas
HEUSER, C. A. Projeto de banco de dados. 6. ed. Porto Alegre: Bookman, 2011. 4 v.
SETZER, V. W.; SILVA, F. S. C. da. Bancos de dados: aprenda o que são, melhore seu co-
nhecimento, construa os seus. São Paulo: Blucher, 2005.