Різниця між 3NF та BCNF

Автор: Laura McKinney
Дата Створення: 1 Квітень 2021
Дата Оновлення: 17 Травень 2024
Anonim
Різниця між 3NF та BCNF - Технологія
Різниця між 3NF та BCNF - Технологія

Зміст


Нормалізація це метод, який видаляє надмірність із відношення, таким чином мінімізуючи аномалії вставки, видалення та оновлення, які погіршують продуктивність баз даних. У цій статті ми будемо розмежовувати дві вищі нормальні форми, тобто 3NF та BCNF. Основна різниця між 3NF та BCNF полягає в тому 3NF виключає перехідну залежність від відношення і таблиці, що знаходиться у BCNF, тривіальна функціональна залежність X-> Y у відношенні повинна містити лише тоді, коли X є надключовим ключем.

Давайте обговоримо відмінності між 3NF та BCNF за допомогою таблиці порівняння, показаної нижче.

  1. Порівняльна діаграма
  2. Визначення
  3. Ключові відмінності
  4. Висновок

Порівняльна діаграма

Основа для порівняння3NFBCNF
КонцепціяЖоден непримітний атрибут не повинен бути залежно від ключа Candidate.Для будь-якої тривіальної залежності у відношенні R скажіть X-> Y, X повинен бути над ключовим відношенням R.
Залежність3NF можна отримати без шкоди для всіх залежностей.Залежності можуть не зберігатися в BCNF.
РозкладанняРозпад без втрат може бути досягнутий в 3NF.Розкладання без втрат важко домогтися в BCNF.


Визначення 3NF

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

Отже, перш ніж звернутися до процесу нормалізації таблиці в 3NF, дозвольте мені обговорити ключ-кандидат. А Ключ кандидата є мінімальний супер ключ тобто супер ключ з мінімальними атрибутами, який може визначати всі атрибути відношення. Отже, в процесі нормалізації вашої таблиці спочатку ви розпізнаєте кандидатський ключ даного відношення. Атрибути, які є частиною ключа ключа, є основні атрибути, а атрибути, які не є частиною ключа ключа, є непрості атрибути.

Тепер, якщо ми відносимо R (A, B, C, D, E, F) і маємо наступні функціональні залежності для відношення R.


Спостерігаючи функціональні залежності, можна зробити висновок про це AB є ключем-кандидатом для відношення R, оскільки за допомогою ключа AB ми можемо шукати значення для всіх атрибутів у відношенні R. Отже А, В стає основні атрибути оскільки вони разом роблять кандидатський ключ. Атрибути C, D, E, F стає непростий атрибути, тому що жоден з них не є частиною ключа ключа.

Таблиця в 2NF, оскільки жоден непростий атрибут частково не залежить від ключа-кандидата

Але перехідна залежність спостерігається серед наданих функціональних залежностей як атрибута Ж не залежить безпосередньо від ключа кандидата AB. Натомість атрибут Ж є перехідно залежно від ключа кандидата AB через атрибут D. До атрибута D є деяке значення, яке ми можемо досягти для значення атрибута F від ключа-кандидата AB. Якщо значення атрибута D дорівнює NULL, ми ніколи не можемо знайти / шукати значення F за допомогою ключа ключа AB. Це причина, чому 3NF вимагає усунути перехідну залежність із відносин.

Отже, щоб зняти цю перехідну залежність, нам потрібно розділити відношення R. Під час ділення відношення завжди розміщуйте в першому відношенні ключ-кандидат і всі атрибути, які залежать від цього ключа-кандидата. У наступному розділеному відношенні ми розмістимо атрибут, який викликає перехідну залежність, а також атрибути, які залежать від нього, у друге відношення.

Тепер таблиці R1 і R2 знаходяться в 3NF, оскільки в ньому не залишилося часткових і перехідних залежностей. Відношення R1 (A, B, C, D, E) має ключ-кандидат AB тоді як, відношення R2 (D, E) має D як його кандидатський ключ.

Визначення BCNF

BCNF вважається сильнішим за 3NF. Співвідношення R, щоб бути у BCNF, повинно бути у 3NF. І де б не нетривіальна функціональна залежність A -> B то має відношення R, то А повинен бути суперлюдина відношення R. Як відомо, Супер ключ - це ключ, який має єдиний атрибут або набір атрибутів, який визначає, цілі атрибути відношення.

Тепер перейдемо до прикладу, щоб краще зрозуміти BCNF. Припустимо, маємо відношення R (A, B, C, D, F), які мають такі функціональні залежності.

Спостерігаючи відношення R, ми можемо сказати це А і BF є кандидатські ключі відношення R, оскільки вони поодинці можуть шукати значення для всіх атрибутів у відношенні R. Отже A, B, F є прем'єр атрибути, тоді як, С і D є непростий атрибути. Ніякої перехідної залежності не спостерігається у функціональних залежностях, присутніх вище. Отже, таблиця R знаходиться в 3NF.

Але одна функціональна залежність, тобто D -> F порушує визначення BCNF, згідно з яким, якщо D -> F існують тоді D повинні бути супер ключ що тут не так. Так ми поділимо відношення Р.

Тепер таблиці R1 і R2 знаходяться в BCNF. Відношення R1 має два кандидат ключі А і Б, тривіальна функціональна залежність R1, тобто A-> BCD і B -> ACD, утримується для BCNF, оскільки A і B - це надклавіші для відношення. Відношення R2 має D як його кандидатський ключ а функціональна залежність D -> F також справедлива для BCNF, оскільки D - це супер ключ.

  1. 3NF стверджує, що жоден непростий атрибут не повинен бути транзитивно залежним від ключового ключа відношення. З іншого боку, BCNF стверджує, що якщо тривіальна функціональна залежність X -> Y існує для відношення; тоді X повинен бути супер ключем.
  2. 3NF можна отримати, не жертвуючи залежністю відношення. Однак залежність не може бути збережена під час отримання BCNF.
  3. 3NF можна досягти, не втрачаючи жодної інформації зі старої таблиці, тоді як, отримуючи BCNF, ми можемо втратити деяку інформацію зі старої таблиці.

Висновок:

BCNF є набагато обмежуючим, ніж 3NF, що більше допомагає нормалізувати таблицю. Співвідношення в 3NF має мінімальну надлишковість, яку далі видаляє BCNF.