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

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    2,34 Мб
  • Опубликовано:
    2013-04-10
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

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


Курсовая работа

Дисциплина Проектирование баз данных

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

Задание


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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

ü  ведение контроля выдачи комплектов книг

ü  формировка комплектов книг соответственно учебному плану

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

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

ü  ведение контроля выдачи комплектов книг

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

ü  формировка комплектов книг соответственно учебному плану

ü  составление содержания комплектов книг

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

ü неавтоматизированная система не отвечает современным требованиями

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

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

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

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

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

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

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

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

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

Предназначение системы

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

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

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

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

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

Система будет ограничена таким образом, чтобы она могла обслужить следующие сферы деятельности

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

ü  ведение личных формуляров

ü  ведение учета имеющихся книг

Так как абонемент библиотеки небольшой и решает относительно небольшой круг задач, то сферу деятельности на модули подразделять не будем.

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

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

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

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

сотрудники

читатели

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

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

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

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

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

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

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

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

)Читатели

)Сотрудники

)Книги

)Предметы

)Группы

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

)Факультет

UML диаграммы

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

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

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

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

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

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

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

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

В моем случае исполняемый модуль 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

Фамилия

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

4

ID_abonementa

Int

4

Familiya

Varchar(25)

25

Imya

Varchar(20)

20

Otchestvo

Varchar(25)

25

Doljnost

Varchar(25)

25

Telefon

int

4


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

Общий объем требуемой памяти: ~ 1605 байт

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

Имя поля

Тип, длина

Длина(байт)

ID_gruppy

Int

4

ID_specialnosti

int

4

Nazvanie

Varchar(25)

25


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

Число строк: ~ 15

Общий объем требуемой памяти: ~ 495 байт

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

Имя поля

Тип, длина

Длина(байт)

ID_formulyara

Int

4

ID_sotrudnika

int

4

Rospis

Varchar(25)

25

Data_vydachi

Date

4

Data_vozvrata

date

4


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

Число строк: ~ 4

Общий объем требуемой памяти: ~ 164 байт

Таблица 13. Расчет физической памяти для таблицы Читатель(Chitatel)

Имя поля

Тип, длина

Длина(байт)

#_Chitatelskogo_bileta

Int

4

ID_gruppy

int

4

Familiya

Varchar(25)

25

Imya

Varchar(20)

20

Otchestvo

Varchar(25)

25


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

Число строк: ~ 26

Общий объем требуемой памяти: ~ 2028 байт

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

Имя поля

Тип, длина

Длина(байт)

ID_komplekta

Int

4

ISBN

int

4

ID_uchebnogo_plana

int

4

Nazvanie

Varchar(25)

25


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

Число строк: ~ 12

Общий объем требуемой памяти: ~ 444 байт

Таблица 15. Расчет физической памяти для таблицы Книги(Knigi)

Имя поля

Тип, длина

Длина(байт)

ISBN

int

4

Id_abonimenta

int

4

Nazvanie

Varchar(20)

20

God_vypuska

Int

4

Avtor

Varchar(25)

25

Kolichestvo_ekzemplyarov

int

4


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

Число строк: ~ 9

Общий объем требуемой памяти: ~ 549 байт

Таблица 16. Расчет физической памяти для таблицы Специальность (Specialnost)

Имя поля

Тип, длина

Длина(байт)

ID_specialnosti

Int

4

ID_fakulteta

int

4

Nazvanie

VarChar(25)

25


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

Число строк: ~ 6

Общий объем требуемой памяти: ~ 198 байт

Таблица 17. Расчет физической памяти для таблицы Учебный план (Uchebnyi_plan)

Имя поля

Тип, длина

Длина(байт)

ID_uchebnogo_plana

int

4

ID_specialnosti

Int

4

Nazvanie

Varchar(25)

25


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

Число строк: ~ 16

Общий объем требуемой памяти: ~ 528 байт

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

Имя поля

Тип, длина

Длина(байт)

ID_predmeta

int

4

Naimenovanie

Varchar(25)

25


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

Число строк: ~ 6

Общий объем требуемой памяти: ~ 174 байт

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

Имя поля

Тип, длина

Длина(байт)

Id_fakulteta

int

4

Nazvanie

Varchar(25)

25


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

Число строк: ~ 4

Общий объем требуемой памяти: ~ 116 байт

Таблица 19. Расчет физической памяти для таблицы Абонемент АУЭС(abonement_AUES)

Имя поля

Тип, длина

Длина(байт)

Id_abonementa

int

4

Telefon

int

4

Adres

Varchar (20)

20


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

Число строк: ~ 1

Общий объем требуемой памяти: ~ 28байт

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

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

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


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

 

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


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

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

create database Azim1PRIMARY

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

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

 

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

 

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

create table fakultet(_fakulteta int Primary key,varchar(25) NOT NULL);table specialnost (_specialnosti int Primary key,_fakulteta int NOT NULL references fakultet(ID_fakulteta),varchar(25) NOT NULL);table gruppa(_gruppy int Primary key,_specialnosti int NOT NULL references specialnost(ID_specialnosti),varchar(25) NOT NULL);table chitatel(

#_chitatelskogo_bileta int primary key,_gruppy int not null references gruppa(ID_gruppy),varchar(25) NOT NULL,varchar(20) not null,varchar(25) not null);table abonement_AUES(_abonementa int primary key,int not null,varchar(20) not null);table sotrudnik(_sotrudnika int primary key,_abonementa int NOT NULL references abonement_AUES(ID_abonementa),varchar(25) NOT NULL,varchar(20) not null,varchar(25) not null,varchar(25) not null,int not null);table formulyar(_formulyara int primary key references chitatel(#_chitatelskogo_bileta),_sotrudnika int NOT NULL references sotrudnik(ID_sotrudnika),varchar(25) not null,_vydachi date not null,_vozvrata date not null);table knigi(int primary key,_abonementa int NOT NULL references abonement_AUES(ID_abonementa),varchar(20) not null,_vypuska int not null,varchar(25) not null,_ekzemplyarov int not null);table uchebnyi_plan(_uchebnogo_plana int primary key,_specialnosti int NOT NULL references specialnost(ID_specialnosti),varchar(25) not null);table formirovanie_komplekta(_komplekta int primary key,int not null references knigi(ISBN),_uchebnogo_plana int not null references uchebnyi_plan(ID_uchebnogo_plana),varchar(25) not null);table predmet(_predmeta int primary key references uchebnyi_plan(ID_uchebnogo_plana),varchar(25) not null);

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

 

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

Рисунок 15. Диаграмма физической модели данной базы данных

 

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


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

into fakultet(ID_fakulteta,Nazvanie)

values (1,'ÔÈÒ'),

(2,'ÝÝÔ'),

(3,'ÔÐÒÑ'),

(4,'ÒÝÔ');into specialnost(ID_specialnosti,ID_fakulteta,Nazvanie)

values         (1,1,'ÁÂÒ'),

(2,1,'ÁÈÑ'),

(3,2,'ÁÝÝ'),

(4,3,'ÁÐÝ'),

(5,4,'ÁÒÝ'),

(6,4,'ÁÀÓ');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');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,'Îëîëîåâ','Îëîëîø','Îëîëîøåâè÷');into abonement_AUES(ID_abonementa,Telefon,Adres)    

values         (1,'3457683','Áàéòóðñûíîâà 127');  

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

values         (1,1,'Ñåìåíîâ','Àëåêñåé','Áàðìåíîâè÷','Çàâåäóþùèé','123456'),

(2,1,'Ñåìåíîâà','Êóðàëàé','Àðõèìåäîâíà','Áèáëèîòåêàðü','234542'),

(3,1,'Ãèòàðàñòîâíà','Êàòèïàø','Ñîâåòæàíîâíà','Óáîùèöà','654768');into sotrudnik(ID_sotrudnika,ID_abonementa,Familiya,Imya,Otchestvo,Doljnost,Telefon)

values         (4,1,'Áàðëîó','Òðîé','Áîðõîâè÷','Áèáëèîòåêàðü','123135'),

(5,1,'Âàëèõàíîâà','Åëåíà','Àðõàòîâíà','Áèáëèîòåêàðü','234242'),

(6,1,'Êóíàíáàåâ','Øîêàí','Áàóðæàíîâè÷','Áèáëèîòåêàðü','788768');into formulyar(ID_formulyara,ID_sotrudnika,Rospis,Data_vydachi,Data_vozvrata)               (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');into            knigi(ISBN,ID_abonementa,Nazvanie,Avtor,God_vypuska,Kolichestvo_ekzemplyarov)              

values         (12345,1,'Ëåêöèè ïî ôèçèêå','×åðòîâ Ð.Ð.','1984','24'),

(12346,1,'Ïðèêëàäíàÿ ìåõàíèêà','Äèíàñûëîâ À.Ä.','1999','18'),

(12348,1,'Îñíîâû ýêîíîì.òåîðèè','Æàðàñïàåâà Ê.Ì','2007','24'),

(12349,1,'Îñíîâû êðèïòîãðàôèè','Øàéõèí Á.Ì.','2008','16'),

(12350,1,'Âûñøàÿ ìàòåìàòèêà','Õàñåèíîâ Ì.Á.','2007','23');into uchebnyi_plan(ID_uchebnogo_plana,ID_specialnosti,Nazvanie)   (11,1,'a'),

(12,2,'b'),

(13,3,'c'),

(14,4,'d'),

(15,5,'e'),

(16,6,'f');into predmet(ID_predmeta,Naimenovanie)

values         (11,'Ôèçèêà'),

(12,'Ìåõàíèêà'),

(13,'ÏÁÄ'),

(14,'ÎÝÒ'),

(15,'ÎÈÁ'),

(16,'Âûñø.Ìàò');into formirovanie_komplekta(ID_komplekta,ID_uchebnogo_plana,ISBN,Nazvanie)               (1,11,12345,'#1'),

(2,12,12346,'#2'),

(3,13,12347,'#3'),

(4,14,12348,'#4'),

(5,15,12349,'#5'),

(6,16,12350,'#6'),

(7,11,12345,'#7'),

(8,12,12346,'#8'),

(9,13,12347,'#9'),

(10,14,12348,'#10'),

(11,15,12349,'#11'),

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

 

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

 

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

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

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

VIEW GrupChitatgruppa.Nazvanie, chitatel.Familiyagruppa, chitatelgruppa.ID_gruppy=chitatel.#_chitatelskogo_bileta


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

view FamChitchitatel.Familiya,chitatel.Imya,chitatel.Otchestvo,chitatel.#_chitatelskogo_biletachitatel


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

view SotrFormulsotrudnik.Familiya,sotrudnik.Imya,sotrudnik.Doljnost,formulyar.Data_vydachi,formulyar.Data_vozvratasotrudnik,formulyarsotrudnik.ID_sotrudnika=formulyar.ID_formulyara


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

view ChitFormchitatel.Familiya, chitatel.Imya,chitatel.#_chitatelskogo_bileta, formulyar.Data_vydachichitatel,formulyarchitatel.#_chitatelskogo_bileta=formulyar.ID_formulyara


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

view KnigNazvEkzknigi.Nazvanie,knigi.Kolichestvo_ekzemplyarovknigi


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

view PredUchpredmet.Naimenovanie, uchebnyi_plan.Nazvaniepredmet,uchebnyi_planpredmet.ID_predmeta=uchebnyi_plan.ID_uchebnogo_plana


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

view sotrudnikisotrudnik.Familiya, sotrudnik.Imya, sotrudnik.Otchestvo, sotrudnik.Doljnost,sotrudnik.Telefonsotrudnik

Процедуры

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

(     @ISBN int,

@ID_abonementa int,  

@Nazvanie varchar(20),

@God_vypuska int,

@Avtor varchar(25),

@Kolichestvo_ekzemplyarov int)into knigi(@ISBN,@ID_abonementa,@Nazvanie,@God_vypuska,@Avtor,@Kolichestvo_ekzempprocedure spisok_knig

select distinct knigi.ISBN,knigi.Nazvanie as 'Íàçâàíèå', knigi.Avtor as 'Àâòîð',knigi.God_vypuska as 'Ãîä âûïóñêà',.Kolichestvo_ekzemplyarov as 'Êîëè÷åñòâî ýêçåìïëÿðîâ'

from knigi

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

procedure spisok_sotrudniki

select distinct sotrudnik.Familiya,sotrudnik.Imya,sotrudnik.Otchestvo as 'ÔÈÎ', sotrudnik.Doljnost as 'Äîëæíîñòü',sotrudnik.Telefon as 'Òåëåôîí'

from sotrudnik

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

procedure spisok_chitatelidistinct chitatel.Familiya,chitatel.Imya,chitatel.Otchestvo chitatel

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

procedure avtor_knig

(@Avtor varchar(25))

as select distinct knigi.Nazvanie as 'Íàçâàíèå',knigi.Avtor as 'Àâòîð', .Kolichestvo_ekzemplyarov as 'Êîëè÷åñòâî ýêçåìïëÿðîâ'

from knigi

exec avtor_knig '×åðòîâ Ð.Ð.'

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

procedure dobavlenie_sotrudnika

(     @ID_sotrudnika int,

@ID_abonementa int,  

@Familiya varchar(25),

@Imya varchar(20),

@Otchestvo varchar(25),

@Doljnost varchar(25),

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

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

procedure dobavlenie_chitatelya

(     @#_chitatelskogo_bileta int,

@ID_gruppy int,

@Familiya varchar(25),

@Imya varchar(20),

@Otchestvo varchar(25))into chitatel(@#_chitatelskogo_bileta,@ID_gruppy,@Familiya,@Imya,@Otchestvo)

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

procedure dobavlenie_gruppy

(     @ID_gruppy int,    

@ID_specialnosti int,into gruppa(@ID_gruppy,@ID_specialnosti,@Nazvanie)

Функции

Подсчет дней между датой выдачи и датой возврата комплекта.Function data (@d int)int@data date;@data1 date;@a int;distinct @data = Data_vydachiformulyarformulyar.ID_formulyara=@dDistinct @data1 = Data_vozvrataformulyarformulyar.ID_formulyara=@d@a =(select DATEDIFF (DD, @data,@data1))@adbo.data (4)

Триггеры

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

trigger unique_sotrsotrudnikinsert, update@ID_sotrudnika int;@ID_abonementa int;@Familiya varchar(25);@Imya varchar(20);@Otchestvo varchar(25);@Doljnost varchar(25);@Telefon int;@count int;@ID_sotrudnika=ID_sotrudnika,@ID_abonementa=ID_abonementa,@Familiya=Familiya,@Imya=Imya,@Otchestvo=Otchestvo,

@Doljnost=Doljnost,@Telefon=Telefoninserted@count=COUNT(*) sotrudnik@ID_sotrudnika=ID_sotrudnika @ID_sotrudnika=ID_sotrudnika @ID_abonementa=ID_abonementa@Familiya=Familiya@Imya=Imya @Otchestvo=Otchestvo@Doljnost=Doljnost@Telefon=Telefon@count>1TRAN

RAISERROR ('Íåëüçÿ, óæå åñòü', 16,10)

END

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

trigger unique_chitchitatelinsert, update@#_chitatelskogo_bileta int;@ID_gruppy int;@Familiya varchar(25);@Imya varchar(20);@Otchestvo varchar(25);@count int;@#_chitatelskogo_bileta=@#_chitatelskogo_bileta,@ID_gruppy=ID_gruppy,@Familiya=Familiya,@Imya=Imya,@Otchestvo=Otchestvoinserted@count=COUNT(*) chitatel@#_chitatelskogo_bileta=@#_chitatelskogo_bileta@ID_gruppy=ID_gruppy @Familiya=Familiya@Imya=Imya @Otchestvo=Otchestvo@count>1TRAN

RAISERROR ('Íåëüçÿ, óæå åñòü òàêîé ÷èòàòåëü', 16,10)

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

TRIGGER Data_raznicaformulyarupdate,insert@Data_vydachi date@Data_vozvrata date@Data_vydachi=Data_vydachiinserted@Data_vydachi>GETDATE()tran

raiserror('Äàòà âûäà÷è íå ìîæåò áûòü ïîçæå òåêóùåé äàòû',16,10)

end

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

trigger unique_up_inknigiinsert, update@ISBN int;@Nazvanie varchar(20);@God_vypuska int;@Avtor varchar(25);@Kolichestvo_ekzemplyarov int;@count int;@ISBN=ISBN,@Nazvanie=Nazvanie,@God_vypuska=God_vypuska,@Avtor=Avtor,@Kolichestvo_ekzemplyarov=Kolichestvo_ekzemplyarov inserted@count=COUNT(*) knigi @ISBN=ISBN @Nazvanie=Nazvanie @God_vypuska=God_vypuska@Avtor=Avtor@Kolichestvo_ekzemplyarov=Kolichestvo_ekzemplyarov @count>1TRAN

RAISERROR ('Òàêàÿ êíèãà óæå ñóùåñòâóåò', 16,10)

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


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

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

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

_addlogin 'user', 'user','Azim';

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

_adduser 'user';

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

_addrole 'administrators';

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

_addrolemember 'administrators', 'admin';

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

select, insert, update, delete to admin;

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

_addrole 'oper_reg';

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

sp_addrolemember 'oper_reg','user';

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

select, update on dbo.ChitForm to oper_reg;select, update on dbo.FamChit to oper_reg;select,update on dbo.FormirKNIG to oper_reg;select, update on dbo.GrupChitat to oper_reg;select, update on dbo.KnigNazvEkz to oper_reg;select, update on dbo.PredUch to oper_reg;select, update on dbo.SotrFormul to oper_reg;select, update on dbo.sotrudniki to oper_reg;

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


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

Приложение дает право директору изменять данные в таблицах, добавлять и удалять строки из всех таблиц. В случае неверного пароля или логина выходит сообщение. Запускаем приложение

Перед нами появляется форма авторизации, необходимо ввести свой пароль и пароль


Выбираем логин(например admin) и авторизуемся


Открывается форма с множеством вкладок


На каждой вкладке мы можем добавить запись






Теперь авторизуемся по логином user


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





Заключение


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

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

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


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

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

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

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

Похожие работы на - Информационная система 'Абонемент библиотеки'

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!