#23 overallClassic
Introduction to Databases
Stanford University
16 recommenders · 19 threads · recommended in 11 years, 2011–2023 · score 25.9
An introductory Stanford course by Jennifer Widom covering relational databases, relational theory and algebra, and SQL, with lectures and problem sets. It has run as a Stanford MOOC in several sessions, with self-paced versions on Lagunita.
Commenters call it one of the best MOOCs they've taken, praising its well-planned exercises and its blend of database theory with real-world examples.
Databases & Data Engineeringbeginnerfreevideo lectures#databases#sql#relational algebra#widom#relational theory
Recommendations by year
20062026
Thirding Widom's course!
It's my go-to recommendation for anyone wanting a strong foundation in SQL.
There was actually a third excellent course launched at the same time - Jennifer Widom's Introduction to Databases. The original version is no longer available, but there are mini-courses in its stead. Highly recommended - https://cs.stanford.edu/people/widom/DB-mooc.html
Jennifer Widom's database course was part of the first three MOOCs offered in 2011, and I thought it was excellent also.
I absolutely agree and I recommend this course every time someone mentions SQL. The lectures combined with the videos are the best learning tool for people interested in SQL.
I also recommend Introduction to Networks from Stanford which is also freely accessible with registration[1] and also very high quality similar to the DB course level.
[1]http://f12.class2go.stanford.edu/networking/Fall2012
Probably a response to the Stanford courses. I took the course Introduction to Databases, and it was really great. I wrote about the experience here: http://henrikwarne.com
This was one of my favorite CS classes I took at Stanford. It will do a great job teaching you the theory behind dbs then bridge that theory with real-world examples. If you want to get an idea about how databases operate behind the scenes AND how they should be properly used, this is a great class for you.
The relational algebra sections of the course are intriguing because it forces you to solve problems using a set of constraints that aren't present in other programming languages—really interesting stuff.
More information is at the class website http://infolab.stanford.edu/~widom/cs145/index.html
Jennifer Widom’s Databases course is great
https://online.stanford.edu/courses/soe-ydatabases-databases
Otherwise SQL is best learned by solving problems and googling when you’re stuck.
Most developers only need a few SQL constructs like SELECT, WHERE, WITH, JOIN, INSERT, CREATE and GROUP BY. Most devs learn and forget because they don’t use SQL very often. It’s too bad because the relational data structure (or more generally the table) is a super useful abstraction and often much more powerful than lists and dicts.
Data analysts need a few more like OVER (PARTITION BY) and maybe PIVOT/UNPIVOT.
Data engineers of course need many more specifically those related to database object manipulation, and stuff around performance like INDEX.
Really advanced SQL experts do stuff like this.
https://modern-sql.com/
Take a look at the "Relational Design Theory"[1] mini-course on Stanford/Lagunitas. Though I had used SQL for years, I took it as part of the early MOOC on databases that was offered in 2011. It is likely to match up with the intuition you already have about what works well in practice, but it can still be a challenge and rewarding to formalize your intuition and understanding.
The way the course is broken up now, you may need some of the other sections [2] like Intro to Relational Databases or Relational Algebra as prerequisites, since I do not remember if it used SQL syntax.
[1] https://lagunita.stanford.edu/courses/DB/RD/SelfPaced/about
[2] https://lagunita.stanford.edu/courses/DB/2014/SelfPaced/abou...
Relational: Jennifer Widom's Stanford MOOC is often highly recommended.
https://lagunita.stanford.edu/courses/DB/2014/SelfPaced/abou...
You can check out these 2 sites with practical exercices:
https://www.dataquest.io
https://campus.datacamp.com
I've also seen this free online Stanford course recommended a lot:
https://lagunita.stanford.edu/courses/DB/SQL/SelfPaced/about
Looks cool. But in my experience, theoretical understanding and some simple proofs are quite important in mastering SQL. I would suggest the intro to DB online course offered by Stanford.
If you're in the camp of "I worked through a good rails/django/nodejs/php tutorial, but I don't really understand SQL", you should go through this course: https://lagunita.stanford.edu/courses/Engineering/db/2014_1/...
Skip XML but do not skip relational algebra.
They're both on Stanford's Lagunita, along with excellent courses on Computer Networks and Databases.
I've had exactly the same struggle. Andrew Ng was truly awesome, better than any lecturer I had. Jeff Hinton's course is just a real struggle to complete.
It's more than just the lectures, the thought and relevance that goes into the problem sets is a big difference too.
It's great to hear that Jennifer Widom's course is on a similar level. Perhaps I should dust up on my database knowledge.
Stanford had a great Introduction to Databases MOOC on Coursera a few years back. I don't think it's still available on Coursera but you can still take the self paced course directly from the Stanford website.
https://lagunita.stanford.edu/courses/DB/2014/SelfPaced/abou...
Try Jennifer Widom's online course on databases:
https://lagunita.stanford.edu/courses/Engineering/db/2014_1/...
From your blog:
"a lot of material was explained by Professor Ordesky during the videos, so you’d have a hard time trying to do the course without watching the videos"
The Stanford Databases class (http://class2go.stanford.edu/db/) did that part very well (well it did everything very well): Everything that the professor typed in during video demonstrations, was also provided as text files in the course downloadables.
"As least in Scandinavia, we don't feel MOOCs are a huge threat to us, because there is no tuition, so there is no real financial reason for students to prefer MOOCs."
At least the best Stanford MOOCs, Machine Learning and Databases, were taught much better, and the material and exercises were much more carefully planned, than most of what I'd expect at least in any university in Finland.
Now, I hear Coursera has also some bad quality MOOCs, but as long as the very best courses by the very best lecturers can be offered to the whole world as MOOCs, their better quality should be a strong reason the prefer them over some mediocre course in a local uni.
I cannot look at it from a freshman's point of view, so I'm biased, but I definitely don't want it to be my only CS course.
This is because I just know, that to understand, say, SQL (and NoSQL) there is excellent Database course from Stanford and it worth taking because it will pay back later. To understand programming you need CS61A (because it teach you whys) and then Data Structures and Algorithms. Then you can pick up everything you need from books.
So, let's say that this is an Introduction To Coding (without deep understanding).
One approach to getting a list of topics is to look at the degree requirements for a couple of universities. I'm wrapping up a similar project, and here's what I included, along with some resources I used:
* Algorithms (CLRS, Skiena)
* Databases (db-class.org, any text by C.J. Date)
* Probability, Statistics, and Combinatorics
* Programming Languages (I liked Grossman's course on Coursera)
* Linear Algebra (http://ocw.mit.edu/courses/mathematics/18-06sc-linear-algebr...)
* Natural Language Processing (Coursera has several courses)
* Machine Learning/Information Retrieval/Data Mining (I used a couple books, Mining Massive Datasets and Data-Intensive Text Processing with MapReduce being the two I'd recommend)
* Networking (Coursera has a good course)
* Operating Systems (https://www.youtube.com/watch?v=XgQo4JkN4Bw&list=PL62A66DDD3...)
* Distributed Systems (I read Tanenbaum's book)
* Computability
http://class.stanford.edu has an Introduction to Databases course that you may want to check out.
I'm not sure if you're just trolling or if you have an actual critical comparison to make. Can you elaborate?
There are a number of things you could be referring to when you say the Stanford lectures are "way better". Which Stanford lectures are you talking about? The recent AI, DB and ML classes? The general Stanford open course stuff? Are you talking about the content, presentation, selection of material, structure of classes, file formats, editing, ... ?
I've watched a lot of the Stanford AI and DB lectures, and I've cherry picked from the other stuff. The list of courses here (http://www.extension.harvard.edu/open-learning-initiative) includes some things that aren't offered by Stanford, and based on 5 minutes of sampling, the video quality looks passable. Some of the Stanford open course videos are pretty terrible in video quality (check out the web applications one) altho the content seems very good. I can't speak to the content of the Harvard lectures without actually watching them. Have you?
While it would be great if Harvard started to offer structured online classes like the recent Stanford ones, it's pretty cool that these are available at all, given that Harvard is about as old-guard as you can get.