Проектирование и защита информационных систем - страница 7

Шрифт
Интервал



Рисунок 18


Обычно MySQL используется в качестве сервера, к которому обращаются локальные или удалённые клиенты, однако в дистрибутив входит библиотека внутреннего сервера, позволяющая включать MySQL в автономные программы. [88,89]

Используя PHPи MySQL, был написан полностью модуль по проведению Интернет-олимпиад, начата разработка модулей по сбору показателей и успеваемости студентов. При этом были выявлены некоторые трудности, которые заставили перейти на другие средства разработки и управления базами данных. Среди проблем можно назвать следующие:

Несогласованный синтаксис функций и неортогональность

PHP предоставляет разработчикам большое количество самых разнообразных функций, которые попали в язык из расширений, создаваемых разными группами программистов. В результате синтаксис языка не согласован, например, часть функций для работы с массивами начинается с префикса array_, другая часть этим префиксом не обладает. Названия части строковых функций начинается с префикса str, другие функции таким префиксом не обладают. В тех же строковых функциях обрабатываемая строка может передаваться как в качестве первого, так и в качестве последнего аргумента, что вызывает путаницу у программистов, и, следовательно, требует постоянного обращения к документации. Некоторые задачи, например, разбиение строки на массив или подстроки, решаются несколькими функциями. [90,91]

Другая причина отсутствия ортогональности в PHP заключается в особенностях появления этого языка на свет.

Отсутствие обратной совместимости между версиями языка

Нижесказанное относится в большей степени к php> =5.3.0. Версии PHP <5.3.0 сохраняет весьма хорошую обратную совместимость.

Отсутствие поддержки многобайтовых кодировок в ядре языка

Поддержка строк с многобайтовыми кодировками, такими как UTF-8 реализуется через отдельные расширения mbstring и iconv, на уровне ядра поддержка отсутствует, однако с версии PHP 4.2.0 есть возможность переопределять стандартные функции работы со строками, подменяя их на аналоги из mbstring.

Отсутствие поддержки многопоточности

В языке не предусмотрена возможность создания многопоточных приложений и отсутствует поддержка синхронизированного доступа к ресурсам, однако реализуема при помощи расширения PCNTL.

Критика MySQL

MySQL является решением для малых и средних приложений, что затрудняет разработку баз данных для электронной системы предприятия. Учитывая, что большинство существующих информационных систем предприятий или частей данных информационных систем разработаны с использованием MSSQL, а для него характерна плохая совместимость с MySQL, а также необходимость работать с современными технологиями, привели к платформе. NET.