Чи нормалізується таблиця без первинного ключа?


9

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

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

Я знаю, що цілком можливо створити таблицю без первинного ключа, але чи вважається ця база даних нормалізованою, якщо така таблиця існує?

Додам, у таблиці немає жодного "унікального ключа", ні первинного, ні складеного, ні стороннього.

Наведена таблиця має три атрибути, жоден з яких не позначений як первинний або унікальний. Я запитав, чи це була помилка, і він сказав, що це добре, якщо її не було. Я поставив під сумнів зауваження, оскільки жодна інформація в таблиці не може бути однозначно ідентифікована, і він заявив, що це нормально. Це суперечить тому, що мене вчили про нормалізацію.

Відповіді:


15

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

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

Але в цьому випадку говорити про нормальні форми не доцільно: вся теорія нормалізації базується на принциповому припущенні, що об'єктами, що цікавлять, є відносини , а не мультисети. Насправді ця теорія базується на (дещо обговореному) Універсальному припущенні відношення, який передбачає, що всі відносини бази даних є підмножиною проекції такого відношення, яка містить усі атрибути у кожному відношенні. І цей об'єкт насправді є відношенням (тобто набором), а не багатонаціональним.

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

Ставлення перебуває в ххх нормальній формі , якщо ...


Чи не є багатозадачна ізоморфна множина, де ви додаєте додатковий countатрибут до елементів?
Бармар

3
@Barmar так, але потім ви додаєте ключ-кандидат і всі відповідні функціональні залежності, тож з точки зору теорії нормалізації ви перебуваєте у зовсім іншому випадку.
Ренцо

1
Коли люди проводять реляційні операції на нереляційних таблицях, вони очікують реляційних результатів. Коли вони не отримують їх, вони здаються аномальними.
Вальтер Мітті

0

3NF посилається на таблицю, сумісну з першими 3 Правилами нормалізації даних.

  1. Усунення груп, що повторюються
  2. Усунення зайвих даних
  3. Усунення стовпців не залежить від ключа

Третє правило вимагає ключа. Ви праві, стіл лектора не був 3NF.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.