Questão de Banco de Dados — Modelo relacional — FGV 2023
Banco de Dados›Modelo relacional
Código
fg063597
Banca
FGV
Órgão
DPE-RS
Ano
2023
Nível
Superior
Cargo
Analista - Área de Apoio Especializado - Tecnologia da Informação - Banco de Dados
Sobre o uso do tipo de dados varchar(MAX) na criação de uma tabela relacional, analise as afirmativas a seguir.I. Define colunas de caracteres com tamanho fixo, de acordo com o parâmetro MAX estabelecido por ocasião da instalação do SQL Server.II. Colunas assim definidas podem ser usadas na chave primária, mas não podem ser especificadas numa chave estrangeira.III. Colunas assim definidas são armazenadas juntamente com as demais colunas da tabela.Sobre essas afirmativas, é correto afirmar que:
Anenhuma é verdadeira;
Bsomente I é verdadeira;
Csomente II é verdadeira;
Dsomente III é verdadeira;
Etodas são verdadeiras.
Revelar gabarito e comentário▾
GabaritoA — nenhuma é verdadeira;
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Tipo de dados varchar(MAX) no SQL Server
Gabarito: letra A (nenhuma é verdadeira). Todas as três afirmativas sobre o tipo varchar(MAX) estão incorretas: (I) varchar(MAX) é de tamanho variável, não fixo; (II) não pode ser usado nem em chave primária nem em chave estrangeira; (III) colunas large-value podem ser armazenadas fora da linha (off-row), não necessariamente junto com as demais colunas.
A banca testa o conhecimento sobre as características do tipo varchar(MAX) no SQL Server, que é um tipo de dados de comprimento variável capaz de armazenar até 2^31-1 caracteres, mas com restrições importantes em relação a chaves e armazenamento.
Afirmativa I — ❌ Falsa
varchar(MAX) não define colunas com tamanho fixo; ele é um tipo de comprimento variável, assim como varchar(n), mas com capacidade máxima de até 2 gigabytes (2^31-1 bytes). O parâmetro MAX não é estabelecido na instalação do SQL Server; é uma palavra-chave que indica o limite máximo. Diferentemente de char(n), que tem tamanho fixo e preenche com espaços, varchar(MAX) ajusta o armazenamento ao conteúdo real.
Afirmativa II — ❌ Falsa
No SQL Server, colunas do tipo varchar(MAX) não podem ser usadas nem como chave primária nem como chave estrangeira. A documentação do SQL Server (e as regras de implementação) proíbem tipos large-value (varchar(max), nvarchar(max), varbinary(max)) em colunas de chave, pois excedem o limite de tamanho de 900 bytes para chaves indexadas (em índices clusterizados ou não clusterizados). A afirmativa erra ao dizer que "podem ser usadas na chave primária".
Afirmativa III — ❌ Falsa
Colunas varchar(MAX) não são necessariamente armazenadas juntamente com as demais colunas da tabela. Quando o valor armazenado é pequeno (até 8.000 bytes), o SQL Server pode armazená-lo inline na linha da tabela. Porém, para valores maiores, os dados são movidos para unidades de alocação separadas (LOB_DATA), e a linha original contém apenas um ponteiro de 16 bytes. Portanto, a afirmativa de que são armazenadas "juntamente com as demais colunas" é falsa.
NÃO CAIA NESSA!
A banca explora a confusão entre tipos de tamanho fixo (char) e variável (varchar), e também entre as restrições de uso de large-value types em chaves. Lembre-se: varchar(MAX) não é permitido em chaves primárias/estrangeiras e seu armazenamento pode ser off-row.
Gabarito: letra A — nenhuma afirmativa é verdadeira.