Buscar

EXERCICIOS BANCO DE DADOS TEMAS

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 47 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 47 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 47 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

TEMA 1 SISTEMA DE BANCO DE DADOS EXERCICIOS 
 
MODULO 1 
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. 
 
Modelo de sistema de arquivos, com os programas acessando os 
dados através de módulos internos de gerência de arquivos. 
 
Modelo de sistema de banco de dados, com os programas 
acessando os dados através de um SGBD. 
 
Modelo de sistema de informação na Web, com os programas 
acessando os dados na nuvem. 
Comentário 
Parabéns! A alternativa "A" está correta. 
 
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? 
 
PostgreSQL 
 
MySQL 
 
SQL 
 
SQL Server 
Comentário 
Parabéns! A alternativa "C" está correta. 
 
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. 
 
MODULO 2 
1. 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 II. 
 
Somente as afirmações I e III. 
 
Somente as afirmações II e III. 
 
Todas as afirmações estão corretas. 
Comentário 
Parabéns! A alternativa "B" está correta. 
 
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. 
2. Qual das alternativas abaixo não é uma funcionalidade dos 
sistemas de banco de dados? 
 
Representação de relacionamentos entre os dados. 
 
Controle de redundância de dados. 
 
Compartilhamento de dados. 
 
Armazenamento de dados estáticos. 
Comentário 
Parabéns! A alternativa "D" está correta. 
 
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. 
 
MODULO 3 
1. 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? 
 
Compilador de linguagem de manipulação de dados. 
 
Catálogo de metadados. 
 
Otimizador de consulta. 
 
Processador de run time. 
Comentário 
Parabéns! A alternativa "D" está correta. 
 
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. 
2. Qual é o modelo de computação utilizado pelo PostgreSQL, 
assim como pela maioria dos SGBDs relacionais 
empresariais? 
 
Centralizado. 
 
Pessoal. 
 
Cliente/Servidor. 
 
Stand Alone. 
Comentário 
Parabéns! A alternativa "C" está correta. 
 
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. 
 
TEMA 2 Projeto de Banco de Dados Modelagem Conceitual 
EXERCICIOS 
MODULO 1 
1. 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 
 
Lógico 
 
Físico 
 
Prescritivo 
Comentário 
Parabéns! A alternativa "A" está correta. 
 
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. 
2. Assinale a afirmativa correta acerca das etapas de um 
projeto de banco de dados: 
 
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. 
 
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. 
 
Projeto físico: Descreve detalhes sobre tipos de dados e tamanho 
de colunas. É dependente da escolha de um SGBD. 
 
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. 
 
MODULO 2 
1. Considere o DER a seguir sobre inscrição em concurso 
público. Qual proposição está correta? 
 
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. 
 
O atributo DATA está representado incorretamente no modelo, uma 
vez que não é permitido modelar atributo em relacionamento. 
 
De acordo com o modelo apresentado, um CANDIDATO pode 
inscrever-se em mais de um EXAME. 
 
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. 
2. 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. SALARIO é 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. 
 
III e IV 
 
III e V 
 
I, III e IV 
 
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. 
Você chegou ao final do módulo 2! 
 
 
MODULO 3 
1. Uma cafeteria quecomercializa 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: 
 
O relacionamento entre as entidades PRODUTO e COOPERATIVA 
é do tipo um-para-muitos. 
 
O atributo telefone da entidade COOPERATIVA é do tipo 
composto. 
 
O atributo CODIGOP da entidade PRODUTO é classificado como 
opcional. 
 
É 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. 
2. 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? 
 
 
CERTA 
 
 
 
 
 
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. 
Você chegou ao final do módulo 3! 
 
 
MODULO 4 
1. O DER a seguir representa informações sobre clientes. 
 
No que se refere à modelagem dos atributos, assinale a 
alternativa verdadeira: 
 
O atributo CODIGOCLIENTE admite repetição de valores. 
 
O atributo DTNASCIMENTO é opcional e composto. 
 
É mais adequado modelar telefone em uma entidade separada, 
relacionada à entidade CLIENTE. 
 
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. 
2. O DER a seguir representa informações sobre funcionários 
e seus dependentes. 
 
No que se refere à modelagem dos atributos, assinale a 
alternativa verdadeira: 
 
O atributo CODIGOFUNCIONARIO da entidade DEPENDENTE é 
redundante. 
 
O atributo CODIGOFUNCIONARIO da entidade FUNCIONARIO é 
opcional. 
 
Os atributos NOME em ambas as entidades são multivalorados. 
 
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. 
 
TEMA 3 Projeto De Banco De Dados – Modelagem Lógica E 
Física 
MODULO 1 
1. 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. 
2. 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: 
 
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. 
 
A coluna CODIGOALUNO é chave estrangeira na tabela ALUNO. 
 
A coluna CODIGOALUNO pode ser opcional. 
 
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. 
 
MODULO 2 
1. 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 tabela não precisa estar na 1FN. 
 
A tabela não precisa estar na 2FN. 
 
A tabela não pode conter campos opcionais 
 
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. 
2. 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 à: 
 
1 FN 
 
2 FN 
 
3 FN 
 
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. 
 
 
MODULO 3 
1. 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? 
 
Somente uma tabela para todo o modelo. 
 
Duas tabelas, uma para TURMA e outra para DISCIPLINA. 
 
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. 
 
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. 
2. Considere o projeto conceitual parcial a seguir: 
 
 
 
Para construir o projeto lógico a partir do DER, é correto 
afirmar que serão criadas: 
 
Duas tabelas. 
 
Três tabelas. 
 
Quatro tabelas.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. 
 
MODULO 4 
1. Acerca do processo de desnormalização, assinale a 
proposição verdadeira. 
 
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. 
 
A desnormalização nunca introduz redundância de dados. 
 
Ao desnormalizar um modelo da 3FN para a 2FN, introduz-se 
redundância de dados, tendo vantagem aumento do desempenho 
no acesso aos dados. 
 
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 
2. Os índices são usados em bancos de dados com a mesma 
finalidade dos índices de livros, isto é, para acelerar a consulta 
a 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? 
 
Colunas mais usadas em condições de seleção. 
 
Tabelas mais acessadas por consultas. 
 
Linhas mais selecionadas em consultas. 
 
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. 
 
 
 
 
 
TEMA 4 Criação e manipulação de objetos no PostgreSQL 
MODULO 1 
1. Acerca do SGBD PostgreSQL, assinale a proposição 
verdadeira. 
 
O PostgreSQL é um SGBD comercial de código fechado, 
disponível apenas para ambiente Windows. 
 
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. 
 
O PostgreSQL é um SGBD puramente orientado a objeto. 
 
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. 
2. 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: 
 
I, II e III. 
 
I e III. 
 
I e II. 
 
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. 
 
MODULO 2 
1. Analise o script a seguir e assinale a proposição verdadeira: 
 
 
A execução completa do script cria três tabelas e todas as colunas 
são obrigatórias. 
 
A execução dos comandos entre as linhas 1 e 16 cria três tabelas 
relacionadas. 
 
A execução dos comandos entre as linhas 18 e 24 cria três 
relacionamentos. 
 
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. 
2. Analise o modelo a seguir e assinale a proposição 
verdadeira: 
 
 
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)); 
 
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)); 
 
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) ; 
 
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. 
 
 
 
 
MODULO 3 
1. 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 16, se 
executarmos o comando expresso na linha 18, o SGBD retornará 
uma mensagem de erro. 
 
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. 
 
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. 
 
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. 
2. 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? 
 
Nenhuma. 
 
Uma. 
 
Duas. 
 
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. 
Você chegou ao final do móduloMODULO 4 
1. A respeito de transações no PostgreSQL e, considerando o 
modelo a seguir, assinale a proposição verdadeira: 
 
 
Ao executar o comando DELETE FROM CURSODISCIPLINA(; o 
PostgreSQL não executa uma transação. 
 
O comando DELETE FROM CURSODISCIPLINA(; pode ser 
executado sem erro em uma transação PostgreSQL do tipo READ 
ONLY. 
 
O comando DELETE FROM CURSODISCIPLINA(; pode ser 
executado sem erro em uma transação PostgreSQL do tipo READ 
WRITE. 
 
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. 
2. 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? 
 
DELETE; 
 
COMMIT; 
 
UPDATE; 
 
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ção da 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. 
 
TEMA 5 Consultas em uma Tabela no Postgresql 
MODULO 1 
1. 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: 
 
I e II. 
 
II e V. 
 
II, III e IV. 
 
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. 
2. Seja uma tabela assim definida: FUNCIONARIO (IDFUNC, 
NOME, DATANASCIMENTO, SALARIO). Qual consulta SQL 
retorna o maior salário? 
 
SELECT > SALARIO FROM FUNCIONARIO. 
 
SELECT MAX(SALARIO) FROM FUNCIONARIO. 
 
SELECT AVG(SALARIO) FROM FUNCIONARIO. 
 
SELECT FUNCIONARIO FROM SALÁRIO. 
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. 
 
 
MODULO 2 
1. 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. 
 
SELECT * FROM CLIENTE WHERE NOMECLIENTE = 'da Silva '. 
 
SELECT * FROM CLIENTE WHERE NOMECLIENTE != 'da Silva '. 
 
SELECT * FROM CLIENTE WHERE NOME LIKE '%da Silva% '. 
 
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. 
2. 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 
 
WHERE BAIRRO IN ('Penha ', 'Ipanema ', 'Flamengo ', 'Centro'). 
 
WHERE BAIRRO = ('Penha ', 'Ipanema ', 'Flamengo ', 'Centro'). 
 
WHEN BAIRRO = ('Penha ', 'Ipanema ', 'Flamengo ', 'Centro'). 
 
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. 
 
 
MODULO 3 
1. 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 é: 
 
SELECT BAIRRO, MIN(RENDA) 
FROM CLIENTE 
GROUP BY BAIRRO 
 
SELECT SEXO, SUM(RENDA) 
FROM CLIENTE 
GROUP BY BAIRRO 
 
SELECT BAIRRO, AVG(RENDA) 
FROM CLIENTE 
GROUP BY BAIRRO 
 
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. 
2. 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: 
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 
 
Qual consulta a seguir retorna mais de dois resultados? 
 
SELECT ANO,SUM(QUANTIDADE) AS TOTAL 
FROM PRODUTO 
GROUP BY ANO 
HAVING SUM(QUANTIDADE)>1; 
 
SELECT ANO,SUM(QUANTIDADE) AS TOTAL 
FROM PRODUTO 
GROUP BY ANO; 
 
SELECT SUM(QUANTIDADE) AS TOTAL 
FROM PRODUTO; 
 
SELECT ANO, COUNT(*) AS TOTAL 
FROM PRODUTO 
WHERE QUANTIDADE>5 
GROUP BY ANO; 
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. 
 
 
 
 
 
TEMA 6 Consulta com várias tabelas no POSTGRESQL 
MODULO 1 
1. Considere as tabelas e o código SQL a seguir: 
 
A consulta retorna: 
 
Somente os registros de ALUNO relacionados à tabela 
FONEALUNO. 
 
Registros, tanto dos alunos com telefone, quanto dos alunos sem 
telefone. 
 
Erro. 
 
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. 
2. Considere as tabelas e o código SQL a seguir: 
 
A consulta retorna: 
 
A descrição dos projetos e nomes de professores e alunos 
envolvidos em orientação. 
 
A descrição dos projetos e nomes de professores e alunos não 
envolvidos em orientação. 
 
A descrição dos projetos e nomes de professores e alunos 
envolvidos e não envolvidos em orientação. 
 
A descrição dos projetos sem orientação definida. 
Comentário 
Parabéns! A alternativa "C" está correta. 
 
A consulta envolve somente junções internas. Retorna informações 
sobre todas as orientações cadastradas no banco de dados. 
 
MODULO 2 
1. Considere as tabelas e o código SQL a seguir: 
 
A consulta retorna: 
 
Somente o(s) registro(s) de aluno(s) sem telefone. 
 
O(s) registro(s)de aluno(s) com pelo menos um telefone. 
 
Somente o(s) registro(s) de aluno(s) com pelo menos dois 
telefones. 
 
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. 
2. Considere a tabela e o código SQL a seguir: 
 
A consulta retorna: 
 
O número de empregados que ganham menos que o empregado 
de maior salário. 
 
O número de empregados que ganham menos que a média salarial 
das colaboradoras. 
 
O maior salário entre as colaboradoras. 
 
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. 
 
MODULO 3 
1. 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? 
 
 
SELECT NOME, CPF FROM ALUNO 
EXCEPT 
SELECT NOME, CPF FROM CLIENTE; 
 
SELECT NOME, CPF FROM ALUNO 
UNION 
SELECT NOME, CPF FROM CLIENTE; 
 
SELECT NOME, CPF FROM ALUNO 
UNION ALL 
SELECT NOME, CPF FROM CLIENTE; 
 
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. 
2. 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? 
 
SELECT NOME, CPF FROM ALUNO 
EXCEPT 
SELECT NOME, CPF FROM CLIENTE; 
 
SELECT NOME, CPF FROM CLIENTE 
INTERSECT 
SELECT NOME, CPF FROM ALUNO; 
 
SELECT NOME, CPF FROM ALUNO 
UNION ALL 
SELECT NOME, CPF FROM CLIENTE; 
 
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