Est. 1988 Intermediate

DAL

Apple's Data Access Language: an SQL superset with variables, cursors and control flow, born as Network Innovations' CL/1, that let Macintosh applications query host databases through a server-side interpreter.

Created by Network Innovations (as CL/1); Apple Computer

Paradigm Procedural: SQL-based database access language
Typing Declared variables (including cursor variables); detailed type rules not verified
First Appeared 1988
Latest Version No release after the Apple-era product; a DAL 2.0 announced for 1994 apparently never shipped

DAL, the Data Access Language, was Apple Computer’s answer to a problem that preoccupied corporate computing at the end of the 1980s: how to let a desktop application ask a question of a database living on a minicomputer or mainframe without knowing which database, which host or which network sat at the other end. DAL’s answer was a single language, a superset of SQL with variables, cursors, conditionals and loops, interpreted by a server program on the host. A Macintosh application sent DAL text across the network; the server translated it for whatever database management system was installed there and sent the results back.

The language was not invented at Apple. It began as CL/1 at a small Cupertino company called Network Innovations, which Apple bought in 1988. Apple renamed it in 1990, shipped a System 7 API in 1991 that could carry it, and handed it to a licensee in 1994. It never became the cross-vendor standard Apple hoped for, and the role it was designed to fill was taken by ODBC.

A note on the date. The encyclopedia’s master list gives 1970 for DAL. Nothing found while researching this page supports that year for this language. The earliest evidence is for 1988, when CL/1 was a Network Innovations product and Apple acquired the company; the name “Data Access Language” dates from 1990. This page uses 1988.

History and Origins

Network Innovations and CL/1

Network Innovations was a Cupertino software company, reportedly founded in 1984, that worked on connecting desktop computers to larger hosts. Its language, CL/1, took SQL as its core and added the things SQL of the period lacked for writing a complete client request: program logic, loops, and explicit handling of cursors. Later accounts expand the name as “Connectivity Language One” or “Connection Language One”; sources differ on which.

A retrospective account dates the first CL/1 release to January 1988, as a product for reaching DEC VAX systems from the Macintosh. That date has not been checked here against a contemporary source, but it fits the firmer facts around it: Apple’s own corporate timeline records the acquisition of Network Innovations in March 1988, “to help build its networking and communications capabilities”. The same retrospective describes it as Apple’s first purchase of another technology company.

Network Innovations left one small permanent mark on the Internet. The IANA service registry still lists TCP and UDP port 172 as cl-1, “Network Innovations CL/1”, with cl/1 recorded as an alias.

Apple ships CL/1

Apple kept the CL/1 name at first. In December 1989 it began shipping two products: the CL/1 Developer’s Toolkit for Macintosh, containing the client software and tools for building, testing and debugging applications, and the CL/1 Server for VAX/VMS. Trade press coverage at the time gave the toolkit’s price as $700 for a single-use licence and the VAX/VMS server’s as $5,000 per CPU or cluster. That server could reach data held in Informix, Ingres, Oracle, Rdb/VMS and Sybase. Servers for IBM’s DB2 and SQL/DS were announced for the first quarter of 1990.

From CL/1 to DAL

During 1990 Apple renamed the language Data Access Language. One researcher who traced the change through industry sources found the last references to “CL/1” around May 1990, with the new name appearing from then on. The rename coincided with Apple positioning the technology as part of the Macintosh platform ahead of System 7.

System 7 and the Data Access Manager

System 7, released in May 1991, included the Data Access Manager, an API that let any application send a query to a “data server” and collect the results. Apple’s documentation is careful to separate the two pieces. The Data Access Manager was a transport: neither it nor the database extension read, modified or acted on the query passing through. The language was whatever the data server understood. Apple provided one database extension, identified to programs by the string DAL, which connected to Data Access Language servers. One later account notes that the Data Access Manager itself was built into System 7, while the DAL extension appears to have been installed separately. A programmer who wanted to write queries for it was pointed to a separate manual, the Data Access Language Programmer’s Reference.

The Data Access Manager also introduced query documents: files containing prepared queries, plus optional code and dialog resources, that an application could open and run without understanding their contents. A word processor or spreadsheet needed only a menu item and a handful of calls to pull data from a remote host, provided someone else had written the query document in DAL.

Design Philosophy

DAL’s central design decision was to put the intelligence on the host. The client did not parse or translate anything. It shipped DAL text to the server, and the server-side interpreter broke the program down, issued the appropriate requests to the local database through a database-specific adapter, and returned rows in a uniform format.

This had real appeal in 1989:

  • One language for many databases. SQL dialects differed widely and standards were thin. An application written against DAL did not need to know whether the data was in Oracle, Ingres or DB2.
  • Thin clients. Macintosh applications stayed small, with no database-specific code or drivers on the desktop.
  • Less traffic on slow links. Because loops and conditions ran on the host, a multi-step request could in principle be sent once rather than as a conversation of individual statements. No measurements of the saving were found.

The cost was that every combination of host operating system and database needed its own server and adapter, which Apple or a licensee had to write, sell and maintain. Later accounts describe the adapters as expensive and the translation step as slow, though none of them gives benchmark figures, so how slow, and compared with what, is not recorded here. ODBC, which arrived in the early 1990s, made the opposite trade: translation happened in a driver on the client, typically supplied by the database vendor.

Key Features

DAL is described in reference sources as a superset of SQL. On top of the usual data manipulation statements it added a small procedural language. The table below is drawn from Apple’s Inside Macintosh and from a surviving article on the language rather than from the Data Access Language Programmer’s Reference itself, which was not available, so it should be read as an outline and not a complete specification.

AreaWhat DAL provided
QueriesSQL statements such as select, insert and delete, passed through the server to the host database
SessionsStatements to open and close a database management system, a database and its tables
Catalog inspectionA describe statement to list what the host offered, such as the databases available
VariablesSystem, external and local variables; local variables are declared, and a cursor is one of the things that can be declared
Control flowif, while, and procedures that could be called
CursorsExplicit cursor declaration and fetch, so a program could step through a result
Outputprint and related statements that sent values and result rows back to the client
Transactionscommit and rollback
Built-insSystem functions and variables written with a leading $, for example for string length and the number of rows or columns in a result

The smallest DAL program in Apple’s own documentation is a one-line fragment that Inside Macintosh uses to demonstrate sending a query through the Data Access Manager:

1
print 451+222;

Statements end with a semicolon, and print returns a value to the client, where the Data Access Manager delivers it as a typed data item. A query followed by a statement to return every row has this general shape (an illustrative sketch based on published fragments, not checked against a DAL server):

1
2
select name, city from customers;
printall;

Results came back as a stream of typed items. The Data Access Manager defined type codes for them, including Boolean, short and long integers, floating-point numbers, date, time, timestamp, fixed and variable-length character data, decimal, money, and variable and long binary values.

Evolution

Uneven support at Apple

Apple’s commitment to DAL wavered. Retrospectives describe alternating periods of promotion and neglect, and uncertainty over whether DAL was meant to be an industry-wide standard or a Macintosh advantage. The client side stayed largely tied to the Macintosh, while Microsoft’s ODBC gathered support from database vendors across the industry. Developers are also reported to have asked for features, such as support for large binary objects, that did not arrive.

By later accounts DAL’s best showcase was HyperCard. Demonstrations of HyperCard stacks presenting live data from host databases, with a graphical interface in front of systems that otherwise offered terminals, attracted attention at the time.

Butler SQL

EveryWare Development of Canada took a different route with Butler SQL, released in 1992. Rather than translating DAL for some other database, Butler was a database server for the Macintosh that used DAL as its own SQL dialect and the Data Access Manager for networking, removing the adapter layer altogether. Version 2.0, in May 1996, added direct ODBC links. From the mid-1990s Butler was paired with EveryWare’s Tango web application tool. Its development ended after Pervasive Software acquired EveryWare in 1998.

The handoff to Independence Technologies

In January 1994 Apple was reported to have licensed DAL to Independence Technologies Inc. of Fremont, California, as part of a wider shedding of enterprise connectivity products; the same report covered the licensing of its SNA•ps mainframe connectivity software to Wall Data. (One later account dates the DAL licence to February.) Apple took a minority equity stake in Independence in return. The deal is often described as a sale, but contemporary reporting called it a licence. Independence was to market the language under its own name and support existing customers, and committed to a DAL 2.0 later that year that was to improve how DAL worked alongside ODBC. By then the product was described as having Macintosh and Windows clients, with servers on a range of proprietary and Unix hosts.

Independence Technologies was reportedly acquired by BEA Systems in 1995, and later accounts say the business was sold on again to UniPrise Systems in 1996. No evidence of a DAL 2.0 release was found.

Later implementations

Two other vendors are recorded as supporting DAL after Apple stepped back. IBM reportedly made a DAL Server available for the AS/400 in 1995 within its AS/400 Client Series, so that Macintosh applications could read AS/400 data; IBM’s own announcement could not be retrieved to confirm the year. And PrimeBase, the Hamburg-developed SQL database server that is said to have begun as P.INK SQL on the Macintosh in 1990, is described in secondary sources as using an extended, DAL-compatible dialect as its native language. PrimeBase’s own documentation was not reachable to check this.

Current Relevance

DAL is a historical language. The Data Access Manager was not carried forward to Mac OS X, the Apple product line ended with the 1994 licence, and no current implementation of Apple’s DAL servers is known. Its documentation survives in Apple’s archived Inside Macintosh chapter on the Data Access Manager and in scattered articles from the System 7 era. There is no Docker image or modern runtime for it.

The name is easy to confuse with unrelated uses of the same initials, most commonly “data access layer” in software architecture, and with other products called DAL.

Why It Matters

DAL is worth remembering for three reasons.

First, it is a clear example of a road not taken in database connectivity. DAL and ODBC attacked the same problem within a few years of each other and chose opposite places to put the translation work. The client-side driver model won, helped by vendor support and, by later accounts, by faster networks that made DAL’s bandwidth savings matter less.

Second, it belongs to a family of procedural SQL extensions that also includes Oracle’s PL/SQL and Sybase and Microsoft’s Transact-SQL. Those were each tied to one database. DAL attempted the same thing as a vendor-neutral layer above many.

Third, the query document idea, in which an ordinary application could run a packaged database request it did not understand, anticipated the way later desktop software embedded external data connections as reusable, shareable objects.

Timeline

1988
Network Innovations of Cupertino reportedly releases CL/1, an SQL-based connectivity language for reaching host databases from desktop machines, in January; Apple acquires the company in March, by one later account its first acquisition of another technology firm
1989
In December Apple ships the CL/1 Developer's Toolkit for Macintosh and the CL/1 Server for VAX/VMS, with servers for IBM's DB2 and SQL/DS promised for the first quarter of 1990
1990
Apple renames CL/1 as Data Access Language (DAL); according to one later account the old name fades from the trade press around the middle of the year
1991
System 7 ships with the Data Access Manager, a Macintosh API for sending queries to data servers; the database extension Apple provides for it speaks DAL
1992
EveryWare Development releases Butler SQL, a Macintosh database server that uses DAL as its native SQL dialect (announced in the trade press in December 1991)
1994
Apple licenses DAL to Independence Technologies of Fremont, California, in return for a minority equity stake, as reported in late January; Independence takes over marketing and customer support and promises a DAL 2.0
1995
IBM reportedly makes a DAL Server available for the AS/400 as part of its AS/400 Client Series, giving Macintosh applications access to AS/400 data
1996
In May EveryWare ships Butler SQL 2.0, adding direct ODBC links alongside DAL

Notable Uses & Legacy

Apple Data Access Manager (System 7)

The database API introduced with System 7 carried queries to a data server without interpreting them; the database extension Apple provided for it, named DAL, talked to Data Access Language servers on remote hosts

CL/1 and DAL servers for host databases

Apple's first server, for VAX/VMS, gave Macintosh applications one language for Informix, Ingres, Oracle, Rdb/VMS and Sybase databases; servers for IBM's DB2 and SQL/DS were announced to follow

Butler SQL (EveryWare Development)

A Macintosh SQL database server released in 1992 that implemented DAL natively rather than translating it, and used the Data Access Manager for its networking

IBM AS/400 Client Series

IBM offered a DAL server, reportedly from 1995, so that desktop applications supporting DAL could reach data held on AS/400 systems

Language Influence

Influenced By

Running Today

Run examples using the official Docker image:

docker pull
Last updated: