43042

Создание базы данных (домашней библиотеки) в среде MySQl

Курсовая

Информатика, кибернетика и программирование

Техническое задание Структура данных Используемые запросы Список использованной литературы Задание Создать базу данных домашнюю библиотеку в среде MySQl.php method=GET p Input hostnme p P input type=text nme=host P p Input User nme p P input type=text nme=nme P p Input DtBse nme p P input type=text nme=dbnme P P input type=hidden nme=ifprn vlue=N P P input type=submit nme=but vlue=Ok P form ; } else { link = mysql_connect host nme or die Couldn't connect: ; print Connection successful n...

Русский

2013-11-04

93 KB

102 чел.

Московский государственный институт электроники и математики
(технический университет)

Курсовая работа

по дисциплине   “Базы данных”

Выполнил студент группы С-55
Виктор Владимирович Шапцов
Проверил  профессор
Зарудный Д.И.


Москва — 2004

Оглавление

  1.  Техническое задание
  2.  Структура данных
  3.  Используемые запросы
  4.  Список использованной литературы

Задание

Создать базу данных (домашнюю библиотеку) в среде MySQl. Предусмотреть возможность фильтрации данных (с использованием  SQL запросов). Использовать не менее 3-х связанных таблиц с ключевыми (идентификационными) полями.

Структура данных

Структура данных представляет собой набор связанных таблиц. Всего четыре таблицы: ”Авторы”, ”Жанр”, ”Книги”, ”Местоположение”. Рассмотрим каждую из этих таблиц.

У нас есть данные, такие как фамилия, имя, отчество автора книги, название книги, год её издания, количество томов, жанр, местоположение книги.

Рассмотрим таблицу Книги

Код книги

КодАвтора

КодЖанра

КодМестоположения

Год издания

КолличествоТомов

Название

1

1

1

1

1807

5

Избранное

2

2

2

2

1861

2

Война и мир

3

1

2

2

1808

1

Сказка о золотом петушке

Данная таблица содержит ключевое поле ”Код книги”, содержащее идентификационный номер каждой книги.  Поля ” КодАвтора”, ” КодЖанра”,   ”КодМестоположения” связаны с одноимёнными полями таблиц ”Авторы”, ”Жанр” и ”Местоположение” и содержат идентификационные номера значений, находящихся в оставшихся таблицах.

Далее рассмотрим таблицу Авторы

Авторы

Код автора

Фамилия

Имя

Отчество

1

Пушкин

Александр

Сергеевич

2

Толстой

Лев

Николаевич

Данная таблица содержит ключевое поле ”КодАвтора”, содержащее идентификационный номер каждой записи, соответствующей ФИО каждого из авторов книг, которые содержатся в таблице ”Книги”.

Таблица Жанр

Жанр

КодЖанра

Жанр

1

Поэзия

2

Художественная

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

Таблица Местоположение

Местоположение

КодМестоположения

Местоположение

1

полка1

2

полка2

3

Полка3

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

Связи между таблицами будут представлены ниже

  ”Жанр”

КодКниги

КодАвтора

КодЖанра

КодМестоположения

ГодИздания

КолличествоТомов

Название

КодЖанра

Жанр

КодАвтора

Фамилия

Имя

Отчество

Книги

    *                 

”Авторы”

      ”Местоположение

КодМестоположения

Местоположение

Смысл создания не одной таблицы, а нескольких заключается в том, что некотрые значения (такие, как ФИО авторов книг, местоположения книг, и их жанр) могут повтовяться и при введении в базу новой книги целесообразнее пользоваться выкидными окнами типа COMBOBOX, и не вводить эти данные вручную, а выбирать их из списка имеющихся. Данные списков же берутся из таблиц ”Авторы”, ”Жанр”, ”Местоположение”. Причём в таблице ”Книги” хранятся не реальные значения таблиц ”Авторы”, ”Жанр”, ”Местоположение”, а идентификационные номера этих значений.

Используемые запросы

Для того, чтоб помещать данные в таблицу и делать из неё выборку мы пользуемся  SQL запросами. Среда разработки – QuantA Plus. Язык программирования – Php. Это позволяет создать html страницы, доступные через Internet. Технические требовадия – наличие SQL-Server, Web с поддержкой Php и Html. Проверка продукта поизводилась в Web BrowserMozilla” в операционной системе Linux XP-Professional

Приведем исходный текст программ, написанных на Php.

Для того, чтоб подключиться к электронным таблицам и создать нужную нам создаём страницу Db.php

<html>

<head>

 <title>new page</title>

 <meta name="GENERATOR" content="Quanta Plus">

</head>

<body>

<?

if ($ifprn == "") {

echo "$ifprn";

echo "<form action=dbc.php method=GET>

<p>Input host-name</p>

<P><input type=text name=host></P>

<p>Input User name</p>

<P><input type=text name=name></P>

<p>Input DataBase name</p>

<P><input type=text name=dbname></P>

<P><input type=hidden name=ifprn value=N></P>

<P><input type=submit name=but value=Ok></P>

   </form>";

  }

else {

$link = mysql_connect("$host","$name")

or die ("Couldn't connect:");

print "Connection successful\n";

if (mysql_create_db($dbname)) {

print ("Db created\n");

} else {

print ("Error creadb\n");

}

mysql_select_db("$dbname") or die("Could not select database");

$query1 = "CREATE TABLE auth (auth_id int,name varchar(45),surname varchar(45),middlename varchar(45))";

$query2 = "CREATE TABLE loc (loc_id int,locat varchar(45))";

$query3 = "CREATE TABLE genre (gen_id int,genr varchar(45))";

$query4 = "CREATE TABLE book (book_id int,auth_id int,gen_id int,loc_id int,book varchar(45),year varchar(45),vol varchar(45))";

mysql_query($query1) or die("Query failed : " . mysql_error());

mysql_query($query2) or die("Query failed : " . mysql_error());

mysql_query($query3) or die("Query failed : " . mysql_error());

mysql_query($query4) or die("Query failed : " . mysql_error());

mysql_query("COMMIT");

mysql_close($link);

echo "Data input\n";

}

?>

</body>

</html>

Эта страница открывается однажды при создании таблиц. Здесь мы вводим имя компьютера ,Host, имя пользователя, название базы данных

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

<html>

<head>

 <title>new page1</title>

 <meta name="GENERATOR" content="Quanta Plus">

</head>

<body>

<P align="CENTER">Home lib</P>

<TABLE WIDTH=100%>

<TR><TD align="CENTER"><a href="auth.php" >заполнение по автору</a></TD><TD align="CENTER"><a href="genre.php"> заполнение по жару </a></TD><TD align="CENTER"><a href="loc.php"> заполнение по местоположению </a></TD><TD align="CENTER"><a href="book1.php"> выборка </a></TD></TR>

</TABLE>

</body>

Для заполнения таблицы по автору

<html>

<head>

 <title>new page1</title>

 <meta name="GENERATOR" content="Quanta Plus">

</head>

<body>

<?

if ($ifprn == "") {

echo "$ifprn";

echo "<form action=auth.php method=GET>

<p>пїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅ/p>

<P><input type=text name=authname></P>

<p>пїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅ/p>

<P><input type=text name=authsur></P>

<p>пїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅ/p>

<P><input type=text name=authmid></P>

<p></p>

<P><input type=hidden name=ifprn value=N></P>

<P><input type=submit name=but value=Ok></P>

   </form>";

  }

else {

$link = mysql_connect("192.0.0.2","root")

or die ("Couldn't connect:");

print "Connection successful\n";

mysql_select_db("lib") or die("Could not select database");

$qid="SELECT MAX(auth_id) from auth";

$fid = mysql_query($qid) or die("Query failed : " . mysql_error());

$row = mysql_fetch_array($fid, MYSQL_NUM);

$id = $row[0]+1;

echo "$id";

$query = "INSERT INTO auth (auth_id, name, surname, middlename) values ('$id','$authname','$authsur','$authmid')";

$result = mysql_query($query) or die("Query failed : " . mysql_error());

mysql_query("COMMIT");

mysql_close($link);

echo "Data input\n";

echo "<p><form action=index.html></p>

<p><input type=submit value=HomePage></p>

</form>";

echo "<p><form action=auth.php></p>

<p><input type=submit value=NewAuth></p>

 </form>";

}

?>

</body>

</html>

Для заполнения таблицы по жанру

<html>

<head>

 <title>new page1</title>

 <meta name="GENERATOR" content="Quanta Plus">

</head>

<body>

<?

if ($ifprn == "") {

echo "$ifprn";

echo "<form action=genre.php method=GET>

<p>пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅ/p>

<P><input type=text name=genname></P>

<p></p>

<P><input type=hidden name=ifprn value=N></P>

<P><input type=submit name=but value=Ok></P>

   </form>";

  }

else {

$link = mysql_connect("192.0.0.2","root")

or die ("Couldn't connect:");

print "Connection successful\n";

mysql_select_db("lib") or die("Could not select database");

$qid="SELECT MAX(gen_id) from genre";

$fid = mysql_query($qid) or die("Query failed : " . mysql_error());

$row = mysql_fetch_array($fid, MYSQL_NUM);

$id = $row[0]+1;

echo "$id";

$query = "INSERT INTO genre (gen_id, genr) values ('$id','$genname')";

$result = mysql_query($query) or die("Query failed : " . mysql_error());

mysql_query("COMMIT");

mysql_close($link);

echo "Data input\n";

echo "<p><form action=index.html></p>

<p><input type=submit value=HomePage></p>

</form>";

echo "<p><form action=genre.php></p>

<p><input type=submit value=NewGenre></p>

 </form>";

}

?>

</body>

</html>

Для заполнения таблицы по местоположению

<html>

<head>

 <title>new page1</title>

 <meta name="GENERATOR" content="Quanta Plus">

</head>

<body>

<?

if ($ifprn == "") {

echo "$ifprn";

echo "<form action=loc.php method=GET>

<p>пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ</p>

<P><input type=text name=locname></P>

<p></p>

<P><input type=hidden name=ifprn value=N></P>

<P><input type=submit name=but value=Ok></P>

   </form>";

  }

else {

$link = mysql_connect("192.0.0.2","root")

or die ("Couldn't connect:");

print "Connection successful\n";

mysql_select_db("lib") or die("Could not select database");

$qid="SELECT MAX(loc_id) from loc";

$fid = mysql_query($qid) or die("Query failed : " . mysql_error());

$row = mysql_fetch_array($fid, MYSQL_NUM);

$id = $row[0]+1;

echo "$id";

$query = "INSERT INTO loc (loc_id, locat) values ('$id','$locname')";

$result = mysql_query($query) or die("Query failed : " . mysql_error());

mysql_query("COMMIT");

mysql_close($link);

echo "Data input\n";

echo "<p><form action=index.html></p>

<p><input type=submit value=HomePage></p>

</form>";

echo "<p><form action=loc.php></p>

<p><input type=submit value=NewLocation></p>

 </form>";

}

?>

</body>

</html>

Для ароизведения выборки

<html>

<head>

 <title></title>

 <meta name="GENERATOR" content="Quanta Plus">

</head>

<body>

<?

$link = mysql_connect("192.0.0.2","root")

or die ("Couldn't connect:");

print "Connection successful\n";

mysql_select_db("lib") or die("Could not select database");

if ($ifprn == "") {

echo  "<form action=viborka.php method=GET>";

$qid="SELECT * from auth";

$fid = mysql_query($qid) or die("Query failed : " . mysql_error());

echo "<p><select name=auth>";

while ($row = mysql_fetch_array($fid, MYSQL_NUM)) {

$id = $row[0];

$name = "$row[1] $row[3] $row[2]";

echo "<OPTION value=$id>$name</OPTION>";

   }

   mysql_free_result($fid);

echo "</select></p>";

$qid="SELECT * from loc";

$fid = mysql_query($qid) or die("Query failed : " . mysql_error());

echo "<p><select name=loc>";

while ($row = mysql_fetch_array($fid, MYSQL_NUM)) {

$id = $row[0];

$name = "$row[1]";

echo "<OPTION value=$id>$name</OPTION>";

   }

   mysql_free_result($fid);

echo "</select></p>";

$qid="SELECT * from genre";

$fid = mysql_query($qid) or die("Query failed : " . mysql_error());

echo "<p><select name=genre>";

while ($row = mysql_fetch_array($fid, MYSQL_NUM)) {

$id = $row[0];

$name = "$row[1]";

echo "<OPTION value=$id>$name</OPTION>";

   }

   mysql_free_result($fid);

echo "</select></p>";

echo "<p></p>

  <P><input type=hidden name=ifprn value=N></P>";

echo "<p><input type=submit value=Ok></p>

 </form>";

 }else{

$qid="SELECT MAX(book_id) from book";

$fid = mysql_query($qid) or die("Query failed : " . mysql_error());

$row = mysql_fetch_array($fid, MYSQL_NUM);

$bid = $row[0];

echo "<p><textarea>";

 $aut="SELECT * from auth where (auth_id = '$auth')";

 $autho = mysql_query($aut) or die("Query failed : " . mysql_error());

 $row = mysql_fetch_array($autho, MYSQL_NUM);

 $author ="$row[1] $row[3] $row[2]";

 echo "$author";

echo "</textarea></p>";

echo "<p><TABLE width= 100%><TR><TD>Название</TD><TD>Год издания</TD><TD>Колличество томов</TD><TD>Размещение</TD><TD>Жанр</TD></TR>";

 $b="SELECT * from book where (auth_id = '$auth')";

 $bo = mysql_query($b) or die("Query failed : " . mysql_error());

 while ($boo = mysql_fetch_array($bo, MYSQL_NUM)) {

 $book ="$boo[4] $boo[5] $boo[6]";

 $g="SELECT * from genre where (gen_id = '$boo[2]')";

 $ge = mysql_query($g) or die("Query failed : " . mysql_error());

 $gen = mysql_fetch_array($ge, MYSQL_NUM);

 $l="SELECT * from loc where (loc_id = '$boo[3]')";

 $lo = mysql_query($l) or die("Query failed : " . mysql_error());

 $loc = mysql_fetch_array($lo, MYSQL_NUM);

echo "<TR><TD>$boo[4]</TD><TD>$boo[5]</TD><TD>$boo[6]</TD><TD>$loc[1]</TD><TD>$gen[1]</TD></TR>";

}

echo "</TABLE></p>";

}

/* mysql_close($link);*/

?>

</body>

</html>

Технические требования – наличие SQL-Server, Web с поддержкой Php и Html. Проверка продукта производилась в Web BrowserMozilla” в операционной системе Linux XP-Professional

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

  1.  Microsoft SQL Server 2000. Лизенбардт, Стинглер Москва: Издательство BHV      2001 г.
  2.  Офисное программирование Php В.А. Биллинг. Москва. 1998 г.
  3.  Php..  Москва издательство “Hitech ” 1998 г.

10

  1.  

 

А также другие работы, которые могут Вас заинтересовать

85218. Методические указания: Финансы и кредит 217 KB
  Методические указания по выполнению дипломных работ содержат рекомендации по выполнению дипломной работы: постановка цели дипломной работы, выбор темы, организация работы, процедура защиты дипломной работы в государственной аттестационной комиссии (ГАК).
85219. Расторжение трудового договора по инициативе работодателя, его порядок и условия 627.5 KB
  При разрешении конкретных дел о восстановлении на работе нельзя не учитывать что незаконное расторжение трудового договора контракта нередко создает трудности в трудоустройстве в соответствии с профессиональной квалификацией снижение жизненного уровня в связи с потерей заработка порою на длительное время...
85220. Анализ линейной разветвленной электрической цепи различными методами 425.91 KB
  Целью курсовой работы является овладение некоторыми современными методами анализа линейной электрической цепи при различных воздействиях в переходном и установившемся режимах с применением вычислительной техники.
85223. РОЛЬ МЕДИЦИНСКОЙ СЕСТРЫ ПРИ УХОДЕ ЗА ПАЦИЕНТОМ С ПОРАЖЕНИЕМ ОПОРНО-ДВИГАТЕЛЬНОГО АППАРАТА (АРТРОЗОАРТИТ) 128.13 KB
  Весь лечебный процесс любого заболевания состоит из врачебного и сестринского. Болезни опорно-двигательного аппарата не являются исключением. Заболевания опорно-двигательного аппарата приносят психоэмоциональные и физические страдания, ограничивают физическую активность и способность к передвижению...
85224. Профориентация выпускников средних школ средствами социально-культурной деятельности 1.25 MB
  В последнее время всё чаще возникает проблема безынициативности и отсутствия мотивации у вступивших во взрослую жизнь индивидов. Это чревато низким качеством труда и производимых благ. Люди всё чаще работают не по своей специальности, не развиваются и зачастую не любят свою работу.
85226. Gроектирование и разработкf информационной системы учёта реализации торгового оборудования 1.69 MB
  Своевременное и правильное оформление документов и контроль за каждой операцией поступления оборудования либо других товаров от поставщиков, из переработки и других источников, выявление расхождения фактического наличия и количества, указанного в сопроводительных документах...