Проведём сравнение популярных СУБД, удовлетворяющих перечисленным в предыдущем пункте критериям.SQL Server - система управления базами данных, разработанная корпорацией Microsoft.
Сервер баз данных Microsoft SQL Server в качестве языка запросов использует Transact-SQL. T-SQL позволяет использовать дополнительный синтаксис для хранимых процедур и обеспечивает поддержку транзакций.
Однако Microsoft SQL Server отличается более высокими, по сравнению с аналогичными СУБД, системными требованиям (табл. 2.1).
Основной причиной отказа от данной СУБД является стоимость продукта - стоимость лицензии Microsoft SQL Server 2008 Standart составляет 123 381руб [9].- свободная система управления базами данных. MySQL является собственностью компании Oracle Corporation и распространяется по лицензии GNU General Public.является решением для малых и средних приложений и используется в качестве сервера, к которому обращаются локальные или удалённые клиенты.
К основным преимуществам MySQL относятся:
- наличие кэша запросов, который позволяет увеличить скорость обработки;
- гарантированная поддержка до 1000 соединений одновременно [10];
- поддержка ODBC;
- в MySQL реализована система привилегий, что обеспечивает возможность определения полного набора разнообразных привилегий на уровне базы, таблицы и столбца;
- в MySQL используется протокол связи между клиентом и сервером со сжатием данных, что увеличивает производительность системы в условиях низкоскоростных каналов связи.
Таким образом, СУБД MySQL удовлетворяет всем критериям, рассмотренным в
п. 2.3.1, и при этом является бесплатной.
Таблица 2.1. Сравнение минимальных системных требований
|
Требование |
MSSQL |
MySQL |
|
Необходимое программное обеспечение |
Microsoft .NET Framework 2.0 |
MySQL ODBC Connector |
|
ОЗУ |
Минимум 512 МБ |
Минимум 192 МБ |
|
Место на диске |
4 Гб свободного места |
1 Гб свободного места |
|
Процессор |
Совместимый с Pentium III или более производительный, минимум 1 ГГц |
Совместимый с Pentium III или более производительный, минимум 600МГц |
|
Операционная система |
Windows 2000, XP, 7 (32 bit) |
Windows 2000, XP, 7 (32 bit) |
Цель инфологического проектирования - обеспечение наиболее естественных для человека способов сбора и представления той информации, которую предполагается хранить в создаваемой базе данных. Поэтому инфологическая модель данных построена по аналогии с естественным языком. Основными конструктивными элементами инфологических моделей являются сущности, связи между ними и их атрибуты.
Функциональная модель предметной области представляет собой совокупность схем и описаний технологической последовательности процедур и действий пользователей проектируемой системы, включая описание задач и запросов [8].
Целью создания такой модели является сбор всех требований, предъявляемых к содержанию и процессу обработки данных потенциальными пользователями.
На рис. 2.1. представлена функциональная модель в форме диаграммы потоков данных (DFD-диаграммы), где отображена программа, а также внешние по отношению к ней сущности - врач, пациент, MS Excel. Врач вводит первоначальные данные (информация о ВУЗе, институте, группе), выбирает предполагаемый набор тестов и задает параметры отчета. После прохождения пациентами теста он получает визуализацию результатов теста, табличные представления полученных результатов. Внешняя сущность MS Excel получает от программы структуру отчёта результатами тестирования.
Рисунок 2.1 - Функциональная модель предметной области
Описание внешних сущностей представлено в табл. 2.2.
Таблица 2.2 - Словарь внешних сущностей для DFD-диаграммы
|
№ |
Название |
Описание |
|
1 |
Врач |
Преподаватель факультета ФКиС ЧГУ |
|
2 |
Пациент |
Студент ЧГУ |
|
3 |
MS Excel |
Табличный процессор |
Проведем декомпозицию диаграммы (рис. 2.2). Сначала осуществляется запись личных данных пациента в БД, затем пациент проходит тестирование. Происходит предварительная обработка результатов и запись их в БД. Затем врачом задаются параметры отчета, из БД извлекаются необходимые результаты тестирования, происходит их визуализация, либо формирование отчета. Дальнейшая детализация диаграммы не выполнялась.
Спецификации процессов приводятся в табл. 2.3, словарь терминов - в табл.
2.4.
Рисунок 2.2 - Поток данных в программе в нотации DFD
Таблица 2.3 - Спецификации процессов диаграммы потоков данных
|
№ |
Название |
Описание |
|
1 |
Первичная обработка результатов |
Данная функция осуществляет обработку результатов в приложении пациента и ставит в соответствие численным значениям эквиваленты текстовых заключений |
|
2 |
Сохранение в базе данных |
После первичной обработки результаты записываются в базу данных |
|
3 |
Визуализация результатов |
Функция, отображающая в виде диаграммы результаты тестирования |
|
4 |
Генерация отчёта |
Функция, генерирующая отчёт и экспортирующая его в MS Excel |
Таблица 2.4 - Словарь терминов для диаграммы потоков данных
|
№ |
Название |
Описание |
|
1 |
Результаты тестирования |
Результаты, полученные пациентами в ходе тестирования (время выполнения теста, количество ошибок) |
|
2 |
Личные данные |
Фамилия, имя, отчество, пол и дата рождения пациентов |
|
3 |
Набор тестов |
Последовательность тестов различной методики |
|
4 |
Дополнительные данные |
Данные о принадлежности пациента к организации. Вводятся врачом |
|
5 |
Параметры отчета |
|
|
6 |
Обработанные результаты тестирования |
Предварительно обработанные числовые значения с их текстовыми эквивалентами |
|
7 |
Визуализация результатов тестирования |
Представление выходных параметров в виде диаграмм |
|
8 |
Табличное представление результатов |
Представление выходных параметров в табличном виде |
|
9 |
Числовые результаты тестирования |
Представление отчёта в оперативную память для экспорта в MS Excel |
Объект "Пациент". В базе данных необходимо хранить информацию о пациентах, поступающую из формы регистрации и необходимую для прохождения теста:
- идентификатор пациента;
- фамилия;
- имя;
- отчество;
- пол;
- дата рождения.
Объект "Организации". В базе данных необходимо хранить информацию об организациях, к которым относятся пациенты, проходящие тестирование:
- идентификатор организации;
- идентификатор родителя;
- уровень иерархии;
- наименование.
При этом необходимо учесть, что организация может состоять из подразделений, подразделения из отделов и т.д. Другими словами, необходимо принять во внимание иерархическую структуру организации.
Объект "Тесты". В базе данных необходимо хранить информацию о тестах, предлагаемых для определения ПФС:
- идентификатор теста;
- название теста.
Объект "Результаты тестов". В базе данных необходимо хранить информацию о результатах тестирования:
- идентификатор результата;
- идентификатор теста;
- идентификатор даты;
- идентификатор пациента.
Объект "Дата проведения теста". В базе данных необходимо хранить даты проведения тестирования:
- идентификатор даты;
- дата.
Объект "Заключение". Необходимо поставить числовым результатам тестов в соответствие текстовые заключения, основанные на выбранных методиках тестирования:
- Идентификатор заключения;
- Заключение.
Объект "Данные, полученные в ходе тестирования". В базе данных необходимо хранить числовые значения, полученные в ходе тестирования:
- Идентификатор результата;
- Идентификатор заключения;
- Значение.
Сущность - любой различимый объект, информацию о котором необходимо
хранить в базе данных. Необходимо различать такие понятия, как тип сущности и
экземпляр сущности. Понятие "тип сущности" относится к набору
однородных предметов, событий, выступающих как целое. Экземпляр сущности
относится к конкретной вещи в наборе [8].
Таблица 2.5 - Описание сущностей
|
Номер п/п |
Полное наименование сущности |
Сокращенное наименование сущности |
Определение смысла сущности |
|
1 |
Пациент |
Patient |
Информация о пациентах, проходящих тестирование |
|
2 |
Пациенты в организациях |
Patients_organisation |
Информация о принадлежности пациентов к организациям |
|
3 |
Организации |
Organization |
Информация об организациях и их структуре |
|
4 |
Результаты тестов |
Results |
Информация о результатах теста |
|
5 |
Дата проведения теста |
Dates |
Информация о дате проведения теста |
|
6 |
Тесты |
Tests |
Информация о имеющихся тестах |
|
7 |
Заключения в тестах |
test_concl |
Информация о соответствии заключений определенным тестам |
|
8 |
Заключения |
Conclusion |
Информация, необходимая для формирования заключения по результатам прохождения теста |
|
9 |
Данные, полученные в ходе тестирования |
Data |
Конкретные числовые значения (время выполнения, количество ошибок) |
Таблица 2.6. Описание доменов
|
Шифр |
Наименование |
Определение |
Шаблон |
Пример |
|
1 |
2 |
3 |
4 |
5 |
|
D1 |
Идентификатор |
Целое число 1¸2147483647 |
|
10 |
|
D2 |
Фамилия, Имя, Отчество, наименование организации, название теста, заключение |
1¸90 символов |
|
Иванов |
|
D3 |
Пол |
1 символ |
|
М |
|
D4 |
Уровень иерархии |
Целое число 1¸255 |
|
3 |
|
D5 |
Дата проведения теста, дата рождения |
Дата от 01.01.1900 |
ДД.ММ.ГГГГ |
13.02.1990 |
|
D6 |
Числовые значения результатов теста |
С плавающей точкой, 1¸3.4e38 |
|
|
Атрибутом называется именованная характеристика сущности. Его наименование является уникальным для конкретного типа сущности, но может быть одинаковым для различного типа сущностей [8].
Описание атрибутов проектируемой базы данных приведено в табл. 2.7.
Таблица 2.7 - Описание атрибутов
|
№ п/п |
Наименование сущности |
№ п/п |
Полное наименование атрибута |
Сокращенное название атрибута |
Определенность |
Шифр домена |
|
1 |
Пациент |
1.1 |
Идентификатор пациента |
id_pat |
1 |
D1 |
|
|
|
1.2 |
Фамилия |
last_name |
0 |
D2 |
|
|
|
1.3 |
Имя |
first_name |
1 |
D2 |
|
|
|
1.4 |
Отчество |
father_name |
0 |
D2 |
|
|
|
1.5 |
Пол |
gender |
1 |
D3 |
|
|
|
1.6 |
Дата рождения |
Birth |
1 |
D5 |
|
2 |
Пациенты в организациях |
2.1 |
Идентификатор пациента |
id_pat |
1 |
D1 |
|
|
|
2.2 |
Идентификатор организации |
Id |
1 |
D1 |
|
3 |
Организации |
3.1 |
Идентификатор организации |
Id |
1 |
D1 |
|
|
|
3.2 |
Идентификатор родителя |
id_parent |
1 |
D1 |
|
|
|
3.3 |
Уровень иерархии |
Level |
1 |
D4 |
|
|
|
3.4 |
Наименование |
Title |
1 |
D2 |
|
4 |
Результаты тестов |
4.1 |
Идентификатор результата |
id_result |
1 |
D1 |
|
|
|
4.2 |
Идентификатор теста |
id_test |
1 |
D1 |
|
|
|
4.3 |
Идентификатор даты |
id_date |
1 |
D1 |
|
|
|
4.4 |
Идентификатор пациента |
id_pat |
1 |
D1 |
|
5 |
Дата проведения теста |
5.1 |
Идентификатор даты |
id_date |
1 |
D1 |
|
|
|
5.2 |
Дата проведения теста |
Date |
1 |
D5 |
|
6 |
Тесты |
6.1 |
Идентификатор теста |
id_test |
1 |
D1 |
|
|
|
6.2 |
Наименование теста |
Name |
1 |
D2 |
|
7 |
Заключения в тестах |
7.1 |
Идентификатор теста |
id_test |
1 |
D1 |
|
|
|
7.2 |
Идентификатор заключения |
id_concl |
1 |
D1 |
|
8 |
Заключения |
8.1 |
Идентификатор заключения |
id_concl |
1 |
D1 |
|
|
|
8.2 |
Наименование заключения |
Name |
1 |
D2 |
|
9 |
Данные, полученные в ходе тестирования |
9.1 |
Идентификатор результата |
id_result |
1 |
D1 |
|
|
|
9.2 |
Идентификатор заключения |
id_concl |
1 |
D1 |
|
|
|
9.3 |
Значение 1 |
result_1 |
0 |
D6 |
|
|
|
9.4 |
Значение 2 |
result_2 |
0 |
D6 |
|
|
|
9.5 |
Значение 3 |
result_3 |
0 |
D6 |
|
|
|
9.6 |
Значение 4 |
result_4 |
0 |
D6 |
|
|
|
9.7 |
Значение 5 |
result_5 |
0 |
D6 |
|
|
|
9.8 |
Значение 6 |
result_6 |
0 |
D6 |
|
|
|
9.9 |
Значение 7 |
result_7 |
0 |
D6 |
|
|
|
9.10 |
Значение 8 |
result_8 |
0 |
D6 |