Quick Note: Relational Databases are not called "Relational" because data in one table is related to data in another table. Even if the database doesn't have any foreign key, it is still relational. Relational Databases are called "Relational" because the whole database is based on Relational Algebra that Edgar Codd created. That algebra provides operations like projection and join. Relation here means a set of tuples. You can actually check the book "The relational model for database management" by Codd. If you have a grasp of first order logic and basic set theory, it is a fascinating read.
It's not a small point. It's probably the biggest misunderstanding in databases our there and it's about as fundamental of a misunderstanding as they come.
Indeed. Relational databases are called so because each table represents a relationship between elements of a certain (departure, primary key...) set and another (arrival, attributes...) set, in a mathematical sense, which is a subset of the Cartesian product between these two sets. The fact that tables are joinable is due to the arrival set of a certain relationship being the departure set of another one. Mathematically, these relationships can be composed.
I feel like neither of these two explanations adequately captures why the model is called "relational": it's because the data is presented as a "relation". A relation is a set of tuples that have the same schema. The most obvious way to present a relation is as a table, because the relation's schema provides the columns, and the tuples can be presented as rows. The consistency of the schema's definition makes it possible to do mathematical operations, i.e. "tuple calculus" and "relational algebra", which leads to why denormalization is important and how two relations can be joined together. Unfortunately, this understanding doesn't really help someone figure out trade-offs between different database paradigms, whereas the misunderstanding given by the video does, because there's nothing terribly non-relational about (for example) a key-value store; the difference is in the tooling, optimization biases, and infrastructure choices made.
@@Duiker36 What about maintainability, adaptability, and scalability? When your boss comes in on a Monday morning and asks you for a report of all customers with recently opened accounts who were contacted by a sales rep who lives in 4th street, what matters is not your infrastructure or tooling or optimisation. What matters is your schema. You can only understand that if you understand why it's called relational. key value stores don't have that capability.
It's also a concealed ad for FaunaDB. How come no other competitors in the same space were mentioned, like it was for the other DB types? "Best for everything", oh, please - other database types, and other databases in that same space, are thriving quite well.
@@RasmusSchultz Many of his tutorials and courses tackle Firebase services. The channel's color scheme and branding is similar to Firebase. Even the channel name's half of Firebase. If you don't see that, you shouldn't complain of a FaunaDB ad.
When I was in college I was an impromptu tutor for my friends, because I was a year ahead of most of them. I learned more than when I took the classes, because I was teaching it to them. Really helped me in the long run!
@@piemaster6512 Tutoring is the best life hack ever as a student. Get paid more than shit minimum wage jobs to study and end up graduating top of your class? Yes plz. Also, you develop communication skills so you end up ready to go for job interviews and stuff by the time you graduate.
1. Key-Value Database - Redis, Memcached, etcd #Like JSON, SET(to add value), GET(to retrieve), data held in machine memory not on hard disk. Thus, Superfast and mainly used for cache, PUB/SUB etc. 2. Wide Column Database - Cassandra, Hbase # Handles unstructured data, uses CQL(Contextual Query Language), mainly for storing history etc. 3. Document Oriented Database - MongoDB, Firestore etc. # JSON unstructured document 4. Relational Database - MySQL, PostgreSQL etc. # Uses SQL and also ACID compliant Cockroach Labs - More optimized for scalability 5. Graph - Neo4j, Dgraph # Uses Cypher for querying, often used in building knowledge base, recommendation engine etc. 6. Search Engine - elastic, Solr(Most of them are on the top of Apache lucene project) Cloud Based - Algolia, MeiliSearch # These are Full Text database. An index like in the back of the book is created. On search, an index is searched on the object. 7. Multi-Model Database - FaunaDB Uses GraphQL # Just define how want to consume data, and it will automatically figure out how to take the best advantage of all paradigms. The best. Other data warehouse, time-series
This is the best detailed explanation of databases I've ever seen. I'm in 3rd year of CS (undergraduate) but didn't have a chance to know about all of this massive yet beautifully explained information about databases. Thanks a lot Jeff.
0:49 _and points to some value_ In fact the key can point to a list, set or map, hyperloglog, stream or even geospatial data via geohash. In short it can point to either a single value or a 1-D collection. 1:50 _Wide column adds another dimension_ . This means that each value in the row opposite each key can be a 1-D collection in itself. So each key links to a 2-D collection of data. 2:58 _each document is a container for key-value pairs_ Each cell within each document is a location for a 1-D collection, key-value collection or sub-document.
This is a great quick overview of the database landscape. I do have a couple of points to add: 1. redis is more than just a simple in-memory key-value store.The values can be of different commonly used types, such as strings, lists, hashes, sets and bitfields. This enables simplifying app code by doing some of the querying logic in the db itself. Plugins enable extending the usefulness to additional use cases. 2. With the exception of RDBMSs (relational dbs) the other db solutions enable utilizing multiple servers by sharding the data and replicating it. This makes them highly scaleable while providing great performance.
Studying 3rd year computer engineering and your videos are educating me in so many awesome ways. Especially your cloud computing in 2020 video. Have watched it three times now! Are you going to make more cloud computing overview videos soon? Your knowledge about how they work, their economics and how it affects the end user are so enthralling! :)
Another interesting database, similar in some ways to Fauna, is Datomic. It uses Datalog as a query language, which also enables you to specify the shape of your query results. Datomic was created by Rich Hickey, the creator of the Clojure programming language. There are a number of really interesting talks on the philosophy behind the design of Datomic (by Rich Hickey, David Nolen, and others), which are well worth your time if you are interested in not just databases, but in how we approach storage, retrieval, and manipulation of data in our work. Datomic also has the benefit of being something you can run on-prem, and has two free options to suit solo developers/small businesses, and open source projects.
I'n not even a web dev bit I watch videos on this channel simply because they are very well produced and look appealing. As a result, I grow my knowledge as well even though I might not (if ever) use it in my job. But it does inspire me to experiment with them on my own.
I am a few years late to be leaving a comment really, but if you are reading this, note that your best option most of the time is a relational database. Document DB's are brilliant, but without the ability to join and search, developing business intelligence around a product or process is very difficult, and migrating data out of a DDB and into a relational database is challenging. You have to be 100% sure you are OK with losing those features because getting them back is going to be extremely challenging.
I watched this video in preparation for a job interview and it really helped! I was able to explain the differences and use cases for a cache and relational database very eloquently. Thanks Jeff
Nice video. Reading E.F. Codd's paper on things relational, no matter how much or little you understand of it, should be considered a rite of passage mandatory read, similar to reading Satoshi's original bitcoin paper before delving into bitcoin to truly appreciate the genius behind these concepts.
This is the first time I’ve ever heard of multi-model. It sounds almost like fiction, lol! Definitely gonna give it a try 😋 Thanks for the amazing video as always!
...and then you recieve “request is too large”, and failure to recieve data if you don’t scale up to unnecessary 50k request units... Bad experience with CosmosDB so far.
@@Lanarri yeah these really sound like a great way to lock your entire codebase into a company's ecosystem. Honestly I wouldn't trust that at all, and it's not that hard to use an ORM and a relational DB, yet you're completely flexible regarding hosting and even have multiple interchangable Systems to choose from.
1. Thanx 2. You should check Couchbase. It is Document based, with Full text Search, N1QL language (SQL for JSON), Crazy Indexing capabilities. Very easy Scaling, Very reliable, Blazingly fast... etc.
4:50 This is the best explenation of Relational DataBases i ever heard. I think it took me like 1 week to understand what it really means foreign keys.
I was so convinced that I had to use a relational db for one of my projects, and while watching this video, I just figured out a way to do my backend with a document db, which might be even simpler. And you also got me interested to learn about the other db paradigms, thanks :)
It's incredible how much knowledge you pack into such short videos. And it is unbelievable that all of this knowledge "sticks". Thanks you very much for these!
Choosing the right type of database always gives me anxiety.. "What type of data. What type of analytics/reports needs to be pulled (and this one is very important factor). How much data. How fast does it need to process incoming information.. How does one database compare to another if we're talking about billions of records etc.." and.. you need to pick the right one from the start, because migrating a database to another type/infrastructure when you are running live.. it's a nightmare. I'll definitely need to check out the FaunaDB thing. Haven't heard of that one before! Thanks for this video! My pick always goes to MySQL with a Redis front. Just because of the stability, the performance, the ability to handle millions of records, quick data calculations over entire datasets and if needed the option to store a raw JSON string or blob etc. It just takes some more set-up time in comparison to others and for the scalability.. that is something you leave to experts, with the sharding and clusters, that's next level :D
I personally also like ArangoDB as a multi-model database, it has a really nice query language and some cool features (although it isn't as hassle-free as fauna)
Believe me the Way you explain the Relational DB , it was not explained to me in my 4 years of UnderGrad Computer Science Degree. This video must be a "MUST WATCH" for all the CS students , to really know and differentiate all types of Data BAses. Thanks a lot for the video #love from INDIA
I'm in 4th year of IT high school and mostly can't get this video haha. Shows how well we got taught databases, great. I guess time to start learning it myself.
A lot of my programming knowledge has come from reading and watching things that I didn't understand, and then looking things up later. It's worked pretty well for me so far
@@MM-vr8rj No. I'm not sure where you're from, but I've found out some countries have a very different school system. Here in the Czech Republic, you have 9 years of universal, mandatory education. After that, you usually choose a 'high school', that is either 3 years or 4 (with diploma). That school can either be more general like business school, or specific like IT. After that, you can go to work, but if you want a good job, you'll go to 'College', that is highly specialized.
Zeroth paradigm - Flatfile, aka basic text files. One field|record|row per linebreak Data parsing is just splitting on linebreaks typically with regex( ) into an array|object, or using in a tail feed. Though depending on language, or regex engine, the outputs last element may be empty and needs to be ignored. Kinda covers tabular data or comma separated values,etc as well.
Depending on how you structure those text files and what you put in them, they can represent any of those database types. For example, as you mention here, they are like relational database tables but, if they were JSON/XML files, they might be considered as documents in a document database. At the end of the day, a database is just underpinned by a bunch of files (but they may just be held in memory as a sort of "RAM DIsk").
This is an absurdly good video. Excellent production values, great script, great content. I literally work at Google and I learn stuff from your channel all the time.
lol what a timely video for me, I was in the process of searching for the use cases of Redis and Elasticsearch and here he is uploading a video that explains the general concept of those two and MORE.
I thought Database are all very similar to SQL. Thank you so much for making this video. Databases now doesn't sound as scary and frustrating as before to me. I believe there are more undergraduate students like me in Computer Science who have the same misunderstanding.
Redis is more than just a KV inmemory data store, its a multimodel DB with capabilities like, full text search, stream data type, json, graph and time series.
Well done and thank you! This video is fantastic and should serve as the gold standard for this type of video. It uses a model that all other informational videos should strive to emulate! It was clear, concise, informative and it covered an important topic. I rarely leave positive comments on RUclips videos. Videos are either okay - or there’s something wrong with them that I call attention to. But this one is so much better than the rest - that I felt compelled to say thank you and to leave positive feedback.
I haven't heard about Fauna and the concept behind it is super interesting. Also it would be amazing if you make video on database normalization, it is one of the cs topics that clear explanation is heavily required :)
Incredible video , the production value is amazing 😁 Just have one question regarding database choices for apps. I just started out using firebase in my flutter app but I'am already getting confused as to what the best practice would be for a typical SQL join between tables . For example let's say a medical app; would you have invoices in a sub collection under a users collection or would it be best to still have separate collections and then do a stream join with RXdart or would it be best to just go with another database choice entirely 😅
Have used Fauna, MySQL and Mongo. Mongo is best for scratch apps, or where you have no time/don't want to deeply think about data models. MySQL when you have everything planned out, and just want it to work without any problems. Fauna is something in between. It's incredibly fast, flexible and usable, but the code (JS especially) is hella wonky. Personally I love Mongo, but i'm giving FaunaDB space more and more often.
You are like me & I always used to ask, "How will I know if this is the right tool for the job or not?". Found my answers via your video. Thanks, Bro!!
I like this video very much. The way of your explanation is simple, straight forward and explicit. Not too short nor too long. Looking forward more videos from you
Know thy complexities! It would be great to see a complexity chart about the different performance measures across operations for the data modeling paradigms.
4:24 In fact this "seminal paper" is very readable. 50 years on we may say it's written a bit quaintly. Yet shyness is more appealing than bombast. The relational equations with Greek letter operators are well-explained and he only deals with the common operations. It's written for an audience working in the industry rather than academics. So it won't go over the head of those with Databases 101 down, who usually learn SQL basics concurrent with databases. Reading this paper I was asking myself how come database system designers didn't think of this idea earlier. But of course, every good solution is "obvious" after it's presented and it efficacy proven. A more pressing question might be why did Codd not leave IBM when his idea was rejected . . . But I guess the man had his own circumstances and IBM was a well-paid job. Software-savvy angel investors weren't around in those days!
Quick Note: Relational Databases are not called "Relational" because data in one table is related to data in another table. Even if the database doesn't have any foreign key, it is still relational.
Relational Databases are called "Relational" because the whole database is based on Relational Algebra that Edgar Codd created. That algebra provides operations like projection and join. Relation here means a set of tuples. You can actually check the book "The relational model for database management" by Codd. If you have a grasp of first order logic and basic set theory, it is a fascinating read.
I was going to comment on this as well. Otherwise great video, as far as I can tell.
It's not a small point. It's probably the biggest misunderstanding in databases our there and it's about as fundamental of a misunderstanding as they come.
Indeed. Relational databases are called so because each table represents a relationship between elements of a certain (departure, primary key...) set and another (arrival, attributes...) set, in a mathematical sense, which is a subset of the Cartesian product between these two sets.
The fact that tables are joinable is due to the arrival set of a certain relationship being the departure set of another one. Mathematically, these relationships can be composed.
I feel like neither of these two explanations adequately captures why the model is called "relational": it's because the data is presented as a "relation". A relation is a set of tuples that have the same schema. The most obvious way to present a relation is as a table, because the relation's schema provides the columns, and the tuples can be presented as rows. The consistency of the schema's definition makes it possible to do mathematical operations, i.e. "tuple calculus" and "relational algebra", which leads to why denormalization is important and how two relations can be joined together.
Unfortunately, this understanding doesn't really help someone figure out trade-offs between different database paradigms, whereas the misunderstanding given by the video does, because there's nothing terribly non-relational about (for example) a key-value store; the difference is in the tooling, optimization biases, and infrastructure choices made.
@@Duiker36 What about maintainability, adaptability, and scalability? When your boss comes in on a Monday morning and asks you for a report of all customers with recently opened accounts who were contacted by a sales rep who lives in 4th street, what matters is not your infrastructure or tooling or optimisation. What matters is your schema. You can only understand that if you understand why it's called relational. key value stores don't have that capability.
I must agree, this is one of the best database defining video on the internet.
I agree
It's also a concealed ad for FaunaDB. How come no other competitors in the same space were mentioned, like it was for the other DB types? "Best for everything", oh, please - other database types, and other databases in that same space, are thriving quite well.
@@RasmusSchultz So what. Are you also not going to mention how many times he mentions Firebase? Or how it's basically his brand?
@@exactzero huh? Firebase is a Google product - pretty sure this has nothing to do with Fireship? Not sure what your point is.
@@RasmusSchultz Many of his tutorials and courses tackle Firebase services. The channel's color scheme and branding is similar to Firebase. Even the channel name's half of Firebase. If you don't see that, you shouldn't complain of a FaunaDB ad.
You know why frontend devs have lunch alone?
They don't know how to join tables
Why backend devs can't draw?
Uhh... I dunno, my brain is undefined
lol 😅
amateur
Microsoft devs wear glasses because they need to C sharp.
@@michaelstollairetbarceo3287 hahah, that one is gold
5:57 I like how you edited acid effect while discussing ACID property
lol yeah it's a tame impala's album cover for Innerspeaker... and tame impala makes psychedelic music.
Also his voice
You didn’t cover Excel tables.
Funny
it’s same as sql
😂
THIS VIDEO IS JUST WHAT I ALWAYS WANTED
simple and elegant description for DBs
THANK YOU YOU ARE A KING
I bet you learn so much from teaching this stuff. I’m so envious.
When I was in college I was an impromptu tutor for my friends, because I was a year ahead of most of them. I learned more than when I took the classes, because I was teaching it to them. Really helped me in the long run!
@@piemaster6512 Tutoring is the best life hack ever as a student. Get paid more than shit minimum wage jobs to study and end up graduating top of your class? Yes plz. Also, you develop communication skills so you end up ready to go for job interviews and stuff by the time you graduate.
@@user72974 what do you teach?
1. Key-Value Database - Redis, Memcached, etcd
#Like JSON, SET(to add value), GET(to retrieve), data held in machine memory not on hard disk. Thus, Superfast and mainly used for cache, PUB/SUB etc.
2. Wide Column Database - Cassandra, Hbase
# Handles unstructured data, uses CQL(Contextual Query Language), mainly for storing history etc.
3. Document Oriented Database - MongoDB, Firestore etc.
# JSON unstructured document
4. Relational Database - MySQL, PostgreSQL etc.
# Uses SQL and also ACID compliant
Cockroach Labs - More optimized for scalability
5. Graph - Neo4j, Dgraph
# Uses Cypher for querying, often used in building knowledge base, recommendation engine etc.
6. Search Engine - elastic, Solr(Most of them are on the top of Apache lucene project)
Cloud Based - Algolia, MeiliSearch
# These are Full Text database. An index like in the back of the book is created. On search, an index is searched on the object.
7. Multi-Model Database - FaunaDB
Uses GraphQL
# Just define how want to consume data, and it will automatically figure out how to take the best advantage of all paradigms.
The best.
Other data warehouse, time-series
One of the best videos by fireship!
No, they are all the best
@@wiz7903 Every subscriber will watch fireship bcz of the good quality content...
jokes on you, i use notepad
I suggest to use postgres to run Django inside it using extension and store data in txt files like expert
Masters store files as png and ocr then
This is the best detailed explanation of databases I've ever seen.
I'm in 3rd year of CS (undergraduate) but didn't have
a chance to know about all of this massive yet beautifully explained information about databases.
Thanks a lot Jeff.
Ohhh we have the same name!
@@aliimrankazan3294 both are chutiya
@@TuringTested01 ???
4:52 to 5:52 Best explanation of relational databases I've ever seen. 60 seconds very well spent!
No joke, I'm learning more from these videos than I ever did in 6 years of college and grad school
0:49 _and points to some value_ In fact the key can point to a list, set or map, hyperloglog, stream or even geospatial data via geohash. In short it can point to either a single value or a 1-D collection.
1:50 _Wide column adds another dimension_ . This means that each value in the row opposite each key can be a 1-D collection in itself. So each key links to a 2-D collection of data.
2:58 _each document is a container for key-value pairs_ Each cell within each document is a location for a 1-D collection, key-value collection or sub-document.
This is a great quick overview of the database landscape.
I do have a couple of points to add:
1. redis is more than just a simple in-memory key-value store.The values can be of different commonly used types, such as strings, lists, hashes, sets and bitfields. This enables simplifying app code by doing some of the querying logic in the db itself. Plugins enable extending the usefulness to additional use cases.
2. With the exception of RDBMSs (relational dbs) the other db solutions enable utilizing multiple servers by sharding the data and replicating it. This makes them highly scaleable while providing great performance.
Also, little know fact: redis is persistent by default. It saves snapshots of the data in a binary file on disk.
I guess relational dbs can’t be sharded now
Studying 3rd year computer engineering and your videos are educating me in so many awesome ways. Especially your cloud computing in 2020 video. Have watched it three times now! Are you going to make more cloud computing overview videos soon? Your knowledge about how they work, their economics and how it affects the end user are so enthralling! :)
It's definitely the flagship video of fireship, so many new things I learned that I didn't even knew about.
7:58 Man that indexing example cleared everything regarding index in elastic search for me.......Respect .
Dude! You're a salesman of knowledge! It's so interesting!!! LOVE IT 😊
Another interesting database, similar in some ways to Fauna, is Datomic. It uses Datalog as a query language, which also enables you to specify the shape of your query results. Datomic was created by Rich Hickey, the creator of the Clojure programming language. There are a number of really interesting talks on the philosophy behind the design of Datomic (by Rich Hickey, David Nolen, and others), which are well worth your time if you are interested in not just databases, but in how we approach storage, retrieval, and manipulation of data in our work.
Datomic also has the benefit of being something you can run on-prem, and has two free options to suit solo developers/small businesses, and open source projects.
This is the most detailed and crisp introduction to databases I've ever seen after my 4 years of engineering. Thanks man!
I'n not even a web dev bit I watch videos on this channel simply because they are very well produced and look appealing. As a result, I grow my knowledge as well even though I might not (if ever) use it in my job. But it does inspire me to experiment with them on my own.
Awesome!
I am a few years late to be leaving a comment really, but if you are reading this, note that your best option most of the time is a relational database. Document DB's are brilliant, but without the ability to join and search, developing business intelligence around a product or process is very difficult, and migrating data out of a DDB and into a relational database is challenging. You have to be 100% sure you are OK with losing those features because getting them back is going to be extremely challenging.
One of the best videos about databases ive ever seen if not the best.
I watched this video in preparation for a job interview and it really helped! I was able to explain the differences and use cases for a cache and relational database very eloquently. Thanks Jeff
Wow! You just summarised books in 10min video! For videos of these qualities, we can wait for months! Thanks
Nice video. Reading E.F. Codd's paper on things relational, no matter how much or little you understand of it, should be considered a rite of passage mandatory read, similar to reading Satoshi's original bitcoin paper before delving into bitcoin to truly appreciate the genius behind these concepts.
I did bachelor in IT and I took two consecutive course but they were just teach us just structural database or mySQL or Oracle .Thanks sir
You know what ? This masterpiece need tons of research !
Mad respect 🙌🙌
Cleared all the concepts in just 10 mins....hats off 🙌🙌🙌
This is the first time I’ve ever heard of multi-model. It sounds almost like fiction, lol! Definitely gonna give it a try 😋 Thanks for the amazing video as always!
I've very impressed with Fauna so far. Cosmos DB and ArangoDb are also popular choices.
Fireship amazing! Need to find an use case now to try em all :P
...and then you recieve “request is too large”, and failure to recieve data if you don’t scale up to unnecessary 50k request units...
Bad experience with CosmosDB so far.
@@Lanarri yeah these really sound like a great way to lock your entire codebase into a company's ecosystem. Honestly I wouldn't trust that at all, and it's not that hard to use an ORM and a relational DB, yet you're completely flexible regarding hosting and even have multiple interchangable Systems to choose from.
1. Thanx
2. You should check Couchbase.
It is Document based, with Full text Search, N1QL language (SQL for JSON), Crazy Indexing capabilities.
Very easy Scaling, Very reliable, Blazingly fast... etc.
Why has youtube never recommended this channel until today?! This guy is awesome
Wondering the same thing 8 months later..
4:50 This is the best explenation of Relational DataBases i ever heard. I think it took me like 1 week to understand what it really means foreign keys.
I'm a simple man. I see Fireship, I click video.
I'm a simple man. I see "Coding with" in your name, I subscribe.
@@Fireship You're a king 🙏🙏🙏
@@Fireship haha lol
@@Fireship That was totally unexpected.
My brain just melted... Thank you for clarification, great material!
I was so convinced that I had to use a relational db for one of my projects, and while watching this video, I just figured out a way to do my backend with a document db, which might be even simpler. And you also got me interested to learn about the other db paradigms, thanks :)
You're welcome
The best explanation ever. Just enough for beginners. For more info there are tons of info on the Web.
Pictures are nice as well !!!
Great video. I've found a minor mistake, at 8:27 you put number 6 instead of 7
yeah I was all ready for paradigm #7 and the video concluded! then I realized the mistake too :)
There are three hard problems in database design: CAP theorem, and off-by-one errors.
It's an array.
Thks many for the outside overview of daatabase paradigms
FaunaDB looks amazing. I've been waiting for something like this for a long time! Thx.
Dude, You read my mind
I was seriously looking for a detailed information about databases.
And here you are.
Thanks A Lot.
It's incredible how much knowledge you pack into such short videos. And it is unbelievable that all of this knowledge "sticks". Thanks you very much for these!
Choosing the right type of database always gives me anxiety..
"What type of data. What type of analytics/reports needs to be pulled (and this one is very important factor). How much data. How fast does it need to process incoming information.. How does one database compare to another if we're talking about billions of records etc.." and.. you need to pick the right one from the start, because migrating a database to another type/infrastructure when you are running live.. it's a nightmare.
I'll definitely need to check out the FaunaDB thing. Haven't heard of that one before! Thanks for this video!
My pick always goes to MySQL with a Redis front. Just because of the stability, the performance, the ability to handle millions of records, quick data calculations over entire datasets and if needed the option to store a raw JSON string or blob etc. It just takes some more set-up time in comparison to others and for the scalability.. that is something you leave to experts, with the sharding and clusters, that's next level :D
Just a note to say that Redis is now also multimodel like Fauna.
This is the best video explaining all flavor of DB. Very inspiring.
I personally also like ArangoDB as a multi-model database, it has a really nice query language and some cool features (although it isn't as hassle-free as fauna)
Believe me the Way you explain the Relational DB , it was not explained to me in my 4 years of UnderGrad Computer Science Degree.
This video must be a "MUST WATCH" for all the CS students , to really know and differentiate all types of Data BAses.
Thanks a lot for the video
#love from INDIA
You needs to add more than just a LIKE button where is the AWESOME button!
Love button needed
🔥 button
This video literally creates a spark to explore more. Thanks for your efforts. Highly appreciated.
I'm in 4th year of IT high school and mostly can't get this video haha.
Shows how well we got taught databases, great. I guess time to start learning it myself.
A lot of my programming knowledge has come from reading and watching things that I didn't understand, and then looking things up later. It's worked pretty well for me so far
@@lostboycmd I understand what you mean. But my notunderstandingness was so high, I was baffled by it. I didn't know most of the words there.
High school? You mean college right?
@@MM-vr8rj No.
I'm not sure where you're from, but I've found out some countries have a very different school system.
Here in the Czech Republic, you have 9 years of universal, mandatory education.
After that, you usually choose a 'high school', that is either 3 years or 4 (with diploma). That school can either be more general like business school, or specific like IT. After that, you can go to work, but if you want a good job, you'll go to 'College', that is highly specialized.
@@MM-vr8rj I'm guessing he's in some special sort of computer science high school
Zeroth paradigm - Flatfile, aka basic text files. One field|record|row per linebreak
Data parsing is just splitting on linebreaks typically with regex(
) into an array|object, or using in a tail feed.
Though depending on language, or regex engine, the outputs last element may be empty and needs to be ignored.
Kinda covers tabular data or comma separated values,etc as well.
Depending on how you structure those text files and what you put in them, they can represent any of those database types. For example, as you mention here, they are like relational database tables but, if they were JSON/XML files, they might be considered as documents in a document database. At the end of the day, a database is just underpinned by a bunch of files (but they may just be held in memory as a sort of "RAM DIsk").
Shoutout to his dad for talking a lot🐣
Wow! , This is watching DB history in 10 years and learning in instant . Thank you for making and uploading such useful video.
Great video! One minor suggestion, though, is to lower the background speed, as it gets distracting. Besides that, it's perfect
Good call, thanks 🍻
This is by fat the best video explaining the different database options I've seen so far.
Great content, thanks a lot !
About DynamoDB, it's a key-value document database. I would say it's more similar to redis than to mongo.
Thanks for quick snapshot.. very helpful.... and your dad is a smart guy.
The best teacher on the internet, par none.
My learning stack fireship + 3blue1brown + stackoverflow
Revisited the vedio after a year in Oracle SQL and now i appreciate your explanation even more 😊
This is an absurdly good video. Excellent production values, great script, great content. I literally work at Google and I learn stuff from your channel all the time.
Underrated video. This needs millions of views.
lol what a timely video for me, I was in the process of searching for the use cases of Redis and Elasticsearch and here he is uploading a video that explains the general concept of those two and MORE.
Sounds like fun!
This channel proves itself to be the best informative channel. Thank you!
Woh that paper effect was amazing 0:29, did you use After Effects for it?
Yup
I'm so new, and you're teaching me so much.
Exceptional!!!! Thank you so much.
Can you do a video on ETL solutions?
This guy is a content creator BOSS! Just watched his video on the 2022 Tech Bubble bursting ... amazing insight in short snippets!
One the most “important” decisions after the most important one: Arquitecture.
(Uncle Bob deeply disagree)
Of course, right after another, more important decision: decision to learn language (like, English)
This video brilliantly sums up various DBs, hats off!
I thought Database are all very similar to SQL.
Thank you so much for making this video.
Databases now doesn't sound as scary and frustrating as before to me.
I believe there are more undergraduate students like me in Computer Science who have the same misunderstanding.
Man I have learnt a lot from your videos more than I learnt in my 3 years of work...
Welcome to Fireship, where its always Friday! 🕶
Redis is more than just a KV inmemory data store, its a multimodel DB with capabilities like, full text search, stream data type, json, graph and time series.
What kind of sorcery FaunaDb is!
Best video on DB's and their use cases.... thank you.
Well done and thank you!
This video is fantastic and should serve as the gold standard for this type of video. It uses a model that all other informational videos should strive to emulate! It was clear, concise, informative and it covered an important topic.
I rarely leave positive comments on RUclips videos. Videos are either okay - or there’s something wrong with them that I call attention to. But this one is so much better than the rest - that I felt compelled to say thank you and to leave positive feedback.
this video really expanded my thinking, thank you
4:30 "and most of it goes way over my head"
Me: Well then...no use reading that.
Same 😂
The best Content I had come up with so far. Well done!
I haven't heard about Fauna and the concept behind it is super interesting. Also it would be amazing if you make video on database normalization, it is one of the cs topics that clear explanation is heavily required :)
I surely needed this video. Thanks so much. There aren't a lot of videos about this so I am so grateful that you're making one.
Incredible video , the production value is amazing 😁 Just have one question regarding database choices for apps. I just started out using firebase in my flutter app but I'am already getting confused as to what the best practice would be for a typical SQL join between tables . For example let's say a medical app; would you have invoices in a sub collection under a users collection or would it be best to still have separate collections and then do a stream join with RXdart or would it be best to just go with another database choice entirely 😅
Have used Fauna, MySQL and Mongo.
Mongo is best for scratch apps, or where you have no time/don't want to deeply think about data models.
MySQL when you have everything planned out, and just want it to work without any problems.
Fauna is something in between. It's incredibly fast, flexible and usable, but the code (JS especially) is hella wonky.
Personally I love Mongo, but i'm giving FaunaDB space more and more often.
hasura is similar to faunadb
Thanks for presenting me MeiliSearch, I've been looking for an alternative to Elastic for so long!
What is wrong with Elastic or Solr?
When you see a video by fireship.io that is longer than 100 seconds, then grab a pen and paper and start writing notes
I can really recommend ArangoDB as a Multi Model database, you get typical NoSQL style document storage, as well as a graph database, and a keystore!
Never once described wtf a join is
Lol cockroach is a database 😂😂😂
You are like me & I always used to ask, "How will I know if this is the right tool for the job or not?". Found my answers via your video. Thanks, Bro!!
It took me long time to reach all info in this video , this video is one of the best videos to put all dbs I ever watched
I like this video very much. The way of your explanation is simple, straight forward and explicit. Not too short nor too long.
Looking forward more videos from you
GOOD MAN, THANK YOU. HELPS MY SCHOOL TOO. I TEACH NOW TOO.
Is it a coincidence that I was looking for a video on this exact topic for a couple of days and now, here it is!
Jeff you are an asset to the community, glad to have you :)
Love your content, very high quality. I must add tho, that mongodb has acid transactions.
Regards!
Know thy complexities!
It would be great to see a complexity chart about the different performance measures across operations for the data modeling paradigms.
4:24 In fact this "seminal paper" is very readable. 50 years on we may say it's written a bit quaintly. Yet shyness is more appealing than bombast. The relational equations with Greek letter operators are well-explained and he only deals with the common operations. It's written for an audience working in the industry rather than academics. So it won't go over the head of those with Databases 101 down, who usually learn SQL basics concurrent with databases. Reading this paper I was asking myself how come database system designers didn't think of this idea earlier. But of course, every good solution is "obvious" after it's presented and it efficacy proven. A more pressing question might be why did Codd not leave IBM when his idea was rejected . . . But I guess the man had his own circumstances and IBM was a well-paid job. Software-savvy angel investors weren't around in those days!
these days, if I'm looking for an explanation on something, I always look for your channel first lol