Share what you know with millions of people

Focus is the best place to turn what you know into remarkable content
×
0

What is a data model?

In terms of software engineering, what is a data model and why is it important? My IT professionals have been talking about it a lot lately, but I still don’t really grasp the importance. Can anyone better explain this to me in simple terms?

Attachments

0
Kelly Fitzgerald
Sr. Implementation Specialist, Thomson Reuters
  • Recommended by:

Data modeling is the documentation of data-objects within a project or application or a portion of either. This documentation is the planning of the data structure within your scope. It will may contain: flow, associations, and the structure of these relations. There are many different methods and theories to DM even based on technology and what stage or layer you are working on....

-1
Larry Cooper
  • Recommended by:

A data model is a logical (and physical) representation of how the business information gets stored in a database. A simple analogy is an invoice.

If you have ever been to a local Home Depot and ordered say meterials for new deck you would get a detailed invoice showing what is to be delieved to your house.

The invoice header has details about the customer, the date of the transaction, whether the billing and shipping addresses are different, an invoice number etc. The invoice details contain the line items for what was sold to you: 2x6x12 joists, 2x4x8 planks, screws, joist hangers, etc.

Inside the home depot system where they track such things they created different logical groupings (called entities) to contain the various chunks of data they want to capture so that it can both be turned into an invoice for you for this particular order but also so this same data can be used in other ways. For example, if you are a big customer of theirs, they will want to track how much you buy and what kinds of things you buy so they can do targeted marketing. To do that they break the different parts of what show up on a printed invoice into separate entities so it can be used for these other purposes.

For example, the part of the invoice header that has the customer id and customer name data is often in one entity, whereas the addresses for the customer are in a different entity or even more that one additional entity as there can be more that one type of customer address (headquarters, billing, shipping, etc.). Likewise for the invoice number, and the line items on the invoice. This way they can construct different views of the data for different business needs.

However, if each invoice was simply an enity unto itself and not broken up into different ones as was described, being able to repurpose (or reuse) this data to satisfy multiple different business outcomes would not be possible or at the least make it very diffiuclt to do.

Hope that helps!
Larry

Answer This Question