Определение 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 - Построение редуцированного минимального кольцевого покрытия
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 Левая редукция или перенос в правую часть 1. Проверка CF-зависимости: (data_supply, vremy_postavki;) -> supplierid 2. Проверка CF-зависимости: (clientid, productid, data_voz, vremy_voz;) -> employeeid 3. Проверка CF-зависимости: (month_r, year_r;) -> arenda, kommunal_yslygi, reklama, vnutr_rashodi 4. Проверка CF-зависимости: (month_d, year_d;) -> viruchka_emploee 5. Проверка CF-зависимости: (employeeid;) -> month_d, year_d |
Рисунок 2.8 - Построение редуцированного минимального кольцевого покрытия
|
|
6. Проверка CF-зависимости: (month, year;) -> rashodid, dohodid 7. Проверка CF-зависимости: (emloyeeid;) -> oklad, premia, avans, zarplata 8. Проверка CF-зависимости: (productid;) -> artikulid 9. Проверка CF-зависимости: (supplierid;) -> name Проверка покрытия на праворедуцированность 1. Проверка CF-зависимости: (data_supply, vremy_postavki;) -> supplierid 2. Проверка CF-зависимости: (clientid, productid, data_voz, vremy_voz;) -> employeeid 3. Проверка CF-зависимости: (month_r, year_r;) -> arenda, kommunal_yslygi, reklama, vnutr_rashodi 4. Проверка CF-зависимости: (month_d, year_d;) -> viruchka_emploee |
Рисунок 2.9 - Построение редуцированного минимального кольцевого покрытия
5. Проверка CF-зависимости: (employeeid;) -> month_d, year_d 6. Проверка CF-зависимости: (month, year;) -> rashodid, dohodid 7. Проверка CF-зависимости: (emloyeeid;) -> oklad, premia, avans, zarplata 8. Проверка CF-зависимости: (productid;) -> artikulid 9. Проверка CF-зависимости: (supplierid;) -> name Минимальное редуцированное кольцевое покрытие C (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.10 - Построение редуцированного минимального кольцевого покрытия
Естественное характеристическое множество f(C): 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 R0 = (data_supply, vremy_postavki, supplierid) K0 = { data_supply, vremy_postavki } R1 = (clientid, productid, data_voz, vremy_voz, employeeid) K1 = { clientid, productid, data_voz, vremy_voz } R2 = (month_r, year_r, arenda, kommunal_yslygi, reklama, vnutr_rashodi) K2 = { month_r, year_r } R3 = (month_d, year_d, viruchka_emploee) K3 = { month_d, year_d } R4 = (employeeid, month_d, year_d) K4 = { employeeid } R5 = (month, year, rashodid, dohodid) K5 = { month, year } R6 = (emloyeeid, oklad, premia, avans, zarplata) K6 = { emloyeeid } R7 = (productid, artikulid) K7 = { productid } R8 = (supplierid, name) K8 = { supplierid } |
Рисунок 2.11 - Построение редуцированного минимального кольцевого покрытия
|
|
ER-схема базы данных
В приложении А приведены схемы базы данных до минимизации и после минимизации. Построение запросов на SQL
Запрос на выборку
Словесная формулировка запроса
Перечислить всех клиентов и их паспортные данные, которые приобрели продукцию компании Fuzafungin.
Текст запроса на языке SQL
Текст запроса на языке SQL представлен на рисунке 2.20.
SELECT clients.name, clients.serial_pas, clients.number_pas, product.name_product, orders.data_zakaza, orders.orderid as Number_Order; FROM ((orders JOIN sotrud s ON orders. clientid = clients. clientid) JOIN product ON orders.productid = product.productid); WHERE (product.name_product = "Fuzafungin") |
Рисунок 2.20 - Текст запроса на языке SQL