Атрибут | Смысл | Пример |
Data_zakaza | Дата заказа товара | 24.02.09 |
predoplata | Сумма предоплаты за товар | 800 |
Order_execution | Дата выполнения заказа | 02.03.09 |
Таблица 2.4 – Заработная плата сотрудников
Атрибут | Смысл | Пример |
oklad | Оклад сотрудника аптеки | 4000 |
premia | Премия сотрудника аптеки | 2000 |
avans | Аванс сотрудника аптеки | 1000 |
zarplata | Зарплата сотрудника аптеки | 5000 |
Таблица 2.5 – Клиенты
Атрибут | Смысл | Пример |
serial_pas_e | Серия паспорта клиента | 3234 |
number_pas_e | Номер паспорта клиента | 676767 |
name | Имя клиента | Александра |
surname | Фамилия клиента | Кургузова |
patronymic | Отчество клиента | Ивановина |
address | Адрес прописки клиента | Ул. Ленина, д97, кв. 8 |
telephone_number | Телефонный клиента | 89513302324 |
Таблица 2.6 – Поставщики
Атрибут | Смысл | Пример |
supplierid | Порядковый номер поставщика | 2 |
name | Название организации поставщика | ООО Биофарм |
address | Адрес поставщика | Ул. Кр. Армия, д.8 |
telephone | Телефон поставщика | 546523 |
Таблица 2.7 – Поставка продукции
Атрибут | Смысл | Пример |
Data_supply | Дата поставки продукции | 10.05.10 |
Time_supply | Время поставки продукции | 16.20 |
Таблица 2.8 – Продажа товара
Атрибут | Смысл | Пример |
Data_prodagi | Дата продажи продукции | 05.05.10 |
Time_prodagi | Время продажи продукции | 15.35 |
count | Количество проданной продукции | 2 |
Таблица 2.9 – Доход аптеки
Атрибут | Смысл | Пример |
Month_d | Месяц учета | июль |
Year_d | Год учета | 2009 |
Dohod_employee | Выручка сотрудника за месяц | 91233 |
Таблица 2.10 – Расходы аптеки
Атрибут | Смысл | Пример |
Month_r | Месяц учета | январь |
Year_r | Год учета | 2009 |
arenda | Сумма за аренду | 15000 |
Communal_yslygi | Сумма за коммунальные услуги | 4500 |
reklama | Сумма за рекламу | 3000 |
Vnutr_rashodi | Сумма за внутренние расходы | 10000 |
Таблица 2.11 – Бухгалтерия
Атрибут | Смысл | Пример |
month | Месяц учета | август |
year | Год учета | 2008 |
Не может быть так, что бы в один и тот же день, в одно и тоже время был оформлен заказ и прибыло два поставщика.
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, 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 Неизбыточное покрытие 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 - Построение классов эквивалентности
Определение CF-зависимостей по классам эквивалентности представлено на рисунках 2.7 – 2.11. Построение кольцевого покрытия
Минимальное кольцевое покрытие ( data_supply, vremy_postavki; ) -> supplierid ( productid, data_voz, vremy_voz; ) -> employeeid ( productid, data_zakaza, employeeid; clientid, data_zakaza, productid; ) ( 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 Получение кольцевого минимального редуцированного покрытия Естественное характеристическое множество для кольцевого покрытия f(C): data_supply, vremy_postavki -> supplierid productid, data_voz, vremy_voz -> employeeid |
Рисунок 2.7 - Построение редуцированного минимального кольцевого покрытия