Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 23 Oct 1999 08:23:15 -0400
From:      Marti <dcmarti1@smart.net>
To:        ports@freeBSD.ORG
Subject:   NoSQL
Message-ID:  <3811A8B3.DCE57BD7@smart.net>

next in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format.
--------------6F3B884250EA85116152799B
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: 7bit

<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
Came across this site through an article in the on-line version of Linux
Journal. Thought you may want to post this under databases.
<pre><A HREF="http://www.mi.linux.it/People/carlos/nosql/">http://www.mi.linux.it/People/carlos/nosql/</A></pre>;
&nbsp;</html>

--------------6F3B884250EA85116152799B
Content-Type: text/html; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Content-Base: "http://www.mi.linux.it/People/carlos/n
	osql/"
Content-Location: "http://www.mi.linux.it/People/carlos/n
	osql/"

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
  <TITLE>NoSQL</TITLE>
  <META NAME="generator" CONTENT="nvi/1.79">
</HEAD>

<BODY BGCOLOR="#ffffff">

<H1>NoSQL</H1>

<IMG SRC="NoSQL.png" ALT="[NoSQL]"></IMG>

<H2>A Relational Database Management System</H2>

<H2>Carlo Strozzi</H2>

<H3>Italian Linux Society.</H3>

September 20th, 1999
  
<P>
<HR>
  <EM>
    NoSQL is a fast, portable, relational database management
    system without arbitrary limits, (other than memory and
    processor speed) that runs under, and interacts with, the
    UNIX Operating System.
    It uses the Operator/Stream DBMS paradigm described in "Unix
    Review", March, 1991, page 24, entitled "A 4GL Language".
    There are a number of "operators" that each perform a unique
    function on the data. The "stream" is suplied by the UNIX
    Input/Output redirection mechanism. Therefore each operator
    processes some data and then passes it along to the next
    operator via the UNIX pipe function. This is very efficient as
    UNIX pipes are implemented in memory. NoSQL is compliant with
    the "Relational Model".
  </EM>
<HR>

<H2>Table of Contents</H2>

<UL>
  <LI><A HREF="nosql.html#copyright">Copyright</A>
  <P>
  <LI><A HREF="nosql.html#whatis">What is NoSQL</A>
  <P>
  <LI><A HREF="nosql.html#why">Why NoSQL</A>
  <P>
  <LI><A HREF="nosql.html#toget">How to get NoSQL</A>
  <P>
  <LI><A HREF="nosql.html#manuals">Documentation</A>
  <P>
  <LI><A HREF="nosql.html#support">Support</A>
  <P>
  <LI><A HREF="nosql.html#contrib">Contributions</A>
  <P>
  <LI><A HREF="nosql.html#refs">References</A>
</UL>

<HR>

<H2><A NAME="copyright">Copyright</A></H2>

<P>
   NoSQL RDBMS, Copyright (C) 1998-1999 Carlo Strozzi. Part of
   NoSQL code comes from RDB, a similar package written by
   W.Hobbs, an has been included in NoSQL with permission
   from the author.

<P>
   NoSQL comes with ABSOLUTELY NO WARRANTY; for details
   refer to the <A HREF="http://www.gnu.org/copyleft/gpl.html">;
   GNU General Public License</A>.

<P> 
<HR>

<H2><A NAME="whatis">What is NoSQL</A>    </H2>

<P>
   NoSQL, which I personally like to pronounce <EM>noseequel</EM>,
   is a derivative of the RDB DataBase system. The latter was developed
   at RAND Organization by Walter W. Hobbs. The few Perl scripts included
   with NoSQL are still very close the original RDB ones, so a good share
   of the credit for them goes to the original author.
   
<P>
   Other major contributors to the original RDB system, besides W. Hobbs,
   were:
   
<P>Chuck Bush
   
<P>Don Emerson
   
<P>Judy Lender
   
<P>Roy Gates Rae Starr
   
<P>People who helped with turning RDB into NoSQL:
   
<P>Vincenzo (Vicky) Belloli
   
<P>David Frey
   
<P>Giuseppe Paterṇ
   
<P>Maurizio (Masar) Sartori
   
<P>
  The <A HREF="NoSQL.png">NoSQL.png</A> logo has been kindly provided
  by Kyle Hart.
   
<P>
   As its name implies, NoSQL is <EM>not</EM> an SQL database,
   but rather a shell-level tool.
   The rationale behind it is well explained in the accompanying
   paper "The UNIX Shell As a Fourth Generation Language",
   available in both <A HREF="4gl.ps">Postscript</A> and
   <A HREF="4gl.txt">ASCII</A> format.

<P>
   The data is contained in regular UNIX ASCII files, and so
   can be manipulated by regular UNIX utilities, e.g. ls, wc,
   mv, cp, cat, more, less, editors like 'vi', head, RCS, etc.
   
<P>
   The form of each file of data is that of a relation, or table,
   with rows and columns of information.
   
<P>
   To extract information, a file of data is fed to one or more
   "operators" via the UNIX Input/Output redirection mechanism.
   
<P>
   There are also programs to generate, modify, and validate the data.
   A more through discussion of why this type of relational
   database structure makes sense is found in the book, "UNIX
   Relational Database Management", Reference #2.
   
<P>
   To use NoSQL, it is assumed that the user has at least a minimum
   knowledge of the UNIX Operating System, including knowledge of
   Input/Outout redirection (e.g., STDIN, STDOUT, pipes).
   
<P>
   NoSQL tends to be biased in favour of Linux.
   This means that, wherever it matters, NoSQL makes use of the GNU
   versions of the various UNIX commands, as those are the ones
   normally found on this UNIX workalike. NoSQL is
   <A HREF="http://www.gnu.org/philosophy/categories.html">Free Software</A>,
   released under the terms of the 
   <A HREF="http://www.gnu.org/copyleft/gpl.html">GNU General Public
   License</A>. As such, it fully qualifies as
   <A HREF="http://www.opensource.org">Open Source</A> Software.

<P> 
<HR>

<H2><A NAME="why">Why NoSQL</A>    </H2>

<P>
   A good question one could ask is "With all the relational
   database management systems available today, why do we need
   another one ?". The main reasons are:
   
<OL>
<LI>
    Several times I have found myself writing applications
    that needed to rely upon <EM>simple</EM> database management
    tasks. Most commercial database products are often too costly
    and too feature-packed to encourage casual use.  There is also
    plenty of good freeware databases around, but they too tend to
    provide far more than I need most of the times, and they too
    lack the shell-level approach of NoSQL. Admittedly, having been
    written mostly with interpretive languages (Shell, Perl, AWK),
    NoSQL is not the fastest DBMS of all, at least not always (a lot
    depends on the application).
</LI>
<LI>
    NoSQL is easy to use by non-computer people. The concept
    is straight forward and logical. To select rows of data,
    the 'row' operator is used; to select columns of
    data, the 'column' operator is used.
</LI>
<LI>
    The data is highly portable to and from other types of
    machines, like Macintoshes or MSDOS computers.
</LI>
<LI>
    The system should run on any UNIX machine (that has the PERL
    and the AWK Programming Languages installed).
</LI>
<LI>
    NoSQL essentially has no arbitrary limits, and can work where
    other products can't.  For example there is no limit on data field
    size, the number of columns, or file size (the number of
    columns in a table may actually be limited to 32.768 by some
    implementations of the AWK interpreter, including <CODE>mawk</CODE>
    I think).
</LI>
</OL>

<P>
   Again, the key feature of NoSQL (and other similar packages 
   mentioned in this manual), is its <B>close integration with
   UNIX</B>. Unlike other fourth generation systems, NoSQL is an
   extension of the UNIX environment, making available the full
   power of UNIX during application development and usage. This
   level of integration removes the need to learn yet another set of
   commands to use and administer the database system. A database
   is just a file, and can be maintained like all other files
   that the user owns or has access to. Because NoSQL commands are
   executable programs, the UNIX shell is inherited as the primary
   command language of the database; no other proprietary database
   scripting language, to my knowledge, is as powerful and 
   flexible as the UNIX shell. The shell-level nature of NoSQL
   encourages casual use of the system, and succesful casual use leads
   to familiarity and succesful formal use.
   This concept is much more thoroughly
   explained in the aforementioned paper "The UNIX Shell As a Fourth
   Generation Language", that shows why the UNIX shell is an excellent
   tool for scripting database access.
 
<P>
<HR>

<H2><A NAME="toget">How to get NoSQL</A>    </H2>

<P>NoSQL can be freely downloaded from
<A HREF="http://www.mi.linux.it/ftp/database/NoSQL/">this site</A>.
Make sure you get also any
<A HREF="http://www.mi.linux.it/ftp/database/NoSQL/patches/">patches</A>;
to the base code, for the version that you get.

<P> 
<HR>

<H2><A NAME="manuals">Documentation</A>    </H2>

<P>
  The latest version of the NoSQL online documentation can be found here:
  <ul>
	<li>
	  <a href="http://www.mi.linux.it/web-adm/NoSQL/NoSQL.html">;
		Stable release
	  </a>
	<li>
	  <a href="http://web.mi.linux.it/web-doc/NoSQL/NoSQL.html">;
		Latest development version
	  </a>
  </ul>
 
<P> 
<HR>

<H2><A NAME="support">Support</A>    </H2>

<P>
  There is a mailing list for discussions related to NoSQL. The address is
  <A HREF="mailto:noseequel@mi.linux.it">noseequel@mi.linux.it</A>.
  To subscribe simply send a message to
  <A HREF="mailto:minimalist@mi.linux.it">minimalist@mi.linux.it</A>
  with the word "<b>subscribe noseequel</b>" (without the quotes) in the
 <b>subject</b> of the message. The mailing list software is
 <A HREF="http://www.webest.com/minimalist/">Minimalist</A>, a 
 MINImalist MAiling LIST Manager.
 
<P> 
<HR>

<H2><A NAME="contrib">Contributions</A>    </H2>

<P>
  If you want to help with NoSQL by contributing your own code you are
  most welcome, but please have a look at the
  <a href="http://www.mi.linux.it/web-adm/NoSQL/NoSQL-12.html">;
  Notes for contributors</a> page first.
 
<P> 
<HR>

<H2><A NAME="refs">References</A>    </H2>

<P> 
<OL>
  <LI>
    "Unix Review" magazine, March, 1991, page 24, "A 4GL Language".
  </LI>
  <LI>
    "UNIX Relational Database Management", R. Manis, E. Schaffer,
    R. Jorgensen, 1988, Prentice Hall.
  </LI>
  <LI>
    "The AWK Programming Language", Alfred V. Aho,
    Brian W. Kernighan and Peter J. Weinberger, 1988, Addison-Wesley.
  </LI>
  <LI>
    "Programming PERL", L. Wall, R. Schwartz, 1991, O'Reilly &amp;
    Associates.
  </LI>
  <LI>
    "UNIX Shell Programming", L.J. Arthur, T. Burns, 1997,
    John Wiley &amp; Sons.
  </LI>
  <LI>
    See also the online paper
    <A HREF="http://www.consultix-inc.com/quoting1_2.txt">;
    Consultix Shell Quoting Guidelines</A>.
  </LI>
</OL>

</BODY>
</HTML>

--------------6F3B884250EA85116152799B--



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-ports" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3811A8B3.DCE57BD7>