Нормализирање на Вашата база на податоци: Пренесување на втора нормална форма (2NF)

Ставање на база на податоци во втора нормална форма

Во текот на изминатиот месец, разгледавме неколку аспекти на нормализирање на табелата со база на податоци. Прво, разговаравме за основните принципи на нормализацијата на базата. Последен пат, ги истражувавме основните барања утврдени со првата нормална форма (1NF). Сега, да го продолжиме нашето патување и да ги покриеме принципите на втората нормална форма (2NF).

Сети се на општите барања на 2NF:

Овие правила може да се сумираат во едноставна изјава: 2NF се обидува да ја намали количината на излишни податоци во табела со тоа што ја извлекува, ставајќи ја во нова табела и создавајќи односи меѓу тие табели.

Ајде да погледнеме еден пример. Замислете онлајн продавница која ги одржува информациите за клиентите во базата на податоци. Тие може да имаат по една табела наречена Купувачи со следниве елементи:

Краток преглед на оваа табела открива мала количина на непотребни податоци. Ние сме складирање на "Море Клиф, NY 11579" и "Мајами, FL 33157" записи двапати секој. Сега, тоа можеби не изгледа како премногу додадено складирање во нашиот едноставен пример, но замислете го залудно потрошениот простор ако имавме илјадници редови во нашата табела. Покрај тоа, ако поштенски код за Sea Cliff требаше да се промени, би требало да ја направиме таа промена на многу места низ целата база на податоци.

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

Ако сакаме да бидеме супер-ефикасни, можеме дури и да ја пополниме оваа табела однапред - поштата обезбедува директориум за сите валидни поштенски кодови и нивните односи меѓу град и држава. Навистина, сте наишле на ситуација кога овој тип на база на податоци беше искористена. Некој што земал нарачка можеби најпрво го прашал за вашиот поштенски код, а потоа го знаел градот и државата од каде што повикувате. Овој тип на аранжман ја намалува операторската грешка и ја зголемува ефикасноста.

Откако ги отстранивме дуплираните податоци од табелата на Клиентите, го задоволивме првото правило од втората нормална форма. Сè уште треба да користиме странски клуч за да ги поврземе двете маси заедно. Ќе го користиме поштенскиот код (примарниот клуч од табелата со поштенски број ) за да ја создадеме таа врска. Еве ја новата табела на клиенти:

Ние сега го минимизираме количеството на непотребни информации зачувани во базата на податоци и нашата структура е во втора нормална форма!

Ако сакате да се осигурате дека вашата база на податоци е нормализирана, истражете ги другите наши написи во оваа серија: