Язык программирования – Visual Basic 6.0.
Программа «Обучающая программа построению запросов в процедурном виде» должна удовлетворять требованиям используемой операционной системы, быть совместимой с системными программными средствами, обеспечивать возможность переноса самой программы и обрабатываемых данных на другие компьютеры аналогичного класса.
Контрольный пример должен обеспечивать проверку правильности и работоспособности функций программы «Обучающая программа построению запросов в процедурном виде», обеспечивать проверку работоспособности программы в различных ситуациях.
Контрольный пример должен охватить все варианты решения, предусмотренные функциональным описанием и алгоритмами, отражать все этапы решения, демонстрировать возможности программы.
2.4 Требования к программной документации
Состав программной документации программы «Обучающая программа построению запросов в процедурном виде» должен быть следующим:
- описание программы;
- руководство пользователя;
- функциональное описание.
Состав документов может уточняться в процессе разработки.
Стадии и этапы разработки, содержание работ и сроки выполнения приведены в таблице 2.1.
2.6 Порядок контроля и приемки
В процессе разработки программы «Обучающая программа построению запросов в процедурном виде» должны проводиться: 1) проектирование и отладка программы; 2) предварительные испытания; 3) опытная эксплуатация; 4) ввод в действие.
Предварительные испытания должны проводиться разработчиком в лабораториях кафедры системного программного обеспечения Одесского национального политехнического университета.
Опытная эксплуатация программы должна проводиться разработчиком в лабораториях кафедры системного программного обеспечения с целью опробования функционирования программы в реальных условиях эксплуатации и корректировки программ и программной документации с учетом потребностей пользователя.
Продолжительность опытной эксплуатации составляет 2 недели.
Таблица 2.1 Стадии и этапы разработки
Стадии разработки | Этапы работ | Содержание работ | Сроки выполнения |
Изучение предметной области | Изучение особенностей реляционных операций | Исследование основных составляющих запросов и способов их реализации в виде последовательности реляционных операций | 31.01.10 |
Техническое задание | Разработка технического задания | Разработка технического задания, экономическое обоснование | 01.03.10 |
Эскизный проект | Эскизное проектирование | Разработка функционального описания | 15.03.10 |
Рабочий проект | Разработка прикладных программ | Реализация и отладка программ Разработка программной документации | 15.04.10 |
Испытания программы | Проведение предварительных испытаний | 07.05.10 | |
Проведение опытной эксплуатации | 21.05.10 |
3 Проектирование программы обучения реляционной алгебре
3.1 Анализ предметной области
Программа предназначена для обучения применению реляционной алгебры Кодда, которая включает девять операций: объединение, пересечение, разность, произведение, выборка, создание проекций, соединение, деление и присвоение.
Первые четыре операции взяты из математической теории множеств и практически совпадают с операциями теории множеств. Что понятно, так как реляционные таблицы являются множествами. Следующие четыре – новые операции, относящиеся только к реляционной модели данных. Последняя – присвоение – стандартная операция компьютерного языка, дающая имя величине. В данном случае производится присвоение имени новой таблице, созданной из существующих таблиц.
При выполнении операций объединения, пересечения и разности участвующие в них отношения должны удовлетворять свойству совместимости по объединению. Два отношения совместимы по объединению (или просто совместимы), если они имеют одну и ту же степень (т.е. одно и то же число атрибутов) и совпадающие атрибуты, причем значения атрибутов в каждой паре одинаковых атрибутов из обоих отношений должны быть элементами одного и того же домена.
Объединением двух совместимых таблиц R1 и R2 называется таблица R, состоящая из всех строк, принадлежащих хотя бы одной из таблиц R1, R2.
Пересечением двух совместимых таблиц R1 и R2 называется таблица R, состоящая из всех строк, являющихся общими для таблиц R1, R2.
Разностью двух совместимых таблиц R1 и R2 называется таблица R, состоящая только из тех строк таблицы R1, которые отсутствуют в таблице R2.
Декартовым произведением двух таблиц R1 и R2 (необязательно совместимых) называется таблица R, состоящая из всех таких строк, каждая из которых есть конкатенация двух строк, по одной из таблиц R1 и R2, причем на первом месте должна быть строка из R1.
Операции объединения, пересечения и декартова произведения могут быть обощены на произвольное число участвующих в них таблиц.
Выборка - это операция реляционной алгебры, производящая отбор строк из таблицы на основании некоторого условия.
Создание проекций - операция реляционной алгебры, создающая новую таблицу путем исключения столбцов из существующей таблицы.
Проекция - реляционная таблица, полученная в результате создания проекций.
Соединение - операция реляционной алгебры, связывающая таблицы. У нее есть несколько версий:
Естественное соединение - операция соединения, связывающая таблицы, когда общие столбцы имеют равные значения.
Тета-соединение - это соединение с определенным условием, в котором участвуют столбцы из каждой таблицы. Оператор сравнения может быть любой:
JOIN (A,B: X d Y), где d обозначает операцию сравнения.
Если используется операция «=», то соединение также называется эквисоединением.
Внешнее соединение – расширяет естественное соединение, гарантируя, что каждая запись из обеих исходных таблиц будет представлена в результирующей таблице хотя бы один раз. Внешнее соединение выполняется в два этапа. Сначала выполняется обычное соединение. Затем, если какая-либо строка одной из исходных таблиц не подходит ни к какой строке второй таблицы, она включается в таблицу соединения, а все дополнительные столбцы заполняются пустыми значениями. Обозначение: OUTER JOIN (A,B). Возможно также левое и правое соединения, при которых в результирующую таблицу включаются только строки из одной таблицы.
Деление – операция реляционной алгебры, создающая новую таблицу путем выбора строк одной таблицы, соответствующих каждой строке другой таблицы.
Программа может работать в двух режимах: обучающем и контролирующем.
В обоих режимах необходимо наличие множества вопросов. Таким образом, необходим еще один компонент программы – формирования вопросов.
Каждый вопрос представляет собой текст запроса к учебной БД. Пользователю для ввода ответа на вопрос необходимо представить текст запроса и информацию о БД, к которой направляется запрос. Удобно представлять информацию о БД в виде графической схемы данных.
Ответ на вопрос должен вводиться в виде последовательности операций реляционной алгебры.
Особенностью данной предметной области является то, что один и тот же результат запроса может быть получен различными способами. Это могут быть последовательности различных операций реляционной алгебры. Либо это могут быть различные последовательности одних и тех же операций.
Например, пусть БД состоит из таблиц Товар (Идентификатор, Название) и Продажа (Дата, Идентификатор товара, Количество, Цена).
Необходимо получить результат запроса «Какой товар продавали в количестве более 100». Ответ можно представить в виде следующих последовательностей.
Первая последовательность:
R1=JOIN (Товар, Продажа, Идентификатор товара=Товар)
R2= s (R1, Количество>100)
R3=p (R2, Название)
Вторая последовательность:
R1= s (Продажа, Количество>100)
R2=JOIN (Товар, R1, Идентификатор товара=Товар)
R3=p (R2, Название)
Необходимо получить результат запроса «Какой товар ни разу не продавали». Ответ можно представить в виде следующих последовательностей.
Первая последовательность:
R1= LEFT JOIN (Товар, Продажа, Идентификатор товара=Товар)
R2= s (R1, Идентификатор товара=NULL)
R3=p (R2, Название)
Вторая последовательность:
R1=p (Продажа, Идентификатор товара)
R2=p (Товар, Идентификатор)
R3=R2-R1
R4=JOIN (Товар, R3, Товар.Идентификатор = R3.Идентификатор)
R5=p (R4, Название)
При этом во второй последовательности возможны варианты порядка следования операций, например, можно поменять местами первую и вторую операцию, при этом измениться третья операция, так как для операции разности существенен порядок операндов.
Проверка правильности введенного ответа может выполняться двумя способами.
Первый способ предполагает сравнение ответа с эталонным множеством ответов. При этом важное значениек5 имеет полнота введенных ответов, то есть качество заполнения внутренней БД.
Вторым способом проверки является выполнение введенного ответа и эталонного запроса. Здесь также важным является качество заполнения учебной БД, так как некоторые запросы могут давать верный результат при одном наборе данных, но оказываться неверными при других данных. Поэтому в этом случае также важным является качество заполнения исходных данных.
Таким образом, администратор программы должен обеспечить следующее.
Должна быть учебная БД с заполненными таблицами. Таблицы должны быть заполнены такими данными, чтобы можно было проверить правильность выполнения запроса в любом случае.