#!info summary
RDB is a fast, portable, Relational DataBase Management System without
arbitary limits, (other than memory and processor speed).

RDB uses the 'operator/stream' DBMS paradigm described in "Unix Review",
March, 1991, page 24, entitled "A 4GL Language".  The operators are UNIX
filters, i.e. they read STDIN and write STDOUT so they can be connected
by pipes (the '|' char).

The operators work with relational data in ascii files.  The fields in
each row are separated by a 'TAB' char and the row is terminated with
a 'NEWLINE' char.  The first section of rows (the header) contains the
names and data definitions for each column.  The header also contains
optional embedded documentation relating to the entire datafile and/or
each data column.  Subsequent rows (the body) contains the data values.
RDB is compliant with the "Relational Model".

These datafiles are easily ported to and from spreadsheet programs on
Macintoshes or MSDOS computers.

All operators read a datafile via STDIN and most write a new datafile
via STDOUT. Exceptions are operators that produce output listings instead
of datafiles (like 'ptbl' and 'reporttbl').

All operators and utilities take a '-help' option to print usage detail
and other information online.

OPERATORS:

row  name  expression  [name  expression]  ...
   Selects rows based on arbitrary expressions using column names.
   Compare operators may be of the form: gt, ge, lt, le, eq, ne, mat, nmat.

column name [name ...]
   Selects columns by name, outputs columns in listed order. May
   produce multiple identical columns if desired.

jointbl datafile
   Natural join of two datafiles. Can also do a "Master/Detail"
   (left outer) join.

sorttbl name
   Sorts a datafile by one or more columns, each of which may be in
   ascending or descending order.

ptbl
   Formats and prints the headers and data, with multi line
   records if necessary.  Adapts to current size of window or
   terminal.

reporttbl file.frm
   Formats and prints an arbitrary style report, the format of which is
   specified in "file.frm". A page header may also be specified.

search
   This operator does a fast search of the datafile using either a binary
   search (default) or hashtable index on a key of of one or more columns.

mergetbl
   This operator merges and/or deletes rows of two datafiles.

subtotal  B_column  ...  column  ...
   Lists subtotals of specified column(s) when the value of break
   columns(s) (B_column) changes.

summ  [name ...]
   Produces "summary" information on a column basis. Options include:
   row count, unique value count, min, average, max, total,
   standard deviation, ...

compute  expression
   Computes an arbitrary expression using column names.

valid
   Verifys a datafile has valid format. Also used to show or generate a
   header template file complete with all embedded documentation.

headchg  file.tpl
   Generates and replaces (or removes) the header of a datafile.

mktbl  file
   Converts a file with visible column delimiters into an RDB table.

uniqtbl  column ...
   Remove duplicate rows considering only the selected columns.

UTILITIES: (The utilities do not read STDIN).

dataent  datafile
   Interactive capability for entering data into an datafile.

etbl
   Uses an editor of choice (like the RAND editor 'e') to edit selected (or
   all) columns of a datafile in either 'list' or 'column' display mode with
   visible column delimiters.

repair
   Attempts to repair candidate RDB datafiles, e.g. files that might have
   been ported from a Mac or PC but that are not yet valid RDB tables.
   Also attempts to correct existing RDB datafiles in bad shape.

DATA TYPE:

The type of data may be "string", "numeric", or "month".  The types are
specified by an 'S', 'N', or 'M' respectively in the header.  The default is
type string.

TRIVIAL DATAFILE (sample):

# Embedded documentation for datafile.
# Any number of lines may exist.
# Also for each column (not shown here).
NAME    CNT     TYP     AMT
6       4N      3       5N
Hobbs   65      DD      1111
Bush    4       A       133
Perry   177     B       244
Jones   47      XY      77
Hansen  44      A       23

TRIVIAL DATAFILE after being processed by the command:

   column < sample NAME TYP AMT CNT | sorttbl TYP AMT | ptbl

NAME    TYP    AMT   CNT
------  ---  -----  ----
Hansen  A       23    44
Bush    A      133     4
Perry   B      244   177
Hobbs   DD    1111    65
Jones   XY      77    47

$RCS_ID = '$Id: Info.RDB,v 2.4 1993/04/29 09:38:29 hobbs Exp $' ;