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 - Построение редуцированного минимального кольцевого покрытия
В приложении А приведены схемы базы данных до минимизации и после минимизации. Построение запросов на SQL
Перечислить всех клиентов и их паспортные данные, которые приобрели продукцию компании Fuzafungin.
Текст запроса на языке 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
Исходное дерево для запроса представлено на рисунке 2.21
q2
product
clients orders