Well done. But I have to note, the chapter "Schema Refinement - Functional Dependencies" is an example of what drives many students out of CS. Even so, this is one of the better introductions to functional dependencies that I've read.
I agree that, at introduction, material should be made as accessible to students as possible. At the same time, we shouldn't dumb down the field for more advanced students.
blueatlas cited the bit on functional dependencies as "an example of what drives many students out of CS" but I'd say that more than anything it's an example of a tricky topic that ought to be presented by a highly engaging, smart instructor instead of a boring one who may or may not understand the material very well. (in retrospect, my feelings and his aren't mutually exclusive)