É possível associar índices aos campos que são utilizados freqüentemente para efetuar as pesquisas e ordenações. Por exemplo, é possível indexar um campo que armazene os sobrenomes, empresas, ou nomes de produtos se você planeja efetuar pesquisas de registros particulares ou ordenar os registros com ajuda destes campos. Também é possível utilizar estas propriedades para os campos que estabelecem relações entre as tabelas. Para maiores informações, consulte a seção Criar e modificar Relações.
Quando um índice é associado a um campo, 4D cria uma tabela de índices para o campo. Esta tabela permite a 4D realizar rapidamente pesquisas e ordenações no campo. Quando se realiza pesquisas ou ordenações em um campo não indexado, 4D explora seqüencialmente os dados e examina cada registro. A indexação permite a 4D evitar buscar em todos os registros.
É possível indexar os campos de tipo Alfa, Texto, Data, Hora, Booleano, Inteiro, Inteiro longo, Inteiro 64 bits, Real, Flotante e Imagem . Quando se adiciona e exclui registros, 4D atualiza automaticamente sua tabela de índices. Se você criar um índice para um campo que já existe, 4D indexa automaticamente os dados existentes. É possível definir tantos campos indexados quanto desejar. Os índices também são recreados durante operações específicas como a conversão de bases antigas ou a compactação de dados.
Cada tabela de índice pode conter até:
128 bilhões de chaves para índices Alfa, Texto e Float;
256 bilhões de chaves para outros tipos de índice (dados escalares).
Não indexe todos os campos. Um índice aumenta o tamanho do banco, utilizando mais espaço em disco. Utilizar muitos índices também aumenta o tempo necessário para salvar um registro já que 4D atualiza as tabelas de índices com cada validação de registros.
Os campos indexados são exibidos em caracteres em negrito no editor de estrutura.
4D propõe diferentes tipos de índices. A escolha de um tipo de índice é efetuada em função do resultado esperado e o tipo de dado presente no campo. A escolha de um tipo de índice é efetuada em função do resultado esperado e do tipo de dado presente no campo. Existem três tipos principais de índices:
Índices padrões: este índice mono-campo permite acelerar as operações habituais do banco de dados (pesquisa e ordenações). 4D lhe permite escolher a arquitetura interna deste tipo de índice: Árvore-B ou Árvore-B agrupada.
Índices compostos: este índice armazena valores combinados de dois ou mais campos que com freqüência se buscam juntos, por exemplo Sobrenome+Nome.
Índices de palavras chaves: estes índices estão disponíveis unicamente para os campos de tipo Alfa, Texto e Imagem. Estão desenhados para facilitar as pesquisas rápidas em textos ou no caso das imagens, entre as palavras-chave associadas as imagens.
Um índice padrão está desenhado para acelerar as operações do banco de dados (um índice padrão faz referência a um índice genérico, contrário a um índice de palavras chaves ou a um índice composto). 4D oferece dois tipos de arquiteturas para os índices padrões: Árvore-B e Árvore-B agrupada.
Árvore-B: índice de tipo B-Tree clássico. Este tipo de índice multi-propósito responde a maioria das necessidades de indexação.
Árvore-B agrupada: índice de tipo B-Tree utilizando os clusters. Esta arquitetura é mais eficiente quando o índice não contém um grande número de chaves, ou seja, quando os mesmos valores ocorrem freqüentemente nos dados.
Nota: um índice Árvore-B associado com um campo do tipo Texto armazena os primeiros 1024 caracteres do campo (Máximo). Portanto, nesse contexto, buscas por strings contendo mais que 1024 caracteres não funcionarão.
Quando se escolhe a arquitetura do índice, 4D também propõe a opção Automática. Neste caso, 4D seleciona a arquitetura em função da natureza dos dados. A opção Automática é a única opção disponível para Objetos campos. Na verdade, nesse caso, todos os caminhos de atributo são automaticamente indexados.
Os índices compostos armazenam o valor conjunto de dois ou mais campos para cada entrada. O exemplo clássico é um índice composto baseado nos campos Nome+Sobrenome. A pesquisa de “Pedro Silva” será otimizada em comparação com uma pesquisa padrão (pesquisa de “Silva” e logo pesquisa de “Pedro”).
4D leva vantagem automaticamente dos índices compostos durante as pesquisas e ordenações. Por exemplo, se existe um índice composto “Cidade+Código Postal”, será utilizado em caso de uma pesquisa do tipo sobrenome=Abreu e cidade=Rio de Janeiro e CódigoPostal=22121. No editor de estrutura, a criação dos índices compostos se realiza sob a caixa de diálogo de criação de índices. Para uma descrição detalhada desta caixa de diálogo, consulte o parágrafo “Criar um Índice” abaixo.
Os campos Alfa, Texto e Imagem podem ter um tipo de índice específico: palavras chaves. Quando se associa este tipo de índice com um campo Alfa ou Texto, os textos armazenados no campo serão indexados palavra por palavra. Todas as palavras se indexarão inclusive se tiverem 1 ou 2 caracteres. Este tipo de índice permite acelerar drásticamente as pesquisas posteriores por palavras chaves em campos de tipo texto
É possível associar de uma vez um índice padrão e um índice de palavras chaves aos campos Alfa e aos campos Texto (quando se armazena com os registros). 4D utilizará o índice apropriado em função do contexto.
Quando associado este tipo de índice a um campo Imagem, as pesquisas entre as palavras chaves associadas as imagens (meta dados) se aceleram de maneira significativa. Atenção: os índices de palavras chaves de imagens são baseadas exclusivamente nos meta dados de tipo IPTC/Keywords. Estes tipos de meta dados estão suportados em particular pelos formatos TIFF e JPEG (note que BMP, PNG e GIF não os suporta). Outros tipos de meta dados não são suportados pela indexação. A atualização dos índices de palavras de imagens é efetuada automaticamente por 4D cada vez que se guarda o campo Imagem (criação ou modificação do registro, importação de dados, etc.). Os meta dados de tipo IPTC/Keywords são indexados automaticamente por 4D quando estão presentes na imagem (não é necessário chamar ao comando SET PICTURE METADATA para incluir-lo no índice do campo imagem).
Pode utilizar o comando DISTINCT VALUES para obter a lista de palavras chaves contidas em um índice de palavras chaves.
Utilize os índices de palavras chaves texto ou imagem com ajuda do operador %: este operador deve localizar-se nas fórmulas de pesquisa ou de ordenação para utilizar especificamente um valor de índice. Por exemplo:
QUERY([IMAGENS];[IMAGENS]Fotos%"gatos") // busca as fotos associadas a palavra chave gatos
Isto funciona da mesma forma para todos os comandos de pesquisa e ordenação: QUERY BY FORMULA, QUERY SELECTION, ORDER BY, etc. Para maior informação sobre o operador % e as pesquisas por palavras chaves, consulte a seção Operadores de Comparação no manual Linguagem de 4D.
O botão da barra de ferramentas do editor de estrutura mostra a janela da Lista de Índices. Essa janela mostra a lista e propriedades de todos os índices de estrutura, sem importar o tipo:
A lista de índices permite visualizar as principais propriedades dos índices:
Tipo: tipo de índice. Cada tipo de índice (Árvore-B, Árvore-B agrupada, palavras chaves) é representado com um ícone diferente.tipo de índice. É possível modificar o tipo de índice clicando no triângulo invertido e selecionando um valor diferente no menu pop-up.
Descrição: tabela e campos do índice. Para um índice composto, esta lista contém todos os campos do índice..
Nome: nome do índice. Esta propriedade é utilizada particularmente nos comandos de linguagem. Você pode alterar ou adicionar um nome de índice fazendo duplo clique nesta área.
O botão mostra a caixa de diálogo de configuração do índice. O botão exclui o índice selecionado (aparece uma caixa de diálogo de confirmação). Este botão pode ser utilizado particularmente para excluir os índices compostos.
Dois comandos adicionais são acessíveis através do menu associado ao botão de ferramentas (disponível quando um índice é selecionado):
Modificar: exibe as propriedades do índice selecionado na caixa de diálogo de configuração do índice (ver o próximo parágrafo). Este comando tem o mesmo efeito que um clique duplo em uma linha da lista (exceto para a área do nome).
Reconstruir: permite excluir e reconstruir o índice selecionado. Ao selecionar este comando aparece uma caixa de diálogo de confirmação.
A maneira de criar um índice depende de seu tipo. Adicionalmente, você pode escolher criar um índice diretamente ou por meio da caixa de diálogo de criação de índices.
Para criar diretamente um índice padrão:
Selecione um campo, logo selecione um valor no menu “Índice” da palheta do Inspector. OU Clique com botão direito no campo logo selecione um valor no sub-menu Índice>do menu contextual. Você dispõe de quatro opções:
Árvore-B: cria um índice de tipo árvore-B clássico..
Árvore-B agrupada: cria um índice de tipo árvore-B utilizando clusters.
Automático: 4D seleciona a arquitetura em função dos dados.
Nenhum: nenhum índice ou eliminação do índice existente..
Para criar diretamente um índice de palavras chaves:
Selecione um campo Alfa, Texto ou Imagem, logo selecione a opção “Índice de palavras chaves” no Inspetor de campo.
OU Clique com o botão direito em um campo, logo selecione Palavras chaves no sub-menu índice> do menu contextual.
Para criar um índice composto ou todo tipo de índice utilizando a caixa de diálogo de criação de índices::
Selecione a opção Novo índice no menu contextual da tabela ou Índice no menu de adição de objetos da barra de ferramentas do editor. Ou Selecione vários campos enquanto pressiona o botão Ctrl (Windows) ou Command (OS X) logo faça clique direito em um dos campos e selecione Novo índice no menu contextual. A caixa de diálogo de configuração de índice aparece. Ela contém os seguintes elementos:
Tabela: pronta todas as tabelas do banco. Escolha neste menu a tabela a qual pertencerá o índice.
Nome: área de entrada do nome do índice. Este nome é utilizado pelos comandos de linguagem de 4D.
Tipo: menu de seleção do tipo de índice a ser criado. Se você conservar a opção “Automática”, 4D escolherá automaticamente o tipo de índice em função do conteúdo do campo.
Lista de campos: esta área é utilizada para especificar o(s) campo(s) associados ao índice. Pode conter um campo padrão dependendo da seleção atual no editor.
Para adicionar um campo ao índice, clique no botão . A lista de campos da tabela selecionada é exibida de maneira que se possa indicar o campo a adicionar ao índice.
Se deseja criar um campo composto, adicione cada campo a ser incluído no índice. Uma vez que a lista esteja completa, é possível reorganizar os campos utilizando as setas ou utilizando arrastar e soltar.
Se criar um índice composto baseado nos campos da chave primária, tenha certeza de colocar os campos no mesmo ordem na chave primária e no índice.
Se você escolheu o tipo “Índice de palavras chaves”, somente os campos Alfa ou Texto podem ser selecionados. Neste caso, você não pode incluir somente um campo no índice.
Para excluir um campo do índice, selecione-o e clique no botão .
Uma vez configurado o índice, clique em Aceitar para gerar o índice.
Você pode excluir a qualquer momento um índice que já não seja útil. Esta operação pode ser efetuada diretamente no editor de estrutura ou utilizando a janela Lista de índices. Para maiores informações sobre a janela Lista de índices, consulte o parágrafo “listar índices”
Para excluir um índice padrão:
Selecione o campo associado ao índice a ser excluído, logo escolha a opção Nenhum no menu Índice do Inspector.. OU
Clique com o botão direito no campo associado com o índice, logo escolha a opção Nenhum no sub-menu Índice do menu contextual.
Para excluir um índice de palavras chaves::
Selecione o campo associado ao índice que deseja excluir, logo deselecione a opção “Palavras chaves” no Inspector. OU
Clique com o botão direito no campo associado ao índice, logo deselecione a opção Palavras chaves no sub-menu índice> do menu contextual.
A eliminação (e visualização) de um índice composto só pode ser efetuada a partir da janela Lista de índices (utilizando o botão ).
Você pode reindexar um campo a qualquer momento, ou seja, reconstruir as tabelas de índices associadas a ele, de acordo com os dados presentes. Isto pode ser útil na manutenção de aplicações.
A reindexação pode ser efetuada através do comando Reconstruir da lista de índices (botão de ferramentas, ver acima).
Lembre que modificar a linguagem dos dados (consultar Comparação de texto) ou operações de manutenção como compactar (ver Compactar) também causarão reindexação.
PROPRIEDADES
Produto: 4D
Tema: Criar uma estrutura de banco de dados