Enrollment for Stanford's online DB class now open
db-class.org
db-class.org
1. Is it worth understanding relational algebra? Yes. Definitely. It's not that hard, there's more or less a one-to-one mapping of relational algebra to SQL. Relational algebra is both a useful mathematical tool and indispensable when trying to understand query optimization. Relational algebra is also necessary to be able to read pretty much any of the database literature, if that's one of your goals. (Just be thankful you don't have to learn Relational Calculus or Datalog.)
2. Is it worth learning XML features like XML DTDs, XPath, XML Schema, and XQuery? Yes, definitely. I don't like XML, but there are tons of places where you can use XPath. (The most interesting thing about XQuery is probably how similar it is to SQL, though.)
3. Is it worth learning about SQL triggers? Probably. Ultimately, the web development world is split between people for whom separation of concerns means doing more in the database, and those for whom separation of concerns means doing less in the database. If you think doing validation and transactions in the database is sensible, triggers are also a sensible thing to learn about. However, people like DHH disagree and want validation in your app server with a dumber backend.
4. Is this vocational training? Well, this is the first in a three class sequence at Stanford. This class is mostly about schema and query languages, so in some sense, it's the most useful to practitioners (or at least, non-DBA practitioners). The second class is about systems and implementation (on-disk layout, indexing structures, query optimization). In the third class, students either learn about distributed databases or actually build their own from scratch. However, schema and query languages have enough theory behind them, and enough generality, that I wouldn't consider it any more vocational training than a class on compilers.
However, the three classes are intended to match up with Database Systems: The Complete Book (which, in the interests of full disclosure, is written partly by my former advisor). If you want to learn the material from the second class, I would just read the book. I've actually read the book cover to cover, and I think it's one of the best textbooks for that purpose. There are tons of examples everywhere, it's pretty talkative, and there is very little pretension (insert Russell/Norvig complaint here). On the other hand, some portion of the Internet seems to take the opposite view (e.g., some people just view the talkativeness as repetition).
There are 120+ HNers on there so you might find folks nearby you'd like to get in touch with.
Edit: Obviously, if you're doing any of the courses feel free to add your details too
I made a new column and started adding details in reverse (e.g USA, NY). Admittedly I got a little bored so I didn't do everyone. Re-sorting on that column (if it's ever completed) would solve your problem.
And relational algebra? Com'on...
After a cup of coffee I made through the 2 videos.
Are SQL triggers still relevant? How much relational algebra do you really need to know? I think I've used this stuff maybe once since then.
1. Yes, they are. They're very useful for certain things. For example, want to update your fulltext index in Postgres after certain table cells change or when new rows are inserted? You'll need to use a trigger.
2. Knowing more rather than less is probably a good thing. Understanding the underlying model of relational data will help you build SQL databases that make sense given the data you're working with.
Of course, you won't use SQL in every project or job, but it's awfully useful. Ignore the hype that NoSQL is the wave of the future. It may be a wave of the future but so is SQL.
<!DOCTYPE A [ <!ELEMENT A (B+, C)> <!ELEMENT B (#PCDATA)> <!ELEMENT C (B?, D)> <!ELEMENT D (#PCDATA)> ]> Which of the following sequences of opening and closing tags matches this DTD? Note: In actual XML, opening and closing tags would be enclosed in angle brackets, and some elements might have text subelements. This quiz focuses on the element sequencing and interleaving specified by the DTD.
What does this mean for example? A B /B B /B C B /B D /D D /D /C /A
Don't love the Flash.
Like that an HTML5 alternative is offered for iPads, etc.
The class has not yet officially started, but in this pre-launch period, you can begin looking at the first week of content so that you can see what's coming and get a head start.
Since there's already quite a lot of video uploaded (and three quizzes/assignments), I'm happy to get started early.