Baixe o app para aproveitar ainda mais
Prévia do material em texto
● Pergunta 1 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 Selecion ada: 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 respo sta: 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 2 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; SELECTNOTA1 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 respo sta: 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 3 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 AND OBRIGATORIA = ‘N’ Resposta Correta: SELECT DCR_DISCIPLINA FROM DISCIPLINA WHERE CARGA_HORARIA < 40 OR OBRIGATORIA = ‘N’ Feedback da respo sta: Sua resposta está incorreta. A alternativa está incorreta, pois a cláusula de filtro deveria ser CARGA_HORARIA < 40 OR OBRIGATORIA = ‘N’. Ou foi usado um filtro com ‘CARGA_HORARIA > 40’, e não menor. Ou foi usado o operador AND em vez de OR, ou ainda, foi usada a condição OBRIGATORIA = ‘S’ que significaria obrigatória, isto é, não opcional. ILUSTRAÇÃO, redesenhar ● Pergunta 4 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 possu 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 Seleciona da: 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 respo sta: 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 5 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: Resposta Selecionada: ALTER TABLE Resposta Correta: DELETE Feedback da respo sta: Sua resposta está incorreta. A alternativa está incorreta, visto que o comando DROP serve para excluir componentes do banco, e não para excluir registros, por isso o DROP INDEX é uma opção de DDL. O CREATE VIEW também cria um componente na estrutura do banco, uma view, portanto é DDL. A ADD COLUMN é uma cláusula que pode ser usada no ALTER TABLE ao definir uma estrutura de uma tabela, portanto um comando de DDL. O ALTER TABLE muda a estrutura de uma tabela, e não os seus registros, comando de DDL também. ● Pergunta 6 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 respo sta: 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 Em um banco de dados, as necessidades de informação do usuário podem ser traduzidasem 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 Selecionad a: SELECT NOME, TELEFONE FROM PACIENTE WHERE SEXO = ‘F’ AND (BAIRRO = ‘Barra’ AND BAIRRO = ‘Graça’) Resposta Correta: SELECT NOME, TELEFONE FROM PACIENTE WHERE SEXO = ‘F’ OR (BAIRRO = ‘Barra’ OR BAIRRO = ‘Graça’) Feedback da respo sta: 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 8 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 respo sta: 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 9 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. Civi 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. Feedbac k da resp osta: 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 10 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 Selecion ada: 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 respo sta: 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.
Compartilhar