Tecnologista Pleno I - Especificação, Projeto e Arquitetura de Sistemas de Software para o Processamento e Distribuição de Imagens de Sensoriamento Remoto
Considere que o objetivo do código a seguir é criar uma base de dados no SGBD PostgreSQL com extensão espacial PostGIS.Em relação ao código supracitado, analise as afirmativas a seguir e assinale (V) para a verdadeira e (F) para a falsa.( ) Da forma como foi declarado, id_waypoint atende os critérios necessários para ser chave primária.( ) O bloco de código compreendido entre as linhas 7 e 10 adiciona a parte espacial à base de dados pela criação de um atributo geométrico do tipo ponto.( ) A função ST_SetSRID poderia ser substituída pela função ST_Transform, tendo em vista que a função ST_SetSRID transformará o sistema de coordenadas da camada, pois a geometria foi criada sem definição de sistema na linha 8.As afirmativas são, respectivamente,
AV – V – V.
BV – F – F.
CV – V – F.
DF – V – V.
EF – V – F.
Revelar gabarito e comentário▾
GabaritoE — F – V – F.
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”.
PostgreSQL e PostGIS: chave primária, geometria e SRID
Gabarito: letra E (F – V – F). A primeira afirmativa é falsa porque a coluna id_waypoint foi declarada apenas como SERIAL, sem a restrição PRIMARY KEY — o que a torna uma chave candidata, mas não uma chave primária de fato. A segunda é verdadeira: o bloco entre as linhas 7 e 10 cria uma coluna do tipo geometry(Point, 4326), adicionando a parte espacial à tabela. A terceira é falsa porque ST_SetSRID apenas atribui um SRID à geometria, sem transformar as coordenadas; a transformação de fato seria feita por ST_Transform.
A questão exige conhecer três conceitos do PostgreSQL/PostGIS: o que define uma chave primária, como se cria um atributo geométrico e a diferença entre as funções ST_SetSRID e ST_Transform. Vamos a cada um.
1. Chave primária no PostgreSQL
Uma chave primária é uma restrição que garante a unicidade e a não nulidade dos valores da coluna (ou conjunto de colunas). No PostgreSQL, ela é declarada explicitamente com PRIMARY KEY na definição da coluna ou da tabela. O tipo SERIAL (ou BIGSERIAL) cria uma sequência automática, mas não impõe, por si só, a restrição de chave primária. Ou seja, uma coluna SERIAL pode conter valores duplicados ou nulos se não houver a restrição. Para que id_waypoint fosse chave primária, o código deveria ter algo como id_waypoint SERIAL PRIMARY KEY ou uma constraint separada (CONSTRAINT pk_waypoint PRIMARY KEY (id_waypoint)).
2. Atributo geométrico no PostGIS
O PostGIS é a extensão espacial do PostgreSQL, que adiciona tipos de dados geométricos e funções para manipulação de dados georreferenciados. Para criar um atributo geométrico, usa-se o tipo geometry (ou geography), que pode ser definido com um subtipo (como Point, LineString, Polygon) e um SRID (Sistema de Referência Espacial). No código, a linha 8 cria a coluna geom com o tipo geometry(Point, 4326), onde 4326 é o SRID do sistema WGS 84 (usado pelo GPS). O bloco entre as linhas 7 e 10, portanto, adiciona a parte espacial à tabela, criando um atributo geométrico do tipo ponto.
3. ST_SetSRID vs ST_Transform
A função ST_SetSRIDatribui um SRID a uma geometria que não possui definição de sistema de coordenadas. Ela não altera as coordenadas em si — apenas informa ao banco em qual sistema a geometria está. Já a função ST_Transformconverte as coordenadas de um SRID para outro, ou seja, transforma efetivamente os valores das coordenadas. No código, a geometria foi criada sem SRID na linha 8, e a linha 9 usa ST_SetSRID para atribuir o SRID 4326. Se a intenção fosse transformar as coordenadas de um sistema para outro, seria necessário usar ST_Transform. Portanto, a afirmativa III é falsa: ST_SetSRID não transforma o sistema de coordenadas, apenas o define.
Pegadinha da banca: a banca explora a confusão entre ST_SetSRID e ST_Transform. Muitos candidatos acham que ST_SetSRID transforma as coordenadas, mas ela apenas atribui o SRID. A transformação real é feita por ST_Transform. Fique atento a essa distinção, que é clássica em questões de PostGIS.
Critério
id_waypoint (SERIAL)
Coluna geom (geometry(Point, 4326))
Papel no código
Identificador numérico automático da tabela
Atributo espacial que armazena o ponto geográfico
Restrição de unicidade/nulidade
Nenhuma imposta pelo tipo SERIAL (pode ter duplicados/nulos)
Não se aplica (tipo espacial, sem restrição de unicidade)
Exigência para ser chave primária
Requer PRIMARY KEY explícita (na coluna ou via constraint)
Converteria coordenadas de um SRID para outro (transformação real)
Alternativa A — ❌ Incorreta
A alternativa A afirma que a sequência é V – V – V. Isso está errado porque a primeira afirmativa é falsa: id_waypoint não é chave primária, pois foi declarada apenas como SERIAL, sem a restrição PRIMARY KEY. A terceira afirmativa também é falsa, pois ST_SetSRID não transforma coordenadas. Portanto, a sequência correta é F – V – F, não V – V – V.
Alternativa B — ❌ Incorreta
A alternativa B afirma que a sequência é V – F – F. Isso está errado porque a segunda afirmativa é verdadeira: o bloco entre as linhas 7 e 10 cria um atributo geométrico do tipo ponto. A primeira afirmativa é falsa, e a terceira também é falsa, mas a segunda é verdadeira, então a sequência correta é F – V – F, não V – F – F.
Alternativa C — ❌ Incorreta
A alternativa C afirma que a sequência é V – V – F. Isso está errado porque a primeira afirmativa é falsa: id_waypoint não é chave primária, pois foi declarada apenas como SERIAL, sem a restrição PRIMARY KEY. A segunda afirmativa é verdadeira, e a terceira é falsa, mas a primeira é falsa, então a sequência correta é F – V – F, não V – V – F.
Alternativa D — ❌ Incorreta
A alternativa D afirma que a sequência é F – V – V. Isso está errado porque a terceira afirmativa é falsa: ST_SetSRID não transforma o sistema de coordenadas, apenas atribui o SRID. A primeira afirmativa é falsa, e a segunda é verdadeira, mas a terceira é falsa, então a sequência correta é F – V – F, não F – V – V.
Alternativa E — ✅ Correta ⟵ GABARITO
A alternativa E afirma que a sequência é F – V – F. Isso está correto: a primeira afirmativa é falsa (id_waypoint não é chave primária, pois foi declarada apenas como SERIAL, sem a restrição PRIMARY KEY), a segunda é verdadeira (o bloco entre as linhas 7 e 10 cria um atributo geométrico do tipo ponto), e a terceira é falsa (ST_SetSRID não transforma o sistema de coordenadas, apenas atribui o SRID). Portanto, a sequência correta é F – V – F.
PEGA ESSA DICA!
Para questões de PostGIS, lembre-se: ST_SetSRIDdefine o SRID (não transforma), ST_Transformconverte o SRID (transforma as coordenadas). E SERIAL não é chave primária — é apenas um tipo que gera sequência automática. A chave primária exige a restrição PRIMARY KEY.