Добавлен: 03.07.2023
Просмотров: 67
Скачиваний: 3
Рисунок 2.6 - Функциональный блок «Отображение интерфейса»
На вход поступают:
- Отчет об ошибках.
- Задание.
Механизмом является Windows Presentation Framework. Управление осуществляется c помощью правил формирования интерфейса. На выход поступают:
- Пользовательский интерфейс.
- Преподавательский интерфейс.
На рисунке 2.7 показана диаграмма «Создание заданий», которая содержит следующие действия над объектами:
- Валидация тестов.
- Сборка тестового задания.
Рисунок 2.7 - Функциональный блок «Создание заданий»
На вход поступают:
- Задание.
- Тесты.
На выход поступает задание. Механизмом являются:
- Сборщик заданий.
- Алгоритмы.
Управление осуществляется c помощью:
- Формата задания.
- Формата тестов.
Выбор СУБД производился по следующим критериям:
- Распространённость и популярность продукта. Редкая и неизвестная СУБД может быть просто забыта в будущем своим производителем и поддержка и развитие созданной Системы напрямую зависит от этого фактора.
- Простота использования, администрирования. Исключительно экономический критерий – менее квалифицированные кадры требуют меньшего вознаграждения за свой труд.
- Надёжность и устойчивость сервера. Снижает затраты на поддержание работоспособности Системы.
- Надёжность данных при их хранении и обработке. Требуется меньше резервных операций обработки данных.
- Совместимость с выбранной программной платформой. Сервер баз данных должен быть не просто портирован на выбранную ОС, но и надёжно и устойчиво работать под ней.
- Совместимость с распространёнными серверами приложений. Имеет место быть скорее обратный критерий – совместимость распространённых серверов приложений с выбираемым сервером баз данных. Отчасти перекликается с первым критерием – практически все распространённые СУБД поддерживаются наиболее популярными серверами приложений.
- Гибкость настроек баз данных. Это необходимо для более точного отражения и хранения ресурсного наполнения предметной области, а также для поддержки внутренних связей, целостности и логичности хранимой информации.
Microsoft SQL Server — система управления реляционными базами данных (СУБД), разработанная корпорацией Microsoft. Основной используемый язык запросов — Transact-SQL, создан совместно Microsoft и Sybase. Transact-SQL является реализацией стандарта ANSI/ISO по структурированному языку запросов (SQL) с расширениями. Используется для от небольших и средних по размеру баз данных до крупных баз данных масштаба предприятия, конкурирует с другими СУБД в этом сегменте рынка.
Microsoft SQL Server в качестве языка запросов использует версию SQL, получившую название Transact-SQL (сокращённо T-SQL), являющуюся реализацией SQL-92 (стандарт ISO для SQL) с множественными расширениями. T-SQL позволяет использовать дополнительный синтаксис для хранимых процедур и обеспечивает поддержку транзакций (взаимодействие базы данных с управляющим приложением). Microsoft SQL Server и Sybase ASE для взаимодействия с сетью используют протокол уровня приложения под названием Tabular Data Stream (TDS, протокол передачи табличных данных). Протокол TDS также был реализован в проекте FreeTDS с целью обеспечить различным приложениям возможность взаимодействия с базами данных Microsoft SQL Server и Sybase.
Microsoft SQL Server также поддерживает Open Database Connectivity (ODBC) — интерфейс взаимодействия приложений с СУБД. Версия SQL Server 2005 обеспечивает возможность подключения пользователей через веб-сервисы, использующие протокол SOAP. Это позволяет клиентским программам, не предназначенным для Windows, кроссплатформенно соединяться с SQL Server. Microsoft также выпустила сертифицированный драйвер JDBC, позволяющий приложениям под управлением Java (таким как BEA и IBM WebSphere) соединяться с Microsoft SQL Server 2000 и 2005.
SQL Server поддерживает зеркалирование и кластеризацию баз данных. Кластер сервера SQL — это совокупность одинаково конфигурированных серверов; такая схема помогает распределить рабочую нагрузку между несколькими серверами. Все сервера имеют одно виртуальное имя, и данные распределяются по IP-адресам машин кластера в течение рабочего цикла. Также в случае отказа или сбоя на одном из серверов кластера доступен автоматический перенос нагрузки на другой сервер.
SQL Server поддерживает избыточное дублирование данных по трем сценариям:
- Снимок: Производится «снимок» базы данных, который сервер отправляет
получателям.
- История изменений: Все изменения базы данных непрерывно передаются
пользователям.
- Синхронизация с другими серверами: Базы данных нескольких серверов
синхронизируются между собой. Изменения всех баз данных происходят независимо друг от друга на каждом сервере, а при синхронизации происходит сверка данных. Данный тип дублирования предусматривает возможность разрешения противоречий между БД.
В SQL Server 2008 встроена поддержка .NET Framework. Благодаря этому, хранимые процедуры БД могут быть написаны на любом языке платформы .NET, используя полный набор библиотек, доступных для .NET Framework, включая Common Type System (система обращения с типами данных в Microsoft .NET Framework). Однако, в отличие от других процессов, .NET Framework, будучи базисной системой для SQL Server 2005, выделяет дополнительную память и выстраивает средства управления SQL Server вместо того, чтобы использовать встроенные средства Windows. Это повышает производительность в сравнении с общими алгоритмами Windows, так как алгоритмы распределения ресурсов специально настроены для использования в структурах SQL Server.
MySQL - свободная система управления базами данных (СУБД). MySQL является собственностью компании Sun Microsystems, осуществляющей разработку и поддержку приложения. Распространяется под GNU General Public License и под собственной коммерческой лицензией, на выбор. Помимо этого разработчики создают функциональность по заказу лицензионных пользователей, именно благодаря такому заказу почти в самых ранних версиях появился механизм репликации.
MySQL является решением для малых и средних приложений. Входит в LAMP. Обычно MySQL используется в качестве сервера, к которому обращаются локальные или удалённые клиенты, однако в дистрибутив входит библиотека внутреннего сервера, позволяющая включать MySQL в автономные программы.
Гибкость СУБД MySQL обеспечивается поддержкой большого количества типов таблиц: пользователи могут выбрать как таблицы типа MyISAM, поддерживающие полнотекстовый поиск, так и таблицы InnoDB, поддерживающие транзакции на уровне отдельных записей. Благодаря открытой архитектуре и GPL-лицензированию, в СУБД MySQL постоянно появляются новые типы таблиц.
Версия MySQL 5.2 продолжает путь к стандарту SQL:2003. MySQL 5.2 содержит следующие нововведения:
- сегментирование — возможность разбить одну большую таблицу на несколько частей, размещенных в разных файловых системах, основываясь на определенной пользователем функции. При определенных условиях это может дать серьезное увеличение производительности и, кроме того, облегчает масштабирование таблиц.
- изменено поведение ряда операторов, для обеспечения большей совместимости со стандартом SQL2003;
- построчная репликация (row-based репликация), при которой в бинарный лог будет записываться только информация о реально измененных строках таблицы вместо оригинального (и, возможно, медленного) текста запроса. Построчную репликацию можно использовать только для определенных типов sql-запросов, в терминах MySQL — смешанная (mixed) репликация;
- встроенный планировщик периодически запускаемых работ. По синтаксису добавление задачи похоже на добавление триггера к таблице, по идеологии — на crontab;
- дополнительный набор функций для обработки XML, реализация поддержки XPath;
- новые средства диагностики проблем и утилиты для анализа производительности. Расширены возможности по управлению содержимым лог-файлов, логи теперь могут быть сохранены и в таблицах general_log и slow_log. Утилита mysqlslap позволяет провести нагрузочное тестирование БД с записью времени реакции на каждый запрос;
- для упрощения операции обновления подготовлена утилита mysql_upgrade, которая выполнит проверку всех существующих таблиц на предмет совместимости с новой версией, и при необходимости выполнит надлежащие корректировки;
- MySQL Cluster отныне выпущен как отдельный продукт, базирующийся на MySQL 5.1 и хранилище NDBCLUSTER;
- значительные изменения в работе MySQL Cluster, такие, как, например, возможность хранения табличных данных на диске;
- возврат к использованию встроенной библиотеки libmysqld, отсутствовавшей в MySQL 5.0;
- API для плагинов, которое позволяет загружать сторонние модули, расширяющие функциональность (например, полнотекстовый поиск), без перезапуска сервера.
- реализация парсера полнотекстового поиска в виде plug-in;
- новый тип таблиц Maria (устойчивый к сбоям клон MyISAM);
PostgreSQL - свободная объектно-реляционная система управления базами данных (СУБД). Является свободной альтернативой коммерческим СУБД (таким как Oracle Database, Microsoft SQL Server, IBM DB2, Informix и СУБД производства Sybase) вместе с другими свободными СУБД (такими как MySQL и Firebird). Существует в реализациях для следующих платформ: Linux, Solaris/OpenSolaris, Win32, Mac OS X, FreeBSD, QNX 4.25, QNX 6.
Функции являются блоками кода, исполняемыми на сервере, а не на клиенте БД. Хотя они могут писаться на чистом SQL, реализация дополнительной логики, например, условных переходов и циклов, выходит за рамки собственно SQL и требует использования некоторых языковых расширений. Функции могут писаться с использованием одного из следующих языков:
- Встроенный процедурный язык PL/pgSQL, во многом аналогичный языку PL/SQL, используемому в СУБД Oracle;
- Скриптовые языки — PL/Lua, PL/LOLCODE, PL/Perl, plPHP, PL/Python, PL/Ruby, PL/sh, PL/Tcl и PL/Scheme;
- Классические языки — C, C++, Java (через модуль PL/Java);
- Статистический язык R (через модуль PL/R).
PostgreSQL допускает использование функций, возвращающих набор записей, который далее можно использовать так же, как и результат выполнения обычного запроса.
Функции могут выполняться как с правами их создателя, так и с правами текущего пользователя. Иногда функции отождествляются с хранимыми процедурами, однако между этими понятиями есть различие.
Триггеры определяются как функции, инициируемые DML—операциями. Например, операция INSERT может запускать триггер, проверяющий добавленную запись на соответствия определённым условиям. При написании функций для триггеров могут использоваться различные языки программирования (см. выше).
Триггеры ассоциируются с таблицами. Множественные триггеры выполняются в алфавитном порядке.
В PostgreSQL имеется поддержка индексов следующих типов: B-дерево, хэш, R-дерево, GiST, GIN. При необходимости можно создавать новые типы индексов, хотя это далеко не тривиальный процесс. Индексы в PostgreSQL обладают следующими свойствами:
- возможен просмотр индекса не только в прямом, но и в обратном порядке — создание отдельного индекса для работы конструкции ORDER BY ... DESC не нужно;
- возможно создание индекса над несколькими столбцами таблицы, в том числе над столбцами различных типов данных;
- индексы могут быть функциональными, то есть строиться не на базе набора значений некоего столбца/столбцов, а на базе набора значений функции от набора значений;
- индексы могут быть частичными, то есть строиться только по части таблицы (по некоторой её проекции); в некоторых случаях это помогает создавать намного более компактные индексы или достигать улучшения производительности за счёт использования разных типов индексов для разных (например, с точки зрения частоты обновления) частей таблицы;
- планировщик запросов может использовать несколько индексов одновременно для выполнения сложных запросов.
На основании проведенного аналитического обзора в качестве СУБД была выбрана MySQL. Программное обеспечение MySQL представляет собой очень быстрый многопоточный, многопользовательский и надежный SQL-сервер баз. Сервер MySQL предназначен как для критических по задачам производственных систем с большой нагрузкой, так и для встраивания в программное обеспечение массового распространения.
СУБД MySQL в полной мере отвечает поставленным критериям:
Распространённость и популярность продукта. Не вызывает никаких сомнений – одна из самых известных и используемых платформ в мире. Большая часть мелких и средних проектов, связанных с базами данных, выполняется с применением MySQL.
Простота использования, администрирования. В MySQL активно используется развитый графический интерфейс пользователя. Сервер способен функционировать долгое время в полностью автономном режиме.
Надёжность и устойчивость сервера. MySQL характеризуется большой скоростью, устойчивостью и легкостью в использовании, является идеальным решением для малых и средних приложений. В малых и средних проектах показатель надёжности приближается к показателю большинства известных серверов. Многопоточность. Поддержка нескольких одновременных запросов.
Надёжность данных при их хранении и обработке. Всё резервирование данных осуществляется в автоматическом или полуавтоматическом режиме как в любом современном развитом сервере БД. Все поля имеют значение по умолчанию.
Совместимость с выбранной программной платформой. Совместимость очевидна – MySQL первоначально создавался для платформы Unix, и прекрасно функционирует под Windows 7/Vista/2000/XP/2003.
Совместимость с распространёнными серверами приложений. Практически все популярные сервера приложений имеют в своём составе поддержку MySQL. Интерфейс с языками C и perl, php.
Гибкость настроек баз данных. Большое число поддерживаемых типов данных (поддержка чисел длинной от 1 до 4 байт (ints, float, double, fixed), строк переменной длины и меток времени) Все данные хранятся в формате ISO8859_1. Встроенная Утилита проверки и ремонта таблицы (isamchk). Легкость управления таблицей, включая добавление и удаление ключей и полей. Все операции работы со строками не обращают внимания на регистр символов в обрабатываемых строках. Гибкая система привилегий и паролей. До 16 ключей в таблице. Каждый ключ может иметь до 15 полей.
Использование программного обеспечения MySQL регламентируется лицензией GPL (GNU General Public License), в которой указано, что можно и чего нельзя делать с этим программным обеспечением в различных ситуациях, также есть возможность приобрести коммерческую версию данной СУБД.