Курсового проекта




Скачать 93.05 Kb.
НазваниеКурсового проекта
Дата публикации18.06.2014
Размер93.05 Kb.
ТипДокументы
literature-edu.ru > Информатика > Документы


ПЕРВОЕ ВЫСШЕЕ ТЕХНИЧЕСКОЕ УЧЕБНОЕ ЗАВЕДЕНИЕ РОССИИ



МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

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

«НАЦИОНАЛЬНЫЙ МИНЕРАЛЬНО-СЫРЬЕВОЙ УНИВЕРСИТЕТ «ГОРНЫЙ»



Кафедра информационных систем и вычислительной техники

ЗАДАНИЕ
на курсовой проект по дисциплине

Управление данными”
студент Тарасова Светлана Сергеевна 0403011001
(фамилия, имя, отчество) (шифр)
Тема курсового проекта
Разработка базы данных для библиотеки


Специальность (указать необходимую): 230201.65
Задание выдано "___" _______ 2012 г.
Срок представления проекта для проверки "____" _______ 2012 г.
Студент _________________

(подпись)
Руководитель проекта ________________

(подпись)

Санкт-Петербург

2012

1. Техническое задание


Разработать базу данных для общественной библиотеки. Пользователи: сотрудники библиотеки. База должна отражать информацию:

  • о библиотеке;

  • о книгах;

  • о читателях;

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

2. Описание СУБД


  1. В курсовом проекте используется комплект программ Denwer версии 3. Комплект состоит из следующих компонентов:

  2. 1) веб-сервер Apache 2

  3. 2) PHP5

  4. 3) СУБД MySQL 5

  5. Основные преимущества MySQL:

  6. 1) многопоточность, поддержка нескольких одновременных запросов;

  7. 2) оптимизация связей с присоединением многих данных за один проход;

  8. 3) записи фиксированной и переменной длины;

  9. 4) ODBC драйвер;

  10. 5) гибкая система привилегий и паролей;

  11. 6) гибкая поддержка форматов чисел, строк переменной длины и меток времени;

  12. 7) интерфейс с языками C и Perl, PHP;

  13. 8) быстрая работа, масштабируемость;

  14. 9) совместимость с ANSI SQL;

  15. 10) бесплатна в большинстве случаев;

  16. 11) хорошая поддержка со стороны провайдеров услуг хостинга;

  17. 12) быстрая поддержка транзакций через механизм InnoDB.

  18. Для разработки интерфейса был выбран входящий в Denwer язык PHP.



3. Инфологическая модель


3. 1 Описание предметной области

В библиотеке хранятся книги, записаны читатели. У книги может быть несколько авторов. Читатель может иметь на руках не более 5 книг. Срок возврата книги – 20 дней, возможно продление на тот же срок неограниченное количество раз.

3.2 Инфологическая схема объектов и связей

При разработке инфологической модели использованы элементы фреймового подхода к проектированию.



Рис. 3.1 Инфологическая модель

Использованы обозначения:

S – основная часть(вершина) фрейма

V – внутреннее собственное многозначное свойство объекта

Q – связь посредством сложного Q-классификатора. Наследование атрибутов из другой части

F – фрейм

X1…X8 – атрибуты (поля)

Фрагмент предметной области разделен на 3 фрейма:

  1. F0 S Библиотека

F0 V1 Книги

F0 V2 Читатели

F0 V3 Связь между читателями и книгами

  1. F1 S Книга

F1 V1 Авторы

  1. F2 S Люди.

3.3 Ограничения предметной области

Библиотека. Информация вносится на этапе внедрения, не изменяется пользователем. В данном проекте рассматривается одна библиотека «Районная библиотека №6».

Книги. Вручную заносится уникальный код книги isbn. Не может быть изменена или удалена, если взята читателем. Книга может иметь одного или нескольких авторов.

Авторы. ФИО автора добавляется в базу при добавлении книги при отсутствии совпадений, записи автоматически присваивается уникальный номер. Автор не удаляется пользователем и может не иметь книг.

Читатели. При добавлении присваивается уникальный номер. Не может быть удален, если на руках хотя бы одна книга.

Люди. Вводится уникальный номер паспорта. Удаление при наличии соответствующего читателя невозможно.

    1. Основные операции в данном фрагменте предметной области

  1. Работа с книгами

- добавление

- поиск

- запись книги на читателя

- редактирование

- удаление

  1. Работа с читателями

- добавление

- поиск

- редактирование

- управление книгами на руках

- удаление

4. Концептуальная модель


Ограничения предметной области в концептуальной модели

При описании ограничений используются функциональные зависимости. Если описать ограничение при помощи функциональной зависимости невозможно, то используется механизм ограничения целостности (внешний ключ) или создается триггер.

Атрибут х1 – идентификатор библиотеки.

Атрибут x2 – название библиотеки.

Х3 – идентификатор книги. Уникальный для данной предметной области номер книги и формируется системой автоматически (auto increment).

X4 – isbn книги. Уникальный 11-значный код, указанный на каждой книге.

Х5 - идентификатор читателя. Уникальный для данной предметной области номер читателя и формируется системой автоматически (auto increment).

Х6 - идентификатор человека. Уникальный для данной предметной области номер человека и формируется системой автоматически (auto increment).

X7 – номер и серия паспорта человека. Уникальный 10-значный код человека.

Х8 - идентификатор автора. Уникальный для данной предметной области номер автора и формируется системой автоматически (auto increment).

Триггеры

Триггер - программа базы данных, вызываемая всякий раз при вставке, изменении или удалении строки таблицы.

Триггер «b_ins_readbook»(см. п.3)

До создания новой записи в таблице Readbook обновляет поля в двух таблицах:

в таблице Readers(читатели) увеличивает столбец Количество книг на 1,
в табл. Book(книга) изменяет статус с 0 на 1(книга взята).

Триггер «b_del_readbook»(см. п.3)

До удаления записи в табл. Readbook обновляет те же поля, что и триггер «b_ins_readbook». Но уменьшает количество книг на 1 и изменяет статус книги с 1 на 0 (сдана в библиотеку).

5. Внешняя модель

Интерфейс создан с использованием html и php.

Требования к системе:

  1. Ввод информации о книгах и людях

  2. Изменение введенной информации

  3. Поиск книг и читателей

  4. Запись книг на читателя

  5. Удаление книг и людей

Основные страницы:

  • Главная страница – информация о библиотеке index.php

  • Книги books.php

  • Читатели: readers.php

  • Физические лица: people.php

  • Общий интерфейс вынесен в файл menu.php, подключение к базе - connect.php.

Главная страница – index.php. Выдает из базы информацию о библиотеке.



Рис. 5.1 Главная страница

Читатели – readers.php. Возможные действия: открыть список книг, подробная информация, редактировать, удалить.



Рис. 5.2 Страница читатели

Посмотрим подробную информацию о читателе под номером 2.



Рис. 5.3 Открыта подробная информация о читателе

Как и из общего окна читателей можно посмотреть список книг, отредактировать или удалить читателя.



Рис. 5.4 Открыт список книг читателя

Информацию о книгах получаем методом GET, передавая переменную номер читателя id_r в адресной строке.



Рис. 5.5 Форма редактирования читателя

Чтобы добавить нового читателя, человек должен быть внесен в справочник Физические лица. В окне добавления нового читателя выводится список физических лиц без группы



Рис. 5.6 Окно добавления читателя


Рис. 5.7 Справочник Физические лица

6. Физическая модель


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

Основные особенности:

- В отличие от MyISAM, таблицы для InnoDB не создаются в отдельных файлах. Все таблицы хранятся в едином табличном пространстве.

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

- Данный тип таблиц поддерживает автоматическое восстановление после сбоя.

- Обеспечивается поддержка транзакций.

- Это единственный тип таблиц MySQL, поддерживающий внешние ключи и каскадное удаление.

- Выполение блокировок на уровне отдельных записей.

- Таблицы InnoDB надежнее MyISAM, но заметно уступают в скорости работы и не поддерживают полнотекстовый поиск.

Список использованной литературы


  1. Базы данных : инфологические модели баз данных: учеб. пособие/ М. В. Копейкин, В. В. Спиридонов, Е. О. Шумова. - СПб.: Изд-во СЗТУ, 2004. - 189 с.

  2. Базы данных: учебно-методический комплекс /сост.: М.В. Копейкин, В.В. Спиридонов, Е.О. Шумова. - СПб.: Изд-во СЗТУ, 2010. – 175 с.

  3. Копейкин М.В., Спиридонов В.В., Шумова Е.О. Базы данных: учебное

пособие: в 2 кн. Кн. 1. – СПб.: Изд-во СЗТУ, 2010. – 247.

  1. Копейкин М.В., Спиридонов В.В., Шумова Е.О. Базы данных: учебное

пособие: в 2 кн. Кн. 2. – СПб.: Изд-во СЗТУ, 2010. – 219 c.

  1. Кузнецов М. В., Симдянов И.В. MySql 5 – СПб: БХВ-Петербург, 2010 – 1024с.

Приложение 1


Описание таблиц и ограничений базы данных

-- phpMyAdmin SQL Dump

-- Server version: 5.1.40

-- PHP Version: 5.3.3

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;

/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;

/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;

/*!40101 SET NAMES utf8 */;
--

-- Database: `Library`

--
-- --------------------------------------------------------
--

-- Table structure for table `Author`

--
CREATE TABLE IF NOT EXISTS `Author` (

`id_a` smallint(4) NOT NULL AUTO_INCREMENT,

`surname` varchar(25) NOT NULL,

PRIMARY KEY (`id_a`)

) ENGINE=InnoDB DEFAULT CHARSET=cp1251 COMMENT='Авторы' AUTO_INCREMENT=37 ;
--

-- Dumping data for table `Author`

--
INSERT INTO `Author` (`id_a`, `surname`) VALUES

(2, 'Гоголь Н. В.'),

(4, 'Пушкин А. С.'),

(12, 'Достоевский Ф. Н.'),

(13, 'Толстой Л. Н.'),

(20, 'Шилдт Г.'),

(21, 'Горяинова К. К.'),

(25, 'Горт ТТ'),

(27, 'третий'),

(28, 'Синилов Г. К.'),

(29, 'Шумилов А. Ю.'),

(30, 'Овчинский В. С.'),

(32, 'ппп');
-- --------------------------------------------------------
--

-- Table structure for table `Book`

--
CREATE TABLE IF NOT EXISTS `Book` (

`id_b` smallint(4) NOT NULL AUTO_INCREMENT,

`lib_id` tinyint(1) NOT NULL,

`isbn` char(11) NOT NULL,

`title` varchar(60) NOT NULL COMMENT 'название книги',

`year` year(4) DEFAULT NULL COMMENT 'год издания',

`status` tinyint(1) NOT NULL,

PRIMARY KEY (`id_b`),

UNIQUE KEY `isbn` (`isbn`)

) ENGINE=InnoDB DEFAULT CHARSET=cp1251 COMMENT='Книги' AUTO_INCREMENT=15 ;
--

-- Dumping data for table `Book`

--
INSERT INTO `Book` (`id_b`, `lib_id`, `isbn`, `title`, `year`, `status`) VALUES

(4, 10, '97859057998', 'Евгений Онегин', 2012, 1),

(5, 10, '97858459168', 'C# 4.0 Полное Руководство', 2011, 0),

(6, 10, '97858459156', 'C# 3.0 Полное Руководство', 2010, 1),

(8, 10, '5160017127', 'Оперативно-розыскная деятельность: учебник. 2-е изд.', 2004, 1);
-- --------------------------------------------------------
--

-- Table structure for table `Lib`

--
CREATE TABLE IF NOT EXISTS `Lib` (

`lib_id` tinyint(1) NOT NULL,

`lib_name` varchar(25) NOT NULL,

`address` varchar(30) NOT NULL,

`phone` char(11) NOT NULL,

PRIMARY KEY (`lib_id`)

) ENGINE=InnoDB DEFAULT CHARSET=cp1251 COMMENT='Библиотеки';
--

-- Dumping data for table `Lib`

--
INSERT INTO `Lib` (`lib_id`, `lib_name`, `address`, `phone`) VALUES

(10, 'Районная библиотека №6', 'Ленинский пр., 93', '725-11-23');
-- --------------------------------------------------------
--

-- Table structure for table `people`

--
CREATE TABLE IF NOT EXISTS `people` (

`id_p` smallint(4) NOT NULL AUTO_INCREMENT,

`num` char(10) NOT NULL,

`surname` varchar(25) NOT NULL,

`name` varchar(25) NOT NULL,

`mid_name` varchar(25) DEFAULT NULL,

`address` varchar(50) NOT NULL,

`phone` char(11) NOT NULL,

`group` char(1) NOT NULL,

PRIMARY KEY (`id_p`),

UNIQUE KEY `num` (`num`)

) ENGINE=InnoDB DEFAULT CHARSET=cp1251 COMMENT='Люди' AUTO_INCREMENT=13 ;
--

-- Dumping data for table `people`

--
INSERT INTO `people` (`id_p`, `num`, `surname`, `name`, `mid_name`, `address`, `phone`, `group`) VALUES

(1, '1234567899', 'Иванов', 'Илья', 'Максимович', 'ул. Димитрова, д.5, кв.201', '89210511253', 'R'),

(2, '4472123596', 'Котов', 'Александр', 'Владимирович', 'ул. Десантников 20, кв. 35', '89053221564', 'R'),

(4, '9876543210', 'Норд', 'Гус', '', 'х', '89216329754', 'R'),

(10, '4468615493', 'Иванов', 'Сергей', 'Павлович', 'ул. Маршала Жукова д. 31, кв. 40', '89043531413', 'N'),

(11, '3698541257', 'Жукова', 'Вера', 'Петровна', 'тттт', '9334432', 'N'),

(12, '1131111112', 'Великий', 'Каа', '', 'под мостом', '225', 'N');
-- --------------------------------------------------------
--

-- Table structure for table `ReadBook`

--
CREATE TABLE IF NOT EXISTS `ReadBook` (

`id` smallint(4) NOT NULL AUTO_INCREMENT,

`isbn` char(11) NOT NULL,

`id_r` smallint(4) NOT NULL,

`date1` date NOT NULL,

`date2` date NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=cp1251 AUTO_INCREMENT=9 ;
--

-- Dumping data for table `ReadBook`

--
INSERT INTO `ReadBook` (`id`, `isbn`, `id_r`, `date1`, `date2`) VALUES

(3, '5160017127', 1, '2012-11-20', '2012-11-30'),

(6, '97859057998', 2, '2012-11-25', '2012-12-15'),

(8, '97858459156', 2, '2012-12-01', '2012-12-21');
--

-- Triggers `ReadBook`

--

DROP TRIGGER IF EXISTS `b_ins_readbook`;

DELIMITER //

CREATE TRIGGER `b_ins_readbook` BEFORE INSERT ON `ReadBook`

FOR EACH ROW begin

UPDATE readers SET readers.kolb = readers.kolb+1 where readers.id_r=new.id_r;

update book set book.status='1' where book.isbn=new.isbn;

end

//

DELIMITER ;

DROP TRIGGER IF EXISTS `b_del_readbook`;

DELIMITER //

CREATE TRIGGER `b_del_readbook` BEFORE DELETE ON `ReadBook`

FOR EACH ROW begin

UPDATE readers SET readers.kolb = readers.kolb-1 where readers.id_r=old.id_r;

update book set book.status='0' where book.isbn=old.isbn;

end

//

DELIMITER ;
-- --------------------------------------------------------
--

-- Table structure for table `Readers`

--
CREATE TABLE IF NOT EXISTS `Readers` (

`id_r` smallint(4) NOT NULL AUTO_INCREMENT COMMENT 'номер читателя',

`lib_id` tinyint(1) NOT NULL,

`id_p` smallint(4) NOT NULL,

`kolb` tinyint(1) NOT NULL DEFAULT '0' COMMENT 'количество книг',

PRIMARY KEY (`id_r`),

UNIQUE KEY `num` (`id_p`)

) ENGINE=InnoDB DEFAULT CHARSET=cp1251 COMMENT='Читатели' AUTO_INCREMENT=6 ;
--

-- Dumping data for table `Readers`

--
INSERT INTO `Readers` (`id_r`, `lib_id`, `id_p`, `kolb`) VALUES

(1, 10, 1, 1),

(2, 10, 2, 2),

(3, 10, 4, 0),

(4, 10, 10, 0),

(5, 10, 11, 0);
-- --------------------------------------------------------
--

-- Table structure for table `WriteBook`

--
CREATE TABLE IF NOT EXISTS `WriteBook` (

`id` smallint(4) NOT NULL AUTO_INCREMENT,

`isbn` char(11) NOT NULL,

`id_a` smallint(4) NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=cp1251 AUTO_INCREMENT=21 ;
--

-- Dumping data for table `WriteBook`

--
INSERT INTO `WriteBook` (`id`, `isbn`, `id_a`) VALUES

(4, '97859057998', 4),

(5, '97858459168', 20),

(7, '97858459156', 20),

(8, '5160017127', 21),

(9, '97859057998', 25),

(11, '97859057998', 27),

(12, '5160017127', 28),

(13, '5160017127', 29),

(14, '5160017127', 30),

(16, '34535', 32),

(17, '3658946', 33),

Приложение 2


Описание триггеров
delimiter \\

--описание для триггера b_ins_readbook

CREATE trigger b_ins_readbook before INSERT ON readbook

FOR each row

begin

UPDATE readers SET readers.kolb = readers.kolb+1 where readers.id_r=new.id_r;

update book set book.status='1' where book.isbn=new.isbn;

end

\\

-- описание для триггера b_del_readbook

CREATE trigger b_del_readbook before delete ON readbook

FOR each row

begin

UPDATE readers SET readers.kolb = readers.kolb-1 where readers.id_r=old.id_r;

update book set book.status='0' where book.isbn=old.isbn;

end

\\

Delimiter;

Оглавление


ПЕРВОЕ ВЫСШЕЕ ТЕХНИЧЕСКОЕ УЧЕБНОЕ ЗАВЕДЕНИЕ РОССИИ 1

«НАЦИОНАЛЬНЫЙ МИНЕРАЛЬНО-СЫРЬЕВОЙ УНИВЕРСИТЕТ «ГОРНЫЙ» 1

2012 2

1. Техническое задание 3

2. Описание СУБД 3

3. Инфологическая модель 4

3. 1 Описание предметной области 4

3.2 Инфологическая схема объектов и связей 4

3.3 Ограничения предметной области 5

3.4Основные операции в данном фрагменте предметной области 5

4. Концептуальная модель 7

Ограничения предметной области в концептуальной модели 7

Триггеры 7

6. Физическая модель 11

Список использованной литературы 12

Приложение 1 13

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

Оглавление 22



Добавить документ в свой блог или на сайт

Похожие:

Курсового проекта icon1. Цель курсового проекта
Целью курсового проекта является разработка программного обеспечения для тестирования статистических свойств последовательностей...

Курсового проекта iconОбщие рекомендации по выполнению курсового проекта Порядок выполнения курсового проекта
Студенты выполняют курсовой проект по утвержденной теме в соответствии с заданием и планом-графиком. Образец плана-графика приведен...

Курсового проекта iconМетодические указания по курсовому проектированию по дисциплине:...
Тематика курсового проекта должна отражать задачи, стоящие передконкретным производственным участком атп. Перечень тем курсового...

Курсового проекта icon8. Литература Прим.: Сам реферат его обновления и другая литература...
...

Курсового проекта iconМетодические указания по выполнению курсового проекта по дисциплине...
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

Курсового проекта iconТребования к структуре курсового проекта (работы)
По объему курсовой проект (работа) должен быть не менее 15-20 страниц печатного текста, но не более 40 страниц

Курсового проекта iconАналитический раздел
Целью курсового проекта является изучение протоколов вычислительных сетей на практике. Для достижения поставленной цели было выдано...

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

Курсового проекта iconМетодические указания по выполнению курсового проекта
Выполнению работы предшествует всестороннее изучение теоретического и практического материала, отраженного в рекомендуемых к изучению...

Курсового проекта iconКурсовой проект по курсу «Схемотехника эвм» Автор: студент группы...
Целью курсового проекта является разработка препроцессора, осуществляющего в реальном времени в режиме накопления отыскание максимального...

Литература


При копировании материала укажите ссылку © 2015
контакты
literature-edu.ru
Поиск на сайте

Главная страница  Литература  Доклады  Рефераты  Курсовая работа  Лекции