Foram encontradas 24.900 questões.
Analise a seguir as informações relacionadas à não utilização de um SGBD para uma aplicação:
I. Aplicações simples e bem definidas, que não se espera mudanças.
II. Sistemas com capacidade de armazenamento limitado, como por exemplo, os sistemas embarcados.
III. Existência de múltiplos usuários acessando simultaneamente os dados.
IV. Controle rigoroso de restrições de integridade.
Assinale a alternativa CORRETA.
Provas
No que diz respeito à organização de arquivos e a métodos de acesso, julgue o item a seguir.
A principal vantagem do modo sequencial de arquivos em relação ao modo aleatório é permitir acessar qualquer registro rapidamente através do seu número de bloco ou endereço, por meio de uma fila serial que diretamente acessa a informação desejada.
Provas
O Ministério Público de um estado brasileiro está modernizando seus sistemas de TI. A nova arquitetura de software será baseada em microsserviços hospedados na AWS e exigirá diferentes estratégias de comunicação assíncrona entre os componentes. A equipe identificou os seguintes requisitos:
I.
II.
III.
Considerando os serviços da AWS, atendem aos requisitos I, II e III, respectivamente:
Provas
Provas
Provas
Provas
O sistema acadêmico de uma Universidade utiliza MySQL 8 como banco de dados principal. Durante o período de matrícula, o sistema começou a apresentar lentidão severa e, em alguns momentos, indisponibilidade. Em períodos anteriores de matrícula, foi necessário realizar reinicializações manuais diárias no servidor de banco de dados devido a instabilidades e degradação de desempenho.
Durante a análise, a equipe de Tecnologia da Informação identificou que:
a aplicação executa múltiplas consultas sequenciais ao banco dentro da mesma requisição HTTP (padrão N+1).
algumas transações permanecem abertas por vários segundos.
o número de conexões ativas atinge frequentemente o limite configurado (max_connections).
há aumento significativo de locks em tabelas de pedidos e estoque.
Assinale a alternativa que apresenta a abordagem CORRETA para prevenir o problema de travamento e alta contenção no MySQL, bem como otimizar o desempenho do servidor nesse cenário:
Provas
Uma equipe está desenvolvendo um sistema de pedidos, utilizando PostgreSQL. Existe uma tabela pedidos com as colunas:
id
cliente_id
valor_total
status
criado_em
atualizado_em
Durante uma auditoria interna, um analista de banco de dados identificou que o campo atualizado_em nem sempre reflete a última modificação do registro, pois a aplicação depende do backend para atualizar esse campo manualmente. Em alguns casos, desenvolvedores esqueceram de atualizar o timestamp em operações de UPDATE, gerando inconsistência nos relatórios.
A equipe decidiu resolver o problema no nível do banco de dados, garantindo que o campo atualizado_em seja atualizado automaticamente sempre que houver alteração no registro.
Assinale a alternativa que apresenta o comando que garante que o campo atualizado_em seja atualizado automaticamente sempre que um registro da tabela pedidos for modificado:
Provas
Considere a seguinte situação hipotética:
Uma equipe de engenharia DevOps está implementando o processo de implantação automatizada de uma aplicação web como parte de um pipeline de entrega contínua. A aplicação é executada em um ambiente “conteinerizado”, composto por uma stack de serviços formada por um servidor NGINX, responsável pelo atendimento das requisições HTTP, um serviço PHP-FPM, que executa a lógica da aplicação, bem como por um banco de dados MySQL, responsável pela persistência das informações.
A orquestração desses componentes está sendo realizada por meio de um arquivo dockercompose.yml, no qual cada serviço é executado em um contêiner distinto.
Durante testes de inicialização do ambiente, a equipe observou que, em algumas execuções do comando docker compose up, o contêiner da aplicação tenta estabelecer conexão com o banco de dados antes que o serviço MySQL esteja completamente pronto para aceitar conexões, ocasionando falhas temporárias durante o bootstrap da aplicação.
Considere o trecho do arquivo docker-compose.yml utilizado pela equipe:
Fonte: dados do elaborador
version: "3.8"
services:
web:
image: nginx:latest
ports:
- "8080:80"
depends_on:
- app
app:
build: ./php
depends_on:
- db
restart: on-failure
db:
image: mysql:8
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
MYSQL_DATABASE: aplicacao
volumes:
- db_data:/var/lib/mysql
volumes:
db_data:
Considerando o funcionamento do Docker Compose, bem como as boas práticas relacionadas à inicialização de serviços, resiliência de contêineres e gerenciamento seguro de credenciais, analise as afirmativas a seguir.
I. A diretiva depends_on presente no serviço app garante a ordem de inicialização dos contêineres, mas não assegura que o banco de dados esteja completamente pronto para aceitar conexões.
II. A utilização da variável ${MYSQL_ROOT_PASSWORD} no arquivo docker-compose.yml elimina os riscos de exposição de credenciais, sendo considerada equivalente ao uso de Docker Secrets em termos de segurança.
III. A política restart: on-failure definida no serviço app permite que o contêiner seja reiniciado automaticamente caso o processo principal termine com erro, contribuindo para a resiliência da aplicação em cenários de falhas transitórias.
IV. O uso de Docker Secrets é geralmente considerado mais seguro que variáveis de ambiente para armazenamento de credenciais sensíveis, pois os segredos podem ser gerenciados separadamente da configuração da aplicação e não ficam expostos diretamente no ambiente do contêiner.
V. A definição de um healthcheck no serviço db permite verificar periodicamente se o banco MySQL está operacional e possibilita identificar quando o serviço está efetivamente pronto para receber conexões.
Assinale a alternativa CORRETA:
Provas
Considere a seguinte situação hipotética:
Uma universidade utiliza um sistema acadêmico para gerenciar informações de estudantes, dados cadastrais de pessoas e emissão de cartões institucionais. Um analista de dados precisa identificar estudantes ativos que ainda não possuem cartão institucional emitido.
Para isso, foi utilizada a seguinte consulta SQL em um banco de dados MySQL:
SELECT e.registro_academico, p.nome_completo, e.data_ingresso
FROM estudantes e
INNER JOIN pessoas p
ON e.id_pessoa = p.id_pessoa
LEFT JOIN cartoes_acesso ca
ON e.id_pessoa = ca.id_pessoa
WHERE ca.id_cartao IS NULL
AND e.ind_exclusao = 0;
Fonte: dados do elaborador
Considere ainda que o analista avalia o seguinte plano de execução simplificado obtido por meio do comando EXPLAIN:
| table | type | possible_keys | key | rows |
|---|---|---|---|---|
| e | ALL | idx_estudante_pessoa | NULL | 12000 |
| p | eq_ref | PRIMARY | PRIMARY | 1 |
| ca | ref | idx_cartao_pessoa | idx_cartao_pessoa | 3 |
Com base na consulta apresentada, na semântica das operações de junção e em aspectos de otimização de consultas SQL, analise as afirmações a seguir.
I. A consulta apresentada pode ser reescrita de forma logicamente equivalente, utilizando uma subconsulta com NOT EXISTS para identificar estudantes que não possuem registros correspondentes na tabela cartoes_acesso.
II. No plano de execução apresentado, o tipo ALL, na tabela estudantes, indica que o otimizador está realizando uma varredura completa da tabela, o que pode ocorrer quando não há índice adequado para a condição de busca utilizada.
III. Caso a condição ca.id_cartao IS NULL fosse movida da cláusula WHERE para a cláusula 0N do LEFT JOIN, o resultado da consulta permaneceria o mesmo.
IV. A consulta utiliza um padrão conhecido como anti-join, frequentemente empregado para localizar, em uma tabela, registros que não possuem correspondência em outra tabela.
Assinale a alternativa CORRETA.
Provas
Caderno Container