Banco de Dados I
Banco de Dados I
Banco de Dados I
Presidente
Rodrigo Galindo
Conselho Acadêmico
Alberto S. Santana
Ana Lucia Jankovic Barduchi
Camila Cardoso Rotella
Cristiane Lisandra Danna
Danielly Nunes Andrade Noé
Emanuel Santana
Grasiele Aparecida Lourenço
Lidiane Cristina Vivaldini Olo
Paulo Heraldo Costa do Valle
Thatiane Cristina dos Santos de Carvalho Ribeiro
Revisão Técnica
Márcio Aparecido Artero
Editorial
Adilson Braga Fontes
André Augusto de Andrade Ramos
Cristiane Lisandra Danna
Diogo Ribeiro Garcia
Emanuel Santana
Erick Silva Griep
Lidiane Cristina Vivaldini Olo
ISBN 978-85-522-0291-2
CDD 005.3
2018
Editora e Distribuidora Educacional S.A.
Avenida Paris, 675 – Parque Residencial João Piza
CEP: 86041-100 — Londrina — PR
e-mail: [email protected]
Homepage: http://www.kroton.com.br/
Sumário
Seção 1 - Fundamentos 12
1.1 | Visão geral 12
1.2 | Dado, informação e conhecimento 12
1.3 | O valor da informação 13
1.4 | Fundamentos 15
1.5 | Emprego de um banco de dados 16
1.5.1 | Natureza autodescritiva 17
1.5.2 | Isolamento dos dados e abstração de dados 18
1.5.3 | Múltiplas visões de dados 19
1.5.4 | Compartilhamento de dados e transações distribuídas 19
1.6 | Usuários 20
1.6.1 | Administradores de Banco de Dados (DBA) 20
1.6.2 | Desenvolvedores 20
1.6.3 | Usuários 20
1.7 | Dados Operacionais 21
1.8 | Por que usar banco de dados 22
Fundamentos e estrutura de
banco de dados
Leonardo de Marchi Ferrareto
Objetivos de aprendizagem
• Entender sobre os conceitos iniciais.
• Entender as estruturas.
Seção 1 | Fundamentos
Serão apresentados os componentes importantes para o conhecimento de
banco de dados, como: dado, informação e conhecimento; valor da informação;
fundamentos, como confiabilidade, integridade, visões, segurança, interface,
independência de dados, autodescrição e concorrência; capacidade de rodar de
forma distribuída e alta performance; em que o banco de dados é empregado;
usuários de um banco de dados; e dados operacionais, sendo cada um deles
descritos de forma clara e objetiva, mostrando sua importância dentro da aplicação.
1.4 Fundamentos
Consoante Silberschatz e Korth (2006, p. 2):
1.6 Usuários
Podemos dividir os utilizadores do banco de dados em três grupos:
• Administrador de Banco de Dados (DBA).
• Desenvolvedores.
• Usuários.
1.6.2 Desenvolvedores
São responsáveis por implementar e modelar a base de dados. Seu
principal papel é desenvolver aplicações (programas escritos em outras
linguagens, como C#, PHP, Java, entre outras), conectando ao banco
de dados do sistema, podemos, assim, tornar o acesso e a manipulação
de dados mais simples ao usuário final.
1.6.3 Usuários
Dentre os três grupos apresentados, este é o mais importante, pois
tem um papel fundamental dentro do banco de dados, pois é ele quem
Atividades de aprendizagem
1. O ser humano tem três papéis fundamentais dentro de um sistema de
banco de dados, sendo cada um deles essencial para que todos os seus
processos possam ser desempenhados de forma correta, desde a obtenção
dos dados até mesmo a segurança de todo o sistema de banco de dados.
Assinale a alternativa que mostra os três papéis do ser humano dentro do
sistema de banco de dados.
a) Gerente, Desenvolvedor e Tester.
b) Usuário, DBA e Desenvolvedor.
c) DBA, Desenvolvedor e Analista.
d) Analista, DBA e Tester.
e) Gerente, Usuário e Desenvolvedor.
Nível Conceitual
Armazenamento
Nível Fisico
Fonte: DevMedia.
Atividades de aprendizagem
1. O isolamento de detalhes internos do banco para o usuário está definido
na capacidade de abstração dos dados pelo banco. Cite e explique os três
níveis de abstração de dados.
2. O tipo de dado que cada campo pode assumir mostra a qual grupo de
dados ele pertence. O grupo de dados que pode assumir valores inteiros e
não inteiros são, respectivamente:
Fique ligado
Nesta unidade, estudamos:
• Dado, informação e conhecimento.
• Valor da informação.
• Fundamentos de banco de dados.
Sistemas de gerenciamento
de banco de dados (SGBD)
Roberto Yukio Nishimura
Objetivos de aprendizagem
• Estudar os conceitos, os elementos e as funcionalidades de um
SGBD.
1.1 Definição
Segundo Navathe e Elmasri (2005, p. 19),
Atividades de aprendizagem
1. Considerando que, quando surgiu, o Sistema Gerenciador de Banco de
Dados (SGBD) era monolítico, ou seja, praticamente um único programa,
e que, ao longo do tempo, vem evoluindo. Desta forma, hoje em dia, o
SGBD é composto por diversos programas de computador que permitem
2.1 Definição
Conforme Navathe e Elmasri (2005, p. 27), “além dos módulos de
software descritos, muitos SGBDs têm utilitários de banco de dados
que auxiliam o DBA no gerenciamento do sistema de banco de dados”.
Um Sistema Gerenciador de Banco de Dados (SGBD) é composto
por diversas ferramentas ou programas de computador para
executarem as tarefas da administração do banco de dados.
Como já foi dito anteriormente, as tarefas administrativas podem
ser de manutenção funcional do banco de dados ou de manutenção
operacional do banco de dados.
As tarefas de manutenção funcional podem ser entendidas como
as tarefas para criação do banco de dados, criação das tabelas e
relacionamentos, criação dos usuários, criação dos grupos de usuários,
criação das regras de negócio, criação de regras de acesso etc.
Já as tarefas de manutenção operacional são aquelas nas quais
executamos ações, como carregar o banco de dados, colocar o
banco de dados disponível no ar, suspender a execução do banco de
dados, retirar o banco de dados do ar, executar a realização de backup
do banco de dados (tarefa esta que pode ser feita com o banco de
dados no ar ou com o banco de dados fora do ar) e executar rotinas de
recuperação do banco de dados (que podem ser do banco de dados
inteiro ou de apenas parte do banco de dados, inclusive controlando o
tempo em que se deseja encerrar o processo de recuperação).
Rotinas de diagnóstico da saúde dos dados também podem ser
executadas, rotinas de carga de dados ou rotinas de extração de dados.
Atividades de aprendizagem
1. Um Sistema Gerenciador de Banco de Dados (SGBD) é uma caixa de
ferramentas com diversos softwares para a administração e manutenção de
um banco de dados. Uma das tarefas é a realização de rotinas de backup,
visando à proteção dos dados. Quando ocorre um sinistro com o banco de
dados, são necessárias a reconstrução e a recuperação do banco de dados.
Qual é o nome dado para este cenário?
a) Disaster-Reconstruct.
b) Disable-Enable.
c) Disaster-Recovery.
d) Crunch-Recovery.
e) Disaster-StartUp.
Atividades de aprendizagem
1. Considerando que um Sistema Gerenciador de Banco de Dados (SGBD) é
composto por uma série de programas de computador, que são ferramentas
para a construção e manutenção dos bancos de dados. Quando estas
ferramentas estão carregadas na memória do servidor e o banco de dados
também está carregado, qual é o nome dado ao conjunto de ferramentas +
banco de dados carregados que reflete um momento do banco de dados?
a) Esquema.
b) Cache.
c) Instância.
d) Memory Buss.
e) Barramento de Dados.
Fique ligado
Na Unidade 2, apresentamos alguns dos conceitos que fazem com
que o SGBD tenha uma maior confiabilidade no armazenamento dos
dados do que os arquivos convencionais.
Modelo de dados e
modelagem entidade
relacionamento
Roberto Yukio Nishimura
Objetivos de aprendizagem
• Estudar os conceitos, elementos e funcionalidades do modelo
de dados.
Caro (a) aluno (a), aqui na Seção 1 vamos iniciar com o processo
de modelagem de banco de dados, ele é divido em 3 partes (o projeto
conceitual de dados, depois o projeto lógico de dados e finaliza
com o projeto físico de dados). Cada uma destas etapas tem as suas
características próprias e seus objetivos distintos também.
Vamos apresentar as características que tornam os SGBDs (sistema
gerenciador de banco de dados) de mercado independentes e os
pontos onde são totalmente dependentes deste.
1 Modelo de dados
1.1 Definição
Links:
• Tutorial – Planeje seu modelo de dados: http://www.linhadecodigo.
com.br/artigo/332/planeje-o-seu-modelo-de-dados.aspx - Acesso
em: 8 ago. 2017.
• Tutorial – Modelo de dados - UFSC: <http://www.inf.ufsc.br/~r.mello/
ine5423/3-modeloRelacional.pdf>. Acesso em: 8 ago. 2017.
Atividades de aprendizagem
1. Um projeto de banco de dados consiste em 3 etapas distintas, projeto
conceitual, projeto lógico e projeto físico. Cada uma destas etapas possui a
sua finalidade específica e apresenta seus resultados próprios.
Em qual etapa tratamos o armazenamento dos dados com estruturas de
armazenamento denominados “entidades”?
a) Projeto Conceitual e Projeto Lógico.
b) Projeto Conceitual.
c) Projeto Lógico.
d) Projeto Lógico e Projeto Físico.
e) Projeto Físico.
Caro (a) aluno (a), na Seção 2 o assunto tratado será o MER (modelo
entidade relacionamento). Vamos abordar cada um dos componentes,
suas definições, características e representação geométrica.
2.2 Entidade
“O objeto básico que o modelo ER representa é uma entidade,
algo do mundo real, com uma existência independente” NAVATHE e
ELMASRI (2005, p. 39).
Uma entidade pode ser identificada através dos substantivos dentro
da descrição textual narrativa feita pelo analista de sistemas. Ou seja,
todo substantivo é um potencial candidato a ser uma entidade dentro
do seu projeto conceitual. Vale observar que nem todos os substantivos
serão uma entidade dentro do seu banco de dados, pois muita coisa
inútil será descrita no texto.
A entidade é representada por um retângulo dentro do DER
2.3 Relacionamento
“Quando um atributo de uma entidade refere-se a uma outra
entidade há um relacionamento” NAVATHE e ELMASRI (2005, p. 43).
O relacionamento é o que une duas entidades ou mais, representa
uma regra de negócio estabelecida entre as entidades. Na descrição
textual narrativa pode ser identificado através dos verbos. No momento
da modelagem, devemos observar que somente as regras de negócio
mais significativas têm relevância para o modelo de dados, vamos
desprezar as regras desnecessárias ou irrelevantes.
O relacionamento é representado por um losango no DER
(diagrama entidade relacionamento).
A Figura 3.7 – Relacionamento apresenta como um relacionamento
é representado dentro da ferramenta Br-Modelo.
2.3.2 AutoRelacionamento
Segundo CHEN (1990), é possível uma entidade se relacionar com
ela mesma através de um relacionamento que inicia na entidade e
finaliza na mesma entidade.
Links:
• O que é um MER: <https://www.lucidchart.com/pages/pt/o-que-
%C3%A9-um-modelo-entidade-relacionamento>. Acesso em: 10 ago.
2017.
• O Modelo Entidade Relacionamento – UFSC - prof. Renato Fileto:
<http://www.inf.ufsc.br/~r.fileto/Disciplinas/INE5423-2010-1/
Aulas/02-MER.pdf>. Acesso em: 10 ago. 2017.
3.1.2 Cardinalidade 1 - 1
A cardinalidade 1 – 1 representa que uma entidade de A se relaciona
com 1 somente 1 entidade de B.
“Um homem é casado com uma mulher”.
A Figura 3.12 – Cardinalidade 1 – 1 apresenta como o relacionamento
“é casado com” entre as entidades Homem e Mulher com cardinalidade
3.1.3 Cardinalidade 1 - N
A cardinalidade 1 – N representa que uma entidade de A se relaciona
com várias entidades de B.
“Um pai tem vários filhos”.
A Figura 3.13 – Cardinalidade 1 – N apresenta como o relacionamento
“tem” entre as entidades Pai e Filho com cardinalidade de 1 – N fica
representado no diagrama entidade relacionamento (DER).
3.1.4 Cardinalidade N - N
A cardinalidade N – N representa que várias entidades de A se
relacionam com várias entidades de B.
Este tipo de cardinalidade pode ser lido como uma entidade de A se
relaciona com várias entidades de B e uma entidade de B se relaciona
com várias entidades de A.
Ou seja, um relacionamento de 1 – N nos dois sentidos.
“Uma nota fiscal tem vários produtos, um produto está em várias
notas fiscais”.
A Figura 3.14 – Cardinalidade N – N apresenta como o relacionamento
“tem” entre as entidades Nota_Fiscal e Produto com cardinalidade de
N – N fica representado no diagrama entidade relacionamento (DER).
3.1.5 Cardinalidade N - 1
A cardinalidade N – 1 é semelhante à cardinalidade 1 – N, apenas
representa que a leitura está sendo feita em sentido contrário à regra
de negócio do relacionamento.
Recomenda-se não fazer este tipo de leitura como cardinalidade
principal do relacionamento.
“Vários carros são montados por uma montadora”.
A Figura 3.15 – Cardinalidade N – 1 apresenta como o
relacionamento “são montados” entre as entidades Carro e Montadora
com cardinalidade de N – 1 fica representado no diagrama entidade
relacionamento (DER).
Links:
• Vale uma pesquisa na enciclopédia livre Wikipédia, disponível em:
<https://pt.wikipedia.org/wiki/Cardinalidade_(modelagem_de_
dados)>. Acesso em: 10 ago. 2017.
• Tecnologia de Banco de Dados e Modelagem de Dados Parte 2:
<http://www.devmedia.com.br/tecnologias-de-banco-de-dados-
emodelagem-de-dados-parte-2/1871>. Acesso em: 10 ago. 2017.
Links:
• Consulte a enciclopédia livre Wikipedia e veja a definição de tipo
de atributo. Disponível em: <https://pt.wikipedia.org/wiki/Atributo_
(programa%C3%A7%C3%A3o)>. Acesso em: 10 ago. 2017.
• IBM – Lista de tipos de atributos: Disponível em: <https://www.
ibm.com/support/knowledgecenter/es/SSCKZ6_9.1.1/MktOps/
FormsEditor/AG_Attribute_types.html>. Acesso em: 10 ago. 2017.
• Luis Blog – Entidade: atributos: Disponível em: <http://www.luis.blog.
br/analise-deentidade-atributos-simples-compostos-multivalorados.
aspx >. Acesso em: 10 ago. 2017.
Atividades de aprendizagem
1. Um analista de sistema está trabalhando em um projeto de banco de
dados e durante o seu levantamento de requisitos junto aos usuários,
identificou uma situação em que um determinado dado que precisa ser
armazenado no banco de dados possui um valor absoluto sozinho e que
pode ser subdivido em outros dados complementares menores.
Segundo a classificação de tipos de dados, podemos classificar esta situação
apresentada pelo analista de sistemas como um atributo do tipo:
a) Multifórmico.
b) Calculado.
Fique ligado
Na Unidade 3 apresentamos o conceito de modelo de dados com
seus componentes diretos (projeto conceitual, projeto lógico e projeto
físico) e a técnica de modelagem de dados MER (modelo entidade
relacionamento).
Para detalhar o MER (modelo entidade relacionamento)
conceituamos entidade, relacionamento e atributo. Em seguida
apresentamos as cardinalidades do relacionamento e os tipos de
atributos.
As imagens foram geradas utilizando-se a ferramenta CASE
(Computer-Aided Software Engineering) chamada BrModelo, que é um
software gratuito na internet e utiliza a representação gráfica proposta
por Peter Chen.
Não podemos esquecer que ao utilizar a técnica de modelagem
entidade relacionamento, é necessário expressar o resultado e para
isto é utilizado o DER (diagrama entidade relacionamento).
Linguagem de acesso
a dados
Leonardo de Marchi Ferrareto
Objetivos de aprendizagem
• Entender sobre os conceitos de linguagem de dados.
Caso seja necessário remover a permissão de select concedida para o usuário, será
utilizado o seguinte comando:
Neste caso, pode ser ainda que o usuário tenha acesso de select
à tabela de clientes se ele estiver em um grupo dentro do banco de
dados que tem esse direito. Para confirmar definitivamente o corte ao
acesso de select à tabela, utilizaremos o seguinte comando:
Atividades de aprendizagem
1. O subconjunto de comandos que permite realizar a criação e alteração
de objetos em um banco de dados, sendo eles de armazenamento ou de
indexação de dados, é:
a) Linguagem de manipulação de dados
b) Linguagem de definição de dados.
c) Linguagem de consulta de dados
d) Linguagem de controle de dados
e) Linguagem de transação de dados
column1 datatype,
column2 datatype,
column3 datatype,
....
);
PessoaID int,
Nome varchar(255),
Endereco varchar(255),
Telefone varchar(255),
cidade varchar(255) );
2.1.7 CHECK
Define que a coluna de uma tabela deverá respeitar uma condição
para cada valor que for inserido nela.
Segundo Angelotti (2010, p. 78), “A restrição check cria uma regra na
coluna, fazendo com que todo novo registro inserido na tabela tenha
que respeitar essa condição”.
A restrição CHECK pode ser criada utilizando o comando CREATE
TABLE ou pelo comando ALTER TABLE.
2.1.8 UNIQUE
A restrição UNIQUE garante que os valores contidos em uma
coluna, na qual a restrição foi aplicada, não irão se repetir.
Usando a Figura 4.12 como exemplo, pede-se que seja criado uma
restrição DEFAULT para a coluna Endereco. Quando o usuário não
atribuir um valor a essa coluna, ele deverá atribuir a palavra inexistente
automaticamente.
2.2 Operadores
2.2.1 Comparação
São usados para realizar a comparação de valores passados como
parâmetros nas colunas de uma tabela. Os operadores não alteram os
valores, apenas criam um filtro na apresentação dos dados.
Os operadores de comparação que temos são os seguintes:
Operador Descrição
> Maior: traz somente valores maiores ao comparado
< Menor: traz somente valores menores ao comparado
= Igual: traz somente valores iguais ao comparado
<> Diferente: traz somente valores diferentes ao
comparado
>= Maior Igual: traz os valores que são maiores e iguais
ao comparado
<= Menor Igual: traz os valores que são menores e iguais
ao comparado
Fonte: elaborado pelo autor.
Operador Descrição
AND Obriga que as regras impostas sejam todas
verdadeiras. Ex.: Idade > 18 AND Idade < 30
OR Retorna os valores respeitando uma das regras
impostas. Ex.: Profissao = ‘Analista’ OR Profissao =
‘DBA’
NOT É um operador de negação, ele nega o filtro aplicado.
Ex.: preco NOT(valor = 10).
INT Define um conjunto de valores a serem comparados.
Ex.: cor IN (‘preta’,’branca’).
BETWEEN Define uma faixa de valores a serem retornados.
Ex.: ANO BETWEEN 2000 and 2002.
Fonte: elaborado pelo autor.
SELECT * FROM Pessoa WHERE cidade = 'Londrina' and nome = ‘Jose da Silva’
Deve-se ter muita atenção quando utilizar esse comando, pois sem
o filtro WHERE ele irá apagar todas as linhas de uma tabela.
Usando a tabela de Pessoa da Figura 4.4, deseja-se excluir todos os
registros nos quais o campo CPF estiver vazio (nulo).
UPDATE table_name
SET column_name = value
WHERE condition;
Atividades de aprendizagem
1. Baseando-se no quadro a seguir, quantas linhas serão retornadas na
seguinte consulta?
SELECT nome, DataNascimento FROM Pessoa where Sexo = ‘M’ and
between DataNascimento ‘01/01/1980’ and ‘31/12/1980’
a) 1.
b) 4.
c) 5.
d) 6.
e) 0.