# Manual do &kexi;

## Introdução

O &kexi; é um aplicativo de gerenciamento de banco dados integrada. Poderá ser usado para criar esquemas de bancos de dados, inserir dados, efetuar pesquisas e processar dados. Os formulários poderão ser criados para oferece uma interface comum aos seus dados. Todos os objetos do banco de dados - tabelas, pesquisas e formulários - são gravados no banco de dados, tornando simples o compartilhamento dos dados e do desenho.

O &kexi; é parte do pacote de produtividade &calligra; para o KDE.

Além do &kexi; armazenar os seus bancos de dados em arquivos, ele também poderá guardar os seus dados num servidor de bancos de dados. Usando um servidor de bancos de dados, você poderá compartilhar a sua base de dados com outras pessoas, permitindo também a mais de uma pessoa usar o banco de dados ao mesmo tempo. São suportados os seguintes servidores de bancos de dados pelo &kexi;:

- MySQL

- PostgreSQL

Mais informações sobre o &kexi; podem ser encontradas na página do &kexi; no Website do Calligra, e na página do Website do Kexi em si.

Se você tiver algumas dúvida sobre o &kexi;, existem duas listas de discussão que poderá usar. A lista de discussão dos usuários do &kexi; poderá ser usada para fazer perguntas sobre a utilização do &kexi; ou sobre o projeto do &kexi;. A lista de discussão de desenvolvimento do &kexi; poderá ser usada para fazer perguntas sobre o desenvolvimento do &kexi;. Mais informações sobre a inscrição nessas listas, além de algumas formas de entrar em contato com os desenvolvedores do &kexi;, poderão ser encontradas aqui.

Este manual para o &kexi; 2.5 foi baseado no Manual do &kexi; 1.1. Por favor, coordene qualquer esforço com o Jarosław Staniek, e-mail: kexi at kde.org

## Fundamentos do Kexi

- Bancos de dados do Kexi

- Criando um novo arquivo de banco de dados

- A janela principal do Kexi

  - Elementos principais do aplicativo

- Abrindo um arquivo de banco de dados do Kexi existente

  - Abrindo um arquivo de banco de dados na janela para Abrir um projeto

  - Abrindo um arquivo de banco de dados do Kexi existente clicando no ícone do arquivo .kexi

- Usando a ajuda embutida

### Bancos de dados do Kexi

Muitos aplicativos, como o OpenOffice.org, LibreOffice ou o &Microsoft; Excel criam arquivos chamados documentos. O &kexi; também cria arquivos, só que normalmente refere-se a eles como sendo arquivos de bancos de dados do &kexi; ou simplesmente arquivos de bancos de dados.

Além de armazenar os seus bancos de dados nos arquivos, o &kexi; pode também usar os bancos de dados em servidores dedicados, razão pela qual se referiu anteriormente aos arquivos de bancos de dados e não simplesmente bancos de dados.

O termo projeto do &kexi;, ou simplesmente projeto, também é usado para se referir a um banco de dados do &kexi;, independentemente se é gravado num arquivo ou num servidor de banco de dados.

Arquivos de banco de dados do &kexi; possui normalmente a extensão `.kexi`

### Criando um Novo Arquivo de Banco de Dados

1. Execute o &kexi; ou, se ele já estiver em execução, use a opção Kexi Novo... (Ctrl+N).

2. Na página Novo projeto, na seção Projetos em branco, selecione Banco de dados vazio.

3. Na página Método de armazenamento, clique em Arquivo.

4. Em Título do projeto & nome do arquivo, defina um título e o nome de arquivo para o projeto.

5. Clique em Próximo para criar o projeto.

- Quando você mudar o título do projeto, o nome de arquivo proposto será alterado automaticamente de acordo.

- Você pode usar o navegador de arquivos para selecionar uma pasta para onde gostaria de salvar seu arquivo de banco de dados.

### A Janela Principal do Kexi

A Barra de ferramentas em abas no topo fornece acesso às ações e comandos mais comuns.

O Navegador do Projeto e o Editor de Propriedade são mostrados em painéis bem definidos de cada lado da janela-filha. Eles podem ser redimensionados ou ocultos de acordo com a necessidade. Um painel poderá ser oculto clicando-se na pequena cruz na parte superior do mesmo (logo abaixo da barra de ferramentas).

Os objetos do banco de dados (tabelas, pesquisas, &etc;) listados no Navegador do Projeto podem ser abertos clicando-se (ou fazendo duplo-clique, dependendo da configuração global do KDE) nos seus nomes.

#### Elementos principais do aplicativo

Os elementos principais da janela do aplicativo &kexi; são:

Barra de ferramentas em abas

- Contém os comandos disponíveis para o aplicativo. Você irá encontrar uma descrição detalhada dos vários comandos no apêndice.

Painel do Navegador do Projeto

- Contém uma lista com os vários objetos (tabelas, pesquisas, formulários, ...) criado dentro do projeto atualmente aberto. O navegador também contém uma pequena barra de ferramentas com os comandos mais usados, relacionados com os objetos do banco de dados.

Área de objetos de bancos de dados abertos / Janelas em abas

- Uma área central do aplicativo que ocupa a maior parte do espaço da tela. A interface do usuário contém abas selecionáveis que estão sempre maximizadas.

Painel do Editor de propriedades

- Contém uma lista das propriedades do objeto ativo atualmente no banco de dados. Para alguns objetos (⪚, itens gráficos do formulário), poderá consistir em várias abas.

#### Barra de ferramentas em abas

A barra de ferramentas é o local que lhe dá acesso aos comandos e ações do &kexi; mais usados.

Usando as ações encontradas nas diferentes páginas da barra de ferramentas, você poderá:

- Criar / Abrir / Fechar os projetos do Kexi

- Criar objetos de banco de dados

- Importar / Exportar os dados

Dependendo do contexto, abas adicionais podem ficar visíveis:

- A aba de Desenho do Formulário fica visível se o Desenho de Formulário está de fato sendo usado.

- A aba de Desenho do Relatório fica visível se o Desenho de Relatório está de fato sendo usado.

#### Área do Navegador do Projeto

O painel do Navegador do Projeto é um dos elementos usados com maior frequência na janela principal do &kexi;. O painel contém uma lista com todos os objetos criados dentro do projeto de banco de dados do Kexi aberto atualmente. Os objetos estão divididos em grupos: tabelas, pesquisas, formulários, relatórios e programas.

O painel do Navegador do Projeto contém uma pequena barra de ferramentas para os comandos mais frequentes (da esquerda para a direita): Abrir o objeto selecionado, Desenhar o objeto selecionado, e Apagar o objeto selecionado.

Para cada objeto da lista, existe um menu de contexto que está disponível através do botão direito do mouse.

Realizar um duplo-clique com o botão esquerdo do mouse no nome do objeto na lista, permitirá abrir o objeto na Visão de Dados. Se a janela do objeto já estiver aberta, a ação simplesmente ativa a janela sem mudar o modo de visão.

Ainda que o seu sistema operacional ou gerenciador de janelas possa ser configurado para lidar com cliques simples em vez de duplos, o &kexi; usa o duplo-clique no Navegador do Projeto para evitar abrir acidentalmente grandes blocos de dados ou executar pesquisas.

#### Área de objetos de bancos de dados aberta / Janelas por abas

Sempre que fizer duplo-clique sobre um objeto do navegador do projeto, isto irá abrir a área de objetos do banco de dados aberto. Cada janela tem a sua própria página no &kexi;.

Você poderá reorganizar as páginas se as arrastar e soltar ou ainda fechá-las usando o botão localizado no canto direito da barra de abas.

Mais tarde, existirá uma opção para destacar as páginas, criando algo semelhante a uma interface MDI. Isto poderá ser útil para criar soluções personalizadas ou várias telas.

#### Painel do Editor de propriedades

No painel do Editor de Propriedades você pode alterar as propriedades do objeto exibido na janela ativa. Dependendo do contexto, o painel consiste em uma ou mais abas. A primeira das Propriedades, que está sempre visível, contém a lista de propriedades disponíveis.

Regras para usar o Editor de Propriedades:

- Cada linha corresponde a uma única propriedade.

- Você poderá usar o mouse ou o teclado para mudar os valores das propriedades em particular.

- Os tipos de valores de propriedades usados com maior frequência são:

  - um número; você poderá inserir o valor diretamente, ou aumentá-lo ou diminuí-lo com o botão esquerdo do mouse nas setas.

  - texto

  - uma lista de valores

  - Sim/Não; no formato de um botão que poderá comutar; o botão ligado significa um valor Sim (verdadeiro), enquanto o botão desligado significa um valor Não (falso).

- Não há necessidade de confirmar o valor alterado: as alterações são imediatamente visíveis após mudar para uma linha diferente da lista do Editor de Propriedades ou pressionando-se a tecla &Enter;.

- Os nomes das propriedades alteradas recentemente e que ainda não tenham sido gravadas no banco de dados estão marcadas em negrito.

- Após alterar o valor de uma propriedade, aparece um botão especial para Desfazer alterações do lado direito da lista do Editor de Propriedades. Clicando-se nele, você poderá reverter o valor da propriedade ao seu original carregado do banco de dados, quando abriu o objeto do banco de dados. O botão só fica visível quando a propriedade ficar selecionada de fato.

O painel do Editor de Propriedades fica vazio se:

- não estiver aberto qualquer objeto da banco de dados ou

- a janela do objeto ativo do banco de dados não oferecer propriedades; é normalmente o caso quando for aberto na Visão de Dados em vez da Visão de Desenho.

### Abrindo um arquivo de banco de dados do Kexi existente

Existe duas maneiras de abrir um arquivo de banco de dados existente do &kexi;:

#### Abrindo um arquivo de banco de dados na janela Abrir um projeto

- Execute o &kexi;. Você deverá ver a janela inicial Bem-vindo ao Kexi, que lhe permite selecionar um dos projetos usados recentemente para abertura.

- Se o projeto não estiver página de projetos recentes, escolha a opção Abrir... (&Ctrl;O). Você verá a seguinte janela:

- Na barra de localização atual, escolha uma pasta que contenha o arquivo que está procurando.

- Você poderá selecionar um arquivo que será aberto imediatamente. Em alternativa, você poderá inserir seu nome no campo Nome: e clicar em Seguinte.

Notas

- Por padrão, a lista Filtro: contém a opção Todos os arquivos suportados (*.kexi, *.kexic, *.kexis, *.mdb) selecionada. No caso do arquivo que estiver procurando tiver outra extensão, você pode mudar a seleção do Filtro: para Todos os Arquivos para mostrar todos os arquivos disponíveis (independentemente da extensão).

- Se você tiver selecionado um arquivo de um tipo externo, como um arquivo `.mdb` do MS Access, o &kexi; fornecerá a opção para importar o arquivo.

- Se você tiver selecionado um arquivo de dados da conexão (com a extensão `.kexic`) ou um atalho para um projeto no servidor de banco de dados (com a extensão `.kexis`), o &kexi; exibirá as janelas apropriadas.

#### Abrindo um arquivo de banco de dados do Kexi existente, clicando no ícone do arquivo .kexi

- Clique no ícone do arquivo usando o seu gerenciador de arquivos ou na tela do seu computador. O &kexi; irá abrir este projeto de banco de dados automaticamente.

Notas

Nota sobre os arquivos de bancos de dados acessados remotamente. Você poderá querer abrir um arquivo de banco de dados que esteja localizado numa fonte remota (⪚, um servidor Web ou FTP ou um compartilhamento do MS Windows). O KDE permite-lhe abrir arquivos de fontes remotas diretamente nos aplicativos e salvar as alterações de volta na origem, mas este não é o caso dos arquivos de banco de dados. Clicar em um arquivo de banco de dados localizado numa origem remota, fará com que o arquivo seja transferido para uma pasta temporária no seu computador e todas as suas modificações serão feitas neste arquivo local. O arquivo remoto original irá permanecer sem alteração após fechar o Kexi, por isso recomenda-se que copie (transfira) o arquivo primeiro para o seu computador, abra o arquivo localmente e copie-o de novo para a origem, se quiser atualizá-lo.

### Usando a ajuda embutida

As seguintes formas de obter a ajuda interna do &kexi; estão disponíveis:

O Manual no formato de documento eletrônico.

- O Manual fica disponível ao pressionar a tecla F1 ou clicar em na barra de menu e selecionar Ajuda.

Sugestões O que é isto?.

- Selecione O que é isto? a partir do menu que aparece quando você clica em e então clique na área do aplicativo para obter dicas sobre ela.

## Criando Bancos de Dados Simples

- Introdução

- Desenhar tabelas do banco de dados

  - A janela de desenho da tabela

- Inserir dados nas tabelas

- Desenhar consultas do banco de dados

- Desenhar formulários

  - Termos mais importantes

  - Formulários versus tabelas

  - Trabalhar com o desenho de formulários

  - Usar a página de elementos gráficos

  - Inserir elementos - campos de texto

  - Atribuir fontes de dados

  - Inserir legendas de texto

  - Ações

  - Disposições dos elementos

- Inserir dados com os formulários

### Introdução

Para aprender os fundamentos do &kexi;, você poderá criar um banco de dados simples, usando as funcionalidades mais elementares do &kexi;. Para tornar as coisas mais simples, os tópicos avançados de desenho de bancos de dados não serão cobertos aqui.

Inicie criando uma nova lista telefônica.

Tendo um projeto de banco de dados novo e vazio, execute os seguintes passos:

1. Desenhe as tabelas do banco de dados. Leia a seção chamada Desenhar tabelas do banco de dados.

2. Insira os dados nas tabelas. Leia a seção chamada Inserir dados nas tabelas.

3. Desenhe as consultas nos bancos de dados. Leia a seção chamada Desenhar consultas nos bancos de dados.

4. Desenhe os formulários. Leia a seção chamada Desenhar formulários.

5. Use os formulários para inserir os dados. Leia a seção chamada Inserir dados com os formulários.

### Desenhar as tabelas do banco de dados

Primeiro, irão existir duas tabelas adicionadas ao seu banco de dados: a `Pessoas` e a `Telefones`. Estas são exatamente as mesmas tabelas que estão descritas no capítulo Banco de dados e planilhas. Você poderá encontrar um leiaute para `Pessoas` na seção de Integridade e validade dos dados nesse capítulo.

1. Selecione a opção Tabela da barra e ferramentas ou a opção Criar um objeto: tabela do menu de contexto do item Tabelas do Navegador do Projeto.

2. A janela de Desenho da Tabela irá aparecer. Se olhar para o topo da janela de desenho, irá reparar que o &kexi; lhe propôs um nome genérico do tipo Tabela1 para a nova tabela. O desenho da tabela ainda não está salvo, logo será capaz de lhe atribuir um nome mais indicado posteriormente. Além disso, pela mesma razão, o nome da tabela ainda não está visível no Navegador do Projeto.

#### A janela do Desenhador de Tabelas

##### A janela do Desenhador de Tabelas consiste nas seguintes colunas:

- - Informações adicionais sobre o campo.

- Nome do Título do Campo - o título do campo que será exibido durante a entrada de dados.

- Tipo de Dados - uma lista com os tipos de dados que permite atribuir uma regra principal para os dados inseridos num determinado campo. Por exemplo, quando um campo for do tipo de números inteiros, o usuário do banco de dados não poderá inserir letras neste campo.

- Comentários - você poderá introduzir aqui quaisquer informações úteis para compreender para que serve o campo indicado. Este texto adicional será salvo dentro do desenho das tabelas e só ficará visível no modo de desenho.

Na janela de desenho da tabela, cada linha corresponde a um único campo da tabela. Você poderá identificar se está no modo de desenho quando o botão Desenho estiver ativo dentro da barra da janela de desenho de tabelas.

##### Desenhar a tabela de Pessoas

Na primeira linha, clique na célula da coluna Título do Campo e insira `Nome` como título do campo. Preencher o campo Título do Campo automaticamente preenche o campo Nome como visto no painel do Editor de propriedades.

Notas sobre os nomes e títulos dos campos

- Cada campo da tabela deverá ter um nome e um título, que não poderão estar vazios.

- O nome do campo é uma palavra usada pelo banco de dados, que não estará normalmente visível para os usuários da aplicação. O nome não poderá conter caracteres especiais (nacionais) do tipo ±, ¶, Ü, ou espaços. O nome só poderá conter letras não acentuadas, números e o sublinhado _. Use o último em vez dos espaços ou hifens.

- Os nomes dos campos deverão começar por uma letra ou sublinhado _, nunca com um número.

- Não importa se você está usando letras maiúsculas ou minúsculas. Para o &kexi;, o nome do banco de dados `Pessoas` é igual a `pessoas`.

- O título do campo, por outro lado, permite-lhe inserir quaisquer letras ou caracteres especiais. Será apresentado para os usuários do aplicativo do banco de dados.

De forma semelhante, insira os seguintes campos no desenho da tabela:

- `sobrenome`

- `rua`

- `numero`

- `cidade`

Todos os campos acima, exceto o `numero`, são do tipo texto. Mude o tipo do campo `numero` para um número inteiro. Para fazer isso, clique numa célula da coluna Tipo de Dados, na linha `numero` e clique no botão da lista ou pressione F4. A lista de tipos de dados irá aparecer. Você poderá também usar as teclas de cursores Cima e Baixo para selecionar outro tipo. Selecione o tipo Número Inteiro.

Daqui em diante, o campo `numero` só aceita números.

O desenho da tabela de pessoas está pronto. Clique no botão Dados da barra de ferramentas para terminar o desenho e mudar para a Visão de Dados da tabela. Isto permite-lhe inserir dados na tabela.

Uma vez que o desenho ainda não está salvo no banco de dados, a janela Salvar objeto como irá aparecer. Você precisa indicar o nome da nova tabela.

O &kexi; oferece um nome genérico do tipo Tabela1. Para mudar o nome insira `Pessoas` no campo Título e pressione a tecla &Enter; ou o botão OK. O campo Título será usado para mostrar a tabela aos usuários do banco de dados, ⪚, como um formulário. Ao contrário do nome, o título poderá conter quaisquer espaços, incluindo os espaços e caracteres especiais.

Lembre-se de que o preenchimento do campo Título preenche automaticamente o campo Nome. Para sua conveniência, mantêm-se a regra de utilização de apenas letras, números e _. Você poderá alterar o conteúdo do campo Nome se desejar.

1. Você será questionado se deseja automaticamente adicionar uma chave primária à tabela. Clique no botão Adicionar uma chave primária para continuar.

2. A tabela `Pessoas` foi criada e aberta na Visão de Dados. O seu nome aparece na área do Navegador do Projeto.

3. Crie a tabela `Telefones`, de forma semelhante à da tabela das `Pessoas`.

4. Crie um campo `pessoa` do tipo Inteiro e um `telefone` do tipo Texto. Não use um tipo numérico, uma vez que os números de telefone poderão ter diferentes formatos e prefixos.

5. Clique no botão Dados na barra de ferramentas e insira o título `Telefones` para a tabela. Como na sua tabela anterior, permita ao &kexi; criar automaticamente uma chave primária.

### Inserir dados nas tabelas

Você acabou de desenhar as duas tabelas `Pessoas` e `Telefones`. Nenhuma delas contêm dados ainda. Você poderá inserir alguns dados e, neste capítulo, irá aprender como fazer isso de maneira rápida e eficiente.

Comece pela tabela `Pessoas`. Abra-a na Visão de Dados com a opção Abrir no menu de contexto do Navegador do Projeto ou no botão da barra de ferramentas. A célula atual é marcada com um contorno mais grosso (normalmente em preto), um cursor de células. O conteúdo da célula, se estiverem presentes, ficam realçados com uma cor diferente. A linha atual, &ie; a linha onde colocou o seu cursor retangular, está marcada do lado esquerdo com um símbolo de seta.

Você pode navegar pelas células da tabela usando as teclas de seta, Page Up, Page Down, Home, End. Você pode também clicar com o mouse em uma célula para selecioná-la.

Inicialmente, após abrir a tabela `Pessoas`, o cursor fica colocado na coluna `Id`. A coluna tem a propriedade de numeração automática definida, marcada em azul na última linha. Significa que você não terá que inserir manualmente valores aqui ao inserir dados para uma linha nova, porque a célula ficará preenchida automaticamente com números sucessivos.

A inserção de novas linhas e de dados para elas no &kexi; é diferente da forma como isto é feito nas planilhas. Para inserir os dados para uma nova linha, você terá que usar as teclas de cursores ou o mouse, para mover o seu cursor para a última linha, que estará marcada com um sinal de mais (+). Coloque o seu cursor na coluna do nome (a segunda) e insira o `nome` de uma pessoa. Insira depois também o apelido, a rua, o número e a cidade. Quando terminar, passe o cursor da célula para a última linha vazia, quer com a tecla Baixo quer clicando na última linha com o mouse, para adicionar uma nova linha.

#### Detalhes Sobre Ações Disponíveis ao Inserir Dados em Tabelas

- A partir do momento que você começou a inserir o primeiro caractere, a linha atual está sendo editada. Um símbolo em forma de lápis aparece ao lado esquerdo da tabela de dados.

- Fazer um duplo-clique sobre uma célula com o botão esquerdo do mouse ou pressionar &Enter; ou a tecla F2, também inicia a edição da linha atual.

- Pressionar a tecla &Esc; quando estiver editando o conteúdo de uma célula irá cancelar as alterações feitas nesta célula. Contudo, o ícone em forma de lápis não irá desaparecer, porque você ainda poderá ir para uma célula diferente da linha editada para modificar o seu conteúdo. Para cancelar as alterações feitas na linha inteira, pressione a tecla &Esc; outra vez.

- Em vez de pressionar a tecla &Esc;, você poderá clicar no botão para Cancelar as alterações no registro.

- Pressione as teclas &Shift;&Enter; para aceitar as alterações feitas em todas as células da linha editada no momento.

Preencha a tabela `Telefones` com dados. Na coluna das `pessoas`, você precisa indicar um número de `Id` de pessoa existente na tabela das `Pessoas`.

### Desenhar consultas do banco de dados

O objetivo principal de um banco de dados é guardar e ajudar a extrair a informação que procura. Ao contrário dos bancos de dados escritos em folhas de papel, o banco de dados &kexi; permite-lhe definir mais critérios de pesquisa. Os resultados são devolvidos mais rápido, mesmo para grandes conjuntos de dados. Tudo isto é uma potencialidade dos bancos de dados; contudo, para ser possível realizar consultas efetivas no seu banco de dados, você precisa aprender a dizer ao banco de dados o que procura.

Com consultas ao banco de dados, você pode limitar os dados retornados de uma tabela para um conjunto predefinido de linhas e colunas, bem como juntar dinamicamente os dados originados de várias tabelas.

Para ver como funcionam as consultas na prática, você irá criar uma consulta de contatos que mescla os dados das duas tabelas: `Pessoas` e `Telefones` (desenhadas aqui e preenchidas com dados aqui).

1. Crie uma nova consulta vazia, selecionando a opção Consulta da barra de ferramentas. A janela de desenho irá aparecer. A janela aparece dividida em duas áreas: os relacionamentos da consulta no topo e as colunas da consulta em baixo.

2. Selecione a tabela `Pessoas` na lista Tabela:, localizada no topo da janela, e clique no botão Inserir. Irá aparecer uma representação gráfica da tabela na área de relações. Faça o mesmo para a tabela `Telefones` para inseri-la também.

3. Adicione uma relação à pesquisa arrastando com o mouse (arrastar & soltar): clique no campo `Id` da tabela `pessoas`, arraste-o e solte-o no campo `pessoa` da tabela `Telefones`. Isto irá juntar ambos os campos, criando uma nova relação.

4. Clique duas vezes sobre o campo `nome` na tabela `Pessoas` , para adicionar o campo como uma coluna da consulta. De forma semelhante, adicione o `sobrenome`, `rua`, `numero`, `cidade` da tabela `Pessoas` e o `telefone` da tabela `Telefones`.

5. O desenho da consulta está agora pronto para testes. Clique no botão Dados da barra de ferramentas, para mudar do desenho para a visualização dos dados fornecidos como resultado da consulta.

6. Salve o desenho da pesquisa para uso posterior, clicando no botão Salvar da barra de ferramentas. Uma vez que o desenho da consulta ainda não foi salvo, será pedida a indicação de um nome. Insira o texto `Contatos` no campo do título e clique no botão OK.

### Desenhar formulários

- Termos mais importantes

- Formulários versus tabelas

- Trabalhar com o desenho de formulários

- Usar a página de elementos gráficos

- Inserir elementos - campos de texto

- Atribuir fontes de dados

- Inserir legendas de texto

- Ações

- Disposições dos elementos

#### Termos mais importantes

Formulário

- Uma janela fornecida para propiciar uma fácil entrada e apresentação de dados na tela do computador.

Fontes de dados de formulários

- Uma tabela ou pesquisa na base de dados que fornece os dados apresentados no formulário. A fonte de dados é necessária porque os formulários em si são apenas ferramentas para mostrar e inserir dados, enquanto as tabelas e pesquisas são as fontes dos dados. Os formulários novos e vazios não possuem fonte de dados atribuída e, por isso, não apresentam nenhuma informação do seu banco de dados, a menos que lhes atribua uma fonte de dados.

Campo de formulário

- O equivalente direto da coluna em uma tabela ou consulta. Os campos são mais frequentemente usados para exibir texto e números. Inserir um novo valor ou mudar um valor existente de um campo provoca uma mudança na coluna da tabela ou consulta atribuída ao campo (após a mudança ter sido aceita).

Desenho do formulário

- As tarefas que estará desempenhando para definir a aparência e a funcionalidade do formulário. Para fazer isso, você precisa indicar a fonte de dados, inserir os campos no formulário com vários tipos e colocá-los no local apropriado.

Elemento de formulário

- Elementos do formulário. Os principais tipos de elemento são:

  - Os elementos mostram informações, ⪚, num campo de texto ou numa área de imagem. Cada item deste tipo poderá ser associado a um campo da fonte de dados (coluna de uma tabela ou consulta). Assim, esses itens são chamados de campos, em resumo.

  - Os elementos capazes de efetuar uma determinada ação, ⪚, um botão que poderá fechar o formulário atual. Dentro de outras aplicações, este tipo de item é alguma vezes denominado de controle do formulário, porque pode efetuar uma ação previamente definida para controlar o comportamento da sua aplicação de banco de dados.

  - Existem outros itens que permitem melhorar a aparência de um formulário, ⪚, um "item de linha" poderá separar de forma visual duas áreas do formulário.

Elemento contêiner

- Um item que poderá conter outros itens dentro da sua área. Por exemplo, uma moldura ou uma página são elementos contentores. A superfície do formulário é ela própria um contentor. Um botão de comando não poderá ser considerado um contentor porque não é possível introduzir um item gráfico dentro dele. Nos casos mais complexos, os itens contentores poderão ser inseridos dentro de um contentor, de modo a possibilitar o encadeamento.

#### Formulários versus tabelas

No capítulo Inserir os dados nas tabelas, você aprendeu como inserir os dados diretamente nas tabelas, usando a sua área de dados. Contudo, em muitos casos, os formulários são mais adequados para inserir os dados:

- Um tabela pode conter muitas colunas para exibi-las em sua tela. Um formulário pode exibir estes dados usando várias linhas.

- Um formulário permite dividir a nível visual os campos de dados em grupos lógicos, aumentando assim a legibilidade. As legendas com informações adicionais poderão ser inseridas para dar mais sugestões aos usuários sobre como usar o formulário ou o que significam os campos de dados indicados.

- Botões de comando podem ser usados neste formulários para os comandos normalmente usados de modo que os usuários podem usar os formulários de uma maneira semelhante a dos aplicativos independentes que eles conhecem.

Na área de visualização dos dados, a apresentação de dados multi-linhas ou imagens é tão fácil como nos formulários.

#### Trabalhar com o desenho do formulário

Como no desenho de tabelas ou pesquisas, você poderá usar a Visão de Dados e Visão de Desenho. O desenho do formulário é efetuado na Visão de Desenho. Iremos fazer referências frequentes á janela de desenho do formulário como sendo o Desenhador do Formulário.

1. Para criar um novo formulário vazio, selecione Formulário na barra de ferramentas. Opcionalmente, você poderá usar o comando Criar um objeto: Formulário do botão combinado do Navegador do Projeto ou Criar um objeto: Formulário do menu de contexto do Navegador do Projeto.

2. Irá aparecer uma área nova, que você poderá dimensionar o formulário, movendo para isso as suas bordas. O formulário está coberto com uma grade, para simplificar o posicionamento preciso dos elementos.

Como acontece no desenho de tabelas, o Desenhador do Formulário fornece uma área de Editor de Propriedades. Para economizar algum espaço na tela, a área tem três páginas relacionadas com o formulário selecionado no momento:

A página de Propriedades

- Contém uma lista das propriedades para o elemento atualmente selecionado.

A página da Fonte de Dados

- Contém as propriedades relacionadas diretamente com a fonte de dados do item selecionado ou do formulário em si.

A página de Elementos

- Contém uma hierarquia de todos os elementos do formulário. A lista simplifica a procura de elementos por nome e a navegação entre eles.

Informações sobre o nome e tipo de elemento atualmente selecionado são exibidas na primeira e segunda abas.

Barras de ferramentas adicionais estão também disponíveis:

- A barra de Elementos é usada para inserir elementos gráficos no formulário. Selecione o Desenho do Formulário para mostrá-la.

#### Usar a página de Elementos

A página de elementos na área de Propriedades oferece uma lista com elementos do formulário e a sua hierarquia. Cada elemento é apresentado dentro da hierarquia, além dos outros elementos de mesmo nível (com o mesmo contentor-pai). Os elementos-filhos (dentro de contentores) são apresentados com nomes endentados.

Cada elemento exibe seu nome e tipo. O tipo possui também um ícone relacionado - o mesmo que é exibido na barra de ferramentas quando o desenho do formulário é executado.

- A mudança da seleção atual na lista provoca uma seleção apropriada no formulário designado. Isto permite uma pesquisa mais simples dos elementos pelo nome, bem como uma navegação mais simples. Por exemplo, é possível selecionar um elemento pelo nome, mudando depois para a página de Propriedades, para mudar as propriedades do elemento.

- Manter a tecla &Ctrl; pressionada enquanto um item na lista de elementos é selecionado permite que vários elementos sejam selecionados ao mesmo tempo. Manter a tecla &Shift; pressionada, permite selecionar listas inteiras de elementos.

A atribuição de nomes razoáveis poderá ser útil mas não obrigatória. Lembre-se que o nome de um elemento é uma propriedade que não é visível para o usuário do seu formulário. Os usuários só irão ver um texto do elemento, indicado pela propriedade Texto ou outra do gênero.

#### Inserir elementos - campos de texto

Vamos criar um formulário que fornece informações sobre as pessoas, &ie; um formulário ligado à tabela `Pessoas`.

Se o formulário a ser desenhado deverá apresentar os dados obtidos do banco de dados, você terá que colocar campos apropriados nele. Para fazer isso, use os botões na barra de Elementos. Cada botão corresponde a um único tipo de item.

1. Clique no botão Campo de texto da barra de Elementos.

2. Clique na superfície do formulário com o botão esquerdo do mouse. Será colocado um novo campo de texto no ponto em que clicou. Antes de soltar, poderá arrastar o seu mouse para definir o tamanho desejado para o item.

3. Se necessário, mova o elemento inserido usando o arrastar & soltar para a posição desejada. Você pode redimensionar o elemento posteriormente arrastando uma das pequenas caixas que aparecem próximas aos cantos. Note que as caixas só estarão visíveis quando o elemento estiver selecionado. Se você selecionar outro elemento ou a superfície do formulário, as caixas desaparecerão.

4. Clique no botão Campo de texto de novo e clique na superfície do formulário para inserir outro elemento. Repita esta ação até que tenha mais três campos de texto no seu formulário. Por questões de simplificação, iremos limitar-nos a cinco campos de dados.

- Existe um menu de contexto disponível no modo de desenho do formulário, ativado ao clicar com o botão direito do mouse sobre o elemento desejado ou na superfície do formulário. O menu oferece comandos como o Cortar, Copiar, Colar, Apagar ou outros mais complexos. Também estão disponíveis atalhos de teclado para esses comandos. Alguns dos comandos só estão disponíveis para certos tipos de elementos.

- Os comandos Cortar, Copiar e Colar permitem mover ou copiar os itens entre formulários, mesmo entre projetos de bancos de dados separados.

- Mantendo a tecla &Ctrl; pressionada enquanto clica um elemento permitirá selecionar vários elementos ao mesmo tempo.

- Em vez de usar os comandos Copiar e Colar, para duplicar um elemento dentro do mesmo formulário, você poderá manter pressionada a tecla &Ctrl; enquanto move o elemento. Depois de soltar o botão do mouse, o item arrastado não será movido mas sim copiado para o novo local.

#### Atribuir fontes de dados

Os campos que inseriu não possuem fonte de dados atribuída ainda e, por isso, não serão capazes de mostrar informações do banco de dados. Para atribuir uma fonte de dados, use a aba (Fonte de Dados) da área do Editor de Propriedades.

O primeiro passo de todos é indicar a fonte de dados do formulário, &ie; o local de onde os dados apresentados serão obtidos. Como descrito acima, irá usar a tabela `Pessoas` como fonte de dados para o seu novo formulário.

1. Clique na superfície do formulário, de modo a alterar as suas propriedades.

2. Mude para a página (Fonte de dados) e insira o nome da tabela `Pessoas` na lista da Fonte de dados do formulário. Alternativamente, você poderá selecionar este nome a partir da lista.

Você atribuiu a fonte de dados do formulário. Agora precisa indicar a fonte de dados do elemento.

1. Clique no primeiro elemento de campo de texto no topo do formulário.

2. Na aba (Fonte de Dados) da área de propriedades, insira o nome do campo `nome` na lista Fonte de dados do elemento. Em alternativa, poderá selecionar este nome na lista.

3. Clique no campo de texto seguinte e insira o `sobrenome` como fonte de dados.

4. Insira as fontes de dados para os campos de texto 'rua', 'numero' e 'cidade' de forma semelhante.

Você poderá agora salvar o desenho do formulário (isto não é obrigatório para testar o formulário em ação). Para salvar, clique no botão Salvar da barra de ferramentas. Depois de salvar, será solicitado para inserir o nome do formulário. Digite `Pessoas` como título e clique no botão OK. O nome do formulário será preenchido automaticamente.

Este é o momento certo para testar o seu formulário. Clique no botão Dados da barra de ferramentas. A menos que tenha cometido algum erro ao inserir as fontes de dados, deverá ver os campos do formulário preenchidos com os dados da tabela `Pessoas`.

- Se você quiser remover a atribuição da fonte de dados para um elemento do formulário, poderá usar o botão do campo Fonte de dados do elemento.

- Use o botão (Vá para a fonte de dados do formulário selecionada) para selecionar a tabela ou pesquisa apropriada no Navegador do Projeto, para que possa rapidamente abrir uma tabela ou pesquisa, sendo a fonte de dados do formulário.

#### Inserir legendas de texto

Para facilitar ao usuário do formulário a identificação do significado de cada elemento dos campos, estes deverão ter adicionadas legendas de texto com títulos apropriados. Para criar legendas de texto, é usado o elemento Legenda.

Insira três campos de texto no formulário, colocando-os do lado esquerdo dos campos de texto (ou do lado direito, se o seu sistema operacional usar uma escrita da direita-para-a-esquerda). Ao inserir uma nova legenda, aparece um cursor de texto no local em que poderá inserir o título desejado. Insira consecutivamente: `Nome`, `Sobrenome`, `Rua`, `Número` e `Cidade`. Além disso, no topo do formulário, indique outra legenda que mostra o nome do formulário, &ie; `Pessoas`. Alargue o texto desta legenda e aumente o tamanho da letra com a Fonte da página de Propriedades.

#### Ações

Uma ação é uma única atividade isolada na aplicação, disponível para o usuário executar. Também poderá ser executada automaticamente como reação para um determinado evento (⪚, depois de abrir um formulário).

##### Atribuindo ações aos botões do formulário

A maioria das ações podem ser atribuídas aos botões do formulário. A ação atribuída é executada após o botão ser clicado.

Para atribuir uma ação:

1. Mude para a visão de Desenho do formulário, caso ainda não o tenha feito.

2. Selecione o elemento do botão existente, clicando nele, ou coloque um novo botão no formulário. Se inserir um novo botão, indique o seu título e pressione &Enter;.

3. Clique no elemento do botão, com o botão direito do mouse, para mostrar o menu de contexto.

4. No menu de contexto, selecione o comando Atribuir uma ação....

5. Irá aparecer uma janela de Atribuição de uma ação a um botão de comando, apresentando uma lista de ações disponíveis. Uma das ações fica selecionada se o elemento já tiver uma ação atribuída. Caso contrário, a lista da Categoria de ação terá o item Sem ação selecionado.

6. Na lista do Categoria de ação, selecione o item Ações da aplicação. Serão apresentadas as ações ao nível da aplicação.

7. Selecione uma das ações da lista (⪚, Apagar o objeto selecionado).

Depois de mudar para a visão de dados do formulário, poderá tentar ver se a ação funciona.

- Para remover a atribuição da ação, selecione o item Sem ação da lista Categoria da ação da janela Atribuir uma ação a um botão de comando.

- As ações só funcionam na vista de dados do formulário. Nem todas as atribuições de ações são razoáveis. Por exemplo, a ação Fonte... estará disponível na visão de dados, mas só se tiver um elemento selecionado na visão de Desenho. Se tiver feito alterações aos tipos de fonte, as alterações são aplicadas ao texto desse elemento selecionado.

#### Disposições dos elementos

Na maioria dos casos os elementos do formulário deverão ser convenientemente posicionados e alinhados. Posicionar, alinhar e redimensionar elementos manualmente não é fácil e estes parâmetros não serão ajustados quando o usuário redimensiona o formulário. De fato, a situação pode ser ainda pior porque você não pode considerar que um determinado formulário requer um determinado espaço uma vez que os usuários usam diferentes tamanhos de fonte e resoluções de tela.

Usar a ferramenta especial chamada disposição de elementos pode ajudá-lo a dispor automaticamente os elementos do formulário. Disposição de elementos é uma ação de grupar dois ou mais elementos de modo que eles estejam bem posicionados e possuam tamanhos apropriados.

Usar esta disposição em um formulário melhora o alinhamento. Além do mais, seu espaço é melhor aproveitado. Campos de texto estão próximos um do outro e o espaçamento é constante.

##### Política de tamanhos para elementos dentro de uma disposição

Em vez de definir um tipo de letra monoespaçada para os seus elementos, no &kexi; você poderá optar entre várias políticas de tamanho dos elementos. Uma política de tamanho é uma estratégia flexível para controlar como é esticado (ou encolhido) um elemento, dependendo dos elementos vizinhos e do espaço disponível dentro do formulário.

Após colocar os elementos em uma linha eles serão redimensionados para conter o texto visível.

Para cada elemento inserido no formulário, existem definições para a política de tamanho disponíveis no Editor de Propriedades. As definições são apresentadas como um grupo de propriedades chamado Política de Tamanho.

Este grupo de propriedades contém:

Política de Tamanho Horizontal

- definindo o tamanho horizontal do elemento,

Política de Tamanho Vertical

- definindo o tamanho vertical do elemento,

Esticamento Horizontal

- definir a força da atividade da Política de Tamanho Horizontal,

Esticamento Vertical

- definir a força da atividade da Política de Tamanho Vertical

##### Valores para as políticas de tamanho

Estão disponíveis os seguintes valores na lista para a Política Horizontal e Política Vertical, visíveis no Editor de Propriedades:

Fixo

- este valor significa que o elemento não pode ser automaticamente redimensionado; ele deve manter um tamanho constante definido durante o desenho (largura e altura),

Mínimo

- este valor significa que o tamanho original do elemento é configurado como o mínimo permitido, ele é suficiente e não há necessidade de expandir o elemento, mas o elemento será expandido se necessário. Este tipo de política pode ser usada para forçar que o elemento seja expandido para a largura ou altura totais, especialmente se você configurar um valor de esticamento maior que 0.

Máximo

- este valor significa que o tamanho original do elemento está configurado para o máximo permitido e que pode ser diminuído sem quebrar a usabilidade e legibilidade do elemento se outros elementos necessitarem de mais espaço,

Preferencial

- este valor significa que o tamanho original do elemento é o mais adequado ou preferencial; no entanto, o elemento pode ser encolhido ou expandido e ele permanecerá legível,

Expansível

- este valor significa que o tamanho original do elemento é razoável mas o elemento pode também ser encolhido; ele pode ser expandido também para tomar tanto espaço quanto possível,

Expansão Mínima

- este valor significa que o tamanho original do elemento é permitido; ele pode ser expandido para tomar tanto espaço quanto possível,

Ignorado

- este valor significa que o tamanho original do elemento é ignorado; o elemento pode ser expandido para tomar tanto espaço quanto possível mas outros elementos normalmente não permitirão isso

Tipos diferentes de elementos possuem políticas de tamanho padrão variadas; por exemplo, elementos de botão possuem a política de tamanho padrão configurada para Mínimo (em ambas direções), enquanto elementos de campo de texto possuem a política de tamanho vertical configurada para Fixo.

As políticas de tamanho mais frequentemente usadas são Preferencial, Mínimo e Máximo.

##### Esticamento horizontal e vertical

As propriedades de Esticamento Vert. e Esticamento Hor. aceitam valores inteiro maiores ou iguais a 0. Estas propriedades permitem um ajuste fino do comportamento das políticas de tamanho. O valor padrão para a maioria das propriedades é 0. Um valor maior de esticamento significa que o elemento será expandido mais do que os outros elementos que possuem um valor menor configurado.

### Inserindo Dados Usando Formulários

A inserção e edição de dados é uma tarefa comum do usuário de aplicativos de bancos de dados. O programador de bancos de dados deve verificar o formulário em termos de validação da entrada de dados, e ver se o formulário funciona como esperado.

Para testar seu formulário, alterne para a visão de dados. Uma linha (registro) única de dados será exibida. Você pode mover entre os campos usando o botão esquerdo do mouse ou as teclas e &Shift; . Durante a edição, haverá um ícone em forma de lápis visível próximo ao navegador de registros. Após a inserção da linha (registro) você pode pressionar as teclas &Shift;&Enter; ou o botão Salvar registro na barra de ferramentas para aceitar as mudanças feitas na linha atual. Clicando no botão Cancelar alterações no registro na barra de ferramentas, você descartará as mudanças feitas na linha atual e restaurará o conteúdo dos campos de dados. Você pode usar os botões do navegador de registros para mover para uma nova linha. Todas as funções do navegador estão também disponíveis de maneira semelhante na visão de tabela de dados.

## Configurar o Kexi

- Acoplar e desacoplar os painéis laterais

### Acoplar e desacoplar painéis laterais

Os painéis laterais do Navegador do Projeto e o Editor de Propriedade podem ser desacoplados se:

- Faça duplo-clique na barra da 'pega' no topo do painel ou

- Clique uma vez no botão em diamante no topo do painel, ao lado do 'x'.

Uma vez desacopladas, as janelas do painel podem ser acopladas na janela principal de novo, de forma semelhante ao desacoplamento:

- Faça duplo-clique sobre a barra da 'pega' no topo da janela; ou

- Clique uma vez no botão em diamante no topo do painel, ao lado do 'x'.

Ao desbloquear um painel, o &kexi; recorda a última posição acoplada, para que volte a acoplá-la no local onde se encontrava da última vez.

## Referência de comandos

- A Página do Kexi

- A Página Criar

- A Página Dados

- A Página Dados Externos

- A Página Ferramentas

- A Página de Desenho do Formulário

- A Página de Desenho do Relatório

### A Página do Kexi

A página do &kexi; é o local onde você interage com os projetos do &kexi;.

Selecionar uma ação irá abrir uma tela ao lado do menu, oferecendo opções sobre a ação que escolheu.

As opções oferecidas são:

Bem-vindo

- Aqui você poderá optar por abrir um projeto onde trabalhou recentemente.

Abrir

- Aqui você poderá optar por abrir um projeto do &kexi;, quer esteja guardado num arquivo ou num servidor de banco de dados.

Fechar

- Esta ação fecha o projeto do &kexi; que estiver aberto no momento.

Novo

- Aqui você poderá seguir o assistente para criar um novo projeto do &kexi;.

Importar, Exportar ou Enviar...

- Aqui você poderá seguir o assistente para importar dados existentes para o projeto do &kexi; aberto no momento.

Sair

- Fecha o &kexi;.

### A Página Criar

Na página Criar, você poderá criar objetos que serão adicionados ao seu projeto.

Tabela

- Selecionar a Tabela, irá passar para o Desenho da Tabela na Visão de Desenho para adicionar definições de campos à sua tabela.

Consulta

- Selecionando Consulta, você irá para o Desenho de Consultas na Visão de Desenho, permitindo-lhe desenhar uma consulta que irá obter resultados personalizados das suas tabelas para o seu projeto.

Formulário

- Selecionando o Formulário, você irá para o Desenho do Formulário na Visão de Desenho para adicionar os elementos ao seu formulário.

Relatório

- Selecionando o Relatório, irá para o Desenho do Relatório na Visão de Desenho para adicionar os elementos ao seu relatório.

Programa

- Selecionando o Programa, você irá para o Editor do Programa que lhe permite adicionar código personalizado ao seu projeto e/ou objetos.

### A Página Dados

Na página Dados, você poderá manipular os dados nas suas tabelas ou elementos nos seus objetos (formulários, relatórios, etc.)

Recortar

- O Recortar coloca os dados/elementos na área de transferência e remove-os da sua posição atual.

Copiar

- O Copiar coloca os dados/elementos na área de transferência e removê-los da sua posição atual.

Colar

- O Colar coloca os dados/elementos existentes na área de transferência na tabela ou objeto, respectivamente.

Colar especial

- O Colar especial é usado para colocar dados arbitrários na área de transferência ou numa tabela, de forma previsível, para poder ser adicionado de acordo com a definição da tabela.

Procurar

- O Procurar abre a janela Procurar para poder pesquisar por um texto específico no banco de dados.

### A Página de Dados Externos

Na página de Dados Externos, você poderá importar os dados de outras fontes no seu projeto do &kexi;.

Importar os Dados de um Arquivo

- O Importar os dados de um arquivo mostra uma janela que lhe permite importar os dados de arquivos CSV ou texto simples para uma nova tabela no seu projeto.

Importar tabelas

- O Importar tabelas abre o Assistente de Importação de Tabelas, que lhe permite importar dados tanto de um arquivo `fods`, `mdb`, `ods`, `tsv` ou de outro servidor de bancos de dados para uma tabela nova no seu projeto.

Exportar os dados para um arquivo

- O Exportar os dados para um arquivo mostra uma janela que lhe permita exportar os dados da tabela atual para um arquivo de texto simples ou CSV.

A tabela tem que ser aberta para poder exportar os dados dela para um arquivo.

### A Página Ferramentas

Na página de Ferramentas, você poderá manipular os seus projetos.

Compactar banco de dados

- O Compactar banco de dados procura por pequenos erros no banco de dados e reduz o seu tamanho.

Você deverá compactar regularmente o seu banco de dados para mantê-lo em boas condições, especialmente depois de várias operações com registros (adição ou exclusão em grandes quantidades)

### A Página de Desenho do Formulário

Na página do Desenho do Formulário, você poderá selecionar os elementos a adicionar ao seu formulário.

Ponteiro

- O Ponteiro muda para o modo de seleção de elementos.

Selecionando um elemento qualquer, você irá mudar para o modo de adição de elementos. Depois, poderá clicar em qualquer ponto do formulário para colocar o elemento.

Rótulo

- Um elemento de Legenda mostra as informações predefinidas num formulário. Normalmente, é usado como um título a seguir a outros elementos de dados.

Caixa de Texto

- Uma Caixa de Texto é um campo de linha única para dados contidos na sua tabela.

Editor de Texto

- Um Editor de Texto é um campo com várias linhas para os dados contidos na sua tabela.

Caixa de Seleção

- Uma Caixa de Seleção mostra um conjunto de opções a escolher.

Caixa de Verificação

- Uma Caixa de Verificação comum contém dois ou três estados de dados (⪚, Ligado/Desligado)

Área de Imagem

- Uma Área de Imagem guarda uma imagem associada a um campo numa tabela.

Botão

- Um Botão permite-lhe definir ações a executar ao clicar nele.

Quadro

- Um Quadro é usada como contentor para outros elementos.

Grupo

- Um Grupo é usado para agrupar outros elementos e controlar o seu estado.

Elemento de Página

- Um Elemento de Página é usado como contentor para outros elementos e poderá ter várias páginas que contêm diferentes elementos.

Linha

- Uma Linha é usada como separador lógico entre diferentes partes de um formulário.

Navegador Web

- Um Navegador Web é um elemento que lhe permite mostrar uma página Web dentro do formulário.

Atribuir Ação

- A opção Atribuir Ação é usada para atribuir uma ação a executar quando ocorre um evento (⪚, ao clicar num botão).

### A Página de Desenho do Relatório

Na página de Desenho do Relatório, você poderá selecionar os elementos a adicionar ao seu relatório.

Rótulo

- Um elemento de Legenda mostra as informações predefinidas num relatório. Normalmente é usada como um título ao lado de outros elementos de dados.

Campo

- Um elemento de Campo é uma linha única para dados que existam na sua tabela.

Texto

- Um elemento de Texto é um contentor em várias linhas para os dados contidos na sua tabela.

Imagem

- Um elemento de Imagem contém uma imagem, associada a um campo numa tabela.

Opção de Marcação

- Um item de Opção de Marcação contém dois ou três estados de dados (⪚, Ligado/Desligado)

Linha

- Uma Linha é usada como separador lógico entre diferentes partes de um formulário.

Gráfico

- Um elemento Gráfico é usado para adicionar uma representação visual dos seus dados apresentados num gráfico.

Web

- Um elemento Web é usado para fornecer um componente mínimo de navegação Web e imprimir informações de uma página Web local ou remota num relatório.

Código de Barras

- Um elemento de Código de Barras é usado para criar um código de barras a imprimir num relatório com dados guardados num campo.

## Apêndice A. Introdução aos Bancos de Dados

- O que é um banco de dados?

- Banco de dados e Planilha

- Desenho de Bancos de Dados

- Quem Precisa de um Banco de Dados?

- Aplicações de Criação de Bancos de Dados

### O Que é um Banco de Dados?

Você poderá definir um banco de dados com uma coleção de dados sobre um tópico. Ele está organizado de forma a permitir encontrar facilmente a informação, fazer alterações ou adicionar itens novos.

Veja este diagrama para um dos exemplos acima: uma agenda telefônica simples.

A imagem acima mostra um conjunto de dois contatos, sendo cada um deles apresentado em um cartão em separado. Parece que cada um dos cartões poderá constituir uma linha única numa tabela:

### Tabela de contatos

Nome | Num. Tel.
João | 699 23 43 12
Pedro | 711 19 77 21

Termos e definições: Um dado simples que constitui uma parte de uma coleção maior poderá ser chamado de linha ou, de forma mais profissional, um registro. A coleção chama-se normalmente tabela. Além disso, o nome mais natural para a tabela é um que descreve os dados que oferece/armazena, que é Contatos. Depois disso, cada linha da tabela consiste de colunas, também chamadas de campos. Na tabela `Contatos`, existem duas colunas (campos): o Nome e o Num. Tel..

Para usos simples, uma única tabela poderá constituir um banco de dados. Muitas pessoas consideram estas duas coisas equivalentes. Como você poderá ver, para os bancos de dados reais, é necessário normalmente mais de uma tabela.

Para resumir, você já tem um banco de dados simples com uma tabela `Contatos`.

Verifique o conteúdo em

### Banco de Dados e Planilhas

É bastante provável que você já tenha usado aplicações de planilhas, como o Calligra Sheets, o LibreOffice Calc ou o &Microsoft; Excel. Se assim for, provavelmente poderá perguntar: uma vez que tanto as planilhas como os bancos de dados possuem tabelas, porque eu deveria usar os bancos de dados?

Ao realizar uma comparação entre planilhas e bancos de dados, você poderá encontrar as seguintes questões que serão abordadas mais tarde em detalhes.

#### Quão diferente o Banco de Dados é da Planilha?

Excedendo gradualmente a capacidade de um telefone celular, expanda a sua tabela `Contatos` ao adicionar uma coluna (campo) `Endereço`. Adicione mais números de telefone (escritório, casa) para cada pessoa e adicione sobrenomes aos nomes. Para simplificar, nós assumiremos o seguinte:

- A tabela está limitada a duas pessoas (obviamente, poderão existir centenas e milhares delas num banco de dados real)

- Não existem duas pessoas com o mesmo nome e sobrenome

#### Tabela de contatos

Nome e sobrenome | Tel | Endereço
João Pires | 699 23 43 12 | Rua do Angustura, Nr 1, Rio de Janeiro
Pedro Morais | 711 19 77 21 | São Paulo, Rua 7 de Setembro, Nr 2
João Pires | 110 98 98 00 | Rua do Angustura, Nr 1
Pires João | 312 43 42 22 | Rio de Janeiro, Rua do Angustura, Nr 1
PEDRO Morais | 231 83 02 04 | Rua 7 de Setembro, Nr 2, São Paulo

Uma tabela como esta tanto pode ser feita numa planilha como numa base de dados. Usar uma planilha é muito simples, claro. Quais são os problemas que nós encontraremos neste estágio?

#### Integridade referencial dos dados

Suponha que você está usando uma planilha e necessita alterar o endereço de, pelo menos, uma pessoa. Você tem aí um pequeno problema: terá frequentemente que alterar o endereço em várias linhas. Por exemplo, o João ocupa três linhas. Um problema real ocorrerá se você se esquecer de alterar uma das linhas - o endereço atribuído a essa pessoa será ambíguo, logo os seus dados perdem integridade.

Além disso, não existe uma forma simples de remover uma pessoa escolhida da tabela, uma vez que você terá que se lembrar de apagar todas as linhas relacionadas com ela.

#### Redundância dos dados

Isto está ligado diretamente ao problema anterior. Nos campos Nome e sobrenome e Endereço, são indicados os mesmos dados várias vezes. Isto é típico das planilhas, uma forma ineficiente de guardar dados, uma vez que o banco de dados cresce desnecessariamente, consumindo mais recursos do computador (maior tamanho dos dados e um acesso mais lento).

Como você poderá resolver estes problemas com um banco de dados? Você poderá dividir a informação em blocos menores criando uma tabela adicional `Pessoas` com apenas duas colunas: `Nome e sobrenome` e `Endereço`:

#### Tabela de pessoas

Nome e sobrenome | Endereço
João Pires | Rua do Angustura, Nr 1, Rio de Janeiro
Pedro Morais | Rua 7 de Setembro, Nr 2, São Paulo

Cada linha da tabela `Pessoas` corresponde a uma única pessoa. A tabela `Contatos` é, a partir de agora, uma relação com a tabela `Pessoas`.

#### Integridade e validade dos dados

Repare na forma como os dados são introduzidos nos campos `Nome e sobrenome` e `Endereço`. As pessoas que inserem os dados poderão ser falíveis ou mesmo negligentes. Nos nossos dados exemplo, existem sequências diferentes de entrada do mesmo nome e sobrenome (João Pires e Pires João; Pedro e PEDRO), entre outras formas de entrada do mesmo endereço. Obviamente, você ainda poderá pensar em outras formas mais.

O problema acima mostra que, ⪚, ao procurar o número de telefone de uma pessoa que tenha o endereço Rua do Angustura, Nr 1, Rio de Janeiro não irá obter um resultado completo. Irá obter uma linha apenas, em vez de três. Além disso, você não irá encontrar todos os números de telefone que procurem pelo valor João Pires no campo `Nome e sobrenome`, uma vez que o Pires João não é igual ao João Pires.

Como você poderá resolver estes problemas com uma banco de dados? Você poderá fazer isto mudando o desenho da tabela `Pessoas` da seguinte forma:

1. Dividindo os dados no campo Nome e sobrenome em dois campos separados: `Nome` e `Sobrenome`.

2. Dividindo os dados no campo `Endereço` em três campos separados `Rua`, `Número` e `Cidade`.

3. Garanta a correção dos dados: assegurando que os campos não estão vazios, ⪚, você terá sempre que indicar o número da casa.

Uma tabela modificada se pareceria com algo como:

#### Tabela de pessoas

Nome | Sobrenome | Rua | Número | Cidade
João | Pires | Rua do Angustura | 1 | Varsóvia
Pedro | Morais | 7 de Setembro | 5 | São Paulo
Condições
campo obrigatório | campo obrigatório | campo obrigatório | campo obrigatório | campo obrigatório

Graças à introdução das condições para campo obrigatório, nós poderemos garantir que os dados inseridos estão completos. No caso das outras tabelas, você poderá obviamente permitir a omissão de certos campos ao inserir dados.

#### Limitar a visibilidade dos dados

Uma planilha mostra todas as linhas e colunas da tabela, o que poderá ser incômodo no caso de folhas de dados muito grandes. Você poderá, obviamente, filtrar e ordenar as linhas nas folhas de cálculo, contudo deverá ter bastante cuidado ao fazê-lo. Os usuários da planilhas correm o risco de se esquecer que os dados foram filtrados, o que poderá conduzir a erros. Por exemplo, ao calcular somas, você poderá pensar que tem 100 linhas de dados visíveis, quando de fato existem mais 20 ocultas.

Se quiser lidar com um pequeno subconjunto de dados, ⪚, para enviá-lo para outras pessoas editarem, você poderá copiá-lo e colá-lo em outra planilha e, após a edição, colar os dados alterados novamente na planilha principal. Esta edição manual poderá provocar a perda de dados ou cálculos incorretos.

Para limitar a visualização dos dados, as aplicações de bancos de dados oferecem pesquisas, formulários e relatórios.

Uma forma muito prática de limitar é a seguinte versão estendida da tabela `Pessoas`, descrita anteriormente:

#### Tabela de pessoas

Nome | Sobrenome | Rua | Número | Cidade | Vencimento
João | Pires | Rua do Angustura | 1 | Varsóvia | 2300
Pedro | Morais | 7 de Setembro | 5 | São Paulo | 1900

Vamos assumir que a coluna recém introduzida, Salário, contém dados confidenciais. Como você poderá compartilhar, ⪚, detalhes de contato das pessoas com os seus colaboradores, mas sem revelar os seus salários? É possível se compartilhar apenas uma consulta e não a tabela inteira. A consulta poderia selecionar todas as colunas, exceto a coluna Salário. No mundo dos bancos de dados, esse tipo de consulta é normalmente chamado de visão.

#### Performance e capacidade

O seu computador poderá ser muito rápido, contudo você irá notar que não o ajudará com planilhas lentas e grandes. A sua eficiência baixa é, antes de tudo, devida à falta de índices que acelerem o processo de procura de dados (os bancos de dados oferecem estes índices). Além disso, se você usar coisas como a área de transferência do sistema, até a cópia de dados poderá ser problemática com o tempo.

As planilhas que contenham grandes conjuntos de dados poderão levar uma eternidade a abrir. A planilha carrega um grande quantidade de dados para a memória do computador ao abrir. A maioria dos dados carregados será provavelmente inútil/desnecessária para você, naquele momento. Os bancos de dados, ao contrário das planilhas, carregam dados do disco do computador apenas se necessário.

Na maioria dos casos, você não terá que se preocupar como o banco de dados guarda os seus dados. Isto significa que, ao contrário das folhas de cálculo, os bancos de dados não se preocupam com:

- A sequência das linhas, uma vez que você poderá ordená-las de acordo com as suas necessidades. Além disso, você poderá ver os mesmos dados em várias visões com ordenações diferentes.

- O mesmo acontece com as colunas (campos) da tabela.

Em conjunto com o Limitar a visibilidade dos dados, descrito no parágrafo anterior, estas qualidades constituem a vantagem dos bancos de dados.

#### Entrada de dados

As últimas edições dos aplicativos para criar planilhas permitem-lhe desenhar formulários de introdução de dados. Esses formulários são extremamente úteis se os seus dados não puderem ser apresentados convenientemente numa tabela, ⪚, se o texto conter várias linhas ou se todas as colunas não couberem na tela.

Nesse caso, a forma correta como a planilha funciona é problemática. Os campos para a introdução de dados são colocados à vontade na planilha e, na maior parte dos casos, não são seguros no que diz respeito à intervenção do usuário (intencional ou acidental).

#### Relatórios

Os bancos de dados permitem agrupar, limitar e somar os dados numa espécie de relatório. As planilhas são normalmente impressas na forma de pequenas tabelas, sem um controle automático completo sobre as divisões das páginas e a disposição dos campos.

#### Programação

Os aplicativos para criar bancos de dados contém normalmente linguagens de programação completas. As planilhas mais recentes também têm essa capacidade, contudo os cálculos servem para modificar os campos da planilha e para cópias simples dos dados, sem se importar com a relevância das regras de integridade mencionadas nos parágrafos anteriores.

O processamento dos dados numa planilha é normalmente feito com uma interface de usuário gráfica, que poderá atrasar a velocidade de processamento dos dados. Os bancos de dados são capazes de funcionar em segundo plano, fora das interfaces gráficas.

#### Multi-uso

É difícil imaginar um multi-uso de uma planilha. Mesmo que seja tecnicamente possível, no caso dos últimos aplicativos, é necessário bastante disciplina, atenção e conhecimento por parte dos usuários, o que não pode ser garantido.

Uma forma clássica de compartilhar dados gravados numa planilha com outra pessoa é enviar um arquivo como um todo (usando normalmente o e-mail) ou fornecer uma planilha pela rede. Esta forma de trabalho é pouco eficiente para os grupos maiores de pessoas - os dados que poderiam ser necessários num determinado momento em particular, poderão estar bloqueados atualmente por outra pessoa.

Por outro lado, os bancos de dados foram desenhadas principalmente com acesso multi-uso e multi-usuário em mente. Mesmo o bloqueio mais simples, ao nível de uma linha de uma tabela em particular, é possível, o que permite um compartilhamento simples dos dados da tabela.

#### Segurança

A segurança de uma planilha ou de seções em particular com uma senha é meramente uma atividade simbólica. Após oferecer um arquivo de planilha na rede do computador, todas as pessoas que sejam capazes de copiar o arquivo, poderão tentar descobrir a senha. Normalmente, não será muito difícil, uma vez que a senha é guardada no mesmo arquivo da planilha.

Os recursos para bloquear a edição ou a cópia de uma planilha (ou parte dela), são normalmente fáceis de quebrar.

Os bancos de dados (exceto os salvos em um arquivo em vez de um servidor) não necessitam estar disponíveis num único arquivo. Você irá acessá-los com a rede do computadores, normalmente indicando um usuário e uma senha. Irá ganhar acesso apenas àquelas áreas (tabelas, formulários ou mesmo colunas e linhas selecionadas) que lhe tenham sido atribuídas, através dos direitos de acesso apropriados.

Os direitos de acesso poderão afetar a capacidade de edição dos dados ou apenas da leitura de dados. Se não estiverem disponíveis quaisquer dados para você, eles não serão sequer enviados para o seu computador, assim não há possibilidade de fazer uma cópia dos dados de forma simples, como acontece nas planilhas.

### Desenho de Banco de Dados

O desenho de bancos de dados requer um planeamento cuidadoso. Lembre-se de que a reorganização da tabela `Pessoas`, proposta na seção de Integridade e validade dos dado, poderá gerar problemas quando a tabela for preenchida com dados. Por exemplo, a mudança do nome de um campo é uma tarefa simples, mas dividir o campo `Endereço` em campos separados corresponde a um trabalho cuidadoso e entediante.

Para evitar estas situações, volte a pensar no seu projeto de banco de dados antes de criá-lo no seu computador e antes de você e os outros começarem a usá-lo. Assim, se investir algum tempo inicial, irá provavelmente poupar este tempo no dia-a-dia.

### Quem precisa de um Banco de Dados?

#### Use planilhas se:

- As suas necessidades são limitadas e os seus dados nunca irão crescer para grandes volumes (será que consegue prever isso para agora?)

- Não for capaz de adquirir a metodologia de construção de bancos de dados. Você poderá, contudo, considerar solicitar essa tarefa a alguém que saiba ou usar ferramentas mais simples.

- Se você usar folhas de cálculo complexas e não tem tempo ou dinheiro para mudar para bancos de dados. Pense ou pergunte a alguém se isso não o levará a um beco-sem-saída. Não conte com ferramentas mágicas que iriam transformar a sua planilha (por melhor que estejam concebidas) num banco de dados.

#### Pense em usar bancos de dados se:

- A sua coleção de dados se expande todas as semanas.

- Se você cria com frequência planilhas novas, as copia para dentro destas e sente que o seu trabalho está cada vez mais aborrecido. Nesse caso, o esforço de mudança para bancos de dados vale sempre a pena.

- Você poderá criar relatórios e instruções para os quais a visão em tabela da planilha não é adequada. Poderá então pensar em mudar para um banco de dados com visões de formulários.

### Programas de criação de Banco de Dados

Até agora, você ainda aprendeu as características gerais dos bancos de dados sem entrar em grandes pormenores sobre os aplicativos específicos que os desenharam.

Os primeiros bancos de dados foram criados em conjunto com os grandes servidores nos anos 60, ⪚, o IBM System/360. Eles não estavam a altura dos PCs atuais, como tal, esses bancos de dados necessitavam de pessoal altamente especializado. Ainda que o 'hardware' dos computadores antigos fosse pouco confiável, extremamente mais lento e tivesse menos capacidade de armazenamento, um dos recursos de banco de dados ainda continua atraente: o acesso aos dados por vários usuários através de uma rede.

Nos anos 70, os cientistas formaram a teoria dos bancos de dados relacionais (termos como: tabela, registro, coluna (campo) e relação, entre outros). Na base desta teoria, os bancos de dados IBM DB2 e Oracle foram criados, sendo desenvolvidos e usados até hoje. Na final dos anos 70, foram construídos os primeiros PCs. Os seus usuários poderiam (gradualmente) usar vários tipos de aplicativos, incluindo os usados para a construção de bancos de dados.

Quando chegaram os grandes bancos de dados nas empresas, a situação não mudou: eles continuam a pedir computadores poderosos ou complexos de computadores chamados clusters. Isto vai, porém, além do escopo deste manual.

Na área de bancos de dados acessíveis, com interfaces gráficas para PCs, você poderá escolher o seguinte:

- DBase - uma ferramenta para operar bancos de dados para DOS, popular nos anos 80. Os arquivos no formato do DBase ainda hoje são usados em alguns casos específicos, devido à sua simplicidade.

- FoxPro - um aplicativo semelhante ao DBase (início dos anos 90). Após ter sido adquirido pela Microsoft, as interfaces gráficas foram introduzidas e, como tal, é usada para criar bancos de dados nos PCs. Este produto ainda é oferecido, ainda que esteja um pouco obsoleto.

- Microsoft Access - um aplicativo para bancos de dados (dados e desenho gráfico da interface) com muitas simplificações, o que o torna adequado para principiantes; foi desenhada no fim dos anos 80, baseada na arquitetura de 16 bits. Os produtos oferecidos ainda são largamente usados nos dias de hoje, especialmente nas empresas pequenas, onde a eficiência e os requisitos multi-usuário não são muito importantes.

- FileMaker - um aplicativo conhecido e semelhante ao MS Access em simplicidade, operando em plataformas Windows e Macintosh, que é oferecido desde 1985.

- Kexi - um aplicativo multi-plataforma (&UNIX;/&Linux;, Windows, &MacOS; X), desenhado em 2003, desenvolvido com base nos princípios do OpenSource, parte da comunidade KDE, que dentre outras coisas fornece um ambiente gráfico para os sistemas &UNIX;/&Linux;. Um contribuinte importante para o desenvolvimento do Kexi foi a companhia OpenOffice da Polônia.

## Apêndice B. Comparar o Kexi a outras aplicações de bancos de dados

- Tipos de dados

### Tipos de dados

Ainda que os diferentes aplicativos de bancos de dados tendam a oferecer funcionalidades semelhantes, usam normalmente terminologias diferentes. Para sua conveniência, este apêndice explica como a terminologia usada no &kexi; corresponde à usada pelos outros aplicativo de bancos de dados. Assim, este capítulo poderá ser útil ao migrar os bancos de dados de um aplicativo para outro.

A tabela abaixo explica como os tipos de dados no &kexi; correspondem aos dos outros aplicativos de bancos de dados.

Alguns dos tipos de dados aqui apresentados são subtipos de outros. Por exemplo, o tipo Texto longo é um subtipo do tipo Texto. Para usar um subtipo no &kexi;, você deverá selecionar o tipo básico correspondente (neste caso, o Texto) no desenho da tabela e depois selecionar o subtipo com a opção Subtipo do Editor de propriedades.

### Comparação dos tipos de dados usados no Kexi e nas outras aplicações de bases de dados

&kexi; | MS Access | dBase/FoxPro | Paradox
Texto | Texto | Caractere | Alfanumérico
Texto longo | Memorando | Memorando | Memorando
Data/Hora | Data, Hora | Data | DataHora
Número Inteiro | Número (Inteiro) | Numérico | Inteiro
Número Inteiro Grande | Inteiro Longo | Numérico | Inteiro Longo
Número de Ponto Flutuante | Número de Precisão Simples/Dupla | Real | Número

## Apêndice C. Palavras reservadas para o SQL

As seguintes listas contêm palavras que são usadas internamente pelo &kexi; ao trabalhar com as fontes de dados.

Ao desenhar o seu banco de dados, você deverá tentar evitar ao máximo utilizar estas palavras reservadas, pois caso contrário acabará tendo problemas com o seu banco de dados ou até mesmo corrompê-lo.

Se você quiser continuar a usar as palavras reservadas, envolva-as entre aspas .

### Palavras Reservadas de SQL no Kexi

Esta lista contém palavras-chave que são reservadas para usar em SQL no Kexi:

- AFTER

- ALL

- ASC

- BEFORE

- BEGIN

- BETWEEN

- BY

- CASCADE

- CASE

- CHECK

- COLLATE

- COMMIT

- CONSTRAINT

- CROSS

- DATABASE

- DEFAULT

- DELETE

- DESC

- DISTINCT

- DROP

- END

- ELSE

- EXPLAIN

- FOR

- FOREIGN

- FULL

- GROUP

- HAVING

- IGNORE

- INDEX

- INNER

- INSERT

- INTO

- KEY

- LIMIT

- MATCH

- NATURAL

- OFFSET

- ORDER

- OUTER

- PRIMARY

- REFERENCES

- REPLACE

- RESTRICT

- ROLLBACK

- ROW

- SET

- TEMPORARY

- THEN

- TRANSACTION

- UNION

- UNIQUE

- UPDATE

- USING

- VALUES

- WHEN

### Palavras Reservadas do Controlador de SQLite do Kexi

Esta lista contém as palavras-chave que são reservadas para usar no controlador de SQLite do Kexi:

- ABORT

- ATTACH

- CLUSTER

- CONFLICT

- DEFERRED

- DEFERRABLE

- DETACH

- EACH

- EXCEPT

- FAIL

- GLOB

- IMMEDIATE

- INITIALLY

- INSTEAD

- INTERSECT

- ISNULL

- NOTNULL

- OF

- PRAGMA

- RAISE

- STATEMENT

- TEMP

- TRIGGER

- VACUUM

- VIEW

### Palavras Reservadas do Controlador de MySQL do Kexi

Esta lista contém as palavras-chave que são reservadas para ser usadas pelo controlador de MySQL do Kexi:

- ACTION

- ADD

- AGAINST

- AGGREGATE

- ALTER

- ANALYZE

- ANY

- ASCII

- AUTO_INCREMENT

- AVG

- AVG_ROW_LENGTH

- BACKUP

- BDB

- BERKELEYDB

- BIGINT

- BINARY

- BINLOG

- BIT

- BLOB

- BOOL

- BOOLEAN

- BOTH

- BTREE

- BYTE

- CACHE

- CHANGE

- CHANGED

- CHAR

- CHARACTER

- CHARSET

- CHECKSUM

- CIPHER

- CLIENT

- CLOSE

- COLLATION

- COLUMN

- COLUMNS

- COMMENT

- COMMITTED

- COMPRESSED

- CONCURRENT

- CONVERT

- CUBE

- CURRENT_DATE

- CURRENT_TIME

- CURRENT_TIMESTAMP

- CURRENT_USER

- DATA

- DATABASES

- DATE

- DATETIME

- DAY

- DAY_HOUR

- DAY_MICROSECOND

- DAY_MINUTE

- DAY_SECOND

- DEALLOCATE

- DEC

- DECIMAL

- DELAYED

- DELAY_KEY_WRITE

- DESCRIBE

- DES_KEY_FILE

- DIRECTORY

- DISABLE

- DISCARD

- DISTINCTROW

- DIV

- DO

- DOUBLE

- DUAL

- DUMPFILE

- DUPLICATE

- DYNAMIC

- ENABLE

- ENCLOSED

- ENGINE

- ENGINES

- ENUM

- ERRORS

- ESCAPE

- ESCAPED

- EVENTS

- EXECUTE

- EXISTS

- EXPANSION

- EXTENDED

- FALSE

- FAST

- FIELDS

- FILE

- FIRST

- FIXED

- FLOAT

- FLOAT4

- FLOAT8

- FLUSH

- FORCE

- FULLTEXT

- FUNCTION

- GEOMETRY

- GEOMETRYCOLLECTION

- GET_FORMAT

- GLOBAL

- GRANT

- GRANTS

- HANDLER

- HASH

- HELP

- HIGH_PRIORITY

- HOSTS

- HOUR

- HOUR_MICROSECOND

- HOUR_MINUTE

- HOUR_SECOND

- IDENTIFIED

- IF

- IMPORT

- INDEXES

- INFILE

- INNOBASE

- INNODB

- INSERT_METHOD

- INT

- INT1

- INT2

- INT3

- INT4

- INT8

- INTERVAL

- IO_THREAD

- ISOLATION

- ISSUER

- KEYS

- KILL

- LAST

- LEADING

- LEAVES

- LEVEL

- LINES

- LINESTRING

- LOAD

- LOCAL

- LOCALTIME

- LOCALTIMESTAMP

- LOCK

- LOCKS

- LOGS

- LONG

- LONGBLOB

- LONGTEXT

- LOW_PRIORITY

- MASTER

- MASTER_CONNECT_RETRY

- MASTER_HOST

- MASTER_LOG_FILE

- MASTER_LOG_POS

- MASTER_PASSWORD

- MASTER_PORT

- MASTER_SERVER_ID

- MASTER_SSL

- MASTER_SSL_CA

- MASTER_SSL_CAPATH

- MASTER_SSL_CERT

- MASTER_SSL_CIPHER

- MASTER_SSL_KEY

- MASTER_USER

- MAX_CONNECTIONS_PER_HOUR

- MAX_QUERIES_PER_HOUR

- MAX_ROWS

- MAX_UPDATES_PER_HOUR

- MEDIUM

- MEDIUMBLOB

- MEDIUMINT

- MEDIUMTEXT

- MICROSECOND

- MIDDLEINT

- MINUTE

- MINUTE_MICROSECOND

- MINUTE_SECOND

- MIN_ROWS

- MOD

- MODE

- MODIFY

- MONTH

- MULTILINESTRING

- MULTIPOINT

- MULTIPOLYGON

- NAMES

- NATIONAL

- NDB

- NDBCLUSTER

- NCHAR

- NEW

- NEXT

- NO

- NONE

- NO_WRITE_TO_BINLOG

- NUMERIC

- NVARCHAR

- OLD_PASSWORD

- ONE_SHOT

- OPEN

- OPTIMIZE

- OPTION

- OPTIONALLY

- OUTFILE

- PACK_KEYS

- PARTIAL

- PASSWORD

- POINT

- POLYGON

- PRECISION

- PREPARE

- PREV

- PRIVILEGES

- PROCEDURE

- PROCESS

- PROCESSLIST

- PURGE

- QUERY

- QUICK

- RAID0

- RAID_CHUNKS

- RAID_CHUNKSIZE

- RAID_TYPE

- READ

- REAL

- REGEXP

- RELAY_LOG_FILE

- RELAY_LOG_POS

- RELAY_THREAD

- RELOAD

- RENAME

- REPAIR

- REPEATABLE

- REPLICATION

- REQUIRE

- RESET

- RESTORE

- RETURNS

- REVOKE

- RLIKE

- ROLLUP

- ROWS

- ROW_FORMAT

- RTREE

- SAVEPOINT

- SECOND

- SECOND_MICROSECOND

- SEPARATOR

- SERIAL

- SERIALIZABLE

- SESSION

- SHARE

- SHOW

- SHUTDOWN

- SIGNED

- SIMPLE

- SLAVE

- SMALLINT

- SOME

- SONAME

- SOUNDS

- SPATIAL

- SQL_BIG_RESULT

- SQL_BUFFER_RESULT

- SQL_CACHE

- SQL_CALC_FOUND_ROWS

- SQL_NO_CACHE

- SQL_SMALL_RESULT

- SQL_THREAD

- SSL

- START

- STARTING

- STATUS

- STOP

- STORAGE

- STRAIGHT_JOIN

- STRING

- STRIPED

- SUBJECT

- SUPER

- TABLES

- TABLESPACE

- TERMINATED

- TEXT

- TIME

- TIMESTAMP

- TINYBLOB

- TINYINT

- TINYTEXT

- TRAILING

- TRUE

- TRUNCATE

- TYPE

- TYPES

- UNCOMMITTED

- UNICODE

- UNLOCK

- UNSIGNED

- UNTIL

- USAGE

- USE

- USER

- USER_RESOURCES

- USE_FRM

- UTC_DATE

- UTC_TIME

- UTC_TIMESTAMP

- VALUE

- VARBINARY

- VARCHAR

- VARCHARACTER

- VARIABLES

- VARYING

- WARNINGS

- WITH

- WORK

- WRITE

- X509

- YEAR

- YEAR_MONTH

- ZEROFILL

### Palavras Reservadas do Controlador de PostgreSQL do Kexi

Esta lista contém as palavras-chave que são reservadas no uso do controlador 'pqxx' do Kexi:

- ABORT

- ABSOLUTE

- ACCESS

- ACTION

- ADD

- AGGREGATE

- ALTER

- ANALYSE

- ANALYZE

- ANY

- ARRAY

- ASSERTION

- ASSIGNMENT

- AT

- AUTHORIZATION

- BACKWARD

- BIGINT

- BINARY

- BIT

- BOOLEAN

- BOTH

- CACHE

- CALLED

- CAST

- CHAIN

- CHAR

- CHARACTER

- CHARACTERISTICS

- CHECKPOINT

- CLASS

- CLOSE

- CLUSTER

- COALESCE

- COLUMN

- COMMENT

- COMMITTED

- CONSTRAINTS

- CONVERSION

- CONVERT

- COPY

- CREATEDB

- CREATEUSER

- CURRENT_DATE

- CURRENT_TIME

- CURRENT_TIMESTAMP

- CURRENT_USER

- CURSOR

- CYCLE

- DAY

- DEALLOCATE

- DEC

- DECIMAL

- DECLARE

- DEFAULTS

- DEFERRABLE

- DEFERRED

- DEFINER

- DELIMITER

- DELIMITERS

- DO

- DOMAIN

- DOUBLE

- EACH

- ENCODING

- ENCRYPTED

- ESCAPE

- EXCEPT

- EXCLUDING

- EXCLUSIVE

- EXECUTE

- EXISTS

- EXTERNAL

- EXTRACT

- FALSE

- FETCH

- FIRST

- FLOAT

- FORCE

- FORWARD

- FREEZE

- FUNCTION

- GLOBAL

- GRANT

- HANDLER

- HOLD

- HOUR

- ILIKE

- IMMEDIATE

- IMMUTABLE

- IMPLICIT

- INCLUDING

- INCREMENT

- INHERITS

- INITIALLY

- INOUT

- INPUT

- INSENSITIVE

- INSTEAD

- INT

- INTERSECT

- INTERVAL

- INVOKER

- ISNULL

- ISOLATION

- LANCOMPILER

- LANGUAGE

- LAST

- LEADING

- LEVEL

- LISTEN

- LOAD

- LOCAL

- LOCALTIME

- LOCALTIMESTAMP

- LOCATION

- LOCK

- MAXVALUE

- MINUTE

- MINVALUE

- MODE

- MONTH

- MOVE

- NAMES

- NATIONAL

- NCHAR

- NEW

- NEXT

- NO

- NOCREATEDB

- NOCREATEUSER

- NONE

- NOTHING

- NOTIFY

- NOTNULL

- NULLIF

- NUMERIC

- OF

- OFF

- OIDS

- OLD

- ONLY

- OPERATOR

- OPTION

- OUT

- OVERLAPS

- OVERLAY

- OWNER

- PARTIAL

- PASSWORD

- PATH

- PENDANT

- PLACING

- POSITION

- PRECISION

- PREPARE

- PRESERVE

- PRIOR

- PRIVILEGES

- PROCEDURAL

- PROCEDURE

- READ

- REAL

- RECHECK

- REINDEX

- RELATIVE

- RENAME

- RESET

- RESTART

- RETURNS

- REVOKE

- ROWS

- RULE

- SCHEMA

- SCROLL

- SECOND

- SECURITY

- SEQUENCE

- SERIALIZABLE

- SESSION

- SESSION_USER

- SETOF

- SHARE

- SHOW

- SIMPLE

- SMALLINT

- SOME

- STABLE

- START

- STATEMENT

- STATISTICS

- STDIN

- STDOUT

- STORAGE

- STRICT

- SUBSTRING

- SYSID

- TEMP

- TEMPLATE

- TIME

- TIMESTAMP

- TOAST

- TRAILING

- TREAT

- TRIGGER

- TRIM

- TRUE

- TRUNCATE

- TRUSTED

- TYPE

- UNENCRYPTED

- UNKNOWN

- UNLISTEN

- UNTIL

- USAGE

- USER

- VACUUM

- VALID

- VALIDATOR

- VARCHAR

- VARYING

- VERBOSE

- VERSION

- VIEW

- VOLATILE

- WITH

- WITHOUT

- WORK

- WRITE

- YEAR

- ZONE

### Palavras Reservadas do Controlador de Oracle do Kexi

Esta lista contém as palavras-chave que são reservadas no uso do controlador de Oracle do Kexi:

- ADMIN

- AFTER

- ALLOCATE

- ANALYZE

- ARCHIVE

- ARCHIVELOG

- AUTHORIZATION

- AVG

- BACKUP

- BECOME

- BEFORE

- BEGIN

- BLOCK

- BODY

- CACHE

- CANCEL

- CASCADE

- CHANGE

- CHARACTER

- CHECKPOINT

- CLOSE

- COBOL

- COMMIT

- COMPILE

- CONSTRAINT

- CONSTRAINTS

- CONTENTS

- CONTINUE

- CONTROLFILE

- COUNT

- CURSOR

- CYCLE

- DATABASE

- DATAFILE

- DATE

- DBA

- DEC

- DECLARE

- DISABLE

- DISMOUNT

- DOUBLE

- DUMP

- EACH

- ENABLE

- END

- ESCAPE

- EVENTS

- EXCEPT

- EXCEPTIONS

- EXEC

- EXECUTE

- EXPLAIN

- EXTENT

- EXTERNALLY

- FETCH

- FLUSH

- FORCE

- FOREIGN

- FORTRAN

- FOUND

- FREELIST

- FREELISTS

- FUNCTION

- GO

- GOTO

- GROUPS

- INCLUDING

- INDICATOR

- INITRANS

- INSTANCE

- INT

- KEY

- LANGUAGE

- LAYER

- LINK

- LISTS

- LOGFILE

- MANAGE

- MANUAL

- MAX

- MAXDATAFILES

- MAXINSTANCES

- MAXLOGFILES

- MAXLOGHISTORY

- MAXLOGMEMBERS

- MAXTRANS

- MAXVALUE

- MIN

- MINEXTENTS

- MINVALUE

- MODULE

- MOUNT

- NEW

- NEXT

- NOARCHIVELOG

- NOCACHE

- NOCYCLE

- NOMAXVALUE

- NOMINVALUE

- NONE

- NOORDER

- NORESETLOGS

- NORMAL

- NOSORT

- NUMERIC

- OFF

- OLD

- ONLY

- OPEN

- OPTIMAL

- OWN

- PACKAGE

- PARALLEL

- PCTINCREASE

- PCTUSED

- PLAN

- PLI

- PRECISION

- PRIMARY

- PRIVATE

- PROCEDURE

- PROFILE

- QUOTA

- READ

- REAL

- RECOVER

- REFERENCES

- REFERENCING

- RESETLOGS

- RESTRICTED

- REUSE

- ROLE

- ROLES

- ROLLBACK

- SAVEPOINT

- SCHEMA

- SCN

- SECTION

- SEGMENT

- SEQUENCE

- SHARED

- SNAPSHOT

- SOME

- SORT

- SQL

- SQLCODE

- SQLERROR

- SQLSTATE

- STATEMENT_ID

- STATISTICS

- STOP

- STORAGE

- SUM

- SWITCH

- SYSTEM

- TABLES

- TABLESPACE

- TEMPORARY

- THREAD

- TIME

- TRACING

- TRANSACTION

- TRIGGERS

- TRUNCATE

- UNDER

- UNLIMITED

- UNTIL

- USE

- USING

- WHEN

- WORK

- WRITE

### Palavras Reservadas do Controlador de Sybase do Kexi

Esta lista contém as palavras-chave que são reservadas para o uso do controlador de Sybase do Kexi:

- ACTION

- ADD

- AGAINST

- AGGREGATE

- ALTER

- ANALYZE

- ANY

- ASCII

- AUTOINCREMENT

- AVG

- AVG_ROW_LENGTH

- BACKUP

- BDB

- BERKELEYDB

- BIGINT

- BINARY

- BINLOG

- BIT

- BLOB

- BOOL

- BOOLEAN

- BOTH

- BTREE

- BYTE

- CACHE

- CHANGE

- CHANGED

- CHAR

- CHARACTER

- CHARSET

- CHECKSUM

- CIPHER

- CLIENT

- CLOSE

- COLLATION

- COLUMN

- COLUMNS

- COMMENT

- COMMITTED

- COMPRESSED

- CONCURRENT

- CONVERT

- CUBE

- CURRENT_DATE

- CURRENT_TIME

- CURRENT_TIMESTAMP

- CURRENT_USER

- DATA

- DATABASES

- DATE

- DATETIME

- DAY

- DAY_HOUR

- DAY_MICROSECOND

- DAY_MINUTE

- DAY_SECOND

- DEALLOCATE

- DEC

- DECIMAL

- DELAYED

- DELAY_KEY_WRITE

- DESCRIBE

- DES_KEY_FILE

- DIRECTORY

- DISABLE

- DISCARD

- DISTINCTROW

- DIV

- DO

- DOUBLE

- DUAL

- DUMPFILE

- DUPLICATE

- DYNAMIC

- ENABLE

- ENCLOSED

- ENGINE

- ENGINES

- ENUM

- ERRORS

- ESCAPE

- ESCAPED

- EVENTS

- EXECUTE

- EXISTS

- EXPANSION

- EXTENDED

- FALSE

- FAST

- FIELDS

- FILE

- FIRST

- FIXED

- FLOAT

- FLOAT4

- FLOAT8

- FLUSH

- FORCE

- FULLTEXT

- FUNCTION

- GEOMETRY

- GEOMETRYCOLLECTION

- GET_FORMAT

- GLOBAL

- GRANT

- GRANTS

- HANDLER

- HASH

- HELP

- HIGH_PRIORITY

- HOSTS

- HOUR

- HOUR_MICROSECOND

- HOUR_MINUTE

- HOUR_SECOND

- IDENTIFIED

- IF

- IMPORT

- INDEXES

- INFILE

- INNOBASE

- INNODB

- INSERT_METHOD

- INT

- INT1

- INT2

- INT3

- INT4

- INT8

- INTERVAL

- IO_THREAD

- ISOLATION

- ISSUER

- KEYS

- KILL

- LAST

- LEADING

- LEAVES

- LEVEL

- LINES

- LINESTRING

- LOAD

- LOCAL

- LOCALTIME

- LOCALTIMESTAMP

- LOCK

- LOCKS

- LOGS

- LONG

- LONGBLOB

- LONGTEXT

- LOW_PRIORITY

- MASTER

- MASTER_CONNECT_RETRY

- MASTER_HOST

- MASTER_LOG_FILE

- MASTER_LOG_POS

- MASTER_PASSWORD

- MASTER_PORT

- MASTER_SERVER_ID

- MASTER_SSL

- MASTER_SSL_CA

- MASTER_SSL_CAPATH

- MASTER_SSL_CERT

- MASTER_SSL_CIPHER

- MASTER_SSL_KEY

- MASTER_USER

- MAX_CONNECTIONS_PER_HOUR

- MAX_QUERIES_PER_HOUR

- MAX_ROWS

- MAX_UPDATES_PER_HOUR

- MEDIUM

- MEDIUMBLOB

- MEDIUMINT

- MEDIUMTEXT

- MICROSECOND

- MIDDLEINT

- MINUTE

- MINUTE_MICROSECOND

- MINUTE_SECOND

- MIN_ROWS

- MOD

- MODE

- MODIFY

- MONTH

- MULTILINESTRING

- MULTIPOINT

- MULTIPOLYGON

- NAMES

- NATIONAL

- NDB

- NDBCLUSTER

- NCHAR

- NEW

- NEXT

- NO

- NONE

- NO_WRITE_TO_BINLOG

- NUMERIC

- NVARCHAR

- OLD_PASSWORD

- ONE_SHOT

- OPEN

- OPTIMIZE

- OPTION

- OPTIONALLY

- OUTFILE

- PACK_KEYS

- PARTIAL

- PASSWORD

- POINT

- POLYGON

- PRECISION

- PREPARE

- PREV

- PRIVILEGES

- PROCEDURE

- PROCESS

- PROCESSLIST

- PURGE

- QUERY

- QUICK

- RAID0

- RAID_CHUNKS

- RAID_CHUNKSIZE

- RAID_TYPE

- READ

- REAL

- REGEXP

- RELAY_LOG_FILE

- RELAY_LOG_POS

- RELAY_THREAD

- RELOAD

- RENAME

- REPAIR

- REPEATABLE

- REPLICATION

- REQUIRE

- RESET

- RESTORE

- RETURNS

- REVOKE

- RLIKE

- ROLLUP

- ROWS

- ROW_FORMAT

- RTREE

- SAVEPOINT

- SECOND

- SECOND_MICROSECOND

- SEPARATOR

- SERIAL

- SERIALIZABLE

- SESSION

- SHARE

- SHOW

- SHUTDOWN

- SIGNED

- SIMPLE

- SLAVE

- SMALLINT

- SOME

- SONAME

- SOUNDS

- SPATIAL

- SQL_BIG_RESULT

- SQL_BUFFER_RESULT

- SQL_CACHE

- SQL_CALC_FOUND_ROWS

- SQL_NO_CACHE

- SQL_SMALL_RESULT

- SQL_THREAD

- SSL

- START

- STARTING

- STATUS

- STOP

- STORAGE

- STRAIGHT_JOIN

- STRING

- STRIPED

- SUBJECT

- SUPER

- TABLES

- TABLESPACE

- TERMINATED

- TEXT

- TIME

- TIMESTAMP

- TINYBLOB

- TINYINT

- TINYTEXT

- TRAILING

- TRUE

- TRUNCATE

- TYPE

- TYPES

- UNCOMMITTED

- UNICODE

- UNLOCK

- UNSIGNED

- UNTIL

- USAGE

- USE

- USER

- USER_RESOURCES

- USE_FRM

- UTC_DATE

- UTC_TIME

- UTC_TIMESTAMP

- VALUE

- VARBINARY

- VARCHAR

- VARCHARACTER

- VARIABLES

- VARYING

- WARNINGS

- WITH

- WORK

- WRITE

- X509

- YEAR

- YEAR_MONTH

- ZEROFILL

### Palavras Reservadas do Controlador de xBase do Kexi

Esta lista contém as palavras-chave que são reservadas para o uso do controlador de xBase do Kexi:

- ABORT

- ATTACH

- CLUSTER

- CONFLICT

- DEFERRED

- DEFERRABLE

- DETACH

- EACH

- EXCEPT

- FAIL

- GLOB

- IMMEDIATE

- INITIALLY

- INSTEAD

- INTERSECT

- ISNULL

- NOTNULL

- OF

- PRAGMA

- RAISE

- STATEMENT

- TEMP

- TRIGGER

- VACUUM

- VIEW

As palavras reservadas são mantidas em separado para cada controlador, para que também possam ser usadas como referência.

## Apêndice D. Formatos de arquivo suportados

### Formato de valores separados por vírgula (CSV)

O &kexi; é capaz de importar e exportar dados de/para uma variedade de formatos de valores separados por vírgula (arquivos CSV). A maioria dos aplicativos de planilha e banco de dados podem importar e exportar neste formato, tornando-o um formato apropriado para migrar dados textuais entre aplicações diferentes.

O &kexi; também suporta várias opções que podem ser configuradas antes de realizar a importação:

- tipo de dado para cada coluna,

- outros delimitadores de campo como tabulações,

- delimitadores de texto diferentes,

- um determinado número de registros pode ser ignorado, se necessário,

- delimitadores duplicados podem ser ignorados,

- os valores da primeira coluna podem ser usados para definir os nomes das colunas,

- codificação de texto (a UTF-8 é a padrão),

- formato de data (definido pelo sistema operacional, por padrão),

- remoção de espaços em branco no início e no final dos valores de texto.

Na importação, o &kexi; exibe uma previsão dos dados importados. A maioria das configurações é detectada automaticamente pelo &kexi; com base no arquivo CSV fornecido.

### Formato de arquivo do Microsoft Access (MDB)

#### Visão geral

O suporte à importação de bancos de dados do Microsoft Access (2003 ou mais antigo) está embutido no &kexi;. Bancos de dados do Access podem ser importados somente para um banco de dados do &kexi;. Ele não pode ser usado para editar o banco de dados, nem exportar para um banco de dados do Access. No entanto, ele deve também ser capaz de importar bancos de dados criados com outros aplicativos que usam o motor de banco de dados JET. A importação de banco de dados `.accdb` produzidos no MS Access 2007 não é atualmente suportada.

Para importar um banco de dados:

1. No menu &kexi; selecione o comando Importar, exportar ou enviar....

2. Clique no botão Importar banco de dados.

3. Use o assistente de importação selecionando o arquivo .mdb desejado.

#### Recursos

A função de importação foi usada com sucesso para importar o banco de dados Northwind, bem conhecido dos usuários do MS Access. Muitos outros modelos de banco de dados do Access podem também ser importados.

#### Recursos suportados

A importação dos seguintes tipos de campo foram testadas e funcionam bem, em geral:

- Campos de texto

- Campo de memorando

- Campos de data

- Valores numéricos

#### Recursos não suportados

Atualmente, somente as tabelas são importadas. Durante a importação, o &kexi; ignora os seguintes objetos:

- Consultas

- Formulários

- Scripts

- Relatórios

O a seguir não foi testado:

- Importar objetos binários

## Créditos e licença

&kexi; Copyright 2002-2012 da Equipe do Kexi

Programadores do Kexi:

- Jaroslaw Staniek (staniek kde.org)

- OpenOffice Polska, LLC (info openoffice.com.pl)

- Lucijan Busch (lucijan kde.org)

- Cedric Pasteur (cedric.pasteur free.fr)

- Adam Pigg (adam piggz.fsnet.co.uk)

- Martin Ellis (martin.ellis kdemail.net)

- Sebastian Sauer (mail dipe.org)

- Christian Nitschkowski (segfault_ii web.de)

- Peter Simonsson (psn linux.se)

- Joseph Wenninger (jowenn kde.org)

- Seth Kurzenberg (seth cql.com)

- Laurent Montel (montel kde.org)

- Till Busch (till bux.at)

Documentação de Martin A. Ellis (martin.ellis kdemail.net), Jaroslaw Staniek (staniek kde.org) com contribuições de Anne-Marie Mahfouf, Raphael Langerhorst, Michal Kubicki e Aron Stansvik.

Este programa estará licenciado segundo os termos da Licença Pública Geral Lata da GNU (LGPL).

Tradução de Marcus Gama marcus.gama@gmail.com e André Marcelo Alvarenga alvarenga@kde.org

&underFDL;
&documentation.index;