Якщо воно вписується в норми нормалізації, то відносини 1: 1 можуть бути нормалізовані (за визначенням!) - Іншими словами, стосунки 1: 1 не мають нічого, що унеможливлює їх дотримання нормальних форм.
Щоб відповісти на ваше запитання щодо практичності відносин 1: 1, бувають випадки, коли це ідеально корисна конструкція, наприклад, коли у вас є підтипи з чіткими предикатами (стовпцями).
Причини, якими ви користуєтесь відносинами 1: 1, залежать від вашої точки зору. DBA, як правило, сприймають усе як рішення про ефективність. Моделі даних та програмісти, як правило, вважають ці рішення орієнтованими на дизайн або модель. Насправді між цими точками зору багато перекриттів. Це залежить від ваших перспектив та пріоритетів. Ось кілька прикладів мотивації відносин 1: 1:
У вас є кілька підмножин стовпців, які дуже широкі, і ви хочете їх фізично відокремити у сховищі з міркувань продуктивності.
У вас є деякий підмножина стовпців, які не читаються і не оновлюються часто, і ви хочете відрізнити їх від часто використовуваних стовпців з міркувань продуктивності.
У вас є колонки, необов’язкові в цілому, але вони є обов'язковими, якщо ви знаєте, що запис певного типу.
У вас є кілька стовпців, які логічно належать разом до підтипу, і ви хочете їх моделювати так, щоб вони добре відповідали об'єктній моделі вашого коду.
У вас є кілька стовпців, які можуть застосовуватися лише до деяких підтипів субтипу сутності, і ви хочете, щоб ваша схема підтверджувала відсутність цих даних для інших підтипів.
У вас є деякі стовпці, які належать організації, але вам потрібно захистити ці конкретні стовпці, використовуючи більш обмежені правила доступу (наприклад, зарплата на столі працівників).
Тож ви можете бачити, що іноді драйвер - це продуктивність, іноді це чистота моделі або просто бажання повністю скористатися правилами декларативної схеми.