In this blog we will cover all below topics:
Disadvantages of Relational DBs
What are NoSQL Databases?
RDBMS vs NoSQL
CAP Theorem
Intro to MongoDB
Working with MongoDB & Python
Exercise
First we have flashback about relation database which I discussed in previous blog:
Relational Databaseis a database that stores data as a set of Tables (Relations) with:
Set of Columns
One column is called a Primary Key
All values in a Column have the same data type
Set of Rows
Rows have entries that correspond to Columns
Each Row is Unique based on the Primary Key
Primary Key must have a unique value (not NULL or empty)
Row Entries not in the Primary Key do not have to be unique
Non-Primary Keys entries for a Row can be NULL or empty
Rows of data in their raw form are stored in Tuples
Relational Database Management Systems (RDBMS), a set of programs for managing and facilitating all the operations on a database while maintaining the integrity and security of the data, e.g. Oracle RDBMS, IBM DB2, PostgreSQL
Disadvantages of Relational DBs
Relational DBs were not built for Big Data distributed applications
Joins are expensive
Difficult to scale horizontally
Impedance mismatch
Costly hardware & maintenance
Partition tolerance issues
Weak performance (speed)
High availability limitations
What’s NoSQL?
A NoSQL database supports storage and retrieval of data with less constrained consistency than a traditional relational database
No SQL systems are also referred to as "NotonlySQL“ to emphasize that they do in fact allow SQL-like query languages to be used.
Poorly named—confuses a data model (relational) for a query language (SQL)
Should have been called Not Only Relational
NoSQL family contains a variety of models under this umbrella
NoSQL Database Types
Key-Value Stores, e.g. Redis, Riak
Document Databases, e.g. MongoDB
Column-Oriented, e.g. Cassandra, Hbase
Graph Databases, e.g. Neo4j, JenaDB
Key-Value Stores
Simplest type of NoSQL databases
Main idea – use of a hash table
Access values using keys (strings)
No data format enforcement
Data model: (key, value) pairs
Basic Operations:
1. Insert(key, value)
2. Fetch(key)
3. Update(key)
4. Delete(key)
Column Family, Column-Oriented or Wide-Column Stores
Contains columns of related data
Key is mapped to a value that is a set of columns
The column is lowest/smallest instance of data.
It is a tuple that contains a name, a value and a timestamp
Document-Oriented Stores
Pair each key with a complex data structure, e.g. JSON document
Indexes are done via B-Trees.
Documents can contain many different key-value pairs, or key-array pairs, or even nested documents.
Graph-Based Databases
Based on graph data model
* Node: entity (person, place, etc.)
* Relationship between nodes
Use graph algorithms
Scale vertically, no clustering
Support ACID transactions
Millions of operations per second
More on these in Week 7
NoSQL Characteristics: Performance Over Perfection
Sharding
Data collection can be split into pieces, or shards
DBMS does not have to access the entire collection
•Each shard may be stored in separate nodes
Replication
Each shard can be replicated several times
Each replica is stored on a separate node
NoSQL Characteristics: Indexing
A way to optimize the performance of a database by minimizing the number of disk accesses required when a query is processed.
Data structure technique which is used to quickly locate and access the data in a database
More on this when we discuss MongoDB, and even more we get to Elasticsearch
Relational vs NoSQL DBMS
RDBMS or NoSQL
The decision depends on the following factors (among others):
The volume of data
What kind of data is to be stored
The degree to which concurrent transactions will be executed
The volume of transactions in a unit of time
The nature of the most frequent operations
The degree of scalability of the DB
The degree of consistency and integrity needed
Disadvantages of NoSQL databases
No standardized query language
* Need to learn the query language for each NoSQL DB system
* Cassandra has a SQL-like query language
Weaker control over consistency, availability, and durability
Integrity constraints have to be implemented at the program level rather than guaranteed by the DBMS
If you need any assignment help in Relational Database or NoSQL Database then we are ready to help you.
Send your request at realcode4you@gmail.com and get instant help with an affordable price.
We are always focus to delivered unique or without plagiarism solution which is written by our highly educated professional which provide well structured code within your given time frame.
If you are looking other programming language help like C, C++, Java, Python, PHP, Asp.Net, NodeJs, ReactJs, etc. with the different types of databases like MySQL, MongoDB, SQL Server, Oracle, etc. then also contact us.
Comments