Основное отличие от CGI-скриптов, написанных на других языках, типа Perl или C - это то, что в CGI-программах вы сами пишете выводимый HTML-код, а, используя PHP - вы встраиваете свою программу-скрипт в готовую HTML-страницу, используя открывающий и закрывающий теги (в примере <? php и? >).
PHP называется языком серверных скриптов в отличие от JavaScript/Jscript/VBScript, которые являются языками клиентских скриптов. Это значит, что PHP-скрипт выполняется на сервере, а клиенту передается результат его работы, тогда как в JavaScript-код полностью передается на клиентскую машину и только там выполняется браузером.
Пользователи MSInternetInformationServer найдут, что PHP очень похож на ActiveServerPages (ASP), а пользователи Java скажут, что PHP похож на Java Server Pages (JSP). Еще некоторыми аналогами PHP являются языки ColdFusion и embPerl. Все эти языки позволяют размещать код, выполняемый на Web-сервере, внутри HTML-страниц. В результирующей web-странице нет и следа PHP-кода.
На PHP можно сделать все, что можно сделать с помощью CGI-программ. Например: обрабатывать данные из форм, генерировать динамические страницы, получать и посылать куки (cookies).
Кроме этого в PHP включена поддержка многих баз данных (databases), что делает написание Web-приложений с использованием БД до невозможности простым.
Вот неполный перечень поддерживаемых БД: AdabasD, InterBase, Solid, dBase, mSQL, Sybase, Empress, MySQL, Velocis, FilePro, Oracle, Unixdbm, Informix, PostgreSQL, ODBC.
Вдобавок ко всему PHP понимает протоколы IMAP, SNMP, NNTP, POP3 и даже HTTP, а также имеет возможность работать с сокетами (sockets) и общаться по другим протоколам.
Разработчикам web-приложений нет необходимости говорить, что web-страницы - это не только текст и картинки. Достойный внимания сайт должен поддерживать некоторый уровень интерактивности с пользователем: поиск информации, продажа продуктов, конференции и т.п. До недавних пор все это традиционно реализовалось CGI-скриптами, написанными на Perl. Но оказалось, что CGI-скрипты очень плохо масштабируемы. Каждый новый вызов CGI-скрипта, требует от ядра порождения нового процесса, а это занимает процессорное время и тратит оперативную память. PHP предлагает другой вариант - он работает как часть web-сервера, и этим самым похож на ASP от Microsoft или ColdFusion от Allaire.
Синтаксис PHP очень похож на синтаксис C или Perl. Люди, знакомые с программированием, очень быстро смогут начать писать программы на PHP. В этом языке нет строгой типизации данных и нет необходимости в действиях по выделению/освобождению памяти.
Программы, написанные на PHP, читаются достаточно легко. В отличие от Perl-программ PHP-код легко зрительно прочитать и понять.
В дополнение к своей бесплатности (хотя MySQL требует приобретения лицензии при использовании ее в коммерческих целях) связка PHP-MySQL является кросс-платформенной. Это значит, что вы можете, работая в Windows, разрабатывать приложения, предназначенные для работы под Unix. Кроме того, PHP может работать как внешний CGI-процесс, либо как обычный интерпретатор скриптов, либо как модуль, подключаемый к web-серверу Apache или IIS.
И наконец, так как данный продукт разрабатывается совместными усилиями, существует огромное количество документации и списков рассылки, к которым можно обратиться в случае возникновения каких-либо вопросов.
Найденные ошибки исправляются достаточно быстро, ваши предложения и замечания всегда выслушают, рассмотрят, и если они окажутся ценными - реализуют в новой версии.
MySQL - небольшой, компактный многопоточный сервер баз данных. MySQL характеризуется большой скоростью, устойчивостью и легкостью в использовании [11].
MySQL был разработан компанией TcX для внутренних нужд, которые заключались в быстрой обработке очень больших баз данных. Компания утверждает, что использует MySQL с 1996 года на сервере с более чем 40 БД, которые содержат 10,000 таблиц, из которых более чем 500 имеют более 7 миллионов строк. MySQL является идеальным решением для малых и средних приложений. Исходные тексты сервера компилируются на множестве платформ. Наиболее полно возможности сервера проявляются на Unix-серверах, где есть поддержка многопоточности, что дает значительный прирост производительности. В варианте под Windows, MySQL может запускаться как сервис Windows NT или как обычный процесс на Windows 95/98.
MySQL-сервер является бесплатным для некоммерческого использования.
MySQL поддерживает язык запросов SQL в стандарте ANSI 92, и кроме этого имеет множество расширений к этому стандарту, которых нет ни в одной другой СУБД.
Краткий перечень возможностей MySQL.
1 Поддерживается неограниченное количество пользователей, одновременно работающих с базой данных;
2 Количество строк в таблицах может достигать 50 млн;
3 Быстрое выполнение команд. Возможно MySQL самый быстрый сервер из существующих;
4 Простая и эффективная система безопасности.
MySQL действительно очень быстрый сервер, но для достижения этого разработчикам пришлось пожертвовать некоторыми требованиями к реляционным СУБД. В MySQL отсутствуют:
Не реализована поддержка транзакций. Взамен предлагается использовать LOCK/UNLOCK TABLE;
Нет поддержки триггеров и хранимых процедур;
Нет поддержки внешних ключей.
По словам создателей именно эти пункты дали возможность достичь высокого быстродействия. Их реализация существенно снижает скорость сервера. Эти возможности не являются критичными при создании web-приложений, что в сочетании с высоким быстродействием и малой ценой позволило серверу приобрести большую популярность.
На сегодняшний момент существует два мощных средства создания web-узлов - это последние версии Frontpage 2003 компании Microsoft и Dreamweaver MX 2004 компании Macromedia [7].
Программный пакет FrontPage долгое время развивался и совершенствовался фирмой Microsoft. Его версия FrontPage 2000 отличается от всех предыдущих тем, что она впервые интегрирована в структуру пакета программ Microsoft Office. Вероятно, это объясняется тем обстоятельством, что проектирование web-сайтов и мультимедийных электронных изданий из задачи для профессионалов перешли в сферу офисной деятельности. Однако, FrontPage 2002 вновь поставляется отдельно от Microsoft Office XP.
FrontPage специализирован на подготовке электронных изданий, в частности - на разработке web-узлов целиком. Он поддерживает фреймовую структуру, ориентирован на простоту и удобство создания гиперссылок, обеспечивает единый стиль оформления различных web-страниц, оптимизирует скорость их загрузки. Таким образом, пакет отличается продуманностью реализации как эстетических, так и технических аспектов создания электронных изданий и позволяет, в какой-то степени, автоматизировать процесс проектирования. Неудобством в работе является автоматическая вставка не всегда нужных тэгов.
Программный пакет Dreamweaver, как и FrontPage, предназначен для проектирования различных сайтов, в том числе и сайтов издательств, одной из задач которых является распространение электронных изданий. Он пригоден как для создания небольших, так и очень больших сайтов. В первом случае разработкой занимается единственный специалист - web-мастер. В последнем случае над проектом работает целый коллектив, включающий администратора проекта, web-дизайнера, HTML-верстальщика, web-программиста, корректора, менеджера рассылок. Многие специалисты утверждают, что профессиональные web-дизайнеры в своей работе чаще всего используют Adobe Photoshop для подготовки графики и Macromedia Dreamweaver - для дизайна отдельных web-страниц. Особенностью данного программного средства является хорошая поддержка языка PHP, который используется в проекте для программирования и автоматическая или ручная синхронизация измененных данных с удаленным сервером. Эти особенности, а также простота и быстрота работы программы во многом обуславливают выбор именно этого программного продукта в качестве средства проектирования разрабатываемого web-приложения.
Инфологическая модель предметной области - это описание предметной области, выполненное с использованием специальных языковых средств, не зависящих от использования в дальнейшем программных средств.
Требования к инфологической модели:
адекватность отображения предметной области;
непротиворечивость;
отражение потребности всех пользователей будущей информационной системы;
допущение возможных расширений модели, а также при большой размерности инфологической модели - композиции и декомпозиции;
желательно применение языка описания предметной области как при ручном, так и при автоматизированном проектировании;
легкость восприятия разными категориями пользователей.
Инфологическая модель является ядром системы проектирования. Она содержит всю необходимую информацию для проектирования приложения.
Инфологическая модель предметной области представлена в приложении А.
Для описания инфологической модели данных можно выделить десять объектов, которые участвуют в обработке информации: "Пользователи", "Курсы ДО", "Подразделы курса", "Преподаватели", "Курсы пользователей", "Тесты пользователей", "Допустимые шифры", "Вопросы тестов", "Ответы на вопросы тестов" и "Новости". Каждый объект обладает своими свойствами.
Объект "Пользователи" включает в себя данные о пользователях зарегистрированных в системе. Он обладает свойствами: Логин, Пароль, Фамилия, Имя, Отчество, Учебная группа, Дата регистрации, Пол, Адрес электронной почты, Шифр студента, Флаг администрирования. Все указанные свойства, кроме свойств Логин, Дата регистрации и Шифр студента, являются динамическими, т.е. могут меняться. Поля Логин, Дата регистрации и Шифр студента- статические. Их значения остаются постоянными.
Объект "Курсы ДО" включает в себя информацию о дисциплинах дистанционного обучения. Он обладает свойствами: Идентификатор курса, Название курса, Аннотация курса, Полное описание курса, Картинка курса, Продолжительность курса, №. Все указанные свойства, кроме свойства Идентификатор курса, являются динамическими, т.е. могут меняться. Поле Идентификатор курса - статическое.