Разлика между нормализиране и денормализиране

Разлика между нормализиране и денормализиране
Разлика между нормализиране и денормализиране

Видео: Разлика между нормализиране и денормализиране

Видео: Разлика между нормализиране и денормализиране
Видео: Идеальное антипаразитарное решение 2024, Юли
Anonim

Нормализация срещу денормализация

Релационните бази данни са съставени от релации (свързани таблици). Таблиците са съставени от колони. Ако таблиците са две големи (т.е. твърде много колони в една таблица), тогава могат да възникнат аномалии в базата данни. Ако таблиците са две малки (т.е. базата данни е съставена от много по-малки таблици), това би било неефективно за заявки. Нормализацията и денормализацията са два процеса, които се използват за оптимизиране на производителността на базата данни. Нормализирането минимизира излишъците, които присъстват в таблиците с данни. Денормализацията (обратно на нормализацията) добавя излишни данни или групови данни.

Какво е нормализиране?

Нормализацията е процес, който се извършва, за да се сведат до минимум излишъците, които присъстват в данните в релационни бази данни. Този процес основно ще разделя големите таблици на по-малки таблици с по-малко излишъци (наречени „нормални форми“). Тези по-малки таблици ще бъдат свързани една с друга чрез добре дефинирани връзки. В една добре нормализирана база данни всяка промяна или модификация на данни ще изисква модифициране само на една таблица. Първата нормална форма (1NF), втората нормална форма (2NF) и третата нормална форма (3NF) са въведени от Едгар Ф. Код. Нормалната форма на Бойс-Код (BCNF) е въведена през 1974 г. от Код и Реймънд Ф. Бойс. Дефинирани са по-високи нормални форми (4NF, 5NF и 6NF), но те се използват рядко.

Таблица, която отговаря на 1NF, гарантира, че тя действително представлява релация (т.е. не съдържа записи, които се повтарят) и не съдържа атрибути, които са релационни стойности (т.е.д. всички атрибути трябва да имат атомарни стойности). За да отговаря една таблица на 2NF, тя трябва да отговаря на 1NF и всеки атрибут, който не е част от нито един кандидат-ключ (т.е. неосновни атрибути), трябва изцяло да зависи от някой от кандидат-ключовете в таблицата. Според дефиницията на Codd се казва, че една таблица е в 3NF, ако и само ако тази таблица е във втората нормална форма (2NF) и всеки атрибут в таблицата, който не принадлежи на кандидат ключ, трябва директно да зависи от всеки кандидат ключ на тази таблица. BCNF (известен също като 3.5NF) улавя някои аномалии, които не се адресират от 3NF.

Какво е денормализация?

Денормализацията е обратният процес на процеса на нормализиране. Денормализацията работи чрез добавяне на излишни данни или групиране на данни за оптимизиране на производителността. Въпреки че добавянето на излишни данни звучи контрапродуктивно, понякога денормализирането е много важен процес за преодоляване на някои от недостатъците в софтуера за релационни бази данни, които могат да доведат до тежки наказания за производителност с нормализирани бази данни (дори настроени за по-висока производителност). Това е така, защото обединяването на няколко релации (които са резултати от нормализиране) за получаване на резултат към заявка понякога може да бъде бавно в зависимост от действителното физическо изпълнение на системите от бази данни.

Каква е разликата между нормализиране и денормализиране?

– Нормализацията и денормализирането са два процеса, които са напълно противоположни.

– Нормализирането е процес на разделяне на по-големи таблици на по-малки, намалявайки излишните данни, докато денормализирането е процес на добавяне на излишни данни за оптимизиране на производителността.

– Нормализацията се извършва, за да се предотвратят аномалии в базите данни.

– Денормализацията обикновено се извършва, за да се подобри производителността на четене на базата данни, но поради допълнителните ограничения, използвани за денормализиране, записи (т.е. операции за вмъкване, актуализиране и изтриване) могат да станат по-бавни. Следователно денормализираната база данни може да предложи по-лоша производителност при запис от нормализирана база данни.

– Често се препоръчва да „нормализирате, докато не боли, денормализирайте, докато не подейства“.

Препоръчано: