Смекни!
smekni.com

Разработка программы запросов (стр. 5 из 7)

Язык программирования – Visual Basic 6.0.

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

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

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

2.4 Требования к программной документации

Состав программной документации программы «Обучающая программа построению запросов в процедурном виде» должен быть следующим:

- описание программы;

- руководство пользователя;

- функциональное описание.

Состав документов может уточняться в процессе разработки.

2.5 Стадии и этапы разработки

Стадии и этапы разработки, содержание работ и сроки выполнения приведены в таблице 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 имеет полнота введенных ответов, то есть качество заполнения внутренней БД.

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

Таким образом, администратор программы должен обеспечить следующее.

Должна быть учебная БД с заполненными таблицами. Таблицы должны быть заполнены такими данными, чтобы можно было проверить правильность выполнения запроса в любом случае.