URL: http://www.firstbasesoftware.com/man/man5/firstbase.htm
Last modified: 4 April 1996
Copyright © by FirstBase Software.
[
Index of Contents] [
FirstBase RDBMS Overview]
Written entirely in C, FirstBase allows manipulation of personal databases as well as shared group databases and simultaneous database access. As a system, FirstBase provides full variable length record database manipulation mechanisms, with many extras, in fast, separate modules.
FirstBase permits an unlimited number of records per file, fields per record, and characters per field.
Together with UNIX, FirstBase offers extraordinary database management possibilities. Simplistic applications such as database editing and scanning and sorted reports and mailing labels are readily available.
More advanced applications involve separately maintained databases which can be combined into a single database, or resplit according to any user defined criteria. Or joined side by side with other data to increase the number of fields per record in the database.
The FirstBase system provides mechanisms for reshaping a database at any time without loss of any data. This reshaping can lengthen, shorten, split, filter, or increase the width of a database in any desirable manner.
Multiple index searches over large databases can be easily accomplished. Document-Database merging (mail merge) as well as programs for downloading/uploading data to/from other database management systems are provided.
Database protection mechanisms also exist in FirstBase. A scanner is used for those who have only read access to databases. Passwords within FirstBase, plus full UNIX file protection is standard.
Virtual fields (formulas), record locking, on line (during use of program) help files, true field editing with any editor, and the ability to make global changes to selected fields of selected records increase the capabilities of the FirstBase system tremendously.
FirstBase also provides a very easy method of HTML form reading and communicating via the Common Gateway Interface (CGI). See dbmacro(1).
Basically, a user can do three things with the FirstBase tools: edit a dictionary, edit a database, and generate data related objects. Thus, there are three classes of FirstBase programs:
The names of all dictionary editors are of the form dbd??? where ??? is meant to be a mnemonic for the class of objects being edited or defined. For example, dbdbas(1) is the 'define database program', dbdprt(1) is the 'define printout program', and dbdind(1) is the 'define index program'.
The FirstBase editor/scanner, dbedit(1) is the heart of the whole system. This program allows information editing and scanning, with or without indexes. Specific records can be found, and separate fields within records can be modified without disturbing any other surrounding data in that record. Fields can even be corrected without having to retype the entire field.
Other examples of FirstBase tools are dbcat(1) and dbjoin(1), which allow concatenation and joining of FirstBase databases.
There are also a few different flavors of tools. One such tool is dbmerge(1), which processes pieces of data from a database and can combine this information with other textual information to be fed to outside UNIX tools, eg. nroff(1). Mail merge tasks are a subset of dbmerge(1) capabilities.
In addition, there are language processing tools that allow very complex database processing, queries, and even communication with HTML forms via the Common Dateway Interface (CGI). These tools are dbsql(1), an SQL tool, dbmacro(1) a macro processing language, and dbawk(1), an awk langauge processor.
A different type of generator, dbugen(1) allows the user to make global updates within a database using numerical field calculations, and text substitution into fields.
All the generator programs are named using db?gen where ? is for the first letter of the type of data object being generated. For example, dbigen(1) is the index generator program and dblgen(1) is the label generator program.
Note that all FirstBase generator type tools can be run in batch mode by using a -b flag on the argument line. This makes any tool suitable for shell scripts. Another mode called "yes mode" will run the FirstBase tool without waiting for permission to overwrite printouts, indexes, etc. This is accomplished by using the -y flag. The use of batch mode assumes yes mode.
The FirstBase tools can be run as normal programs from a UNIX shell or from a system or user defined menu shell. Additionally, the FirstBase system provides methods for defining and running a menu shell (dbshell(1)), and comes complete with a set of pre-defined menu files.
When the FirstBase startup routine sees a database or index argument, it appends the FirstBase extensions to the database and index names, producing two distinct sets of data file names and dictionary file names. UNIX file naming and pathway conventions are supported by FirstBase, meaning databases can be manipulated across directories.
These arguments provide to the FirstBase system the names that will be used to access a database and/or index. The default name in all cases for a database is dbase and for the index, index.
Generators often require an extra file since they sometimes use both the current FirstBase index files and an extra dictionary file describing some object-to-be. This extra dictionary file name is most often developed from the FirstBase index file name, although some tools allow specific argument line commands for more control in object naming.
FirstBase handles all file protection errors gracefully. Write access to a particular database is required only for database editing. All other programs, (generators, dictionary editors, and other tools) need only read access to the actual database. Database scanning and sharing of dictionaries, databases, or other files is all possible without duplicate copies or file linking.
The FirstBase system requires only a few terminal control codes (escape sequences). See terminals(5) for more information on this topic.
After this, maybe an index would be helpful. This also requires a dictionary, so use the index dictionary editor, dbdind(1). Using this new index dictionary, dbigen(1) will generate an index using the database and the database dictionary.
Other generators will automatically create and/or update indexes as needed. From there, dbpgen(1) will produce formatted reports, dblgen(1) will create mailing labels, and dbugen(1) will update selected fields of selected database records.
The best all purpose database processing language is dbmacro(1).
All of these programs are readily available from the supplied FirstBase menu shell files.
FirstBase User's Guide and Reference Manual