PROYECTO:
“BDCN Unit 2 Activity 1”
REPORTE DE ESTADÍA PARA OBTENER EL TÍTULO DE:
TÉCNICO SUPERIOR UNIVERSITARIO EN
TECNOLOGÍAS DE LA INFORMACIÓN
ÁREA DESARROLLO DE SOFTWARE
MULTIPLATAFORMA
PRESENTA:
VILLANUEVA VAZQUEZ LUIS DANIEL
CD. REYNOSA, TAMAULIPAS MAYO 2024.
Index
TOPIC PAGE
Index ...................................................................................................................i
1.Introduction ................................................................................................ 1
2. NoSQL DMS Features ............................................................................ 2
2.1 Horizontal Scalability ..................................................................................... 2
2.2 Flexibility in the Data Model .......................................................................... 2
2.3. Performance and Speed .............................................................................. 2
2.4. High Availability and Fault Tolerance............................................................ 3
2.5. Eventual Consistency Model ........................................................................ 3
2.6. Variety of Storage Models ............................................................................ 3
3. MongoDB ................................................................................................... 4
3.1. Horizontal Scalability .................................................................................... 4
3.2. Flexibility in the Data Model ......................................................................... 4
3.3. Performance and Speed .............................................................................. 4
3.4. High Availability and Fault Tolerance............................................................ 5
3.5. Eventual Consistency Model ........................................................................ 5
3.6. Variety of Storage Models ............................................................................ 5
4. Cassandra .................................................................................................. 6
4.1. Columnar Data Model .................................................................................. 6
4.2. Distributed Architecture ................................................................................ 6
4.3. Horizontal Scalability .................................................................................... 6
4.4. Consistency and Availability ......................................................................... 6
4.5. Fault Tolerance ............................................................................................ 7
i
5. Conclusion ................................................................................................ 8
ii
1.Introduction
NoSQL (No Structured Query Language) database management systems have
gained significant popularity in recent years due to their ability to handle large
volumes of data and their flexibility in managing unstructured and semi-structured
data. Unlike traditional relational (SQL) databases, NoSQL databases are
designed to be highly scalable, distribute data across multiple servers, and enable
fast read and write operations. These features make NoSQL databases
particularly useful in applications that require handling large amounts of
heterogeneous data, such as social media, e-commerce, and real-time analytics.
1
2. NoSQL DMS Features
In this section, we will explore some of the key features of NoSQL database
management systems.
2.1 Horizontal Scalability
• NoSQL databases are designed to scale horizontally by adding more servers
to the network rather than increasing the capacity of a single server.
• This allows large volumes of data and high levels of traffic to be handled
efficiently, adapting to the growth needs of modern applications.
2.2 Flexibility in the Data Model
• NoSQL allows you to handle unstructured and semi-structured data, meaning
that the data does not need to adhere to a fixed schema.
• This flexibility is ideal for applications that handle varied and dynamic data
types, facilitating quick adaptation to changes in data requirements.
2.3. Performance and Speed
• Read and write operations are typically faster on NoSQL databases due to
their optimized design for quick access to large volumes of data.
2
• The absence of complex join operations and simplified transactions
contributes to this improved performance, making NoSQL databases suitable
for applications requiring high processing speeds.
2.4. High Availability and Fault Tolerance
• NoSQL systems are typically designed to be highly available and fault-tolerant,
distributing data and workloads across multiple nodes.
• This ensures that the database continues to function even if one or more nodes
fail, guaranteeing service continuity.
2.5. Eventual Consistency Model
• Many NoSQL databases implement an eventual consistency model, where
updates to data are eventually propagated to all nodes.
• This approach improves performance and availability at the cost of immediate
consistency, which is acceptable in many distributed applications.
2.6. Variety of Storage Models
• NoSQL includes a variety of storage models, such as:
• Documents (e.g., MongoDB): Store data in JSON/BSON documents.
• Columnar (e.g., Cassandra): Store data in columns instead of rows.
• Key-Value (e.g., Redis): Store simple key-value pairs.
• Graphs (e.g., Neo4j): Store data in nodes and edges to represent
relationships.
3
3. MongoDB
In this section, we will explore some of the key features of NoSQL database
management systems.
3.1. Horizontal Scalability
• NoSQL databases are designed to scale horizontally by adding more servers
to the network rather than increasing the capacity of a single server.
• This allows large volumes of data and high levels of traffic to be handled
efficiently, adapting to the growth needs of modern applications.
3.2. Flexibility in the Data Model
• NoSQL allows you to handle unstructured and semi-structured data, meaning
that the data does not need to adhere to a fixed schema.
• This flexibility is ideal for applications that handle varied and dynamic data
types, facilitating quick adaptation to changes in data requirements.
3.3. Performance and Speed
• Read and write operations are typically faster on NoSQL databases due to
their optimized design for quick access to large volumes of data.
4
• The absence of complex join operations and simplified transactions
contributes to this improved performance, making NoSQL databases suitable
for applications requiring high processing speeds.
3.4. High Availability and Fault Tolerance
• NoSQL systems are typically designed to be highly available and fault-tolerant,
distributing data and workloads across multiple nodes.
• This ensures that the database continues to function even if one or more
nodes fail, guaranteeing service continuity.
3.5. Eventual Consistency Model
• Many NoSQL databases implement an eventual consistency model, where
updates to data are eventually propagated to all nodes.
• This approach improves performance and availability at the cost of immediate
consistency, which is acceptable in many distributed applications.
3.6. Variety of Storage Models
• NoSQL includes a variety of storage models, such as:
• Documents (e.g., MongoDB): Store data in JSON/BSON documents.
• Columnar (e.g., Cassandra): Store data in columns instead of rows.
• Key-Value (e.g., Redis): Store simple key-value pairs.
• Graphs (e.g., Neo4j): Store data in nodes and edges to represent
relationships.
5
4. Cassandra
Apache Cassandra is another widely used NoSQL database, known for its
distributed architecture and columnar storage model. Now we will describe its
main characteristics:
4.1. Columnar Data Model
Stores data in columns instead of rows, which is efficient for read-intensive
queries.
4.2. Distributed Architecture
Uses a peer-to-peer architecture where all nodes are equal, eliminating single
points of failure and improving reliability.
4.3. Horizontal Scalability
Designed to easily scale by adding more nodes to the cluster without service
interruptions, facilitating adaptation to growing demand.
4.4. Consistency and Availability
Supports adjustable consistency models, allowing users to balance between
consistency and availability according to their specific needs.
6
4.5. Fault Tolerance
Implements data replication across multiple nodes to ensure high availability and
failover, keeping the service operational even in case of failures.
7
5. Conclusion
In conclusion, NoSQL database management systems offer features that make
them ideal for modern applications requiring efficient and flexible handling of large
volumes of data. MongoDB and Cassandra are leading examples of these
technologies, each with its specific benefits and use cases. MongoDB stands out
for its document model and flexibility, while Cassandra is known for its distributed
architecture and scalability. Both options provide robust solutions for the demands
of contemporary applications.