While studying database course(RDBMS) in college I never thought I would end up doing database administration.At that time what we ever thought was doing coding and programming .However I was more into Discrete Mathematics and Data Structure and Operating System rather than Programming languages.
Though I liked the small book called "The Programming in C" by Dennis Ritchie. Its short and sweet.And believe me,it's very very powerful and concise.I never fully leverage it to become a good programmer but I think It can help whosoever wants to be a good programmer.
Now since I m now concerned with database so I would focus on database part.
Back in college days I barely realized that OS ,Data Structure and database are so intimately related but now I realize it do so. They are close kin.And I endorse the fact that theory plays as important role in understanding database as the hands on.
Those times, I had no real exposure to any DBMS apart from few times I played with MS SQL server.Now I work on IBM DB2 so got to know the practical aspect of database course.At that time I thought SQL is such an easy part for DBMS course all we needed to do was few SQL statements like "select * from
".
But now it seems the whole world out there to understand. There are hordes of books available on this subject and many resources on internet, just Google any topic and u have plethora of links and some are worth following too :-) Like I just Google "Hash table" and I get a very good article on wikipedia :
http://en.wikipedia.org/wiki/Hash_table
In a daily life of a DBA a topic like hash table hardly figures but I think One must have deeper understanding of the underlying DBMS, no matter what vendor 's flavor u are working on.