NoSQL Explained
NoSQL databases (aka "not only SQL") are non-tabular databases
Store data differently than relational tables.
The main types are document, key-value, wide-column, and graph.
They provide flexible schemas and scale easily with large amounts
of data and high user loads.
The term “NoSQL database,” refers to any non-relational database.
NoSQL databases emerged in the late 2000s as the cost of storage
dramatically decreased.
No need to create a complex, difficult-to-manage data model in order
to avoid data duplication.
Developers were becoming the primary cost of software development,
so NoSQL databases optimized for developer productivity.
As storage costs rapidly decreased, the amount of data that applications
needed to store and query increased.
This data came in all shapes and sizes structured, semi-structured, and
polymorphic — and defining the schema in advance became nearly
impossible.
NoSQL databases allow developers to store huge amounts of
unstructured data, giving them a lot of flexibility.
Need to rapidly adapt to changing requirements.
Ability to iterate quickly and make changes throughout their software stack —
all the way down to the database.
With Cloud computing developers began using public clouds to host their
applications and data.
Ability to distribute data across multiple servers and regions to make their
applications resilient, to scale out instead of scale up, and to intelligently
geo-place their data.
NoSQL database features
Each NoSQL database has its own unique features. At a high level, many NoSQL
databases have the following features:
Types of NoSQL databases
Over time, four major types of NoSQL databases emerged: document databases, key-value databases, wide-column stores, and graph
databases.
Document databases store data in documents similar to JSON (JavaScript
Object Notation) objects. Each document contains pairs of fields and values.
The values can typically be a variety of types including things like strings,
numbers, Booleans, arrays, or objects.
Key-value databases are a simpler type of database where each item contains keys and
values.
Wide-column stores store data in tables, rows, and dynamic columns.
Graph databases store data in nodes and edges. Nodes typically store information
about people, places, and things, while edges store information about the relationships
between the nodes.
When should NoSQL be used?
When deciding which database to use, decision-makers typically find one or more of
the following factors lead them to selecting a NoSQL database:
Fast-paced Agile development
Storage of structured and semi-structured data
Huge volumes of data
Requirements for scale-out architecture
Modern application paradigms like microservices and real-time streaming
NoSQL database misconceptions
Relationship data is best suited for relational databases.
NoSQL databases don't support ACID transactions.
Misconception: relationship data is best suited for relational databases
A common misconception is that NoSQL databases or non-relational databases
don’t store relationship data well. NoSQL databases can store relationship data
— they just store it differently
than relational databases do.
In fact, when compared with relational databases, many find modeling relationship data in NoSQL databases to be easier than in
relational databases, because related data doesn’t have to be split between tables.
NoSQL data models allow related data to be nested within a single data structure.
No comments:
Post a Comment