C source code for Typhoon, a freely available
relational database management system for the
UNIX and OS/2 environments inspired by
Raima's db_VISTA (today Raima Data Manager).
From: [email protected]
(Thomas B. Pedersen)
Subject: v44i057: typhoon - Typhoon Relational Database Management System, Part01/09
Date: 17 Sep 1994 21:44:04 -0500
Submitted-by: [email protected]
(Thomas B. Pedersen)
Posting-number: Volume 44, Issue 57
Environment: SCO UNIX, Tandem NonStop UNIX, Sun Solaris, AIX, Linux, OS/2
Typhoon is a freely available relational database management system for
the UNIX and OS/2 environments.
This release has been prepared in a hurry to get it out as quickly as
possible. This means that the documentation is rather sparse, since I
haven't had the time to write extensive documentation yet. However, most
of you out there are pretty clever, so you'll probably do fine with the
man pages and the examples.
The system works fine and is currently used in a number of professional
applications in Denmark, some of them mission critical.
The system was originally inspired by Raima's db_VISTA (today Raima Data
Manager) but is relational rather than network based. Typhoon lacks some of
db_VISTA's features, but also contains a number of nice features not found in
All relations are defined in a so called Data Definition Language (ddl) file.
You define the database relations like you would write a C structure with
chars, ints, strings, multidimensional arrays, nested union and structures,
etc. Then you define primary, alternate and foreign keys for each relation.
The Data Definition Language Processor (ddlp) compiles the database defintion
into a binary file which constitutes the database description. The database
relations are accessed via C subroutines which manipulate individual records
within a table.
- Multiple open database
- Multi-field keys
- Nested structures in records
- Controlled unions
- Referential integrity
- Variable length fields
- Null keys (optional keys in db_VISTA, but easier to use)
- Dynamic opening and closing of database files
At present the database has no locking mechanism, believe it or not! The
projects I have used it in, simply didn't need it, even though they were
multi-user environments. But it's in the works!
I am currently working on extending the library to support the following:
- Paging (to improve performance)
The library functions will remain intact, except for a number of new functions.
I expect these things to be ready before the end of the year. Beta testers
The library comes with three additional utilities:
dbdview- Displayes the database definitions.
tyexport- Exports tables from a database.
tyimport- Imports tables into a database.
Originally the library also contained online backup, restore and a replication
server. These tools would need a lot of extra documentation, so I have left
them out for now (the code still contains support for these utilities).
However, if enough people show interest I will probably release them also.
Bug reports and mail should be sent to
Thomas B. Pedersen[email protected]
Also, if you have any suggestions as to how I can improve the library,
documentation or anything else, please don't hesitate to mail me.
Thomas B. Pedersen