Right: Books, Cat (Tags), and the cross-reference table between them. Just like I sketched above. Grrr.
I've always been a corporate developer, so the question of "use a database or not" never comes up. We always use a database. For an end-user program, I see the dilemma.