Реферат по предмету "Информатика"


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

--PAGE_BREAK--ВВЕДЕНИЕ


            Краткое описание дисциплины.

            Загайнов Иван Александрович – старший преподаватель кафедры «Информационные системы». 

Выпускник физического факультета Новосибирского Государственного университета по специальности «Автоматизация физико-технических измерений». На протяжении двадцати лет занимался разработкой и внедрением автоматизированных информационных комплексов на предприятиях города и области («Проектно-конструкторского бюро АСУ», ОАО «Казахтелеком», СП «Arna-Sprint Data Communications»). Участвовал в открытии телекоммуникационного узла сети передачи данных «KAZNET» в городе Усть-Каменогорске, построении корпоративных сетей на всех крупных предприятиях региона, банках, государственных учреждениях, открытии первого узла доступа к сети Интернет. Комната Г3-311, тел. 540-356.

            Дисциплина Проектирование информационных систем (PIS) является профилирующей дисциплиной, выбираемой бакалаврами из блока KV 4302 Каталога элективных дисциплин специальности.

Читается, как правило, на старших курсах и входит в блок дисциплин для сдачи государственного экзамена.

            Основой сложных информационных систем (ИС) являются современные системы управления базами данных. Один из основных компонентов ИС представлен промышленными SQL – серверами. В рамках дисциплины слушатели изучают основы проектирования и построения сложных информационных комплексов с использованием клиент – серверной архитектуры, способных обеспечивать работу большого количества пользователей.

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

-    управления SQL – сервером;

-    проектирования и управления серверными базами данных;

-    разработки приложений пользователей в среде Delphi.

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

            Лабораторный практикум и СРСП проводятся в компьютерных классах Технопарка «Алтай» и УВЦ ВКГТУ. Для выполнения всех заданий лабораторного практикума и курсовой работы используется один пример предметной области.

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

            Выполнение всех видов работ обеспечивает получение студентами навыков работы с технической периодической литературой, поиском дополнительной информации, включая информационные ресурсы сети Интернет. Студенты учатся самостоятельно осваивать Case — средства разработки ИС.

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

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





1 ВВЕДЕНИЕ В ДИСЦИПЛИНУ


1.1 Содержание.

Учебный план дисциплины.

Определение информационной системы.

Теоретические основы проектирования ИС.

-  компоненты ИС.

-  декомпозиция, подсистемы.

-  архитектура ИС.

-  структура ИС.

Входной контроль по дисциплинам:

«Организация вычислительных систем и сетей»

«Инструментальные средства разработки программ»

«Моделирование информационных процессов и систем»

«Прикладное программирование (ИС)»

«Проектирование персональных баз данных (ИС)»
1.2 Цели дисциплины.

Участие в реализации проектов предприятий города, области, республики на всех этапах реализации ИС. 

Поиск тем для прохождения практики, дипломного проектирования.

Рекомендации по выбору тематики и мест прохождения дипломной практики и выполнения дипломных работ.

Поиск мест трудоустройства (без рекомендаций).
В результате изучения дисциплины бакалавры должны:

— знать основные принципы и этапы проектирования ИС, состав и содержание работ на каждом этапе, состав и содержание нормативов, регламентирующих процессы проектирования ИС, состав и содержание проектно-конструкторской и программной документации, методики оценки качества системотехнического решения;

— уметьразработать архитектуру ИС с учетом сформулированного критерия эффективности; на основе анализа информационных потребностей пользователя осуществить выбор состава функциональной и обеспечивающих компонентов ИС состав пользовательского интерфейса, спроектировать структуру и типовые подсистемы ИС, разработать соответствующие спецификации и  документацию;

— иметь представление о способах и методах коллективной разработки проекта, методах сетевого планирования и управления, инструментальных средствах программной инженерии и case-технологии проектирования ИС.
            1.3 Вопрос.

Сколько программистов, сколько лет разрабатывают такие системы как Windowsили «1С Предприятие»?

Объем работ должен соответствовать способностям студента.
            1.4 Распределение часов.




1.5 Лекции.

Излагается общий теоретический материал, приводятся примеры внедрения ИС на предприятиях региона.

Проектируется пример лабораторных работ (телефонный справочник предприятия или тема, предложенная студентами).

Проводится подготовка к рубежному контролю (тестированию).

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

Методическая помощь в выборе среды проектирования и разработки ИС.

Кто уже работает по специальности?
1.6 Лабораторные.

Выполнение и защита лабораторного практикума по индивидуальным темам (предметным областям).

Защита лабораторной работы это:

-  ответы на вопросы;

-  демонстрация навыков;

-  выполнение заданий преподавателей.

Курс предусматривает выполнение шести лабораторных работ.
1.7 Лабораторная работа 1.

РАЗРАБОТКА ТЕХНИЧЕСКОГО ЗАДАНИЯ.

Выбор студентом предметной области:

-  определение бизнес — функции предприятия;

-  выбор проектируемого бизнес – процесса, при необходимости его декомпозиция;

-  определение бизнес – правил.

Изучение аппаратно – программного комплекса учебной аудитории.
1.8 Лабораторная работа 2.

SQL– СЕРВЕР INTERBASE.

Изучение функциональных возможностей SQL-сервера:

-  инсталляция и настройка сервера.

-  изучение основных функций администратора сервера.  IBConsol – интегрированный графический пользовательский интерфейс.

-  SQL — операторы создания серверных БД, таблиц (Tables), представлений (Views) и доменов (Domains).

-  определение пользователей и их привилегий (Grant, Revoke).

-  ведение данных на сервере (Insert, Update, Delete).
1.9 Лабораторная работа 3.

СРЕДСТВА ПОДДЕРЖКИ ЦЕЛОСТНОСТИ ДАННЫХ.

Проектирование средств поддержки ссылочной и смысловой целостности данных серверной БД. Реализации бизнес – правил на стороне  SQL – сервера при помощи триггеров.

Проектированию подлежат:

-  первичные ключи (Primary Keys).

-  внешние ключи (Foreign Keys).

-  проектирование реляционных связей таблиц.

-  определение целостности (Referential Integrity).

-  триггеры серверной БД (Triggers).

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

Использование триггеров для реализации бизнес — правил на стороне сервера
1.10 Лабораторная работа 4.

ХРАНИМЫЕ ПРОЦЕДУРЫ (StoredProcedure).

В процессе выполнения лабораторных работ студенты проектируют элементы бизнес логики системы (механизмы поиска данных, ведение данных, алгоритмические вычисления) при помощи хранимых процедур.

Проектированию подлежат:

-  хранимые процедуры выбора, реализующие сложный поиск данных;

-  хранимые процедуры действия для ведения данных;

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

Отладка хранимых процедур в локальном режиме.

Вызов хранимых процедур из приложения клиента.
1.11 Лабораторная работа 5.

Клиент – серверные архитектуры систем.

Выбор технологии доступа к БД (IBExpress, BDE, dbExpress, ADO).

Проектирование модуля данных клиентского приложения (DataModule).

Функции авторизации и подключения к серверу.

Проектирование функции управления транзакциями.

Формирование наборов данных (НД) клиентского приложения.

Проектирование функций хранения данных на стороне клиента.
1.12 Лабораторная работа 6.

Проектирование приложения клиента.

Функции ведения данных в серверной БД.

Проектирование управления данными в таблицах большого объема.

Разработка интерфейсной части клиентского приложения.

Тестирование разработанной информационной системы.

Определение времени выполнения сложного поискового запроса к БД.

Составление (спецификации) описания ПО.
1.13 Курсовая работа.

Содержит 5 разделов, материал работы всего учебного семестра.

Например, проектирование хранимых процедур на лабораторных занятиях.

Защита:

-  пояснительная записка;

-  демонстрация;

-  знание предметной области;

-  программные средства.
            1.14 Рейтинговая оценка.



            1.15 Самостоятельная работа.

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

-  типы данных SQL– сервера InterBase.

-  агрегатные функции SQL– сервера IB.

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

-  изучение механизма индексов.

-  механизм событий в многозвенных ИС.

-  среда управления SQL – сервера — IBExpert.
            1.16 Учебный материал.

1.      Лекционный материал.

2.      Методические материалы лабораторного практикума.

3.      Электронные методические пособия.

4.      Литература библиотечного фонда.

5.      Источники сети Интернет, материалы периодических изданий.

6.      Промышленная документация по Delphi.

7.      HELPсреды разработки приложений Delphi.

8.      Учебные примеры БД и приложений.
            1.17 Защита лабораторных работ.

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

При разработке выбранной предметной области, необходимо использовать как можно больше типов данных, агрегатных функций.

Выполняя работу, получить ответы на, приведенные к лабораторной работе, вопросы.

При защите, по заданию преподавателя, производить выполнение указанных операторов, создание объектов метаданных, пользователей их привилегий.

При защите лабораторных работ можно пользоваться всеми электронными справочниками. Умение использования справочников оценивается при защите работ.
            1.18 Вопрос.

Какой компонент не относится к информационной системе?

1. Технические средства (аппаратное обеспечение).

2. Программное обеспечение.

3. Персонал.

4. Бизнес — процессы.

5. Устройства для ручных операций.
            1.19 Определение системы.

Используемое понятие «комплекс средств автоматизации» в методических указаниях РД 50-680-88 и «автоматизированная система», определяемая как:

«В процессе функционирования автоматизированная система представляет собой совокупность комплекса средств автоматизации, организационно-методических и технологических документов и специалистов, использующих их в процессе своей профессиональной деятельности», трансформируется в системное определение ГОСТ Р ИСО/МЭК 12207:99.

«Система (
system
) — это комплекс, состоящий из бизнес-процессов, технических и программных средств, устройств и персонала, обладающий возможностью удовлетворять установленным потребностям или целям».
            1.20 Система ISO/IEC TR 15271.

            1.21 Трансформация определения.

Основные направления трансформации:

-  в основе лежит учет бизнес – целей участников;

-  пользователь (потребитель услуг) рассматривается как участник системы;

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

            Системное проектирование (толкование INCOSE) — дисциплина разработки продуктов или процессов на основе концепции систем. Оно фокусируется на определении потребностей заказчика и требуемых функций системы, установлении требований, выполнении конструкторского синтеза и аттестации с согласованием, как бизнес — аспектов, так и технических аспектов данной задачи. Интегрирует необходимые дисциплины и группы специалистов в одну команду на протяжении всего жизненного цикла разработки (развития) системы.
            1.22 Стоимостный анализ.

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

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

Закреплен переход к рассмотрению проектов и проектных программ как инвестиционных акций.

При этом в инвестиционной деятельности проекты анализируются и рассматриваются не как чисто финансовые акции, но с содержательной (в том числе — функциональной, архитектурной, технической) стороны.
            1.23 Классификация.

Классификация систем по размерам и стоимости.

Малые, локальные бухгалтерское и складское ПО.         500 – 5000 $.

            АРМ – автоматизированное рабочее место. «1С».

            FoxPro, Paradox, dBase, Access.

Интегрированные системы управления финансового учета.

            Примеры: «БЭСТ», «Галактика», «Scala», …         10 – 100 000$.

Системы управления предприятием (ERP/MRPII), реализующие:

ERP- Enterprise resource planning (планированиересурсовпредприятия).

MRP– Manufacturingresourceplanning.                      5 – 10 $ млн
            1.24 Функции ERP систем.

Финансовое управление и составление отчетности.

Обеспечение производственного процесса (планирование, управление).

Управление продажами.

Управление закупками.

Управление хранением и перемещением.

Управление техобслуживанием и ремонтом.

Управление персоналом.

            Примеры:

R/3(SAP), Triton (Baan), Oracle Application,…
            1.25 Компоненты.

Сервер (ы);

Клиентские станции;

Коммуникационные средства;

Серверное ПО (Операционные системы, системы администрирования, системы мониторинга, например, сетевой монитор или монитор транзакций);

СУБД(Inter Base, Microsoft SQL,  Sybase SQL, Oracle);

Прикладное ПО (EPR – Система управления ресурсами предприятия);

Разработанное пользователем;

Проектировщики;

Пользователи;

Бизнес – процессы;

Все остальное (приспособления).
            1.26 Архитектура ИС.

1. Локальная архитектура. Один пользователь, один компьютер, одна среда работы,  например:

      БД,

      BDE,

      клиентское приложение.

   Называется, как правило, АРМ – автоматизированное рабочее место.

 

2. Файл – серверная архитектура. Один файловый сервер, сеть, технология доступа к БД (BDE), небольшое количество клиентов, работающих с копиями наборов данных, обладающих одинаковыми правами.

            Целостность БД обеспечивается клиентскими приложениями.

 

3. Клиент серверная архитектура. Для управления базами данных используется специализированное программное обеспечение (СУБД), например SQL – сервер «InterBase».

            Уменьшение сетевого трафика (объема передаваемых данных).

            Правила поддержки целостности данных переводятся на сервер и одинаковы для всех приложений.
            1.27 Трехзвенная архитектура.

4. Рисунок (пункт 9.10).
            1.28 Интернет.

5. Интернет/Интранет/Экстранет.

Использование интернет как телекоммуникационной среды.

Использование Web – сервера и соответствующих технологий доступа к БД.

В качестве клиента используется браузер, например, InternetExplorer.
            1.29 Вопросы по 1 лабораторной работе.

Определение и основные свойства бизнес — функции.

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

Определение бизнес – процесса, примеры бизнес — процессов.

Принципы декомпозиции сложных систем.

Что является источником бизнес – процессов.

Ограничения ссылочной целостности SQL– сервера.

Ограничения значений полей таблицы.

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

Особенности реализации ограничений в ИС с различной архитектурой.

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

Типы данных, используемых в SQL– сервере InterBase.
            1.30 Задания СРСП.

1. Входной контроль по дисциплинам «Программирование», «Базы данных»;

2. Защита модели выбранного бизнес – процесса;

3. Защита разработанных бизнес – правил;

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

5. Провести проверку SQL – кода создания БД;

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

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

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

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

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

3. Выбор предметной области для выполнения лабораторных работ;

4. Выбор предметной области курсового проекта;

5. Установка на персональном компьютере SQL – сервера InterBase;

6. Проверка работоспособности среды управления сервером;

7. Изучить SQL— код создания учебной БД (FONEBOOK.GDB);

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

9. Изучение функции среды управления: CREATEDATABASE, DROPDATABASE, REGISTERDATABASE, CONNECT, DISCONNECT;

10. Изучить конспект 1,2 лекций[3];
            1.32 Демонстрация.

Инсталляция, работа учебного примера.

Инсталляция SQL – сервера InterBase.

Запуск утилиты IBConsole.

Подключение и регистрация сервера.

Работа со справочным материалом.




    продолжение
--PAGE_BREAK--2 Технологии и методы проектирования


Технология и методы проектирования.

Основные стадии и этапы технологической схемы проектирования ИС.

Основные процедуры технологии проектирования: анализ, моделирование, синтез, оптимизация и принятие решений.

Разработка бизнес-плана создания ИС.

Разработка, согласование и утверждение технического задания.

Проектирование функциональной части ИС.

Использование функционального подхода к проектированию состава и структуры ИС.

Использование теории бизнес — процессов и бизнес — правил.
            2.1 Концепция проектирования ИС.

Система.

Декомпозиция, принципы иерархии.

Внешняя среда.

Методологические принципы проектирования ИС:

-  концептуальное проектирование;

-  логическое проектирование;

-  физическое проектирование.

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

            1.Заданной последовательности выполнения технологических операций проектирования.

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

            3.Графические и  текстовые средства,  используемые  для  описания  проектируемой  системы.
            2.2 Задачи

.

Разработка бизнес-плана создания ИС.
Разработка, согласование и утверждение технического задания.

Знакомство с проектной деятельностью предприятий.
            2.3 Определение

.

Бизнес функция предприятия (БФ) – функциональный базис для всех технологических и административно – хозяйственных процедур.

Существую три основных свойства бизнес-функции:

-  Нормируеммость (формальные единицы измерения или система координат);

-  Исчисляемость (Масштабируемость);
-  Возможность количественной оценки.

В пункте 3.1.2 МУ к курсовому проектированию — пример описания деятельности ВКГТУ (фрагмент устава университета).
            2.4 Бизнес-процесс

.

Бизнес-процесс – это описание технологии достижения результата в определенном функциональном базисе.  Также это формализованное описание заданных управляемых процедур, включая как выполненные этим набором функции, так и используемые им данные. Состав и взаимоотношения затрагиваемых им организационных подразделений и единиц.

Из этих определений можно сделать вывод, что бизнес-процесс является составной частью бизнес — функции. Им описываются более конкретные задачи проекта (ИС). Множество процессов, объединенных одной функцией, решают множество задач, что обеспечивает достижение единой цели, стоящей перед ИС.

Для обеспечения целостности данных и согласованности процессов в ИС необходимо соблюдать некоторые ограничения, обеспечивающие механизм управления процессами и операциями над данными.
            2.5 Вопрос.

Какие модели проходили в специальных дисциплинах?
            2.6 Бизнес — правила

.

Бизнес — правила (БП) – это механизм управления БД и предназначено для поддержания БД в целостном состоянии, а также для выполнения других действий, например, накапливания статистики работы с БД.

            Бизнес — правила(БП) задают ограничения на значения данных в БД. Они также определяют механизмы, согласно которым при изменении одних данных изменяются и связанные с ними данные в той же или других таблицах БД. Таким образом, бизнес — правила определяют условия поддержания БД в целостном состоянии.

            Идеология архитектуры «клиент-сервер» требует переноса максимально возможного числа БП на сервер.
            2.7 Преимущества

.

К преимуществам такого подхода относятся:

-  гарантия целостности БД, поскольку БП сосредоточены в едином месте (в базе данных);

-  автоматическое применение БП, определенных на сервере БД, для любых приложений;

-  отсутствие различных реализаций БП в разнотипных клиентских приложениях, работающих с БД;

-  быстрое срабатывание БП, поскольку они реализуются на сервере и, следовательно, нет необходимости посылать данные клиенту, увеличивая при этом сетевой трафик;

-  доступность изменений, внесенных в БП на сервере, для всех клиентских приложений, работающих с настоящей БД, и отсутствие необходимости повторного распространения измененных приложений клиентов среди пользователей.
            2.8 Недостатки

.

К недостаткам хранения бизнес — правил на сервере можно отнести:

-  отсутствие у клиентских приложений возможности реагировать на некоторые ошибочные ситуации, возникающие на сервере при реализации БП (например, игнорирование приложениями, написанными на Delphi,ошибок при выполнении хранимых процедур на сервере);

-  ограниченность возможностей SQLи языка хранимых процедур и триггеров для реализации всех возникающих потребностей определения БП.

            На практике в клиентских приложениях реализуют лишь такие бизнес — правила, которые трудно или невозможно реализовать с применением средств сервера. Все остальные БП переносятся на сервер.
            2.9 Примеры

.

Примеры реализации в МУ к лабораторной работе.
В первую очередь бизнес — правила реализуют следующие ограничения БД:

-  задание допустимого диапазона значений;

-  задание значения по умолчанию;

-  требование уникальности значения

-  запрет пустого значения

-  ограничение ссылочной целостности.

Бизнес — правила можно реализовать на физическом и программном уровне. В первом случае эти правила задаются при создании таблиц и входят в структуру БД.

На программном уровне бизнес — правила можно реализовать в сервере и в приложении.

Для реализации бизнес — правил в сервере обычно используются триггеры и хранимые процедуры.
            2.10 Вопрос

.

Зачем производится декомпозиция сложных функций?
            2.11 Декомпозиция БФ

.

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

           

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

-  каждая подсистема должна реализовывать единственную функцию системы, атомарную с точки зрения пользователя;
-  функция каждой подсистемы должна быть легко понимаема независимо от сложности ее реализации;
-  связь между подсистемами должна вводиться только при наличии связи между соответствующими функциями системы;

-   связи между подсистемами (интерфейсы подсистем) должны быть простыми, насколько это возможно, для обеспечения независимости между ними.
            2.12 Иерархия процессов

.

2. Второй важной идеей, лежащей в основе структурных методов, является идея иерархии.

            Для «понимаемости» сложной системы недостаточно разбиения ее на части, необходимо эти части организовать определенным образом, а именно в виде иерархических структур. Все сложные системы Вселенной организованы в иерархии. Да и сама она включает галактики, звездные системы, планеты, …, молекулы, атомы, элементарные частицы.

            Человек при создании сложных систем также подражает природе. Любая организация имеет директора, заместителей по направлениям, иерархию руководителей подразделений, рядовых служащих (организационно – штатная структура предприятия).
            2.13Графические нотации

.

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

Известно, что “одна картинка стоит тысячи слов”.

Существует наиболее устоявшийся перечень атрибутов, которые модель бизнес-процессов должна описывать на изобразительном уровне, а именно:

-  воздействия, инициирующие каждый шаг бизнес — процесса;
-  исполнители каждого шага (это могут быть как люди, так и программы и механизмы);
-  воздействия, регламентирующие данный шаг (законодательные акты, рыночные условия и т. п.);
-  результат, получаемый на выходе конкретного шага бизнес — процесса.
            2.14Пример

.

           

Анализ.

Частота издания телефонного справочника предприятия.

Его объем и себестоимость.

Количество исправлений – изменений за определенный срок.

Количество устанавливаемых, например, ежедневно контактов.

Среднее время установления контакта (нормирование).

Влияние рассмотренных факторов на деятельность предприятие, на его основные показатели.

            Решение: разработать электронный справочник включающий:

-  серверную БД;

-  клиентскую часть, включая локальную БД;

-  подсистему автоматического обновления;

-  подсистему администрирования;

-  подсистему подготовки печатного издания;

-  модуль аналитических расчетов, по количеству обращений, установленных контактов, прогнозирование увеличения адресов электронной почты и списков рассылок;

-  web – интерфейс доступа.

Согласно методологии структурного проектирования необходимо:

-  провести декомпозицию, необходимое количество уровней;

-  построить иерархическую структуру процессов;

-  определить взаимодействие процессов;

-  определить пользователя и входные/выходные данные каждого процесса.
            2.15Стандарты

.

SPC (Software Productivity Consortium) выделяет тот минимум стандартов на процессы проектирования, который рекомендуется взять за основу. Вихчисловключены  ISO/IEC 12207,  ISO/IEC 15288 CD2, ISO 15504 (SPICE), EIA/ANSI 632, EIA/IS 731 (SECM), TickIT.

Назначение следующих нормативных документов (НД):

-  ISO/IEC 12207, Information technology — Software life cycle processes. 1995.

-  ISO/IEC TR 15271, Information technology — Guide for ISO/IEC 12207. 1998. (Стандарт ISO/IEC 12207 оказал революционизирующее влияние на многие другие НД, в том числе на стандарты моделей системного проектирования: процессы жизненного цикла систем, модель зрелости процессов.)

-  EIA/ANSI 632, Processes for Engineering a System. 1999. (Этот стандарт не только заменил ряд популярных более старых американских стандартов, но был использован как вклад американской группы в создание ISO/IEC 15288.)

-  EIA/IS-731, System Engineering Capability Model (SECM). 1999. Part 1, SECM Model. Part 2, SECM Appraisal Method. (В области стандартов на уровни зрелости процессов аналогично тому, как модель SW CMM переросла в модель и стандарт SPICE, модель SE CMM переросла в модель и стандарт SECM.)

-  ISO/IEC 15288 CD2, Life Cycle Management — System Life Cycle Processes. 2000.
            Для обеспечения преемственности полезно добавить в эту группу стандарты ГОСТ 34 (не гармонизированные с новыми, но применимые и полезные из-за совместимости по многим базовым понятиям, по сути многих работ, по опыту применения и др.).

            Существенно, что два «потока» стандартов — на SE (system engineering) и на SW (software engineering), развивавшихся параллельно, четко стыкованы посредством указанных документов.

      И дело не только в том, что указанные документы хорошо согласованы друг с другом по основным понятиям и принципам. Очень важно, что такие, казалось бы, «чисто технические» области, как создание ПО (SW-процессы), регламентированы стандартами, прямо требующими их совместного применения со стандартами на процессы системного проектирования (SE-процессы).
            2.16 Методологические принципы проектирования ИС

.

(11 номер КП за 2001г.)

Концептуальное моделирование — для определения направления развития предприятия.

Логическое моделирование — для описания деятельности предприятия CASE-средствами.

Физическое моделирование — для формализации деятельности предприятия средствами ERP-системы (то есть для создания нормативной модели предприятия).

Концептуальная модель является отраслевой моделью и, как правило, разрабатывается для предприятия внешним консультантом (обычно на основе эталонных моделей, предлагаемых поставщиками ERP-систем). В ней определяются основные направления развития предприятия через графическое представление передовой мировой практики (заключенной в стандарты ISO и ERP) и через определение несоответствий деятельности предприятия данной практике (на основе проведения сопоставительного анализа — benchmarking). Концептуальная модель подразумевает унификацию основных процессов предприятия в соответствии со стандартами ISO 9001:2000 и ERP.
            2.17 Концептуальная модель

.

Эталонная модель с использованием ISO 9000 переводится в IDEF0-модель, отображающую:

-  декомпозицию процессов предприятия — верхний уровень иерархии процессов соответствует элементам и подэлементам стандарта ISO 9001:2000, а нижние уровни раскрываются с использованием ERP-стандарта;

-  проектирование графического «скелета» документации системы менеджмента качества (СМК) предприятия;

-  определение ключевых пользователей процессов и бизнес — функций;

-  определение на базе ERP-системы основных модулей информационной системы предприятия, обеспечивающих выполнение процессов;

-  определение связей процессов по входам/выходам.
            2.18 Логическая модель

.

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

Цель логического моделирования — построить интегрированную модель деятельности предприятия, являющейся связующим звеном между бизнес — методиками и ERP-системой.
Логическая модель описывает деятельность предприятия, посредством объектно-ориентированного проектирования (опираясь на методологию бизнес — моделирования RUP9 и нотации UML10) или структурногопроектирования.

Логическая модель позволяет спланировать, как нужно реорганизовать текущие способы выполнения процессов предприятия в желаемые — вплоть до каждого рабочего места.

Модель помогает детально ответить на следующие вопросы:

-  кто и где исполняет бизнес — функции (организационный аспект деятельности);

-  что перемещается в материальных и в связанных с ними информационных потоках (элементный аспект деятельности предприятия);

-  как предприятие выполняет бизнес — функции (функциональный аспект);

-  когда предприятие осуществляет бизнес — функции (динамический аспект);

-  какая информационная платформа (какие инструменты) необходима для поддержания бизнес — функций на предприятии.
            2.19 Взаимодействие

.

На рисунке представлено взаимодействие функционального, организационного, элементного, динамического аспектов логической модели и приведены примеры наиболее часто используемых диаграмм (диаграммы пакетов, прецедентов, классов, деятельности).

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

-  иерархическая структура процессов;

-  взаимодействие процессов (реализация процессного подхода).

Процессы на предприятии определяются наличием конечного продукта (не обязательно материального), у которого есть потребитель и поставщик. Отношения «поставщик — потребитель» рассматриваются не только с внешними контрагентами, но и внутри предприятия.

В рамках организационного аспекта описываются:

-  организационная структура предприятия, включающая в себя иерархию подразделений, отделов, участков, должностей, рабочих мест;

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

Для описания топологии и оргструктуры предприятия предлагается использовать диаграммы прецедентов (Use case), где отражается иерархия подчинения действующих лиц и организационных единиц.

            В рамках элементного аспекта описываются единицы материального, информационного и финансового потоков (единицы документооборота, товарооборота и финансовые инструменты) для каждого процесса предприятия.

Составляющие элементного аспекта используются при описании текущих и желаемых способов выполнения процессов. Взаимодействие объектов (или документооборот для информационных объектов) одного и того же процесса зависит от конкретной ситуации и конкретного способа выполнения этого процесса.

            Для описания элементного аспекта предприятия предлагается использовать диаграмму классов (Class), а для отражения возможных состояний элементов — диаграмму состояний (State).

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

-  определяются способы выполнения процесса в зависимости от конкретной ситуации, поскольку, как известно, процесс может быть реализован разными последовательностями действий. Процесс может выполняться несколькими способами, и выбор способа определяется конкретной ситуацией с привлечением того или иного ответственного лица. Описание каждого процесса включает диаграмму прецедентов (в трактовке диаграммы бизнес — сценариев), описывающую способы выполнения процессов и определяющую ответственных лиц, участвующих в выполняемых действиях. Для описания взаимодействия процессов (в специальной папке «Сценарии») также используются диаграммы сценариев (прецедентов), где кроме описания способов отражаются информационные и материальные объекты, являющиеся результатом выполнения процесса или использующиеся для его инициализации;

-  определяются взаимодействия организационного, элементного и функционального аспектов, то есть раскрывается способ выполнения процесса. Для этого предлагается использовать диаграммы деятельности (Activity), где отражается взаимосвязь процессов на предприятии с ERP-системой;

-  определяется документооборот (или товарооборот) между организационными единицами. Документооборот описывается для каждого способа выполнения процесса. Для описания взаимодействия документов и исполнителей предлагается использовать диаграммы кооперации (Collaborations).

            В целях облегчения и ускорения процесса моделирования предлагается применять шаблон модели предприятия, созданный внешним консультантом. Использование шаблона обеспечивает интеграцию созданной модели и ERP-системы (внедряемой на предприятии), что гарантирует, во-первых, слаженную работу бизнес-аналитика и аналитика ИС, во-вторых, сокращение сроков разработки модели предприятия, а в-третьих, получение запланированного эффекта от моделирования и внедрения ERP-системы.
            2.20 Методология SADT

.

            Методология функционального моделирования SADT (Structured Analysis and Design Technique) — одна из самых известных методологий анализа и проектирования систем, введенная в 1973 г. Дугласом Россом (Ross).

На ее основе разработана, в частности, известная методология IDEF0 (Icam DEFinition).

            Методология SADT представляет собой совокупность методов, правил и процедур, предназначенных для построения функциональной модели объекта какой-либо предметной области. Функциональная модель SADT отображает функциональную структуру объекта, т.е. производимые им действия и связи между этими действиями.

Основные элементы этой методологии основываются на следующих концепциях:

-  графическое представление блочного моделирования. Графика блоков и дуг SADT-диаграммы отображает функцию в виде блока, а интерфейсы входа/выхода представляются дугами, соответственно входящими в блок и выходящими из него. Взаимодействие блоков друг с другом описываются посредством интерфейсных дуг, выражающих «ограничения», которые в свою очередь определяют, когда и каким образом функции выполняются и управляются;

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

Правила SADT включают:

-  ограничение количества блоков на каждом уровне декомпозиции (правило 3-6 блоков);

-  связность диаграмм (номера блоков);

-  уникальность меток и наименований (отсутствие повторяющихся имен);

-  синтаксические правила для графики (блоков и дуг);

-  разделение входов и управлений (правило определения роли данных).

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

            В настоящее время успешно используются практически все известные методологии структурного анализа и проектирования, однако наибольшее распространение получили методологии SADT (Structured Analysis and Design Technique), структурного системного анализа Гейна-Сарсона (Gane-Sarson), структурного анализа и проектирования Йодана/Де Марко (Yourdon/De Marko), развития систем Джексона (Jackson), развития структурных систем Варнье-Орра (Warnier-Orr), анализа и проектирования систем реального времени Уорда-Меллора (Ward-Mellor) и Хатли (Hatley), информационного моделирования Мартина (Martin).

Диаграмма примера создана в «Visio 2000».
            2.21 BРwin

.

Использование BРwin в консалтинговых проектах.

КомпьютерПресс 1'2002, Максим Сычевский.

           

           
2.22 Декомпозиция

.

            2.23 Диаграмма потоков данных

.

Диаграмма потоков данных (DFD).

            2.24 Иерархическая структура
.


    продолжение
--PAGE_BREAK--            2.25 Сравнительный анализ SADT-моделей и потоковых моделей
            Как уже отмечалось, практически во всех методах структурного анализа используются три группы средств моделирования:

-  диаграммы, иллюстрирующие функции, которые система должна выполнять, и связи между этими функциями — для этой цели чаще всего используются DFD или SADT (IDEF0);

-  диаграммы, моделирующие данные и их взаимосвязи (ERD);

-  диаграммы, моделирующие поведение системы (STD).

Таким образом, наиболее существенное различие между разновидностями структурного анализа заключается в методах и средствах функционального моделирования. С этой точки зрения все разновидности структурного системного анализа могут быть разбиты на две группы — применяющие методы и технологию DFD (в различных нотациях) и использующие SADT-методологию.

            Соотношение применения этих двух разновидностей структурного анализа в существующих CASE-средствах составляет по материалам CASE Consulting Group 90% для DFD и 10% для SADT. По данным автора, основанным на анализе 127 существующих CASE-пакетов, это соотношение выглядит как 94% к 3%, соответственно. Оставшиеся 3% CASE-средств используют методологии, не относящиеся ни к одной из перечисленных разновидностей. Представляется очевидным, что соотношение такого же порядка справедливо и для цифр распространенности рассматриваемых методологий на практике.
            2.26 Модели процессов проектирования.

Проектировщик ИС (программист) не является автором концептуальной, логической и физической модели будущей системы. Как руководитель дипломного проекта сделает Вам постановку задачи, такое качество продукта и получит.

Концептуальная модель строится  бизнес – аналитиками (внешний консалтинг) с участием руководства предприятия.

Логическая модель — привлечение специалистов знакомых с методологиями моделирования, с работой CASE – средств (объектное, структурное).

Физическое моделирование, системотехники и администраторы, учет особенностей архитектуры ИС, существующей инфраструктуры (архитектура и топология подразделений и телекоммуникаций) предприятия, используемое SW + HW, наличие персонала.

Участие системотехников, программистов на всех этапах анализа, залог успешной реализации проекта информатизации бизнес – процессов.

Решение на реализацию того или иного проекта должно инициироваться самым верхним уровнем управления предприятием.

Любой проект, даже не большой по объему и стоимости, реализуется большой группой участников (руководители разного звена, снабженцы, системные и сетевые администраторы и т.д.).
            2.27 Основные этапы.

Традиционно выделяются следующие основные этапы жизненного цикла (ЖЦ) программного обеспечения:

-  анализ требований,

-  проектирование,

-  кодирование (программирование),

-  тестирование и отладка,

-  эксплуатация и сопровождение.
            2.28 Модели проектирования.

Классические модели проектирования информационных систем:

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

Поэтапная модель «Водопад»,  с промежуточным контролем. Разработка ПО ведется итерациями с циклами обратной связи между этапами. Межэтапные корректировки позволяют уменьшить трудоемкость процесса разработки по сравнению с каскадной моделью. Время жизни каждого из этапов растягивается на весь период разработки.

Спиральная модель. Особое внимание уделяется начальным этапам разработки - выработке стратегии, анализу и проектированию, где реализуемость тех или иных технических решений проверяется и обосновывается посредством создания прототипов (макетирования). Каждый виток спирали предполагает создание некой версии продукта или какого-либо его компонента, при этом уточняются характеристики и цели проекта, определяется его качество, и планируются работы следующего витка спирали.
            2.29 «Водопад».

            2.30 Этапы.

Этап анализа предполагает подробное исследование бизнес-процессов (функций, определенных на этапе выбора стратегии) и информации, необходимой для их выполнения (сущностей, их атрибутов и связей (отношений)). На этом этапе создается информационная модель.

Проектирование – модель данных, экранные формы, выбор среды, архитектура, структура и разработка тестов…

Тестирование – контроль соответствия поставленной задачи и достижения целей.
            2.31 Организация проектной деятельности.

Стандарты уровня предприятия и проекта. В стандартах явно предусмотрены работы по постановке проектной деятельности и управлению ею. В ISO/IEC 15288 такими являются:

1.  Процесс «Управление предприятием» (внедрение стандарта на основе стратегии предприятия);

2.  Процесс «Управление процессами ЖЦС»;

3.  Процесс «Управление ресурсами для 1 и 2».

Для процесса «Управление предприятием» предусмотрены следующие цель и результаты.

            Цель процесса:

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

            Результаты процесса:

1.      Стратегические и тактические планы и цели [предприятия], которые определяют формирование правил и процедур для внедрения требований данного Международного Стандарта;

2.      Правила и процедуры для «управления ЖЦС», включая управление качеством, гарантии и контроль, в соответствии с ISO 9001;

3.      Роли, ответственность и права (власть), способствующие эффективному управлению ЖЦС.
            2.32 Задачи стандартов.

Стандарты определяют процессы, которые должны в практике работы предприятия отвечать, в частности, на такие вопросы:

-  откуда берутся (должны браться) проекты и проектные программы?

-  как получить стандарты, регламенты, инструкции, которые рационально использовать именно на данном предприятии (стандарты предприятия)?

-  как управлять процессами проектирования на предприятии?

-  как получить набор стандартов конкретного проекта?

-  как обеспечить стыковку различных подпроектов?

-  что является определяющим критерием для проверки правильности выполнения проекта?

Узнать про используемые стандарты предприятия, можно, поинтересовавшись о последних результатах внедрения ИС.
Новый объем процессов ЖЦ системы определяется стандартом EIA 632.

Объем процессов ЖЦ системы по новому стандарту EIA 632 («От старого к новому, от системного проектирования к полному проектированию систем»)
            2.33 Заключение

.

Итак:

1.  Модель бизнеса (предприятия), с использованием математических моделей …

2.  Модель проектирования, как процесса.

3.  Модели процессов, например, линейное планирование, …

4.  Модели данных (иерархическая, файловая, реляционная, объектная, объектно-реляционная, … ).

5.  Архитектура системы …
Цель лабораторных и курсовой работ — реализация выбранных бизнес–процессов и набора бизнес – правил.

Например, по спиральной модели проектирования.
            2.34 Вопросы по 1 лабораторной.

Определение и основные свойства бизнес — функции.

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

Определение бизнес – процесса, примеры бизнес — процессов.

Принципы декомпозиции сложных систем.

Что является источником бизнес – процессов?

Ограничения ссылочной целостности SQL– сервера.

Ограничения значений полей таблицы.

Почему каждая таблица обязана иметь первичный ключ?

Особенности реализации ограничений в ИС с различной архитектурой.

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

Типы данных, используемых в SQL– сервере InterBase.
            2.35 Задания СРСП.

1. Входной контроль по дисциплинам «Программирование», «Базы данных»;

2. Защита модели выбранного бизнес – процесса;

3. Защита разработанных бизнес – правил;

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

5. Провести проверку SQL – кода создания БД;

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

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

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

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

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

3. Выбор предметной области для выполнения лабораторных работ;

4. Выбор предметной области курсового проекта;

5. Установка на персональном компьютере SQL – сервера InterBase;

6. Проверка работоспособности среды управления сервером;

7. Изучить SQL— код создания учебной БД (FONEBOOK.GDB);

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

9. Изучение функции среды управления: CREATEDATABASE, DROPDATABASE, REGISTERDATABASE, CONNECT, DISCONNECT;

10. Изучить конспект 1,2 лекций[3];
            2.37 Демонстрация.

Инсталляция учебного примера.

Подключение и регистрация сервера.

Работа со справочным материалом.

Бизнес правила учебного примера.

Ограничения ссылочной целостности.
2.38 Тренировочный тест, 10 вопросов.
Ответы



    продолжение
--PAGE_BREAK--3 Системы управления базами данных


            3.1 SQL – сервер

.

Модели и методы формирования баз данных

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

Современные системы управления базами данных.
Промышленные сервера БД.  
Инсталляция и администрирование(SQL– серверInterBase).
Среда управления.

Функциональные возможности SQL – сервера.

Работа с БД.
            3.2Определение

.

SQL – сервер — это система управления реляционными базами данных, использующая в качестве стандарта ведения данных язык структурированных запросов (SQL).
Ведущиепроизводителисерверовбазданных:

(Oracle, Sybase, Microsoft,  Informix, Borland).

           
В отличии от настольных СУБД (dBase, Clipper, FoxPro, Access, Paradox), сервера БД используются для разработки систем с клиент – серверной архитектурой.

            Такие системы, как правило, являются распределенными (работают в локальных и глобальных сетях) и поддерживают работу большого количества клиентов.
            3.3Вопрос

.

Какие СУБД используются на предприятиях города?

Или в каких системах какие СУБД используются?

1. Oracle.

2. MS SQL-server.

3. MySQL.

4. Informix.

5. InterBase.
            3.4 Инсталляция сервера с дистрибутива Delphi.

Выбор третьей позиции «InterBase 6.0 Server».

В меню появляется программа «InterBase» c пунктами:

«IBConsole»;

«InterBase Server Manager».

При инсталляции Delphi появляется аналогичное окно, соответствующее инсталляции клиента для этого сервера.
            3.5 Каталог установки по умолчанию.

Каталог установки по умолчанию

«C:\Program Files\Borland\InterBase\».

Поиск примеров, для выполнения лабораторных и курсовых работ.

Тестовая БД сервера IB.

Демонстрация учебной БД.
            3.6 Запусксервера.

Утилита«InterBase Server Manager».

Режимы запуска:

(Автозапуск, ручной),

(процесс или программа).

Останов сервера.
            3.7 Свойства сервера

.

Свойства сервера (правый клик на иконке), выбор функции «InterBaseProperties».


Каталог.

Версия.

Количество пользовательских лицензий.

Поддержка протоколов.

Количество работающих пользователей.

Количество подключенных БД.

Выбор функции «Shutdown» приведет к останову сервера.
            3.8Администрирование

.

Основные функции:

-  создание серверной БД и установка реквизитов базы данных;

-  определение пользователей и их паролей;

-  резервное копирование или восстановление БД;

-  удаление “мусора” из базы;

-  завершение/откат зависших транзакции;

-  проверка базы на наличие ошибок;

-  просмотр метаданных базы данных в формате сценария SQL;

-  контроль работы пользователей;

-  управление данными и метаданными.
            3.9Среда управления

.

Интегрированное рабочее место администратора IBConsol, поставляемое вместе с сервером. IBExpert отдельное приложение, русифицировано.

Демонстрация.
            3.10Подключение локального сервера

.

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

«Server\Register…» с определением следующих параметров:

-  выборопции«Local Server»;

-  задание имени SYSDBA в поле «UserName» и пароля masterkey в поле «Password».
Демонстрация.


            3.11 Создание БД

.

Создание новой БД.

Функция«Create Database».

            3.12 Параметры

.

Обязательно проверить установку параметров:

Alias: это просто имя БД, отображаемое в дереве консоли.

Filename: полный путь к каталогу БД, для студентов, например, «C:\PIS\Zagainov\zagainov.gdb», каталог должен уже существовать.

DefaultCharacterSet: обязательно WIN1251, выбор из списка.

SQLDialect: обязательно 3, первый использовался в сервере пятой версии.
            3.13 Вопрос

.

Как транспортировать проектируемую БД или формат созданной БД?
            3.14 Регистрация БД

.

Функция «Register».
Последовательность поиска и

выбора файла БД.
При администрировании с удаленной

машины, функция выбора на сетевой

папке не поддерживается,

необходимо точно указать путь

и тогда БД будет подключена к

серверу.

В поле «DefaultCharacterSet» выбирается кодировка «CYRL».


 
            3.15 Управление БД в IBConsole

.

Дерево объектов БД (метаданных):

1.      Домены.

2.      Таблицы.

3.      Просмотры.

4.      Хранимые процедуры.

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

6.      Генераторы.

7.      Исключения.


            3.16 Объекты сервера

.

Базы данных, не обязательно одна.
Резервные копии.

Сертификаты.

Пользователи.

            3.17 Функции управления БД

.

Connect.
Disconnect.
Shutdown.
Sweep.
View Metadata.
Drop Database.
Database Backup.

Restore Database.
Connected Users.
            3.18 Управление пользователями

.

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

Выбор функции «Addusers»

контекстного меню.

При выборе функции изменения, не удалять пароль masterkey администратора сервера.

            3.19 Вход в систему

.

Вход в систему под именем нового пользователя  осуществляется выбором  функции «ConnectAs».

Права доступа к БД имеет пользователь,  создавший ее и системный администратор.

            3.20 Вопрос

.

Если БД создана системным администратором, возможна ли работа с ней других пользователей?

1. Возможна.

2. Не возможна.

3. Возможна при задании определенных привилегий.

4. Только если пользователю задают привилегии системного администратора.

5. Нет правильного ответа.
            3.21 Ошибки соединения

.

Сообщение об ошибке имени или пароля пользователя.

Your user name and password are not defined.
Ask your database administrator to set up an InterBase login

 

Сообщение о нарушении прав доступа к метаданным БД.

Задание, выполняемое на лабораторной работе.
            3.22 Вопрос

.

Сколько БД может одновременно использовать клиентское приложение?

1. Одну БД на одном сервере.

2. Несколько БД на одном сервере.

3. По одной БД на нескольких серверах.

4. Несколько БД на различных серверах.

5. Нет правильного ответа.
            3.23 Управление резервными копиями
.

Функции управления резервной копией:

«Backup»,

«Restore».

В общем случае – создание

копии БД в архивированном виде.

Соединение с БД должно

быть установлено.
Создание резервной

копии – удобный

механизм транспортировки

БД домой.

            3.24 Параметры Backup
.

Параметры резервной копии:

Alias: имя в реестре резервных копий.

Filename: путь и имя файла с расширением gbk.

Format:

-  Transportable (переносимый);
-  MetadataOnly(сохранить только структуру БД без данных).

Остальные параметры по умолчанию.
Обратить внимание на размер самой БД, сравнить с размером копии.

Протокол создания копии.

Функции управления резервной копией:

-  Backup;

-  Restore;

-  Modify Backup Alias;

-  Delete Alias.
3.25 Восстановление БД из резервной копии.

Выбор функции «Restore», с последующим заданием параметров.

Файл БД с таким же именем не создается.

Предварительно необходимо удалить старую версию, отсоединившись от БД.

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

Для одной структуры будет предложено значение 1024.
            3.26 SQL– скрипт БД
.

Скрипт – механизм сохранения структуры БД в текстовом файле.

 

Функция «ViewMetadata».

Сохранение файла с расширением sql.


            3.27 Восстановление БД из скрипта.

Можно восстановить структуру БД.

Для этого потребуется запустить окно «InteractiveSQL».

Данная утилита предназначена для выполнения операторов манипулирования как объектами метаданных, так м самими данными.

Загрузить скрипт можно выбором функции «LoadScript» пункта меню «Query».

Загруженный скрипт появляется в окне выполнения SQL – операторов.

Выполняется скрипт командой «Execute». Иконка на панели инструментов.

            3.28 Вопросы по 2 лабораторной

.

Назначение основные функции серверов баз данных.

Основные функции администрирования БД и SQL– сервера.

Что означает привилегия доступа, какие виды привилегий используются, какие операторы назначения и ликвидации, прав доступа Вам известны? Как осуществляется установка прав доступа по умолчанию?

SQL— операторы управления данными, синтаксис, основные конструкции.

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

Типы данных SQL– сервера, их машинное представление и ограничения.

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

Понятия метаданных сервера и скрипта БД.

Управление транзакциями в утилите ISQL.

Реализация бизнес – правил на стороне сервера.

Ограничения, накладываемые на домены и столбцы.
            3.29 Задания СРСП

.

1. Защита выбора типов данных, определения пользователей;

2. Выбор и защита привилегий пользователей;

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

4. Провести отладку SQL– кода таблиц, доменов, привилегий;

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

6. Защитить отчет по разделу 3.2 курсовой работы [2];
7. Разработать пример вопроса тестового задания по теме раздела.
            3.30 Задания СРС

.

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

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

3. Изучить SQL— код доменов, таблиц в учебной БД (FONEBOOK.GDB);

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

5. Изучениесистемыпомощи(HELP), утилитыInteractivSQL, операторы: CREATE TABLE, ALTER TABLE, DROP TABLE, CREATE DOMAIN, GRANT, REVOKE;
6. Изучить конспект 2,3 лекций[3];

7. Изучение типов данных SQL – сервера InterBase.
           

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

Инсталляция сервера.

Создание БД.

Регистрация БД.

Функции управления.

Управление пользователями.

Управление резервными копиями.

SQL – скрипт БД.




    продолжение
--PAGE_BREAK--4 АДМИНИСТРИРОВАНИЕ СУБД


            4.1
InteractiveSQL.

Определения и основные функции управления БД.

SQL — операторы.

Создание доменов.

Проектирование таблиц.

Типы данных SQL – сервера InterBase.

Моделирование данных процессов.

Инструментальные средства case — технологии.

Демонстрации.
            4.2
Определение.

InteractiveSQL(ISQL)– редактор SQLзапросов, предназначенный для выполнения запросов к БД и просмотра результатов их выполнения.

Окно «InteractiveSQL» запускается выбором соответствующего пункта меню «Tools» или иконкой рабочей панели IBConsole.
            4.3 Окно ISQL.

            4.4 Функции ISQL.

Область редактирования запросов, протоколирование всех выполненных операторов.

Окно вывода результатов.

Запуск операторов на выполнение.

Загрузка скрипта и сохранение БД в скрипт.

Управление БД.
            4.5 SQL — операторы.

Встроенный справочник операторов, пункт «SQLReference»

            4.6 Домены.

Домен – поименованный объект метаданных определяющий характеристики поля (глобальный тип столбца), его тип данных, накладываемые ограничения для последующего определения полей нескольких таблиц.

            Создается оператором:
CREATEDOMAIN домен [AS]

[DEFAULT (литерал! NULL | USER}]

[NOT NULL]

[CHECK ()]

[COLLATE collation];
            4.7 Изменение домена.

Изменение определения домена производится при помощи оператора ALTERDOMAIN.

Формат оператора:

ALTERDOMAIN имя {

[SETDEFAULT{литерал| NULL| USER}]

| [DROP DEFAULT]

| [ADD [CONSTRAINT] CHECK ()]

| [DROPCONSTRAINT]}
Утверждение ALTER DOMAIN имеет новые опции, которые позволяют Вам изменять имя и тип данных.
ALTER DOMAIN domain1 TO domain2;
            4.8 Примеры.

В качестве примера домены учебной БД.

      CREATE DOMAIN D_EM CHAR (24) CHECK(VALUE  LIKE ('%@%') )

       COLLATEPXW_CYRL;

Проверка наличия символа «@», обязательного в имени электронного адреса. Предложение COLLATEзадает порядок сортировки символов, например для кодировки WIN1251.

CREATE DOMAIN ROOM AS INTEGER

CHECK (VALUE>=100 AND VALUE

Нужно следить за тем, чтобы в объявлении домена не было противоречий с ограничениями, накладываемыми при определении поля таблицы.
            4.9 Проектирование таблиц.

Определение таблицы производится выполнением оператора:

CREATE TABLE table

( [, | …]);

Демонстрация общего формата оператора.
            4.10 Примеры.

CREATETABLE"TEST"

(

  «I1»    INTEGER NOT NULL,

  «S1»   CHAR(15) CHARACTER SET WIN1251,

  «S2»   VARCHAR(10) CHARACTER SET WIN1251,

 PRIMARY KEY («I1»)

);

CREATE TABLE EMPLOYEE (

    TAB_NUM     INTEGER NOT NULL,

    FIRST_NAME  VARCHAR(20),

    LAST_NAME   VARCHAR(20),

    PHONE       INTEGER,

    NUM_T       INTEGER,

    NUM_D       INTEGER NOT NULL,

    FULL_NAME   COMPUTED BY ((LAST_NAME || ' ' || FIRST_NAME)) );

Автоматически подставляется определенная для БД кодировка  полей строковых типов.

Использование домена для определения типа поля.

Обратить внимание на отсутствие определения типа данных у вычисляемого поля и функцию сцепления строк (concatenation).
            4.11 Свойства объектов.

Просмотр свойств созданного элемента производиться двойным нажатием левой кнопки мыши на выбранном элементе.

Properties – структура объекта метаданных;

Metadata – SQL – код объекта;

Data – данные объекта.
            4.12 Навигация.

Навигация между открытыми окнами IBConsole, «ISQL» и «Свойствами объектов». Использовать только один процесс ISQL.

            4.13 Изменение таблиц.

Оператор изменения таблиц ALTERTABLE.

Для добавления внешних ключей.

Добавление ограничений полей.

Добавление полей.

Изменение типа данных.

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

Поиск имени ограничения (демонстрация).

            В шестой версии встроены дополнительные функции:

-  изменение типа данных столбца;

-  изменение имени столбца;

-  изменение позиции столбца в таблице.
            4.14 Примеры:

изменения имени столбца таблицы table1

ALTER TABLE table1 ALTER COLUMN field1 TO field2;

изменение типа данных на char(20)

ALTER TABLE table1 ALTER COLUMN field1 TYPE char(20);

изменение номера позиции на четвертый

ALTERTABLEtable1 ALTERCOLUMNfield1 POSITION 4;

Изменения типа данных будут вызывать ошибку, если при изменении происходит потеря данных, например, уменьшение числа символов в столбце приводит к усечению данных поля, содержащего длинное строковое значение.
            4.15 Ограничения конвертации.

Таблица содержит данные о допустимых преобразованиях типов данных.

            4.16 Ограничения длины.

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


            4.17 Удаление таблиц.

Удаление таблицы целиком производится оператором:

DROPTABLE ;

Удаление может быть блокировано для родительских таблиц, для которых в дочерних таблицах (на данный момент не удаленных) имеются ссылки по внешнему ключу этих таблиц.

            Удаление блокируется также открытой транзакцией к БД, использующей данную таблицу.
            4.18 Вопрос.

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

A) 215.

B) 216.

C) 232.

D) 1024.

E) 32000.
            4.19 Типы данных.

Данные сохранены в предопределенном формате называемом типом данных (машинное представление).

Типы данных могут быть классифицированы в четыре категории:

1.          Числовые;

2.          Символьные;

3.          Даты;

4.          Большие бинарные файлы (BLOB).

В седьмой версии будет тип BOOLEAN16 bits, значения (TRUE, FALSE, UNKNOWN).
            4.20 Числовые (целочисленные и вещественные).



SMALLINT

16 bits

–32,768 до 32,767

Короткое (машинное слово)

INTEGER

32 bits

–2,147,483,648 до 2,147,483,647

Длинное слово

FLOAT

32 bits

       1.175 . 10-38

  до 3.402 .1038

 IEEEОдиночная точность, 7 знаков

DOUBLE PRECISION

64 bits

       2.225 .10-308 

до   1.797 .10308 

IEEEДвойная точность, 15 знаков

Управлять количеством знаков в дробной части при объявлении вещественного числа нельзя. Если требуется вводить или выводить вещественной число в строго заданном формате ХХХХХ.ХХ, в программе используют маску.
            4.21 Числовые (фиксировано — десятичные).



NUMERIC (precision, scale)

(Точность/Масштаб)

Переменная

(16, 32, или

64 bits)

Точность от 1 до 18



Масштаб от 0 до 18        Масштаб

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

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

DECIMAL (precision, scale)

Переменная

(16, 32, или

64 bits)

Точность от 1 до 18



Масштаб от 0 до 18       Масштаб

Определяет по возможности цифры точности.

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

            Где точность определяет общее количество знаков в хранимом числе (максимум 18), а масштаб — количество знаков в дробной части и может быть равен нулю.

            Заметим, что специальных типов DECIMALи NUMERICне существует, а вместо них используются типы INTEGERили DOUBLEPRECISION: если точность (количество знаков в числе) меньше 10, то реальный тип столбца INTEGER, если больше или равно 10, реальный тип столбца DOUBLEPRECISION.
            4.22 Примеры.

В диалекте 3, IB6, соответствует SQL92 стандарту,  сохраняя NUMERIC и DECIMAL с от 10 до 18 цифр точности как 64-разрядные целые числа (INT64).

Примеры:

NUMERIC(10,3) сохраняет числа точно в следующем формате:

1234567.sss

DECIMAL(7, 3) сохраняет числа точно в следующем формате:

1234567.sss
            4.23 Вопрос.

Какой тип данных будет использоваться сервером IB для формирования поля с заданным типом NUMERIC(26,2)?

1. SMALLINT.

2. INTEGER.

3. FLOAT.

4. DOUBLE PRECISION.

5. Нет правильного ответа.
            4.24 Символьные.

Символьные типы данных:

CHAR(n)

Точно n байт.

Допустимый интер -вал от 1 до 32767 байт

Строка текста фиксированной длины.

VARCHAR (n)


Длинна до n байт.

Допустимый интер -вал от 1 до 32765 байт

Строка текста переменной  длины.

Столбцы VARCHAR(n) позволяют экономить дисковое пространство, давая возможность серверу располагать больше записей на странице БД. К недостаткам относится то, что VARCHAR(n) читаются медленнее, чем CHAR(n)).

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

            Если попущено, по умолчанию подразумевается 1.
            4.25 Сортировка.

Порядок сортировки символов определяет принцип, по которому символьные значения будут сравниваться и сортироваться в операторах SELECT(если в нем присутствуют разделы WHERE, ORDERBY), при обновлении индексов и т. д.

LAST_NAME   VARCHAR(20) COLLATE PXW_CYRL,

Следует учесть, что значения в строковых столбцах с набором WIN1251и сортировкой PXW_CYRLупорядочиваются в стиле Windows32:

буквы идут по парам, строчные буквы предшествуют заглавным:

аАбБвВгГ…Яя

Демонстрация кодов символов в IBExpert.
            4.26 Типы определения даты.

Определение даты, производится одним из трех возможных типов.

DATE

32 bits

 от  01.01.0100

 до  29.02.32768

Хранит год, месяц, день.

TIME

32 bits

от 0-00 до

23:59.9999

Хранит время

TIMESTAMP

64 bits

 от  01.01.0100

 до  29.02.32768

Комбинация типов Dateи Time.

TIME включает информацию относительно времени в часах, минутах, секундах, и миллисекундах.

Тип задания отображения полей (разделители) определяются в среде разработки, операционной системе, приложениях.
            4.27 Бинарные объекты.

Для хранения в БД больших бинарных объектов (файл с произвольным расширением) используются типы данных полей

BLOBPOLE
BLOBSEGMENTSIZE 1024,

Поле имеет переменную длину и интерпретируется как последовательность байтов.

InterBaseхранит значения BLOB-столбцов в самой БД в виде сегментов. Одна операция ввода-вывода при доступе к BLOB-информацииоперирует с одним сегментом. В таблице БД, если в ней объявлен столбец типа BLOB, хранится указатель на начальный сегмент столбца в области хранения BLOB-информацииэтой БД. По умолчанию длина сегмента составляет 80 байт, максимальная длина сегмента 32 Кбайт (32 768 байт).
            4.28 Массивы данных.

В InterBaseмогут определяться столбцы-массивы.

Для создания столбца-массива в конце его определения указывается в квадратных скобках целое число или диапазон, определяющие количество элементов массива. Например:

ARR_COLINTEGER [30],

ARR_COL1 INTEGER [0:29],

Массив может содержать до 16 измерений, которые перечисляются через запятые:

ARR_COLINTEGER [0:29, 15, 10]

что эквивалентно такому объявлению ObjectPascal:

var Arr_Col:   array   [0..29,   1..15,   1..10]   of integer;
            4.29 Совместимость типов.

При выполнении операций над столбцами разного типа InterBaseпытается автоматически привести типы таким образом, чтобы значения, участвующие в операции, принадлежали совместимым типам. Совместимыми считаются только типы DATE, CHARи NUMERIC.

Для явного приведения типов можно использовать функцию CAST, которая приводит типы внутри оператора SELECT, обычно в предложении WHERE:

SELECT ...

WHERE CHAR_DATE
            4.30 Управление данными.

Для управления данными используются операторы

INSERT, DELETE, UPDATE .
INSERT INTO DIVISION (NUM_D, NAME_D, «LEVEL», E_MAIL)

VALUES (:NUM_D, :NAME_D, :LEVELS, :e_mail);
INSERT INTO DIVISION

VALUES (:NUM_D, :NAME_D, :LEVELS, :e_mail);
Использование генераторов.

CREATEGENERATORG_EMP;

SET GENERATOR G_EMP TO 100;

Функция GEN_ID(Name_generator, 1), где 1 это шаг увеличения счетчика.
            4.31 Удаление данных.

Удаление записи таблицы.

DELETEFROM Имя_таблицы WERHEУсловие_поиска.

Без задания условий поиска будут удалены ВСЕ записи таблицы.
            4.32 Вопросы по 2 лабораторной.

Назначение основные функции серверов баз данных.

Основные функции администрирования БД и SQL – сервера.

Что означает привилегия доступа, какие виды привилегий используются, какие операторы назначения и ликвидации прав доступа Вам известны? Как осуществляется установка прав доступа по умолчанию?

SQL — операторы управления данными, синтаксис, основные конструкции.

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

Типы данных SQL – сервера, их машинное представление и ограничения.

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

Понятия метаданных сервера и скрипта БД.

Управление транзакциями в утилите ISQL.

Реализация бизнес – правил на стороне сервера.

Ограничения, накладываемые на домены и столбцы.
            4.33 Задания СРСП.

1. Защита выбора типов данных, определения пользователей;

2. Выбор и защита привилегий пользователей;

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

4. Провести отладку SQL– кода таблиц, доменов, привилегий;

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

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

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

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

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

3. Изучить SQL— код доменов, таблиц в учебной БД (FONEBOOK.GDB);

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

5. Изучение системы помощи (HELP), утилиты InteractivSQL, операторы: CREATETABLE, ALTERTABLE, DROPTABLE, CREATEDOMAIN, GRANT, REVOKE;

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

7. Изучение типов данных SQL – сервера InterBase.
            4.35 Демонстрация.

Создание домена.

Проектирование таблиц.

Определение первичных ключей.

Изменение структуры таблиц.

Изменение описания полей.

Задание привилегий пользователей.

Операторы управления данными.
            4.36 Тренировочный тест, 10 вопросов.
Ответы


    продолжение
--PAGE_BREAK--5 СРЕДА ПРОЕКТИРОВАНИЯ IBEXPERT


            5.1 Инструментальные средства.

Инструментальные средства проектирования.

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

Инсталляция, настройка параметров.

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

Метаданные БД SQL– сервера.

Проектирование средств поддержки ссылочной целостности данных.

Реляционные связи баз данных.

Проектирование генераторов.

Реализация бизнес – правил на стороне сервера.
            5.2 Определение.

IBExpert(Эксперт) – профессиональная графическая среда управления и администрирования SQL – серверов InterBase и FireBird.
Основное преимущество — использование для выполнения функций управления графического интерфейса со встроенной справочной системой, позволяющего программисту абстрагироваться от синтаксиса SQL – языка.
Встроенный графический дизайнер реляционной диаграммы БД.
Генератор тестовых наборов данных.
            5.3 Инсталляция IBExpert.

1. Дистрибутив:
ibet_2.5.0.14_full.exe
2. Каталог.
C:\ProgramFiles\HK-Software\IBExpert2.0
3. Запуск Эксперта.
 «Пуск\Программы\IBExpert 2.0\IBExpert».
Демонстрация инсталляции и настройки.
            5.4 Структура среды IBExpert.

Главное окно приложения:

            5.5 Определение языка.

Русификация:

Options | EnvironmentOptions | InterfaceLanguage – выбрать русский:

Остальные функции – настройка интерфейса пользователя Эксперта оставить по умолчанию.
            5.6 Создание БД.

Создание файла базы данных «База данных\Создать БД»


            5.7 Регистрация БД.

Выбор пункта «Зарегистрировать базу» в меню «База данных» или из всплывающего меню, вызываемого правым кликом на поле окна «Редактора БД». Для регистрации задается следующая информация:

           

5.8 Основные функции.

Вызов всех основных функций работы с БД правый клик на отмеченной базе.

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

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

            5.10 Резервное копирование.

Меню «Службы\Резервирование БД»

            5.11 SQL — редактор.

Выполнение SQL – операторов производится в окне редактора

«Инструменты\SQL редактор»

            5.12 Пользователи.

Определение пользователей SQL — сервера «Инструменты \ Менеджер пользователей»


            5.13 Создание объектов.

Создание доменов.

Создание таблиц.

Создание ограничений.

Определение первичного (уникального) ключа.

Определение внешнего ключа.

Все объекты метаданных создаются выбором функции «Новый объект» контекстного меню, вызываемого правым кликом, на объекте дерева БД Expert, или выбором соответствующей функции меню, или выбором соответствующей пиктограммы в панели управления.

            5.14 Управление свойствами.

Управление свойствами объектов, например, полей, выполняется выбором требуемой функции контекстного меню.

            5.15 Определение внешнего ключа.

Внешний ключ это столбец, чьи значения должны соответствовать значениям столбца в другой таблице.

Определение внешнего ключа производится из меню «Ограничения» выбором пункта «2 Внешние ключи»:

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

Добавление внешнего ключа производится оператором
ALTERTABLEИмя_Таблицы

ADD

FOREIGNKEY()

REFERENCES

[]

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

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

Параметры:

ONDELETE:

ONUPDATE

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

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

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, операторы: CREATETRIGGER, ALTERTRIGGER, DROPTRIGGER, CREATEGENERATOR, SETGENERATOR, INSERT, UPDATA, DELETE;

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

7. Среда управления SQL – сервера — IBExpress.
            5.25 Демонстрация.

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

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

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

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

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

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

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


    продолжение
--PAGE_BREAK--6 ТРИГГЕРЫ


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

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

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

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

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

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

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

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

Обычно триггера используются для:
каскадного изменения в связанных таблицах; формирования автоинкрементных полей; ведение архивов записей; автоматического документирования изменений, вносимых пользователями в таблицы; автоматического контроля бизнес – правил на сервере.           

            6.4 Формат.

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

 CREATE TRIGGER name FOR table 

[ACTIVE | INACTIVE] 

{BEFORE | AFTER} 

{DELETE | INSERT | UPDATE} 

[POSITION number] 

AS

DECLARE VARIABLE variable ; 

[DECLARE VARIABLE variable ; ...] 

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 

  [ ...]

END  

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

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

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

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

            DECLAREVARIABLE ;

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

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

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

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

IF   ()   THEN



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

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

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

WHERE TOVAR = :INTOVAR

INTO :AVG_KOLVO, :SUM_KOLVO; 

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

FOR



DO

;

ОператорSUSPEND, возврат значений в вызываемую процедуру.
            6.10 Операторы языка.

Оператор WHILE… DO
WHILE   ()   DO
ОператорEXIT
ОператорPOST _EVENT

POST_EVENT  "Имя  события";
ОператорEXECUTE PROCEDURE

EXECUTE PROCEDURE имя

[параметр[, параметр]]

[RETURNING_VALUESпараметр [, параметр ...]];
            6.11 Операторы OLDиNEW.

Оператор версии значения OLDи NEW изменяемого поля (контекстные переменные), позволяют обрушатся к старому (хранящемуся в поле) значению и к новому, пришедшему в операторе. Например, при каскадном изменении связанных таблиц используется следующая конструкция:
IF   (OLD.ПoлeCвязиPoдитeля  NEW.ПолеСвязиРодителя)

THENUPDATE  ДочерняяТаблица

SET ПолеСвязиДочернейТаблицы = NEW.ПолеСвязиРодителя

WHERE ПолеСвязиДочернейТаблицы = OLD.ПoлeCвязиPoдитeля;
при изменении столбца связи в родительской таблице будет изменено значение столбца связи у записей соответствующих дочерних таблиц.
            6.12 Терминатор.

Для работы в IBConsole необходимо переопределять терминатор (символ, завершающий оператор программного кода).

Выполняетсяоператором:
SET TERM!!! ;

CREATE TRIGGER … .

… .

END !!

SETTERM;!!!
После кода триггера, значение терминатора возвращается в предыдущее. Последний оператор END тела триггера должен заканчиваться знаком терминатора !!
            6.13 Создание в Expert.

Функция «Новый триггер», контекстного меню.


            6.14 Параметры.

Имя триггера.

Ассоциированная таблица.

Порядок, по умолчанию 0.

Тип действия.

Операторы тела.

            6.15 Изменение триггера.

Изменить существующий триггер можно при помощи оператора

 

ALTER TRIGGER ИмяТриггераFOR ИмяТаблицы

[ACTIVE | INACTIVE]

{BEFORE | AFTER)

{DELETE | INSERT | UPDATE}

[POSITIONномер] AS

 

Имя триггера должно совпадать с именем существующего триггера базы данных.
            6.16 Удаление триггера.

Для удаления триггера следует воспользоваться оператором

 

DROP  TRIGGERИмяТриггера

 

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

ДлятаблицыCREATE TABLE «NE1»(«a1» INTEGER NOT NULL primary key,

    «a2» CHAR(10),  «a3» VARCHAR(10))

Создадимгенератор: CREATE GENERATOR G1

Создаемтриггер:

CREATE TRIGGER TR1 FOR «NE1»

ACTIVE BEFORE INSERT POSITION 0

AS begin

 NEW.«a1»= GEN_ID(g1,1);

End

Проверяем работу генератора.

insertintone1( "a2", "a3") values('aa','фф')    или по всем полям

insert into ne1 values (1,'aa','фф')
            6.18 Предустановленные значения.

Ведение архива изменений БД, предусматривает задание пользователя, сделавшего изменения и времени, когда совершалось изменение.

Для определения этих параметров на сервере определены специальные переменные:

"NOW" и USER
Для фиксирования значений таблицы архива должны содержать соответствующие поля:

DAT_IZM                   TIMESTAMP,

USER_NAME            CHAR(15),
Значение текущей даты имеет универсальный формат для любого типа поля, например DATE или TIME.
            6.19 Вопросы по 3 лабораторной.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

5. Изучение системы помощи (HELP), утилиты InteractivSQL, операторы: CREATETRIGGER, ALTERTRIGGER, DROPTRIGGER, CREATEGENERATOR, SETGENERATOR, INSERT, UPDATA, DELETE;

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

7. Среда управления SQL – сервера — IBExpress.
            6.22 Демонстрация.

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

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

Оператор INSERT в таблицу с автоинкрементным полем.

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

Примеры реализации сложных бизнес правил.

Пробное тестирование.
            6.23 Правила электронного тестирования.

1. Можно пропустить (не заполнять ячейку) несколько (2-3) вопроса для обсуждения на апелляции, нельзя пропускать 40-ой вопрос.

2.  Если Вы не успели ответить на вопрос, но у Вас осталось время, можно в присутствии преподавателя вернуться к пропущенному вопросу, для проставления ответа.

3.  При тестировании нельзя прокручивать список вопросов в обратную сторону.

4. Для перехода вперед, не дожидаясь срабатывания таймера достаточно кликнуть мышкой или нажать «стрелку вниз».

5.  Ответы проставляются сразу в лист ответов без промежуточной записи.
            6.24  Тренировочный тест, 10 вопросов.
Ответы


    продолжение
--PAGE_BREAK--7 ХРАНИМЫЕ ПРОЦЕДУРЫ


            7.1 Механизм хранимых процедур (StoredProcedures).

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

Формат оператора создания объекта.

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

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

Проектирование в среде IBExpert.

Примеры реализации.

Вызов хранимых процедур в приложении.

Компоненты Delphiдля работы с хранимыми процедурами.

IBStoredProc– вызов ХП действия.

IBQuery– вызов ХП выбора.

Совместимость переменных SQL– сервера и среды разработки Delphi.

Тренировочный тест к рубежному контролю.
            7.2 Определение.

Хранимая процедура(Storedprocedures)— это модуль, написанный на процедурном языке  и хранящийся в базе данных как метаданные.

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

Процедуры выбора могут возвращать более одного значения. В приложении имя хранимой процедуры выбора подставляется в оператор SELECTвместо имени таблицы или просмотра.

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

            Хранимым процедурам можно передавать данные и получать обратно значения параметров, измененные в соответствии с алгоритмами работы хранимых процедур.
            7.4 Преимущества.

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

1        одну процедуру можно использоваться многими приложениями;

2        разгрузка приложений клиента путем переноса части кода на сервер и вследствие этого — упрощение клиентских приложений;

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

4        улучшенные характеристики выполнения, связанные с тем, что хранимые процедуры выполняются сервером, в частности — уменьшенный сетевой трафик.
            7.5 Оператор создания.

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

CREATE PROCEDURE name

[(param [, param ...])]

  [RETURNS param [, param ...])]

  AS  

DECLARE VARIABLE var ;

[DECLARE VARIABLE var ; ...]

 BEGIN



  [ ...]

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

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

DECLAREVARIABLE ;

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

 BEGIN… END

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

Имя  переменной = выражение;
            7.7 Операторы циклов.

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

IF   ()   THEN

[ELSE

]

Оператор цикла FORSELECT… DO

FOR



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

Оператор вызоваEXECUTEPROCEDURE

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.

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

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

CursorControlLanguage(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 ^

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

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

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


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

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

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

EXECUTEPROCEDUREFIND_COL

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

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

SELECT* FROMD_ARX(2006)
            7.17 Изменение ХП.

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

ALTERPROCEDUREИмяПроцедуры

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

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

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

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

AS

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

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

DROPPROCEDUREИмяПроцедуры;
            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

Например:

UPDATETablName 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Соединение с БД.

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


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

1. IBTransactionи IBDatabase          

2. IBQuery иIBDatabase

3. DataSource иIBQuery

4. DBGridи DataSource

Демонстрация проектирования приложения.
            7.31Параметры Query.

Для задания свойства SQLиспользуется окно редактора запросов, вызов которого осуществляется нажатием поля этого свойства или выбором функции EditSQLвсплывающего меню компонента.

SELECT * FROM FIND_DIV(:in_divis),

Свойство SQLможет определяться на стадии выполнения программы, через вызов соответствующего метода. В этом случае один компонент Queryможет использоваться для вызова различных процедур.

Свойство Paramsпозволяет задать в Инспекторе Объектов свойство нашего параметра in_divis:

ParamType– ptInput,

DataType– ftString.
            7.32Код вызова.

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

procedure TForm1.Button1Click(Sender: TObject);

begin

IBQuery1.Close;

IBQuery1.ParamByName('in_divis').Value := StrToInt(Edit1.Text);

IBQuery1.Open;

end;

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

Нет соединения с БД, не запущен сервер.

Не преобразован тип данных параметров.

Превышение лимита подключений клиентов.

Используется не тот метод, или не в той последовательности.

Выбрана не та процедура.

Работа не с тем файлом БД, копия файла в другом каталоге.
            7.34Вызов ХП действия.

Для вызова хранимой процедуры действия из приложения клиента используется специальный класс компонентов TStoredProc.

Рассмотрим последовательность действий для вызова процедуры INS_DIV, выполняющей добавление записи в таблицу DIVISION, содержащий код:

BEGIN

INSERT INTO DIVISION (NUM_DIV, NAME_DIV, «LEVEL», MAIL_DIV)

VALUES (:NUM_D, :NAME_D, :LEVELS, :e_mail);

END
В процедуре определяется четыре входных параметра

NUM_D, :NAME_D, :LEVELS, :e_mail
в соответствии с полями таблицы.
            7.35Проверка в Expert.

В среде проверка работы процедуры производится двумя способами, выполнением SQLоператора и запуском с консоли:


            7.36Приложение.

Добавляем в проект с вкладки InterBaseпоочередно следующие компоненты: IBTable; IBStoredProc. Для ввода значений параметров добавляем с вкладки Standardтри компонента Edit. В результате форма примет вид:


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

1. IBTransactionи IBDatabase          

2.IBTableи IBDatabase, выбрать таблицу

3. IBStoredProcи IBDatabase, выбрать процедуру

4.DataSource иIBTable

5.DBGrid иDataSource

Демонстрация.
            7.38Параметры StoredProc.

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

            0 – NUM_DIV;

            1 – NAME_DIV;

            2 – LEVELS;

            3 – E_MAIL.

Определение типа данных происходит автоматически, в соответствии с типами данных Delphi, как и индексация параметров.
            7.39Код вызова.

В обработчике TForm1.Button1Click(Sender: TObject), сделаем следующие изменения:

{IBQuery1.Close;

IBQuery1.ParamByName('D_EMP').Value := StrToInt(Edit1.Text);

IBQuery1.Open;}

 IBStoredProc1.ParamByName('NUM_DIV').Value:=StrToInt(Edit1.Text);

 IBStoredProc1.ParamByName('NAME_DIV').Value:=(Edit2.Text);

 IBStoredProc1.ParamByName('LEVELS').Value:=StrToInt(Edit3.Text);

 IBStoredProc1.ParamByName('E_MAIL').Value:=(Edit4.Text);

 IBStoredProc1.ExecProc;

 IBTable1.Refresh;

Обратить внимание на отсутствие ограничений полей.
            7.4Вопрос.

Сколько раз в разработанном приложении можно нажать на клавишу «Button1» с введенным набором данных, без появления ошибки?

1. Один.

2. Любое количество раз.

3. По одному разу для каждого нового набора данных.

4. По одному разу для каждого наименования подразделения.

5. Нет правильного ответа.
            7.41 Заключение.

Механизм хранимых процедур, как самый универсальный и экономичный используется:

Для ведения данных серверных БД;

Для формирования наборов данных для построения отчетов;

При реализации сложных алгоритмов бизнес-правил, обеспечивающих целостность БД;

При формировании результатов сложных поисковых запросов.
            7.42 Ограничения.

Механизм ХМ не может управлять структурой данных.

В отличии от компонента запроса (Query), в коде хранимой процедуры нельзя выполнять операторы управления структурой данных, таких как, CREATE… ,  ALTER…, DROP… и других.

Реализация функции управления зависит от программной реализации SQL– сервера. Например, MSSQL– сервер позволяет в хранимой процедуре выполнять оператор CREATETABLE…

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

Какой SQL– оператор создания хранимой процедуры не будет выполнен:
A) CREATE PROCEDURE Name_SP ( EMP_NO SMALLINT,   PROJ_ID CHAR(5))

    AS BEGIN BEGIN

INSERT INTO «N_table» (emp_no, proj_id) VALUES (:emp_no, :proj_id);

WHENSQLCODE -530 DO EXCEPTION unknown_emp_id;

END SUSPEND; END ^

B) CREATE PROCEDURE Name_SP (Var_I  INTEGER)

     AS BEGIN

     INSERT (Col_Value)INTO «N_table» VALUES (:Var_I);

     END^

C) CREATE PROCEDURE Name_SP

     RETURNS (CODE VARCHAR(5), COUNTRY VARCHAR(15), LANG VARCHAR(15))

    AS BEGIN

    FOR SELECTjob_code, job_country FROM job INTO :code, :country DO

    BEGIN  FOR SELECT languages FROM show_langs  (:code, :country) INTO :lang DO

    SUSPEND; code = '====='; country = '==============='; lang = '==============';

    SUSPEND

END
 
END
^

D) Все SQL– операторы  будут выполнены.
            7.44 Вопросы по 4 лабораторной.

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

Параметры хранимых процедур, определение параметров в теле процедуры.

Совместимость типов данных SQL– сервера и среды разработки приложений Delphi.

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

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

Операторы организации циклов в процедурах.

Вызов процедур в среде управления SQL– сервера, параметры анализа выполнения процедур.

Вызов процедур из приложения клиента. Использование процедур одновременно несколькими клиентскими приложениями.

Вызов процедур действия из приложения клиента, компонент TSTOREDPROC.

Вызов процедуры выбора, отображение набора данных, навигация по набору данных, изменение полученных данных.
            7.45 Задания СРСП.

1. Выбор и защита не менее четырех процессов, реализуемых ХП;

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

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

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

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

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

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

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

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

4. Изучениесистемыпомощи(HELP), утилитыInteractivSQL, операторы: CREATE PROCEDURE, ALTER PROCEDURE, DROP PROCEDURE, EXECUTE PROCEDURE, SELECT;

5. Изучить конспект 7,8 лекций, агрегатные функции SQL– сервера[3];

6. Проектирование индивидуальной функции пользователя (UDF).
            7.47  Демонстрация.

Создание хранимой процедуры действия, выводящей агрегированные значения.

Вызов ХП в редакторе SQL– запросов.

Порядок создания ХП выбора, метод от простого к сложному.

Вызов ХП выбора при помощи оператора SELECT.

Отладка процедуры средствами IBExpert.

Проектирование приложения для вызова ХП выбора, связи компонентов.

Проектирование приложения для вызова ХП действия.

Изменение и удаление хранимых процедур.
            7.48  Тренировочный тест, 10 вопросов.
Ответы


    продолжение
--PAGE_BREAK--8 UDF

            8.1 Функции (UDF).

Функции, определяемые пользователем – UserDefinedFunctions (UDF).

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

НаборфункцийSQL– сервераInterBase.

Объявление функции, определяемой пользователем.

Разработка функций в Delphi.

Совместимость переменных SQL – сервера и среды разработки Delphi.
            8.2 Определение.

Функции (UDF) предназначены для расширения возможностей серверной части проектируемой информационной системы, поскольку набор встроенных функций ограничен: AVG(), SUM(), COUNT(), MAX(), MIN(), CAST(), UPPER(), EXTRACT(), ||, математические операции.

Используется механизм подключения внешних библиотек.

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

Реализация в виде dll– библиотеки. Одна библиотека должна содержать минимум одну функцию.
            8.3 Примеры функций.

Встроенная библиотека функция сервера IB расположена в каталоге:

C:\Program Files\Borland\InterBase\UDF

Если каталог не существует, необходимо создать.

Каталог содержит файл библиотеки — ib_
udf.
dll, с примерами некоторых функций:

abs(), acos(), asin(), cos(), log(), rand() …

Пользователь имеет возможность подключать собственные библиотеки с наборами функций. В примере рассматривается проектирование функции, генерирующей случайный символ из заданного диапазона кодов.
            8.4 Объявление функций.

Определение функции на сервере производится SQL – оператором:

DECLARE EXTERNAL FUNCTION name [datatype | CSTRING (int)

                        [, datatype | CSTRING (int) …]]

            RETURNS {datatype [BY VALUE] | CSTRING (int)} [FREE_IT]

            ENTRY_POINT 'entryname'                          // Имяфункции

            MODULE_NAME 'modulename';      // Имяфайла(путькбиблиотеке)

По умолчанию сервер ищет функцию в корневом каталоге, определяемом при инсталляции.
            8.5 Пример объявления.

Для всех функций библиотеки примера ib_udf.dllсоздан файл описания ib_udf.sql, содержащий полный перечень операторов объявления на сервере, хранящийся в каталоге

C:\Program Files\Borland\InterBase\examples\Udf\ ib_udf.sql

Файл содержит краткое описание и операторы определения функций, готовые к выполнению в редакторе запросов среды управления.

Там же расположены модули проектов в языке программирования С.
            8.6 Порядок действий.

Например, выполним объявление функции rand():
Открыть в блокноте файл«ib_udf.sql». Скопировать оператор
DECLARE EXTERNAL FUNCTION rand

RETURNS DOUBLE PRECISION BY VALUE

ENTRY_POINT 'IB_UDF_rand' MODULE_NAME 'ib_udf'; 
Выполнить в редакторе запросов. Проверить вызов функции.


            8.7 Пример.

Просмотр объявленной функции в среде Expert:


            8.8 Вопрос.

Функцию вызова значения генератора gen_id()можно использовать в операторе: 

1. Создания триггера.

2. Создания хранимой процедуры.

3. INSERT.

4. UPDATE.

5. Нет правильного ответа.
            8.9 Проверка вызова.

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

CREATE TABLE TUDF (    T1  INTEGER,

T2  DOUBLE PRECISION,     T3  FLOAT );

Выполнением нескольких операторов:

insert into tudf (T2 ) values (rand());   или

insert into tudf (T3 ) values (rand());

Обратите внимание на отсутствие случайности в данных.
            8.10 Проектирование библиотеки.

Проектирование библиотеки функций в Delphi осуществляется в шаблоне DLLWizard выбираемом из репозитория проектов:




            8.11 Код функции.

В открывшемся окне создаем набор функций:


            8.12 Листингкода.

library MyIB_UDF;

Uses   SysUtils,   Classes;

{$R *.res}

function randomx(var InInt:Integer):Integer; cdecl; export;

begin

 Result:=(Trunc(Int(Random(InInt))));

end;

 function randvar():PChar; cdecl; export;

begin

 Result:=PChar(Trim(AnsiString(Chr(192+Random(31)))));

end;

exports randomx, randvar;

begin

end.
            8.13 Описание параметров.

cdecl– директива, указывающая компилятору на использование соглашений для передачи параметров, принятых в С++.

export– объявление функции экспортируемой.

Совместимость переменных.

Для совместимости строковых переменных InterBaseи Delphiиспользуются соответствующие форматы:

CSTRING – PChar;

DOUBLE PRECISION – Double;
            8.14 Объявление.

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

DECLARE EXTERNAL FUNCTION RANDVAR

RETURNS CSTRING(1) FREE_IT

ENTRY_POINT 'randvar' MODULE_NAME 'MyIB_UDF'

 

DECLARE EXTERNAL FUNCTION RANDOMX  INTEGER

RETURNS INTEGER BY VALUE

ENTRY_POINT 'randomx' MODULE_NAME 'MyIB_UDF'

Библиотеку необходимо разместить в каталоге

C:\Program Files\Borland\InterBase\UDF
            8.15 Удаление библиотеки.

Удаление объявленных функций библиотеки производится оператором:

DROPEXTERNALFUNCTIONname;

При внесении изменении в оператор объявления функции IBExpert генерирует два оператора, на удаление старого объявления, и создание нового.
            8.16 Вопрос.

Выбрать наиболее точный ответ для среды разработки функций, определяемых пользователем в SQL– сервере InterBase: 

1. Функции процедурного языка и SQL – операторы сервера InterBase.

2. Элементы языка управления данными (DML) и типы данных, используемых в SQL – сервере InterBase.

3. Элементы любого алгоритмического языка, позволяющего создавать динамически загружаемые библиотеки (DLL).

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

5. Любые функции и типы данных, используемых в языке ObjectPascal.
            8.17 Предупреждения.

Объектом метаданных является оператор объявления функции, но не сама библиотека.

Для транспортировки всех компонентов системы, требуется перенос всех файлов библиотек в определенном каталоге.

Для каждой задачи может создаваться собственный каталог для библиотек расширения.
            8.18 Версия IB 7.

Из описания к 7  версии IB(DevGuide.pdf).

Встроенная библиотека -  ib_util.dll, примеры:

Function

name
                  
Description
                                     
Inputs
                               
Outputs

abs()                     Absolute value                                   Double precision                 Double precision

acos( )                  Arc cosine                                           Double precision                 Double precision

ascii_char( )       Return character based

                               on ASCIIcode                                   Integer                                  Char(1)

ascii_val( )          Return ASCII code for given

                               character                                             Char(1)                                  Integer

asin( )                   Arc sine                                                Double precision                Double precision

atan( )                   Arc tangent                                         Double precision                 Double precision

atan2( )                Arc tangent divided by second       Double precision,

                               argument                                             Double precision                Double precision

bin_and( )           Bitwise AND operation                     Integer                                  Integer

bin_or( )               Bitwise OR operation                         Integer                                  Integer

bin_xor( )            Bitwise XOR operation                      Integer                                  Integer

ceiling()               Round up to nearest wholevalue   Double precision                 Double precision

cos( )                     Cosine                                                  Double precision               Double precision

cosh( )                  Hyperbolic cosine                              Double precision               Double precision

cot( )                     Cotangent                                            Double precision                 Double precision

div( )                     Integer division                                   Integer                                  Integer

floor( )                  Round down to nearest wholevalu               Double precision                 Double precision

LN( )                      Natural logarithm                                Double precision                 Double precision

LOG( )                    Logarithm of the first argument,       Double precision,

                               by the base of the secondargumentDouble precision              Double precision

LOG10( )                Logarithm base 10                              Double precision                 Double precision

LOWER( )             Reduce all upper-case characters

                               to lower-case                                      Cstring(80)                           Cstring(80)

LTRIM( )               Strip preceding blanks                       Cstring(80)                           Cstring(80)

MOD( )                  Modulus operation between the

                               two arguments                                   Integer, Integer                    Integer


PI( )                        Return the value of ð                         —                                              Double precision

RAND( )                Return a random value                       —                                              Double precision

RTRIM( )              Strip trailing blanks                            Cstring(80)                          Cstring(80)

SIGN( )                  Return -1, 0, or 1                  Double precision                 Integer

SIN( )                     Sine                                                       Double precision                 Double precision

SINH( )                  Hyperbolic sine                                   Double precision                 Double precision

SQRT( )                 Square root                                          Double precision                 Double precision

STRLEN( )            Length of string                                  Cstring(32767)                     Integer

SUBSTR( )            The substring of s starting at

                      position m and ending atposition n
        Cstring(80), Smallint,          Cstring(80), Smallint                         

TAN( )                   Tangent                                                               Double precision                 Double precision

TANH( )                Hyperbolic tangent                            Double precision               Double precision
            8.19 Вопросы по 4 лабораторной.

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

Параметры хранимых процедур, определение параметров в теле процедуры.

Совместимость типов данных SQL– сервера и среды разработки приложений Delphi.

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

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

Операторы организации циклов в процедурах.

Вызов процедур в среде управления SQL– сервера, параметры анализа выполнения процедур.

Вызов процедур из приложения клиента. Использование процедур одновременно несколькими клиентскими приложениями.

Вызов процедур действия из приложения клиента, компонент TSTOREDPROC.

Вызов процедуры выбора, отображение набора данных, навигация по набору данных, изменение полученных данных.
            8.20 Задания СРСП.

1. Выбор и защита не менее четырех процессов, реализуемых ХП;

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

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

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

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

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

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

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

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

4. Изучениесистемыпомощи(HELP), утилитыInteractivSQL, операторы: CREATE PROCEDURE, ALTER PROCEDURE, DROP PROCEDURE, EXECUTE PROCEDURE, SELECT;

5. Изучить конспект 7,8 лекций, агрегатные функции SQL – сервера[3];

6. Проектирование индивидуальной функции пользователя (UDF).
            8.22 Демонстрация.

Объявление и вызов функции встроенной библиотеки IB.

Проектирование функции в среде Delphi.

Объявление функции разработанной библиотеки.

Проверка работы функций, генерирующих случайные числа и символы.

Демонстрация совместимости типов данных IBи Delphi.
           



    продолжение
--PAGE_BREAK--9 КЛИЕНТ — СЕРВЕРНАЯ АРХИТЕКТУРА ИС

            9.1 Архитектуры ИС.
Типы клиент – серверных архитектур.

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

Технологии доступа к серверным БД.

Сетевые технологии распределенных систем.

Особенности многопользовательских систем.

Компоненты Delphiдля реализации сложных систем.

Создание приложения для работы с серверной БД.

Пример реализации удаленного модуля данных.

Управление транзакциями.
            9.2 Локальные архитектуры.

Локальный вариант системы или автоматизированное рабочее место (АРМ), предусматривает наличие на одном компьютере всех компонентов:

-  Базы данных;

-  Локальные СУБД;

-  Компоненты технологии доступа;

-  Приложения, визуализирующие работу с данными;

-  Среду разработки приложений.

Как правило, обеспечивают работу одного пользователя. При необходимости организации второго рабочего место, создается копия (второй экземпляр системы) на компьютере второго пользователя. Каждый пользователь работает со своим набором данных.
            9.3 Файл — серверные архитектуры.

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

При работе каждому клиенту пересылается копия всех файлов открываемой БД. Каждый пользователь работает с собственной копией, и все проблемы, связанные с одновременным изменением одних наборов данных, ложится на приложение пользователя. 

Архитектуре присущи большой сетевой трафик и невозможность работы большого количества пользований из-за проблем разграничения доступа.
            9.4 Клиент — серверные архитектуры.

Основным компонентом ИС с использованием клиент — серверной архитектуры является – система управления базами данных (СУБД). Состоит из серверной платформы и специализированного ПО (SQL — сервер).

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

            Назначение – обеспечение работы большого количества пользователей, использующих «облегченное» программное обеспечение клиентских приложений.
           

            9.5 Вопрос.

В использовании, каких компонентов заключается особенности проектирования облегченного (тонкого) клиента?

1. языка структурированных запросов (SQL).

2. сервера в локальной сети.

3. программного обеспечения СУБД.

4. специальных сетевых протоколов.

5. Web — сервера.
            9.6 Типы архитектуры.

Двухзвенная архитектура– подразумевает работу приложения клиента с удаленной БД с использованием сетевой технологии доступа к БД.

Трехзвенная архитектура– содержит в виде отдельного компонента сервер приложений, реализующий бизнес – логику взаимодействия с БД и предназначенный для управления сетевым обменом. Взаимодействие осуществляется с использованием сетевой технологии.

Описание технологии многозвенных приложений в учебном материале по Delphi, расположено в разделе MIDAS (Multi-tieredDistributedApplicationServices).
            9.7 Двухзвенная архитектура.

            9.8 Технология IBExpress(IBX).

Компоненты технологии расположены на вкладке «InterBase».

            9.9 Компоненты.

IBDataBase и IBTransaction – обеспечивают сетевое соединение с удаленной (серверной) базой данных.

Серверные наборы данных (DataSet), реализуются при помощи компонентов IBTable, IBQuery, IBDataSet и IBUpdateSQL.

Управление структурой данных осуществляется при помощи компонентов запросов – IBQuery, IBSQL.

Управление вызовом хранимых процедур серверной БД реализуется компонентом IBStoredProc.



            9.10 Трехзвенная архитектура.




            9.11 Основные преимущества трехзвенной архитектуры:

-         снижение требований к клиентским рабочим станциям;

-         реализация большинства бизнес — правил (БП) производиться на сервере, что обеспечивает централизованный доступ к ним;

-         уменьшение сетевого трафика;

-         контроль и регулирование сетевого обмена;

-         возможность отложенного обновления данных (работа с локальной копией + обновление и освежение данных).

Недостатком можно считать повышенные требования к производительности и надежности серверного оборудования (аппаратного и программного обеспечения).
            9.12 Особенности проектирования.

Распределенная архитектура системы подразумевает возможные перерывы работы оборудования, неизвестные заранее пользователю. Остановка серверного оборудования, ошибки в каналах связи, отказ телекоммуникационных устройств. Эти причины накладывают определенные ограничения на структуру проектируемого программного обеспечения и его функциональность:

-    запуск приложения без соединения с сервером;

-    динамический поиск сервера по имени или адресу;

-    активизация соединения без обновления  или с обновлением данных;

-    наличие таймаута (контроль времени обмена)…
            9.13 Технологии реализации трехзвенной архитектуры:

DCOM(DistributedComponentObjectModel– распределенная компонентная модель объектов) – рассчитана на ЛВС, в которой сервер приложений работает по управлением сетевой операционной системы компании Microsoft;

MTS(MicrosoftTransactionServer– сервер транзакций MS) – основана на DCOMс дополнительными возможностями по управлению системными ресурсами (процессами, потоками, соединениями с БД), а также с повышенной защищенностью данных;

CORBA(CommonObjectBrokerArchitecture– архитектура с брокером общих объектов) – в отличии от DCOMне предъявляет специальных требований к ОС или аппаратной платформе.
            9.14 Сетевое соединение.

Различные технологии поддерживаются собственными компонентами для сетевого соединения. Каждый компонент реализуется определенным сетевым протоколом. Большинство компонентов расположено на вкладке DataSnap.


           

9.15 Сервер приложений.

Для каждого компонента источника в модуль помещается компонент провайдера (TDataSetProvider). Он служит связующим звеном между сервером приложений и клиентским набором данных. Именно к нему привязывается клиентский набор данных, реализуемый компонентом TCientDataSet посредством коммуникационного компонента TXXXConnection. Компонент сетевого соединения (коммуникационный) использует встроенный интерфейс IAPPSERVER для поиска сервера приложений и работы с ним.

Демонстрация учебного примера.
            9.16 Модуль данных.

Не визуальный компонент реализуется как окно — контейнер для помещения в него: компонент для работы с БД (TDataBase, TTable, TQuery, TStoredProc).  А также, если необходимо, обработчиков событий этих компонентов и объектов полей соответствующих НД.

            9.17 Свойства модуля.

Связывание модулей проекта.

Обращение к компонентам, расположенным в модуле данных.

Указание определения width.

Width …
            9.18 Компоненты посредники.

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

Обращение к параметрам (TParams) компонентов запросов и хранимых процедур производится непосредственно через свойства и методы компонентов.
            9.19 Создание приложения клиента для работы с серверной БД.

Настройка соединения с СУБД.

Проверка работы.

Проектирование серверных наборов.

Проектирование главной формы, меню.

Проектирование интерфейсной части по управлению данными.
            9.20 Транзакции.

Транзакция – одиночное или групповое изменение БД, которое выполняется полностью или не выполняется вообще (метод поддержания БД в целостном состоянии).Пример, банковской проводки.

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

Демонстрация видимости данных приложений Consoleи Expert.
            9.21 SQL— операторы.

SET TRANSACTION — Начинает транзакцию и определяет ее поведение.

COMMIT — Сохраняет изменения, внесенные транзакцией, в базе данных и завершает транзакцию.

ROLLBACK — Отменяет изменения, внесенные транзакцией, и завершает транзакцию.


            9.22 Старт транзакции.

Оператор SETTRANSACTION имеет формат:

SET TRANSACTION

[Access mode] — [READ WRITE | READ ONLY]

[Lock Resolution] — [WAIT | NO WAIT]

[Isolation Level]

            {SNAPSHOT [TABLE STABILITY]

            | READ COMMITTED [[NO] RECORD_VERSION]}

[TableReservation] ;

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

При одновременной работе нескольких клиентов с одной и той же БД возникают проблемы одновременного изменения данных. Для разрешения указанных проблем на стороне клиента определены три уровня изоляции (разграничения) транзакций:

DirtyRead (грязное чтение) — конкурирующие транзакции видят изменения, внесенные, но не подтвержденные текущей транзакцией.

ReadCommitted (чтение подтверждений) — конкурирующие транзакции оперируют только подтвержденными изменениями.

RepeatableRead (повторяющееся чтение) — заставляет конкурирующие транзакции оперировать с собственными (локальными) версиями одной и той же записи.
            9.24 Управление в BDE.

При использовании BDE управление транзакциями на уровне приложения реализуется методами компонента DataBase и установкой параметров псевдонима.

ProcedureStartTransaction;

ProcedureCommit;

ProcedureRollback;

Управление видимостью данных определяется в свойстве:

Property TransIsolation: (tiDirtyRead), tiReadCommitted, tiRepeatableRead.

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

PropertyInTransaction: Boolean;
            9.25 IBTransaction.

Установка свойств транзакции в редакторе компонента

Установленные параметры сохраняются в свойстве Params.
            9.26 Свойства транзакции.

1. Snapshot(concurrency, nowait) – обеспечивает видимость конкурирующих транзакций и немедленный возврат ошибок при обнаружении конфликтных ситуаций;

2. ReadCommitted(read_committed, rec_version, nowait) – аналогично предыдущему, включая обязательный выбор последней версии;

3. Read-OnlyTableStability(read, consistency) – определяет открытую транзакцию только для чтения данных, блокируя при этом доступ к данным другим транзакциям;

4. Read-WriteTableStability(write, consistency) – разрешает транзакции просмотр и модификацию данных, блокируя доступ из других транзакций.
            9.27 Старт и режимы.

Определение старта транзакции установкой свойства Active компонента в True  или False.

TIBTransaction.AutoStopAction определяет, какое действие брать при автоматически окончании транзакций

TIBTransaction.DefaultAction определяет действие, выполняемое при принудительном завершении транзакции

            9.28 Значения параметров.

Значение saNone– не определяет поведение неявно стартующей транзакции, требуя от разработчика обязательного наличия одного из методов управления.

Значения saCommitи saRollback определяют отправку одноименного метода на сервер с последующим закрытием используемой транзакции.

А значения SaCommitRetaining  и  saRollbackRetainingаналогично определят отправку методов Commit или Rollback, но оставят транзакцию открытой для последующего использования.
            9.29 Вопрос.

Вызов метода Open для компонента IBQuery, в свойстве SQL которого задан оператор вызова хранимой процедуры, определит:

1. Старт новой транзакции, только если свойство IBTransaction.Activ =  False;

2. Старт неявной транзакции сервера приложений;

3. Получение данных в рамках существующей транзакции;

4. Старт транзакции, только если IBTransaction.AutoStopAction = saNone;

5. Нет правильного ответа.
            9.30 Вопросы по 5 лабораторной

.

Назначение, основные преимущества использования систем, построенных с применением клиент – серверных архитектур.

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

Наборы компонентов технологий доступа к серверным базам данных BDEи IBX, назначение основные свойства и методы.

Технологии реализации многозвенных архитектур, основные преимущества и недостатки.

Управление транзакциями, режимы видимости данных, уровни изоляции транзакций.

Реализация управления транзакциями в технологиях доступа IBExpressи  BDE.

Серверные наборы данных, формирование, основные свойства, методы и события.

Основные механизмы управления данными в удаленных БД.
            9.31 Задания СРСП

.

1. Выбор и защита технологии доступа к БД;

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

3. Провести отладку режимов видимости данных и обновления НД клиента;

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

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

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

.

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

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

3. Изучить код модуля данных учебного примера Example;

4.Изучение механизма событий в многозвенных ИС;

5. Изучениесистемыпомощи(HELP), утилитыInteractivSQL, операторы: CREATEEXCEPTION;

6. Изучить конспект 9,10 лекций[3].
            9.33 Демонстрация

.

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

Создания модуля данных.

Работы с компонентами доступа к БД.

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

Видимости данных приложений Consoleи Expert.

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


    продолжение
--PAGE_BREAK--10 ТЕХНОЛОГИИ ДОСТУПА К БД


            10.1 Технологии доступа.
Технология работы с базами данных SQL – сервера «InterBaseExpress».

Основные компоненты и их использование.

Настройка соединения с БД.

Обновление наборов данных, формируемых при помощи SQL – операторов.

ТехнологияBorland Database Engine (BDE).

Утилита«BDE Administrator».

УстановкапсевдонимаБД.

Основные компоненты для работы с БД.

Тестирование функций компонентов модуля данных.
            10.2 Определение.

Технология доступа в многопользовательской системе реализуемой в системе с клиент – серверной архитектурой, определяет взаимодействие клиентского приложения с серверной БД, включая:

-  авторизацию пользователя (защита данных);

-  управление видимостью данных;

-  сетевое взаимодействие.
            10.3 Реализация в Delphi

.

Технологии доступа к БД, поддерживаемые стандартным набором библиотек среды разработки Delphi:



            10.4 Архитектура

.

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

           

            10.5 IBExpress

.

Библиотека компонентов реализующих технологию IBExpress расположена на вкладке палитры VCL «InterBase», и содержит наборы компонент для:

-    соединения с БД(IBDatabase, IBTransaction);

-    доступа к данным(IBTable, IBQuery, IBStoredProc, IBUpdateSQL, IBDataSet, IBSQL, IBClientDataSet);

-    администрирования БД(IBDatabaseInfo, IBSQLMonitor, IBEvents, IBExtract).
            10.6 Модуль данных

.

Не визуальный компонент реализуется как окно — контейнер для помещения в него компонент для работы с БД (TDataBase, TTable, TQuery, TStoredProc).  А также, если необходимо, обработчиков событий этих компонентов и объектов полей соответствующих НД.

            10.7 IBDataBase

.

Настройка основных свойств компонента IBDataBase подразумевает определение следующих параметров:
DataBaseName- для определения каталога и имени серверной базы данных;

           

DefaultTransaction – связный компонент транзакции, обязательно;

           

Params — определение параметров авторизации, задаваемых в редакторе компонента;
LoginPrompt — определяет режим авторизации, при значении true запрос диалога на ввод имени пользователя и пароля обязателен;

           

SQLDialect – определяет диалект, используемый при создании БД;

           

Connected– логическое свойство, показывающее активность соединения.
            10.8 Редактор компонента

.

Задание имени пользователя (SYSDBA) и пароля (masterkey) выполняется в редакторе объекта, как показано рисунке:

            Свойство AllowStreamedConnected(значение по умолчанию — true), определяет, что соединение автоматически будет устанавливаться, не зависимо от свойства Connected, при выполнении любого запроса к данным или БД.

            Свойство IdleTimer определяет интервал ожидания  перед автоматическим завершением соединения.
            10.9 Наборы данных

.

Компоненты распространенных технологий:



BDE

InterBaseExpress



dbExpress

ADO

TBDEDataSet
TDBDataSet
TTable
TQuery
TStoredProc

TIBCustomDataSet
TIBDataSet
TIBTable
TIBQuery
TIBStoredProc

TCustomSQLDataSet
TSQLDataSet
TSQLTable
TSQLQuery
TSQLStoredProc

TCustomADODataSet
TADODataSet
TADOTable
TADOQuery
TADOStoredProc



Все технологии используют однотипные наборы компонентов.



            10.10 IBTable

.

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

            Основные свойства:

DatabaseName — имя БД, содержащую искомую таблицу;

TableName — имя таблицы, на стадии проектирования выбирается из выпадающего списка;

Active — указывает, открыта (true) или нет (false) данная таблица;

ReadOnly — если это свойство равно true, таблица открыта в режиме «только для чтения»;

Fields — массив объектов TField;

Eof, Bof — эти свойства принимают значение true, когда указатель текущей записи расположен на последней или соответственно первой записи таблицы;

RecordCount — возвращает общее число записей набора данных.

            10.11 Вопрос

.

Какая функция используется в приложении клиента для получения списка имен полей таблицы серверной БД? 

1. Table1.Fields().

2. Table1.Fields[2].AsString.

3. Table1.Fields[*].AsString.

4. Table1.Fields[*].Value.

5. Нет правильного ответа.
            10.12 Состояния НД

.

В каждый момент времени набор данных находится в определенном состоянии:

            10.13 Методы управления НД

.

Методы компонента реализуют набор основных функций по управлению:

-    состоянием компонента;

-    навигацией данных;

-    работе с данными.
Open и Close устанавливающие значения свойства Active равными True и False соответственно.

Append, Insert – переводят НД в режим добавления записи, или на место курсора или в конец набора.

Edit – переводит в режим редактирования.

Delete – удаление текущей записи.

Post, Cancel – закрытие НД с сохранением и без сохранения изменений.

Refresh — позволяет заново считать набор данных из БД или из файла.
            10.14 Навигация по набору

.

Реализация принципа навигации по НД осуществляется чаще всего с помощью методов и свойств компонента TDataSet:

First– перваязаписьтаблицы(DataModule1.Table1.First);

Last – последняя запись таблицы (DataModule1.Table1. Last);

Next– следующаязаписьтаблицы(DataModule1.Table1.Next);
Prior– предыдущаязаписьтаблицы(DataModule1.Table1.Prior);

RecNo – переход к записи по указанному номеру:

DataModule1.Table1.RecNo:=StrToInt(Edit1.Text).
            10.15 Пример использования

.

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

Table1.First;
while not Table1.Eof do

begin
              //выполняем действие над записью.
Table1.Next;
end;
            10.16 СобытияНД

.

По паре методов-обработчиков (до и после события) предусмотрено для следующих событий в наборе данных:

-  открытие и закрытие набора данных;

-  переход в режим редактирования;

-  переход в режим вставки новой записи;

-  сохранение сделанных изменений;

-  отмена сделанных изменений;

-  перемещение по записям набора данных;

-  обновление набора данных.
            10.17 Поля наборов

.

Поля наборов данных реализованы специальным классом TField.

Доступ из программы к индивидуальным полям записи осуществляется при помощи одного из следующих свойств или методов, каждый из которых принадлежат TDataSet:
                        property Fields[Index: Integer];

                       

                        function FieldByName(const FieldName: string): TField;
Свойство FieldCount возвращает число полей в текущей структуре записи
                         propertyFieldCount;
            10.18 Пример

.

Заполнение списка ListBox значениями поля:
procedure TForm1.ValuesClick(Sender: TObject);

var

i: Integer;

begin

ListBox2.Clear;

for i := 0 to Table1.FieldCount — 1 do

ListBox.Items.Add(Table1.Fields[i].AsString);

end;
счетчик изменяется от нуля до FieldCount — 1.
            10.19 TQuery

.

Основное назначение это выполнение практически любого SQL– оператора:
           

1. Выполнять операторы языка SQL для управления метаданными:
CREATE …

ALTER …

DROP …

2. Выполнять операторы управления данными:
INSERT …

UPDATE …

DELETE …

3. Выполнять оператор SELECT … для формирования локального набора данных, включая вызов хранимых процедур.
            10.20 Вопрос.

Один компонент запроса используется для формирования нескольких наборов данных, при помощи выполнения оператора SELECTс различными значениями параметра. Возможно ли, выполнять следующий запрос и одновременно редактировать ранее сформированный набор данных?
            10.21 Кэширование данных

.

Кэширование данных производится при помощи объекта:



IBClientDataSet1.SaveToFile('C:\PIS\CDset\CDS1.tss',dfBinary);
            10.22 Содержание отчета

.

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

Описание состава проекта, основные модули и их назначение;

Изображение окна модуля данных проекта с наборами сформированных компонентов;

Настройка соединения с БД (пути, параметры), авторизация;

Описание основных компонентов их назначение и необходимые значения свойств (код используемых операторов);

Описание параметров управления транзакциями, результаты тестирования различных режимов видимости данных.
            10.23 Вопросы по 5 лабораторной

.

Назначение, основные преимущества использования систем, построенных с применением клиент – серверных архитектур.

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

Наборы компонентов технологий доступа к серверным базам данных BDEи IBX, назначение основные свойства и методы.

Технологии реализации многозвенных архитектур, основные преимущества и недостатки.

Управление транзакциями, режимы видимости данных, уровни изоляции транзакций.

Реализация управления транзакциями в технологиях доступа IBExpressи  BDE.

Серверные наборы данных, формирование, основные свойства, методы и события.

Основные механизмы управления данными в удаленных БД.

Понятие сетевого трафика, механизмы управления, оптимизации при работе в различных архитектурах.
            10.24 Задания СРСП

.

1. Выбор и защита технологии доступа к БД;

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

3. Провести отладку режимов видимости данных и обновления НД клиента;

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

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

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

.

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

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

3. Изучить код модуля данных учебного примера Example;

4.Изучение механизма событий в многозвенных ИС;

5. Изучениесистемыпомощи(HELP), утилитыInteractivSQL, операторы: CREATEEXCEPTION;

6. Изучить конспект 9,10 лекций[3];
            10.26 Демонстрация

.

Создание проекта, включая модуль данных,

Компоненты соединения с БД.

Редактирование набора данных.

Кэширование набора данных

.
            10.27  Тренировочный тест, 10 вопросов.
Ответы





    продолжение
--PAGE_BREAK--11 ПРОЕКТИРОВАНИЕ «ТОНКОГО» КЛИЕНТА


            11.1 Проектирование пользовательского интерфейса.
Функции ведения данных в серверной БД.

Проектирование управления данными в таблицах большого объема.

Разработка интерфейсной части клиентского приложения.

Тестирование разработанной информационной системы.

Определение времени выполнения сложного поискового запроса к БД.

Определение селективности индексов.

Составление (спецификации) описания ПО.
            11.2 Определение.

Пользовательский интерфейс — это инструмент визуального взаимодействия пользователя с системой.

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

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

К ним относятся:

-  требования и ограничения решения,

-  сценарии использования системы,

-  модели потоков операций,

-  профили пользователей,

-  описания задач.

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

-  стандартный пользовательский интерфейс Windows;

-  Web-интерфейс;

-  интерфейс мобильных устройств;

-  интерфейс на основе документов.
            11.4 Компоненты интерфейса.

Компоненты пользовательского интерфейса управляют взаимодействием спользователем. Они применяются для:

-  отображения информации и полученияданных от пользователя,

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

-  изменения состояния интерфейса,

-  информирования о степенивыполнения задач.

В схеме «модель- вид- элемент управления» (Model-View-Controller, MVC) компоненты пользовательского интерфейса играют роль представления и/или элемента управления.

Согласно этой схеме приложение (или даже интерфейс приложения) делится на три части:

-  модель (объект-приложение),  

-  представление (пользовательский вид),

-  механизм управления (пользовательский элемент управления).
           

            11.5 Функции компонентов.

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

-  отображения информации на экране,

-  ввода и проверки пользовательских данных,

-  интерпретации действий пользователя.

-  формирования выходных документов.
Кроме того, пользовательский интерфейс должен фильтровать операции, разрешая только те, на которые у данного пользователя есть право.
            11.6 Принципы.

Есть ряд вопросов, ответы на которые необходимо получить и учитывать при проектировании пользовательского интерфейса:

-  Как пользователи будут взаимодействовать с системой?

-  Понятны ли пользователям понятия и термины интерфейса?

-  Предусмотрена ли возможность при необходимости выполнять автоматизированные действия вручную?

-  Насколько легко доступны часто выполняемые задачи?

-  Насколько корректно и полно описан рабочий процесс?

-  Облегчает ли интерфейс работу пользователей?

-  Доступна ли и насколько эффективна справочная информация?

-  Есть ли возможность настроить интерфейс для собственных нужд?

-  Существуют ли альтернативные способы выполнения задачи на случай неполадок (например, при отключении мыши)?
            11.7 Вопрос.

Может ли один визуальный компонент выполнять и функцию отображения, и функцию управления, например: 

1. Edit.

2. Grid.

3. Memo.

4. CheckBox.

5. Label.
            11.8 Компоненты Delphi.

Отображение данных обеспечивает достаточно представительный набор компонентов VCL Delphi.

Вкладки:

STANDARD;

ADDITIONAL;

SYSTEM;

DATA CONTROLS.
            11.9 Вопрос.

Какой компонент не требует наличия набора данных БД;

1. TDBRadioGoup

2. TDBListBox

3. TDBMemo

4. TDBRichEdit

5. TDBLookupComboBox



            11.10 TDBGrid.

Компонент TDBGridотображает содержимое НД в виде таблицы, в которой  столбцы  соответствуют  полям НД,  а строки – записям.

В работе компонента TDBGrid важную роль играет класс TColumn, который инкапсулирует свойства столбца таблицы.

При работе с компонентом TDBGrid все операции с отдельными полями осуществляются при помощи экземпляра класса TDBGridCoiumns, который инкапсулирует список объектов полей (свойство columns компонента TDBGrid).

Доступ к полям осуществляется при помощи свойства items. Нумерация полей начинается с нуля.

            11.11 TDBNavigator.

Компонент TDBNavigator содержит набор кнопок, каждая из которых отвечает за выполнение одной операции над набором данных.

Всего имеется 10 кнопок, разработчик может оставить в наборе любое количество кнопок в любом сочетании.

Видимостью кнопок управляет свойство visibieButtons
            11.12 Поля НД.

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

TDBText,

TDBEdit,

TDBComboBox,

TDBListBox.

Данные в формате Memo отображаются компонентами:

TDBMemo и TDBRichEdit.
            11.13 Синхронный просмотр.

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

В Delphi механизм синхронного просмотра реализован на уровне отдельныхполей и компонентов.В наборе данных динамически можно создать специальное поле синхронного просмотра, которое будет автоматически замещать одно значение другимв зависимости от значения ключевого поля. Такое поле можно связать слюбым рассмотренным выше компонентом отображения данных(Подстановочное поле — lookupполе).
            11.14 TDBLookupComboBox .

Для реализации компонента требуется два связанных НД, например принадлежность сотрудника к кафедре.

            11.15 Основные свойства.

Свойство ListSource указывает на компонент типа TDataSource, который связан с набором данных синхронного просмотра ( таблица- DIVISION).

Свойство ListFieid указывает на поле «NUM_DIV; NAME_DIV», все значения которого доступны в списке компонента.

Свойство KeyField указывает на поле NUM_DIV, которое имеется в двух таблицах и по которому осуществляется связь.

Во время работы компонента в свойстве KeyValue содержится текущее значение, которое связывает между собой два набора данных.

Свойство ListFieidindex определяет, какое поле используется при наращиваемом поиске.
            11.16 Модель качества.

Модель качества программного обеспечения классифицируется в следующих структурных наборах характеристик:
Функциональность; Надежность; Практичность (применимость); Эффективность; Сопровождаемость; Мобильность.

            11.17 Функциональность.

Набор атрибутов характеризующий, соответствие функциональных возможностей ПО набору требуемой пользователем функциональности. Детализируется следующими подхарактеристиками (субхарактеристиками):

-  пригодностью для применения;

-  корректностью (правильностью, точностью);

-  способностью к взаимодействию (в частности сетевому);

-  защищенностью.
            11.18 Надежность.

Набор атрибутов, относящихся к способности ПО сохранять свой уровень качества функционирования в установленных условиях за определенный период времени. Детализируется следующими подхарактеристиками:

-  уровнем завершенности (отсутствия ошибок);

-  устойчивостью к дефектам;

-  восстанавливаемостью;

-  доступностью;

-  готовностью.
            11.19 Практичность.

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

-  понятностью;

-  простотой использования;

-  изучаемостью;

-  привлекательностью.
            11.20 Эффективность.

Набор атрибутов, относящихся к соотношению между уровнем качества функционирования ПО и объемом используемых ресурсов при установленных условиях. Детализируется следующими подхарактеристиками:

-  временной эффективностью;

-  используемостью ресурсов.
            11.21 Сопровождаемость.

Набор атрибутов, относящихся к объему работ, требуемых для проведения конкретных изменений (модификаций). Детализируется следующими подхарактеристиками:

-  удобством для анализа;

-  изменяемостью;

-  стабильностью;

-  тестируемостью.





            11.22 Мобильность.

Набор атрибутов, относящихся к способности ПО быть перенесенным из одного окружения в другое. Детализируется следующими подхарактеристиками:

-  адаптируемостью;

-  простотой установки (инсталляции);

-  сосуществованием (соответствием);

-  замещаемостью.

           

11.23 Мастер форм.

Мастер форм вызывается из пункта меню

File\ New\ Projects\ Application Wizard

            11.24 Выбор пунктов.

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

File, Edit, Window, Help.

            11.25 Кнопки пунктов.

Следующий шаг – выбор необходимых кнопок для пунктов меню, которые были выбраны на предыдущем этапе.

            11.26 Шаблоны проекта.

Создание и сохранение собственных шаблонов в репозитории для последующего использования.
            11.27 Вопросы по 6 лабораторной

.

Какова роль презентационного уровня в архитектуре бизнес-приложения?

Каковы отличительные черты удачного пользовательского интерфейса?

Чем отличается дизайн с высокой и низкой детализацией?

Какие средства доступны разработчикам для организации помощи пользователям?

Какие существуют типы моделей пользовательского приложения, и в каких случаях их стоит применять?

Основные методы и события компонента отображения данных.

Какие существуют группы  компонентов отображения данных?

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

Основные свойства компонентов синхронного просмотра данных.

Табличное представление данных.
            11.28 Задания СРСП

.

1. Защита не менее четырех функций, реализуемых в приложении клиента;

2. Ответить на контрольные вопросы шестого модуля;

3. Провести отладку программногокода приложения пользователя;

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

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

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

7. Тест рубежного контроля.
            11.29 Задания СРС

.

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

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

3. Изучить код модулей, используемых в учебном примере Example;

4. Изучение механизма индексов, операторы: CREATEINDEX;

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

6. Оформление отчета по лабораторной или курсовой работе.
            11.30 Демонстрация

.

Управление наборами данных.

Визуальный интерфейс, примеры.

Проектирование тестовых наборов данных в IBExpert.

Проектирование формы со связными полями выбора.


    продолжение
--PAGE_BREAK--


Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.