NOSQL
Introduction:
NoSQL databases have become a
a very trendy subject in the field of
web development. It is not uncommon to come across
on articles presenting them as being the
ultimate solution to all the problems encountered by
the web developer, when it comes to performance
or even of rising power. This
enthusiasm finds its source in the
numerous intrinsic qualities of great names
of NoSQL, but a number of points are
to consider before diving in headfirst into the
choice of a non-relational storage solution,
So what is NOSQL, and what are the
advantages and disadvantages of this base of
modern data?
Definition and function of
NOSQL
Nosql, which means Not Only SQL, is an approach to
database design that can adapt to
a wide variety of data models (graph
data base).
How do NoSQL databases work?
NoSQL databases organize large volumes of
data using flexible techniques such as
documents, graphs, value pairs and columns in this
NoSQL systems are perfectly suited for
applications requiring the processing of large volumes of
data on flexible structure bases.
NoSQL systems exploit a hardware cluster and a server
cloud capabilities are distributed evenly and the
database works smoothly the databases
NoSQLs impose themselves as a flexible and high-performance solution.
evolutive for storing large amounts of data.
One of the features of NoSQL systems is their ability
horizontal sizing
The advantages:
• Designed for distributed systems.
• She does not have a flexible schedule.
• Base transaction.
• The queries are simple (no joins).
• Horizontal scaling.
• Rapid development.
• Provide several models to choose from.
• More efficient.
The drawbacks:
She doesn't have a diagram.
No standard and uniform query language.
No ACID transaction (atomicity, consistency, isolation and
sustainability.
Lack of features.
Advantages of NoSQL over SQL
Depending on the application objective, NoSQL has some
advantages over relational databases
classics. As SQL systems quickly become saturated,
in case of use with Big Data for example, the databases
NoSQL data can read and process large volumes of
data at record speed, thanks to its high models
evolving performance.
Disadvantages:
There is no standardized interrogation language.
each publisher has set up their own.
Writing complex queries is difficult to implement
work.
The NoSQL offer is segmented into several families where
each one meets a specific need.
In Summary
SQL NoSQL
Relational Non-relational
Flexible queries (join) Limited requests
Vertical sizing Horizontal sizing
Schema / tables No diagram
Transactions on multiple tables Difficult to support the
transaction
ACID (Atomicity, Consistency, BASE (Basically Available, Soft
Isolation, Durability State, Eventual Consistency
The families of NoSQL:
NoSQL groups 4 major families of databases
data that allow for providing a representation
different data, each has
of advantages and disadvantages depending on the
context in which we wish to use it. There are:
Documentary databases
Graph databases
Key-Value Databases
Column-oriented databases
Documentary databases:
The document-oriented representation is more suitable for
world of the internet. This representation is very close to the
key-value representation except that the value is
represented in the form of a document. We can find
in this document the data organized in a way
hierarchical like what is found in an XML file
(The eXtensibleMmarkupLlanguage, generally called XML,
The 'extensible markup language' in French is a metalanguage.
generic markup language which is a subset of
Standard Generalized Markup Language
Documentary databases:
[Link] is a format of
textual data derived from the notation of objects of
JavaScript language. It allows representing information.
structured as allowed by XML for example.
There are 2 types of implementations:
CouchDBandMongoDB.
Graph databases:
The directed graph representation is to address some
problems impossible to solve with relational databases.
The typical use case is of course social networks where
the graph aspect takes on its full meaning, but also where some
Complex relationships between the actors need to be described.
On find 3 different implementations:
Neo4j, HypergraphDBandFlockDB.
Key-Value Databases:
The key-value representation is the simplest and is very
suitable for caches or for quick access to information.
This representation generally allows to achieve
performances well above as readings
and writings are reduced to a simple disk access. We find 3
different implementations:Riak, RedisandVoldemort.
Column-oriented databases:
The column-oriented representation is the one that is closer.
the most of tables in a relational database.
They allow for being much more adaptable and flexible.
since we can have different columns for each
line. There are 2 types
implementations:HBaseandCassandra.
Overview of four NoSQL solutions
privileged
Most NoSQL databases are software.
Open source freely available to internet users. They are
thus easily accessible. You can download
many NoSQL applications for free, you
get familiar with them, then use them in addition to your
SQL database. NoSQL databases below
the below have already proven themselves.
Cassandra is a NoSQL database.
columns, optimized for storage and
processing large datasets.
2-cauch DB: The documentary database
cauch DB exploits an intuitive HTTP/JSON API and
can be used in any field
of application, whether it is for Big Data and
mobile applications or even web.
3-Neo4j: With Neo4J, you can integrate your
data within a graphical database
Cloud-based NoSQL. In the front line, you
you can thus represent in graphs the
relations between the different datasets and
recognize defined patterns.
4-Redis: The key-value database Redis is this
what is called an in-memory database:
she directly saves the data in the cache
and thus guarantees you better performance
Conclusion
NoSQL databases are
so not the miracle solution for
address all the issues of
storage on the web or elsewhere. It is
surtout très important de bien comprendre
what the choice of a database
what type will have like
consequences in terms of architecture
software and complexity of
development.