Data Modeling for Business Analysts
As a Business Analyst we come across scenarios where we are discussing requirements with clients and feel need to design a Data model. A data model helps to break down a complex business problem and build a solution,
Data Model are of 3 types
Conceptual - A conceptual model is a high level data view
Logical - This is a logical representation of data and using this model a physical schema should be created
Physical - A physical schema or Entity diagram is the actual representation of how tables, attributes and its data types will be stored in the database.
As busniess anlyst we need to build a logical data model to correctly document the requirment
How to Model Data ?
Step one - Identify all the Entity Types
An entity is a representation of people, places, processes, things, events, concepts, systems etc.
These entities are used to create objects in data model. Ex. of entities in a Customer maangement
system can be Accounts, Sales, products, price, contacts etc
Step two - Identify Attributes
Each entity type will have its own data attributes. for ex. a product entity will have product name,
code, size, color, MRP, tax etc as its attributes
Step three - Apply data naming conventions
Each business organization will have its own naming conventions as per their process. Ex. a SKU code
would be MAC-BL-IND-001 where MAC stands for Machine BL for BLUE and IND for India, blue machine from India
Step four -- Identify Relationships
Each entity will be directly or indirectly related to each other, ex. one product might have multiple
prices as per the customers, so that means entity product has one to many relationship with price
Step five - Assign keys
Identify primary and foreign keys and use them to map the relationships
Step six - normalize the data
In this step we try to organize the attributes in the entity in such a way that increases cohesion of
entity types and eliminate the data redundancy.
Forex. many customers will buy many products, keeping customer and product information is not
advisable . what we should ideally do is keep customer info in customers table, product info in product table
and order information in orders table
Step at times we might need to De- normalize data to improve performance
At times normalize data in production result in performance issues, so we have to denormalize data
schema, structure the DB in such a way that it reduces server load and gives good performance
Agile data modeling
Data modeling performed in an iterative manner or an incremental manner.
Finally practicing with other BA's and solution architects will give us better skills to data modeling
Cheers!