<p>To date, most large corporations still have their core solutions on relational databases but only use non-relational (i.e. NoSQL) database management systems (DBMS) for their non-core systems that favour availability and scalability through partitioning while trading off consistency. NoSQL systems are built based on the CAP (i.e., Consistency, Availability and Partitioning) database theorem, which trades off one of these features while maintaining the others. The need for systems availability and scalability drives the use of NoSQL, while the lack of consistency and robust query engines as obtainable in relational databases, impede their usage. To mitigate these drawbacks, researchers and companies like Amazon, Google, and Facebook run ’SQL over NoSQL’ systems such as Dynamo, Google’s Spanner, Memcache, Zidian, Apache Hive and SparkSQL. These systems create a query engine layer over NoSQL systems but suffer from data redundancy and lack consistency obtainable in relational DBMS. Also, their query engine is not relational complete because they cannot process all relational algebra-based queries as obtainable in a relational database. In this paper, we present a ’Unique NoSQL over SQL Database’ (UniqueNOSD) system, an extension of NOSD and an inverse of existing approaches. This approach is motivated by the need for existing systems to fully deploy NoSQL data store functionalities without the limitation of building an extra SQL layer for querying. To allow appropriate storage and retrieval of data on document-based NoSQL databases without data redundancy and inconsistency while encouraging both horizontal and vertical partitioning, we propose NoSQL over SQL Block as a Value (<InlineEquation ID="IEq1"> <InlineMediaObject> <ImageObject Color="BlackWhite" FileRef="40537_2025_1307_Article_IEq1.gif" Format="GIF" Height="14" Rendition="HTML" Resolution="72" Type="Linedraw" Width="41" /> </InlineMediaObject> <EquationSource Format="TEX">\(\text {BaaV}\)</EquationSource> </InlineEquation>) data storage strategy. Unlike relational database model where a relation is represented as <InlineEquation ID="IEq2"> <InlineMediaObject> <ImageObject Color="BlackWhite" FileRef="40537_2025_1307_Article_IEq2.gif" Format="GIF" Height="19" Rendition="HTML" Resolution="72" Type="Linedraw" Width="147" /> </InlineMediaObject> <EquationSource Format="TEX">\(R(k, A_1, A_2,\dotsc , A_n)\)</EquationSource> </InlineEquation>, with a key attribute <InlineEquation ID="IEq3"> <InlineMediaObject> <ImageObject Color="BlackWhite" FileRef="40537_2025_1307_Article_IEq3.gif" Format="GIF" Height="17" Rendition="HTML" Resolution="72" Type="Linedraw" Width="103" /> </InlineMediaObject> <EquationSource Format="TEX">\(k = k_1, \dotsc , k_n\)</EquationSource> </InlineEquation> and <InlineEquation ID="IEq4"> <InlineMediaObject> <ImageObject Color="BlackWhite" FileRef="40537_2025_1307_Article_IEq4.gif" Format="GIF" Height="16" Rendition="HTML" Resolution="72" Type="Linedraw" Width="16" /> </InlineMediaObject> <EquationSource Format="TEX">\(k_i\)</EquationSource> </InlineEquation> is the primary key to the set of attributes <InlineEquation ID="IEq5"> <InlineMediaObject> <ImageObject Color="BlackWhite" FileRef="40537_2025_1307_Article_IEq5.gif" Format="GIF" Height="17" Rendition="HTML" Resolution="72" Type="Linedraw" Width="127" /> </InlineMediaObject> <EquationSource Format="TEX">\(A_i, i= 1,2,\dotsc ,n\)</EquationSource> </InlineEquation> of the relation, in <InlineEquation ID="IEq6"> <InlineMediaObject> <ImageObject Color="BlackWhite" FileRef="40537_2025_1307_Article_IEq1.gif" Format="GIF" Height="14" Rendition="HTML" Resolution="72" Type="Linedraw" Width="41" /> </InlineMediaObject> <EquationSource Format="TEX">\(\text {BaaV}\)</EquationSource> </InlineEquation> (represented as a tuple (<i>K</i>,&#xa0;<i>B</i>) where <i>K</i> means key and <i>B</i> means block). We represent a relation as <InlineEquation ID="IEq7"> <InlineMediaObject> <ImageObject Color="BlackWhite" FileRef="40537_2025_1307_Article_IEq7.gif" Format="GIF" Height="19" Rendition="HTML" Resolution="72" Type="Linedraw" Width="137" /> </InlineMediaObject> <EquationSource Format="TEX">\(R(K,r_1,r_2,\dotsc ,r_n)\)</EquationSource> </InlineEquation> with a key attribute <i>K</i> and a set of <i>n</i> relations (i.e., <i>r</i>) called blocks <i>B</i> and each <i>r</i> <InlineEquation ID="IEq8"> <InlineMediaObject> <ImageObject Color="BlackWhite" FileRef="40537_2025_1307_Article_IEq8.gif" Format="GIF" Height="14" Rendition="HTML" Resolution="72" Type="Linedraw" Width="34" /> </InlineMediaObject> <EquationSource Format="TEX">\(\in B\)</EquationSource> </InlineEquation> contains a set of its own attributes and is denoted as <InlineEquation ID="IEq9"> <InlineMediaObject> <ImageObject Color="BlackWhite" FileRef="40537_2025_1307_Article_IEq9.gif" Format="GIF" Height="19" Rendition="HTML" Resolution="72" Type="Linedraw" Width="142" /> </InlineMediaObject> <EquationSource Format="TEX">\(r(k, A_1, A_2,\dotsc , A_n)\)</EquationSource> </InlineEquation> with a key attribute <i>k</i> and a set of <i>n</i> attributes typical to a relational model. The relations <InlineEquation ID="IEq10"> <InlineMediaObject> <ImageObject Color="BlackWhite" FileRef="40537_2025_1307_Article_IEq10.gif" Format="GIF" Height="12" Rendition="HTML" Resolution="72" Type="Linedraw" Width="91" /> </InlineMediaObject> <EquationSource Format="TEX">\(r_1, r_2,\dotsc ,r_n\)</EquationSource> </InlineEquation> in <i>R</i> of <InlineEquation ID="IEq11"> <InlineMediaObject> <ImageObject Color="BlackWhite" FileRef="40537_2025_1307_Article_IEq1.gif" Format="GIF" Height="14" Rendition="HTML" Resolution="72" Type="Linedraw" Width="41" /> </InlineMediaObject> <EquationSource Format="TEX">\(\text {BaaV}\)</EquationSource> </InlineEquation> are related through foreign key relationships. Using existing benchmark systems of ’SQL over NoSQL’, relational databases and real-life datasets for our experiments, we demonstrated that our NoSQL over SQL system outperforms existing relational databases, SQL over NoSQL systems and is novel in ensuring data consistency, scalability, query execution and improving data storage and retrieval in large database systems without data loss and enhancing improved performance on NoSQL database.</p>

错误:搜索内容不能为空,请输入英文关键词
错误:关键词超出字数限制,请精简
高级检索

UniqueNOSD: a novel framework for NoSQL over SQL databases

  • Abdulrauf A. Gidado,
  • C. I. Ezeife

摘要

To date, most large corporations still have their core solutions on relational databases but only use non-relational (i.e. NoSQL) database management systems (DBMS) for their non-core systems that favour availability and scalability through partitioning while trading off consistency. NoSQL systems are built based on the CAP (i.e., Consistency, Availability and Partitioning) database theorem, which trades off one of these features while maintaining the others. The need for systems availability and scalability drives the use of NoSQL, while the lack of consistency and robust query engines as obtainable in relational databases, impede their usage. To mitigate these drawbacks, researchers and companies like Amazon, Google, and Facebook run ’SQL over NoSQL’ systems such as Dynamo, Google’s Spanner, Memcache, Zidian, Apache Hive and SparkSQL. These systems create a query engine layer over NoSQL systems but suffer from data redundancy and lack consistency obtainable in relational DBMS. Also, their query engine is not relational complete because they cannot process all relational algebra-based queries as obtainable in a relational database. In this paper, we present a ’Unique NoSQL over SQL Database’ (UniqueNOSD) system, an extension of NOSD and an inverse of existing approaches. This approach is motivated by the need for existing systems to fully deploy NoSQL data store functionalities without the limitation of building an extra SQL layer for querying. To allow appropriate storage and retrieval of data on document-based NoSQL databases without data redundancy and inconsistency while encouraging both horizontal and vertical partitioning, we propose NoSQL over SQL Block as a Value ( \(\text {BaaV}\) ) data storage strategy. Unlike relational database model where a relation is represented as \(R(k, A_1, A_2,\dotsc , A_n)\) , with a key attribute \(k = k_1, \dotsc , k_n\) and \(k_i\) is the primary key to the set of attributes \(A_i, i= 1,2,\dotsc ,n\) of the relation, in \(\text {BaaV}\) (represented as a tuple (KB) where K means key and B means block). We represent a relation as \(R(K,r_1,r_2,\dotsc ,r_n)\) with a key attribute K and a set of n relations (i.e., r) called blocks B and each r \(\in B\) contains a set of its own attributes and is denoted as \(r(k, A_1, A_2,\dotsc , A_n)\) with a key attribute k and a set of n attributes typical to a relational model. The relations \(r_1, r_2,\dotsc ,r_n\) in R of \(\text {BaaV}\) are related through foreign key relationships. Using existing benchmark systems of ’SQL over NoSQL’, relational databases and real-life datasets for our experiments, we demonstrated that our NoSQL over SQL system outperforms existing relational databases, SQL over NoSQL systems and is novel in ensuring data consistency, scalability, query execution and improving data storage and retrieval in large database systems without data loss and enhancing improved performance on NoSQL database.