Buscar

Atividade 3 - Banco 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 14 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 14 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 14 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

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:
a.
V, V, V, V
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 “.
b.
V, F, V, V
c.
V, V, F, V
d.
F, V, V, V
e.
V, V, V, F
Feedback
A resposta correta é: a - V, V, V, V
Questão 2
Correto
Atingiu 1,00 de 1,00
Marcar questão
Texto da questão
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 a categoria 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?
a.
MODIFY FUNCIONARIO SET SALARIO = SALARIO * (3.5/100)
                WHERE COD_SETOR = 10
b.
UPDATE FUNCIONARIO SET SALARIO = SALARIO * (3.5/100)
                WHERE COD_SETOR = 10
c.
MODIFY FUNCIONARIO SET SALARIO = SALARIO + SALARIO * (3.5/100)
                WHERE COD_SETOR = 10
d.
UPDATE FUNCIONARIO SET SALARIO = SALARIO + SALARIO * (3.5/100)
                WHERE COD_CARGO = 10
e.
UPDATE FUNCIONARIO SET SALARIO = SALARIO + SALARIO * (3.5/100)
                WHERE COD_SETOR = 10
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.
Feedback
A resposta correta é: e - UPDATE FUNCIONARIO SET SALARIO = SALARIO + SALARIO * (3.5/100)
                WHERE COD_SETOR = 10
Questão 3
Correto
Atingiu 1,00 de 1,00
Marcar questão
Texto da questão
O SQL (de Structured Query Language) é uma linguagem para o trato com os dados e apresenta um conjunto vasto de comandos que são divididos em partes da linguagem como a DDL e a DML. A DDL, que no português seria Linguagem para Definição de Dados (do inglês, Data Definition Language), trata de comandos para estruturação dos componentes de dados, e a DML (do inglês, Data Manipulation Language) engloba comandos para manipular registros nas tabelas.
Analise as alternativas a seguir e marque a que representa um comando de DML:
a.
ADD COLUMN
b.
DELETE
Resposta correta. A alternativa está correta, os comandos típicos de DML são o SELECT, INSERT, UPDATE e DELETE para consultar, inserir, alterar e excluir registros respectivamente, portanto DELETE está nesta categoria de comandos. Todos os outros comandos dizem respeito à criação de algo na estrutura do banco de dados, logo são comandos de DDL.
c.
DROP INDEX
d.
CREATE VIEW
e.
ALTER TABLE
Feedback
A resposta correta é: b - DELETE
Questão 4
Correto
Atingiu 1,00 de 1,00
Marcar questão
Texto da questão
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 :
a.
Structured Query Language (SQL)
b.
Álgebra Relacional.
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.
c.
Cálculo Diferencial
d.
Lógica Proposicional.
e.
Data manipulation language (DML)
Feedback
A resposta correta é: b - Álgebra Relacional.
Questão 5
Correto
Atingiu 1,00 de 1,00
Marcar questão
Texto da questão
Em um sistema, existem diversas demandas por informação que são traduzidas em comandos de SELECT com a especificação das colunas, das tabelas onde recuperar os dados e com os filtros através de um conjunto variado de operadores e combinadores lógicos.
Em um sistema de gestão de cursos de uma instituição de ensino superior, uma breve parte do modelo apresenta a definição exposta a seguir. O campo carga horária indica quantas horas a disciplina tem e o campo obrigatória indica se a disciplina é obrigatória (‘S’) de sim ou opcional com  (‘N’) de não.
 
DISCIPLINA         (COD_DISCIPLINA,           DCR_DISCIPLINA,
CARGA_HORARIA,           OBRIGATORIA, 
COD_CURSO (FK))
CURSO  (COD_CURSO,   DCR_CURSO)
 
A instituição está fazendo um levantamento para enxugar alguns cursos e daí está pesquisando por disciplinas que são opcionais ou que possuam carga horária inferior a 40 horas.
A sentença que melhor reflete esta consulta é:
a.
SELECT   DISCIPLINA        FROM DISCIPLINA
WHERE CARGA_HORARIA < 40   AND       OBRIGATORIA = ‘N’
b.
SELECT   DCR_DISCIPLINA        FROM DISCIPLINA 
WHERE CARGA_HORARIA < 40   OR          OBRIGATORIA = ‘N’
Resposta correta. A alternativa está correta, pois a cláusula usa o operador OR e com os valores certos, de forma que serão retornadas as linhas com CARGA_HORARIA menor que 40 e com obrigatória = ‘N’ (isto é, opcionais). Nos campos, basta vir a descrição da disciplina; para efeito de levantamento, está coerente, a ideia é identificar as disciplinas.
c.
SELECT   DISCIPLINA, CARGA_HORARIA, OBRIGATORIA    FROM DISCIPLINA
WHERE CARGA_HORARIA > 40   AND       OBRIGATORIA = ‘S’   
d.
SELECT                  *             FROM DISCIPLINA
WHERE CARGA_HORARIA < 40   OR          OBRIGATORIA = ‘S’
e.
SELECT                  *             FROM DISCIPLINA
WHERE CARGA_HORARIA < 40   AND       OBRIGATORIA = ‘S’
Feedback
A resposta correta é: SELECT   DCR_DISCIPLINA        FROM DISCIPLINA 
WHERE CARGA_HORARIA< 40   OR          OBRIGATORIA = ‘N’
Questão 6
Correto
Atingiu 1,00 de 1,00
Marcar questão
Texto da questão
O Sistema de Gerenciamento de Banco de Dados relacionais (SGBD), desde a sua criação em 1970, tem tido forte sucesso na Tecnologia de Informação. Conforme Elmasri e Navathe (2011), o sucesso destes SGBDs deve-se a uma linguagem que oferece uma interface de linguagem declarativa de nível mais alto na qual o usuário apenas especifica qual deve ser o resultado esperado, deixando a otimização e as decisões sobre como executar a consulta para o SGBD.
 
ELMASRI, R.; NAVATHE, S. Sistemas de banco de dados. São Paulo: Pearson Addison Wesley, 2011.
 
A linguagem a que se refere os comentários de Elmasri e Navathe (2011) é a:
a.
DDL
b.
DML
c.
XML
d.
SQL
Resposta correta. A alternativa está correta, pois, de fato, o SQL é a linguagem bastante empregada em SGBDs e usada para expressar e declarar o que se deseja, deixando para o SGBD a tarefa de processamento. Isso torna seu uso bastante prático.
e.
DCL
Feedback
A resposta correta é: SQL
Questão 7
Correto
Atingiu 1,00 de 1,00
Marcar questão
Texto da questão
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:
a.
V, V, V, V.
b.
F, V, F, F.
c.
F, F, V, F.
d.
F, V, V, F.
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.
e.
V, V, F, V.
Feedback
A resposta correta é: F, V, V, F.
Questão 8
Correto
Atingiu 1,00 de 1,00
Marcar questão
Texto da questão
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ção dos registros. O comando para esta criação da tabela é:
a.
CREATE TABLE BAIRRO (           COD_BAIRRO INTEGER   NOT NULL,
                                                               DCR_BAIRRO VARCHAR(50)  NOT NULL,
                                                                COD_CIDADE INTEGER   NOT NULL);
b.
CREATE TABLE BAIRRO (            COD_BAIRRO INTEGER   NOT NULL,
                                                               DCR_BAIRRO VARCHAR(50)  NOT NULL,
                COD_CIDADE INTEGER   NOT NULL,
                                                               FOREING KEY (COD_BAIRRO)
REFERENCES CIDADE (COD_CIDADE ) );
c.
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_BAIRRO)
REFERENCES CIDADE (COD_CIDADE) ); 
d.
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. 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.
e.
CREATE TABLE BAIRRO (           COD_BAIRRO INTEGER   NOT NULL,
                                                               DCR_BAIRRO VARCHAR(50)  NOT NULL,
                COD_CIDADE INTEGER   NOT NULL,
                                                               PRIMARY KEY (COD_BAIRRO) );
Feedback
A 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) );
Questão 9
Correto
Atingiu 1,00 de 1,00
Marcar questão
Texto da questão
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ídosa 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:
a.
V, V, V, F.
b.
F, V, F, V.
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.
c.
F, F, V, F.
d.
F, F, F, F.
e.
V, V, F, V.
Feedback
A resposta correta é: F, V, F, V.
Questão 10
Correto
Atingiu 1,00 de 1,00
Marcar questão
Texto da questão
A álgebra relacional fornece um conjunto de operadores que podem ser aplicados sobre relações e propõe uma sintaxe para combinar operadores e ainda processar condições lógicas com operações como E e OU lógicos. Para extrair um resultado a partir de uma relação, foi necessário formular uma sentença em álgebra linear. O cenário é o de uma locadora de automóveis, e a relação CARRO está apresentada a seguir com alguns valores:
 
	Codigo
	Fabricante
	Modelo
	Ano
	1
	Ford
	Fiesta
	2016
	2
	Fiat
	Uno
	2018
	3
	Renault
	Clio
	2014
Fonte: Elaborado pelo autor.
 
A consulta a ser feita é para saber, na lista de carros da locadora, qual o código e o modelo de carros com ano superior ou igual a 2015 e da marca Ford. Qual sentença atende a esta consulta em álgebra relacional?
.
a.
π  ano >= 2015  ̌ Fabricante=Ford ( σ Codigo, Modelo ( CARRO ) )
b.
π Codigo, Modelo ( σ  ano >= 2015  ̌   Fabricante=Ford ( CARRO ) ).
c.
σ  ano >= 2015  ̌   Fabricante=Ford ( π Codigo, Modelo ( CARRO ) ).
d.
σ Codigo, Modelo ( π  ano >= 2015 ^ Fabricante=Ford ( CARRO ) )
e.
π Codigo, Modelo ( σ  ano >= 2015 ^ Fabricante=Ford ( CARRO ) )
Resposta correta. A alternativa está correta, pois está aplicando primeiro (na parte mais interna junto à relação CARRO) a operação de seleção (σ) com o operador lógico E (^) e combinando as duas condições para ano e fabricante. Depois, na parte mais externa, ela aplica a projeção (π)  escolhendo apenas as colunas Codigo e Modelo da relação.
Feedback
A resposta correta é: d - π Codigo, Modelo ( σ  ano >= 2015 ^ Fabricante=Ford ( CARRO ) )

Continue navegando