You can edit almost every page by Creating an account and confirming your email.

JBASE

From EverybodyWiki Bios & Wiki

jBASE is a NoSQL Database Management System comprising development tools, middleware and a multidimensional database database. jBASE's native architecture, there is no restrictive legacy Virtual Machine layered on top of the multivalue application. The file I/O runs through a layer called jEDI (jBASE External Database Interface), allows you to write BASIC code using conventional OPEN/READ/WRITE commands that access and manipulate information in virtually any data store, including relational databases and RESTful services.

History

jBASE was released in 1991 by a small company of the same name located in Hemel Hempstead. Written by former Microdata engineers, jBASE emulates all implementations of the system to some degree. jBASE is unique in that it compiles applications to native machine code form, rather than to an intermediate byte code. In 2015, cloud solutions provider Zumasys in Irvine, California, acquired the jBASE distribution rights as well as the intellectual property from Temenos Group.[1]

Main features

Multivalue databases are similar to relational databases because they have schemas and organize data in tables. But multivalue database schemas are less rigid than conventional relational database schemas. Unlike relational databases, multivalue databases can assign more than one value to a single attribute. A cell (attribute) in a multivalue database may contain an array of values. In other words, while a relational database stores just one fact within a table cell, multivalue databases can store multiple values within that cell.[2]

File Storage

jBASE files are Document-oriented_database style NoSQL database. All jbase files are document oriented and have a primary unique key and then a text document. jBASE has numerous built in hash based files (j3, j4, jp, jr, and distributed) and can also use external storage systems via the jEDI interface to store data in SQL or even O/S directories.

shell

jBASE has a built in shell called jsh. This shell is used to emulate the legacy Pick shell when pick was an operating system. In jBASE the shell is not required as all programs are compiled to Native C programs and can be executed directly from the Operating System Shell. The jShell exists to emulate specific Pick specific shell functions such as LISTS or TCL stacks.

Basic Language

jBC is a programming language that is used in jBASE post-relational (multi-value) DBMS. Syntax is Basic-like; compilation process firstly converts the source code to C which in turn is compiled for the target platform with the usage of standard C compiler.[3]

Queries

jBASE has a built in jQL language that is similar to SQL that allows you to query and output data. Unlike SQL there is no update capability.

Indexing

Fields in jBASE can be indexed with a primary index. jBASE also allows computed indexes, compound indexes.

Replication

jBASE offers Transaction Journaling to replicate data to a secondary jBASE Node

Transactions

jBASE offers transaction boundaries to enforce database integrity.

Schema

jBASE and other Pick implementations utilize a 3 dimensional nested array structure to store data. Schema data is stored within a Schema dictionary for the file, schema information is not stored within the data. jBASE also has no data type enforcement. jBASE utilizes the array positions to describe data that would usually be stored in a separate table in SQL.

Example

{
		"orderID" : 10253,
		"customerID" : "HANAR",
		"employeeID" : 3,
		"orderDate" : "1996-07-10 00:00:00.000",
		"requiredDate" : "1996-07-24 00:00:00.000",
		"shippedDate" : "1996-07-16 00:00:00.000",
		"shipVia" : 2,
		"freight" : 58.17,
		"shipName" : "Hanari Carnes",
		"shipAddress" : {
			"street" : "Rua do Paço 67",
			"city" : "Rio de Janeiro",
			"region" : "RJ",
			"postalCode" : "05454-876",
			"country" : "Brazil"
		},
		"details" : [
			{
				"productID" : 31,
				"unitPrice" : 10,
				"quantity" : 20,
				"discount" : 0
			},
			{
				"productID" : 39,
				"unitPrice" : 14.4,
				"quantity" : 42,
				"discount" : 0
			},
			{
				"productID" : 49,
				"unitPrice" : 16,
				"quantity" : 40,
				"discount" : 0
			}
		]
	}

The same data in jBASE would look like

ID: 10234
001 HANAR
002 3
003 10419
004 10433
005 10425
006 Rua do Pa..o 67]Rio de Janeiro]RJ]05454-876]Brazil
007
008
009
010 31]39]49
011 1000]1440]1600
012 20]42]40
013 0]0]0

Sample Pick code to access data

OPEN "ORDERS" TO FI.ORDERS ELSE STOP
READ ORDER FROM ORDERS, "10253" ELSE STOP
PRINT "Customer           :":ORDERS<1>
PRINT "Employee           :":ORDERS<2>
PRINT "Order Date         :":OCONV(ORDERS<3>,"D4-")
PRINT "Items Id","Per Unit","Qnty"
NUMBERITEMS=DCOUNT(ORDERS<10>,@VM)
FOR I=1 TO NUMBERITEMS
     PRINT ORDERS<10,I>,OCONV(ORDERS<11,I>,"MD2,$"),ORDERS<3>)
NEXT I

References

  1. "MultiValue".
  2. "Get The Basics On NoSQL Databases: Multivalue Databases".
  3. "Temenos jBC Preface".

External Links

I have updated the article to include references from relevant sites, like Temenos.com and Forbes.com.


This article "JBASE" is from Wikipedia. The list of its authors can be seen in its historical and/or the page Edithistory:JBASE. Articles copied from Draft Namespace on Wikipedia could be seen on the Draft Namespace of Wikipedia and not main one.