Dimensional modeling is an approach to database design that focuses on how people are likely to use a database so it can be structured in a way that will support user queries. While this technique is usually applied to electronic databases, it can also be used to organize a physical database like a set of flat files. It requires some planning and forethought to implement, and in the case of an overhaul of an existing database, the process of setting up the data may take some time. The end result should be useful, flexible, and powerful for the benefit of users.
In this type of database design, two different issues are considered. The first is concrete measures, numbers that can be collected, reported, and organized. The second is context, which may be viewed in several dimensions. At a chain of clothing stores, for instance, some dimensions might include sales numbers, orders placed for supplies, individual store numbers, and so forth. Hard numbers can be reported in a variety of contexts under this model.
Essentially, dimensional modeling creates a three dimensional database with linkages to allow people to take a slice of data from anywhere in the database. A query might ask how many skirts were sold in the Northwest region of the chain's operations in the third quarter of a given year. The query asks for a specific number, and provides three dimensions to contextualize it. The resulting database look-up can provide that information if the dimensional modeling was done properly.
In the process of preparing a database of this nature, planners will sit down and think about how people are likely to use the database and what kinds of queries they will probably make. This part of dimensional modeling must also consider future uses of the database for flexibility reasons. If the database is too rigid, it will be impossible to introduce new information. As a business grows and becomes more complex, it may be necessary to create an entirely new database, a costly process for the company.
Experts in dimensional modeling may act as consultants in the course of database development. They can work with staff members to develop a database that will suit their needs, and provide direction to programmers to allow them to formulate the backbone of the database. The creators may also think about issues like storage needs, backup, and other things that might affect the integrity of the database.