Проектирование информационных систем

Автор работы: Пользователь скрыл имя, 20 Октября 2009 в 15:59, Не определен

Описание работы

Загайнов И.А. Проектирование информационных систем: Конспект мультимедиа лекций для студентов специальностей 050704 – Вычислительная техника и программное обеспечение, 050703 – Информационные системы.

Файлы: 1 файл

kml_pis_2008.doc

— 2.82 Мб (Скачать файл)
 

      7.5 Оператор создания.

Оператор  создания хранимой процедуры:

    CREATE PROCEDURE name

    [(param <datatype> [, param <datatype> ...])]

      [RETURNS param <datatype> [, param <datatype> ...])]

      AS  

    DECLARE VARIABLE var <datatype>;

    [DECLARE VARIABLE var <datatype>; ...] 

    BEGIN

    <compound_statement>

      [<compound_statement> ...]

    END  

      7.6 Алгоритмический язык.

Объявление  локальных переменных

    DECLARE VARIABLE <имя переменной > <тип данных>;

Операторные скобки

      BEGIN ... END

Оператор  присваивания

    Имя  переменной = выражение;  

      7.7 Операторы циклов.

Оператор  условного перехода IF... THEN ... ELSE

    IF   (<условие>)   THEN

    <  оператор  1> [ELSE

    <  оператор  2>]

Оператор  цикла FOR SELECT ... DO

    FOR

    <оператор   SELECT>

    DO

    <  оператор>;

Оператор  условного цикла WHILE ... DO

    WHILE   (<условие>)  

    DO <  оператор>  

      7.8 Оператор выбора SELECT.

    SELECT  AVG(KOLVO), SUM(KOLVO) FROM RASHOD

    WHERE TOVAR = :INJTOVAR

    INTO :AVG_KOLVO, :SUM_KOLVO;

Отличие в предложении INTO

Оператор SUSPEND возвращает полученные значения в приложение. 

      7.9 Операторы.

Оператор  завершения алгоритма

      EXIT

Оператор  вызова EXECUTE PROCEDURE

    EXECUTE PROCEDURE имя [параметр [, параметр …]]

    [RETURNING_VALUES параметр [, параметр ...]];

Оператор  генерации события POST _EVENT

    POST_EVENT  "Имя события";  

      7.10 Подразделы SQL.

Data Definition Language (DDL) – язык определения данных. Те операторы, которые затрагивают структуру данных. Создают, изменяют и удаляют объекты метаданных. Операторы – CREATE, ALTER, DROP.

 Data Manipulation Language (DML) – язык управления данными. Операторы INSERT, UPDATE, DELETE.

Data Control Language (DCL) – управление доступом к данным. Привилегии пользователей. Операторы GRANT и REVOKE.

Transaction Control Language (TCL) – язык управления изменениями, сделанными группами пользователей. Управление транзакциями. Операторы START TRANSACTION, COMMIT, ROLLBACK.

Cursor Control Language (CCL) – язык определения и управления курсором для подготовки выполнения SQL  

      7.11 Алгоритмический язык.

Язык  проектирования триггеров и хранимых процедур включает:

  1. DML и оператор SELECT.
  2. Операторы и выражения, включая UDF, связанные с БД и генераторы.
  3. Инструкции присвоения,

      control – flow инструкции,

      контекстные переменные только для триггеров,

      инструкции  обработки событий,

      инструкции  обработки ошибок.  

      7.12 Проектирование ХП. 

 

      7.13 Порядок действий.

Для проектирования ХП необходимо выполнить следующие действия:

  1. Выделить пункт «Процедуры».
  2. Вызвать контекстное меню.
  3. Выбрать пункт «Новая процедура».
  4. В открывшемся окне редактора задать:

      - имя новой процедуры;

      - входные и выходные параметры;

      - код тела процедуры;

      5.  Выполнить команду компиляции  кода (Ctrl+F9). 

      7.14 Код ХП для IBConsole.

    SET TERM ^ ;

    CREATE PROCEDURE COL_EMP

    RETURNS (NUM_D INTEGER, CNT_EMP INTEGER)

    AS BEGIN

    FOR SELECT EMPLOYEE.NUM_D, count(EMPLOYEE.TAB_NUM)

    FROM EMPLOYEE

    GROUP BY EMPLOYEE.NUM_D

      INTO :NUM_D, :CNT_EMP

    DO    SUSPEND;  END ^

    SET TERM ; ^  

      7.15 Выполнение ХП.

Выполнение  ХП действия FIND_COL учебного примера.

По  заданному наименованию подразделения, подсчитывается количество телефонов  в нем.

 

      7.16 Вызов из SQL - редактора.

Для защиты лабораторной обязательно знание вызова процедуры в окне редактора SQL – запросов.

Для вызова процедур действия:

    EXECUTE PROCEDURE FIND_COL

    (‘Кафедра  информационных систем’)

Для вызова процедур выбора:

    SELECT * FROM D_ARX(2006)  

      7.17 Изменение ХП.

Изменение хранимой процедуры производится оператором:

    ALTER PROCEDURE ИмяПроцедуры

    [(входной_параметр  тип_данных

    [,входной_параметр  тип_данных...])]

    [RETURNS (выходной_параметр тип_данных

    [,выходной_параметр  тип_данных ...])]

    AS

    <тело  процедуры>;  

      7.18 Удаление ХП.

Для удаления хранимой процедуры из базы данных используется оператор:

    DROP PROCEDURE ИмяПроцедуры;  

      7.19 Функции агрегирования.

Для построения сложных алгоритмов проверки используются агрегатные функции:

    AVG(), SUM(), COUNT(),

    MAX(), MIN(),

    CAST(),

    UPPER(),

    EXTRACT()

и оператор SELECT с использованием ключевых слов

    DISTINCT, GROUP BY, HAVING, LIKE и др.  

      7.20 EXTRACT().

Эта функция позволяет извлекать  из полей типа даты значения месяца, дня, года, часов, минут и секунд для  сравнения в предложении where.

    extract (year from arx_emp.dat_izm) = :d_emp

          month

       day

          hour

          minute

          second

Функция позволяет вычислять интервалы  времени в годах, месяцах, часах  и т.д. 

      7.21 Вопрос.

Какой тип данных имеет переменная d_emp ?

1. DATE.

2. INTEGER.

3. TIMESTAMP.

4. NUMERIC().

5. Любой из перечисленных. 

      7.22 Пример.

Пример  использования в операторе, извлечения года из поля даты:

      for select

    S_NUM, TAB_NUM, FIRST_NAME, LAST_NAME, PHONE, NUM_T, NUM_D, DEISTV

      from arx_emp where

      extract(year from arx_emp.dat_izm) = :d_emp

      into :s_num, :tab_num, :first_name, :last_name, :phone, :num_t, :num_d, :deistv

      do  

      7.23 Текущие параметры.

Для задания значения текущего времени  используются следующие служебные  операторы:

    CURRENT_DATE

    CURRENT_TIME

    CURRENT_TIMESTAMP

Например:

    UPDATE TablName SET Name Field = CURRENT_TIME;  

      7.24 Вопрос.

Функция EXTRACT() позволяет извлекать компоненты из полей типа?

1. DATE.

2. TIME.

3. TIMESTAMP.

4. Только DATE и TIMESTAMP.

5. Нет  правильного ответа. 

      7.25 Привилегии пользователя.

Для вызова хранимой процедуры из приложения, пользователю или объекту требуется  привилегия EXECUTE на нее, задаваемая оператором:

    GRANT

    EXECUTE ON PROCEDURE ИмяПроцедуры    

    TO {<Пользователь>}   ;

На  момент выполнения операторов все объекты метаданных и пользователи должны быть определены.  

      7.26 Приложение Delphi.

     Демонстрация  работы хранимых процедур при помощи вызова их в среде разработки Delphi.

     Для обращения к хранимой процедуре  выбора в приложении клиента используется компонент TQuery. Вызов хранимой процедуры производится в предложении FROM оператора SELECT с указанием входных параметров процедуры. Выходные параметры процедуры (все или часть) указываются в качестве возвращаемых значений оператора SELECT.

     Компонент IBStoredProc предназначен для вызова хранимых процедур действия SQL - сервера. Для вызова каждой хранимой процедуры в приложении лучше использовать собственный компонент. 

      7.27 Технология IBExpress.

Вкладка Delphi – «InterBase». Компоненты:

 

      7.28 Вызов ХП выбора.

Новый проект с одной формой для вызова ХП «FIND_DIV»

 

      7.29 Соединение с БД.

Для настройки параметров соединения вызываем окно редактора (Database Editor) компонента базы данных и устанавливаем имя пользователя, пароль, кодировку символов и убираем флаг в поле Login Prompt, после чего можно активизировать соединение.

 

      7.30 Связи компонентов.

    1. IBTransaction и IBDatabase 

Информация о работе Проектирование информационных систем