Не может быть так, что бы в один и тот же день, в одно и тоже время был оформлен заказ и прибыло два поставщика.
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 - Построение классов эквивалентности