

MIT Database Systems (6.830) TA Course Notes - marcua
http://blog.marcua.net/post/117671929/mit-database-systems-6-830-ta-course-notes

======
tom_b
Thanks, at first glance this looks like a good set of notes to skim over. I
wouldn't spend a tremendous amount of time trying to deeply understand the
query optimization details. My experience has been that being able to grab out
low hanging fruit (ie, are the right indexes being used by the query
optimizer, check the plan your RDBMS generates) is more helpful. Most people
will never need to think about query optimization as in the notes.

Understanding indexing and index selectivity is probably a bigger deal for
most apps these days. At least, it seems that I come across many more read
intensive apps than high transaction rate apps. But I'm a data warehouse app
guy usually.

I'd also strongly recommend the Joe Celko books for really building up your
SQL chops. Once you have a intermediate understanding of your RDBMS backend
and SQL, you'll have all the knowledge you'll need for 90% of db development
and know how to investigate the other 10%.

I have typically joined projects after the db has been designed. I need to
work on being able to quickly refactor table designs to cleanup and enforce
constraints. My gut feel is that the best way to do this is to first define a
data access layer via some type of procedural API to the other devs on a
project and then cleanup the backend design on the side while the project goes
forward.

Now, if only SQL had the ability to define and dynamically build first class
functions as well . . . I could do some snazzy stuff much quicker . . .

------
dbul
This is great. I only wish our computer science program required Databases to
graduate, because while learning about thunks and trampolining in PL and
writing a disassembler for the M68K were all fun (and required), in the real
world the chances are you'll more likely be faced with challenging database
problems.

And database gurus tend to be snobs, so if you can't challenge them on an
issue because you simply know _how to use_ inner joins and outer joins and
don't have a depth of knowledge, they'll bite your head off. Anyone in a
position to earn a computer science degree: trade in that exciting independent
research course for a course in Databases.

------
huherto
Good. Is there a text book associated?

Any recomendations of a good text book on database systems. Something that can
be used as a reference, and/or explains the subtle details on database design
(modeling).

~~~
marcua
The notes for each day have a list of readings, including papers and readings
from two books.

The canonical undergrad textbook is "Database Management Systems" by
Ramakrishnan and Gehrke. I've often been confused by papers we read and gone
to this book for a foundation before jumping back into the paper. There are a
_lot_ of chapters I haven't read (namely the first few on ER diagrams, etc.),
but the chapters on storage/indexing/query evaluation/transaction
management/normalization are good if you read them a few times.

The graduate-level book is called "The Red Book"
(<http://redbook.cs.berkeley.edu/>), and is a great source of foundational
papers in the field. You can find most of the papers online, but the
introduction gives you a good sense for the history and evolution of
databases.

I hope this helps!

~~~
rjurney
The red book links are quite good, and google scholar has most of them free in
PDF form.

