Gerir Bases de Dados
Depois de criar uma ligação, pode selecioná-la clicando na ação Select Connection (Selecionar Ligação) na grelha de ligações. Vai reparar que a ligação será representada por um tipo de separador exterior chamado Separador de Ligação. E toda esta área é chamada de Janela de Trabalho (Workspace Window).

Secções da janela Workspace
Esta interface tem vários elementos:

- 1) Connections (Ligações): Abre uma janela pop-up com a grelha de Connections
- 2) Outer Tabs (Separadores Exteriores): O OmniDB permite trabalhar com várias bases de dados ao mesmo tempo. Cada base de dados será acessível através de um separador exterior. Os separadores exteriores também podem alojar funcionalidades diversas independentes de ligação, como a funcionalidade Snippets
- 3) Options (Opções): Mostra o utilizador atualmente com sessão iniciada, e se o utilizador for superutilizador, também mostra uma ligação para gestão de utilizadores. Também mostra ligações para definições do utilizador, plugins instalados, histórico de consultas, informação e terminar sessão.
Separador Exterior de Ligação
O separador exterior chamado PostgreSQL – testdb tem este nome devido ao alias
(PostgreSQL) que colocámos na ligação à base de dados testdb. Este separador é um
Separador Exterior de Ligação (Connection Outer Tab). Repare no pequeno separador com uma cruz ao lado do
separador exterior PostgreSQL – testdb. Isto permite criar um novo separador exterior que
será automaticamente um Separador Exterior de Ligação. No entanto, o Separador Exterior de Snippet
é fixo e será sempre o primeiro.
Um novo Separador Exterior de Ligação irá sempre apontar automaticamente para a primeira ligação na sua lista de ligações de base de dados. Ou, se clicou na ação Select Connection, irá apontar para a ligação selecionada. Observe os elementos dentro deste separador:

- 1) Connection Selector (Seletor de Ligação): Mostra todas as ligações e permite ao utilizador selecionar a atual
- 2) Tree of Structures (Árvore de Estruturas): Apresenta uma árvore hierárquica onde pode navegar pelos elementos da base de dados
- 3) Properties and DDL Panels (Painéis de Propriedades e DDL): Mostram as Propriedades e o DDL do nó atualmente selecionado na vista em árvore
- 4) Inner Tabs (Separadores Interiores): Permitem ao utilizador executar ações na base de dados atual. Existem vários tipos de separadores interiores para a base de dados atual. Ao clicar no último pequeno separador com uma cruz, pode adicionar um novo separador. Um novo separador pode ser um Separador de Consulta (Query Tab), Separador de Consola (Console Tab), Painel de Monitorização (Monitoring Dashboard) ou Backends

- 5) Inner Tab Content (Conteúdo do Separador Interior): Pode variar consoante o tipo de separador interior. A figura mostra um Separador de Consulta e, neste caso, o conteúdo será um Editor SQL, com realce de sintaxe, autocompletar e localizar e substituir
- 6) Inner Tab Actions (Ações do Separador Interior): Podem variar consoante o tipo de separador interior. Para um Separador de Consulta, são Run (Executar), Indent SQL (Indentar SQL), Command History (Histórico de Comandos), Explain, Explain Analyze, Autocommit e Export Data (Exportar Dados)
- 7) Inner Tab Results (Resultados do Separador Interior): Um Separador de Consulta, depois de clicar no
botão Execute ou de premir o atalho de execução (
Alt-Q), mostrará uma grelha com os resultados da consulta no subseparador Data. Se a consulta chamar uma função que gera mensagens, estas serão mostradas no subseparador Messages. Se em vez de Run tiver clicado em Explain ou Explain Analyze, o plano de explicação da consulta será mostrado no subseparador Explain.
Trabalhar com bases de dados
Olhe para o seu seletor de ligações. O OmniDB aponta sempre para a primeira ligação disponível, mas pode alterá-la clicando no seletor.

Selecione a ligação PostgreSQL. Agora vá até à árvore mesmo abaixo do seletor e clique para expandir o nó raiz PostgreSQL.

Tenha em atenção que, sempre que passarem 30 minutos sem realizar ações na base de dados, será acionada uma janela pop-up de Authentication (Autenticação), o que significa que a palavra-passe que o OmniDB encriptou e armazenou em memória expirou agora. Como foi explicado anteriormente, isto é importante para a segurança da sua base de dados. Depois de introduzir a palavra-passe correta, verá que o nó PostgreSQL mostra agora a versão do PostgreSQL e também foi expandido, mostrando a ligação de base de dados atual e também elementos ao nível da instância: Databases (Bases de Dados), Tablespaces (Tablespaces), Roles (Roles) e Replication Slots (Slots de Replicação).
Pode ligar-se a uma única base de dados PostgreSQL e, usando a mesma ligação, ligar-se a outras bases de dados na mesma instância PostgreSQL. A base de dados atualmente ativa será indicada abaixo do seletor de ligação.

Para se ligar a uma base de dados diferente, expanda o nó correspondente a essa base de dados. Aparecerá uma janela pop-up a perguntar se deseja realmente mudar a base de dados ativa.

Clique em Yes (Sim) e o OmniDB mudará a base de dados ativa para a base de dados que escolheu. Isto será refletido no indicador Active database (Base de dados ativa), e também no nome do separador exterior.

Vá em frente e expanda o nó Schemas (Esquemas). Verá todos os esquemas na base de dados
atual (no caso do PostgreSQL, os esquemas TOAST e temporários não são mostrados).

Agora clique para expandir o esquema public. Verá diferentes tipos de
elementos contidos neste esquema.

Agora clique para expandir o nó Tables (Tabelas), e verá todas as tabelas contidas
no esquema public. Expanda qualquer tabela e verá as suas colunas, chave primária,
chaves estrangeiras, restrições, índices, regras, triggers e partições.

Para ver registos dentro de uma tabela, clique com o botão direito nela e escolha *Data Actions
Query Data*.

Repare que o OmniDB abre um novo editor SQL com uma consulta simples para listar os registos da tabela. Os registos são apresentados numa grelha mesmo abaixo do editor. Esta grelha pode ser controlada com o teclado como se estivesse a usar um gestor de folhas de cálculo. Também pode copiar dados de células individuais ou de um bloco de células (que pode ser selecionado com o teclado ou o rato) e colar em qualquer gestor de folhas de cálculo.

Pode editar a consulta no editor SQL, escrevendo consultas simples ou mais complexas.
Para executar, clique no botão de ação ou prima a combinação de teclas Alt-Q.
Se os resultados excederem 100 registos, aparecerão botões adicionais Fetch More (Obter Mais) e
Fetch All (Obter Tudo). Mais detalhes nos próximos capítulos.
Trabalhar com vários separadores dentro da mesma ligação
Dentro de uma única ligação, pode criar vários separadores de consulta interiores clicando no último pequeno separador com uma cruz, e depois escolhendo Query Tab (Separador de Consulta).

No OmniDB, pode executar várias instruções SQL e procedimentos em paralelo. Quando está em execução, será mostrado um ícone no separador para indicar o seu estado atual. Se algum processo terminar e não estiver no separador atual, esse separador mostrará um ícone verde a indicar que a rotina aí executada já está concluída.

Ao clicar no botão Cancel (Cancelar), pode cancelar um processo em execução dentro da base de dados.

Também pode arrastar e largar um separador para alterar a sua ordem. Isto funciona tanto com separadores interiores como exteriores.

Adicionalmente, pode usar atalhos de teclado para gerir separadores interiores (Consulta SQL). Estes são os predefinidos no Windows/Linux (o macOS substitui Ctrl por Alt); todos podem ser reatribuídos no separador Atalhos da caixa de diálogo Definições:
- Alt-I: Insere um novo separador interior
- Alt-Shift-Q: Remove o separador interior atual
- Alt-O: Muda o foco para o separador interior à esquerda
- Alt-P: Muda o foco para o separador interior à direita
Atualmente não existem atalhos de teclado para os separadores exteriores (Ligação) — use arrastar e largar para reordenar, ou o rato, para esses casos.
Todos os separadores de Consulta SQL são guardados automaticamente sempre que os executa. Mesmo que feche a janela do OmniDB ou o separador do navegador, já estão armazenados na Base de Dados de Utilizador do OmniDB. Serão automaticamente restaurados quando abrir o OmniDB novamente (se estiver a usar a aplicação), ao abri-lo noutra janela do navegador (se estiver a usar o servidor), ou mesmo se clicou na janela Connections (Ligações) ou terminou a sessão. Remover um separador exterior ou interior através da interface elimina-o permanentemente, pelo que não será restaurado.