Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 30% recurring commission
- Выплаты в USDT
- Вывод каждую неделю
- Комиссия до 5 лет за каждого referral
Московский государственный институт электроники и математики
(технический университет)
Курсовая работа
по дисциплине “Базы данных”
Выполнил студент группы С-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 Browser “Mozilla” в операционной системе 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 Browser “Mozilla” в операционной системе Linux XP-Professional
Список использованной литературы
1. Microsoft SQL Server 2000. Лизенбардт, Стинглер Москва: Издательство BHV 2001 г.
2. Офисное программирование Php . Москва. 1998 г.
3. Php.. Москва издательство “Hitech ” 1998 г.


КодЖанра
