Проектирование и защита информационных систем. Иван Андреевич Трещев
Чтение книги онлайн.
Читать онлайн книгу Проектирование и защита информационных систем - Иван Андреевич Трещев страница 4
MySQL— свободная система управления базами данных. Разработку и поддержку MySQL осуществляет корпорация Oracle, получившая права на торговую марку вместе с поглощённой SunMicrosystems, которая ранее приобрела шведскую компанию MySQL AB. Продукт распространяется как под GNU General Public License, так и под собственной коммерческой лицензией. Помимо этого разработчики создают функциональность по заказу лицензионных пользователей, именно благодаря такому заказу почти в самых ранних версиях появился механизм репликации.
Рисунок 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.
Отсутствие поддержки многопоточности
В языке не предусмотрена возможность создания многопоточных приложений и отсутствует поддержка