<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: NoSQL doesn&#8217;t mean non-relational</title>
	<atom:link href="http://www.xaprb.com/blog/2010/03/08/nosql-doesnt-mean-non-relational/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.xaprb.com/blog/2010/03/08/nosql-doesnt-mean-non-relational/</link>
	<description>Stay curious!</description>
	<lastBuildDate>Thu, 09 Feb 2012 09:56:43 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<item>
		<title>By: Gopi Nathan</title>
		<link>http://www.xaprb.com/blog/2010/03/08/nosql-doesnt-mean-non-relational/#comment-18666</link>
		<dc:creator>Gopi Nathan</dc:creator>
		<pubDate>Fri, 17 Sep 2010 13:19:10 +0000</pubDate>
		<guid isPermaLink="false">http://www.xaprb.com/blog/?p=1678#comment-18666</guid>
		<description>Here is a &#039;LIVE&#039; display fron online IDMS where the term &#039;NONSQL&#039; 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 &#039;guru&#039; 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 &#039;1999-10-15-13.14.05.473588&#039;                      
         ;                                                           
     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!</description>
		<content:encoded><![CDATA[<p>Here is a &#8216;LIVE&#8217; display fron online IDMS where the term &#8216;NONSQL&#8217; is used as a keyword.<br />
   OCF 16.0 IDMS  NO ERRORS      DICT=TSTDICT<br />
DIS SCHEMA EMPNET AS  SYN<br />
CREATE SCHEMA EMPNET<br />
*+  DATE CREATED 1997-03-06-15.07.19.549570   BY T06O<br />
*+  DATE LAST UPDATED 1990-01-01-00.00.00.000000<br />
    FOR NONSQL SCHEMA TSTDICT.EMPSCHM VERSION 100<br />
    DBNAME EMPDEMO<br />
         ;<br />
Also IDMS is not mentioned as a relational database in most discussions and &#8216;guru&#8217; 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!</p>
<p>Here is a partial display of SQL Schema </p>
<p>DIS SCHEMA IDMSSQL FULL AS SYN<br />
*+ STATUS = 0        SQLSTATE = 00000<br />
     CREATE SCHEMA IDMSSQL<br />
*+    DATE CREATED 1999-10-15-13.13.04.665279   BY T999649<br />
*+       DATE LAST UPDATED 1990-01-01-00.00.00.000000<br />
*+       FOR SQL<br />
         DEFAULT AREA MAINSQL.TEMP<br />
        ;<br />
     CREATE TABLE IDMSSQL.DUMMY<br />
*+       DATE CREATED 1999-10-15-13.14.05.473588   BY<br />
*+       DATE LAST UPDATED 1999-10-15-13.14.05.473588   BY T99999<br />
       ( ID                               LONGINT NOT NULL<br />
       )<br />
*+       DEFAULT INDEX ON DBKEY<br />
*+       TABLE ID 1024<br />
*+       TIMESTAMP &#8217;1999-10-15-13.14.05.473588&#8242;<br />
         ;<br />
     CREATE TABLE IDMSSQL.TIMESHEET<br />
*+       DATE CREATED 1999-10-21-08.41.02.875253   BY T999993<br />
*+       DATE LAST UPDATED 1999-10-21-08.41.02.875253   BY T9999<br />
       ( UKE                              NUMERIC(2) NOT NULL,<br />
         DATO                             DATE NOT NULL WITH DEFAULT,<br />
         START                            TIME NOT NULL WITH DEFAULT,<br />
         END                              TIME NOT NULL WITH DEFAULT,<br />
         HOURS                            NUMERIC(4,2),<br />
&#8230;&#8230;&#8230;</p>
<p>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. </p>
<p>Ignorance of database systems have contributed to a lot of utterly useless discussions in the industry in the last 10 years&#8230; ORM (Object Relational Mapping) is the worst by-product of that discussion! Sometimes, I wonder how people can miss something obvious&#8230;well,if people. believing Ptolmey belived that the earth was flat for 4000 years, then anything is possible today also!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Gopi Nathan</title>
		<link>http://www.xaprb.com/blog/2010/03/08/nosql-doesnt-mean-non-relational/#comment-18656</link>
		<dc:creator>Gopi Nathan</dc:creator>
		<pubDate>Wed, 15 Sep 2010 14:10:59 +0000</pubDate>
		<guid isPermaLink="false">http://www.xaprb.com/blog/?p=1678#comment-18656</guid>
		<description>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   &#039;SELECT * FROM DEPARTMENT d, EMPLOYEE where (&quot;DEPT-EMPLOYEE&quot;) and d.dept_id=100  

Here the CODASYL set-name works as if we have provided a  &quot;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=&quot;BBS&quot; 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 &#039;NOSQL&#039;.   

&#039;SQL&#039; 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 &quot;SQL Server&quot;, 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 &#039;BAD&#039; 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!</description>
		<content:encoded><![CDATA[<p>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. </p>
<p>In fact SQL can be used today for query against a NONSQL (CODASYL) db in IDMS. For example one could issue   &#8216;SELECT * FROM DEPARTMENT d, EMPLOYEE where (&#8220;DEPT-EMPLOYEE&#8221;) and d.dept_id=100  </p>
<p>Here the CODASYL set-name works as if we have provided a  &#8220;d.dept_id= e.dept_id) </p>
<p>In some cases UPDATE also works (so long as CODAYL set is not involved)</p>
<p>UPDATE DEPARTMENT SET DEPT_NAME=&#8221;BBS&#8221; WHERE DEPT_ID=100    works and will use hash optimization for the dept_id, though DEPARTMENT is not a relational table at all.</p>
<p>In the modern world there is a tendency to reinvent the wheel. Now we have also reinvented a new name &#8216;NOSQL&#8217;.   </p>
<p>&#8216;SQL&#8217; 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 &#8220;SQL Server&#8221;, other than a marketing gimmick then. </p>
<p>RDBMS as such is trying to implement many things (unique identifier &#8230; Database KEY) behind the scene which has been a standard feature of CODASYL db and which has been declared &#8216;BAD&#8217; by relational purists in the 1980s! (IDENTITY etc in MS/SQL).</p>
<p>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). </p>
<p>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. </p>
<p>Now everyone is trying to do ORM mapping, NOSQL databases etc&#8230; A penalty for forgetting that the purpose of any commercial data processing is to store and retrive data from a store &#8211; which we call database!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Zenna</title>
		<link>http://www.xaprb.com/blog/2010/03/08/nosql-doesnt-mean-non-relational/#comment-18373</link>
		<dc:creator>Zenna</dc:creator>
		<pubDate>Wed, 02 Jun 2010 00:47:52 +0000</pubDate>
		<guid isPermaLink="false">http://www.xaprb.com/blog/?p=1678#comment-18373</guid>
		<description>You may well be right, but you come across as obnoxious, especially in your comments</description>
		<content:encoded><![CDATA[<p>You may well be right, but you come across as obnoxious, especially in your comments</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dmitri Mikhailov</title>
		<link>http://www.xaprb.com/blog/2010/03/08/nosql-doesnt-mean-non-relational/#comment-18158</link>
		<dc:creator>Dmitri Mikhailov</dc:creator>
		<pubDate>Mon, 19 Apr 2010 19:42:11 +0000</pubDate>
		<guid isPermaLink="false">http://www.xaprb.com/blog/?p=1678#comment-18158</guid>
		<description>NoSQL means that you talk to data storages in lower level languages (&lt;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 :)</description>
		<content:encoded><![CDATA[<p>NoSQL means that you talk to data storages in lower level languages (&lt;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 :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dave Voorhis</title>
		<link>http://www.xaprb.com/blog/2010/03/08/nosql-doesnt-mean-non-relational/#comment-18075</link>
		<dc:creator>Dave Voorhis</dc:creator>
		<pubDate>Sun, 28 Mar 2010 11:56:43 +0000</pubDate>
		<guid isPermaLink="false">http://www.xaprb.com/blog/?p=1678#comment-18075</guid>
		<description>Hugh Darwen is essentially correct when he suggests that I chose the Berkeley DB (Java edition) as the storage engine for Rel because it&#039;s primarily intended for use in RDBMSes.

I don&#039;t know if it&#039;s _specifically_ intended for use in RDBMSes, and I do know it is used outside of RDBMSes, but it&#039;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.</description>
		<content:encoded><![CDATA[<p>Hugh Darwen is essentially correct when he suggests that I chose the Berkeley DB (Java edition) as the storage engine for Rel because it&#8217;s primarily intended for use in RDBMSes.</p>
<p>I don&#8217;t know if it&#8217;s _specifically_ intended for use in RDBMSes, and I do know it is used outside of RDBMSes, but it&#8217;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.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

