diff --git a/dwh-modeling-ds.md b/dwh-modeling-ds.md
new file mode 100644
index 0000000..88871a9
--- /dev/null
+++ b/dwh-modeling-ds.md
@@ -0,0 +1,363 @@
+Отлично! Я умею рисовать Mermaid-схемы и с удовольствием добавлю их в план. Вот переработанный вариант с дополнительными визуализациями для ключевых концепций.
+
+---
+
+### **Структура статьи про хранилище данных (с визуализацией Mermaid)**
+
+```mermaid
+flowchart TD
+ A[ ] --> B[1. Введение
Проблема аналитики в OLTP]
+ B --> C[2. Учебный пример
Интернет-магазин]
+ C --> D[3. Архитектура
Зачем слои?]
+ D --> E[4. Путешествие данных
STG→ODS→DDS→DM]
+ E --> F[5. Базовые понятия
Факты, Измерения, SCD]
+ F --> G[6. Модели данных
3NF, DV, Звезда]
+ G --> H[7. Практикум
Собираем витрину]
+ H --> I[8. Выбор модели
Дерево решений]
+ I --> J[9. Эксплуатация
Качество и эволюция]
+ J --> K[10. Заключение]
+```
+
+---
+
+#### **1. Введение: Аналитика — это не оперативка**
+
+```mermaid
+flowchart LR
+ subgraph OLTP[OLTP - Операционные системы]
+ A[CRM]
+ B[Заказы]
+ C[Склад]
+ end
+
+ subgraph DWH[DWH - Аналитическое хранилище]
+ D[Единая модель
для анализа]
+ end
+
+ OLTP -- Сложные JOIN
Медленные отчеты --> X[Проблемы]
+ X -- Слоистая архитектура
Оптимизированные модели --> DWH
+```
+
+**Ключевые тезисы**:
+- OLTP vs OLAP: транзакции против анализа
+- Почему "одна большая таблица" не работает на истории
+- 3 преимущества слоев: управляемость, производительность, прозрачность
+
+---
+
+#### **2. Учебный пример: интернет-магазин**
+
+*(Оставляю вашу отличную ER-диаграмму без изменений)*
+
+```mermaid
+erDiagram
+ CUSTOMER ||--o{ ORDER : places
+ ORDER ||--|{ ORDER_ITEM : contains
+ PRODUCT ||--o{ ORDER_ITEM : referenced
+ PRODUCT ||--o{ PRICE : has
+ PROMO ||--o{ ORDER_ITEM : applied
+```
+
+---
+
+#### **3. Архитектура хранилища: зачем делить на слои?**
+
+```mermaid
+flowchart TD
+ subgraph Sources[Источники OLTP]
+ A[CRM]
+ B[Заказы]
+ C[Склад]
+ end
+
+ A --> STG
+ B --> STG
+ C --> STG
+
+ subgraph STG[STG - Сырые данные]
+ D[Таблицы-клоны
сырые данные]
+ end
+
+ STG --> ODS
+
+ subgraph ODS[ODS - Очищенные данные]
+ E[Стандартизированные
типы и форматы]
+ end
+
+ ODS --> DDS
+
+ subgraph DDS[DDS - Интегрированная модель]
+ F[Бизнес-сущности
SCD, интеграция]
+ end
+
+ DDS --> DM
+
+ subgraph DM[DM - Витрины для аналитики]
+ G[Звезда/снежинка
агрегаты]
+ end
+
+ DM --> BI[BI-системы
и отчеты]
+```
+
+---
+
+#### **4. Путешествие данных по слоям**
+
+```mermaid
+flowchart LR
+ subgraph STG[STG - Сырье]
+ A[raw_orders.json]
+ B[raw_customers.csv]
+ C[Формат как в источнике]
+ end
+
+ subgraph ODS[ODS - Очистка]
+ D[stg_orders]
+ E[stg_customers]
+ F[Типизация, валидация]
+ end
+
+ subgraph DDS[DDS - Интеграция]
+ G[dim_customer
SCD Type 2]
+ H[fact_orders
с суррогатными ключами]
+ end
+
+ subgraph DM[DM - Готовые решения]
+ I[mart_sales
агрегированные данные]
+ J[mart_customer_360
обзор по клиентам]
+ end
+
+ STG --> ODS
+ ODS --> DDS
+ DDS --> DM
+```
+
+---
+
+#### **5. Базовые понятия: Факты, Измерения, Ключи**
+
+```mermaid
+erDiagram
+ dim_date ||--o{ fact_sales : "дата"
+ dim_customer ||--o{ fact_sales : "клиент"
+ dim_product ||--o{ fact_sales : "товар"
+
+ dim_customer {
+ bigint customer_sk PK
+ varchar customer_bk
+ varchar customer_name
+ varchar email
+ date valid_from
+ date valid_to
+ boolean is_current
+ }
+
+ fact_sales {
+ bigint sale_id PK
+ bigint customer_sk FK
+ bigint product_sk FK
+ date date_sk FK
+ int quantity
+ decimal amount
+ }
+```
+
+**SCD Type 2 - Визуализация истории**:
+
+```mermaid
+gantt
+ title SCD Type 2: История изменений клиента (ID = 123)
+ dateFormat YYYY-MM-DD
+ axisFormat %Y-%m
+
+ section Москва, premium@email.com
+ Версия 1 :active, 2023-01-01, 2023-05-15
+
+ section Москва, new_premium@email.com
+ Версия 2 :active, 2023-05-16, 2023-09-30
+
+ section Санкт-Петербург, new_premium@email.com
+ Версия 3 :active, 2023-10-01, 2024-12-31
+```
+
+---
+
+#### **6. Модели данных для DDS**
+
+**Data Vault 2.0**:
+
+```mermaid
+erDiagram
+ hub_customer ||--o{ sat_customer_info : "хаб"
+ hub_order ||--o{ sat_order_details : "хаб"
+ hub_product ||--o{ sat_product_info : "хаб"
+
+ hub_customer ||--o{ link_order_customer : "участвует"
+ hub_order ||--o{ link_order_customer : "включает"
+
+ hub_order ||--o{ link_order_product : "содержит"
+ hub_product ||--o{ link_order_product : "входит в"
+
+ hub_customer {
+ string customer_hash_key PK
+ string customer_id BK
+ datetime load_dttm
+ }
+
+ sat_customer_info {
+ string customer_hash_key PK,FK
+ datetime load_dttm PK
+ string customer_name
+ string email
+ string phone
+ }
+
+ link_order_customer {
+ string order_customer_hash_key PK
+ string order_hash_key FK
+ string customer_hash_key FK
+ datetime load_dttm
+ }
+```
+
+**Сравнение моделей**:
+
+```mermaid
+quadrantChart
+ title Сравнение моделей данных по сложности и гибкости
+ x-axis "Низкая сложность" --> "Высокая сложность"
+ y-axis "Низкая гибкость" --> "Высокая гибкость"
+ "Звезда": [0.2, 0.3]
+ "3NF": [0.6, 0.5]
+ "Data Vault": [0.8, 0.8]
+ "Anchor": [0.9, 0.9]
+```
+
+---
+
+#### **7. Практикум: собираем витрину**
+
+```mermaid
+flowchart TD
+ A[Источники] --> STG
+ STG[STG: сырые заказы, товары] --> ODS
+ ODS[ODS: очищенные данные] --> DDS
+
+ subgraph DDS[DDS: интегрированная модель]
+ B[dim_customer
SCD Type 2]
+ C[dim_product]
+ D[dim_date]
+ E[fact_sales]
+ end
+
+ DDS --> F{Сборка витрины}
+
+ F --> G[mart_daily_sales]
+ F --> H[mart_customer_lifetime]
+
+ G --> I[Дашборд продаж]
+ H --> J[Отчет по клиентам]
+```
+
+**Пример SQL для витрины**:
+```sql
+-- Витрина ежедневных продаж
+CREATE TABLE mart_daily_sales AS
+SELECT
+ d.date,
+ p.product_name,
+ c.customer_segment,
+ SUM(f.quantity) as total_quantity,
+ SUM(f.amount) as total_amount
+FROM fact_sales f
+JOIN dim_date d ON f.date_key = d.date_key
+JOIN dim_product p ON f.product_key = p.product_key
+JOIN dim_customer c ON f.customer_key = c.customer_key
+WHERE c.is_current = true
+GROUP BY d.date, p.product_name, c.customer_segment;
+```
+
+---
+
+#### **8. Выбор модели: дерево решений**
+
+```mermaid
+flowchart TD
+ Start[Выбор модели DDS] --> Q1{Количество источников?}
+
+ Q1 -->|Один источник| Q2{Требования к истории?}
+ Q1 -->|Несколько источников| Q3{Частота изменений схемы?}
+
+ Q2 -->|Простая история| Model1[Звезда/Снежинка]
+ Q2 -->|Полная аудируемая история| Model2[Data Vault]
+
+ Q3 -->|Редко| Model3[3NF]
+ Q3 -->|Часто| Model4[Data Vault]
+
+ Model1 --> Final[Рекомендация]
+ Model2 --> Final
+ Model3 --> Final
+ Model4 --> Final
+```
+
+---
+
+#### **9. Эксплуатация: качество и эволюция**
+
+```mermaid
+graph TB
+ A[Данные] --> B{Контроль качества}
+
+ B --> C[Проверка уникальности]
+ B --> D[Проверка полноты]
+ B --> E[Валидация форматов]
+ B --> F[Свежесть данных]
+
+ C --> G[✅ Успех]
+ D --> G
+ E --> G
+ F --> G
+
+ C --> H[❌ Ошибка]
+ D --> H
+ E --> H
+ F --> H
+
+ G --> I[Загрузка в слой]
+ H --> J[Оповещение
и остановка]
+```
+
+---
+
+#### **10. Заключение: главное — понимать "почему"**
+
+```mermaid
+mindmap
+ root((Хранилище данных))
+ Архитектура
+ Слои STG→ODS→DDS→DM
+ Разделение ответственности
+ Управляемость изменений
+ Модели данных
+ 3NF: Целостность
+ Data Vault: Масштабируемость
+ Звезда: Производительность
+ Ключевые понятия
+ Факты и измерения
+ Суррогатные ключи
+ SCD Type 2
+ Практика
+ Понимать бизнес-задачу
+ Выбирать подходящую модель
+ Строить итеративно
+```
+
+---
+
+Такой визуализированный план поможет студентам:
+1. **Быстрее понять сложные концепции** через схемы
+2. **Увидеть связи между разделами** через общую навигацию
+3. **Запомнить ключевые отличия** моделей через сравнительные диаграммы
+4. **Поножить практическое применение** через конкретные примеры
+
+Все схемы готовы к использованию в статье и будут отлично работать в Markdown-редакторах с поддержкой Mermaid.
\ No newline at end of file