Prévia do material em texto
· Pergunta 1 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 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 A álgebra relacional é uma linguagem formal aprendida ao se estudar banco de dados, pois as suas operações permitem entender como as manipulações de linhas e colunas podem ser realizadas em uma tabela. O seu conjunto de operações apresentam uma sintaxe e um objetivo, que é atingido ao ser aplicado em uma relação. Analise as operações presentes na álgebra relacional e associe com seus objetivos ou funcionalidades ao ser aplicada a uma relação. I) Projeção (π). II) Seleção (σ). III) Produto Cartesiano ( x ). IV) Interseção. Realize, agora, a associação com os objetivos das operações. ( ) Permite selecionar as linhas ou tuplas em uma relação. ( ) Combina duas relações, cada tupla sendo combinada com tuplas da outra relação. ( ) Gera relação em que cada tupla deve existir em duas outras relações usadas na operação. ( ) Permite selecionar as colunas em uma relação. A partir das relações feitas anteriormente, assinale a alternativa que apresenta a sequência correta: Resposta Selecionada: II, III, IV, I. Resposta Correta: II, III, IV, I. Feedback da resposta: Resposta correta. A alternativa está correta com a sequência II, III, IV, I. Seguindo essa sequência, a Seleção (sigma) (item II) é a operação que filtra as linhas em uma relação. O produto cartesiano (Item III), de fato, faz um processo combinatório com cada nova linha da relação, combinando um item de uma relação com um item de outra relação. O Item IV, Interseção, é a mesma operação conhecida de teoria de conjuntos, que gera um novo conjunto em um que o elemento é considerado apenas se ele pertencer aos outros dois conjuntos. E a projeção (item I), de fato, é a operação que seleciona quais colunas farão parte da relação resultante. · Pergunta 4 0 em 0,25 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: Sua resposta está incorreta. A alternativa está incorreta, pois o correto seria usar primeiro uma projeção (π) com os nomes do campo, e não a parte mais interna, próximo à relação, a operação sigma (σ) com as condições de ano > 2015 e Fabricante Ford combinada com o E lógico (^). Algo diferente disso, ou as operações de projeção (π) e de seleção (σ) estão invertidas, ou o operador usado na sentença lógica é o OU ( ̌ ), que é incorreto utilizar; deve-se usar o operador E (^). · 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 é aplicarum 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 6 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 7 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 8 0,25 em 0,25 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 0,25 em 0,25 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 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.