Comments on: NoSQL doesn’t mean non-relational http://www.xaprb.com/blog/2010/03/08/nosql-doesnt-mean-non-relational/ Stay curious! Fri, 10 May 2013 18:25:19 +0000 hourly 1 http://wordpress.org/?v=3.5.1 By: Gopi Nathan http://www.xaprb.com/blog/2010/03/08/nosql-doesnt-mean-non-relational/#comment-18666 Gopi Nathan Fri, 17 Sep 2010 13:19:10 +0000 http://www.xaprb.com/blog/?p=1678#comment-18666 Here is a ‘LIVE’ display fron online IDMS where the term ‘NONSQL’ is used as a keyword.
OCF 16.0 IDMS NO ERRORS DICT=TSTDICT
DIS SCHEMA EMPNET AS SYN
CREATE SCHEMA EMPNET
*+ DATE CREATED 1997-03-06-15.07.19.549570 BY T06O
*+ DATE LAST UPDATED 1990-01-01-00.00.00.000000
FOR NONSQL SCHEMA TSTDICT.EMPSCHM VERSION 100
DBNAME EMPDEMO
;
Also IDMS is not mentioned as a relational database in most discussions and ‘guru’ talks today. But this is not true. Full SQL support was added to the CODASYL model in the 1990s. The SQL implementation in CA-IDMS has its origin in System-R prototype, which may surprise many!

Here is a partial display of SQL Schema

DIS SCHEMA IDMSSQL FULL AS SYN
*+ STATUS = 0 SQLSTATE = 00000
CREATE SCHEMA IDMSSQL
*+ DATE CREATED 1999-10-15-13.13.04.665279 BY T999649
*+ DATE LAST UPDATED 1990-01-01-00.00.00.000000
*+ FOR SQL
DEFAULT AREA MAINSQL.TEMP
;
CREATE TABLE IDMSSQL.DUMMY
*+ DATE CREATED 1999-10-15-13.14.05.473588 BY
*+ DATE LAST UPDATED 1999-10-15-13.14.05.473588 BY T99999
( ID LONGINT NOT NULL
)
*+ DEFAULT INDEX ON DBKEY
*+ TABLE ID 1024
*+ TIMESTAMP ’1999-10-15-13.14.05.473588′
;
CREATE TABLE IDMSSQL.TIMESHEET
*+ DATE CREATED 1999-10-21-08.41.02.875253 BY T999993
*+ DATE LAST UPDATED 1999-10-21-08.41.02.875253 BY T9999
( UKE NUMERIC(2) NOT NULL,
DATO DATE NOT NULL WITH DEFAULT,
START TIME NOT NULL WITH DEFAULT,
END TIME NOT NULL WITH DEFAULT,
HOURS NUMERIC(4,2),
………

CA-IDMS implementation of E-R model as a CODASYL as well as relational database within the same DBMS has shown that the end user views are irrelevant. But the industry never noticed this because the product was not available in the Unix or Windows world.

Ignorance of database systems have contributed to a lot of utterly useless discussions in the industry in the last 10 years… ORM (Object Relational Mapping) is the worst by-product of that discussion! Sometimes, I wonder how people can miss something obvious…well,if people. believing Ptolmey belived that the earth was flat for 4000 years, then anything is possible today also!

]]>
By: Gopi Nathan http://www.xaprb.com/blog/2010/03/08/nosql-doesnt-mean-non-relational/#comment-18656 Gopi Nathan Wed, 15 Sep 2010 14:10:59 +0000 http://www.xaprb.com/blog/?p=1678#comment-18656 Glad that the discussion on NOSQL is heating up. The fact is that CA-IDMS did use the terminology SQL access to NONSQL Databases. A schema definition in sql context did include the optional keyword NONSQL in IDMS.

In fact SQL can be used today for query against a NONSQL (CODASYL) db in IDMS. For example one could issue ‘SELECT * FROM DEPARTMENT d, EMPLOYEE where (“DEPT-EMPLOYEE”) and d.dept_id=100

Here the CODASYL set-name works as if we have provided a “d.dept_id= e.dept_id)

In some cases UPDATE also works (so long as CODAYL set is not involved)

UPDATE DEPARTMENT SET DEPT_NAME=”BBS” WHERE DEPT_ID=100 works and will use hash optimization for the dept_id, though DEPARTMENT is not a relational table at all.

In the modern world there is a tendency to reinvent the wheel. Now we have also reinvented a new name ‘NOSQL’.

‘SQL’ name has been misused all these years. SQL does not mean the database is relational but that is the impression spread by Oracle, MS/SQL, Sybase, Informix and all others. It was also very wrong to call the MS database as “SQL Server”, other than a marketing gimmick then.

RDBMS as such is trying to implement many things (unique identifier … Database KEY) behind the scene which has been a standard feature of CODASYL db and which has been declared ‘BAD’ by relational purists in the 1980s! (IDENTITY etc in MS/SQL).

RDBMS touted so much on relational theory of Dr Codd. All RDBMSs are built on top of INDEX-es. But indices are never part of the relational model. At the same time, all of them failed to implement any hashing for the keys. CA-IDMS was originally based on HASHed access for the primary (Index support was added later).

Bottomline is that SQL is just the access DML. Any non-relational system (old IMS inclusive) could have given SQL front-end support as done by CA-IDMS.

Now everyone is trying to do ORM mapping, NOSQL databases etc… A penalty for forgetting that the purpose of any commercial data processing is to store and retrive data from a store – which we call database!

]]>
By: Zenna http://www.xaprb.com/blog/2010/03/08/nosql-doesnt-mean-non-relational/#comment-18373 Zenna Wed, 02 Jun 2010 00:47:52 +0000 http://www.xaprb.com/blog/?p=1678#comment-18373 You may well be right, but you come across as obnoxious, especially in your comments

]]>
By: Dmitri Mikhailov http://www.xaprb.com/blog/2010/03/08/nosql-doesnt-mean-non-relational/#comment-18158 Dmitri Mikhailov Mon, 19 Apr 2010 19:42:11 +0000 http://www.xaprb.com/blog/?p=1678#comment-18158 NoSQL means that you talk to data storages in lower level languages (<4GL), in other words, you just have to write more lines of code to operate on your data sets than you would usually do using SQL :)

]]>
By: Dave Voorhis http://www.xaprb.com/blog/2010/03/08/nosql-doesnt-mean-non-relational/#comment-18075 Dave Voorhis Sun, 28 Mar 2010 11:56:43 +0000 http://www.xaprb.com/blog/?p=1678#comment-18075 Hugh Darwen is essentially correct when he suggests that I chose the Berkeley DB (Java edition) as the storage engine for Rel because it’s primarily intended for use in RDBMSes.

I don’t know if it’s _specifically_ intended for use in RDBMSes, and I do know it is used outside of RDBMSes, but it’s ideal for implementing RDBMses because it provides transactional, persistent, high-performance key-value maps (aka associative arrays aka indexes). These are a fundamental building-block of OLTP-oriented RDBMSes.

]]>