DEV Community

Discussion on: Hey CodeLand! We're HarperDB and we make data management easy throughout your coding journey!

Collapse
 
narishsingh profile image
Narish Singh

Good afternoon! My name is Narish Singh, I am currently a full stack Java developer apprentice in a boot camp, and will be graduating in December. I just began learning SQL on Monday as part of my boot camp curriculum. I was wondering, I see on your website you mention ACID compliance, of which I have learned up to 3NF. Does Harper by default use a particular normal form, or are there options for the user to customize up to what normal form they would like their db to be in?

Collapse
 
jacob_b_cohen profile image
Jacob Cohen

Hello Narish! Let's see if I can help with that. HarperDB's ACID compliance guarantee applies to whatever data is inserted into HarperDB, ensuring that data will be atomic, consistent, isolated, and durable (ACID). While an ACID compliant database is required for normalization, the concepts are separate. Database normalization is up to the developer to enforce regardless of which database they choose.

HarperDB is not a relational database and does not enforce constraints on data, meaning the HarperDB database itself will not support normal form enforcement. This can be done on the application side with code. You can still run SQL joins to query for normalized data.

In a standard relational database, normal form enforcement is still very much left up the the developer/database administrator, but they can use relational functionality such as foreign key and unique constraints within the database to help enforce normal form from the database side.

Here's an article I found detailing some pros and cons of database normalization. I like to think HarperDB enables developers to be able utilize the best of both relational and non-relational databases in a single product.

Collapse
 
narishsingh profile image
Narish Singh

Thank you so much for highlighting that distinction, as well as the link!