Учебно-методическое пособие по курсу «Базы данных» по теме разра

А.С. Акопов

Учебно-методическое пособие по курсу «Базы данных»

по теме

РАЗРАБОТКА WEB-ПРИЛОЖЕНИЙ

НА СТОРОНЕ СЕРВЕРА

Утверждено

Учебно-методическим советом факультета «Бизнес-информатика» ГУ-ВШЭ

в качестве учебного пособия для студентов 20.04.2010

Рецензенты:

к.т.н., доцент HYPERLINK «http://www.hse.ru/org/persons/10253687» Ахметсафина Р. З.

к.т.н., доцент Перминов Г. И.

Москва – 2010

Оглавление

TOC \o «1-3» \h \z \u HYPERLINK \l «_Toc259887752» 1. Введение PAGEREF _Toc259887752 \h 3

HYPERLINK \l «_Toc259887753» 2. Программа курса PAGEREF _Toc259887753 \h 6

HYPERLINK \l «_Toc259887754» Раздел 1. Основы языка программирования PHP PAGEREF _Toc259887754 \h 6

HYPERLINK \l «_Toc259887755» 1.1 Введение в PHP PAGEREF _Toc259887755 \h 7

HYPERLINK \l «_Toc259887756» 1.2 Установка интерпретатора PHP PAGEREF _Toc259887756 \h 10

HYPERLINK \l «_Toc259887757» 1.3 Полезные конструкции на PHP PAGEREF _Toc259887757 \h 14

HYPERLINK \l «_Toc259887758» 1.4 Управляющие структуры PHP PAGEREF _Toc259887758 \h 16

HYPERLINK \l «_Toc259887759» 1.5 Работа с файловой системой PAGEREF _Toc259887759 \h 18

HYPERLINK \l «_Toc259887760» 1.6 Базы данных и PHP PAGEREF _Toc259887760 \h 18

HYPERLINK \l «_Toc259887761» Раздел 2. Основы технологии ASP.NET и ADO.NET PAGEREF _Toc259887761 \h 25

HYPERLINK \l «_Toc259887762» 2.1 Введение в ASP.NET PAGEREF _Toc259887762 \h 25

HYPERLINK \l «_Toc259887763» 2.2 Установка программного обеспечения для ASP.NET PAGEREF _Toc259887763 \h 30

HYPERLINK \l «_Toc259887764» 2.3 Полезные конструкции на ASP.NET PAGEREF _Toc259887764 \h 32

HYPERLINK \l «_Toc259887765» 2.4 Управляющие структуры ASP.NET PAGEREF _Toc259887765 \h 34

HYPERLINK \l «_Toc259887766» 2.5 Работа с файловой системой PAGEREF _Toc259887766 \h 35

HYPERLINK \l «_Toc259887767» 2.6 Базы данных и ASP.NET PAGEREF _Toc259887767 \h 36

HYPERLINK \l «_Toc259887768» Раздел 3. Разработка приложений для WEB с использованием MySQL PAGEREF _Toc259887768 \h 41

HYPERLINK \l «_Toc259887769» 3.1 Введение в MySQL PAGEREF _Toc259887769 \h 41

HYPERLINK \l «_Toc259887770» 3.2 Взаимодействие MySQL и PHP. PAGEREF _Toc259887770 \h 43

HYPERLINK \l «_Toc259887771» 3.3 Визуальные средства проектирования для MySQL. PAGEREF _Toc259887771 \h 52

HYPERLINK \l «_Toc259887772» 3.План семинарских занятий PAGEREF _Toc259887772 \h 56

HYPERLINK \l «_Toc259887773» 4.Контрольная работа и методические рекомендации к ее выполнению PAGEREF _Toc259887773 \h 58

HYPERLINK \l «_Toc259887774» 5.Вопросы итогового контроля PAGEREF _Toc259887774 \h 60

HYPERLINK \l «_Toc259887775» 6.Рекомендуемая литература PAGEREF _Toc259887775 \h 62

1. Введение

В настоящее время количество приложений с использованием систем управления реляционными базами данных (СУБД) неуклонно растет. Особенно на этом фоне выделяются разработки под Интернет.

Современные информационные системы, такие как динамические WEB-сайты, используют СУБД для управления контентом (информационным наполнением) и обеспечения интерфейса взаимодействия с пользователями. Динамические Web-сайты, как правило, основаны на шаблонных страницах (в частности, HTML-формата), в которые вставляется (когда пользователь запрашивает соответствующие страницы через WEB-браузер) постоянно меняющееся информационное наполнение, извлекаемое из СУБД.

Отметим, что HTML (от англ. HyperText Markup Language — «язык разметки гипертекста») — стандартный язык разметки документов во Всемирной паутине. Большинство WEB-страниц создаются при помощи языка HTML (или XHTML).

Динамические WEB-сайты, как правило, создаются с использованием различных скриптовых языков программирования и технологий, среди которых, наиболее распространенными являются:

PHP ( HYPERLINK «http://ru.wikipedia.org/wiki/%D0%90%D0%BD%D0%B3%D0%BB%D0%B8%D0%B9%D1%81%D0%BA%D0%B8%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA» \o «Английский язык» англ. PHP: Hypertext Preprocessor — «PHP: HYPERLINK «http://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%B5%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D1%81%D0%BE%D1%80» \o «Препроцессор» препроцессор HYPERLINK «http://ru.wikipedia.org/wiki/%D0%93%D0%B8%D0%BF%D0%B5%D1%80%D1%82%D0%B5%D0%BA%D1%81%D1%82» \o «Гипертекст» гипертекста») — HYPERLINK «http://ru.wikipedia.org/wiki/%D0%A1%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D0%BE%D0%B2%D1%8B%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA» \o «Скриптовый язык» скриптовый язык программирования общего назначения, интенсивно применяющийся для разработки WEB-приложений, в том числе взаимодействующих с СУБД;

ASP.NET — технология создания HYPERLINK «http://ru.wikipedia.org/wiki/%D0%92%D0%B5%D0%B1-%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5» \o «Веб-приложение» WEB-приложений и HYPERLINK «http://ru.wikipedia.org/wiki/%D0%92%D0%B5%D0%B1-%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81» \o «Веб-сервис» WEB-сервисов от компании HYPERLINK «http://ru.wikipedia.org/wiki/%D0%9C%D0%B0%D0%B9%D0%BA%D1%80%D0%BE%D1%81%D0%BE%D1%84%D1%82» \o «Майкрософт» Microsoft. Она является составной частью платформы HYPERLINK «http://ru.wikipedia.org/wiki/Microsoft_.NET» \o «Microsoft .NET» Microsoft .NET. . Разработчики могут писать код для ASP.NET, используя практически любые языки программирования, в том числе, и входящие в комплект HYPERLINK «http://ru.wikipedia.org/wiki/.NET_Framework» \o «.NET Framework» .NET Framework ( HYPERLINK «http://ru.wikipedia.org/wiki/C_Sharp» \o «C Sharp» C#, HYPERLINK «http://ru.wikipedia.org/wiki/VB.NET» \o «VB.NET» Visual Basic.NET, и HYPERLINK «http://ru.wikipedia.org/wiki/JScript_.NET» \o «JScript .NET» JScript .NET). ASP.NET имеет преимущество в скорости по сравнению со скриптовыми технологиями, так как при первом обращении код компилируется и помещается в специальный HYPERLINK «http://ru.wikipedia.org/wiki/%D0%9A%D1%8D%D1%88» \o «Кэш» кэш, и впоследствии только исполняется, не требуя затрат времени на HYPERLINK «http://ru.wikipedia.org/wiki/%D0%9F%D0%B0%D1%80%D1%81%D0%B8%D0%BD%D0%B3» \o «Парсинг» парсинг, HYPERLINK «http://ru.wikipedia.org/wiki/%D0%9E%D0%BF%D1%82%D0%B8%D0%BC%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F» \o «Оптимизация» оптимизацию, и т. д.

Существуют и другие языки программирования и технологии создания динамических WEB-приложений, взаимодействующих с СУБД, например, язык программирования Java Server Pages (JSP), технология Java 2 Enterprise Edition и JDBC, технология создания расширений ISAPI и приложений CGI на языке программирования C++ и др. Такие технологии имеют определенные достоинства и недостатки, связанные с быстродействием, функциональными возможностями, и др. Вместе с тем, в процессе обучения программированию приложений баз данных для WEB целесообразно ориентироваться на наиболее популярные инструменты, такие как PHP, и ASP.NET ( HYPERLINK «http://ru.wikipedia.org/wiki/JScript_.NET» \o «JScript .NET» VBScript .NET). При этом следует отметить, что скриптовый язык программирования PHP является более простым в использовании и ориентирован на проектирование малых и средних динамических WEB-сайтов (таких как, форумы, блоги, интернет-магазины и др.), а технология ASP.NET предназначена для проектирования больших информационных систем (например, Интернет-порталов) и предполагает активное использование методов объектно-ориентированного программирования (ООП) и визуальных средств разработки, в частности, Microsoft Visual Studio. Также отметим, что технология PHP наилучшим образом адаптирована для работы с СУБД MySQL, а ASP.NET для взаимодействия с СУБД Microsoft SQL Server (посредством специальной технологии ADO.NET) .

Основной целью изучения темы «Разработка WEB-приложений на стороне сервера», изучаемой в рамках курса «Базы данных», является обучение студентов методологии проектирования приложений взаимодействующих с СУБД для WEB. Основные задачи темы: расширение и углубление теоретических знаний в области разработки баз данных; овладение специальными языками программирования, обеспечивающими возможность разработки приложений баз данных для WEB; изучение специфики технической реализации СУБД для WEB, в частности, на примере MySQL; изучение наиболее типичных примеров создания динамических WEB-страниц, взаимодействующих с СУБД.

Освоение темы предполагает знание основ технологий реляционных баз данных, программирования на языках: Си, Visual Basic и SQL, а также теоретических основ веб-дизайна (HTML, CSS и др.).

2. Программа курса

Раздел 1. Основы языка программирования PHP

Как было отмечено ранее, PHP ( HYPERLINK «http://ru.wikipedia.org/wiki/%D0%90%D0%BD%D0%B3%D0%BB%D0%B8%D0%B9%D1%81%D0%BA%D0%B8%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA» \o «Английский язык» англ. PHP: Hypertext Preprocessor — «PHP: HYPERLINK «http://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%B5%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D1%81%D0%BE%D1%80» \o «Препроцессор» препроцессор HYPERLINK «http://ru.wikipedia.org/wiki/%D0%93%D0%B8%D0%BF%D0%B5%D1%80%D1%82%D0%B5%D0%BA%D1%81%D1%82» \o «Гипертекст» гипертекста») — HYPERLINK «http://ru.wikipedia.org/wiki/%D0%A1%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D0%BE%D0%B2%D1%8B%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA» \o «Скриптовый язык» скриптовый язык программирования общего назначения, интенсивно применяющийся для разработки WEB-приложений, в том числе взаимодействующих с СУБД.

В отличие, в частности, от сценариев JavaScript и VBScript, выполняемых на стороне «клиента», PHP сценарии выполняются на стороне «сервера» и позволяют работать с различными СУБД, например MS SQL Server, Oracle, серверной файловой системой, почтовыми сервисами и др.

Обратите внимание. Для работы с PHP (ASP, JSP и др.) (в отличие от JavaScript) нужен установленный и специально настроенный WEB-сервер, например, Internet Information Server (IIS). К примеру, если у Вас установлена операционная система Windows XP/Vista и т.п., то Вы можете скачать дистрибутив PHP c сайта: HYPERLINK «http://www.php.net» www.php.net (например, для пятой версии: HYPERLINK «http://ru.php.net/get/php-5.2.12-Win32.zip/from/a/mirror» http://ru.php.net/get/php-5.2.12-Win32.zip/from/a/mirror).

Обратите внимание. PHP является свободно распространяемым продуктом, класса Open Source (открытого исходного кода).

Отметим, что файл, использующий PHP-сценарии, должен, как правило, иметь расширение «*.php».

1.1 Введение в PHP

Следующий код

Дает

Hello, World!

Имена переменных обозначаются знаком $. То же самое «Hello, World!» можно получить следующим образом:

$message = «Hello, World!»;

echo($message);

?>

Конкатенация (присоединение) строк осуществляется с помощью . (точки); обычные арифметические операции определяются так, как Вы того и ожидаете:

$greeting = «Hello «;

$num = 3 + 2;

$num++;

echo («$greeting.$num.”people!“);

?>

даст Hello 6 people!

Обратите внимание. Синтаксис PHP очень похож на C.

Cтрока, заключенная в двойные кавычки, означает, что встречающиеся в этой строке переменные будут заменены их значениями, в то время как если строка заключена в одинарные кавычки, такая замена не производится. Так

$name = ‘Susannah’;

$greeting_1 = «Hello, $name!»;

$greeting_2 = ‘Hello, $name!’;

echo «$greeting_1\n»;

echo «$greeting_2\n»;

?>

даст

Hello, Susannah!

Hello, $name!

Обратите внимание на то, что \n в строке означает переход к новой строке, совсем как в Perl или в C. Однако это работает только в тех строках, которые взяты в двойные кавычки.

PHP обеспечивает доступ к переменным окружения как к регулярным переменным. Например, при нажатии на кнопку формы инициируется передача данных формы методом GET или POST

Такой сценарий:

$action = $_REQUEST[‘sbt’]; // Можно также использовать $_POST[‘sbt’];

echo($action);

?>

Даст результат:

Вход

после нажатия на кнопку «Вход»

Очевидное достоинство PHP в том, что Вам не надо заботиться о получении, раскодировании и любой другой обработке данных из формы, как например при написании CGI программы на языке C/C++. За нас все делает PHP. Очень легко и красиво он автоматически заполняет несколько встроенных массивов:

$_SERVER ($HTTP_SERVER_VARS) — для серверных переменных;

$_ENV ($HTTP_ENV_VARS) — для переменных среды, в которой работает PHP;

$_COOKIE ($HTTP_COOKIE_VARS) — для переменных передающихся посредством cookies;

$_GET ($HTTP_GET_VARS) — для параметров формы, переданных посредством метода GET;

$_POST ($HTTP_POST_VARS) — для параметров формы, переданных методом POST;

$_FILES ($HTTP_POST_FILES) — для закачиваемых посредством метода POST файлов;

$_REQUEST — массив содержащий внутри себя массивы $_GET, $_POST и $_COOKIE;

$_SESSION ($HTTP_SESSION_VARS) — для хранения параметров сессии.

Используя $_REQUEST, Вы получаете доступ к данным формы. Можете сохранить эти данные в Базе Данных и т.д.

1.2 Установка интерпретатора PHP

Шаг 1. Распакуйте дистрибутив в папку C:\PHP

Шаг 2. Настройте Internet Information Server на своем локальном компьютере, так чтобы выполнялась обработка файлов с расширением *.php. Для этого нужно зайти в Панель управления Windows, далее – Администрирование, далее — Диспетчер служб IIS. Затем нужно добавить обработку php-сценариев фильтром ISAPI для всех узлов по умолчанию с помощью вкладки «Фильтры ISAPI» (рис. 1)

Рис. 1. Добавление фильтра ISAPI для обработки PHP-сценариев.

Отметим, что Internet Server Application Programming Interface (ISAPI) — это HYPERLINK «http://ru.wikipedia.org/wiki/API» \o «API» API (Application Programming Interface — набор готовых классов, функций, структур и констант, предоставляемых приложением (библиотекой, сервисом) для использования во внешних программных продуктах.) для HYPERLINK «http://ru.wikipedia.org/wiki/Internet_Information_Services» \o «Internet Information Services» Internet Information Services, коллекции сетевых служб Microsoft Windows. Соответственно, фильтры ISAPI представляют собой динамические библиотеки DLL, напрямую взаимодействующие с IIS.

Далее, нужно добавить «Сопоставление сценария PHP с исполняемым файлом ISAPI-фильтра (php5isapi.dll). Это можно сделать в разделе «Сопоставление обработчиков» системы администрирования IIS (рис. 2).

Рис. 2. Настройка «Сопоставления обработчиков» IIS для PHP.

Обратите внимание. Для различных версий ОС Windows, интерфейс Диспетчера служб IIS также будет различным. К примеру, в для Windows XP добавление фильтра ISAPI для PHP имеет вид рис. 3.

SHAPE \* MERGEFORMAT

Рис. 3. Добавление фильтра ISAPI для обработки PHP-сценариев в для IIS 6.0 ОС Windows XP.

Шаг 3. Скопируйте php5ts.dll из дистрибутива в папку C:\Windows\system32

Шаг 4. Убедитесь, что PHP работает под управлением Вашего IIS. Для этого создайте файл test.php в папке IIS (C:\Inetpub\wwwroot) c таким кодом:

phpinfo();

?>

Рис. 4. Оценка корректности установки и конфигурирования PHP.

Обратите внимание на параметр Loaded Configuration File. К примеру, в нашем случае он имеет следующее значение: «C:\Program Files\PHP\php.ini». Это означает, что кофигурационный файл, с помощью которого Вы можете переопределять параметры PHP модуля, находится в папке «C:\Program Files\PHP), и загружен успешно.

Шаг5. Сконфигурируйте файл php.ini под Ваши задачи.

SHAPE \* MERGEFORMAT

Рис. 5. Конфигурирование PHP под собственные задачи.

1.3 Полезные конструкции на PHP

include(«login.php»); //Вставка файла login.php в текущий файл

//Здесь произвольный HTML код

//Данный блок кода будет выполнятся, только если переменная $action примет значение «Вход», т.е. если Пользователь нажмет на кнопку «Вход

……………………………………

//Функция isset позволяет проверить установлено ли значение переменной $action

if(!isset($action))

$action=»»;

Простейший способ установить cookie на PHP таков:

setcookie(‘name’, ‘bret’);

Затем, для каждой последующей страницы на Вашем сайте, просматриваемой в течение данной сессии (пока пользователь не покинет сайт) переменная $name будет иметь значение ‘bret’ и его можно легко прочитать средствами PHP. Этот тип cookie известен как cookie-сессия, поскольку значение сохраняется в течение пользовательской сессии.

С помощью cookie можно создать, в частности, «Корзину покупок» для Интернет-магазина или запомнить «профиль» пользователя. Если Вы хотите, чтобы значение cookie запоминалось браузером после того, как пользователь закончит сессию, Вы должны передать функции setcookie() третий параметр — дату истечения срока действия cookie. Поскольку PHP сформировался в основном в среде Unix, Вы должны представить время истечения срока действия cookie как число секунд, прошедших с 1 января 1970 г.

Например, если Вы хотите, чтобы срок действия cookie истек 1 января 2000 г., Вы записываете:

$y2k = mktime(0,0,0,1,1,2000);

setcookie(‘name’, ‘bret’, $y2k); ?>

Удаление cookie

Обратите внимание. В силу того, как организована обработка cookies в протоколе HTTP, необходимо установить значения всех cookie до вывода какого-либо текста. Если сделать наоборот, PHP выдаст Вам предупреждение и значение cookie не будет послано. Вот так правильно:

setcookie(‘name’, ‘jeff’);

echo «Hello Everyone!»;

?>

Создать массив можно также путем вызова функции array():

$fruit = array();

$favorites = array();

или так

$fruit = array(‘banana’,’papaya’); //Создается массив из 2-х элементов ‘banana‘ и ‘papaya’

Индексы массивов (как обычных, так и ассоциативных) задаются в квадратных скобках ([ и ]):

$fruit[0] = ‘banana’;

$fruit[1] = ‘papaya’;

$favorites[‘animal’] = ‘turtle’;

$favorites[‘monster’] = ‘cookie’;

1.4 Управляющие структуры PHP

Вы можете использовать операторы цикла, такие как for и while. В результате выполнения оператора:

for ($i = 4; $i < 8; $i++) {

print «I have eaten $i bagels today.\n»;

}

Получим:

I have eaten 4 bagels today.

I have eaten 5 bagels today.

I have eaten 6 bagels today.

I have eaten 7 bagels today.

Тот же самый результат даст

$i = 4;

while ($i < 8) {

print «I have eaten $i bagels today.\n»;

$i++; }

Вы можете также использовать конструкции с if и elseif:

if ($user_count > 200) {

print «Сайт сейчас перегружен!»;

}

elseif ($user_count > 100) {

print «Сайт активно используется!»;

else {

print «Сайт свободен — подключились только $user_count пользователей.»;

}

Вы можете использовать конструкции с switch, do…while.

switch($kv1) // Оцениваем значение переменной $kv1

{

case 1:

{ $ms1=»01″;

break;}

case 2:

{ $ms1=»04″;



Страницы: Первая | 1 | 2 | 3 | ... | Вперед → | Последняя | Весь текст