Questão de Banco de Dados — PostgreSQL — VUNESP 2023
Banco de Dados›PostgreSQL
Código
vu196196
Banca
VUNESP
Órgão
Pref Marília
Ano
2023
Cargo
Ana ( )
O sistema gerenciador de banco de dados PostgreSQL (v. 14) disponibiliza 3 tipos de inteiros, denominados
Atinyint, int e hugeint.
Binteger, tinyint e mediumint.
Csmallint, mediumint e hugeint.
Dsmallint, integer e bigint.
Eminint, mediumint e maxint.
Revelar gabarito e comentário▾
GabaritoD — smallint, integer e bigint.
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”.
Tipos de dados inteiros no PostgreSQL
Gabarito: letra D. O PostgreSQL disponibiliza três tipos de dados inteiros: smallint, integer (também chamado de int) e bigint — exatamente a combinação apresentada na alternativa D. Essa é uma informação documentada na própria documentação oficial do PostgreSQL, que define esses três tipos com tamanhos de armazenamento de 2, 4 e 8 bytes, respectivamente.
Os tipos inteiros são fundamentais em qualquer banco de dados relacional, pois representam números sem casas decimais. No PostgreSQL, a escolha entre eles depende do intervalo de valores que se precisa armazenar e do espaço de armazenamento que se deseja ocupar. O smallint ocupa 2 bytes e armazena valores de -32.768 a +32.767; o integer (ou int) ocupa 4 bytes e armazena valores de -2.147.483.648 a +2.147.483.647; e o bigint ocupa 8 bytes e armazena valores de -9.223.372.036.854.775.808 a +9.223.372.036.854.775.807.
A documentação oficial do PostgreSQL recomenda o integer como a escolha usual para números inteiros, pois oferece o melhor equilíbrio entre faixa de valores, tamanho de armazenamento e desempenho. O smallint é útil quando se tem certeza de que os valores não ultrapassarão o intervalo menor, economizando espaço. Já o bigint deve ser usado quando os valores podem exceder o intervalo suportado pelo integer.
É importante destacar que esses três tipos são os únicos tipos inteiros nativos do PostgreSQL. Não existem tipos como tinyint, mediumint ou hugeint nesse SGBD — esses nomes pertencem a outros bancos de dados, como o MySQL, que possui tinyint, smallint, mediumint, int e bigint. Essa distinção é crucial para responder corretamente a questão, pois a banca explora justamente a confusão entre os tipos de dados de diferentes SGBDs.
A pegadinha desta questão está em reconhecer que os nomes dos tipos inteiros variam entre os SGBDs. Enquanto o MySQL utiliza tinyint e mediumint, o PostgreSQL utiliza apenas smallint, integer e bigint. O candidato que conhece os tipos do MySQL pode ser induzido a marcar uma alternativa que mistura nomes de bancos diferentes, como a alternativa A (tinyint, int e hugeint) ou a C (smallint, mediumint e hugeint).
Guarde essa distinção: no PostgreSQL, os três tipos inteiros são smallint, integer e bigint. É exatamente nessa lista que as alternativas se dividem — as incorretas trazem nomes de outros SGBDs ou inventam tipos que não existem.
Critério
PostgreSQL
MySQL
Tipos inteiros
smallint, integer, bigint
tinyint, smallint, mediumint, int, bigint
Tamanhos
2, 4, 8 bytes
1, 2, 3, 4, 8 bytes
Nomes exclusivos
integer
tinyint, mediumint
Alternativa A — ❌ Incorreta
Apresenta tinyint, int e hugeint. O tipo tinyint existe no MySQL, mas não no PostgreSQL. O tipo hugeint não existe em nenhum SGBD conhecido — é um nome inventado. O PostgreSQL não possui tinyint nem hugeint.
Alternativa B — ❌ Incorreta
Apresenta integer, tinyint e mediumint. Embora integer seja um tipo válido no PostgreSQL, tinyint e mediumint são tipos do MySQL, não do PostgreSQL. A alternativa mistura tipos de bancos diferentes, o que a torna incorreta.
Alternativa C — ❌ Incorreta
Apresenta smallint, mediumint e hugeint. O smallint é um tipo válido no PostgreSQL, mas mediumint é do MySQL e hugeint não existe em nenhum SGBD. A alternativa contém dois tipos que não pertencem ao PostgreSQL.
Alternativa D — ✅ Correta ⟵ GABARITO
Apresenta smallint, integer e bigint — exatamente os três tipos inteiros nativos do PostgreSQL. O smallint ocupa 2 bytes, o integer (ou int) ocupa 4 bytes e o bigint ocupa 8 bytes. Esta é a combinação correta e completa.
Alternativa E — ❌ Incorreta
Apresenta minint, mediumint e maxint. Nenhum desses nomes corresponde a tipos inteiros do PostgreSQL. minint e maxint são nomes inventados, e mediumint é do MySQL. A alternativa é totalmente incorreta.
NÃO CAIA NESSA!
A banca explora a confusão entre os tipos de dados de diferentes SGBDs. O candidato que conhece os tipos do MySQL (tinyint, smallint, mediumint, int, bigint) pode ser induzido a marcar alternativas que misturam nomes de bancos diferentes. No PostgreSQL, a lista é fixa: smallint, integer e bigint. Memorize essa tríade e você não cairá nessa armadilha.
PEGA ESSA DICA!
Para questões sobre tipos de dados, monte uma tabela mental comparando os tipos inteiros dos principais SGBDs. No PostgreSQL: smallint (2 bytes), integer (4 bytes), bigint (8 bytes). No MySQL: tinyint (1 byte), smallint (2 bytes), mediumint (3 bytes), int (4 bytes), bigint (8 bytes). Essa comparação ajuda a identificar rapidamente qual alternativa mistura bancos diferentes.