Informix
| |
---|---|
Basisdaten
| |
Entwickler | HCL – IBM |
Aktuelle Version | 15.0[1] (18. November 2024) |
Betriebssystem | AIX, HP-UX, Linux, OS X, Solaris, Windows |
Programmiersprache | C++[2], C |
Kategorie | DBMS |
Lizenz | proprietär |
IBM Informix Webseite |
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 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.
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 IBM für 1 Milliarde Dollar verkauft.[3] 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.[4] Mittlerweile wurde auch Ascential für eine weitere Milliarde Dollar von IBM übernommen.
Nach dem Aufkauf durch 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.
(Quelle: [5])
Informix IDS ist verfügbar auf AIX, HP-UX, Linux (auch Linux für z Systems)[7], Mac OS X, Solaris und Windows.[8]
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.
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.
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.
Mit Version 14.10 wurde InformixHQ als grafisches Administrations- und Monitoringwerkzeug eingeführt.[9] Es ist eine Java-Anwendung mit Jetty als Applikationsserver und setzt mindestens Informix Version 12.10 und Java 8 voraus.[10]
Durch den verschachtelten Aufruf von Masken und Reports konnten schon kleinere Programme realisiert werden.
SELECT Wert INTO nWert FROM Tabelle1 WHERE ID = 1
# Beispiel für einen Record, der einen Satz einer Tabelle abbildet #------------------------------------------------------------------ DEFINE RECORD r_kunde LIKE kunden.*, n_kundnr LIKE kunden.kundnr SELECT * INTO r_kunde FROM kunden WHERE kundnr = n_kundnr LET r_kunde.aktiv = "N" LET r_kunde.moddat = TODAY UPDATE kunden SET kunden.* = r_kunde.* WHERE kundnr = r_kunde.kundnr
# 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
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 ein 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.