Evolution of database management systems - from Relational to NoSQL
There are many ways to have persistent storage of application data.
1> Relational (most common) - data is organized in tables consisting of rows and columns. E.g. Oracle,
DB2 and many more. To manipulate data, Structured Query Language is used. Two main features
of RDBMS:
1.1> ACID is a set of properties that ensure reliable processing of database transactions in relational
database management systems (RDBMS). The acronym ACID stands for
Atomicity - Ensures that a transaction is treated as a single unit, which either completes entirely
or not at all. If any part of the transaction fails, the whole transaction is rolled back, leaving the
database unchanged.
Consistency: Guarantees that a transaction brings the database from one valid state to another,
preserving database invariants and integrity constraints.
Isolation: Ensures that concurrently executing transactions do not interfere with each other. The
intermediate state of a transaction is invisible to other transactions until it is committed.
Durability: Once a transaction has been committed, its effects are permanent and survive system
failures, thanks to mechanisms like transaction logs or backups.
1.2> Normalization: is a systematic process of organizing data to minimize redundancy and
dependency. The main goal is to structure the database in such a way that data is stored
efficiently, redundant data is eliminated, reducing storage space. Data integrity is maintained:
Dependences are logical and consistent, reducing update anomalies. The database design is
flexible and scalable: Making it easier to maintain and modify over time.
2> Hierarchical - data is organized in treelike structure where each node can have only one parent and
multiple child nodes. Initially popular but later Relational dbms took over due to their versatility and
flexibility
3> Graph database - Graph databases are specialized database systems designed to store, manage,
and query data in the form of graphs. They use nodes to represent entities, edges to represent
relationships, and properties to store additional information about nodes and edges. Unlike
traditional relational databases, graph databases prioritize relationships, making them highly
efficient for handling interconnected data. E.g. social networks, recommendation engines. Neo4j is
one example of graph db.
4> NoSQL - 'Not only SQL' : is a type of database management system designed to handle and store
large volumes of unstructured and semi-structured data. Unlike traditional relational databases
that use tables with pre-defined schemas, NoSQL databases use flexible data models that can
adapt to changes in data structures and scale horizontally to handle growing amounts of data.
Some types of NoSQL database systems are:
> Document Databases: These store data as semi-structured documents, such as JSON or XML,
and can be queried using document-oriented query languages.
Examples include MongoDB and Couchbase.
> Key-Value Stores: These store data as key-value pairs and are optimized for simple and fast
read/write operations.
Examples include Redis and Amazon DynamoDB.
> Column-Family Stores: These store data as column families, which are sets of columns treated
as a single entity. They are optimized for fast and efficient querying of large amounts of data.
Examples include Apache Cassandra and HBase.
Can you give real world example of type of database (other than RDBMS) you have used and how it has helped for your unique application need?
1
0 comments
Ajit Tawde
3
Evolution of database management systems - from Relational to NoSQL
powered by
Tech Pro Odyssey Premium
skool.com/tech-pro-odyssey-3339
Helping Bootcamp Grads, Self-Taught, and CS Grads Land Jobs in Tech. Learn how to network & automate your job hunt. Earn weekly cash rewards.
Build your own community
Bring people together around your passion and get paid.
Powered by