Business System 12, or simply BS12, was one of the first fully
relational database management system
A relational database (RDB) is a database based on the relational model of data, as proposed by E. F. Codd in 1970.
A Relational Database Management System (RDBMS) is a type of database management system that stores data in a structured for ...
s, designed and implemented by
IBM
International Business Machines Corporation (using the trademark IBM), nicknamed Big Blue, is an American Multinational corporation, multinational technology company headquartered in Armonk, New York, and present in over 175 countries. It is ...
's ''Bureau Service'' subsidiary at the company's international development centre in
Uithoorn
Uithoorn () is a municipality and a town in the Netherlands, in the province of North Holland.
Population centres
The municipality of Uithoorn includes the town of Uithoorn and the village of De Kwakel.
''Map of the municipality of Uithoorn, Ju ...
,
Netherlands
, Terminology of the Low Countries, informally Holland, is a country in Northwestern Europe, with Caribbean Netherlands, overseas territories in the Caribbean. It is the largest of the four constituent countries of the Kingdom of the Nether ...
. 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 on
SQL
Structured Query Language (SQL) (pronounced ''S-Q-L''; or alternatively as "sequel")
is a domain-specific language used to manage data, especially in a relational database management system (RDBMS). It is particularly useful in handling s ...
as the standard.
BS12's lasting contribution to history was the use of a new query language based on
ISBL, created at IBM's UK ''Scientific Centre''. Developers of the famous
System R underway in the US at the same time were also consulted on certain matters concerning the engine, but the BS12 team rejected
SQL
Structured Query Language (SQL) (pronounced ''S-Q-L''; or alternatively as "sequel")
is a domain-specific language used to manage data, especially in a relational database management system (RDBMS). It is particularly useful in handling s ...
unequivocally, 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 and
parameter
A parameter (), generally, is any characteristic that can help in defining or classifying a particular system (meaning an event, project, object, situation, etc.). That is, a parameter is an element of a system that is useful, or critical, when ...
s could be of type TABLE. Thus, a view could in effect be a new
relational operator
In computer science, a relational operator is a programming language construct or operator that tests or defines some kind of relation between two entities. These include numerical equality (e.g., ) and inequalities (e.g., ).
In programmi ...
defined in terms of the existing operators.
Codd's
DIVIDE operator was 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 the
TABLES
catalog, and then columns added to it by inserting into
COLUMNS
.
In addition, BS12 was ahead of SQL in supporting user-defined functions and procedures, using a
Turing complete
Alan Mathison Turing (; 23 June 1912 – 7 June 1954) was an English mathematician, computer scientist, logician, cryptanalyst, philosopher and theoretical biologist. He was highly influential in the development of theoretical comput ...
sublanguage,
triggers, and a simple "call" interface for use by application programs, all in its very first release in 1982.
Example
Sample query for determining which departments are over their salary budgets:
BS12 article on System R website
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)
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
References
{{Reflist
External links
TQL/SMEQL - A draft query language influenced by BS12
Business System 12
Proprietary database management systems
1982 software
Query languages