Business System 12 , kurz BS12 , war eines der ersten vollständig relationalen Datenbankmanagementsysteme . Es wurde von IBMs Tochtergesellschaft Bureau Service im internationalen Entwicklungszentrum des Unternehmens in Uithoorn , Niederlande , entwickelt und implementiert . Die Programmierung begann 1978, die erste Version wurde 1982 ausgeliefert. BS12 fand jedoch nie weite Verbreitung und verschwand praktisch bald nach der Schließung der Abteilung im Jahr 1985, möglicherweise weil sich IBM und andere Unternehmen auf SQL als Standard einigten.

Der bleibende Beitrag von BS12 zur Geschichte war die Verwendung einer neuen Abfragesprache auf Basis von ISBL , die im britischen Wissenschaftszentrum von IBM entwickelt wurde . Die Entwickler des gleichzeitig in den USA entwickelten, berühmten System R wurden zwar ebenfalls zu bestimmten Fragen der Engine konsultiert, doch das BS12-Team lehnte SQL kategorisch ab, da es überzeugt war, dass sich diese scheinbar fehlerhafte und schwer zu handhabende Sprache (die damals auch noch relational unvollständig war) niemals durchsetzen würde.

BS12 enthielt eine Reihe interessanter Funktionen, die in den meisten SQL-basierten Systemen noch nicht zu finden sind. Einige davon sind eine Folge der Übernahme des ISBL-Vorbilds, andere auf bewusste Designentscheidungen zurückzuführen. So konnten beispielsweise Sichten parametrisiert werden, wobei die Parameter vom Typ TABLE sein konnten. Dadurch konnte eine Sicht im Prinzip ein neuer relationaler Operator sein , der mithilfe der bestehenden Operatoren definiert wurde. Codds DIVIDE - Operator wurde tatsächlich auf diese Weise implementiert.

Ein weiteres Merkmal, das sich problemlos in SQL-Systeme hätte integrieren lassen, war die Unterstützung von Aktualisierungsoperationen an den Katalogtabellen (Systemtabellen, die die Struktur der Datenbank beschreiben, wie in SQL). Eine neue Tabelle konnte durch Einfügen einer Zeile in den TABLESKatalog erstellt und anschließend Spalten durch Einfügen in die Tabelle hinzugefügt werden COLUMNS.

Darüber hinaus war BS12 SQL in der Unterstützung benutzerdefinierter Funktionen und Prozeduren voraus, indem es eine Turing-vollständige Teilsprache, Trigger und eine einfache "call"-Schnittstelle zur Verwendung durch Anwendungsprogramme nutzte, und das alles bereits in seiner ersten Version im Jahr 1982.

Beispiel

Beispielabfrage zur Ermittlung der Abteilungen, die ihr Gehaltsbudget überschreiten: [ 1 ]

T1 = SUMMARY(EMP, GROUP(DEPTNUM), EMPS=COUNT, SALSUM=SUM(SALARY)) T2 = JOIN(T1, DEPT) T3 = SELECT(T2, SALSUM > BUDGET) 

Beachten Sie den „natürlichen Join“ über die gemeinsame Spalte DEPTNUM . Obwohl einige SQL-Dialekte natürliche Joins unterstützen, zeigt das Beispiel aus Gründen der Verständlichkeit nur einen „traditionellen“ Join. Hier ist der entsprechende SQL-Code zum Vergleich:

-- ( SQL - Version ) SELECT d.Deptnum , Count ( * ) as Emps , Sum ( e.Salary ) as Salsum , Budget FROM Emp as e JOIN Dept as d ON e.Deptnum = d.Deptnum GROUP BY d.Deptnum , Budget HAVING Sum ( e.Salary ) > Budget​​​​​​​

Referenzen