-
Essay / Relational Database Analysis - 946
When discussing the topic of databases, most minds turn to a relational database. Where data is stored in tables and is related to each other through the use of primary and foreign keys. Growing interest in Big Data has caused some companies to abandon the standard RDBMS in favor of a system better suited to their needs. This is where NoSQL comes in. NoSQL – or “Not Only SQL” – uses different data structures to house data. These structures may resemble a relational database, but others are completely different. Depending on the specific structure used, your choice of database management systems will also change. There are four common data models to use: Key/Value Stores, Document Databases, Table-Style Databases, and Graph Databases (data access for highly scalable solutions). Key Value StoresLooking at the different data storage models, this is the simplest to implement. It's a way to have a schema-less design for storing data. Essentially, the store will act as a large hash table separated into keys and values (ref. Data Access). For the DBMS, the values are opaque – a random assortment of 1s and 0s – and the application on top of the database will then translate the binary into useful information. Hash functions are then used to determine where the values will be physically stored. Document Databases Document databases are similar to key/value stores, but documents, not values, are stored in the database. Documents can be in many different forms, such as XML, Microsoft Word, and even PDF. Like a key/value store, a document database will assign each document a unique key in order to locate it and end users can query by the key. The...... middle of paper ...... manage transactions in the database. NoSQL moves away from ACID and uses BASE. Base stands for Basically Available, Soft-state and Eventual Consistency. Basically, available means that the system will be available, although end users may receive failure messages due to the data state changing. Software state means that the system will always be updated or changed over time. Because it is constantly changing, data is never expected to be accurate or secure. Finally, eventual consistency means that a consistent state will occur once it finishes receiving user input (Joe Celko's NoSQL guide). Using this BASE model gives NoSQL better performance at the cost of data consistency. As noted previously, NoSQL, when given a choice between the three options of the CAP theorem, would choose availability and partitioning tolerance over consistency..