Съдържание:
- Определение - Какво означава Трета нормална форма (3NF)?
- Техопедия обяснява третата нормална форма (3NF)
Определение - Какво означава Трета нормална форма (3NF)?
Третата нормална форма (3NF) е третата стъпка за нормализиране на база данни и тя се основава на първата и втората нормални форми, 1NF и 2NF.
3NF посочва, че всички референтни колони в реферирани данни, които не зависят от първичния ключ, трябва да бъдат премахнати. Друг начин за поставяне на това е, че само референтни колони трябва да се използват за препратка към друга таблица и никакви други колони от родителската таблица не трябва да съществуват в реферираната таблица.
Техопедия обяснява третата нормална форма (3NF)
Помислете за базата данни на банката, която съдържа две таблици: CUSTOMER_MASTER за съхранение на данни за клиента и ACCOUNT_MASTER за съхранение на данни за банкови сметки, включително кой клиент притежава кой акаунт. В този случай трябва да има начин да се свържат двете таблици, за да се обвърже акаунт с клиента, който го притежава. Начинът за това е чрез чужд ключ. Това е колона в таблицата ACCOUNT_MASTER, която сочи или препраща към съответна колона (наречена първичен ключ) в родителската таблица CUSTOMER_MASTER. Нека да наречем тази колона CustID.
Да предположим, че клиентът Andrew Smith създава акаунт в таблицата CUSTOMER_MASTER с CustID 20454. Г-н Смит държи спестовна сметка с номер S-200802-005, чиито данни се съхраняват в таблицата ACCOUNT_MASTER. Това означава, че таблицата ACCOUNT_MASTER ще има колона, наречена CustID, която не е оригинална част от данните. Вместо това, тя също има стойността 20454, която просто препраща към същия CouID в таблицата CUSTOMER_MASTER.
Сега 3NF диктува, че в нашата таблица ACCOUNT_MASTER единствената информация, която притежаваме за клиента, трябва да бъде CustID (20454) като чужд ключ и се отнася до и идентифицира клиента, който е собственик на същия тозиIDID в таблицата CUSTOMER_MASTER (Andrew Smith ). Никакви други данни за нашия клиент (като име, дата на раждане, пол и т.н.) не трябва да се съхраняват в таблицата ACCOUNT_MASTER или в каквато и да е друга таблица, тъй като всички тези данни за него вече се съхраняват в CUSTOMER_MASTER. По този начин единствените клиентски данни, съхранявани извън таблицата CUSTOMER_MASTER, са GuardID. Това изплаща красиви дивиденти, като гарантира, че няма дублиране на данни, което от своя страна прави заявките да се изпълняват много по-ефективно и намалява необходимия обем на съхранение.








