МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное образовательное учреждение
высшего профессионального образования
"Чувашский государственный университет им. И.Н. Ульянова"
Факультет информатики и вычислительной техники
Кафедра "Информационно-вычислительных систем"
Дисциплина "Базы данных"
Пояснительная записка к курсовой работе
Тема: "Красная Книга"
Выполнил:
студент гр. ИВТ 11-07
Сидоров В.Б.
Проверил:
Буланкина Е.Ю.
Чебоксары – 2010
Содержание
1. Задание
2. Анализ. Предметная область
2.1 Перечень и описание функций приложения обработки базы данных
2.2 Перечень и описание сущностей и атрибутов базы данных
2.3 Перечень и описание всех атрибутов базы данных
3. Проектирование. Нормализация базы данных. Схема данных
3.1 Пошаговое описание нормализации базы данных (методом ER-диаграмм)
3.2 Схема данных
3.3 Перечень и описание таблиц и их полей (с указанием типов данных и ограничений) в сводной таблице
4. Программная часть. Руководство программиста
4.1 Входные и выходные данные
4.1.1 Словесное описание
4.1.2 Описание функций
5. Сопровождение. Руководство пользователя
5.1 Описание
6. Список использованной литературы
7. Приложение
1. Задание
Красная Книга
В Красной Книге хранится информация о животном или растении: реестровый номер, русское и латинское название животного (т.е. вид и род), дата занесения объекта в Красную Книгу. Также хранятся данные о том, к какому царству, классу, семейству, роду и виду принадлежит объект. Также об объекте известна популяция в отдельном регионе.
Реализованы функции просмотра перечня, просмотра данных о популяциях, поиск по ключевому слову, добавление в базу
2. Анализ. Предметная область
2.2 Перечень и описание функций приложения обработки базы данных
1. Хранение информации о животных и растениях
2. Хранение данных о популяциях
3. Занесение и хранение информации об объектах
4. Поиск по заданному параметру: реестровый номер, русское название, латинское название, дата занесения в реестр, царство, класс и т.д.
2.2 Перечень и описание сущностей базы данных
Объект. Каждое создание имеет уникальный реестровый номер, русское и латинское название, дату занесения, принадлежит к периодическим группам, известна их популяция и ареал обитания.
Регионы. Экземпляр сущности определяется уникальным номером (номера, как на автономерах) и собственно названием региона.
Царство. Экземпляр сущности определяется уникальным номером и собственно названием царства.
Класс. Экземпляр сущности определяется уникальным номером и собственно названием класса.
Семейство. Экземпляр сущности определяется уникальным номером и собственно названием семейства.
Род. Экземпляр сущности определяется уникальным номером и собственно названием рода.
Вид. Экземпляр сущности определяется уникальным номером и собственно названием вида.
2.3 Перечень и описание всех атрибутов базы данных
1 | ID_Creature | Реестровый номер существа |
2 | Rus_Name | Русское название существа |
3 | Lat_Name | Латинское название существа |
4 | Date | Дата занесения существа в реестр |
5 | ID_Kingdom | Код царства |
6 | Name_Kingdom | Царство |
7 | ID_Class | Код класса |
8 | Name_Class | Класс |
9 | ID_Family | Код семейства |
10 | Name_Family | Семейство |
11 | ID_Sort | Код рода |
12 | Name_Sort | Род |
13 | ID_Kind | Код вида |
14 | Name_Kind | Вид |
15 | ID_Region | Код региона |
16 | Name_Region | Регион |
17 | Population | Численная оценка популяции |
3. Проектирование. Нормализация базы данных. Схема данных
3.1 Пошаговое описание нормализации базы данных (методом ER-диаграмм)
Нормализуем каждую связь используя соответствующие правила нормализации ER-диаграмм. Врезультатеполучимготовуюсхемуданных.
3.2 Схемаданных
MAIN(ID_Creature, Rus_Name, Lat_Name, Date, ID_Kingdom, ID_Class, ID_Family, ID_Sort, ID_Kind,ID_Region, Population)
Regions(ID_Region, Region_Name)
Kingdom(ID_Kingdom, Kingdom_Name)
Class(ID_Class, Class_Name)
Family(ID_Family, Family_Name)
Regions(ID_Sort, Sort_Name)
Regions(ID_Kind, Kind_Name)
3.3 Перечень и описание таблиц и их полей в сводной таблице
MAIN | ||
ID_Creature | Реестровый номер | Int (11) |
Rus_Name | Номер группы | Int (11) |
Lat_Name | ФИО студента | Varchar(77) |
Date | Номер предприятияпрохождения практики | Date |
ID_Kingdom | Int (11) | |
ID_Class | Int (11) | |
ID_Family | Int (11) | |
ID_Sort | Int (11) | |
ID_Kind | Int (11) | |
ID_region | Int (11) | |
Population | Int (11) | |
Regions | ||
ID_Region | Номер региона | Int (11) |
Name_Region | Название региона | Varchar(77) |
Kingdom | ||
ID_Kingdom | Код царства | Int (11) |
Name_Kingdom | Царство | Varchar(77) |
Class | ||
ID_Class | Код класса | Int (11) |
EntName | Класс | Varchar(77) |
Family | ||
ID_Family | Код семейства | Int (11) |
Name_Family | Семейство | Varchar(77) |
Sort | ||
ID_Sort | Код рода | Int (11) |
Name_Sort | Род | Varchar(77) |
Kind | ||
ID_Kind | Код вида | Int (11) |
Name_Kind | Вид | Varchar(77) |
4. Программная часть. Руководство программиста
4.2. Входные и выходные данные
4.1.1 Словесное описание
Стартовая страница содержит ряд ссылок, открывающих соответствующие страницы
<ahref="index.php">На главную </a> | <ahref="listing.php"> Перечень </a> | <ahref="search.php"> Поиск </a> | <ahref="add.php"> Регистрация </a> |
Страница "Перечень" (listing.php) отображает список животных и растений, занесённых в Красную Книгу:
<?php
require_once("connection.php");
$sql="SELECT Rus_Name, Lat_Name, Date, Name_Kingdom, Name_Class, Name_Family, Name_Sort FROM (((MAIN join 1_Kingdom on MAIN.ID_Kingdom = 1_Kingdom.ID_Kingdom) join 2_Class on MAIN.ID_Class = 2_Class.ID_Class) join 3_Family on MAIN.ID_Family = 3_Family.ID_Family) join 4_Sort on MAIN.ID_Sort = 4_Sort.ID_Sort";
$result = mysql_query($sql);
print ("<div align=center><H1> Списокохраняемыхживотныхирастений </H1></div><br>");
print ("<div align=center><table border = 1>");
echo "<tr><td> Русское название </td><td>Латинское название </td><td> Дата регистрации </td><td> Царство </td><td> Класс </td><td> Семейство </td><td> Род </td></tr>";
if ($myrow = mysql_fetch_array($result))
{
do
{
printf("<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>", $myrow["Rus_Name"], $myrow["Lat_Name"], $myrow["Date"], $myrow["Name_Kingdom"], $myrow["Name_Class"], $myrow["Name_Family"], $myrow["Name_Sort"]);
}
while ($myrow = mysql_fetch_array($result));
}
?>
На странице также реализована возможность занесения новых записей. Кнопка "Внести "
Обработчик кнопки "добавить" вносит изменения в базу:
<?php
if (@$new1)
{
?>
<div align=center>
<FORM name="mean" method="post" action="add.php">
<br>
Введите реестровый номер:<input type="text" name = "Number"> <br>
Введите русское название:<inputtype="text" name = "RN"> <br>
Введите латинское название:<inputtype="text" name = "LN"> <br>
Введите текущую дату в формате ГГГГ:ММ:ДД :<inputtype="text" name = "Date"> <br>
Определите царство:<input type="text" name = "Kingdom"> <br>
Определите класс:<input type="text" name = "Class"> <br>
Определите семейство:<input type="text" name = "Family"> <br>
Определите род:<input type="text" name = "Sort"> <br>
Определите вид:<input type="text" name = "Kind"> <br>
Введите название региона:<input type="text" name = "Region"> <br>
Введите популяцию:<input type="text" name = "Population"> <br>
<br>
<input type="submit" name = "stnew" value="Подтвердить"><br>
</FORM>
</div>
<?php
}
if(@$stnew)
{
if (empty($Number))
{
print("<div align=center><h1>·ЗАПОЛНИТЕ ЯЧЕЙКУ!!!</div></h1>") ;
exit();
}
if (empty($RN))
{
print("<div align=center><h1>·ЗАПОЛНИТЕ ЯЧЕЙКУ!!!</div></h1>") ;
exit();
}
if (empty($LN))
{
print("<div align=center><h1>·ЗАПОЛНИТЕ ЯЧЕЙКУ!!!</div></h1>") ;
exit();
}
if (empty($Date))
{
print("<div align=center><h1>·ЗАПОЛНИТЕ ЯЧЕЙКУ!!!</div></h1>") ;
exit();
}
if (empty($Kingdom))
{
print("<div align=center><h1>·ЗАПОЛНИТЕ ЯЧЕЙКУ!!!</div></h1>") ;
exit();
}
if (empty($Class))
{
print("<div align=center><h1>·ЗАПОЛНИТЕ ЯЧЕЙКУ!!!</div></h1>") ;
exit();
}
if (empty($Family))
{
print("<div align=center><h1>·ЗАПОЛНИТЕ ЯЧЕЙКУ!!!</div></h1>") ;
exit();
}
if (empty($Sort))
{
print("<div align=center><h1>·ЗАПОЛНИТЕ ЯЧЕЙКУ!!!</div></h1>") ;
exit();
}
if (empty($Kind))
{
print("<div align=center><h1>·ЗАПОЛНИТЕ ЯЧЕЙКУ!!!</div></h1>") ;
exit();
}
if (empty($Region))
{
print("<div align=center><h1>·ЗАПОЛНИТЕ ЯЧЕЙКУ!!!</div></h1>") ;
exit();
}
if (empty($Population))
{
print("<div align=center><h1>·ЗАПОЛНИТЕ ЯЧЕЙКУ!!!</div></h1>") ;
exit();
}
require_once("connection.php");
mysql_query("INSERT INTO MAIN (ID_Creature,Rus_Name, Lat_Name, Date, ID_Kingdom, ID_Class, ID_Family, ID_Sort, ID_Kind, ID_Region, Population) VALUES ('$Number','$RN','$LN','$Date, '$Kingdom', '$Class', '$Family', '$Sort', '$Kind', '$Region', '$Population')");
$result = mysql_query("SELECT * FROM MAIN WHERE ID_Creature = $Number");
?>
<br>
<br>
<div align=center><H4>ДОБАВЛЕНА ЗАПИСЬ:</H4></div><br>
<div align=center>
<table border = 1>
<table border = 1>
<tr><td> Код животного </td>
<td> Русское название </td>
<td> Латинское название </td>
<td> Дата занесения </td>