# 1

# Verbindungsbündelung (d.h. virtuelle Verbindungen)

Verbindungsbündelung ist ein Funktionsmerkmal, das es ermöglicht, verschiedene Verbindungen und/oder importierte Datensätze in eine einzige Verbindung »zu bündeln«, die beinahe wie eine gewöhnliche Verbindung genutzt werden kann.

Dieses Funktionsmerkmal ist nützlich, wenn ein SQL-Befehl ausgeführt werden soll (zum Beispiel zum Extrahieren von Daten) und dabei Daten in verschiedenen Datenbanken berücksichtigt werden müssen. Ohne dieses Merkmal müssen für den gleichen Vorgang die erforderlichen Daten aus jeder Datenbank exportiert werden und dann damit weiter gearbeitet werden.

Verwenden Sie zum Erstellen einer neuen »gebündelten« (oder virtuellen) Verbindung das Menü VerbindungVerbindung bündeln oder die Tastenkombination Strgi. Ein neues Dialogfenster öffnet sich, in dem Elemente für die neue »gebündelte« Verbindung ausgewählt werden können, so wie unten gezeigt.

# Dialog zum Erstellen einer neuen virtuellen Verbindung

In diesem Fall wird die aktuelle Verbindung c1 in dem Schema »c1« gebündelt

Verwenden Sie den Knopf Bündelung hinzufügen, um entweder:

eine Verbindung so zu bündeln, dass sie alle Tabellen dieser Verbindung enthält: Verwenden Sie die Option Eine Verbindung bündeln. Damit wird dem Dialog ein neues Element hinzugefügt, mit dem ein Schemenname angegeben und eine vorhandene Verbindung gewählt werden kann

einen Datensatz zum Importieren von Daten aus einer Textdatei als eine Tabelle zu bündeln: Verwenden Sie die Option Einen Datensatz bündeln. Lesen Sie den folgenden Abschnitt für weitere Informationen.

# Anwendungsfälle für virtuelle Verbindungen

Zur Veranschaulichung des Einsatzes von virtuellen Verbindungen soll ein einfacher Anwendungsfall betrachtet werden. Angenommen, es gibt eine Datenbank mit der Liste der Server, für die Sie verantwortlich sind. Zur Vereinfachung soll angenommen werden, dass die Datenbank eine Tabelle namens »server« mit den folgenden Definitionen enthält:

CREATE TABLE servers (name string, location string);

Nehmen wir an, diese Tabelle enthält die folgenden Informationen:

> select * from servers ; name | location ---------+--------- moon | room1 darkstar | room2 flag | room3 alf | room2 vador | room3 (5 rows) >

Angenommen, es gäbe ein Programm eines Drittanbieters, welches eine Liste aller Server ausgibt, die ein potenzielles Problem haben. Die Ausgabe erfolgt als CSV-Datei mit einer Spalte für den Server-Namen, einer für den Fehlercode und einer Spalte mit der Problembeschreibung. Die CSV-Datei soll folgenden Inhalt haben:

$ cat problems.csv Server name,Error code,Error description darkstar,0,file system full vador,1,outdated AV signature darkstar,2,overloaded flag,0,file system full $

Sie möchten nun alle Server sehen, die ein Problem mittels Fehlercode 0 melden und den Standort erfahren. Die Lösung besteht darin, die Verbindung zur Datenbank zu öffnen (zum Beispiel mit dem Schema »c1«), die CSV-Datei zu importieren (zum Beispiel in die Tabelle »Reiter«) und den folgenden SQL-Befehl auszuführen:

SELECT "server name", location FROM tab INNER JOIN c1.servers AS s ON (tab."server name" = s.name) WHERE "Error code"=0

womit das gesuchte Ergebnis ermittelt wird, wie in der folgenden Abbildung zu sehen ist:

## Erwartete Ergebnisse von der virtuellen Verbindung

# Importieren eines Datensatzes in eine virtuelle Verbindung

Um einen Datensatz in eine Tabelle mittels einer virtuellen Verbindung (z.B. die Datei »problems.csv« des Anwendungsfalls) zu importieren, verwenden Sie die Option Einen Datensatz binden aus dem Dialog zur Erstellung einer virtuellen Verbindung:

## Importieren eines Datensatzes in eine virtuelle Verbindung - 1

Wählen Sie dort den Knopf Importieren und wählen Sie anschließend eine Datei zum Importieren. Dabei können Sie wichtige Optionen (wie die Dateikodierung, den Dateityp usw.) festlegen. Daraufhin ist die virtuelle Verbindung bereit:

## Importieren eines Datensatzes in eine virtuelle Verbindung - 2

Die resultierende virtuelle Verbindung, hier als »c2« identifiziert, wird in ihrem eigenen neuen Fenster geöffnet:

## Neu geöffnete virtuelle Verbindung

# Verwendung von SQL mit virtuellen Verbindungen

Sie können das von SQLite verstandene SQL in jeder virtuellen Verbindung verwenden. Seien Sie sich jedoch bewusst, dass wenn Sie Datenbankobjekte (außerhalb des erweiterten SQL, das im nächsten Abschnitt dargestellt wird) definieren, diese das nächste Mal verloren gehen, wenn die virtuelle Verbindung geöffnet wird.

Lesen Sie auch den Abschnitt Das LDAP-Verbindungen bekannte SQL und virtuelle Verbindungen für weitere Informationen.