database normalization tutorial
Овај водич ће објаснити шта је нормализација базе података и разни нормални обрасци попут 1НФ 2НФ 3НФ и БЦНФ са примерима СКЛ кода:
Нормализација базе података је добро позната техника која се користи за дизајнирање шеме базе података.
Главна сврха примене технике нормализације је смањење редунданције и зависности података. Нормализација нам помаже да велике табеле раставимо на више малих табела дефинишући логички однос између тих табела.
Шта ћете научити:
- Шта је нормализација базе података?
- Закључак
Шта је нормализација базе података?
Нормализација базе података или нормализација СКЛ-а помаже нам да групишемо повезане податке у једну једину табелу. Сви атрибутни подаци или индиректно повезани подаци стављају се у различите табеле и ове табеле су повезане логичким односом између надређених и подређених табела.
Едгар Ф. Цодд је 1970. изнио концепт нормализације. Поделио је рад под називом „Релациони модел података за велике дељене банке“ у којем је предложио „Први нормални образац (1НФ)“.
Предности нормализације ДБМС-а
Нормализација базе података пружа следеће основне предности:
- Нормализација повећава конзистентност података јер избегава двострукост података складиштењем података само на једном месту.
- Нормализација помаже у групирању сличних или сродних података под истом шемом, што резултира бољим груписањем података.
- Нормализација побољшава претрагу брже јер се индекси могу брже креирати. Стога се нормализована база података или табела користи за ОЛТП (обрада трансакција на мрежи).
Мане нормализације базе података
Нормализација ДБМС-а има следеће недостатке:
- Не можемо да пронађемо повезане податке, рецимо за производ или запосленог, на једном месту и морамо да се придружимо у више табела. То узрокује кашњење у преузимању података.
- Стога нормализација није добра опција у ОЛАП трансакцијама (аналитичка обрада на мрежи).
Пре него што наставимо даље, схватимо следеће појмове:
- Ентитет: Ентитет је стварни живот, где се подаци повезани с таквим објектом чувају у табели. Пример таквих предмета су запослени, одељења, студенти итд.
- Атрибути: Атрибути су карактеристике ентитета који дају неке информације о ентитету. На пример, ако су табеле ентитети, онда су ступци њихови атрибути.
Врсте нормалних облика
# 1) 1НФ (први нормални образац)
По дефиницији, ентитет који нема понављајуће се колоне или групе података може се назвати првим нормалним обрасцем. У првом нормалном обрасцу свака колона је јединствена.
Следи како би изгледала табела наших запослених и одељења да је била у првом нормалном облику (1НФ):
емпНум | презиме | име | дептНаме | дептЦити | дептЦоунтри |
---|---|---|---|---|---|
1001 | Андревс | Јацк | Рачуни | Њу Јорк | Америка |
1002 | Сцхватз | Мике | Технологија | Њу Јорк | Америка |
1009 | Куп | Харри | ХР | Берлин | Немачка |
1007 | Харвеи | Паркер | Админ | Лондон | Велика Британија |
1007 | Харвеи | Паркер | ХР | Лондон | Велика Британија |
Овде су све колоне табела запослених и одељења удружене у једну и нема потребе за повезивањем колона, попут дептНум, јер су сви подаци доступни на једном месту.
Али оваква табела са свим потребним колонама не само да ће бити тешка за управљање, већ и за извођење операција, а такође и неефикасна са становишта складиштења.
# 2) 2НФ (друга нормална форма)
По дефиницији, ентитет који је 1НФ и један од његових атрибута дефинисан је као примарни кључ, а преостали атрибути зависе од примарног кључа.
Следи пример како би изгледао сто запослених и одељења:
Табела запослених:
емпНум | презиме | име |
---|---|---|
1001 | Андревс | Јацк |
1002 | Сцхватз | Мике |
1009 | Куп | Харри |
1007 | Харвеи | Паркер |
1007 | Харвеи | Паркер |
Табела одељења:
дептНум | дептНаме | дептЦити | дептЦоунтри |
---|---|---|---|
1 | Рачуни | Њу Јорк | Америка |
два | Технологија | Њу Јорк | Америка |
3 | ХР | Берлин | Немачка |
4 | Админ | Лондон | Велика Британија |
Табела ЕмпДепт:
емпДептИД | емпНум | дептНум |
---|---|---|
1 | 1001 | 1 |
два | 1002 | два |
3 | 1009 | 3 |
4 | 1007 | 4 |
5 | 1007 | 3 |
Овде можемо приметити да смо табелу у 1НФ облику поделили на три различите табеле. табела Запослени је ентитет о свим запосленима у предузећу и његови атрибути описују својства сваког запосленог. Примарни кључ за ову табелу је емпНум.
Слично томе, табела Одељења је ентитет о свим одељењима у предузећу и његови атрибути описују својства сваког одељења. Примарни кључ за ову табелу је дептНум.
У трећој табели комбиновали смо примарне кључеве обе табеле. Примарни кључеви табела Запослени и Одељења у овој трећој табели називају се страним кључевима.
Ако корисник жели излаз сличан ономе који смо имали у 1НФ, онда мора да се придружи све три табеле, користећи примарне кључеве.
Пример упита би изгледао како је приказано доле:
SELECT empNum, lastName, firstName, deptNum, deptName, deptCity, deptCountry FROM Employees A, Departments B, EmpDept C WHERE A.empNum = C.empNum AND B.deptNum = C.deptNum WITH UR;
# 3) 3НФ (трећа нормална форма)
По дефиницији, табела се сматра трећим нормалним ако је табела / ентитет већ у другом нормалном облику, а ступци табеле / ентитета непрелазно зависе од примарног кључа.
Хајде да разумемо непрелазну зависност, уз помоћ следећег примера.
Рецимо табела под називом, Купац има следеће колоне:
Идентификација купца - Примарни кључ који идентификује јединственог купца
КупацЗИП - поштански број места у којем купац борави
ЦустомерЦити - Град у којем купац борави
У горњем случају, колона ЦустомерЦити зависи од колоне ЦустомерЗИП, а колона ЦустомерЗИП зависи од ЦустомерИД.
Горњи сценарио назива се транзитивна зависност колоне ЦустомерЦити о ЦустомерИД, тј. Примарном кључу. Након разумевања прелазне зависности, хајде сада да разговарамо о проблему са овом зависношћу.
Могао би постојати могући сценарио када се нежељено ажурирање табеле изврши за ажурирање ЦустомерЗИП-а на поштански број другог града без ажурирања ЦустомерЦити-а, остављајући тако базу података у недоследном стању.
Да бисмо решили овај проблем, морамо уклонити транзитивну зависност која би се могла постићи стварањем друге табеле, рецимо, ЦустЗИП табеле која садржи две колоне, тј. ЦустомерЗИП (као примарни кључ) и ЦустомерЦити.
Колона ЦустомерЗИП у табели Цустомер је страни кључ ЦустомерЗИП-а у табели ЦустЗИП. Овај однос осигурава да нема аномалија у ажурирањима у којима се ЦустомерЗИП ажурира без уношења промена у ЦустомерЦити.
# 4) Боице-Цодд-ова нормална форма (3,5 нормална форма)
По дефиницији, табела се сматра Боице-Цоддовим нормалним обликом, ако је већ у Трећем нормалном облику и за сваку функционалну зависност између А и Б, А треба да буде супер кључ.
Ова дефиниција звучи помало компликовано. Покушајмо да га разбијемо да бисмо га боље разумели.
- Функционална зависност: Каже се да су атрибути или колоне табеле функционално зависни када атрибут или колона табеле јединствено идентификују друге атрибуте или колоне исте табеле.
На пример, колона емпНум или Број запосленог јединствено идентификује остале колоне као што су Име запосленог, Плата запосленог итд. у табели Запослени. - Супер Кеи: Појединачни кључ или група више кључева који могу јединствено да идентификују један ред у табели могу се назвати Супер кључем. Уопштено говорећи, такви тастери су познати као композитни тастери.
Размотримо следећи сценарио да бисмо разумели када постоји проблем са трећим нормалним обрасцем и како Боице-Цодд-ов уобичајени образац долази у помоћ.
емпНум | име | емпЦити | дептНаме | дептХеад |
---|---|---|---|---|
1001 | Јацк | Њу Јорк | Рачуни | Раимонд |
1001 | Јацк | Њу Јорк | Технологија | Доналд |
1002 | Харри | Берлин | Рачуни | Самара |
1007 | Паркер | Лондон | ХР | Елизабетх |
1007 | Паркер | Лондон | Инфраструктура | Том |
У горњем примеру, запослени са емпНум 1001 и 1007 раде у два различита одељења. Свако одељење има шефа одељења. За свако одељење може бити више шефова одељења. Као и за одељење за рачуноводство, Раимонд и Самара су два шефа одељења.
У овом случају, емпНум и дептНаме су супер кључеви, што значи да је дептНаме главни атрибут. На основу ове две колоне можемо јединствено да идентификујемо сваки ред.
Такође, дептНаме зависи од дептХеад, што подразумева да је дептХеад непримарни атрибут. Овај критеријум дисквалификује табелу из дела БЦНФ-а.
Да бисмо то решили, табелу ћемо разбити на три различите табеле како је поменуто у наставку:
Табела запослених:
емпНум | име | емпЦити | дептНум |
---|---|---|---|
1001 | Јацк | Њу Јорк | Д1 |
1001 | Јацк | Њу Јорк | Д2 |
1002 | Харри | Берлин | Д1 |
1007 | Паркер | Лондон | Д3 |
1007 | Паркер | Лондон | Д4 |
Табела одељења:
дептНум | дептНаме | дептХеад |
---|---|---|
Д1 | Рачуни | Раимонд |
Д2 | Технологија | Доналд |
Д1 | Рачуни | Самара |
Д3 | ХР | Елизабетх |
Д4 | Инфраструктура | Том |
# 5) Четврти уобичајени образац (4 нормални образац)
По дефиницији, табела је у четвртом нормалном облику, ако нема два или више независних података који описују релевантни ентитет.
# 6) Пети нормални образац (5 нормални образац)
Табела се може разматрати у Петом нормалном обрасцу само ако задовољава услове за Четврти уобичајени образац и може се раставити у више табела без губитка података.
Често постављана питања и одговори
П # 1) Шта је нормализација у бази података?
Одговор: Нормализација базе података је техника дизајнирања. Користећи ово, можемо дизајнирати или редизајнирати шеме у бази података како бисмо смањили сувишне податке и зависност података разбијањем података у мање и релевантније табеле.
П # 2) Који су различити типови нормализације?
Одговор: Следе различите врсте нормализационих техника које се могу користити за дизајнирање шема база података:
- Прва нормална форма (1НФ)
- Друга нормална форма (2НФ)
- Трећа нормална форма (3НФ)
- Боице-Цодд-ова нормална форма (3.5НФ)
- Четврта нормална форма (4НФ)
- Пети нормални образац (5НФ)
П # 3) Која је сврха нормализације?
Одговор: Примарна сврха нормализације је смањење сувишности података, тј. Подаци треба да се чувају само једном. На овај начин се избегавају било какве аномалије података које би могле настати када покушавамо исте податке сачувати у две различите табеле, али промене се примењују само на једну, а не на другу.
П # 4) Шта је денормализација?
Одговор: Денормализација је техника за повећање перформанси базе података. Ова техника додаје сувишне податке у базу података, за разлику од нормализоване базе података која уклања сувишност података.
То се ради у огромним базама података, где је извршавање ЈОИН-а за добијање података из више табела скупа ствар. Дакле, сувишни подаци се чувају у више табела како би се избегле ЈОИН операције.
Закључак
До сада смо сви прошли кроз три облика нормализације базе података.
тестирање интервјуа питања и одговори за искусне
Теоретски, постоје виши облици нормализација базе података као што је Боице-Цодд Нормал Форм, 4НФ, 5НФ. Међутим, 3НФ је уобичајени облик нормализације у производним базама података.
Срећно читање !!
Препоручено читање
- Тестирање базе података помоћу ЈМетер-а
- МонгоДБ Направите резервну копију базе података
- МонгоДБ Водич за креирање базе података
- 10 најбољих алата за дизајн базе података за изградњу сложених модела података
- МонгоДБ перформансе: перформансе закључавања, грешке странице и профилисање базе података
- Преглед релационе базе података Алтибасе отвореног кода
- МонгоДБ Профилер базе података за надгледање упита и перформанси
- Како тестирати Орацле базу података