Помощь в написании студенческих работ
Антистрессовый сервис

Информационная система «Абонемент библиотеки»

КурсоваяПомощь в написанииУзнать стоимостьмоей работы

Каждое реляционное отношение соответствует одной сущности и в него вносятся все атрибуты сущности. Для каждого отношения необходимо определить первичный ключ и внешние ключи (если они есть). Отношения приведены в таблицах. Для каждого соотношения указаны атрибуты с их внутренним названием, типом и длиной. Обязательное поле обозначено not null, необязательное — null. Типы данных обозначаются так… Читать ещё >

Информационная система «Абонемент библиотеки» (реферат, курсовая, диплом, контрольная)

Курсовая работа Дисциплина Проектирование баз данных На тему: Информационная система «Абонемент библиотеки»

Задание

Основная деятельность — выдача комплектов книг учащимся. Абонемент библиотеки формирует комплекты книг в соответствии с учебным планом, выдает книги учащимся и ведет учет о выданных книгах.

База данных предназначена для получения следующей информации:

· Списки учащихся определенных групп.

· Списки сотрудников, и прикрепленных к ним формуляров.

· Списки читателей, получивших и не получивших книги.

· Данные о имеющихся книгах в абонементе.

Анализ предметной области

Целью представленного нами объекта будет автоматизация деятельности абонемента библиотеки АУЭС.

Сведения об этапе начальной разработки в основном получаются из опроса основных и конечных пользователей. Эти люди являются основными клиентами БД и их необходимо идентифицировать с особой тщательностью. Основными пользователями приложения Абонемент библиотеки АУЭС, являются:

§ Сотрудники библиотеки, в чьи обязанности входит вести учет о выданных комплектах книг и их получателей и следить за всеми изменениями в учебном плане;

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

Задачи Изостудии

Изостудия расположена в здании Алматинского Университета Энергетики и Связи, ее могут посещать только студенты данного ВУЗа. Здесь они получают необходимую им в семестре литературу.

Организационная структура

Всю основную работу выполняют библиотекари. Они обслуживают студентов (читателей), заводя на них формуляры, выдавая им комплекты книг и ведя учет о каждом читателе.

Описание операций

Абонемент осуществляет несколько видов операций:

ь ведение информации о читателях и сотрудниках

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

ь ведение информации о читателях и сотрудниках

ь регистрация новых читателей и сотрудников, заведение на них формуляров.

ь ведение контроля выдачи комплектов книг ь учет выданных комплектов книг студентам.

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

Проблемы и ограничения

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

ь Сотрудники тратят слишком много времени на обработку данных вручную

Система ручной обработки данных весьма не удобна, уходит много времени.

Выявив проблемы, мы пришли к выводу, что имеющаяся ручная система учета, не отвечает текущим требованиям. Время, затрачиваемое на работу с документами постоянно растет. Кроме того, упорядочивание информации требует слишком много времени. Проблемы решаются в рамках двух наборов ограничений: ограничения деятельности, определяемые политикой предприятия, и экономические ограничения, определяемые финансами предприятия.

Хорошо спроектированная база данных должна решить большинство проблем изостудии.

Ограничение по времени

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

Аппаратное и программное обеспечение

Система должна функционировать на имеющейся в библиотеке компьютерах.

Предназначение системы Для изостудии определены два направления решаемых задач общие и специфичные.

К общим задачам относятся

1. Повышение эффективности и, тем самым, увеличение пропускной способности и расширение сферы деятельности абонемента библиотеки.

2. Обеспечение необходимо информацией для планирования, управления и безопасности.

Сфера действия и границы

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

1.2 Этап проектирования базы данных

Концептуальный проект

Источники информации и пользователи

Для абонемента библиотеки мы выявили следующие источники информации:

— сотрудники

— читатели

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

— сотрудник (который и является администратором) управляет системой, вводит данные в БД, выполняет запросы, обновляет БД и определяет требования к отчетности.

Необходимая информация:

требования пользователя

Система должна быть проста в использовании. Интерфейс основного меню должен быть очень удобным.

Система должна обеспечивать безопасность. Это осуществляется с помощью паролей и прав доступа.

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

Таким образом выделим сущности, определенные на основе начального этапа разработки:

1)Читатели

2)Сотрудники

3)Книги

4)Предметы

5)Группы

6)Специальность

7)Факультет

UML диаграммы

Для моделирования статических объектов в объектно-ориентированной концепции UML существует 12 диаграмм, но так как большинство объектов БД «Изостудия» являются статическими, то используем самые основные:

1.Диаграмма компонентов.

2.Диаграмма прецедентов

3.Диаграмма классов.

4.Диаграмма развертывания.

Диаграмма компонентов Диаграмма компонентов показывает набор компонентов и отношений между ними.

Компонент — это физически заменяемая часть системы, которая имеет набор интерфейсов и обеспечивает их реализацию.

В моем случае исполняемый модуль Izostudia. exe обращается за получением или добавлением информации к базе данных Izostudia.mdf. Но обращается не напрямую, а через MS SQL SERVER. Таким образом MS SQL Server 2008 является интерфейсом между программой и базой данных, обеспечивая их взаимодействие.

Рисунок 1. Диаграмма компонентов

Диаграмма прецедентов

Для характеристики взаимодействия пользователей с базами данных применяется диаграмма прецедентов или вариантов использования:

Рисунок 2. Диаграмма прецедентов Из нее видно, что пользоваться базой могут 2 группы пользователей: сотрудники (admin) и пользователи (user).

Диаграмма классов

Диаграмма классов в UML является частным случаем ER диаграммы. ER диаграммы используются для логического проектирования баз данных. Главное их отличие: В ER диаграмме уделяется внимание структуре данных, а в диаграмме классов — поведению классов.

Рисунок 3. Диаграмма классов

Рисунок 4. Диаграмма развертывания Диаграмма развёртывания, Deployment diagram в UML моделирует физическое развертывание артефактов на узлах. Например, чтобы описать веб-сайт диаграмма развертывания должна показывать, какие аппаратные компоненты («узлы») существуют (например, веб-сервер, сервер базы данных, сервер приложения), какие программные компоненты («артефакты») работают на каждом узле (например, веб-приложение, база данных), и как различные части этого комплекса соединяются друг с другом (например, JDBC, REST, RMI).

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

Существует два типа узлов:

* Узел устройства

* Узел среды выполнения Узлы устройств — это физические вычислительные ресурсы со своей памятью и сервисами для выполнения программного обеспечения, такие как обычные ПК, мобильные телефоны. Узел среды выполнения — это программный вычислительный ресурс, который работает внутри внешнего узла и который предоставляет собой сервис, выполняющий другие исполняемые программные элементы.

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

Проектирование БД

Учитывая особенности данной системы, расмотренной в анализе предметной области, выделим основные таблицы и связи между ними, предоставленные на предварительной ER-диаграмме, которая приведена на рисунке 5.

Рисунок 5 — Общая ER-диаграмма На основе этапа начальной разработки сформируем бизнес-правила. Затем определяем связи между сущностями, в основном опираясь на описание операций. Точнее связи сущности базируются на бизнес-правилах, построенных на основе подробного описания операций.

Разработка и построение подробной ER диаграммы на основании бизнес правил

Бизнес — правила:

Бизнес — правило 1.

Один читатель может иметь только один формуляр.

Бизнес — правило 2.

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

Бизнес — правило 3.

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

Бизнес — правило 4.

Каждая специальность относится только к одному факультету

Бизнес — правило 5.

Специальность может иметь много учебных планов

Бизнес — правило 6.

Учебный план может содержать один предмет только по одному разу

Бизнес — правило 7.

Учебный план может подразделять несколько формирований комплектов.

Бизнес — правило 8.

Один сотрудник может завести много формуляров

Бизнес — правило 9.

В Абонементе АУЭС может работать много сотрудников

Бизнес — правило 10.

В Абонементе АУЭС может храниться множество книг

Бизнес — правило 11.

Одна книга может входить во множество формирований комплектов.

Разработка и построение подробной ER диаграммы на основании бизнес правил

Рисунок 6. Окончательный вариант концептуальной модели информационной системы Абонемент библиотеки АУЭС

Анализ информационных задач и круга пользователей системы

С данной ИС могут работать следующие группы пользователей:

· Сотрудник (admin);

· Читатель (user);

Пользователями данной информационной системы являются ученики АУЭС и работники библиотеки

· Ученики просматривают данные о выданных книгах, сотрудниках и сроках возврата

· Работники библиотеки также просматривают информацию и данные об учениках Сотрудник то есть администратор в одном лице просматривает, удаляет, редактирует, добавляет записи.

Определение атрибутов каждой сущности

Сегмент ER модели

Описание (ПКпервичный ключ)

Таблица Читатель содержит следующие данные:

№читательского билета-идентификатор читателя Фамилия — Фамилия читателя Имя — Имя читателя ОтчествоОтчество читателя

Таблица Группа содержит следующие данные:

ID_группы — идентификатор группы НазваниеНазвание группы

Таблица Специальность содержит следующие данные:

ID _специальностиидентификатор специальности Название — название специальности

Таблица Факультет содержит следующие данные:

ID _факультетаидентификатор факультета Название — название факультета

Таблица Формуляр содержит следующие данные:

ID _формуляраидентификатор формуляра Роспись — электронная роспись читателя Дата_выдачидата выдачи комплекта Дата_возврата — дата возврата комплекта

Таблица Сотрудник содержит следующие данные:

ID _сотрудникаидентификатор сотрудника ФИО-ФИО сотрудника Телефонтелефон сотрудника

Таблица абонемент АУЭС содержит следующие данные:

ID _абонементаидентификатор абонемента Телефон — Телефон учреждения Адрес — Адрес учреждения

Таблица Книги содержит следующие данные:

ISBNидентификатор книги Название — название книги Автор — Имя автора книги Количество_экземпляров — количество экзмпляров книг

Таблица Формирование_комплекта содержит следующие данные:

ID _комплектаидентификатор комплекта Название — название комплекта

Таблица Предмет содержит следующие данные:

ID_предметаидентификатор предмета Название — название предмета

Таблица Учебный_план содержит следующие данные:

ID _учебного_планаидентификатор учебного плана Название — название учебного плана

Составление реляционных отношений

Каждое реляционное отношение соответствует одной сущности и в него вносятся все атрибуты сущности. Для каждого отношения необходимо определить первичный ключ и внешние ключи (если они есть). Отношения приведены в таблицах. Для каждого соотношения указаны атрибуты с их внутренним названием, типом и длиной. Обязательное поле обозначено not null, необязательное — null. Типы данных обозначаются так: int — числовой, varchar — символьный, datetime — дата, char.

Таблица 1. Схема отношения Читатель (chitatel)

Содержание поля

Имя поля

Тип, длина

Примечания

№_читательского_билета

#_chitatelskogo_bileta

Int

Первичный ключ

Фамилия

Familiya

Varchar (25)

Not null

Имя

Imya

Varchar (20)

Not null

Отчество

Otchestvo

Varchar (25)

Not null

ID_Группы

ID_gruppy

Int

Внешний ключ

Таблица 2. Схема отношения Формуляр (formulyar)

Содержание поля

Имя поля

Тип, длина

Примечания

ID_формуляра

ID_formulyara

Int

Первичный ключ

ID_сотрудника

ID_sotrudnika

int

Внешний ключ

Роспись

Rospis

Varchar (25)

Not null

Дата_выдачи

Data_vydachi

Date

Not null

Дата_возврата

Data_vozvrata

date

Not null

Таблица 3. Схема отношения Группы (Gruppa)

Содержание поля

Имя поля

Тип, длина

Примечания

ID группы

ID_gruppy

Int

Первичный ключ

ID_специальности

ID_specialnosti

Int

Внешний ключ

Название

Nazvanie

Varchar (25)

Not Null

Таблица 4. Схема отношения Абонемент АУЭС (abonement_AUES)

Содержание поля

Имя поля

Тип, длина

Примечания

ID абонемента

ID_abonementa

Int

Первичный ключ

Адрес

adres

Varchar (20)

Not null

Телефон

telefon

int

Not null

Таблица 5. Схема отношения Факультет (fakultet)

Содержание поля

Имя поля

Тип, длина

Примечания

ID факультета

ID_fakulteta

Int

Первичный ключ

Название

Nazvanie

Varchar (25)

Not null

Таблица 6. Схема отношения Формирование комплекта (Formirovanie_komplekta)

Содержание поля

Имя поля

Тип, длина

Примечания

ID комплекта

Id_komplekta

int

Первичный ключ

ISBN

ISBN

int

Внешний ключ

ID_учебного плана

ID_uchebnogo_plana

int

Внешний ключ

Название

Nazvanie

Varchar (25)

Not null

Таблица 7. Схема отношения Книги (knigi)

Содержание поля

Имя поля

Тип, длина

Примечания

ISBN

ISBN

Int

Первичный ключ

ID_абонемента

ID_abonementa

int

Внешний ключ

Название

Nazvanie

Varchar (20)

not null

Год выпуска

God_vypuska

Int

not null

Автор

Avtor

Varchar (25)

Not null

Количество_экземпляров

Kolichestvo_ekzemolyarov

int

Not null

Таблица 8. Схема отношения Предмет (Predmet)

Содержание поля

Имя поля

Тип, длина

Примечания

ID предмета

Id_predmeta

int

Первичный ключ

Наименование

Naimenovanie

Varchar (25)

Not null

Таблица 9. Схема отношения Сотрудник (Sotrudnik)

Содержание поля

Имя поля

Тип, длина

Примечания

ID_сотрудника

Id_sotrudnika

int

первичный ключ

ID_абонемента

ID_abnementa

int

Внешний ключl

Фамилия

Familiya

Varchar (25)

Not null

Имя

Imya

Varchar (20)

Not null

Отчество

Otchestvo

Varchar (25)

Not null

Должность

Doljnost

Varchar (25)

Not null

Telefon

Telefon

int

Not null

Таблица 10. Схема отношения Специальность (Specialnost)

Содержание поля

Имя поля

Тип, длина

Примечания

ID_специальности

Id_specialnosti

int

Первичный ключ

ID_факультета

ID_fakulteta

int

not null

Название

Nazvanie

Varchar (25)

Not null

Таблица 11. Схема отношения Учебный план (Uchebnyi_plan)

Содержание поля

Имя поля

Тип, длина

Примечания

ID учебного плана

Id_uchebnogo_plana

int

первичный ключ

ID специальности

ID_specialnosti

int

внешний ключ

Название

Nazvanie

Varchar (25)

Not null

Расчет места, занимаемого БД

На этом этапе необходимо знать, какой объем памяти будет занимать создаваемая база данных. Объём внешней памяти, необходимый для функционирования системы, складывается из двух составляющих: память, занимаемая модулями СУБД (ядро, утилиты, вспомогательные программы), и память, отводимая под данные (МД). Наиболее существенным обычно является МД.

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

база данные реляционный отношение Таблица10. Расчет физической памяти для таблицы Сотрудники (Sotrudniki)

Имя поля

Тип, длина

Длина (байт)

ID_sotrudnika

Int

ID_abonementa

Int

Familiya

Varchar (25)

Imya

Varchar (20)

Otchestvo

Varchar (25)

Doljnost

Varchar (25)

Telefon

int

Общая длина строки: 107 байт. Число строк: ~ 15

Общий объем требуемой памяти: ~ 1605 байт Таблица11. Расчет физической памяти для таблицы группа (Gruppa)

Имя поля

Тип, длина

Длина (байт)

ID_gruppy

Int

ID_specialnosti

int

Nazvanie

Varchar (25)

Общая длина строки: 33 байт Число строк: ~ 15

Общий объем требуемой памяти: ~ 495 байт Таблица 12. Расчет физической памяти для таблицы Формуляр (Formulyar)

Имя поля

Тип, длина

Длина (байт)

ID_formulyara

Int

ID_sotrudnika

int

Rospis

Varchar (25)

Data_vydachi

Date

Data_vozvrata

date

Общая длина строки: 41 байт Число строк: ~ 4

Общий объем требуемой памяти: ~ 164 байт Таблица 13. Расчет физической памяти для таблицы Читатель (Chitatel)

Имя поля

Тип, длина

Длина (байт)

#_Chitatelskogo_bileta

Int

ID_gruppy

int

Familiya

Varchar (25)

Imya

Varchar (20)

Otchestvo

Varchar (25)

Общая длина строки: 78 байт Число строк: ~ 26

Общий объем требуемой памяти: ~ 2028 байт Таблица 14. Расчет физической памяти для таблицы Формирование комплекта (Formirovanie_komplekta)

Имя поля

Тип, длина

Длина (байт)

ID_komplekta

Int

ISBN

int

ID_uchebnogo_plana

int

Nazvanie

Varchar (25)

Общая длина строки: 37байт Число строк: ~ 12

Общий объем требуемой памяти: ~ 444 байт Таблица 15. Расчет физической памяти для таблицы Книги (Knigi)

Имя поля

Тип, длина

Длина (байт)

ISBN

int

Id_abonimenta

int

Nazvanie

Varchar (20)

God_vypuska

Int

Avtor

Varchar (25)

Kolichestvo_ekzemplyarov

int

Общая длина строки: 61 байт Число строк: ~ 9

Общий объем требуемой памяти: ~ 549 байт Таблица 16. Расчет физической памяти для таблицы Специальность (Specialnost)

Имя поля

Тип, длина

Длина (байт)

ID_specialnosti

Int

ID_fakulteta

int

Nazvanie

VarChar (25)

Общая длина строки: 33 байт Число строк: ~ 6

Общий объем требуемой памяти: ~ 198 байт Таблица 17. Расчет физической памяти для таблицы Учебный план (Uchebnyi_plan)

Имя поля

Тип, длина

Длина (байт)

ID_uchebnogo_plana

int

ID_specialnosti

Int

Nazvanie

Varchar (25)

Общая длина строки: 33 байт Число строк: ~ 16

Общий объем требуемой памяти: ~ 528 байт Таблица 18. Расчет физической памяти для таблицы Предмет (predmet)

Имя поля

Тип, длина

Длина (байт)

ID_predmeta

int

Naimenovanie

Varchar (25)

Общая длина строки: 29 байт Число строк: ~ 6

Общий объем требуемой памяти: ~ 174 байт Таблица 18. Расчет физической памяти для таблицы Факультет (Fakultet)

Имя поля

Тип, длина

Длина (байт)

Id_fakulteta

int

Nazvanie

Varchar (25)

Общая длина строки: 29 байт Число строк: ~ 4

Общий объем требуемой памяти: ~ 116 байт Таблица 19. Расчет физической памяти для таблицы Абонемент АУЭС (abonement_AUES)

Имя поля

Тип, длина

Длина (байт)

Id_abonementa

int

Telefon

int

Adres

Varchar (20)

Общая длина строки: 28 байт Число строк: ~ 1

Общий объем требуемой памяти: ~ 28байт Таким образом, из полученных данных можно рассчитать приблизительный максимальный объем базы данных. Объем будет равен сумме объемов всех таблиц:

База данных = 1605+495+164+2028+549+444+198+528+174+116+28=6329 байт

Задание места хранения БД. Загрузка базы данных

Исходя из данных, полученных во время физического проектирования можно сделать вывод, что размер данных БД за первый год работы базы будет равен 498 263 байт. На следующий год этот размер будет увеличен в 2 раза. Перед запуском БД необходимо выставить необходимые размеры первоначальной БД и ее роста.

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

Задача логического проектирования состоит в создании реляционных табличных структур на языке DDL.

Создание базы

create database Azim1

ON PRIMARY

(NAME=q_data, FILENAME='D:123q_data.mdf', size=4, maxsize=25,filegrowth=1 mb)

LOG ON

(NAME=q_log, FILENAME='D:123q_log.ldf', size=4, maxsize=20,filegrowth=1 mb);

use Azim1

Схемы отношений составленные на языке определения данных (DDL, Data Definition Language)

Создание таблиц

create table fakultet (

ID_fakulteta int Primary key,

Nazvanie varchar (25) NOT NULL);

create table specialnost (

ID_specialnosti int Primary key,

ID_fakulteta int NOT NULL references fakultet (ID_fakulteta),

Nazvanie varchar (25) NOT NULL);

create table gruppa (

ID_gruppy int Primary key,

ID_specialnosti int NOT NULL references specialnost (ID_specialnosti),

Nazvanie varchar (25) NOT NULL);

create table chitatel (

#_chitatelskogo_bileta int primary key,

ID_gruppy int not null references gruppa (ID_gruppy),

Familiya varchar (25) NOT NULL,

Imya varchar (20) not null,

Otchestvo varchar (25) not null);

Create table abonement_AUES (

ID_abonementa int primary key,

Telefon int not null,

Adres varchar (20) not null);

Create table sotrudnik (

ID_sotrudnika int primary key,

ID_abonementa int NOT NULL references abonement_AUES (ID_abonementa),

Familiya varchar (25) NOT NULL,

Imya varchar (20) not null,

Otchestvo varchar (25) not null,

Doljnost varchar (25) not null,

Telefon int not null);

create table formulyar (

ID_formulyara int primary key references chitatel (#_chitatelskogo_bileta),

ID_sotrudnika int NOT NULL references sotrudnik (ID_sotrudnika),

Rospis varchar (25) not null,

Data_vydachi date not null,

Data_vozvrata date not null);

create table knigi (

ISBN int primary key,

ID_abonementa int NOT NULL references abonement_AUES (ID_abonementa),

Nazvanie varchar (20) not null,

God_vypuska int not null,

Avtor varchar (25) not null,

Kolichestvo_ekzemplyarov int not null);

create table uchebnyi_plan (

ID_uchebnogo_plana int primary key,

ID_specialnosti int NOT NULL references specialnost (ID_specialnosti),

Nazvanie varchar (25) not null);

create table formirovanie_komplekta (

ID_komplekta int primary key,

ISBN int not null references knigi (ISBN),

ID_uchebnogo_plana int not null references uchebnyi_plan (ID_uchebnogo_plana),

Nazvanie varchar (25) not null);

create table predmet (

ID_predmeta int primary key references uchebnyi_plan (ID_uchebnogo_plana),

Naimenovanie varchar (25) not null);

Физическое проектирование

Для разработки базы данных была выбрана СУБД SQL Server 2008. SQL Server является всеобъемлющим, интегрированным сквозным решением, которое наделяет пользователей организации безопасной, надежной, и продуктивной платформой для обработки промышленной информации и приложений, касающихся интеллектуальных ресурсов предприятия. SQL Server 2008 предоставляет мощные, знакомые инструменты для профессионалов информационных технологий так же, как и для работников информационной сферы, уменьшая сложность создания, развёртывания, управления и использования данных предприятия и аналитических приложений на платформах от мобильных устройств до информационных систем предприятия. Благодаря исчерпывающему набору функций, взаимодействию с существующими системами и автоматизации типовых задач, SQL Server 2008 предоставляет полное решение в области хранения данных для предприятий всех масштабов. В результате выполнения созданных скриптов, получим реальную БД. Диаграмма физической модели данной базы данных Рисунок 15. Диаграмма физической модели данной базы данных

Заполнение созданной БД

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

insert into fakultet (ID_fakulteta, Nazvanie)

values (1,'ФИТ'),

(2,'ЭЭФ'),

(3,'ФРТС'),

(4,'ТЭФ');

insert into specialnost (ID_specialnosti, ID_fakulteta, Nazvanie)

values (1,1,'БВТ'),

(2,1,'БИС'),

(3,2,'БЭЭ'),

(4,3,'БРЭ'),

(5,4,'БТЭ'),

(6,4,'БАУ');

insert into gruppa (ID_gruppy, ID_specialnosti, Nazvanie)

values (1,1,'БВТ-09−1'),

(2,1,'БВТ-09−2'),

(3,2,'БИС-09−1'),

(4,2,'БИС-09−2'),

(5,3,'БЭЭ-09−1'),

(6,3,'БЭЭ-09−2'),

(7,4,'БРЭ-09−1'),

(8,4,'БРЭ-09−2'),

(9,5,'БТЭ-09−1'),

(10,5,'БТЭ-09−2'),

(11,6,'БАУ-09−1'),

(12,6,'БАУ-09−2');

insert into chitatel (#_chitatelskogo_bileta, ID_gruppy, Familiya, Imya, Otchestvo)

values (1,1,'Турганов','Азим','Арманович'),

(2,1,'Рогозина','Наталья','Сегизмундовна'),

(3,2,'Шапошников','Роман','Александрович'),

(4,2,'Петрова','Райхан','Сериковна'),

(5,3,'Сагиндыков','Елеусин','Нигметович'),

(6,3,'Сулейменова','Асем','Нурлановна'),

(7,4,'Мунасипов','Данис','Журидинович'),

(8,4,'Калашников','Владимир','Юрьевич'),

(9,5,'Тян','Роман','Валентинович'),

(10,5,'Боров','Порк','Хэмович'),

(11,6,'Соломонова','Рита','Икрометдиновна'),

(12,6,'Тарбаев','Сангаджи','Амархуоглы'),

(13,7,'Стрейзанд','Барбара','Федоровна'),

(14,7,'Дос','Джуниор','Сантос'),

(15,8,'Пальярес','Русимар','Васильевич'),

(16,8,'Харди','Ден','Барбосович'),

(17,9,'Сент','Джордж','Пьер'),

(18,9,'Сильва','Тиаго','Алвеш'),

(19,10,'Узумаки','Наруто','Владимирович'),

(20,10,'Грейси','Ройс','Ренанович'),

(21,11,'Сильверстоун','Алисия','Петровна'),

(22,11,'Мейнард','Грей','Френкович'),

(23,12,'Джигурда','Никита','Алеевич'),

(24,12,'Ололоев','Ололош','Ололошевич');

insert into abonement_AUES (ID_abonementa, Telefon, Adres)

values (1,'3 457 683','Байтурсынова 127');

insert into sotrudnik (ID_sotrudnika, ID_abonementa, Familiya, Imya, Otchestvo, Doljnost, Telefon)

values (1,1,'Семенов','Алексей','Барменович','Заведующий','123 456'),

(2,1,'Семенова','Куралай','Архимедовна','Библиотекарь','234 542'),

(3,1,'Гитарастовна','Катипаш','Советжановна','Убощица','654 768');

insert into sotrudnik (ID_sotrudnika, ID_abonementa, Familiya, Imya, Otchestvo, Doljnost, Telefon)

values (4,1,'Барлоу','Трой','Борхович','Библиотекарь','123 135'),

(5,1,'Валиханова','Елена','Архатовна','Библиотекарь','234 242'),

(6,1,'Кунанбаев','Шокан','Бауржанович','Библиотекарь','788 768');

Insert into formulyar (ID_formulyara, ID_sotrudnika, Rospis, Data_vydachi, Data_vozvrata)

values (1,2,'bjyvk','10/09/2011','11/05/2012'),

(2,4,'vvhgvg','10/09/2011','25/05/2012'),

(3,5,'adadc','01/09/2011','24/05/2012'),

(4,6,'vsgdc','03/09/2011','14/05/2012'),

(5,2,'aevavc','04/09/2011','14/06/2012'),

(6,4,'vearvr','07/09/2011','01/06/2012'),

(7,5,'adztbc','06/09/2011','21/05/2012'),

(8,6,'adsbrb','01/09/2011','27/05/2012'),

(9,2,'srtnsnc','03/09/2011','28/05/2012'),

(10,4,'gbettbc','05/09/2011','23/05/2012'),

(11,5,'arerec','11/09/2011','21/05/2012'),

(12,6,'agwtgwc','12/09/2011','15/05/2012'),

(13,2,'araaar','13/09/2011','15/06/2012'),

(14,4,'fthrtht','02/09/2011','17/05/2012'),

(15,5,'bstbst','04/09/2011','29/05/2012'),

(16,6,'dbgbfx','25/09/2011','14/06/2012'),

(17,2,'rgregr','19/09/2011','15/05/2012'),

(18,4,'btrsbc','18/09/2011','19/05/2012'),

(19,5,'ththhc','01/09/2011','21/05/2012');

insert into knigi (ISBN, ID_abonementa, Nazvanie, Avtor, God_vypuska, Kolichestvo_ekzemplyarov)

values (12 345,1,'Лекции по физике','Чертов Р.Р.','1984','24'),

(12 346,1,'Прикладная механика','Динасылов А.Д.','1999','18'),

(12 347,1,'SQL для чайников','Кен Хендерсон','2005','20'),

(12 348,1,'Основы эконом. теории','Жараспаева К. М','2007','24'),

(12 349,1,'Основы криптографии','Шайхин Б.М.','2008','16'),

(12 350,1,'Высшая математика','Хасеинов М.Б.','2007','23');

insert into uchebnyi_plan (ID_uchebnogo_plana, ID_specialnosti, Nazvanie)

values (11,1,'a'),

(12,2,'b'),

(13,3,'c'),

(14,4,'d'),

(15,5,'e'),

(16,6,'f');

insert into predmet (ID_predmeta, Naimenovanie)

values (11,'Физика'),

(12,'Механика'),

(13,'ПБД'),

(14,'ОЭТ'),

(15,'ОИБ'),

(16,'Высш.Мат');

insert into formirovanie_komplekta (ID_komplekta, ID_uchebnogo_plana, ISBN, Nazvanie)

values (1,11,12 345,'#1'),

(2,12,12 346,'#2'),

(3,13,12 347,'#3'),

(4,14,12 348,'#4'),

(5,15,12 349,'#5'),

(6,16,12 350,'#6'),

(7,11,12 345,'#7'),

(8,12,12 346,'#8'),

(9,13,12 347,'#9'),

(10,14,12 348,'#10'),

(11,15,12 349,'#11'),

(12,16,12 350,'#12');

Запросы базы данных. Представления, процедуры и триггеры

Представления

Для запроса информации из БД были созданы специальные представления.

1.Служит для вывода фамилии читателя и группы, в которой он учится

CREATE VIEW GrupChitat

AS

SELECT gruppa. Nazvanie, chitatel. Familiya

FROM gruppa, chitatel

WHERE gruppa. ID_gruppy=chitatel.#_chitatelskogo_bileta

2.Служит для вывода полной информации о читателе

create view FamChit

as

select chitatel. Familiya, chitatel. Imya, chitatel. Otchestvo, chitatel.#_chitatelskogo_bileta

from chitatel

3.Служит для вывода информации о сотрудниках и выданных ими формулярах

create view SotrFormul

as

select sotrudnik. Familiya, sotrudnik. Imya, sotrudnik. Doljnost, formulyar. Data_vydachi, formulyar. Data_vozvrata

from sotrudnik, formulyar

where sotrudnik. ID_sotrudnika=formulyar.ID_formulyara

4.Служит для вывода информации о читателях и формулярах

create view ChitForm

as

select chitatel. Familiya, chitatel. Imya, chitatel.#_chitatelskogo_bileta, formulyar. Data_vydachi

from chitatel, formulyar

where chitatel.#_chitatelskogo_bileta=formulyar.ID_formulyara

5.Служит для вывода информации о книгах

create view KnigNazvEkz

as

select knigi. Nazvanie, knigi. Kolichestvo_ekzemplyarov

from knigi

6.Служит для вывода информации о предметах и учебных планах

create view PredUch

as

select predmet. Naimenovanie, uchebnyi_plan.Nazvanie

from predmet, uchebnyi_plan

where predmet. ID_predmeta=uchebnyi_plan.ID_uchebnogo_plana

7.Служит для вывода полной информации о сотрудниках

create view sotrudniki

as

select sotrudnik. Familiya, sotrudnik. Imya, sotrudnik. Otchestvo, sotrudnik. Doljnost, sotrudnik. Telefon

from sotrudnik

Процедуры

1.Создание записи о новой книге

create procedure new_book

(@ISBN int,

@ID_abonementa int,

@Nazvanie varchar (20),

@God_vypuska int,

@Avtor varchar (25),

@Kolichestvo_ekzemplyarov int)

as

insert into knigi

values (@ISBN,@ID_abonementa,@Nazvanie,@God_vypuska,@Avtor,@Kolichestvo_ekzemp

create procedure spisok_knig

as

select distinct knigi. ISBN, knigi. Nazvanie as 'Название', knigi. Avtor as 'Автор', knigi. God_vypuska as 'Год выпуска',

knigi.Kolichestvo_ekzemplyarov as 'Количество экземпляров'

from knigi

2.Вывод списка сотрудников

create procedure spisok_sotrudniki

as

select distinct sotrudnik. Familiya, sotrudnik. Imya, sotrudnik. Otchestvo as 'ФИО', sotrudnik. Doljnost as 'Должность', sotrudnik. Telefon as 'Телефон'

from sotrudnik

3.Вывод списка читателей

create procedure spisok_chitateli

as

select distinct chitatel. Familiya, chitatel. Imya, chitatel. Otchestvo

from chitatel

4.Вывод списка книг через автора

create procedure avtor_knig

(@Avtor varchar (25))

as select distinct knigi. Nazvanie as 'Название', knigi. Avtor as 'Автор',

knigi.Kolichestvo_ekzemplyarov as 'Количество экземпляров'

from knigi

exec avtor_knig 'Чертов Р.Р.'

5.Добавление сотрудника

create procedure dobavlenie_sotrudnika

(@ID_sotrudnika int,

@ID_abonementa int,

@Familiya varchar (25),

@Imya varchar (20),

@Otchestvo varchar (25),

@Doljnost varchar (25),

@Telefon int)

as

insert into sotrudnik

values (@ID_sotrudnika,@ID_abonementa,@Familiya,@Imya,@Otchestvo,@Doljnost,@Telefon)

6.Добавление читателя

create procedure dobavlenie_chitatelya

(@#_chitatelskogo_bileta int,

@ID_gruppy int,

@Familiya varchar (25),

@Imya varchar (20),

@Otchestvo varchar (25))

as

insert into chitatel

values (@#_chitatelskogo_bileta,@ID_gruppy,@Familiya,@Imya,@Otchestvo)

7.Добавление группы

create procedure dobavlenie_gruppy

(@ID_gruppy int,

@ID_specialnosti int,

as

insert into gruppa

values (@ID_gruppy,@ID_specialnosti,@Nazvanie)

Функции

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

CREATE Function data (@d int)

RETURNS int

AS

BEGIN

declare @data date;

declare @data1 date;

declare @a int;

select distinct @data = Data_vydachi

From formulyar

WHERE formulyar. ID_formulyara=@d

select Distinct @data1 = Data_vozvrata

From formulyar

WHERE formulyar. ID_formulyara=@d

Set @a =(select DATEDIFF (DD, @data,@data1))

return @a

end

select dbo. data (4)

Триггеры

1.Исключение дубликатов в таблице сотрудники

create trigger unique_sotr

on sotrudnik

for insert, update

as

declare @ID_sotrudnika int;

declare @ID_abonementa int;

declare @Familiya varchar (25);

declare @Imya varchar (20);

declare @Otchestvo varchar (25);

declare @Doljnost varchar (25);

declare @Telefon int;

declare @count int;

select @ID_sotrudnika=ID_sotrudnika,@ID_abonementa=ID_abonementa,@Familiya=Familiya,@Imya=Imya,@Otchestvo=Otchestvo,

@Doljnost=Doljnost,@Telefon=Telefon

from inserted

select @count=COUNT (*)

from sotrudnik

where @ID_sotrudnika=ID_sotrudnika

and @ID_sotrudnika=ID_sotrudnika

and @ID_abonementa=ID_abonementa

and @Familiya=Familiya

and @Imya=Imya

and @Otchestvo=Otchestvo

and @Doljnost=Doljnost

and @Telefon=Telefon

if @count>1

begin

ROLLBACK TRAN

RAISERROR ('Нельзя, уже есть', 16,10)

END

2.Исключение дубликатов в таблице читатели

create trigger unique_chit

on chitatel

for insert, update

as

declare @#_chitatelskogo_bileta int;

declare @ID_gruppy int;

declare @Familiya varchar (25);

declare @Imya varchar (20);

declare @Otchestvo varchar (25);

declare @count int;

select @#_chitatelskogo_bileta=@#_chitatelskogo_bileta,@ID_gruppy=ID_gruppy,@Familiya=Familiya,@Imya=Imya,@Otchestvo=Otchestvo

from inserted

select @count=COUNT (*)

from chitatel

where @#_chitatelskogo_bileta=@#_chitatelskogo_bileta

and @ID_gruppy=ID_gruppy

and @Familiya=Familiya

and @Imya=Imya

and @Otchestvo=Otchestvo

if @count>1

begin

ROLLBACK TRAN

RAISERROR ('Нельзя, уже есть такой читатель', 16,10)

END

3.Исключение введения даты выдачи позже текущей

CREATE TRIGGER Data_raznica

ON formulyar

for update, insert

as

declare @Data_vydachi date

declare @Data_vozvrata date

select @Data_vydachi=Data_vydachi

from inserted

if @Data_vydachi>GETDATE ()

begin

rollback tran

raiserror ('Дата выдачи не может быть позже текущей даты', 16,10)

end

4.Исключение дубликатов в таблице книги

create trigger unique_up_in

on knigi

for insert, update

as

declare @ISBN int;

declare @Nazvanie varchar (20);

declare @God_vypuska int;

declare @Avtor varchar (25);

declare @Kolichestvo_ekzemplyarov int;

declare @count int;

select @ISBN=ISBN,@Nazvanie=Nazvanie,@God_vypuska=God_vypuska,@Avtor=Avtor,@Kolichestvo_ekzemplyarov=Kolichestvo_ekzemplyarov

from inserted

select @count=COUNT (*)

from knigi

where @ISBN=ISBN

and @Nazvanie=Nazvanie

and @God_vypuska=God_vypuska

and @Avtor=Avtor

and @Kolichestvo_ekzemplyarov=Kolichestvo_ekzemplyarov

if @count>1

begin

ROLLBACK TRAN

RAISERROR ('Такая книга уже существует', 16,10)

END

Меры по обеспечению безопасности

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

sp_addlogin 'admin', 'admin','Azim';

sp_adduser 'admin';

Создание учетной записи user

sp_addlogin 'user', 'user','Azim';

Создание пользователя user

sp_adduser 'user';

Создание роли administrators

sp_addrole 'administrators';

Добавление пользователя admin в роль administrators

sp_addrolemember 'administrators', 'admin';

Установление прав для роли administrators

grant select, insert, update, delete to admin;

Создание роли oper_reg

sp_addrole 'oper_reg';

Добавление пользователя user в роль oper_reg

sp_addrolemember 'oper_reg','user';

Установление прав для роли oper_reg

grant select, update on dbo. ChitForm to oper_reg;

go

grant select, update on dbo. FamChit to oper_reg;

go

grant select, update on dbo. FormirKNIG to oper_reg;

go

grant select, update on dbo. GrupChitat to oper_reg;

go

grant select, update on dbo. KnigNazvEkz to oper_reg;

go

grant select, update on dbo. PredUch to oper_reg;

go

grant select, update on dbo. SotrFormul to oper_reg;

go

grant select, update on dbo. sotrudniki to oper_reg;

Работа с приложением

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

Приложение дает право директору изменять данные в таблицах, добавлять и удалять строки из всех таблиц. В случае неверного пароля или логина выходит сообщение. Запускаем приложение Перед нами появляется форма авторизации, необходимо ввести свой пароль и пароль Выбираем логин (например admin) и авторизуемся Открывается форма с множеством вкладок На каждой вкладке мы можем добавить запись Теперь авторизуемся по логином user

Мы можем только просматривать данные

Заключение

В данной курсовой работе была спроектирована база данных «Абонемент библиотеки АУЭС». При проектировании работы, были учтены все основные функции данной базы данных. Данная база данных проектировалась на SQL Server 2008, так это наиболее удовлетворяющая по функциональным возможностям среда проектирования. В данной базе данных учтены права пользователей, и доступ к информации ограничен. Так, например, изменять, добавлять и удалять информацию из таблиц может только сотрудник. В то время как пользователь может только просматривать информацию.

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

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

1. Сатимова Е. Г. Проектирование баз данных. Методические указания к выполнению лабораторных работ (для студентов всех специальностей). — Алматы: АИЭС, 2009

2. MICROSOFT SQL SERVER 2005. Реализация и обслуживание. Учебный курс Microsoft/ Пер. с английского — М. «Русская редакция», Спб.: «Питер», 2007.

3.Плю Р., Стефенс Р., Райан К. Освой самостоятельно SQL за 24 часа. — М.: Издательский дом «Вильямс», 2000

4. Питер Роб, Карлос Коронел Системы баз данных: проектирование, реализация и управление, 5-е издание, — BHV Санкт-Петербург, 2004 .

Показать весь текст
Заполнить форму текущей работой