Normalizimi i bazës së të dhënave: Forma e parë normale

Këto dy rregulla të thjeshta do të ndihmojnë në normalizimin e bazës së të dhënave

Forma e parë e zakonshme (1NF) përcakton rregullat bazë për një bazë të dhënash të organizuar:

Çfarë nënkuptojnë këto rregulla kur mendon për hartimin praktik të një baze të dhënash? Është në të vërtetë mjaft e thjeshtë.

1. Eliminoni dublikimin

Rregulli i parë dikton që ne nuk duhet të kopjojmë të dhënat brenda rreshtit të një tabele të njëjtë. Brenda komunitetit të bazës së të dhënave, ky koncept është referuar si atomiciteti i një tabele. Tabelat që përputhen me këtë rregull thuhet se janë atomike. Le të shqyrtojmë këtë parim me një shembull klasik: një tabelë brenda një baze të të dhënave të burimeve njerëzore që ruan marrëdhënien menaxher-vartës. Për qëllimet e shembullit tonë, ne do të imponojmë rregullin e biznesit që çdo menaxher mund të ketë një ose më shumë vartës ndërsa secili vartës mund të ketë vetëm një menaxher.

Në mënyrë intuitive, kur krijoni një listë ose spreadsheet për të ndjekur këtë informacion, ne mund të krijojmë një tabelë me fushat e mëposhtme:

Megjithatë, kujtoni rregullën e parë të imponuar nga 1NF: Eliminoni shtyllat e dyfishta nga tabela e njëjtë. Është e qartë që rubrikat Subordinate1-Subordinate4 janë dyfishues. Merrni një moment dhe mendoni për problemet e ngritura nga ky skenar. Nëse një menaxher ka vetëm një vartës, kolonat e Subordinate2-Subordinate4 thjesht harxhohen hapësirën e ruajtjes (një mall i çmuar i bazës së të dhënave). Për më tepër, imagjinoni rastin kur një menaxher tashmë ka 4 vartës - çfarë ndodh nëse merr një punonjës tjetër? E gjithë struktura e tabelës do të kërkonte modifikim.

Në këtë pikë, një ide e dytë e shkëlqyer zakonisht ndodh tek fillestarët e bazës së të dhënave: Ne nuk duam të kemi më shumë se një kolonë dhe ne duam të lejojmë një sasi fleksibile të ruajtjes së të dhënave. Le të provojmë diçka të tillë:

Dhe fusha e Vartësve do të përmbajë shënime të shumëfishta në formën "Mary, Bill, Joe".

Kjo zgjidhje është më e afërt, por ajo gjithashtu nuk arrin të shënojë. Kolona e vartësve është ende dublikuese dhe jo-atomike. Çfarë ndodh kur duhet të shtojmë ose të heqim një vartës? Ne duhet të lexojmë dhe të shkruajmë tërë përmbajtjen e tabelës. Kjo nuk është një punë e madhe në këtë situatë, por çka nëse një menaxher ka njëqind punonjës? Gjithashtu, kjo e ndërlikon procesin e përzgjedhjes së të dhënave nga baza e të dhënave në pyetjet e ardhshme.

Ja një tabelë që plotëson rregullën e parë të 1NF:

Në këtë rast, çdo vartës ka një hyrje të vetme, por menaxherët mund të kenë shënime të shumëfishta.

2. Identifikoni çelësin kryesor

Tani, çfarë ndodh me rregullën e dytë: identifikoni secilën rresht me një kolonë të veçantë ose grup kolonash ( çelësi primar )? Ju mund të hidhni një sy në tabelën e mësipërme dhe sugjeroni përdorimin e kolonës vartëse si çelës primar. Në fakt, kolona e varur është një kandidat i mirë për një çelës primar për shkak të faktit që rregullat tona të biznesit specifikojnë se secili vartës mund të ketë vetëm një menaxher. Megjithatë, të dhënat që ne kemi zgjedhur për të ruajtur në tryezën tonë e bëjnë këtë një zgjidhje më pak se ideale. Çfarë ndodh nëse ne punësojmë një punonjës tjetër me emrin Jim? Si e ruajmë marrëdhënien e tij menaxher-vartës në bazën e të dhënave?

Është mirë që të përdorësh një identifikues të vërtetë unik (si një ID punonjës) si një çelës primar . Tryeza jonë përfundimtare do të dukej kështu:

Tani tabela jonë është në formën e parë normale! Nëse dëshironi të vazhdoni të mësoni rreth normalizimit, lexoni artikujt e tjerë në këtë seri: