Database Design Theory?

Dave Smith DavidSmith at
Wed Nov 9 09:09:47 MST 2005

> On Tue, 8 Nov 2005, Tyler Strickland wrote:
>> At no time was a specific database mentioned or a query actually
>> performed. All was theory.  It was good theory, but when I actually
>> wanted to start working with databases I found I didn't know much at all.
>> I could design a solid fourth-normal-form database, but beyond that I was
>> pretty lost.
> That was the impression I was given of the BYU database classes. Now I
> want to make explicit that I think this is *exactly* what BYU database
> classes *should* be teaching. Theory theory theory. The mathematical
> models. Ideas and concepts.

To answer the question about the state of BYU's CS 452 class:

My experience with BYU's CS 452 was a bit different than some of the other
posters. We did focus heavily on theory, all the way up to 5th Normal
Form, Prolog, and other "deep theory" stuff. However, our lab assignments
consisted of some serious Oracle SQL. We were given English statements
like "Find all the flights that do such and such after leaving through two
consecutive airports in New York with a crew of less than 7." They were
non-trivial. During the course of the semester, we had to craft about 60
hairy Oracle SQL statements (mostly SELECTs), including recursive SQL.
That said, we didn't really get a stab at database design, even though we
had to create several E-R diagrams (which incidentally, I think are pretty
worthless). I had done a lot of Postgres and MySQL work prior to the
class, but it still challenged me on a practical level.

What I thought was missing from the class was an assignment requiring us
to design a database given a set of requirements and write code to
interface into the database. And then, to really test our metal: Change
the requirements for a subsequent assignment and see how flexible our
designs were. Now *that* would have been real world. At the same time, it
would have taught us the importance of data integrity, constraints, normal
forms, etc.


More information about the PLUG mailing list