Нормализиране на Вашата база данни: Преход към втора нормална форма (2NF)

Поставяне на база данни във втора нормална форма

През изминалия месец разгледахме няколко аспекта на нормализиране на таблицата на базата данни. Първо, обсъдихме основните принципи на нормализирането на базата данни. Последният път проучихме основните изисквания, установени с първия нормален формуляр (1NF). Сега, да продължим пътуването си и да обхванем принципите на втората нормална форма (2NF).

Припомнете общите изисквания на 2NF:

Тези правила могат да бъдат обобщени в едно просто изявление: 2NF се опитва да намали количеството излишни данни в дадена таблица, като го извлече, постави го в нова таблица (и) и създаде отношения между тези таблици.

Нека да разгледаме един пример. Представете си онлайн магазин, който поддържа информация за клиента в база данни. Те могат да имат една таблица, наречена "Клиенти", която съдържа следните елементи:

Кратък поглед към тази таблица разкрива малко количество излишни данни. Съхраняваме данните за "Sea Cliff, NY 11579" и "Miami, FL 33157" два пъти всяка. Сега това може да не изглежда като твърде много добавено хранилище в нашия прост пример, но представете си изгубеното пространство, ако имаме хиляди редове в нашата маса. Освен това, ако пощенският код за Sea Cliff трябваше да се промени, ще трябва да направим тази промяна на много места в цялата база данни.

В структура на база данни, съвместима с 2NF, тази излишна информация се извлича и съхранява в отделна таблица. Нашата нова таблица (да го наречем ZIPS) може да има следните полета:

Ако искаме да бъдем супер ефективни, можем да попълним тази таблица предварително - пощенската служба предоставя директория с всички валидни пощенски кодове и техните отношения град / държава. Със сигурност сте срещнали ситуация, при която този тип база данни е била използвана. Някой, който е получил поръчка, може да е поискал първо вашия пощенски код и след това да знае града и държавата, от които се обаждате. Този тип устройство намалява грешката на оператора и увеличава ефективността.

След като премахнехме дублиращите се данни от таблицата Клиенти, изпълнихме първото правило на втория нормален формуляр. Все още трябва да използваме чужд ключ, за да свържем двата маси заедно. Ще използваме пощенския код (първичният ключ от таблицата за ZIP ), за да създадем тази връзка. Ето нашата нова таблица за клиенти:

Сега сме намалили количеството излишна информация, съхранявана в базата данни, а нашата структура е във втора нормална форма!

Ако искате да гарантирате, че базата ви е нормализирана, разгледайте другите ни статии в тази серия: