January 23rd, 2004, 7:43 am
I second the recommendation on books authored by C.J.Date for understanding the theory behind DB design. Just keep in mind that the logical model presented in the theory may end up as a conceptual layer on top of a rather different physical implementation.The topic of DB implementation may not be as esoteric as some might think. While most relational DB's are implemented as disk-based, the data model is readily adaptable to a memory-resident implementation. Relational DB as a data structure model might be useful, depending upon your requirements. You can buy off-the-shelf implementations of memory-resident DB's, but they cost at least the annual salary of one programmer. If you need only one instance, then just buy it, but if you need one copy for each node in a 100-way cluster then it may be cheaper to build.If you're really going to dig into relational DB implementation, it might help to brush up on some aspects of discrete math if you're not already familiar with it. i.e. MIT OCW Discrete Math coursewareAnother thing to keep in mind is that fully implementing a relational DB may mean implementing a subset of the SQL language. SQL is a declarative language, as contrasted against imperative languages like C++ & VB. In an imperative language, the user of the language needs to specify a series of actions to be carried out in order to achieve the desired result. In contrast, with a declarative language like SQL, the user writes a short query staing the desired end results and any constraints to be applied. They generally do not specify a series of steps to be followed in order to achieve the end results. It is up to the query parsing engine to figure out a suitable sequence of steps in order to achieve the desired result. As such, the DB implementation programmer may have a bigger challenge than if he merely set out to write a C compiler. Fortunately, set theory and other aspects of discrete math are used to frame this problem into a more tractable and digestible form.
All standard disclaimers apply, and then some.