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

87







		

		

Министерство образования и науки Республики Казахстан



ВОСТОЧНО-КАЗАХСТАНСКИЙ ГОСУДАРСТВЕННЫЙ

ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ им. Д. СЕРИКБАЕВА



























И.А. Загайнов





ПРОЕКТИРОВАНИЕ  ИНФОРМАЦИОННЫХ СИСТЕМ

Конспект мультимедиа лекций для студентов специальностей

050704 – «Вычислительная техника и программное обеспечение»,

050703 – «Информационные системы».















































Усть-Каменогорск

2008



УДК 004.78 



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



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

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

	Конспект лекций используется для:

внесения пометок при прослушивании лекций;

записи ответов на обсуждаемые вопросы;

запись ответов на вопросы тренировочных тестов;

фиксирования последовательности проектирования элементов, и т.д.

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







Утверждено методической комиссией факультета информационных технологий и энергетики.

Протокол № _____ от ____________  2008г.











































© Издательство ВКГТУ

им. Д. Серикбаева, 2008




СОДЕРЖАНИЕ



	Введение	4

	1 Введение в дисциплину	5

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

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

	4 Администрирование СУБД	40

	5 Среда проектирования IBEXPERT	50

	6 Триггеры	60

	7 Хранимые процедуры	66

	8 UDF	78

	9 Клиент – серверная архитектура ИС	84

	10 Технологии доступа к БД	92

	11 Проектирование «тонкого» клиента	99

	12 Сетевое взаимодействие	106




ВВЕДЕНИЕ



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

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

Выпускник физического факультета Новосибирского Государственного университета по специальности "Автоматизация физико-технических измерений". На протяжении двадцати лет занимался разработкой и внедрением автоматизированных информационных комплексов на предприятиях города и области ("Проектно-конструкторского бюро АСУ", ОАО "Казахтелеком", СП "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

5

10

10

2.

Системы управления базами данных

5

5

10

10

3.

Средства поддержки целостности данных

5

5

10

10

4.

Механизм хранимых процедур

5

5

10

10

5.

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

5

5

10

10

6.

Технологии «тонкого» клиента

5

5

10

10



Всего

30

30

60

60





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.

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

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

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

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

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

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

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

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



1.11 Лабораторная работа 5.

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

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

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

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

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

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

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



1.12 Лабораторная работа 6.

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

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

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

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

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

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

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



1.13 Курсовая работа.

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

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

Защита:

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

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

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

программные средства.







	1.14 Рейтинговая оценка.

Вид контроля

Наименование работ

Макс.

балл

Мин.

балл

Текущий контроль 1

Лабораторный практикум 1 модуля

10

5



		Отчет раздела курсовой работы

10

5

Текущий контроль 2

		Лабораторный практикум 2 модуля

10

5



Отчет раздела курсовой работы

10

5

Текущий контроль 3

Лабораторный практикум 3 модуля

10

5



Отчет раздела курсовой работы

10

5

Рубежный контроль 1

Тест из 40 вопросов

40

20

Аттестация 1

		

100

50

Текущий контроль 4

		Лабораторный практикум 4 модуля

10

5



Отчет раздела курсовой работы

10

5

Текущий контроль 5

		Лабораторный практикум 5 модуля

10

5



Отчет раздела курсовой работы

10

5

Текущий контроль 6

		Лабораторный практикум 6 модуля

10

5



Отчет раздела курсовой работы

10

5

Рубежный контроль 2

Тест из 40 вопросов

40

20

Аттестация 2

Набранный за семестр балл

100

50



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

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

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

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

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

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

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

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





	1.16 Учебный материал.

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

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

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

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

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

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

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

Учебные примеры БД и приложений. 





	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 – Manufacturing resource planning.     	             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 – сервер «Inter Base».

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

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



	1.27 Трехзвенная архитектура.

4. Рисунок (пункт 9.10).





	1.28 Интернет.

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

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

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

В качестве клиента используется браузер, например, Internet Explorer. 





	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. Изучение функции среды управления: CREATE DATABASE, DROP DATABASE, REGISTER DATABASE, CONNECT, DISCONNECT;

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



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

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

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

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

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

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








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 Иерархическая структура



.



	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».

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

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

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

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

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

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

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



	2.32 Задачи стандартов.

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

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

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

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

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

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

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

Узнать про используемые стандарты предприятия, можно, поинтересовавшись о последних результатах внедрения ИС.



Новый объем процессов ЖЦ системы определяется стандартом EIA 632.







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



	2.33 Заключение

.

Итак:

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

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

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

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

Архитектура системы …



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

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







	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. Изучение функции среды управления: CREATE DATABASE, DROP DATABASE, REGISTER DATABASE, CONNECT, DISCONNECT;

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



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

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

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

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

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

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





2.38 Тренировочный тест, 10 вопросов.



Ответы

1

2

3

4

5

6

7

8

9

10
























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 в поле «User Name» и пароля masterkey в поле «Password».



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











	3.11 Создание БД

.

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

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











	3.12 Параметры

.

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

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

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

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

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







	3.13 Вопрос

.

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







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

.

Функция «Register». 



Последовательность поиска и 

выбора файла БД. 



При администрировании с удаленной 

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

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

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

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

серверу.

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


 







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

.

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

Домены.

Таблицы.

Просмотры.

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

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

Генераторы.

Исключения. 









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

.

Базы данных, не обязательно одна.



Резервные копии.

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

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









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

.

Connect. 



Disconnect. 



Shutdown. 



Sweep. 



View Metadata. 



Drop Database. 



Database Backup. 

Restore Database.



Connected Users. 







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

.

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

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

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

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













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

.

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

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











	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 (переносимый);



Metadata Only (сохранить только структуру БД без данных).

Остальные параметры по умолчанию. 





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

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









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

Backup;

Restore;

Modify Backup Alias;

Delete Alias.



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

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

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

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







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

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







	3.26 SQL – скрипт БД



.

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

 

Функция «View Metadata». 

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











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

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

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

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

Загрузить скрипт можно выбором функции «Load Script» пункта меню «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 – скрипт БД.












4 АДМИНИСТРИРОВАНИЕ СУБД



	4.1 



Interactive SQL.

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

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

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

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

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

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

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

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



	4.2 



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

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

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



	4.3 Окно ISQL.







	4.4 Функции ISQL.

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

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

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

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

Управление БД.





	4.5 SQL - операторы.

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









	4.6 Домены.

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

	Создается оператором:



CREATE DOMAIN домен [AS] <тип_данных> 

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

[NOT NULL] 

[CHECK (<усл_поиска_домена>)] 

[COLLATE collation];





	4.7 Изменение домена.

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

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

ALTER DOMAIN имя {

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

| [DROP DEFAULT] 

| [ADD [CONSTRAINT] CHECK (<огранич_домена>)]

| [DROP CONSTRAINT]}



Утверждение ALTER DOMAIN имеет новые опции, которые позволяют Вам изменять имя и тип данных.



ALTER DOMAIN domain1 TO domain2;





	4.8 Примеры.

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

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

       COLLATE PXW_CYRL;

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

CREATE DOMAIN ROOM AS INTEGER

CHECK (VALUE>=100 AND VALUE<=1000)

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





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

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

CREATE TABLE table

(<col_def> [, <col_def> | <tconstraint> …]);



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





	4.10 Примеры.

CREATE TABLE "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 Изменение таблиц.

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

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

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

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

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

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

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

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

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

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

изменение позиции столбца в таблице.





	4.14 Примеры:

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

ALTER TABLE table1 ALTER COLUMN field1 TO field2;

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

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

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

ALTER TABLE table1 ALTER COLUMN field1 POSITION 4;

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





	4.15 Ограничения конвертации.

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









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

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







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

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

DROP TABLE <имя таблицы>;

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

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





	4.18 Вопрос.

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

A) 2 15.

B) 2 16.

C) 2 32.

D) 1024.

E) 32000.







	4.19 Типы данных.

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

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

Числовые;

Символьные;

Даты;

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

В седьмой версии будет тип BOOLEAN 16 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 или DOUBLE PRECISION: если точность (количество знаков в числе) меньше 10, то реальный тип столбца INTEGER, если больше или равно 10, реальный тип столбца DOUBLE PRECISION. 





	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, ORDER BY), при обновлении индексов и т. д. 

LAST_NAME   VARCHAR(20) COLLATE PXW_CYRL,

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

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

аАбБвВгГ…Яя

Демонстрация кодов символов в 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 BLOB SEGMENT SIZE 1024,

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

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





	4.28 Массивы данных.

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

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

ARR_COL INTEGER [30],

ARR_COL1 INTEGER [0:29],

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

ARR_COL INTEGER [0:29, 15, 10]

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

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 <= CAST (DATE_DATE AS CHAR);







	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);



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

CREATE GENERATOR G_EMP;

SET GENERATOR G_EMP TO 100;

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



	4.31 Удаление данных.

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

DELETE FROM Имя_таблицы 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, операторы: CREATE TABLE, ALTER TABLE, DROP TABLE, CREATE DOMAIN, GRANT, REVOKE;

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

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



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

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

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

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

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

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

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

Операторы управления данными.



	4.36 Тренировочный тест, 10 вопросов.



Ответы

1

2

3

4

5

6

7

8

9

10




























5 СРЕДА ПРОЕКТИРОВАНИЯ IBEXPERT



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

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

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

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

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

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

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

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

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

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





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

IB Expert (Эксперт) – профессиональная графическая среда управления и администрирования SQL – серверов InterBase и FireBird. 



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



Встроенный графический дизайнер реляционной диаграммы БД.



Генератор тестовых наборов данных.





	5.3 Инсталляция IB Expert.

1. Дистрибутив:



ibet_2.5.0.14_full.exe



2. Каталог.



C:\Program Files\HK-Software\IB Expert 2.0



3. Запуск Эксперта.



 «Пуск\Программы\IB Expert 2.0\IBExpert».



Демонстрация инсталляции и настройки.



















	5.4 Структура среды IB Expert.

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











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

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

Options | Environment Options | Interface Language – выбрать русский:







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





	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 Формат оператора.

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



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

ADD 

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

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

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

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

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



Параметры:

ON DELETE: 

ON UPDATE 

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





Вопрос.

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

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

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

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

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

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





















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

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





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

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



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

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



INSERT, UPDATE, DELETE



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

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







	5.20 Генератор.

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



CREATE GENERATOR G_EMP;

SET GENERATOR G_EMP TO 100;



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

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



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



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



INSERT, SET, UPDATE.





	5.21 Вопрос.

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

A) 2 15.

B) 2 16.

C) 2 32.

D) 1024.

E) 32000. 





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

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

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

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

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

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

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

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

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

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





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

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

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

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

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

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

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

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

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





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

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

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

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

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

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

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

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







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

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

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

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

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

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

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

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
















6 ТРИГГЕРЫ



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

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

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

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

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

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

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







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

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



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

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

каскадного изменения в связанных таблицах;

формирования автоинкрементных полей; 

ведение архивов записей; 

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

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





	6.4 Формат.

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

 CREATE TRIGGER name FOR table  

[ACTIVE | INACTIVE]  

{BEFORE | AFTER}  

{DELETE | INSERT | UPDATE}  

[POSITION number]  

AS 

DECLARE VARIABLE variable <datatype>;  

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

BEGIN  

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

END  





	6.5 Параметры.

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

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

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

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

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

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



	6.6 Вопрос.

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

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

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

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

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

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





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

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

BEGIN  

<compound_statement>  [<compound_statement> ...]

END  

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

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





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

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

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

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

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

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

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

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

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

<  оператор  1> 

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





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

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

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

WHERE TOVAR = :INTOVAR 

INTO :AVG_KOLVO, :SUM_KOLVO;  

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

FOR

<оператор   SELECT>

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.ПолеСвязиРодителя)

THEN UPDATE  ДочерняяТаблица

SET ПолеСвязиДочернейТаблицы = NEW.ПолеСвязиРодителя

WHERE ПолеСвязиДочернейТаблицы = OLD.ПoлeCвязиPoдитeля; 



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





	6.12 Терминатор.

Для работы в IB Console необходимо переопределять терминатор (символ, завершающий оператор программного кода). 

Выполняется оператором:



SET TERM !! ;

CREATE TRIGGER . . .

. . .

END !!

SET TERM ; !! 



После кода триггера, значение терминатора возвращается в предыдущее. Последний оператор 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

Проверяем работу генератора. 

insert into ne1( "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, операторы: CREATE TRIGGER, ALTER TRIGGER, DROP TRIGGER, CREATE GENERATOR, SET GENERATOR, INSERT, UPDATA, DELETE;

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

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





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

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

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

Оператор INSERT в таблицу с автоинкрементным полем.

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

Примеры реализации сложных бизнес правил.

Пробное тестирование.



	6.23 Правила электронного тестирования.

1. Можно пропустить (не заполнять ячейку) несколько (2-3) вопроса для обсуждения на апелляции, нельзя пропускать 40-ой вопрос.

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

3.  При тестировании нельзя прокручивать список вопросов в обратную сторону. 

4. Для перехода вперед, не дожидаясь срабатывания таймера достаточно кликнуть мышкой или нажать «стрелку вниз». 

5.  Ответы проставляются сразу в лист ответов без промежуточной записи. 





	6.24  Тренировочный тест, 10 вопросов.



Ответы

1

2

3

4

5

6

7

8

9

10


































7 ХРАНИМЫЕ ПРОЦЕДУРЫ



	7.1 Механизм хранимых процедур (Stored Procedures).

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

Формат оператора создания объекта.

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

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

Проектирование в среде IBExpert.

Примеры реализации.

Вызов хранимых процедур в приложении.

Компоненты Delphi для работы с хранимыми процедурами.

IBStoredProc – вызов ХП действия. 

IBQuery – вызов ХП выбора.

Совместимость переменных SQL – сервера и среды разработки Delphi.

Тренировочный тест к рубежному контролю.







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

Хранимая процедура (Stored procedures) - это модуль, написанный на процедурном языке  и хранящийся в базе данных как метаданные.

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



	7.3 Типы процедур.

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

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

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





	7.4 Преимущества.

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

	одну процедуру можно использоваться многими приложениями;

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

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

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





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

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

CREATE PROCEDURE name

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

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

  AS  

DECLARE VARIABLE var <datatype>;

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

 BEGIN

<compound_statement>

  [<compound_statement> ...]

END 





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

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

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

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

 BEGIN ... END

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

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





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

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

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

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

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

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

FOR

<оператор   SELECT>

DO

<  оператор>; 

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

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

DO <  оператор> 





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

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

WHERE TOVAR = :INJTOVAR 

INTO :AVG_KOLVO, :SUM_KOLVO; 

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

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





	7.9 Операторы.

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

	EXIT 

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

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

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

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

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





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

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

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

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

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

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





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

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

	DML и оператор SELECT.

	Операторы и выражения, включая UDF, связанные с БД и генераторы.

	Инструкции присвоения, 

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

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

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

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





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







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

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

	Выделить пункт «Процедуры».

	Вызвать контекстное меню.

	Выбрать пункт «Новая процедура».

	В открывшемся окне редактора задать:

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

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

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

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



	7.14 Код ХП для IBConsole.

SET TERM ^ ;

CREATE PROCEDURE COL_EMP

RETURNS (NUM_D INTEGER, CNT_EMP INTEGER)

AS BEGIN

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

 FROM EMPLOYEE

 GROUP BY EMPLOYEE.NUM_D

 INTO :NUM_D, :CNT_EMP

DO    SUSPEND;  END ^

SET TERM ; ^ 



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

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

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





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

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

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

EXECUTE PROCEDURE FIND_COL 

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

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

SELECT * FROM D_ARX(2006) 



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

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

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

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

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

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

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

AS

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



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

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

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



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

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

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

MAX(), MIN(), 

CAST(), 

UPPER(), 

EXTRACT() 

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

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



	7.20 EXTRACT().

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

extract (year from arx_emp.dat_izm) = :d_emp

	month

 	day

	hour

	minute

	second

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



	7.21 Вопрос.

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

1. DATE.

2. INTEGER.

3. TIMESTAMP.

4. NUMERIC().

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



	7.22 Пример.

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

  for select 

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

  from arx_emp where

  extract(year from arx_emp.dat_izm) = :d_emp

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

  do 



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

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

CURRENT_DATE

CURRENT_TIME

CURRENT_TIMESTAMP 

Например:

UPDATE TablName SET Name Field = CURRENT_TIME; 



	7.24 Вопрос.

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

1. DATE.

2. TIME.

3. TIMESTAMP.

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

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



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

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

GRANT

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

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

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



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

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

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

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



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

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





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

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





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

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





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

1. IBTransaction и IBDatabase	

2. IBQuery и IBDatabase

3. DataSource и IBQuery

4. DBGrid и DataSource

Демонстрация проектирования приложения.



	7.31 Параметры Query.

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

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.40 Вопрос.

Сколько раз в разработанном приложении можно нажать на клавишу «Button1» с введенным набором данных, без появления ошибки?

1. Один.

2. Любое количество раз.

3. По одному разу для каждого нового набора данных.

4. По одному разу для каждого наименования подразделения.

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



	7.41 Заключение.

Механизм хранимых процедур, как самый универсальный и экономичный используется:

Для ведения данных серверных БД;

Для формирования наборов данных для построения отчетов;

При реализации сложных алгоритмов бизнес-правил, обеспечивающих целостность БД;

При формировании результатов сложных поисковых запросов.



	7.42 Ограничения.

Механизм ХМ не может управлять структурой данных.

В отличии от компонента запроса (Query), в коде хранимой процедуры нельзя выполнять операторы управления структурой данных, таких как, CREATE … ,  ALTER… , DROP… и других.

Реализация функции управления зависит от программной реализации SQL – сервера. Например, MS SQL – сервер позволяет в хранимой процедуре выполнять оператор CREATE TABLE…

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



	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);

WHEN SQLCODE -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 SELECT job_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 вопросов.



Ответы

1

2

3

4

5

6

7

8

9

10




























8 UDF





	8.1 Функции (UDF).

Функции, определяемые пользователем – User Defined Functions  (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 осуществляется в шаблоне DLL Wizard выбираемом из репозитория проектов:











	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 Удаление библиотеки.

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

DROP EXTERNAL FUNCTION name;

При внесении изменении в оператор объявления функции IBExpert генерирует два оператора, на удаление старого объявления, и создание нового. 





	8.16 Вопрос.

Выбрать наиболее точный ответ для среды разработки функций, определяемых пользователем в SQL – сервере InterBase:  

1. Функции процедурного языка и SQL – операторы сервера InterBase.

2. Элементы языка управления данными (DML) и типы данных, используемых в SQL – сервере InterBase.

3. Элементы любого алгоритмического языка, позволяющего создавать динамически загружаемые библиотеки (DLL).

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

5. Любые функции и типы данных, используемых в языке Object Pascal.





	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 ASCII code 			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 whole value 	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 whole valu 	Double precision 	Double precision

LN( )		Natural logarithm 		Double precision 	Double precision

LOG( ) 		Logarithm of the first argument,	Double precision,

		by the base of the second argument Double 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 at position 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.



	




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-tiered Distributed Application Services). 



	9.7 Двухзвенная архитектура.













	9.8 Технология IBExpress (IBX).

Компоненты технологии расположены на вкладке «InterBase».







		

	9.9 Компоненты.

IBDataBase и IBTransaction – обеспечивают сетевое соединение с удаленной (серверной) базой данных.

Серверные наборы данных (DataSet), реализуются при помощи компонентов IBTable, IBQuery, IBDataSet и IBUpdateSQL.

Управление структурой данных осуществляется при помощи компонентов запросов – IBQuery, IBSQL.

Управление вызовом хранимых процедур серверной БД реализуется компонентом IBStoredProc.

























	9.10 Трехзвенная архитектура.





Приложение клиента (Client Application)

Интерфейс пользователя

Модуль данных (Data module)

Посредники

(Data source)

Наборы данных

(Client Dataset)

Сетевой

компонент

Компьютерная сеть

Сервер приложений (Application server)

Компоненты

провайдеры

(provider)

Наборы данных

(Dataset)

Компоненты технологии

доступа к БД

Сервер БД

База данных

БД











	9.11 Основные преимущества трехзвенной архитектуры:

		снижение требований к клиентским рабочим станциям;

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

		уменьшение сетевого трафика;

		контроль и регулирование сетевого обмена;

		возможность отложенного обновления данных (работа с локальной копией + обновление и освежение данных). 

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







	9.12 Особенности проектирования.

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

запуск приложения без соединения с сервером;

динамический поиск сервера по имени или адресу;

активизация соединения без обновления  или с обновлением данных;

наличие таймаута (контроль времени обмена)… 





	9.13 Технологии реализации трехзвенной архитектуры:

DCOM (Distributed Component Object Model – распределенная компонентная модель объектов) – рассчитана на ЛВС, в которой сервер приложений работает по управлением сетевой операционной системы компании Microsoft;

MTS (Microsoft Transaction Server – сервер транзакций MS) – основана на DCOM с дополнительными возможностями по управлению системными ресурсами (процессами, потоками, соединениями с БД), а также с повышенной защищенностью данных;

CORBA (Common Object Broker Architecture – архитектура с брокером общих объектов) – в отличии от DCOM не предъявляет специальных требований к ОС или аппаратной платформе. 



	9.14 Сетевое соединение.

Различные технологии поддерживаются собственными компонентами для сетевого соединения. Каждый компонент реализуется определенным сетевым протоколом. Большинство компонентов расположено на вкладке DataSnap.

	

Компонент

Протокол

TDCOMConnection

DCOM

TSocketConnection

Windows sockets (TCP/IP)

TWebConnection

HTTP

TSOAPConnection

SOAP (HTTP and XML) 

TCorbaConnection

CORBA (IIOP)



	

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 Старт транзакции.

Оператор SET TRANSACTION имеет формат:

SET TRANSACTION 

[Access mode] - [READ WRITE | READ ONLY] 

[Lock Resolution] - [WAIT | NO WAIT]

[Isolation Level] 

	{SNAPSHOT [TABLE STABILITY]

	| READ COMMITTED [[NO] RECORD_VERSION]} 

[Table Reservation] ;

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



	9.23 Уровни изоляции.

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

Dirty Read (грязное чтение) - конкурирующие транзакции видят изменения, внесенные, но не подтвержденные текущей транзакцией. 

Read Committed (чтение подтверждений) - конкурирующие транзакции оперируют только подтвержденными изменениями. 

Repeatable Read (повторяющееся чтение) - заставляет конкурирующие транзакции оперировать с собственными (локальными) версиями одной и той же записи. 



	9.24 Управление в BDE.

При использовании BDE управление транзакциями на уровне приложения реализуется методами компонента DataBase и установкой параметров псевдонима. 

Procedure StartTransaction; 

Procedure Commit; 

Procedure Rollback; 

Управление видимостью данных определяется в свойстве:

Property TransIsolation: (tiDirtyRead), tiReadCommitted, tiRepeatableRead.

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

Property InTransaction: Boolean; 



	9.25 IBTransaction.

Установка свойств транзакции в редакторе компонента







Установленные параметры сохраняются в свойстве Params.



	9.26 Свойства транзакции.

1. Snapshot (concurrency, nowait) – обеспечивает видимость конкурирующих транзакций и немедленный возврат ошибок при обнаружении конфликтных ситуаций;

2. Read Committed (read_committed, rec_version, nowait) – аналогично предыдущему, включая обязательный выбор последней версии; 

3. Read-Only Table Stability (read, consistency) – определяет открытую транзакцию только для чтения данных, блокируя при этом доступ к данным другим транзакциям;

4. Read-Write Table Stability (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, операторы: CREATE EXCEPTION;

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





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

.

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

Создания модуля данных.

Работы с компонентами доступа к БД.

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

Видимости данных приложений Console и Expert.

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






10 ТЕХНОЛОГИИ ДОСТУПА К БД



	10.1 Технологии доступа.



Технология работы с базами данных SQL – сервера «InterBase Express». 

Основные компоненты и их использование. 

Настройка соединения с БД. 

Обновление наборов данных, формируемых при помощи SQL – операторов.

Технология Borland Database Engine (BDE).

Утилита «BDE Administrator».

Установка псевдонима БД. 

Основные компоненты для работы с БД.

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







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

Технология доступа в многопользовательской системе реализуемой в системе с клиент – серверной архитектурой, определяет взаимодействие клиентского приложения с серверной БД, включая:

авторизацию пользователя (защита данных);

управление видимостью данных;

сетевое взаимодействие.









	10.3 Реализация в Delphi

.

Технологии доступа к БД, поддерживаемые стандартным набором библиотек среды разработки Delphi: 





Технология БД					Компонент соединения

The Borland Database Engine (BDE).			TDatabase

ActiveX Data Objects (ADO).				TADOConnection

dbExpress.							TSQLConnection

InterBase Express.						TIBDatabase





	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 - для определения каталога и имени серверной базы данных;

	

Default Transaction – связный компонент транзакции, обязательно;

	

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 возвращает число полей в текущей структуре записи



		 property FieldCount; 







	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, операторы: CREATE EXCEPTION;

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





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

.

Создание проекта, включая модуль данных, 

Компоненты соединения с БД.

Редактирование набора данных.

Кэширование набора данных

.



		





	10.27  Тренировочный тест, 10 вопросов.



Ответы

1

2

3

4

5

6

7

8

9

10


























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. Изучение механизма индексов, операторы: CREATE INDEX;

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

6. Оформление отчета по лабораторной или курсовой работе.





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

.

Управление наборами данных.

Визуальный интерфейс, примеры.

Проектирование тестовых наборов данных в IBExpert.

Проектирование формы со связными полями выбора.



		










12 СЕТЕВОЕ ВЗАИМОДЕЙСТВИЕ



	12.1 Механизм управления обменом.

Компоненты Delphi для контроля передачи данных в трехзвенной архитектуре. 

Ошибки обновления данных.

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

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

Проектирование тестовых наборов данных.

Защита лучших курсовых работ.



	12.2 Сетевое соединение.

В лекции Архитектуры рассматривали различные технологии, поддерживаемые собственными компонентами для сетевого соединения. Каждый компонент реализуется определенным сетевым протоколом. Большинство компонентов расположено на вкладке DataSnap.

Компонент

Протокол

TDCOMConnection

DCOM

TSocketConnection

Windows sockets (TCP/IP)

TWebConnection

HTTP

TSOAPConnection

SOAP (HTTP and XML) 

TcorbaConnection

CORBA (IIOP)









	12.3 Взаимодействие компонентов.

Компонент сетевого соединения (TXXXConnection, коммуникационный) обеспечивает посредством интерфейса IAPPSERVER взаимодействие (обмен данными) двух основных компонентов трехзвенной архитектуры:

компонент провайдера (TDataSetProvider), расположенный в модуле сервера приложений, для каждого источника данных;

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





	12.4 Механизм обмена.

Обмен данными в трехзвенной архитектуре предусматривает передачу пакетов информации между серверными компонентами TDataSetProvider и клиентскими наборами данных TClientDataSet 



		

	

12.5 Свойства провайдера.

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

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

указываются поля, передаваемые в наборе; 

устанавливаются флаги свойства Options, определяющие состав пакета;

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

Компонент провайдера получает клиентский запрос, формирует набор данных и отправляет его клиенту в пакете Data: OleVariant.

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

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

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





	12.6 Преимущества.

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

управления сетевым обменом;

организации обработки ошибок обновления при многопользовательском режиме; 

кэширования данных на стороне клиента;

кэширования запросов пользователей на стороне сервера;

организации брокера ограничений на стороне сервера;

мониторинга работы пользователей.



	12.7 Вопрос.

Использование при проектировании информационной системы трехзвенной клиент – серверной архитектуры не обеспечивает:

1. Снижение требований к клиентским компьютерам.

2. Централизованный доступ к бизнес правилам.

3. Уменьшение сетевого трафика.

4. Контроль и регулирование сетевого обмена.

5. Дополнительный уровень кэширования данных.







	12.8 Тестирование ИС.

Тестирование всех компонентов информационной системы и их взаимодействия:

Сервер(ы).

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

Телекоммуникационные средства.

Серверное ПО 

		Операционная система.

		СУБД.

		Система администрирования.

		Система мониторинга.

Прикладное программное обеспечение (ERP - системы).

Разрабатываемое программное обеспечене.





		

	12.9 Способы тестирования ПО.

Логично - центричный (белый ящик), автоматический анализ программного кода. Стоимость 5 – 15 центов за строку, вероятность пропуска ошибки 10-40%.

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

























	12.10 Проектирование процесса тестирования.

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

	Собственно тесты систем можно разделить на несколько категорий: 

автономные тесты модулей - используются уже на этапе разработки компонентов системы и позволяют отслеживать ошибки отдельных компонентов; 

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

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

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

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









	12.11 Тесты устойчивости системы.

Тесты имитации отказов системы:

отказ отдельного компонента информационной системы; 

отказ группы компонентов информационной системы; 

отказ основных модулей информационной системы; 

отказ операционной системы; 

«жесткий» сбой (отказ питания, жестких дисков). 

Тесты наработки на отказ;

Тесты, имитирующие пиковую нагрузку.

В зависимости от сложности проекта тестирование и исправление ошибок могут занимать треть, половину и больше времени разработки всего проекта. 







	12.12 Bug tracking.

Чем сложнее проект, тем больше будет потребность в автоматизации системы хранения ошибок - bug tracking, которая обеспечивает следующие функции: 

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

система уведомления о появлении новых ошибок, об изменении статуса известных в системе ошибок (как правило, это уведомления по электронной почте); 

отчеты об актуальных ошибках по компонентам системы, по интервалам времени, по группам разработчиков и разработчикам; 

информация об истории ошибки (в том числе отслеживание похожих ошибок, отслеживание повторного возникновения ошибки); 

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

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





	12.13 Выводы.

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

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

требуемую пропускную способность системы; 

требуемое время реакции системы на запрос; 

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

простоту эксплуатации и поддержки системы; 

необходимую безопасность.



	12.14 Тестирование серверной БД.

Тестирование прав доступа.

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

Тестирование триггеров и хранимых процедур.

Тестирование системных функций СУБД (создание резервных копий, работа с требуемой кодировкой, репликация данных …).





	12.15 Тестирование клиентского ПО.

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

Взаимодействие с операционной системой.

Версия MS Office.

Анализ сообщений об ошибках в log – файлах. 

Устойчивость к ошибкам пользователей.

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







	12.16 Внедрение и сопровождение ИС.

Опытная эксплуатация перекрывает процесс тестирования. 

Ввод в эксплуатацию проходит, по крайней мере, три фазы: 

первоначальная загрузка информации; 

накопление информации; 

выход на проектную мощность. 



Сопровождение:

исправление обнаруженных ошибок;

внесение незначительных изменений;

администрирование системы;

переход на новые версии ОС, СУБД, прикладного ПО;

разработка новых версий программного обеспечения.





	12.17 Вопрос.

На каком этапе производится проектирование тестовых наборов данных?

1. Анализ.

2. Моделирование.

3. Синтез.

4. Тестирование и внедрение.

5. Сопровождение.







	12.18 Задание.

Разрабатывают клиентское приложение, реализующее функции пользователя по управлению метаданными и данными в БД SQL – сервера InterBase.

Выбор модели (тип приложения, меню, панели, формы, взаимодействие).

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

Строится модель поиска и навигации по найденному НД с целью управления данными определенной записи.

Программируются необходимые обработчики событий.

Проверяется возможность манипулирования данными одновременно из двух приложений.

Провести анализ режимов видимости данных.

Составить шаблоны системы помощи (help).







	12.19 Вопросы по 6 лабораторной.

Какова роль презентационного уровня в архитектуре бизнес-приложения?

Каковы отличительные черты удачного пользовательского интерфейса?

Чем отличается дизайн с высокой и низкой детализацией?

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

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

Основные методы и события компонента отображения данных.

Какие существуют группы  компонентов отображения данных?

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

Основные свойства компонентов синхронного просмотра данных.

Табличное представление данных.



		

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

1. Тестирование и защита не менее четырех функций, реализуемых в приложении клиента;

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

3. Провести отладку программного кода приложения пользователя;

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

5. Защитить отчет по разделу 3.5 курсовой работы;

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

7. Защита лучших курсовых работ;

8. Тест рубежного контроля.



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

1. Изучить конспект 11,12 лекций;

2. Изучить методические указания к лабораторной работе шестого модуля;

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

4. Изучить код модулей, используемых в учебном примере Example;

5. Изучить использование компонентов TDBGrid, TDBEdit, TDBNavigator, TDBMemo, TDBListBox, TDBComboBox, TDBLookupComboBox.

6. Изучение механизма индексов, операторы: CREATE INDEX;

7. Оформление курсовой работы.









		

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

Управление наборами данных.

Визуальный интерфейс, примеры.

Проектирование формы со связными полями выбора.

Проектирование тестовых наборов данных в IBExpert.



		





	12.23  Тренировочный тест, 10 вопросов.



Ответы

1

2

3

4

5

6

7

8

9

10