Tutorial 3
Ques 1: What is No-Sql?
Answer: NoSQL is an approach to database design that can accomodate
a wide variety of data models, including key-value, document, columnar and
graph formats. NoSQL, which stand for "not only SQL," is an
alternative to traditional relational databases in which data is placed in
tables and data schema is carefully designed before the database is built.
NoSQL databases are especially useful for working with large sets of
distributed data.
The
NoSQL term can be applied to some databases that predated the relational
database management system, but it more commonly refers to the databases built
in the early 2000s for the purpose of large-scale database clustering in cloud
and web applications. In these applications, requirements for performance and
scalability outweighed the need for the immediate, rigid data consistency that
the RDBMS provided to transactional enterprise applications.
Notably,
the NoSQL systems were not required to follow an established relational schema.
Large-scale web organizations such as Google and Amazon used NoSQL databases to
focus on narrow operational goals and employ relational databases as adjuncts
where high-grade data consistency is necessary.
Early
NoSQL databases for web and cloud applications tended to focus on very specific
characteristics of data management. The ability to process very large volumes
of data and quickly distribute that data across computing clusters were
desirable traits in web and cloud design. Developers who implemented cloud and
web systems also looked to create flexible data schema -- or no schema at all
-- to better enable fast changes to applications that were continually updated.
Ques 2: Features of No- Sql
Answer: Here are the 5 key features to look for in a NoSQL
database:
1.
Multi-Model
Where
relational databases require data to be put into tables and columns to be
accessed and analysed, the various data model capabilities of NoSQL databases
make them extremely flexible when it comes to handling data. They can ingest
structured, semi-structured, and unstructured data with equal ease, whereas
relational databases are extremely rigid, handling primarily structured data.
Different
data models handle specific application requirements. Developers and architects
choose a NoSQL database to more easily handle different agile application
development requirements. Popular data models include graph, document,
wide-column, and key-value.
2.
Easily Scalable
It’s
not that relational databases can’t scale, it’s that they can’t scale EASILY or
CHEAPLY, and that’s because they’re built with a traditional master-slave
architecture, which means scaling UP via bigger and bigger hardware servers as
opposed to OUT or worse via sharding. Sharding means dividing a database into
smaller chunks across multiple hardware servers instead of a single large
server, and this leads to operational administration headaches.
Instead,
look for a NoSQL database with a master less, peer-to-peer architecture with
all nodes being the same. This allows easy scaling to adapt to the data volume
and complexity of cloud applications. This scalability also improves
performance, allowing for continuous availability and very high read/write
speeds.
3.
Flexible
Where
relational databases require data to be put into tables and columns to be
accesses and analysed, the multi-model capabilities of NoSQL databases make
them extremely flexible when it comes to handling data. They can easily process
structured, semi-structured, and unstructured data, while relational databases,
as stated previously, are designed to handle primarily structured data.
4.
Distributed
Look
for a NoSQL database that is designed to distribute data at global scale,
meaning it can use multiple locations involving multiple data centres and/or
cloud regions for write and read operations. Relational databases, in contrast,
use a centralized application that is location-dependent (e.g. single
location), especially for write operations. A key advantage of using a
distributed database with a master less architecture is that you can maintain
continuous availability because data is distributed with multiple copies where
it needs to be.
5.
Zero Downtime
The
final but certainly no less important key feature to seek in a NoSQL database
is zero downtime. This is made possible by a master less architecture, which
allows for multiple copies of data to be maintained across different nodes. If
a node goes down, no problem: another node has a copy of the data for easy,
fast access. When one considers the cost of downtime, this is a big deal.
Ques 3: Difference between no sql and RDBMS?
Answer:
§ SQL databases are
primarily called as Relational Databases (RDBMS); whereas NoSQL database are
primarily called as non-relational or distributed database.
§ SQL databases are
table based databases whereas NoSQL databases are document based, key-value
pairs, graph databases or wide-column stores. This means that SQL databases
represent data in form of tables which consists of n number of rows of data
whereas NoSQL databases are the collection of key-value pair, documents, graph
databases or wide-column stores which do not have standard schema definitions
which it needs to adhered to.
§ SQL databases have
predefined schema whereas NoSQL databases have dynamic schema for unstructured
data.
§ SQL databases are
vertically scalable whereas the NoSQL databases are horizontally scalable. SQL
databases are scaled by increasing the horse-power of the hardware. NoSQL
databases are scaled by increasing the databases servers in the pool of
resources to reduce the load.
§ SQL databases uses
SQL ( structured query language ) for defining and manipulating the data, which
is very powerful. In NoSQL database, queries are focused on collection of
documents. Sometimes it is also called as UnQL (Unstructured Query Language).
The syntax of using UnQL varies from database to database.
§ SQL database
examples: MySql, Oracle, Sqlite, Postgres and MS-SQL. NoSQL database examples:
MongoDB, BigTable, Redis, RavenDb, Cassandra, Hbase, Neo4j and CouchDb
§ For complex
queries: SQL databases are good fit for the complex query intensive environment
whereas NoSQL databases are not good fit for complex queries. On a high-level,
NoSQL don’t have standard interfaces to perform complex queries, and the queries
themselves in NoSQL are not as powerful as SQL query language.
§ For the type of
data to be stored: SQL databases are not best fit for hierarchical data
storage. But, NoSQL database fits better for the hierarchical data storage as
it follows the key-value pair way of storing data similar to JSON data. NoSQL
database are highly preferred for large data set (i.e for big data). Hbase is
an example for this purpose.
§ For scalability: In
most typical situations, SQL databases are vertically scalable. You can manage
increasing load by increasing the CPU, RAM, SSD, etc, on a single server. On
the other hand, NoSQL databases are horizontally scalable. You can just add few
more servers easily in your NoSQL database infrastructure to handle the large
traffic.
§ For high
transactional based application: SQL databases are best fit for heavy duty
transactional type applications, as it is more stable and promises the
atomicity as well as integrity of the data. While you can use NoSQL for
transactions purpose, it is still not comparable and sable enough in high load
and for complex transactional applications.
§ For support:
Excellent support are available for all SQL database from their vendors. There
are also lot of independent consultations who can help you with SQL database
for a very large scale deployments. For some NoSQL database you still have to
rely on community support, and only limited outside experts are available for
you to setup and deploy your large scale NoSQL deployments.
§ For properties: SQL
databases emphasizes on ACID properties ( Atomicity, Consistency, Isolation and
Durability) whereas the NoSQL database follows the Brewers CAP theorem (
Consistency, Availability and Partition tolerance )
Ques 4: Compare the wide range of system that all go by the name no-Sql
Answer:
Comments
Post a Comment