What's the name of this data model pattern for representing real-world choice-permutations as a tree?
Say we are representing school course data. The relevant part of the example encompasses thre开发者_如何学Goe real-world concepts: school, campus, and semester. A school can have many campuses, and there is a finite number of semesters.
In the real world, if we wanted to specify a campus + semester combination, it would be elementary. But the data model needs to be represented using a tree structure, like
Foo University:
Main campus
- Fall 2010
- Spring 2011
Bar College:
- North campus
- Spring 2011
- South campus
- Spring 2011
This pattern could continue. For instance, departments could exist in the real world as children of the school, but in the model they would be represented as child nodes of the semester, because what's important about them can change from semester to semester. Basically, we represent the permutations of a set of choices as a tree.
What is the name for this data model pattern?
In the heading you heading mention "choice permutations" which suggests a dynamic pattern (i.e. how to use such a structure for decision making). If it's this then I'd agree with @robert that it's a Decision Tree.
In the body however you say
...the data model needs to be represented using a tree structure...
If your questions is simply the name of this tree-based structural pattern the answer is Hierarchical Database Model.
It's characterised by 1..N relationships between parent and child and pre-dates the Relational model (it was - and still is - the basis for IBM's IMS database system).
You allude to one of the problems with it. Namely, that the only way to model graph-based structures using it means denormalising and repeating elements. Removing that limitation is central to the Relational model.
hth.
I would call it an Entity Tree. It's not so much a data modeling pattern as a natural representation of your Entity relationships.
Decision tree.
A decision tree is a decision support tool that uses a tree-like graph or model of decisions and their possible consequences, including chance event outcomes, resource costs, and utility. It is one way to display an algorithm. Decision trees are commonly used in operations research, specifically in decision analysis, to help identify a strategy most likely to reach a goal. If in practice decisions have to be taken online with no recall under incomplete knowledge, a decision tree should be paralleled by a probability model as a best choice model or online selection model algorithm. Another use of decision trees is as a descriptive means for calculating conditional probabilities.
精彩评论