100% acharam este documento útil (1 voto)
746 visualizações305 páginas

Gran Banco de Dados

O documento descreve a evolução dos sistemas de banco de dados, desde os sistemas tradicionais de arquivos até os atuais sistemas gerenciadores de banco de dados (SGBDs). Os SGBDs trouxeram vantagens como controle de segurança, consistência, compartilhamento centralizado de dados e independência entre dados e programas. O documento também fornece definições-chave sobre o que é um banco de dados e seus principais componentes.

Enviado por

Jorge Rocha
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
100% acharam este documento útil (1 voto)
746 visualizações305 páginas

Gran Banco de Dados

O documento descreve a evolução dos sistemas de banco de dados, desde os sistemas tradicionais de arquivos até os atuais sistemas gerenciadores de banco de dados (SGBDs). Os SGBDs trouxeram vantagens como controle de segurança, consistência, compartilhamento centralizado de dados e independência entre dados e programas. O documento também fornece definições-chave sobre o que é um banco de dados e seus principais componentes.

Enviado por

Jorge Rocha
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 305

SISTEMA DE BANCO DE DADOS

Banco de Dados
Viu algum erro neste material? Contate-nos em: [email protected]

BANCO DE DADOS

Currículo do professor
• Analista Judiciário na Justiça Federal (TRF1) desde 2015.
• Professor no Grancursos Online.
• Professor substituto da UnB (2019-2020) e faculdades privadas do DF (2012-2020).
• Diretor do Núcleo de Operação de Centro de Dados – TRF1 (2018-2019).
• Coordenador-Geral de Sistemas na SEPAC – MP (2014-2015).
• Chefe de Divisão no INCRA (2012-2014).
• Analista em desenvolvimento regional na Codevasf (Estatal Federal) (2009-2010).
• Analista de sistemas na Eletrobrás/Eletronorte (2007-2009).
• Entre outros cargos.

Formação
C.E.S.A.R – Mestre em Engenharia de Software.
UNB – Especialista em Segurança da Informação.
UCB/RJ – Especialista em Gestão Pública.
UCB/DF – Licenciatura Plena em Informática.
IFPI – Graduação em Tecnologia em Informática.
UFPI – Licenciatura em Letras (Língua Inglesa).
*Não concluída.

Concursos e seleções
ANOTAÇÕES

1 www.grancursosonline.com.br
SISTEMA DE BANCO DE DADOS
Banco de Dados
Viu algum erro neste material? Contate-nos em: [email protected]

Bibliografia

INTRODUÇÃO

Os banco de dados desempenham um papel importante em várias áreas do cotidiano.


É muito difícil alguém nunca ter ouvido falar sobre o que é um banco de dados, porque,
com o advento da tecnologia da informação, existem bancos de dados dos mais variados tipos.
5m
Os bancos de dados desenvolvem um papel muito importante em vários setores:
ANOTAÇÕES

2 www.grancursosonline.com.br
SISTEMA DE BANCO DE DADOS
Banco de Dados
Viu algum erro neste material? Contate-nos em: [email protected]

Todas essas informações são armazenadas no banco de dados.


Dentro da tecnologia da informação, quando a referência é o banco de dados, é ao seu
conceito específico e a sistemas gerenciadores de banco de dados.
Em um primeiro momento, banco de dados é qualquer repositório de dados, não aqueles
dados referentes a informação, conhecimento e inteligência presentes na análise da infor-
mação; em alguns momentos eles podem ser confundidos com informação, mas, durante o
curso, isso será definido: o que é dado e o que é informação.

Ambiente dos sistemas tradicionais de processamento de arquivos


Dependendo da área de atuação, as pessoas que trabalham com planilhas referem
sempre a sua “base de dados” e, em Tecnologia da Informação (TI), o que se conclui é que
elas possuem um banco de dados, um MYSQL, algum banco de dados corporativo, mas,
quando se verifica, são planilhas.
ANOTAÇÕES

3 www.grancursosonline.com.br
SISTEMA DE BANCO DE DADOS
Banco de Dados
Viu algum erro neste material? Contate-nos em: [email protected]

• Sistemas Tradicionais de Processamento de Arquivos e sua Limitações


– Complexidade no controle de segurança;
– Inconsistência;
– Problemas de atomicidade;
– Ausência de padronização;
– Complexidade para acessar dados;
– Redundância não controlada.

Antes das aplicações denominadas SGBD, existia o sistema de guardar os dados: basi-
camente o computador acessava o repositório ali guardado, por exemplo, o departamento de
produção acessava esse repositório, o departamento financeiro, o departamento de vendas
e, com isso havia uma certa complexidade no controle de segurança, além disso, poderia
ocorrer inconsistência.

Por exemplo, uma planilha guardada dentro dos diretórios, com todos acessando essa
planilha, qualquer um poderia abrir a planilha, guardar o dado e salvar. A inconsistência dos
dados era algo comum porque qualquer um poderia mexer em uma parte da planilha do seu
interesse e misturar com informações de outras áreas.
ANOTAÇÕES

4 www.grancursosonline.com.br
SISTEMA DE BANCO DE DADOS
Banco de Dados
Viu algum erro neste material? Contate-nos em: [email protected]

Existiam problemas de atomicidade. Em um Sistema Gerenciador de Banco de Dados


(SGBD), conjunto de softwares que faz o gerenciamento dos dados, há transações e dentro
dessas transações há garantias de quatro propriedades, denominadas ACID – "A" de atomi-
cidade, "C" de consistência, "I" de isolamento e "D" de durabilidade.
10m
A atomicidade se refere à transação ir até o final: por exemplo, salvando uma informação
dentro de um diretório, na metade essa transação é corrompida, sendo que metade ficou
salva e a metade restante não foi salva. Esse é um problema de atomicidade. Se essa tran-
sação não fosse SGBD, que é um software que garante o ACID, ele não deixaria isso acon-
tecer, ou a transação iria até o final ou a transação seria desfeita.
Não existiam padrões, cada um podia mexer como quisesse – atualmente existem os
dados estruturados.
Por vezes, os dados eram duplicados, a planilha era copiada e colocada em outro
lugar, passava a existir uma planilha redundante que ninguém mais sabia qual era a sua
versão correta.

Compartilhamento de Dados – Redundância Controlada


Com a redundância controlada, o compartilhamento de dados passa a ser centralizado,
com todos podendo acessar esse banco.
ANOTAÇÕES

5 www.grancursosonline.com.br
SISTEMA DE BANCO DE DADOS
Banco de Dados
Viu algum erro neste material? Contate-nos em: [email protected]

O banco possui níveis e os usuários não enxergam o nível mais baixo da estrutura, da
arquitetura de um banco de dados: para eles, onde os dados estão armazenados é tudo
transparente. O banco de dados agora é uma aplicação que responde por vários softwares.

Evolução rumo aos SGBDs


ANOTAÇÕES

6 www.grancursosonline.com.br
SISTEMA DE BANCO DE DADOS
Banco de Dados
Viu algum erro neste material? Contate-nos em: [email protected]

Há uma evolução rumo aos Sistemas Gerenciadores de Banco de Dados (SGBDs), apli-
cações que controlam as bases de dados.
Os bancos de dados continuam existindo, mas não é feito aquele acesso direto aos dados.
Antes dos SGBDs o cenário era de pastas que podiam ser compartilhadas na rede.
Quando surgiram os computadores de grande porte, quando a computação se tornou comer-
cial, depois, com a microcomputação, que diminuiu o tamanho dos computadores, pratica-
mente um programa fazia o gerenciamento do banco de dados: o programa fazia o proces-
samento e a persistência do dado.

O programa, em determinada linguagem, guarda o dado, porque se não houver essa


guarda do dado, quando o programa é fechado e reaberto, aqueles dados que foram manipu-
lados nas variáveis são perdidos porque estavam na memória volátil do computador. O banco
de dados persistirá isso na memória secundária, no disco rígido.
15m

O dado persistido na memória, quando o programa é fechado e reaberto, há uma opção


no sistema para recuperar os dados.
Este era o sistema antigamente, programa de aplicação com dados embutidos.
E qual era o problema em relação a isso?
ANOTAÇÕES

7 www.grancursosonline.com.br
SISTEMA DE BANCO DE DADOS
Banco de Dados
Viu algum erro neste material? Contate-nos em: [email protected]

É que o dado era raramente compartilhado, porque havia a necessidade de haver o pro-
grama e o dado juntos: se outra aplicação precisasse acessar esse dado, este teria que ser
acessado por aquele programa.
No começo da computação não havia essa necessidade de sistemas multiusuários, mas
rapidamente esse cenário mudou.
Nessas aplicações, os dados eram acoplados, o banco de dados estava dentro
do programa.
A seguir, surgiu a modalidade de arquivos com a divisão entre dados e programas, finali-
zando com a existência de um banco de dados, um SGBD, com independência entre dados
e programas: existe um software que permite a comunicação entre o programa e o SGBD,
que guarda esses dados na memória.
O SGBD tem uma arquitetura de camadas e o usuário não determina mais onde deseja
guardar o dado, como era no princípio: o SGBD é que tem essa função de escolher em qual
ponto da memória ele guardará esse dado.
Os SGBDs relacionais, que são os mais cobrados em provas de concurso, possuem uma
linguagem padrão de comunicação, que é a linguagem SQL.
O banco de dados está dentro da arquitetura da aplicação denominada SGBD.

• Banco de Dados
– Coleção de dados relacionados;
– É um conjunto de dados integrados que tem o intuito de atender a uma comunidade
de usuários;
– Fatos conhecidos que podem ser registrados e possuem significado implícito;

O SGBD guarda um dado, um dado é um fato. Quando é feito um cadastro, por exemplo,
dos alunos do Grancursos, a informação é útil quando dela se extrai algum valor. Verificada a
lista dos alunos que são da cidade de Brasília, os dados estão sendo contextualizados, o fato
deixa de ser um dado bruto. Em algum momento, dados e informações podem ser similares.
20m

Coleção lógica e coerente de dados;



Não se persistem em um banco de dados, dados incoerentes. Por exemplo, em uma pla-
nilha existe o esquema de linhas e colunas. O banco de dados é baseado em tabelas, sendo
o esquema bem parecido.
ANOTAÇÕES

8 www.grancursosonline.com.br
SISTEMA DE BANCO DE DADOS
Banco de Dados
Viu algum erro neste material? Contate-nos em: [email protected]

Nas planilhas cometem-se muitos erros que não são passíveis de acontecer no SGBD,
porque este tem um conceito de integridade e o dado deve ser consistente.
Na planilha, por exemplo, é possível fazer um cadastro em uma coluna de vários endere-
ços dos alunos: se fosse no SGBD isso não aconteceria, porque com relação a dados sobre
endereço eles deveriam ser armazenados de forma a não facilitar a incoerência.
Qual incoerência? De se tentar atualizar o dado e cometer um erro.
Outro exemplo: o campo da idade de uma pessoa. Guarda-se o dado da data do nasci-
mento e em outro campo o valor da idade da pessoa: isso é tranquilamente feito na planilha.
No banco de dados não é possível guardar dessa forma porque já tendo a data de nasci-
mento, não faz sentido guardar a idade. Além disso, a idade é um dado que no banco de
dados será inconsistente, porque obrigará que se atualize constantemente.

Minimundo ou Universo de discurso (UoD – Universe of Discourse)


• Representa algum aspecto do mundo real. É a parte do mundo real sobre a qual será
criado o banco de dados e sua aplicação.
• Coleção logicamente coerente de dados com algum significado inerente.
• Construído para uma finalidade específica.
• Manual ou informatizado.
• Complexidade variável e qualquer tamanho.
ANOTAÇÕES

9 www.grancursosonline.com.br
SISTEMA DE BANCO DE DADOS
Banco de Dados
Viu algum erro neste material? Contate-nos em: [email protected]

Os bancos de dados crescem de uma forma gigantesca numa escala exponencial.


25m

SGBD – Sistema de Gerenciamento de Banco de Dados


• DBMS (DataBase Management Systems).
• Coleção de programas.

O SGBD não é um “programinha” que possui os dados embutidos, ele guarda o repositó-
rio de dados nos seus bancos de dados. O usuário não cria mais as estruturas de dados, não
desenvolve mais lista, pilha, fila, quem faz isso é o software do SGBD, que é uma coleção
de aplicações.

• Permite aos usuários criar e manter um banco de dados.


• Software de propósito geral que possibilita a definição, construção e manipulação de
banco de dados.

• SGBD é dependente de tecnologia;


• Incorpora as funções de definição, recuperação e alteração de dados em um
banco de dados;
• Definir um BD envolve especificar os tipos de dados, as estruturas e as restrições para
os dados que serão armazenados;
• Construir o BD é o processo de armazenar os referidos dados em algum meio de
armazenamento que seja controlado por um SGBD;
• Manipular o BD inclui funções de recuperação e atualização de dados.
ANOTAÇÕES

10 www.grancursosonline.com.br
SISTEMA DE BANCO DE DADOS
Banco de Dados
Viu algum erro neste material? Contate-nos em: [email protected]

Exemplos de SGBDs

Os mais cobrados pelas bancas são: MYSQL, PostgreSQL, Oracle e SQL Server.

Ambiente de Sistemas de Banco de Dados


ANOTAÇÕES

11 www.grancursosonline.com.br
SISTEMA DE BANCO DE DADOS
Banco de Dados
Viu algum erro neste material? Contate-nos em: [email protected]

O conceito de metadados é interessante: é o dado sobre o dado, é a informação sobre o


dado, quando se tem, por exemplo, um catálogo no banco de dados.
30m

DIRETO DO CONCURSO
1. (2018/CESPE/CEBRASPE/POLÍCIA FEDERAL/PERITO CRIMINAL FEDERAL/CO-
NHECIMENTOS BÁSICOS/TODAS AS ÁREAS) Acerca de banco de dados, julgue o
seguinte item.
Situação hipotética: Ao analisar um computador, Marcos encontrou inúmeros e-mails,
vídeos e textos advindos, em sua maioria, de comentários em redes sociais. Descobriu
também que havia relação entre vários vídeos e textos encontrados em um diretório
específico.
Assertiva: Nessa situação, tendo como referência somente essas informações, Marcos
poderá inferir que se trata de um grande banco de dados relacional, visto que um diretó-
rio é equivalente a uma tabela e cada arquivo de texto é equivalente a uma tupla; além
disso, como cada arquivo possui um código único, poderá deduzir que esse código é a
chave primária que identifica o arquivo de forma unívoca.

COMENTÁRIO
Banco de dados relacional tem sido muito cobrado nos concursos de todas as áreas.
A forma unívoca é a forma única como se fosse um campo que identifica cada um dos
elementos.
Um Banco de dados relacional realmente tem tabela, informações de tupla (registro da
tabela) e tem chave primária, mas o cenário proposto pela questão está mais relacionado
com um repositório de dados e não com um grande Banco de Dados.

REFERÊNCIAS

DATE, Christopher J. Introdução a sistemas de bancos de dados. Elsevier Brasil, 2004.


Elmarsi, R., & NAVATHE, S. B. (2011). Sistemas de banco de dados. Fundamentals of
database systems.
Icons8.com.br
ANOTAÇÕES

12 www.grancursosonline.com.br
SISTEMA DE BANCO DE DADOS
Banco de Dados
Viu algum erro neste material? Contate-nos em: [email protected]

Design e Diagramação por: Charleson Guedes

GABARITO
1. E

�Este material foi elaborado pela equipe pedagógica do Gran Cursos Online, de acordo com a aula
preparada e ministrada pelo professor Washington Henrique Carvalho Almeida.
�A presente degravação tem como objetivo auxiliar no acompanhamento e na revisão do conteúdo
ministrado na videoaula. Não recomendamos a substituição do estudo em vídeo pela leitura exclu-
siva deste material.
ANOTAÇÕES

13 www.grancursosonline.com.br
INFORMÁTICA
Tipos de Usuários, Linguagens e Arquitetura
Viu algum erro neste material? Contate-nos em: [email protected]

TIPOS DE USUÁRIOS, LINGUAGENS E ARQUITETURA

BANCOS DE DADOS – TIPOS DE USUÁRIOS, LINGUAGENS E ARQUITETURA


DE SGBD’S

TIPOS DE USUÁRIOS

Projetista de Banco de Dados

É o responsável pela identificação dos dados a serem armazenados no banco de dados


e pela escolha da estrutura apropriada para representar e armazenar esses dados.

Administrador de Banco de dados (DBA – Database Administrator)

É responsável pela administração do banco de dados e do SGBD.


Suas principais funções:

• Monitora o uso do BD em relação à segurança, tempo de resposta etc.;


• Especifica as regras de segurança e autoriza o acesso ao BD;
• Define estruturas de armazenamento e métodos de acesso;
• Define procedimentos de cópia (backup), recuperação, dentre outros.

Ou seja, o DBA se preocupa com o bom desempenho do banco de dados, além das ques-
tões de segurança.

Programador de Aplicações

Escreve os programas de aplicação. Realiza requisições ao SGBD por meio das aplica-
ções (Select, Insert, Delete e Update) ou através de ferramentas RAD (Rapid Application
Development).
5m
Ou seja, é o responsável por inserir, excluir, atualizar e consultar os dados dentro do
banco de dados.
ANOTAÇÕES

www.grancursosonline.com.br 1
INFORMÁTICA
Tipos de Usuários, Linguagens e Arquitetura
Viu algum erro neste material? Contate-nos em: [email protected]

Usuário Final

Manipula o Banco de dados de linguagens de consulta e programas de aplicação.


Os usuários finais podem ser de três tipos:
Leigos: interagem com o BD através dos programas.
Casuais: acessam o BD eventualmente, podendo solicitar informações diferentes de
cada vez. São de nível hierárquico médio ou elevado; ou
Avançados: interagem com o BD submetendo requisições em uma linguagem de con-
sulta de banco de dados (por exemplo, SQL).

Administrador de Dados (AD)

• Contexto:
– Necessidade de uma visão única dos dados (bases corporativas);
– Variedade de banco de dados atendendo a diversas áreas de negócio;
– Falta de uniformidade nos dados, implicando em redundância em diversos níveis,
tais como banco dados, colunas, tabelas, dentre outros.

• Atribuições:
– Definir padrões de nomenclatura;
– Deve conhecer as informações representadas no banco de dados e ter a preocupa-
ção com a integração das informações entre os bancos de dados distintos;
10m
– Fazer o levantamento de requisitos funcionais do banco de dados;
– Criar o modelo conceitual do banco de dados.

Obs.: tanto o projetista pode fazer o papel de AD ou pode existir um AD que ajuda o proje-
tista de dados.
ANOTAÇÕES

www.grancursosonline.com.br 2
INFORMÁTICA
Tipos de Usuários, Linguagens e Arquitetura
Viu algum erro neste material? Contate-nos em: [email protected]

LINGUAGENS DO SGBD

O SGBD tem algumas peculiaridades, sendo que o seu grande foco foi separar a aplica-
ção da base de dados. A partir disso, oferece visões para os usuários.
SGBD com separação clara entre níveis:

• Linguagem de definição de visões (VDL – View Definition Language): especificar


o esquema o esquema externo ou de visão;
• Linguagem de definição de dados (DDL – Data Definition Language): usada para
especificar o esquema conceitual;
• Linguagem de definição de armazenamento (SDL – Storage Definition Language):
utilizada para especificar o esquema interno.

Na maioria dos SGBDS, a DDL é utilizada para definir tanto o esquema externo, concei-
tual e interno.
ANOTAÇÕES

www.grancursosonline.com.br 3
INFORMÁTICA
Tipos de Usuários, Linguagens e Arquitetura
Viu algum erro neste material? Contate-nos em: [email protected]

Os usuários devem possuir meios de manipular o banco de dados. Manipulação inclui


recuperação, inclusão, exclusão e modificação dos dados (CRUD – Create, Read, Update
e Delete).
15m
A linguagem SQL (Structured Query Language) combina VDL, DDL e DML. Há, ainda,
uma classificação mais nova que separa o DML em DQL.
O SGBD fornece uma linguagem de manipulação de dados (DML – Data Manipulation
Language) para essa finalidade.

Exemplo de DDL

Criação de uma tabela que possui informações sobre veículos.


CREATE TABLE (criação)| ALTER TABLE (alteração da estrutura) | DROP TABLE
(exclusão)...

Exemplo de DML

Possibilita a manipulação dos dados de acordo com o modelo de dados.


Funções:
• Recuperação de dados armazenados (SELECT);
• Inserção de novos dados (INSERT);
• Remoção de dados (DELETE);
• Modificação de dados (UPDATE).

Por exemplo: selecionar todos os veículos do ano de 2016.


ANOTAÇÕES

www.grancursosonline.com.br 4
INFORMÁTICA
Tipos de Usuários, Linguagens e Arquitetura
Viu algum erro neste material? Contate-nos em: [email protected]

TIPOS DE DMLS

DMLs Procedurais requerem do usuário a especificação de qual dado é necessário e


como obtê-lo.
20m
Elas são embutidas em uma linguagem de programação (Pascal, C, C++, dentre outras...)
ou oferecidas pelo próprio SGBD (PL/SQL, Transact-SQL, dentre outras...).
Exemplo em PL/SQL (Oracle):

DMLs não procedurais requerem do usuário a especificação de qual dado é necessá-


rio sem especificar como obtê-lo.
DMLs não procedurais são usualmente mais fáceis de aprender e usar.
Exemplo de SQL:
ANOTAÇÕES

www.grancursosonline.com.br 5
INFORMÁTICA
Tipos de Usuários, Linguagens e Arquitetura
Viu algum erro neste material? Contate-nos em: [email protected]

MÓDULOS E COMPONENTES DO SGBD

O esquema abaixo mostra os módulos e componentes de um SGBD:

Nesse sentido:
• Gerenciador de dados armazenados: controla o acesso aos dados armazena-
dos no disco;
• Compilador (Processador) DDL: compila as definições do esquema, armazenando-
-as no catálogo do SGBD;
25m
• Processador do BD em tempo de execução (run-time): recebe as operações de
recuperação ou atualização e executa tais operações sobre o banco de dados;
ANOTAÇÕES

www.grancursosonline.com.br 6
INFORMÁTICA
Tipos de Usuários, Linguagens e Arquitetura
Viu algum erro neste material? Contate-nos em: [email protected]

• Compilador de consultas: compila as consultas de alto nível que são fornecidas inte-
rativamente, e gera chamadas ao run-time;
• Pré-compilador: extrai comandos DML de um programa de aplicação escritos em
uma linguagem de programação hospedeira e envia ao compilador DML;
• Compilador da DML: recebe e compila os comandos DML extraídos pelo pré-compi-
lador, e gera o código objeto para acesso ao banco de dados.

DIRETO DO CONCURSO
1. (ESPP/MPE-PR/TÉCNICO CIENTÍFICO – TECNOLOGIA DA INFORMAÇÃO – BANCO
DE DADOS/2010) Uma característica fundamental da abordagem de banco de dados
é que seu sistema contém não apenas o próprio banco de dados, mas também uma
definição ou descrição completa de sua estrutura e restrições. Essa definição é arma-
zenada no catálogo do sistema gerenciador de banco de dados e apresenta diversas in-
formações tais como: a estrutura de cada arquivo, o tipo e o formato de armazenamento
de cada item de dados e diversas restrições sobre os dados. A informação armazenada
no catálogo é chamada ________________, e descreve a estrutura do banco de dados.
Assinale a alternativa que completa corretamente a lacuna.
a. cursor
b. construtor
c. instância
d. metadado
e. heap

COMENTÁRIO
Trata-se do chamado metadado, que é o dado sobre o dado.

2. (2016/CESPE/CEBRASPE/FUB/TÉCNICO DE TECNOLOGIA DA INFORMAÇÃO)


Acerca dos conceitos de bancos de dados, julgue o item seguinte.
Em um projeto de banco de dados, a modelagem conceitual define quais dados vão
aparecer no banco de dados, mas sem considerar a sua implementação.
ANOTAÇÕES

www.grancursosonline.com.br 7
INFORMÁTICA
Tipos de Usuários, Linguagens e Arquitetura
Viu algum erro neste material? Contate-nos em: [email protected]

COMENTÁRIO
A modelagem conceitual (de alto nível) não considera a implementação do banco de dados.

REFERÊNCIAS

DATE, Christopher J. Introdução a sistemas de bancos de dados. Elsevier Brasil, 2004.


Elmasri, R., & NAVATHE, S. B. (2011). Sistemas de banco de dados. Fundamentals of
database systems.
30m

GABARITO
1. d
2. C

�Este material foi elaborado pela equipe pedagógica do Gran Cursos Online, de acordo com a aula
preparada e ministrada pelo professor Washington Henrique Carvalho Almeida.
A presente degravação tem como objetivo auxiliar no acompanhamento e na revisão do conteúdo
ministrado na videoaula. Não recomendamos a substituição do estudo em vídeo pela leitura exclu-
siva deste material.
ANOTAÇÕES

www.grancursosonline.com.br 8
INFORMÁTICA
Projeto de Banco de Dados
Viu algum erro neste material? Contate-nos em: [email protected]

PROJETO DE BANCO DE DADOS

BANCOS DE DADOS

Características de Tecnologia de BDs

Natureza “auto descritiva”: O SGBD armazena uma definição completa das restrições
e estruturas do banco de dados (catálogo). As informações do catálogo são chamadas de
metadados.
Independência entre programas e dados: Permite mudanças na estrutura de armaze-
namento e nas operações sobre os dados sem ter que mudar os programas que acessam os
dados – independência de dados.

Obs.: essa independência implica uma série de vantagens para o banco de dados. É pos-
sível, por exemplo, acrescentar tabelas ou aumentar campos em uma tabela dentro
de um SGBD e o software continua funcionando.

Representação Conceitual

Abstração de dados: Um modelo de dados usado para esconder detalhes de armaze-


namento apresentando ao usuário uma representação conceitual dos dados.
Modelo de dados: É um tipo de abstração de dados usado para prover essa represen-
tação conceitual.

Múltiplas Visões

Cada usuário pode acessar diferentes visões do banco de dados, as quais descrevem
somente os dados de interesse do usuário.

Controle de Redundância:

No SGBD, cada item lógico do dado é armazenado num único lugar.


Pode haver redundância controlada para ganhos de performance.
5m
ANOTAÇÕES

www.grancursosonline.com.br 1
INFORMÁTICA
Projeto de Banco de Dados
Viu algum erro neste material? Contate-nos em: [email protected]

Controle de Concorrência:

O SGBD deve incluir um software de controle de concorrência para garantir consistência


das informações contidas no BD quando do acesso concorrente dos usuários.

Segurança:

Restrição de acesso não autorizado dos dados. O SGBD provê mecanismos de autenti-
cação de usuários.

Backup e Recovery:

Possibilidade de cópia de segurança e recuperação de falhas de HW e SW.

Múltiplas interfaces para diferentes tipos de usuários:

Linha de comando, GUI e dentre outros.

Manutenção de Restrições de Integridade no BD:

Capacidade de definir e impor restrições.

ARQUITETURA DE 3 NÍVEIS
ANSI / SPARC:


ANOTAÇÕES

www.grancursosonline.com.br 2
INFORMÁTICA
Projeto de Banco de Dados
Viu algum erro neste material? Contate-nos em: [email protected]

10m

Obs.: na prática, a linguagem SQL nos SGBDs implementa esses esquemas e visões.

Nível Externo

Inclui esquemas externos ou visões de usuário.


Cada esquema externo descreve a parte do banco de dados na qual um determinado
grupo de usuários está interessado.
ANOTAÇÕES

www.grancursosonline.com.br 3
INFORMÁTICA
Projeto de Banco de Dados
Viu algum erro neste material? Contate-nos em: [email protected]

Nível Conceitual

Possui um esquema conceitual, que descreve a estrutura de todo o banco de dados


para uma comunidade de usuários.
O esquema conceitual esconde detalhes da estrutura de armazenamento físico e se con-
centra na descrição de:
• Entidades;
• Tipos de dados;
• Relacionamentos;
• Operações de usuários;
• Restrições.
ANOTAÇÕES

www.grancursosonline.com.br 4
INFORMÁTICA
Projeto de Banco de Dados
Viu algum erro neste material? Contate-nos em: [email protected]

Obs.: para fins de prova, é importante entender que esse esquema conceitual serve para
comunicação com um usuário de mais alto nível.

Nível Interno

Possui um esquema interno, que descreve a estrutura de armazenamento físico do


banco de dados.
Utiliza um modelo de dados físico para definir os detalhes completos sobre o armaze-
namento dos dados e os trajetos de acesso ao banco de dados.
ANOTAÇÕES

www.grancursosonline.com.br 5
INFORMÁTICA
Projeto de Banco de Dados
Viu algum erro neste material? Contate-nos em: [email protected]

INDEPENDÊNCIA DE DADOS

É entendido como a capacidade de modificar a definição de um esquema em um nível


de sistema de banco de dados sem ter que alterar o esquema do nível seguinte que está
mais elevado.
Ou seja, o usuário pode alterar o esquema conceitual sem alterar o físico e vice-versa,
pois essas alterações não trazem impactos diretos.

Independência Lógica de dados:

Mudança no esquema conceitual não afeta os programas de aplicação ou o esquema


externo. Implica em alteração da estrutura do banco de dados.
ANOTAÇÕES

www.grancursosonline.com.br 6
INFORMÁTICA
Projeto de Banco de Dados
Viu algum erro neste material? Contate-nos em: [email protected]

Independência Física de dados:

A modificação do esquema físico não modifica o esquema conceitual e, consequente-


mente, o esquema externo.
Por exemplo: mudança na localização dos DataFiles ou a criação de um índice novo.
15m

PROJETO DE BANCO DE DADOS

É preciso ter cuidado para não confundir o projeto do banco de dados com a arquitetura
de SGBD ANSI / SPARC. Vale lembrar que cada etapa do projeto de banco de dados (projeto
conceitual, projeto lógico e projeto físico) gera um produto.
O projeto conceitual envolve o chamado Modelo Entidade-Relacionamento (MER),
que será estudado posteriormente, que gera o chamado Diagrama Entidade-Relaciona-
mento (DER).
O projeto lógico envolve o modelo relacional, que já se preocupa em trazer relações e
atributos.
ANOTAÇÕES

www.grancursosonline.com.br 7
INFORMÁTICA
Projeto de Banco de Dados
Viu algum erro neste material? Contate-nos em: [email protected]

Já o projeto físico são as tabelas.


Assim:

Análise de requisitos:

Coleta e Análise de Requisitos: os projetistas entrevistam os usuários para compreender


e documentar seus requisitos de dados.

Projeto conceitual:

Esquema conceitual é uma descrição concisa dos requisitos de dados feitos pelos usu-
ários e inclui descrições de:
• Restrições;
• Tipos de entidades;
• Relacionamentos.

O esquema conceitual independe de um SGBD específico.


Por exemplo: MER (Modelo Entidade-Relacionamento).

Projeto lógico:

Esquema lógico é entendido como o mapeamento do modelo conceitual para o modelo


do SGBD (Relacional, OO, Relacional-Objeto, e dentre outros...).
É independente de um SGBD específico.
É dependente do Modelo de Dados (Paradigma) do SGBD.
Pode ser ajustado conforme as características do modelo implementado por um SGBD
específico.

Projeto físico:

Esquema físico define as estruturas de armazenamento, a organização de registros físi-


cos, a criação de índices, o espaço alocado etc.
Dependente de SGBD.
20m
ANOTAÇÕES

www.grancursosonline.com.br 8
INFORMÁTICA
Projeto de Banco de Dados
Viu algum erro neste material? Contate-nos em: [email protected]

DIRETO DO CONCURSO
1. (2018/CESPE/FUB/TÉCNICO DE TECNOLOGIA DA INFORMAÇÃO) Julgue o item
subsecutivo, a respeito de linguagem de definição e manipulação de dados.
Um esquema de banco de dados geralmente agrupa e apresenta as diferentes tabelas,
seus campos e o relacionamento entre eles e outras tabelas.

COMENTÁRIO
Um esquema de banco de dados indica como as entidades que compõem o banco de
dados se relacionam entre si, incluindo tabelas, exibições, procedimentos armazenados e
muito mais.

2. (2018/IF-MT/INFORMÁTICA) Considere as seguintes afirmações relacionadas a ban-


co de dados:

I – Um sistema de banco de dados é uma coleção de dados inter-relacionados e um


conjunto de programas que permitem aos usuários acessar e modificar esses dados.
II – Para cada abstração criada no nível de visão, os dados são replicados no nível físico.
III – O nível físico é o nível de abstração mais baixo e descreve como os dados são real-
mente armazenados.
IV – O nível de visão é o nível de abstração mais alto e descreve apenas parte do
banco de dados.

Está correto o que se afirma em:


a. I e II, apenas.
b. I, III e IV, apenas.
c. II e IV, apenas
d. II, III e IV, apenas.
e. I, II, III e IV.

COMENTÁRIO
Apenas o item II traz uma informação incorreta.
ANOTAÇÕES

www.grancursosonline.com.br 9
INFORMÁTICA
Projeto de Banco de Dados
Viu algum erro neste material? Contate-nos em: [email protected]

Vale lembrar:
• Nível físico (nível mais baixo): Define como os dados são armazenados. É muito com-
plexo e é usado por desenvolvedores.
• Nível conceitual (nível médio ou próximo mais alto): Define dados em termos de um
modelo de dados. Ele informa quais dados são armazenados e descritos em pequenos
números. Este nível é normalmente usado pelo DBA (Database Administrator – em portu-
guês, administrador de banco de dados).
• Nível externo ou de visão: Define um número de visões simplificadas de domínio espe-
cífico. Descreve apenas parte de bancos de dados. Este nível é usado pelos usuários.

GABARITO
1. C
2. b

�Este material foi elaborado pela equipe pedagógica do Gran Cursos Online, de acordo com a aula
preparada e ministrada pelo professor Washington Henrique Carvalho Almeida.
A presente degravação tem como objetivo auxiliar no acompanhamento e na revisão do conteúdo
ministrado na videoaula. Não recomendamos a substituição do estudo em vídeo pela leitura exclu-
siva deste material.
ANOTAÇÕES

www.grancursosonline.com.br 10
INFORMÁTICA
Evolução dos BDS e Banco de Dados
Viu algum erro neste material? Contate-nos em: [email protected]

EVOLUÇÃO DOS BDS E BANCO DE DADOS

EVOLUÇÃO DOS BANCOS DE DADOS (BD) E DO MODELO ENTIDADE–


RELACIONAMENTO (MER)

Evolução dos BDs

A imagem a seguir esquematiza o modo de evolução dos BDs:

Obs.: há, ainda, o chamado NOSQL, que são bancos de dados não relacionais.

Modelo Hierárquico

Os dados são estruturados hierarquicamente, em forma de árvore.


É definido como uma coleção de registros conectados por meio de ligações, onde cada
registro é uma coleção de campos e cada campo possui um único valor.
ANOTAÇÕES

www.grancursosonline.com.br 1
INFORMÁTICA
Evolução dos BDS e Banco de Dados
Viu algum erro neste material? Contate-nos em: [email protected]

Exemplo:

Obs.: hoje em dia, os bancos de dados hierárquicos dentro da Administração Pública ainda
utilizam o modelo hierárquico, como é o caso de algumas estatais.

Modelo em Rede

Surgiu como uma extensão ao modelo hierárquico, eliminando o conceito de hierarquia e


permitindo que um mesmo registro estivesse envolvido em várias associações.
É usado em sistemas de grande porte.
Exemplo:

Modelo Relacional

Surgiu como uma necessidade de aumentar a Independência de Dados.


ANOTAÇÕES

www.grancursosonline.com.br 2
INFORMÁTICA
Evolução dos BDS e Banco de Dados
Viu algum erro neste material? Contate-nos em: [email protected]

Modelo formal fundamento nos conceitos de uma relação (teoria de conjuntos). O


modelo relacional representa o banco de dados como uma coleção de relações.
É o modelo mais utilizado atualmente, por ser o mais flexível e adequado ao solucionar os
vários problemas que se colocam no nível da concepção e implementação da base de dados.
Exemplo:

Obs.: vale lembrar que o modelo relacional é um dos mais utilizados atualmente. Além dis-
so, a maioria dos SGBDs são relacionais. No caso do SQL, os bancos de dados não
utilizam o modelo relacional.

Modelo Orientado a Objetos (OO)

Surgiu em decorrência das linguagens de programação orientadas a objetos, e em função


dos limites de armazenamento e representação semântica impostas no modelo relacional
(Objetos Complexos).
No modelo OO toda entidade do mundo real é representada por um objeto. Um objeto
está associado a um estado e um comportamento.
Objeto: Estrutura (propriedades) + Operações (métodos).
Exemplo:
ANOTAÇÕES

www.grancursosonline.com.br 3
INFORMÁTICA
Evolução dos BDS e Banco de Dados
Viu algum erro neste material? Contate-nos em: [email protected]

10m

Obs.: inicialmente, imaginou-se que o modelo OO substituiria o relacional, por ser mais
atual. Todavia, isso acabou não acontecendo, pois o modelo relacional permaneceu
forte e é utilizado até os tempos atuais. Isso porque o modelo relacional tem carac-
terísticas que são muito interessantes até hoje, como a garantia da persistência do
dado, dentre outras.

Modelo de Dados:

• Um modelo de dados é um conjunto de conceitos usados para descrever a estru-


tura de um BD;
• BD possibilitam a abstração dos dados, ocultando detalhes de armazenamento des-
necessários para a maioria dos usuários;
• É a descrição formal da estrutura de um Banco de Dados;
• Estrutura envolve tipos de dados, relacionamentos e restrições que devem supor-
tar os dados.

PROJETO DE BD

Projeto Conceitual

Esquema conceitual para a base de dados com base nos requisitos de dados.
ANOTAÇÕES

www.grancursosonline.com.br 4
INFORMÁTICA
Evolução dos BDS e Banco de Dados
Viu algum erro neste material? Contate-nos em: [email protected]

Tem como objetivos:

• Estruturada base de dados;


• Restrições;
• Semântica;
• Relacionamentos.

Descrição clara, não ambígua e padronizada.


Modelo Conceitual independente do SGBD (MER).

www.grancursosonline.com.br 5
INFORMÁTICA
Evolução dos BDS e Banco de Dados
Viu algum erro neste material? Contate-nos em: [email protected]

Modelo Conceitual (MER)


15m

No esquema acima, cada retângulo representa uma entidade. Já os círculos são os dados.
Os círculos mais escuros são os campos que identificam a identidade. A consulta é fruto
dessa relação entre médico e paciente. O exame, por sua vez, pode ser fruto da consulta.
Assim, a consulta deve ter um médico e um paciente. Todavia, o médico e o paciente
podem estar em várias consultas. Das consultas podem ser pedidos vários exames, contudo,
o exame deve estar pelo menos em uma consulta.

Modelagem Entidade-Relacionamento (MER)

Definição: é um modelo conceitual de alto-nível, ou seja, é projetado para ser compreen-


sível aos usuários comuns.
Técnica utilizada para criar modelos conceituais de banco de dados.
Teve sua criação por Peter Chen, publicado em um artigo de 1976 “The EntityRela-
tionship Mode”.

www.grancursosonline.com.br 6
INFORMÁTICA
Evolução dos BDS e Banco de Dados
Viu algum erro neste material? Contate-nos em: [email protected]

20m

 Obs.: essa notação de James Martin também é chamada de “pé de galinha”, isso por conta
da forma como é representada a cardinalidade.

Modelagem Entidade-Relacionamento (MER)

O Modelo E-R (Entidade-Relacionamento) é representado de forma gráfica por um Dia-


grama Entidade Relacionamento (DER).
Representa um problema como um conjunto de entidades e relacionamentos entre estas
entidades.
ANOTAÇÕES

www.grancursosonline.com.br 7
INFORMÁTICA
Evolução dos BDS e Banco de Dados
Viu algum erro neste material? Contate-nos em: [email protected]

Diagrama Entidade-Relacionamento (DER)

Entidade

É uma “coisa” do mundo real com existência independente.


Pode ser um objeto com uma existência Física ou Conceitual. Exemplo: Empresa, Con-
sulta, Carro, Casa, Pessoa, Serviço.
É também representada através de um retângulo, contendo o nome da entidade.
Descrita por propriedades particulares – Atributos.
Exemplos:

DIRETO DO CONCURSO
1. (VUNESP/CÂMARA DE PIRACICABA – SP/ADMINISTRADOR DE REDE/2019) Sobre o
modelo hierárquico de bancos de dados, é correto afirmar que:
ANOTAÇÕES

www.grancursosonline.com.br 8
INFORMÁTICA
Evolução dos BDS e Banco de Dados
Viu algum erro neste material? Contate-nos em: [email protected]

a. um registro não pode ser pai de mais de um registro filho.


b. um registro pai pode ter relacionamento com, no máximo, 3 registros filhos.
c. um registro do tipo raiz só pode ter relacionamento com um único registro filho.
d. um registro do tipo raiz não participa como registro filho em qualquer relacionamento.
e. o campo de um registro filho admite apenas tipos de dados inteiros.
25m

COMENTÁRIO
Vale lembrar que o registro raiz é a origem, logo, ele não participa como registro filho em
qualquer relacionamento:

2. (IBFC/EMDEC/ANALISTA DE TECNOLOGIA DA INFORMAÇÃO JR/2019) Os Sistemas


Gerenciadores de Banco de Dados: Oracle, PostgreSQL, MySQL, Firebird e SQLServer
são todos considerados, tecnicamente, como sendo um modelo de dados _____.
Assinale a alternativa que preencha corretamente a lacuna.
a. Hierárquico.
b. em Rede.
c. Tabular.
d. Relacional.

COMENTÁRIO
Todos esses modelos de dados são relacionais.

3. (CESPE / CEBRASPE/MPC-PA/ANALISTA MINISTERIAL – TECNOLOGIA DA INFORMA-


ÇÃO/2019) Assinale a opção que apresenta o modelo de dados caracterizado por or-
ganizar os dados em uma estrutura do tipo árvore, na qual cada registro tem um único
“pai” e é classificado em uma ordem específica.
a. híbrido.
b. de rede.
c. relacional.
d. hierárquico.
e. orientado a objetos.

www.grancursosonline.com.br 9
INFORMÁTICA
Evolução dos BDS e Banco de Dados
Viu algum erro neste material? Contate-nos em: [email protected]

COMENTÁRIO
Trata-se do modelo hierárquico.

Referências:

DATE, Christopher J. Introdução a sistemas de bancos de dados. Elsevier Brasil, 2004.


Elmarsi, R., & NAVATHE, S. B. (2011). Sistemas de banco de dados. Fundamentals of
database systems.
SILBERSCHATZ, Abraham; SUNDARSHAN, S.; KORTH, Henry F. Sistema de banco de
dados. Elsevier Brasil, 2016.
30m

GABARITO
1. d
2. d
3. d

�Este material foi elaborado pela equipe pedagógica do Gran Cursos Online, de acordo com a aula
preparada e ministrada pelo professor Washington Henrique Carvalho Almeida.
A presente degravação tem como objetivo auxiliar no acompanhamento e na revisão do conteúdo
ministrado na videoaula. Não recomendamos a substituição do estudo em vídeo pela leitura exclu-
siva deste material.
ANOTAÇÕES

www.grancursosonline.com.br 10
BANCO DE DADOS
MER
Viu algum erro neste material? Contate-nos em: [email protected]

MER

• Instâncias e Esquemas

Quando descemos para o nível físico do banco, haverá um esquema que representa
as entidades e os relacionamentos. Esquema nada mais é que uma descrição do banco de
dados e de sua estrutura.

– Instância:
- É a coleção de dados armazenados no BD em um determinado momento;
- Chamado de extensão do BD;
- Sofre alterações constantemente;
– Esquema:
- É uma descrição do BD, incluindo as entidades e os relacionamentos entre estas;
- Também chamado de intenção do BD;
- Não sofre alterações com frequência.

• Atributo

Outro conceito muito importante é o de entidade: A representação de algo do mundo real,


possuindo atributos.

– É uma propriedade que descreve uma característica particular de uma entidade;


– Caracteriza uma Entidade ou um relacionamento;
Exemplos:
- Uma entidade Aluno possui os atributos CPF, Nome, Matrícula, Telefone, Ende-
reço, Sexo e Data de Nascimento;
- Uma entidade Automóvel possui os atributos Placa, Chassi, Cor, Modelo,
Marca e Ano;
- O relacionamento Consulta, entre as entidades Médico e Paciente, possui o
atributo Data;
ANOTAÇÕES

www.grancursosonline.com.br 1
BANCO DE DADOS
MER
Viu algum erro neste material? Contate-nos em: [email protected]

• Atributos Simples (Atômicos) ou Compostos


– Atributo Simples – São Indivisíveis. Não podem ser decompostos em atributos mais
básicos. São considerados atributos atômicos.
Exemplos: Sexo, Peso, Cor.
– Atributo Compostos – São Divisíveis. Podem ser decompostos em atributos
mais básicos.
Exemplos: O atributo Endereço pode ser dividido em logradouro, bairro, cep, com-
plemento. O atributo Nome pode ser dividido em primeiro_nome e sobrenome.
• Atributos Monovaloradas ou Multivalorados
– Atributo Monovalorado – Possui um único valor para uma instância da entidade.
Exemplo: Altura, Idade, Sexo.
5m
– Atributo Multivalorados – Possui múltiplos valores para uma instância da entidade.
Exemplo: Telefone de contato, Localização do departamento.
• Atributos Armazenados ou Derivados
– Atributo Armazenado – É armazenado no Banco de Dados.
– Atributo Derivado – Pode ser obtido a partir de outros atributos ou de entidades
relacionadas.
Exemplo: O atributo idade pode ser calculado a partir da Data de Nascimento.
O atributo total de alunos pode ser calculado a partir da entidade turma.
• Atributos Complexos e Valores Nulos
– Atributo Complexo – O atributo pode ser composto e multivalorado ao mesmo tempo.
Exemplo: Endereço é composto. Além disso, uma pessoa pode possuir mais de
um endereço.
– Valores Nulos – Uma entidade pode não possuir valor para determinado atributo, por
não ser aplicável. Nesta situação, é usado o valor nulo. O valor nulo pode ser utili-
zado quando não se sabe o valor de um atributo.
Exemplo: Número do Certificado de Reservista do servidor.

 Obs.: nulo é diferente de Branco. Branco ainda ocupa um caractere no banco de dados,
enquanto o Nulo não existe.
ANOTAÇÕES

www.grancursosonline.com.br 2
BANCO DE DADOS
MER
Viu algum erro neste material? Contate-nos em: [email protected]

DIRETO DO CONCURSO
20. (Ano: 2019 Banca: UFCG Órgão: UFCG Prova: UFCG - 2019 - UFCG - Analista de
Tecnologia da Informação - Desenvolvimento de Sistemas) Um modelo básico de enti-
dade-relacionamento é composto por tipos de entidades e especifica relacionamentos
existentes entre entidades. Com base nesse tema, assinale a alternativa correta.
a. Esse modelo foi desenvolvido no começo dos anos 1990.
b. Somente entidades podem possuir atributos.
c. De acordo com Peter Chen, autor desse modelo, entidades são instâncias de tipos
de entidades.
d. Uma entidade só pode representar algo que existe fisicamente.
e. Na notação de Chen, relacionamentos são representados por retângulos.

COMENTÁRIO
Alternativa C. Quando se tem um tipo de entidade, tem-se também instâncias dela, que
são as entidades.
10m

• Domínio de Valores de um Atributo


– Domínio de valores – Cada atributo de um tipo de entidade está vinculado a um con-
junto de valores, ou domínio de valores, que especifica os valores àquele atributo
para cada instância de entidade.
Exemplo: Domínio do atributo endereço é uma cadeia de caracteres. O domínio do
atributo ano do veículo numa concessionária de seminovos será um n. inteiro com-
preendido entre 2000 e 2020.

• Atributo Chave

Chaves são importantes para todas as regras que são implementadas depois.

– Atributo Chave (Identificador) – É um atributo que identifica unicamente cada instân-


cia de uma entidade. Os valores do atributo chave são únicos (se houver repetição,
não será válido).
Exemplo: N. de Prontuário do Paciente, CPF, Chassi do Veículo.
ANOTAÇÕES

www.grancursosonline.com.br 3
BANCO DE DADOS
MER
Viu algum erro neste material? Contate-nos em: [email protected]

– Chave Composta – A chave pode ser formada por mais de um atributo. Neste caso, a
combinação dos valores dos atributos é que torna única cada instância da entidade.
Exemplo: Os atributos CPF_PACIENTE + CRM_MÉDICO + DATA_CONSULTA iden-
tificam unicamente instância da entidade Consulta.
• Superchave
– Superchave - É considerado qualquer conjunto de um ou mais atributos cujos valo-
res são distintos para cada instância de entidade.
15m
– Subconjunto de atributos da entidade que identifique unicamente cada instância;
– Combinação de valores não se repete para a superchave
Exemplo:
Aluno = {Nome, Idade, Curso, Matrícula, CPF}
SC01 (Aluno) = {Nome, Curso, Matrícula}
SC02 (Aluno) = {Idade, Nome, CPF}
– A chave é uma superchave da qual não se pode excluir nenhum atributo e ainda
preservar a propriedade de identificação única. Chave é uma superchave de cardi-
nalidade Mínima.
• Chave Candidata
– Chave Candidata - É considerado uma superchave com conjunto mínimo de atributos.
– Pode existir mais de uma chave para uma mesma entidade. Cada uma delas é cha-
mada de Chave candidata:
Exemplo:
Aluno = {Nome, Idade, Curso, Matrícula, CPF}:
- CH1(Aluno) = {Matrícula}
- CH2(Aluno) = {CPF}
Exemplo:
Departamento = {CÓDIGO, NOME, SIGLA, LOCALIZACAO}
20m
- CH1 (Departamento) = {CÓDIGO}
- CH2 (Departamento) = {NOME}
• Chave Primária
– Chave Primária - É considerado a chave candidata que foi escolhida no projeto do
BD para identificar unicamente as instâncias de determinada entidade.
ANOTAÇÕES

www.grancursosonline.com.br 4
BANCO DE DADOS
MER
Viu algum erro neste material? Contate-nos em: [email protected]

 Obs.: veremos que algumas nomenclaturas aqui batem com outras notações e com o resto,
uma vez encaminhado o projeto do banco de dados até ele ser implementado.

– É a chave escolhida entre as chaves candidatas. É a mais utilizada para busca de


informações em relação à entidade.
Exemplo:
CH(Aluno) = {Matrícula} e CH (Departamento) = {CÓDIGO}. Neste caso, o atributo
CPF seria uma chave alternativa ou secundária.

• Representação dos Atributos

• Representação dos Atributos

• Exemplo de Representação dos Atributos

www.grancursosonline.com.br 5
BANCO DE DADOS
MER
Viu algum erro neste material? Contate-nos em: [email protected]

21. (IDECAN/UNIVASF/Analista de Tecnologia da Informação/2019) A modelagem concei-


tual é uma fase muito importante no projeto de uma aplicação que envolva banco de
dados. O Modelo de Entidade-Relacionamento (ER) é um modelo conceitual de dados
popular e de alto nível. Sobre esse modelo, é correto afirmar que:
25m
a. o objeto básico que representa o modelo ER é um atributo chave-primária.
b. uma entidade nunca deve representar um objeto com existência física (ex.: funcionário).
c. o grau de um tipo de relacionamento é o número dos tipos de atributos-chaves par-
ticipantes.
d. diagramas de classes UML não podem ser usados como uma notação alternativa ao
diagrama ER.
e. o modelo ER descreve os dados como entidades, relacionamentos e atributos.

COMENTÁRIO
Como vimos em nosso assunto sobre o Modelo Entidade-Relacionamento, é um diagrama
que descreve os dados de um banco de dados usando entidades, atributos e relaciona-
mentos. Analisando as demais opções:
a. os objetos que representam o MER são entidades, atributos e relacionamento.
b. uma entidade é a representação de um objeto do mundo real,
c. é explicado no próximo tópico sobre a cardinalidade dos relacionamentos, mas adian-
tando o grau do relacionamento é definido pelas chaves estrangeiras e não pelas chaves
primárias.
d. como comentei, é usado sim UML para diagramar dentro do modelo conceitual.

GABARITO
20. c
21. e

�Este material foi elaborado pela equipe pedagógica do Gran Cursos Online, de acordo com a aula
preparada e ministrada pelo professor Washington Henrique Carvalho Almeida.
A presente degravação tem como objetivo auxiliar no acompanhamento e na revisão do conteúdo
ministrado na videoaula. Não recomendamos a substituição do estudo em vídeo pela leitura exclu-
siva deste material.
ANOTAÇÕES

www.grancursosonline.com.br 6
BANCO DE DADOS
MER Relacionamentos
Viu algum erro neste material? Contate-nos em: [email protected]

MER RELACIONAMENTOS

RELACIONAMENTOS

• Relacionamento é uma associação entre entidades que representa um fato do


mundo real;
• Quando um atributo de uma entidade A refere-se a um atributo da entidade B dizemos
que existe um relacionamento entre A e B;
• Exemplo: funcionário trabalha para Departamento. O tipo de relacionamento trabalha
para entre os tipos de entidades Funcionário e Departamento, que associa cada fun-
cionário com o departamento para o qual trabalha;

Veja o relacionamento abaixo: os itens que possuem associações e os que não possuem:

Grau dos Relacionamentos

• Binário (Grau 2), o mais comum;


• O Relacionamento envolve duas entidades;
• Exemplo: o relacionamento curso envolve duas entidades (Aluno e Disciplina).

www.grancursosonline.com.br 1
BANCO DE DADOS
MER Relacionamentos
Viu algum erro neste material? Contate-nos em: [email protected]

• Ternário (Grau 3);


• O Relacionamento envolve três entidades.

Quando se trata do modelo relacional, lembre-se de que a álgebra relacional vem da teoria
dos conjuntos. Como pode observar acima, são justamente representações de conjuntos.

Relacionamento Recursivo ou Alto Relacionamento

• O Relacionamento associa instâncias da mesma entidade. Relaciona uma entidade


com ela mesma;
ANOTAÇÕES

www.grancursosonline.com.br 2
BANCO DE DADOS
MER Relacionamentos
Viu algum erro neste material? Contate-nos em: [email protected]

• Surge o conceito de papel. O papel é definido como uma função que uma ocorrência
de uma entidade cumpre em uma ocorrência de um relacionamento.

Restrição de Cardinalidade
5m

O PULO DO GATO
Esse assunto é muito importante, pois é um dos mais cobrados em concursos.

• Determina o n. máximo de instâncias de relacionamento na qual a entidade pode


participar:
– M:N (muitos-pra-muitos) – uma entidade A está associada a várias (zero ou mais)
entidades de B, e uma entidade de B está associada a várias (zero ou mais) enti-
dades de A.
– 1:N (um-pra-muitos) – uma entidade A está associada a várias (zero ou mais) enti-
dades de B. No entanto, uma entidade de B está associada a, no máximo, uma
entidade de A.
– 1:1 (um-pra-um) – uma entidade A está associada a, no máximo, uma entidade de B,
e uma entidade de B está associada a, no máximo, uma entidade de A.

www.grancursosonline.com.br 3
BANCO DE DADOS
MER Relacionamentos
Viu algum erro neste material? Contate-nos em: [email protected]

Representação da Restrição de Cardinalidade

A leitura é feita da seguinte forma:


Funcionário gerencia um departamento. Departamento é gerenciado por um funcionário;
Funcionário trabalha para um departamento. Departamento tem N funcionários traba-
lhando nele;
Médico faz consulta em vários pacientes. Pacientes podem ser consultados por
vários médicos.
ANOTAÇÕES

www.grancursosonline.com.br 4
BANCO DE DADOS
MER Relacionamentos
Viu algum erro neste material? Contate-nos em: [email protected]

Essas diversas anotações existem porque são muitos os autores – a informática foi sur-
gindo de vários lugares até se consolidar.

Restrição de Cardinalidade Mínima e Máxima

• Envolve associar um par de números inteiros (min, max) a cada participação de um


tipo de entidade E em determinado relacionamento.

Representação da Restrição de Cardinalidade

• (Mínimo e Máximo)

A leitura é feita da seguinte forma:


Funcionário gerencia no mínimo 1 e no máximo 1 departamento. Departamento é geren-
ciado por no mínimo 1 e no máximo 1 funcionário.
10m
Funcionário trabalha para no mínimo 1 e no máximo 1 departamento. Departamento pode
ter no mínimo zero ou no máximo N funcionários;
Médico consulta no mínimo zero ou no máximo N pacientes. Pacientes são consultados
por no mínimo 1 e no máximo 2 médicos.
ANOTAÇÕES

www.grancursosonline.com.br 5
BANCO DE DADOS
MER Relacionamentos
Viu algum erro neste material? Contate-nos em: [email protected]

Entidade Fraca

• Definido como um tipo de entidade que não possui identificação própria;


• Está sempre associada a uma entidade forte por meio de um relacionamento
identificador;
• Dependência de existência + dependência de identificador;
• Chave primária = chave primária da entidade forte + chave parcial própria.

Funcionário possui zero ou N dependentes. Dependente é possuído por no mínimo 1 ou


no máximo 1 funcionário.

Atributo de Relacionamento

• É entendido como um valor determinado pela combinação das entidades participantes


em uma instância do relacionamento.

Neste caso, Consulta recebe o atributo Data.

Exemplo:
ANOTAÇÕES

www.grancursosonline.com.br 6
BANCO DE DADOS
MER Relacionamentos
Viu algum erro neste material? Contate-nos em: [email protected]

Anotação de James Martin, a famosa “anotação pé de galinha”:

Principais diferenças:
15m

• Relacionamentos são representados por linhas;


• Somente relacionamentos binários;
ANOTAÇÕES

www.grancursosonline.com.br 7
BANCO DE DADOS
MER Relacionamentos
Viu algum erro neste material? Contate-nos em: [email protected]

• A notação para cardinalidade é gráfica:


– O símbolo mais próximo do retângulo (entidade) representa a cardinalidade máxima, e
– O símbolo mais distante representa a cardinalidade mínima.

DIRETO DO CONCURSO
1. (2015/CESPE / CEBRASPE/MEC/ADMINISTRADOR DE BANCO DE DADOs) Consi-
derando a figura apresentada, que ilustra um modelo entidade-relacionamento, julgue
o item a seguir.

O atributo Data está representado corretamente nesse modelo, que habilita o uso de
atributo em relacionamentos.

COMENTÁRIO
É possível ter atributo de relacionamento nesse modelo.
20m

2. (2014/CESPE / CEBRASPE/ANTAQ/ANALISTA ADMINISTRATIVO - SISTEMAS E


NEGÓCIOS) Com relação à administração de dados, julgue o item que se segue. É
recomendável utilizar chaves primárias compostas como identificadores de relações
compostas, oriundas de um relacionamento M:N.

COMENTÁRIO
Na implementação de relacionamentos muitos para muitos, a regra é a criação de uma
terceira tabela com chave composta (Com a PK das duas tabelas do relacionamento).
ANOTAÇÕES

www.grancursosonline.com.br 8
BANCO DE DADOS
MER Relacionamentos
Viu algum erro neste material? Contate-nos em: [email protected]

3. (2015/EXATUS/BANPARÁ/TÉCNICO EM INFORMÁTICA) Em um relacionamento m:n


25m
(muitos para muitos):
a. É necessário criar uma chave da entidade do lado n, como chave estrangeira, na
tabela no lado m.
b. É necessário criar ambas as chaves, em todas as tabelas envolvidas, como chaves
estrangeiras.
c. É necessário criar chaves primárias adicionais, em cada uma das tabelas, para esta-
belecer o relacionamento entre as entidades.
d. É necessário criar uma nova tabela com as chaves das entidades envolvidas no rela-
cionamento.
e. É necessário acrescentar a chave da entidade do lado m, como chave estrangeira,
na tabela no lado n.

COMENTÁRIO
Quanto se tem m:n, cria-se uma nova tabela com as chaves envolvidas nas entidades.

GABARITO
1. c
2. c
3. d

�Este material foi elaborado pela equipe pedagógica do Gran Cursos Online, de acordo com a aula
preparada e ministrada pelo professor Washington Henrique Carvalho Almeida.
A presente degravação tem como objetivo auxiliar no acompanhamento e na revisão do conteúdo
ministrado na videoaula. Não recomendamos a substituição do estudo em vídeo pela leitura exclu-
siva deste material.
ANOTAÇÕES

www.grancursosonline.com.br 9
SISTEMA DE BANCO DE DADOS
MER Estendido
Viu algum erro neste material? Contate-nos em: [email protected]

MER ESTENDIDO

Quando o MER surgiu na década de 70, havia o paradigma estruturado. Em seguida,


surgiu a análise orientada a objeto, que tem toda a sistemática de associar a forma de codi-
ficação ao mundo real: conceito de classe, herança, polimorfismo, encapsulamento. Diante
disso, o MER foi estendido para absorver a modelagem orientada a objeto.

MER Estendido (ERE)


Inclui conceitos adicionais de modelagem semântica de dados;
É utilizado na modelagem de aplicações que exigem requisitos mais complexos de BD;
Exemplo:

Modelagem Semântica de Dados:


• Classe;
• Superclasse;
• Subclasse;
• Herança;
• Hierarquia;
• Agregação;
• Generalização; e
• Especialização.
Os modelos acima foram incorporados devido a necessidade de realizar a compatibiliza-
ção de paradigmas.
ANOTAÇÕES

1 www.grancursosonline.com.br
SISTEMA DE BANCO DE DADOS
MER Estendido
Viu algum erro neste material? Contate-nos em: [email protected]

Generalização / Especialização
Ao subir, generaliza-se. Exemplo: na classe animal há especialidades de animais. Nas
entidades específicas que surgem carregam essa especialidade. E o que é de caráter geral
está na classe geral.

Subindo, generaliza-se. Descendo, especifica-se.


ANOTAÇÕES

2 www.grancursosonline.com.br
SISTEMA DE BANCO DE DADOS
MER Estendido
Viu algum erro neste material? Contate-nos em: [email protected]

A entidade mais genérica seria o empregado (superclasse). O empregado pode se subdi-


vidir em entidades mais específicas, como médico, professor e engenheiro. Cada um possui
atributos específicos. Exemplo: apenas o médico possui CRM.
5m

Superclasse / Subclasse
Subclasse: decorre do agrupamento de entidades em subgrupos de um determinado tipo;
• Um relacionamento superclasse/subclasse é chamado de relacionamento É-UM (ISA),
devido ao modo como nos referimos ao conceito.
Exemplo: Um Engenheiro É-UM Empregado.
• Uma instância da subclasse também é uma instância da superclasse.
Exemplo: João é um Engenheiro de João é um Empregado

Herança
A subclasse herda os atributos da superclasse, bem como os relacionamentos em
que a superclasse participa.
Todo membro de uma subclasse também é membro da superclasse.
O membro da superclasse pode não ser membro das subclasses.
O membro da superclasse pode ser membro de várias subclasses.

Especialização
É o processo de definição de um conjunto de entidades de baixo nível (subclasses) a
partir de entidades de alto nível (superclasse);
As subclasses são formadas por meio das características que lhe são próprias e as
distinguem das demais subclasses.
Os atributos que são comuns a todas as subclasses são atributos da superclasse;
Subclasses podem participar de relacionamentos específicos.
O processo de especialização permite:
• Definir um conjunto de subclasses de um tipo de entidade;
• Estabelecer atributos específicos adicionais em cada subclasse;
• Estabelecer relacionamentos específicos entre as subclasses e outras entidades
do modelo.
ANOTAÇÕES

3 www.grancursosonline.com.br
SISTEMA DE BANCO DE DADOS
MER Estendido
Viu algum erro neste material? Contate-nos em: [email protected]

Generalização
É definido como o processo de reversão de abstração através do qual suprime-se as dife-
renças entre diversos tipos de entidades, identificando suas características comuns, genera-
lizando numa única superclasse.
10m

Exemplo: haja vista que Pessoa Física e Jurídica possuem coisas em comum, neste
caso seria possível implementar uma superclasse com essas coisas em comum. Logo, como
se nota abaixo, segundo o que se observou acima, Pessoa tem código, telefone, endereço
e veículo.


ANOTAÇÕES

4 www.grancursosonline.com.br
SISTEMA DE BANCO DE DADOS
MER Estendido
Viu algum erro neste material? Contate-nos em: [email protected]

Restrições em Generalização / Especialização


■Existem subclasses mutuamente exclusivas: um membro de uma superclasse deve ser
membro no máximo de uma única subclasse:

Existem subclasses que se sobrepõem: um membro de uma superclasse pode ser


membro de mais de uma subclasse:
ANOTAÇÕES

5 www.grancursosonline.com.br
SISTEMA DE BANCO DE DADOS
MER Estendido
Viu algum erro neste material? Contate-nos em: [email protected]

Restrições de Disjunção

Sobreposição

Restrição de Completude
Total: cada entidade de uma superclasse deve ser membro de alguma subclasse na
especialização.
ANOTAÇÕES

6 www.grancursosonline.com.br
SISTEMA DE BANCO DE DADOS
MER Estendido
Viu algum erro neste material? Contate-nos em: [email protected]


Restrição de Completude
Parcial: uma entidade de uma superclasse pode não pertencer a qualquer uma das
subclasses:
15m
ANOTAÇÕES

7 www.grancursosonline.com.br
SISTEMA DE BANCO DE DADOS
MER Estendido
Viu algum erro neste material? Contate-nos em: [email protected]

Agregação
Uma das limitações do modelo ER é não ser possível expressar relacionamentos entre
relacionamentos;
Agregação é entendido como uma abstração através da qual relacionamentos são trata-
dos como entidades de nível superior.

O médico consulta paciente e pode gerar zero ou muitos exames.

UML
Navatte propõe representar o MER (ERE) com a UML.
ANOTAÇÕES

8 www.grancursosonline.com.br
SISTEMA DE BANCO DE DADOS
MER Estendido
Viu algum erro neste material? Contate-nos em: [email protected]

Nunca se pode asseverar que isso são as classes do sistema, pois estas representam os
atributos implementados no código fonte. Diagrama de classe da UML é utilizado para repre-
sentar a Entidade Relacionamento Estendido.
20m

DIRETO DO CONCURSO
1. (CESPE/IPEA/ANALISTA DE SISTEMAS/SUPORTE DE BANCO DE DADOS/2008)
Com relação à modelagem de dados, julgue o seguinte item.
No modelo entidade-relacionamento estendido, a especialização é o processo de defi-
nir um conjunto de subclasses de um tipo entidade chamado superclasse da especiali-
zação. O processo de especialização permite estabelecer atributos específicos adicio-
nais para cada subclasse; uma entidade membro de uma subclasse herda atributos da
superclasse e relacionamentos nos quais a superclasse participa.
ANOTAÇÕES

9 www.grancursosonline.com.br
SISTEMA DE BANCO DE DADOS
MER Estendido
Viu algum erro neste material? Contate-nos em: [email protected]

2. (CESPE/TRE–PI/TÉCNICO JUDICIÁRIO/OPERAÇÃO DE COMPUTADORES/2016)


Acerca do modelo entidade-relacionamento estendido, assinale a opção correta.
a. Uma restrição de disjunção pode ser aplicada a uma especialização, na qual deve ser
especificado que as subclasses da especialização devem ser mutuamente exclusivas.
25m
b. A generalização é o resultado da separação de um tipo-entidade de nível mais alto —
superclasse — e forma vários tipos-entidades de nível mais baixo — subclasse.
c. Uma entidade, que é membro de uma subclasse, nem sempre herda todos os atribu-
tos da entidade como um membro da superclasse.
d. O modelo em questão incorpora conceitos de modelagem entidade-relacionamento,
herança, encapsulamento e polimorfismo.
e. A simbologia do referido modelo é a mesma do modelo entidade- relacionamento,
não havendo novas representações.
30m

REFERÊNCIAS
DATE, Christopher J. Introdução a sistemas de bancos de dados. Elsevier Brasil, 2004.
ELMARSI, R., & NAVATHE, S. B. (2011). Sistemas de banco de dados. Fundamentals
of database systems.
SILBERSCHATZ, Abraham; SUNDARSHAN, S.; KORTH, Henry F. Sistema de banco de
dados. Elsevier Brasil, 2016.

Referências Gráficas
Icons8.com.br
Design e Diagramação por:
Charleson Guedes

GABARITO
1. C
2. a

�Este material foi elaborado pela equipe pedagógica do Gran Cursos Online, de acordo com a aula
ANOTAÇÕES

preparada e ministrada pelo professor Washington Henrique Carvalho Almeida.


�A presente degravação tem como objetivo auxiliar no acompanhamento e na revisão do conteúdo
ministrado na videoaula. Não recomendamos a substituição do estudo em vídeo pela leitura exclu-
siva deste material.

10 www.grancursosonline.com.br
SISTEMA DE BANCO DE DADOS
Modelo Relacional
Viu algum erro neste material? Contate-nos em: [email protected]

MODELO RELACIONAL

• Introduzido por Codd em 1970 (pesquisa da IBM);


• O modelo relacional representa um BD como um conjunto de relações (entidades
ou relacionamentos que se tornam tabelas);
• Modelo formal fundamentado nos conceitos de uma relação matemática (teoria de
conjuntos);
Na terminologia do modelo relacional:
• Uma linha é chamada de uma tupla;
• Um cabeçalho de coluna é chamado de um atributo;
• Uma tabela é chamada de uma relação. Nas relações há as tuplas. O cabeçalho será
o atributo da relação. Já o dado que descreve os valores que um dado pode ter é cha-
mado de domínio.
• O tipo de dado que descreve os valores que um atributo pode ter é chamado de domínio.

Conceitos Básicos
Esquema de Relação: é uma expressão da forma R(A1,A2,...,An), onde:
• R: nome da relação.
• Ai: nome de um atributo, cujo domínio em R é denotado por dom(Ai).
• n: grau da relação.
Exemplos:
ANOTAÇÕES

1 www.grancursosonline.com.br
SISTEMA DE BANCO DE DADOS
Modelo Relacional
Viu algum erro neste material? Contate-nos em: [email protected]

Conceitos do Modelo Relacional

Modelo Relacional
5m
DEPARTAMENTO (COD_DEP, NOME_DEP, LOCALIZACAO)

Características da Tabela
• Coluna: Possui um nome distinto e representa um atributo;
• Atributo: Possui um domínio;
• Domínio: Possui valor atômico (indivisível);
• Valor Nulo (null): Utilizado quando um atributo não possui valor ou seu valor não
é conhecido. Nulo é diferente de caractere branco, que possui um espaço/dado a
ser contado.
• Linha: É distinta na tabela e representa uma tupla;
ANOTAÇÕES

2 www.grancursosonline.com.br
SISTEMA DE BANCO DE DADOS
Modelo Relacional
Viu algum erro neste material? Contate-nos em: [email protected]

Restrições sobre uma Relação


• Domínio;
• Chave Primária;
• Integridade:
• Restrições de Integridade da Entidade;
• Restrições de Integridade Referencial.

Restrição de Domínio
• Para cada tupla, o valor de cada atributo deve ser um valor atômico de domínio.
Exemplos:

• Restrição de Domínio
• Tipo de dado (formato)
Exemplos:
ANOTAÇÕES

3 www.grancursosonline.com.br
SISTEMA DE BANCO DE DADOS
Modelo Relacional
Viu algum erro neste material? Contate-nos em: [email protected]

Restrição de Chave Primária


Implica da possibilidade de identificar unicamente cada tupla da relação. Isso porque
tuplas repetidas geram inconsistência.
As tuplas da relação devem ser distintas.
Como garantir esta propriedade? Por meio de restrição de Unicidade – Definição
de Chaves.

Restrição de Integridade de Entidade


A chave primária (PK) não pode ser nula em nenhuma tupla de qualquer relação;
Se a chave for composta (mais de um atributo), nenhum deles pode ser nulo;

10m
Restrição de Integridade Referencial
• Mantém a consistência entre tuplas de duas relações;
• Declara que se uma tupla t1 em uma relação R1 faz referência a uma relação R2,
então t1 deve fazer referência a uma tupla existente em R2;
• É definida entre a chave estrangeira (FK) de uma relação esquema R1 e a chave pri-
mária (PK) de uma relação esquema R2;

Restrição de Integridade Referencial


FK de R1 é chave estrangeira de R1, que faz referência à chave primária (PK) de R2, se:
• Os atributos de FK têm os mesmos domínios que os atributos de PK
ANOTAÇÕES

4 www.grancursosonline.com.br
SISTEMA DE BANCO DE DADOS
Modelo Relacional
Viu algum erro neste material? Contate-nos em: [email protected]

• Um valor de FK em uma tupla t1 do estado corrente de R1(R1): ocorre como um valor


de PK para alguma tupla t2 no estado corrente R 2(R2) (t1 [FK]= t2 [PK]) ou tem o valor
null (t1 [FK]= null).

Exemplo: Imagine um servidor pode ser alocado em nenhum ou em um departa-


mento, e o departamento pode ter nenhum ou vários servidores.Em tabela, essa rela-
ção pode ser vista da seguinte maneira:

Violação de Restrições de uma Relação


15m
Restrições existem para que o Banco de Dados se torne inconsistente.
As operações de INSERÇÃO (insert), REMOÇÃO (delete) ou ATUALIZAÇÃO (update),
quando aplicadas em bancos de dados relacionais, não podem violar as restrições de
domínio, de chave e de integridade de entidade e referencial.
Exemplos de violação:
• Inserir tupla em SERVIDOR com Matricula=null viola restrição de integridade
de entidade;
• Inserir tupla em SERVIDOR com Matricula já existente no BD viola restrição de chave;
• Inserir tupla em SERVIDOR com Código de Departamento inexistente em departa-
mento viola integridade referencial;
• Excluir um DEPARTAMENTO que é referenciado por tuplas em SERVIDOR.
ANOTAÇÕES

5 www.grancursosonline.com.br
SISTEMA DE BANCO DE DADOS
Modelo Relacional
Viu algum erro neste material? Contate-nos em: [email protected]

DIRETO DO CONCURSO
1. (FCC/DPE-RS/ANALISTA/BANCO DE DADOS/2017) O modelo relacional em banco de
dados comporta o conceito de chaves primárias e de chaves candidatas, ambas incluin-
do a propriedade da unidade. Supondo K um conjunto de atributos da tabela T, K terá a
propriedade da unicidade se:
20m
a. O número de atributos que compõem K for igual a 1.
b. Comportar apenas 1 índice em seus atributos.
c. Houver apenas 1 atributo do tipo numérico em K.
d. Não houver duas tuplas de T com o mesmo valor para K.
e. Todos os atributos de K tiverem a mesma limitação em seus números de caracteres

COMENTÁRIO
O modelo relacional em banco de dados comporta o conceito de chaves primárias e de
chaves candidatas, ambas incluindo a propriedade da unidade. Supondo K um conjunto
de atributos da tabela T, K terá a propriedade da unicidade se não houver duas tuplas de T
com o mesmo valor para K, sob pena de quebrar a unicidade.

2. (IFB/IFB/PROFESSOR/INFORMÁTICA/DESENVOLVIMENTO DE SISTEMAS/2017)
Segundo Elmasri (2011), na terminologia formal do modelo relacional, uma linha, um
cabeçalho de coluna e a tabela, são chamados, respectivamente, de:
a. Registro, atributo, domínio
b. Tupla, atributo e relação
c. Registro, atributo e relação
d. Relação, domínio e registro
e. Relação, tupla e registro

3. (CESPE/TCE-PA/AUDITOR DE CONTROLE EXTERNO/ÁREA INFORMÁTICA/ANA-


LISTA DE SISTEMAS/2016) Julgue o item que se segue, relativos a modelagem de
dados. No modelo relacional de dados, uma tabela é um conjunto ordenado de campos.
ANOTAÇÕES

6 www.grancursosonline.com.br
SISTEMA DE BANCO DE DADOS
Modelo Relacional
Viu algum erro neste material? Contate-nos em: [email protected]

COMENTÁRIO
25m
Segundo Navathe (2011,p.41),”Uma relação é definida como um conjunto de tuplas. Mate-
maticamente, os elementos de um conjunto não possuem ordem entre eles; logo, as tuplas
em uma relação não possuem nenhuma ordem em particular.”

4. (CESPE/FUNPRESP-EXE/ESPECIALISTA/TECNOLOGIA DA INFORMAÇÃO/2016)
Acerca dos modelos de dados relacional e dimensional em engenharia de software,
julgue o item que se segue.
Em um modelo de dados relacional, a integridade referencial assegura que os valores
dos campos presentes na chave estrangeira apareçam na chave primária da mesma
tabela, a fim de garantir a integridade dos dados.

COMENTÁRIO
Chave estrangeira pode ser para a mesma tabela, que seriam os autorrelacionamentos.
Chave estrangeira não necessariamente é para a chave primária, pode ser para a chave
candidata também.
30m

5. (CESPE/TJ-AC/ANALISTA JUDICIÁRIO/ANÁLISE DE SISTEMAS/2012) Com relação


à modelagem relacional de dados, julgue os itens que se seguem.
A restrição de integridade referencial impõe que o valor da chave primária seja nulo
e numérico.

COMENTÁRIO
Os valores de chave primária nunca poderão ser nulos, não é aceito, justamente porque é
um código de identificação de um registro. A restrição de integridade referencial define que
os valores dos campos que aparecem numa chave estrangeira devem aparecer na chave
primária (candidata) da tabela referenciada.
ANOTAÇÕES

7 www.grancursosonline.com.br
SISTEMA DE BANCO DE DADOS
Modelo Relacional
Viu algum erro neste material? Contate-nos em: [email protected]

REFERÊNCIAS
DATE, Christopher J. Introdução a sistemas de bancos de dados. Elsevier Brasil, 2004.
ELMARSI, R., & NAVATHE, S. B. (2011). Sistemas de banco de dados. Fundamentals
of database systems.
SILBERSCHATZ, Abraham; SUNDARSHAN, S.; KORTH, Henry F. Sistema de banco de
dados. Elsevier Brasil, 2016.

Referências Gráficas
Icons8.com.br
Design e Diagramação por:
Charleson Guedes

GABARITO
1. d
2. b
3. E
4. E
5. E

�Este material foi elaborado pela equipe pedagógica do Gran Cursos Online, de acordo com a aula
preparada e ministrada pelo professor Washington Henrique Carvalho Almeida.
�A presente degravação tem como objetivo auxiliar no acompanhamento e na revisão do conteúdo
ministrado na videoaula. Não recomendamos a substituição do estudo em vídeo pela leitura exclu-
siva deste material.
ANOTAÇÕES

8 www.grancursosonline.com.br
SISTEMA DE BANCO DE DADOS
Mapeamento ER
Viu algum erro neste material? Contate-nos em: [email protected]

MAPEAMENTO ER

Projeto de BD – Etapas

Projeto de BD – Modelo Conceitual (MER)


ANOTAÇÕES

1 www.grancursosonline.com.br
SISTEMA DE BANCO DE DADOS
Mapeamento ER
Viu algum erro neste material? Contate-nos em: [email protected]

Projeto de BD – Modelo Lógico (Relacional)


No modelo relacional, a imagem acima e suas especificidades se tornará o que se
observa abaixo:

Obs.: o que está sublinhado é a chave.


Na modelagem relacional, a forma acima é o modo de representação. E do MEDICO,
PACIENTE, EXAME e CONSULTA sairão um SQL – Create Table.

Objetivos do Mapeamento ER – Relacional


O objetivo do Mapeamento ER (Relacional) é elaborar um modelo lógico que tenha per-
formance em relação às requisições de BD.
Outro objetivo é construir um modelo lógico de BD que simplifique o desenvolvimento e
a manutenção de sistemas.
O grande objetivo do Banco de Dados Relacional é armazenar informações recuperáveis.
Além disso, ele é excelente para evitar inconsistências e na persistência dos dados. Já no
âmbito da consulta, ele não é tão aconselhado.
5m
Regras Básicas:
ANOTAÇÕES

2 www.grancursosonline.com.br
SISTEMA DE BANCO DE DADOS
Mapeamento ER
Viu algum erro neste material? Contate-nos em: [email protected]

I – Evitar o uso de junções: Realizar as junções é uma operação cara para o banco de
dados, pois se cria uma matriz, comparando item a item nas relações, a fim de observar se
há ou não algum sentido.
II – Reduzir o número de chaves primárias (PKs);
III – Evitar os campos opcionais;

Mapeamento ER – Relacional
• Entidades Fortes;
• Algoritmos de Transformação
• Atributos Multivalorados;
• Entidades Fracas;
• Relacionamentos;
– Um-para-Um (1:1)
– Um-para-Muitos (1:N)
– Muitos-para-Muitos (M:N)
– N-ários
• Generalizações / Especializações;

Estratégias de Mapeamento
As estratégias utilizadas para o mapeamento do modelo ER para o modelo relacional são:

Tudo isso ocorre nos casos de entidades fortes, algoritmos de transformação, atributos
multivalorados, entidades fracas e relacionamentos.
ANOTAÇÕES

3 www.grancursosonline.com.br
SISTEMA DE BANCO DE DADOS
Mapeamento ER
Viu algum erro neste material? Contate-nos em: [email protected]

Mapeamento ER – Relacional
Entidade Forte: do mapeamento ER para mundo relacional, o modelo onde há a imagem
do cliente se torna a descrição CLIENTE (CPF, Nome, Sexo, DataNasc, Profissao).
10m

Entidade Fraca
Entidade Fraca é uma entidade que depende de uma entidade forte
ANOTAÇÕES

4 www.grancursosonline.com.br
SISTEMA DE BANCO DE DADOS
Mapeamento ER
Viu algum erro neste material? Contate-nos em: [email protected]

Acima, o empregado possui zero ou vários dependentes, que possui nome e parentes-
cos. Neste caso, haverá a relação Empregado, que possui CPF, Nome e Salário, além do
Dependente, que para ele haverá a chave de empregado. Note ainda que o CPF é chave do
empregado.
10m

Atributos Multivalorados

Observe abaixo que a entidade cliente tem sexo, data de nascimento, telefone, CPF
e nome. O telefone, por seu turno, é multivalorado. Neste caso, para transformar isso no
mundo relacional, pode-se criar uma tabela própria do telefone, tendo como chave o CFP, até
de uma tabela com o CPF, nome, sexo e data de nascimento.

No mundo relacional, não é salutar ter dado duplicado ou atributo multivalorado, pois isso
pode gerar inconsistência no momento da atualização dos dados.
ANOTAÇÕES

5 www.grancursosonline.com.br
SISTEMA DE BANCO DE DADOS
Mapeamento ER
Viu algum erro neste material? Contate-nos em: [email protected]

Autorrelacionamento

Mapeamento Relacionamentos 1:1


15m
No caso abaixo, o país possui uma constituição, de um para um. Há, então, a possibili-
dade de fusão das duas entidades, tendo o nome País e compor uma tabela com todos os
atributos.

No caso abaixo, note o homem casado com uma mulher. Há aqui duas opões de mape-
amento de 1:1.
ANOTAÇÕES

6 www.grancursosonline.com.br
SISTEMA DE BANCO DE DADOS
Mapeamento ER
Viu algum erro neste material? Contate-nos em: [email protected]

Acima, nota-se haver duas relações com código do homem e nome do homem, que
recebe o código da esposa. No caso da Mulher, ela recebe o código do homem e código
da mulher.
20m

Artur e Vinícios possuem códigos Null, pois não se relacionam com ninguém.
ANOTAÇÕES

7 www.grancursosonline.com.br
SISTEMA DE BANCO DE DADOS
Mapeamento ER
Viu algum erro neste material? Contate-nos em: [email protected]

Acima, Marta é casada com o marido de código 1, que é João. Já a Carla é casada
com marido de código 2, que é Antônio. E a Michele é casa com o marido do código 3,
que é Marcos.
Note outro exemplo abaixo: o empregado gerencia zero ou um departamento, e o depar-
tamento tem um empregado que o gerencia.
Empregado tem código e nome, já o departamento tem código, sigla e localização.
ANOTAÇÕES

8 www.grancursosonline.com.br
SISTEMA DE BANCO DE DADOS
Mapeamento ER
Viu algum erro neste material? Contate-nos em: [email protected]

O caso abaixo é incorreto em termos de construção, pois nem todos os empregados


serão gerentes, tendo muitas tuplas sem o código do departamento gerenciado.

Diante do exemplo acima, a melhor opção é jogar o código do gerente na tabela


departamento:
25m
ANOTAÇÕES

9 www.grancursosonline.com.br
SISTEMA DE BANCO DE DADOS
Mapeamento ER
Viu algum erro neste material? Contate-nos em: [email protected]

No departamento, é possível haver 1 gerente para 50 empregados. Destarte, ao jogar a


chave do departamento na tabela empregado, haverá 50 registros sem preenchimento, o que
não é a melhor opção. Logo, a melhor opção é jogar o código do gerente que será a chave do
empregado no departamento, pois todo departamento terá um empregado associado.
Gerar tuplas em tabelas com muitos campos não preenchidos gerará problemas no
momento da consulta, sendo uma operação cara, pois todos os registros da tabela departa-
mento cruzará com os registros da tabela empregado.
30m

REFERÊNCIAS
DATE, Christopher J. Introdução a sistemas de bancos de dados. Elsevier Brasil, 2004.
ELMARSI, R., & NAVATHE, S. B. (2011). Sistemas de banco de dados. Fundamentals
of database systems.
SILBERSCHATZ, Abraham; SUNDARSHAN, S.; KORTH, Henry F. Sistema de banco de
dados. Elsevier Brasil, 2016.

Referências Gráficas
Icons8.com.br
Design e Diagramação por:
Charleson Guedes

�Este material foi elaborado pela equipe pedagógica do Gran Cursos Online, de acordo com a aula
ANOTAÇÕES

preparada e ministrada pelo professor Washington Henrique Carvalho Almeida.


�A presente degravação tem como objetivo auxiliar no acompanhamento e na revisão do conteúdo
ministrado na videoaula. Não recomendamos a substituição do estudo em vídeo pela leitura exclu-
siva deste material.

10 www.grancursosonline.com.br
SISTEMA DE BANCO DE DADOS
Mapeamento ER II
Viu algum erro neste material? Contate-nos em: [email protected]

MAPEAMENTO ER II

Mapeamento Relacionamentos 1:N


No caso abaixo, o empregado trabalha em um departamento. Assim, empregado se torna
atributos, recebendo o código do empregado, o nome, a data de nascimento e código do
departamento.


ANOTAÇÕES

1 www.grancursosonline.com.br
SISTEMA DE BANCO DE DADOS
Mapeamento ER II
Viu algum erro neste material? Contate-nos em: [email protected]

Mapeamento Relacionamentos M:N


No caso abaixo, o empregado trabalha em zero ou vários projetos. O “trabalha” é um
relacionamento. Diante disso, empregado receberá o seu código e nome; já projeto receberá
o seu código, título e custo.
O participa, que substitui no MER, aqui, o trabalha, recebe o código da empresa, o código
do projeto, as horas e a função.

Abaixo, o caso apresenta que um médico consulta um ou vários pacientes, enquanto o


paciente pode ser consultado por pelo menos um médio por data. Logo, na mesma data não
haverá a consulta do mesmo médico com o mesmo paciente.
5m
ANOTAÇÕES

2 www.grancursosonline.com.br
SISTEMA DE BANCO DE DADOS
Mapeamento ER II
Viu algum erro neste material? Contate-nos em: [email protected]

Note que o médico 1, Mauro, consultou o paciente 50, que é a Juliana. Já o médico 2,
Daniel, atendeu o paciente 30, que é Antônio. E no dia 05/01, o médico 5, Vinícius, antedeu
o paciente 10, que é João.
ANOTAÇÕES

3 www.grancursosonline.com.br
SISTEMA DE BANCO DE DADOS
Mapeamento ER II
Viu algum erro neste material? Contate-nos em: [email protected]

Relacionamento ternário M:N

Na implementação, cada código tem suas relações e especificidades.


O material cimento foi fornecido pela empresa ALFA em quantidade 10 para a duplicação
da BR 101.

Mapeamento ERE para Relacional


10m
No exemplo abaixo, o empregado pode ser advogado, médico ou engenheiro.
ANOTAÇÕES

4 www.grancursosonline.com.br
SISTEMA DE BANCO DE DADOS
Mapeamento ER II
Viu algum erro neste material? Contate-nos em: [email protected]

DIRETO DO CONCURSO
1. (CESPE/MPE-PI/ANALISTA MINISTERIAL/TECNOLOGIA DA INFORMAÇÃO/2018)
Tendo em vista que, ao se desenvolver um sistema de vendas e compras para um
cliente, devem-se descrever os produtos, as entradas, as saídas, o controle de estoque
e o lucro das vendas, julgue o item subsequente, relativo à modelagem de dados para
a aplicação descrita
ANOTAÇÕES

5 www.grancursosonline.com.br
SISTEMA DE BANCO DE DADOS
Mapeamento ER II
Viu algum erro neste material? Contate-nos em: [email protected]

Situação hipotética: O responsável pela modelagem de dados para a aplicação em


apreço propôs o seguinte modelo lógico de banco de dados relacional:
TipoDeProduto (CodigoTipoProduto, DescriçãoTipoProduto)
Produto (CodigoProduto, DescriçãoProduto, PreçoProduto, CodigoTipoProduto)
CodigoTipoProduto referencia TipoDeProduto

Assertiva: Nesse modelo lógico, um TipoDeProduto se relaciona com várias entidades


do tipo Produto. Com essa notação, a visão do cliente se torna clara e direta sobre
como serão implementados e armazenados os dados.
15m

COMENTÁRIO
O produto tem um tipo de produto, cujo código se relaciona com várias entidades do tipo
produtos. Assim, em uma tabela, o produto teria o código, o seu tipo e suas chaves.

2. (CESPE/POLÍCIA FEDERAL/AGENTE DE POLÍCIA FEDERAL/2018)

Considerando o modelo entidade-relacionamento (ER) precedente, julgue o seguinte


item, relativo a banco de dados. Considerando-se apenas o diagrama apresentado,
infere-se que, na aplicação das regras para a transformação do modelo ER em um
modelo relacional, é necessário realizar a fusão das tabelas referentes às entidades
envolvidas no relacionamento.
ANOTAÇÕES

6 www.grancursosonline.com.br
SISTEMA DE BANCO DE DADOS
Mapeamento ER II
Viu algum erro neste material? Contate-nos em: [email protected]

COMENTÁRIO
Na notação relacional, seria: tipodeproduto(codigo, descrição). E produto(codigo,descr
icao,preco).
A fusão da tabela ocorre quando há relação 1:1
20m

3. (CESPE/POLÍCIA FEDERAL/AGENTE DE POLÍCIA FEDERAL/2018)

Considerando o modelo entidade-relacionamento (ER) precedente, julgue o seguinte


item, relativo a banco de dados.
Situação hipotética: Ao analisar o modelo ER em questão, Paulo verificou que há duas
chaves identificadas com o mesmo nome: código — em tipo de produto e em produto.
Paulo sabe que o conceito de chaves é básico para estabelecer relações entre linhas de
tabelas de um banco de dados relacional e que as chaves primárias devem ser únicas.
Assertiva: Nessa situação, Paulo deve invalidar o modelo ER em questão, pois ele está
semanticamente errado, já que não pode haver chaves primárias com nomes iguais,
ainda que em entidades distintas.

COMENTÁRIO
Não se invalida o Modelo ER porque há chaves no mesmo nome em entidades distintas.
ANOTAÇÕES

7 www.grancursosonline.com.br
SISTEMA DE BANCO DE DADOS
Mapeamento ER II
Viu algum erro neste material? Contate-nos em: [email protected]

4. (FCC/TRE-PR/TÉCNICO JUDICIÁRIO/PROGRAMADOR DE SISTEMAS/2017) Con-


sidere hipoteticamente que em um Tribunal cada Juiz conta com a ajuda de vários
Assistentes, de acordo com o volume de processos que precisa analisar e julgar. Cada
Assistente, por sua vez, auxilia vários Juízes, de acordo com a demanda de trabalho.
Se Juiz e Assistente forem entidades de um modelo de dados relacional, a cardinalida-
de entre elas será n:m. Na criação das tabelas a partir do modelo:
a. a chave primária da tabela Juiz será chave estrangeira na tabela Assistente e a chave
primária da tabela Assistente será chave estrangeira na tabela Juiz.
b. será necessário criar uma tabela de ligação entre Juiz e Assistente e o relaciona-
mento n:m dará lugar a dois relacionamentos 1:n.
c. será estabelecido um relacionamento bidirecional entre as tabelas Juiz e Assistente,
com cardinalidade 1:1.
d. para que a relação n:m seja mantida, as chaves primárias das tabelas Juiz e Assis-
tente deverão ser compostas pelo Id do Juiz e pelo Id do Assistente.
e. será necessário criar uma tabela de ligação entre Juiz e Assistente, gerando assim
dois relacionamentos 1:1.

COMENTÁRIO
25m
A estratégia para resolver o caso N:M será necessário criar uma tabela de ligação entre
Juiz e Assistente e o relacionamento n:m dará lugar a dois relacionamentos 1:n.

REFERÊNCIAS
DATE, Christopher J. Introdução a sistemas de bancos de dados. Elsevier Brasil, 2004.
ELMARSI, R., & NAVATHE, S. B. (2011). Sistemas de banco de dados. Fundamentals
of database systems.
SILBERSCHATZ, Abraham; SUNDARSHAN, S.; KORTH, Henry F. Sistema de banco de
dados. Elsevier Brasil, 2016.

Referências Gráficas
Icons8.com.br
Design e Diagramação por:
Charleson Guedes
ANOTAÇÕES

8 www.grancursosonline.com.br
SISTEMA DE BANCO DE DADOS
Mapeamento ER II
Viu algum erro neste material? Contate-nos em: [email protected]

GABARITO
1. C
2. E
3. E
4. b

�Este material foi elaborado pela equipe pedagógica do Gran Cursos Online, de acordo com a aula
preparada e ministrada pelo professor Washington Henrique Carvalho Almeida.
�A presente degravação tem como objetivo auxiliar no acompanhamento e na revisão do conteúdo
ministrado na videoaula. Não recomendamos a substituição do estudo em vídeo pela leitura exclu-
siva deste material.
ANOTAÇÕES

9 www.grancursosonline.com.br
BANCO DE DADOS
Normalização
Viu algum erro neste material? Contate-nos em: [email protected]

NORMALIZAÇÃO

Conjunto de técnicas aplicáveis a uma tabela, com o objetivo de corrigir erros de projeto,
que resultam, dentre outros problemas, em anomalias de atualização. Na normalização, pre-
ocupa-se com os dados em si.
No passado, utilizava-se bastante o processo cascata, passando do processo conceitual
até o físico. Na prática, como há sistemas que já estão em planilhas e que precisam ser trans-
formados em Banco de Dados, deve-se aplicar um processo de normalização, pois não pode
haver inconsistência de dados duplicados.
O processo de normalização consiste em analisar relação para satisfazer requisitos cada
vez mais rigorosos, com formas normais mais elevadas.
Decomposição de esquemas com o objetivo de evitar anomalias de atualização (inclu-
são, exclusão e modificação).

Anomalias de Atualização
Anomalias são problemas que decorrem da implementação de BD não normalizados,
com redundância de dados nas colunas das tabelas, e de dependências parciais e transitivas;
São classificadas em:
▪ Anomalias de inserção;
▪ Anomalia de exclusão;
▪ Anomalia de modificação.

Anomalia de Inclusão
Ao se incluir um registro, exige-se informações relativas à outra tabela;
Exemplo: Ao incluir um novo empregado, é preciso incluir todas as informações do depar-
tamento em que o empregado está alocado ou então incluir valores nulos.
ANOTAÇÕES

1 www.grancursosonline.com.br
BANCO DE DADOS
Normalização
Viu algum erro neste material? Contate-nos em: [email protected]

Anomalia de Exclusão
5m
Ao se excluir um registro, dados são relacionados à outra tabela também são excluídos.
Exemplo: ao se excluir a empregada Juliana, perde-se todas as informações do Depar-
tamento Jurídico.
ANOTAÇÕES

2 www.grancursosonline.com.br
BANCO DE DADOS
Normalização
Viu algum erro neste material? Contate-nos em: [email protected]

Anomalia de Modificação
Ao se alterar um dado em uma tabela, é preciso alterar as informações relacionadas em
diversos outros registros da mesma tabela. Exemplo: ao se alterar a sigla do departamento
do empregado com o CPF = 22, deve-se alterar também as informações do departamento do
empregado com CPF=55.

Normalização
Ao aplicar uma forma normal, reduz-se a anomalia. Na prática, nos bancos de dados de
mercado, consegue-se ir até a terceira forma normal, havendo uma boa normalização.
ANOTAÇÕES

3 www.grancursosonline.com.br
BANCO DE DADOS
Normalização
Viu algum erro neste material? Contate-nos em: [email protected]

Primeira Forma Normal (1FN)


Definição formal de uma relação.
A relação não pode conter atributos multivalorados, atributos compostos e suas
combinações.
Uma relação R está na 1FN se não possuir grupos de repetição.
Definição: Uma relação está em 1FN se e somente se todos os seus atributos contêm
apenas valores atômicos (simples, indivisíveis).
10m

Acima, a relação departamento tem código, nome sigla e localização. O departamento


financeiro tem localização de São Paulo e Rio de Janeiro, enquanto o departamento de TI
possui localização de Salvador e Belo Horizonte, o que não pode ocorrer, pois, ao aplicar a
forma normal, não pode haver atributos multivalorados.
Diante disso, note a relação 1FN correta.
ANOTAÇÕES

4 www.grancursosonline.com.br
BANCO DE DADOS
Normalização
Viu algum erro neste material? Contate-nos em: [email protected]

Dependência Funcional
É pré-requisito para a 2FN e 3FN.

Tipos:
• Dependência Funcional Total;
• Dependência Funcional Parcial;
• Dependência Funcional Transitiva.

Dependência Funcional Total


Em uma tabela relacional, uma coluna Y depende funcionalmente de uma coluna X
quando, em todas as tuplas da tabela, para cada valor na coluna X da tabela, ocorre o
mesmo valor na coluna Y.
20m
A dependência funcional está vinculada à semântica dos atributos do modelo de dados.
ANOTAÇÕES

5 www.grancursosonline.com.br
BANCO DE DADOS
Normalização
Viu algum erro neste material? Contate-nos em: [email protected]

Dependência Funcional
Abaixo, no nome depende de CFP. Já a DataNascimento depende de CPF, que não
depende de nome ou DataNascimento.

Abaixo, nome depende de CPF; NomeProj depende de CodProj. E o NomProj depende


do CPF e do CodProj.
ANOTAÇÕES

6 www.grancursosonline.com.br
BANCO DE DADOS
Normalização
Viu algum erro neste material? Contate-nos em: [email protected]

Dependência Funcional Parcial


Os atributos não chave de uma tabela dependem funcionalmente de parte da
chave primária.


ANOTAÇÕES

7 www.grancursosonline.com.br
BANCO DE DADOS
Normalização
Viu algum erro neste material? Contate-nos em: [email protected]

2ª Forma Normal (2FN)


Definição: uma relação está na 2FN se estiver na 1FN e se todo atributo não chave pos-
suir dependência funcional total em relação à chave primária (PK) da relação.
A tabela empregado não está na 2FN, em função das seguintes dependências funcio-
nais parciais:
• CodProjeto → NomeProj;
• CPF → NomeEmp.
Ao eliminar dependências, cria-se formas separadas.

20m
Referências
DATE, Christopher J. Introdução a sistemas de bancos de dados. Elsevier Brasil, 2004.
Elmarsi, R., & NAVATHE, S. B. (2011). Sistemas de banco de dados. Fundamentals of
database systems.
ANOTAÇÕES

8 www.grancursosonline.com.br
BANCO DE DADOS
Normalização
Viu algum erro neste material? Contate-nos em: [email protected]

SILBERSCHATZ, Abraham; SUNDARSHAN, S.; KORTH, Henry F. Sistema de banco de


dados. Elsevier Brasil, 2016.

Referências Gráficas
Icons8.com.br

�Este material foi elaborado pela equipe pedagógica do Gran Cursos Online, de acordo com a aula
preparada e ministrada pelo professor Washington Henrique Carvalho.
�A presente degravação tem como objetivo auxiliar no acompanhamento e na revisão do conteúdo
ministrado na videoaula. Não recomendamos a substituição do estudo em vídeo pela leitura exclu-
siva deste material.
ANOTAÇÕES

9 www.grancursosonline.com.br
BANCO DE DADOS
Normalização II
Viu algum erro neste material? Contate-nos em: [email protected]

NORMALIZAÇÃO II

Dependência Funcional Parcial


Exemplo: {CPF, CodProjeto} são o conjunto que representa a superchave. O nome do
projeto depende do código do projeto e o nome do empregado depende do CPF. Neste caso,

A imagem acima apresenta a necessidade de separar a relação empregado e a relação


projeto, além da relação empregado e projeto.

2ª Forma Normal (2FN)


Definição: uma relação está na 2FN se estiver na 1FN e se todo atributo não chave pos-
suir dependência funcional total em relação à chave primária (PK) da relação.
A tabela empregado não está na 2FN, em função das seguintes dependências funcio-
nais parciais:
• CodProjeto → NomeProj
• CPF → NomeEmp
ANOTAÇÕES

1 www.grancursosonline.com.br
BANCO DE DADOS
Normalização II
Viu algum erro neste material? Contate-nos em: [email protected]

Dependência Funcional Transitiva


Um atributo C é dependente funcional transitivo de A se C é funcionalmente dependente
de B, e B é funcionalmente dependente de A, na mesma relação.
5m

3º Forma Normal (3FN)


Definição: uma relação está na 3FN se e somente se estiver na 2FN e nenhum atributo
não chave for transitivamente dependente da chave.

A seguir, o código do vendedor define o nome deste, e o número do pedido não possui o
nome do vendedor. Logo, é preciso separar as tabelas.
ANOTAÇÕES

2 www.grancursosonline.com.br
BANCO DE DADOS
Normalização II
Viu algum erro neste material? Contate-nos em: [email protected]

Na segunda, os campos que não são chaves devem depender da chave primária.
O processo de normalização ocorre quando já se tem um conjunto de dados e busca-se
transformar isso modelo relacional para persistir em um banco de dados relacional, transfor-
mando em tabelas.
Na terceira, a transitiva, por exemplo, é quando se separa a forma normal e o campo
idade, que depende da chave. O campo idade é derivado de outro campo (data de nasci-
mento). Logo, na transitiva elimina-se a anomalia do campo.
10m

Forma Normal de Boyce Codd (FNBC)


Definição: uma relação está na FNBC se para toda dependência funcional do tipo X → Y,
X é uma superchave.
Forma mais restritiva de 3FN;
Toda relação que está na FNBC também está na 3FN. No entanto, nem toda relação que
está na 3FN está na FNBC.
Uma superchave SK de uma relação R é um conjunto de atributos de R que identificam
unicamente cada tupla da relação. Dito de outra forma, duas tuplas distintas de R não podem
possuir o mesmo valor de SK.
Chave primária é a superchave de cardinalidade mínima, ou seja, com menor número de
atributos.
ANOTAÇÕES

3 www.grancursosonline.com.br
BANCO DE DADOS
Normalização II
Viu algum erro neste material? Contate-nos em: [email protected]

Exemplo: a relação leciona tem aluno, disciplina e instrutor. O instrutor depende da disci-
plina e do aluno, enquanto a disciplina depende do instrutor.

Chave candidata:
• (Aluno, Disciplina).
Dependências Funcionais:
• (Aluno, Disciplina) → instrutor.
• Instrutor → Disciplina.


ANOTAÇÕES

4 www.grancursosonline.com.br
BANCO DE DADOS
Normalização II
Viu algum erro neste material? Contate-nos em: [email protected]

DIRETO DO CONCURSO
1. (CESPE/POLÍCIA FEDERAL/PERITO CRIMINAL FEDERAL/ÁREA 3/2019)

Tendo como referência as informações apresentadas, julgue o próximo item. A tabela


colaborador está na primeira forma normal.

2. (FUNCAB/SES-GO/ANÁLISE DE SISTEMAS/2010) Uma variável está na Forma Nor-


mal de Boyce e Codd (FNBC), se e somente se:
15m

a. existirem dependências multivaloradas.


b. seus únicos determinantes forem chaves candidatas.
c. apenas os atributos não chave forem irredutivelmente dependentes da chave primária.
d. todo atributo não chave é dependente de forma não transitiva da chave primária.
e. a variável tiver apenas uma chave candidata
ANOTAÇÕES

5 www.grancursosonline.com.br
BANCO DE DADOS
Normalização II
Viu algum erro neste material? Contate-nos em: [email protected]

COMENTÁRIO
a. dependências multivaloradas se relaciona com a 4º forma normal.
c. trata-se da 2º forma normal.
d. trata-se da 3º forma normal.
As chaves candidatas são aquelas que podem se tornar chaves candidatas.

3. (FCC/TJ-AP/ANALÍSTA JUDICIÁRIO/ÁREA APOIO ESPECIALIZADO-TI/2014) Uma


Forma Normal (FN) é uma regra que deve ser obedecida por uma tabela para ser con-
siderada bem projetada. As descrições a seguir são de tabelas em Formas Normais.
I – A tabela não contém dependências transitivas, ou seja, as colunas que não sejam
chave primária não dependem funcionalmente de outras colunas ou combinação de
colunas que não sejam chave primária.
II – A tabela não contém dependências parciais, ou seja, cada coluna não chave depende
da chave primária completa e não apenas de parte dela.
20m

Os itens I e II descrevem, respectivamente, regras referentes à:

a. 4FN e 2FN.
b. 2FN e 3FN.
c. 3FN e 2FN.
d. 1FN e 3FN.
e. 3FN e 4FN.

4. (FCC/TRT-19º/ANALISTA JUDICIÁRIO – TECNOLOGIA DA INFORMAÇÃO/2011) Para


uma tabela estar na FNBC (Forma Normal Boyce – Codd), ela:

a. não precisa da normalização 1FN.


b. precisa estar somente na 2FN.
c. também está normalizada na 3FN.
d. tem de estar normalizada até a 4FN.
ANOTAÇÕES

6 www.grancursosonline.com.br
BANCO DE DADOS
Normalização II
Viu algum erro neste material? Contate-nos em: [email protected]

e. tem de estar normalizada até a 5FN

COMENTÁRIO
Na FCBC, ela também está normalizada na 3FN

5. (FCC/DPE-RS/ANALISTA JUDICIÁRIO – BANCO DE DADOS/2017) Observou-se que


uma tabela de um banco de dados relacional está na segunda forma normal pois, além
de estar na primeira forma normal:
25m

a. existe um número par de atributos na chave primária da tabela.


b. cada atributo não chave da tabela é dependente de todos os atributos da chave pri-
mária da tabela.
c. todos atributos da tabela são atômicos (contêm exatamente um valor para cada
atributo).
d. os atributos da chave primária da tabela são do tipo numérico.
e. os atributos não chave da tabela são mutuamente dependentes entre si.

COMENTÁRIO
No 2FN não pode haver atributos de que dependam de parte da chave.

6. (CESPE/TRF-1º REGIÃO/ANALISTA JUDICIÁRIO-INFORMÁTICA/2017) A respeito


dos conceitos de banco de dados, normalização, controle de concorrência e modela-
gem, julgue o item subsecutivo.
Em uma tabela na segunda forma normal, todos os atributos não chave são dependen-
tes da chave primária.

7. (CESPE/EBSERH/ANALISTA DE TECNOLOGIA DA INFORMAÇÃO/2018) Com rela-


ção a banco de dados, julgue o item seguinte. Em normalização, a primeira forma nor-
mal é caracterizada por uma tabela com a existência obrigatória de uma chave primária
e uma chave estrangeira.
ANOTAÇÕES

7 www.grancursosonline.com.br
BANCO DE DADOS
Normalização II
Viu algum erro neste material? Contate-nos em: [email protected]

COMENTÁRIO
Na 1FN não pode haver atributos multivalorados.

8. (FCC/DPE-AM/ANALISTA EM GESTÃO ESPECIALIZADO DE DEFENSORIA/ANALIS-


TA DE BANCO DE DADOS/2018) Uma tabela de um banco de dados relacional está na
primeira forma normal se:
30m

a. o número de atributos dessa tabela for limitado pelo sistema gerenciador de


banco de dados.
b. os atributos do tipo caractere tiverem comprimento máximo de 30 caracteres.
c. o número de registros dessa tabela for limitado pelo sistema gerenciador de
banco de dados.
d. os domínios de todos atributos dessa tabela forem atômicos.
e. os domínios de todos atributos dessa tabela forem compostos por números inteiros.

9. (CESPE/STM/TÉCNICO JUDICIÁRIO/PROGRAMAÇÃO DE SISTEMAS/2018) Acerca


dos conceitos de normalização de dados e dos modelos de dados, julgue o item subse-
quente. Uma tabela estará na segunda forma normal (2FN) quando, além de estar na
terceira forma normal (3FN), ela contiver dependências funcionais parciais.

Referências
DATE, Christopher J. Introdução a sistemas de bancos de dados. Elsevier Brasil, 2004.
Elmarsi, R., & NAVATHE, S. B. (2011). Sistemas de banco de dados. Fundamentals of
database systems.
SILBERSCHATZ, Abraham; SUNDARSHAN, S.; KORTH, Henry F. Sistema de banco de
dados. Elsevier Brasil, 2016.

Referências Gráficas
Icons8.com.br
ANOTAÇÕES

8 www.grancursosonline.com.br
BANCO DE DADOS
Normalização II
Viu algum erro neste material? Contate-nos em: [email protected]

GABARITO
1. C
2. b
3. c
4. c
5. d
6. C
7. E
8. d
9. E

�Este material foi elaborado pela equipe pedagógica do Gran Cursos Online, de acordo com a aula
preparada e ministrada pelo professor Washington Henrique Carvalho.
�A presente degravação tem como objetivo auxiliar no acompanhamento e na revisão do conteúdo
ministrado na videoaula. Não recomendamos a substituição do estudo em vídeo pela leitura exclu-
siva deste material.
ANOTAÇÕES

9 www.grancursosonline.com.br
BANCO DE DADOS
Normalização III
Viu algum erro neste material? Contate-nos em: [email protected]

NORMALIZAÇÃO III

Dependência Multivalorada
Definição: se um atributo A1 de R determina um conjunto finito de valores para os outros
atributos A2,..., An de R, então diz-se que A2,..., An possuem Dependência Multivalorada
de A1 em R.

O A multidetermina B (ou B é multidependente de A) quando o conjunto de valores de B


é determinado pelo valor de A, e somente pelo valor de A.
A→→B
(A multidetermina B)
(B multidependente de A)
ANOTAÇÕES

1 www.grancursosonline.com.br
BANCO DE DADOS
Normalização III
Viu algum erro neste material? Contate-nos em: [email protected]

Acima, o Dependente depende do Empregado, enquanto o Projeto depende do


Empregado.

Quarta Forma Normal (4FN)


Definição: uma relação está na 4FN quando além de estar na 3FN, não contém Depen-
dências multivaloradas.
5m
Uma coluna irá depender multivaloradamente de outra coluna da mesma relação quando
um valor do atributo determinante identifica repetidas vezes um conjunto de valores na coluna
que é dependente
Exemplo clássico de localização de livro.
ANOTAÇÕES

2 www.grancursosonline.com.br
BANCO DE DADOS
Normalização III
Viu algum erro neste material? Contate-nos em: [email protected]

Acima, a localização é formada pelo número da estante, o ISBN e código do autor. Não
há nenhum atributo que dependa de outro. Todavia, há uma dependência valorada, pois
autor A1 e A2 dependem de L1, e os autores A7, A8 e A9 dependem do ISBN L2.
Para atender a 4FN e eliminar essa tabela de localização acima, que tem dependência
multivalorada, tornar-se-ia preciso criar uma tabela de autoria, indicando o ISBN para um
autor específico.
Cada forma normal elimina um tipo de anomalia. A 2FN contém a 1FN e elimina uma ano-
malia. A 3FN contém as 1FN e 2FN, além de eliminar uma anomalia. E a 4FN contém as três
outras formas normais e elimina uma anomalia.
10m
ANOTAÇÕES

3 www.grancursosonline.com.br
BANCO DE DADOS
Normalização III
Viu algum erro neste material? Contate-nos em: [email protected]

Acima, estante contém somente o ISBN e na autoria poderia o autor ser identificado
pelo seu ISBN.

Quinta Forma Normal (5FN)


Definição: uma relação está na 5FN se, e somente se, “toda dependência de junção em
R for resultado de chaves candidatas de R”.
Existem relações que não podem ser decompostas em duas projeções sem perda, mas
podem ser decompostas em três ou mais.
Considere a relação R (Vendedor, Montadora, Produto), onde um vendedor pode traba-
lhar para várias montadoras e vende vários produtos; e uma montadora pode ter vários ven-
dedores e vende vários produtos.
15m
ANOTAÇÕES

4 www.grancursosonline.com.br
BANCO DE DADOS
Normalização III
Viu algum erro neste material? Contate-nos em: [email protected]


ANOTAÇÕES

5 www.grancursosonline.com.br
BANCO DE DADOS
Normalização III
Viu algum erro neste material? Contate-nos em: [email protected]

Para resolver o problema, observe:

Quadro Esquematizado
ANOTAÇÕES

6 www.grancursosonline.com.br
BANCO DE DADOS
Normalização III
Viu algum erro neste material? Contate-nos em: [email protected]

DIRETO DO CONCURSO
1. (CESPE/IPHAN/ANALISTA I – ÁREA 7/2018) Acerca da abordagem relacional, da nor-
malização e do SGBD, entre outros conceitos relativos a banco de dados, julgue o item
a seguir. Uma relação está na quarta forma normal (4FN) quando o conteúdo do registro
não pode ser mais reconstruído (efetuar join) a partir de outros registros menores extra-
ídos desse registro considerado.

COMENTÁRIO
Join é a forma usada para junção de tabelas, em SQL.

2. (INSTITUTO AOCP/IPHAN/ANALISTA DE TECNOLOGIA DA INFORMAÇÃO/2016) Um


bom projeto de banco de dados relacional sugere a aplicação das técnicas de normali-
zação. Além das formas normais mais conhecidas (1FN, 2FN e 3FN) também existem
as 4FN e 5FN. Sabendo disso, uma tabela está na 4FN quando, além de estar na 3FN,
20m

a. não contém dependências multi-valoradas.


b. são eliminadas as dependências parciais.
c. não contém dependências funcionais.
d. são eliminadas as tabelas aninhadas.
e. não contém dependências transitivas.

COMENTÁRIO
a. Trata-se da 4FN.
b. Trata-se da 2FN.
d. Trata-se da 1FN.
e. Trata-se da 3FN.
ANOTAÇÕES

7 www.grancursosonline.com.br
BANCO DE DADOS
Normalização III
Viu algum erro neste material? Contate-nos em: [email protected]

3. (COSEAC/UFF/TÉCNICO DE TECNOLOGIA DA INFORMAÇÃO/2015) Algumas for-


mas normais estão disponibilizadas na coluna I. Estabeleça a correta correspondência
com suas definições ou aplicações disponibilizadas na coluna II.
Coluna I Coluna II
1. 1FN �(  ) Seus únicos determinantes são cha-

2. 2FN ves candidatas.


3. 3FN �(  ) Não contém tabelas aninhadas.

4. BCFN �(  ) Evitar dependências parciais.

5. 5FN �(  ) Combater a dependência de junção.

�(  ) Evitar dependências transitivas.

A sequência correta, de cima para baixo, é:


a. 1, 3, 4, 5, 2.
b. 4, 1, 2, 5, 3.
c. 1, 3, 2, 5, 4.
d. 4, 5, 3, 2, 1.
25m
e. 1, 2, 3, 5, 4.

Referências
DATE, Christopher J. Introdução a sistemas de bancos de dados. Elsevier Brasil, 2004.
Elmarsi, R., & NAVATHE, S. B. (2011). Sistemas de banco de dados. Fundamentals of
database systems.
SILBERSCHATZ, Abraham; SUNDARSHAN, S.; KORTH, Henry F. Sistema de banco de
dados. Elsevier Brasil, 2016.

Referências Gráficas
Icons8.com.br

GABARITO
1. C
2. a
3. b

�Este material foi elaborado pela equipe pedagógica do Gran Cursos Online, de acordo com a aula
ANOTAÇÕES

preparada e ministrada pelo professor Washington Henrique Carvalho.


�A presente degravação tem como objetivo auxiliar no acompanhamento e na revisão do conteúdo
ministrado na videoaula. Não recomendamos a substituição do estudo em vídeo pela leitura exclu-
siva deste material.

8 www.grancursosonline.com.br
BANCO DE DADOS
Normalização III
Viu algum erro neste material? Contate-nos em: [email protected]
ANOTAÇÕES

9 www.grancursosonline.com.br
BANCO DE DADOS
Linguagem SQL
Viu algum erro neste material? Contate-nos em: [email protected]

LINGUAGEM SQL

BANCO DE DADOS – SQL (STRUCTURED QUERY LANGUAGE)

SQL é uma linguagem de consulta que implementa as operações da álgebra relacional


de forma bem amigável.
É uma linguagem para acesso e manipulação de BD relacionais.
Padronizada pela ANSI (American National Standards Institute).
Os comandos em SQL são divididos em:
• DDL (Data Definition Language) – Criação do esquema do BD;
• DML (Data Manipulation Language) – Manipulação de Dados;
• DCL (Data Control Language) – Controle de acesso e segurança.

Obs.: Vale lembrar que o DDL envolve os comandos como create, drop, alter (que criam as
estruturas). Já o DCL envolve comandos que geram permissões para o usuário.

SQL permite definir estrutura de dados e restrições de integridade, modificar dados no BD,
especificar restrições de segurança e controle de transações e utilizar linguagens hospedeiras.
5m

Obs.: Vale lembrar que os comandos citados acima se referem ao padrão SQL. Todavia, há
bancos de dados específicos em que podem ser adicionados comandos diferentes e
fora do padrão.

Desenvolvida por pesquisadores da IBM – SYSTEM R. Inicialmente chamada de SEQUEL


(Structured English Query Language).
ISO e ANSI lançam em 1986 a primeira versão do padrão da linguagem SQL, o SQL-86.
Versão padrão SQL1 (ANSI SQL).
Em 1992, houve uma revisão e expansão do padrão, gerando a SQL2 (SQL92):
• Um esquema é definido por um nome e inclui um identificador de autorização para
indicar o usuário que é o dono do esquema. CREATE SCHEMA PF AUTHORIZATION
agente_silva;
• Esquema inclui tabelas, restrições, visões e domínios.
ANOTAÇÕES

www.grancursosonline.com.br 1
BANCO DE DADOS
Linguagem SQL
Viu algum erro neste material? Contate-nos em: [email protected]

Em 1999, SQL3 trouxe características de BDOO (SQL99). Novos tipos de dados (CLOB),
predicados, tipos abstratos de dados.
Em seguida, foram divulgadas outras atualizações, como: SQL:2003, SQL:2006,
SQL:2008, SQL:2011 e SQL:2016.
Existem 4 comandos principais para a manipulação de dados em SQL:
• Insert: Inclusão de Dados;
• Delete: Exclusão de Dados;
• Update: Alteração de Dados; e
• Select: Seleção de Dados.
10m

LINGUAGEM SQL (SELECT)

Forma básica:

Operadores

Os operadores podem ser utilizados em conjunto na cláusula WHERE para filtrar o resul-
tado da consulta.
Os operadores podem ser:
• Relacionais;
• Lógicos;
• Especiais.
ANOTAÇÕES

www.grancursosonline.com.br 2
BANCO DE DADOS
Linguagem SQL
Viu algum erro neste material? Contate-nos em: [email protected]

Operadores Relacionais

São utilizados para realizar comparações entre valores.

Obs.: Ao usar o símbolo *, o SQL traz todos o resultado com todos os atributos da tabela.
Muitos não consideram como uma boa prática o uso do *, pois pode resultar em uma
tabela muito grande.

Operadores Lógicos

São utilizados para realizar operações que tenham um resultado booleano (verda-
deiro/falso).
15m

Obs.: Vale lembrar que os operadores lógicos seguem a mesma regra da tabela-verdade,
muito utilizada nas aulas de raciocínio lógico.

Operadores Especiais

20m

www.grancursosonline.com.br 3
BANCO DE DADOS
Linguagem SQL
Viu algum erro neste material? Contate-nos em: [email protected]

Exemplos:

Where:

25m
ANOTAÇÕES

www.grancursosonline.com.br 4
BANCO DE DADOS
Linguagem SQL
Viu algum erro neste material? Contate-nos em: [email protected]

Order By:

Distinct:
ANOTAÇÕES

www.grancursosonline.com.br 5
BANCO DE DADOS
Linguagem SQL
Viu algum erro neste material? Contate-nos em: [email protected]

Obs.: É importante perceber que o comando Distinct elimina as informações redundantes.

Like:

30m

Between:
ANOTAÇÕES

www.grancursosonline.com.br 6
BANCO DE DADOS
Linguagem SQL
Viu algum erro neste material? Contate-nos em: [email protected]

IN:

Obs.: O comando IN permite realizar uma subconsulta, conforme mostra o exemplo acima.
35m

�Este material foi elaborado pela equipe pedagógica do Gran Cursos Online, de acordo com a aula
preparada e ministrada pelo professor Washington Henrique Carvalho Almeida.
A presente degravação tem como objetivo auxiliar no acompanhamento e na revisão do conteúdo
ministrado na videoaula. Não recomendamos a substituição do estudo em vídeo pela leitura exclu-
siva deste material.
ANOTAÇÕES

www.grancursosonline.com.br 7
BANCO DE DADOS
Linguagem SQL II
Viu algum erro neste material? Contate-nos em: [email protected]

LINGUAGEM SQL II

BANCO DE DADOS – SQL (STRUCTURED QUERY LANGUAGE)

FUNÇÕES DE AGREGAÇÃO

São funções que permite agrupar valores:


• COUNT– Conta a quantidade de linhas;
• AVG – realiza a média aritmética;
• SUM – realiza a soma dos valores da coluna;
• MAX – retorna o maior valor da coluna;
• MIN – retorna o menor valor da coluna.

Exemplos:

Count:

Obs.: Vale lembrar que o uso da técnica do alias “as” no exemplo acima é importante, pois é
ele quem dá nome à tabela em que será exibido o resultado. Caso ele fosse deixado de
lado, o nome da tabela seria o próprio nome da função ou coluna, a depender do SGBD.
ANOTAÇÕES

www.grancursosonline.com.br 1
BANCO DE DADOS
Linguagem SQL II
Viu algum erro neste material? Contate-nos em: [email protected]

Avg, Sum, Max, Min:


5m

Obs.: Essas funções de agregação facilitam bastante a vida de quem precisa operar um
banco de dados, pois, caso contrário, seria necessário fazer todos esses cálculos
manualmente, o que exigiria um tempo muito grande, principalmente em bancos de
dados maiores.
10m

Having:

www.grancursosonline.com.br 2
BANCO DE DADOS
Linguagem SQL II
Viu algum erro neste material? Contate-nos em: [email protected]

Obs.: O exemplo acima não apresenta, contudo poderia ser utilizado o comando where.
Dessa forma, o comando Where faria, em um primeiro momento, a seleção dos re-
gistros que serão grupados.

Insert

Ordem dos atributos deve ser mantida.


Produto (ID, NOME, PRECO, CATEG)
Exemplo: INSERT INTO PRODUTO
VALUES (1, ‘TV LCD 50’, 3.500, ‘ELETRÔNICOS’)

Ordem dos atributos não precisa ser mantida.


INSERT INTO PRODUTO (ID, CATEG, NOME)
VALUES (1, ‘ELETRÔNICOS’, ‘TV LCD 50’);
15m

Obs.: Percebe-se que existem várias formas de fazer o Insert. No caso do primeiro exem-
plo (acima), não foi disposta a ordem das colunas, contudo é preciso manter a ordem
da tabela. Já o segundo exemplo aponta qual é a ordem.
ANOTAÇÕES

www.grancursosonline.com.br 3
BANCO DE DADOS
Linguagem SQL II
Viu algum erro neste material? Contate-nos em: [email protected]

Tuplas resultantes da cláusula SELECT serão inseridas na tabela.


INSERT INTO PRODUTO
SELECT * FROM PRODUTO2
WHERE CATEG=‘HIGIENE’;

Delete

Produto (ID, NOME, PRECO, CATEG).


Excluir todos os produtos que estão sem preço:
Exemplo:
DELETE FROM PRODUTO WHERE PRECO IS NULL;
Excluir todos os produtos
DELETE FROM PRODUTO;

Obs.: É preciso tomar cuidado ao usar o comando Delete, pois, caso nãos seja usada a
condição where, o SQL apaga todos os dados.
20m

Update
ANOTAÇÕES

www.grancursosonline.com.br 4
BANCO DE DADOS
Linguagem SQL II
Viu algum erro neste material? Contate-nos em: [email protected]

Produto (ID, NOME, PRECO, CATEG)


Aplicar um reajuste de 10% em todos os produtos:
Exemplo:
UPDATE PRODUTO
SET PRECO = PRECO * 1.1;
Aplicar um reajuste de 10% em todos os produtos nos produto de limpeza:
UPDATE PRODUTO
SET PRECO = PRECO * 1.1
WHERE CATEGORIA = ‘LIMPEZA’;

Inner Join
ANOTAÇÕES

www.grancursosonline.com.br 5
BANCO DE DADOS
Linguagem SQL II
Viu algum erro neste material? Contate-nos em: [email protected]

Left Outer Join

25m

Right Outer Join


ANOTAÇÕES

www.grancursosonline.com.br 6
BANCO DE DADOS
Linguagem SQL II
Viu algum erro neste material? Contate-nos em: [email protected]

Full Outer Join

Inner Join – Auto Relacionamento

Obs.: O uso dos alias nesses comandos é importante, pois evita a repetição do nome da tabela.
30m

�Este material foi elaborado pela equipe pedagógica do Gran Cursos Online, de acordo com a aula
preparada e ministrada pelo professor Washington Henrique Carvalho Almeida.
A presente degravação tem como objetivo auxiliar no acompanhamento e na revisão do conteúdo
ministrado na videoaula. Não recomendamos a substituição do estudo em vídeo pela leitura exclu-
siva deste material.

www.grancursosonline.com.br 7
BANCO DE DADOS
Linguagem SQL – Exercícios
Viu algum erro neste material? Contate-nos em: [email protected]

LINGUAGEM SQL – EXERCÍCIOS

DIRETO DO CONCURSO

1. (2018/CESPE/PF/PERITO CRIMINAL FEDERAL/ÁREA 3) As informações de um depar-


tamento e de seus colaboradores devem ser organizadas e armazenadas conforme a
estrutura mostrada no diagrama.

Para isso, serão utilizados os comandos DDL a seguir. Tendo como referência as infor-
mações apresentadas, julgue o próximo item.
A seguir, são apresentadas as expressões SQL corretas para inserir na tabela organo-
grama as informações constantes do diagrama apresentado.

www.grancursosonline.com.br 1
BANCO DE DADOS
Linguagem SQL – Exercícios
Viu algum erro neste material? Contate-nos em: [email protected]

COMENTÁRIO
A ordem das informações não foi inserida de forma correta.
5m

2. (2012/CESPE/BANCO DA AMAZÔNIA/TÉCNICO CIENTÍFICO/BANCO DE DADOS) A


execução da consulta SQL terá como resultado a média dos salários dos empregados
agrupada por departamento, se essa média for maior que 2.000.

COMENTÁRIO
A consulta utilizada restringe os valores, calculando a média apenas entre os valores maio-
res que 2000. A forma correta de fazer o cálculo desejado é

10m

3. (2016/CESPE/PC-PE/PERITO CRIMINAL/CIÊNCIA DA COMPUTAÇÃO) Na linguagem


SQL, o comando create table é usado para criar uma tabela no banco de dados; enquanto
o relacionamento entre duas tabelas pode ser criado pela declaração:
a. null.
b. primary key.
c. constraint.
d. auto_increment.
e. not null.
ANOTAÇÕES

www.grancursosonline.com.br 2
BANCO DE DADOS
Linguagem SQL – Exercícios
Viu algum erro neste material? Contate-nos em: [email protected]

COMENTÁRIO

• null: um campo pode receber valores nulos.


• primary key: definir a chave primária.
• constraint: referências de tabelas.
• auto_increment: numeração automática.
• not null: não aceita valores nulos.

4. (2015/CESPE/MEC/ADMINISTRADOR DE DADOS) Julgue o item que se segue, com


relação às definições e aos problemas de execução de comandos nas linguagens SQL.
Considerando a tabela aluno (id, curso, disciplina, notafinal, sexo) de um banco de da-
dos relacional, o comando SQL que permite obter o nome da disciplina e a média das
notas finais por disciplina apenas para os alunos do sexo igual a ‘F’ e para as disciplinas
com média abaixo de 5 é o apresentado a seguir.

15m

COMENTÁRIO
A presença do ‘WHERE’ limita o resultado ao grupo que foi pedido.
ANOTAÇÕES

www.grancursosonline.com.br 3
BANCO DE DADOS
Linguagem SQL – Exercícios
Viu algum erro neste material? Contate-nos em: [email protected]

5. (2004/ESAF/CGU/ANALISTA DE FINANÇAS E CONTROLE – T.I) Na linguagem SQL,


a consulta simples a um Banco de Dados é uma instrução SELECT e a consulta com-
posta inclui duas ou mais instruções SELECT. Com relação às consultas com a utiliza-
ção da linguagem SQL é correto afirmar que o operador:
a. UNION é usado para combinar os resultados de duas ou mais instruções SELECT,
retornando linhas duplicadas.
b. UNION ALL, quando usado na combinação de duas instruções SELECT, a ordem das
instruções SELECT altera o resultado da consulta.
c. EXCEPT, quando usado na combinação duas instruções SELECT, a ordem das ins-
truções SELECT não altera o resultado da consulta.
d. EXCEPT é usado para combinar duas ou mais instruções SELECT, retornando
somente as linhas da primeira instrução SELECT que sejam semelhantes a uma linha
das demais instruções.
e. INTERSECT é usado para combinar duas instruções SELECT, retornando somente
as linhas da primeira instrução SELECT que sejam idênticas a uma linha da segunda
instrução SELECT.

COMENTÁRIO

• UNION ALL é usado para combinar os resultados de duas ou mais instruções SELECT,
retornando linhas duplicadas.
• EXCEPT: quando usado na combinação duas instruções SELECT, a ordem das instru-
ções SELECT altera o resultado da consulta.

6. (2013/QUADRIX/CRQ-SP/ANALISTA DE SISTEMAS/PROGRAMAÇÃO) No SQL a


operação UNION difere da operação UNION ALL porque:
a. apresenta, no resultado, todas as linhas decorrentes das seleções envolvidas.
b. coloca o resultado em ordem alfabética.
c. não apresenta, no resultado, as linhas duplicadas.
d. mantém a ordem da primeira tabela.
e. apresenta, no resultado, todas as linhas que não são comuns às seleções envolvidas.
ANOTAÇÕES

www.grancursosonline.com.br 4
BANCO DE DADOS
Linguagem SQL – Exercícios
Viu algum erro neste material? Contate-nos em: [email protected]

COMENTÁRIO
UNION: não apresenta no resultado a linha duplicada.
UNION ALL: traz tudo.

ATENÇÃO
Algumas bancas gostam de cobrar UNION de forma a confundir o candidato.

7. (2017/IBFC/EBSERH/ANALISTA DE TECNOLOGIA DA INFORMAÇÃO/PROCESSOS)


Assinale, das alternativas abaixo, a única que identifica somente funções de agregação
usadas dentro de uma cláusula SELECT do SQL (Structured Query Language):
a. AVG – COUNT – SUM – MAX – MIN
b. AVG – LIKE – UNION – MAX – MIN
c. AVG – COUNT – AND – MAX – LIKE
d. FROM – COUNT – SUM – MAX – MIN
e. FROM – COUNT – SUM – AND – UNION
20m

COMENTÁRIO
Funções de agragação: AVG, COUNT, SUM, MAX, MIN.

8. (2015/FGV/TJBA/ANALISTA JUDICIÁRIO/TECNOLOGIA DA INFORMAÇÃO) Consi-


dere que as instâncias das tabelas T1, T2 e T3 têm, respectivamente, 1.000, 10.000 e
100.000 registros. O comando SQL SELECT 1 FROM T1 UNION SELECT 2 FROM T2
UNION SELECT 3 FROM T3 produz um resultado com:
a. 3 linhas;
b. 1.000 linhas;
c. 10.000 linhas;
d. 100.000 linhas;
e. 111.000 linhas.

COMENTÁRIO
Observe o resultado que seria produzido nesse caso:
ANOTAÇÕES

www.grancursosonline.com.br 5
BANCO DE DADOS
Linguagem SQL – Exercícios
Viu algum erro neste material? Contate-nos em: [email protected]

9. (2017/FGV/MPE-BA/ANALISTA TÉCNICO/TECNOLOGIA) Tabelas R e S referen-


tes a um banco de dados relacional. Considerando as tabelas R e S apresentadas, o
comando SQL SELECT a FROM R UNION ALL SELECT d FROM S produz um resul-
tado que contém, além dos títulos:

a. 1 linha;
b. 3 linhas;
c. 4 linhas;
d. 5 linhas;
e. 6 linhas.
ANOTAÇÕES

www.grancursosonline.com.br 6
BANCO DE DADOS
Linguagem SQL – Exercícios
Viu algum erro neste material? Contate-nos em: [email protected]

COMENTÁRIO
Nesse caso, ocorre a junção da coluna “a” e da coluna “d”.

10. (2017/IADES/FUNDAÇÃO HEMOCENTRO DE BRASÍLIA - DF/IADES/2017/FUNDA-


ÇÃO HEMOCENTRO DE BRASÍLIA - DF/TECNOLOGIA DA INFORMAÇÃO) Considere
as tabelas ALUNO e CURSO. Após a execução de uma consulta SQL, produziu-se o
resultado indicado na tabela. Qual dos comandos SQL a seguir foi utilizado?

a. SELECT a.nome, c.nome FROM aluno a RIGHT JOIN curso c ON a.curso = c.id;
b. SELECT a.nome, c.nome FROM aluno a LEFT JOIN curso c ON a.curso = c.id UNION
SELECT a.nome, c.nome FROM aluno a RIGHT JOIN curso c ON a.curso = c.id;
c. SELECT a.nome, c.nome FROM aluno a LEFT JOIN curso c ON a.curso = c.id;
d. SELECT a.nome, c.nome FROM aluno a INNER JOIN curso c ON a.curso = c.id;
e. SELECT a.nome, c.nome FROM aluno a RIGHT JOIN curso c ON a.curso = c.id
UNION SELECT a.nome, c.nome FROM aluno a LEFT JOIN curso c ON a.curso = c.id;

COMENTÁRIO
Foi utilizado o comando INNER JOIN, removendo o “Tiago – NULL”, que não tem relação
com a outra tabela.
25m
O site https://www.w3schools.com/sql/ apresenta diversos exercícios acerca de linguagem SQL.
ANOTAÇÕES

www.grancursosonline.com.br 7
BANCO DE DADOS
Linguagem SQL – Exercícios
Viu algum erro neste material? Contate-nos em: [email protected]

GABARITO
1. E
2. E
3. c
4. C
5. e
6. c
7. a
8. a
9. e
10. d

�Este material foi elaborado pela equipe pedagógica do Gran Cursos Online, de acordo com a aula
preparada e ministrada pelo professor Washington Henrique Carvalho Almeida.
A presente degravação tem como objetivo auxiliar no acompanhamento e na revisão do conteúdo
ministrado na videoaula. Não recomendamos a substituição do estudo em vídeo pela leitura exclu-
siva deste material.
ANOTAÇÕES

www.grancursosonline.com.br 8
BANCO DE DADOS
Linguagem SQL – Extra
Viu algum erro neste material? Contate-nos em: [email protected]

LINGUAGEM SQL – EXTRA

w3school
https://www.w3schools.com/sql/
A melhor forma de aprender SQL é praticando.
Acessando o link acima há vários exercícios de SQL – nesse site há exercícios de várias
linguagens.
ANOTAÇÕES

1 www.grancursosonline.com.br
BANCO DE DADOS
Linguagem SQL – Extra
Viu algum erro neste material? Contate-nos em: [email protected]

Abrindo a página de exercícios.

Abrindo a tela "Exercícios" procura-se a coluna de Database.


ANOTAÇÕES

2 www.grancursosonline.com.br
BANCO DE DADOS
Linguagem SQL – Extra
Viu algum erro neste material? Contate-nos em: [email protected]

O primeiro exercício é CREATE DATABASE, criar uma base de dados, “Test DB”.

O Comando está correto. Se houver um erro basta corrigir em show answer.

O comando para excluir a base de dados criada é Drop Database test DB e, executando
e estando certo, faz surgir na tela a mensagem Correct.
Há vários exercícios nesse site que podem ser executados.
ANOTAÇÕES

3 www.grancursosonline.com.br
BANCO DE DADOS
Linguagem SQL – Extra
Viu algum erro neste material? Contate-nos em: [email protected]

Abaixo, um exercício para criar uma tabela.

"Tabel" foi escrito errado.


ANOTAÇÕES

4 www.grancursosonline.com.br
BANCO DE DADOS
Linguagem SQL – Extra
Viu algum erro neste material? Contate-nos em: [email protected]

Aparece a mensagem Not Correct porque não é Tabel, é Table. O nome estar em maiús-
culo ou minúsculo não importa, o problema é que estava escrito errado.
O site é muito didático.

Para deletar a tabela: o comando DELETE é para apagar registros, não é para apagar
toda a tabela. Para apagar toda a tabela o comando é Drop Table Persons.

Abaixo, um Banco de Dados já existente no site.


ANOTAÇÕES

5 www.grancursosonline.com.br
BANCO DE DADOS
Linguagem SQL – Extra
Viu algum erro neste material? Contate-nos em: [email protected]

A tabela Shippers possui três registros.

Fazendo um select na tabela Suppliers, são trazidos os 29 registros existentes.


ANOTAÇÕES

6 www.grancursosonline.com.br
BANCO DE DADOS
Linguagem SQL – Extra
Viu algum erro neste material? Contate-nos em: [email protected]

Para fazer um count(*)as total não é necessário olhar a tabela e surge a resposta: 29.
5m

Muitos exercícios podem ser feitos utilizando as várias tabelas, por exemplo, Products
com 77 registros, assim como fazer um inner join com o Suppliers, porque na tabela de Pro-
ducts só há o ID e se pretende saber o nome.
ANOTAÇÕES

7 www.grancursosonline.com.br
BANCO DE DADOS
Linguagem SQL – Extra
Viu algum erro neste material? Contate-nos em: [email protected]

O resultado são várias colunas porque se juntaram as duas tabelas. Retirando o * as


tabelas são reduzidas:

Neste site podem ser feitos muitos exercícios, passando por todos os comandos ou utili-
zando a base que ele já tem pronta, de clientes, categorias, produtos e vendas ou podem ser
criadas através do CREATE TABLE inserindo registros e fazendo consultas em cima deles.
ANOTAÇÕES

8 www.grancursosonline.com.br
BANCO DE DADOS
Linguagem SQL – Extra
Viu algum erro neste material? Contate-nos em: [email protected]

Como se trata de um site online, obviamente se o browser for fechado, ele apagará tudo.
A ideia é somente fazer exercícios nesse site.

w3school
https://www.w3schools.com/sql/
Outra forma de exercitar é baixar um banco à venda no mercado, um MySQL, e criar nele.

Referências
DATE, Christopher J. Introdução a sistemas de bancos de dados. Elsevier Brasil, 2004.
Elmarsi, R., & NAVATHE, S. B. (2011). Sistemas de banco de dados. Fundamentals of
database systems.
SILBERSCHATZ, Abraham; SUNDARSHAN, S.; KORTH, Henry F. Sistema de banco de
dados. Elsevier Brasil, 2016.

Referências Gráficas
Icons8.com.br

�Este material foi elaborado pela equipe pedagógica do Gran Cursos Online, de acordo com a aula
preparada e ministrada pelo professor Washington Henrique Carvalho.
�A presente degravação tem como objetivo auxiliar no acompanhamento e na revisão do conteúdo
ministrado na videoaula. Não recomendamos a substituição do estudo em vídeo pela leitura exclu-
siva deste material.
ANOTAÇÕES

9 www.grancursosonline.com.br
BANCO DE DADOS
Gerenciamento de Transação

Viu algum erro neste material? Contate-nos em: [email protected]

GERENCIAMENTO DE TRANSAÇÃO

Transações
Transação é uma unidade lógica de processamento, incluindo uma ou mais operações
sobre um BD, sendo formada por sequência de operações que precisam ser executadas inte-
gralmente (ou desfeita totalmente) como o objetivo de a consistência do BD.

Essas operações podem incluir inclusão, exclusão, modificação ou seleção.

Transação é uma unidade atômica de trabalho que ou é completada integralmente ou


simplesmente não é realizada.

Para fins de recuperação, o sistema precisa acompanhar o momento em que a transação


se inicia, termina e é confirmada ou abortada.

Tipos de Falhas
• Falha do computador (System Crash – Colapso do Sistema): Erro de Hardware, Sof-
tware ou Rede.
• Erro de Transação ou de sistema: Overflow, Divisão por Zero, erros lógicos.
• Erros locais ou condições de exceção detectados pela transação: Condições de cance-
lamento. Exemplo: Dados não encontrados, saldo insuficiente, exceções programadas.
• Imposição do controle de concorrência: bloqueios, situações de impasse (Deadlocks).
• Falha de Disco (quebra do cabeçote de leitura, perda de blocos).
• Problemas Físicos ou Catástrofes: Incêndio, Falta de energia, sabotagem.

Ex.: transação ocorre quando se tem duas operações, a exemplo da transação financeira
de uma conta para outra. Essa transação deve ir até o final, não podendo ser encerrada no
meio. Logo, a transação deve ser atômica.
5m

Diagrama de Estados de uma Transação


A transação fará uma operação ou de escrita ou de leitura. Quando ela está ativa, havendo
algum problema, de pronto ela poderá ser abortada, em cenário de falha.
ANOTAÇÕES

www.grancursosonline.com.br 1
BANCO DE DADOS
Gerenciamento de Transação

Viu algum erro neste material? Contate-nos em: [email protected]

A transação pode estar parcialmente confirmada, e, uma vez confirmada, ela não terá
finalização por meio de falha.

Finalização por falta desfaz tudo o que foi feito pela metade, voltando ao estado anterior.

Transações
BEGIN_TRANSACTION (INICIAR TRANSAÇÃO) – Marca o início da execução da
transação.

READ/WRITE – Especifica operações de leitura/escrita nos itens de banco de dados.

END_TRANSACTION (Finalizar a transação) – Especifica que operações de leitura ou


gravação terminaram e marca o final da execução da transação.

COMMIT_TRANSACTION (Confirmar Transação) – Sinaliza o final bem-sucedido da


transação, de modo que quaisquer atualizações executadas pela transação podem ser segu-
ramente confirmadas (commited) para o BD e não serão desfeitas.

ROLLBACK (ABORT) – Sinaliza que a transação terminou sem sucesso, de modo que
quaisquer alterações ou efeitos devem ser desfeitos.
ANOTAÇÕES

www.grancursosonline.com.br 2
BANCO DE DADOS
Gerenciamento de Transação

Viu algum erro neste material? Contate-nos em: [email protected]

Instruções de controle:
COMMIT – finaliza a transação atual tornando permanentes todas as alterações de dados
pendentes;

SAVEPOINT – marca um ponto de gravação dentro da transação atual, sendo utilizado


para dividir uma transação em partes menores;

ROLLBACK [TO SAVEPOINT ] – ROLLBACK finaliza a transação atual, descartando


todas as alterações de dados pendentes. ROLLBACK TO SAVEPOINT descarta o ponto de
gravação determinado e as alterações seguintes ao mesmo.

Exemplo: imagine uma transação com 99.99%. Havendo um problema, a transação atô-
mica volta para o começo. No entanto, com o save point, é possível voltar até onde não
houve falha.

Processamento de Transações
10m
Exemplo:

No exemplo, ao dar o COMMIT, as operações que terão efeito são: 1, 2 e 6.


ANOTAÇÕES

www.grancursosonline.com.br 3
BANCO DE DADOS
Gerenciamento de Transação

Viu algum erro neste material? Contate-nos em: [email protected]

Propriedades de uma Transação (ACID)


ATOMICIDADE – uma transação é uma unidade atômica de processamento; ou é reali-
zada integralmente ou não é realizada.

CONSISTÊNCIA – uma transação é consistente se levar o banco de dados de um estado


consistente para outro estado também consistente.

ISOLAMENTO – a execução de uma transação não deve sofrer interferência de quais-


quer outras transações que estejam sendo executadas concorrentemente.

DURABILIDADE (persistência) – as alterações aplicadas ao banco de dados, por meio


de uma transação confirmada, devem persistir no banco de dados, não sendo perdidas por
nenhuma falha.
15m

Transações Concorrentes
Modelo simplificado de transações concorrentes:
read_item (X): lê um item X do BD e transfere para uma variável X de memória;
write_item (X): escreve o valor de uma variável X de memória em um item X do BD

(Perda de Atualização)

www.grancursosonline.com.br 4
BANCO DE DADOS
Gerenciamento de Transação

Viu algum erro neste material? Contate-nos em: [email protected]

(Leitura Suja)

Por ter uma transação falha, até mesmo a leitura de 1 será desfeita, sendo a transação
ser abortada.

(Leitura Não Repetitiva)
ANOTAÇÕES

www.grancursosonline.com.br 5
BANCO DE DADOS
Gerenciamento de Transação

Viu algum erro neste material? Contate-nos em: [email protected]

Seriabilidade de Escalonamentos
20m
Um escalonamento S é denominado SERIAL se, para todas as transações T participan-
tes do escalonamento, todas as operações de T forem executadas consecutivamente no
escalonamento; caso contrário, o escalonamento é denominado não serial.

Realizar escalonamento de transações de forma que não haja problema de leitura suja,
de leitura não repetitiva ou de perda de atualização, entende-se que as atualizações são
escalonáveis.

O escalonamento serve para ganhar tempo de processamento.


ANOTAÇÕES

www.grancursosonline.com.br 6
BANCO DE DADOS
Gerenciamento de Transação

Viu algum erro neste material? Contate-nos em: [email protected]

O primeiro escalonamento, R1 é o read da transação de X, seguindo na sequência para


W1 (escrita), read (Y) e write(Y). Anotando sobre isso exemplo com valores, o X tem como
25m
valor inicial 90, o mesmo do Y. A segunda coisa que foi feita na linha 2 foi subtrair 90 por 3.

Noutro passo, soma-se em X os valores de 87 +2, cujo resultado final é X = 89 e Y = 93.

Referências
DATE, Christopher J. Introdução a sistemas de bancos de dados. Elsevier Brasil, 2004.
Elmarsi, R., & NAVATHE, S. B. (2011). Sistemas de banco de dados. Fundamentals of
database systems.
SILBERSCHATZ, Abraham; SUNDARSHAN, S.; KORTH, Henry F. Sistema de banco de
dados. Elsevier Brasil, 2016.

Referências Gráficas
× Icons8.com.br
ANOTAÇÕES

www.grancursosonline.com.br 7
BANCO DE DADOS
Gerenciamento de Transação II

Viu algum erro neste material? Contate-nos em: [email protected]

GERENCIAMENTO DE TRANSAÇÃO II

Vamos continuar na segunda parte do curso de banco de dados sobre gerenciamento de


transações. Veremos quatro cenários, que são: SA, SB, SC (são os mais importantes) e SD.

Vimos o primeiro escalonamento, agora veremos outro no qual há a transação 1 e a tran-


sação 2. A sequência já aprendemos que SB: R2 (leitura de 2); W2 (escrita de 2); R1 (lei-
tura de 1); W1 (escrita de 1); R1.

A transação acima funcionaria com escalonamento e teria o resultado 89 para X e


93 para Y.

O próximo cenário é uma transação com escalonamentos conforme o quadro abaixo:


ANOTAÇÕES

www.grancursosonline.com.br 1
BANCO DE DADOS
Gerenciamento de Transação II

Viu algum erro neste material? Contate-nos em: [email protected]

SC: R1 (X); R2 (X); W1 (X); W2 (X); R1 (Y); W1 (Y). Essa é a sequência. A transação 2
não percebe o que a transação 1 fez até o momento sem ter escrito e “commitado”. O valor
de X é 90 ainda. Nesse escalonamento, uma parte da transação se perdeu (write X).

No cenário SD ocorre da mesma forma. Confira abaixo:


ANOTAÇÕES

www.grancursosonline.com.br 2
BANCO DE DADOS
Gerenciamento de Transação II

Viu algum erro neste material? Contate-nos em: [email protected]

SD: R1 (leitura do 1); W1 (escrita do 1); R2 (leitura da transação 2); W2 (escrita da


transação 2); R1 (leitura de Y); W1 (Y). Nesse escalonamento, o resultado de X é 89 e o
de Y é 93.

Seriabilidade de Escalonamentos
Um escalonamento S de n transações é serializável se for equivalente a algum escalo-
5m
namento serial das n transações.

Diz-se que dois escalonamentos são equivalentes em conflitos se a ordem de duas ope-
rações conflitantes for a mesma em ambos os escalonamentos. As operações serão confli-
tantes em alguns cenários se:
• Pertencem a transações diferentes;
• Acessam o mesmo item X;
• Pelo menos uma operação é de escrita (write – X);

Acompanhando o exemplo abaixo, percebe-se que dos três exemplos principais (a, b e
c), o exemplo 1 é serial (tem uma sequência). O exemplo SB é serializável (é possível fazê-lo
ser seriável, apesar de ele não ser na origem). E, por fim, o SC (não é serializável).

Sa: r1 (X); w1 (X); r1 (Y); w1 (Y); c1; r2 (X); w2 (X); c2; (serial)
Sb: r1 (X); w1 (X); r2 (X); w2 (X); r1 (Y); w1 (Y); c1; c2; (serializável ou seriável)
Sc: r1 (X); r2 (X); w1 (X); r1 (Y); w2 (X); w1 (Y); c1; c2; (não serializável)

Lembre-se que o Sc é aquele em que se perde informação, ele não pode ser serializável.

Gerenciamento de Bloqueios
Como resolver os cenários para não haver problemas? Vimos cenários que têm uma
certa sequência e vimos cenários que perderam elementos. Porém, como resolver isso?
Através de bloqueios. As principais técnicas utilizadas para controlar a execução concorrente
de transações, baseia-se no conceito de realizar um bloqueio em itens de dados.
ANOTAÇÕES

www.grancursosonline.com.br 3
BANCO DE DADOS
Gerenciamento de Transação II

Viu algum erro neste material? Contate-nos em: [email protected]

Um bloqueio (Lock) é uma variável associada a um item de dado que descreve o status
do item com relação a possíveis alterações que poderão ser aplicadas a ele. Normalmente,
quando se vai escrever já se faz o bloqueio.

Por exemplo, num cenário que um leu e o outro leu, depois um escreveu. Quando se
escreve, trava-se o item. Existem várias estratégias de bloqueio, uma delas é chamada de
pessimista. Pois ela trava o item e faz a transação ir até o final. Nesse caso não é possível
ninguém ler o item para evitar problemas. Essa não é a melhor estratégia, pois todas as tran-
sações devem ser feitas de forma como se não fossem simultâneas.

Sabemos que se não deixar o banco de dados funcionar com transações simultâneas,
haverá uma fila grande. Só haverá uma operação por vez no banco de dados, mas o banco
de dados foi feito para ser multiusuário. Se ele é multiusuário, haverá múltiplas transações
acontecendo dentro do banco de dados.

Bloqueios são utilizados para sincronizar o acesso por transações concorrentes aos itens
no banco de dados. Vimos alguns cenários em que a transação não concorre nos itens, mas
em outros casos concorre e, por isso, podemos ter problemas.

Bloqueio Binário
Um bloqueio binário possui dois estados: bloqueado e não bloqueado.

As operações necessárias são:


• lock_item(X): bloqueia o item X;
• unlock_item(X): desbloqueia o item X.

O bloqueio binário impõe a exclusão mútua no item de dado. Por exemplo, caso o item X
seja bloqueado por uma transação Ti, nenhuma outra transação Tj poderá acessar o item X
até que a transação Ti o desbloqueie, ficando esperando por tal desbloqueio.

Na exclusão mútua, quando há um bloqueio de um item na memória, nem um outro vai


conseguir bloquear esse item. Esse é um conceito que também se estuda em sistemas ope-
racionais.
10m
ANOTAÇÕES

www.grancursosonline.com.br 4
BANCO DE DADOS
Gerenciamento de Transação II

Viu algum erro neste material? Contate-nos em: [email protected]

O processo de espera coloca a transação Tj em uma fila de espera pelo item X até que
ele seja desbloqueado por Ti. Se quisermos resolver todos os problemas de transação atra-
vés do bloqueio binário, iremos criar filas de espera. Isso pode causar problemas de desem-
penho no banco de dados.

Os bancos de dados mais modernos, por padrão, não implementam o bloqueio binário,
mas utilizam outro tipo de bloqueio que veremos mais à frente.

Abaixo segue um modelo de bloqueio pessimista, onde é feito Lock para tudo que se faz.
Isso garante não ter problema de leitura suja, mas criará uma fila de espera.

Bloqueio Múltiplo ou Compartilhado/Exclusivo


Um esquema de bloqueio múltiplo (read/write ou compartilhado/exclusivo) permite que
um item de dado seja acessado por mais de uma transação para leitura.

O cenário pessimista de bloquear tudo é difícil. Imagine a seguinte situação: um homem


tira o saldo da conta. Depois sua esposa também tira o saldo da conta dele. Se não foi feito
nenhum saque, não há problema em duas pessoas fazerem leitura. Mas no caso do bloqueio
binário não é possível nem fazer a leitura, pois está bloqueado. A transação bloqueou a vari-
ável X, ninguém conseguirá ler a variável X. Os bancos de dados atualmente implementam
o bloqueio compartilhado, tornando-se possível que vários usuários consultem. Se não teve
atualização, não há problema em outra pessoa fazer uma leitura do item.
ANOTAÇÕES

www.grancursosonline.com.br 5
BANCO DE DADOS
Gerenciamento de Transação II

Viu algum erro neste material? Contate-nos em: [email protected]

As operações necessárias são:


• read_lock(X): bloqueia o item X para leitura, permitindo que outras transações leiam
o item X (bloqueio compartilhado);
• write_lock(X): bloqueia o item X para gravação, mantendo o bloqueio sobre o item X
(bloqueio exclusivo);
• unlock(X): desbloqueia o item X.

A implementação do bloqueio múltiplo requer uma tabela de bloqueios (<nome do item de


dado, lock, número de leituras, transações de bloqueio>) e uma fila de espera.

Quando temos um read_lock, permite-se que outra transação leia aquela mesma variá-
vel. O problema ocorre quando é a escrita.

Bloqueio em duas fases (Two-Phase Locking – 2PL)


15m
Para garantir escalonamentos serializáveis (escalonamentos em que se possa ganhar
tempo de resposta), as operações de bloqueio e desbloqueio nas transações devem seguir
protocolos.

O protocolo mais usado é o protocolo de bloqueio em duas fases (Two-Phase Locking).


Todas as operações de bloqueio (read_lock e write_lock) precedem a primeira operação de
desbloqueio (unlock).
ANOTAÇÕES

www.grancursosonline.com.br 6
BANCO DE DADOS
Gerenciamento de Transação II

Viu algum erro neste material? Contate-nos em: [email protected]

As transações são divididas em duas fases:


• Expansão ou crescimento: quando são emitidos todos os bloqueios;
• Contração ou recolhimento: quando os desbloqueios são emitidos e nenhum novo
bloqueio pode ser emitido.

Os bancos mais modernos fazem o bloqueio compartilhado ou o bloqueio de duas fases.


Veremos agora algumas questões para entendermos o gerenciamento de transações.

Até aqui temos uma visão geral do assunto de gerenciamento de transações, mas vere-
mos que às vezes as questões não são tão complexas, basta conhecer um pouco dos concei-
tos. A ideia é mostrar questões de um nível mais elevado para o momento da prova ser fácil.

DIRETO DO CONCURSO
1. (2018/IADES/APEX-BRASIL/ANALISTA/SERVIÇOS TÉCNICOS EM TECNOLOGIA DA
INFORMAÇÃO) Um conjunto importante de propriedades das transações em um banco
de dados recebe o acrônimo ACID. O significado de ACID é:
a. atomicidade, consistência, isolamento e durabilidade.
b. atenção, consistência, igualdade e determinismo.
c. atenção, consistência, isolamento e determinismo.
d. atomicidade, consistência, igualdade e durabilidade. e. atenção, criação, igualdade e
durabilidade.

COMENTÁRIO
A transação precisa ser atômica, ir até o final (se houver problema, é desfeita), ser consis-
tente (sair de um estado consistente para outro estado consistente), precisa ter isolamento
(serialização de transações e transações que ocorrem de forma concorrente). Pode até
haver o compartilhamento de informações nas estratégias de bloqueio de duas fases ou
compartilhado, mas é preciso tomar cuidado para não ter todos os problemas de leitura
suja ou leitura repetitiva. O isolamento da transação garante isso; precisa ter durabilidade
(uma vez que foi gravado o valor, ele permanece gravado).
ANOTAÇÕES

www.grancursosonline.com.br 7
BANCO DE DADOS
Gerenciamento de Transação II

Viu algum erro neste material? Contate-nos em: [email protected]

2. (2017/CESPE/TRF – 1ª REGIÃO/ANALISTA JUDICIÁRIO – INFORMÁTICA) A respeito


dos conceitos de banco de dados, normalização, controle de concorrência e modela-
gem, julgue o item subsecutivo.
Atomicidade é a propriedade que garante que as transações não sejam afetadas pelo
funcionamento umas das outras nem tenham acesso aos resultados parciais entre si.

COMENTÁRIO
Vimos que ao fazer transações (T1 e T2), elas podem ser serializáveis. Há um isolamento
para garantir que não vai haver problemas, mas pode haver resultados parciais entre si
dependendo da estratégia de bloqueio.
A atomicidade é a garantia de que a transação vai até o final, saindo do estado A para o B.
Se houver algum problema nesse caminho, ela é desfeita e retorna para o ponto A.
A questão misturou conceito de isolamento com atomicidade.
20m

3. (2017/FCC/DPE–RS/ANALISTA/BANCO DE DADOS) As transações em um banco de


dados relacional devem respeitar as propriedades representadas pelo acrônimo ACID,
sendo que o D significa durabilidade, segundo a qual:
a. todas as operações de uma transação devem ser inseridas no banco de dados, ou
então nenhuma das operações da transação.
b. após uma transação ter sido finalizada com sucesso, suas alterações no banco de
dados tornam-se persistentes, mesmo se houver queda ou falha do sistema.
c. uma transação não deve influenciar nas outras transações, evitando a ocorrência de
condições de erro.
d. cada transação deve preservar a correção e consistência globais do banco de dados.
e. não há comunicação ou troca de dados entre transações em execução.

COMENTÁRIO
Se o banco de dados pegar fogo, os dados estarão lá? Sim, pois haverá um backup para
recuperar a informação persistente. Por isso, em caso de falhas (incêndio, alagamento)
uma vez “commitado”, o dado ficará salvo. Mas no caso de haver perda do backup, perde-
-se o dado. Não é mais um problema de transação.
ANOTAÇÕES

www.grancursosonline.com.br 8
BANCO DE DADOS
Gerenciamento de Transação II

Viu algum erro neste material? Contate-nos em: [email protected]

4. (2013/UFC/ANALISTA DE TECNOLOGIA DA INFORMAÇÃO) Em banco de dados, uma


transação é um conjunto de procedimentos que é executado no banco de dados, que
para o usuário é visto como uma única ação. Para garantir a integridade de uma transa-
ção, algumas propriedades devem dar-se no ambiente do banco de dados. De acordo
com as afirmações abaixo, marque a alternativa correta que associa as afirmações a
uma das propriedades.

• Se uma transação é concluída com sucesso, então seus efeitos são persistidos.
• Ou todas as ações da transação acontecem, ou nenhuma delas acontece.

a. durabilidade e atomicidade.
b. isolação e esquematização.
c. durabilidade e consistência.
d. persistência e automação.
e. isolação e atomicidade.

COMENTÁRIO
A primeira afirmação diz respeito à durabilidade. A segunda trata da atomicidade.

5. (2018/FADESP/BANPARÁ/TÉCNICO EM INFORMÁTICA – BANCO DE DADOS) Um


SGBD deve aplicar os conceitos ACID (Atomicidade; Consistência; Isolamento; Durabi-
lidade) na gestão das transações. Examine as seguintes assertivas:

I – Exclusividade na execução da transação.


II – Sem problemas de integridade.
III – Em uma transação ou se faz tudo ou nada.
IV – Permanência da gravação no banco.

São características das propriedades Consistência e Atomicidade:


a. I e II.
b. II e III.
c. III e IV.
d. I e IV.
e. I e III.

www.grancursosonline.com.br 9
BANCO DE DADOS
Gerenciamento de Transação II

Viu algum erro neste material? Contate-nos em: [email protected]

COMENTÁRIO
=
No item I, que diz respeito à permanência da gravação no banco, seria chamado de durabi-
lidade. O item II correspondente à exclusividade na execução da transação, chamaríamos
de isolamento. O item III que afirma ser sem problemas de integridade, corresponderia à
consistência. O item IV correspondente a uma transação ou se faz tudo ou nada, chama-
25m
ríamos de atomicidade.

6. (2010/CESPE/BANCO DA AMAZÔNIA/TÉCNICO CIENTÍFICO – TECNOLOGIA DA IN-


FORMAÇÃO) Acerca dos mecanismos de segurança e controle de concorrência dos
sistemas de banco de dados, julgue o item que se segue.

O isolamento de uma transação é uma propriedade que garante que a transação seja
encarada como uma unidade atômica de trabalho: ou todas as suas modificações de
dados são executadas ou nenhuma delas é executada.

COMENTÁRIO
Muitas questões estão abordando as características da transação, e é possível resolvê-las
por meio do acrônimo ACID. O item da questão corresponde ao conceito de atomicidade.

7. (2014/CESPE/TJ-SE/ANALISTA JUDICIÁRIO – BANCO DE DADOS) Julgue o item que


se segue, acerca das linguagens de definição, manipulação, controle e transação de
dados em sistemas gerenciadores de banco de dados relacionais.

Os comandos commit e rollback são utilizados para finalizar uma transação.

COMENTÁRIO
O rollback finaliza a transação também, só que ele desfaz as operações.
Se uma transação for “commitada” ela será finalizada com sucesso; se for feito o rollback,
ela será finalizada sem sucesso. Mas ambos são utilizados para finalizar uma transação.
Essa é uma questão polêmica, pois o natural é pensar que somente o commit finaliza a
transação. Porém, a questão não mencionou que a transação foi finalizada com sucesso
ou sem sucesso. O rollback também finaliza a transação de alguma forma.
30m
A única forma de entender essa questão como correta é sabendo que o rollback finaliza a
transação sem sucesso.

www.grancursosonline.com.br 10
BANCO DE DADOS
Gerenciamento de Transação II

Viu algum erro neste material? Contate-nos em: [email protected]

Falamos sobre os tipos de transações e as serializações. As questões sobre os tipos de


bloqueios e escalonamentos são poucas na prática. No geral, dentro do assunto de transa-
ções é cobrado o acrônimo ACID. O conselho é não esquecer o significado desse acrônimo:
atomicidade, consistência, isolamento e durabilidade.

GABARITO
1. a
2. E
3. b
4. a
5. b
6. E
7. C

�Este material foi elaborado pela equipe pedagógica do Gran Cursos Online, de acordo com a aula
preparada e ministrada pelo professor Washington Almeida.
A presente degravação tem como objetivo auxiliar no acompanhamento e na revisão do conteúdo
ministrado na videoaula. Não recomendamos a substituição do estudo em vídeo pela leitura exclu-
siva deste material.
ANOTAÇÕES

www.grancursosonline.com.br 11
BANCO DE DADOS
Segurança em Banco de Dados

Viu algum erro neste material? Contate-nos em: [email protected]

SEGURANÇA EM BANCO DE DADOS

Vamos trabalhar agora com segurança em banco de dados. Esse tópico tem muito a ver
com comandos SQL de controle, GRANT e o REVOKE e como se faz a segurança de banco
de dados no nível de controle de permissões de usuário.
O SGBD fornece técnicas que possibilitem que certos usuários ou grupos de usuários
acessem apenas partes selecionadas de um banco de dados, sem obter acesso ao restante
do banco de dados. Temos os chamados controles. Vamos estudar mais adiante que isso
pode ser feito por meio das visualizações (views).
O SGBD inclui um subsistema de autorização e segurança de BD, que é responsável por
garantir a segurança de partes de um banco de dados, criando mecanismos de segurança.
Vamos estudar que há basicamente dois tipos de mecanismos. Mecanismos de segurança
em banco de dados são aplicáveis contra diversos tipos de ameaças.
Vamos ver que é possível fazer isso via comandos SQL. A criação de esquemas para
prover privilégios de acesso a usuários autorizados, de modo a fornecer e revogar privilégios.
A Segurança em Banco de Dados é dividida em Sigilo, Integridade e Disponibilidade.
Os SGBDs controlam os dados. Os dados são os fatos brutos, são os registros das inú-
meras operações que as aplicações vão fazendo no dia a dia. A partir do momento que se tira
contexto desse dado, chamamos de informação. Geramos algum valor. Por exemplo, temos
o cadastro dos alunos que estão assistindo ao curso. O registro é o fato bruto, é o dado. A
partir do momento em que se faz algumas análises, alunos que moram em uma certa região
do país, alunos do sexo masculino, feminino, alunos que trabalham etc.
O Banco de Dados garante a segurança dos dados, a segurança da informação.
Sigilo: quando se fala em sigilo, podemos entender com confidencialidade. Usuários não
devem acessar dados aos quais não possuem permissão. Exemplo: um Correntista acessar
os dados da conta bancária de outro correntista.

Um dos mecanismos é o de separação dos esquemas e atribuição de privilégios.


ANOTAÇÕES

www.grancursosonline.com.br 1
BANCO DE DADOS
Segurança em Banco de Dados

Viu algum erro neste material? Contate-nos em: [email protected]

As operações do banco de dados podem ser também criptografadas. Há uma camada


que não permite visualizar o dado.
5m
Integridade: Usuários não devem modificar dados sem permissão. Exemplo: Somente o
professor pode alterar a nota da prova do aluno.

Um usuário pode fazer delete de dados, desde que ele tenha os privilégios concedidos.
Os que não têm permissão, não devem alterar.
Disponibilidade: O dado deve star disponível sempre que preciso.

CID são propriedades básicas da segurança da informação. se houver um rompimento


de alguma dessas 3 propriedades, temos um incidente de segurança. Exemplo: O BD pre-
cisa estar disponível quando determinado usuário devidamente autorizado necessitar reali-
zar uma operação.

MEDIDAS DE SEGURANÇA

Define uma política de segurança que especifica quais são os usuários que possuem
autorização de acesso ao BD e com que finalidade.
Estamos seguindo autores clássicos.
Navathe trata dos dois mecanismos de segurança no nível do SGBD para garantir que
não aconteça incidentes com relação à CID:
ANOTAÇÕES

www.grancursosonline.com.br 2
BANCO DE DADOS
Segurança em Banco de Dados

Viu algum erro neste material? Contate-nos em: [email protected]

Discricionário – Usados para conceder privilégios aos usuários (ad hoc), como os

modos de acesso a arquivos ou registros de dados (leitura, inserção, exclusão ou atualiza-
ção). Vamos estudar um comando chamado GRANT que fornece permissão nos comandos
SQL (select, insert, delete, update);
• Obrigatório – Usados para impor segurança de acordo com o nível no qual determi-
nados dados e usuários foram classificados (multinível de camadas, ou seja, usuários
classificados em grupos, e damos permissão nos grupos de usuários).

Controle de Acesso: prevenir o acesso de pessoas não autorizadas. Dados de autenti-


cação são verificados quando o usuário faz o login. Login e senha são as formas clássicas
de acesso.
Controle de login: as operações realizadas por determinado usuário são registradas nos
arquivos de log.
10m
Controle de acesso aos Logs: Identificar a conta do usuário, o terminal, o IP da máquina,
a data e horário de acesso aos arquivos de log. Em caso de problemas, realizar Auditorias do
BD, com restauração de versões anteriores do BD, para rastrear as operações.
Uma das questões básicas nos bancos de dados é quando se instala algum software
de mercado. Isso acontece muito com o SQL service, em que há alguns logs habilitados por
default. Se não desabilitar o que não for necessário, o disco enche rapidamente e, quando
isso acontece, há uma indisponibilidade do SGBD como um todo.
Então, é comum que se desabilite tudo. O que acontece então é que ninguém mais vai
saber o que foi feito. Se houver um incidente no banco, ninguém saberá quem fez. Vai ser
impossível de se fazer auditorias.

Segurança e o DBA (Administrador de BD) – responsabilidades


• Classificar os usuários e os dados de acordo com a política da organização. Ele que
implementa os níveis de acesso. Quando se tem privilégios a serem concedidos a
usuários, deve-se formar grupos. Exemplos: grupo da TI – os usuários desse grupo
terão um nível de privilégio parecido. No caso das medidas de controle discricionário,
é possível dar privilégios a usuários específicos. Exemplo: user TI 10;
• Abrir contas, definindo user/password de acesso ao BD. Cria-se uma senha padrão
para o primeiro acesso;
• Atribuir e retirar privilégios de determinados perfis;
ANOTAÇÕES

www.grancursosonline.com.br 3
BANCO DE DADOS
Segurança em Banco de Dados

Viu algum erro neste material? Contate-nos em: [email protected]

• Definir níveis de segurança;


• O DBA é responsável pela segurança geral do BD.

É preciso monitorar o banco de dados o tempo todo, verificando os acessos, observando


políticas de back up. É todo um trabalho do DBA para a boa performance do banco.

Controle de Acesso Discricionário


Baseado em Privilégios
Consiste no direito de acesso a objetos de Banco de Dados, incluindo os mecanismos de
concessão e revogação.
O Método Típico é usando os comandos GRANT e REVOKE, que são comandos SQL.
Classicamente há os comandos DDL e DML. Depois surgiram os comandos DTL (de tran-
sações) e DCL (controle): GRANT (Conceder) e REVOKE (Retirar).
15m
O criador do objeto possui todos os privilégios sobre o objeto que criou.
O subsistema de segurança do SGBD mantém uma tabela de privilégios, com dados de
quem recebeu e perdeu privilégios sobre os objetos.
De forma genérica, é assim que funciona nos 4 SGBDs que as bancas têm cobrado.

Comando GRANT
Garante que apenas solicitações feitas por usuários que tenham os privilégios adequa-
dos sejam permitidas.
Sintaxe:
Todos implementam basicamente da mesma forma.
ANOTAÇÕES

www.grancursosonline.com.br 4
BANCO DE DADOS
Segurança em Banco de Dados

Viu algum erro neste material? Contate-nos em: [email protected]

Comando GRANT
É possível estabelecer mecanismos discricionários.
SELECT: permite ler dados de todas as colunas da tabela;
INSERT (nome_coluna): permite inserir tuplas com valores não nulos ou não default na
coluna especificada;
DELETE: permite excluir registros da tabela;
REFERENCES (nome_coluna): permite definir chaves estrangeiras, que fazem
referência à coluna especificada.

Propagação de Privilégios
Quando se concede privilégios, é possível conceder também a opção para que o usuário
que recebeu o privilégio também possa conceder privilégios a outros usuários.
Se um usuário possui privilégios com GRANT OPTION, ele pode transferir seus privilé-
gios para outros usuários (com ou sem GRANT OPTION);
Exemplo: Maria criou as tabelas FUNCIONARIO (mat, nome, data_nasc, salario, num_
dep) e DEPARTAMENTO (id_dep, nome, sigla, gerente). Maria é proprietária da tabela, e
pode conceder privilégios sobre essas tabelas:

Observe na figura acima que Maria deu permissão a João para: insert e delete (mas não
tem permissão para propagar privilégios).
Para Joana, permissões de select com permissão de propagar privilégios.
20m
E para Marcos, permissão de select.
ANOTAÇÕES

www.grancursosonline.com.br 5
BANCO DE DADOS
Segurança em Banco de Dados

Viu algum erro neste material? Contate-nos em: [email protected]

Manoel pode consultar e inserir tuplas na tabela funcionário.

Antônio pode excluir registros (tuplas) da tabela departamento e autorizar outros usuários
a fazerem o mesmo (por causa de GRANT OPTION).

Renata pode modificar apenas o campo salário da tabela funcionário.

Comando REVOKE
Em algumas situações, é necessário revogar os privilégios de determinado usuário.
É possível remover um privilégio ou apenas o GRANT OPTION de um privilégio.
Observe a sintaxe padrão do comando:
ANOTAÇÕES

www.grancursosonline.com.br 6
BANCO DE DADOS
Segurança em Banco de Dados

Viu algum erro neste material? Contate-nos em: [email protected]

Exemplo

Comando executado por João.

Comando executado por Maria.

Comando executado por João.

Neste caso, Maria e Renata perdem os privilégios automaticamente.


Renata teria mantido o privilégio se o tivesse recebido de João, e não de Maria.
Como João fez CASCADE, ele retirou os privilégios de Maria e de todo mundo para quem
Maria passou os privilégios.
Isso pode acontecer o DBA consegue remover com CASCADE o privilégio de todos a
partir de um ponto.
Vamos estudar algumas questões sobre segurança de banco de dados e os mecanismos
discricionários e obrigatórios (em que se criam grupos, com acessos a certos esquemas). É
um tipo de acesso multicamadas.
25m
As questões são mais antigas, pois esses assuntos não têm sido cobrados mais
recentemente.
ANOTAÇÕES

www.grancursosonline.com.br 7
BANCO DE DADOS
Segurança em Banco de Dados

Viu algum erro neste material? Contate-nos em: [email protected]

DIRETO DO CONCURSO
1. (2013/CESGRANRIO/IBGE/ANALISTA/SUPORTE OPERACIONAL) Uma das ativida-
des principais da administração de SGBD é gerenciar o controle de acesso ao banco de
dados, determinando que direitos ou privilégios cada usuário possui. Uma das formas
mais importantes de implementar o controle de acesso é conhecida como controle de
acesso discricionário, que é suportada no SQL pelos comandos.

a. CREATE GRANT e DROP GRANT


b. CREATE ROLE e DROP ROLE
c. GRANT CREATE e GRANT DROP
d. GRANT e REVOKE
e. GRANT e UNGRANT

COMENTÁRIO
No caso da Banca Cesgranrio, é melhor marcar as questões “mais corretas”.
Role existe em alguns bancos, quando se criam papéis, que são atribuídos a vários usuários.
Normalmente os usuários finais que tem acessos nas bases têm permissões de comandos
DML. Mas também existem permissões de comando DDL. Não são assuntos que as ban-
cas cobram.

2. (2015/FCC/MPE/PB/ANALISTA DE SISTEMAS/ADMINISTRADOR DE BANCO DE DA-


DOS) Um Administrador de Banco de Dados Oracle deseja conceder ao usuário Pe-
dro permissão de acesso à sua tabela Processo com privilégio para consultar dados
e inserir linhas na tabela, além de permitir que o usuário Pedro conceda esses privi-
légios a outros usuários. A instrução utilizada pelo Administrador de Banco de Dados,
para isso, foi

a. GRANT select, insert ON Processo TO Pedro;


b. GRANT select, insert ON Processo TO Pedro GRANT CASCADE;
c. ROLE select, insert ON Processo TO Pedro WITH GRANT CASCADE;
ANOTAÇÕES

www.grancursosonline.com.br 8
BANCO DE DADOS
Segurança em Banco de Dados

Viu algum erro neste material? Contate-nos em: [email protected]

d. GRANT select, insert ON Processo TO Pedro WITH GRANT OPTION;


e. GRANT select, insert ON Processo TO Pedro CONSTRAINT autoriza
GRANT CASCADE.

COMENTÁRIO
A sintaxe GRANT e REVOKE é praticamente igual em todos os bancos.
Nesse caso, é preciso que haja GRANT OPTION.
30m

3. (2017/FCC/TRT/MS/ANALISTA JUDICIÁRIO/TECNOLOGIA DA INFORMAÇÃO) Uma


das atribuições do administrador de banco de dados Oracle é conceder permissões
de acesso a usuários do banco de dados. Para isso pode ser utilizada, por exemplo, a
instrução abaixo.
GRANT select ON TRT.employees TO paulo WITH...I...;

Esta instrução concede privilégio de SELECT na tabela employees do esquema TRT ao


usuário paulo. Para este usuário poder estender seus privilégios de objeto para outros
usuários, deve ser incluída na lacuna I

a. PERMISSION CASCADE
b. GRANT OPTION
c. GRANT PRIVILEGE
d. EXTEND ROLE
e. GRANT CASCADE

COMENTÁRIO
Novamente, é preciso haver GRANT OPTION.

4. (2012/CESPE/BANCO DA AMAZÔNIA/TÉCNICO CIENTÍFICO/BANCO DE DADOS)


Em linguagem SQL, os comandos GRANT e REVOKE permitem especificar, respecti-
vamente, concessão e revogação de privilégios aos usuários de bancos de dados.

COMENTÁRIO
Para questões da Banca CESPE, tome cuidado com os termos respectivamente,
por exemplo.

www.grancursosonline.com.br 9
BANCO DE DADOS
Segurança em Banco de Dados

Viu algum erro neste material? Contate-nos em: [email protected]

5. (2018/CESPE/EBSERH/TÉCNICO EM INFORMAÇÃO)

Tendo como referência o modelo lógico precedente, julgue o item a seguir

O comando GRANT DELETE ON Hospital TO ebserh; tem a finalidade de conceder o


privilégio de remoção da tabela Hospital ao usuário ebserh.

COMENTÁRIO
Sobre esses esquemas, é preciso relembrar Modelo Entidade Relacionamento e Modelo
Relacional.
On – vai dizer qual é o objeto.
Há uma tabela chamada hospital.
To é o usuário.
Não é privilégio de remoção; é de deleção de registro.
O comando delete é para apagar registros.
Remoção de tabela seria apagar a tabela toda. Teria que ser GRANT DROP TABLE, de-
pendendo da sintaxe do banco.

6. (2018/CESPE/STJ/TÉCNICO JUDICIÁRIO/SUPORTE TÉCNICO) A respeito de siste-


mas gerenciadores de banco de dados (SGBD), julgue o próximo item.

O comando GRANT é utilizado para conceder privilégios em um objeto do SGBD, ao


passo que o comando REVOKE serve para cancelar um privilégio já concedido.

COMENTÁRIO
É exatamente como temos estudado. Cuidado com o termo excluir, que não é DELE-
TE, mas DROP!

www.grancursosonline.com.br 10
BANCO DE DADOS
Segurança em Banco de Dados

Viu algum erro neste material? Contate-nos em: [email protected]

Referências
DATE, Christopher J. Introdução a sistemas de bancos de dados. Elsevier Brasil, 2004.
Elmarsi, R., & NAVATHE, S. B. (2011). Sistemas de banco de dados. Fundamentals of
database systems.
SILBERSCHATZ, Abraham; SUNDARSHAN, S.; KORTH, Henry F. Sistema de banco de
dados. Elsevier Brasil, 2016.

Referências Gráficas
× Icons8.com.br

Design e Diagramação por:


× Charleson Guedes

GABARITO
1. d
2. d
3. b
4. C
5. E
6. C

�Este material foi elaborado pela equipe pedagógica do Gran Cursos Online, de acordo com a aula
preparada e ministrada pelo professor Washington Almeida.
A presente degravação tem como objetivo auxiliar no acompanhamento e na revisão do conteúdo
ministrado na videoaula. Não recomendamos a substituição do estudo em vídeo pela leitura exclu-
siva deste material.
ANOTAÇÕES

www.grancursosonline.com.br 11
BANCO DE DADOS
Alta Disponibilidade

Viu algum erro neste material? Contate-nos em: [email protected]

ALTA DISPONIBILIDADE

Disponibilidade é manter o banco de dados ativo, respondendo às requisições. A alta


disponibilidade consiste em estratégias para trazer a disponibilidade do banco de dados de
forma mais robusta, para não sofrer riscos de incidentes de indisponibilidade.

Alta Disponibilidade
É o termo utilizado para descrever a característica de um sistema com alta capacidade de
permanecer disponível pelo maior tempo possível durante a execução de serviços críticos.
Portanto, a alta disponibilidade tem relação com sistemas críticos, a exemplo do sistema de
controle de tráfego aéreo, o qual não pode ficar fora do ar.
Tem como característica principal a garantia das funcionalidades e alta tolerância a falhas
de hardware, software e energia por meio de dispositivos que gerem redundância no sis-
tema. A tolerância a falhas remete a características que fazem com que o sistema continue
operando mesmo que ocorram falhas. A redução dos pontos de falha minimiza os períodos
de interrupção no serviço.
O grau de disponibilidade é medido por meio de dois parâmetros:
• Tempo Médio entre Falhas (MTBF – Mean Time Between Failures)

• Tempo Médio de Recuperação(MTTR – Mean Time to Repair)


ANOTAÇÕES

www.grancursosonline.com.br 1
BANCO DE DADOS
Alta Disponibilidade

Viu algum erro neste material? Contate-nos em: [email protected]

Cluster
Cluster é uma implementação de compartilhamento de recursos computacionais utili-
zando dois ou mais dispositivos de computação.
Cluster pode ser definido como um agrupamento de computadores, também chamados
de “nós”, conectados entre si e trabalhando em conjunto com a finalidade de aumentar seu
desempenho na execução das tarefas.
Exemplo: um banco de dados opera em cima de um servidor. Se esse servidor falhar,
haverá indisponibilidade. Assim, é possível criar um cluster que absorve vários servidores
para responder pelo SGBD.
Alguns bancos, como os relacionais, têm arquitetura centralizada. Eles têm as carac-
terísticas da consistência, da disponibilidade e da tolerância ao parcelamento. Esta última
consiste na tolerância a falhas e no particionamento dos dados, uma vez que os bancos de
dados relacionais não são muito tolerantes ao particionamento, mas são bons na consistên-
cia e na disponibilidade. Muitos bancos No-SQL são muito bons no particionamento e na dis-
ponibilidade, mas são ruins na consistência.
5m
Na estratégia de cluster, não basta apenas adicionar vários nós ao cluster para que o
banco de dados continue funcionando. O maior gargalo das aplicações, na maioria das vezes,
é o banco de dados – principalmente os relacionais, porque existe a necessidade de todos
os usuários acessarem os esquemas. Quando há muitas transações em cima do banco, este
começa a fazer logs para garantir as características da transação (atomicidade, consistência,
isolamento e durabilidade).
Assim, em alguns cenários é possível abdicar um pouco da consistência para ter uma alta
disponibilidade. É possível observar, então, que nem sempre os bancos de dados relacionais
conseguem implementar a estratégia de cluster.
Os “nós” podem estar conectados através de uma rede local, são mais comuns os padrões
da Ethernet por terem menor custo e permitirem a retirada ou a inclusão de nós sem alterar
seu funcionamento.
São vantagens de um cluster:

• Alto Desempenho;
• Escalabilidade;
• Tolerância a Falhas;
• Baixo custo;
ANOTAÇÕES

www.grancursosonline.com.br 2
BANCO DE DADOS
Alta Disponibilidade

Viu algum erro neste material? Contate-nos em: [email protected]

Independência de fornecedores: possibilidade de adicionar inúmeros “nós”.



Na prática, não há tanta independência de fornecedores, porque há questões de
licenciamento.

Podem ser adicionados vários “nós” dos bancos de dados na rede de comunicação. Isso
fica transparente para a aplicação. Se um banco cair, os demais estarão operando, logo, não
haverá problemas com a disponibilidade do banco de dados. Existem 3 tipos de Clusters:
ANOTAÇÕES

www.grancursosonline.com.br 3
BANCO DE DADOS
Alta Disponibilidade

Viu algum erro neste material? Contate-nos em: [email protected]

Alta Performance – High Performance Computing (HPC)


São utilizados para se obter alto desempenho em menor tempo para grandes proces-
samentos. São máquinas com vários processadores, possuem maior poder computacional
podendo alcançar maior velocidade de processamento. É utilizado na necessidade de se
processar grandes quantidades de dados, como em resultados de concursos, eleições, ves-
tibulares ou em grandes variedades de dados como cálculos. Ex.: Appliances de DW.
Appliances são hardwares específicos que têm softwares especializados, nos quais são
trazidas as melhores características para o hardware.
10m
No cluster é como ter uma pista na qual os carros trafegam. É possível utilizar a estraté-
gia de aumentar as pistas, tendo em vista que pode haver acidente em uma pista, obstruindo
o tráfego. Aumentar as vias equivale a aumentar os “nós” do cluster. Entretanto, só o fato de
aumentar as vias não aumenta a velocidade. Assim, é possível implementar uma AutoBAn.

Balanceamento de Carga – Load Balance (LB)


• As tarefas são divididas igualmente entre os nós individuais ou divididas por performance;
• Cada nó recebe uma parte de acordo com sua capacidade operacional;
• As requisições são direcionadas para o nó que estiver com o menor número de tarefas;
• São utilizados normalmente em aplicações Web, cujas requisições podem aumentar
em função da demanda e pode comprometer o desempenho computacional.

Escalabilidade

Existem dois tipos:

• Vertical (scale up): significa adicionar recursos em um único nó do sistema (mais


memória ou um disco rígido mais rápido).
• Horizontal (scale out): significa adicionar mais nós ao sistema, tais como um novo
computador com uma aplicação para clusterizar o software. Alguns SGBD têm maior
problema para incorporar essa escalabilidade, porque o software não consegue adi-
cionar recursos e fazer gerenciamento com os inúmeros nós de forma adequada, a
exemplo do Postgre.
15m
ANOTAÇÕES

www.grancursosonline.com.br 4
BANCO DE DADOS
Alta Disponibilidade

Viu algum erro neste material? Contate-nos em: [email protected]

High Availability (HA)

• Os clusters de HA buscam a alta disponibilidade dos sistemas de processamento sem


paradas, através de monitoramento de possíveis falhas de HW (nós) ou de SW e de
soluções de replicação de dados entre computadores.
• Máquinas podem ser substituídas sem indisponibilidade do sistema.
• Há redundância de HW com replicação de dados.
• Clusters de HA são utilizados amplamente em instituições financeiras, e-commerce,
aeroportos, hospitais, e outros sistemas críticos.


DIRETO DO CONCURSO
1. (FCC/2020/AL-AP/ANALISTA LEGISLATIVO – DESENVOLVEDOR DE BANCO DE DA-
DOS) Os diferentes Sistemas Gerenciadores de Bancos de Dados Relacionais (SGB-
DRs) concorrem entre si, disponibilizando os melhores recursos, portabilidade, segu-
rança e alta disponibilidade. Este último conceito, alta disponibilidade, tem a ver com

a. Vetores.
b. Page-Pull.
c. Cluster.
d. Backup as a Service − BaaS.
ANOTAÇÕES

www.grancursosonline.com.br 5
BANCO DE DADOS
Alta Disponibilidade

Viu algum erro neste material? Contate-nos em: [email protected]

e. Disaster Recovery as a Service − DraaS.

COMENTÁRIO
O Postgre, por exemplo, é muito bom na escalabilidade vertical.
20m

2. (COMPERVE/2020/TJ-RN/ANALISTA DE SUPORTE PLENO – BANCO DE DADOS)


Um Sistema de Gerenciamento de Banco de Dados (SGBD) é o conjunto de softwares
responsáveis pelo gerenciamento de base de dados. Para que um software seja consi-
derado um SGBD, ele deve ter como requisitos:
a. backup e restauração, orientação a objetos e relacionamento complexo entre dados.
b. compartilhamento de dados, fornecimento de múltiplas interfaces e restrições de
integridade.
c. acesso multi-usuário, alta disponibilidade e restrições de integridade.
d. relacionamento complexo entre dados, compartilhamento de dados e orientação
a objetos.

COMENTÁRIO
Os SGBDs são muito bons para compartilhar dados de forma independentes, baseados
nas camadas (conceitual, lógico, físico). A orientação a objetos depende do tipo de SGBD.
Relacionamento complexo entre dados não é um requisito tão necessário. Em SGBDs que
não é buscada a alta disponibilidade não há implementação de clusters.

GABARITO
1. c
2. b

Referências: DATE, Christopher J. Introdução a sistemas de bancos de dados. Else-


vier Brasil, 2004. Elmarsi, R., & NAVATHE, S. B. (2011). Sistemas de banco de dados. Fun-
damentals of database systems. SILBERSCHATZ, Abraham; SUNDARSHAN, S.; KORTH,
Henry F. Sistema de banco de dados. Elsevier Brasil, 2016.
Referências Gráficas -Icons8.com.br
�Este material foi elaborado pela equipe pedagógica do Gran Cursos Online, de acordo com a aula
preparada e ministrada pelo professor Washington Almeida.
A presente degravação tem como objetivo auxiliar no acompanhamento e na revisão do conteúdo
ministrado na videoaula. Não recomendamos a substituição do estudo em vídeo pela leitura exclu-
siva deste material.

www.grancursosonline.com.br 6
BANCO DE DADOS
SQL Views

Viu algum erro neste material? Contate-nos em: [email protected]

SQL VIEWS

Visões (Views)
Uma visão (view), na terminologia SQL, pode ser definida como uma relação única que
é derivada de outras tabelas ou visões previamente definidas.
Uma view é uma forma de implementar segurança em banco de dados, ocultando
informações a determinados grupos de usuários.
Uma view não existe necessariamente na forma física – ela é considerada uma tabela
virtual. Normalmente, a view é baseada em consulta (comando select), logo, quando a view
é consultada, ela executa o comando select que foi definido.
Em uma tabela de conta-corrente, por exemplo, não são dadas permissões para os usuá-
rios consultarem essa tabela, sendo possível criar uma view, na qual se dá a permissão para
consultar a tabela. Na projeção de consultas SQL, pode-se utilizar apenas algumas colunas
da view ou alguns conjuntos de dados.
Há limitação em relação às operações de atualização que podem ser aplicadas. Existem
as 12 regras de Codd, as quais determinam o que há nos bancos de dados relacionais. Uma
dessas regras prega que deve ser garantida a atualização das visualizações, isto é, será feito
o upgrade em cima da view, a qual mandará os dados para os dados envolvidos. Entretanto,
há algumas limitações. Não é uma boa prática criar views para fazer update ou insert da view.
5m
Não há limitação em relação às operações de consulta.
As tabelas utilizadas na definição da visão são chamadas de tabelas definidoras de visão.
Quando definimos uma View, o SGBD armazena a definição da view propriamente dita,
em vez do resultado (result set) da consulta.

Sempre que a View aparece em uma consulta, ela é substituída pela expressão da
consulta armazenada.
Uma visão sempre está atualizada. Se modificarmos as tuplas nas tabelas definidoras da
View, a View deve refletir automaticamente tais alterações.
As views materializadas são cópias dos dados em memória cache.
A definição de uma view em SQL é feita por meio do comando create view:
ANOTAÇÕES

www.grancursosonline.com.br 1
BANCO DE DADOS
SQL Views

Viu algum erro neste material? Contate-nos em: [email protected]

1. CREATE VIEW v AS <expressão de consulta>

<expressão de consulta> é qualquer expressão de consulta SQL válida. O nome da view


é representado por v.

Para remover uma view, utiliza-se o comando:


1. DROP VIEW <nome da view>

Criação de uma View


Selecionar os produtos com estoque zerado
Produtos

Nome_Prod Nome_Categ Nivel_Estoque Unid


Café Mercearia 10 KG
Açúcar Mercearia 0 5 KG
Sabão em Pó Limpeza 0 KG
Vinho Bebidas 8 750 ML
Refrigerante Bebidas 12 2L
ANOTAÇÕES

www.grancursosonline.com.br 2
BANCO DE DADOS
SQL Views

Viu algum erro neste material? Contate-nos em: [email protected]

SQL

Resultado:

Nome_Prod Nome_Categ Nivel_Estoque Unid


Açúcar Mercearia 0 5 KG
Sabão em Pó Limpeza 0 KG

10m
Crie uma view dos produtos com estoque zerado. Toda vez que essa view for consultada
devem ser trazidos os dados dos produtos que estão com estoque zerado. Utilizando-se dos
nomes de campos da tabela:
ANOTAÇÕES

www.grancursosonline.com.br 3
BANCO DE DADOS
SQL Views

Viu algum erro neste material? Contate-nos em: [email protected]

Toda vez que for dado o select vw_estoque_zerado, será trazido o comando acima.
Alterando-se os nomes dos campos:

Estoque zerado dos produtos de limpeza.

É feito o select sobre a view anterior e é colocado o L no nome_categ LIMPEZA.


ANOTAÇÕES

www.grancursosonline.com.br 4
BANCO DE DADOS
SQL Views

Viu algum erro neste material? Contate-nos em: [email protected]

Criação de uma View a Partir de Outra View


Transações

Nome Dt_Tr Val_Tr Tp_Tr


João 10/01 R$ 2.000,00 C
Maria 10/01 R$ 250.000,00 C
João 15/01 R$ 150,00 D
João 15/01 R$ 580.000,00 D
Maria 15/01 R$ 300,00 C
Renata 10/01 R$ 600.000,00 D
Marcos 15/01 R$ 550,00 C
Miguel 15/01 R$ 1.800.000,00 C
Renata 20/01 R$ 250.000,00 D
Marcos 20/01 R$ 45,00 C
Miguel 22/01 R$ 35,00 C

Clientes com saques suspeitos (acima de R$ 200K)

Dessa forma, são trazidos apenas os saques maiores do que R$ 200.000,00 (aqueles
realizados a débito – D).
ANOTAÇÕES

www.grancursosonline.com.br 5
BANCO DE DADOS
SQL Views

Viu algum erro neste material? Contate-nos em: [email protected]

O select feito em cima da VW_TRANSACOES_SUSPEITAS:

Nome Dt_Tr Val_Tr Tp_Tr


João 15/01 R$ 580.000,00 D
Renata 10/01 R$ 600.000,00 D
Renata 20/01 R$ 250.000,00 D

Saque suspeito no dia 15/01.

É interessante colocar o VW, pois, na hora de selecionar no banco, já ficará explícito que
é uma view. Porém, não é obrigatório.
15m

Nome Valor
João R$ 580.000,00
ANOTAÇÕES

www.grancursosonline.com.br 6
BANCO DE DADOS
SQL Views

Viu algum erro neste material? Contate-nos em: [email protected]

Criação de uma View a Partir de Várias Tabelas


Empréstimo

Num_Emp Num_Agencia Valor


E-15 Asa Sul R$ 2.000,00
E-16 Asa Norte R$ 5.000,00
E-17 Águas Claras R$ 4.000,00
E-18 Asa Sul R$ 7.000,00
E-19 Lago Sul R$ 6.000,00
ANOTAÇÕES

www.grancursosonline.com.br 7
BANCO DE DADOS
SQL Views

Viu algum erro neste material? Contate-nos em: [email protected]

Em vez de usar um joy para juntar as tabelas, apenas são indicadas as relações envol-
vidas e comparam-se as chaves. Essa é outra forma de juntar os registros. Esse tipo de
operação, para o banco de dados, é pior do que o joy, o qual tem vantagens em termos de
desempenho.
Tomador

Nome_Cliente Num_Emp
João E-15
Maria E-16
Marcos E-17
João E-18
Maria E-19
ANOTAÇÕES

www.grancursosonline.com.br 8
BANCO DE DADOS
SQL Views

Viu algum erro neste material? Contate-nos em: [email protected]

Em cima da view também podem ser utilizados operadores where.


O resultado dessa consulta seria João (R$ 7.000,00) e Maria (R$ 6.000,00).

Atualização de Views
A atualização de views representa a atualização das tabelas definidoras da view a partir
de comandos DML na própria view (update, insert e delete). Embora seja algo possível, a
atualização de views pode acarretar diversos problemas de consistência de dados.
Se for feito um insert na view, ela mandará os dados para sua tabela definidora.
Produtos

Nome Categoria Preco Unidade


Café Mercearia R$ 7,90 KG
Açúcar Mercearia R$ 5,90 5 KG
Sabão em Pó Limpeza R$ 9,90 KG
Vinho Bebidas R$ 79,90 750 ML
Refrigerante Bebidas R$ 6,90 2L

20m

www.grancursosonline.com.br 9
BANCO DE DADOS
SQL Views

Viu algum erro neste material? Contate-nos em: [email protected]

No final, seriam mostrados apenas os dois últimos produtos da tabela.


É possível fazer o insert, passando o nome do produto, a categoria e a unidade. O pro-
blema é que essa tabela também tem o preço.

Nome Categoria Preco Unidade


Café Mercearia R$ 7,90 KG
Açúcar Mercearia R$ 5,90 5 KG
Sabão em Pó Limpeza R$ 9,90 KG
Vinho Bebidas R$ 79,90 750 ML
Refrigerante Bebidas R$ 6,90 2L
Suco de Uva Bebidas Null 1L

Se a tabela tivesse restrição de nulo no preço, daria erro.


Apesar disso ser possível, não é uma boa prática, pois pode gerar inconsistência
nos dados.
ANOTAÇÕES

www.grancursosonline.com.br 10
BANCO DE DADOS
SQL Views

Viu algum erro neste material? Contate-nos em: [email protected]

Empréstimo

Num_Emp Num_Agencia Valor


E-15 Asa Sul R$ 2.000,00
E-16 Asa Norte R$ 5.000,00
E-17 Águas Claras R$ 4.000,00
E-18 Asa Sul R$ 7.000,00
E-19 Lago Sul R$ 6.000,00

Tomador

Nome_Cliente Num_Emp
João E-15
Maria E-16
Marcos E-17
João E-18
Maria E-19

Foi inserido Renata com o valor de R$ 5.000,00. As tabelas envolvidas têm mais campos,
então haveria muitos null.
ANOTAÇÕES

www.grancursosonline.com.br 11
BANCO DE DADOS
SQL Views

Viu algum erro neste material? Contate-nos em: [email protected]

Num_Emp Num_Agencia Valor


E-15 Asa Sul R$ 2.000,00
E-16 Asa Norte R$ 5.000,00
E-17 Águas Claras R$ 4.000,00
E-18 Asa Sul R$ 7.000,00
E-19 Lago Sul R$ 6.000,00
Null Null R$ 5.000,00

Nome_Cliente Num_Emp
João E-15
Maria E-16
Marcos E-17
João E-18
Maria E-19
Renata Null

Referências
DATE, Christopher J. Introdução a sistemas de bancos de dados. Elsevier Brasil, 2004.
Elmarsi, R., & NAVATHE, S. B. (2011). Sistemas de banco de dados. Fundamentals of
database systems.
SILBERSCHATZ, Abraham; SUNDARSHAN, S.; KORTH, Henry F. Sistema de banco de
dados. Elsevier Brasil, 2016.

Referências Gráficas
Icons8.com.br

�Este material foi elaborado pela equipe pedagógica do Gran Cursos Online, de acordo com a aula
preparada e ministrada pelo professor Washington Almeida.
A presente degravação tem como objetivo auxiliar no acompanhamento e na revisão do conteúdo
ministrado na videoaula. Não recomendamos a substituição do estudo em vídeo pela leitura exclu-
siva deste material.
ANOTAÇÕES

www.grancursosonline.com.br 12
BANCO DE DADOS
SQL Views II

Viu algum erro neste material? Contate-nos em: [email protected]

SQL VIEWS II

Dando continuidade ao estudo das Views, será falado sobre as Views materializadas e
seus tipos, algo pouquíssimo falado nos concursos, mas existe questão sobre isso, então é
importante aprender.

Atualização de Views - foi estudado no bloco anterior, pode ser feito insert nas views,
algo garantido no modelo relacional, apesar de ter uma série de restrições.

Em vw_produto_bebida pode ser feito um insert, mas esta só traz as colunas produto,
categoria, unidade, filtrado por BEBIDAS, então na hora do insert faltarão dados, como no
caso do bloco anterior.

www.grancursosonline.com.br 1
BANCO DE DADOS
SQL Views II

Viu algum erro neste material? Contate-nos em: [email protected]

Existe uma forma de se evitar o problema de colocar os dados nulos, que é o uso de
with check option, as views podem ser definidas com essa cláusula. Então normalmente se
houver a cláusula WHERE e for inserido, por exemplo, um dado de HIGIENE, se tiver o with
check option, isso não vai ocorrer, porque neste caso só está retornando BEBIDAS, portanto
só poderá inserir se atender a cláusula WHERE.

• Uma View é atualizável se:


– A PK (chave primária) ou outra chave candidata estiver presente na lista de atributos;
– A cláusula FROM possui apenas uma relação;
– A cláusula SELECT possui apenas atributos da relação. Não possui expressões,
agregadas ou especificação distinct;
– Os atributos não listados na view podem ser definidos como nulos (se a pessoa tiver
a restrição de integridade referencial, se tentar inserir e disser que é “not null”, não
vai acontecer);
– A consulta não possui cláusula group by ou having (existe uma série de critérios para
fazer a atualização das views, lembrando que a view é uma consulta, então atualiza-
-se a relação que aquela view está consultando).

• Não são atualizáveis:


– Views definidas em múltiplas tabelas (Joins) (quando passar o insert, o banco não
saberá para onde enviar o dado, porque tem um resultado de um “join”, parecendo
que é apenas uma relação, mas são várias relações envolvidas);
5m
– Views como uso de funções de agregação (san, avg, max, mínimo).

Tipos de Views
• Dois (2) tipos:
– View Simples — Uma view simples recupera linhas de uma única tabela base, não
contém funções grupo e pode aceitar operações DML(Linguagem de Manipulação
de Dados) (então é possível fazer select em cima dela).
– View Complexa — Uma View complexa recupera linhas de várias tabelas, contém
funções de grupo e nem sempre permite operações DML.
ANOTAÇÕES

www.grancursosonline.com.br 2
BANCO DE DADOS
SQL Views II

Viu algum erro neste material? Contate-nos em: [email protected]

View Simples:

View Complexa:
ANOTAÇÕES

www.grancursosonline.com.br 3
BANCO DE DADOS
SQL Views II

Viu algum erro neste material? Contate-nos em: [email protected]

Essa teria uma equiparação entre duas tabelas, então são duas relações nessa view, ao
invés de fazer o join, faz-se a comparação pela cláusula where, e no final terá um resultado
parecido com a junção.

A view V_funcionario foi criada baseada em duas tabelas, tfuncionario e tdepartamento.

Nesse momento deixa de ser uma view simples e passa a ser uma view complexa (então
não irá, por exemplo, aceitar comandos DML, não acontecerá um insert, porque o resultado
dessa view só terá como coluna nome e matrícula e nome departamento, mas a tabela funcio-
nário e a tabela departamento tem outros campos, portanto não acontece nesse tipo de view).

Views Materializadas
(Oracle e Postgres tem essa opção)

• Alguns SGBDs permitem armazenar as relações resultantes de uma view, de modo
que, se as relações reais usadas na definição da view mudarem, a view permaneça
atualizada. São chamadas de views materializadas.
• O processo de manter a view atualizada é chamado de manutenção de view.
• Basicamente a diferença é que a view realiza a consulta no momento que o usuário faz
uma consulta nela e a materialized view (faz uma cópia dos dados) realiza a consulta
no momento em que uma das tabelas consultadas é atualizada (esses dados serão
atualizados quando houver alterações na tabela, então muda o fluxo).
10m
• A decisão de uso de views materializadas envolve a análise de custo-benefício:
• Tempo de resposta;
• Custo de Armazenamento e Overhead adicional de atualizações.

Obs. 1: normalmente, usa-se as views materializadas quando há algumas views que são
complexas, trazendo um conjunto gigantesco de dados, muita consulta é operada em
cima delas, e não há atualização dos dados de forma constante. Então observe que
na view normal faz-se a consulta e ela vai nas tabelas, enquanto a view materializa-
da é criada e faz uma cópia dos dados, enquanto as tabelas não forem atualizadas,
essa view fica com esses dados, mas se houver uma atualização na tabela, então o
SGBD pode fazer isso de forma rotineira, programando e fazendo a manutenção da
ANOTAÇÕES

www.grancursosonline.com.br 4
BANCO DE DADOS
SQL Views II

Viu algum erro neste material? Contate-nos em: [email protected]

view, e ela pegará os dados atualizados para trazer, para isso o SGBD tem várias
estratégias para implementar esse sincronismo.

Obs.2: esta aula é de teoria de views, porém como cada SGBD implementa, isso consta
nas aulas específicas. Lembre-se que nas aulas específicas de SGBD, não se passa
por assuntos como view materializada, pois existem muitas questões que perguntam
apenas da teoria, então se for observado que na aula do Oracle não fala de view
materializada, é porque não se cobra normalmente baseado no Oracle. Este curso
é baseado no que as bancas cobram mais, porque o assunto de SGBD específico
é muito extenso, as bancas cobram às vezes um assunto de um SGBD específico,
como o PL SQL no Oracle, outros bancos tem as suas linguagens procedurais para
implementar, mas que já não são tão cobradas. Portanto, as aulas não terão um con-
teúdo padrão, pois tem assuntos que não são cobrados na prova.

Às vezes, existem sistemas com uma grande quantidade de consultas enquanto o sis-
tema está operando no dia a dia. Se for feita uma série de consultas, gera-se mais custo adi-
cional, começando então um problema de lentidão no banco de dados. Neste caso, pode-se
criar uma view materializada, fazendo uma cópia dos dados, e a maioria dos usuários não
precisa daquela cópia do dado em tempo real, pois ela pode pegar uma cópia do dado do dia
anterior. Então, ao invés de fazer a sobrecarga nas tabelas que estão operando no dia a dia,
direcionam-se todas essas consultas para essas views materializadas, que trazem os dados
que estão em uma memória cache, que não interfere nos mesmos registros que estão nas
tabelas armazenadas do banco de dados, que são usadas pelo sistema transacional do dia
a dia. Este é um cenário em que se pode usar a view materializada.

EXERCÍCIOS DE FIXAÇÃO
15m
1. (2019 / UFC / UFC / TÉCNICO DE TECNOLOGIA DA INFORMAÇÃO) Sobre os concei-
tos relacionados às visões (views) em banco de dados, marque o item correto.
a. Para se criar uma view é necessário especificar uma stored procedure que ficará res-
ponsável pela atualização e manutenção dos dados.
b. A construção de uma view somente permite a escolha de campos de uma única
tabela como forma de reduzir a quantidade de campos retornados em uma consulta.
ANOTAÇÕES

www.grancursosonline.com.br 5
BANCO DE DADOS
SQL Views II

Viu algum erro neste material? Contate-nos em: [email protected]

c. O objetivo em se criar uma view é melhorar o desempenho de consultas recorrentes,


onde os dados passam a ser copiados para uma tabela física vinculada a view no
banco de dados.
d. O Sistema Gerenciador de Banco de Dados é responsável por manter as informações
das views atualizadas, mesmo quando ocorre alguma alteração nas tabelas bases
utilizadas na construção da view.
e. Uma das desvantagens da view é o espaço consumido para a disponibilização do
recurso, visto que a quantidade de espaço para armazenar um mesmo dado duplica
devido a existência de uma cópia física dos dados da tabela base.

COMENTÁRIO
Perceba que o examinador está perguntando sobre as views em geral, então, não confun-
da com as views materializadas, que é um tipo específico!
a. Haverá uma aula específica sobre stored procedures. Errada, pois não foi vista nenhu-
ma implementação de stored procedures, foram criadas várias views até o momento. Se
no edital constar esse assunto, haverá aula específica sobre isso, aplicada para todos os
bancos de dados.
b. Errada, pois de acordo com o estudado, existem as views complexas.
c. Se fosse uma view materializada, poderia ser falado que tinha uma cópia, mas não se faz
cópia para tabela física vinculada a view. É feita uma cópia e essa é guardada em algum
lugar que o SGBD faz o gerenciamento, no cache ou em uma memória secundária, e não
em uma tabela física, especificamente. Portanto, está errada. O examinador está falando
em views no geral, ou seja, um tipo de funcionalidade do banco que guarda uma consulta,
e essa simplesmente é aplicada nas tabelas que ela está relacionada.
d. Quando a tabela é atualizada, quando o usuário consultar a view, ela é um comando em
cima da tabela, o SGBD retorna esses dados para o usuário. Alternativa correta.
e. Não há espaço nenhum, é só guardar consulta, e também não há cópia física dos dados
da tabela base, portanto a alternativa está errada.

2. (2018 / CESPE / FUB / TÉCNICO DE TECNOLOGIA DA INFORMAÇÃO) Acerca dos


conceitos de otimização de consultas SQL e técnicas de análise de desempenho, julgue
o próximo item.
ANOTAÇÕES

www.grancursosonline.com.br 6
BANCO DE DADOS
SQL Views II

Viu algum erro neste material? Contate-nos em: [email protected]

Uma view materializada armazena apenas a consulta que define e apresenta o resulta-
do sempre atualizado de todas as operações de definição de dados DDL.
20m

COMENTÁRIO
Está errada, porque a view materializada não armazena apenas a consulta, essa seria a
view normal, pois a view materializada guarda também uma cópia dos dados. E os coman-
dos seriam DML, e não DDL.

3. (2018 / CESPE / TCE-MG / ANALISTA DE CONTROLE EXTERNO – CIÊNCIA DA


COMPUTAÇÃO) Julgue os itens a seguir, relativamente ao conceito de visão (view/
visualização) de um banco de dados.

I – Visões complexas podem utilizar comandos DML para manipulação dos dados.
II – Visões fazem referência a tabelas, sem armazenar nenhuma linha.
III – Visões complexas podem conter funções.
IV – Visões e tabelas temporárias são equivalentes quanto ao tratamento.

Estão certos apenas os itens:


a. I e II.
b. I e IV.
c. II e III.
d. I, III e IV.
e. II, III e IV.

COMENTÁRIO
I – Não podem utilizar comandos DML, porque às vezes tem “join”, não sendo possível
atualizar a view, então esta alternativa está errada.
II – O examinador está falando das linhas da tabela, e não da linha da consulta que é sal-
va na visão, então está correta.
III – Correta, pois podem conter funções de agregação.
IV – Sabe-se que também existem tabelas temporárias no banco de dados, sendo possível
criar “tabelas temp” para, por exemplo, guardar os dados em uma tabela quando alguns
comandos são feitos, então uma tabela temporária é criada para guardar enquanto o usu-
ário estiver naquela transação, e ao final da transação, a tabela some. Está errada, pois as
tabelas temporárias tem outra finalidade, não tendo relação com view.

www.grancursosonline.com.br 7
BANCO DE DADOS
SQL Views II

Viu algum erro neste material? Contate-nos em: [email protected]

4. (2018 / QUADRIX / CFBio / TÉCNICO EM TI)

CREATE VIEW BIOLOGO_VW AS


SELECT nome, endereco, telefone
FROM FUNCIONARIO
WHERE codigo_biologo=674;
25m

Com base no código SQL acima, julgue o item a seguir.

Ao ser executado, o código acima criará uma view materializada.

COMENTÁRIO
Já foi estudado que essa é a sintaxe de criar uma view normal, mas não foi estudado como
criar uma view materializada. Observe que, na sintaxe SQL, não existe view materializada,
pois é uma especificidade dos SGBDs, então alguns desses, no caso do postgres, é só
colocar como consta abaixo.

CREATE MATERIALIZED VIEW BIOLOGO_VW AS


SELECT nome, endereco, telefone
FROM FUNCIONARIO
WHERE codigo_biologo=674;

A questão está errada. Colocaria apenas a palavra “materializado”. No caso do Oracle, já


teria outra sintaxe para se criar uma view materializada, então o que é necessário saber é
que, da forma dada na questão, não se cria view materializada.

5. (2014 / CCV-UFS / UFS / TÉCNICO DE TECNOLOGIA DA INFORMAÇÃO) Em SQL, é


possível criar estruturas que funcionam como uma tabela virtual, cujo comportamento
assemelha-se a uma tabela real de banco de dados, entretanto, sem armazenar as
informações apresentadas. Essas estruturas não existem como uma entidade indepen-
dente na base de dados física. A essa estrutura, dá-se o nome de:
a. relacionamento.
b. índice.
c. visão.
d. transação.

www.grancursosonline.com.br 8
BANCO DE DADOS
SQL Views II

Viu algum erro neste material? Contate-nos em: [email protected]

COMENTÁRIO
Perceba que o examinador está falando de tabela virtual, e não de tabela temporária, então
tome cuidado. Lembre-se que nas questões, se não falar de view materializada, deve-se
esquecer a cópia de dados, pois view materializada é uma coisa específica. As views em
geral atendem o que a questão fala. A alternativa correta é a letra c, pois a questão é um
conceito de view.

6. (2018 / CESPE / STJ / TÉCNICO JUDICIÁRIO – SUPORTE TÉCNICO) A diferença en-


tre materialized view e view comum em um banco de dados é o fato de que a primeira
é armazenada em cache como uma tabela física, enquanto a segunda existe apenas
virtualmente.

COMENTÁRIO
Tome cuidado, pois o Cespe sempre tentará confundir o candidato! Essa questão está cor-
reta, pois a view materializada faz basicamente isso, tira uma cópia e armazena isso em
cache, daqueles dados da tabela física. Quando se atualizam os dados da tabela física,
há o procedimento de manutenção da view, podendo ser feita para ela trazer novamente
os dados que foram atualizados. Isso pode ser feito de forma manual ou programada, de-
pendendo de cada SGBD. Na view comum, só existe virtualmente, ou seja, é só um alias
para os dados. Perceba que cada banca entende de uma forma, então é importante ter em
mente como o Cespe define.

7. (2017 / CESPE / TCE-PE / ANALISTA DE CONTROLE EXTERNO – AUDITORIA


DE CONTAS PÚBLICAS) A respeito de bancos de dados relacionais, julgue o item
subsequente.

Uma visão (view) é derivada de uma ou mais relações e armazena os dados em uma
tabela física do banco de dados, visando tornar ágeis as consultas.
ANOTAÇÕES

www.grancursosonline.com.br 9
BANCO DE DADOS
SQL Views II

Viu algum erro neste material? Contate-nos em: [email protected]

COMENTÁRIO
Está errada, porque ela não armazena os dados, só é um alias para os dados. Tome cui-
dado para quando o examinador falar de view e view materializada!
30m

8. (2015 / CESPE / MEC / ADMINISTRADOR DE BANCO DE DADOS) Julgue o próximo


item no que se refere à gestão de segurança em banco de dados.

View é um objeto que permite implementar a segurança em um banco de dados, omi-


tindo dados irrelevantes para algum grupo de usuário. No entanto, não é permitido criar
uma view com base na definição de outra view.

COMENTÁRIO
Está errada, pois foi estudado sobre a criação de uma view baseada em outra view, algo
que é sim permitido.

9. (2017 / FUNDEP / UFV / ANALISTA DE TECNOLOGIA DA INFORMAÇÃO) Qual é a


maneira correta de se criar uma VIEW para retornar todos os nomes de clientes arma-
zenados em uma tabela denominada CLIENTES?
a. CREATE VIEW vcli AS SELECT nomes FROM CLIENTES
b. CREATE vcli AS VIEW nomes FROM CLIENTES
c. CREATE vcli AS SELECT nomes FROM CLIENTES
d. CREATE VIEW vcli, SELECT nomes FROM CLIENTES

COMENTÁRIO
Sabe-se que deve ser usado o comando CREATE VIEW, e então é dado o nome, seguido
de AS, e o comando. Então a alternativa a é a correta, pois é a sintaxe SQL padrão para
criar views.
ANOTAÇÕES

www.grancursosonline.com.br 10
BANCO DE DADOS
SQL Views II

Viu algum erro neste material? Contate-nos em: [email protected]

GABARITO
1. d
2. E
3. c
4. E
5. c
6. C
7. E
8. E
9. a

�Este material foi elaborado pela equipe pedagógica do Gran Cursos Online, de acordo com a aula
preparada e ministrada pelo professor Washington Almeida.
A presente degravação tem como objetivo auxiliar no acompanhamento e na revisão do conteúdo
ministrado na videoaula. Não recomendamos a substituição do estudo em vídeo pela leitura exclu-
siva deste material.
ANOTAÇÕES

www.grancursosonline.com.br 11
BANCO DE DADOS
Gatilhos - Triggers - e Stored Procedures

Viu algum erro neste material? Contate-nos em: [email protected]

GATILHOS - TRIGGERS - E STORED PROCEDURES

Dando continuidade ao estudo de banco de dados, observe se no edital consta sobre tri-
ggers e stored procedures, porque será o assunto desta aula.

Gatilhos (Triggers) 3
• Um gatilho (trigger) é disparado quando determinado evento de Banco de Dados
ocorre (para que algo seja feito).
• Na ocorrência de determinado evento, uma ou mais condições são avaliadas e uma ou
mais ações são executadas.
• Utilizado para manter a consistência do banco de dados (por exemplo, toda vez que
uma tabela é atualizada, será gerado um registro de auditoria na mesma, então pode-
-se criar um gatilho).
• É composto por três elementos:
• Evento;
• Condição;
• Ação.
• O Evento dispara uma regra:
• Um evento está associado com operações de atualização de BD.
• INSERT, UPDATE ou DELETE (pode haver uma tabela, e sempre que acontecer um
insert nesta tabela, existe o gatilho para acontecer determinada coisa; da mesma forma
com update e delete);
• Não é possível definir gatilhos apenas com comando SELECT, pois, nestes casos, os
registros não são modificados (porque ele precisa do evento, e só a consulta não o
gera; mas dentro do gatilho pode-se colocar um select para ele trazer dados e fazer
tratamentos).
• Um gatilho não pode ser chamado explicitamente (não é como o stored procedure, que
pode ser chamado por call; o gatilho é criado normalmente associado a alguma tabela,
e essa estrutura será acionada quando os eventos acontecerem).
ANOTAÇÕES

www.grancursosonline.com.br 1
BANCO DE DADOS
Gatilhos - Triggers - e Stored Procedures

Viu algum erro neste material? Contate-nos em: [email protected]

Sintaxe (PL/SQL) (sintaxe padrão no Oracle)


O gatilho já não usa um padrão SQL, como tem sido estudado nas aulas, com as views e
todos os comandos, os gatilhos são implementados de forma diferente por cada banco, mas
esta aula servirá para vários concursos e não de apenas um específico. Observe abaixo um
exemplo de PL SQL, em que pode-se ver o evento, a condição e a ação, não sendo neces-
sário se preocupar com cada linha do PL SQL, porque nas aulas de Oracle há uma aula
explicada em detalhes sobre os gatilhos. Este exemplo é para que o candidato entenda a
estrutura de um gatilho.

Lembre-se que o create é comando de criação de objeto no banco, e há o replace, pois


alguns bancos dão a opção de, além de criar, refazer aquele comando. Se não for colocado o
replace, quando for criado uma vez,esquecer algo e tentar criar de novo, o banco informaria
que já existe um objeto criado, então com o uso do replace, ele refaz, recompilando o código.
A trigger normalmente tem um nome para o gatilho, tem o momento em que ocorre, se before
(antes) ou after (depois) do evento. O for each row seria para cada linha, ou seja, quando
acontecer em cada linha, será colocada uma condição e ele fará alguma coisa, então pode-
-se declarar variáveis e depois dizer o que irá acontecer com o gatilho.
5m
ANOTAÇÕES

www.grancursosonline.com.br 2
BANCO DE DADOS
Gatilhos - Triggers - e Stored Procedures

Viu algum erro neste material? Contate-nos em: [email protected]

Cláusulas 6
• Referência aos valores dos atributos num gatilho.
• :NEW.nome_atributo – representa o novo valor para o campo que está sendo alte-
rado por um comando INSERT ou UPDATE
• :OLD.nome_atributo – representa o valor anterior de um campo que está sendo alte-
rado por comando DELETE ou UPDATE

Predicados
Retornam um valor verdadeiro (TRUE) se o trigger foi ativado por:

Exemplo
ANOTAÇÕES

www.grancursosonline.com.br 3
BANCO DE DADOS
Gatilhos - Triggers - e Stored Procedures

Viu algum erro neste material? Contate-nos em: [email protected]

Observe no exemplo as tabelas de item venda, e produtos. Esse gatilho é a trg_estoque,


então quando acontecer alguma coisa com a coluna item venda, deve referenciar o valor
antigo e haverá um valor novo. Para cada linha alterada, terá o comando begin e o end no
final. O if é uma condição da programação (se), e lembre-se que o before é antes e o after é
depois. Então se for feita uma inserção nessa tabela, irá atualizar a tabela produto, colocando
estoque igual a estoque, menos (subtrair) a nova quantidade em produto, por causa do atri-
buto novo que receberá o valor. Note que o gatilho aguarda eventos em cima de quantidade,
mas ele atualiza a tabela produto, então irá atualizar o produto, e colocar o novo estoque
daquele produto. No caso de exclusão, ele irá atualizar o produto, colocando estoque igual
o estoque, mais o valor antigo da quantidade (somar). O que está sendo feito basicamente
neste exemplo é o registro das vendas. Se uma venda ocorrer, a quantidade do estoque irá
diminuir, e deve-se ir ao estoque e atualizar o valor na tabela, é isso que esse gatilho faz.
10m

Poderia ser um gatilho, por exemplo, para registrar o vendedor que fez a venda, com uma
tabela de auditoria para registrar o vendedor e que venda fez em determinado dia.

Habilitar, Desabilitar e Remover um Gatilho


ANOTAÇÕES

www.grancursosonline.com.br 4
BANCO DE DADOS
Gatilhos - Triggers - e Stored Procedures

Viu algum erro neste material? Contate-nos em: [email protected]

Em algum momento, o usuário pode querer fazer vendas, mas sem querer atualizar o
estoque, então ele pode pedir para o DBA para desabilitar aquele gatilho, ou reabilitá-lo. É
possível também remover o gatilho, neste caso, seria drop.

EXERCÍCIOS DE FIXAÇÃO (GATILHOS)


1. (2018 / FCC / DPE-AM / ANALISTA DE BANCO DE DADOS) Na especificação com-
pleta de um trigger de um banco de dados relacional, há a declaração de 3 estruturas,
denominadas:
a. recurso, integridade e referência.
b. restrição, condição e recurso.
c. classificação, evento e divisão.
d. evento, condição e ação.
e. referência, ação e restrição.

COMENTÁRIO
Basicamente, existe o evento, que diz quando será, se antes ou depois do insert ou do de-
lete; a condição, que determina as condições e os ifs; e ação, que é o que será feito. Logo,
a resposta é a letra d.

2. (2018 / FCC / DPE-RS / ANALISTA DE BANCO DE DADOS) A função básica de um


gatilho ou trigger, em um banco de dados relacional, é
a. verificar o grau de normalização de todas as tabelas de um banco de dados, assegu-
rando-se do respeito às formas normais desejadas.
b. realizar a compilação de todos comandos SQL presentes no banco de dados e arma-
zenar os comandos compilados.
c. verificar a correção das definições presentes no dicionário de dados, apontando even-
tuais erros de semântica.
d. executar comandos previamente declarados, quando da ocorrência de um evento no
banco de dados, também especificado em sua definição.
e. verificar a eficácia da política de atribuição de senhas implementada no banco de
dados, determinando seu grau de eficácia.
ANOTAÇÕES

www.grancursosonline.com.br 5
BANCO DE DADOS
Gatilhos - Triggers - e Stored Procedures

Viu algum erro neste material? Contate-nos em: [email protected]

COMENTÁRIO
a. O gatilho não é feito para verificar grau de normalização; faz-se o processo de normaliza-
ção, e criam-se as regras de integridade com as chaves, etc. O gatilho não é feito para isso.
15m
d. Essa é a função de gatilho, essa alternativa responde exatamente lembrando das três
estruturas: evento, condição e ação.

3. (2012 / FCC / TST / ANALISTA JUDICIÁRIO – TECNOLOGIA DA INFORMAÇÃO) Em


um sistema gerenciador de bancos de dados, normalmente é possível criar gatilhos
(triggers), cujo disparo pode ocorrer em decorrência
a. da alteração de uma senha utilizada por qualquer usuário do banco de dados.
b. de alguma operação de exclusão, modificação ou inserção de um registro em uma
tabela do banco de dados.
c. da queda de energia do servidor do banco de dados por um período maior do
que uma hora.
d. da substituição de um disco em uma arquitetura RAID de armazenamento de dados.
e. da execução de um comando de consulta, por meio do SQL, sem a cláusula “where”.

COMENTÁRIO
b. Delete, update e insert. Está correta, pois é a definição para o gatilho.
c. Se assemelha mais a sistema de monitoramento.
e. Lembre-se que o select não irá disparar o gatilho, podendo até ser colocado um select
dentro das condições, havendo gatilhos que podem ficar muito complexos, então o select
não dispara, pois os eventos são voltados aos outros comandos da ML.

Stored Procedures
Stored Procedure (SP) é um segmento da SQL declarativa utilizada para armazenar fun-
cionalidades que podem ser chamadas a partir de triggers, de outras SPs ou aplicações
escritas em C#, Java, PHP, etc (várias linguagens de programação).
ANOTAÇÕES

www.grancursosonline.com.br 6
BANCO DE DADOS
Gatilhos - Triggers - e Stored Procedures

Viu algum erro neste material? Contate-nos em: [email protected]

Vantagens
• Melhoria da performance da aplicação

Obs.: observe que isso era na época em que se entendia que, como o SGBD é um software
muito “parrudo”, ele poderia ter esses procedimentos armazenados, e usaria recur-
sos do SGBD, então a aplicação mandaria para o banco, que já faria isso e devolve-
ria para a aplicação, portanto é um paradigma mais antigo de desenvolvimento. Hoje
em dia, não se faz SP para regras de negócios da aplicação, pois não é mais algo
recomendado. Mas existe a melhoria de performance, porque ao invés da aplicação
fazer uma consulta e o banco retornar os dados, e a aplicação fazer várias coisas e
trazer o dado final, se houver uma SP que já fornece o dado correto, a aplicação fica
desonerada.

– A SP é compilada e armazenada no BD

• Redução do tráfego de dados entre a aplicação e o BD


– A aplicação faz apenas a chamada da Stored Procedure (já compila tudo e entrega
o dado pronto)

• Reutilização
– Um procedimento pode ser utilizado em diversas aplicações.

Imagine uma procedure que calcula um determinado índice econômico, várias aplicações
utilizam o mesmo, e a SP já tem isso pronto. Observe que hoje em dia, com o desenvolvi-
mento voltado para serviços e micro serviços, não é mais uma boa prática, mas todas essas
vantagens existem. Em uma arquitetura mais moderna, talvez não seja mais uma vantagem
fazer isso, como uma arquitetura cliente-servidor, para que o cliente não fique procurando
ANOTAÇÕES

www.grancursosonline.com.br 7
BANCO DE DADOS
Gatilhos - Triggers - e Stored Procedures

Viu algum erro neste material? Contate-nos em: [email protected]

o servidor o tempo todo, o banco de dados pode fazer essas operações e devolver isso ao
cliente, algo que faria sentido. Em uma arquitetura de serviços e micro serviços, fazer isso
dentro do banco não seria bom, mas não deixa de ser vantagem, pois reduz tráfego, melhora
a performance e reutilização.
20m

Stored Procedure

Obs.: lembre-se do site dado de exemplo, em que o candidato pode entrar no “w3school” e
criar uma stored procedure padrão SQL, de forma bem simples. Neste site, ao invés
de ser call, é exec, chamado assim por alguns bancos.

Declaração

Esse padrão é do mySQL, então pode-se criar uma procedure, selecionar todos os pro-
dutos, ela basicamente tem o select, o asterisco e o from produto, e a chamada da procedure
é feita via call (abaixo), essa procedure não tem parâmetros, então só seria o abre e fecha de
parênteses, então se for chamado, o select é feito. Sobre o delimiter, quando abre-se o bloco
begin e end no mySQL, um ponto e vírgula é usado e entende-se que acabou, então está
sendo dito que o delimitador será, ao invés do ponto e vírgula, o $$, portanto quando tiver o
ponto e vírgula ele não irá encerrar a operação, mas deixará passar. Quando fechar o end da
procedure, o delimitador volta a ser ponto e vírgula.
ANOTAÇÕES

www.grancursosonline.com.br 8
BANCO DE DADOS
Gatilhos - Triggers - e Stored Procedures

Viu algum erro neste material? Contate-nos em: [email protected]

Chamada

Variáveis em Stored Procedures

Declarando variáveis

Pode-se criar variáveis dentro da procedure, colocar regras de valor default (abaixo),
assim como atribuir valores.

Atribuição de valores

Parâmetros em Stored Procedures


ANOTAÇÕES

www.grancursosonline.com.br 9
BANCO DE DADOS
Gatilhos - Triggers - e Stored Procedures

Viu algum erro neste material? Contate-nos em: [email protected]

Parâmetros de Entrada (IN)

Observe acima um exemplo de uma procedure que recebe parâmetros. Existem basica-
mente três tipos de parâmetros, sendo que o exemplo acima é de entrada (IN), então será
passado um valor IN, que é a quantidade com o tipo inteiro, declarando o tipo da variável. Se
for feita uma chamada da procedure, cria-se a procedure, recebe-se um parâmetro, faz-se
um select e é dito qual o limite de itens. Limit também é um comando do MySQL, pois nem
todos os bancos usam o Limit que, no caso do exemplo, limitou a quantidade a 100, então irá
trazer os 100 primeiros registros de produto. Quando essa procedure for executada, ele irá
jogar o resultado desse select passando o parâmetro (de entrada).

Parâmetros de Saída (OUT)

www.grancursosonline.com.br 10
BANCO DE DADOS
Gatilhos - Triggers - e Stored Procedures

Viu algum erro neste material? Contate-nos em: [email protected]

Observe acima um exemplo de parâmetro de saída, então será um OUT do total. Ele
jogará o valor na variável total da tabela produtos. Como é OUT, o usuário não irá passar o
valor, mas receberá a variável, passando a variável para que ela receba o valor. Para ver o
valor, será através do select na variável, e então ele vai aparecer.

Parâmetros de Entrada e Saída (INOUT)


25m

Observe acima um parâmetro de entrada e saída, então tanto se passa o valor quanto
o retorna, pois é uma variável de entrada e de saída. Neste caso não é necessária a tabela,
porque não tem o select, mas se esse código for usado no MySQL, será observado o resul-
tado de 25, que é 5x5.

4. (2011 / FCC / TRT-19ª REGIÃO / TÉCNICO JUDICIÁRIO – TECNOLOGIA DA IN-


FORMAÇÃO) Com relação aos modos de parâmetros de procedures PL/SQL é corre-
to afirmar:
a. Se o modo de um parâmetro não for especificado, ele será OUT (valor default).
b. Existem três modos de parâmetros: IN, OUT e IN OUT.
c. Parâmetros IN são utilizados para retornar um valor.
d. Parâmetros OUT são utilizados para passar um valor para a procedure que está
sendo invocada.
e. Uma procedure deve ter pelo menos um parâmetro do modo IN e um parâmetro
do modo OUT.

www.grancursosonline.com.br 11
BANCO DE DADOS
Gatilhos - Triggers - e Stored Procedures

Viu algum erro neste material? Contate-nos em: [email protected]

COMENTÁRIO
Toda a implementação das procedures é baseada em bancos de dados, então cada um
tem sua especificidade. O MySQL é de uma forma, pois tem a sua própria linguagem, no
Oracle é o PL SQL e tem outro jeito, no SQL Server Transaction SL tem outra, e no Post
SQL nem ao menos existia procedures até versões antigas, havia functions, mas a partir
da versão 12, implementou-se procedures. Então deve-se observar a sintaxe em cada um.
A resposta correta é a letra b.

5. (2010 / FCC / DPE-SP / ADMINISTRADOR DE BANCO DE DADOS) NÃO se trata de


uma característica das stored procedures:
a. acionar outra stored procedure.
b. utilizar somente comandos SQL padronizados.
c. receber diversos parâmetros de entrada.
d. propiciar maior segurança no acesso aos dados.
e. retornar um valor de status para indicar aceitação ou falha na execução.

COMENTÁRIO
Essa questão serve como checklist do que é cobrado nos concursos.
a. Elas podem fazer isso.
b. É a errada, porque não se usa apenas comandos SQL padronizados, como foi visto,
inclusive, anteriormente nesta aula.
c. Elas podem fazer isso.
d. Elas podem fazer isso, porque se o usuário não observar as tabelas ou o select, e ape-
nas chamar uma procedure que faz as coisas para ele, estará de certa forma encapsulando
isso, que é um conceito da orientação do objeto.
e. Se o candidato estudar a história das procedures nos bancos específicos, perceberá que
ela retorna um valor de status para informar se deu certo ou errado.
Obs.: Normalmente, as linguagens procedurais se implementam em diversas programa-
ções, inclusive existem sistemas que estão construídos em linguagens procedurais nos
bancos. Hoje em dia não é uma boa prática, mas existe e muito.
30m
ANOTAÇÕES

www.grancursosonline.com.br 12
BANCO DE DADOS
Gatilhos - Triggers - e Stored Procedures

Viu algum erro neste material? Contate-nos em: [email protected]

6. (2016 / QUADRIX / CRO-PR / ANALISTA DE INFORMÁTICA) Qual conceito é uma co-


leção de comandos em SQL para otimização de Banco de dados e que encapsula tare-
fas repetitivas, aceita parâmetros de entrada e retorna um valor de status (para indicar
aceitação ou falha na execução)?
a. Campos
b. Índices
c. Registros
d. Triggers
e. Stored Procedures

COMENTÁRIO
Resposta correta: letra d, um conceito que o candidato pode guardar.

7. (2014 / VUNESP / SP-URBANISMO / ANALISTA ADMINISTRATIVO- TECNOLOGIA DA


INFORMAÇÃO / DESENVOLVIMENTO) Em bancos de dados relacionais, os procedi-
mentos armazenados (stored procedures) constituem uma ferramenta disponibilizada e
representam:
a. um tipo de tabela necessária ao sistema
b. um tipo de índice necessário ao sistema.
c. o conjunto de usuários e senhas do banco de dados.
d. o conjunto de domínios de cada tabela do banco de dados.
e. programas armazenados no servidor de banco de dados.

COMENTÁRIO
A VUNESP cobra bastante questões sobre stored procedures. Resposta correta letra e.
ANOTAÇÕES

www.grancursosonline.com.br 13
BANCO DE DADOS
Gatilhos - Triggers - e Stored Procedures

Viu algum erro neste material? Contate-nos em: [email protected]

GABARITO
1. d
2. d
3. b
4. b
5. b
6. e
7. e

�Este material foi elaborado pela equipe pedagógica do Gran Cursos Online, de acordo com a aula
preparada e ministrada pelo professor Washington Almeida.
A presente degravação tem como objetivo auxiliar no acompanhamento e na revisão do conteúdo
ministrado na videoaula. Não recomendamos a substituição do estudo em vídeo pela leitura exclu-
siva deste material.
ANOTAÇÕES

www.grancursosonline.com.br 14
BANCO DE DADOS
Banco de Dados Distribuídos - BDD

Viu algum erro neste material? Contate-nos em: [email protected]

BANCO DE DADOS DISTRIBUÍDOS - BDD

O banco de dados distribuído funciona de forma diferente do banco de dados centra-


lizado. Na arquitetura dos BDDs, eles podem ser distribuídos para atender uma série de
características em cenários de implantação do banco de dados que seja mais completo.

Há a centralização, que é a tecnologia de BD, e é possível ter o sistema de banco de


dados distribuído e a rede de computadores.

SISTEMA DE BD DISTRIBUÍDOS

www.grancursosonline.com.br 1
BANCO DE DADOS
Banco de Dados Distribuídos - BDD

Viu algum erro neste material? Contate-nos em: [email protected]

Através da rede de comunicação, é possível haver o banco de dados distribuídos e tudo


conversando via rede.

Banco de Dados Distribuídos


• É uma coleção de diversas bases de dados, interligadas logicamente através de uma
rede de computadores.

Sistema Gerenciadores de Banco de Dados Distribuído


• É o sistema de software que possibilita a gerência da base de dados distribuída e torna
a distribuição transparente para o usuário.

Às vezes, o banco de dados pode estar distribuído, pode ter um cenário de várias bases
de dados, mas o software SGBD deixa isso transparente. O usuário irá fazer a consulta na
tabela e isso está distribuído sem ele saber no final.

CARACTERÍSTICAS DE SISTEMAS DISTRIBUÍDOS

• Replicação – o sistema mantém várias cópias idênticas da relação e armazena cada


uma em um local diferente;

Obs.: a relação refere-se à tabela.

• Fragmentação – o sistema divide a relação em vários fragmentos, armazenando-os


em um local diferente;
• Dados armazenados em nós;
• Processadores dos nós interconectados através de rede de computadores;
• O sistema possui todas as funcionalidades de um SGBD.

Na fragmentação, é possível jogar parte dos dados em cada um dos bancos de dados ou
ter réplicas dos dados em cada um deles.
ANOTAÇÕES

www.grancursosonline.com.br 2
BANCO DE DADOS
Banco de Dados Distribuídos - BDD

Viu algum erro neste material? Contate-nos em: [email protected]

Vantagens dos Sistemas Distribuídos


• Transparência na Gerência dos Dados Distribuídos, Fragmentados e Replicados;
– Transparência de Fragmentação: os usuários não precisam saber como uma rela-
ção foi fragmentada.

Obs.: há dois tipos de fragmentação.

– Transparência de Replicação: os usuários os objetos de dados como logicamente


exclusivos.
– Transparência de Local: os usuários não sabem o local físico dos dados.

• Confiabilidade através de Transações Distribuídas;


• Aumento de Desempenho;
• Facilidade de Expansão.

Por exemplo, a Eletrobras Eletronorte é uma estatal vinculada à Eletrobrás que tem atua-
ção na região Norte do país. Lá havia um sistema em que era necessário acessar em tempo
real, um sistema da operação da área de energia. Antigamente, não havia redes tão confiá-
veis como hoje em dia, então não era possível que esse banco de dados ficasse em Brasília
porque a tendência era as redes não funcionarem. Como solução, foi feita uma réplica da
base de dados com o software SGBD.
5m
A aplicação salvava os dados na réplica local e, em algum momento do dia, era possível
forçar a replicação e os dados eram concentrados em Brasília. No final, havia a visão dos
dados transparentes. Era utilizada a transparência da replicação. Obviamente, essa trans-
parência de aplicação também tinha a transparência do local, não sabendo o usuário onde o
banco está fisicamente.

Obs.: o TRF também utiliza banco de dados distribuídos por ter uma grande atuação na
região Norte.

Fragmentação de Dados
• Uma relação R fragmentada é dividida em uma série de fragmentos R1, R2,...Rn.
ANOTAÇÕES

www.grancursosonline.com.br 3
BANCO DE DADOS
Banco de Dados Distribuídos - BDD

Viu algum erro neste material? Contate-nos em: [email protected]

• Os fragmentos contém informação suficiente para permitir a reconstrução da relação


original R;
• Existem dois esquemas diferentes para fragmentar uma relação:
I – Fragmentação Horizontal;
II – Fragmentação Vertical.

Fragmentação Horizontal
Uma relação R é particionada em uma série de subconjuntos, R1, R2,..., RN. Cada tupla
da relação R precisa pertencer a pelo menos um dos fragmentos, de modo que a relação
original possa ser reconstruída, quando necessário.

A relação R tem CPF, nome, número da conta, agência e UF. Essa seria uma relação
de cadastro dos clientes de uma agência. É possível aplicar a fragmentação horizontal. A
tupla da Bahia vai para a réplica da tabela fragmentada para o banco que está na Bahia,
por exemplo.
Então, a consulta, na relação que contém todos os dados, é a junção de vários blocos
que estão fragmentados. Essa relação original foi separada na série de subconjuntos. Então,
teria a relação dos dados do DF e a relação dos dados do Rio de Janeiro, mantendo as
contas de forma fragmentada.
ANOTAÇÕES

www.grancursosonline.com.br 4
BANCO DE DADOS
Banco de Dados Distribuídos - BDD

Viu algum erro neste material? Contate-nos em: [email protected]

A fragmentação facilita a distribuição dos dados. Por exemplo, há um dado que pode ser
fragmentado em qualquer lugar, mas está no servidor na Bahia. A fragmentação vai servir
também para melhorar o tempo de resposta do banco de dados.

Fragmentação Vertical
Envolve a definição de vários subconjuntos de atributos, R1, R2,..., RN, do esquema R,
de modo que R seja formado pela união desses subconjuntos.

A fragmentação vertical, em vez de ser pela linha, é feita pelas colunas. Parte dos dados
das colunas podem ser jogados para outros locais através da fragmentação. Com a frag-
mentação, é possível alocar em espaço de discos diferentes, em servidores diferentes, etc.
Trata-se de uma estratégia do banco de dados distribuído para ganhar escalabilidade no uso
do SGBDs relacionais.
10m
Ao fazer a fragmentação, há uma certa divisão dos dados. Então, se o banco do DF ficar
fora do ar, o usuário continua operando na Bahia. O normal é haver a replicação, mas, quando
a fragmentação, ela se torna transparente e ninguém sabe que eles estão fragmentados.
ANOTAÇÕES

www.grancursosonline.com.br 5
BANCO DE DADOS
Banco de Dados Distribuídos - BDD

Viu algum erro neste material? Contate-nos em: [email protected]

Commit em Duas Fases (2PC)


• 1ª Fase: os nós participantes da transação informam ao coordenador que já concluiu
sua tarefa. O coordenador envia uma mensagem preparando “para commit”. Cada
nó gravará em disco os registros de log e informações necessárias para recuperação
local. Na sequência, envia um sinal “OK” ao coordenador, caso contrário envia um
sinal “não OK”. Na ausência de uma resposta, o coordenador considera o nó “não OK”.

O banco de dados trabalha com consistência, ele não é no SQL. Se não confirmar, ele
parte do princípio que deu erro.

• 2ª Fase: se todos os nós respondem “OK”, a transação realizada com sucesso e o


coordenador envia um sinal “commit” para todos os nós, caso contrário, a transação
falhou e o coordenador envia uma mensagem para “rollback”. Neste caso a transação
será desfeita utilizando-se os arquivos de log.
ANOTAÇÕES

www.grancursosonline.com.br 6
BANCO DE DADOS
Banco de Dados Distribuídos - BDD

Viu algum erro neste material? Contate-nos em: [email protected]

A estratégia de commit em duas fases é para quando há um banco de dados distribuído e


é possível ter um coordenador de transações, que está coordenando as várias réplicas, para
fazer o commit das transações que estão ocorrendo no banco de dados. Se for réplica, há
copia dos dados. Então, é possível haver transações que estão operando sobre certo con-
junto de dados e deve ter uma coordenação proposta na estratégia de commit em duas fases.
Os banco de dados distribuídos são banco de dados relacionais distribuídos. No SQL, é
possível adicionar nós e a escalabilidade funciona de outra forma. Aqui, visa-se a manter as
características do ACID, gerenciamento de transações e tudo mais que o banco de dados
relacional fornece.

DIRETO DO CONCURSO
1. (2011/FCC/INFRAERO/ANALISTA/BANCO DE DADOS) Em relação ao armazenamen-
to de dados, em banco de dados distribuídos, considere:

I – Uma mesma tabela pode ser armazenada em mais de um servidor para aumentar a
disponibilidade e o paralelismo.
II – A localização das réplicas deve considerar os locais e usuários que acessam os dados
replicados com maior frequência.
III – Na fragmentação horizontal, cada fragmento contém um subconjunto das tuplas da
relação completa e cada tupla precisa ser armazenada em pelo menos um servidor.
IV – Na fragmentação vertical, as tuplas são distribuídas, uma a uma, entre os servidores,
e cada servidor armazena as tuplas pertencentes a determinadas faixas de valores.

Está correto o que consta APENAS em:

a. I e II
b. III e IV
c. I, II e III
d. I, III e IV
e. II, III e IV
ANOTAÇÕES

www.grancursosonline.com.br 7
BANCO DE DADOS
Banco de Dados Distribuídos - BDD

Viu algum erro neste material? Contate-nos em: [email protected]

COMENTÁRIO
I – No exemplo dado anteriormente, a disponibilidade era aumentada com as cópias lo-
cais. Além disso, é possível melhorar também o paralelismo da aplicação, porque há várias
cópias funcionando.
15m
II – Por exemplo, um usuário é da Bahia. Há uma aplicação e uma cópia do banco de
dados que estão na Bahia. O banco centraliza com o banco que está em Brasília. A loca-
lização das réplicas deve considerar os locais e usuários porque o usuário da Bahia deve
utilizar o que está mais próximo dele, não o de Brasília. É possível jogar as tabelas em mais
de um servidor, mandar operações para essas tabelas e depois comitar tudo.
III – Na fragmentação horizontal, há as tuplas e os registros em linhas.
IV – Na fragmentação vertical, utiliza-se as colunas.

2. (2017/FCC/DPE-RS/ANALISTA/BANCO DE DADOS) Em sistemas de bancos de


dados distribuídos utiliza-se, frequentemente, a técnica de replicação de tabelas, sendo que
tal técnica apresenta como características proporcionar:

a. menor disponibilidade, maior problema de concorrência e menor sobrecarga na atua-


lização de réplicas.
b. menor disponibilidade, maior problema de concorrência e maior sobrecarga na atua-
lização de réplicas.
c. maior disponibilidade, maior problema de concorrência e menor sobrecarga na atua-
lização de réplicas.
d. menor disponibilidade, menor problema de concorrência e menor sobrecarga na atu-
alização de réplicas.
e. maior disponibilidade, menor problema de concorrência e maior sobrecarga na atua-
lização de réplicas.
ANOTAÇÕES

www.grancursosonline.com.br 8
BANCO DE DADOS
Banco de Dados Distribuídos - BDD

Viu algum erro neste material? Contate-nos em: [email protected]

COMENTÁRIO
A replicação de tabelas gera maior disponibilidade para haver menos problema de concor-
rência. Entretanto, há maior sobrecarga na atualização das réplicas porque é necessário
sincronizar as tabelas de tempo em tempo.
20m
No commit em duas fases, há maior sobrecarga, porque é necessário haver coordenador etc.

3. (2011/CESPE/MEC/ADMINISTRADOR DE BANCO DE DADOS) Com relação aos con-


ceitos de banco de dados distribuídos, julgue o item a seguir.

A fragmentação horizontal divide uma relação segundo seus atributos, mantendo so-
mente alguns atributos da relação. A fragmentação vertical de uma relação é um sub-
conjunto das tuplas que pertencem a um fragmento especificado por uma condição
sobre um ou mais atributos da relação.

COMENTÁRIO
Horizontal refere-se às tuplas e a vertical refere-se às colunas. É possível pegar duas colu-
nas e fragmentar com um lado, assim como os conjuntos de dados na horizontal.
Os atributos são as colunas (vertical) e a fragmentação horizontal é o subconjunto das tuplas.

Revisão
Às vezes, é necessário implementar o banco relacional. Banco relacional são as caracte-
rísticas do ACID, de criar tabelas etc. Por exemplo, em um cenário que há aplicações clien-
te-servidor e não é possível contar que haverá um acesso de rede bom. Exemplo: a apli-
cação cliente está em Santa Catarina e o banco de dados está centralizado. Se a rede não
funcionar, a aplicação ficará fora do ar. Para solucionar isso, é possível implantar um banco
de dados distribuído, fazendo réplicas das tabelas em Santa Catarina. Se a comunicação não
funcionar, a aplicação conecta localmente e alimenta os dados de Santa Catarina, de forma
que haja distribuição de dados. Quando voltar a conexão, os dados são conectados e são
centralizados os dados de todo o Brasil.
25m
ANOTAÇÕES

www.grancursosonline.com.br 9
BANCO DE DADOS
Banco de Dados Distribuídos - BDD

Viu algum erro neste material? Contate-nos em: [email protected]

A fragmentação é utilizada para ganhar desempenho. Quando a tabela fica grande e


há uma série de transações sobre ela e milhares de usuários a utilizando, ocorre lock na
tabela. Ao fragmentar, por exemplo, horizontalmente, a concorrência é diminuída e ocorre
menos locks.
O banco de dados relaciona trabalha para manter o ACID (atomicidade, consistência,
isolamento e durabilidade). Então, se a operação do banco pode prejudicar a consistência, é
feito o lock para garantir. Quando der errado, é desfeito.
Haverá menor concorrência, mas haverá maior trabalho para sincronizar as réplicas. Os
bancos de dados relacionais implementaram esse modelo para tentar aumentar a escalabili-
dade do banco, mas os bancos de dados relacionais não são bons em se manterem funcio-
nando se houver falha e perderem parte dos dados.
Quando não existiam os NoSQLs, a solução era tentar fazer o relacional e tentar fazer
um banco de dados distribuído. O sistema Web parte do princípio de acesso à internet, mas
esse era um cenário que não havia muita confiança na rede. Assim, era feita a estratégia de
banco de dados distribuído.

GABARITO
1. c
2. e
3. E

�Este material foi elaborado pela equipe pedagógica do Gran Cursos Online, de acordo com a aula
preparada e ministrada pelo professor Washington Almeida.
A presente degravação tem como objetivo auxiliar no acompanhamento e na revisão do conteúdo
ministrado na videoaula. Não recomendamos a substituição do estudo em vídeo pela leitura exclu-
siva deste material.
ANOTAÇÕES

www.grancursosonline.com.br 10
BANCO DE DADOS
NoSQL
Viu algum erro neste material? Contate-nos em: [email protected]

NOSQL

Inicialmente, o termo NoSQL recebeu a denominação de “não SQL” ou “não relacional”


que era um movimento referente ao banco de dados relacional (meados dos anos 1970)
considerado ultrapassado na época, surgindo a partir daí outras formas de banco de dados
relacional. Como o banco relacional tem uma forte teoria matemática (como a teoria de con-
junto, a álgebra reacional), naquilo que se propõe a fazer referente à consistência do dado,
de garantir as transações, integridade ele é insuperável.
A partir disso, houve uma atualização e o termo passou a ser denominado como Not
Only SQL, ou seja, “não somente SQL” que é o termo genérico que representa os bancos de
dados não relacionais.
Com o passar do tempo, os bancos de dados orientados a objetos surgiram como con-
sequência da evolução dos bancos relacionais. O NoSQL é uma outra forma de armazena-
mento que não é, de fato, da orientada a objeto. A orientada a objeto seria o próximo passo
da evolução, mas não aconteceu devido a sua complexa utilização, uma vez que há a persis-
tência do objeto no banco, não sendo algo fácil de entender, ainda mais para quem vem do
banco relacional, já que tem uma sistemática completamente diferente.
Foram surgindo outras formas de armazenamento como chave valor, orientada a docu-
mento, com gráficos, memória, pesquisa, XML e essas formas são denominadas de NoSQL
(não somente SQL hoje em dia).
O NoSQL é movimento que promove soluções de armazenamento de dados não relacio-
nais, composto por diversas ferramentas que buscam resolver problemas como tratamento
de grandes volumes de dados, execução de consultas com baixa latência e modelos flexíveis
de armazenamento de dados, como documentos XML ou JSON.
No começo, a geração denominada de “nutelinha”, achava que ia acabar com o SQL,
logo verificou que não conseguiria e, hoje em dia, considera que as tecnologias NoSQL não
têm como objetivo substituir os bancos de dados relacionais, mas apenas propor algumas
soluções que em determinados cenários são mais adequadas. Como se nota, a opinião foi
modificada ao longo do tempo.
Atualmente, é possível trabalhar com tecnologias NoSQL e banco de dados relacionais
dentro de uma mesma aplicação. Pode ser citado um exemplo na prática: na época do meu
mestrado, desenvolvi um aplicativo de transporte de passageiro, voltado para mototáxi. Havia
um aplicativo de passageiro e um aplicativo de motorista e na plataforma do Google, com
ANOTAÇÕES

www.grancursosonline.com.br 1
BANCO DE DADOS
NoSQL
Viu algum erro neste material? Contate-nos em: [email protected]

o banco Firebird que é um chave valor (não é um dos mais usados) eram guardadas essas
informações no formato JSON. Quando o passageiro solicitava o mototáxi, a corrida era lan-
çada dentro de um determinado raio e o mototaxista que por ali estivesse, recebia a corrida,
5m
tramitava e, no final, quando a corrida era toda “alimentada”, pegava-se a JSON com API,
aquelas informações relevantes e guardava em uma tabela de corridas no banco relacional
(SQL). Utilizava-se esse tipo de aplicação: com um banco no SQL para a troca de informa-
ções de grande volume e de baixa latência e depois relacional naquilo que ele é bom, por
exemplo: para ver os históricos de corrida, cadastro do passageiro, cadastro do mototaxista
consultava no banco relacional.

Diferenças entre o RDBMS para o NoSQL DB

O RDBMS (Relational Database Management System) é o SGBD (Sistema de Geren-


ciamento de Banco de Dados). No relacional uma das principais características é que o
esquema é explícito. A estrutura da tabela de Custumers (tabela de clientes) é facilmente
vista, ou seja, o esquema daquele banco de dados é explícito. Lembrando que a instância
são os dados em si, as informações; o esquema é a estrutura do banco.
O NoSQL o esquema é implícito, ou seja, a estrutura do banco está junto: tem um item
e um preço; tem um item e o valor de desconto. O exemplo a seguir demonstra um exemplo
de chave valor, ou documento (que é uma variação de chave valor quando se tem o formato
um pouco mais específico).
ANOTAÇÕES

www.grancursosonline.com.br 2
BANCO DE DADOS
NoSQL
Viu algum erro neste material? Contate-nos em: [email protected]

Utilização

São utilizados em cenários em que os sistemas de banco de dados tradicionais não são
suficientes ou adequados às necessidades específicas, tais como:

• Baixa latência: refere-se a uma consulta que deve ter o controle de transação com logs
e pode acontecer uma demora, inviabilizando a aplicação.
• Grandes volumes de dados: são as consultas repetitivas com SQL com muitos JOINs
que para retornar um grande volume de dados torna-se mais pesado. Então, grandes
volumes de dados podem ser trabalhados em NoSQL
• Escalabilidade ou estruturas em que as conexões entre os dados são tão importantes
quanto o próprio dado: a escalabilidade pode ser vertical e horizontal. Os bancos de
dados NoSQL são fáceis de dar escalabilidade horizontal. Os relacionais (RDBMS)
são bons na escalabilidade vertical até um certo limite

Todas as tecnologias abordadas apresentam situações de uso particulares, que podem


ser úteis na substituição dos tradicionais bancos de dados relacionais.

Exemplos de Bancos

Em provas de concursos quando se trata de NoSQL os examinadores focam as questões


no MongoDB.
Redis: adota o modelo chave-valor. O chave-valor é uma “tripa” de informações JSON
que tem um ID, a chave, e o valor que está inserido nessa chave. Ele utiliza a memória para
alocação de dados e é ideal para utilização de cache.
MongoDB: implementa o modelo baseado em documentos, sendo uma evolução de
chave-valor. Em vez de ter chave-valor há uma estrutura com mais registros que lembra
alguns atributos como se fosse uma tabela relacional, mas no formato JSON. O MongoDB
tem foco no tratamento de grandes volumes de dados e é ideal para grande parte das apli-
cações web, ou seja, aplicações que precisam de uma tramitação de dados extensa, retorno
de muitos dados ele é excelente.
Neo4j: é uma das ferramentas NoSQL mais maduras, tem o modelo baseado em grafos
e seus principais casos de uso estão relacionados a motores de recomendação, análise
de rotas geográficas e redes sociais, principalmente o Twitter. Sendo muito usado em rede
ANOTAÇÕES

www.grancursosonline.com.br 3
BANCO DE DADOS
NoSQL
Viu algum erro neste material? Contate-nos em: [email protected]

social para aqueles motores de recomendação, por exemplo: você compra algo e ele reco-
menda outro, sempre associa a outro produto.
10m
Cassandra: é uma implementação open source do modelo de dados do BigTable com a
arquitetura distribuída do Dynamo

Tipos

Chave-valor: armazena dados como um conjunto de pares de chave-valor em que uma


chave funciona como um identificador exclusivo. É como se tivesse um ID, uma chave, e o
valor daquele atributo. A chave e os valores podem ser qualquer coisa, desde objetos simples
até objetos compostos complexos. São altamente particionáveis e permitem escalabilidade
horizontal que outros tipos de bancos de dados não conseguem alcançar.
Um banco relacional não é bom na escalabilidade horizontal, pois você tem que adicionar
nós. Porém aqui na chave-valor é bom porque você pode pegar todos esses documentos e
jogar para o nó. Cada conjunto de dados é jogado para um nó, replica e vai direcionando
as consultas para os diversos bancos de dados. De forma que, se um parar você pode ter
outro que pega aquele dado em um certo momento. Isso é chamado de tolerância ou parti-
cionamento, é uma das letras do teorema CAP que são características dos bancos de dados.
Todos os bancos de dados possuem características comuns de duas letras do CAP, não as
três, pois não tem como atender as três ao mesmo tempo.
XML: é uma subclasse de bancos de dados orientados a documentos que são otimiza-
dos para trabalhar com documentos XML. Atualmente o padrão do documento é JSON, mas
XML é um formato comum também, sendo um pouco mais pesado. Com a evolução dos web
services dos micro serviços passou-se a utilizar mais JSON que é um documento mais leve.
Coluna ou colunar: enquanto um BD relacional é otimizado para armazenar linhas de
dados, geralmente para aplicativos transacionais, um banco de dados colunar é otimizado
para recuperação rápida de colunas de dados, normalmente em aplicativos analíticos. Caso
tenha aplicativos analíticos de big data, recomenda-se usar um banco de dados colunar, pois
ele é mais rápido para acessar as informações. A tabela na relação tem atributos e as consul-
tas são feitas trazendo um conjunto de linhas; já o colunar é feito por informações de colunas
específicas – ele é otimizado para isso. Big data utiliza bastante os armazenamentos NoSQL,
ou seja, soluções de big data que sejam necessários um conjunto massivo de informações,
ANOTAÇÕES

www.grancursosonline.com.br 4
BANCO DE DADOS
NoSQL
Viu algum erro neste material? Contate-nos em: [email protected]

trazendo na perspectiva em vez de linhas que é o forte do relacional em colunas, pode ser
usado bancos colunares.
O armazenamento orientado a colunas para tabelas do banco de dados é um fator impor-
tante para a performance de consulta analítica, (seriam as operações OLAP, mas sabe-se
que essas operações são voltadas para DW que normalmente pode ter um banco relacional
com uma modelagem multidimensional) aqui é uma estrutura utilizando big data. Consulta
analítica realiza as operações trazendo aquele conjunto de dados gigantesco, mas em solu-
ções de big data com banco de dados NoSQL.
Ele é bom nisso porque reduz expressivamente os requisitos gerais de E/S de disco e
diminui a quantidade de dados que você precisa carregar do disco.
Documento (document store): projetado para armazenar, recuperar e gerenciar infor-
mações orientadas a documentos, também conhecidas como dados semiestruturados. Um
exemplo de dado semiestruturado é o JSON, ou seja, são dados que tem um formato reflexivo.
15m
São uma subclasse do armazenamento chave- valor, pois em vez de ter somente um
atributo ele tem um documento completo que o chave-valor pode ter também, porém hoje se
entende que o orientado a documento seria diferente, uma vez evoluiu e com isso ficou dife-
rente. A diferença está na maneira que os dados são processados.
No armazenamento chave-valor, os dados são considerados como sendo inerentemente
opacos ao banco de dados, enquanto que um sistema orientado a documentos depende da
estrutura interna no documento afim de extrair metadados que o mecanismo do banco de
dados utiliza para otimização adicional. Portanto, no chave-valor aquele dado que está inse-
rido é meio opaco para quem o consulta; no documento isso não ocorre, pois, conhecendo a
estrutura do documento você pode fazer comandos find que são normais no MongoDB, em
cima da estrutura do documento
Apesar da diferença ser geralmente discutível, devido às ferramentas nos sistemas, con-
ceitualmente o armazenamento por documentos é projetado para oferecer uma experiência
mais rica com técnicas de programação modernas. Principalmente se você se aprofundar
no MongoDB consegue perceber que é possível realizar consultas dentro da estrutura do
documento.
Grafos: são similares, mas adicionam outra camada, o relacionamento, que permite que
eles liguem documentos para acesso rápido. Nos grafos você tem informações que podem
ter, inclusive, documentos. A pesquisa deve ser feita na teoria de grafos, sendo somente
necessário saber que usa grafos.
ANOTAÇÕES

www.grancursosonline.com.br 5
BANCO DE DADOS
NoSQL
Viu algum erro neste material? Contate-nos em: [email protected]

A imagem a seguir demonstra os principais bancos: chave-valor (chave e valor); grafos


(teoria da matemática); família de colunas (deve ser pesquisado em várias colunas, pois é
utilizado para isso); documento (com acesso a um documento especifico, que é um docu-
mento em um formato JSON).

Além desses tipos já citados, há outros dois também interessantes:


Memória: é um aplicativo de jogos e tecnologia de publicidade têm como exemplos de
uso placares de líderes, pode fazer armazenamentos de sessões e análises em tempo real
que exigem tempos de resposta em microssegundos e podem ter grandes picos de tráfego
a qualquer momento. Normalmente é aquele que faz uma memória. Aplicativo de smar-
tphone em vez de você ter uma API que envia o dado para uma plataforma dentro do
próprio smartphone em memória, por causa desse cenário de uso gigantesco de dados
e de pico de tráfego em microssegundos, então usa-se esse tipo de banco de dados NoSQL.
Pesquisa: projetado especificamente para fornecer visualizações e análises quase em
tempo real de dados gerados por máquina ao indexar, agregar e pesquisar registros e métri-
cas semiestruturadas. Também é um poderoso mecanismo de pesquisa de alta performance
para casos de uso de pesquisa de texto completo. Ele é muito bom nessa consulta massiva
de dados e documentos.
ANOTAÇÕES

www.grancursosonline.com.br 6
BANCO DE DADOS
NoSQL
Viu algum erro neste material? Contate-nos em: [email protected]

Escalabilidade

O banco de dados relacional é muito bom na escalabilidade vertical, só que tem um limite,
enquanto que os NoSQL (documentos, valor-chave...) são bons na escalabilidade horizontal.

• Escalabilidade vertical (scale up): significa adicionar recursos em um único nó do


sistema (mais memória ou um disco rígido mais rápido). É só lembrar do filme do Hulk
que ganha tamanho, mas tem um limite, sendo igual ao banco de dados relacional.

O banco de dados relacional por ele ser centralizado, normalmente a sua instância, você
pode adicionar mais processador, memória e disco rígido processando melhor as consultas.
O banco de dados distribuído e uma estratégia de distribuir o banco relacional, porém
possui uma complexidade de controle de transações, com isso tende aumentar a latência das
pesquisas, a demorar mais. Suponha que você esteja realizando muitas transações e muitas
pessoas começam a locar tabelas, com isso tem que esperar e fazer escalonamento e o uso
de algoritmos específicos.

• Escalabilidade horizontal (scale out): significa adicionar mais nós ao sistema, tais
como um novo computador com uma aplicação para clusterizar o software.

É parecido com o Hulk que fica cada vez maior com a força, tem um limite assim como os
20m
SGBD de mercado como o Oracle o PostgreSQL em que você tem um limite e vai até certo
momento que o software consegue gerenciar determinado nível de processador, memória e
disco. É como o limite do Hulk que não cresce até explodir, ou seja, cresce até um tamanho.
Aqui seria como XXXX múltiplo, ele ganha vários múltiplos e todos ganham aquela força a
mais e todos juntos conseguem derrotar o inimigo.
O banco de dados NoSQL é muito bom nisso. O chave-valor é bom nisso. O documento
pode jogar um conjunto de documentos para lá e para cá. Soluções de armazenamento em
nuvens faz esse tipo de coisa, podendo ter uma instância no Canadá, outra na África distribu-
ídas pelo mundo e você vai direcionando as consultas, por exemplo: caiu o tronco nos EUA,
então direciona para a Europa. Vai continuar respondendo no tempo similar, sendo às vezes
imperceptível para os usuários.
Lembre-se: vertical aumenta os recursos; horizontal adiciona os nós.
ANOTAÇÕES

www.grancursosonline.com.br 7
BANCO DE DADOS
NoSQL
Viu algum erro neste material? Contate-nos em: [email protected]

É bastante usado na clusterização, balanceamento de carga. Aplicações você faz isso,


talvez, na camada de aplicação muito bem com softwares como o JBOZ e outros de mercado
ou com soluções de mercado de balanceadores, appliances para fazer balanceamento dos
nós de uma aplicação.

O SQL é muito bom para o armazenamento relacional com o uso de JOINs para informa-
ções de Web, mobile (cadastro de passageiro, cadastro dos taxistas), informações empresa-
riais em geral e para Data Marts.
O NoSQL entra para as outras informações nas quais o relacional possui limitações tais
como: aplicativos de jogos, mídias sociais, IoT, aplicações Web específicas, mobile e empre-
sarial. Estão presentes os principais tipos de armazenamento: chave-valor, bases e docu-
mentos e família de colunas.
ANOTAÇÕES

www.grancursosonline.com.br 8
BANCO DE DADOS
NoSQL
Viu algum erro neste material? Contate-nos em: [email protected]

Arquitetura

Modernas bases de dados relacionais parecem ter uma limitação a transações com gran-
des volumes de dados e cargas de trabalhos típicas de operações modernas de grande
carga, incluindo o dimensionamento de conjuntos de dados.
Sistemas NoSQL frequentemente fornecem garantias de consistência fraca, como con-
sistência eventual e operações restritas a itens individuais de dados, apesar de que uma faixa
possa impor garantias ACID, adicionando uma camada de middleware complementares.
Os Bancos de dados relacionais são bons nas características ACID (Atomicidade, Con-
sistência, Isolamento, Durabilidade). Os bancos de dados NoSQL são bons nas caracterís-
ticas BASE.
No site do MongoDB tem a informação de que ele faz ACID, pois com a estrutura que
tem, consegue uma transação; porém não é o controle de transação clássico como acontece
no banco de dados relacional. Portanto, o banco de dados NoSQL são melhores nas carac-
terísticas BASE do que nas características ACID.
Alguns defensores do NoSQL promovem interfaces muito simples, como arrays associa-
tivos ou pares chave-valor (Key-Valuepairs). Outros sistemas como bancos de dados XML
nativos provem o apoio ao padrão XQuery, que é um padrão para fazer consultas em bancos
de dados em XML.

Exemplos

Exemplos de tecnologias:
Baseado em gráficos: Neo4j.
Document Data base: MongoDB.
Família de colunas: DynamoDB, Redis.
Chave-valor: Cassandra, Hypertable, Hbase, Accumulo.
ANOTAÇÕES

www.grancursosonline.com.br 9
BANCO DE DADOS
NoSQL
Viu algum erro neste material? Contate-nos em: [email protected]

Um banco de dados, muitas vezes, está classificado em mais de um lugar, uma vez que
as características não são tão restritivas.
25m
Atualmente o MongoDB está classificado como documento. Se na prova está classificado
como chave-valor e não é citado documento, diante disso pode ser considerado como cha-
ve-valor, já que é uma evolução de documento.

Propriedades

ACID

Em relação ao ACID: tem consistência forte, isolamento, concentra-se em “commit”, as


transações são aninhadas, a disponibilidade é o seu forte, ele é pessimista - conservador – e
possui uma evolução difícil por conta dos seus esquemas. É considerado pessimista porque
em uma transação bancária só vai se tudo der certo.

BASE

As propriedades base são:


BA (BasicallyAvailable): disponibilidade é prioridade.
S (Soft State): não precisa ser consistente o tempo todo.
E (EventuallyConsistent): consistente em momento indeterminado.
ANOTAÇÕES

www.grancursosonline.com.br 10
BANCO DE DADOS
NoSQL
Viu algum erro neste material? Contate-nos em: [email protected]

No Base a consistência é fraca, o foco gigantesco é em disponibilidade, trabalha no


esquema de melhor esforço, traz respostas aproximadas, é mais simples e mais rápido, é
agressivo (otimista), pois realiza o controle de transação e tem uma evolução mais fácil.

Como exemplo, pode ser dado os app de transporte: a maioria utiliza o banco de dados
NoSQL e só persiste no relacional depois de um tempo, ou seja, você faz uma corrida e só
vai persistir aquela corrida no outro dia. O mesmo ocorre com aplicativo de bicicleta em que
você faz uma viagem, ele grava e só aparece o histórico no outro dia, porque tem uma API
que roda em algum momento, pegando aqueles dados do banco NoSQL, grava em outro
lugar e só depois tem um histórico consolidado. Nos app de bicicleta ocorre mais a consis-
tência fraca, ao destravar simplesmente a informação se perde, some, tendo que repetir a
operação de destravar. Se fosse em um banco relacional, ao destravar a bicicleta, ele só ia
realmente garantir que ela foi destravada, depois de verificar todas as operações da transa-
ção. Portanto, a consistência não é muito o foco.
O cenário que utiliza esses bancos o foco maior é você ter tramitação de informação. Em
determinado momento que você perdeu algum dado, não tem problema, por isso ele é oti-
mista. Diferentemente do relacional em que você não pode perder uma transação bancária,
tem que ir até o final.

Teorema CAP

O teorema CAP é o que classifica os SGBDs em geral, todo tipo de banco de dados
Consistency (Consistência): é a característica que descreve como um sistema fica con-
sistente após uma operação. Significa que uma vez escrito o registro, este fica disponível
para ser utilizado imediatamente.
Availability (Disponibilidade): refere-se à concepção e implementação de um sistema
de modo que seja assegurado que este permanece ativo durante um determinado período.
Neste contexto, significa que um sistema é tolerante a falhas, seja de software ou de har-
dware, e, normalmente, permanece disponível durante a atualização de software e hardware.

www.grancursosonline.com.br 11
BANCO DE DADOS
NoSQL
Viu algum erro neste material? Contate-nos em: [email protected]

Partition Tolerance(Tolerância ao Particionamento): refere-se à capacidade de um


sistema continuar operando mesmo depois de uma falha na rede. Ou seja, significa garantir
que operações serão completadas, mesmo que componentes individuais não estejam dispo-
níveis. É a capacidade de um sistema se manter operante mesmo em casos onde ocorra uma
interrupção parcial de alguns componentes..Se um nó cair, o outro continua funcionando.

Normalmente, os bancos de dados relacionais são bons no C a no A, ou seja, na consis-


tência e na disponibilidade. Já o MongoDB é bom na consistência e na tolerância à partição,
ou seja, o MongoDB foca um pouco em consistência e se manter no ar em caso de problema.
Outros bancos de dados NoSQL como Cassandra, Dynamo são bons na disponibilidade
e na tolerância ao particionamento.
As soluções dos bancos de dados não boas em todos os cenários. São boas em duas
características.
O banco relacional, quando ele é centralizado, você tem soluções da Oracle como Rak
que você tem ali duas instâncias, ou um Clouster. Um banco relacional quando para, ele não
é muito bom quanto ao particionamento; apresentou a falha no nó, por mais que esteja no
Clouster, se o outro assumir e a carga for muito alta, ele cai.
Aqui são soluções mais simples como o MongoDB que você pode adicionar muitos nós e
30m
ele consegue gerenciar isso e soluções de big data que você deve ter um volume gigantesco
de dados em que são adicionados muitos nós e as consultas e transações são bem céleres.

Utilizando MongoDB

O MongoDB tem a estrutura documento com formato JSON. Caso fosse fazer uma ana-
logia com banco de dados relacional, o documento JSON seria o registro, a linha da coluna.
A collection seria a tabela, pois é a junção de vários registros. Os índices são os mesmos e
o embedding e o linking seria o join.

www.grancursosonline.com.br 12
BANCO DE DADOS
NoSQL
Viu algum erro neste material? Contate-nos em: [email protected]

Essas são as características específicas do MongoDB. Basicamente você tem que


saber que o conjunto de documentos é a collection, ou seja, uma coleção é um conjunto de
documentos.
A imagem a seguir demonstra a estrutura do JSON, mais evoluído que o chave-valor em
que se tem os atributos e os valores daquele atributo nesse formato de documento. Esse
documento é flexível, então, você pode ter uma coleção que um documento ou outro tenha
atributos diferentes, isso é normal, diferentemente do que aconteceria em um banco relacio-
nal que uma vez que tem uma tabela estudante tem 3 atributos todos terão os mesmos atri-
butos; uma linha não tendo atributo recebe um XXX. Aqui você pode ter um atributo a mais
ou a menos

A imagem também demonstra uma forma de você pesquisar dentro do documento, fazer
um find nessa coleção estudantes.

O MongoDB tem uma similaridade em suas consultas com o padrão SQL, obviamente
você tem que saber usar os comandos.

�Este material foi elaborado pela equipe pedagógica do Gran Cursos Online, de acordo com a aula
preparada e ministrada pelo professor Washington Almeida.
A presente degravação tem como objetivo auxiliar no acompanhamento e na revisão do conteúdo
ministrado na videoaula. Não recomendamos a substituição do estudo em vídeo pela leitura exclu-
siva deste material.

www.grancursosonline.com.br 13
BANCO DE DADOS
Exercícios – NoSQL
Viu algum erro neste material? Contate-nos em: [email protected]

EXERCÍCIOS – NOSQL

DIRETO DO CONCURSO
1. (2019/CCV-UFC/UFC/TÉCNICO DE TECNOLOGIA DA INFORMAÇÃO –DESENVOL-
VIMENTO DE SISTEMAS) Sobre os bancos de dados NoSQL, assinale a afirmati-
va correta:
a. Bancos de dados NoSQL não podem ser indexados.
b. Bancos de dados NoSQL são considerados banco de dados relacionais.
c. Nos bancos de dados NoSQL devem ser definidos um esquema de dados fixo antes
de qualquer operação.
d. São exemplos de bancos de dados NoSQL: MongoDB, Firebird, DynamoDB, SQLi-
te, Microsoft Access e Azure TableStorage.
e. Os bancos de dados NoSQL usam diversos modelos para acessar e gerenciar da-
dos, como documento, gráfico, chave-valor, em memória e, pesquisa.

COMENTÁRIO
a. Banco de dados no NoSQL é indexado para otimizar.
b. Banco de dados NoSQL não são considerados banco de dados relacionais.
c. Esquema de dados fixo é banco relacional.
d. São exemplos de bancos de dados NoSQL: MongoDB, Firebird, DynamoDB, e Azure
TableStorage.
e. Os bancos de dados NoSQL usam diversos modelos para acessar e gerenciar dados,
como documento, gráfico, chave-valor, em memória e, pesquisa.

2. (2014/CESPE/ TJ-SE/ANALISTA JUDICIÁRIO –BANCO DE DADOS) Acerca de ban-


cos de dados semiestruturados e bancos de dados NOSQL, julgue o item subsecutivo:
Bancos de dados NOSQL orientados a documentos são apropriados para o armazena-
mento de dados semiestruturados.
5m
ANOTAÇÕES

www.grancursosonline.com.br 1
BANCO DE DADOS
Exercícios – NoSQL
Viu algum erro neste material? Contate-nos em: [email protected]

COMENTÁRIO
Documentos representam a unidade básica neste tipo de tecnologia, sendo possível com-
parar os mesmos aos registros das tabelas convencionais. Embora exista um paralelo com
as linhas do modelo relacional, um documento possui uma estrutura flexível e que não
está presa à existência de colunas pré-definidas. Do ponto de vista prático, isto significa
que inúmeros documentos vinculados a uma mesma coleção podem contar com formatos
variáveis. Muitas das soluções orientadas a documento fazem uso do padrão JSON (Ja-
vaScript Object Notation) para o armazenamento de dados. Dentre os diversos bancos
orientados a documento, é possível citar como exemplos o MongoDB, o DynamoDB (al-
ternativa oferecida na nuvem pela Amazon) e o DocumentDB (este último um serviço que
integra o Microsoft Azure).

3. (2018/CESGRANRIO/ BANCO DO BRASIL/ ESCRITURÁRIO) O termo NoSQL


refere-se:
a. a uma abordagem teórica que segue o princípio de não utilização da linguagem SQL
em bancos de dados heterogêneos.
b. à renúncia às propriedades BASE (Basically Available, Soft state, Eventual consis-
tency), potencializando seu espectro de uso.
c. ao aumento da escalabilidade das bases de dados neles armazenados, aliado a um
desempenho mais satisfatório no seu acesso.
d. à facilidade de implementação de bases de dados normalizadas, com vistas a minimi-
zação de redundâncias no conjunto de dados.
e. à implementação simultânea das três componentes do modelo CAP: consistência,
disponibilidade e tolerância ao particionamento.

COMENTÁRIO
a. O termo NoSQL refere-se a uma abordagem prática.
b. O NoSQL implementa às propriedades BASE.
c. O NoSQL refere-se ao aumento da escalabilidade das bases de dados neles armazena-
dos, aliado a um desempenho mais satisfatório no seu acesso.
d. O NoSQL refere-se à facilidade de implementação de bases de dados relacionais.
e. O termo NoSQL refere-se à implementação simultânea de dois componentes do modelo
CAP. Não existe banco que realize três coisas ao mesmo tempo. Normalmente, ele é bom
em duas das características.
10m

www.grancursosonline.com.br 2
BANCO DE DADOS
Exercícios – NoSQL
Viu algum erro neste material? Contate-nos em: [email protected]

4. (2021/CESPE-CEBRASPE/SERPRO/ANALISTA-ESPECIALIZAÇÃO: CIÊNCIA DE
DADOS) A respeito de conceitos de NoSQL orientado a grafos, orientado a documentos
e orientado a colunas, julgue o item a seguir.
Uma coleção e um documento, no MongoDB, são equivalentes à tabela e à linha, no
Modelo Relacional de Dados.

COMENTÁRIO
O MongoDB procurou alguns conceitos relacionais, mas não é um banco relacional, ele
é um banco orientado a documentos no formato JSON, podendo aplicar várias consultas
que lembram o SQL. O documento tem uma estrutura e vários documentos naquela
estrutura (que pode ser variável, pois é flexível) são chamados de coleção. Portanto,
coleção é semelhante à tabela e, os documentos semelhantes às linhas.
MongoDB é um dos bancos mais cobrados em provas.

GABARITO
1. e
2. C
3. c
4. C

�Este material foi elaborado pela equipe pedagógica do Gran Cursos Online, de acordo com a aula
preparada e ministrada pelo professor Washington Almeida.
A presente degravação tem como objetivo auxiliar no acompanhamento e na revisão do conteúdo
ministrado na videoaula. Não recomendamos a substituição do estudo em vídeo pela leitura exclu-
siva deste material.
ANOTAÇÕES

www.grancursosonline.com.br 3
BANCO DE DADOS
Álgebra Relacional
Viu algum erro neste material? Contate-nos em: [email protected]

ÁLGEBRA RELACIONAL

• Álgebra Relacional constitui um conjunto básico de operações do modelo relacional


• As operações da álgebra relacional permitem ao usuário especificar solicitações bási-
cas de recuperação de tuplas.
• O resultado de uma recuperação é uma nova relação, que pode ser formada a partir
de uma ou mais relações (operações em cascata).
• Os comandos SQL são baseados nessa sintaxe da álgebra relacional.
• Uma sequência de operações em álgebra relacional forma uma expressão, cujo resul-
tado também será uma relação.

As operações em Álgebra Relacional são divididas em dois grupos:

• Operações da Teoria Matemática dos Conjuntos:


– UNIÃO (U), INTERSEÇÃO (∩), DIFERENÇA (– ) e PRODUTO CARTESIANO (X).

• Operações específicas para Bancos de dados Relacionais:


– SELEÇÃO (σ), PROJEÇÃO (π) e JUNÇÃO ( |X| )
– A banca pergunta, então precisa lembrar desses símbolos?

Operador SELECT (σ)

Há uma diferença da projeção para o select.

• A operação de SELEÇÃO (SELECT) é utilizada para selecionar um subconjunto de


tuplas de uma relação que satisfaça a uma condição de seleção.
• O operador SELECT (σ) é um operador unitário, ou seja, é aplicado a uma única relação.
• A operação de seleção é representada da seguinte forma: σ <condição de seleção> (R)
• Uma condição de seleção é uma expressão booleana, podendo estar associadas aos
operadores booleanos E (AND), OU (OR) e NÃO (NOT).
ANOTAÇÕES

www.grancursosonline.com.br 1
BANCO DE DADOS
Álgebra Relacional
Viu algum erro neste material? Contate-nos em: [email protected]

Exemplo (SELECT σ)

PRODUTOS

Nome Categoria Preço Unidade


Café Mercearia R$ 8,99 KG
Açúcar Mercearia R$ 10,20 5 KG
Sabão em Pó Limpeza R$ 9,90 KG
Vinho Bebida R$ 59,90 750 ML
Refrigerante Bebida R$ 7,90 2L

Listar os produtos da categoria Bebida.


Da álgebra relacional, baseado na teoria de conjuntos e as operações da própria álgebra
relacional (aqui a seleção), é que se tem o SELECT. Em álgebra relacional, é aquele select.
Lá, se fazia o select em produtos. O select era: SELECT * FROM PRODUTOS OR CATEGO-
RIA = BEBIDA.
Na álgebra relacional, essa é a sintaxe:

σ categoria=‘bebida’ (PRODUTO) .
5m


Nome Categoria Preço Unidade
Vinho Bebida R$ 59,90 750 ML
Refrigerante Bebida R$ 7,90 2L

Assim, faz uma seleção, a condição é categoria = ‘bebida’ na relação produto. Então,
tem-se o resultado.
A operação select traz todas as colunas. Como se está falando da álgebra relacional,
tem-se a relação e seus atributos; os atributos e as tuplas.

Exemplo, 2, (SELECT σ)

Colocando mais uma condição.


ANOTAÇÕES

www.grancursosonline.com.br 2
BANCO DE DADOS
Álgebra Relacional
Viu algum erro neste material? Contate-nos em: [email protected]

PRODUTOS

Nome Categoria Preço Unidade


Café Mercearia R$ 8,99 KG
Açúcar Mercearia R$ 10,20 5 KG
Sabão em Pó Limpeza R$ 9,90 KG
Vinho Bebida R$ 59,90 750 ML
Refrigerante Bebida R$ 7,90 2L

Listar os produtos da categoria Bebida com preço maior que R$ 10:

σ categoria=‘bebida’ and preco>10 (PRODUTO)

Nome Categoria Preço Unidade


Vinho Bebida R$ 59,90 750 ML

Como o refrigerante é R$ 7,90, somente o vinho é exibido como resultado.

• O operador SELECT (σ) é comutativo, pois

σ <condição1> (σ <condição2> (R)) = σ <condição2> (σ <condição1> (R))

Pode-se inverter a ordem, portanto.

• O grau da relação resultante de uma operação SELECT sobre uma relação R é o


mesmo grau de R.
– O grau da relação é quantos atributos tem naquela relação. Assim, o exemplo ante-
rior, tendo quatro é de quarto grau.

• Na seleção, não se escolhe os atributos, é selecionado tudo.


• O n. de tuplas na relação resultante é sempre menor ou igual ao n. de tuplas de R. Isso
porque se traz tudo ou um conjunto daquele tudo.

Outra seleção para ilustrar a inversão:


ANOTAÇÕES

www.grancursosonline.com.br 3
BANCO DE DADOS
Álgebra Relacional
Viu algum erro neste material? Contate-nos em: [email protected]

PRODUTOS

Nome Categoria Preço Unidade


Café Mercearia R$ 8,99 KG
Açúcar Mercearia R$ 10,20 5 KG
Sabão em Pó Limpeza R$ 9,90 KG
Vinho Bebida R$ 59,90 750 ML
Refrigerante Bebida R$ 7,90 2L

σcategoria=‘bebida’ (σ preco>10 (PRODUTO))

σ preco>10 (σcategoria=‘bebida’ (PRODUTO))

Nome Categoria Preço Unidade


Vinho Bebida R$ 59,90 750 ML

Operador PROJETC (π)

Este é utilizado para trazer somente alguns atributos.

• O operador PROJECT (π) seleciona determinadas colunas da relação R, descar-


tando outras.
• É representada da seguinte forma π <lista de atributos> (R)
• O operador PROJECT (π) é um operador unário, ou seja, é aplicado a uma única relação.
• π remove tuplas duplicadas, quando os atributos projetados não pertençam à chave
da relação R.
• O grau da relação resultante é igual ao n. de atributos existentes na lista. Sendo 2, por
exemplo, será de grau 2.
• O n. de tuplas em relação resultante de uma operação de projeção é sempre menor
ou igual ao n. de tuplas da relação R. No caso do produto cartesiano, que será visto
adiante, o número de tuplas é maior.
ANOTAÇÕES

www.grancursosonline.com.br 4
BANCO DE DADOS
Álgebra Relacional
Viu algum erro neste material? Contate-nos em: [email protected]

A operação de projeção não é comutativa. Ou seja, não é possível inverter a ordem e


trazer o mesmo resultado. Ou seja, invertendo-se a ordem há resultados diferentes.

π <lista1> (π <lista2>(R)) = π <lista> (R)

Exemplo:
π nome (π mat, nome, sexo (FUNCIONARIO)) = π nome (R).
10m
Ao final, portanto, só se vai ter nome.

Exemplo (PROJECT π)

PRODUTOS

Nome Categoria Preço Unidade


Café Mercearia R$ 8,99 KG
Açúcar Mercearia R$ 10,20 5 KG
Sabão em Pó Limpeza R$ 9,90 KG
Vinho Bebida R$ 59,90 750 ML
Refrigerante Bebida R$ 7,90 2L

Listar o nome e o preço de todos os produtos

π nome, preco (PRODUTOS)

Nome Preço
Café R$ 8,99
Açúcar R$ 10,20
Sabão em Pó R$ 9,90
Vinho R$ 59,90
Refrigerante R$ 7,90

Exemplo (PROJECT π) – 2
ANOTAÇÕES

www.grancursosonline.com.br 5
BANCO DE DADOS
Álgebra Relacional
Viu algum erro neste material? Contate-nos em: [email protected]

PRODUTOS

Nome Categoria Preço Unidade


Café Mercearia R$ 8,99 KG
Açúcar Mercearia R$ 10,20 5 KG
Sabão em Pó Limpeza R$ 9,90 KG
Vinho Bebida R$ 59,90 750 ML
Refrigerante Bebida R$ 7,90 2L

Listar as categorias de produtos

π categoria (PRODUTOS)

Categoria
Mercearia
Limpeza
Bebida

Observe que o operador de projeção elimina os duplicados. Usando só SELECT para


trazer categorias, as cinco seriam trazidas.

Combinando Operadores

PRODUTOS

Nome Categoria Preço Unidade


Café Mercearia R$ 8,99 KG
Açúcar Mercearia R$ 10,20 5 KG
Sabão em Pó Limpeza R$ 9,90 KG
Vinho Bebida R$ 59,90 750 ML
Refrigerante Bebida R$ 7,90 2L

Listar o nome dos produtos da categoria ‘mercearia’ com preço superior a R$ 10,00
ANOTAÇÕES

www.grancursosonline.com.br 6
BANCO DE DADOS
Álgebra Relacional
Viu algum erro neste material? Contate-nos em: [email protected]

π nome (σcategoria=‘mercearia’ and preco>10 (PRODUTOS))

Nome
Açúcar

Operador RENAME (←)

• É possível agrupar operações e criar relações de resultado intermediário.

Por exemplo, pode-se criar uma relação intermediária que represente os dados dos pro-
dutos de bebida.

BEBIDAS ← σ CATEGORIA=‘BEBIDAS’ (PRODUTO)

• Em seguida, pode-se aplicar um operador de projeção, para exibir o nome e o preço


destes produtos:

π nome, preco (BEBIDAS)

DIRETO DO CONCURSO

1. (CESPE/ABIN/OFICIAL TÉCNICO DE INTELIGÊNCIA/2018) A respeito de sistemas


gerenciadores de banco de dados, julgue o próximo item.
O comando SQL select campo from tabela corresponde a uma operação de projeção
da álgebra relacional.

COMENTÁRIO

A ABIN geralmente cobra álgebra relacional.


Quando se projeta, está se escolhendo atributos de uma relação.

2. (CESPE/FUB/TÉCNICO DE TECNOLOGIA DA INFORMAÇÃO/2018) Julgue o item


subsecutivo, a respeito de linguagem de definição e manipulação de dados.
ANOTAÇÕES

www.grancursosonline.com.br 7
BANCO DE DADOS
Álgebra Relacional
Viu algum erro neste material? Contate-nos em: [email protected]

O comando WHERE do SQL corresponde à operação de projeção da álgebra relacional.

COMENTÁRIO
Pode-se colocar os operadores no comando select. Normalmente se faz o select, determi-
na os dados que se quer e depois se aplica a projeção. WHERE é operador da projeção,
não da seleção. A seleção é para se escolher os atributos de uma relação.
15m

3. (CESPE/FUB/TÉCNICO DE TECNOLOGIA DA INFORMAÇÃO/2018) Acerca dos con-


ceitos de otimização de consultas SQL e técnicas de análise de desempenho, julgue o
próximo item.
Álgebra relacional é um conjunto de operações sobre relações, sendo gerada dessas
operações uma relação de saída.

GABARITO
1. C
2. E
3. C

Este material foi elaborado pela equipe pedagógica do Gran Cursos Online, de acordo com a aula
preparada e ministrada pelo professor Washington Henrique Carvalho Almeida.
A presente degravação tem como objetivo auxiliar no acompanhamento e na revisão do conteúdo
ministrado na videoaula. Não recomendamos a substituição em vídeo pela leitura exclusiva deste
material.
ANOTAÇÕES

www.grancursosonline.com.br 8
BANCO DE DADOS
Álgebra Relacional II
Viu algum erro neste material? Contate-nos em: [email protected]

ÁLGEBRA RELACIONAL II

Operadores de Teoria dos Conjuntos

Diversas operações são utilizadas para incorporar os elementos de dois conjuntos.


Operações:
União (U): O resultado dessa operação, representado através de R U S, é uma relação
que inclui todas as tuplas que estão em R ou estão em S, ou em ambos R e S. Tuplas dupli-
cadas são eliminadas. Não há Union ou Union OU, como o SQL.
Interseção (∩): O resultado dessa operação, representado através de R ∩ S, é uma rela-
ção que inclui todas as tuplas que estão tanto em R quanto em S. A interseção traz o que está
em comum nas duas relações.
Diferença (–): O resultado dessa operação, representado por R – S, é uma relação que
inclui todas as tuplas que estão em R, mas não estão em S.

UNIÃO (U)

Professor

Nome Idade
João 50
Mateus 35
Renata 28
Marcelo 44

Aluno

Nome Idade
Pedro 12
Henrique 10
Artur 8
Cecília 9
ANOTAÇÕES

www.grancursosonline.com.br 1
BANCO DE DADOS
Álgebra Relacional II
Viu algum erro neste material? Contate-nos em: [email protected]

Listar o nome e a idade de todos alunos e professores

Professor U Aluno

Nome Idade
João 50
Mateus 35
Renata 28
Marcelo 44
Pedro 12
Henrique 10
Artur 8
Cecília 9

INTERSEÇÃO (∩)

Professor

Nome Sobrenome
João Pereira
Mateus Souza
Renata Jardim
Marcelo Martins

Aluno

Nome Sobrenome
Pedro Silva
Henrique Martins
Artur Aguiar
Cecília Alves
ANOTAÇÕES

www.grancursosonline.com.br 2
BANCO DE DADOS
Álgebra Relacional II
Viu algum erro neste material? Contate-nos em: [email protected]

Listar os alunos e professores que possuem o mesmo nome e sobrenome

Professor ∩ Aluno

Nome Sobrenome
Marcelo Martins

É o elemento que está presente nos dois conjuntos, visto que Marcelo Martins uma hora
atua como Professor e outra hora como Aluno, como um professor que, em algum momento,
faz um curso.

DIFERENÇA (–)

Professor

Nome Sobrenome
João Pereira
Mateus Souza
Renata Jardim
Marcelo Martins

Aluno

Nome Sobrenome
Pedro Silva
Henrique Martins
Artur Aguiar
Cecília Alves

Listar os alunos que não tenham nome e sobrenome iguais aos de algum professor

Nome Sobrenome
Pedro Silva
Artur Aguiar
Cecília Alves
ANOTAÇÕES

www.grancursosonline.com.br 3
BANCO DE DADOS
Álgebra Relacional II
Viu algum erro neste material? Contate-nos em: [email protected]

Se fosse Professor – Alunos seria: João Pereira, Mateus Souza e Renata Jardins, sem o
Marcelo Martins.

• Produto Cartesiano

É o cruzamento de duas relações, que combina todos os registros das duas rela-
ções.O produto cartesiano, também chamado como PRODUTO CRUZADO (CROSS PRO-
DUCT) ou JUNÇÃO CRUZADA (CROSS JOIN), é representado por X.
– Combina tuplas de duas relações de forma combinatória.
– O produto cartesiano cria tuplas com atributos combinados das duas relações.
– O produto cartesiano P de R x S, indicado por P = R (R1, R2,...,RN) X S (S1, S2,...,
SM) gera uma relação P com os atributos de R e S:
- P (R1, R2,...,RN, S1, S2,..., SM)
5m

• Produto Cartesiano (X)

O Produto Cartesiano é diferente de União.

Funcionário

Nome Cod_Dep
Pedro 1
Henrique 1
Artur 2
Cecília 3

Departamento

Cod Sigla
1 TI
2 JUR
3 FIN
ANOTAÇÕES

www.grancursosonline.com.br 4
BANCO DE DADOS
Álgebra Relacional II
Viu algum erro neste material? Contate-nos em: [email protected]

Funcionário X Departamento

Nome_F Cod_Dep Cod Sigla


Pedro 1 1 TI
Pedro 1 2 JUR
Pedro 1 3 FIN
Henrique 1 1 TI
Henrique 1 2 JUR
Henrique 1 3 FIN
Artur 1 1 TI
Artur 1 2 JUR
Artur 1 3 FIN
Cecília 1 1 TI
Cecília 1 2 JUR
Cecília 1 3 FIN

É acrescentado colunas, como um Join. Contudo, o Join já traz o resultado quando há


relação entre as chaves. O produto cartesiano realiza o cruzamento de tudo X tudo.
Os Joins no banco de dados são operação cara, pois normalmente o Join primeiro faz
um produto cartesiano, cruza tudo com tudo, e depois vê qual a chave apropriada. As chaves
que não batem são eliminadas.

• Operador de Junção – Join (|X|)


– A operação de junção, representada por |X|, é utilizada para combinar tuplas relacio-
nadas de duas relações em uma única tupla.
– É um operador binário, pois relaciona duas tuplas.
– A operação de Join é uma combinação das operações PRODUTO CARTESIANO
e SELEÇÃO.
– FUNC_DEP ← Funcionário X Departamento
– σ COD=COD_DEP (FUNC_DEP), sendo uma seleção comparando os códigos.
– A forma de representar uma junção é R |X| S <condição de junção> S
ANOTAÇÕES

www.grancursosonline.com.br 5
BANCO DE DADOS
Álgebra Relacional II
Viu algum erro neste material? Contate-nos em: [email protected]

• OPERADOR DE JUNÇÃO (JOIN)


Funcionário
Nome Cod_Dep
Pedro 1
Henrique 1
Artur 2
Cecília 3

Departamento
Cod Sigla
1 TI
2 JUR
3 FIN

Funcionario |X| cod=cod_dep Departamento


Nome_F Cod_Dep Cod Sigla
Pedro 1 1 TI
Henrique 1 1 TI
Artur 1 2 JUR
Cecília 1 3 FIN

1. (2018/CESGRANRIO/PETROBRAS/PROVA DE EQUIPAMENTOS JÚNIOR-ELETRÔ-


NICA) A Figura 1 a seguir exibe duas relações que fazem parte de um banco de dados
relacional. Sobre essas relações foi aplicada uma sequência de operações da Álgebra
Relacional, que resultou na relação exibida na Figura 2.
10m
S
A B C
25 20 Fusca
35 30 Fusca
45 30 Opala
55 35 Galaxie
65 45 Mustang
ANOTAÇÕES

www.grancursosonline.com.br 6
BANCO DE DADOS
Álgebra Relacional II
Viu algum erro neste material? Contate-nos em: [email protected]

T
G H
25 1975
35 1980
45 1985

Figura 1
C
Fusca
Fusca
Opala
Galaxie
Mustang

Figura 2
a. (σB >25(πC(S))) A=G T
b. πC((σB>25 (S)) A=G T)
c. πC(S C=G T)
d. πC((σB<40 (T)) G=A S)
e. πC(σB<35 (A))

COMENTÁRIO
Uma forma de associar SELEÇÃO e PROJEÇÃO é: π (‘P’I) representa o SELECT e é
“P”ROJEÇÃO o (‘S’igma) representa o WHERE e é ‘S’ELEÇÃO. No caso da B, ficaria SE-
LECT C FROM S WHERE B>25, o outro símbolo é um JOIN, e faz uma comparação onde
os valores de A e G sejam iguais.
No caso de A, é preciso ter a projeção de C no final. No caso de C, a sintaxe não é dessa
forma. No caso de D, não existe B. No caso de E, a relação com A não existe.
15m

2. (2012/CESGRANRIO/LIQUIGÁS/PROFISSIONAL JÚNIOR/ANÁLISE DE IN-


FRAESTRUTURA)
Na Álgebra Relacional, o número de tuplas resultante de uma operação de projeção
(projection) sobre uma relação R é sempre:
a. igual ou menor que o número de tuplas da relação R.
ANOTAÇÕES

www.grancursosonline.com.br 7
BANCO DE DADOS
Álgebra Relacional II
Viu algum erro neste material? Contate-nos em: [email protected]

b. igual ao número de tuplas da relação R.


c. maior que o número de tuplas da relação R.
d. metade do número de tuplas da relação R.
e. o dobro do número de tuplas da relação R.

COMENTÁRIO
Quando é projetado, há uma relação com três atributos: A, B e C. É feita a projeção de C,
as tuplas serão sempre iguais ou menores. O produto cartesiano aumenta as tuplas.

3. (2016/UFRPE/TÉCNICO EM TECNOLOGIA DA INFORMAÇÃO) Sobre álgebra relacio-


nal em um banco de dados relacional, analise as afirmações abaixo.

1) A união de duas relações, R U S, é o conjunto de tuplas que está em R ou S ou em


ambas. Duplicatas não são eliminadas.
2) A projeção de uma relação R produz uma nova relação com alguns dos atributos
de R.
3) A junção produz todas as combinações de tuplas, de duas relações, que satisfazem
a condição de junção.
4) O produto cartesiano de duas relações R×S combina toda tupla de R com toda
tupla de S.

Estão corretas:
a. 1, 2, 3 e 4.
b. 1, 2 e 3, apenas.
c. 1, 2 e 4, apenas.
d. 1, 3 e 4, apenas.
e. 2, 3 e 4, apenas.

COMENTÁRIO
As duplicatas são eliminadas.
ANOTAÇÕES

www.grancursosonline.com.br 8
BANCO DE DADOS
Álgebra Relacional II
Viu algum erro neste material? Contate-nos em: [email protected]

4. (2014/CESGRANRIO/PETROBRÁS/TÉCNICO(A) EM INFORMÁTICA JÚNIOR) Consi-


dere o esquema relacional abaixo, no qual placa é a chave primária.
VEICULO (Placa, Cor, Modelo, Marca, Ano, Valor)
Qual é a expressão em álgebra relacional a ser aplicada sobre esse esquema, de forma
a obter as Placas dos VEICULOS com Ano igual a 2011 e Valor menor que 9000?
a. σPlaca (σAno = 2011; Valor < 9000 )
b. σPlaca (πValor < 9000 AND Ano = 2011 )
c. σPlaca (πValor < 9000 AND Ano = 2011 (VEICULO))
d. πPlaca (σ Ano = 2011 AND Valor < 9000 (VEICULO) )
e. πPlaca (πAno = 2011; πValor < 9000 (VEICULO) )

COMENTÁRIO
Para projetar a placa é o símbolo é π, e para selecionar é o símbolo sigma.

5. (2012/CESGRANRIO/PETROBRÁS/ANALISTA DE SISTEMA JÚNIOR/INFRAESTRU-


TURA) A Álgebra Relacional define várias operações. Algumas delas operam apenas
uma relação (unárias), outras operam com duas relações (binárias). As operações pro-
ject (projeção), union (união) e select (seleção) são, respectivamente, operações:
a. unária, unária, unária.
b. binária, unária, binária.
c. binária, binária, unária.
d. unária, binária, unária.
e. unária, binária, binária.

COMENTÁRIO
Se retorna uma relação é unária. Se junta duas relações é binária. Projeção e seleção são
unárias, e a União é binária.
20m
ANOTAÇÕES

www.grancursosonline.com.br 9
BANCO DE DADOS
Álgebra Relacional II
Viu algum erro neste material? Contate-nos em: [email protected]

GABARITO
1. b
2. a
3. e
4. d
5. d

�Este material foi elaborado pela equipe pedagógica do Gran Cursos Online, de acordo com a aula
preparada e ministrada pelo professor Washington Henrique Carvalho Almeida.
A presente degravação tem como objetivo auxiliar no acompanhamento e na revisão do conteúdo
ministrado na videoaula. Não recomendamos a substituição do estudo em vídeo pela leitura exclu-
siva deste material.
ANOTAÇÕES

www.grancursosonline.com.br 10
BANCO DE DADOS
Índices

Viu algum erro neste material? Contate-nos em: [email protected]

ÍNDICES

Índice

• No contexto da estrutura de dados, é uma referência associada a uma chave, que é


utilizada para fins de otimização, permitindo uma localização mais rápida de um regis-
tro quando se é feita uma consulta.
• Pode ser entendido em termos teóricos, que é uma estrutura que possibilita acesso
a um item indexado, desde que a busca tenha complexidade inferior a complexidade
linear, podendo ser logarítmica ou constante.

O índice funciona como o índice de um livro que lista inúmeras páginas e especifica o que
há em cada capítulo, possibilitando o leitor a encontrar um capítulo sem ter que passar as
páginas de forma linear. Da mesma forma, o índice possibilita acessar de forma mais rápida
um registro, sem ter que fazer uma consulta linear.

• No contexto de banco de dados, um índice é uma estrutura (ou arquivo) auxiliar asso-
ciado a uma tabela (ou coleção de dados). Tem a função de acelerar o tempo de
acesso às linhas de uma tabela, criando ponteiros para os dados armazenados em
colunas específicas.
• O banco de dados utiliza o índice de forma semelhante ao índice remissivo de um livro,
verificando um assunto determinado no índice e em seguida localizando a sua posição
em determinada página.

Normalmente, um livro possui o índice numérico por capítulos, mas também um índice ao
final do livro que possui palavras. Por exemplo, para encontrar o nome “ponto de função”, o
leitor pode consultar esse índice para descobrir a página em que ele se encontra. O banco
de dados implementa vários tipos de índices, que têm como ideia final agilizar a consulta.

Índices Compostos x Índices Simples


• Índices Compostos: fazem referência a mais de uma coluna;
• Índices Simples: fazem referência a uma única coluna;
ANOTAÇÕES

www.grancursosonline.com.br 1
BANCO DE DADOS
Índices

Viu algum erro neste material? Contate-nos em: [email protected]

A imagem acima apresenta um índice simples e um índice composto.


5m
• Esparso: total de entradas no índice = número de blocos do arquivo de dados;
• Denso: possui uma entrada para cada registro no arquivo de dados.

O índice esparso condensa algumas informações.

Índices Internos x Índices Externos


• Índices Internos: a chave está contida dentro da tabela.
• Índices Externos: quando existe uma tabela de chaves separada que associa pontei-
ros à registros de uma tabela.

No índice externo, a própria chave é o índice. Ao criar uma chaves primária, ela serve de
índice. No índice externo, há ponteiros para a memória.

www.grancursosonline.com.br 2
BANCO DE DADOS
Índices

Viu algum erro neste material? Contate-nos em: [email protected]

Índices Primários x Chaves Primárias


• Índices Primário: é um arquivo ordenado cujos registros são de tamanho fixo com dois
campos. O primeiro campo é do mesmo tipo de dado do campo de chave de ordena-
ção — chave primária — do arquivo de dados, e o segundo campo é um ponteiro para
um bloco de disco (um endereço de bloco).
ANOTAÇÕES

www.grancursosonline.com.br 3
BANCO DE DADOS
Índices

Viu algum erro neste material? Contate-nos em: [email protected]

Na imagem acima, há um índice com dois campos, o ponteiro para o bloco e a chave
primária. O primeiro campo deve ser do mesmo tipo da chave de ordenação, que é a chave
primária. Ao criar a chave primária, o banco de dados, automaticamente, cria um índice pri-
mário, e o segundo campo é um ponteiro para o endereço na memória. O arquivo de índice
aponta para os dados em si, de forma que, ao pesquisar no índice, ele traz o dado.

• Índices Primário: associado a uma chave primária (Primary Key) de um arquivo.


• Chave Primária: identificador único de uma tabela, utilizado para distinguir um regis-
tro de outro.
• Índices secundários: pode ser definido sobre atributo. – chave (sem valores repetidos)
– não chave (com valores repetidos).

Se o índice não tiver valores repetidos, ele é um índice secundário denso; se tiver, é um
índice esparso. Normalmente, quando o SGBD implementa o índice primário, ele já cria a
chave. Entretanto, o índice primário nem sempre será o melhor para fazer pesquisas. A estra-
tégia de índices é algo que o DDA faz no dia a dia para melhorar pesquisas.
10m
Não é possível criar índices indiscriminadamente porque o banco de dados cria um
arquivo paralelo que será atualizado conforme as atualizações na tabela. Portanto, se forem
criados índices, serão criadas várias estruturas paralelas e sempre que a tabela for atuali-
zada, os índices serão atualizados, o que pode gerar um problema. Os SGBDs têm softwares
que fazem análises sobre se o índice está melhor ou pior.
ANOTAÇÕES

www.grancursosonline.com.br 4
BANCO DE DADOS
Índices

Viu algum erro neste material? Contate-nos em: [email protected]

Índices de Agrupamento
• Se os registros de arquivo forem fisicamente ordenados em um campo não chave —
que não tem um valor distinto para cada registro —, esse campo é chamado de campo
de agrupamento, e o arquivo de dados é chamado de arquivo agrupado. Serve para
agilizar a recuperação de todos os registros que têm o mesmo valor para o campo
de agrupamento.
ANOTAÇÕES

www.grancursosonline.com.br 5
BANCO DE DADOS
Índices

Viu algum erro neste material? Contate-nos em: [email protected]

Há um arquivo de dados chamado de arquivo agrupado. O arquivo de índice terá pon-


teiros para os dados agrupados. O “1” retorna o número do departamento que seja “1”. São
retornados blocos de informação e grupos de dados que têm valores similares.

Índice Multinível
• O esquema multinível pode ser usado em qualquer tipo de índice — seja ele primá-
rio, de agrupamento ou secundário —, desde que o índice de primeiro nível tenha
valores distintos para K(i) e entradas de tamanho fixo. O objetivo é reduzir a parte do
índice que a pesquisa seguirá.

www.grancursosonline.com.br 6
BANCO DE DADOS
Índices

Viu algum erro neste material? Contate-nos em: [email protected]

O índice multinível tem o nível primário e o nível secundário. Com o índice multinível,
é possível percorrer menos registros. Por exemplo, para chegar no “85”, é necessário dar
apenas quatro saltos. É possível adotar essa estratégia para os três tipos de índices vistos.
15m

Índice B-Tree

Há uma hierarquia em árvore. Esse índice pode ser usado para agilizar pesquisas forte-
mente. Por exemplo, há uma sequência de 1 a 12. No índice primário, para chegar no número
12, seria necessário percorrer todos os números; no índice multinível, seria possível quebrar
em blocos do 1 a 4, 5 a 8, 9 a 12, e o índice daria saltos.
A árvore do B-Tree é balanceada, o que significa que, ao adicionar nós, a árvore os equi-
libra. No índice B-Tree acima, o nó central é 5, logo, para encontrar o número 6, seria neces-
sário dar apenas dois saltos.

DIRETO DO CONCURSO
1. (2019/CESPE/CEBRASPE/TJ-AM) Acerca de sistema gerenciador de banco de dados,
do tuning e da segurança em banco de dados, julgue o item subsequente.

Em sistema gerenciador de banco de dados, os índices são estruturas que permitem


agilizar a busca dos registros no disco.
ANOTAÇÕES

www.grancursosonline.com.br 7
BANCO DE DADOS
Índices

Viu algum erro neste material? Contate-nos em: [email protected]

COMENTÁRIO
A pesquisa, quando gravada no disco, pode ser sequencial, pode estar desordenada. O
índice auxilia nisso.
No final, os dados são salvos no disco rígido, na memória secundária.

2. (2018/INSTITUTO AOCP/PRODEB/ESPECIALISTA DE TIC-B.I) Os bancos de dados


em geral são armazenados fisicamente como arquivos de registros em discos mag-
néticos. Para acessá-los, existem diferentes técnicas que eficientemente usam vários
algoritmos. Sobre conhecimento técnico em administração de dados, algumas técnicas
de acesso requerem estruturas de dados auxiliares que são chamadas:

a. matrizes.
b. esquemas.
c. índices.
d. tabelas.
e. hashing

COMENTÁRIO
O índice, às vezes, pode estar dentro da chave primária, sendo índice interno ou externo,
que é uma estrutura de dados.
20m

3. (2018/FAURGS/TJ-RS/ADMINISTRADOR DE BANCO DE DADOS) Qual é o tipo de ín-


dice utilizado para agilizar a recuperação de todos os registros que têm o mesmo valor
para um dado campo?

a. De agrupamento.
b. Secundário.
c. Primário.
d. Multinível.
e. B-Trees.
ANOTAÇÕES

www.grancursosonline.com.br 8
BANCO DE DADOS
Índices

Viu algum erro neste material? Contate-nos em: [email protected]

COMENTÁRIO
Há índices que não repetem o valor e outros que repetem.
O índice de agrupamento, com um registro que possui os mesmos valores, retorna um
grupo de dados classificados proximamente.
Essa é a mesma técnica de cluster, em Datamine, no aprendizado de máquina. No apren-
dizado de máquina, ele agrupa e depois esses grupos são acessados através de alguma
chave, de um índice que faz a pesquisa nesses grupos de dados.

GABARITO
1. C
2. c
3. a

�Este material foi elaborado pela equipe pedagógica do Gran Cursos Online, de acordo com a aula
preparada e ministrada pelo professor Washington Almeida.
A presente degravação tem como objetivo auxiliar no acompanhamento e na revisão do conteúdo
ministrado na videoaula. Não recomendamos a substituição do estudo em vídeo pela leitura exclu-
siva deste material.
ANOTAÇÕES

www.grancursosonline.com.br 9
BANCO DE DADOS
IDEF1X
Viu algum erro neste material? Contate-nos em: [email protected]

IDEF1X

• Integration DEFinition for information modeling – IDEF1X


• Definição de integração para modelagem de informações é uma linguagem de mode-
lagem de dados para o desenvolvimento de modelos de dados semânticos.
• O IDEF1X é usado para produzir um modelo gráfico de informações que representa a
estrutura e a semântica das informações dentro de um ambiente ou sistema.

História

• A notação IDEF1X (Integrated DEFinition for Information Modelling) foi desenvolvida


no final da década de 70 para a força aérea norte-americana.
• Esta metodologia faz parte de um conjunto de técnicas (IDEF) para a modelagem com-
pleta de um sistema, incluindo modelagem de processos, dados, simulação e descri-
ção de procedimentos.
• A metodologia IDEF1X é um padrão do birô federal de processamento de informações
norte–americano (padrão FIPS 184) e de uso público e livre.

IDEF1X

• IDEF1X é uma metodologia para a modelagem da informação cujo propósito inclui ofe-
recer meios para definir uma visão de dados independente de aplicação, que pode ser
validada por usuários e transformada em um projeto físico de BD.
5m
ANOTAÇÕES

www.grancursosonline.com.br 1
BANCO DE DADOS
IDEF1X
Viu algum erro neste material? Contate-nos em: [email protected]

• Embora aplicada no nível conceitual, incorpora em suas raízes muitas características


de projeto de banco de dados (modelagem lógica). As características são o PK e o FK.
10m
• Diagramação dependente de conceitos como chaves e dependências de identificação.
No nível conceitual não há preocupação com os níveis de normalização, pois existem
atributos multivalorados.
• Elementos:
– Entidades;
– Relacionamentos;
ANOTAÇÕES

www.grancursosonline.com.br 2
BANCO DE DADOS
IDEF1X
Viu algum erro neste material? Contate-nos em: [email protected]

– Atributos;
– Subtipos e Supertipos.

www.grancursosonline.com.br 3
BANCO DE DADOS
IDEF1X
Viu algum erro neste material? Contate-nos em: [email protected]

Se a entidade for quadrada ela é independente. Se os cantos forem arredondados é uma


entidade dependente.
Exemplo: customer é uma entidade independente, pois possui um nome, um status e
endereço. O registro de movimento é uma entidade dependente, pois necessita do cliente
para existir.
O movie é uma entidade independente, pois possui um nome, um número, ranking e valor
da taxa de rental. Já o movie-copy depende do filme.
Ainda, existem as categorias completa e incompleta. Na completa o empregado vai ter
o salário e as horas que trabalha por semana. Assim, toda vez que cadastrar um empregado,
o tipo de empregado definirá o seu salário, a quantidade de hora e o valor dessa hora.
15m
Na categoria completa, todos os campos devem ser preenchidos e na incompleta pode
ter mais de uma opção, exemplo a pessoa física e a jurídica.
Nas relações, existem as identificadas e as não identificadas. Na identificada deve-se
ter os nomes e a não identificada deve-se ter tracejados.

• 4 categorias:
– Independentes ou dependentes;

– Dependentes de identificador e/ou dependentes de existência;
– Subtipos ou supertipos;
– Associativas ou não associativas.

www.grancursosonline.com.br 4
BANCO DE DADOS
IDEF1X
Viu algum erro neste material? Contate-nos em: [email protected]

ATRIBUTOS

Alocação dos atributos “dentro” da entidade.

• Chave primária – aparecem no topo;


• Chave alternativa – Akn;
• Chave estrangeira – seguido por FK;
• Opcional (O).

20m

Obs.: identificação de PK e FK é um indício de uma técnica voltada ao processo de


modelagem lógica e não de modelagem conceitual.

SUBTIPO E SUPERTIPO

Representa estruturas de generalização-especialização.


ANOTAÇÕES

www.grancursosonline.com.br 5
BANCO DE DADOS
IDEF1X
Viu algum erro neste material? Contate-nos em: [email protected]

NOTAÇÃO

DIRETO DO CONCURSO
1. (CESGRANRIO/2014/BANCO DA AMAZÔNIA/TÉCNICO CIENTÍFICO/BANCO DE
DADOS) Para responder à questão, tenha como referência o diagrama de entidades
e relacionamentos, apresentado abaixo, que representa parte do modelo de dados de
uma instituição financeira.
Que representação gráfica do modelo ER proposta pela notação IDEF1X representa
relacionamento existente entre Conta e Cliente?

www.grancursosonline.com.br 6
BANCO DE DADOS
IDEF1X
Viu algum erro neste material? Contate-nos em: [email protected]

Alternativas:

a.

b.

c.

d.

e.
25m

GABARITO
1. b

�Este material foi elaborado pela equipe pedagógica do Gran Cursos Online, de acordo com a aula
preparada e ministrada pelo professor Washington Henrique Carvalho Almeida.
A presente degravação tem como objetivo auxiliar no acompanhamento e na revisão do conteúdo
ministrado na videoaula. Não recomendamos a substituição do estudo em vídeo pela leitura exclu-
siva deste material.
ANOTAÇÕES

www.grancursosonline.com.br 7
BANCO DE DADOS
IDEF1X – Exercícios
Viu algum erro neste material? Contate-nos em: [email protected]

IDEF1X – EXERCÍCIOS

DIRETO DO CONCURSO
1. (FGV/2015/TCE-SE/ANALISTA DE TECNOLOGIA DA INFORMAÇÃO-DESENVOL-
VIMENTO) Diagramas entidade-relacionamento na notação IDEF1X distinguem relacio-
namentos identificadores e não identificadores. A presença de um relacionamento identi-
ficador faz com que:
a. os atributos que compõem a chave estrangeira correspondente possam assumir
valores nulos;
b. a cardinalidade do relacionamento torne-se, obrigatoriamente, 1:1;
c. os atributos que compõem a chave estrangeira correspondente passem a compor a
chave primária da tabela estrangeira;
d. os atributos que compõem a chave estrangeira constituam, por si só, uma chave can-
didata da tabela estrangeira;
e. seja estabelecida uma relação de especialização entre as duas entidades conectadas.
5m

2. (FGV/2016/PREFEITURA DE PAULÍNIA/SP/ANALISTA DE SISTEMAS) Analise o dia-


grama IDEF1X (pé de galinha) mostrado a seguir.

Sobre esse diagrama e sua implementação relacional correspondente, assinale a afir-


mativa correta.
a. A1 em T2 pode ser nulo, independentemente de A2 em T2 ser nulo ou não.
b. A1 em T2 pode ser nulo somente se A2 em T2 for nulo.
c. O relacionamento entre T1 e T2 é “não identificador”.
d. Um registro qualquer de T2 pode não estar relacionado a algum registro de T1.
e. Em T2, A2 e A1, concatenados, constituem um identificador para T2.
ANOTAÇÕES

www.grancursosonline.com.br 1
BANCO DE DADOS
IDEF1X – Exercícios
Viu algum erro neste material? Contate-nos em: [email protected]

COMENTÁRIO
Não se pode dizer que o relacionamento é não identificador apenas por não ter nome, de-
ve-se resolver com a chave que o identificador traz.
10m
O identificador faz a composição da chave.
A chave primária nunca será nula. PK não pode ser nulo.

3. (QUADRIX/2022/CRF-GO/AGENTE ADMINISTRATIVO) No que diz respeito à adminis-


tração e a seus conceitos fundamentais, julgue o item.
A técnica IDEF (Integrated Definition), a exemplo da técnica BPMN, foi originalmente
idealizada para representar e modelar processos de negócio, sendo a categoria IDE-
F1X a categoria relativa à descrição do processo.

 (  ) Certo
 (  ) Errado.

COMENTÁRIO
A IDEF1X faz a visão das informações e a visão do fluxo dos dados que se relacionam.
15m

4. (FGV/2015/TJ-PI/Analista Judiciário/Analista de Sistemas / Desenvolvimento) Consi-


dere um banco de dados que implemente, como estão, as tabelas correspondentes às
entidades modeladas no diagrama ER IDEF1X mostrado a seguir.

Na definição da chave estrangeira entre R2 e R1, a ação referencial que NÃO deve
ser usada é:
a. on delete cascade;
b. on delete set null;
c. on delete restrict;
d. on update cascade;
e. on update restrict.

www.grancursosonline.com.br 2
BANCO DE DADOS
IDEF1X – Exercícios
Viu algum erro neste material? Contate-nos em: [email protected]

COMENTÁRIO
A entidade R1 é independente e a entidade R2 é dependente. A opção cascade acontece
quando deleta na independente e apaga tudo na dependente. No restrict, ao tentar apagar
uma informação no R1 que possui relacionamento com o R2, a informação não irá apagar.
O restrict é o padrão.
20m

5. (FGV/2015/TJ-PI/Analista Judiciário/Analista de Sistemas/Desenvolvimento) Está cor-


reto concluir que:

a. cada instância de X está relacionada a uma única instância de Y;


b. cada instância de X está relacionada a zero, uma ou mais instâncias de Y;
c. cada instância de Y está relacionada a uma única instância de X;
d. cada instância de Y está relacionada a zero, uma ou mais instâncias de X;
e. cada instância de Y está relacionada a uma ou mais instâncias de X.

6. (FGV/2019/DPE-RJ/TÉCNICO SUPERIOR ESPECIALIZADO/TECNOLOGIA DA IN-


FORMAÇÃO) Considere um diagrama IDEF1X contendo um relacionamento identifica-
dor, 1:N, onde do lado 1 está a entidade Empresa e, do lado N, a entidade Filial.
Num banco de dados que implemente esse relacionamento, a restrição de integridade
referencial entre as tabelas Empresa e Filial, que correspondem respectivamente às
entidades citadas, NÃO é possível que a chave estrangeira na tabela Filial:
a. faça parte de um índice;
b. tenha um valor default declarado;
c. admita valores nulos;
d. seja alvo de uma operação update do SQL;
e. possa ser simultaneamente definida como chave estrangeira para outro relaciona-
mento da entidade Filial.
25m
ANOTAÇÕES

www.grancursosonline.com.br 3
BANCO DE DADOS
IDEF1X – Exercícios
Viu algum erro neste material? Contate-nos em: [email protected]

6. (FGV/2018/MPE-AL/ANALISTA DO MINISTÉRIO PÚBLICO/ADMINISTRADOR DE


BANCO DE DADOS) Considere o diagrama IDEF1X a seguir.

Assinale a opção que apresenta o script SQL que cria a tabela E2 corretamente.

COMENTÁRIO
create table E2 (
A2 int not null primary key,
B2 int null,
A1 int null,
constraint FK_X foreign key (A1)
references E1(A1) )
30m

GABARITO
1. c
2. e
3. E
4. b
5. b
6. c

�Este material foi elaborado pela equipe pedagógica do Gran Cursos Online, de acordo com a aula
preparada e ministrada pelo professor Washington Henrique Carvalho Almeida.
A presente degravação tem como objetivo auxiliar no acompanhamento e na revisão do conteúdo
ministrado na videoaula. Não recomendamos a substituição do estudo em vídeo pela leitura exclu-
siva deste material.

www.grancursosonline.com.br 4
BANCO DE DADOS
SQL e Normalização – Exercícios
Viu algum erro neste material? Contate-nos em: [email protected]

SQL E NORMALIZAÇÃO – EXERCÍCIOS

1. (CESPE/CEBRASPE/SEFAZ-AL/AUDITOR DE FINANÇAS E CONTROLE DE ARRE-


CADAÇÃO DA FAZENDA ESTADUAL/2020) Com relação ao banco de dados, julgue
o item seguinte.
Com base no diagrama a seguir, é correto afirmar que um item na entidade Ambiente
pode não relacionar-se com nenhum item na entidade Setor ou pode relacionar-se com
vários itens nesta entidade, enquanto um item na entidade Setor pode relacionar-se
somente com um item na entidade Ambiente.
ANOTAÇÕES

www.grancursosonline.com.br 1
BANCO DE DADOS
SQL e Normalização – Exercícios
Viu algum erro neste material? Contate-nos em: [email protected]

RESOLUÇÃO

Foque apenas na parte de Ambiente e Setor.

Atenção: “entidade Ambiente pode não relacionar-se com nenhum item na entidade Se-
tor” → está errado. Veja que a cardinalidade, em Setor, é 1. Logo, não é possível falar em
“pode não relacionar-se”.
“pode relacionar-se com vários itens nesta entidade” → está errado. Ambiente tem no mí-
nimo 1 e no máximo 1.
“enquanto um item na entidade Setor pode relacionar-se somente com um item na entida-
de Ambiente” → está errado. Perceba que a relação está invertida.
Justificativa:
Um ambiente tem (1) e somente (1) Setor, podemos falar assim também (1,1) o primeiro (1)
é referente ao mínimo e o segundo (1) é referente ao máximo, ou seja, um ambiente tem
pelo menos 1 e no máximo 1. Setor tem (0) ou (n) ambientes, no caso um setor pode ter ou
não um ambiente relaciona a ele.
ANOTAÇÕES

www.grancursosonline.com.br 2
BANCO DE DADOS
SQL e Normalização – Exercícios
Viu algum erro neste material? Contate-nos em: [email protected]

2. (2021/CESGRANRIO/Banco da Amazônia/Técnico Científico) Seja a seguinte notação


para descrever esquemas de bancos de dados relacionais:
5m

• uma tabela possui um nome e um conjunto de colunas, separadas por vírgulas;


• em uma linha qualquer, os valores referentes às colunas são atômicos e monovalorados;
• colunas que admitem o valor nulo aparecem entre colchetes;
• colunas que compõem a chave primária aparecem sublinhadas;
• a notação X → Y indica que Y depende funcionalmente de X (ou X determina Y).

De acordo com a notação apresentada, qual esquema relacional de banco de dados se


encontra na 3FN?
a.

b.
ANOTAÇÕES

www.grancursosonline.com.br 3
BANCO DE DADOS
SQL e Normalização – Exercícios
Viu algum erro neste material? Contate-nos em: [email protected]

c.

d.

e.

RESOLUÇÃO
MER – Modelo entidade relacionamento.
DER – Diagrama entidade relacionamento.
Mas veja que a questão usa uma notação própria.
A questão indica que deve estar na 3FN, ou seja, não pode ter as dependências transitivas.
10m
Exemplo: R (r1, r2, r3).
Sendo que r1 é ID, r2 é data de nascimento e r3 é idade.
Percebe-se que a data de nascimento determina r3 e ID também determina r3. Logo, existe
uma dependência transitiva, pois existe um campo que, além de depender da chave, de-
pende de outro campo.
O que deve ser feito? O campo idade deve ficar de fora, porque é uma redundância e pode
causar problemas de atualização na base.
ANOTAÇÕES

www.grancursosonline.com.br 4
BANCO DE DADOS
SQL e Normalização – Exercícios
Viu algum erro neste material? Contate-nos em: [email protected]

a)

r1 determina r2 e r3.
r3 determina r4 → não está na 3FN. Recai no exemplo do campo idade.
s1 e s2 determinam s3 e s4.
b)

r1 determina r2, r3, r4.


s1 e s2 determinam s3. E só s2 determina s4 → não está na 3FN.
c)

r1 determina r2.
r2 determina r3 e r4 → r2 não chave, não pode determinar os demais.
s1 e s2 determinam s3 e s4.
d)

r1 determina r2, r3, r4 → está na 3FN.


s1 e s2 determinam s3 e s4 → está na 3FN.
ANOTAÇÕES

www.grancursosonline.com.br 5
BANCO DE DADOS
SQL e Normalização – Exercícios
Viu algum erro neste material? Contate-nos em: [email protected]

e)

r1 determina r2, r3, r4.


s1 e s2 determinam s3.
s3 determina s4 → não está na 3FN. Recai no exemplo do campo idade.
15m
Quadro Esquematizado
1FN – Todos atributos são atômicos.
2FN – Não há Dependências Funcionais Parciais.
3FN – Não há Dependências Funcionais Transitivas.
FNBC – Todos os determinantes são chaves candidatas.
4FN – Não há Dependências Multivaloradas.
5FN – Toda dependência de junção é baseada em chaves. Decomposição sem perda.
Até a 3FN → é preciso saber com mais profundidade e com exemplos. Essa parte repre-
senta 80% das questões.
FNBC → 15% das questões.
4FN e 5FN → 5% das questões.

3. (CESPE/CEBRASPE/SEFAZ-RS/TÉCNICO TRIBUTÁRIO DA RECEITA ESTADUAL/


PROVA 1/2018) Na elaboração de um projeto de banco de dados, é função da norma-
lização evitar:
a. a repetição de informações.
b. a criação de pequenas tabelas.
c. o armazenamento de dados pessoais
d. o procedimento de relacionar dados de diferentes fontes.
e. a extrapolação do tamanho máximo dos campos das tabelas.
ANOTAÇÕES

www.grancursosonline.com.br 6
BANCO DE DADOS
SQL e Normalização – Exercícios
Viu algum erro neste material? Contate-nos em: [email protected]

COMENTÁRIO
Função da normalização → evitar a repetição de informações.
Exemplo: para que manter um campo “Idade” se já tem um campo “Data de Nascimento”
(só precisa pegar a data atual e subtrair a data de nascimento).
20m

4. (FGV/IMBEL/SUPERVISOR/TECNOLOGIA DE INFORMAÇÃO/2021) Na teoria de pro-


jetos de bancos de dados, o processo de normalização de uma tabela é feito a partir da
identificação
a. das chaves estrangeiras.
b. das dependências funcionais.
c. das junções que serão necessárias.
d. dos tipos de dados em cada coluna.
e. dos relacionamentos entre as tabelas.

COMENTÁRIO
Processo de normalização → a partir da identificação das dependências funcionais.

5. (FGV/BANESTES/ANALISTA EM TECNOLOGIA DA INFORMAÇÃO/SUPORTE E IN-


FRAESTRUTURA/2021) Considere um banco de dados que contém uma tabela com
os atributos CPF, Nome, RG e Endereço, com milhões de registros.
Sabe-se que cada pessoa tem seus próprios CPF e RG e um único nome, embora pos-
sa haver homônimos.
Sendo assim, a dependência funcional que NÃO existe entre os atributos dessa tabela é:
Alternativas:
a. CPF → Nome.
b. CPF → RG.
c. Endereço → CPF.
d. RG → Endereço.
e. RG → Nome.
ANOTAÇÕES

www.grancursosonline.com.br 7
BANCO DE DADOS
SQL e Normalização – Exercícios
Viu algum erro neste material? Contate-nos em: [email protected]

COMENTÁRIO
Lembrar-se da função da seta. Exemplo: “CPF → Nome” – então, o CPF determina o
Nome. Em outras palavras, o Nome depende funcionalmente do CPF.
A tabela seria assim:

CPF Nome RG Endereço

“Cada pessoa tem seus próprios CPF e RG” → CPF e RG são campos sem repetições.
“E um único nome, embora possa haver homônimos” → não existem dois nomes cadastra-
dos na mesma linha, mas pode haver homônimos (ou seja, duas pessoas com o mesmo
nome, mas com todos os demais campos diferentes).
a) CPF determina Nome – ok.
b) CPF determina RG – ok.
c) Endereço determina CPF – problemático.
Exemplo: imaginando que, em um endereço, moram 10 pessoas. Sendo assim, não tem
como usar o endereço para determinar um CPF.
d) RG determina Endereço – ok.
25m
e) RG determina Nome – ok.

GABARITO
1. E
2. d
3. a
4. b
5. c

�Este material foi elaborado pela equipe pedagógica do Gran Cursos Online, de acordo com a aula
preparada e ministrada pelo professor Washington Henrique Carvalho Almeida.
A presente degravação tem como objetivo auxiliar no acompanhamento e na revisão do conteúdo
ministrado na videoaula. Não recomendamos a substituição do estudo em vídeo pela leitura exclu-
siva deste material.
ANOTAÇÕES

www.grancursosonline.com.br 8
BANCO DE DADOS
SQL e Normalização – Exercícios II
Viu algum erro neste material? Contate-nos em: [email protected]

SQL E NORMALIZAÇÃO – EXERCÍCIOS II

1. (FGV/BANESTE/ANALISTA EM TECNOLOGIA DA INFORMAÇÃO/DESENVOLVI-


MENTO DE SISTEMAS/2021) Nas próximas cinco questões, considere as tabelas
T1, T2 e T3, cujas estruturas e instâncias são exibidas a seguir. O valor NULL deve ser
tratado como unknown (desconhecido).

Para a tabela T3, descrita anteriormente, considere os comandos SQL a seguir.

I – select * from T3 where E <> NULL


II – select * from T3 where not (E is NULL)
III – select * from T3 where not (E = NULL)

Sobre esses comandos, executados com a instância da tabela T3 descrita anteriormen-


te, é correto concluir que:
Alternativas
a. somente I e II produzem resultados equivalentes.
b. somente I e III produzem resultados equivalentes.
c. somente II e III produzem resultados equivalentes.
d. todos produzem resultados diferentes entre si.
e. todos produzem resultados equivalentes.
ANOTAÇÕES

www.grancursosonline.com.br 1
BANCO DE DADOS
SQL e Normalização – Exercícios II
Viu algum erro neste material? Contate-nos em: [email protected]

RESOLUÇÃO

NULL → ausência de valor.


<> → significa que é diferente.
Se o NULL é ausência de valor, então, não é possível usar operadores para fazer compa-
ração de valores com o NULL.
Sendo assim, considerando os comandos apresentados pela questão:
I – select * from T3 where E <> NULL
II – select * from T3 where not (E is NULL)
III – select * from T3 where not (E = NULL)
Os comandos I e III não irão fazer nada.
Já o comando II faz → veja que ele indica que “E is NULL”, que é a quarta linha do T3. E
também indica “from T3 where not” – é a negação.
Ou seja, ao usar esse comando, tudo do T3 é trazido, menos o NULL.
5m

2. (FGV/BANESTE/ANALISTA EM TECNOLOGIA DA INFORMAÇÃO/DESENVOLVI-


MENTO DE SISTEMAS/2021) Nas próximas cinco questões, considere as tabelas
T1, T2 e T3, cujas estruturas e instâncias são exibidas a seguir. O valor NULL deve ser
tratado como unknown (desconhecido).
ANOTAÇÕES

www.grancursosonline.com.br 2
BANCO DE DADOS
SQL e Normalização – Exercícios II
Viu algum erro neste material? Contate-nos em: [email protected]

Para as tabelas T1 e T3, descritas anteriormente, a execução do comando SQL

delete from T3
where E = (select min(E) from T3)
and (select count(*) from T3 t
where t3.A = t.A) > 1

Causaria na instância da tabela T3 a:


Alternativas
a. preservação de todas as linhas.
b. remoção da linha 2, 110, 10.
c. remoção da linha 2, 120, 10.
d. remoção das linhas 2, 120, 10 / 2, 110, 10.
e. remoção de todas as linhas

RESOLUÇÃO
Observe o comando novamente:
delete from T3
where E = (select min(E) from T3)
and (select count(*) from T3 t
where t3.A = t.A) > 1
“delete from T3
where E =” → quer dizer que tem um conjunto de coisas que devem ser apagadas quando
forem iguais na coluna E.
Obs.: o comando indicado, se for rodado no MySQL, não vai funcionar.
Neste caso, tem que usar o W3School.
“(select min(E) from T3)” → pega o valor mínimo de T3.
– E qual o valor mínimo de T3? Cuidado: não é o NULL (ausência de valor), mas é o 10.
– Sendo assim, quando comparar a coluna E e tiver o valor 10 → vai apagar.
“and (select count(*) from T3 t
where t3.A = t.A) > 1” → criou uma outra tabela T, mas que é a própria tabela T3.
– “t3.A = t.A” → quando “A” da tabela T3 bater com o “A” da tabela T. Que seria quando
tivesse os valores 1, 1, 2, 2, 2. Sendo assim, 5 registros no total.
ANOTAÇÕES

www.grancursosonline.com.br 3
BANCO DE DADOS
SQL e Normalização – Exercícios II
Viu algum erro neste material? Contate-nos em: [email protected]

– “> 1” → 5 é maior que 1, então, ok.


E lembrando que tem “and”, logo, as duas condições devem ser atendidas.
Conclusão: vai apagar quando for 10 em E e o valor for 5.
– Considerando a tabela T3, as linhas apagadas serão: 2, 120, 10 / 2, 110, 10.
10m
Obs.: sql
1. use fgv;
2. create table t1 (a int, b int);
3. create table t2 (c int, d int);
4. create table t3 (a int, c int, e int);
5. INSERT INTO `fgv`.`t1`(`a`, `b`)VALUES(1, 3),(2, 2),(4, 2);
6. INSERT INTO `fgv`.`t2`(`c`, `d`)VALUES(100, 42),(110, 55),(120, 33);
7. INSERT INTO `fgv`.`t3`(`a`, `c`, `e`)VALUES(1, 100, 20),(1, 110, 40),(2, 120, 10), (2,100,
null), (2,110, 10);
8. select * from t3;
9. select * from T3 where E <> NULL;
10. select * from T3 where not (E is NULL);
11. select * from T3 where not (E = NULL);

3. (FGV/DPE-RJ/TÉCNICO SUPERIOR ESPECIALIZADO/TECNOLOGIA DA INFORMA-


ÇÃO/2019) Na questão, considere a tabela relacional FAMÍLIA, descrita a seguir jun-
tamente com sua instância.
Em cada registro, a relação entre a primeira e a segunda pessoa é descrita. Por exem-
plo, João é pai de Rafael, Gabriela é mãe de Rita, e Rafael, por sua vez, é avô/avó de
Rita. Nem todas as relações de avô/avó estão registradas na tabela.
Considere a tabela FAMILIA descrita anteriormente e o comando SQL a seguir.

15m

www.grancursosonline.com.br 4
BANCO DE DADOS
SQL e Normalização – Exercícios II
Viu algum erro neste material? Contate-nos em: [email protected]

select relação, sum(1)


from familia
group by relação
having count(*) > 1
order by 2 desc, 1

Os valores exibidos pela execução desse comando, na ordem, são:


a. mãe 4 pai 2 avo 1.
b. mãe 2 pai 4.
c. pai 2 mãe 4.
d. mãe 4 pai 2.
e. mãe 4 pai 2 avo ø.

COMENTÁRIO
“group by relação” → ou seja, agrupar por relação.
“sum” → função de soma. Mas veja que não tem números, mas tem letras. Sendo assim,
o “sum” fará a mesma função do “count”.
Então, se vai agrupar por relação, ficará:
• Pai – 2 vezes.
• Mãe – 4 vezes.
• Avô – 1 vez.
Mas atenção: tem um filtro.
“having count(*) > 1” → ou seja, ao agrupar, o comando quer apenas quando for maior do
que 1. Logo, o “avô”, que aparece apenas uma vez, fica de fora.
“order by 2 desc, 1” → 2 e 1 são as colunas. E “desc” é decrescente.
ANOTAÇÕES

www.grancursosonline.com.br 5
BANCO DE DADOS
SQL e Normalização – Exercícios II
Viu algum erro neste material? Contate-nos em: [email protected]

Obs.:

Se for ascendente (“order by 2 ASC, 1”):

relaçao sum(1)
pai 2
mãe 4

Se for descendente ou decrescente (“order by 2 DESC, 1”):

relaçao sum(1)
mãe 4
pai 2

20m
ANOTAÇÕES

www.grancursosonline.com.br 6
BANCO DE DADOS
SQL e Normalização – Exercícios II
Viu algum erro neste material? Contate-nos em: [email protected]

4. (FGV/DPE-RJ/TÉCNICO SUPERIOR ESPECIALIZADO/TECNOLOGIA DA INFORMA-


ÇÃO/2019) Na questão, considere a tabela relacional FAMÍLIA, descrita a seguir jun-
tamente com sua instância.
Em cada registro, a relação entre a primeira e a segunda pessoa é descrita. Por exem-
plo, João é pai de Rafael, Gabriela é mãe de Rita, e Rafael, por sua vez, é avô/avó de
Rita. Nem todas as relações de avô/avó estão registradas na tabela.
Considere a tabela FAMILIA descrita anteriormente e o comando SQL a seguir.

Além dos títulos, o número de linhas exibidas na execução desse comando é:


a. 1.
b. 2.
c. 3.
d. 4.
e. 5.
ANOTAÇÕES

www.grancursosonline.com.br 7
BANCO DE DADOS
SQL e Normalização – Exercícios II
Viu algum erro neste material? Contate-nos em: [email protected]

COMENTÁRIO
Veja que tem dois “select” e o “union” no meio. Ou seja, são duas consultas com uma cláu-
sula “union”. Lembre-se que “union” é bem diferente de “union all”.
“f1” e “f2” → produto cartesiano. Ver as aulas de álgebra relacional.

→ então, vai pegar as colunas “pessoa1” e “pessoa2” e considerar apenas a relação de


“avo”. Logo, o comando só vai trazer “Rafael/Rita”, pois é o único com relação “avo”.
Portanto, uma linha pelo menos.

→ vai pegar a tabela família e criar duas instâncias dela (“f1” e “f2”).
E atenção: existe uma comparação → “f1.pessoa2 = f2.pessoa1”.
Então, por exemplo, vai pegar Rafael (“pessoa2” da “f1”) e comparar com João (“pessoa1”
da “f2”) – não é igual, logo, fica de fora.
E ainda tem o comando “f1.relação in (‘mãe’, ‘pai’)
and f2.relação in (‘mãe’, ‘pai’)” → então, a relação “avo” fica de fora.
25m
No final, ficaria:
ANOTAÇÕES

www.grancursosonline.com.br 8
BANCO DE DADOS
SQL e Normalização – Exercícios II
Viu algum erro neste material? Contate-nos em: [email protected]

Ou seja, 5 linhas.

5. (FGV/PREFEITURA DE NITERÓI/RJ/ANALISTA DE POLÍTICAS PÚBLICAS E GES-


TÃO GOVERNAMENTAL/GESTÃO DE TECNOLOGIA/2018) A otimização de con-
sultas em gerenciadores de bancos de dados é fundamental para o desempenho do
sistema. Consultas escritas em SQL são particularmente propícias à otimização, porque
essa linguagem:
a. não é procedural, permitindo a criação de diferentes planos de execução.
b. tem uma sintaxe simples e é largamente utilizada.
c. suporta todas as operações da Álgebra Relacional.
d. permite o uso de subconsultas, facilitando os processos de busca.
e. permite a criação de camadas de software de persistência.

COMENTÁRIO
30m
A questão apresenta várias características do SQL, mas a principal é que não é procedu-
ral. Sendo assim, é possível criar vários planos de execução.
Obs.: otimização de consulta → o SGBD tem um otimizador de consultas que pega o
SQL e transforma em álgebra relacional. Ao fazer isso, ele compara as operações da ál-
gebra relacional para verificar quais operações podem ser suprimidas. Dessa maneira, a
consulta vai utilizar menos recursos e levar menos tempo de execução.
ANOTAÇÕES

www.grancursosonline.com.br 9
BANCO DE DADOS
SQL e Normalização – Exercícios II
Viu algum erro neste material? Contate-nos em: [email protected]

GABARITO
1. b
2. d
3. d
4. e
5. a

�Este material foi elaborado pela equipe pedagógica do Gran Cursos Online, de acordo com a aula
preparada e ministrada pelo professor Washington Henrique Carvalho Almeida.
A presente degravação tem como objetivo auxiliar no acompanhamento e na revisão do conteúdo
ministrado na videoaula. Não recomendamos a substituição do estudo em vídeo pela leitura exclu-
siva deste material.
ANOTAÇÕES

www.grancursosonline.com.br 10

Você também pode gostar