2 - Disadvantages of NoSQL Technology
2 - Disadvantages of NoSQL Technology
2 - Disadvantages of NoSQL Technology
Now I've got a response to talk about the disadvantages or issues of using NoSQL
technologies.
NoSQL has a non-standardized query language.
In the absence of a standard query language for NoSQL databases, it is necessary to
learn each query language for a given database management system.
This is true even within each NoSQL storage category.
NoSQL has problems in transactions.
As a result of not following the ACID properties, there is a weaker control over the
consistency, durability and isolation of transactions.
NoSQL has integrity problems.
Ensuring the integrity of the data requires extra programming manually and is not
function of the DBMS.
Integrity is understood from the point of view of the restrictions, of domain, referential
of null value, etc.
Now that we know the advantages and disadvantages of NoSLQ databases, we have
the criterion to decide when to use relational database systems, and when to use
NoSQL database technologies.
The decision on what type of DBMS should be used depends on a set of factors
including but not limited to.
The volume of data to store.
The estimated concurrence.
The number of operations that are done on the database per unit of time.
The desired scalability of the database.
The degree of integrity and consistency that is desired.
The nature of the data to be stored.
The most frequent types of operations that you want to do with the data.
There are two main characteristics regarding those equal data basis and they are the
CAP theorem and the base properties.
On the one hand, the CAP theorem has been adopted by several companies in the web
and the NoSQL community.
The acronym for CAP refers to the following, C as consistency.
It refers to whether a system is in a consistent state after the execution of an operation
or not.
A distributed system is considered consistent if after an update operation by a node,
the rest of the nodes see the update in a shared data resource.
A as availability, it means that a system is designed and implemented in such a way
that it can continue its operation if there are software or hardware problems or a node
fails.
P as Partition tolerance it's the ability of a system to continue it's operation in the
presence of network partitions.
This happens if a set of nodes in a network looses connectivity with other nodes.
Partition tolerance can also be considered as ability of a system to dynamically add and
remove nodes.
[INAUDIBLE] that the most you can have two of the three characteristics in a shared
data system.
On the other hand, a NoSQL database follows a paradigm of the base properties.
BASE stands for basically available.
Soft state, the information will expire unless it is refreshed.
And eventual consistency.
The BASE properties can be summarized as follows, an application works basically all
the time.
It does not have to be consistent all the time, but it will eventually reach a known
state.
The NoSQL technologies comprise a number of non-relational databases.
The most common are key-value, column-oriented, document-oriented, and graph-
oriented databases.
In the case of a key-value database, it is a system that stores values indexed by keys.
And then it can store structured and unstructured data.
The possibility of storing any type of value is called schema-less.
The data values are stored as arrays of bytes.
The content is not important for the database.
And it offers high performance, very scalable, very flexible, and low complexity.
The disadvantage of key value databases is that they do not support complex queries,
because they only look for a key.
Examples of key-value databases are Amazon, DynamoDB, Cassandra, Voldemort,
RAMCloud, and Flare.
[MUSIC]
Regarding to column-oriented databases, as the name implies, they store the data in
columns instead of rows.
That is, all the attributes of a single data entity are stored so that each of them can be
accessed as a unit.
Examples of DBMS oriented to columns includes Sybase IQ, Cassandra, hyper table,
and age based.
The following few here illustrates how column oriented storage is compared to row
storage.
Column-oriented databases are not good for queries that required to present the
whole record of an entity.
In this case, the row-store is better.
[SOUND] Column-oriented storage is especially efficient when data readings are
massive, and writes to a few columns.
This is because in a query, only the data of the columns that interest are obtained, not
all the columns of a record, which increases efficiency.
There are some columnar databases that can be designed as a relational and
supportive AC properties.
An example of these is.
In these case, columnar oriented databases are widely used in business intelligence.
There are also documentary into databases that are commonly key value where
a value is stored as a binary field with a format that the DBMS can understand.
This format is often a JSON document,
JavaScript Object Notation, but it can be XML or any other.
Too many advantages are that it allows very advanced queries on the data.
And restores relations between data.
There are some document databases that do not allow
join operations due to performance issues.
Examples of document-oriented DBMS include CouchDB, MongoDB,
Cloudkit, and XML databases such as DB2 pureXML.
The last type of most SQL database I will mention
corresponds to graph-oriented bases.
Whether graphics represented as a set of nodes or
entities interconnected by age or relationships.
Graphs give importance not only to the data, but to the relations between them.
Relationships can also have attributes and
direct queries can be made to relationships, rather than to the nodes.
Being stored in this way, it is much more efficient
to navigate between relationships than in a relational model.
[SOUND] Obviously, these type of databases are only
useful when the information can be easily represented as a network.
Among the most used implementations are Neo4J, Hyperbase-DB, and InfoGrid.
The performance and scalability of a graph-oriented database are variable,
highly flexible, and highly complex to implement.
Now that we have understood the main characteristics of NoSQL databases,
how to decide which of them we should utilize.
Well, that depends on the performance, scalability,
flexibility, complexity, and functionality your information system requires.
We can understand from the table how it establishes a comparison between
the different data storage alternatives.
These characteristics are trends and generalities of such systems but
the performance and the scalability depend very much on the type and
frequency of operations that are applied.
We have learned what a sequence means and when it should be used.
Next section we would understand the key value data basis, see you next section.