Jump to content

IBM Business System 12

From Wikipedia, the free encyclopedia
IBM Business System 12
Developer(s)IBM
Initial release1982
TypeRelational database management system
LicenseProprietary

Business System 12,or simplyBS12,was one of the first fullyrelational database management systems,designed and implemented byIBM'sBureau Servicesubsidiary at the company's international development centre inUithoorn,Netherlands.Programming started in 1978 and the first version was delivered in 1982. It was never widely used and essentially disappeared soon after the division was shut down in 1985, possibly because IBM and other companies settled onSQLas the standard.

BS12's lasting contribution to history was the use of a new query language based onISBL,created at IBM's UKScientific Centre.Developers of the famousSystem Runderway in the US at the same time were also consulted on certain matters concerning the engine, but the BS12 team rejectedSQLunequivocally, being convinced that this apparently unsound and difficult-to-use language (which at that time was also relationally incomplete) would never catch on.

BS12 included a number of interesting features that have yet to appear on most SQL-based systems, some a consequence of following the ISBL precedent, others due to deliberate design. For instance, a view could be parameterised andparameterscould be of type TABLE. Thus, a view could in effect be a newrelational operatordefined in terms of the existing operators.Codd'sDIVIDE operatorwas in fact implemented that way.

Another feature that could have easily been included in SQL systems was the support for update operations on the catalog tables (system tables describing the structure of the database, as in SQL). A new table could be created by inserting a row into theTABLEScatalog, and then columns added to it by inserting intoCOLUMNS.

In addition, BS12 was ahead of SQL in supporting user-defined functions and procedures, using aTuring completesublanguage,triggers,and a simple "call" interface for use by application programs, all in its very first release in 1982.

Example

[edit]

Sample query for determining which departments are over their salary budgets:[1]

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

Note the "natural join" on the common column,DEPTNUM.Although some SQL dialects support natural joins, for familiarity, the example will show only a "traditional" join. Here is the equivalent SQL for comparison:

-- (SQL version)
SELECTd.Deptnum,Count(*)asEmps,
Sum(e.Salary)asSalsum,Budget
FROMEmpase
JOINDeptasdONe.Deptnum=d.Deptnum
GROUPBYd.Deptnum,Budget
HAVINGSum(e.Salary)>Budget

References

[edit]
[edit]