In this expert series, we bring you the concepts that help us understand NoSQL techniques, categories, how it works, testing strategies, and challenges so that you can employ the right kind of approach.
What is NoSQL
NoSQL stands for ‘NOT ONLY SQL’. It is an alternative to RDBMS. Both do same thing: store data but with different approach. The goal of NoSQL is not to reject SQL; rather, to compensate for the technical limitations shared by the majority of RDBMS implementations. NoSQL is a preferable database management system to work on modern applications dealing with Big data.
Major Categories of NoSQL
NoSQL databases are developed based on modern needs (to manage unstructured and Big data) and it is majorly categorized into four types:
Types of NoSQL Databases
2020: Trends in NoSQL
How NoSQL Databases Work
All the NoSQL DBs work on the basis of CAP theorem, which stands for Consistency, Availability, and Partition Tolerance.
- Consistency: All nodes see the same data at the same time
- Availability: A guarantee that every request receives a response about whether it was successful or failed
- Partition Tolerance: The system continues to operate despite arbitrary message loss
Challenges on Tester’s End
- Needs to understand NoSQL database for every new application as these will be decided based on Document, Key Value, Column, and Graph
- Needs to have knowledge of JSON and NoSQL data types
- Needs understanding of clustering and nodes, and how the data is distributed
- Knowledge of other tools is required for data conversion, migration, etc.
MongoDB is a document-oriented database and stores data in the form of collection and document instead of row and column. The important features of MongoDB are high availability, easy scalability, and high performance. Data is stored in the form of embedded documents within single record instead of multiple tables as that in RDBMS.
Best Practices for MongoDB
- Avoid large documents as the maximum size for documents in MongoDB is 16 MB
- Eliminate unnecessary indexes as indexes consume RAM. A collection cannot have more than 64 indexes
- Long field names should be avoided as these consume unnecessary space
- Test every query in your application with explain (). MongoDB explains the information about a query
MongoDB’s Security features
- Authentication: x.509 certificate, LDAP proxy, and Kerberos authentication can be implemented for verifying identity
- Role based Access: By using the MongoDB built-in roles, we can provide user privileges based on requirements
- Encryption: Transport level Security can be implemented in MongoDB which will secure all traffic and key certificates would be implemented on all access
- Auditing: It helps us to track and record all operations/events occurring on schema
We would love to hear your feedback, questions, comments and suggestions. This will help us to make us better and more useful next time.
Share your thoughts and ideas at firstname.lastname@example.org