#!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 $' ; .