Определение функциональных зависимостей

 

Не может быть так, что бы в один и тот же день, в одно и тоже время был оформлен заказ и прибыло два поставщика.

data_supply, vremy_postavki -> supplierid.

Не может такого быть, что бы один и тот же продукт, в одно и тоже время, в один и тот же день, один и тот же клиент, купил у двух и более продавцов.

productid, data_cost, vremy_cost, clientid -> employeeid.

Не может такого быть, что бы в один и тот же месяц, в один и тот же год фиксировались дважды расходы аптеки.

month_r, year_r -> arenda, kommunal_yslygi, reklama, vnutr_rashodi.

Не может такого быть, что бы в один и тот же месяц, в один и тот же год фиксировалась дважды выручка, заработанная каждым продавцом

month_d, year_d -> viruchka_emploee.

Не может такого быть, что бы один и тот же продавец фиксировался дважды за месяц и год.

employeeid -> month_d, year_d.

Не может такого быть, что бы в один и тот же месяц, в один и тот же год фиксировались дважды доходы и расходы.

month, year -> rashodid, dohodid.

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

emloyeeid -> oklad, premia, avans, zarplata.

Не может такого быть, что бы один и тот же продукт имел два одинаковых артикула.

productid -> artikulid.

 Не может такого быть, чтобы один и тот же поставщик имел 2 порядковых номера.

supplierid -> name.

Исходные функциональные зависимости представлены на рисунке 2.1

 

data_supply, vremy_postavki -> supplierid clientid, productid, data_voz, vremy_voz -> employeeid month_r, year_r -> arenda, kommunal_yslygi, reklama, vnutr_rashodi month_d, year_d -> viruchka_emploee employeeid -> month_d, year_d month, year -> rashodid, dohodid emloyeeid -> oklad, premia, avans, zarplata productid -> artikulid supplierid -> name

Рисунок 2.1 – Исходные функциональные зависимости

 

Синтез схемы базы данных на основании функциональных зависимостей

 

Построение неизбыточного покрытия

Этапы построения неизбыточного покрытия представлены на рисунке 2.2.

Построение неизбыточного покрытия.

 


 

G:  data_supply, vremy_postavki -> supplierid  clientid, productid, data_voz, vremy_voz -> employeeid  month_r, year_r -> arenda, XXXmployee_yslygi, reklama, vnutr_rashodi  month_d, year_d -> viruchka_emploee  employeeid -> month_d, year_d  month, year -> rashodid, dohodid  emloyeeid -> oklad, premia, avans, zarplata  productid -> artikulid  supplierid -> name    Неизбыточное покрытие g:  data_supply, vremy_postavki -> supplierid  clientid, productid, data_voz, vremy_voz -> employeeid  month_r, year_r -> arenda, mployee_yslygi, reklama, vnutr_rashodi  month_d, year_d -> viruchka_emploee  employeeid -> month_d, year_d  month, year -> rashodid, dohodid  emloyeeid -> oklad, premia, avans, zarplata  productid -> artikulid  supplierid -> name

Рисунок 2.2 – Построение неизбыточного покрытия

 


Построение леворедуцированного покрытия

Этапы построения леворедуцированного покрытия представлены на рисунке 2.3.

Построение леворедуцированного покрытия.

 

g:  data_supply, vremy_postavki -> supplierid  clientid, productid, data_voz, vremy_voz -> employeeid  month_r, year_r -> arenda, kommunal_yslygi, reklama, vnutr_rashodi  month_d, year_d -> viruchka_emploee  employeeid -> month_d, year_d  month, year -> rashodid, dohodid  emloyeeid -> oklad, premia, avans, zarplata  productid -> artikulid  supplierid -> name Леворедуцированное покрытие g:  data_supply, vremy_postavki -> supplierid  data_voz, vremy_voz, productid -> clientid  month_r, year_r -> arenda, kommunal_yslygi, reklama, vnutr_rashodi  month_d, year_d -> viruchka_emploee  employeeid -> month_d, year_d  month, year -> rashodid, dohodid  emloyeeid -> oklad, premia, avans, zarplata  productid -> artikulid  supplierid -> name

Рисунок 2.3 - Построение леворедуцированного покрытия

 

Построение праворедуцированного покрытия

Этапы построения праворедуцированного покрытия представлены на рисунке 2.4

Построение праворедуцированного покрытия.

 

g:  data_supply, vremy_postavki -> supplierid  productid, data_voz, vremy_voz -> employeeid  month_r, year_r -> arenda, kommunal_yslygi, reklama, vnutr_rashodi  month_d, year_d -> viruchka_emploee  employeeid -> month_d, year_d  month, year -> rashodid, dohodid  emloyeeid -> oklad, premia, avans, zarplata  productid -> artikulid  supplierid -> name   Удаление зависимостей вида X->   Праворедуцированное покрытие g:  data_supply, vremy_postavki -> supplierid  productid, data_voz, vremy_voz -> employeeid  month_r, year_r -> arenda, kommunal_yslygi, reklama, vnutr_rashodi  month_d, year_d -> viruchka_emploee  employeeid -> month_d, year_d  month, year -> rashodid, dohodid  emloyeeid -> oklad, premia, avans, zarplata  productid -> artikulid  supplierid -> name

Рисунок 2.4- Построение праворедуцированного покрытия.

Построение классов эквивалентности

Этапы построения классов эквивалентности представлены на рисунках 2.5 – 2.6. Построение классов эквивалентности.

 

Построение классов эквивалентности 1. Ef(data_supply, vremy_postavki):  data_supply, vremy_postavki -> supplierid 2. Ef(clientid, productid, data_voz, vremy_voz):  clientid, productid, data_voz, vremy_voz -> employeeid 3. Ef(month_r, year_r):  month_r, year_r -> arenda, kommunal_yslygi, reklama, vnutr_rashodi 4. Ef(month_d, year_d):  month_d, year_d -> viruchka_emploee 5. Ef(employeeid):  employeeid -> month_d, year_d 6. Ef(month, year):  month, year -> rashodid, dohodid 7. Ef(emloyeeid):  emloyeeid -> oklad, premia, avans, zarplata

Рисунок 2.5 - Построение классов эквивалентности

 

8. Ef(productid):  productid -> artikulid 9. Ef(supplierid):  supplierid -> name Построение минимального покрытия на основе прямой функциональной определяемости Редуцированное минимальное покрытие g:  data_supply, vremy_postavki -> supplierid  clientid, productid, data_voz, vremy_voz -> employeeid  month_r, year_r -> arenda, kommunal_yslygi, reklama, vnutr_rashodi  month_d, year_d -> viruchka_emploee  employeeid -> month_d, year_d  month, year -> rashodid, dohodid  emloyeeid -> oklad, premia, avans, zarplata  productid -> artikulid  supplierid -> name

Рисунок 2.6 - Построение классов эквивалентности

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: