Changes between Version 5 and Version 6 of Normalization
- Timestamp:
- 09/29/25 19:10:54 (2 weeks ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Normalization
v5 v6 1 1 = Users 2 3 {{{USERS(id, name, email, password, is_admin)}}} 4 5 {{{id → name, email, password, is_admin}}} 2 6 3 7 - **1NF**: Табелата е во **1NF** бидејќи секое поле содржи атомски вредности и нема дупликат вредности. … … 7 11 = Clients 8 12 13 {{{CLIENTS(id, name, country, registration_number, tax_code, contact_person, phone_number, billing_address, shipping_address)}}} 14 15 {{{id → name, country, registration_number, tax_code, contact_person, phone_number, billing_address, shipping_address}}} 16 17 - **1NF**: Табелата {{{CLIENTS}}} е во **1NF** затоа што сите атрибути содржат атомски вредности и нема дупликат вредности. Адресата за наплата и испорака, и сите други атрибути се одвоени и не се повторуваат. 18 - **2NF**: Табелата е во **2NF** затоа што сите атрибути зависат целосно од примарниот клуч {{{id}}}. Не постојат делумни релации, бидејќи сите атрибути се однесуваат на целиот ентитет (клиент). 19 - **BCNF**: Табелата е во **BCNF** затоа што секоја релација е целосно зависна од примарниот клуч и нема транзитивни релации. Нема не-клучни атрибути кои зависат од друг не-клучен атрибут. 20 9 21 Во новата база на податоци, табелата {{{CLIENTS}}} ги заменува старите табели {{{BUYER}}} и {{{RECEIVER}}}. Оваа промена беше направена за да се поедностави структурата на базата и да се избегне двојна евиденција за истите ентитети. Наместо две посебни табели (една за купувачи и друга за примачи), сега и купувачите и примачите се чуваат во една табела, што е поефикасно и попрактично за управување со податоците. 10 22 … … 13 25 {{{CLIENTS}}} сега ја обединува оваа функционалност, бидејќи и купувачот и примачот може да бидат идентификувани како клиенти. Табелата {{{CLIENTS}}} вклучува целокупната информација за компаниите кои учествуваат во процесот на продажба и испорака, вклучувајќи и {{{billing_address}}} и {{{shipping_address}}}, кои се претходно разликувани помеѓу купувачот и примачот. 14 26 15 - **1NF**: Табелата {{{CLIENTS}}} е во **1NF** затоа што сите атрибути содржат атомски вредности и нема дупликат вредности. Адресата за наплата и испорака, и сите други атрибути се одвоени и не се повторуваат. 16 - **2NF**: Табелата е во **2NF** затоа што сите атрибути зависат целосно од примарниот клуч {{{id}}}. Не постојат делумни релации, бидејќи сите атрибути се однесуваат на целиот ентитет (клиент). 17 - **BCNF**: Табелата е во **BCNF** затоа што секоја релација е целосно зависна од примарниот клуч и нема транзитивни релации. Нема не-клучни атрибути кои зависат од друг не-клучен атрибут. 27 = Transports 18 28 19 = Transports 29 {{{PRODUCERS(id, name, address, country, phone_number, email)}}} 30 31 {{{id → name, address, country, phone_number, email}}} 20 32 21 33 - **1NF**: Табелата е во **1NF** бидејќи секое поле содржи атомски вредности и нема дупликат вредности. … … 25 37 = Producers 26 38 39 {{{PRODUCTS(id, name, description, hs_code, price, producer_id* (PRODUCERS), unit_of_measure)}}} 40 41 {{{id → name, description, hs_code, price, producer_id, unit_of_measure}}} 42 27 43 - **1NF**: Табелата е во **1NF** бидејќи секое поле содржи атомски вредности и нема дупликат вредности. 28 44 - **2NF**: Табелата е во **2NF** бидејќи сите атрибути зависат целосно од примарниот клуч. Нема делумни релации. … … 31 47 = Products 32 48 49 {{{BATCHES(id, product_id* (PRODUCTS), batch_code, production_date, expiration_date, net_weight, gross_weight, units_per_batch)}}} 50 51 {{{id → product_id, batch_code, production_date, expiration_date, net_weight, gross_weight, units_per_batch}}} 52 33 53 - **1NF**: Табелата е во **1NF** бидејќи секое поле содржи атомски вредности и нема дупликат вредности. 34 - **2NF**: Табелата е во **2NF** бидејќи сите атрибути зависат целосно од примарниот клуч. Надворешенклуч {{{producer_id}}} не создава делумни релации.54 - **2NF**: Табелата е во **2NF** бидејќи сите атрибути зависат целосно од примарниот клуч. Странскиот клуч {{{producer_id}}} не создава делумни релации. 35 55 - **BCNF**: Табелата е во **BCNF** бидејќи сите атрибути зависат целосно од примарниот клуч и нема транзитивни релации. 36 56 37 57 = Batches 38 58 59 {{{ORDERS(id, date, status, estimated_delivery_date, buyer_id* (CLIENTS), receiver_id* (CLIENTS), transport_id* (TRANSPORTS), payment_id* (PAYMENTS))}}} 60 61 {{{id → date, status, estimated_delivery_date, buyer_id, receiver_id, transport_id, payment_id}}} 62 63 - **1NF**: Табелата {{{BATCHES}}} е во **1NF** бидејќи секое поле содржи атомски вредности. Нема дупликат вредности или структурни комплификации. Секој ред претставува една серија и не постојат атрибути кои содржат повеќе од една вредност. 64 - **2NF**: Табелата {{{BATCHES}}} е во **2NF** бидејќи сите атрибути зависат целосно од примарниот клуч {{{id}}}. Странскиот клуч {{{product_id}}} не создава делумни релации. Секој атрибут во табелата е директно поврзан со целокупниот идентитет на серијата, кој е идентификуван преку примарниот клуч. 65 - **BCNF**: Табелата {{{BATCHES}}} е во **BCNF** затоа што нема транзитивни релации. Сите атрибути зависат целосно од примарниот клуч {{{id}}} и нема релации каде не-клучни атрибути зависат од други не-клучни атрибути. 66 39 67 Во новата база на податоци, табелата {{{BATCHES}}} е додадена како нова структура која ги претставува сериите. Оваа табела е важна за управување со производите во контекст на сериите, нивните рокови на траење и друга релевантна продукциска информација. 40 68 41 - **1NF**: Табелата {{{BATCHES}}} е во **1NF** бидејќи секое поле содржи атомски вредности. Нема дупликат вредности или структурни комплификации. Секој ред претставува една серија и не постојат атрибути кои содржат повеќе од една вредност. 42 - **2NF**: Табелата {{{BATCHES}}} е во **2NF** бидејќи сите атрибути зависат целосно од примарниот клуч {{{id}}}. Надворешен клуч {{{product_id}}} не создава делумни релации. Секој атрибут во табелата е директно поврзан со целокупниот идентитет на серијата, кој е идентификуван преку примарниот клуч. 43 - **BCNF**: Табелата {{{BATCHES}}} е во **BCNF** затоа што нема транзитивни релации. Сите атрибути зависат целосно од примарниот клуч {{{id}}} и нема релации каде не-клучни атрибути зависат од други не-клучни атрибути. 69 = Orders 44 70 45 = Orders 71 {{{ORDER_BATCHES(id, order_id* (ORDERS), batch_id* (BATCHES), quantity, price_per_unit, total_price, created_at, updated_at)}}} 72 73 {{{id → order_id, batch_id, quantity, price_per_unit, total_price, created_at, updated_at}}} 46 74 47 75 - **1NF**: Табелата е во **1NF** бидејќи сите атрибути содржат атомски вредности и нема дупликат вредности. … … 51 79 = Order Batches 52 80 53 Табелата {{{ORDER_BATCHES}}} е нов додаток во базата кој овозможува детален и прецизен запис на сериите кои се дел од некоја нарачка. Ова ја заменува претходната едноставна табела {{{ORDER_PRODUCT}}} и го подобрува групирањето на производите. 81 {{{INVOICES(id, invoice_date, status, total_amount, order_id* (ORDERS))}}} 54 82 55 Од бизнис аспект, имавме потреба да го воведеме ова како пивот табела, бидејќи реално, се извезуваат серија од продукти, наместо само продукти. 83 {{{id → invoice_date, status, total_amount, order_id}}} 56 84 57 85 - **1NF**: Табелата е во **1NF** бидејќи сите атрибути содржат атомски вредности и нема дупликат вредности. … … 59 87 - **BCNF**: Табелата е во **BCNF** бидејќи нема транзитивни релации и сите релации се од примарните клучеви. 60 88 89 Табелата {{{ORDER_BATCHES}}} е нов додаток во базата кој овозможува детален и прецизен запис на сериите кои се дел од некоја нарачка. Ова ја заменува претходната едноставна табела {{{ORDER_PRODUCT}}} и го подобрува групирањето на производите. 90 61 91 = Invoices 62 92 93 {{{PACKING_LISTS(id, order_id* (ORDERS), packing_list_date, status)}}} 94 95 {{{id → order_id, packing_list_date, status}}} 96 63 97 - **1NF**: Табелата е во **1NF** бидејќи секое поле содржи атомски вредности и нема дупликат вредности. 64 - **2NF**: Табелата е во **2NF** бидејќи сите атрибути зависат целосно од примарниот клуч. Надворешенклуч {{{order_id}}} не создава делумни релации.98 - **2NF**: Табелата е во **2NF** бидејќи сите атрибути зависат целосно од примарниот клуч. Странскиот клуч {{{order_id}}} не создава делумни релации. 65 99 - **BCNF**: Табелата е во **BCNF** бидејќи сите атрибути зависат целосно од примарниот клуч и нема транзитивни релации. 66 100 67 101 = Packing Lists 68 102 69 Табелата {{{PACKING_LISTS}}} е нова структура во базата која има за цел да го подобри управувањето со логистиката на нарачките. Се користи за следење и управување со податоците кои се поврзани со пакувањето на производите во нарачките. 103 {{{PAYMENTS(id, order_id* (ORDERS), amount, currency, due_date, exchange_rate, payment_date, payment_method, payment_status)}}} 70 104 71 Заедно со фактурата, packing list е важен документ кој се бара при царинење на роба. 105 {{{id → order_id, amount, currency, due_date, exchange_rate, payment_date, payment_method, payment_status}}} 72 106 73 107 - **1NF**: Табелата е во **1NF** бидејќи секое поле содржи атомски вредности и нема дупликат вредности. 74 - **2NF**: Табелата е во **2NF** бидејќи сите атрибути зависат целосно од примарниот клуч. Надворешенклуч {{{order_id}}} не создава делумни релации.108 - **2NF**: Табелата е во **2NF** бидејќи сите атрибути зависат целосно од примарниот клуч. Странскиот клуч {{{order_id}}} не создава делумни релации. 75 109 - **BCNF**: Табелата е во **BCNF** бидејќи нема транзитивни релации и сите атрибути зависат целосно од примарниот клуч. 110 111 Табелата {{{PACKING_LISTS}}} е нова структура во базата која има за цел да го подобри управувањето со логистиката на нарачките. Се користи за следење и управување со податоците кои се поврзани со пакувањето на производите во нарачките. 76 112 77 113 = Payments 78 114 115 {{{TRANSPORTS(id, name, departure_point, arrival_point, estimated_departure_date, estimated_arrival_date, incoterm, insurance_conditions)}}} 116 117 {{{id → name, departure_point, arrival_point, estimated_departure_date, estimated_arrival_date, incoterm, insurance_conditions}}} 118 79 119 - **1NF**: Табелата е во **1NF** бидејќи сите атрибути содржат атомски вредности и нема дупликат вредности. 80 - **2NF**: Табелата е во **2NF** бидејќи сите атрибути зависат целосно од примарниот клуч. Надворешенклуч {{{order_id}}} не создава делумни релации.120 - **2NF**: Табелата е во **2NF** бидејќи сите атрибути зависат целосно од примарниот клуч. Странскиот клуч {{{order_id}}} не создава делумни релации. 81 121 - **BCNF**: Табелата е во **BCNF** бидејќи сите атрибути зависат целосно од примарниот клуч и нема транзитивни релации.