I don't know but as a beginner I have noticed many of these videos LACK the most important sauce : ACTUAL USE CASES! If you would have featured examples like let's say you're building an app that does this or that for you might want to use SQL for this part of the scope BECAUSE etc... and for that part of the scope NoSQL might be preferred because etc.... There you go, I have just shared a framework for your next video lol. Thank you anyway for the content it shows the genuine interest to educate but could be better especially if you want to educate beginners.
I'd take two examples to give some clarity on how you apply the principles explained in the video to decide on real-life situations: 1. Designing a social media system like Facebook. Consistency is not critical. Posts can be created and it's totally fine if they take some time to propagate to multiple users. Considering the post data will be mostly unstructured data (text/images/video) and that you will need horizontal scalability (billions of posts), you should use a no-SQL database. 2. Designing a payment system like VISA or Mastercard. Consistency is of utmost importance while committing the transaction. If there is issue in reflecting the transaction information, it can lead to unwanted consequences and angry customers. Considering that the data is structured and you don't need multiple users to see a single transaction, you should use a SQL like database.
The points mentioned are informative but add bit more clear explanation here about the horizontal and vertical scalabilities of NoSQL and SQL database systems: NoSQL databases are designed to scale out horizontally, meaning you can add more servers or nodes to the database cluster to handle increased data volume, traffic, or performance requirements. On the other hand, SQL databases often scale up vertically by adding more CPU, RAM, or storage capacity to a single server to handle increased demands.
Its posible for shard sql databases, atleast postgree sql, there is extension call citus or postgree xl, you can easily shard. Also from postgree 10 it support declarative partitionings
I have never needed to implement a NoSQL database since I normally design my datasets correctly before development. When I tried to learn about NoSQL I found out that the lectures I was taking were leading me to "replicate" a relational structure in a NoSQL database. But, that's just my case. I can tell that everything will depend on the context.
Some of the qualities ascribed to SQL and NoSQL DBMSs are actually not intrinsic to them but orthogonal. ACID is one such example, that quality has nothing to do with whether the data is in tables or not. Both SQL and NoSQL DBMSs can be ACID, and both can be not ACID. For example, MySQL with the MyISAM table store is SQL but not ACID. For example, some key value stores etc are ACID. Also the ability to be distributed or not can be the case with both SQL and non. For example, Amazon Aurora is SQL that is distributed and horizontally scalable.
In my experience, and I did not make the decisions, but NoSql, is used for HUGE databases, with very few tables, and often the data is mostly static. Or at least, only a few records change in a day. And note, the Daytona database solution, had a weird ability to have an unlimited tuples in the same field, all on the same record, since, under it all, the database tuple, was text. So, anything you say about SQL databases, only applies to most of them and not all. The largest, and oldest database, is in Daytona and Cymbol.
NoSQL databases were not originally intended for scenarios requiring strict data integrity, as ensuring data consistency across distributed systems can be complex. The best use case for NoSQL is often for data caching mechanisms, where a disconnected application stores data in a NoSQL database and later synchronizes it with a relational database like SQL Server, Oracle, or MySQL. Using NoSQL as a caching mechanism also enhances performance, as you can keep a list of products in a NoSQL database and refresh it only when changes occur, thereby limiting the number of server data requests. This approach effectively functions as a caching mechanism. In conclusion, the use case where the technology shines is a hybrid application.
Its very informative video ❤. But it could be better to add few use cases to use sql vs nosql in system design context. I think: Use sql db if acid property, more relational data and less need of scalability is there else use nosql db. Correct me if i am wrong.
I don't think the video has explained why SQL databases usually can't horizontally scale for write-heavy systems. This statement can be easily challenged by the interviewers. Actually MySQL database has been proven be to able to horizontally scale for writes using sharding.
It's tricky because converting a NoSQL database to SQL requires defining a structured, relational schema that matches the unstructured data in NoSQL, which may vary significantly in format. I think you may want to evaluate whether SQL or NoSQL is more suitable for your application's needs and requirements before switching. Hope this helps!
Nope! APIs (Application Programming Interfaces) are sets of protocols, routines, and tools for building software applications, allowing different systems to communicate with each other. NoSQL, on the other hand, refers to non-relational database management systems that provide flexible schemas for storing and retrieving data. While APIs can be used to interact with various types of databases, including NoSQL databases, they are fundamentally different concepts serving different purposes in software development and data management.
Make sure you're interview-ready with Exponent's system design interview prep course: bit.ly/3P2tvBy
I don't know but as a beginner I have noticed many of these videos LACK the most important sauce : ACTUAL USE CASES! If you would have featured examples like let's say you're building an app that does this or that for you might want to use SQL for this part of the scope BECAUSE etc... and for that part of the scope NoSQL might be preferred because etc.... There you go, I have just shared a framework for your next video lol. Thank you anyway for the content it shows the genuine interest to educate but could be better especially if you want to educate beginners.
I'd take two examples to give some clarity on how you apply the principles explained in the video to decide on real-life situations:
1. Designing a social media system like Facebook. Consistency is not critical. Posts can be created and it's totally fine if they take some time to propagate to multiple users. Considering the post data will be mostly unstructured data (text/images/video) and that you will need horizontal scalability (billions of posts), you should use a no-SQL database.
2. Designing a payment system like VISA or Mastercard. Consistency is of utmost importance while committing the transaction. If there is issue in reflecting the transaction information, it can lead to unwanted consequences and angry customers. Considering that the data is structured and you don't need multiple users to see a single transaction, you should use a SQL like database.
The points mentioned are informative but add bit more clear explanation here about the horizontal and vertical scalabilities of NoSQL and SQL database systems:
NoSQL databases are designed to scale out horizontally, meaning you can add more servers or nodes to the database cluster to handle increased data volume, traffic, or performance requirements. On the other hand, SQL databases often scale up vertically by adding more CPU, RAM, or storage capacity to a single server to handle increased demands.
Hey WaliSayed! Thanks for adding on and sharing your knowledge!
@1:12 MongoDB is also ACID-compliant after version 4.
SQL databases can also scale horizontally as well. People could get in trouble during the interview, please clarify this point
Its posible for shard sql databases, atleast postgree sql, there is extension call citus or postgree xl, you can easily shard. Also from postgree 10 it support declarative partitionings
I have never needed to implement a NoSQL database since I normally design my datasets correctly before development.
When I tried to learn about NoSQL I found out that the lectures I was taking were leading me to "replicate" a relational structure in a NoSQL database.
But, that's just my case. I can tell that everything will depend on the context.
So much valuable information in only 4 minutes
I regard you as a very credible and lucid presenter.
so, is it a standard answer the the question of "Could you tell the difference between SQL and NoSQL"?
There's not exactly one to choose. They both have use cases in which they're best in that category/
Very precise to the points of differneces between sql and nosql. thanks for the good content as always❤
Some of the qualities ascribed to SQL and NoSQL DBMSs are actually not intrinsic to them but orthogonal. ACID is one such example, that quality has nothing to do with whether the data is in tables or not. Both SQL and NoSQL DBMSs can be ACID, and both can be not ACID. For example, MySQL with the MyISAM table store is SQL but not ACID. For example, some key value stores etc are ACID. Also the ability to be distributed or not can be the case with both SQL and non. For example, Amazon Aurora is SQL that is distributed and horizontally scalable.
In my experience, and I did not make the decisions, but NoSql, is used for HUGE databases, with very few tables, and often the data is mostly static. Or at least, only a few records change in a day. And note, the Daytona database solution, had a weird ability to have an unlimited tuples in the same field, all on the same record, since, under it all, the database tuple, was text. So, anything you say about SQL databases, only applies to most of them and not all. The largest, and oldest database, is in Daytona and Cymbol.
what database will be best for service like zillow? Or maybe hybrid and use both... or citus + postgresql? :)
Nice explanation maam. Love from INDIA
NoSQL databases were not originally intended for scenarios requiring strict data integrity, as ensuring data consistency across distributed systems can be complex. The best use case for NoSQL is often for data caching mechanisms, where a disconnected application stores data in a NoSQL database and later synchronizes it with a relational database like SQL Server, Oracle, or MySQL. Using NoSQL as a caching mechanism also enhances performance, as you can keep a list of products in a NoSQL database and refresh it only when changes occur, thereby limiting the number of server data requests. This approach effectively functions as a caching mechanism. In conclusion, the use case where the technology shines is a hybrid application.
Its very informative video ❤.
But it could be better to add few use cases to use sql vs nosql in system design context.
I think:
Use sql db if acid property, more relational data and less need of scalability is there else use nosql db.
Correct me if i am wrong.
Amazing explanation! You made it so easy to understand!
great video. A few people have ability to teach!! You have it!!
Great overview. Thanks for sharing.
I don't think the video has explained why SQL databases usually can't horizontally scale for write-heavy systems. This statement can be easily challenged by the interviewers. Actually MySQL database has been proven be to able to horizontally scale for writes using sharding.
No-SQL database can easily solve the "consistency" problem by implementing structures or schemas internally
Very helpful, thank you!
Thank you for the amazing video. I now understand it better than I used to.
why dint you cover CID(consistency, Isolation and Durrability) for sql? why only atomicity you explained?
Very informative and quick 😊
Well Exaplanation ma'am❤! Now I've understood differences b/w SQL and NO-SQL. Thank you ❤
Also share some examples
do product managers get asked system design questions in interviews?
Generally not!
Amazing! thanks for sharing
This was great thanks :).
Academically, in theory, they both have their advantages and disadvantages. But in reality, SQL is baby for admin, NoSQL is for work and solution.
How to convert db NoSQL to SQL DB?
It's tricky because converting a NoSQL database to SQL requires defining a structured, relational schema that matches the unstructured data in NoSQL, which may vary significantly in format. I think you may want to evaluate whether SQL or NoSQL is more suitable for your application's needs and requirements before switching. Hope this helps!
Are APIs kind of noSQls?
Nope! APIs (Application Programming Interfaces) are sets of protocols, routines, and tools for building software applications, allowing different systems to communicate with each other. NoSQL, on the other hand, refers to non-relational database management systems that provide flexible schemas for storing and retrieving data.
While APIs can be used to interact with various types of databases, including NoSQL databases, they are fundamentally different concepts serving different purposes in software development and data management.
this is good, but too many technical jargons... so, some details mentioned here are not clear
Well &Cool explanation
❤thank you for this video
Thank you!
Thanks.
thank you 👍
I wish I could like it twice
good 👍👍
👍
I got from the video that there's very few weak points for NoSQL
Great
Awesome!
wait you are a PM?
Guys , is this an actress as well ?
Our hosts are always real tech employees. In this case, a former ML engineer turned technical product manager.
🙏👍
got lost when you started talking about nosql weaknesses. too many technical words makes it hard to follow
Thanks!