Questão nº 40
Questão de Tecnologia da Informação · FGV TCE-SP 2023 (nº 40)
Quando referidas, considere as tabelas relacionais TX e TY, criadas e instanciadas com o script SQL a seguir.
create table TY(C int primary key not null, A int) create table TX(A int primary key not null, B int, foreign key (B) references TY(C) on delete cascade ) insert into TY values (1,0) insert into TY(C) values (2) insert into TY(C) values (3) insert into TY values (5,NULL) insert into TY values (6,NULL) insert into TX values (1,2) insert into TX values (2,1) insert into TX values (3,2) insert into TX values (4,2)
Num hipotético índice do tipo BitMap, sobre a coluna B da tabela TX, como descrita anteriormente, o conteúdo seria:
0001
0010
0010
10110010
2 0010
3 0011
4 0100
2 1011
- A0010
- B0010.0001.0010.0010
- C01000010
- D1 0001
- E1 0100 (alternativa correta)
Resposta comentada
Gabarito Alternativa E
Um Bitmap Index (índice de bitmap) é uma estrutura de dados que associa cada valor distinto de uma coluna a um bitmap (sequência de bits). Cada bit no bitmap representa uma linha da tabela; um bit '1' indica que a linha possui aquele valor na coluna indexada, enquanto um '0' indica que não.
Para a coluna B da tabela TX, as linhas e seus valores são (assumindo a ordem das linhas pela chave primária TX.A):
TX.A=1,TX.B=2TX.A=2,TX.B=1TX.A=3,TX.B=2TX.A=4,TX.B=2
Agora, construímos o bitmap para cada valor distinto de B:
-
Para o valor
1emB:- Linha 1 (
TX.B=2):0(não é 1) - Linha 2 (
TX.B=1):1(é 1) - Linha 3 (
TX.B=2):0(não é 1) - Linha 4 (
TX.B=2):0(não é 1) - Bitmap para
1:0100
- Linha 1 (
-
Para o valor
2emB:- Linha 1 (
TX.B=2):1(é 2) - Linha 2 (
TX.B=1):0(não é 2) - Linha 3 (
TX.B=2):1(é 2) - Linha 4 (
TX.B=2):1(é 2) - Bitmap para
2:1011
- Linha 1 (
O conteúdo do índice Bitmap inclui pares como (valor, bitmap).
(A) Incorreta: 0010 não corresponde ao bitmap de nenhum dos valores distintos (1 ou 2) na coluna B da tabela TX.
(B) Incorreta: 0010.0001.0010.0010 é uma sequência de bits que não representa o formato padrão de uma entrada de índice bitmap (valor e seu bitmap).
(C) Incorreta: 01000010 é uma sequência de bits que não corresponde a um bitmap completo para um valor específico, nem à concatenação dos bitmaps calculados (0100 para 1 e 1011 para 2 resultaria em 01001011).
(D) Incorreta: 1 0001 tenta representar o bitmap para o valor 1, mas o bitmap correto para o valor 1 é 0100, não 0001. Armadilha da banca: Esta alternativa apresenta o formato correto (valor e seu bitmap), mas o bitmap está incorreto por um único bit, buscando confundir o candidato que calculou o bitmap de forma ligeiramente errada.
(E) Correta: 1 0100 representa corretamente o par (valor, bitmap) para o valor 1 na coluna B da tabela TX, conforme calculado. O valor 1 aparece apenas na segunda linha da tabela TX (quando ordenada por TX.A), o que corresponde ao bit '1' na segunda posição do bitmap 0100.
Fonte: FGV TCE-SP 2023 Agente da Fiscalização - TI (Caderno Tipo 1). Reproduzida para fins de estudo.