Prévia do material em texto
[PUBLICO] ATIVIDADE 3 (A3) PERGUNTA 1 1. 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: V, V, V, F. F, F, F, F. F, F, V, F. F, V, F, V. V, V, F, V. 1 pontos PERGUNTA 2 1. 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: [PUBLICO] 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á: 5,0 6,0 7,0 8,0 9,0 1 pontos PERGUNTA 3 1. 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 é: SELECT * FROM DISCIPLINA WHERE CARGA_HORARIA < 40 AND OBRIGATORIA = ‘S’ SELECT * FROM DISCIPLINA WHERE CARGA_HORARIA < 40 OR OBRIGATORIA = ‘S’ SELECT DISCIPLINA FROM DISCIPLINA WHERE CARGA_HORARIA < 40 OR OBRIGATORIA = ‘N’ SELECT DISCIPLINA FROM DISCIPLINA WHERE CARGA_HORARIA < 40 AND OBRIGATORIA = ‘N’ SELECT DISCIPLINA, CARGA_HORARIA, OBRIGATORIA FROM DISCIPLINA WHERE CARGA_HORARIA > 40 AND OBRIGATORIA = ‘S’ 1 pontos PERGUNTA 4 [PUBLICO] 1. Um dos comandos mais versáteis para o uso com banco de dados é o SELECT. Ele permite recuperar os registros de tabelas; sua sintaxe envolve a especificação das tabelas, quais colunas recuperar e os filtros que podem envolver operadores de comparação (>, <, =,...), outros como AND, OR, NOT e ainda existe o like e between. Para cada um dos operadores a seguir associe com sua funcionalidade em um comando SELECT: I. like II. between III. and IV. <> Associe os operadores com as funções dele em um comando de SQL: ( ) Permite combinar duas condições via uma operação lógica. ( ) Permite avaliar se um valor está entre dois limites. ( ) Permite avaliar se um campo de caracteres tem um padrão, contém alguma palavra. ( ) Permite avaliar se dois valores são diferentes entre si. Assinale a alternativa que apresenta a sequência correta: III, II, I, IV II, I, IV, III I, IV, III, II III, I, II, IV III, IV, I, II 1 pontos PERGUNTA 5 1. A álgebra relacional prevê um conjunto de operações para manipular as tuplas de uma relação, por exemplo para selecionar linhas ou colunas, ou ainda combinando relações de diversas formas, e sua escrita segue um formalismo matemático semelhante às fórmulas comumente encontradas nesta área. Considerando um determinado cenário de locações de imóveis, a relação “IMOVEL” apresenta os seguintes atributos. IMOVEL( CODIGO, PROPRIETARIO, NUM_QUARTOS, NUM_BANHEIROS, GARAGEM) A operação em Álgebra Relacional para selecionar as linhas com imóveis com até três quartos é: π num_quartos<3 ( IMOVEL ) σ num_quartos<=3 (IMOVEL) π num_quartos<=3 (IMOVEL) σ num_quartos<3 (IMOVEL) π num_quartos (IMOVEL (<=3)) 1 pontos [PUBLICO] PERGUNTA 6 1. 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 : Structured Query Language (SQL) Álgebra Relacional. Lógica Proposicional. Data manipulation language (DML) Cálculo Diferencial 1 pontos PERGUNTA 7 1. 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 é SELECT NOME, TELEFONE FROM PACIENTE WHERE SEXO = ‘F’ OR (BAIRRO = ‘Barra’ OR BAIRRO = ‘Graça’) SELECT NOME, TELEFONE FROM PACIENTE WHERE SEXO = ‘F’ AND (BAIRRO = ‘Barra’ OR BAIRRO = ‘Graça’) SELECTNOME, TELEFONE FROM PACIENTE WHERE SEXO = ‘F’ OR (BAIRRO = ‘Barra’ AND BAIRRO = ‘Graça’) SELECT NOME FROM PACIENTE WHERE SEXO = ‘F’ NOT (BAIRRO = ‘Barra’ AND BAIRRO = ‘Graça’) SELECT NOME, TELEFONE FROM PACIENTE WHERE SEXO = ‘F’ AND (BAIRRO = ‘Barra’ AND BAIRRO = ‘Graça’) 1 pontos PERGUNTA 8 [PUBLICO] 1. 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? 1 2 3. 4 5 1 pontos PERGUNTA 9 1. Após a etapa de modelagem, é necessária a criação dos elementos que vão acomodar os dados e suas restrições; é a etapa em que as tabelas são criadas junto com chave primária, chave estrangeira e outros elementos que estruturam um banco de dados. A DDL (Data Definition Language) é uma parte da SQL responsável por comandos com esta finalidade. A respeito de alguns comandos e termos empregados na execução de comandos de DDL, analise as sentenças a seguir e assinale (V) para verdadeiro e (F) para falso. I. ( ) A palavra CONSTRAINT pode ser empregada na definição de chaves estrangeiras e primárias. II ( ) DROP TABLE é o comando usado para excluir uma tabela no banco de dados. III. ( ) ADD COLUMN é parte de um comando e é usado em geral com comandos de ALTER TABLE. IV. ( ) NUMERIC é uma palavra usada na definição de campos que aceitam números, [PUBLICO] em geral, com decimais. Conforme as associações realizadas assinale a alternativa correta: F, F, V, V V, V, V, V V, V, F, F V, F, V, F F, V, F, V 1 pontos PERGUNTA 10 1. 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? SELECT * FROM CARRO WHERE (ANO >=2014) SELECT * FROM CARRO WHERE (ANO <=2015) OR (PLACA LIKE ‘%QF%’) SELECT * FROM CARRO WHERE (ANO >=2015) AND (PLACA LIKE ‘%QF%’) SELECT * FROM CARRO WHERE (PLACA LIKE ‘%QF%’) SELECT * FROM CARRO WHERE (ANO <=2015) AND (PLACA LIKE ‘%QF%’)