База данных "Коллекция марок"

 

Минобрнауки России

Государственное образовательное учреждение высшего профессионального образования

Тульский государственный университет

КАФЕДРА ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ









База данных «Коллекция марок»

Пояснительная записка к курсовой работе




Выполнил студент гр.230701:

Гребецкая Е.В.

Проверил:

Новиков А.В.







Тула 2013

Оглавление


Введение

Постановка задачи проектирования

Этап 1. Инфологическое проектирование

Этап 2. Определение требований к операционной обстановке

Этап 3. Выбор СУБД и других инструментальных программных средств

Этап 4. Логическое проектирование

Этап 5 Разработка программного обеспечения

Тестирование

Заключение

Приложение 1

Приложение 2


база данный приложение программное


Введение


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

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

Данная курсовая работа выполняется в рамках дисциплины Безопасность баз данных. Основанием для разработки является задание преподавателя на курсовую работу.

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


Постановка задачи проектирования


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

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

размер марки, цену марки, тему марки. Марки расположены в коллекции по темам. Сведения о положении марки в коллекции включают в себя: номер раздела коллекции (разбит на тома по темам и странам), в котором хранится марка, номер тема, номер страницы и уникальное положение марки на странице. Возможно открытие новых или закрытие старых тем. Место расположения марки может измениться.

Коллекционеру могут потребоваться следующие сведения;

марки каких стран содержатся в данном разделе;

в каком томе коллекции находится марка определенной серии;

в каких местах коллекции находятся марки указанной темы;

какие темы у серий, включающих марки определенного размера;

марка какой страны находится в данном месте.

Коллекционер может вносить следующие изменения:

добавление марки новой темы;

удаление всех марок одной темы;

изменение места расположения марки в коллекции.

Необходимо предусмотреть возможность выдачи справки о странах, чьи марки находятся в данной теме, и отчета по коллекции (количество и названия тем и стран по разделам, количество марок каждой страны для каждой темы, количество страниц в коллекции).


Этап 1. Инфологическое проектирование


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

В процессе работы пользователям может понадобиться следующее:

Информация о том, марки каких стран содержатся в данном разделе;

Информация о том, в каком томе коллекции находится марка определенной серии;

Информация о том, в каких местах коллекции находятся марки указанной темы;

Получение информации о темах серий, включающих марки определенного размера;

Определить, марка какой страны находится в данном месте;

- Добавление марки новой темы;

Удаление всех марок одной темы;

Изменение места расположения марки в коллекции;

Выдача справки и отчёта по коллекции.

Коллекционер должен иметь возможность получать сведения о хранящихся в коллекции марках. Для этого введем сущность МАРКА,

набор кортежей которой должен отражать все необходимые сведения о положении марки в коллекции. Атрибутами сущности МАРКА являются:

номер марки, страна выпуска марки, номер серии, тема серии, год выпуска, цвет марки,

размер марки, цена марки, тема марки.

Каждая марка распологается в определенном месте коллекции. Введем следующую сущность: РАСПОЛОЖЕНИЕ МАРКИ. Ее атрибутами будут: номер раздела коллекции (разбит на тома по темам и странам), в котором хранится марка, номер тема, номер страницы и уникальное положение марки на странице.

Итоговая модель «сущность-связь» представлена на рис.1.


Рисунок 1. Модель сущность - связь


Этап 2. Определение требований к операционной обстановке


Разрабатываемая БД невелика по объему хранимых данных. Определим предполагаемые максимальные значения хранимых данных:

Марки-500

Разделы - 50;

Тома - 100;

Проанализировав максимальные значения хранимых данных и приблизительно оценив количество байт предполагаемых для хранения одной записи в каждой из таблиц, можно сказать, что объем всей информации не превысит 1 Гб.

Предполагается следующий характер запросов к данным:

обновление отдельных записей;

добавление новых записей;

удаление записей;

выборка из БД.

Интенсивность запросов на обновление и удаление записей очень мала. Интенсивность запросов на добавление записей и выборку из БД несколько больше. Жестких требований к времени отклика БД на запросы пользователя не предъявляется.

Из вышесказанного следует, что для работы с БД требуется IBM-совместимый компьютер с тактовой частотой процессора не менее 2ГГц, ОЗУ объемом не менее 1Гб, НЖМД объемом не менее 80Гб с установленной операционной системой не нижеMicrosoftWindowsXPProfessionalSP3.


Этап 3. Выбор СУБД и других инструментальных программных средств


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

PostgreSQL - свободная <#"183" src="doc_zip2.jpg" />


Таблица Серия:


Таблица ТОМ:

Этап 5 Разработка программного обеспечения


Программное обеспечение разрабатывается на языке программирования PHP. В качестве инструментального программного средства для разработки Web-страниц используются языки WEB-программирования PHP и HTML.

Для того, чтобы иметь возможность работать с разработанной БД, необходимо добавить функцию pg_connect().

Чтобы вывести содержимое таблицы БД, либо результата SQL запроса к БД, используется функция pg_query().

На форме приложения для манипулирования данными используются кнопки, при нажатии которых выполняется тот или иной запрос.

Структура приложения

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

На главной странице приложения располагаются кнопки и ссылки на другие страницы, выполняющие непосредственно запросы SQL.

Структура главной страницы:

- Сведения, доступные пользователю:

Cтрана <#"146" src="doc_zip5.jpg" />


Полученные данные:


В каком томе коллекции находится марка определенной серии:


Полученные данные:



В каких местах коллекции находятся марки указанной темы:



Полученные данные:


Какие темы у серий марок определенного размера:



Полученные данные:



Марка какой страны находится в данном месте:


Результат:



Выдача справки: введем тему марки «Искусство»:



Получение отчета по коллекции:


Просмотр информации обо всех марках:




Заключение


В ходе выполнения задания на курсовую работу были освоены основные принципы проектирования и разработки баз данных. Рассмотрены некоторые прикладные вопросы, в частности, разработка Web-страниц.

Разработанная БД удовлетворяет всем основным требованиям, предъявляемым к ПО такого рода:

корректность схемы БД, т.е. база должна быть гомоморфным образом моделируемой ПО, где каждому объекту ПО соответствуют данные в памяти ЭВМ, а каждому процессу - адекватные процедуры обработки данных;

обеспечение ограничений (на объёмы внешней и оперативной памяти и другие ресурсы вычислительной системы);

эффективность функционирования (соблюдение ограничений на время реакции системы на запрос и обновление данных);

защита данных (от сбоев и несанкционированного доступа).

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

Приложение 1


Страница knopka.php


Приложение 2.

.php

<html>

<head>

<title>database</title>

</head>

<body>

<table width="100%" >

<h1><i><align = "center" >База данных "Коллекция марок"</i><h1>

<tr><td align = "center" bgcolor = "#ccffff">

<h2> Cведения, доступные пользователю </h2>

</td><td bgcolor = "#ccffff"><h2>Выдача справки</h2></td><tr>

<td align = "left" width = "60%" >

<a href=country.php><?= "Cтрана" ?></a> - марки каких стран содержатся в данном разделе;

</td>

<td align = "left" bgcolor = "#ccffff"> Список стран, чьи марки находятся в данной теме</td>

</tr>

<td align = "left" width = "60%">

<a href=tom.php><?= "Том" ?></a> - в каком томе коллекции находится марка определенной серии;

</td><td align = "center">

<form action="db_spravka.php" method="post">

Введите тему марки <input type="text" name="col">

</td></tr>

<td align = "left" width = "60%">

<a href=place.php><?= "Расположение" ?></a> - в каких местах коллекции находятся марки указанной темы;

</td><td align = "center">

<input type="submit">

<br>

</form>

</td></tr>

<tr>

<td align = "left" width = "60%">

<a href=theme.php><?= "Тема" ?></a> - какие темы у серий, включающих марки определенного размера;

</td>

<td bgcolor = "#ccffff">

<h2> Получение отчета по коллекции </h2> Kоличество и названия тем и стран по разделам, количество марок каждой страны для каждой темы, количество страниц в коллекции

</td></tr><tr>

<td align = "left" width = "60%">

<a href=cp.php><?= "Cтрана расположения" ?></a> - марка какой страны находится в данном месте

</td>

</tr><td></td><td align = "center">

<form action="db_otcet.php" method="post">

<input type="submit">

</form></td>

</tr>

</table>

<table width = "100%">

<tr align = "center" bgcolor = "#ffffcc">

<h2><i> Пользователь может вносить следующие изменения: </i></h2>

<td align = "center" width = "20%" bgcolor = "#ccffff" ><h3> Удаление марок одной темы</h3>

</td><td align = "center" width = "20%" bgcolor = "#ccffff"><h3> Добавление марки новой темы</h3>

</td><td align = "center" width = "20%" bgcolor = "#ccffff"><h3> Изменение расположения марки</h3>

</td><td align = "center" width = "40%" bgcolor = "#ccffff"><h3> Просмотреть информацию обо всех марках</h3>

</td><td align = "center">

</td></tr>

<td align = "center" bgcolor = "#ffffcc" width = "20%">

<form action="udalit.php" method="post">

Введите тему марки:<br>

<input type="text" name="col8">

<input type="submit">

<br>

</form>

</td>

<td align = "center" bgcolor = "#ffffcc" width = "20%">

<form action="dobavit1.php" method="post" >

<input type="submit">

</form>

</td>

<td align = "center" bgcolor = "#ffffcc" width = "20%">

<form action="replace.php" method="post">

Введите номер марки:<br>

<input type="text" name="col8"><br>

Введите новое расположение:<br>

страница: <input type="text" name="col9">

место: <input type="text" name="col10">

<input type="submit">

<br>

</form>

</td><td align = "center" >

<form action="marka.php" method="post" >

<input type="submit">

</form></td>

</tr>

</table>

<td>

</table>

</body>

</html>.php

<?

$server = "localhost";

$host = "5432";

$database = "postgres";

$psw = "postgrespass";

$conn = pg_connect("host=localhost port=5432 dbname=postgres user=postgres password=postgrespass")die("could not establish a connection ");

""

?>

<html>

<head></head>

<body>

<?

$k="'";

$col1 = $_POST['col'];

$bla="SELECT DISTINCT number, tom_number";

$bla = $bla." FROM shema.mark WHERE number_seria IN (SELECT number_seria FROM shema.seria WHERE seria_theme =";

$bla = $bla.$k.$col1.$k.")" ;

$sql = pg_query($conn, $bla);

if (!$sql){"произошла ошибка((((... \n";;

}

?>

<table width="30%">

<tr>

<td><ins>Номер марки</ins> </td><td><ins>Номер тома </ins></td></tr>

<?($row = pg_fetch_row($sql)) {

?>

<tr><td><?

$row[0];

?></td><td><?$row[1];

?></td></tr><?

}

?></table><form action="knopka.php" method="post">

<input type="submit">

</form>

<form action="tom.php" method="post">

<input type="submit">

</form><?_close($conn);

?>

</body>

</html>

.php

<?

$server = "localhost";

$host = "5432";

$database = "postgres";

$psw = "postgrespass";

$conn = pg_connect("host=localhost port=5432 dbname=postgres user=postgres password=postgrespass")die("could not establish a connection ");

""

?>

<html>

<head></head>

<body>

<?

$k=")";

$col1 = $_POST['col'];

$bla="SELECT DISTINCT country";

$bla = $bla." FROM shema.tom WHERE tom_number IN (SELECT tom_number FROM shema.mark WHERE razdel_number = ";

$bla = $bla.$col1.$k;

$sql = pg_query($conn, $bla);

if (!$sql){"произошла ошибка((((... \n";;

}

?>

<table width="30%">

<tr>

<td><ins>Cтраны, содержащиеся в данном разделе</ins> </tr>

<?($row = pg_fetch_row($sql)) {

?>

<tr><td><?$row[0];

?></td></tr><?

}

?></table><form action="knopka.php" method="post">

<input type="submit">

</form>

<form action="country.php" method="post">

<input type="submit">

</form><?_close($conn);

?>.php

<?

$server = "localhost";

$host = "5432";

$database = "postgres";

$psw = "postgrespass";

$conn = pg_connect("host=localhost port=5432 dbname=postgres user=postgres password=postgrespass")die("could not establish a connection ");

""

?>

<html>

<head></head>

<body>

<?

$k="'";

$col1 = $_POST['col'];

$bla="SELECT DISTINCT number, page_number, place";

$bla = $bla." FROM shema.mark WHERE tom_number IN (SELECT tom_number FROM shema.tom WHERE theme =";

$bla = $bla.$k.$col1.$k.")" ;

$sql = pg_query($conn, $bla);

if (!$sql){"произошла ошибка((((... \n";;

}

?>

<table width="50%">

<tr>

<td><ins>Номер марки</ins></td> <td><ins> Страница </ins></td> <td><ins>Положение на странице</ins></td></tr>

<?

($row = pg_fetch_row($sql)) {

?>

<tr><td><?

$row[0];

?></td><td><?$row[1];

?></td><td><?$row[2];

?></td></tr>

<?

}

?></table><form action="knopka.php" method="post">

<input type="submit">

</form>

<form action="place.php" method="post">

<input type="submit">

</form><?_close($conn);

?>.php

<?

$server = "localhost";

$host = "5432";

$database = "postgres";

$psw = "postgrespass";

$conn = pg_connect("host=localhost port=5432 dbname=postgres user=postgres password=postgrespass")die("could not establish a connection ");

""

?>

<html>

<head></head>

<body>


<?

$k="'";

$col_1 = $_POST['col1'];

$col_2 = $_POST['col2'];

$col_3 = $_POST['col3'];

$col_4 = $_POST['col4'];

$col_5= $_POST['col5'];

$col_6 = $_POST['col6'];

$col_7 = $_POST['col7'];

$col_8 = $_POST['col8'];

$col_9 = $_POST['col9'];

$col_10= $_POST['col10'];

$col_11 = $_POST['col11'];

$col_12= $_POST['col12'];

$col_13 = $_POST['col13'];

$bla2="INSERT INTO shema.mark (number, year, color, size, number_seria, razdel_number, tom_number, page_number, place) VALUES (";

$bla2 = $bla2.$col_1.", ";

$bla2 = $bla2.$col_2.", ";

$bla2 = $bla2.$k.$col_3.$k.", ";

$bla2 = $bla2.$k.$col_4.$k.", ";

$bla2 = $bla2.$col_6.", ";

$bla2 = $bla2.$col_7.", ";

$bla2 = $bla2.$col_8.", ";

$bla2 = $bla2.$col_9.", ";

$bla2 = $bla2.$col_10.")";

$sql2 = pg_query($conn, $bla2);$bla2;

_close($conn);

?>


Минобрнауки России Государственное образовательное учреждение высшего профессионального образования Тульский государственный университет КАФЕДРА ВЫЧИСЛ

Больше работ по теме:

База данных "Сериалы"
Курсовая работа (т)
База данных для библиотеки
Курсовая работа (т)
База данных учета размещения и услуг гостиницы-отеля
Курсовая работа (т)
Базы данных на Delphi
Курсовая работа (т)
Блочные методы шифрования
Курсовая работа (т)

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ