Нормализација ваше базе података: први обичан образац

Ова два једноставна правила помажу у нормализацији ваше базе података

Прва нормална форма (1НФ) поставља основна правила за организоване базе података:

Шта ова правила значе када размишљамо о практичном дизајну базе података? У ствари, то је прилично једноставно.

1. Елиминисати умножавање

Прво правило диктира да не смемо дуплирати податке у истом реду табеле. У оквиру заједнице базе података, овај концепт се назива атомичност табеле. За таблице које су у складу с овим правилом речено је да су атомске. Хајде да истражимо овај принцип са класичним примером: табела унутар базе података људских ресурса која чува однос менаџера-подређени. За потребе нашег примера, ми ћемо наметнути правило пословања да сваки менаџер може имати један или више потчињених док сваки подређени може имати само једног менаџера.

Интуитивно, приликом креирања листе или табеле за праћење ових информација, можемо направити таблицу са следећим пољима:

Међутим, реците прво правило које наметне 1НФ: Елиминишите дупликате колоне из исте табеле. Очигледно је да су колоне Субординате1-Субординате4 дуплициране. Узмите тренутак и размислите о проблемима које изазива овај сценарио. Ако менаџер има само једну подређену, колоне Субординате2-Субординате4 једноставно се троше за складиштење (драгоцена база података). Осим тога, замислите случај када менаџер већ има 4 подређена - шта се догађа ако преузме другог запосленог? Целокупна структура стола захтева модификацију.

У овом тренутку, друга светла идеја обично долази до новинара базе података: не желимо имати више од једне колоне и желимо допустити флексибилну количину података. Хајде да пробамо нешто овако:

А поље Подређени би садржало више уноса у облику "Мари, Билл, Јое."

Ово решење је ближе, али такође недостаје знак. Колона подређених је и даље дупликативна и не-атомска. Шта се догађа када треба да додамо или уклонимо подређени? Морамо читати и писати цео садржај табеле. То није велика ствар у овој ситуацији, али шта ако један менаџер има стотину запослених? Такође, компликује процес избора података из базе података у будућим упити.

Ево табеле која задовољава прво правило 1НФ:

У овом случају, сваки подређени има један унос, али менаџери могу имати више уноса.

2. Идентификујте Примарни кључ

Сада, шта је са другом правилом: идентификујте сваки ред са јединственом колоном или скупом колона ( примарни кључ )? Можете погледати горњој табели и предлошити употребу подређене ступице као примарног кључа. Заправо, подређена колона је добар кандидат за примарни кључ због чињенице да су наша пословна правила прецизирала да сваки подређени може имати само једног менаџера. Међутим, подаци које смо изабрали да чувамо у нашој табели чини то мање од идеално решење. Шта се догађа ако унајмимо још једног запосленог по имену Јим? Како можемо да сачувамо његов менаџерски подређени однос у бази података?

Најбоље је користити истински јединствени идентификатор (као што је ИД запосленог) као примарни кључ . Наш финални сто би изгледао овако:

Сада, наш сто је у првом нормалном облику! Ако желите наставити сазнавање о нормализацији, прочитајте остале чланке у овој серији: