Changes between Version 41 and Version 42 of Normalization
- Timestamp:
- 08/25/25 20:16:31 (11 hours ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Normalization
v41 v42 6 6 2. Менаџирање на пакети и покривања (Package,Covers) 7 7 3. Менаџирање на осигурителни полиси (Policy,Auto_pol,Vehicle,Property_pol,Property,Travel_pol,Pol_osi) 8 8 4. Плаќања (Payment) 9 9 10 10 … … 12 12 Првична релација (не нормализирана): 13 13 14 R = {**d_embg** ,name,surname, birthdate, policy,kontakt, **c_id** ,email,pass,type }14 R = {**d_embg** ,name,surname, birthdate,kontakt, **c_id** ,email,pass,type } 15 15 16 ||= d_embg =||= name =||= surname =||= birthdate =||= policy =||=kontakt =||= c_id =||= email =||= password =||= type =||17 ||= 290699842 =||= Armend =||= Selmani =||= 19980629 =||= 1 =||= 072227959 =||= 1 =||= armend@outlook.com =||= as12345 =||= 0=||18 ||= 290699945 =||= Ardit =||= Ameti =||= 19990629 =||= 2 =||= 071234787 =||= 2 =||= ardit@gmail.com =||= aa9876 =||= 1=||16 ||= d_embg =||= name =||= surname =||= birthdate =||= kontakt =||= c_id =||= email =||= password =||= type =|| 17 ||= 290699842 =||= Armend =||= Selmani =||= 19980629 =||= 072227959 =||= 1 =||= armend@outlook.com =||= as12345 =||= false =|| 18 ||= 290699945 =||= Ardit =||= Ameti =||= 19990629 =||= 071234787 =||= 2 =||= ardit@gmail.com =||= aa9876 =||= true =|| 19 19 20 20 Функциски зависности: … … 24 24 **c_id** → email, pass, type 25 25 26 **d_embg** , policy → (никаква дополнителна зависност) 27 (Комбинацијата d_embg и policy формира композитен примарен клуч, бидејќи еден клиент може да има повеќе полиси.) 26 **d_embg** → **c_id** (еден осигуреник има една сметка во системот) 28 27 29 28 Декомпозиција во 3НФ: … … 33 32 Примарен клуч: **d_embg** 34 33 35 R2(Customer Account) = { **c_id** ,email,pass,type } (Опис: Информации за кориснички профил и пристап до системот.) 34 Странски клуч: c_id → Customer(c_id) 35 36 R2(Customer Account) = { **c_id** ,name,email,pass,type } (Опис: Информации за кориснички профил и пристап до системот.) 36 37 37 38 Примарен клуч: **c_id** 38 39 39 R3( Customer Policy) = { **d_embg** , policy } (Опис: Врска помеѓу клиент и полиса (еден клиент може да има повеќе полиси).)40 R3(Pol_dog Customer) = { d_embg , c_id } (Опис: Врска помеѓу клиент и корисник (еден клиент може да има еден корисничк.) 40 41 41 Примарен клуч: (d_embg, policy) (композитен клуч)42 Примарен клуч: (d_embg,c_id) (композитен клуч) 42 43 43 44 … … 45 46 Првична релација: 46 47 47 R = { **code** ,title, type_pol, total, valu e, **cov_id** , cov_amount, cov_type }48 R = { **code** ,title, type_pol, total, valute, **cov_id** , cov_amount, cov_type } 48 49 49 50 ||= code =||= title =||= type_pol =||= total =||= value =||= cov_id =||= cov_amount =||= cov_type =|| 50 ||= 1 =||= Premium Package =||= 1 =||= 20000 =||= Den =||= 1 =||= 2000 =||= Personal Accident Insurance=||51 ||= 2 =||= Basic Package =||= 1 =||= 10000 =||= Den =||= 2 =||= 4000 =||= Medical Expenses Cover=||51 ||= 1 =||= Auto Kasko =||= Auto =||= 15000 =||= MKD =||= 1 =||= 10000 =||= Штета од сообраќајка =|| 52 ||= 2 =||= Travel Basic =||= Travel =||= 3000 =||= MKD =||= 2 =||= 2000 =||= Медицински трошоци во странство =|| 52 53 53 54 Функциски зависности: … … 55 56 **code** → title,type_pol,total,value 56 57 57 **cov_id** → cov_amount,cov_type 58 **cov_id** → cov_amount,cov_type, 58 59 59 60 Декомпозиција во 3НФ: 60 61 61 R1(Package) = { **code** ,title,type_pol,total,valu e } (Опис: Информации за осигурителен пакет.)62 R1(Package) = { **code** ,title,type_pol,total,valute } (Опис: Информации за осигурителен пакет.) 62 63 63 64 Примарен клуч: **code** 64 65 65 R2(Coverage) = { **cov_id** ,cov_amount,cov_type } (Опис: Детали за покривање во осигурување.)66 R2(Coverage) = { **cov_id** ,cov_amount,cov_type,package_code } (Опис: Детали за покривање во осигурување.) 66 67 67 68 Примарен клуч: **cov_id** 68 69 69 R3(Package Coverage) = { **code** , **cov_id** } (Опис: Врска меѓу пакети и нивните покривања (многу-на-многу).)70 Странски клуч: package_code → Package(code) 70 71 71 Примарен клуч: (code, cov_id) (композитен клуч, за релација многу-на-многу) 72 R3(Package Coverage) = { **code** , **cov_id** } (Опис: Врска меѓу пакети и нивните покривања (еден-на-многу).) 73 74 Примарен клуч: (code, cov_id) (композитен клуч, релација еден-на-многу) 72 75 73 76 … … 78 81 79 82 ||= p_id =||= s_date =||= e_date =||= a_id =||= pol_id =||= v_id =||= marka =||= model =||= license_plate =||= type =||= pr_id =||= pol_id =||= prop_id =||= address =||= floor =||= year_build =||= security =||= tr_id =||= pol_id =||= o_embg =||= name =||= surname =||= birthdate =||= kontakt =|| 80 ||= 1 =||= 2025-01-15 =||= 2025-01-25 =||= 1 =||= 1 =||= 1 =||= Audi =||= A6 =||= SK 1234AB =||= car =||= 1 =||= 1 =||= 1 =||= Skopje, Center, Blvd =||= 3 =||= 2015-03-12 =||= 1=||= 1 =||= 1 =||= 210699945 =||= Ardit =||= Ameti =||= 19990621 =||= 070112546 =||81 ||= 2 =||= 2025-02-04 =||= 2025-02-14 =||= 2 =||= 2 =||= 2 =||= BMW =||= X5 =||= KU 5689AD =||= SUV =||= 2 =||= 2 =||= 2 =||= Kumanovo, Center, Blvd =||= 2 =||= 2001-02-05 =||= 0=||= 2 =||= 2 =||= 290699842 =||= Armend =||= Selmani =||= 19980629 =||= 071258963 =||83 ||= 1 =||= 2025-01-15 =||= 2025-01-25 =||= 1 =||= 1 =||= 1 =||= Audi =||= A6 =||= SK-1234-AB =||= Hatchback =||= 1 =||= 1 =||= 1 =||= Skopje, Center, Blvd =||= 3 =||= 2015-03-12 =||= true =||= 1 =||= 1 =||= 210699945 =||= Ardit =||= Ameti =||= 19990621 =||= 070112546 =|| 84 ||= 2 =||= 2025-02-04 =||= 2025-02-14 =||= 2 =||= 2 =||= 2 =||= BMW =||= X5 =||= KU-5689-AD =||= SUV =||= 2 =||= 2 =||= 2 =||= Kumanovo, Center, Blvd =||= 2 =||= 2001-02-05 =||= false =||= 2 =||= 2 =||= 290699842 =||= Armend =||= Selmani =||= 19980629 =||= 071258963 =|| 82 85 83 86 Функциски зависности: … … 99 102 Декомпозиција во 3НФ: 100 103 101 R1(Policy) = { **p_id** ,s_date,e_date } (Опис: Основни информации за полиса.)104 R1(Policy) = { **p_id** ,s_date,e_datepackage_code, d_embg } (Опис: Основни информации за полиса.) 102 105 103 106 Примарен клуч: **p_id** 104 107 105 R2(Auto Policy) = { **a_id** ,pol_id } (Опис: Врска меѓу авто-полиса и полиса.) 108 Странски клучеви: package_code → Package(code), d_embg → Pol_dog(d_embg) 109 110 R2(Auto Policy) = { **a_id** ,pol_id,v_id } (Опис: Врска меѓу авто-полиса и полиса.) 106 111 107 112 Примарен клуч: **a_id** 113 114 Странски клучеви: pol_id → Policy(p_id), v_id → Vehicle(v_id) 108 115 109 116 R3(Vehicle) = { **v_id** ,marka,model,license_plate,type } (Опис: Детали за возила кои се осигурени.) … … 111 118 Примарен клуч: **v_id** 112 119 113 R4(Property Policy) = { **pr_id** ,pol_id } (Опис: Врска меѓу имот и полиса.)120 R4(Property Policy) = { **pr_id** ,pol_id, prop_id } (Опис: Врска меѓу имот и полиса.) 114 121 115 122 Примарен клуч: **pr_id** 123 124 Странски клучеви: pol_id → Policy(p_id), prop_id → Property(prop_id) 116 125 117 126 R5(Property) = { **prop_id** ,address,floor,year_build,security } (Опис: Детали за осигурен недвижен имот.) … … 119 128 Примарен клуч: **prop_id** 120 129 121 R6(Travel Policy) = { **tr_id** ,pol_id } (Опис: Врска меѓу патување и полиса.)130 R6(Travel Policy) = { **tr_id** ,pol_id,o_embg} (Опис: Врска меѓу патување и полиса.) 122 131 123 132 Примарен клуч: **tr_id** 133 134 Странски клучеви: pol_id → Policy(p_id), o_embg → Pol_osi(o_embg) 124 135 125 136 R7(Policy Owner) = { **o_embg** ,name,surname,birthdate,kontakt } (Опис: Сопственици на полиси – лични податоци.) … … 128 139 129 140 141 === 4.Плаќања (Payment) 142 Првична релација: 143 144 R = {visa_number, p_date, p_amount, policy_id } 145 146 ||= visa_number =||= p_date =||= p_amount =||= policy_id =|| 147 ||= 4111111111111111 =||= 2025-01-05 =||= 15000 =||= 1 =|| 148 ||= 4222222222222222 =||= 2025-02-02 =||= 3000 =||= 2 =|| 149 150 Функциски зависности: 151 152 **payment_num** → visa_number, p_date, p_amount, pol_id 153 154 Декомпозиција во 3НФ: 155 156 R1(Payment)={**payment_num**, visa_number, p_date, p_amount, pol_id} (Опис: Плаќања) 157 158 Примарен клуч: **payment_num** 159 160 Странски клучеви: pol_id → Policy(p_id) 130 161 131 162