modeling data

The logical data model is a network model and illustrates entities (objects), relationships (connectors) and cardinality (one-to-many AKA parent-to-child). It is a tool used to support communications between the business user and systems and database builders.

The simple model below -- they can become huge -- shows a relationship exists between "customers" and their "locations." It tells us that "one customer may have one or many locations" and "a location may accomodate one or many customers," so we need to build a database to solve that business problem most efficiently.

The "Customer" business object represents a database object that will contain data describing the customer. The "Location" business object represents a database object that will contain data describing a location, typically, postal address and geo-data. The Relation contains data that describes the relationship.

The Entity object is named for and contains data that describes an organization, person, place or thing.

       The Entity is an unique, people-friendy name (  Customer  )

Every Entity must, at a minumum, have least these two attributes:

       Identifier: A unique, computer-friendy number for each occurrence of an entity (  Id  )        Name: A unique, people-friendy name for each occurrence of an entity (  Name  )

Concatenation:

       The Entity Identifier is reference by concatenating the name of the Entity with the
       name of the Attribute: (  Customer.Id  )
       The period/decimal/dot is used as the concatenating device.(  Customer.Name  )

The Relation object takes the concatenated names of its parent entities.

       Relation Name: A unique, people-friendy noun (  CustomerLocation  )

... and contains the unique, computer-friendly identifiers of its parent entities and data that describes the relationship that exists between the two parent entities.

       Parent Identifier: A unique, computer-friendy number (  CustomerId  )
       Parent Identifier: A unique, computer-friendy number (  LocationId  )
       Relation: A descriptive noun or phrase (  Relation  )

The data model is used by the business and development teams to communicate. The business user can understand this diagram because he or she sees his or her language and relationships. It is a "logical" view of a "physical" database. When the database designers and builders see that data model, they see this:

 Bonded Shipping         Corporate Offices         12 Armory Rd.       
 Mega Corp         Home Office         100 Main St.       
 Mega Corp         Warehouse         12 Armory Rd.       
 Mega Corp         Plant         Industrial Way       
 Secure Storage         Rental Center         12 Armory Rd.       
 Secure Storage         Rental Center         Industrial Way       

Now the business people and the application builders can talk about the business problem and the technical solution.

The data model represents the real world where one company may have many locations and one location may have many companies. Hint: The world is many-to-many.

The benefit to this structure is reduced redundancy or better yet, no redundacy. A company name occurs only one time in the database. Updates are easy when you only have to make a single change that is reflected across the enterprise.

Now, I want to make a quick note about data models and data modeling tools. Don't get hung up on which tool, which objects, which whatevers are the best. It doesn't matter -- especially at this point in the lifecycle. Use what they give you or what you have. If you don't have access to data modeling software, there are plenty of freebies on the Internet.

Identifying the entities and the relationships and cardinality that exist between those entities are the focus. Other steps and other tools in the lifecycle will fill in the missing pieces. Continue to march.