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

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

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

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

Файлы: 1 файл

kml_pis_2008.doc

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

 

      5.16 Формат оператора.

Добавление  внешнего ключа производится оператором  

    ALTER TABLE Имя_Таблицы

    ADD

    FOREIGN KEY (<список столбцов внешнего ключа>)

    REFERENCES <имя родительской таблицы>

    [<список  столбцов родительской таблицы>]

    [ON DELETE (NO ACTION | CASCADE | SET DEFAULT | SET NULL}]

    [ON UPDATE {NO ACTION | CASCADE I SET DEFAULT | SET NULL}] 

Параметры:

    ON DELETE:

    ON UPDATE

определяют  способы изменения подчиненных  записей дочерней таблицы при  удалении или изменении поля связи в записи родительской таблицы.  

  • Вопрос.
  • Сколько внешних ключей необходимо для организации  связи один к одному между двумя  таблицами?

    1. Один  в дочерней таблице.

    2. По  одному в дочерней и в родительской.

    3. Два  ключа в дочерней таблице.

    4. Такая  связь не допустима.

    5. Для  организации такой связи внешние  ключи не используются. 
     
     
     
     
     
     
     
     

          5.18 Реляционная диаграмма.

    Отображение связей на реляционных диаграммах

     

    Надписи на связях определяются именами оператора

      [CONSTRAINT     <имя ссылочной целостности>]  

          5.19 Проверка зависимости.

    Проверка  реляционной зависимости производится при помощи выполнения операторов управления данными: 

      INSERT, UPDATE, DELETE 

    над родительской или дочерней таблицей.

    Подготавливать  набор данных для операторов можно  с использованием окна свойств таблиц со встроенным навигатором: 

     

          5.20 Генератор.

    Механизм  генераторов предназначен для формирования автоинкрементных значений целочисленных  полей. 

      CREATE GENERATOR G_EMP;

      SET GENERATOR G_EMP TO 100; 

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

    Функция обращения к значению генератора 

      GEN_ID(Имя_Генератора, Шаг_приращения); 

    Может использоваться с операторами присвоения значений 

      INSERT, SET, UPDATE. 

          5.21 Вопрос.

    Поле  первичного ключа таблицы SQL – сервера, определенное типом данных INTEGER и заполняемое генератором БД, стартующим с 0, может обеспечить запись следующего количества уникальных значений:

      A) 2 15.

      B) 2 16.

      C) 2 32.

      D) 1024.

      E) 32000.  

          5.22 Вопросы по 3 лабораторной.

    Объяснить необходимость обязательного определения  первичного ключа в таблице.

    В чем  заключается смысл ссылочной  целостности данных в реляционной модели?

    Операторы определения ссылочной целостности  данных, каскадного обновления и удаления.

    SQL - оператор создания триггеров, алгоритмический язык проектирования триггеров.

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

    Формат  определения старых и новых значений полей ассоциированной таблицы.

    Определение тела триггера для заполнения автоинкрементного  поля значением генератора.

    Организация каскадных воздействий в таблицах при помощи триггеров.

    Использование механизма триггеров для ведения  архивов изменений в таблицах базы данных.  

          5.23 Задания СРСП.

    1. Защита  выбора механизма каскадного  ведения данных.

    2. Выбор  и защита сложного бизнес –  правила, реализуемого триггером.

    3. Ответить  на контрольные вопросы третьего  модуля [1];

    4. Провести  отладку SQL – кода спроектированных триггеров;

    5. Защитить отчет по третьей лабораторной работе;

    6. Защитить  отчет по разделу 3.3 курсовой  работы [2];

    7. Тест  первого рубежного контроля.

    8. Разработать  пример вопроса тестового задания  по теме раздела. 

          5.24 Задания СРС.

    1. Изучить  методические указания к третьей лабораторной работе [1];

    2. Ответить  на примеры тестовых заданий  к третьему модулю [1];

    3. Изучить  SQL - код триггеров, используемых в учебной БД (FONEBOOK.GDB);

    4. Проектирование  и использование генераторов;

    5. Изучение  системы помощи (HELP), утилиты InteractivSQL, операторы: CREATE TRIGGER, ALTER TRIGGER, DROP TRIGGER, CREATE GENERATOR, SET GENERATOR, INSERT, UPDATA, DELETE;

    6. Изучить конспект 5,6 лекций [3];

    7. Среда управления SQL – сервера - IBExpress.  

          5.25 Демонстрация.

    Инсталляция среды IB Expert.

    Задание параметров.

    Создание  и регистрация БД.

    Создание  объектов метаданных.

    Просмотр  свойств объектов.

    Редактирование  свойств объектов БД.

    Создание  и использование генераторов. 
     
     
     

     

    6 ТРИГГЕРЫ

     

          6.1 Механизм триггеров.

    Определение и назначение.

    Формат  оператора создания триггера.

    Основные  свойства конструкции.

    Создание  триггера в среде IB Expert.

    Особенности создания триггеров в IB Console.

    Примеры использования. 

          6.2 Определение.

    Триггер - это процедура базы данных, написанная на специальном алгоритмическом языке и автоматически вызываемая SQL-сервером при обновлении, удалении или добавлении новой записи в таблицу БД.  Триггеры всегда ассоциируется с действием по отношению к таблице.  Запуск триггера связан с выполнением одного из операторов управления данными (INSERT, UPDATE, DELETE) к определенной записи таблицы. Любой пользователь, имеющий определенные привилегии на таблицу, автоматически имеет права выполнять связанные с ней триггеры.  Непосредственно из программы к триггерам обратиться нельзя. Нельзя и передавать им входные параметры и получать от них значения выходных параметров.  

          6.3 Назначение.

    Обычно  триггера используются для:

    1. каскадного изменения в связанных таблицах;
    2. формирования автоинкрементных полей;
    3. ведение архивов записей;
    4. автоматического документирования изменений, вносимых пользователями в таблицы;
    5. автоматического контроля бизнес – правил на сервере.  
     

          6.4 Формат.

    Формат  оператора создания триггеров: 

      CREATE TRIGGER name FOR table 

      [ACTIVE | INACTIVE] 

      {BEFORE | AFTER} 

      {DELETE | INSERT | UPDATE} 

      [POSITION number] 

      AS

      DECLARE VARIABLE variable <datatype>; 

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

      BEGIN 

      <тело_триггера> 

      END   

          6.5 Параметры.

    Оператор  [ACTIVE | INACTIVE] определяет активность триггера.

    По отношению  к событию {BEFORE | AFTER}, влекущему их вызов, триггеры различаются на: выполняемые до наступления события, и выполняемые после наступления события.

    По событию  изменения таблицы БД {DELETE | INSERT | UPDATE}  триггеры различаются на вызываемые при: удалении записи, добавлении новой записи, изменении существующей записи.

    Очередность выполнения  [POSITION номер], в случае нескольких триггеров не одно действие и отношение к нему.

    В предложении  AS записывается тело в операторном блоке

    BEGIN  <тело_триггера>  END 

          6.6 Вопрос.

    Сколько триггеров можно определить к одной таблице?

    1. Один  в дочерней таблице.

    2. По  одному в дочерней и в родительской.

    3. По  количеству действий над таблицей.

    4. Определяется  спецификацией языка.

    5. Определено  в конкретной реализации СУБД. 

          6.7 Тело триггера.

    Программный код триггера (тело триггера) состоит из операторов процедурного языка, заключенного в блок

      BEGIN 

      <compound_statement>  [<compound_statement> ...]

      END  

    Программный код состоит из команд специального процедурного языка, реализуемого в  той или иной интерпретации конкретного SQL – сервера.

    Часть операторов будут рассмотрены в  следующих лекциях, посвященных  хранимым процедурам. 

          6.8 Операторы языка.

    Алгоритмический язык триггеров и хранимых процедур

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

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

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

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

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

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

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

      <  оператор  1>

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

          6.9 Операторы языка.

    Оператор  выбора  SELECT, отличие в предложении INTO

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

      WHERE TOVAR = :INTOVAR

      INTO :AVG_KOLVO, :SUM_KOLVO; 

    Оператор FOR SELECT ... DO

      FOR

      <оператор   SELECT>

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