[comp.archives] [databases] Re: Flat file handler for UNIX

henkp@cs.ruu.nl (Henk P. Penning) (04/25/91)

Archive-name: database/flat-file/jinx/1991-04-24
Archive: sol.cs.ruu.nl:/pub/UNIX/jinx.shar.Z [131.211.80.5]
Original-posting-by: henkp@cs.ruu.nl (Henk P. Penning)
Original-subject: Re: Flat file handler for UNIX
Reposted-by: emv@msen.com (Edward Vielmetti, MSEN)

In <1991Apr24.032545.16979@osh3.OSHA.GOV> chip@osh3.OSHA.GOV (Chip Yamasaki) writes:

>In <24375@well.sf.ca.us> drlove@well.sf.ca.us (David R. Love) writes:
>
>>Does anyone know of a flat-file handler, i.e. a quasi-database that 
>>works with flat ASCII files for simple retrievals and reports, and 
>>that is UNIX-based?  Thanks in advance for any information. Dave Love
>
>Sounds like it's possible a job for dbm or dbz if the file could get
>large.  I think most *nix's supply a version of dbm and dbz is in,
>hmmm... let's see, it was either C News or the NN news reader, I can'r
>remember.
>
>If the files are going to be reasonably small Perl (from Larry Wall)
>might be an option.  Not that Perl can handle large files (as Larry
>says), just that it might be slow if the file was huge.

  If Perl is good enough, you might want to look as Jinx (see below).

					===  HenkP   ===

Henk P. Penning, Dept of Computer Science, Utrecht University.
Padualaan 14, P.O. Box 80.089, 3508 TB Utrecht, The Netherlands.
Telephone: +31-30-534106
e-mail   : henkp@cs.ruu.nl (uucp to hp4nl!ruuinf!henkp)

--------------------------------------------------------------

I have put together a system for manipulating simple databases.
It is called 'jinx'. I wrote it for the secretaries at our department.
Jinx is easy to use but has powerful relational facilities as well.

Jinx is an interactive, menu-driven program which handles databases
consisting of lists of records, each a list of fields.
In a given database, every record contains the same number of fields.
In short, a database is structured like the /etc/passwd file.
For each field a regexp may be specified which is used as a constraint on the
data which may be entered in the field. Users may override this constraint.

There is no limit on the number of records in a database,
or the number of fields in a record, or the length of a field.
A field may contain arbitrary ascii-printable data.
Jinx uses curses so it runs on any terminal or window of any size.
Jinx doesn't require a 'special' perl, plain PL.18+ will do.

With Jinx you can perform operations on a database like:
-- update, add, copy and delete records
-- test if all fields in all records match their associated regexp
-- select/delete a subset of the records by various means
-- put back some of the deleted records
-- sort the database on one or more key-fields
-- project on one or more columns
-- join with another database
-- add a column to the database (that is: add a field to every record)
-- insert some records from another database
-- test if some given combination of fields is uniq for all records
-- compute fields as a function of other fields in the record

A database is represented by two files, both of them ordinary, editable files.
A simple report generator is provided. Some of the main functions are available
as shell-callable perl scripts.

Jinx requires the 'cterm' package I posted earlier. Jinx and cterm are
available from our archive server archive.cs.ruu.nl (131.211.80.5).
If you have ftp, get 'cterm.shar.Z' and 'jinx.shar.Z' from directory 'pub/UNIX'.
If not, send a message to 'mail-server@cs.ruu.nl' containing the next 4 lines:
begin
send UNIX/cterm.shar
send UNIX/jinx.shar
end
The mail-server will send you the compressed, uuencoded stuff.
Jinx+tools+man+doc is about 4500 lines, (compressed 60 KB).
A jinx tutorial (in LaTeX) is included in the package.
A PostScript version is available in 'UNIX/jinx.ps' in our archive.

Please, try out Jinx and let me know what you think.

				===  HenkP  ===

PS. Jinx is distributed under the terms of the Gnu General Public Licence.

-- 
Henk P. Penning, Dept of Computer Science, Utrecht University.
Padualaan 14, P.O. Box 80.089, 3508 TB Utrecht, The Netherlands.
Telephone: +31-30-534106
e-mail   : henkp@cs.ruu.nl (uucp to hp4nl!ruuinf!henkp)

-- comp.archives file verification
sol.cs.ruu.nl
-rw-r--r--  1 117      archive     67667 Jan 24 09:49 /pub/UNIX/jinx.shar.Z
found jinx ok
sol.cs.ruu.nl:/pub/UNIX/jinx.shar.Z