Базы данных

Нормальная форма Бойса-Кодда: отсутствие неключевых зависимостей


Нормальная форма Бойса-Кодда (BCNF) имеет наиболее простое определение среди нормальных форм. Схема находится в BCNF, если она не содержит неключевых зависимостей. BCNF усиливает 3NF требованием, что первичные атрибуты не могут зависеть от неключевых атрибутов. BCNF предназначена для обработки зависимостей, возникающих в схеме, имеющей два (или более) составных ключа, содержащих по меньшей мере один общий атрибут.

В качестве примера рассмотрим показанную на 5.8 схему Supplier. Предположим, что атрибуты supplierld и supplierName определяют друг друга, и комбинация supplierld и zipcode является ключом. Этот пример моделирует ситуацию, когда компания располагает несколькими офисами в разных местах, и каждый офис рассматривается как отдельный поставщик. На следующей диаграмме показаны возникающие в этой ситуации зависимости.

Существует два возможных ключа: {supplierld, zipcode} и {supplierName, zipcode}. Зависимости между supplierld и supplierName являются неключевыми, так как ни один из атрибутов не является ключом. Хотя эти зависимости и нарушают BCNF, они не являются нарушениями 3NF, поскольку атрибуты являются первичными.

Комментарии закрыты