BCNF Decomposition (Дизайн базы данных) - PullRequest
0 голосов
/ 01 августа 2011

Я пытаюсь разложить несколько таблиц на BCNF. Я полагаю, что первое разлагается правильно, но я не уверен, могут ли другие быть разложены. Любая помощь приветствуется

**make(id, name, est, founder, city, state)**

id->name;
name->est, city, state, founder;
city->state

New Relations: [Key(id),name], [Key(name),est,city,state,founder], [Key(city),state]

**model(id, makeId, name, year, category)**

id->makeId, name;
name->year, category (not superkey, but can't really decompose)

**features(id, modelId, abs, tpms, sidebags, drl)**

id->modelID, abs, tpms, sidebags, drl 

**user(id, name, pass, first, last, phone, isAdmin)**

id->name, pass, isAdmin; name->first, last, phone

**selling(id, price, modelId, mileage, userId)**

id->price, modelId, mileage, userID

1 Ответ

1 голос
/ 01 августа 2011

BCNF - это просто: просто убедитесь, что все зависимости между наборами атрибутов в одном отношении являются зависимостями от суперключа отношения. Ваш первый близок, но второе отношение должно опускать «состояние». Часто люди останавливаются на 3NF, так как не все отношения с FD имеют сохраняющие зависимость декомпозиции BCNF. Вам нужна помощь в разложении других отношений? Я помогу, если вам это нужно.

Редактировать: Справка по другим отношениям.

Продажа и характеристики в порядке. Модели и Пользователи должны быть разделены по Имени, чтобы быть в BCNF; вы указываете, что это не то, что вы можете сделать для моделей. Зачем? Название подразумевает материал справа от стрелки, верно?

...