Нормалдаштыруу жана нормалдаштыруу
Реляциялык маалымат базалары мамилелерден (байланышкан таблицалардан) турат. Таблицалар мамычалардан турат. Эгерде таблицалар эки чоң болсо (б.а. бир таблицада өтө көп мамычалар), анда маалымат базасынын аномалиялары пайда болушу мүмкүн. Эгерде таблицалар эки кичинекей болсо (б.а. маалымат базасы көптөгөн майда таблицалардан турат), ал суроо үчүн натыйжасыз болмок. Нормалдаштыруу жана нормалдаштыруу маалымат базасынын иштешин оптималдаштыруу үчүн колдонулган эки процесс. Нормалдаштыруу маалымат таблицаларында болгон ашыкчаларды азайтат. Денормальизациялоо (нормалаштырууга тескери) ашыкча маалыматтарды же топтук маалыматтарды кошот.
Нормалдаштыруу деген эмне?
Нормалдаштыруу - бул реляциялык маалымат базаларындагы маалыматтарда болгон ашыкчаларды азайтуу үчүн жүргүзүлүүчү процесс. Бул процесс негизинен чоң таблицаларды азыраак ашыкча ("Кадимки формалар" деп аталат) кичинекей таблицаларга бөлөт. Бул кичинекей столдор жакшы аныкталган мамилелер аркылуу бири-бири менен байланыштуу болот. Жакшы нормалдаштырылган маалымат базасында маалыматтардагы ар кандай өзгөртүү же өзгөртүү бир гана таблицаны өзгөртүүнү талап кылат. Биринчи нормалдуу форма (1NF), экинчи нормалдуу форма (2NF) жана үчүнчү нормалдуу форма (3NF) Эдгар Ф. Кодд тарабынан киргизилген. Бойс-Кодд нормалдуу формасы (BCNF) 1974-жылы Кодд жана Раймонд Ф. Бойс тарабынан киргизилген. Жогорку нормалдуу формалар (4NF, 5NF жана 6NF) аныкталган, бирок алар сейрек колдонулат.
1NFга туура келген таблица анын чындыгында байланышты чагылдыраарына (б.а. ал кайталануучу эч кандай жазууларды камтыбайт) жана реляциялык бааланган атрибуттарды камтыбайт (б.а.д. бардык атрибуттар атомдук баалуулуктарга ээ болушу керек). Таблица 2NFга ылайык келиши үчүн, ал 1NF менен шайкеш келиши керек жана кандайдыр бир талапкер ачкычынын бөлүгү болбогон ар кандай атрибут (б.а. негизги эмес атрибуттар) таблицадагы талапкер ачкычтарынын бирине толугу менен көз каранды болушу керек. Кодддун аныктамасына ылайык, таблица 3NFде деп айтылат, эгерде ал таблица экинчи нормалдуу формада (2NF) болсо жана таблицадагы талапкер ачкычка кирбеген ар бир атрибут түздөн-түз ар бир түргө көз каранды болушу керек. ошол столдун талапкер ачкычы. BCNF (3.5NF катары да белгилүү) 3NF тарабынан чечилбеген кээ бир аномалияларды тартат.
Денормализация деген эмне?
Денормализация - нормалдаштыруу процессинин тескери процесси. Денормализация ашыкча маалыматтарды кошуу же аткарууну оптималдаштыруу үчүн маалыматтарды топтоо аркылуу иштейт. Ашыкча маалыматтарды кошуу тескери жемиштүү угулат да, кээде денормализация реляциялык маалымат базасынын программалык камсыздоосундагы кээ бир кемчиликтерди жоюу үчүн абдан маанилүү процесс болуп саналат, ал нормалдаштырылган маалымат базалары менен (ал тургай, жогорку көрсөткүчтөргө ылайыкташтырылган) өндүрүмдүүлүк үчүн оор жазаларга дуушар болушу мүмкүн. Себеби, суроого жыйынтык чыгаруу үчүн бир нече мамилелерди бириктирүү (бул нормалдаштыруунун натыйжалары) маалымат базасы тутумдарынын иш жүзүндө физикалык ишке ашырылышына жараша кээде жай болушу мүмкүн.
Нормалдаштыруу менен Денормализациянын ортосунда кандай айырма бар?
– Нормалдаштыруу жана денормализациялоо таптакыр карама-каршы эки процесс.
– Нормалдаштыруу – бул ашыкча берилиштерди азайтуу үчүн чоңураак таблицаларды кичирээктерге бөлүү процесси, ал эми денормализация – майнаптуулукту оптималдаштыруу үчүн ашыкча маалыматтарды кошуу процесси.
– Нормалдаштыруу маалымат базасындагы аномалияларды алдын алуу үчүн жүргүзүлөт.
– Денормальизация адатта маалымат базасынын окуу иштешин жакшыртуу үчүн жүргүзүлөт, бирок нормалдаштыруу үчүн колдонулган кошумча чектөөлөрдөн улам жазуулар (б.а. киргизүү, жаңыртуу жана жок кылуу операциялары) жайыраак болушу мүмкүн. Ошондуктан, нормалдаштырылган маалымат базасы нормалдаштырылган маалымат базасына караганда начарраак жазуу натыйжалуулугун сунуштай алат.
– Көбүнчө "ооруганча нормалдаштырыңыз, ал иштегенге чейин денормальизациялооңуз" сунушталат.