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

91 чел.

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

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

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

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

 

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

24701. Защита ротора от перегрузки 38 KB
  Для предотвращения повреждения ротора при перегрузке предусматривается специальная РЗ а также выполняется ограничение длительности форсировки возбуждения. Наиболее полноценную РЗ ротора от перегрузки можно осуществить с помощью реле имеющего характеристику соответствующую перегрузочной характеристике ротора. Выдержка времени первой ступени при одних и тех же значениях тока ротора примерно на 20 меньше выдержки времени второй ступени.
24702. ПОВРЕЖДЕНИЯ И НЕНОРМАЛЬНЫЕ РЕЖИМЫ РАБОТЫ ГЕН-В, ОСНОВНЫЕ ТРЕБОВАНИЯ К ЗАЩИТЕ ГЕНЕРАТОРОВ 41.5 KB
  Обмотка ротора гена находится под сравнительно невысоким напряжением и поэтому ее изоляция имеет значительно больший запас элой прочности чем изоляция статорной обмотки. Однако изза значительных механических усилий обусловленных большой частотой вращения роторов турбогенов относительно часто наблюдаются случаи повреждения изоляции и замя обмотки ротора на корпус т. Замыкание на корпус в одной точке обмотки ротора неопасно так как ток в месте замыкания очень мал и нормальная работа генератора не нарушается. При двойных...
24703. Общие принципы работы реле. Работа реле на переменном токе 91.5 KB
  Общие принципы работы реле. Работа реле на переменном токе. В устройствах РЗ и электрической автоматики применяются реле на базе электромеханических конструкций полупроводниковых приборах из отдельных диодов транзисторов и др. Электромеханические реле обладают большими габаритами значительным потреблением мощности требуют тщательного ухода имеют ограниченное быстродействие и чувствительность.
24704. ИНДУКЦИОННЫЕ РЕЛЕ 220 KB
  ИНДУКЦИОННЫЕ РЕЛЕ Работа индукционных реле основана на взаимодействии переменных магнитных потоков с токами индуктированными ими в подвижной системе реле. Основными элементами реле являются два электромагнита 1 и 2 и подвижная система 3 расположенная в магнитном поле электромагнитов рис. С осью 4 жестко связан подвижный контакт реле 5 замыкающий при повороте неподвижные контакты 6. Момент Мэ приводит в движение подвижную систему 3 которая в зависимости от знака направления Мэ действует в сторону замыкания или размыкания контактов...
24705. МТЗ. Структурная и принципиальная схема 154.5 KB
  МТЗ. Селективность действия МТЗ достигается с помощью выдержки времени. МТЗ являются основным видом РЗ для сетей с односторонним питанием. Соответственно при КЗ в точке К2 быстрее всех сработает МТЗ 3.
24706. Погрешности ТН. Повреждения в цепях ТН 124.5 KB
  Повреждения в цепях ТН. Во вторичных цепях ТН могут возникать повреждения КЗ и обрывы. Для предупреждения ложных действий РЗ предусматриваются блокирующие устройства которые реагируют на появление U0 и I0 при повреждениях в цепях напряжения во вторичных цепях ТН и подают сигнал. Недостатком таких устройств блокировки является то что при КЗ в цепях фазных напряжений они не действуют.
24707. ТН. Схемы соединений 187 KB
  Начала и концы первичных и вторичных обмоток ТН Н н и К к обозначаются так же как и у силовых трансформаторов: у первичной обмотки А и X у вторичной соответственно а и х. Начала каждой обмотки А В С присоединяются к соответствующим фазам ЛЭП а концы X Y Z объединяются в общую точку нейтраль N и заземляются подводится напряжение фазы ЛЭП относительно земли. Заземление нейтрали первичной обмотки ТН и наличие нулевого провода во вторичной цепи являются обязательным условием для получения фазных напряжений относительно земли....
24708. ТТ и их погрешности. Параметры влияющие на уменьшение намагничивающего тока 112.5 KB
  Параметры влияющие на уменьшение намагничивающего тока. ТТ являются вспомогательными элементами с помощью которых ИО РЗ получают информацию о значении фазе и частоте тока защищаемого объекта. Основным требованием к ТТ является точность трансформации контролируемого тока с погрешностями не превышающими допустимых значений. Трансформатор тока рис.
24709. ТИПОВЫЕ СХЕМЫ СОЕДИНЕНИЯ ОБМОТОК ТТ 192.5 KB
  Вторичные обмотки ТТ и обмотки реле соединяются в звезду и связываются их нулевые точки рис. При нормальном режиме и трехфазном КЗ в реле I II и III проходят токи фаз Ia = IA KI Ib = IB KI Ic = IC KI а в нулевом проводе их геометрическая сумма: которая при симметричных режимах равна нулю рис. Соответствующий ему вторичный ток протекает также только через одно реле и замыкается по нулевому проводу.12г ток проходит в двух реле включенных на поврежденные фазы рис.