Skip to content

EbEmad/Dimensional-Modeling-Practiical-guide

Repository files navigation

Dimensional-Modeling-Practical-guide

Why Data Modeling Matters

  • Ensures data reflects business rules and goals
  • Enables clear communication between stakeholders (engineers, analysts, executives)
  • Prevents confusion and improves data quality
  • Avoids creating “data swamps” with unstructured or inaccurate data
  • Supports decision-making and AI/ML applications

Levels of Data Modeling

  1. Conceptual Model – High-level overview of business entities
  2. Logical Model – Detailed structure with relationships and rules
  3. Physical Model – Actual database implementation

Key Takeaways

  • Always begin by understanding the business context
  • Model data deliberately to serve specific business domains (e.g., marketing, finance)
  • Poor data modeling leads to inefficiencies, confusion, and bad decisions
  • Modern data engineering needs modeling despite new tech (e.g., Data Lakes, NoSQL)
  • Targeted data models improve insights and AI outcomes

Project Structure

Dimensional_Modeling_Practiical_guide/
├── Data modeling architectures/
│   └── Star schema/
│       └── README.md
│
├── Dimension modeling/
│   ├── Conformed_Dim/
│   │   ├── query.sql
│   │   └── README.md
│   ├── Degenerate_Dim/
│   │   ├── query.sql
│   │   └── README.md
│   ├── Fast_Changing_Dim/
│   │   ├── query.sql
│   │   └── README.md
│   ├── Heterogenous_Dim/
│   │   ├── query.sql
│   │   └── README.md
│   ├── Junk_Dim/
│   │   ├── Junk Dimension.sql
│   │   └── README.md
│   ├── Multi-Valued-Dim/
│   │   ├── query.sql
│   │   └── README.md
│   ├── Outrigger_Dim/
│   │   ├── Outrigger Dimension.sql
│   │   └── README.md
│   ├── Role_Playing_Dim/
│   │   ├── README.md
│   │   └── Role-Playing Dimension.sql
│   ├── Shrunken_Dim/
│   │   ├── query.sql
│   │   └── README.md
│   ├── Slowly_Changing_Dim/
│   │   ├── README.md
│   │   └── Slowly Changing Dimension Types.sql
│   ├── Snowflak_Dim/
│   │   ├── query.sql
│   │   └── README.md
│   ├── Swappable_Dim/
│   │   ├── query.sql
│   │   └── README.md
│   └── README.md
│
├── Fact modeling/
│   ├── Additive facts/
│   │   └── README.md
│   ├── Derived facts/
│   │   └── README.md
│   ├── Fact Granularity/
│   │   └── README.md
│   ├── Fact-less fact/
│   │   └── README.md
│   ├── Non-additive facts/
│   │   └── README.md
│   ├── Semi-additive facts/
│   │   └── README.md
│   ├── Textual facts/
│   │   └── README.md
│   └── README.md
│
├── Imgs/
│   └── fact-star.png
│
├── docker-compose.yml
├── LICENSE
└── README.md

Usage

To use these schemas, execute the SQL statements in your database management system. You can modify and extend the schemas based on your specific requirements.


Contributions

This project is currently maintained for learning and demonstration purposes. If you'd like to contribute, feel free to fork the repository and open a pull request. Suggestions and improvements are always welcome!


Author

Ebrahim Emad GitHub Profile


License

This project is licensed under the MIT License – see the LICENSE file for details.

About

No description or website provided.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •