Changes between Version 4 and Version 5 of Normalization


Ignore:
Timestamp:
12/23/25 18:07:35 (10 days ago)
Author:
211101
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Normalization

    v4 v5  
    55Форма во кој има една табела во која се внесени сите ентитети и нивни релации помеѓу себе, без никакви правила
    66
    7 ||= user_id =||= user_name =||= email =||= password =||= transaction_account_id =||= account_name =||= balance =||= transaction_id =||= transaction_name =||= amount =||= net_amount =||= date =||= transaction_breakdown_id =||= spent_amount =||= earned_amount =||= tag_id =||= tag_name =||
    8 || 1|| james || james@fein.com || $2y$10$rcqLdIzMcYfmGFWCP3kix.JNTOzjIp0xVehMd11wzaanAXUDFLQMu || 1, 2 || credit card, cash || .+5000, +1200 || 1, 2 || electricity bill, burger || -1800, -800 || -1800, -200 || 18:03:25 Sep 26, 2025, 12:43:00 Sep 26, 2025 || 1,2 || -1800, -800 || 0, +600 || 1, 2 || bills, food ||
    9 || 2|| anita || anita@fein.com || $2y$10$CsSsqA.FFhBR/TWCZCUWYOPxYA.HmGb7ULQPgJGhv3vQS2xRqluYm || 1 || debit card || +3200 || 1 || nail polish || -200 || -200 || 19:31:32 Sep 12 2025 || 1 || -200 || 0 || 1 || beauty ||
     7||= //user_id =||= //user_name =||= //email =||= //password =||= //transaction_account_id =||= //account_name =||= //balance =||= //transaction_id =||= //transaction_name =||= //amount =||= //net_amount =||= //date =||= //transaction_breakdown_id =||= //spent_amount =||= //earned_amount =||= //tag_id =||= //tag_name =||
     8|| 1|| james || james@fein.com || $2y$10$rcqLdIzMcYfmGFWCP3kix.JNTOzjIp0xVehMd11wzaanAXUDFLQMu || 1, 2 || credit card, cash || 5000, 1200 || 1, 2 || electricity bill, burger || -1800, -800 || -1800, -200 || 18:03:25 Sep 26, 2025, 12:43:00 Sep 26, 2025 || 1,2 || -1800, -800 || 0, 600 || 1, 2 || bills, food ||
     9|| 2|| anita || anita@fein.com || $2y$10$CsSsqA.FFhBR/TWCZCUWYOPxYA.HmGb7ULQPgJGhv3vQS2xRqluYm || 1 || debit card || 3200 || 1 || nail polish || -200 || -200 || 19:31:32 Sep 12 2025 || 1 || -200 || 0 || 1 || beauty ||
    1010
    1111
     
    1616- Во ќелиите на секоја колона има по една вредност
    1717- Не се мешаат типови на податоци во една ќелија
    18 - Табелата има примарен клуч(user_id)
     18- Табелата има примарен композитен клуч(user_id, transaction_id, transaction_account_id, transaction_breakdown_id)
    1919- Нема повторувачки групи, сите што биле во денормализираната форма сега се во посебен ред
    2020 
    21 ||= user_id =||= user_name =||= email =||= password =||= transaction_account_id =||= account_name =||= balance =||= transaction_id =||= transaction_name =||= amount =||= net_amount =||= date =||= transaction_breakdown_id =||= spent_amount =||= earned_amount =||= tag_id =||= tag_name =||
    22 || 1|| james || james@fein.com || $2y$10$rcqLdIzMcYfmGFWCP3kix.JNTOzjIp0xVehMd11wzaanAXUDFLQMu || 1|| credit card || +5000|| 1|| electricity bill || -1800|| -1800|| 18:03:25 Sep 26, 2025 || 1|| -1800|| 0|| 1|| bills ||
    23 || 1|| james || james@fein.com || $2y$10$rcqLdIzMcYfmGFWCP3kix.JNTOzjIp0xVehMd11wzaanAXUDFLQMu || 2|| cash || +1200|| 2|| burger || -800|| -200|| 12:43:00 Sep 26, 2025 || 2|| -800|| +600|| 2|| food ||
    24 || 2|| anita || anita@fein.com || $2y$10$CsSsqA.FFhBR/TWCZCUWYOPxYA.HmGb7ULQPgJGhv3vQS2xRqluYm || 3|| debit card || +3200|| 3|| nail polish || -200|| -200|| 19:31:32 Sep 12 2025 || 3|| -200|| 0|| 3|| beauty ||
     21||= //user_id =||= //user_name =||= //email =||= //password =||= //transaction_account_id =||= //account_name =||= //balance =||= //transaction_id =||= //transaction_name =||= //amount =||= //net_amount =||= //date =||= //transaction_breakdown_id =||= //spent_amount =||= //earned_amount =||= //tag_id =||= //tag_name =||
     22|| 1|| james || james@fein.com || $2y$10$rcqLdIzMcYfmGFWCP3kix.JNTOzjIp0xVehMd11wzaanAXUDFLQMu || 1|| credit card || 5000|| 1|| electricity bill || -1800|| -1800|| 18:03:25 Sep 26, 2025 || 1|| -1800|| 0|| 1|| bills ||
     23|| 1|| james || james@fein.com || $2y$10$rcqLdIzMcYfmGFWCP3kix.JNTOzjIp0xVehMd11wzaanAXUDFLQMu || 2|| cash || 1200|| 2|| burger || -800|| -200|| 12:43:00 Sep 26, 2025 || 2|| -800|| 600|| 2|| food ||
     24|| 2|| anita || anita@fein.com || $2y$10$CsSsqA.FFhBR/TWCZCUWYOPxYA.HmGb7ULQPgJGhv3vQS2xRqluYm || 3|| debit card || 3200|| 3|| nail polish || -200|| -200|| 19:31:32 Sep 12 2025 || 3|| -200|| 0|| 3|| beauty ||
    2525
    2626
    2727== Втора нормална форма
    2828
    29 Форма во која секој атрибут добива своја табела и релациите помеѓу нив се претставени со надворешни клучеви, притоа следејќи го ова правило:
     29Форма која го следи ова правило:
    3030- Секој од атрибутите кој не е клуч, зависи од целосниот примарен клуч - со тоа се спречуваат аномалии на внесување, бришење и менување
    3131
     32==== 1
     33
     34{ user_id } → {user_name, email, password}
     35
    3236||= USER =||=  =||=  =||=  =||
    33 || user_id || user_name || email || password ||
     37||= //user_id =||= //user_name =||= //email =||= //password =||
    3438|| 1 || james || james@fein.com || $2y$10$rcqLdIzMcYfmGFWCP3kix.JNTOzjIp0xVehMd11wzaanAXUDFLQMu ||
    3539|| 2 || anita || anita@fein.com || $2y$10$CsSsqA.FFhBR/TWCZCUWYOPxYA.HmGb7ULQPgJGhv3vQS2xRqluYm ||
    36 //
    37 ||= TRANSACTION_ACCOUNT =||=  =||=  =||=  =||
    38 || transaction_account_id || account_name || balance || user_id ||
    39 || 1 || credit card || +5000 || 1 ||
    40 || 2 || cash || +1200 || 1 ||
    41 || 3 || debit card || +3200 || 2 ||
    42 ||  ||  ||  || FK ||
    43 //
    44 ||= TRANSACTION =||=  =||=  =||=  =||=  =||
    45 || transaction_id || transaction_name || amount || net_amount || date ||
    46 || 1 || electricity bill || -1800 || -1800 || 18:03:25 Sep 26, 2025 ||
    47 || 2 || burger || -800 || -200 || 12:43:00 Sep 26, 2025 ||
    48 || 3 || nail polish || -200 || -200 || 19:31:32 Sep 12 2025 ||
    49 //
     40
     41==== 2
     42
     43{transaction_account_id} → {account_name, balance, user_id}
     44
     45{transaction_account_id} → {user_id} → {user_name, email}
     46
     47||= TRANSACTION_ACCOUNT_WITH_USER_DATA =||=  =||=  =||=  =||=  =||=  =||
     48||= //transaction_account_id =||= //account_name =||= //balance =||= //user_id =||= //user_name =||= //email ||
     49|| 1 || credit card || 5000 || 1 || james || james@fein.com ||
     50|| 2 || cash || 1200 || 1 || james || james@fein.com ||
     51|| 3 || debit card || 3200 || 2 || anita || anita@fein.com ||
     52
     53==== 3
     54
     55{transaction_id} → {transaction_name, amount, net_amount, date, tag_id}
     56
     57{transaction_id} → {tag_id} → {tag_name}
     58
     59||= TRANSACTION_WITH_TAG_NAME =||=  =||=  =||=  =||=  =||=  =||=  =||
     60||= //transaction_id =||= //transaction_name =||= //amount =||= //net_amount =||= //date =||= //tag_id =||= //tag_name =||
     61|| 1 || electricity bill || -1800 || -1800 || 18:03:25 Sep 26, 2025 || 1 || bills ||
     62|| 2 || burger || -800 || -200 || 12:43:00 Sep 26, 2025 || 2 || food ||
     63|| 3 || nail polish || -200 || -200 || 19:31:32 Sep 12 2025 || 3 || beauty ||
     64
     65==== 4
     66
     67{transaction_breakdown_id} → {transaction_id, transaction_account_id, spent_amount, earned_amount}
     68
    5069||= TRANSACTION_BREAKDOWN =||=  =||=  =||=  =||=  =||
    51 || transaction_breakdown_id || transaction_id || transaction_account_id || spent_amount || earned_amount ||
     70||= //transaction_breakdown_id =||= //transaction_id =||= //transaction_account_id =||= //spent_amount =||= //earned_amount =||
    5271|| 1 || 1 || 1 || -1800 || 0 ||
    53 || 2 || 2 || 2 || -800 || +600 ||
     72|| 2 || 2 || 2 || -800 || 600 ||
    5473|| 3 || 3 || 3 || -200 || 0 ||
    55 ||  || FK || FK ||  ||  ||
    56 //
    57 ||= TAG =||=  =||
    58 || tag_id || tag_name ||
    59 || 1 || bills ||
    60 || 2 || food ||
    61 || 3 || beauty ||
    62 //
    63 ||= TAG_ASSIGNED_TO_TRANSACTION =||=  =||
    64 || transaction_id || tag_id ||
    65 || 1 || 1 ||
    66 || 2 || 2 ||
    67 || 3 || 3 ||
    68 || FK || FK ||
    6974
    7075