Создание сайта Библиотека онлайн
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное образовательное учреждение
высшего профессионального образования
"Чувашский государственный университет им. И.Н. Ульянова"
Факультет информатики и вычислительной техники
Кафедра "Информационно-вычислительных систем"
Дисциплина "Базы данных"
Пояснительная записка к курсовой работе
Тема: "Библиотека"
Выполнил:
студент гр. ИВТ 12-05
Никитин А.Е.
Проверил:
Буланкина Е.Ю.
Чебоксары 2008
Содержание
1. Задание
2. Анализ. Предметная область
2.1 Перечень и описание функций приложения обработки базы данных
2.2 Перечень и описание сущностей и атрибутов базы данных
3. Проектирование. Нормализация базы данных. Схема данных
3.1 Описание нормализации базы данных (методом ER-диаграмм)
3.2 Схема данных
3.3 Перечень и описание таблиц и их полей (с указанием типов данных и ограничений) в сводной таблице
4. Программная часть. Руководство программиста
4.1 Обращение к программе
4.2 Входные и выходные данные
4.2.1 Словесное описание
4.2.2 Описание функций
5. Сопровождение. Руководство пользователя
5.1 Просмотр сайта
5.2 Описание
6. Список использованной литературы
7. Приложение
1. Задание
Библиотека
Разработать систему, помогающую обслуживать библиотеку. Система должна предусматривать режимы ведения системного каталога, отражающего перечень областей знаний, по которым имеются книги в библиотеке. Внутри библиотеки области знаний в систематическом каталоге могут иметь уникальный внутренний номер и полное наименование. Каждая книга может содержать сведения из нескольких областей знаний. Каждая книга в библиотеке может присутствовать в нескольких экземплярах.
В библиотеке ведется картотека читателей.
На каждого читателя в картотеку заносятся следующие сведения:
Фамилия, Имя , Отчество
домашний адрес
телефон (Будем считать, что у нас два телефона - рабочий и домашний)
дата рождения
Каждому читателю присваивается уникальный номер читательского билета.
Каждый читатель может одновременно держать на руках не более 5 книг. Читатель не должен одновременно держать более одного экземпляра книги одного названия.
Каждая книга, хранящаяся в библиотеке, характеризуется следующими параметрами:
уникальный шифр
название
фамилия автора (может отсутствовать)
фамилии соавторов (могут отсутствовать)
место издания (город)
издательство
год издания
количество страниц.
количество экземпляров книги в библиотеке
Каждая книга в библиотеке может присутствовать в нескольких экземплярах. Каждый экземпляр имеет следующие характеристики:
уникальный инвентарный номер
шифр книги, который совпадает с уникальным шифром из описания книг
присутствие в библиотеке.
В случае отсутствия данного экземпляра книги должны быть записаны следующие сведения:
номер билета читателя, который взял книгу
дата выдачи книги
дата возврата.
Каждый экземпляр книги может находиться на руках только у одного читателя.
Предусмотреть следующие ограничения на информацию в системе:
Не может быть информации о соавторах, если нет информации об авторе. Книга может не иметь ни автора, ни соавтора.
В библиотеке должны быть записаны читатели не моложе 17 лет.
В библиотеке присутствуют книги, изданные начиная с 1960 по текущий год
Каждый читатель может держать на руках не более 5 книг.
Каждый читатель при регистрации в библиотеке должен дать телефон для связи он может быть рабочим или домашним.
Каждая область знаний может содержать ссылки на множество книг, но каждая книга может относиться к различным областям.
2. Анализ. Предметная область
2.1 Перечень и описание функций приложения обработки базы данных
1. Хранение информации о книгах и читателях.
2. Поиск и просмотр информации книг.
3. Хранение информации о обороте книг.
4. Просмотр статистики по книге.
5. Соблюдение ограничений, наложенных библиотекой(количество книг одновременно на руках, читатели не могут быть моложе определенного возраста, книги с годом издательства не раньше определенного года).
6. Предоставление определённого уровня доступа к некоторым функциям.
2.2 Перечень и описание сущностей базы данных
Область знаний: Это скорее справочная информация, о ней известно название и ее уникальный номер.
Книга: О книге известны название, имена авторов и соавторов (причем при не поле соавторов не может быть заполнено при пустующем поле автора), год и место издания, издательство, количество страниц и подобных книг. Книги: У книги есть свой уникальный инвентарный номер, а так же флаг, ее наличия в библиотеке в данный момент.
Заказы: При передаче читателю книги в заказах записывается информация о том какую книгу он взял и на какой читательский билет, а так же дату получения и предполагаемого возврата.
Читатели: Нам известен номер читательских билетов, имена, фамилии, отчества, даты рождения, адреса, номера телефонов (либо рабочий либо домашний).
3. Проектирование. Нормализация базы данных. Схема данных
3.1 Описание нормализации базы данных (методом ER-диаграмм).
Требуется добавить в таблицу "Книги" внешний ключ #Книги, а в таблицу "Заказы" два внешних ключа "#Читательского билета" и "#Инвентарный". Так же при нормализации отношения между сущностями "Книга – Область Знаний" мы получим еще одну таблицу, куда войдут первичные ключа каждой из сущностей.
Область Знаний
#Обл. Знаний
Название Обл.Знаний
Книга
#Книги
Название
Автор
Соавтор
Год издания
Место издания
Издательство
Количество страниц
Количество книг
Книги
#Инвентарный
#Книги
Наличие в Библиотеке
Заказы
#Заказа
#Читателя
#Инвентарный
Дата получения
Дата Возврата
Возврат
Читатели
#Чит. Билета
Фамилия
Имя
Отчество
Дата Рождения
#Телефона
Адрес
3.2 Схема данных
В итоге получим схему данных
Область Знаний Книг
#Обл. Знаний
#Книги
Книга
#Книги
Название
Автор
Соавтор
Год издания
Место издания
Издательство
Количество страниц
Количество книг
Книги
#Инвентарный
#Книги
Наличие в Библиотеке
Заказы
#Заказа
#Читателя
#Инвентарный
Дата получения
Дата Возврата
Возврат
Читатели
#Чит. Билета
Фамилия
Имя
Отчество
Дата Рождения
#Телефона
Адрес
Область Знаний
#Обл. Знаний
Название Обл.Знаний
3.3 Перечень и описание таблиц и их полей (с указанием типов данных и ограничений) в сводной таблице
-
AreaOfKnowlede
num_aok
Номер области знаний
int(11)
-
name_aok
Название области знаний
varchar(15)
-
AreaOfKnowledeBook
num_aok
Номер области знаний
int(11)
-
num_book
Номер книги
int(11)
-
Book
num_book
Номер книги
int(11)
-
name_book
Название книги
varchar(100)
-
author
Автор книги
varchar(25)
coauthor
Соавторы книги
varchar(100)
Не может быть заполнен при пустом поле "author"
palace_publ
Место издания
varchar(25)
-
year_publ
Год издания
year(4)
Не раньше 1960года
publishers
Издательство
varchar(40)
-
amount_pages
Число страниц
int(11)
-
amount
Число подобных книг
int(11)
-
Books
num_inventory
Инвентарный номер книги
int(11)
-
num_book
Номер книги
int(11)
-
presence
Присутствие в библиотеке
int(11)
-
Orders
num_order
Номер заказа книги
int(11)
-
num_reader
Номер читательского билета
int(11)
-
num_inventory
int(11)
-
date_issue
date
-
date_return
date
-
returned
smallint(6)
-
Readers
num_reader
Номер читательского билета
int(11)
-
surname
Фмилия
varchar(15)
-
name
Имя
varchar(15)
-
patronymic_name
Отчество
varchar(15)
-
address
Адрес
varchar(50)
-
phone
Номер телефона
varchar(15)
-
birthday
Дата рождения
date
Не моложе 17 лет
4. Программная часть. Руководство программиста
4.1 Обращение к программе
Для обращения к программе есть поля ввода данных и кнопки, а так же гиперссылки для удобства перемещения по сайту
4.2 Входные и выходные данные
4.2.1 Словесное описание
Читателю, зашедшему на данную страницу разрешен лишь просмотр о библиотеке, просмотр некоторой ограниченной информации о книгах, а так же поиск различными методами.
Администратор или же библиотекарь, имеет доступ, по средствам ввода пароля, к более широким функциям, таким как: регистрация / редактирование информации читателя, добавление / редактирование / удаление книги, записать/списать книгу на/с читателя, а так же добавление или удаление области знаний книг. Так же Библиотекарь может видеть более широкую информацию о книгах, т.е. ее статистику, где она находится и у кого в руках побывала и полную информацию о читателе.
4.2.2 Описание функций
В коде были написаны использованы функции класса "page":
Функция для установки основного содержимого страницы:
function SetContent($newcontent){$this->content=$newcontent;}
Функция для установки заголовка страницы:
function SetTitle($newtitle){$this->title=$newtitle;}
Функция для установки отображения страницы:
function Display()
{
echo "\n\n";
$this -> DisplayTitle();
$this -> DisplayKeywords();
$this -> DisplayStyles();
echo "\n";
$this -> DisplayHeader();
$this -> DisplayMenu($this->subbuttons, $this->buttons);
echo $this->content."\n";
$this -> DisplayFooter();
echo " \n