Changes between Version 9 and Version 10 of Normalization


Ignore:
Timestamp:
06/12/26 19:33:49 (2 days ago)
Author:
233062
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Normalization

    v9 v10  
    9191- `username` може да замени `user_id` (FD3: `username -> user_id`)
    9292
     93=== **Алтернативни кандидат клучеви** ===
     94
     95**Проверка на {email} како кандидат клуч:**
     96- {email}+ = email -> user_id (FD2) → {user_id, email}
     97- user_id -> username, password (FD1)
     98- {email}+ = {email, user_id, username, password}
     99- Не ги содржи training_id, asset_id, итн. → {email} САМ по себе НЕ е суперклуч за R.
     100
     101Бидејќи R содржи атрибути од повеќе независни групи (тренинг, средства, задачи...),
     102ниту еден атрибут или мала комбинација не може да биде суперклуч за целата R.
     103Затоа единствениот кандидат клуч за глобалната R е композитниот клуч наведен погоре.
     104
     105**Важно:** {email} и {username} се кандидат клучеви САМО во релацијата USERS по декомпозицијата,
     106не во глобалната R.
     107
    93108== **Проверка за 1НФ** ==
    94109
     
    142157Сите останати релации (`R1`–`R11`, `R13`–`R14`) имаат **прост примарен клуч**, па парцијална зависност е невозможна → автоматски во 2НФ ✓
    143158
    144 **Заклучок:** Сите релации се во **2НФ**. Декомпозиција не е потребна.
     159=== **2NF проверка по релации (по 1НФ декомпозицијата)** ===
     160
     161| Релација | PK | Дали PK е сложен? | Не-клучни атрибути | Парцијална зависност? | 2НФ? |
     162|----------|-----|------------------|-------------------|----------------------|------|
     163| USERS | user_id | Не | email, username, password | Невозможна | ✓ |
     164| TRAINING_USERS | training_user_id | Не | gender, age, weight | Невозможна | ✓ |
     165| TRAINING_SESSIONS | training_id | Не | user_id, date, type, duration, calories | Невозможна | ✓ |
     166| INVESTOR_USERS | investor_user_id | Не | (нема) | Невозможна | ✓ |
     167| ASSETS | asset_id | Не | user_id, ticker_symbol, buy_price, buy_date, quantity | Невозможна | ✓ |
     168| WEIGHT_USERS | weight_user_id | Не | weight, height, goal_weight, goal_calories | Невозможна | ✓ |
     169| DAILY_INTAKES | daily_intake_id | Не | user_id, date, calories | Невозможна | ✓ |
     170| DISCIPLINE_USERS | discipline_user_id | Не | (нема) | Невозможна | ✓ |
     171| CUSTOM_TRACKING_CATEGORIES | custom_tracking_id | Не | user_id, name | Невозможна | ✓ |
     172| TASKS | task_id | Не | discipline_user_id, custom_tracking_id, name, is_finished | Невозможна | ✓ |
     173| DAILY_COMPLETION | daily_completion_id | Не | user_id, date, procent | Невозможна | ✓ |
     174| TASK_DAILY_COMPLETION | {task_id, daily_completion_id} | **Да** | (нема) | Нема не-клучни атрибути | ✓ |
     175| FINANCE_USERS | finance_user_id | Не | spending_budget, saving_budget, investing_budget, donation_budget, credit | Невозможна | ✓ |
     176| INCOMES | income_id | Не | user_id, date, amount | Невозможна | ✓ |
     177
     178**Заклучок:** Сите 14 релации се во 2НФ. Декомпозиција не е потребна.
    145179
    146180== **Декомпозиција по 2НФ** ==