إضافة معرف بديل مثل id قد تسهل الإشارة إلى الصف، لكنها لا تمحو التبعيات الموجودة بين بقية الأعمدة. عند تقييم الصيغة الطبيعية الثانية، نفحص جميع المفاتيح المرشحة، وليس المفتاح الذي اخترناه ليكون أساسيًا فقط. قد يبقى مفتاح مركب مرشحًا حتى بعد إضافة معرف منفرد جديد.
افترض أن الزوج (order_id, book_id) يظل فريدًا وإلزاميًا، وأن أيًا من جزأيه ليس فريدًا وحده. يمثل الزوج مفتاحًا مرشحًا آخر إلى جانب id. إذا كان عنوان الكتاب يعتمد على معرف الكتاب وحده، تبقى التبعية الجزئية إلى جزء من هذا المفتاح المركب قائمة بعد إضافة المعرف البديل.
مثال
CREATE TABLE order_books (
id INT PRIMARY KEY,
order_id INT NOT NULL,
book_id INT NOT NULL,
book_title VARCHAR(100),
UNIQUE (order_id, book_id)
);
يمكن أن يتكرر عنوان الكتاب في طلبات كثيرة رغم اختلاف قيم id. لذلك لا تعالج إضافة المفتاح وحدها مشكلة تحديث العنوان في عدة مواضع. الحل التصميمي هو فصل حقيقة عنوان الكتاب عن علاقة وجوده داخل طلب معين.
باختصار: افحص التبعيات على جميع المفاتيح المرشحة؛ المفتاح البديل لا يضمن التطبيع تلقائيًا.
هل تريد تعلّم SQL خطوة بخطوة مع تمارين عملية؟ تابع مسار SQL من الأساسيات للاحتراف.