Lexical are dimensions that combine and give a name to combinations of two or more attributes. A common use is for hierarchical codes, such as the ZIP code system, or breakdown codes. A lexical dimesions essentially encodes all combinations of its attributes into a single key that is used in the fact. It is also possible that the fact contains the individual keys that the lexical dimension table is made of. In those cases the table is not acting as a dimension but can be used to drive drop-downs and pick-lists in a progressive selection of the user interface so that the user sees only valid combinations of these attributes. Hierarcical dimensions include the major, minor, sub-minor etc. as attributes and each row is assigned its own key. It is important in these cases that the fact points to either the major, minor, sub-minor etc. or the encoding key. Although at a given point in time these attributes form a hierarchy, over time the hierarchy may change and different ancestry for the same minor or sub-minor may be inlcuded. It is thus important that if facts point to these dimensions they point to either the complete tuple of attributes or to the encoding key.