🗊Презентация Пример проектирования бизнес логики

Категория: Информатика
Нажмите для полного просмотра!
Пример проектирования бизнес логики, слайд №1Пример проектирования бизнес логики, слайд №2Пример проектирования бизнес логики, слайд №3Пример проектирования бизнес логики, слайд №4Пример проектирования бизнес логики, слайд №5Пример проектирования бизнес логики, слайд №6Пример проектирования бизнес логики, слайд №7Пример проектирования бизнес логики, слайд №8Пример проектирования бизнес логики, слайд №9Пример проектирования бизнес логики, слайд №10Пример проектирования бизнес логики, слайд №11Пример проектирования бизнес логики, слайд №12Пример проектирования бизнес логики, слайд №13

Вы можете ознакомиться и скачать презентацию на тему Пример проектирования бизнес логики. Доклад-сообщение содержит 13 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Курс «Базы данных»

Тема: Пример проектирования бизнес-логики.
Барабанщиков
Игорь Витальевич
Описание слайда:
Курс «Базы данных» Тема: Пример проектирования бизнес-логики. Барабанщиков Игорь Витальевич

Слайд 2





План лекции
Реализация правил бизнес-логики с помощью триггеров и хранимых процедур для БД «Продажи продуктов».
Описание слайда:
План лекции Реализация правил бизнес-логики с помощью триггеров и хранимых процедур для БД «Продажи продуктов».

Слайд 3





Денормализация таблицы «Продукты»
Описание слайда:
Денормализация таблицы «Продукты»

Слайд 4





Денормализованная таблица
В процессе физического проектирования таблица «Продукты» была денормализована.
В таблицу «Продукты» было добавлено поле «Количество».
Для поддержания согласованности БД надо использовать серверную логику – триггеры или хранимые процедуры.
Создадим триггеры для таблиц «Поставки» и «Продажи».
Описание слайда:
Денормализованная таблица В процессе физического проектирования таблица «Продукты» была денормализована. В таблицу «Продукты» было добавлено поле «Количество». Для поддержания согласованности БД надо использовать серверную логику – триггеры или хранимые процедуры. Создадим триггеры для таблиц «Поставки» и «Продажи».

Слайд 5





Триггер для таблицы «Поставки»
Триггер должен реализовывать следующее бизнес-правило:
Если количество поставленного продукта –положительное  число,  то  разрешить вставку  записи  и  обновить  остаток  в таблице «Продукты».
Иначе выдать сообщение об ошибке.
Описание слайда:
Триггер для таблицы «Поставки» Триггер должен реализовывать следующее бизнес-правило: Если количество поставленного продукта –положительное число, то разрешить вставку записи и обновить остаток в таблице «Продукты». Иначе выдать сообщение об ошибке.

Слайд 6





Реализация триггера
create or replace trigger fps_tr_supply_ins
    after insert on fps_tt_supply  
    for each row
begin
    if :new.quantity  >  0 then
        update fps_ts_product p
             set p.quantity = p.quantity + :new.quantity
             where p.product_id = :new.product_id;
    else
        raise_application_error(-20001,'Недопустимое
                   количество');
    end if;     
end fps_tr_supply_ins;
Описание слайда:
Реализация триггера create or replace trigger fps_tr_supply_ins after insert on fps_tt_supply for each row begin if :new.quantity > 0 then update fps_ts_product p set p.quantity = p.quantity + :new.quantity where p.product_id = :new.product_id; else raise_application_error(-20001,'Недопустимое количество'); end if; end fps_tr_supply_ins;

Слайд 7





Триггер для таблицы «Продажи»
Триггер должен реализовывать следующее бизнес-правило:
Если «Количество»  товара в таблице «Товары» больше или равно чем количество продаваемого товара, то разрешить продажу и обновить остаток товара.
Иначе выдать сообщение об ошибке.
Описание слайда:
Триггер для таблицы «Продажи» Триггер должен реализовывать следующее бизнес-правило: Если «Количество» товара в таблице «Товары» больше или равно чем количество продаваемого товара, то разрешить продажу и обновить остаток товара. Иначе выдать сообщение об ошибке.

Слайд 8





Реализация триггера
create  or  replace  trigger  fps_tr_sale_ins
    before  insert  on  fps_tt_sale  
    for  each  row
declare
    v_cnt_prod   fps_ts_product.quantity%type;    
begin
    select  p.quantity  into  v_cnt_prod
        from  fps_ts_product p
        where  p.product_id = :new.product_id
        for  update  nowait; 

    if  v_cnt_prod  >=  :new.quantity then
        update  fps_ts_product t
            set  t.quantity = t.quantity - :new.quantity
            where  t.product_id = :new.product_id;
    else
        raise  e_invalid_count;
    end if;  
end  fps_tr_sale_ins;
Описание слайда:
Реализация триггера create or replace trigger fps_tr_sale_ins before insert on fps_tt_sale for each row declare v_cnt_prod fps_ts_product.quantity%type; begin select p.quantity into v_cnt_prod from fps_ts_product p where p.product_id = :new.product_id for update nowait; if v_cnt_prod >= :new.quantity then update fps_ts_product t set t.quantity = t.quantity - :new.quantity where t.product_id = :new.product_id; else raise e_invalid_count; end if; end fps_tr_sale_ins;

Слайд 9





Процедура вставки в таблицу «Поставки»
Процедура должна выполнять проверки:
Корректности даты поставки – д.б. меньше или равна текущей дате.
Корректности даты изготовления – д.б. меньше или равна текущей дате.
Цены продукта – д.б. в диапазоне от 1 до 1000.
Описание слайда:
Процедура вставки в таблицу «Поставки» Процедура должна выполнять проверки: Корректности даты поставки – д.б. меньше или равна текущей дате. Корректности даты изготовления – д.б. меньше или равна текущей дате. Цены продукта – д.б. в диапазоне от 1 до 1000.

Слайд 10





Реализация  процедуры
create or replace procedure supply_ins
 (   p_supply_date  in  date,
     p_provider_id  in  number,
     p_product_id   in  number,
     p_quantity     in  number,
     p_price        in  number,
     p_create_date  in  date) 
is  
begin
  if  p_supply_date  >  trunc(sysdate)  then
        raise_application_error(-20001,'Неправильная дата поставки');
  end if;   
  if  p_supply_date  >  trunc(sysdate)  then
        raise_application_error(-20001,'Неправильная дата изготовления');
  end if;  
  if  (p_price < 1)  or  (p_price > 1000)  then
        raise_application_error(-20001,'Неправильная цена');
  end if;  
  insert  into  fps_tt_supply(supply_date, provider_id, product_id,
                            quantity, price, create_date)
              values(p_supply_date, p_provider_id, p_product_id,
                      p_quantity, p_price, p_create_date);
  commit;                    
end  supply_ins;
Описание слайда:
Реализация процедуры create or replace procedure supply_ins ( p_supply_date in date, p_provider_id in number, p_product_id in number, p_quantity in number, p_price in number, p_create_date in date) is begin if p_supply_date > trunc(sysdate) then raise_application_error(-20001,'Неправильная дата поставки'); end if; if p_supply_date > trunc(sysdate) then raise_application_error(-20001,'Неправильная дата изготовления'); end if; if (p_price < 1) or (p_price > 1000) then raise_application_error(-20001,'Неправильная цена'); end if; insert into fps_tt_supply(supply_date, provider_id, product_id, quantity, price, create_date) values(p_supply_date, p_provider_id, p_product_id, p_quantity, p_price, p_create_date); commit; end supply_ins;

Слайд 11





Процедура вставки в таблицу «Продажи»
Процедура должна выполнять проверки:
Корректности даты продажи – д.б. меньше или равна текущей дате.
Количества продаваемого продукта – нельзя за одну операцию продавать более 100 единиц товара и менее 1.
Обрабатывать исключительную ситуацию – продажа большего количества продукта, чем имеется в наличии.
Описание слайда:
Процедура вставки в таблицу «Продажи» Процедура должна выполнять проверки: Корректности даты продажи – д.б. меньше или равна текущей дате. Количества продаваемого продукта – нельзя за одну операцию продавать более 100 единиц товара и менее 1. Обрабатывать исключительную ситуацию – продажа большего количества продукта, чем имеется в наличии.

Слайд 12





Реализация  процедуры
create  or  replace  procedure  sale_ins 
(   p_sale_date  in fps_tt_sale.sale_date%type,
    p_product_id in fps_tt_sale.product_id%type,
    p_quantity   in fps_tt_sale.quantity%type,
    p_price      in fps_tt_sale.price%type)
Is
    e_invalid_count   exception;
begin
    if  p_sale_date  >  trunc(sysdate)  then
        raise_application_error(-20001,'Неправильная дата продажи');
    end if;   
    if  (p_quantity < 1)  or  (p_quantity > 100)  then
        raise_application_error(-20001,'Недопустимое количество');
    end if;   
    insert  into  fps_tt_sale(sale_date, product_id, quantity, price)
        values(p_sale_date, p_product_id, p_quantity, p_price);
    commit;   
exception
    when  e_invalid_count  then  
        rollback;
        raise_application_error(-20001,'Недостаточно товара для продажи');
     when  others  then
         rollback;
end sale_ins;
Описание слайда:
Реализация процедуры create or replace procedure sale_ins ( p_sale_date in fps_tt_sale.sale_date%type, p_product_id in fps_tt_sale.product_id%type, p_quantity in fps_tt_sale.quantity%type, p_price in fps_tt_sale.price%type) Is e_invalid_count exception; begin if p_sale_date > trunc(sysdate) then raise_application_error(-20001,'Неправильная дата продажи'); end if; if (p_quantity < 1) or (p_quantity > 100) then raise_application_error(-20001,'Недопустимое количество'); end if; insert into fps_tt_sale(sale_date, product_id, quantity, price) values(p_sale_date, p_product_id, p_quantity, p_price); commit; exception when e_invalid_count then rollback; raise_application_error(-20001,'Недостаточно товара для продажи'); when others then rollback; end sale_ins;

Слайд 13





Итоги
Выполнена реализация бизнес-логики для таблиц «Поставки», «Продукты», «Продажи».
Аналогично можно реализовать бизнес-логику для других таблиц. 
Например, при уменьшении количества продукта ниже определенного порога – автоматически делать заказ этого продукта.
Описание слайда:
Итоги Выполнена реализация бизнес-логики для таблиц «Поставки», «Продукты», «Продажи». Аналогично можно реализовать бизнес-логику для других таблиц. Например, при уменьшении количества продукта ниже определенного порога – автоматически делать заказ этого продукта.



Похожие презентации
Mypresentation.ru
Загрузить презентацию