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

115 чел.

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

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

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

Выполнил студент группы С-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.  

 

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

10775. Оформление научных документов (рефератов, курсовых, дипломных работ) 320.5 KB
  Лабораторная работа №9 Оформление научных документов рефератов курсовых дипломных работ Цель: Освоить правила создания оглавлений сносок ссылок на литературу подписей рисунков и таблиц для оформления научных работ в Microsoft Word. Рекомендации к выполнению Пользов
10776. Шаблоны и стили оформления в MS Word 296.5 KB
  Лабораторная работа №10 Шаблоны и стили оформления в MS Word Цель: Иметь представление о шаблонах и стилях в оформлении документов научиться создавать свои шаблоны Microsoft Word. Рекомендации к выполнению Деловые документы отчеты письма приглашения бланки и пр. часто име...
10777. Библиотекарь отдела обслуживания: профессиональные требования 287 KB
  Разработке теоретических, методических и практических проблем библиотечного обслуживания уделялось внимание на всех этапах развития отечественного библиотековедения. Большой интерес представляют современные концепции библиотечного обслуживания
10778. Теоретическое исследование влияния режимов сварки на распределение температур в свариваемом изделии 300.5 KB
  Цель работы: Приобрести навыки теоретического исследования с использованием персонального ЭВМ влияние режимов сварки на распределение температур в свариваемом изделии. Оборудование: Персональная ЭВМ. Исходные данные: Материал ...
10779. Исследование влияния режимов сварки плавлением на температурное поле 628.5 KB
  Исследование влияния режимов сварки плавлением на температурное поле индекс Т1 по дисциплине Теория сварочных процессов Цель работы: приобрести навыки исследования влияния режимов сварки на распределения температур в свариваемом изделии с использованием перс
10780. Исследование температурного поля при сварке разнородных металлов с использованием метода электромоделирования 6.15 MB
  Отчет по лабораторной работе №3 Исследование температурного поля при сварке разнородных металлов с использованием метода электромоделирования по дисциплине Теория сварочных процессов Цель работы: понять физический механизм лежащий в основе особенносте...
10781. Экспериментальные исследования процесса распределения тепла при сварке 2.43 MB
  Отчет по лабораторной работе №4 Экспериментальные исследования процесса распределения тепла при сварке по дисциплине Теория сварочных процессов Цель работы: приобрести опят и навыки экспериментального определения температуры в ходе нагрева и охлаждения ...
10782. Захід. У світі казок Виховний захід 59 KB
  Виховний захід для учнів ІІ VI класів У світі казок. Розроблений і складений учителем англійської мови загальноосвітнього навчального закладу № 14 м. Херсона Хоменко Н.Б. Питання про роль позакласної роботи в учбовому процесі про вплив її на мотивацію вивче...
10783. Арифметические основы цифровой вычислительной техники 332.5 KB
  Арифметические основы цифровой вычислительной техники Методические указания для выполнения лабораторной работы по дисциплине Вычислительные машины системы и сети УДК681.3.07 Арифметические основы цифровой вычислительной техники: Метод. указания к лаб. р