Gran Banco de Dados
Gran 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
2 www.grancursosonline.com.br
SISTEMA DE BANCO DE DADOS
Banco de Dados
Viu algum erro neste material? Contate-nos em: [email protected]
3 www.grancursosonline.com.br
SISTEMA DE BANCO DE DADOS
Banco de Dados
Viu algum erro neste material? Contate-nos em: [email protected]
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]
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.
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.
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
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.
9 www.grancursosonline.com.br
SISTEMA DE BANCO DE DADOS
Banco de Dados
Viu algum erro neste material? Contate-nos em: [email protected]
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.
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.
11 www.grancursosonline.com.br
SISTEMA DE BANCO DE DADOS
Banco de Dados
Viu algum erro neste material? Contate-nos em: [email protected]
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
12 www.grancursosonline.com.br
SISTEMA DE BANCO DE DADOS
Banco de Dados
Viu algum erro neste material? Contate-nos em: [email protected]
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
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
• 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:
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]
Exemplo de DDL
Exemplo de DML
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
www.grancursosonline.com.br 5
INFORMÁTICA
Tipos de Usuários, Linguagens e Arquitetura
Viu algum erro neste material? Contate-nos em: [email protected]
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.
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
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]
BANCOS DE DADOS
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
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:
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:
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:
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
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
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
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
www.grancursosonline.com.br 6
INFORMÁTICA
Projeto de Banco de Dados
Viu algum erro neste material? Contate-nos em: [email protected]
É 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]
Análise de requisitos:
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.
Projeto lógico:
Projeto físico:
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.
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]
Obs.: há, ainda, o chamado NOSQL, que são bancos de dados não relacionais.
Modelo Hierárquico
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
Modelo Relacional
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]
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.
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:
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]
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]
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.
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.
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]
Entidade
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]
COMENTÁRIO
Vale lembrar que o registro raiz é a origem, logo, ele não participa como registro filho em
qualquer relacionamento:
COMENTÁRIO
Todos esses modelos de dados são relacionais.
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:
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
www.grancursosonline.com.br 1
BANCO DE DADOS
MER
Viu algum erro neste material? Contate-nos em: [email protected]
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
• Atributo Chave
Chaves são importantes para todas as regras que são implementadas depois.
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.
www.grancursosonline.com.br 5
BANCO DE DADOS
MER
Viu algum erro neste material? Contate-nos em: [email protected]
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
Veja o relacionamento abaixo: os itens que possuem associações e os que não possuem:
www.grancursosonline.com.br 1
BANCO DE DADOS
MER Relacionamentos
Viu algum erro neste material? Contate-nos em: [email protected]
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.
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.
www.grancursosonline.com.br 3
BANCO DE DADOS
MER Relacionamentos
Viu algum erro neste material? Contate-nos em: [email protected]
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.
• (Mínimo e Máximo)
www.grancursosonline.com.br 5
BANCO DE DADOS
MER Relacionamentos
Viu algum erro neste material? Contate-nos em: [email protected]
Entidade Fraca
Atributo de Relacionamento
Exemplo:
ANOTAÇÕES
www.grancursosonline.com.br 6
BANCO DE DADOS
MER Relacionamentos
Viu algum erro neste material? Contate-nos em: [email protected]
Principais diferenças:
15m
www.grancursosonline.com.br 7
BANCO DE DADOS
MER Relacionamentos
Viu algum erro neste material? Contate-nos em: [email protected]
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
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]
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
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.
2 www.grancursosonline.com.br
SISTEMA DE BANCO DE DADOS
MER Estendido
Viu algum erro neste material? Contate-nos em: [email protected]
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]
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.
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]
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
10 www.grancursosonline.com.br
SISTEMA DE BANCO DE DADOS
Modelo Relacional
Viu algum erro neste material? Contate-nos em: [email protected]
MODELO RELACIONAL
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]
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çã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]
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;
4 www.grancursosonline.com.br
SISTEMA DE BANCO DE DADOS
Modelo Relacional
Viu algum erro neste material? Contate-nos em: [email protected]
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
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
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
1 www.grancursosonline.com.br
SISTEMA DE BANCO DE DADOS
Mapeamento ER
Viu algum erro neste material? Contate-nos em: [email protected]
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
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]
9 www.grancursosonline.com.br
SISTEMA DE BANCO DE DADOS
Mapeamento ER
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
�Este material foi elaborado pela equipe pedagógica do Gran Cursos Online, de acordo com a aula
ANOTAÇÕES
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

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

ANOTAÇÕES
7 www.grancursosonline.com.br
BANCO DE DADOS
Normalização
Viu algum erro neste material? Contate-nos em: [email protected]
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]
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
1 www.grancursosonline.com.br
BANCO DE DADOS
Normalização II
Viu algum erro neste material? Contate-nos em: [email protected]
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
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)
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.
a. 4FN e 2FN.
b. 2FN e 3FN.
c. 3FN e 2FN.
d. 1FN e 3FN.
e. 3FN e 4FN.
6 www.grancursosonline.com.br
BANCO DE DADOS
Normalização II
Viu algum erro neste material? Contate-nos em: [email protected]
COMENTÁRIO
Na FCBC, ela também está normalizada na 3FN
COMENTÁRIO
No 2FN não pode haver atributos de que dependam de parte da chave.
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.
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.
1 www.grancursosonline.com.br
BANCO DE DADOS
Normalização III
Viu algum erro neste material? Contate-nos em: [email protected]
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.
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]
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.
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]
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
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
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.
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
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
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]
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
FUNÇÕES DE AGREGAÇÃO
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]
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
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]
Delete
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]
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]
25m
www.grancursosonline.com.br 6
BANCO DE DADOS
Linguagem SQL II
Viu algum erro neste material? Contate-nos em: [email protected]
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]
DIRETO DO CONCURSO
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
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
www.grancursosonline.com.br 2
BANCO DE DADOS
Linguagem SQL – Exercícios
Viu algum erro neste material? Contate-nos em: [email protected]
COMENTÁRIO
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]
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.
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.
COMENTÁRIO
Funções de agragação: AVG, COUNT, SUM, MAX, MIN.
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]
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”.
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]
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]
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 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]
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.
5 www.grancursosonline.com.br
BANCO DE DADOS
Linguagem SQL – Extra
Viu algum erro neste material? Contate-nos em: [email protected]
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]
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
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.
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
www.grancursosonline.com.br 1
BANCO DE DADOS
Gerenciamento de Transação
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.
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
Instruções de controle:
COMMIT – finaliza a transação atual tornando permanentes todas as alterações de dados
pendentes;
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:
www.grancursosonline.com.br 3
BANCO DE DADOS
Gerenciamento de Transação
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
(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
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.
www.grancursosonline.com.br 6
BANCO DE DADOS
Gerenciamento de Transação
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
GERENCIAMENTO DE TRANSAÇÃO II
www.grancursosonline.com.br 1
BANCO DE DADOS
Gerenciamento de Transação II
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).
www.grancursosonline.com.br 2
BANCO DE DADOS
Gerenciamento de Transação II
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
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.
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.
www.grancursosonline.com.br 4
BANCO DE DADOS
Gerenciamento de Transação II
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.
www.grancursosonline.com.br 5
BANCO DE DADOS
Gerenciamento de Transação II
Quando temos um read_lock, permite-se que outra transação leia aquela mesma variá-
vel. O problema ocorre quando é a escrita.
www.grancursosonline.com.br 6
BANCO DE DADOS
Gerenciamento de Transação II
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
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
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
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.
www.grancursosonline.com.br 9
BANCO DE DADOS
Gerenciamento de Transação II
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.
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.
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
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
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.
www.grancursosonline.com.br 1
BANCO DE DADOS
Segurança em Banco de Dados
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.
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
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).
www.grancursosonline.com.br 3
BANCO DE DADOS
Segurança em Banco de Dados
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
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
Antônio pode excluir registros (tuplas) da tabela departamento e autorizar outros usuários
a fazerem o mesmo (por causa de GRANT OPTION).
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
Exemplo
www.grancursosonline.com.br 7
BANCO DE DADOS
Segurança em Banco de Dados
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.
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.
www.grancursosonline.com.br 8
BANCO DE DADOS
Segurança em Banco de Dados
COMENTÁRIO
A sintaxe GRANT e REVOKE é praticamente igual em todos os bancos.
Nesse caso, é preciso que haja GRANT OPTION.
30m
a. PERMISSION CASCADE
b. GRANT OPTION
c. GRANT PRIVILEGE
d. EXTEND ROLE
e. GRANT CASCADE
COMENTÁRIO
Novamente, é preciso haver GRANT OPTION.
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
5. (2018/CESPE/EBSERH/TÉCNICO EM INFORMAÇÃO)
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.
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
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. 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
ALTA DISPONIBILIDADE
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)
www.grancursosonline.com.br 1
BANCO DE DADOS
Alta Disponibilidade
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
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
Escalabilidade
www.grancursosonline.com.br 4
BANCO DE DADOS
Alta Disponibilidade
•
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
COMENTÁRIO
O Postgre, por exemplo, é muito bom na escalabilidade vertical.
20m
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
www.grancursosonline.com.br 6
BANCO DE DADOS
SQL Views
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
www.grancursosonline.com.br 2
BANCO DE DADOS
SQL Views
SQL
Resultado:
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
Toda vez que for dado o select vw_estoque_zerado, será trazido o comando acima.
Alterando-se os nomes dos campos:
www.grancursosonline.com.br 4
BANCO DE DADOS
SQL Views
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
É 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
www.grancursosonline.com.br 7
BANCO DE DADOS
SQL Views
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
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
20m
www.grancursosonline.com.br 9
BANCO DE DADOS
SQL Views
www.grancursosonline.com.br 10
BANCO DE DADOS
SQL Views
Empréstimo
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
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
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
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.
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
View Simples:
View Complexa:
ANOTAÇÕES
www.grancursosonline.com.br 3
BANCO DE DADOS
SQL Views II
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.
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
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
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.
www.grancursosonline.com.br 6
BANCO DE DADOS
SQL Views II
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.
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.
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
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.
www.grancursosonline.com.br 8
BANCO DE DADOS
SQL Views II
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.
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.
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
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
COMENTÁRIO
Está errada, pois foi estudado sobre a criação de uma view baseada em outra view, algo
que é sim permitido.
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
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
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
www.grancursosonline.com.br 2
BANCO DE DADOS
Gatilhos - Triggers - e Stored Procedures
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
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.
www.grancursosonline.com.br 4
BANCO DE DADOS
Gatilhos - Triggers - e Stored Procedures
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.
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.
www.grancursosonline.com.br 5
BANCO DE DADOS
Gatilhos - Triggers - e Stored Procedures
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.
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
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
• 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
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
Chamada
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
www.grancursosonline.com.br 9
BANCO DE DADOS
Gatilhos - Triggers - e Stored Procedures
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).
www.grancursosonline.com.br 10
BANCO DE DADOS
Gatilhos - Triggers - e Stored Procedures
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.
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.
www.grancursosonline.com.br 11
BANCO DE DADOS
Gatilhos - Triggers - e Stored Procedures
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.
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
COMENTÁRIO
Resposta correta: letra d, um conceito que o candidato pode guardar.
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
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
SISTEMA DE BD DISTRIBUÍDOS
www.grancursosonline.com.br 1
BANCO DE DADOS
Banco de Dados Distribuídos - BDD
À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.
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
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
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
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
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.
www.grancursosonline.com.br 6
BANCO DE DADOS
Banco de Dados Distribuídos - BDD
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.
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
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.
www.grancursosonline.com.br 8
BANCO DE DADOS
Banco de Dados Distribuídos - BDD
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.
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
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
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.
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
Exemplos de Bancos
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
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]
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.
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]
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
BASE
www.grancursosonline.com.br 10
BANCO DE DADOS
NoSQL
Viu algum erro neste material? Contate-nos em: [email protected]
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]
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]
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.
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).
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
www.grancursosonline.com.br 1
BANCO DE DADOS
Álgebra Relacional
Viu algum erro neste material? Contate-nos em: [email protected]
Exemplo (SELECT σ)
PRODUTOS
σ 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 σ)
www.grancursosonline.com.br 2
BANCO DE DADOS
Álgebra Relacional
Viu algum erro neste material? Contate-nos em: [email protected]
PRODUTOS
www.grancursosonline.com.br 3
BANCO DE DADOS
Álgebra Relacional
Viu algum erro neste material? Contate-nos em: [email protected]
PRODUTOS
www.grancursosonline.com.br 4
BANCO DE DADOS
Álgebra Relacional
Viu algum erro neste material? Contate-nos em: [email protected]
Exemplo:
π nome (π mat, nome, sexo (FUNCIONARIO)) = π nome (R).
10m
Ao final, portanto, só se vai ter nome.
Exemplo (PROJECT π)
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
π categoria (PRODUTOS)
Categoria
Mercearia
Limpeza
Bebida
Combinando Operadores
PRODUTOS
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
Açúcar
Por exemplo, pode-se criar uma relação intermediária que represente os dados dos pro-
dutos de bebida.
DIRETO DO CONCURSO
COMENTÁRIO
www.grancursosonline.com.br 7
BANCO DE DADOS
Álgebra Relacional
Viu algum erro neste material? Contate-nos em: [email protected]
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
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
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]
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]
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
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
www.grancursosonline.com.br 5
BANCO DE DADOS
Álgebra Relacional II
Viu algum erro neste material? Contate-nos em: [email protected]
Departamento
Cod Sigla
1 TI
2 JUR
3 FIN
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
www.grancursosonline.com.br 7
BANCO DE DADOS
Álgebra Relacional II
Viu algum erro neste material? Contate-nos em: [email protected]
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.
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]
COMENTÁRIO
Para projetar a placa é o símbolo é π, e para selecionar é o símbolo sigma.
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
ÍNDICES
Índice
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.
www.grancursosonline.com.br 1
BANCO DE DADOS
Índices
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
www.grancursosonline.com.br 3
BANCO DE DADOS
Índices
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.
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
Í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
Í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
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.
www.grancursosonline.com.br 7
BANCO DE DADOS
Índices
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.
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
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
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
História
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]
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]
• 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
20m
SUBTIPO E SUPERTIPO
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
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.
( ) 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
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
www.grancursosonline.com.br 3
BANCO DE DADOS
IDEF1X – Exercícios
Viu algum erro neste material? Contate-nos em: [email protected]
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]
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
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]
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.
r2 determina r3 e r4 → r2 não chave, não pode determinar os demais.
s1 e s2 determinam s3 e s4.
d)
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)
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
COMENTÁRIO
Processo de normalização → a partir da identificação das dependências funcionais.
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:
“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]
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
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]
delete from T3
where E = (select min(E) from T3)
and (select count(*) from T3 t
where t3.A = t.A) > 1
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]
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]
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.:
relaçao sum(1)
pai 2
mãe 4
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]
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.
→ 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.
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