Нормализация базы данных - разложить ее на BCNF и найти каноническое покрытие для F - PullRequest
0 голосов
/ 22 октября 2018

Я пытаюсь выяснить каноническое покрытие для F в таблице ниже и разложить его на BCNF.- Атрибут книги

Book ID Title ISBN Publish Date Publisher ID Publisher Name Book score Author ID Author Name 

Каждая книга получила один балл и одного автора курса.

Вот данные функциональные зависимости:

Book ID - > Title, ISBN, Publish Date, Publisher ID, Publisher Name<br /> 
Book ID - > Author ID, Author Name, Book Score<br /> 
Publisher ID- > Publisher Name<br /> 
Author ID - > Author Name<br /> 

Чтобы найти каноническийЯ знаю, что правильный размер должен быть одинаковым RHS, и не должен быть посторонним для LFS.

Итак, у меня есть это:

BookID- > Title <br /> 
BookID- > ISDN<br /> 
BookID- > Publish Date<br /> 
BookID- > Publish ID<br /> 
BookID- > Publisher Name<br /> 
BookID- > Author ID<br /> 
BookID- > Author Name<br /> 
BookID- > Book Score<br /> 
Publisher ID- > Publisher Name<br /> 
Author ID - > Author Name<br /> 

Тогда я застрял и понятия не имею, как двигаться дальше ...
Чтобы разложить его на BCNF, каждый определитель является кандидатомключ, и я считаю, BookID, Publisher ID и Author ID ВСЕ кандидаты на ключ.

И я не знаю, как продолжить дальше ...

1 Ответ

0 голосов
/ 22 октября 2018

Каноническая обложка

В канонической обложке вы должны исключить зависимость BookID → PublisherName, поскольку она может быть получена из BookID → PublisherID и PublisherID → PublisherName.

Ключи-кандидаты

Тогда единственным ключом-кандидатом является BookID: PublisherID и AuthorId не ключей-кандидатов, поскольку они не определяют всеатрибуты отношения, только один из них.

Разложение в BCNF

Наконец, в этом случае легко найти BCNF, так как достаточно разложитьсвязать в трех отношениях с ключами-кандидатами три детерминанта различных функциональных зависимостей, а другие атрибуты определяют атрибуты.Однако в более сложных случаях необходимо использовать некоторый алгоритм, например, так называемый «алгоритм анализа», который вы можете найти в любой хорошей книге по базам данных.

...