Schema-Based JSON Data Stores in Relational Databases

Schema-Based JSON Data Stores in Relational Databases

Lubna Irshad, Li Yan, Zongmin Ma
Copyright: © 2019 |Pages: 33
DOI: 10.4018/JDM.2019070103
OnDemand:
(Individual Articles)
Available
$37.50
No Current Special Offers
TOTAL SAVINGS: $37.50

Abstract

JSON is a simple, compact and light weighted data exchange format to communicate between web services and client applications. NoSQL document stores evolve with the popularity of JSON, which can support JSON schema-less storage, reduce cost, and facilitate quick development. However, NoSQL still lacks standard query language and supports eventually consistent BASE transaction model rather than the ACID transaction model. This is very challenging and a burden on the developer. The relational database management systems (RDBMS) support JSON in binary format with SQL functions (also known as SQL/JSON). However, these functions are not standardized yet and vary across vendors along with different limitations and complexities. More importantly, complex searches, partial updates, composite queries, and analyses are cumbersome and time consuming in SQL/JSON compared to standard SQL operations. It is essential to integrate JSON into databases that use standard SQL features, support ACID transactional models, and has the capability of managing and organizing data efficiently. In this article, we empower JSON to use relational databases for analysis and complex queries. The authors reveal that the descriptive nature of the JSON schema can be utilized to create a relational schema for the storage of the JSON document. Then, the powerful SQL features can be used to gain consistency and ACID compatibility for querying JSON instances from the relational schema. This approach will open a gateway to combine the best features of both worlds: the fast development of JSON, consistency of relational model, and efficiency of SQL.
Article Preview
Top

Introduction

Web services are the means to exchange information on a mobile, search engine, enterprise application and many more, thought formats like XML (Extensible Markup Language) and JSON (Java Script Object Notation). For serialization, data interchange format plays a great role in terms of the rate of data transfer and performance (Helland, 2017). Structure of JSON is similar to the type model of many programming languages, essentially Java Scripting (JS) that makes it flexible, easy to use and independent text format. It is simple and requires no prior knowledge to acquire and practice. JSON is a format that fills a particular niche to integrate multiple services across many platforms. XML and JSON, both being semi-structured and hierarchal data model for data exchange, are popular serialization techniques in Web development. XML as compared to JSON is heavy, complex and requires additional libraries to exchange data. Its model consists of hierarchal complex tags and requires more bytes for data transfer even for a small task. JSON is light weighted, compact and close to many programming languages. It is one of its kind of emerging data-interchange format as compared to XML and many others like Atom, RDF (Ma, Lin, Yan, Zhao, 2018; Ma, Jia, Cheng & Angryk, 2016), REBOL, Gellish, YAML and so on.

JSON document consists of objects that constitute of attributes/keys (string type), value (String, Number, Boolean and NULL), arrays and objects. An object is a collection of pairs (attributes & values) and a pair can again be a JSON object (Bourhis, Reutter, Suárez & Vrgoč, 2017). JSON document can have hierarchical data like nested objects and arrays. Being simple, easy and light weighted, JSON has become a format of choice for most Web services. JSON especially adores for storing temporary data (like filling the form on Web) and exchanging information between servers and clients. Note that it cannot be used for permanent storage, data analysis, and processing of complex queries1. So, database support for storing and querying JSON came into existence (Liu, 2019; Irshad, Ma, & Yan, 2019; Junkkari et al., 2016; Hu & Dessloch, 2015). Although JSON can work standalone, its database support provides secure, easy and fast processing of information. This situation just likes XML for databases (Fong & Shiu, 2012). In addition, it is difficult to manage data sharing by multiple users in the document but it is easy in databases. Two types of database models support JSON data management, which are relational database management system (RDBMS) and NoSQL (Not only SQL) (Liu, 2019; Irshad, Ma, & Yan, 2019). We categorize them on the basis of their data structure, model, data organization, and transaction and querying mechanism.

NoSQL database encompasses document databases, key-value pair stores, columnar stores and graph formats stores (Ma, Capretz, & Yan, 2016). JSON document stores belong to the category of NoSQL document databases that evolve with the popularity of JSON. NoSQL data stores are gaining popularity but still lack powerful standard query language. Although, as compared to many document stores, the query language of MongoDB is easy and close to SQL, it requires MapReduce for aggregation and complex queries. CouchDB provides better consistency but has complex query language. Learning a new language every time as per the need of application/project is a cumbersome and time taking task. Standardization of query language for all NoSQL document stores is the biggest demand at present. NoSQL document stores, CouchDB and MongoDB claim to provide ACID (Atomicity, Consistency, Isolation, Durability) transaction model in a coming version. First, the ACID model is implemented on a single document level only and secondly, it is not fully tested and available yet. BASE transaction model is not suitable for all applications, where things will be eventually consistent as compared to the ACID model.

Complete Article List

Search this Journal:
Reset
Volume 35: 1 Issue (2024)
Volume 34: 3 Issues (2023)
Volume 33: 5 Issues (2022): 4 Released, 1 Forthcoming
Volume 32: 4 Issues (2021)
Volume 31: 4 Issues (2020)
Volume 30: 4 Issues (2019)
Volume 29: 4 Issues (2018)
Volume 28: 4 Issues (2017)
Volume 27: 4 Issues (2016)
Volume 26: 4 Issues (2015)
Volume 25: 4 Issues (2014)
Volume 24: 4 Issues (2013)
Volume 23: 4 Issues (2012)
Volume 22: 4 Issues (2011)
Volume 21: 4 Issues (2010)
Volume 20: 4 Issues (2009)
Volume 19: 4 Issues (2008)
Volume 18: 4 Issues (2007)
Volume 17: 4 Issues (2006)
Volume 16: 4 Issues (2005)
Volume 15: 4 Issues (2004)
Volume 14: 4 Issues (2003)
Volume 13: 4 Issues (2002)
Volume 12: 4 Issues (2001)
Volume 11: 4 Issues (2000)
Volume 10: 4 Issues (1999)
Volume 9: 4 Issues (1998)
Volume 8: 4 Issues (1997)
Volume 7: 4 Issues (1996)
Volume 6: 4 Issues (1995)
Volume 5: 4 Issues (1994)
Volume 4: 4 Issues (1993)
Volume 3: 4 Issues (1992)
Volume 2: 4 Issues (1991)
Volume 1: 2 Issues (1990)
View Complete Journal Contents Listing