Nosql Database: Nosql Databases Are Generally Classified Into Four Main Categories
Nosql Database: Nosql Databases Are Generally Classified Into Four Main Categories
NoSQL Database
However, NoSQL databases may not be suitable for all applications, as they may
not provide the same level of data consistency and transactional guarantees as
resources to the existing machine whereas horizontal scaling means adding more
machines to handle the data. Vertical scaling is not that easy to implement but
horizontal scaling is easy to implement. Examples of horizontal scaling databases
are MongoDB, Cassandra, etc. NoSQL can handle a huge amount of data because
of scalability, as the data grows NoSQL scale itself to handle that data in an
efficient manner.
2. Flexibility: NoSQL databases are designed to handle unstructured or semi-
structured data, which means that they can accommodate dynamic changes to the
data model. This makes NoSQL databases a good fit for applications that need to
handle changing data requirements.
3. High availability : Auto replication feature in NoSQL databases makes it highly
available because in case of any failure data replicates itself to the previous
consistent state.
4. Scalability: NoSQL databases are highly scalable, which means that they can
handle large amounts of data and traffic with ease. This makes them a good fit for
applications that need to handle large amounts of data or traffic
5. Performance: NoSQL databases are designed to handle large amounts of data and
traffic, which means that they can offer improved performance compared to
traditional relational databases.
6. Cost-effectiveness: NoSQL databases are often more cost-effective than
traditional relational databases, as they are typically less complex and do not
require expensive hardware or software.
7. Agility: Ideal for agile development.
Disadvantages of NoSQL:
NoSQL has the following disadvantages.
1. Lack of standardization : There are many different types of NoSQL databases,
each with its own unique strengths and weaknesses. This lack of standardization
can make it difficult to choose the right database for a specific application
2. Lack of ACID compliance : NoSQL databases are not fully ACID-compliant,
which means that they do not guarantee the consistency, integrity, and durability
of data. This can be a drawback for applications that require strong data
consistency guarantees.
3. Narrow focus : NoSQL databases have a very narrow focus as it is mainly
designed for storage but it provides very little functionality. Relational databases
are a better choice in the field of Transaction Management than NoSQL.
4. Open-source : NoSQL is open-source database. There is no reliable standard for
NoSQL yet. In other words, two database systems are likely to be unequal.
5. Lack of support for complex queries : NoSQL databases are not designed to
handle complex queries, which means that they are not a good fit for applications
that require complex data analysis or reporting.
6. Lack of maturity : NoSQL databases are relatively new and lack the maturity of
traditional relational databases. This can make them less reliable and less secure
than traditional databases.
7. Management challenge : The purpose of big data tools is to make the
management of a large amount of data as simple as possible. But it is not so easy.
Data management in NoSQL is much more complex than in a relational database.
NoSQL, in particular, has a reputation for being challenging to install and even
more hectic to manage on a daily basis.
8. GUI is not available : GUI mode tools to access the database are not flexibly
available in the market.
9. Backup : Backup is a great weak point for some NoSQL databases like MongoDB.
MongoDB has no approach for the backup of data in a consistent manner.
10. Large document size : Some database systems like MongoDB and CouchDB
store data in JSON format. This means that documents are quite large (BigData,
network bandwidth, speed), and having descriptive key names actually hurts since
they increase the document size.
Types of NoSQL database: Types of NoSQL databases and the name of the
databases system that falls in that category are:
1. Graph Databases: Examples – Amazon Neptune, Neo4j
2. Key value store: Examples – Memcached, Redis, Coherence
3. Tabular: Examples – Hbase, Big Table, Accumulo
CS3492-DATABASE MANAGEMENT SYSTEMS
ROHINI COLLEGE OF ENGINEERING & TECHNOLOGY
This is the simplest type of NoSQL database. Under this type, the data is stored
in the form of key/value pairs. For each Key, there is a value assigned to it. Each Key
is unique and accepts only strings, whereas the value corresponding to the particular
Key can accept String, JSON, XML, etc. Owing to this behavior, it is capable of dealing
with massive loads of data.
Key Value Stores maintain data as pair consisting of an index key and a value.
KV stores query Values using the index Key. Every item in the database is stored in the
pairs of Keys (Indexes) and Values. KV stores resemble a relational database but with
each table having only two columns.Some KV stores may even allow basic joins to help
you scan through if there are composite joins, they may not be a suitable options.
There are multiple KV Stores available, each differing mainly in their adaption
of the CAP theorem and their configurations of memory v/s storage usage. KV stores
have fast query performance and are best suited for applications that require content
caching, e.g. a gaming website that constantly updates the top 10 scores & players.
NoSQL key value stores example
Features:
Consistency
Transactions
Query Features
Data Structure
Scaling
Advantages:
Disadvantages:
These kinds of databases are best suited for the following cases:
Shopping carts: easily handle the loss of storage nodes and quickly scale Big
data during a holiday/sale on an e-commerce application.
Document Stores
Document Stores are an extension of the simplicity of Key Value stores, where
the values are stored in structured documents like XML or JSON. Document stores
make it easy to map Objects in the object- oriented software.
Document stores can be used for all use cases of a KV store database, but it also
has additional advantages like there is no limitation of querying just by the key but even
querying attributes within a document, also data in each document can be in a different
format. E.g. A product review website where zero or many users can review each
product and each review can be commented on by other users and can be liked or
disliked by zero to many users.
E.g, A product review website where zero or many users can review each
product, and each review can be commented on by other users and can be liked or
disliked by zero to many users.
Document Stores:
Features:
Advantages:
– Scalable
– Open Formats
– No foreign Keys
Disadvantages:
User Profiles: Since they have a flexible Schema, the document can store
different attributes and values. This enables the users to store different types of
information.
Wide column data stores take a hybrid approach mixing the declarative
characteristics game of relational databases with the key-value pair based and totally
variables schema of key-value stores. Wide Column databases stores data tables as
sections of columns of data rather than as rows of data.
Column-family databases store data in column families as rows that have many
columns associated with a row key. Column families are groups of related data that is
often accessed together.
Super Column family: Super Column family consists of a key-value pair, where
the key is mapped to a value that are column families. In analogy with relational
databases, a super column family is something like a “view” on a number of tables. It
can also be seen as a map of tables.
Advantages:
Disadvnatges:
User Preferences
Business Intelligence
Reporting Systems
Some of the popular Wide column data stores include Google’s Bigtable,
Cassandra, HBase.
Note, wide column data stores are not to be confused with column-oriented
databases, I’ll may be cover this in a separate post.
Graph Databases
Graph databases are optimized for traversing through connected data, e.g.
traversing through a list of contacts on your social network to find out the degree of
connections.
Graph databases usually come with a flexible data model, which means there is
no need to define the types of edges and vertices.
Graph Databases:
Features:
Extremely powerful
Connected data is locally indexed
Can provide ACID
Results in real-time
Agile Structure
Disadvantages:
Recommendation engine
Logistics
Risk assessment
Fraud detection