logo

Друга нормальна форма (2NF)

Перша нормальна форма (1NF) не усуває надлишковість, а навпаки, усуває повторювані групи. Замість того, щоб у записі було кілька стовпців одного типу даних (0NF або ненормалізована форма), ви видаляєте повторювану інформацію в окреме відношення та представляєте її як рядки. Це те, що становить 1NF.

Друга нормальна форма

Друга нормальна форма (2NF) базується на концепції повної функціональної залежності. Друга звичайна форма застосовується до зв’язків із складеними ключами, тобто зв’язків із первинним ключем, що складається з двох або більше атрибутів. Відношення з одноатрибутним первинним ключем автоматично знаходиться принаймні в 2NF. Відношення, яке не знаходиться в 2NF, може страждати від аномалій оновлення. Щоб перебувати в другій нормальній формі, відношення має бути в першій нормальній формі, і відношення не повинно містити жодної часткової залежності. Відношення знаходиться в 2NF, якщо воно не має часткової залежності, тобто жоден непростий атрибут (атрибути, які не є частиною жодного ключа-кандидата) не залежить від будь-якої належної підмножини будь-якого ключа-кандидата в таблиці. Іншими словами,

Відношення, яке має першу нормальну форму, і кожен атрибут не первинного ключа повністю функціонально залежить від первинного ключа, тоді це відношення має другу нормальну форму (2NF).



Примітка - Якщо відповідна підмножина ключа-кандидата визначає непростий атрибут, вона викликається часткова залежність . The нормалізація зв'язків 1NF з 2NF передбачає зняття часткових залежностей . Якщо існує часткова залежність, ми видаляємо частково залежні атрибути з відношення, поміщаючи їх у нове відношення разом із копією їх визначника. Розгляньте наведені нижче приклади.

Приклад-1: Розгляньте таблицю, наведену нижче.

STUD_NO COURSE_NO COURSE_FEE 1 C1 1000 2 C2 1500 1 C4 2000 4 C3 1000 4 C1 1000 2 C5 2000>

{Зауважте, що існує багато курсів, які мають однакову вартість. } Тут COURSE_FEE не може самостійно визначити значення COURSE_NO або STUD_NO; COURSE_FEE разом зі STUD_NO не може визначити значення COURSE_NO; COURSE_FEE разом із COURSE_NO не можуть визначити значення STUD_NO; Отже, COURSE_FEE буде непростим атрибутом, оскільки він не належить до єдиного ключа кандидата {STUD_NO, COURSE_NO} ; Але COURSE_NO -> COURSE_FEE, тобто COURSE_FEE залежить від COURSE_NO, який є правильною підмножиною ключа кандидата. Непростий атрибут COURSE_FEE залежить від належної підмножини ключа-кандидата, який є частковою залежністю, тому це відношення не входить до 2NF. Щоб перетворити наведене вище відношення до 2NF, нам потрібно розділити таблицю на дві таблиці, наприклад: Таблиця 1: STUD_NO, COURSE_NO Таблиця 2: COURSE_NO, COURSE_FEE

   Table 1     Table 2  STUD_NO COURSE_NO COURSE_NO COURSE_FEE  1 C1 C1 1000 2 C2 C2 1500 1 C4 C3 1000 4 C3 C4 2000 4 C1 C5 2000  2 C5>

Примітка - 2NF намагається зменшити надлишкові дані, які зберігаються в пам’яті. Наприклад, якщо є 100 студентів, які проходять курс C1, нам не потрібно зберігати його вартість як 1000 для всіх 100 записів, натомість ми можемо зберегти це в другій таблиці, оскільки плата за курс C1 становить 1000.

Приклад-2: Розглянемо такі функціональні залежності у відношенні R (A, B, C, D)

AB ->C [A і B разом визначають C] BC -> D [B і C разом визначають D]>

відповідь:

По-перше, ми можемо перевірити, чи є якісь часткові залежності. Часткова залежність виникає, коли непростий атрибут (не є частиною жодного ключа-кандидата) залежить лише від частини ключа-кандидата.

Ключі-кандидати для відношення R можна визначити, знайшовши закриття кожного атрибута:

AB визначає кожен ключ.

Тепер давайте перевіримо наявність часткових залежностей:

У цьому відношенні немає часткових залежностей, оскільки кожен непростий атрибут (C і D) залежить від цілого ключа-кандидата, частиною якого він є (AB і BC відповідно).

Отже, відношення R уже знаходиться в 3-й нормальній формі (3NF), оскільки воно задовольняє умови 1-ї нормальної форми (1NF) і 2-ї нормальної форми (2NF) і не має жодних транзитивних залежностей.

Висновок

Підсумовуючи, 2NF — це фундаментальна концепція нормалізації бази даних, яка допомагає усунути часткові залежності у вашій реляційній базі даних. Дотримання правил 2NF допомагає організувати вашу базу даних, щоб уникнути аномалій і забезпечити цілісність даних, полегшуючи зберігання та отримання даних.

shweta tiwari