Changes between Version 4 and Version 5 of RelationalDesign


Ignore:
Timestamp:
09/13/26 21:31:46 (2 weeks ago)
Author:
223162
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • RelationalDesign

    v4 v5  
    11= Логички и физички дизајн - Креирање база податоци (со SQL DDL)
    2 == Ознаки
     2
     3== Фаза 2 - DDL, податоци, погледи
     4
     5Оваа фаза почнувате да ја работите откако финалниот ЕР дијаграм ќе ви биде одобрен и од асистент и од професор.
     6
     7=== 2А: DDL за изработениот ЕР дијаграм
     8
     9Генериран е DDL за изработениот ЕР дијаграм. Задолжително се проверени сите податочни типови, ограничувања и клучеви.
     10
     11Додадени се дополнителни ограничувања, проверки и дефолтни вредности секаде каде што е потребно, со цел да се обезбеди интегритет и конзистентност на податоците.
     12
     13=== Ознаки
     14
    315* Со * се означени надворешни клучеви
    416* Со !** се означени втори надворешни клучеви
    … …  
    618* Примарните клучеви се подвлечени и болдирани
    719
    8 == Табели
    9 === Ентитети
     20=== Табели
     21
     22==== Ентитети
    1023
    1124ADMIN(admin_id, admin_name, admin_email, admin_password)
    … …  
    3447
    3548REVIEW(review_id, customer_id*, review_text, rating)
     49
    3650* референцира до CUSTOMER (customer_id)
    3751
    3852RESTAURANT(rest_id, rest_name, rest_location, rest_website, rest_phone, rest_email, company_id*)
     53
    3954* референцира до COMPANY (company_id)
    4055
    … …  
    4257
    4358DRIVER(driver_id, first_name, last_name, phone, vehicle_info, company_id*)
     59
    4460* референцира до COMPANY (company_id)
    4561
    4662CONTRACT(contract_id, company_id*, contract_status_id**, contract_start_date, contract_end_date, contract_value)
    47 * референцира до COMPANY (company_id)
     63
     64* референцира до COMPANY (company_id)
     65
    4866** референцира до CONTRACT_STATUS (contract_status_id)
    4967
    5068CUSTOMER_LOYALTY(customer_loyalty_id, points, customer_id*, loyalty_tier_id**, customer_loyalty_status_id***)
     69
    5170* референцира до CUSTOMER (customer_id)
     71
    5272** референцира до LOYALTY_TIER (loyalty_tier_id)
     73
    5374*** референцира до CUSTOMER_LOYALTY_STATUS (customer_loyalty_status_id)
    5475
    5576MEAL(meal_id, meal_name, meal_price, meal_description, rest_id*, category_id**, lunch_time_id***)
     77
    5678* референцира до RESTAURANT (rest_id)
     79
    5780** референцира до CATEGORY (category_id)
     81
    5882*** референцира до LUNCH_TIME (lunch_time_id)
    5983
    6084DRINK(drink_id, drink_name, drink_price, rest_id*)
     85
    6186* референцира до RESTAURANT (rest_id)
    6287
    6388CUSTOMER_ORDER(order_id, order_date, total_amount, customer_id*, rest_id**, order_status_id***)
     89
    6490* референцира до CUSTOMER (customer_id)
     91
    6592** референцира до RESTAURANT (rest_id)
     93
    6694*** референцира до ORDER_STATUS (order_status_id)
    6795
    6896DELIVERY(delivery_id, delivered_at, order_id*, driver_id**, delivery_status_id***)
    69 * референцира до CUSTOMER_ORDER (order_id)
     97
     98* референцира до CUSTOMER_ORDER (order_id)
     99
    70100** референцира до DRIVER (driver_id)
     101
    71102*** референцира до DELIVERY_STATUS (delivery_status_id)
    72103
    73104ORDER_REVIEW(order_review_id, order_id*, review_id**)
    74 * референцира до CUSTOMER_ORDER (order_id)
     105
     106* референцира до CUSTOMER_ORDER (order_id)
     107
    75108** референцира до REVIEW (review_id)
    76109
    77110DELIVERY_REVIEW(delivery_review_id, delivery_id*, review_id**)
     111
    78112* референцира до DELIVERY (delivery_id)
     113
    79114** референцира до REVIEW (review_id)
    80115
    81116INVOICE(invoice_id, issued_at, amount, order_id*)
     117
    82118* референцира до CUSTOMER_ORDER (order_id)
    83119
    84120COMPANY_ORDER(company_order_id, company_id*, order_id**)
    85 * референцира до COMPANY (company_id)
     121
     122* референцира до COMPANY (company_id)
     123
    86124** референцира до CUSTOMER_ORDER (order_id)
    87125
    88 Релациски табели
     126==== Релациски табели
    89127
    90128MEAL_INGREDIENT(meal_id*, ingredient_id**)
     129
    91130* референцира до MEAL (meal_id)
     131
    92132** референцира до INGREDIENT (ingredient_id)
    93133
    94134ALERGEN_INGREDIENT(alergen_id*, ingredient_id**)
     135
    95136* референцира до ALERGEN (alergen_id)
     137
    96138** референцира до INGREDIENT (ingredient_id)
    97139
    98140ORDER_MEAL(order_id*, meal_id**, quantity)
    99 * референцира до CUSTOMER_ORDER (order_id)
     141
     142* референцира до CUSTOMER_ORDER (order_id)
     143
    100144** референцира до MEAL (meal_id)
    101145
    102146ORDER_DRINK(order_id*, drink_id**, quantity)
    103 * референцира до CUSTOMER_ORDER (order_id)
     147
     148* референцира до CUSTOMER_ORDER (order_id)
     149
    104150** референцира до DRINK (drink_id)
    105151
    106 == DDL скрипта за креирање на табелите
    107 === Скрипта за креирање на шема
    108 [attachment:schema_dll_final.sql​]
     152=== DDL скрипта за креирање на табелите
     153
     154Финалната DDL скрипта за креирање на шемата:
     155
     156* `schema_final.sql`
     157
     158// Простор за поставување на schema_final.sql
     159
     160'''
     161
     162=== 2Б: Полнење на табелите со податоци
     163
     164Потребно е табелите да бидат наполнети со реалистични податоци. Неколку табели содржат повеќе од еден милион редици, а големината на табелите е избрана така што го одразува реалното користење на апликацијата.
     165
     166Податоците се генерирани и увезени од реални податочни извори каде што е соодветно.
     167
     168==== Број на податоци по табела
     169
     170[cols="2,1", options="header"]
     171|===
     172| Табела | Број на записи
     173
     174| API_USER | 10,001,000
     175| CUSTOMER | 10,000,000
     176| CUSTOMER_LOYALTY | 10,000,000
     177| CUSTOMER_ORDER | 10,000,000
     178| REVIEW | 1,000,000
     179| ORDER_MEAL | 1,000,000
     180| ORDER_DRINK | 1,000,000
     181| API_ADMIN | 100
     182| DRIVER | 900
     183| COMPANY | 500
     184| COMPANY_ORDER | 1,000,000
     185| RESTAURANT | до 50
     186| CATEGORY | реални MealDB категории
     187| INGREDIENT | реален MealDB/CocktailDB сет на состојки
     188| ALERGEN | 14
     189| MEAL | 200
     190| DRINK | 100
     191| MEAL_INGREDIENT | зависно од увезените meal-ingredient врски
     192| ALERGEN_INGREDIENT | зависно од совпаѓањето според имињата на состојките
     193| CONTRACT | 200
     194| DELIVERY | 1,000,000
     195| LUNCH_TIME | 1,000
     196| INVOICE | 6,000
     197| ORDER_REVIEW | 700,000
     198| DELIVERY_REVIEW | 300,000
     199| CONTRACT_STATUS | 5
     200| CUSTOMER_LOYALTY_STATUS | 3
     201| DELIVERY_STATUS | 8
     202| ORDER_STATUS | 6
     203|===
     204
     205==== Извор на податоците
     206
     207* *RESTAURANT* – до 50 ресторани од реалниот dataset
     208* *CATEGORY* – реални категории од MealDB
     209* *INGREDIENT* – реален сет на состојки од MealDB/CocktailDB
     210* *MEAL_INGREDIENT* – врски добиени од увезените податоци за оброците и состојките
     211* *ALERGEN_INGREDIENT* – врски добиени преку совпаѓање на имињата на состојките
     212* Останатите податоци се генерирани со реалистична распределба според очекуваното користење на апликацијата.
     213
     214==== Скрипти за полнење на табелите
     215
     216* `data_final.sql`
     217
     218// Простор за поставување на data_final.sql
     219
     220=== 2В: Погледи (Views)
     221
     222Потребно е да се направат три погледи (views) по член, така што тие подоцна реално ќе бидат користени од апликацијата.
     223
     224==== View 1
     225
     226// Простор за првиот view
     227
     228## [source,sql]
     229
     230## -- SQL код за View 1
     231
     232==== View 2
     233
     234// Простор за вториот view
     235
     236## [source,sql]
     237
     238## -- SQL код за View 2
     239
     240==== View 3
     241
     242// Простор за третиот view
     243
     244## [source,sql]
     245
     246## -- SQL код за View 3
     247
     248=== Прилози
     249
     250* `schema_final.sql` – финална DDL скрипта
     251* `data_final.sql` – скрипта за полнење на табелите
     252* Скрипти за креирање на views