База данных "Коллекция марок"
Определение требований к операционной обстановке. Инфологическое, логическое проектирование. Разработка программного обеспечения. Структура приложения, его тестирование. Выбор СУБД и других инструментальных программных средств. Описание схемы базы данных.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 25.12.2013 |
Размер файла | 2,4 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru
Размещено на http://www.allbest.ru
Минобрнауки России
Государственное образовательное учреждение высшего профессионального образования
Тульский государственный университет
КАФЕДРА ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ
База данных «Коллекция марок»
Пояснительная записка к курсовой работе
Выполнил студент гр.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 -- свободная объектно-реляционная система управления базами данных (СУБД).
Существует в реализациях для множества UNIX-like платформ, включая AIX, различные BSD-системы, HP-UX, IRIX, Linux, MacOS X,Solaris/OpenSolaris, Tru64, QNX, а также для Microsoft Windows.
В соответствии с выбранной СУБД решено выбрать для разработки язык программирования PHP. Рациональность выбора объясняется высоким уровнем взаимной интеграции СУБД и среды разработки.
Этап 4. Логическое проектирование
На этапе логического проектирования разрабатывается логическая структура БД, соответствующая инфологической модели ПО. Решение этой задачи существенно зависит от модели данных, поддерживаемой выбранной СУБД. Результатом выполнения этого этапа являются схемы БД концептуального и внешнего уровней архитектуры, составленные на языках определения данных (DDL) выбранной СУБД.
При этом разработка логической структуры базы данных должна производиться с учетом соблюдения условий нормализации отношений.
Первая НФ:
Перечислим все атрибуты, объединив все отношения в одно:
МАРКА
Номер марки
Страна
Номер серии
Тема серии
Год выпуска
Цвет
Размер
Цена
Тема марки
Номер раздела
Номер тома
Номер страницы
Уникальное положение марки
Данное отношение не содержит сложных атрибутов, следовательно, находится в первой нормальной форме.
Вторая НФ:
Отношение находится во второй НФ, если оно приведено к первой НФ и каждый неключевой атрибут функционально полно зависит от составного ключа.
Имеющееся отношение функционально полно зависит от номера марки (ключа), то есть каждому неключевому атрибуту в любой момент времени соответствует единственное значение ключевого атрибута. Отсюда следует, что данное отношение приведено ко второй НФ.
Третья НФ:
Отношение приведено к третьей НФ, если оно не содержит тразитивных зависимостей.
В приведенном отношении имеются транзитивные зависимости.
Атрибут «Тема серии» зависит от атрибута «Номер серии», который, в свою очередь, зависит от атрибута «Номер марки».
Для приведения оношения к третьей НФ выделим из него отношение СЕРИЯ:
СЕРИЯ
Номер серии
Тема серии
Атрибут «Номер тома» зависит от атрибутов «Страна» и «Тема марки». Выделим отношение ТОМ:
Номер тома
Страна
Тема
Имеем три отношения:
МАРКА
Номер марки
Номер серии
Год выпуска
Цвет
Размер
Цена
Номер раздела
Номер тома
Номер страницы
Уникальное положение марки
СЕРИЯ
Номер серии
Тема серии
ТОМ
Страна
Тема марки
Номер тома
Описание схемы БД
После приведения всех отношений к третьей нормальной форме получена структура БД, удовлетворяющая всем требованиям на хранимые данные. БД будет состоять из трёх таблиц.
Таблица МАРКА:
Таблица Серия:
Таблица ТОМ:
Этап 5 Разработка программного обеспечения
Программное обеспечение разрабатывается на языке программирования PHP. В качестве инструментального программного средства для разработки Web-страниц используются языки WEB-программирования PHP и HTML.
Для того, чтобы иметь возможность работать с разработанной БД, необходимо добавить функцию pg_connect().
Чтобы вывести содержимое таблицы БД, либо результата SQL запроса к БД, используется функция pg_query().
На форме приложения для манипулирования данными используются кнопки, при нажатии которых выполняется тот или иной запрос.
Структура приложения
Приложение состоит из отдельных модулей, каждый из которых отвечает за выполнение определенного запроса. Эти модули объединяются в одно приложение с помощью специального скрипта.
На главной странице приложения располагаются кнопки и ссылки на другие страницы, выполняющие непосредственно запросы SQL.
Структура главной страницы:
- Сведения, доступные пользователю:
Cтрана - марки каких стран содержатся в данном разделе;
Том - в каком томе коллекции находится марка определенной серии;
Расположение - в каких местах коллекции находятся марки указанной темы;
Тема - какие темы у серий, включающих марки определенного размера;
Cтрана расположения - марка какой страны находится в данном месте.
- Пользователь может вносить следующие изменения:
Изменение месторасположения марки;
Удаление всех марок одной темы;
Добавление марки в коллекцию.
- Выдача справки о коллекции
Список стран, чьи марки находятся в данной теме;
- Получение отчета по коллекции
Kоличество и названия тем и стран по разделам, количество марок каждой страны для каждой темы, количество страниц в коллекции;
- Просмотр информации обо всех марках.
При переходе по ссылкам и нажатии кнопок осуществляется выполнение скриптов, отвечающих за выполнение запросов.
Тестирование
Получение информации о странах, чьи марки находятся в определенном разделе:
Полученные данные:
В каком томе коллекции находится марка определенной серии:
Полученные данные:
В каких местах коллекции находятся марки указанной темы:
Полученные данные:
Какие темы у серий марок определенного размера:
Полученные данные:
Марка какой страны находится в данном месте:
Результат:
Выдача справки: введем тему марки «Искусство»:
Получение отчета по коллекции:
Просмотр информации обо всех марках:
Заключение
В ходе выполнения задания на курсовую работу были освоены основные принципы проектирования и разработки баз данных. Рассмотрены некоторые прикладные вопросы, в частности, разработка Web-страниц.
Разработанная БД удовлетворяет всем основным требованиям, предъявляемым к ПО такого рода:
корректность схемы БД, т.е. база должна быть гомоморфным образом моделируемой ПО, где каждому объекту ПО соответствуют данные в памяти ЭВМ, а каждому процессу - адекватные процедуры обработки данных;
обеспечение ограничений (на объёмы внешней и оперативной памяти и другие ресурсы вычислительной системы);
эффективность функционирования (соблюдение ограничений на время реакции системы на запрос и обновление данных);
защита данных (от сбоев и несанкционированного доступа).
В соответствии с заданием, БД была наполнена необходимыми сведениями по предметной области, все запросы протестированы на правильность получаемого результата.
Приложение 1
Страница knopka.php
Приложение 2.
Knopka.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" class="submit" value="Вывести данные">
<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" class="submit" value=" Отчёт по коллекции">
</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" class="submit" value="Удалить марки">
<br>
</form>
</td>
<td align = "center" bgcolor = "#ffffcc" width = "20%">
<form action="dobavit1.php" method="post" >
<input type="submit" class="submit" value=" Добавить марку" >
</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" class="submit" value="Изменить расположение">
<br>
</form>
</td><td align = "center" >
<form action="marka.php" method="post" >
<input type="submit" class="submit" value=" Просмотреть" >
</form></td>
</tr>
</table>
<td>
</table>
</body>
</html>
Db1.php
<?
$server = "localhost";
$host = "5432";
$database = "postgres";
$psw = "postgrespass";
$conn = pg_connect("host=localhost port=5432 dbname=postgres user=postgres password=postgrespass")
or 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){
echo "произошла ошибка((((... \n";
exit;
}
?>
<table width="30%">
<tr>
<td><ins>Номер марки</ins> </td><td><ins>Номер тома </ins></td></tr>
<?
while ($row = pg_fetch_row($sql)) {
?>
<tr><td><?
echo $row[0];
?></td><td><?
echo $row[1];
?></td></tr><?
}
?></table><form action="knopka.php" method="post">
<input type="submit" class="submit" value="Главная страница">
</form>
<form action="tom.php" method="post">
<input type="submit" class="submit" value=" <- Назад">
</form><?
pg_close($conn);
?>
</body>
</html>
Db.php
<?
$server = "localhost";
$host = "5432";
$database = "postgres";
$psw = "postgrespass";
$conn = pg_connect("host=localhost port=5432 dbname=postgres user=postgres password=postgrespass")
or 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){
echo "произошла ошибка((((... \n";
exit;
}
?>
<table width="30%">
<tr>
<td><ins>Cтраны, содержащиеся в данном разделе</ins> </tr>
<?
while ($row = pg_fetch_row($sql)) {
?>
<tr><td><?
echo $row[0];
?></td></tr><?
}
?></table><form action="knopka.php" method="post">
<input type="submit" class="submit" value="Главная страница">
</form>
<form action="country.php" method="post">
<input type="submit" class="submit" value=" <- Назад">
</form><?
pg_close($conn);
?>
Db2.php
<?
$server = "localhost";
$host = "5432";
$database = "postgres";
$psw = "postgrespass";
$conn = pg_connect("host=localhost port=5432 dbname=postgres user=postgres password=postgrespass")
or 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){
echo "произошла ошибка((((... \n";
exit;
}
?>
<table width="50%">
<tr>
<td><ins>Номер марки</ins></td> <td><ins> Страница </ins></td> <td><ins>Положение на странице</ins></td></tr>
<?
while ($row = pg_fetch_row($sql)) {
?>
<tr><td><?
echo $row[0];
?></td><td><?
echo $row[1];
?></td><td><?
echo $row[2];
?></td></tr>
<?
}
?></table><form action="knopka.php" method="post">
<input type="submit" class="submit" value="Главная страница">
</form>
<form action="place.php" method="post">
<input type="submit" class="submit" value=" <- Назад">
</form><?
pg_close($conn);
?>
Dobavit.php
<?
$server = "localhost";
$host = "5432";
$database = "postgres";
$psw = "postgrespass";
$conn = pg_connect("host=localhost port=5432 dbname=postgres user=postgres password=postgrespass")
or 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);
echo $bla2;
pg_close($conn);
?>
Размещено на Allbest.ru
Подобные документы
Этапы проектирования базы данных. Инфологическое проектирование. Определение требований к операционной обстановке. Выбор СУБД и других программных средств. Логическое и физическое проектирование реляционной базы данных. Технология доступа к информации.
курсовая работа [2,3 M], добавлен 06.10.2016Инфологическое проектирование, анализ информационных задач и круга пользователей системы, определение требований к операционной обстановке. Объем внешней памяти занимаемый модулями СУБД и отводимой под данные. Логическое и физическое проектирование БД.
курсовая работа [314,9 K], добавлен 03.04.2010Разработка базы данных для автоматизации учета и хранения сведений о заявках от работодателей. Проектирование приложения в СУБД Access. Описание запросов, отчетов и представлений данных. Интерфейс, условия выполнения и тестирование программного продукта.
курсовая работа [3,7 M], добавлен 05.04.2012Цель создания базы данных, предполагаемые задачи и функции. Описание используемого программного обеспечения. Разработка структуры и схемы базы данных, инфологическое проектирование и перечень SQL-запросов. Разграничение прав доступа, администрирование.
курсовая работа [2,2 M], добавлен 15.04.2012Типы данных, использованные при создании базы данных. Структура программы, используемые переменные, выражения и указатели. Концептуальное (инфологическое), логическое (даталогическое) и физическое проектирование. Тестирование программы и описание полей.
курсовая работа [398,4 K], добавлен 16.07.2012Реализация приложения "Книжный магазин" средствами систем управления базами данных. Проектирование структуры базы данных, определение сущности и атрибутов. Логическое проектирование базы данных и реализация базы данных в СУБД Microsoft Office Access.
курсовая работа [7,8 M], добавлен 13.02.2023Анализ и оценка эффективности существующей системы обработки информации. Выбор технических и программных средств. Описание этапов проектирования базы данных "Аудиотека" и ее особенностей. Разработка инфологической модели и программного приложения.
курсовая работа [877,9 K], добавлен 06.06.2013Создание базы данных, хранящей и обрабатывающей информацию о работе мебельного магазина. Описание предметной области, инфологическое, логическое и физическое проектирование. Разработка руководства пользователя. Назначение связей, нормализация отношений.
курсовая работа [2,7 M], добавлен 02.12.2012- Создание базы данных автомобилестроительного предприятия в виде настольного приложения на языке Java
Разработка логической схемы базы данных автомобилестроительного предприятия. Инфологическое моделирование системы. Создание графического интерфейса пользователя для базы данных средствами языка программирования Java. Тестирование программных средств.
курсовая работа [2,3 M], добавлен 16.12.2013 Назначение базы данных для обеспечения работы автобусного парка. Основные возможности админпанели. Выполняемые базой данных и приложением функции. Инфологическое моделирование данных. Описание разработанного web-приложения. Проектирование базы данных.
курсовая работа [2,2 M], добавлен 01.02.2013