ПЗ (1218909), страница 3
Текст из файла (страница 3)
Рисунок 4 ̶ Итерационная модель разработки ПО
В настоящее время большинство специалистов отдают предпочтение итерационной модели. Водопадная модель хорошо удовлетворяет потребностям управления проектом. С практической точки зрения эта модель непригодна. Вот несколько причин этого:
1) при формировании требований к ПО пользователи редко имеют четкое представление о том, что им нужно, и не могут сформулировать все, что им известно;
2) даже если мы можем изложить все требования к системе, существует множество деталей, которые будут обнаружены лишь после того, как процесс проектирования продвинется довольно далеко;
3) внешние силы приводят к изменению требований, причем некоторые из этих изменений могут свести на нет ранее принятые решения.
Представление о том, будто разработчик ПО создает свой программный продукт свободным от ошибок на основе спецификации требований, абсолютно нереалистично. Ошибки в требованиях и их реализации выявляются только в конце проекта, когда написан весь код, поэтому трудоемкость их исправления становится просто огромной [9].
Поскольку в данном проекте у заказчика нет четкого понимания всего необходимого ему функционала, но есть ограниченный бюджет и желание получить экономический эффект в сжатые сроки, именно создание системы небольшими итерациями – оптимальный вариант, то есть рационально использовать итерационную модель разработки ПО.
В рамках данной работы был реализован функционал первой итерации.
4 ОБЗОР ИМЕЮЩИХСЯ НА РЫНКЕ СУБД
4.1 MS SQL Server
Microsoft SQL Server ̶ система управления реляционными базами данных (СУБД), разработанная корпорацией Microsoft. Основной используемый язык запросов ̶ Transact-SQL, создан совместно Microsoft и Sybase. Transact-SQL является реализацией стандарта ANSI/ISO по структурированному языку запросов (SQL) с расширениями. Используется для работы с базами данных любого масштаба.
Существует бесплатная версия SQL Server Express. Данная версия имеет некоторые технические ограничения. Такие ограничения делают её непригодной для развертывания больших баз данных, но она вполне годится для ведения программных комплексов в масштабах небольшой компании. Содержит полноценную поддержку новых типов данных, в том числе XML-спецификации.
Фактически, это полноценный MS SQL Server, включая все его компоненты программирования, поддержку национальных алфавитов и Unicode. Поэтому используется в приложениях, при проектировании или для самостоятельного изучения. Нет никаких препятствий для дальнейшего развёртывания накопленной базы данных на MS SQL Server неэкспрессной версии.
Ограничения MS SQL Server Express 2012 приведены в таблице 1 [15].
Таблица 1 ̶ Ограничения MS SQL Server Express 2012
| Имя функции | Express |
| Максимальная вычислительная мощность, используемая одним экземпляром (компонент SQL Server Database Engine)1 | Ограничение: меньшее из 1 процессора и 4 ядер |
| Максимальная вычислительная мощность, используемая одним экземпляром (службы Analysis Services, службы Reporting Services) | Ограничение: меньшее из 1 процессора и 4 ядер |
Продолжение таблицы 1
| Максимальный объем используемой памяти (каждого экземпляра компонента SQL Server Database Engine) | 1 ГБ |
| Максимальный объем используемой памяти (на экземпляр Службы Analysis Services) | - |
| Максимальный объем используемой памяти (на экземпляр Службы Reporting Services) | - |
| Максимальный размер реляционной базы данных | 10 ГБ |
| Поддержка Windows Server Core | Да |
| Доставка журналов | - |
| Зеркальное отображение базы данных | Только следящий сервер |
| Экземпляры отказоустойчивого кластера (режим AlwaysOn) | - |
| Сжатие резервных копий | - |
| Моментальный снимок базы данных | - |
| Группы доступности AlwaysOn | - |
| директор соединений | - |
| Восстановление страниц и файлов в режиме «в сети» | - |
| Индексирование в сети | - |
| Изменение схемы в режиме «в сети» | - |
| Быстрое восстановление | - |
| Зеркальные резервные копии | - |
| Поддержка памяти и ЦП с «горячей» заменой | - |
| Помощник по восстановлению базы данных | Да |
| Поддержка нескольких экземпляров | 50 |
| Секционирование таблиц и индексов | - |
| Сжатие данных | - |
| Регулятор ресурсов | - |
| Параллелизм таблицы разделов | - |
| Несколько контейнеров файлового потока | - |
Уже на основании вышеприведенных ограничений видно, что данная версия пригодна только для решения задач первой итерации в базе данных с небольшим числом пользователей.
С точки зрения дальнейшего развития создаваемой информационной системы, MS SQL Server Express 2012 не подходит в качестве СУБД.
4.2 PostgreSQL
PostgreSQL – свободная объектно-реляционная система управления базами данных.
История этой СУБД началась в 1977 г. с базы данных Ingress.
В 1986 г. в университете Беркли, Калифорния, она была переименована в PostgreSQL.
В 1995 г. стала открытой базой данных. Появился интерактивный psql.
В 1996 г. Postgres95 была переименована в PostgreSQL версии 6.0.
PostgreSQL – унифицированный сервер баз данных, имеющий единый движок – storage engine. PostgreSQL использует клиент-серверную модель.
Для каждого клиента на сервере создается новый процесс (не поток ). Для работы с такими клиентскими процессами сервер использует семафоры.
Клиентский запрос проходит следующие стадии:
1) коннект;
2) парсинг: проверяется корректность запроса и создается дерево запроса (query tree). В основу парсера положены базовые юниксовые утилиты yacc и lex;
3) Rewrite: берется дерево запросов и проверяется наличие в нем правил (rules), которые лежат в системных каталогах. Всякий раз пользовательский запрос переписывается на запрос, получающий доступ к таблицам базы данных;
4) оптимизатор: на каждый запрос создается план запроса – query plan, который передается исполнителю – executor. Смысл плана в том, что в нем перебираются все возможные варианты получения результата (использовать ли индексы, джойны и т.д.), и выбирается самый быстрый вариант;
5) выполнение запроса: исполнитель рекурсивно проходит по дереву и получает результат, используя при этом сортировку, джойны и т.д., и возвращает строки. Постгрес – обьектно-реляционная база данных, каждая таблица в ней представляет класс, между таблицами реализовано наследование. Реализованы стандарты SQL92 и SQL99;
Транзакционная модель построена на основе так называемого multi-version concurrency control (MVCC), что дает максимальную производительность. Ссылочная целостность обеспечена наличием первичных и вторичных ключей.
Как и любая СУБД PostgreSQL может обслуживать запросы sql и возвращать результаты клиентским приложениям. Для этого механизм СУБД оптимизатор запросов принимает решение об оптимальном использовании ресурсов и строит план запроса. При этом он может опереться на используемых механизмы ускорения работы (индексов, кэшей в памяти, ресурсам процессора, данные статистики и т.д.).Оптимизатор запросов мало подвержен управлению со стороны разработчиков.
У PostgreSQL есть особенность в реализации хранения – это так называемый «кластер». В данном случаи речь идет месте расположения каталога для баз данных. Плюс PostgreSQL организует единую файловую структуру, в которой отдельные файлы не соответствуют непосредственно таблицам или другим объектам базы данных.
К сожалению, реализованный в PostgreSQL способ хранения данных требует дополнительного обслуживания – периодической дефрагментации базы данных командой VACUUM.
На данный момент (версия 9.4.1), в PostgreSQL имеются ограничения, описанные в таблице 2.
Таблица 2 ̶ Ограничения PostgreSQL версии 9.4.1
| Максимальный размер базы данных | Нет ограничений |
| Максимальный размер таблицы | 32 ТБайт |
| Максимальный размер записи | 1,6 ТБайт |
| Максимальный размер поля | 1 ГБайт |
| Максимум записей в таблице | Ограничено размером таблицы |
| Максимум полей в таблице | 250 ̶ 1600, в зависимости от типов полей |
| Максимум индексов в таблице | Нет ограничений |
Сильными сторонами PostgreSQL считаются:
1) поддержка БД практически неограниченного размера;
2) мощные и надёжные механизмы транзакций и репликации;
3) расширяемая система встроенных языков программирования: в стандартной поставке поддерживаются PL/pgSQL, PL/Perl, PL/Python и PL/Tcl; дополнительно можно использовать PL/Java, PL/PHP, PL/Py, PL/R, PL/Ruby, PL/Scheme и PL/sh, а также имеется поддержка загрузки совместимых модулей;
4) наследование;
5) легкая расширяемость[11].
Как видно из вышеприведенного обзора, PostgreSQL – мощная бесплатная СУБД, пригодная для использования в рамках проекта.
4.3 MySQL
MySQL ̵ свободная реляционная система управления базами данных. Разработку и поддержку MySQL осуществляет корпорация Oracle, получившая права на торговую марку вместе с поглощённой Sun Microsystems, которая ранее приобрела шведскую компанию MySQL AB. Продукт распространяется как под GNU General Public License, так и под собственной коммерческой лицензией. Помимо этого, разработчики создают функциональность по заказу лицензионных пользователей. Именно благодаря такому заказу почти в самых ранних версиях появился механизм репликации.
MySQL является решением для малых и средних приложений. Входит в состав серверов WAMP, AppServ, LAMP и в портативные сборки серверов Денвер, XAMPP, VertrigoServ. Обычно MySQL используется в качестве сервера, к которому обращаются локальные или удалённые клиенты, однако в дистрибутив входит библиотека внутреннего сервера, позволяющая включать MySQL в автономные программы.
Гибкость СУБД MySQL обеспечивается поддержкой большого количества типов таблиц: пользователи могут выбрать как таблицы типа MyISAM, поддерживающие полнотекстовый поиск, так и таблицы InnoDB, поддерживающие транзакции на уровне отдельных записей. Более того, СУБД MySQL поставляется со специальным типом таблиц EXAMPLE, демонстрирующим принципы создания новых типов таблиц. Благодаря открытой архитектуре и GPL-лицензированию, в СУБД MySQL постоянно появляются новые типы таблиц.
26 февраля 2008 года Sun Microsystems приобрела MySQL AB за $1 млрд., 27 января 2010 года Oracle приобрела Sun Microsystems за $7,4 млрд. и включила MySQL в свою линейку СУБД.















