Buscar

EXERCICIOS DE BANCOS DE DADOS

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 30 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 30 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 30 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1. Ao final deste módulo, é um bom momento para retornar à questão levantada durante a 
descrição dos modelos de computação em sistemas de informação. Qual modelo é o mais 
eficiente para uma aplicação na mesma linguagem de programação, com o mesmo volume 
de dados, sob a mesma infraestrutura de hardware? 
Modelo monolítico com os dados junto dos programas. 
 
Consideradas as mesmas condições de aplicação, volume de dados e infraestrutura, conforme 
o enunciado, o modelo monolítico será mais eficiente, pois todo o processamento será 
realizado na velocidade de processamento junto à memória principal (RAM), que é muito mais 
rápida do que o acesso à memória secundária ou à nuvem. 
 
Na verdade, as alternativas dessa questão estão na sequência de eficiência dos modelos de 
computação sob as mesmas condições. Isso não significa que os bancos de dados são 
ineficientes, pois eles se aplicam adequadamente a cenários com volumes de dados que não 
cabem na memória principal, como é o caso de sistemas de informação corporativos. 
 
2. Qual o nome da linguagem de consulta e manipulação de banco de dados que se tornou 
sinônimo do modelo relacional de banco de dados? 
SQL 
Todas as demais alternativas referem-se a nomes de SGBDs que implementam o modelo 
relacional e, portanto, implementam a linguagem SQL (Structured Query Language), chegando 
a confundir o nome do produto com a linguagem. 
 
3. Analise as seguintes afirmações e responda qual alternativa corresponde a características 
que distinguem os sistemas de banco de dados dos sistemas de arquivos. 
I. Natureza autocontida dos dados 
II. Volatilidade dos dados 
III. Abstração de dados 
Somente as afirmações I e III. 
 
A natureza autocontida dos dados, com o armazenamento junto aos metadados, e a abstração 
de dados, permitindo a independência dos dados, são características que diferenciam os SBD 
dos sistemas de arquivos. Já a volatilidade dos dados não é uma característica dos SBD. 
 
 
 
4. Qual das alternativas abaixo não é uma funcionalidade dos sistemas de banco de dados? 
Representação de relacionamentos entre os dados. 
Armazenamento de dados estáticos. 
 
O armazenamento de dados estáticos é uma das situações em que não é recomendável o uso 
da abordagem de banco de dados, pois não se trata de uma funcionalidade típica dos SBDs, 
como as demais alternativas. 
 
5. Qual é o principal módulo componente de um SGBD, pelo qual passam todas as consultas 
e transações de usuários, sejam administradores, usuários casuais ou paramétricos? 
Processador de run time. 
 
O processador do banco de dados em tempo de execução (run time) recebe todas as 
requisições dos usuários e as processa para acessar o catálogo e a base de dados. 
 
6. Qual é o modelo de computação utilizado pelo PostgreSQL, assim como pela maioria dos 
SGBDs relacionais empresariais? 
Cliente/Servidor. 
 
O PostgreSQL usa um modelo de computação cliente/servidor, em que uma sessão consiste de 
um processo servidor (back end), que gerencia os arquivos do banco de dados, aceita 
conexões por aplicações clientes e executa ações sobre o banco de dados em nome dos 
clientes, e aplicações clientes de usuários (front end) que desejam executar operações no 
banco de dados. 
 
7. O projeto de banco de dados é dividido em várias etapas. Uma delas envolve a construção 
de um modelo que descreve a estrutura do banco de dados, com seus objetos, atributos e 
relacionamentos inerentes ao funcionamento do negócio alvo da modelagem, 
independentemente de limitações tecnológicas, implementação ou até mesmo dispositivos 
de armazenamento. Esse modelo é denominado: 
Conceitual 
 
O modelo conceitual, construído na etapa de projeto conceitual, tem foco na criação de uma 
visão abstrata do banco de dados, facilitando o entendimento do modelo por parte do usuário 
final. Essa visão oculta detalhes de implementação, por exemplo, a respeito de como os dados 
serão armazenados. 
 
8. Assinale a afirmativa correta acerca das etapas de um projeto de banco de dados: 
A- Projeto conceitual: É construído um modelo de dados em função de características 
técnicas de implementação existentes em algum SGBD, por exemplo, SQL Server. 
 
B- Projeto lógico: São especificados esquemas lógicos. Além disso, essa etapa é 
responsável por criar um modelo físico de dados a partir do modelo conceitual independente 
do SGBD escolhido. 
 
C- Projeto físico: Descreve detalhes sobre tipos de dados e tamanho de colunas. É 
dependente da escolha de um SGBD. 
 
D- Projeto físico: Possui total independência de um SGBD específico. 
 
Comentário 
Parabéns! A alternativa "C" está correta. 
Na etapa de projeto físico, a partir da escolha de um SGBD, são definidos detalhes de mais 
baixo nível, dependentes das funcionalidades ofertadas pelo SGBD escolhido, visto que o 
resultado dessa etapa corresponde ao banco de dados físico. 
 
9. Considere o DER a seguir sobre inscrição em concurso público. Qual proposição está 
correta? 
 
A- A fim de adicionar ao modelo informações do EXAME para, posteriormente, 
armazenar dados referentes às provas, a alternativa mais indicada é criar um atributo 
simples na entidade CANDIDATO. 
B- O atributo DATA está representado incorretamente no modelo, uma vez que não é 
permitido modelar atributo em relacionamento. 
C- De acordo com o modelo apresentado, um CANDIDATO pode inscrever-se em mais de 
um EXAME. 
D- No modelo, há um relacionamento ternário, pois estão envolvidos três objetos: 
CANDIDATO, INSCRICAO e EXAME. 
 
Comentário 
Parabéns! A alternativa "C" está correta. 
A proposição da alternativa C está correta, pois a informação sobre o número de vezes em que 
um CANDIDATO pode fazer inscrição em exames é definido pela cardinalidade máxima n, 
expressa ao lado da entidade EXAME. 
 
10. Considere o DER a seguir. Quais proposições estão corretas? 
 
 
 
I. Todo funcionário está alocado em um departamento. 
II. Não pode existir mais de um cargo com o mesmo salário. 
III. SALÁRIO é considerado um atributo obrigatório em CARGO. 
IV. CODIGOCARGO é considerado um atributo obrigatório na entidade CARGO. 
V. O atributo nome da entidade FUNCIONARIO é do tipo composto. 
 
A - III e IV 
B - III e V 
C - I, III e IV 
D - I e II 
 
Comentário 
Parabéns! A alternativa "A" está correta. 
A proposição III está correta, pois, em nosso estudo, convencionamos que todo atributo sem a 
cardinalidade explícita será considerado obrigatório e monovalorado. A proposição IV está 
correta, pois todo atributo identificador por padrão é obrigatório. 
 
 
 
11. Uma cafeteria que comercializa produtos alimentícios realiza compras diárias de uma 
cooperativa e está enfrentando dificuldades por causa de gestão do prazo de validade de 
seus produtos. 
O proprietário vai investir em um sistema que realizará o controle do estoque e do prazo de 
validade tomando como base a data de compra de cada produto adquirido da cooperativa. O 
DER parcial a seguir representa a modelagem de dados proposta por um profissional, sendo 
que o atributo código em cada entidade é único. 
 
 
A partir das informações, é correto afirmar que: 
A- O relacionamento entre as entidades PRODUTO e COOPERATIVA é do tipo um-para-
muitos. 
B- O atributo telefone da entidade COOPERATIVA é do tipo composto. 
C- O atributo CODIGOP da entidade PRODUTO é classificado como opcional. 
D- É possível construir um novo DER modelando estoque como entidade, sem perda de 
informação em relação ao modelo original. 
 
Comentário 
Parabéns! A alternativa "D" está correta. 
De fato, quando o DER tem relacionamento N:N, é possível construir um modelo equivalente, 
em que o relacionamento em questão será substituído por uma entidade, mantendo a 
semântica do modelo original. 
 
 
 
 
 
 
 
12. Uma rede de operadoras de planos de saúde necessita de um sistema para controlar seus 
contratos junto à rede credenciada de hospitais.Cada contrato entre a operadora e um 
hospital tem duração de dois anos. Após o término desse prazo, um novo poderá ser 
emitido, caso haja interesse entre as partes. Qual alternativa a seguir representa um DER 
adequado aos requisitos de dados apresentados? 
 
 
 
 
 
 
 
 
 
Comentário 
Parabéns! A alternativa "B" está correta. 
De fato, de acordo com os requisitos de dados, uma operadora pode realizar diversos 
contratos com o mesmo hospital e vice-versa. Isso implica que a cardinalidade máxima do 
relacionamento CONTRATO seja do tipo N:N. Além disso, os atributos DATAINICIO e DATAFIM 
são propriedades associadas ao relacionamento CONTRATO, permitindo recuperar 
informações históricas. 
 
13. O DER a seguir representa informações sobre clientes. 
 
No que se refere à modelagem dos atributos, assinale a alternativa verdadeira: 
 
A- O atributo CODIGOCLIENTE admite repetição de valores. 
 
B- O atributo DTNASCIMENTO é opcional e composto. 
 
C- É mais adequado modelar telefone em uma entidade separada, relacionada à entidade 
CLIENTE. 
 
D- Todos os atributos são obrigatórios. 
 
Comentário 
Parabéns! A alternativa "C" está correta. 
Em um SGBD relacional não há implementação direta para atributo multivalorado, como é o 
caso de TELEFONE. Além disso, o modelo fica mais legível quando modelamos TELEFONE em 
entidade própria. 
 
14. O DER a seguir representa informações sobre funcionários e seus dependentes. 
 
No que se refere à modelagem dos atributos, assinale a alternativa verdadeira: 
 
A- O atributo CODIGOFUNCIONARIO da entidade DEPENDENTE é redundante. 
 
B- O atributo CODIGOFUNCIONARIO da entidade FUNCIONARIO é opcional. 
 
C- Os atributos NOME em ambas as entidades são multivalorados. 
 
D- Os atributos DTNASCIMENTO em ambas as entidades são multivalorados. 
 
Comentário 
Parabéns! A alternativa "A" está correta. 
De fato, há redundância, visto que é possível localizar o funcionário responsável por cada 
dependente ao acessar a entidade FUNCIONARIO através do relacionamento. 
 
 
15. A respeito dos tipos de chaves em projeto de banco de dados relacional, analise as 
proposições a seguir: 
 
I. Quando mais de uma coluna servir para diferenciar uma linha das demais em uma tabela 
relacional e uma delas é escolhida como chave primária, as restantes são denominadas chaves 
alternativas. 
II. Uma chave primária corresponde a uma coluna ou uma combinação de colunas cujos 
valores servem para diferenciar uma linha das demais de uma tabela. 
III. A chave estrangeira permite a implementação de relacionamentos em um banco de dados 
relacional. 
 
Assinale a alternativa verdadeira 
Somente a proposição I é correta. 
 
Somente a proposição II é correta. 
 
Somente a proposição IIII é correta. 
 
Todas as proposições são corretas. 
 
Comentário 
Parabéns! A alternativa "D" está correta. 
De fato, i) quando diversas colunas são candidatas à chave primária e uma é escolhida, as 
demais passam a ser denominadas chaves alternativas; ii) o objetivo da chave primária é 
tornar única cada linha de uma tabela do banco de dados; iii) as chaves estrangeiras 
representam restrições capazes de representar relacionamentos entre tabelas. 
 
16. Considere que em uma instituição de ensino superior (IES) exista um banco de dados 
relacional denominado BDIES que possui a tabela ALUNO cujos campos estão assim 
descritos: 
 
ALUNO 
CODIGOALUNO int PK 
NOME char(90) 
 
SEXO char(1) 
 
DTNASCIMENTO date 
 
De acordo com os fundamentos do modelo relacional, é correto afirmar que: 
A- O banco de dados BDIES pode possuir uma coleção de tabelas, todas com nome 
exclusivo, com colunas que podem conter valores dentro de um domínio. 
 
B- A coluna CODIGOALUNO é chave estrangeira na tabela ALUNO. 
 
C- A coluna CODIGOALUNO pode ser opcional. 
 
D- A coluna NOME é multivalorada. 
 
Comentário 
Parabéns! A alternativa "A" está correta. 
De fato, toda tabela de um banco de dados relacional tem que possuir um nome único. As 
colunas de uma tabela devem estar associadas a um domínio ou tipo de dados. 
 
17. O processo de Normalização objetiva eliminar dados redundantes, além de garantir que 
a dependência de dados faça sentido. A respeito da terceira forma normal em uma tabela 
relacional, assinale a alternativa verdadeira: 
A- A tabela não precisa estar na 1FN. 
 
B- A tabela não precisa estar na 2FN. 
 
C- A tabela não pode conter campos opcionais 
 
D- A tabela precisa estar na 2FN e não deve possuir coluna(s) com dependência(s) 
transitiva(s). 
 
Comentário 
Parabéns! A alternativa "D" está correta. 
De fato, para estar na 3FN a tabela tem que respeitar as regras da 2FN, pois uma forma 
engloba as restrições da forma anterior. Além disso, não pode haver dependências entre 
colunas não-chave. 
 
18. Seja uma relação R (C1, C2, C3, C4, C5) com chave primária composta pelas colunas C1 e 
C2 e as seguintes dependências funcionais: 
C1 → C3 
C3 → C4 
C2 → C5 
 
Podemos afirmar que o esquema R atende à: 
A- 1 FN 
 
B- 2 FN 
 
C- 3 FN 
 
D- 4 FN 
 
Comentário 
Parabéns! A alternativa "A" está correta. 
De fato, se C1 determina C3, temos então uma dependência parcial da chave primária, o que é 
proibido na 2FN. Como cada FN, a partir da segunda, depende da anterior, a relação R atende 
à 1FN. 
 
19. Considere um relacionamento entre TURMA e DISCIPLINA (N:N) denominado OFERTA. 
Para cada disciplina ofertada por uma turma é necessário saber o número de vagas. Qual 
alternativa a seguir representa corretamente o modelo lógico derivado do modelo 
conceitual? 
 
A- Somente uma tabela para todo o modelo. 
 
B- Duas tabelas, uma para TURMA e outra para DISCIPLINA. 
 
C- Três tabelas: uma para TURMA, uma para DISCIPLINA e uma para OFERTA. Além disso, 
o atributo que representa o número de vagas deve estar modelado na tabela OFERTA. 
 
D- Três tabelas: uma para TURMA, uma para DISCIPLINA e uma para OFERTA. 
Além disso, o atributo que representa o número de vagas deve estar modelado na tabela 
DISCIPLINA. 
 
Comentário 
Parabéns! A alternativa "C" está correta. 
Diante da cardinalidade máxima N:N, a solução é criar três tabelas: duas para as entidades 
participantes e uma para o relacionamento. O atributo que representa o número de vagas, 
pelo fato de fazer parte do relacionamento, deve ser modelado na tabela OFERTA. 
 
20. Considere o projeto conceitual parcial a seguir: 
 
 
Para construir o projeto lógico a partir do DER, é correto afirmar que serão criadas: 
A- Duas tabelas. 
 
B- Três tabelas. 
 
C- Quatro tabelas. 
 
D- Cinco tabelas. 
 
Comentário 
Parabéns! A alternativa "C" está correta. 
No mapeamento lógico-conceitual, cada entidade vira tabela. O mesmo ocorrerá no LA, por ter 
cardinalidade máxima N:N. O relacionamento EL, por ter cardinalidade máxima 1:N será 
implementado na tabela LIVRO. 
 
 
21. Acerca do processo de desnormalização, assinale a proposição verdadeira. 
A- Ao desnormalizar um modelo da 3FN para a 2FN, introduz-se redundância de dados, 
tendo vantagem a diminuição do desempenho no acesso aos dados. 
 
B- A desnormalização nunca introduz redundância de dados. 
 
C- Ao desnormalizar um modelo da 3FN para a 2FN, introduz-se redundância de dados, 
tendo vantagem aumento do desempenho no acesso aos dados. 
 
D- Ao desnormalizar um esquema de banco de dados, o número de tabelas do modelo 
é triplicado. 
 
 
Comentário 
Parabéns! A alternativa "C" está correta. 
De fato, quando aplicamos a desnormalização em um banco de dados, o conteúdo de uma ou 
mais tabelas é movido para outra tabela. Com isso, certa redundância é inserida no sistema. 
Por outro lado, consultas que, anteriormente, envolviam diversas tabelas, em geral passam a 
ser executadas diretamente na tabela desnormalizada 
 
22. Os índices são usados em bancos de dados com a mesma finalidade dos índices de livros, 
isto é, para acelerar a consultaa determinados dados. Como se tratam de estruturas 
auxiliares que ocupam espaço e geram redundância de dados, é preciso critério na escolha 
dos dados a serem indexados. 
Qual das alternativas abaixo menciona elementos de um banco de dados que são candidatos 
a serem indexados? 
 
A- Colunas mais usadas em condições de seleção. 
 
B- Tabelas mais acessadas por consultas. 
 
C- Linhas mais selecionadas em consultas. 
 
D- Células que aparecem mais vezes em resultados de consulta. 
 
Comentário 
Parabéns! A alternativa "A" está correta. 
Para acelerar o processamento de consultas ao banco de dados, uma das técnicas mais usadas 
é criar índices para as colunas de tabelas que mais aparecem nas cláusulas WHERE dos 
comandos de consulta SELECT. 
 
23. Acerca do SGBD PostgreSQL, assinale a proposição verdadeira. 
A- O PostgreSQL é um SGBD comercial de código fechado, disponível apenas para 
ambiente Windows. 
 
B- O PostgreSQL é um SGBD de código aberto, com versões compatíveis com diversos 
sistemas operacionais, tais como Windows, MAC OS e diversas distribuições Linux. 
 
C- O PostgreSQL é um SGBD puramente orientado a objeto. 
 
D- O PostgreSQL é um SGBD puramente relacional. 
 
Comentário 
Parabéns! A alternativa "B" está correta. 
De fato, o PostgreSQL é um SGBD livre e está disponível para funcionamento em diversas 
plataformas de sistemas operacionais. 
 
 
24. Analise as seguintes proposições a respeito do PostgreSQL: 
 
I – O comando “create user bteste superuser inherit createdb createrole; ” cria um banco de 
dados denominado bteste. 
II – Ao Instalar o PostgreSQL versão 12 no Windows, a pasta padrão de instalação é 
“C:/Program Files/PostgreSQL/12”. 
III – O comando “create table cliente (codigoc int not null, nome char(80), constraint 
chavecliente primary key (codigoc));” cria uma tabela denominada cliente com as colunas 
codigoc e nome, sendo que a coluna codigoc é chave estrangeira. 
 
 
Identifique as proposições falsas: 
A- I, II e III. 
 
B- I e III. 
 
C- I e II. 
 
D- II e III. 
 
Comentário 
Parabéns! A alternativa "B" está correta. 
 
O comando expresso na primeira proposição cria um usuário denominado bteste, e não um 
banco de dados. O comando expresso na terceira proposição cria uma tabela denominada 
cliente. No entanto, a coluna codigoc é chave primária, e não chave estrangeira. 
 
25- Analise o script a seguir e assinale a proposição verdadeira: 
 
 
 
 
A- A execução completa do script cria três tabelas e todas as colunas são obrigatórias. 
 
B- A execução dos comandos entre as linhas 1 e 16 cria três tabelas relacionadas. 
 
C- A execução dos comandos entre as linhas 18 e 24 cria três relacionamentos. 
 
D- A execução dos comandos entre as linhas 18 e 24 cria dois relacionamentos: o 
primeiro envolve as tabelas CURSODISCIPLINA e CURSO. O segundo, as tabelas 
CURSODISCIPLINA e DISCIPLINA. 
 
Comentário 
Parabéns! A alternativa "D" está correta. 
De fato, há dois blocos de comando entre as linhas 18 e 24. O primeiro altera a estrutura da 
tabela CURSODISCIPLINA adicionando à coluna CODIGOCURSO uma restrição de chave 
estrangeira que implementa o relacionamento entre as tabelas CURSODISCIPLINA e CURSO. O 
segundo altera a estrutura da tabela CURSODISCIPLINA, adicionando à coluna 
CODIGODISCIPLINA uma restrição de chave estrangeira que implementa o relacionamento 
entre as tabelas CURSODISCIPLINA e DISCIPLINA. 
 
26. Analise o modelo a seguir e assinale a proposição verdadeira: 
 
 
 
A- A execução do script a seguir cria a tabela CURSODISCIPLINA e seus relacionamentos. 
CREATE TABLE CURSODISCIPLINA ( 
CODIGOCURSO int NOT NULL, 
CODIGODISCIPLINA int NOT NULL, 
CONSTRAINT CURSODISCIPLINA_pk (PRIMARY KEY (CODIGOCURSO,CODIGODISCIPLINA)); 
B- A execução do script a seguir cria a tabela DISCIPLINA. 
CREATE TABLE CURSO ( 
CODIGOCURSO int NOT NULL, 
NOME char(90)NOT NULL, 
DATACRIACAO date NULL, 
CONSTRAINT CURSO_pk (PRIMARY KEY (CODIGOCURSO)); 
C- Admitindo a existência das tabelas CURSODISCIPLINA e DISCIPLINA, a execução do 
script a seguir relaciona CURSODISCIPLINA à DISCIPLINA. 
ALTER TABLE CURSODISCIPLINA ADD FOREIGN KEY (CODIGOCURSO) 
REFERENCES CURSO (CODIGOCURSO) ; 
D- Admitindo a existência das tabelas CURSODISCIPLINA e CURSO, a execução do script a 
seguir relaciona CURSODISCIPLINA à CURSO. 
ALTER TABLE CURSODISCIPLINA ADD FOREIGN KEY (CODIGOCURSO) 
REFERENCES CURSO (CODIGOCURSO) 
 
Comentário 
Parabéns! A alternativa "D" está correta. 
De fato, se observarmos o modelo, há um relacionamento entre as tabelas CURSO e 
CURSODISCIPLINA. Ao executar o ALTER TABLE, a coluna CODIGOCURSO da tabela 
CURSODISCIPLINA passa a funcionar como chave estrangeira, fazendo referência à tabela 
CURSO. 
 
27. Analise o script a seguir e assinale a proposição correta: 
 
 
 
A- Após a execução com sucesso do trecho entre as linhas 1 e 16, se executarmos o 
comando expresso na linha 18, o SGBD retornará uma mensagem de erro. 
 
B- Após a execução com sucesso do trecho entre as linhas 1 e 16, se executarmos o 
comando expresso na linha 25, o SGBD retornará uma mensagem de erro. 
 
C- Após a execução com sucesso do trecho entre as linhas 1 e 16, se executarmos o 
comando expresso na linha 26, o SGBD não retornará uma mensagem de erro. 
 
D- Após a execução com sucesso do trecho entre as linhas 1 e 16, se executarmos o 
comando expresso na linha 25, o SGBD não retornará uma mensagem de erro. 
 
Comentário 
Parabéns! A alternativa "B" está correta. 
De fato, se observarmos as inserções em CURSO e DISCIPLINA, vamos perceber que os valores 
de chave primária são os inteiros 1 e 2 em ambos os casos. Ainda, a tabela CURSODISCIPLINA 
possui duas chaves estrangeiras: uma referência à tabela CURSO; a outra, referência à tabela 
DISCIPLINA. Portanto, o valor para CÓDIGODISCIPLINA da tabela CURSODISCIPLINA não pode 
ser diferente de 1 ou 2. 
 
28. Analise o script a seguir e assinale a proposição correta: 
 
 
 
Após a execução, com sucesso, do trecho entre as linhas 1 e 26, se executarmos o comando 
expresso na linha 28, quantas linhas serão removidas do SGBD? 
A- Nenhuma. 
B- Uma. 
C- Duas. 
D- Três 
Comentário 
Parabéns! A alternativa "D" está correta. 
De fato, a chave estrangeira declarada na linha 15 foi criada de maneira a permitir a deleção 
em cascata. Ao executar o comando da linha 28, o SGBD eliminará tanto os dois registros da 
tabela CURSODISCIPLINA (cujo valor de CODIGOCURSO é igual a 1) quanto o registro referente 
ao curso Sistemas de Informação. 
 
29. A respeito de transações no PostgreSQL e, considerando o modelo a seguir, assinale a 
proposição verdadeira: 
 
A- Ao executar o comando DELETE FROM CURSODISCIPLINA(; o PostgreSQL não 
executa uma transação. 
 
B- O comando DELETE FROM CURSODISCIPLINA(; pode ser executado sem erro em 
uma transação PostgreSQL do tipo READ ONLY. 
 
C- O comando DELETE FROM CURSODISCIPLINA(; pode ser executado sem erro em 
uma transação PostgreSQL do tipo READ WRITE. 
 
D- O comando SELECT * FROM CURSODISCIPLINA(; não pode ser executado em uma 
transação PostgreSQL do tipo READ ONLY. 
 
Comentário 
Parabéns! A alternativa "C" está correta. 
De fato, se uma transação no PostgreSQL é definida como READ WRITE, ela aceita comandos 
de inserção, atualização e remoção de dados. Logo, a instrução que contém o comando 
DELETE poderá ser executada sem erro. 
 
30. Suponha que um profissional programou no PostgreSQL os seguintes comandos em uma 
tabela denominada empregado: 
 
Suponha também que, após a execução da linha 2, o profissional percebeu que não deveria 
ter aumentado o salário de Maria nesse valor. Qual comando é adequado adicionar à linha 3 
para desfazer essa operação? 
A- DELETE; 
 
B- COMMIT; 
 
C- UPDATE; 
 
D- ROLLBACK; 
 
Comentário 
Parabéns! A alternativa "D" está correta. 
De fato, como a transação não foi concluída, é possível desfazer a operaçãoda linha 2, 
bastando para isso adicionar o comando ROLLBACK. Após isso, a tabela funcionário ficará com 
os registros iguais à situação imediatamente anterior à execução da transação. 
31. Considere a tabela e o código SQL a seguir: 
 
Analise as seguintes proposições: 
 
I - A consulta retorna informações sobre cinco colunas existentes na tabela ALUNO. 
II - A consulta retorna informações sobre todos os alunos cadastrados. 
III - Pode existir registro com valor “Masculino” armazenado na coluna SEXO. 
IV - O resultado de CURRENT_DATE (linha 1) está armazenado em uma coluna da tabela 
ALUNO. 
V - A consulta retorna informações sobre quatro colunas existentes na tabela ALUNO. 
São proposições verdadeiras: 
A- I e II. 
 
B- II e V. 
 
C- II, III e IV. 
 
D- III e V. 
 
Comentário 
Parabéns! A alternativa "B" está correta. 
A proposição II é verdadeira, pois não há condição de filtro na consulta. A proposição V é 
verdadeira, pois retorna informações a respeito de todas as colunas da tabela ALUNO. As 
demais proposições são falsas. 
 
32. Seja uma tabela assim definida: FUNCIONARIO (IDFUNC, NOME, DATANASCIMENTO, 
SALARIO). Qual consulta SQL retorna o maior salário? 
A- SELECT > SALARIO FROM FUNCIONARIO. 
 
B- SELECT MAX(SALARIO) FROM FUNCIONARIO. 
 
C- SELECT AVG(SALARIO) FROM FUNCIONARIO. 
 
D- SELECT FUNCIONARIO FROM SALÁRIO. 
 
E- Comentário 
Parabéns! A alternativa "B" está correta. 
Na alternativa B, foi usado o comando MAX para retornar o maior valor da coluna SALÁRIO da 
tabela FUNCIONARIO. 
 
33. Gabriel é analista de sistemas de uma empresa de tecnologia de informação e recebeu a 
tarefa de recuperar todos os registros da tabela CLIENTE onde o valor da coluna 
“NOMECLIENTE” contenha a cadeia “da Silva” em qualquer parte do nome. Assinale a 
alternativa correta que permita a Gabriel executar sua tarefa. 
A- SELECT * FROM CLIENTE WHERE NOMECLIENTE = 'da Silva '. 
 
B- SELECT * FROM CLIENTE WHERE NOMECLIENTE != 'da Silva '. 
 
C- SELECT * FROM CLIENTE WHERE NOME LIKE '%da Silva% '. 
 
D-SELECT * FROM CLIENTE WHERE NOMECLIENTE LIKE '%da Silva% '. 
 
Comentário 
Parabéns! A alternativa "D" está correta. 
Para recuperar os registros que contenham “da Silva” em qualquer parte do nome, utiliza-se o 
comando LIKE com auxílio do “%” como forma do SGBD desconsiderar qualquer padrão à 
esquerda e à direita da string de interesse. 
 
34. Um programador recuperou os dados dos bairros Penha, Ipanema, Flamengo e Centro 
gravados na coluna BAIRRO da tabela CLIENTE, a seguir especificada. 
CLIENTE (IDCLIENTE, NOME, ENDERECO, BAIRRO, CIDADE, UF, CEP) 
A sintaxe SQL correta usada por ele para realizar essa atividade foi SELECT * FROM CLIENTE 
A- WHERE BAIRRO IN ('Penha ', 'Ipanema ', 'Flamengo ', 'Centro'). 
 
B- WHERE BAIRRO = ('Penha ', 'Ipanema ', 'Flamengo ', 'Centro'). 
 
C- WHEN BAIRRO = ('Penha ', 'Ipanema ', 'Flamengo ', 'Centro'). 
 
D- WHERE BAIRRO BETWEEN ('Penha ', 'Ipanema ', 'Flamengo ', 'Centro'). 
 
Comentário 
Parabéns! A alternativa "A" está correta. 
Para recuperar os registros de interesse, foi utilizado o operador IN com o uso de uma lista 
contendo os bairros em questão. O SGBD compara o bairro do cliente junto aos elementos 
especificados na lista de bairros em questão. 
 
35. Suponha que exista em um banco de dados uma tabela denominada CLIENTE, assim 
estruturada: CLIENTE (CODIGOCLIENTE, NOME, SEXO, BAIRRO, RENDA). Você foi solicitado a 
escrever um comando SQL para obter a renda média dos clientes por bairro. 
O comando correto é: 
A- SELECT BAIRRO, MIN(RENDA) 
FROM CLIENTE 
GROUP BY BAIRRO 
 
B- SELECT SEXO, SUM(RENDA) 
FROM CLIENTE 
GROUP BY BAIRRO 
 
C- SELECT BAIRRO, AVG(RENDA) 
FROM CLIENTE 
GROUP BY BAIRRO 
 
D- SELECT BAIRRO,MAX(RENDA) 
FROM CLIENTE 
GROUP BY SEXO 
 
Comentário 
Parabéns! A alternativa "C" está correta. 
Para recuperar corretamente os registros de interesse, é necessário agrupar os dados pela 
coluna BAIRRO e em seguida usar a função de média (AVG), tendo como base a coluna RENDA. 
 
36. Suponha a existência de uma tabela no PostgreSQL com a seguinte estrutura: PRODUTO 
(CODIGOP, NOME, ANO QUANTIDADE). Suponha também que a tabela tenha os seguintes 
registros: 
 
Qual consulta a seguir retorna mais de dois resultados? 
A- SELECT ANO,SUM(QUANTIDADE) AS TOTAL 
FROM PRODUTO 
GROUP BY ANO 
HAVING SUM(QUANTIDADE)>1; 
 
B- SELECT ANO,SUM(QUANTIDADE) AS TOTAL 
FROM PRODUTO 
GROUP BY ANO; 
 
C- SELECT SUM(QUANTIDADE) AS TOTAL 
FROM PRODUTO; 
 
D- SELECT ANO, COUNT(*) AS TOTAL 
FROM PRODUTO 
WHERE QUANTIDADE>5 
GROUP BY ANO; 
 
 
 
CODIGO P NOME ANO QUANTIDADE 
1 VIRTUS 2020 3 
2 FIESTA 2014 1 
3 CRUZE 2020 4 
4 CAMARO 2018 1 
5 KOMBI 1996 4 
6 FOCUS 2016 3 
Comentário 
Parabéns! A alternativa "A" está correta. 
Para recuperar os registros de interesse, a consulta em questão retorna o total de automóveis 
por ano, no entanto, levando em conta somente os grupos em que o total seja maior que 1. Na 
prática, os anos 2014 e 2018 não farão parte dos resultados da consulta e os demais o farão, 
totalizando três resultados. 
 
37. Considere as tabelas e o código SQL a seguir: 
 
 
A consulta retorna: 
A- Somente os registros de ALUNO relacionados à tabela FONEALUNO. 
 
B- Registros, tanto dos alunos com telefone, quanto dos alunos sem telefone. 
 
C- Erro. 
 
D- Somente registros dos alunos que têm mais de um telefone cadastrado. 
 
Comentário 
Parabéns! A alternativa "B" está correta. 
Parabéns! A alternativa B está correta. A consulta usa junção à esquerda. Logo, todos os 
registros de ALUNO farão parte do resultado: alunos com e sem telefone cadastrado no banco 
de dados. 
 
38. Considere as tabelas e o código SQL a seguir: 
 
 
A consulta retorna: 
A- A descrição dos projetos e nomes de professores e alunos envolvidos em orientação. 
 
B- A descrição dos projetos e nomes de professores e alunos não envolvidos em 
orientação. 
 
C- A descrição dos projetos e nomes de professores e alunos envolvidos e não envolvidos 
em orientação. 
 
D- A descrição dos projetos sem orientação definida. 
 
Comentário 
Parabéns! A alternativa "A" está correta. 
A consulta envolve somente junções internas. Retorna informações sobre todas as orientações 
cadastradas no banco de dados. 
 
 
 
 
39. Considere as tabelas e o código SQL a seguir: 
A consulta retorna: 
A- Somente o(s) registro(s) de aluno(s) sem telefone. 
 
B- O(s) registro(s) de aluno(s) com pelo menos um telefone. 
 
C- Somente o(s) registro(s) de aluno(s) com pelo menos dois telefones. 
 
D- Somente o(s) registro(s) de aluno(s) com pelo menos três telefones. 
Comentário 
Parabéns! A alternativa "B" está correta. 
Há o uso de uma subconsulta correlata, junto a cláusula EXISTS, que testa a existência de 
algum retorno da subconsulta. Assim, caso haja retorno da consulta, significa que o aluno em 
questão possui pelo menos um telefone. 
 
 
 
 
 
 
 
 
40. Considere a tabela e o código SQL a seguir: 
 
A consulta retorna: 
A- O número de empregados que ganham menos que o empregado de maior salário. 
 
B- O número de empregados que ganham menos que a média salarial das colaboradoras. 
 
C- O maior salário entre as colaboradoras. 
 
D- O número de funcionárias. 
 
Comentário 
Parabéns! A alternativa "A" está correta. 
A cláusula WHERE compara o salário de cada funcionário junto ao do colaborador que tem 
maior renda. Caso o salário do funcionário seja menor que o maior salário, esse funcionário é 
considerado na contagem. 
 
 
 
 
 
 
41. Considere que cada tabela a seguir pertence a um banco de dados distinto. 
 
 
Qual consulta retorna o nome e o CPF dos alunos que não são clientes? 
A- SELECT NOME, CPF FROM ALUNO 
EXCEPT 
SELECT NOME, CPF FROM CLIENTE; 
 
B- SELECT NOME, CPF FROM ALUNO 
UNION 
SELECT NOME, CPF FROM CLIENTE; 
 
C- SELECT NOME, CPF FROM ALUNO 
UNION ALL 
SELECTNOME, CPF FROM CLIENTE; 
 
D- SELECT NOME, CPF FROM ALUNO 
INTERSECT 
SELECT NOME, CPF FROM CLIENTE; 
 
Comentário 
Parabéns! A alternativa "A" está correta. 
Para recuperar os alunos que não são clientes, basta utilizar o operador de subtração, que, no 
contexto da questão, retornará os registros resultantes da consulta envolvendo a tabela 
ALUNO que não estão presentes nos resultados da consulta envolvendo a tabela CLIENTE. 
 
 
 
 
42. Considere que cada tabela a seguir pertence a um banco de dados distinto. 
 
 
Qual consulta retorna o nome e o CPF dos clientes que são alunos? 
A- SELECT NOME, CPF FROM ALUNO 
EXCEPT 
SELECT NOME, CPF FROM CLIENTE; 
 
B- SELECT NOME, CPF FROM CLIENTE 
INTERSECT 
SELECT NOME, CPF FROM ALUNO; 
 
C- SELECT NOME, CPF FROM ALUNO 
UNION ALL 
SELECT NOME, CPF FROM CLIENTE; 
 
D- SELECT NOME, CPF FROM CLIENTE 
JOIN 
SELECT NOME, CPF FROM ALUNO; 
 
Comentário 
Parabéns! A alternativa "B" está correta. 
Para recuperar os clientes que são alunos, basta utilizar o operador de interseção, que, no 
contexto da questão, retornará os registros resultantes da consulta envolvendo a tabela 
CLIENTE que não estão presentes nos resultados da consulta envolvendo a tabela ALUNO.

Outros materiais