<img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=443149619225659&ev=PageView&noscript=1"> Exploring NoSQL Databases

We would like to email you valuable insights on software development and DevOps! (We promise not to stalk you or share your info)

 

Exploring NoSQL Databases

Exploring NoSQL Databases

On a recent project, in my role as a solution architect, I was helping tackle some changes to the domain model. After looking through what our team had set up in MongoDB, it got me thinking about how a traditional relational database model would have been implemented.

On projects earlier in my career when I was a contributing developer, I always worked with relational databases so that’s still how I think about data concepts and is the lens through which I view data access functionality. 

There’s never going to be a one size fits all technology and it’s important to understand where various database technologies fit and what problem they are trying to solve. With that in mind, here’s some background on NoSQL and where it fits in today’s development climate.

What does NoSQL stand for?

The term NoSQL is best expanded today as Not Only SQL. NoSQL databases are more about how the data is structured (not typically in a tabular/relational manner) and in general trade better scalability for traditional transactional guarantees of relational database systems. Some NoSQL systems use a SQL like syntax.

Are all NoSQL databases similar?

No, there are at least four main categories of NoSQL databases and each have use cases where they are an obvious fit.

      • Key-Value Store
        • Example: Redis; Primary use cases include data caching or as the database behind a queue
      • Document Store
        • Example: MongoDB; Primary use cases include product catalogs, blogs, and other objects that are usually queried as a complete unit.
      • Graph
        • Example: Neo4j; Primary use cases include data that is very interconnected with queries that follow relationship trees
      • Column
        • Example: Cassandra; Primary use cases include projects with a high volume of data and a solid understanding of how the data will be queried

Do you still have to define a data schema up-front?

While it’s true that software like MongoDB doesn’t have a strict schema, as soon as you start building a system that depends on certain fields - you are forcing a schema on the database. It’s up to the developer to write (or use a framework) that enforces the schema and validation that the objects in code need.

Are they the only solution for scalability?

One reason some NoSQL systems were created was to deal with scaling issues encountered when using relational databases. Today cloud providers have scalable database services and there are some systems that combine elements of both relational and NoSQL.

Final Thoughts

Many of the complex systems that are written today could benefit from different types of database systems for different types of data. There’s no one size fits all and it’s important to understand what problem you are trying to solve before choosing a database technology.

Looking for Devops Tools or Solutions?

Recent posts

Coming Full Circle - Delivering Value through Value-Driven Transformation
How Continuous Integration Benefits Your Software Development Team
Driving Value in Digital Transformation
What to Do Between Sprints

 

Share this article

 

About the author

With a background in business and as a weekend studio potter, Brian White’s unique experiences fuse his creative passion with technical problem solving, bringing software solutions into form. As a senior solutions architect, he questions the status quo and asks if there’s a better way to do something. Brian is a self-taught developer who has worked on projects across many industries and technologies since 2001. He has juggled many roles as a full stack developer - having a hand in everything from requirements to architecture, testing to deployment. Since moving to Small Footprint in 2012, Brian has blended his attention to detail from the developer-side with a keen understanding of the business and technology needs of his clients.
Ready to partner with an expert in custom software development? Learn about our fast, cost-effective approach to creating world-class software solutions.
301 N Main St, Winston Tower, Suite 2206
Winston-Salem
NC
27101
USA
Republicii 24
400015 Cluj
Romania

The Small Footprint Blog

Keeping up with the latest in custom software development? Visit Small Footprint's blog for expertise, insights and innovative software strategies.