2016-10-18 8 views
1

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

Вот что я должен сделать:

Normalize the following schema, with given constraints, to 4NF: 

Books(accessionno, isbn, title, author, publisher) 
Users(userID, name, deptID, deptname) 

Accesssionno -> isbn 
Isbn -> title 
Userid -> name 
Userid -> deptid 
Deptid -> deptname 

А вот моя попытка на него:

Books(accessionno, isbn) 
Books2(accessionno, title) 
Books3(accessionno, author, publisher) 

Users(userID, name) 
Users2(userID, deptID) 
Users3(userID, deptName) 

Что я получаю путаются является ISBN -> название и Deptid -> deptname

Я не уверен, как справиться с этими двумя функциональными зависимостями, может ли кто-нибудь оказать некоторую помощь? Я искал примеры onlnie, но я стараюсь связать это с моей конкретной проблемой. Благодарим вас за помощь, мы очень благодарны!

EDIT: взглянув на другие примеры и прочитав больше материала, это моя вторая попытка решения. Какие-либо предложения?

Books(accessionno, isbn, title, author, publisher) 
Accesssionno -> isbn 
Isbn -> title 

Normalized: 
Books1(accessionno, isbn) 
Books2(accessionno, isbn, title) 
Books3(accessionno, author, publisher) 

Users(userID, name, deptID, deptname) 
Userid -> name 
Userid -> deptid 
Deptid -> deptname 

Normalized: 
Users1(userID, name) 
Users2(userID, deptID) 
Users3(userID, deptID, deptName) 

ответ

2

Во-первых, у вас есть две разные схемы отношений, без общих атрибутов, поэтому правильно их нормализовать.

Так, начиная с первого соотношения:

Books(AccessionNo, Isbn, Title, Author, Publisher) 
AccessionNo → Isbn 
Isbn → Title 

проблема заключается в том, что нет зависимости указаны с атрибутами Author и Publisher, в то время как Клири мы можем интерпретировать отношение как описания книг, и в этом случае должно быть также два других зависимостей:

Isbn → Author 
Isbn → Publisher 

или equivalenty, можно было бы написать, что отношение имеет два зависимостей:

Books(AccessionNo, Isbn, Title, Author, Publisher) 
AccessionNo → Isbn 
Isbn → Title, Author, Publisher 

С этой «коррекции», вы можете принести соотношение в Бойс-Кодда нормальной форме, производя следующие подсхем:

R1 < (Isbn, Author, Publisher, Title), 
{ Isbn → Author 
    Isbn → Publisher 
    Isbn → Title }> 

R2 < (AccessionNo Isbn), 
{ AccessionNo → Isbn } > 

где первый имеет единственный ключ Isbn в то время как второй один имеет единственный ключ AccessionNo.

Если, с другой стороны, схема должна иметь только два функциональных зависимостей упоминалось выше, разложение в НФБК будет более сложным и не очень значительны:

R1 < (Isbn, Title) , 
{ Isbn → Title } > 

R2 < (AccessionNo, Isbn) , 
{ AccessionNo → Isbn } > 

R3 < (AccessionNo, Author, Publisher) , 
{ } > 

, в котором первое отношение имеет ключевое Isbn , второй имеет ключ AccessionNo, а третий имеет ключ (AccessionNo, Author, Publisher).

Для второго соотношения,

Users(UserID, Name, DeptID, DeptName)  
UserID → Name 
UserID → DeptID 
DeptID → DeptName 

зависимостей имеют смысл, так как схема описывает отношения с пользователями и их отделами, где каждый пользователь принадлежит к одному отделу.В этом случае Бойс-Кодда Нормальная форма определяется следующим разложением:

R1 < (UserID, Name, DeptID) , 
{ UserID → Name 
    UserID → DeptID } > 

R2 < (DeptID, DeptName) , 
{ DeptID → DeptName } > 

, в котором первое отношение имеет ключ UserID (описание пользователей), а второе отношение имеет ключ DeptID (описание отделов).

В качестве окончательного примечания: все произведенные разложения находятся в нормальной форме Boyce-Codd, и по этой причине они автоматически уже находятся в третьей нормальной форме. Они также находятся в четвертой нормальной форме, потому что нет многозначных зависимостей, для чего потребуется специальное лечение.

Смежные вопросы