NoSQL is the generalized term to describe a relational database that uses no form of SQL language querying and consists of several data models to define it. My topic of this research paper is the Document Store data model. I will be covering the introduction of the model and its mechanics, how and when the model emerged, its strengths and weaknesses, and it’s real world applications.
Introduction and How it Works
Document Store or “Document-oriented database” is a data model within the NoSQL family, made for storing, retrieving, and managing document based information. The concept revolves around documents containing large amounts of data. A variety of documents are accepted, from there they are encapsulated into an internal format, and
…show more content…
Both use the Document database concept, but differ in it’s process and tools. Julie Lerman explains in her article “What the Heck Are Document Databases” that Raven DB was written for the Microsoft .NET Framework and growing in popularity.
Model Emergence
In the 1970s, relational databases were introduced with data schemas simple and straightforward, conceiving objects as sets of relationships. as mentioned in the Document Database webpage “an article object might be related to category (an object), a tag (another object), and a comment (another object)”.
These relationships between different types of data were defined in a database schema, the relational database could be queried with a standard Structured Query Language (SQL). These SQL based databases require a fixed amount of tables, a fixed amount of columns in each table, with each column represent a fixed data type (integer, string, etc). Consequently fields of data stored in each column must comply with the structure of the database and its tables. whatever data you want to store must be known to create an appropriate database schema, this is the concept behind relational databases.
NoSQL was created to remedy the architecture of relational databases, to make the schema more dynamic and ever expanding. With the emergence of cloud computing, unstructured data such as social media posts in need of storage, and Agile development practice, The Document
In the article entitled Adolescents’ Beliefs About Why Young People Commit Crime written by Grace Skrzpiec a study was performed to discover why young people offend. Instead of adults answering this question, the researchers ask the adolescents their opinion on why some people commit crime and why others do not. This article relates to the course “Youth, Crime and Justice” because it mainly focuses on the adolescents’ views of deviant behaviour. This journal article was well written and easy to understand the concept. It related to the course discussion and it was interesting to learn an adolescents’ perspective on youth crime.
A key-value store database has a set of keys and values, and each value is associated with a key. The implementation of key-value store database is actually a distributed hash table (Stonebraker, 04/2010). Key-Value Stores(KV), which are normally known as a model of NoSQL databases, are widely deployed for data operation and management in purpose of enhancing Internet services due to better scalability, higher efficiency and more availability than existing relational databases systems (Wang, et al., 2014). Because KV stores sacrifice relation model in exchange for fast writing, and they are often featured with simple methods like “put()”,”delete()” and “get()”.
The idea of relational database was first introduced by E.F.Codd at IBM in 1970. It is a kind of computer database in which data is stored in Relations and is represented in the form of tables with rows and columns. Databases can vary in sizes, ranging from very small and simple to very large and complex ones. Database users can access the data practically in an unlimited number of ways. Relational databases help in finding the information in a quick and efficient manner that one is looking for.Today many popular databases use the model of relational database.
The rapid growth in the world of technology has influenced the way we communicate, shop, learn, and share information. The development of technology led database analysts and administrators to find more convenient ways to store the big amount of data. Big data is known as expression in the tech-world. It is defined as a huge collection of data that cannot be managed by relational databases (Moniruzzaman and Hossain 1). So, developers start to use non-relational databases (NoSQL) to arrange and store the Big data. In order to understand how developers solve the storing issue of the big amount of data and provide systems that can sync data between multiple devices, we need to start with a brief background of NoSQL databases to understand Couchbase system. The purpose of this paper is to define NoSQL database, compare it with SQL database, define Couchbase and describe how Couchbase is synchronizing data between multiple devices, especially Couchbase Mobile.
Graph Databases – There are few NoSQL Databases store information in a graphical model which scales athwart numerous machines. This model is appropriate for data relationships which are preeminent portrayed as a graph, for example, public transport links, social relations, network topologies or road maps. (Zaki, 2014).
For the purpose of this paper, we are going to focus on these three type of NoSQL database BigTable, Cassandra, DynamoDB.
NoSQL (Not Only SQL) is database design approach that incorporates a range of models, for example, document, graph and key-value. NoSQL databases do not use SQL as database querying language. NoSQL is an alternative to traditional relational databases, where data is placed in tables and data schema is carefully designed before the database is built, this is different from NoSQL as NoSQL is designed for speed and for projects where coding/developing can be implemented immediately rather than the careful design of a database.(Rouse, Vaughan, & Beal, 2017)
Currently, there are two major of database management systems which are used to deal with data, the first one called Relational Database Management System (RDBMS) which is the traditional relational databases, it deals with structured data and have been popular since decades from 1970, while the second one called Not only Structure Query Language databases (NoSQL), they have been dealing with semi-structured and unstructured data; the NoSQL term was introduced for the first time in 1998 by Carlo Strozzi and Eric Evans reintroduced the term NoSQL in early 2009, and now the NoSQL types are gaining their popularity with the development of the internet and the social media. NoSQL are intending to override the cons of RDBMS, such as fixed schemas, JOIN operations and handling the scalability problems. With the appearance of Big Data,
For the challenges we are facing be it technical or functional we find a NoSql data base as a best fit. We found out that NoSql incorporates a wide mixed bag of various database technologies and were produced in response to the rising data needs. Also when in comparison to the RDBMS present in the market NoSql provides an enriched performance and better scalability solutions. So in search of the best fit as our solution we searched out various types of NoSql database types and found out about Document databases, Graph databases, Key value stores and other similar types. Let’s explore various market players in each of the type and find the best one.
For example, Facebook which is the most popular social networking website recently announced their adoption of a NoSQL based graph data store for efficient storage of user data. In other words, NoSQL has already made its way into the enterprise. However, just like every other widely accepted technology, NoSQL has its own set of advantages and disadvantages. It is important for an enterprise to quantify the pros and cons of a particularly new database technology against the already existing solutions based on their custom requirements. For example, legacy enterprise applications may require extensive community support from their database vendors. Moreover, traditional relational database vendors such as Oracle have already established themselves for providing excellent support. On the other hand, NoSQL has been rapidly growing since the past few years and is consistently evolving in terms of big data handling, data warehousing and lesser complexity. Hence, there is a need to study the current market of data stores based on the most popular NoSQL data stores and how well they fair against the widely accepted traditional database systems. This requires a study of the commonly used NoSQL data stores.
STRUCTURE OF DATA: The data structure of a relational database comprises of table structure. Every table is identified by a unique name or label. The data tables are described as the collection of rows and columns. Each row of the table is known as the record and each column is known as the field of the specific data table. All the data sets are well organized and logical linked to each other through definite and unique relationships. A table, therefore can also be defined as the “structured collection of relationships”. The fundamental aim of developing No SQL database systems is to easily and effectively handle vast quantity of data or information in advanced web-scale applications. In order to achieve this purpose, the No SQL systems are designed as the schema-free database systems. There are different modes to define the No SQL databases that typically depend on the requirements of the data that has to be managed. The main No SQL data structures include column database, key-value store database, document store database, graph database and
In order to understand NoSQL databases, chapter two will describe the most significant features of NoSQL databases for solving the above mentioned requirements. Since the relational data model is not suitable for some use cases, chapter three will explain structure and flexibility of different data models offered by NoSQL databases. Chapter four will compare two of the widely used NoSQL databases which are MongoDB and Cassandra.
NoSQL is generally interpreted as “Not only SQL” [1]. It is a class of database management systems that are used for non-relational database. Typically NoSQL database does not use two-dimensional table to store data. The four generally categories of NoSQL database are key-values database, column databases, document databases, and graph databases [2]. NoSQL database is an indispensable part of big data. Most company choose NoSQL database because it yields better performance when compared to relation database. Many relational databases have been existing for more than 20 years, while most NoSQL databases have a history of less than 5 years. Because NoSQL databases are so young, they exposes lots of security issues. Many NoSQL databases are still focusing on adding features and improving performance, while strength security mechanism is still a low priority task. There were already two data breaches happened in companies that are using NoSQL databases (MongoHQ in 2013 and LinkedIn in 2012 [3]).
Apache Cassandra is open source NoSQL database and it was found in Facebook. Cassandra 's data model offers the convenience of column indexes with the performance of log-structured updates. It provides horizontal scalability and the downtime is lesser compared to
NoSQL Databases also referred as Not only SQL databases. These NoSQL database have these days gained much attention and reputation because of their performance and high scalability. The advantage of NoSQL database is to store efficiently unstructured data. These days use of e-commerce websites, social networking sites etc. has been increased. These usage made to create the need to store the large data. Some companies have adopted NoSQL databases, as their data is growing. Dynamo, Big table, Voldemort, Cassandra are the NoSQL databases that are used by Amazon, Google, and LinkedIn and Facebook respectively. Facing these huge data has become challenging for Relational Database Management Systems. Hence NoSQL database came into existence. Mostly Relational Database Management System satisfies ACID properties, through NoSQL database we can achieve high level of Scalability and performance. As a lot of sensitive data is stored in NoSQL databases security issues becomes growing concerns.