Разработка систем управления базой данных MySQL

СОДЕРЖАНИЕ: Министерство образования Российской Федерации Выксунский металлургический техникум им.А.А.Козерадского Разработка систем управления базой данных MySQL

Министерство образования Российской Федерации

Выксунский металлургический техникум им.А.А.Козерадского

Разработка систем управления базой данных MySQL

Отчет по практике

ОП 230103.012.002.00

Руководитель проекта

Чалышев В.В.

Проект разработал

Короткова Ю.С.

Проверил

Пантелеев С.В.

г.Выкса

2007


Содержание

Аннотация

Введение

1 Анализ технического задания

2 Разработка алгоритма

3 Разработка программы

4 Блок-схема

5 Руководство по установке и использованию

Заключение

Список используемой литературы


Аннотация

Данная пояснительная записка рассказывает о разработке системы управления базой данных MySQL, цели ее создания и способах использования. Прочитав данную пояснительную записку, пользователь сможет создать свою базу данных, и, соответственно, сможет ей управлять, приложив при этом минимальные усилия.


Введение

PHP – язык написания сценариев, внедренный в HTML. Многое из синтаксиса заимствовано из С, Java, Perl, с добавлением специфичных для PHP возможностей. Задача языка состоит в том, чтобы дать возможность Web-разработчикам легко и быстро создавать динамично изменяемые html-страницы.

Написание Web-страницы, работающей с базой данных, невероятно проста. В настоящее время поддерживаются следующие базы данных: Oracle, Adabas D, Sybase, FilePro, mSQL, Velocis, MySQL, Informix, Solid, dBase, ODBC, Unix dbm, PostgreSQL.

В последнее время у разработчиков наиболее популярна СУБД MySQL.

MySQL – компактный многопоточный сервер баз данных. MySQL характеризуется большой скоростью, устойчивостью и легкостью в использовании.

MySQL является идеальным решением для малых и средних приложений. Исходники сервера компилируются на множестве платформ. Наиболее полно возможности сервера проявляются на Unix-серверах, где есть поддержка многопоточности, что дает значительный прирост производительности.

MySQL действительно очень быстрый сервер, но для достижения этого разработчикам пришлось пожертвовать некоторыми требованиями к реляционным СУБД.

В своей работе я отразила, как управлять базой данных MySQL через язык программирования PHP 4.


1 Анализ технического задания

Тема проекта «Разработка систем управления базой данных MySQL» подразумевает под собой создание скрипта на языке программирования php4, где управление базой данных организовано по схеме ничего лишнего, поэтому и отсутствуют некоторые функции, которыми оснащены база данных MySQL.

Суть программы будет заключаться в следующем: пользователь создает некую базу данных, и при использовании скрипта он может выполнять следующие функции:

- просмотр созданной базы данных;

- изменение значения в строках таблицы;

- добавление строки в уже существующую таблицу, либо добавление новой таблицы;

- удаление таблицы;

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

Для реализации данного проекта применяется язык программирования PHP (версии 4.0).

2 Разработка алгоритма

На данном этапе разработано несколько алгоритмов, по которым можно решить эту задачу.

1) Разработать систему управления базой данных таким образом, чтобы она выполняла 4 основные функции: просмотр, изменение данных в таблицах, добавление таблиц и их удаление.

2) Второй вариант является модификацией первого. К уже существующей системе добавить защиту базы данных, т.е. ввести пароль для каждого пользователя.

3) Третий вариант является доработкой второго. Если пользователь захочет распечатать базу данных, то возможен вывод документа на печать.

Был выбран третий вариант реализации программы, потому что он более полный и обладает всеми важными функциями управления базой данных. Он также является наиболее практичным и работоспособным.

3 Разработка программы

В программе используется 6 файлов.

Файл index.html – начальный файл, он используется при запуске.

?php

include(inc/config.php);

include(inc/function.php);

include(inc/header.php);

print div align=\center\ class=\tabtop\Пример системы управления базой данных/div;

list_tab(connect);

if(@$action == connect){

$link = mysql_pconnect($mysql_host, $mysql_login, $mysql_password) or die (Не могу подключиться к MySQL);

mysql_select_db ($database) or die ($database не найдена!);

$result = mysql_query (SELECT * FROM `$db`) or die (Ошибка запроса);

if ($myrow = mysql_fetch_array($result))

{

echo table bgcolor=\#F3E7CD\ tr class=\tabletext\td;

echo table width=\100%\ rules=\all\ align=\center\ bgcolor=\#ffffff\ bolder=\4\\n;

echo tr

td Н а з в а н и е /td

td И з д а т е л ь с т в о /td

td Г о д в ы п у с к а /td

/tr\n;

do

{

print tr bgcolor=\#111111\

td align=\CENTER\ class=\taband\$myrow[nazvanie]/td

td align=\CENTER\ class=\taband\$myrow[izdatelstvo]/td

td align=\CENTER\ class=\taband\$myrow[god_vipuska]/td/tr

; }

while ($myrow = mysql_fetch_array($result));

echo /table\n;

echo /td/tr/table;}

print a target=\blank\ href=\/services/print.php?db=$db\Версия для печати/a;

}?

Файл admin. php -в этом файле производится непосредственно обработка информации из базы данных, выполнение всех основных команд управления базой данных.

?php

include(inc/config.php);

include(inc/function.php);

include(inc/header.php);

switch (@$actions) {

case (add):

print div align=\center\ class=\tabtop\Добавить строку в таблицу/div;

list_tab(add);

print hr;

print div align=\center\ class=\tabtop\Создать новую таблицу/div;

print form action=\?actions=adds=2\ method=\post\

table

tr class=\tabletext\tdИмя таблицы (соответственно имени группы):/tdtdinput type=\text\ name=\tablename\/td/tr

trtd colspan=\2\ align=\CENTER\input type=\submit\ value=\Создать таблицу\/td/tr

/table

/form;

if (isset($tablename) @$s==2) {

$link = mysql_pconnect($mysql_host, $mysql_login, $mysql_password) or die (Не могу подключиться к MySQL);

mysql_select_db ($database) or die ($database не найдена!);

$sql = CREATE TABLE `.$tablename.` (

. `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,

. `nazvanie` VARCHAR(100) NOT NULL,

. `izdatelstvo` VARCHAR(100) NOT NULL,

. `god_vipuska` VARCHAR(100) NOT NULL,

. PRIMARY KEY (`id`)

. );

$result = mysql_query($sql);

print meta http-equiv=\refresh\ content=\2 url=?action=adddb=$tablename\;

}

if (isset($snazvanie) @$s==1) {

$link = mysql_pconnect($mysql_host, $mysql_login, $mysql_password) or die (Не могу подключиться к MySQL);

mysql_select_db ($database) or die ($database не найдена!);

$sql = INSERT INTO `$db` (nazvanie,izdatelstvo,god_vipuska) VALUES

($snazvanie,$sizdatelstvo,$sgod_vipuska);

$result = mysql_query($sql);

}

break;

case (edit):

print div align=\center\ class=\tabtop\Изменить данные таблицы/div;

list_tab(update);

break;

case (del):

print div align=\center\ class=\tabtop\Удалить таблицу/div;

list_tab(delete);

break;

case (config):

print div align=\center\ class=\tabtop\Изменить параметры скрипта/div;

print

form action=\\ method=\post\

table align=\CENTER\ width=\640\

tr class=\tabletext\tdИмя пользователя базы данных:/td

tdinput type=\text\ name=\new_mysql_login\ value=\$mysql_login\/td/tr

tr class=\tabletext\tdПароль для доступа к базе данных (по умолчанию пустой):/td

tdinput type=\text\ name=\new_mysql_password\ value=\$mysql_password\/td/tr

tr class=\tabletext\tdИмя базы данных:/td

tdinput type=\text\ name=\new_database\ value=\$database\/td/tr

tr class=\tabletext\td colspan=\2\ align=\CENTER\input type=\submit\ value=\Изменить\/td/tr

/table

/form;

if(isset($new_mysql_host) isset($new_mysql_login) isset($database))

{

$config = ?php

\$mysql_host = \.$new_mysql_host.\;

\n

\$mysql_login = \.$new_mysql_login.\;

\n

\$mysql_password = \.$new_mysql_password.\;

\n

\$database = \.$new_database.\;

?;

$fp = fopen (inc/config.php, w+);

fwrite ($fp, $config);

fclose ($fp);

print meta http-equiv=\refresh\ content=\0 url=admin.php?actions=config\;

}

break;

}

//Добавление таблицы

if (@$action == add isset($db)) {

print form action=\?actions=adds=1\ method=\post\

table

trtd colspan=\2\ class=\tabtop\ align=\CENTER\bДобавление строки в

таблицу $db/b/td/tr

tr class=\tabletext\td Название книги: /tdtdinput type=\text\

name=\snazvanie\ /tr

tr class=\tabletext\td Издательство: /tdtdinput type=\text\ name=\sizdatelstvo\ /tr

tr class=\tabletext\td Год выпуска: /tdtdinput type=\text\ name=\sgod_vipuska\ /tr

tr class=\tabletext\td colspan=\2\ align=\CENTER\input type=\submit\ value=\Добавить\/td/tr/table

input type=\hidden\ name=\db\ value=\$db\

/form; }

//Удаление таблицы

if(@$action == delete)

{

$link = mysql_pconnect($mysql_host, $mysql_login, $mysql_password) or die (Не могу подключиться к MySQL);

mysql_select_db ($database) or die ($database не найдена!);

@$result = mysql_query (DELETE FROM `$db`);

if ($result == TRUE){

$sql = mysql_query (DROP TABLE `$db`);

}

print meta http-equiv=\refresh\ content=\0 url=admin.php?actions=del\;

}

//Обновление данных в таблице

if(@$action == update){

$link = mysql_pconnect($mysql_host, $mysql_login, $mysql_password) or die (Не могу подключиться к MySQL);

mysql_select_db ($database) or die ($database не найдена!);

$result = mysql_query(SELECT * FROM `$db`) or die (Ошибка запроса!!!);

$myrow = mysql_fetch_array($result);

echo div align=\center\ class=\tabtop\Внести изменения в таблицу $db/div;

echo table tr class=\tabletext\td;

echo table border=\0\ cellspacing=\1\\n form action=\?submit=Submitdb=$db\ method=\POST\;

$i=0;

do

{

print

tr

td$myrow[0]./tdtd

input type=\text\ size=\14\ name=\nazvanie[$i]\ value=\$myrow[nazvanie]\/td

input type=\hidden\ name=\id\ value=\$myrow[0]\ td align=\CENTER\

input type=\text\ size=\2\ name=\izdatelstvo[$i]\ value=\$myrow[izdatelstvo]\/td

td align=\CENTER\input type=\text\ size=\3\ name=\god_vipuska[$i]\ value=\$myrow[god_vipuska]\/td/tr ;

$i++;}

while ($myrow = mysql_fetch_array($result));

echo

trtd colspan=\12\ align=\center\ input type=\submit\ name=\submit\ value=\Обновить\/td/tr/form/table\n;

echo /td/tr/table;

}

if (@$submit == Обновить){

$link = mysql_pconnect($mysql_host, $mysql_login, $mysql_password) or die (Не могу подключиться к MySQL);

mysql_select_db ($database) or die ($database не найдена!);

$ids=$id;

do {

$id--;

$result = mysql_query(UPDATE `$db` SET nazvanie=$nazvanie[$id], izdatelstvo=$izdatelstvo[$id], god_vipuska=$god_vipuska[$id] WHERE id=$ids);

$ids--;

} while($id=1);

print meta http-equiv=\refresh\ content=\0 url=admin.php?action=updatedb=$db\;

}

include(inc/footer.php);

?

Файл konfig . php -задает основные параметры базы данных: путь к базе данных, имя пользователя базы, пароль для доступа к базе данных, и имя самой базы данных.

?php

$mysql_host = localhost;

$mysql_login = root;

$mysql_password = ;

$database = knigi;?

Файл function . php -заменяет английский алфавит, используемый в базе данных, на русский методом замены.

?

function authorization($username, $pass){

include(inc/config.php);

$out = FALSE;

if(strtolower($username) == strtolower($adminlogin) $pass == $adminpass)

{

$out = TRUE;

}

return $out;

}

function list_tab($act) {

include(inc/config.php);

function replace_ru_en($tab_rows){

$tab_rows = str_replace(a, А , $tab_rows);

$tab_rows = str_replace(b, Б , $tab_rows);

$tab_rows = str_replace(с, Ц , $tab_rows);

$tab_rows = str_replace(d, Д , $tab_rows);

$tab_rows = str_replace(e, Е , $tab_rows);

$tab_rows = str_replace(f, Ф , $tab_rows);

$tab_rows = str_replace(g, Г , $tab_rows);

$tab_rows = str_replace(h, Х , $tab_rows);

$tab_rows = str_replace(i, И , $tab_rows);

$tab_rows = str_replace(j, Ж , $tab_rows);

$tab_rows = str_replace(k, К , $tab_rows);

$tab_rows = str_replace(l, Л , $tab_rows);

$tab_rows = str_replace(m, М , $tab_rows);

$tab_rows = str_replace(n, Н , $tab_rows);

$tab_rows = str_replace(o, О , $tab_rows);

$tab_rows = str_replace(p, П , $tab_rows);

$tab_rows = str_replace(q, Ш, $tab_rows);

$tab_rows = str_replace(r, Р , $tab_rows);

$tab_rows = str_replace(s, С , $tab_rows);

$tab_rows = str_replace(t, Т , $tab_rows);

$tab_rows = str_replace(u, У , $tab_rows);

$tab_rows = str_replace(v, В , $tab_rows);

$tab_rows = str_replace(w, В , $tab_rows);

$tab_rows = str_replace(x, Х , $tab_rows);

$tab_rows = str_replace(y, У , $tab_rows);

$tab_rows = str_replace(z, З , $tab_rows);

return $tab_rows;

}

$link = mysql_pconnect($mysql_host, $mysql_login, $mysql_password) or die (Не могу подключиться к MySQL);

mysql_select_db ($database) or die ($database не найдена!);

$result = mysql_list_tables($database, $link); print

p align=\center\ form action=\?\ method=\get\

input type=\hidden\ name=\action\ value=\$act\

select name=\db\\n;

while($tab_rows = mysql_fetch_row($result)) {

print option value=\$tab_rows[0]\.replace_ru_en($tab_rows[0])./option\n;

}

print /select

input type=\submit\ value=\Пошел\/form/p;

}

?

Файл hearder . php – внешний вид и оформление страниц.

?

@print

html

head

/script

titleРазработка системы управления базой данных/title

/head

link href=\style.css\ rel=\stylesheet\ type=\text/css\

body bgcolor=\recbg.jpeg\ topmargin=\10\ marginwidth=\0\ marginheight=\10\

table width=\100%\ cellspacing=\1\ cellpadding=\0\ align=\CENTER\

trtd bgcolor=\E0FFFF\

table width=\100%\ cellspacing=\5\ cellpadding=\0\

trtd

table width=\100%\ cellspacing=\0\ cellpadding=\0\

tr

td{cursor: n-resize;}

table cellspacing=\0\ cellpadding=\0\

trtd

table cellspacing=\0\ cellpadding=\5\

tr

a href=\/index.php\ class=\blink\ Просмотр /abrbr

a href=\/admin.php?actions=add\ class=\blink\ Добавить/abrbr

a href=\/admin.php?actions=edit\ class=\blink\ Изменить/abrbr

a href=\/admin.php?actions=del\ class=\blink\ Удалить/abrbr

a href=\/admin.php?actions=config\ class=\blink\ Конфиг/abrbr

/tr

td/td

/table

/td

td align=\right\ class=\tabletext\

/td

/tr

/table

/td

/tr

trtd

table width=\100%\ cellspacing=\0\ cellpadding=\5\

tr class=\intable\

td bgcolor=\#F3E7CD\ align=\center\

;

?

Файл print . php - выводит базу данных на печать.

?php

include(../inc/config.php);

include(../inc/function.php);

Error_Reporting(E_ALL ~E_NOTICE);

print

/head

body onload=\window.print()\

;

$link = mysql_pconnect($mysql_host, $mysql_login, $mysql_password) or die (Не могу подключиться к MySQL);

mysql_select_db ($database) or die ($database не найдена!);

@$result = mysql_query (SELECT * FROM `$db`) or die (Ошибка запроса);

if ($myrow = mysql_fetch_array($result))

{

echo table bgcolor=\#000000\ trtd;

echo table border=\1\ cellspacing=\1\\n;

echo tr bgcolor=\#99ccff\ align=\CENTER\ class=\tabletext\

td Название /td

td Издательство /td

td Год выпуска /td/tr\n;

do

{

print tr class=\tabletext\ bgcolor=\#ffffff\

td$myrow[nazvanie]/td

td align=\CENTER\$myrow[izdatelstvo]/td

td align=\CENTER\$myrow[god_vipuska]/td/tr

;

}

while ($myrow = mysql_fetch_array($result));

echo /table\n;

echo /td/tr/table;

}

print input type=\submit\ value=\Печать\ onclick=\window.print()\;

mysql_close($link);

print

/body

/html;

?

4 Блок-схема


5 Руководство по установке и использованию

Для того чтобы данная программа работала у Вас на компьютере необходимо установить серверное программное обеспечение (например, Денвер). Дальше все по пунктам.

1. Создаем каталог и даем ему имя (т.е. папку в папке home)

2. В каталоге создаем папку www

3. Запускаем Денвер

4. Производим проверку базы данных MySQL.

5. Открываем браузер (в нем прописываем домашний URL. Домашний URL такой: http://имя своего каталога/)

Заключение

Данный проект был реализован на языке программирования PHP, который адаптирован под Интернет. Этот проект может быть использован для встраивания в сайт. Назначение его это хранение информации в одном месте, а также упорядочивание данных одной тематики.


Список используемых источников

1) Учебник php - 2002г.

2) Самоучитель по PHP.

3) Учебник PHP4-2004г.

Скачать архив с текстом документа