A class is meant to be specifically created to do one task. Its also meant to be reusable and portable to other projects, after saying that some classes will be specific to the project at hand although can and should be usable from within the project would be utterly useless in another.
Now thorpe hasnt done too bad a job explaining OO, however going back to extending classes not entirely specific to that class is poor OO design.
The reason being to be really extending another class it should be specific to the class being extended. Although Blog may use DB Class methods its not related in anyway to the DB Class.
If you plan on extending a class making sure the two classes will use the methods, variables of the class and are similar. An example of this is having a class called animal as the top layer class. Controlling things like the Animals age, name, location etc, and creating a Dog Class which extends the Animal class still using the Age, Name, Location but adding specifics like breed, colour, etc.
We could than create other classes from Animal like Bird, Cat, etc we could also create a Class called Spaniel Specific to the Dog class (taking out the breed bit of course) with more specifics to breed.
I hope that helps a little on how Classes should be extended.
Now before you delve deeply into OO, you should really learn OO Concepts as they may seem pretty easy at first but there is more to OO then meets the eye. There are specific books on OO Concepts and many tutorials with a good Google Search would find you some.