Нармалізацыя Базы Дадзеных: Першая нармальная форма

Гэтыя два простых правілы дапамогуць нармалізацыі базы дадзеных

Першая нармальная форма (1NF) устанаўлівае асноўныя правілы арганізаванай базы дадзеных:

Што азначаюць гэтыя правілы пры разглядзе практычнага праектавання базы дадзеных? Гэта на самай справе даволі проста.

1. Ліквідаваць Тыражаванне

Першае правіла абвяшчае, што мы не павінны дубляваць дадзеныя ў межах адной і той жа радку табліцы. У супольнасці баз дадзеных, гэтая канцэпцыя называецца атамарнага табліцы. Табліцы, якія адпавядаюць гэтаму правілу, называюцца атамнымі. Давайце разгледзім гэты прынцып з класічным прыкладам: табліцы ў базе дадзеных чалавечых рэсурсаў, які захоўвае адносіны мэнэджэра-падначалены. У згаданым прыкладзе, мы накладзем бізнес-правіла, што кожны менеджэр можа мець адзін або некалькі падначаленых у той час як кожны падначалены можа мець толькі адзін менеджэр.

Наглядна, пры стварэнні спісу або табліцы, каб адсочваць гэтую інфармацыю, мы маглі б стварыць табліцу з наступнымі палямі:

Тым не менш, нагадаем, першае правіла, уведзенай 1NF: Ліквідаваць дублюючыя слупкі з той жа табліцы. Відавочна, што слупкі Subordinate1-Подчиненный4 дублююць. Надасце час і абдумаць праблемы, якія ўзнікаюць у гэтым сцэнары. Калі менеджэр мае толькі адзін падначалены, слупкі Subordinate2-Подчиненный4 проста марна месца захоўвання (каштоўная база дадзеных таварную). Акрамя таго, уявіце сабе выпадак, калі менеджэр ўжо мае 4 падначаленых - што адбудзецца, калі яна бярэ на іншага супрацоўніка? Уся структура табліцы запатрабуе мадыфікацыі.

На дадзены момант, другая бліскучая ідэя звычайна адбываецца з навічкамі базы дадзеных: Мы не хочам, каб мець больш чым адзін слупок, і мы хочам, каб забяспечыць гнуткі аб'ём сховішчы дадзеных. Давайце паспрабуем нешта накшталт гэтага:

І поле Падначаленыя будзе ўтрымліваць некалькі запісаў у выглядзе «Мэры, Біл, Джо.»

Гэта рашэнне бліжэй, але ён таксама не дацягвае знак. Калонка падначаленыя па-ранейшаму дублююць адзін аднаго і неатомическое. Што адбываецца, калі нам трэба дадаць ці выдаліць падначалены? Нам трэба чытаць і пісаць усё змесціва табліцы. Гэта не мае вялікага значэння ў гэтай сітуацыі, але што, калі адзін менеджэр быў адзін сто супрацоўнікаў? Акрамя таго, гэта ўскладняе працэс выбару дадзеных з базы дадзеных у будучых запытах.

Вось табліца, якая задавальняе першае правіла 1NF:

У гэтым выпадку, кожны падначалены маюць адзін уваход, але менеджэры могуць мець некалькі запісаў.

2. Вызначыць першасны ключ

Цяпер, што тычыцца другога правілы: ідэнтыфікаваць кожную радок з унікальным слупком або мноствам слупкоў ( першасны ключ )? Вы можаце зірнуць на табліцу вышэй, і выкарыстоўвае падначаленага слупка ў якасці першаснага ключа. На самай справе, падначалены слупок з'яўляецца добрым кандыдатам для першаснага ключа з-за таго, што нашы бізнес-правілаў паказана, што кожны падначалены можа мець толькі адзін менеджэр. Тым не менш, дадзеныя, якія мы абралі для захоўвання ў нашай табліцы робіць гэта менш ідэальным рашэннем. Што адбудзецца, калі мы наняць іншыя служачыя па імі Джым? Як мы захоўваем яго менеджэр-падначаленых адносіны ў базе дадзеных?

Лепш за ўсё выкарыстоўваць сапраўды унікальны ідэнтыфікатар (напрыклад, супрацоўнік ID) у якасці першаснага ключа . Наша канчатковая табліца будзе выглядаць наступным чынам:

Цяпер наша табліца знаходзіцца ў першай нармальнай форме! Калі вы хочаце працягнуць вывучэнне нармалізацыі, чытаць іншыя артыкулы ў гэтай серыі: