Prévia do material em texto
Curso GRA0244 BANCO DE DADOS CCOMP - 202010.ead-4717.01 Teste ATIVIDADE 3 (A3) Iniciado 09/03/20 11:43 Enviado 09/03/20 11:52 Status Completada Resultado da tentativa 9 em 10 pontos Tempo decorrido 8 minutos Resultados exibidos Respostas enviadas, Respostas corretas, Comentários · Pergunta 1 1 em 1 pontos 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? . Resposta Selecionada: π Codigo, Modelo ( σ ano >= 2015 ^ Fabricante=Ford ( CARRO ) ) Resposta Correta: π Codigo, Modelo ( σ ano >= 2015 ^ Fabricante=Ford ( CARRO ) ) Feedback da resposta: 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. · Pergunta 2 1 em 1 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 3 1 em 1 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 4 1 em 1 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 é umcomando de DDL. O certo seria usar o comando DELETE para excluir linhas. · Pergunta 5 1 em 1 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 6 0 em 1 pontos O comando SELECT apresenta uma grande variedade de possibilidades ao ser usado para consultas a dados e isso se deve a diversos operadores e cláusulas que podem ser combinadas para expressar a necessidade de informação. Um destes operadores é o like que permite avaliar padrões de campos com caracteres, e existe o operador between usado para campos valores. Em um sistema de rede social, o cadastro de seus usuários apresenta os registros mostrados a seguir. Código Nome Data Nasc Sexo Est. Civil 1 Mariana Júlia Pereira 1990-04-03 F 1 2 Ricardo dos Santos 1992-07-20 M 2 3 Renata Silva Souza 1989-08-15 F 4 4 Mário Junior Ferreira 1991-02-05 M 3 5 Júlia do Carmo Venturini 1987-01-10 F 1 6 José de Assis Couto 1991-05-02 M 2 7 Júlia Maria Silva 1990-06-10 F 1 Fonte: Elaborado pelo autor. Nesta tabela de usuários, foi realizada a seguinte consulta: SELECT * FROM USUARIO WHERE Nome like ‘Júlia%’ AND Data_Nasc between ‘1990-01-01’ AND ‘1994-01-01’ Para esta consulta, quais linhas serão retornadas considerando o código para identificar as linhas nas alternativas: Resposta Selecionada: 1, 5 e 7 Resposta Correta: 1 e 7. Feedback da resposta: Sua resposta está incorreta. A alternativa está incorreta, pois apenas a linha 7 satisfaz a sentença com as condições de Data e contendo o nome Júlia. A linha 1 apareceria se a sentença like fosse like ‘%Júlia%’ com porcento no início, daí Júlia poderia estar em qualquer parte do nome. A linha 5 apareceria se a faixa de data fosse mais cedo do que ‘1990-01-01’, antes de 1987-01-10, que é a data no registro. E as linhas 2, 4 e 6 apareceriam se fosse considerada apenas a condição de data (sem a condição de nome Júlia). · Pergunta 7 1 em 1 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 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? 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 8 1 em 1 pontos 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 é: Resposta Selecionada: SELECT DISCIPLINA FROM DISCIPLINA WHERE CARGA_HORARIA < 40 OR OBRIGATORIA = ‘N’ Resposta Correta: SELECT DISCIPLINA FROM DISCIPLINA WHERE CARGA_HORARIA < 40 OR OBRIGATORIA = ‘N’ Feedback da resposta: 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. · Pergunta 9 1 em 1 pontos As atividades rotineiras de um desenvolvedor, ao manipular um banco de dados, envolve escrever consultas ou comandos em SQL e analisar os resultados que o servidor apresenta, por exemplo, ao inserir uma linha com um INSERT, ele depois checa se a linha foi inserida ou, quando realiza uma consulta, ele avalia os dados da consulta. Em uma destas tarefas, um programador obteve a seguinte consulta: Código Fabricante Placa Modelo Ano 1 Ford MQF4236 Fiesta 2016 2 Fiat QFG5534 Uno 2018 3 Renault FES3321 Clio 2014 4 Fiat QQF5298 Idea 2018 5 Renault AAX8943 Sandero 2013 Fonte: Elaborado pelo autor. Qual consulta o programador deve ter digitado na ferramenta do SGBD? Resposta Selecionada: SELECT * FROM CARRO WHERE (ANO <=2015) OR (PLACA LIKE ‘%QF%’) Resposta Correta: SELECT * FROM CARRO WHERE (ANO <=2015) OR (PLACA LIKE ‘%QF%’) Feedback da resposta: Resposta correta. A alternativa está correta, pois a consulta combina os carros com ano inferior a 2015 (ANO <=2015), que são as linhas 3 e 5, e os que possuem ‘QF’ na placa 1, 2 e 4. · Pergunta 10 1 em 1 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ção dos 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.