Informix ist der Produktname für ein Datenbankmanagementsystem (DBMS). Die gleichlautende Datenbankfirma wurde 2001 von IBM übernommen, die Software wurde bis 2017 von IBM weiterentwickelt. Im April 2017 hat die IBM die Entwicklung und den fachspezifischen Support an das indische Unternehmen HCL abgegeben und gleichzeitig eine 15-jährige Partnerschaft dazu vereinbart, in der auch IBM Informix weiter vertreibt.

Informix

IBM logo.svg
Basisdaten

Entwickler HCL – IBM
Aktuelle Version 14.10.xC3[1]
(5. Dezember 2019)
Betriebssystem AIX, HP-UX, Linux, OS X, Solaris, Windows
Kategorie DBMS
Lizenz proprietär
IBM Informix Webseite

GeschichteBearbeiten

Das ehemalige Unternehmen Informix spielte bei der Verbreitung relationaler Datenbanken (RDBMS) unter Unix eine bedeutende Rolle – als stärkster Wettbewerber von Oracle.

Die zugehörige, ebenfalls auf UNIX und auf Terminalbetrieb ausgerichtete Integrierte Entwicklungsumgebung Informix 4GL war in den frühen 1990er-Jahren das vermutlich verbreitetste 4GL-Entwicklungswerkzeug überhaupt. In Deutschland wurden die Informix-Produkte zunächst durch den Distributor und Systemintegrator Garmhausen und Partner, dann durch die BYTEC GmbH sowie Siemens bekanntgemacht und etabliert.

Während der Datenbankserver Informix Dynamic Server (IDS) auch heute noch weit verbreitet ist, gelang es dem Unternehmen nicht, ein ähnlich erfolgreiches Nachfolgeprodukt für die inzwischen veraltete 4GL-Entwicklungsumgebung auf den Markt zu bringen.

Neben dem eigentlichen Informix-Datenbankserver hat auch das von Informix entwickelte Datenzugriffstool C-ISAM (eine C-Schnittstelle für ISAM-Dateien) eine weite Verbreitung (vor allem auf UNIX-Systemen) gefunden. Die neueren Versionen der Informix IDS können mittels des C-ISAM Datablades auf die Daten zugreifen, die im alten C-ISAM Format abgelegt wurden.

Mit der Übernahme von Garmhausen und Partner wurde Mitte der 1990er-Jahre versucht, die Position des Unternehmens in Deutschland weiter zu stärken. In den Folgejahren jedoch verlor Informix, ausgelöst durch einen Bilanzierungsskandal und einige zweifelhafte Akquisitionen, an Börsenwert. Im Jahr 2000 kaufte Informix die Firma Ardent (ETL-Anbieter) dazu und benannte sich wenig später in Ascential um, um zu verdeutlichen, dass das Softwareportfolio nun aus mehr Produkten als nur dem Datenbankserver bestand. Nach einem Managementwechsel wurde die Datenbanksparte Informix inklusive Mitarbeiter an die IBM für 1 Milliarde Dollar verkauft.[2] Der Kauf wurde im Hintergrund von WALMART eingefädelt, da diese sehr stark auf Informix in ihren Märkten setzte und diese Investitionen als gefährdet einstufte.[3] Mittlerweile wurde auch Ascential für eine weitere Milliarde Dollar von der IBM übernommen.

Nach dem Aufkauf durch die IBM gab es kurzzeitig den Plan, Informix mit DB2 zusammenzuführen, was eine gewisse Verunsicherung der Informix-Kunden verursachte. Dieser Plan wurde aber verworfen, und Informix und DB2 wurden parallel mit unterschiedlichem Fokus weiterentwickelt, wobei aber häufig neue Technologien in das jeweils andere System einflossen. Der Datenbankserver Informix Dynamic Server (IDS) wurde von IBM als strategisches Datenbanksystem bezeichnet und im Markt (vor allem für OLTP, Integrated Applications, embedded systems, spatial applications und SMB) etabliert.

EigenschaftenBearbeiten

Informix IDS ist verfügbar auf AIX, HP-UX, Linux, Mac OS X, Solaris und Windows.[4]

DatenbankenBearbeiten

Standard EngineBearbeiten

Bei dieser dateibasierenden Version werden alle Tabellen, inklusive Systemtabellen, in einem Unterverzeichnis pro Datenbank in je zwei Dateien gespeichert: eine Datei mit den Daten, eine mit den Indizes. Der Zugriff erfolgt direkt durch die Clients. Dieses System benötigt wenig Wartung, einzelne Tabellen können leicht einzeln gesichert und wieder zurückgesichert werden. Die Datenbanken können mit oder ohne Transaktionslogik angelegt werden.

OnLineBearbeiten

Bei dieser Version werden die Daten auf einem oder mehreren Bereichen (Database-Spaces) mittels Manager verwaltet. Der Zugriff durch die Clients ist nur möglich, wenn die Datenbank online ist, d. h. ein Serverprozess läuft. Für die Sicherung usw. sind spezielle Programme notwendig.

Datentyp SerialBearbeiten

Eine Besonderheit ist der Datentyp SERIAL für eine automatisch fortlaufend vergebene Nummer. Je Tabelle kann ein Feld diesen INTEGER-Typ haben. Bei Anlage der Tabelle kann der Startwert angegeben werden. Bei einem Insert des Wertes 0 in dieses Feld, wird die nächste Nummer vergeben. Ein Update ist nicht möglich, es kann jedoch beim Insert eine selbst bestimmte freie Nummer angegeben werden. Ist diese Nummer höher als der aktuelle letzte Wert, wird ab dieser weitergezählt. Das Rücksetzen auf einen niedrigeren Wert – z. B. nach Löschungen – ist nur durch Neuanlage der Tabelle möglich. Dieser Feldtyp ersetzt die bei anderen Datenbanken üblichen Sequenzen und ist nicht SQL-Standard.

WerkzeugeBearbeiten

Administration und MonitoringBearbeiten

Mit Version 14.10 wurde InformixHQ als grafisches Administrations- und Monitoringwerkzeug eingeführt.[5] Es ist eine Java-Anwendung mit Jetty als Applikationsserver, setzt mindestens Informix Version 12.10 und Java 8 voraus.[6]

Informix SQLBearbeiten

  • Wartung von Datenbanken
  • SQL-Abfragedialog
  • Abfragemasken (Generieren, Bearbeiten, Ausführen)
Die Masken hatten ein Menü mit den Menüpunkten
Suchen – Query by Example
Vor – Weiterblättern in den Suchergebnissen
Zurück – Zurückblättern in den Suchergebnissen
Neu – Anlage eines neuen Satzes
Bearbeiten – Bearbeiten des aktuell angezeigten Satzes
Löschen – Löschen des aktuell angezeigten Satzes
Ende
  • Reports

Durch den verschachtelten Aufruf von Masken und Reports konnten schon kleinere Programme realisiert werden.

Informix 4GLBearbeiten

  • Editor und Compiler für Programmfiles
nur zeichenorientiert
SQL embedded: SQL-Befehle werden einfach im Programm angegeben. z. B.:
SELECT Wert FROM Tabelle1 INTO nWert WHERE ID = 1
Definitionen: DATABASE, GLOBALS, DEFINE (Variablen, Konstanten, Records, Arrays)
Zuweisungen: LET, INITIALZE
Blöcke: MAIN, FUNCTION, REPORT
Schleifen: FOR, FOREACH, WHILE
Eingaben: PROMPT, INPUT
Ausgabe: DISPLAY, PRINT, MESSAGE, ERROR
# Beispiel für Zeichen A bis Z in eine Array-Variable füllen
#------------------------------------------------------------
DEFINE la_list ARRAY[26] OF CHAR(1),
i SMALLINT
FOR i = 1 TO 26
LET la_list[i] = CHR(64 + i)
END FOR
  • Editor und Compiler für Maskenfiles
  • Linker

Die Programmmodule wurden zuerst in CE-Code (C embedded, wo die SQL-Kommandos noch nicht aufgelöst sind), danach in C-Code übersetzt und dieser kompiliert. Daher bestand die Möglichkeit auch CE- und C-Source einzubinden, die Parameterübergabe erfolgte über Stacks. Die Objektdateien wurden dann mit Standard-, Informix- und eigenen Bibliotheken gebunden. Die Masken wurden in eine spezielles Format für die Programmverwendung umgewandelt. Für den Programmablauf benötigte man eine Runtime-Umgebung, die Datenbank, die Programmdateien und die Maskenfiles.

Von der Siemens AG gab es eine OEM-Version für Sinix auf Deutsch.

WeblinksBearbeiten

EinzelnachweiseBearbeiten

  1. www.ibm.com. (abgerufen am 5. Februar 2020).
  2. heise online: IBM kauft Informix. Abgerufen am 1. November 2019.
  3. Features HP's Secret Software Weapon. 19. Juli 2005, abgerufen am 5. Februar 2020.
  4. Informix Server System Requirements. 12. September 2019, abgerufen am 1. November 2019 (englisch).
  5. IBM Informix 14.10 neues Release bringt Aufwertung der Editionen - ZP19-0078 (2019-03) - CURSOR Service Distribution. Abgerufen am 5. Februar 2020.
  6. IBM Knowledge Center. Abgerufen am 5. Februar 2020 (amerikanisches Englisch).