Questão nº 73
Questão de Tecnologia da Informação · FGV TRF1 2024 (nº 73)
Pedro trabalha com um banco de dados SQL Server, no Windows, que armazena dados pessoais contendo acentos, letras maiúsculas e minúsculas nos nomes. Entretanto, Pedro notou que, em certas consultas à ordenação dos nomes, a ordem final é diferente daquela que é produzida em operações geradas no âmbito da programação. Paradoxalmente, nos relatórios preparados a partir de consultas SQL e funções codificadas na linguagem de programação adotada, os nomes aparecem perfeitamente grafados.
Para corrigir essas discrepâncias, uma linha de ação recomendada nesses casos é conferir:
- Aa collation atualmente estabelecida para as tabelas do banco de dados; (alternativa correta)
- Ba string de conexão do banco de dados;
- Cas eventuais restrições da linguagem de programação na manipulação dos dados;
- Do idioma utilizado no gerenciamento do banco de dados;
- Eo processo de carga dos dados.
Resposta comentada
Gabarito Alternativa A
A collation é um conjunto de regras que define como o SQL Server (e outros bancos de dados) trata caracteres, incluindo como eles são ordenados, comparados (se são iguais ou diferentes, por exemplo, 'a' e 'A'), e como acentos são considerados.
(A) Correta: A collation é o que determina as regras de ordenação e comparação de strings (textos) em um banco de dados SQL Server, incluindo a sensibilidade a acentos (accent sensitivity) e a maiúsculas/minúsculas (case sensitivity). Se a collation do banco de dados ou das colunas não estiver configurada para tratar acentos e maiúsculas/minúsculas da mesma forma que a lógica de programação espera, haverá discrepâncias na ordenação.
(B) Incorreta: A string de conexão define como a aplicação se conecta ao banco de dados e pode influenciar o charset da comunicação, mas não as regras internas de ordenação e comparação de dados já armazenados no SQL Server.
(C) Incorreta: Embora a linguagem de programação tenha suas próprias regras de ordenação, o problema descreve que a ordem na consulta SQL é diferente. A solução para alinhar o comportamento é ajustar o banco de dados (via collation) para que ele ordene os dados da maneira esperada, e não culpar as "restrições" da linguagem de programação. Esta é a alternativa mais tentadora, pois o problema compara a ordenação do SQL com a da programação, mas a questão é sobre o comportamento do SQL.
(D) Incorreta: O idioma utilizado no gerenciamento do banco de dados afeta mensagens de erro, formatos de data e hora, etc., mas não as regras específicas de ordenação e comparação de caracteres, que são definidas pela collation.
(E) Incorreta: O processo de carga dos dados estaria relacionado a problemas de codificação (caracteres "quebrados" ou ilegíveis), o que não é o caso, pois os nomes "aparecem perfeitamente grafados". O problema é de ordenação, não de representação dos caracteres.
Fonte: FGV TRF1 2024 Analista Judiciário - Análise de Dados (Caderno Tipo 1). Reproduzida para fins de estudo.