Changes between Version 19 and Version 20 of normalizacija


Ignore:
Timestamp:
05/06/25 11:38:03 (11 days ago)
Author:
213209
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • normalizacija

    v19 v20  
    2626* location (Кај ентитетот tables) -> tableLocation
    2727
    28 === 2. Резервации
    29 || reservation_id || user_id || table_id || restaurant_id || reservation_date || time_from || time_to || number_of_people ||
    30 || 1              || 101     || 11       || 201           || 2025-05-01       || 18:00     || 20:00   || 4                ||
    31 || 2              || 102     || 12       || 202           || 2025-05-02       || 19:30     || 21:00   || 2                ||
    32 || 3              || 103     || 13       || 203           || 2025-05-03       || 17:00     || 18:30   || 3                ||
     28=== 2. Резервации со корисници и маси
     29|| reservation_id || user_id || table_id ||  reservation_date || check_in_from || check_in_to || number_of_people || restaurant_id ||
     30|| 1              || 101     || 11       ||  2025-05-01       || 18:00     || 20:00   || 4                ||201           ||
     31|| 2              || 102     || 12       ||  2025-05-02       || 19:30     || 21:00   || 2                ||202           ||
     32|| 3              || 103     || 13       ||  2025-05-03       || 17:00     || 18:30   || 3                ||203           ||
    3333
    3434Во оваа релација, restaurant_id се повторува иако е функционски зависен од table_id, бидејќи секоја маса припаѓа на еден ресторан.
     
    9191* restaurant_id може да се добие преку JOIN со Table.
    9292
    93 === 3. Историја на резервации
    94 || reservation_history_id || user_id || table_id || restaurant_id || reservation_date || time_from || time_to || number_of_people ||
    95 || 1              || 101     || 11       || 201           || 2025-05-01       || 18:00     || 20:00   || 4                ||
    96 || 2              || 102     || 12       || 202           || 2025-05-02       || 19:30     || 21:00   || 2                ||
    97 || 3              || 103     || 13       || 203           || 2025-05-03       || 17:00     || 18:30   || 3                ||
     93=== 3. Резервации со корисници и маси
     94||reservation_id || reservation_date || time_from || time_to || number_of_people || user_id || user_name || table_id || table_number || restaurant_id || restaurant_name || restaurant_location
     95||1 || 2025-05-01       ||18:00 ||20:00 ||4     ||101   ||Ana   ||11    ||1     ||201   ||Gino’s        ||Skopje, Centar||
     96||2     ||2025-05-02    ||19:30 ||21:00 ||2     ||102   ||Marko ||12    ||2     ||202   ||Sushico       ||Skopje, Karposh||
     97||3     ||2025-05-03    ||17:00 ||18:30 ||3     ||103   ||Elena ||13    ||3     ||203   ||Bella Italia  ||Skopje, Aerodrom||
    9898
    99 Во оваа релација, restaurant_id се повторува иако е функционски зависен од table_id, бидејќи секоја маса припаѓа на еден ресторан.
    100 
    101 ----
    102 
    103 '''Функциски зависности:'''
    104 * reservation_history_id → user_id, table_id, restaurant_id, date, time, duration
    105 
    106 * table_id → restaurant_id
    107 
    108 '''Анализа на зависности:'''
    109 Само лево (детерминанти):
    110 * reservation_history_id
    111 
    112 * table_id
    113 
    114 Само десно (зависни атрибути):
    115 * restaurant_id, user_id, date, time, duration
    116 
    117 ----
    118 
    119 Канонична покривка:
    120 Од reservation_history_id може да се добијат сите атрибути, затоа е кандидат клуч.
    121 
    122 ----
    123 
    124 '''Анализа на нормализација:'''
    125 
    126 Прва нормална форма (1НФ):
    127 
    128 Сите атрибути се атомски, нема листи или вложени структури. '''Задоволена.'''
    129 
    130 Втора нормална форма (2НФ):
    131 
    132 Клучот е едноставен (reservation_history_id), па нема парцијални зависности. '''Задоволена.'''
    133 
    134 Трета нормална форма (3НФ):
    135 
    136 Се појавува транзитивна зависност:
    137 
    138 reservation_history_id → table_id → restaurant_id
    139 
    140 Значи, restaurant_id е транзитивно зависен од примарниот клуч (reservation_history_id), и '''релацијата не е во 3НФ.'''
    141 
    142 ----Декомпозиција:
    143 R1: Reservation (без дупликација на restaurant_id)
    144 
    145 * R1(reservation_history_id, user_id, table_id, date, time, duration)
    146 
    147 R2: Table (со поврзаност со ресторан)
    148 
    149 * R2(table_id, restaurant_id)
    150 
    151 ----
    152 
    153 '''Финална анализа'''
    154 * Нема дуплицирање.
    155 
    156 * restaurant_id може да се добие преку JOIN со Table.
     99R = {
     100  reservation_id, reservation_date, time_from, time_to, number_of_people,
     101  user_id, user_name,
     102  table_id, table_number,
     103  restaurant_id, restaurant_name, restaurant_location
     104}