Classes and Databases

In the database management lexicon, a "hierarchy" is a data structure wherein each component has only one parent and a parent can have multiple children in one-to-many relationships. One department, many projects, for example. If the design requires a child component to have multiple parents, database people call that a "network." Although class inheritance design for data abstraction and database data structure design are quite different, they have this architectural basis in common. But class design calls everything a "hierarchy," even where multiple inheritance is used. There is no linguistic ambiguity there. Database design simply chooses to narrow the meaning of the word in a quest for precision in the terminology. But in classical organizational hierarchies originally defined in terms of the clergy, components can be subordinate to multiple higher components — students can have many teachers, employees can have multiple supervisors, a private better salute every general, and so on — and that's where the word comes from. So I have no problem referring to multiple inheritance class designs as "class hierarchies."

— A.S.

Back to Article