Buscar

Banco de Dados Relacionais

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

Prévia do material em texto

• Pergunta 1 
0 em 0,25 pontos 
 
 Em um banco de dados, as necessidades de informação do usuário podem ser traduzidas 
em comandos de SELECT, principalmente a edição dos filtros, isto é, as condições que fazem 
parte da cláusula WHERE. 
 
Em um sistema de clínica médica, existe uma tabela de pacientes com a seguinte 
especificação. 
 
PACIENTE (CODIGO, NOME, CPF, TELEFONE, SEXO, IDADE, BAIRRO) 
 
Neste sistema, existe a necessidade de recuperar especificamente o nome e telefone das 
pacientes do sexo feminino que moram em pelo menos um dos dois bairros mais próximos 
da clínica, o bairro Barra e o bairro Graça. O comando de SELECT que permite atender a esta 
necessidade é 
 
Resposta Selecionada: 
 
SELECT NOME, TELEFONE FROM PACIENTE 
 WHERE SEXO = ‘F’ AND (BAIRRO = ‘Barra’ OR BAIRRO = ‘Graça’) 
Resposta Correta: 
 
SELECT NOME, TELEFONE FROM PACIENTE 
 WHERE SEXO = ‘F’ OR (BAIRRO = ‘Barra’ OR BAIRRO = ‘Graça’) 
Feedback 
da 
resposta: 
Sua resposta está incorreta. A alternativa está incorreta, pois a condição correta 
seria SEXO = ‘F’ AND (BAIRRO = ‘Barra’ OR BAIRRO = ‘Graça’) recupera as linhas 
que possuem pacientes de sexo feminino E (and) que morem na Barra ou na 
Graça, conforme requisitado. Caso esteja diferente disso, algumas das situações 
a seguir podem ter ocorrido. Ou sexo está combinado com o operador OR na 
condição de bairro, o que estaria errado. Ou então, na condição de bairro, o 
operador usado foi AND, e não faz sentido (a princípio, tendo o modelo como 
base) uma paciente morar em dois bairros ao mesmo tempo. Ou ainda pode ter 
faltado o campo telefone na lista de colunas do SELECT e o uso do operador 
NOT está inconsistente. 
 
 
 Pergunta 2 
0,25 em 0,25 pontos 
 
 De acordo com Elmasri e Navathe (2011), o modelo relacional foi introduzido, em 1970, via 
um artigo clássico de CODD. Esta teoria de modelo relacional deu origem aos sistemas 
gerenciadores de bancos de dados relacionais (SGBDs) que têm sido amplamente 
empregados por aproximadamente 50 anos. 
 
ELMASRI, R.; NAVATHE, S. Sistemas de banco de dados. São Paulo: Pearson Addison Wesley, 
2011. 
 
Em relação a esses SGBDs relacionais, analise as sentenças a seguir: 
 
 
I. Um dos motivos de sucesso dos SGBDs relacionais é a linguagem SQL, que serve para 
expressar os comandos que devem ser executados pelo SGBD 
 
Porque: 
 
II. Como essa linguagem (SQL) tornou-se um padrão, os usuários apresentam menos 
dificuldades para migrar suas aplicações; por exemplo, um usuário insatisfeito com um 
SGBD comercial pode implantar sua aplicação em outro SGBD com esforço e custo mais 
controlado. 
 
A seguir, assinale a alternativa correta: 
Resposta 
Selecionada: 
As asserções I e II são proposições verdadeiras, e a II é uma justificativa 
correta da I. 
Resposta Correta: 
 
As asserções I e II são proposições verdadeiras, e a II é uma justificativa 
correta da I. 
Feedback 
da 
resposta: 
Resposta correta. A alternativa está correta, pois as duas sentenças estão certas 
e a linguagem SQL é, de fato, um dos fatores de sucesso dos SGBDs comerciais. 
Isso porque, como ela se tornou um padrão de mercado, vários fabricantes 
mantêm compatibilidade, desenvolvedores de tecnologia falam a mesma 
“linguagem”, o que possibilitou um vasto uso no mercado de TI. 
 
 
 Pergunta 3 
0,25 em 0,25 pontos 
 
 Uma das manipulações que existem em banco de dados é a exclusão de registros em 
tabelas e em SQL. O comando para esta finalidade é o DELETE. A sintaxe deste comando 
envolve especificar qual a tabela que está sendo afetada e um filtro para indicar quais 
registros devem ser excluídos pelo comando. 
 
Em um sistema de registro de áreas agrícolas, na tabela PLANTIO existem os seguintes 
registros: 
Código Município Área Produto Data Colheita 
1 Alegre 32,50 Tomate 20/02/2019 
2 Linhares 54,70 Mamão 05/03/2019 
3 Sooretama 47,30 Tomate 10/03/2019 
4 Linhares 52,10 Café 25/02/2019 
5 Colatina 35,80 Café 18/02/2019 
6 Linhares 43,70 Mamão 03/03/2019 
 
Fonte: Elaborado pelo autor. 
 
O seguinte comando foi executado no banco de dados: 
 DELETE FROM PLANTIO 
 WHERE (AREA < 40) OR 
 
 (MUNICIPIO = ‘Linhares’ AND AREA > 50) 
 
Quantas linhas foram afetadas por este comando? 
Resposta Selecionada: 
 
4 
Resposta Correta: 
 
4 
Feedback da 
resposta: 
Resposta correta. A alternativa está correta, pois, pela condição (AREA < 40), 
as linhas 1 e 5 serão afetadas e, pela condição (MUNICIPIO = ‘Linhares’ AND 
AREA > 50), as linhas 2 e 4 atendem à condição. Portanto, 4 linhas serão 
afetadas. 
 
 
 Pergunta 4 
0,25 em 0,25 pontos 
 
 Ao utilizar comandos de DDL (data definition language), o usuário do banco de dados pode 
criar, modificar ou excluir objetos em um banco de dados. O comando de CREATE TABLE, 
por exemplo, cria tabelas que basicamente são um conjunto de campos com seus tipos de 
dados e de restrições como chave primária e chave estrangeira. Em um sistema bancário, 
existe uma tabela TRANSACAO que foi criada com o seguinte comando: 
 
 CREATE TABLE TRANSACAO 
 (COD_TRANSACAO INTEGER NOT NULL, 
 COD_CONTA INTEGER NOT NULL, 
 DATA DATETIME NOT NULL, 
 VALOR NUMERIC(9,2) NOT NULL, 
 TIPO CHAR(1) NOT NULL, 
 RESGATE CHAR(1) NOT NULL, 
FOREIGN KEY (COD_CONTA) REFERENCES CONTA(COD_CONTA) ) 
 
Alguns campos possuem o nome intuitivo, já para TIPO vale esclarecer que este campo 
indica o tipo de transação, Crédito ou Débito. O campo RESGATE indica se a transação foi 
resultado de um resgate de aplicação. Considerando apenas o comando de CREATE TABLE 
apresentado, analise as sentenças a seguir e assinale (V) para a(s) opções verdadeiras ou (F) 
para as falsas. 
 
I. ( ) O campo COD_TRANSACAO não pode ter valores repetidos, pois é chave primária. 
II. ( ) O campo COD_CONTA não aceita valores com números decimais. 
III. ( ) O campo RESGATE pode não ter valores atribuídos a este campo. 
IV. ( ) O campo COD_CONTA só pode ter valores que existam no campo código de CONTA. 
 
A partir das associações feitas anteriormente, assinale a alternativa que apresenta a 
sequência correta: 
 
Resposta Selecionada: 
 
F, V, F, V. 
 
Resposta Correta: 
 
F, V, F, V. 
Feedback 
da 
resposta: 
Resposta correta. A alternativa está correta, pois o item I é falso, uma vez que 
não há no comando a cláusula de primary key, portanto esta restrição não foi 
estabelecida e pode haver valores repetidos de código na tabela. O item II é 
verdadeiro, como o campo COD_CONTA é INTEGER, apenas valores inteiros 
(sem decimais) devem ser aceitos. O item III é falso, pois o campo RESGATE é 
not null, portanto é obrigatório ter um valor atribuído a este campo. Por fim, o 
item IV é verdadeiro; o campo COD_CONTA é uma chave estrangeira que 
aponta para o campo CÓDIGO na tabela de conta, portanto apenas valores de 
código presentes na tabela conta são válidos para este campo COD_CONTA na 
tabela de TRANSACAO. 
 
 Pergunta 5 
0,25 em 0,25 pontos 
 
 Os comandos de SQL para manipulação de dados (DML) podem ser executados através de 
uma ferramenta administrativa, ou eles são executados internamente por um software ao 
se codificar uma funcionalidade do sistema. 
Imagine que um Módulo de Sistema de Recursos Humanos possui uma função que é aplicar 
um reajuste de um determinado valor para todos os funcionários de um determinado setor. 
Essa situação pode ocorrer por conta de uma negociação de reajuste anual para acategoria 
de funcionários, por exemplo. Considerando que, em determinado ano, o reajuste foi de 
3,5%, qual comando a seguir deve ter sido disparado pela função interna do sistema 
responsável por este reajuste? 
 
Resposta Selecionada: 
 
UPDATE FUNCIONARIO SET SALARIO = SALARIO + SALARIO * (3.5/100) 
 WHERE COD_SETOR = 10 
Resposta Correta: 
 
UPDATE FUNCIONARIO SET SALARIO = SALARIO + SALARIO * (3.5/100) 
 WHERE COD_SETOR = 10 
Feedback da 
resposta: 
Resposta correta. A alternativa está correta, pois o comando para alteração de 
dados é o UPDATE e, no caso, o salário será igual ao salário anterior mais 3.5% 
(3.5/10) aplicado ao salário. E isso para um determinado COD_SETOR, no caso 
usado, o COD_SETOR = 10. 
 
 
 Pergunta 6 
0,25 em 0,25 pontos 
 
 Um SGBD relacional foi concebido com base em algumas teorias sobre como representar os 
dados e como realizar manipulações sobre eles. Conforme Puga, França e Goya (2013), uma 
destas fundamentações teóricas é uma linguagem formal de alto nível para expressar as 
operações sobre tabelas, suas linhas e colunas. Ela contém operações como seleção, 
 
projeção, produto cartesiano e outras. 
 
PUGA, S; FRANÇA, E.; GOYA, M. Banco de Dados: implementação em SQL, PL/SQL e Oracle 
11g. São Paulo: Pearson Education do Brasil, 2013. 
 
A linguagem a que se refere Puga, França e Goya (2013) é a : 
Resposta Selecionada: 
 
Álgebra Relacional. 
Resposta Correta: 
 
Álgebra Relacional. 
Feedback da 
resposta: 
Resposta correta. A alternativa está correta, pois é a Álgebra Relacional, criada 
na IBM Research em 1970, que estabelece os fundamentos teóricos para a 
tecnologia de bancos de dados relacionais e com as características e operações 
presentes no enunciado. 
 
 
 Pergunta 7 
0,25 em 0,25 pontos 
 
 Em um modelo relacional, os conceitos de chaves são relevantes. As chaves primárias 
servem para identificar as linhas em uma tabela e, para o caso da chave estrangeira, ela 
permite estabelecer a restrição de que um valor depende de outro valor em outra tabela. 
Por exemplo, em um sistema de uma universidade, uma disciplina pertence a um curso e 
um curso pode conter várias disciplinas. A especificação destas tabelas pode ser 
compreendida a seguir; os campos em sublinhado são chaves primárias. 
 
DISCIPLINA (COD_DISCIPLINA, DCR_DISCIPLINA, COD_CURSO (FK)) 
CURSO(COD_CURSO, DCR_CURSO) 
 
A respeito dos comandos para criação das chaves primárias e estrangeiras deste modelo, 
analise as sentenças a seguir e assinale (V) para a(s) verdadeira(s) e (F) para as falsa(s): 
 
I. ( ) Para criar a chave primária de disciplina, pode-se adicionar a cláusula a seguir junto 
com a sequência de campos no comando CREATE TABLE 
 “ PRIMARY KEY (COD_DISCIPLINA) ” 
II. ( ) Para criar a chave estrangeira na tabela disciplina, pode-se adicionar a cláusula a 
seguir junto com a sequência de campos no comando CREATE TABLE 
 “ FOREIGN KEY (COD_CURSO) REFERENCES CURSO(COD_CURSO) ” 
III. ( ) Uma outra forma de criar uma chave estrangeira é via o comando ALTER TABLE, e, 
para a chave estrangeira na tabela disciplina, pode ser usado desta forma 
 “ ALTER TABLE DISCIPLINA ADD 
 FOREIGN KEY (COD_CURSO) REFERENCES CURSO(COD_CURSO) ” 
IV. ( ) Para criar uma chave primária, é possível também usar o comando a seguir 
 “ ALTER TABLE DISCIPLINA 
ADD CONSTRAINT ‘PK_DISC’ PRIMARY KEY (COD_DISCIPLINA) “ 
 
Conforme as associações realizadas, assinale a alternativa correta: 
 
Resposta Selecionada: 
 
V, V, V, V 
Resposta Correta: 
 
V, V, V, V 
Feedback 
da 
resposta: 
Resposta correta. A alternativa está correta, pois todas as formas estão 
corretas. A adição de chaves pode ocorrer na lista de definição de campos e 
restrições do CREATE TABLE (item I e II) e pode ser adicionada posteriormente 
com o comando de ALTER TABLE sem nenhum nome para a restrição (Item III), 
ou identificando a restrição com a cláusula “CONSTRAINT ‘PK_DISC “. 
 
 
 Pergunta 8 
0,25 em 0,25 pontos 
 
 A linguagem SQL é bastante ampla e possui comandos e subconjuntos deles com 
propósitos, tais como definir a estruturação dos dados, manipular os registros de tabelas e 
ainda para gerenciamento de outros elementos em um SGBD, por exemplo, usuários, 
permissões, backup, restauração e outros. 
 
Em relação a alguns comandos de SQL, analise as afirmativas a seguir e assinale (V) para a(s) 
verdadeira(s) e (F) para a(s) falsa(s). 
 
I. ( ) O INSERT é um comando de DDL e é responsável por criar tabelas e realizar as inserções 
de seus registros. 
II. ( ) O ALTER TABLE é um comando de DDL e pode ser usado, por exemplo, para adicionar 
ou excluir uma coluna da tabela. 
III. ( ) O UPDATE é um comando de DML responsável pela alteração dos registros em 
tabelas, por exemplo, mudar o nome de um certo cliente. 
IV. ( ) O DROP é um comando de DML responsável por excluir as linhas de uma tabela, por 
exemplo, excluir um certo produto. 
A partir das associações feitas anteriormente, assinale a alternativa que apresenta a 
sequência correta: 
 
Resposta Selecionada: 
 
F, V, V, F. 
Resposta Correta: 
 
F, V, V, F. 
Feedback 
da 
resposta: 
Resposta correta. A alternativa é a correta. Na sequência dos itens, o item I é 
falso, o comando INSERT não é de DDL (definição de dados), ele é de DML 
(manipulação de dados) e, além disso, não é responsável por criar tabelas, 
apenas inserções de registros. O comando para criar tabela é o CREATE TABLE, 
este sim de definição de dados (DDL). O item II é verdadeiro, pois adicionar ou 
excluir colunas são alterações em tabelas feitas por ALTER TABLE (definição de 
dados - DDL). O item III é verdadeiro, pois o UPDATE muda valores em registros 
(manipulação de dados - DML) como no caso de mudança de nomes. O item IV 
é falso; o DROP é usado para excluir elementos da estrutura dos dados, por 
 
exemplo, excluir tabelas, views, índices, e é um comando de DDL. O certo seria 
usar o comando DELETE para excluir linhas. 
 
• Pergunta 9 
0,25 em 0,25 pontos 
 
 As alterações em tabelas no banco de dados são realizadas pelo comando UPDATE, e, para 
consultar os dados, o comando usado é o SELECT. Estes dois comandos são parte da DML 
(Data Manipulation Language) em que estão outros comandos como o INSERT e DELETE, 
todos eles para manterem as informações dos registros. 
Em um sistema de uma escola, houve a necessidade de fazer um ajuste em uma nota do 
aluno. Antes de ser executado o ajuste, o aluno tinha uma nota1 de valor 7,0. O ajuste feito 
foi o seguinte: 
 
 UPDATE NOTA_ALUNO 
 SET NOTA1 = NOTA1 + 1.0 
 WHERE MATRICULA = 201901221; 
 
SELECT NOTA1 FROM NOTA_ALUNO WHERE MATRICULA = 201901221 
 
O valor a ser visualizado pelo comando de SELECT após o update de ajuste será: 
 
Resposta Selecionada: 
 
8,0 
Resposta Correta: 
 
8,0 
Feedback da 
resposta: 
Resposta correta. A alternativa está correta, pois com um valor de nota1 antes 
do ajuste com valor igual a 7 e com o ajuste em que NOTA1=NOTA1 + 1, este 
valor será ajustado para 8 (1 ponto adicional). 
 
 
 Pergunta 10 
0,25 em 0,25 pontos 
 
 Na construção de um banco de dados, em seu início, um projetista de dados compreende os 
requisitos de um sistema e faz a modelagem de dados criando um modelo de entidade e 
relacionamento ou um modelo relacional. A partir do modelo, os comandos de DDL (Data 
Definition Language) são usados para criar as tabelas e outras definições no banco de 
dados. 
Para um certo sistema, uma parte do modelo de dados está mostrado a seguir. 
 [1] 
Fonte: Elaborada pelo autor. 
Existe a necessidade de criar um comando para gerar a tabela de BAIRRO com todos os 
campos e restrições, que, considerando que todos os campos são obrigatórios, precisam ser 
preenchidos na manipulaçãodos registros. O comando para esta criação da tabela é: 
 
Resposta 
Selecionada: 
CREATE TABLE BAIRRO ( COD_BAIRRO INTEGER NOT NULL, 
 DCR_BAIRRO VARCHAR(50) NOT 
NULL, 
 COD_CIDADE INTEGER NOT NULL, 
 PRIMARY KEY (COD_BAIRRO) , 
 FOREING KEY (COD_CIDADE) 
REFERENCES CIDADE (COD_CIDADE) ); 
Resposta Correta: 
 
CREATE TABLE BAIRRO ( COD_BAIRRO INTEGER NOT NULL, 
 DCR_BAIRRO VARCHAR(50) NOT 
NULL, 
 COD_CIDADE INTEGER NOT NULL, 
 PRIMARY KEY (COD_BAIRRO) , 
 FOREING KEY (COD_CIDADE) 
REFERENCES CIDADE (COD_CIDADE) ); 
Feedback da 
resposta: 
Resposta correta. A alternativa está correta pois apresenta todas as definições 
necessárias, os campos COD_BAIRRO, DCR_BAIRRO, COD_CIDADE e a chave 
primária (PRIMARY KEY) e a chave estrangeira (FOREIGN KEY), tudo definido 
corretamente.