MIT Database Systems (6.830) TA Course Notes
blog.marcua.net
blog.marcua.net
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 . . .
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.
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).
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!