Деректер базасын қалыпқа келтіру: бірінші қалыпты пішін

Бұл екі қарапайым ереже сіздің дерекқорыңызды қалыпқа келтіруге көмектеседі

Бірінші Қалыпты пішін (1NF) ұйымдастырылған дерекқордың негізгі ережелерін белгілейді:

Деректер базасының практикалық дизайны туралы ойлану кезінде бұл ережелер нені білдіреді? Бұл шын мәнінде өте қарапайым.

1. Көшіруді жою

Бірінші ереже кестенің бірдей жолында деректерді қайталамауы керек дегенді білдіреді. Дерекқор қауымдастығында бұл тұжырымдама кестенің атомдықтығы деп аталады. Осы ережеге сәйкес келетін кестелер атомдық деп аталады. Осы принципті классикалық мысалмен қарастырайық: басқарушы-бағынысты қарым-қатынасты сақтайтын адами ресурстар дерекқорындағы кесте. Біздің мысалымыздың мақсаттары үшін әр басшылықтың бір немесе бірнеше бағыныстылығына ие болуы мүмкін, ал әрбір бағыныңқы қызметкерде тек бір ғана менеджер болуы мүмкін.

Бұл ақпаратты қадағалау үшін тізімді немесе электрондық кестені жасау кезінде интуитивті, келесі өрістермен кесте жасай аламыз:

Алайда 1NF енгізген бірінші ережені еске түсіріңіз: Бір кестеден қайталанатын бағандарды алып тастаңыз. Шекарадан тыс 1-бағыныңқы бағандар қайталанатын болып табылады. Осы сценарийде туындаған мәселелерді бір сәтке алыңыз және ойланыңыз. Егер менеджердің тек бір бағыныстылығы бар болса, Subordinate2-Subordinate4 бағандары жай қалдық сақтау орны (құнды дерекқордың тауары) болып табылады. Сонымен қатар, менеджерде қазірдің өзінде 4 бағынысты қызметкер болған жағдайды елестетіңіз - егер ол басқа қызметкерді қабылдаса не болады? Кесте құрылымы өзгерісті қажет етеді.

Осы сәтте екінші жарқын идея әдетте дерекқорларға арналған жаңалықтарға түседі: біз бірден көп бағанға ие болғымыз келмейді және біз деректерді сақтаудың икемді мөлшеріне рұқсат бергіміз келеді. Мынадай нәрсені көрейік:

Ал бағыныстағы өріс «Мэри, Билл, Джо» пішінінде бірнеше жазбаны қамтиды.

Бұл шешім жақсырақ, бірақ ол сондай-ақ таңбаға жақын болады. Бағынысты баған бұрынғыдай қайталанатын және атомдық емес. Бағанға қосу немесе жою қажет болғанда не болады? Кестенің барлық мазмұнын оқып, жазу керек. Бұл жағдайда бұл үлкен мәміле емес, ал егер бір менеджерде жүз қызметкер болған болса ше? Сондай-ақ, болашақ сұрауларда дерекқордан деректерді таңдау үрдісін қиындатады.

1NF бірінші ережесін қанағаттандыратын кесте:

Бұл жағдайда, әр бағынатын адамның бірыңғай жазбасы бар, бірақ менеджерлер бірнеше жазбаларға ие болуы мүмкін.

2. Негізгі кілтті анықтаңыз

Енді екінші ереже туралы не айтуға болады: әр жолды бірегей бағанмен немесе бағандар жиынын анықтаңыз ( бастапқы кілт )? Жоғарыдағы кестеге назар аударып, бағыныңқы бағанды ​​негізгі кілт ретінде пайдалануды ұсынуға болады. Шындығында, бағынатын баған бастапқы кілт үшін жақсы үміткер болып табылады, себебі біздің бизнес ережелеріміз әрбір бағынатын адамның бір ғана менеджер болуы мүмкін екенін көрсетті. Дегенмен, біздің үстелде сақтау үшін таңдаған деректер бұл идеалды шешімнен аз. Егер Джим есімді басқа қызметкерді жалдасақ, не болады? Дерекқорда менеджер-бағынышты қарым-қатынасын қалай сақтаймыз?

Негізгі кілт ретінде шынымен бірегей идентификаторды (мысалы, қызметкердің идентификаторын) пайдалану жақсы. Біздің соңғы үстеліміз мынаған ұқсайды:

Енді біздің үстел қалыпты қалыпта! Егер қалыпқа келтіру туралы білімді жалғастырғыңыз келсе, осы сериядағы басқа мақалаларды оқыңыз: