Այս երկու պարզ կանոնները կօգնեն ձեր տվյալների բազան նորմալացնելուն
Առաջին նորմալ ձեւը (1NF) սահմանում է կազմակերպված տվյալների բազայի հիմնական կանոնները.
- Վերացնել նույն աղյուսակից կրկնվող սյունակները:
- Ստեղծեք առանձին աղյուսակներ առնչվող տվյալների յուրաքանչյուր խմբի համար եւ նշեք յուրաքանչյուր տող եզակի սյունակով (առաջնային բանալին):
Ինչ է այս կանոնները նշանակում, երբ տվյալների բազայի գործնական դիզայնը դիտարկվում է: Դա իրականում շատ պարզ է:
1. Վերացնել Կրկնօրինակումը
Առաջին կանոնը թելադրում է, որ մենք չպետք է կրկնօրինակենք տվյալների նույն աղյուսակում: Տվյալների բազայի համայնքում այս հայեցակարգը կոչվում է սեղանի ատոմություն: Սույն կանոնին համապատասխանող սեղանները համարվում են ատոմային: Եկեք ուսումնասիրենք այս սկզբունքը դասական օրինակով. Այն աղյուսակը, որը ներառում է մարդկային ռեսուրսների տվյալների բազայում, որը պահպանում է ղեկավարին ենթակա հարաբերությունները: Մեր օրինակի համար մենք կկիրառենք այն գործարար կանոնը, որը յուրաքանչյուր կառավարիչ կարող է ունենալ մեկ կամ ավելի ենթականեր, իսկ յուրաքանչյուր ստորադաս կարող է ունենալ միայն մեկ կառավարիչ:
Ինտուիտիվորեն, այս տեղեկատվությունը դիտելու համար ցուցակ կամ աղյուսակներ ստեղծելու ժամանակ մենք կարող ենք ստեղծել սեղան, հետեւյալ դաշտերով.
- Մենեջեր
- Ենթաօրենսդրական1
- Բարձրանալ 2
- Ենթակա 3
- Ենթակայություն 4
Այնուամենայնիվ, հիշեք 1NF- ի կողմից կիրառվող առաջին կանոնը. Նույն աղյուսակում վերացնել կրկնվող սյունակները: Ակնհայտ է, որ ենթաօրենսդրական 1-ստորադաս սյունակները կրկնօրինակ են: Մի պահ պահեք եւ մտածեք այս սցենարով առաջացած խնդիրների մասին: Եթե ղեկավարը միայն մեկ ստորադաս է, Subordinate2-Subordinate4 սյունակները պարզապես մաքրված պահեստային տարածք են (թանկարժեք բազայի ապրանք): Ավելին, պատկերացրեք այն դեպքը, երբ մենեջերը արդեն ունի 4 ենթաօրենսդրություն, ինչ է տեղի ունենում, եթե նա մեկնում է մեկ այլ աշխատակցի: Ամբողջ սեղանի կառուցվածքը պահանջում է փոփոխություն:
Այս պահին երկրորդ փայլուն գաղափարը սովորաբար տեղի է ունենում տվյալների շտեմարանների նորարարությունների համար. Մենք չենք ուզում ունենալ մեկից ավելի սյուն եւ մենք ցանկանում ենք թույլ տալ տվյալների պահեստավորման ճկուն քանակություն: Եկեք փորձենք նման բան.
- Մենեջեր
- Ենթարկվում է
Իսկ Ենթակառուցվածքների դաշտը պարունակում էր բազմաթիվ գրառում «Մերի, Բիլլ, Ջո» ձեւով:
Այս լուծումը ավելի մոտ է, բայց նաեւ այն կարճ է: Ենթակառուցվածքների սյունակը դեռեւս կրկնօրինակ է եւ ոչ ատոմային: Ինչ է տեղի ունենում, երբ մենք պետք է ավելացնենք կամ հեռացնենք ստորադասը: Պետք է կարդանք եւ գրեք սեղանի ամբողջ բովանդակությունը: Դա այս իրավիճակում մեծ գործարք չէ, այլ այն, ինչի արդյունքում, եթե մեկ կառավարչի մոտ հարյուր աշխատող կա: Բացի այդ, դա բարդացնում է տվյալների շտեմարանի տվյալների հետագա հարցումների ընտրության գործընթացը:
Ահա սեղան, որը բավարարում է 1NF- ի առաջին կանոնը.
- Մենեջեր
- Բարձրաստիճան
Այս դեպքում, յուրաքանչյուր ստորադասը մեկ մուտքի ունի, սակայն ղեկավարները կարող են ունենալ բազմակի գրառում:
2. Սահմանել առաջնային բանալի
Այժմ, ինչ վերաբերում է երկրորդ կանոնին, ճանաչեք յուրաքանչյուր տող յուրահատուկ սյունակի կամ սյուների հավաքածուի ( առաջնային բանալին ): Դուք կարող եք դիտել վերեւում գտնվող աղյուսակը եւ առաջարկել ստորադաս սյունակի օգտագործումը որպես առաջնային բանալին: Իրականում ստորադաս սյունակը լավ առաջնահերթ է, քանի որ մեր բիզնեսի կանոնները ցույց են տվել, որ յուրաքանչյուր ստորադաս կարող է ունենալ միայն մեկ ղեկավար: Այնուամենայնիվ, այն տվյալները, որոնք մենք ընտրել ենք մեր սեղանին պահելու համար, դա դարձնում է ոչ պակաս, քան իդեալական լուծում: Ինչ է տեղի ունենում, եթե մենք վարձում ենք մեկ այլ աշխատող Ջիմ անունով: Ինչպես ենք մենք պահում իր մենեջեր-ստորադաս հարաբերությունները տվյալների բազայում:
Լավագույնն այն է, որ իրական առաջնային բանալին օգտագործեք իսկապես եզակի նույնացուցիչ (օրինակ, աշխատողի ID): Մեր վերջնական աղյուսակը նման կլինի:
- Կառավարիչի ID
- Ենթակայության ID
Այժմ մեր սեղանը նորմալ ձեւով է: Եթե ցանկանում եք շարունակել սովորել նորմալացման մասին, կարդացեք այս շարքի մյուս հոդվածները.