CS22512 Honors New
CS22512 Honors New
NOSQL DATABASES
Unit 1
NoSQL DATABASES
Syllabus:
NoSQL Databases - Evolution of NoSQL Databases-Different types of NoSQL
databases-Advantages of NoSQL databases, Scalability and performance.
Document data stores, Key-Value data stores. Case studies of MongoDB, HBase,
Neo4J. NoSQL database design for applications.
Introduction to NoSQL
NoSQL, known as Not only SQL database, provides a mechanism for storage and retrieval of
data and is the next generation database . It has a distributed architecture with MongoDB and
is open source. Most of the NoSQL are open source and it has a capability of horizontal
scalability which means that commodity kind of machines could be added.
The capacity of your clusters can be increased. It is schema free and there is no requirement
to design the tables and pushing the data to it. NoSQL provides easy replication claiming there
are very less manual interventions in this. Once the replication is done, the system will
automatically take care of fail overs.
The crucial factor about NoSQL is that it can handle huge amount of data and can achieve
performance by adding more machines to your clusters and can be implemented on
commodity hardware. There are close to 150 NoSQL databases in the market which will make
it difficult to choose to choose the right pick for your system.
1
Brief History of NoSQL Databases
• The term "NoSQL" was first coined in 1998 by Carlo Strozzi, who created the Strozzi
NoSQL database, which was a relational database without an SQL interface.
• The modern NoSQL movement gained momentum in the early 2000s as the need for
more scalable and flexible databases grew, driven by the rise of big data and web-scale
applications.
• In 2009, the first working NoSQL applications emerged, marking a true departure from
the relational database model.
• NoSQL databases are designed to work with large data sets and provide high
availability.
• NoSQL databases are horizontally scalable, meaning they can scale out by adding
more nodes to the system.
• They are highly available and can continue functioning even if one or more nodes
fail.
• They generally use a more simplified data model than relational databases. They
often use key-value pairs or document-oriented storage or a graph model. This
makes them easier to design and implement and allows them to be more flexible
in storing data.
• They are often used in cloud computing environments where resources are
dynamic and can be scaled up or down as needed.
• They are typically designed to be simple and easy to maintain.
• They are often designed with high availability and fault tolerance in mind. This
means they can continue operating even if there are hardware or software failures.
• They are often designed for easy integration with other systems. This makes them
a good choice in polyglot architectures, where different system components are
written in different languages or use different database technologies.
• They are a powerful tool for handling big data, becoming increasingly popular as
the need for web-scale applications continues to grow.
2
• They are designed to run on commodity hardware, using simple replicas to spread
the load and data across multiple servers. This horizontal scaling allows them to
handle large data sets and high traffic loads.
A database revolution is a process by which a database is created or updated to take
advantage of new technologies or to improve performance.
There are four main steps in the generation of database revolutions in NoSQL:
1. The first step is to identify the needs of the application.
2. The second step is to choose the right database technology.
3. The third step is to implement the database.
4. The fourth step is to monitor the performance of the database.
Database Revolution:
The steps involved in a database revolution are as follows:
1. Assess the current state of the database.
2. Determine the goals of the update or revolution.
3. Design the new database.
4. Implement the new database.
5. Test the new database.
6. Go live with the new database.
Generations:
1. Relational Database: The first database revolution was the relational database in
the 1970s, which organized data into tables with rows and columns. A relational
database is a database that stores data in tables. Relational databases are based on
the mathematical concept of Set theory and use a structured query language (SQL) for
accessing and manipulating data. Tables are similar to folders in a file system, where
each table contains a collection of information. A NoSQL database is a type of database
that does not use the traditional table structure. NoSQL databases are made up of
documents, and each document represents a record, Can store data in the form of
tables and relations between those tables, and Can be queried using SQL.
Advantages:
• Data is easy to organize.
• Querying is straightforward.
• It can be used to enforce data integrity.
3
objects. Objects are similar to files in a file system, where each object contains a
collection of information. It can store data in the form of objects.
Advantages:
• More flexible than relational databases.
• It can represent more complicated relationships between data.
• It can be easier to work with object-oriented programming languages.
3. XML Database: The third database revolution was the XML database in the 1990s,
which organized data into XML documents. An XML database is a database that stores
data in XML documents. XML documents are similar to files in a file system, where
each XML document contains a collection of information, and can store data in the
form of XML documents.
Advantages:
• It can be used to store semi-structured data.
• It can be queried using XPath.
• It can be easily integrated with web applications.
4. NoSQL Database: The fourth database revolution is the NoSQL database in the
2000s, which organizes data into key-value pairs, documents, columns, and graphs. A
NoSQL database is a database that does not store data in tables, objects, or XML
documents, and It can store data in a variety of formats.
Advantages:
4
Advantages:
5
1. Document-Based Database:
A Document Data Model is a lot different than other data models because it stores data in
JSON, BSON, or XML documents. in this data model, we can move documents under one
document and apart from this, any particular elements can be indexed to run queries faster.
Often documents are stored and retrieved in such a way that it becomes close to the data
objects which are used in many applications which means very less translations are required
to use data in applications. JSON is a native language that is often used to store and query
data too.
So in the document data model, each document has a key-value pair below is an example for
the same.
{
"Name" : "Yashodhra",
"Address" : "Near Patel Nagar",
"Email" : "[email protected]",
"Contact" : "12345"
}
6
• Flexible Schema: Overall schema is very much flexible to support this statement one
must know that not all documents in a collection need to have the same fields.
• Distributed and Resilient: Document data models are very much dispersed which is
the reason behind horizontal scaling and distribution of data.
• Manageable Query Language: These data models are the ones in which query
language allows the developers to perform CRUD (Create Read Update Destroy)
operations on the data model.
Examples of Document Data Models :
• Amazon DocumentDB
• MongoDB
• Cosmos DB
• ArangoDB
• Couchbase Server
• CouchDB
Advantages:
• Schema-less: These are very good in retaining existing data at massive volumes
because there are absolutely no restrictions in the format and the structure of data
storage.
• Faster creation of document and maintenance: It is very simple to create a document
and apart from this maintenance requires is almost nothing.
• Open formats: It has a very simple build process that uses XML, JSON, and its other
forms.
• Built-in versioning: It has built-in versioning which means as the documents grow in
size there might be a chance they can grow in complexity. Versioning decreases
conflicts.
Disadvantages:
• Weak Atomicity: It lacks in supporting multi-document ACID transactions. A change in
the document data model involving two collections will require us to run two separate
queries i.e. one for each collection. This is where it breaks atomicity requirements.
• Consistency Check Limitations: One can search the collections and documents that
are not connected to an author collection but doing this might create a problem in the
performance of database performance.
• Security: Nowadays many web applications lack security which in turn results in the
leakage of sensitive data. So it becomes a point of concern, one must pay attention to
web app vulnerabilities.
7
Applications of Document Data Model :
• Content Management: These data models are very much used in creating
various video streaming platforms, blogs, and similar services Because each is stored
as a single document and the database here is much easier to maintain as the service
evolves over time.
• Book Database: These are very much useful in making book databases because as we
know this data model lets us nest.
• Catalog: When it comes to storing and reading catalog files these data models are very
much used because it has a fast reading ability if incase Catalogs have thousands of
attributes stored.
• Analytics Platform: These data models are very much used in the Analytics Platform.
2. Key-Value Stores:
A key-value data model or database is also referred to as a key-value store. It is a non-relational
type of database. In this, an associative array is used as a basic database in which an individual
key is linked with just one value in a collection. For the values, keys are special identifiers. Any
kind of entity can be valued. The collection of key-value pairs stored on separate records is
called key-value databases and they do not have an already defined structure.
8
many programming paradigms, a key-value database resembles a map object or array, or
dictionary, however, which is put away in a tenacious manner and controlled by a DBMS.
An efficient and compact structure of the index is used by the key-value store to have the
option to rapidly and dependably find value using its key. For example, Redis is a key-value
store used to tracklists, maps, heaps, and primitive types (which are simple data structures)
in a constant database. Redis can uncover a very basic point of interaction to query and
manipulate value types, just by supporting a predetermined number of value types, and when
arranged, is prepared to do high throughput.
When to use a key-value database:
Here are a few situations in which you can use a key-value database:-
• User session attributes in an online app like finance or gaming, which is referred to as
real-time random data access.
• Caching mechanism for repeatedly accessing data or key-based design.
• The application is developed on queries that are based on keys.
Features:
• One of the most un-complex kinds of NoSQL data models.
• For storing, getting, and removing data, key-value databases utilize simple functions.
• Querying language is not present in key-value databases.
• Built-in redundancy makes this database more reliable.
Advantages:
• It is very easy to use. Due to the simplicity of the database, data can accept any kind,
or even different kinds when required.
• Its response time is fast due to its simplicity, given that the remaining environment
near it is very much constructed and improved.
• Key-value store databases are scalable vertically as well as horizontally.
• Built-in redundancy makes this database more reliable.
Disadvantages:
• As querying language is not present in key-value databases, transportation of queries
from one database to a different database cannot be done.
• The key-value store database is not refined. You cannot query the database without a
key.
Some examples of key-value databases:
Here are some popular key-value databases which are widely used:
9
• Couchbase: It permits SQL-style querying and searching for text.
• Amazon DynamoDB: The key-value database which is mostly used is Amazon
DynamoDB as it is a trusted database used by a large number of users. It can easily
handle a large number of requests every day and it also provides various security
options.
• Riak: It is the database used to develop applications.
• Aerospike: It is an open-source and real-time database working with billions of
exchanges.
• Berkeley DB: It is a high-performance and open-source database providing scalability.
10
Column – Oriented Table:
S.No. Name ID
01. Tanmay 2
02. Abhishek 5
03. Samriddha 7
04. Aditi 8
S.No. Course ID
01. B-Tech 2
02. B-Tech 5
03. B-Tech 7
04. B-Tech 8
S.No. Branch ID
01. Computer 2
02. Electronics 5
03. IT 7
04. E & TC 8
11
Columnar Data Model uses the concept of keyspace, which is like a schema in relational
models.
Advantages of Columnar Data Model :
• Well structured: Since these data models are good at compression so these are very
structured or well organized in terms of storage.
• Flexibility: A large amount of flexibility as it is not necessary for the columns to look
like each other, which means one can add new and different columns without
disrupting the whole database
• Aggregation queries are fast: The most important thing is aggregation queries are
quite fast because a majority of the information is stored in a column. An example
would be Adding up the total number of students enrolled in one year.
• Scalability: It can be spread across large clusters of machines, even numbering in
thousands.
• Load Times: Since one can easily load a row table in a few seconds so load times are
nearly excellent.
Disadvantages of Columnar Data Model:
• Designing indexing Schema: To design an effective and working schema is too difficult
and very time-consuming.
• Suboptimal data loading: incremental data loading is suboptimal and must be
avoided, but this might not be an issue for some users.
• Security vulnerabilities: If security is one of the priorities then it must be known that
the Columnar data model lacks inbuilt security features in this case, one must look into
relational databases.
• Online Transaction Processing (OLTP): Online Transaction Processing (OLTP)
applications are also not compatible with columnar data models because of the way
data is stored.
Applications of Columnar Data Model:
• Columnar Data Model is very much used in various Blogging Platforms.
• It is used in Content management systems like WordPress, Joomla, etc.
• It is used in Systems that maintain counters.
• It is used in Systems that require heavy write requests.
• It is used in Services that have expiring usage.
12
Graph-Based databases:
Graph Based Data Model in NoSQL is a type of Data Model which tries to focus on building the
relationship between data elements. As the name suggests Graph-Based Data Model, each
element here is stored as a node, and the association between these elements is often known
as Links. Association is stored directly as these are the first-class elements of the data model.
These data models give us a conceptual view of the data.
These are the data models which are based on topographical network structure. Obviously, in
graph theory, we have terms like Nodes, edges, and properties, let’s see what it means here
in the Graph-Based data model.
• Nodes: These are the instances of data that represent objects which is to be tracked.
• Edges: As we already know edges represent relationships between nodes.
• Properties: It represents information associated with nodes.
The below image represents Nodes with properties from relationships represented by edges.
13
databases these data models don’t have any schema as it is important because schema makes
the model well and good and easy to edit.
Examples of Graph Data Models :
• JanusGraph: These are very helpful in big data analytics. It is a scalable graph database
system open source too. JanusGraph has different features like:
o Storage: Many options are available for storing graph data like Cassandra.
o Support for transactions: There are many supports available like
ACID (Atomicity, Consistency, Isolation, and Durability) which can hold
thousands of concurrent users.
o Searching options: Complex searching options are available and optional
support too.
• Neo4j: It stands for Network Exploration and Optimization 4 Java. As the name
suggests this graph database is written in Java with native graph storage and
processing. Neo4j has different features like:
o Scalable: Scalable through data partitioning into pieces known as shards.
o Higher Availability: Availability is very much high due to continuous backups
and rolling upgrades.
o Query Language: Uses programmer-friendly query language Cypher graph
query language.DGraph main features are:
• DGraph: It is an open-source distributed graph database system designed with
scalability.
o Query Language: It uses GraphQL, which is solely made for APIs.
o open-source system: support for many open standards.
Advantages of Graph Data Model :
• Structure: The structures are very agile and workable too.
• Explicit Representation: The portrayal of relationships between entities is explicit.
• Real-time O/P Results: Query gives us real-time output results.
Disadvantages of Graph Data Model :
• No standard query language: Since the language depends on the platform that is used
so there is no certain standard query language.
• Unprofessional Graphs: Graphs are very unprofessional for transactional-based
systems.
• Small User Base: The user base is small which makes it very difficult to get support
when running into a system.
14
Applications of Graph Data Model:
• Graph data models are very much used in fraud detection which itself is very much
useful and important.
• It is used in Digital asset management which provides a scalable database model to
keep track of digital assets.
• It is used in Network management which alerts a network administrator about
problems in a network.
• It is used in Context-aware services by giving traffic updates and many more.
• It is used in Real-Time Recommendation Engines which provide a better user
experience.
15
preserved is sharding. Vertical scaling means adding more 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 scales. The auto itself to handle that data in an efficient manner.
• 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.
• High availability: The auto, replication feature in NoSQL databases makes it highly
available because in case of any failure data replicates itself to the previous consistent
state.
• 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
• 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.
• 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.
• Agility: Ideal for agile development.
16
Scalability
1. Horizontal Scalability:
• Definition: The ability to increase capacity by connecting multiple hardware or
software entities so that they work as a single logical unit.
• Mechanism: Data is distributed across multiple servers (nodes) rather than relying on
a single server.
• Benefits: Allows for handling increasing data volumes and user load by simply adding
more nodes to the cluster.
2. Automatic Sharding:
• Definition: A method for distributing data across multiple machines.
• Mechanism: Data is divided into smaller, manageable pieces called shards, which are
distributed across multiple nodes.
• Benefits: Enhances performance by parallelizing read and write operations and
ensures that no single node becomes a bottleneck.
3. Elastic Scaling:
• Definition: The capability to dynamically adjust resource allocation to meet varying
workloads.
• Mechanism: Resources can be scaled up or down based on current demand.
• Benefits: Cost-effective as resources are utilized based on demand, avoiding over-
provisioning.
4. Replication:
• Definition: The process of copying data from one node to another.
• Mechanism: Data is replicated across multiple nodes to ensure high availability and
fault tolerance.
• Benefits: Provides redundancy, ensuring data availability even if one node fails.
Performance
1. High Throughput:
• Definition: The ability to process a high volume of transactions in a given time period.
• Mechanism: Optimized for fast read and write operations.
• Benefits: Suitable for applications requiring high-speed data processing, such as real-
time analytics.
17
2. Low Latency:
• Definition: The delay before a transfer of data begins following an instruction for its
transfer.
• Mechanism: Efficient data retrieval methods and in-memory storage (e.g., Redis).
• Benefits: Ensures quick response times, essential for real-time applications.
3. Data Locality:
• Definition: Storing related data close together to minimize access times.
• Mechanism: Techniques like sharding and partitioning ensure related data is stored on
the same node.
• Benefits: Reduces the time taken to access related data, improving overall
performance.
4. Optimized for Specific Workloads:
• Mechanism: Different types of NoSQL databases (e.g., key-value, document, column-
family, graph) are optimized for specific use cases.
• Benefits: Ensures efficient data processing tailored to the specific needs of the
application.
5. Caching:
• Definition: Storing copies of data in a high-speed storage layer.
• Mechanism: Frequently accessed data is stored in memory (e.g., Memcached, Redis).
• Benefits: Reduces the load on the primary database and speeds up data access.
18
Aspect Scalability Performance
Example
MongoDB, Cassandra Redis, HBase
Technologies
Resource Efficiently uses multiple servers to Efficient use of memory and CPU to
Utilization distribute load speed up operations
19
• Flexible Schema: Documents can have varying numbers and types of fields, allowing
for easy adaptation to changing data requirements.
• Intuitive Data Model: Documents map naturally to data structures used in
applications, reducing the need for complex object-relational mapping.
• High Performance: Document databases are optimized for retrieving and querying
documents, providing fast access to data.
• Scalability: Document databases can scale horizontally by adding more servers to a
cluster.
Examples of popular document databases include MongoDB, Couchbase, and Amazon
DocumentDB. Document databases are well-suited for use cases such as content
management systems, mobile apps, real-time analytics, and IoT applications.
1. Weak Atomicity:
• Lacks support for multi-document ACID transactions, breaking atomicity
requirements.
20
2. Consistency Check Limitations:
• Performance issues when searching unconnected collections and documents.
3. Security Concerns:
• Potential vulnerabilities in web applications can lead to data leaks.
1. Content Management:
• Ideal for video streaming platforms, blogs, and similar services due to ease of
maintenance.
2. Book Database:
• Useful for nesting data, making it suitable for managing book databases.
3. Catalog:
• Efficient for storing and reading catalog files with thousands of attributes.
4. Analytics Platform:
• Commonly used for analytics due to fast reading capabilities.
Key-Value data stores are one of the simplest types of NoSQL databases. They store data as a
collection of key-value pairs, where each key is unique and maps directly to a value.
In a key-value database:
• Data is stored as a collection of key-value pairs.
• Each key is a unique identifier that points to a corresponding value.
• The values can be simple data types like strings and numbers, or more complex
objects.
• There is no predefined schema - the database does not enforce any structure on the
data.
• Keys are used to quickly retrieve the associated values.
Features:
• One of the most un-complex kinds of NoSQL data models.
• For storing, getting, and removing data, key-value databases utilize simple functions.
• Querying language is not present in key-value databases.
• Built-in redundancy makes this database more reliable.
21
Advantages:
• It is very easy to use. Due to the simplicity of the database, data can accept any kind,
or even different kinds when required.
• Its response time is fast due to its simplicity, given that the remaining environment
near it is very much constructed and improved.
• Key-value store databases are scalable vertically as well as horizontally.
• Built-in redundancy makes this database more reliable.
Disadvantages:
• As querying language is not present in key-value databases, transportation of queries
from one database to a different database cannot be done.
• The key-value store database is not refined. You cannot query the database without a
key.
22
Case studies of MongoDB, HBase, Neo4J:
1. eBay
Outcome:
• Scalability: MongoDB allowed eBay to scale horizontally across multiple servers,
handling billions of documents efficiently.
• Performance: Improved read and write performance due to MongoDB's document-
based storage and indexing capabilities.
• Flexibility: The dynamic schema design enabled eBay to adapt quickly to changing data
requirements without significant overhead.
Key Features:
• Document-oriented storage
• Dynamic schemas
• High availability and built-in replication
• Sharding for horizontal scalability
2. Forbes
23
• Flexibility: The ability to store diverse types of content in a single database simplified
data management and retrieval processes.
Key Features:
• Flexible schema for diverse content types
• High performance and low latency
• Horizontal scalability with sharding
• Robust indexing capabilities
3. MetLife
4. Telefonica
24
Outcome:
• Data Management: Efficiently managed and stored large volumes of IoT data, enabling
real-time analytics and insights.
• Scalability: MongoDB’s horizontal scaling capabilities ensured high availability and
performance, even with increasing data volumes.
• Insights and Analytics: Improved data analysis and insight generation, leading to
better decision-making and service optimization.
Key Features:
• Document-oriented storage for flexible data management
• Horizontal scalability with sharding
• Real-time data processing and analytics
• High availability and performance
1. Pinterest
2. Yahoo!
25
Problem: Yahoo! required a robust system to manage and analyze vast amounts of log data
generated by its services. Traditional relational databases were not able to handle the high
write throughput and the large volume of data efficiently.
Solution: Yahoo! adopted HBase to store log data. HBase's architecture allowed Yahoo! to
handle high write throughput and provided efficient random access to large data sets. This
setup enabled near real-time analysis of logs, improving service monitoring and issue
resolution.
Outcome:
• High Throughput: HBase handled millions of writes per second, accommodating the
massive influx of log data.
• Real-time Analysis: Enabled near real-time monitoring and analysis, enhancing service
reliability and performance.
• Cost Efficiency: Reduced storage costs due to HBase's efficient use of disk space and
scalability.
Key Features:
• High write throughput
• Efficient random access to large data sets
• Cost-effective storage
• Integration with existing Hadoop infrastructure
3. Salesforce
26
• Integration with Hadoop ecosystem
4. Facebook
1. LinkedIn
27
• High-performance traversal of nodes and relationships
2. Walmart
3. eBay
28
4. NASA
NoSQL databases have become popular for applications that require high scalability, flexible
data models, and fast access to large volumes of data. Here's a comprehensive guide to
designing a NoSQL database for applications.
29
• Key-Value Stores: (e.g., Redis, DynamoDB) Best for high-performance read and write
operations with simple key-value pairs.
• Column Stores: (e.g., Cassandra, HBase) Suitable for handling large-scale distributed
data with high write throughput.
• Graph Databases: (e.g., Neo4j, Amazon Neptune) Excellent for applications with highly
interconnected data.
3. Data Modeling
Document Stores (e.g., MongoDB)
• Design for Queries: Model data to match the most frequent queries.
• Schema Design: Use embedded documents and arrays to avoid joins. Ensure
document sizes are within limits.
• Indexing: Create indexes on fields that are frequently queried.
Example:
json
Copy code
{
"user_id": "12345",
"name": "John Doe",
"email": "[email protected]",
"addresses": [
{"type": "home", "address": "123 Main St, Springfield, IL"},
{"type": "work", "address": "456 Market St, Springfield, IL"}
],
"orders": [
{
"order_id": "98765",
"date": "2023-01-01",
"items": [
{"product_id": "A1", "quantity": 2},
{"product_id": "B2", "quantity": 1}
]
}
]
}
30
Example:
plaintext
Copy code
"user:12345": {
"name": "John Doe",
"email": "[email protected]"
}
"order:98765": {
"user_id": "12345",
"date": "2023-01-01",
"items": [
{"product_id": "A1", "quantity": 2},
{"product_id": "B2", "quantity": 1}
]
}
Example:
plaintext
Copy code
CREATE TABLE users (
user_id UUID PRIMARY KEY,
name TEXT,
email TEXT,
addresses MAP<TEXT, TEXT>
);
CREATE TABLE orders (
user_id UUID,
order_id UUID,
date TIMESTAMP,
items MAP<TEXT, INT>,
PRIMARY KEY (user_id, order_id)
) WITH CLUSTERING ORDER BY (order_id DESC);
31
• Nodes and Relationships: Model entities as nodes and their connections as
relationships.
• Properties: Store attributes on nodes and relationships.
• Traversal Patterns: Design the graph for common traversal patterns and queries.
Example:
plaintext
Copy code
CREATE (u:User {user_id: '12345', name: 'John Doe', email: '[email protected]'})
CREATE (o:Order {order_id: '98765', date: '2023-01-01'})
CREATE (u)-[:PLACED]->(o)
CREATE (p1:Product {product_id: 'A1'})
CREATE (p2:Product {product_id: 'B2'})
CREATE (o)-[:CONTAINS {quantity: 2}]->(p1)
CREATE (o)-[:CONTAINS {quantity: 1}]->(p2)
32
9. Testing and Deployment
• Load Testing: Perform load testing to ensure the database can handle expected traffic.
• Staging Environment: Use a staging environment to test changes before production
deployment.
• Continuous Deployment: Implement continuous deployment practices for smooth
updates.
33