When people think about scaling an app, rarely does the conversation veer in the direction of databases. How your application’s data is structured will determine the scalability of your application. This decision will always be the responsibility of your development team. However as a PM, knowing what goes into the decision making process can help you be on the same terms with your developers, and also help translate technical jargon over to your stakeholders.
When it comes to teaching, I always try to get my students to visualize a concept. The more you visualize, the less it seems like magic.
If so, you’re 90% there. Data in a database will almost always look like an Excel doc.
There are a few commonly used databases. Although there are differences between them all, let's focus on the similarities for now.
When you create an Excel doc, you name your columns. The same thing applies when creating a table inside of a database. Some databases refer to these “columns” as “fields”.
Let’s compare an Excel doc to a database:
There are 2 main types of databases that you’ll hear about:
SQL (Structured Query Language) databases have structured tables. Those structured tables have predefined columns with data types. Defining a set of columns for a table means that you’ve created a “schema”.
You can set columns in the schema to only allow specific data.
You can always add more columns later, which also means you would update your table schema.
SQL databases may also be referred to as RDBMS (Relational Database Management Systems)
The tables within a SQL database are structured in a way where they form relationships with other tables. These relationships are strictly bound, and must be followed with little flexibility.
The most commonly used ones are:
When people use the term “NoSQL database,” they typically use it to refer to any non-relational database. Some say the term “NoSQL” stands for “non SQL” while others say it stands for “not only SQL.” Either way, most agree that NoSQL databases are databases that store data in a format other than relational tables.
NoSQL data is often viewed in JSON format.
Does NoSQL have schema?
NoSQL databases typically have flexible schemas. Note that some NoSQL databases like MongoDB also have support for schema validation, so developers can lock down their schemas as much or as little as they'd like when they are ready.
What this means is that you can have a table where all of the rows contain different data.
Here are the four main types of NoSQL databases:
We’ll only be discussing document-based NoSQL databases as those are the most common. But much of the concepts here will apply. The most commonly used services for document-based NoSQL databases are:
“users" Table Schema
Don’t think for a second that there is no one true database that is always best in every scenario. You can build a large-scale application using either.
This is purely opinion-based since there are those that will see things different.
Here are some examples of real-world applications using SQL databases, and relational design principles.
Chat App - https://www.linkedin.com/posts/zeeshansyed1_chat-db-design-activity-6914211116814381056-wPOU/
eCommerce Store - https://www.linkedin.com/posts/zeeshansyed1_ecommerce-store-db-design-activity-6917104161603923968-i9L5
Ride Sharing - https://www.linkedin.com/posts/zeeshansyed1_rideshare-db-design-activity-6915291842137755648-v90K/
Task Management - https://www.linkedin.com/posts/zeeshansyed1_task-management-db-design-activity-6914568610636029952-T1ox
Here’s the important take-away here. There’s no 1 right answer regarding your chose of database. Different scenarios will call for different databases. In a large company, you’ll likely see both SQL and NoSQL databases being used.
Although PMs do NOT need to know how to code, understanding technical jargon is vital when working with a development team. It’s not uncommon for PMs to feel overwhelmed with buzzwords and fancy jargon.
So take the time to understand the important ones. Database design is definitely one of them as the terminology used here will be regularly mentioned by developers. At the same time, database design is where building for scale actually begins.
If you enjoy digestible and practical tech content for PMs, follow me on LinkedIn.
When people think about scaling an app, rarely does the conversation veer in the direction of databases. How your application’s data is structured will determine the scalability of your application. This decision will always be the responsibility of your development team. However as a PM, knowing what goes into the decision making process can help you be on the same terms with your developers, and also help translate technical jargon over to your stakeholders.
When it comes to teaching, I always try to get my students to visualize a concept. The more you visualize, the less it seems like magic.
If so, you’re 90% there. Data in a database will almost always look like an Excel doc.
There are a few commonly used databases. Although there are differences between them all, let's focus on the similarities for now.
When you create an Excel doc, you name your columns. The same thing applies when creating a table inside of a database. Some databases refer to these “columns” as “fields”.
Let’s compare an Excel doc to a database:
There are 2 main types of databases that you’ll hear about:
SQL (Structured Query Language) databases have structured tables. Those structured tables have predefined columns with data types. Defining a set of columns for a table means that you’ve created a “schema”.
You can set columns in the schema to only allow specific data.
You can always add more columns later, which also means you would update your table schema.
SQL databases may also be referred to as RDBMS (Relational Database Management Systems)
The tables within a SQL database are structured in a way where they form relationships with other tables. These relationships are strictly bound, and must be followed with little flexibility.
The most commonly used ones are:
When people use the term “NoSQL database,” they typically use it to refer to any non-relational database. Some say the term “NoSQL” stands for “non SQL” while others say it stands for “not only SQL.” Either way, most agree that NoSQL databases are databases that store data in a format other than relational tables.
NoSQL data is often viewed in JSON format.
Does NoSQL have schema?
NoSQL databases typically have flexible schemas. Note that some NoSQL databases like MongoDB also have support for schema validation, so developers can lock down their schemas as much or as little as they'd like when they are ready.
What this means is that you can have a table where all of the rows contain different data.
Here are the four main types of NoSQL databases:
We’ll only be discussing document-based NoSQL databases as those are the most common. But much of the concepts here will apply. The most commonly used services for document-based NoSQL databases are:
“users" Table Schema
Don’t think for a second that there is no one true database that is always best in every scenario. You can build a large-scale application using either.
This is purely opinion-based since there are those that will see things different.
Here are some examples of real-world applications using SQL databases, and relational design principles.
Chat App - https://www.linkedin.com/posts/zeeshansyed1_chat-db-design-activity-6914211116814381056-wPOU/
eCommerce Store - https://www.linkedin.com/posts/zeeshansyed1_ecommerce-store-db-design-activity-6917104161603923968-i9L5
Ride Sharing - https://www.linkedin.com/posts/zeeshansyed1_rideshare-db-design-activity-6915291842137755648-v90K/
Task Management - https://www.linkedin.com/posts/zeeshansyed1_task-management-db-design-activity-6914568610636029952-T1ox
Here’s the important take-away here. There’s no 1 right answer regarding your chose of database. Different scenarios will call for different databases. In a large company, you’ll likely see both SQL and NoSQL databases being used.
Although PMs do NOT need to know how to code, understanding technical jargon is vital when working with a development team. It’s not uncommon for PMs to feel overwhelmed with buzzwords and fancy jargon.
So take the time to understand the important ones. Database design is definitely one of them as the terminology used here will be regularly mentioned by developers. At the same time, database design is where building for scale actually begins.
If you enjoy digestible and practical tech content for PMs, follow me on LinkedIn.