Автоматизация выдачи книг в школьной библиотеке

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

Автоматизация выдачи книг в школьной библиотеке

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

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

«ПЕРМСКИЙ ГОСУДАРСТВЕННЫЙ ГУМАНИТАРНО-ПЕДАГОГИЧЕСКИЙ УНИВЕРСИТЕТ»

КАФЕДРА ПРИКЛАДНОЙ ИНФОРМАТИКИ







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

Предмет: «Информационная система»

Тема: «Автоматизация выдачи книг в школьной библиотеке»

Работу выполнила:

студентка Z1243ГМУ группы

факультета информатики и экономики

Руководитель: доцент, кандидат технических наук

Симакина Надежда Ивановна



Пермь 2017

Оглавление

Введение

1. Проектирование ИС «Автоматизация выдачи книг в школьной библиотеке»

1.1 Концептуальное проектирование

1.1.1 Описание предметной области

1.1.2 Функциональное проектирование

1.1.3 Объекты и атрибуты

1.1.4 Связи между объектами

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

1.2.1 Упрощение концептуальной схемы

1.2.2 Таблицы и атрибуты

1.2.3 Функциональные зависимости

1.2.4 Нормализация таблиц

1.2.5 Реляционные связи

1.2.5.1 Обеспечение целостности данных

1.2.5.1.1 Доменная целостность

1.2.5.1.2 Категорийная целостность

1.2.5.1.3 Ссылочная целостность

1.2.6 Разработка реляционной схемы

1.3 Проектирование пользовательского интерфейса

1.3.1 Эскиз пользовательского интерфейса

1.3.2 Описание пунктов пользовательского интерфейса

2. Разработка приложения ИС «Автоматизация выдачи книг в школьной библиотеке» по технологии клиент-сервер

2.1 Создание базы данных и таблиц на Microsoft SQL Server

.2 Разработка запросов

2.3 Разработка процедур

2.4 Разработка триггеров

2.5 Разработка клиентской части информационной системы в Delphi 7

2.5.1 Установка соединения Delphi 7 с Microsoft SQL Server

2.5.2 Меню пользователей в приложении

2.5.3 Реализация SQL запросов в Delphi 7

Заключение

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

Введение


Настоящий документ содержит данные о выполнении курсовой работы, по дисциплине «Проектирование информационной системы», автоматизирующей работу сотрудника школьной библиотеки.

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

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

Практическую реализацию ИС «Автоматизация выдачи книг в школьной библиотеке» можно осуществить с помощью специальных средств: Microsoft SQL Server Management, Delphi 7. В процессе проектирования необходимо разработать ИС для предметной области «Автоматизация выдачи книг в школьной библиотеке», которая автоматизирует деятельность: по учёту книг и их выдачи; регистрацию читателей.

В данной курсовой работе рассмотрена деятельность школьной библиотеки МАОУ «СОШ №3» г. Горнозаводск.

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

Данная цель реализуется посредством решения конкретных задач:

создание концептуального проектирования;

рассмотрение логического проектирования ИС;

упрощение концептуальной схемы;

проведение нормализации таблиц;

определение целостности ИС;

разработка приложения по технологии клиент-сервер в Microsoft SQL Server Management;

разработка клиентской части ИС в среде Delphi 7.

1.      Проектирование ИС «Автоматизация выдачи книг в школьной библиотеке»


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

1.1 Концептуальное проектирование


Концептуальное проектирование ИС начинается с описания предметной области. А так же в концептуальное проектирование входит: функционального проектирования, выделения из описательной области объектов и атрибутов. Далее необходимо определить связи между объектами и указать степень участия, изобразить ER-диаграмму концептуального проектирования.

 

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

В МАОУ «СОШ №3» есть школьная библиотека. Организация МАОУ «СОШ №3» находится по адресу: г. Горнозаводск ул. Кирова д.6. Директорам организации является Демина Н.И., со школой можно связаться по контактным телефонам: +7-342-69-42-496 (секретарь, делопроизводитель), +7-342-69-42-279 (учебная часть), +7-342-69-41-076 (заместитель директора), +7-342-69-44-147 (школьная столовая). В школе обучаются школьники. Режим работы школы - шестидневный.

Школа большая, и для того, чтобы школьник мог найти в ней библиотеку, нужно знать расположение кабинетов. Библиотека находится на первом этаже, в кабинете №1. В школьной библиотеке происходит хранение, выдача и сдача книг. На каждого читателя библиотекарь заводит документ (абонемент), который хранится в библиотеке. Сотрудником библиотеки является библиотекарь - Костарева Н.А.

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

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

Библиотекарю присваиваются следующие данные:

·        Табельный номер;

·        Ф.И.О. библиотекаря;

·        Адрес библиотекаря;

·        Номер телефона;

·        Паспортные данные (серия и номер);

·        Должность.

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

·        Табельный номер читателя;

·        Ф.И.О. читателя;

·        Адрес читателя;

·        Номера телефонов;

·        Класс;

·        Буква класса.

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

Приложение АС «Автоматизация выдачи книг в школьной библиотеке» предназначена для автоматизации учета работы библиотеки.

Учет необходим в целях:

·        Обеспечения контроля выдачи (сдачи) книг;

·        Упрощения процесса выдачи (сдачи) книг;

·        Быстрого поиска и местонахождения книг в школьной библиотеке;

·        Облегчить процесс обслуживания читателей;

·        Быстрого составления списка читателей, которые вовремя не сдали книги в библиотеку;

·        Облегчить и автоматизировать работу сотрудника библиотеки.

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

.        Библиотекарь;

.        Школьник.

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

1.      Библиотекарь:

·        Просмотр: списка книг, информацию о школе, информацию о сотрудниках, абонементы читателей;

·        Отмечать факт выдачи книг(и) школьнику;

·        Отмечать в абонементе(ах) о факте сдачи книг(и) школьниками;

·        Регистрация впервые пришедших школьников в библиотеку;

·        Производить поиск книг;

·        Редактировать: информацию о читателях, список книг, информацию о сотруднике;

·        Удаление: информации о школьниках, выбывающих из школы; книг;

·        Добавление новых книг;

·        Просмотр абонементов читателей, информацию о школе, информацию о сотрудниках, инвентарную книгу;

·        Поиск книг.

2.      Школьник:

·        Просмотр информации о школе, информации о сотрудниках, информации о библиотеке, списка всех книг;

·        Производить поиск книг в библиотеке.

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

) Регистрация школьника.

проверка документов о регистрации школьника;

оформление документов при регистрации школьника;

занесение данных о школьнике в документы.

) Выдача книг.

проверка регистрации школьника;

проверка документов о невозвращенных книгах;

оформление документов о выдаче книг.

) Возврат книг.

оформление документов о возврате книг;

формирование списка невозвращенных книг.

 

.1.2 Функциональное проектирование

Функция - некоторый преобразователь входных объектов в выходные. Последовательность взаимосвязанных по входным и выходным функций составляет бизнес-процесс. Бизнес- процесс всегда состоит из нескольких действий. Функция бизнес-процесса может порождать объекты любой природы (материальные, денежные, информационные). Использовалось программное средство BPwin для построения диаграмм. Ниже представлена контекстная диаграмма «Деятельность школьной библиотеки».

Контекстная диаграмма «Деятельность школьной библиотеки».

На следующей диаграмме представлены бизнес - процессы деятельности школьной библиотеки (Рис.).

Декомпозиция контекстной диаграммы.

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

Диаграмма декомпозиции бизнес-процесса «Регистрация школьника».

Диаграмма декомпозиции бизнес-процесса «Выдача книг».

Диаграмма декомпозиции бизнес-процесса «Возврат книг».

Диаграмма дерево узлов «Деятельность школьной библиотеки».

Диаграмма потоков данных для под бизнес-процесса «Оформление документов при регистрации школьников».

 

.1.3 Объекты и атрибуты

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

Из описания предметной области можно выделить объекты и атрибуты.

Таблица 1.Объекты и атрибуты.

Объекты

Атрибуты

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

ШКОЛА

Инд_ном_шк_лы Инд_ном_биб_ки Название_учр ФИО_дир Адрес_учр Тел_шк_лы

Инд_ном_шк_лы

БИБЛИОТЕКА

Инд_ном_биб_ки Номер_выд Этаж Кабинет

Инд_ном_биб_ки

КНИГИ

Инд_ном_кн Автор_кн Название_кн Цена_кн Год_издан Назван_изд_ва_кн Место_в_биб_ке Инд_ном_биб_ки Ценная_кн

Инд_ном_кн

АБОНЕМЕНТ

Номер_выд Инд_ном_кн Инд_ном_шк_ка Дата_выд Дата_сд Дата_посещ Сдал

Номер_выд

ШКОЛЬНИК

Инд_ном_шк_ка ФИО_шк_ка Класс Буква_кл Адрес_шк_ка Тел_шк_ка

Инд_ном_шк_ка

СОТРУДНИК_БИБ_КИ    

Таб_ном Инд_ном_биб_ки ФИО_сотр Адрес_сотр Паспорт_дан Тел_сотр Должность

Таб_ном    


1.1.4 Связи между объектами

Для связи объектов друг с другим объектом используется семантическая методология см. табл.2.

Таблица 2.Спецификация связей.

Связь

Объект

Показатель кардинальности

Степень участия

РАБОТАЕТ

БИБЛИОТЕКА СОТРУДНИК_БИБ_КИ

1:М

Полная Частичная

ВЫДАЧА_КНИГ

БИБЛИОТЕКА АБОНЕМЕНТ

М:1

Полная Полная

ВОЗВРАТ_КНИГ

АБОНЕМЕНТ ШКОЛЬНИК

М:1

Полная Частичная

ХРАНЯТСЯ

БИБЛИОТЕКА КНИГИ

1:М

Полная Полная

ИМЕЕТСЯ

ШКОЛА БИБЛИОТЕКА

М:1

Полная Полная

 


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


Логическое проектирование - это второй этап проектирования ИС, включающий в себя:

)        Упрощение концептуальной модели;

)        Таблицы и атрибуты;

)        Функциональные зависимости;

)        Нормализация таблиц;

)        Реляционные связи;

)        Обеспечение целостности данных;

)        Разработка реляционной схемы.

1.2.1 Упрощение концептуальной схемы

Рассмотрим объект ШКОЛА. В школе есть несколько телефонов для связи. Нужно из объекта ШКОЛА исключить атрибут Тел_шк_лы и сделать его объектом. И связать его с объектом ШКОЛА.

1.2.2 Таблицы и атрибуты

Используя ЕR-диаграмму предметной области и упрощение ER-диаграммы, можно составить таблицу (табл.3).

Таблица 3.Таблицы и атрибуты.

Объект

Таблицы

Атрибуты

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

ШКОЛА


Инд_ном_шк_лы Инд_ном_биб_ки ФИО_дир Адрес_учр Название_учр

Инд_ном_шк_лы


ТЕЛ_ШК_ЛЫ

Инд_ном_шк_лы Телефон Для_связи_с

Телефон

БИБЛИОТЕКА


Инд_ном_биб_ки Номер_выд Этаж Кабинет

Инд_ном_биб_ки

КНИГИ


Инд_ном_кн Автор_кн Название_кн Цена_кн Год_издан Назван_изд_ва_кн Место_в_биб_ке Инд_ном_биб_ки Ценная_кн

Инд_ном_кн

АБОНЕМЕНТ


Номер_выд Инд_ном_кн Инд_ном_шк_ка Дата_выд Дата_сд Дата_посещ Сдал

Номер_выд

ШКОЛЬНИК 


Инд_ном_шк_ка Адрес_шк_ка ФИО_шк_ка Класс Буква_кл Тел_шк_ка

Инд_ном_шк_ка

СОТРУДНИК_ БИБ_КИ


Таб_ном Инд_ном_биб_ки ФИО_сотр Адрес_сотр Паспорт_дан Должность Тел_сотр

Таб_ном

 

.2.3 Функциональные зависимости

Функциональные зависимости (далее ФЗ) позволяют описать связь между атрибутами отношения (таблиц). Значение одного атрибута однозначно определяет значение другого атрибута. Запишем все функциональные зависимости:

ФЗ-1 Объект ШКОЛА.

Инд_ном_шк_лы {Инд_ном_биб_ки, ФИО_дир, Адрес_учр, Название_учр}

ФЗ-2 Объект ТЕЛ_ШК_ЛЫ.

Телефон { Инд_ном_шк_лы , Для_связи_с}

ФЗ-3 Объект БИБЛИОТЕКА.

Инд_ном_биб_ки {Номер_выд, Этаж, Кабинет}

ФЗ-4 Объект КНИГИ.

Инд_ном_кн {Автор_кн, Название_кн, Цена_кн, Год_издан, Назван_изд_ва_кн, Место_в_биб_ке, Инд_ном_биб_ки, Ценная_кн}

ФЗ-5 Объект АБОНЕМЕНТ.

Номер_выд {Инд_ном_кн, Инд_ном_шк_ка, Дата_выд, Дата_сд, Дата_посещ, Сдал}

ФЗ-6 Объект ШКОЛЬНИК.

Инд_ном_шк_ка {Адрес_шк_ка, ФИО_шк_ка, Класс, Буква_кл, Тел_шк_ка}

ФЗ-7 Объект СОТРУДНИК_БИБ_КИ.

Таб_ном {Инд_ном_биб_ки, ФИО_сотр, Адрес_сотр, Паспорт_дан, Должность, Тел_сотр}.

Рассмотрев функциональные зависимости, необходимо привести все таблицы к третьей нормальной форме.

 

.2.4 Нормализация таблиц

Нормализация отношений (таблиц) - это процесс приведения реляционных таблиц к стандартному виду, иначе процесс преобразования исходной схемы в более простую, исключающие все нежелательные аномалии (обновления, удаления, ввода).

Нужно привести все отношения к третьей нормальной форме (3НФ). Для этого нужно первоначально привести все отношения к первой нормальной форме (1НФ), потом ко второй нормальной форме (2НФ), затем к 3НФ. Нормализацию осуществим поэтапно.

Приведём таблицы к 1НФ. Таблицы: ШКОЛА, ТЕЛ_ШК_ЛЫ, БИБЛИОТЕКА, КНИГИ, АБОНЕМЕНТ, ШКОЛЬНИК, СОТРУДНИК_БИБ_КИ - находятся в 1НФ, так как все атрибуты этих отношений простые (табл. 3).

Таблицы: ШКОЛА, ТЕЛ_ШК_ЛЫ, БИБЛИОТЕКА, КНИГИ, АБОНЕМЕНТ, ШКОЛЬНИК, СОТРУДНИК_БИБ_КИ - находятся в 2НФ, так как они находятся в 1НФ и имеют первичные ключи: Инд_ном_шк_лы, Телефон, Инд_ном_биб_ки, Инд_ном_кн, Номер_выд, Инд_ном_шк_ка, Таб_ном.

Приведём таблицы к 3НФ. Таблицы: ШКОЛА, ТЕЛ_ШК_ЛЫ, БИБЛИОТЕКА, КНИГИ, АБОНЕМЕНТ, ШКОЛЬНИК, СОТРУДНИК_БИБ_КИ - находятся в 3НФ, так как они приведены ко 2НФ и все не ключевые атрибуты взаимонезависимы и полностью зависят от ключа (ФЗ-1 - ФЗ-7). [1]

 

.2.5 Реляционные связи

Для связи таблиц используется механизм первичных (ПК) и внешних ключей (ВК) таблицы.

Таблица 4.Реляционные связи.

Тип связи

Связь

Таблица

Статус таблицы

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

1:М

РАБОТАЕТ

БИБЛИОТЕКА

Родительская

Инд_ном_биб_ки (ПК)



СОТРУДНИК_БИБ_КИ

Дочерня

Инд_ном_биб_ки (ВК) Таб_ном (ПК)

1:М

ХРАНЯТСЯ

БИБЛИОТЕКА

Родительская

Инд_ном_биб_ки (ПК)



КНИГИ

Дочерняя

Инд_ном_кн (ПК) Инд_ном_биб_ки (ВК)

М:1

ВЫДАЧА_ КНИГ

БИБЛИОТЕКА

Дочерняя

Инд_ном_биб_ки (ПК) Номер_выд (ВК)



АБОНЕМЕНТ

Родительская

Номер_выд (ПК)

М:1 

ВОЗВРАТ_ КНИГ

АБОНЕМЕНТ

Дочерняя

Номер_выд (ПК) Инд_ном_шке_ка (ВК)



ШКОЛЬНИК

Родительская

Инд_ном_шк_ка (ПК)

М:1

ИМЕЕТСЯ

БИБЛИОТЕКА

Родительская

Инд_ном_биб_ки (ПК) Инд_ном_шк_лы (ПК)



ШКОЛА

Дочерняя

Инд_ном_биб_ки (ВК)

1:М

ЕСТЬ

ШКОЛА

Родительская

Инд_ном_шк_лы (ПК)



ТЕЛ_ШК_ЛЫ

Дочерняя

Инд_ном_шк_лы (ВК) Телефон (ПК)


Рассмотрев реляционные связи необходимо обеспечить целостность данных Базы Данных (далее- БД).

 

.2.5.1 Обеспечение целостности данных

При проектировании ИС необходимо создать наиболее эффективную структуру данных. Признаками эффективности структуры ИС считается:

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

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

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

Целостности данных - это ограничения на значения, которые могут принимать атрибуты. Чтобы информация, хранящаяся в ИС, была однозначной и непротиворечивой, в реляционной схеме ставят некоторые ограничительные условия.

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

Важнейшими ограничениями целостности данных являются:

·        доменная целостность;

·        категорийная целостность;

·        ссылочная целостность;

·        корпоративная целостность.

 

.2.5.1.1 Доменная целостность

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

Таблица 5. Ограничения домена.

Атрибут

Тип данных атрибута

Домен

Обеспечение целостности

Этаж

Число

=1 символ

Обязательны: да Индексированы: нет

Кабинет

Число

=3 символа

Обязательны: да Индексированы: нет

Автор_кн

Текстовый

=255 символов

Обязательны: да Индексированы: нет

Название_кн

Текстовый

=255 символов

Обязательны: да Индексированы: нет

Дата_выд

Дата/Время

=GETDATE ()

Обязательны: да Индексированы: да

Дата_посещ

Дата/Время

= GETDATE ()

Обязательны: да Индексированы: да

Дата_сд

Дата/Время

Дата_сд - Дата_выд = 14  Дата_сд < Дата_выд

Обязательны: да Индексированы: да

Название_учр

Текстовый

=200 символов

Обязательны: да Индексированы: нет

Адрес_учр

Текстовый

Обязательны: да Индексированы: нет

ФИО_дир

Текстовый

=70 символов

Обязательны: да Индексированы: нет

ФИО_сотр

Текстовый

=100 символов

Обязательны: да Индексированы: нет

Адрес_сотр

Текстовый

=255 символов

Обязательны: да Индексированы: нет

Паспорт_дан

Текстовый

=10 символов

Обязательны: да Индексированы: нет

Должность

Текстовый

=255 символов

Обязательны: да Индексированы: нет

Тел_сотр

Число

=11символам

Обязательны: да Индексированы: да

Телефон

Число

=11символам

Обязательны: да Индексированы: да

для_связи_с

Текстовый

=70 символов

Обязательны: нет Индексированы: нет

ФИО_шк_ка

Текстовый

=70 символов

Обязательны: да Индексированы: нет

Адрес_шк_ка

Текстовый

=100 символов

Обязательны: нет Индексированы: нет

Класс

Целое число

=1 символ  >=1 <=11

Обязательны: да Индексированы: да

Буква_кл

Текстовый

= 1 символ

Обязательны: да Индексированы: да

Тел_шк_ка

Число

=11символам

Обязательны: да Индексированы: да


Все остальные атрибуты принимают значения в соответствии с типом данных.

 

.2.5.1.2 Категорийная целостность

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

Первичные ключи таблиц должны быть обязательно заполнены и индексированы.

Таблица 6. Категорный тип связи

Наименование (таблица)

Тип данных

Домен

Ограничения

Таб_ном (СОТРУДНИК_БИБ_КИ)

Счетчик

>=1

Обязательный: Да Индексированный: Да

Инд_ном_биб_ки (БИБЛИОТЕКА)

Счетчик

>=1

Обязательный: Да Индексированный: Да

Инд_ном_кн (КНИГИ)

Счетчик

>=1

Обязательный: Да Индексированный: Да

Номер_выд (АБОНЕМЕНТ)

Счетчик

>=1

Обязательный: Да Индексированный: Да

Инд_ном_шк_ка (ШКОЛЬНИК)

Счетчик

>=1

Обязательный: Да Индексированный: Да

Инд_ном_шк_лы (ШКОЛА)

Счетчик

>=1

Обязательный: Да Индексированный: Да

Телефон (ТЕЛ_ШК_ЛЫ)

Числовой

>=1

Обязательный: Да Индексированный: Да


1.2.5.1.3 Ссылочная целостность

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

Внешние ключи должны быть индексированными, так как ссылка на отсутствующее значение запрещена.

Таблица 7. Ссылочный тип связи

Наименование (таблица)

Тип данных

Домен

Ограничения

Инд_ном_биб_ки (ШКОЛА)

Счетчик

>=1

Обязательный: Да Индексированный: Да

Инд_ном_шк_лы (ТЕЛ_ШК_ЛЫ)

Счетчик

>=1

Обязательный: Да Индексированный: Да

Инд_ном_биб_ки (КНИГИ)

Счетчик

>=1

Обязательный: Да Индексированный: Да

Инд_ном_шк_ка (АБОНЕМЕНТ)

Счетчик

>=1

Обязательный: Да Индексированный: Да

Номер_выд (БИБЛИОТЕКА)

Счетчик

>=1

Обязательный: Да Индексированный: Да

Инд_ном_биб_ки (СОТРУДНИКИ)

Счетчик

>=1

Обязательный: Да Индексированный: Да


1.2.6 Разработка реляционной схемы

На основании пунктов проделанных выше, схема данных ИС «Автоматизация выдачи книг в школьной библиотеке». Следуя описанию предметной области, между объектами можно установить связи, использую программу Erwin Data Modeler.

Диаграмма связи между объектами.

 

.3 Проектирование пользовательского интерфейса


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

)        Создание эскиза пользовательского интерфейса;

)        Описание пунктов пользовательского интерфейса.

Также для проектирования пользовательского интерфейса были разработаны диаграммы в программе Rational Rose:

·        главная диаграмма прецедентов (Рис.);

·        вспомогательная диаграмма деятельности (Рис.);

·        диаграмма классов (Рис.);

·        диаграммы деятельности для каждого бизнес-процесса (Рис.);

·        диаграммы деятельности для потока событий (декомпозиция каждого действия деятельности бизнес-процесса) (Рис.);

·        диаграмма деятельности для действий в ИС (Рис.);

·        диаграммы последовательности для каждого бизнес-процесса (Рис.);

·        диаграммы коопераций каждого бизнес-процесса (Рис.);

·        диаграмма состояний (Рис.).

Рассмотрим перечисленные диаграммы ниже.

Главная диаграмма прецедентов.

Вспомогательная диаграмма.

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

Диаграмма деятельности бизнес-процесса «Регистрация школьника».

Диаграмма деятельности бизнес-процесса «Выдача книг».

Диаграмма деятельности бизнес-процесса «Возврат книг».

Диаграмма деятельности для потока событий «Проверка регистрации школьника».

Диаграмма деятельности для потока событий «Ввод данных для регистрации школьника в библиотеке».

Диаграмма деятельности для потока событий «Проверка о регистрации школьника».

Диаграмма деятельности для потока событий «Оформление факта выдачи книги».

Диаграмма деятельности для потока событий «Подтверждение правильности введенных данных ».

Диаграмма деятельности для потока событий « Поиск Читательского билета».

Диаграмма деятельности для потока событий «Отмечаем факт возврата книги».

Диаграмма деятельности для потока событий «Формирование информации о невозвращенных книг».

Диаграмма деятельности для действия «Добавить книгу».

Диаграмма деятельности для действия «Изменить информацию о книге».

Диаграмма деятельности для действия «Удалить книгу».

Диаграмма деятельности для действия «Зарегистрировать читателя».

Диаграмма деятельности для действия «Изменить информацию о читателе».

Диаграмма деятельности для действия «Удалить читателя».

Диаграмма деятельности для действия «Выдать книгу».

Диаграмма деятельности для действия «Изменить информацию о выдаче книги».

Диаграмма деятельности для действия «Удалить выдачу книги».

Диаграмма деятельности для действия «Поиск книг».

Диаграмма деятельности для действия «Поиск читателя».

Диаграмма деятельности для действия «Поиск абонемента читателя».

Диаграмма последовательности для бизнес - процесса «Регистрация школьника».


Диаграмма последовательности для бизнес - процесса «Выдача книг».

Диаграмма последовательности для бизнес - процесса «Возврат книг».

Диаграмма кооперации бизнес - процесса «Регистрация школьника».

Диаграмма кооперации бизнес - процесса «Выдача книг».

Диаграмма кооперации бизнес - процесса «Возврат книг».

Диаграмма состояний «Вход пользователей в БД».

1.3.1 Эскиз пользовательского интерфейса

К проектируемой базе данных будут иметь доступ две категории пользователей библиотекарь, школьник. На рисунке представлен эскиз «Подключение», через которое пользователи попадают в соответствующее меню.

1.3.2 Описание пунктов пользовательского интерфейса

Необходимо описать действия разных пользователей в своем меню и работой с соответствующей информацией. В таблице 8 описаны пункты меню «ПОДКЛЮЧЕНИЕ…».

Таблица 8. Подключение...

Команда

Назначение

Аутентификация пользователя

Аутентификация пользователя. Переход к конкретному меню конкретного пользователя.

Выход

Выход из приложения


В таблице 9 описаны пункты меню «Меню библиотекаря».

Таблица 9. Меню библиотекаря.

Команда

Назначение

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

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

Информация

Изменение и просмотр информации: о читателе, о школе, о библиотеке, о сотруднике библиотеки.

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

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

Назад

Выход из приложения.


В таблице 10 описаны пункты меню «Меню читателя».

Таблица 10. Меню читателя.

Команда

Назначение

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

Просмотр информации о книге, о всех книгах. Производить поиск книг.

Информация

Просмотр информации: о школе, о библиотеке, о сотруднике библиотеки, контактные номера школы.

Назад

Выход из приложения.


Рассмотрев данную главу, необходимо преступить к следующей главе «Разработка приложения по технологии клиент-сервер».

2. Разработка приложения ИС «Автоматизация выдачи книг в школьной библиотеке» по технологии клиент-сервер


Для реализации ИС были выбраны программы Microsoft SQL Server, в качестве серверной части в Delphi 7- клиентской части.

Для начала работы необходимо запустить Microsoft SQL Server Management Studio. Для этого необходимо последовательно открыть: «Пуск»-« Microsoft SQL 2014 Management Studio».

Запуск программы MS SQLServer через меню «Пуск»

Дальше необходимо подключить сервер, выбираем имя сервера и нажимаем «Соединить».

Подключение к MS SQLServer.

После чего появляется рабочая область программы:

Рабочая область программы.

Для создания базы данных используется команда create database(Имя базы данных). Для ее выполнения введем:

CREATE DATABASE [Автоматизация выдачи книг в школьной библиотеке]

Нажимаем «Выполнить» на панели инструментов (Красный восклицательный знак), либо «Запрос» - «Выполнить». Получим сообщение об успешно выполнении команды.

Создание базы данных при помощи SQL запрос.

В левой части в списке «Базы данных» появится название только что созданной базы данных.

Создана база данных в MS SQLServer.

2.1 Создание базы данных и таблиц на Microsoft SQL Server


Переключимся на созданную базу данных и создадим таблицы с помощью команды create table.

Создадим таблицу «ШКОЛА». Для этого введем:

CREATE TABLE [dbo].[ШКОЛА](

[Инд_ном_шк_лы] [int] IDENTITY(1,1) NOT NULL,

[Инд_ном_биб_ки] [int] NOT NULL,

[Название_учр] [nvarchar](200) NOT NULL,

[Адрес_учр] [nvarchar](255) NOT NULL,

[ФИО_дир] [nvarchar](70) NOT NULL)

Создание таблицы «Школа»

Создадим таблицу под названием «АБОНЕМЕНТ»:

CREATE TABLE [dbo].[АБОНЕМЕНТ](

[Номер_выд] [int] IDENTITY(1,1) NOT NULL,

[Инд_ном_кн] [int] NOT NULL,

[Инд_ном_шк_ка] [int] NOT NULL,

[Дата_выд] [date] NOT NULL,

[Дата_сд] [date] NOT NULL,

[Дата_посещ] [date] NULL,

[Сдал] [bit] NOT NULL)

Создание таблицы «Абонемент»

Создадим таблицу под названием «БИБЛИОТЕКА»:

CREATE TABLE [dbo].[БИБЛИОТЕКА](

[Инд_ном_биб_ки] [int] IDENTITY(1,1) NOT NULL,

[Этаж] [nvarchar](1) NOT NULL,

[Кабинет] [nvarchar](3) NOT NULL,

[Номер_выд] [int] NOT NULL)

Создание таблицы «Библиотека»

Создадим таблицу под названием «Книги»:

CREATE TABLE [dbo].[КНИГИ](

[Инд_ном_кн] [int] IDENTITY(1,1) NOT NULL,

[Автор_кн] [nvarchar](255) NOT NULL,

[Название_кн] [nvarchar](255) NOT NULL,

[Цена_кн] [money] NOT NULL,

[Год_издан] [int] NOT NULL,

[Назван_изд_ва_кн] [nvarchar](255) NOT NULL,

[Инд_ном_биб_ки] [int] NOT NULL,

[Ценная_кн] [bit] NOT NULL,

[Место_в_биб_ке] [nvarchar](30) NULL)

Создание таблицы «Книги»

Создадим таблицу под названием «Пользователи»:

CREATE TABLE [dbo].[ПОЛЬЗОВАТЕЛИ](

[Логин] [varchar](20) NOT NULL,

[Пароль] [varchar](10) NOT NULL,

[Категория доступа] [varchar](20) NOT NULL)[PRIMARY]

GO

Создание таблицы «Пользователи»

Создадим таблицу под названием «Сотрудник библиотеки»:

CREATE TABLE [dbo].[СОТРУДНИК_БИБ_КИ](

[Таб_ном] [int] IDENTITY(1,1) NOT NULL,

[Инд_ном_биб_ки] [int] NOT NULL,

[ФИО_сотр] [nvarchar](100) NOT NULL,

[Адрес_сотр] [nvarchar](255) NOT NULL,

[Паспорт_дан] [nvarchar](10) NOT NULL,

[Должность] [nvarchar](255) NOT NULL,

[Тел_сотр] [decimal](11, 0) NOT NULL)

Создание таблицы «Сотрудник библиотеки»

Создадим таблицу под названием «Телефоны школы»:

CREATE TABLE [dbo].[ТЕЛ_ШК_ЛЫ](

[Инд_ном_шк_лы] [int] NOT NULL,

[Телефон] [decimal](11, 0) NOT NULL,

[для связи с] [nvarchar](70) NULL)

Создание таблицы «Телефоны школы»

Создадим таблицу под названием «Школьник»:

CREATE TABLE [dbo].[ШКОЛЬНИК](

[Инд_ном_шк_ка] [int] IDENTITY(1,1) NOT NULL,

[ФИО_шк_ка] [nvarchar](70) NOT NULL,

[Адрес_шк_ка] [nvarchar](100) NULL,

[Класс] [int] NOT NULL,

[Буква_кл] [nvarchar](1) NOT NULL,

[Тел_шк_ка] [decimal](11, 0) NOT NULL)

Создание таблицы «Школьник»

Нажимаем «Выполнить».

После чего необходимо связать таблицы между собой, построить диаграмму базы данных в приложении MS SQL Server.

Схема данных в MS SQL Server.

В результате получим базу данных, в которой созданы 8 таблиц.

Для это необходимо ввести:*from sys.objects where type in (N'U')

Список таблиц, созданных в базе данных.

Заполним базу данных, используя команду «insert».

Рассмотрим заполнение таблицы «Школа»:

insert into dbo.ШКОЛА (Инд_ном_биб_ки, Название_учр, Адрес_учр, ФИО_дир)

values (5,'МАОУ «СОШ №3» г.Горнозаводск','г.Горнозаводск. ул. Кирова 7 ','Дёмина Н.И.')

Заполнение таблицы «ШКОЛА»

Заполненная таблица «ШКОЛА»

Аналогично заполним остальные таблицы:

·        Таблица ТЕЛ_ШК_ЛЫdbo.ТЕЛ_ШК_ЛЫ (Инд_ном_шк_лы, Телефон, для связи с)(3, 8342694107, ‘Заместитель директора’)dbo.ТЕЛ_ШК_ЛЫ (Инд_ном_шк_лы, Телефон, для связи с)(3, 83426941835 , ‘Директор’)dbo.ТЕЛ_ШК_ЛЫ (Инд_ном_шк_лы, Телефон, для связи с)(3, 83426942279 , ‘Учебная часть’)dbo.ТЕЛ_ШК_ЛЫ (Инд_ном_шк_лы, Телефон, для связи с)(3, 83426942496 , ‘Секретарь, Делопроизводитель’)dbo.ТЕЛ_ШК_ЛЫ (Инд_ном_шк_лы, Телефон, для связи с)(3, 83426944147 , ‘Школьная столовая’)


Заполненная таблица «ТЕЛ_ШК_ЛЫ»

·        Таблица ШКОЛЬНИК

insert dbo.ШКОЛЬНИК (ФИО_шк_ка, Адрес_шк_ка, Класс, Буква_кл](‘Жернаков Евгений Николаевич’,’ ул. Премская, дом 95, кв. 209’,5, ‘а’,89527463110)

insert dbo.ШКОЛЬНИК (ФИО_шк_ка, Адрес_шк_ка, Класс, Буква_кл](‘Садыкова Лира Владимировна’,’ ул. Октябрьская 23, кв. 57’, 2 , ‘б’, 89024633002)

insert dbo.ШКОЛЬНИК (ФИО_шк_ка, Адрес_шк_ка, Класс, Буква_кл](‘Балдин Дмитрий Александрович’, ’ ул. Декабристов 108, кв. 110’, 5 , ‘г’, 89024646297)

insert dbo.ШКОЛЬНИК (ФИО_шк_ка, Адрес_шк_ка, Класс, Буква_кл](‘Миролюбова Екатерина Андреевна’,’ ул. Революционная, дом 5’, 3 ,‘а’, 89503731278)

insert dbo.ШКОЛЬНИК (ФИО_шк_ка, Адрес_шк_ка, Класс, Буква_кл](‘Афанасьев Егор Валерьянович’,‘ ул. 30 лет победы, дом 251, кв. 301’,3 , ‘а’, 89121016628)

insert dbo.ШКОЛЬНИК (ФИО_шк_ка, Адрес_шк_ка, Класс, Буква_кл](‘Серова Лариса Владимировна’, ‘ул. Комсомольская, дом 201, кв. 13’, 5, ‘в’, 89084627319 )

insert dbo.ШКОЛЬНИК (ФИО_шк_ка, Адрес_шк_ка, Класс, Буква_кл](‘Волгин Игорь Андреевич’, ‘ул. Сибирская, дом 20, кв. 1’, 6 , ‘а’, 89516483551)

insert dbo.ШКОЛЬНИК (ФИО_шк_ка, Адрес_шк_ка, Класс, Буква_кл](‘Магданов Егор Николаевич’,‘ ул. Проспект Декаабристов , дом 19, кв 206’, 2, ‘б’, 89026312992 )

insert dbo.ШКОЛЬНИК (ФИО_шк_ка, Адрес_шк_ка, Класс, Буква_кл](‘Лычковская Екатерина Дмитриевна’,‘ ул. Пермская, дом 301, кв. 58’, 5, ‘а’, 89923755697)

insert dbo.ШКОЛЬНИК (ФИО_шк_ка, Адрес_шк_ка, Класс, Буква_кл](‘Звездин Владимир Александрович’,‘ ул. Екатерининская, дом 36, кв 45’,6 , ‘б’, 89053711218 )

Заполнение таблицы «ШКОЛЬНИКИ»

Заполненная таблица «ШКОЛЬНИКИ»

·        Таблица СОТРУДНИК_БИБ_КИ

Insert [dbo].СОТРУДНИК_БИБ_КИ ( Инд_ном_биб_ки, ФИО_сотр, Адрес_сотр, Паспорт_дан, Должность, Тел_сотр)

VALUES (5 , ‘Костарева Надежда Александровна’, ‘г.Гонрозаводск, ул. Кирова, дом 6, кв 27’, ‘5946432886’, ‘библиотекарь’, 89526513544)

Заполнение таблицы «СОТРУДНИК_БИБ_КИ»

Заполненная таблица «СОТРУДНИК_БИБ_КИ»

·        Таблица ПОЛЬЗОВАТЕЛИ dbo.ПОЛЬЗОВАТЕЛИ (Логин, Пароль)

VALUES (‘библиотекарь’, ‘1995’)

INSERT dbo.ПОЛЬЗОВАТЕЛИ (Логин, Пароль)

VALUES (‘читатель’, ‘user’)

Заполнение таблицы «ПОЛЬЗОВАТЕЛИ»

Заполненная таблица «ПОЛЬЗОВАТЕЛИ»

·        Таблица КНИГИ

INSERT dbo.КНИГИ (Автор_кн, Название_кн, Цена_кн, Год_издан, Назван_изд_ва_кн, Инд_ном_биб_ки, Ценная_кн, Место_в_биб_ке)

VALUES( ‘Пушкин А.С.’, ‘Сказка о рыбаке и рыбке’, ‘305,5’ , 1995, ‘М:Просвещение’,5 ,0 , ‘2к3р’)

INSERT dbo.КНИГИ (Автор_кн, Название_кн, Цена_кн, Год_издан, Назван_изд_ва_кн, Инд_ном_биб_ки, Ценная_кн, Место_в_биб_ке)

VALUES( ‘Блок А.А.’, ‘Стихотворение’, ‘205,0’ , 2000 , ‘СП: Самовар’,5 ,0 , ‘1к2р’)

INSERT dbo.КНИГИ (Автор_кн, Название_кн, Цена_кн, Год_издан, Назван_изд_ва_кн, Инд_ном_биб_ки, Ценная_кн, Место_в_биб_ке)

VALUES( ‘Шекспир У.’, ‘Гамлет’, ‘401,5’ , 2001 , ‘М:Просвещение’,5 ,0 , ‘1к1р’)

INSERT dbo.КНИГИ (Автор_кн, Название_кн, Цена_кн, Год_издан, Назван_изд_ва_кн, Инд_ном_биб_ки, Ценная_кн, Место_в_биб_ке)

VALUES( ‘Лермонтов М.’, ‘Герой нашего времени’, ‘247,5’ , 2005 , ‘СП: Авангард’,5 ,0 , ‘1к1р’)

INSERT dbo.КНИГИ (Автор_кн, Название_кн, Цена_кн, Год_издан, Назван_изд_ва_кн, Инд_ном_биб_ки, Ценная_кн, Место_в_биб_ке)

VALUES( ‘Пушкин А.С.’, ‘Евгений Онегин’, ‘490,5’ , 1990 , ‘П: Молодая гвардия’,5 ,1 , ‘1к2р’)

INSERT dbo.КНИГИ (Автор_кн, Название_кн, Цена_кн, Год_издан, Назван_изд_ва_кн, Инд_ном_биб_ки, Ценная_кн, Место_в_биб_ке)

VALUES( ‘Носов Н.’, ‘Телефон’, ‘50,5’ , 1995 , ‘Л: Квазар’,5 ,0 , ‘2к1р’)

INSERT dbo.КНИГИ (Автор_кн, Название_кн, Цена_кн, Год_издан, Назван_изд_ва_кн, Инд_ном_биб_ки, Ценная_кн, Место_в_биб_ке)

VALUES( ‘Пушкин А.С.’, ‘Стихотворения’, ‘205,45’ , 1993 , ‘М:Просвещение’,5 ,0 , ‘1к2р’)

INSERT dbo.КНИГИ (Автор_кн, Название_кн, Цена_кн, Год_издан, Назван_изд_ва_кн, Инд_ном_биб_ки, Ценная_кн, Место_в_биб_ке)

VALUES( ‘Дж.Свифт’, ‘Путешествие Гулливера’, ‘456,59’ , 2017 , ‘СП: Авангард’,5 ,1 , ‘1к3р’)

INSERT dbo.КНИГИ (Автор_кн, Название_кн, Цена_кн, Год_издан, Назван_изд_ва_кн, Инд_ном_биб_ки, Ценная_кн, Место_в_биб_ке)

VALUES( ‘Грибоедов А.С.’, ‘Горе от ума’, ‘286,47’ , 1998 , ‘М:Просвещение’,5 ,0 , ‘1к3р’)

INSERT dbo.КНИГИ (Автор_кн, Название_кн, Цена_кн, Год_издан, Назван_изд_ва_кн, Инд_ном_биб_ки, Ценная_кн, Место_в_биб_ке)

VALUES( ‘Пушкин А.С.’, ‘Руслан и Людмила’, ‘401,50’ , 1995 , ‘Л: Квазар’,5 ,1 , ‘1к3р’)

INSERT dbo.КНИГИ (Автор_кн, Название_кн, Цена_кн, Год_издан, Назван_изд_ва_кн, Инд_ном_биб_ки, Ценная_кн, Место_в_биб_ке)

VALUES( ‘Пушкин А.С.’, ‘Стихотворения и поэмы.’, ‘579,00’ , 2002 , ‘М:Просвещение’,5 ,1 , ‘1к2р’)

INSERT dbo.КНИГИ (Автор_кн, Название_кн, Цена_кн, Год_издан, Назван_изд_ва_кн, Инд_ном_биб_ки, Ценная_кн, Место_в_биб_ке)

VALUES( ‘Грибоедов А.С.’, ‘Горе от ума.’, ‘201,59’ , 2016 , ‘М:Просвещение’,5 , 1, ‘1к1р’)

Заполнение таблицы «КНИГИ»

Заполненная таблица «КНИГИ»

·        Таблица БИБЛИОТЕКА

INSERT [dbo.БИБЛИОТЕКА (Этаж, Кабинет ,Номер_выд)(‘1’, ‘1’,20 )

Заполнение таблицы «БИБЛИОТЕКА»

Заполненная таблица «БИБЛИОТЕКА»

·        Таблица АБОНЕМЕНТdbo.АБОНЕМЕНТ (Инд_ном_кн, Инд_ном_шк_ка, Дата_выд, Дата_сд , Дата_посещ, Сдал)

VALUES (1,1, ‘2017-01-20’, ‘2017-02-03’,’ 2017-01-20’, 1)

INSERT dbo.АБОНЕМЕНТ ( Инд_ном_кн, Инд_ном_шк_ка, Дата_выд, Дата_сд , Дата_посещ, Сдал)

VALUES (2,5, ‘2017-01-10’, ‘2017-01-24’,’ 2017-01-10’,1 )

INSERT dbo.АБОНЕМЕНТ ( Инд_ном_кн, Инд_ном_шк_ка, Дата_выд, Дата_сд , Дата_посещ, Сдал)

VALUES (3,8, ‘2017-01-20’, ‘2017-02-03’,’ 2017-01-20’,1 )

INSERT dbo.АБОНЕМЕНТ ( Инд_ном_кн, Инд_ном_шк_ка, Дата_выд, Дата_сд , Дата_посещ, Сдал)

VALUES (4,9, ‘2017-01-09’, ‘2017-01-23’,’ 2017-01-09’,0 )

INSERT dbo.АБОНЕМЕНТ ( Инд_ном_кн, Инд_ном_шк_ка, Дата_выд, Дата_сд , Дата_посещ, Сдал)

VALUES (5,10, ‘2016-12-28’, ‘2017-01-11’,’ 2016-12-28’,0)

INSERT dbo.АБОНЕМЕНТ ( Инд_ном_кн, Инд_ном_шк_ка, Дата_выд, Дата_сд , Дата_посещ, Сдал)

VALUES (1,7, ‘2016-12-28’, ‘2017-01-11’,’ 2016-12-28’,0 )

INSERT dbo.АБОНЕМЕНТ ( Инд_ном_кн, Инд_ном_шк_ка, Дата_выд, Дата_сд , Дата_посещ, Сдал)

VALUES (6,6, ‘2016-12-11’, ‘2016-12-25’,’ 2016-12-11’,1 )

INSERT dbo.АБОНЕМЕНТ ( Инд_ном_кн, Инд_ном_шк_ка, Дата_выд, Дата_сд , Дата_посещ, Сдал)

VALUES (7,2, ‘2016-12-11’, ‘2016-12-25’,’ 2016-12-11’,0 )

INSERT dbo.АБОНЕМЕНТ ( Инд_ном_кн, Инд_ном_шк_ка, Дата_выд, Дата_сд , Дата_посещ, Сдал)

VALUES (8,8, ‘2017-01-09’, ‘2017-01-23’,’ 2017-01-09’,1 )

INSERT dbo.АБОНЕМЕНТ ( Инд_ном_кн, Инд_ном_шк_ка, Дата_выд, Дата_сд , Дата_посещ, Сдал)

VALUES (2,6, ‘2017-03-14’, ‘2017-03-28’,’ 2017-03-14’,0 )

Заполнение таблицы «АБОНЕМЕНТ»

Заполненная таблица «АБОНЕМЕНТ»

2.2 Разработка запросов

запросы обычно выполняют следующие задачи: создание, модификация и удаление таблиц базы данных; вставка информации (записей) в таблицы базы данных; редактирование информации (записей) в таблицах базы данных; выборка (извлечение) информации из таблиц базы данных; удаление информации (записей) из базы данных.

В пункте 2.1. курсовой работы показано создание и заполнение таблиц с помощью SQL запросов.

В данной работе будет рассмотрено создание следующих запросов:

)        Сколько всего книг было в библиотеке за все ее время существования.

)        Какие ценные книги есть в библиотеке.

)        Материальная ответственность библиотекаря.

)        Сколько штук есть книг каждого автора в библиотеке.

)        Сколько читателей в каждом классе.

)        Список читателей, которые не вернули выданную книгу в срок.

Рассмотрим создание запросов по порядку.

)        Сколько всего книг было в библиотеке за все ее время существования.

Для этого реализации данного запроса необходимо ввести код:TOP (100) PERCENT MAX(Инд_ном_кн) AS [Количество книг за все время существования библиотеки]

FROM dbo.КНИГИBY MAX(Инд_ном_кн)

Выполнение запроса «Сколько всего книг было в библиотеке за все ее время существования».

)        Какие ценные книги есть в библиотеке.

Для этого реализации данного запроса необходимо ввести код:TOP (100) PERCENT Место_в_биб_ке, Инд_ном_биб_ки, Назван_изд_ва_кн, Год_издан, Цена_кн, Название_кн, Автор_кн, Инд_ном_кнdbo.КНИГИ(Ценная_кн = 1)BY Ценная_кн

Выполнение запроса

«Какие ценные книги есть в библиотеке».

)        Материальная ответственность библиотекаря.

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

SUM(Цена_кн) AS [Сумма стоимости всех книг]dbo.КНИГИ

Выполнение запроса «Материальная ответственность библиотекаря».

4)      Сколько штук есть книг каждого автора в библиотеке.

Для этого реализации данного запроса необходимо ввести код:TOP (100) PERCENT Автор_кн, COUNT('Кол-во книг этого автора') AS [Кол-во книг этого автора]

FROM dbo.КНИГИBY Автор_кн

Выполнение запроса «Сколько штук есть книг каждого автора в библиотеке.»

)        Сколько читателей в каждом классе.

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

SELECT TOP (100) PERCENT Класс, Буква_кл, COUNT('Кол-во читателей в каждом классе') AS [Кол-во читателей в каждом классе]dbo.ШКОЛЬНИКBY Класс, Буква_клBY Класс, Буква_кл

Выполнение запроса «Сколько читателей в каждом классе».

6)      Список читателей, которые не вернули выданную книгу в срок.

Для этого реализации данного запроса необходимо ввести код:TOP (100) PERCENT dbo.ШКОЛЬНИК.ФИО_шк_ка, dbo.ШКОЛЬНИК.Класс, dbo.ШКОЛЬНИК.Буква_кл, dbo.АБОНЕМЕНТ.Дата_выд,.АБОНЕМЕНТ.Инд_ном_кнdbo.АБОНЕМЕНТ INNER JOIN.ШКОЛЬНИК ON dbo.АБОНЕМЕНТ.Инд_ном_шк_ка = dbo.ШКОЛЬНИК.Инд_ном_шк_ка(dbo.АБОНЕМЕНТ.Сдал = 0)BY dbo.ШКОЛЬНИК.Класс, dbo.ШКОЛЬНИК.Буква_кл, dbo.ШКОЛЬНИК.ФИО_шк_ка

Выполнение запроса «Список читателей, которые не вернули выданную книгу в срок».

Данные запросы необходимы для реализации клиентского приложения.

2.3 Разработка процедур


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

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

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

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

Для создания процедуры нужно использовать команду create procedure.

Данная команда имеет следующий синтаксис:

Create procedure Имя_процедуры; Номер

@Имя_переменной1Тип=Первоначальное_значение[OUTPUT],

@Имя_переменной2Тип=Первоначальное_значение[OUTPUT],

...

[тело процедуры]

Имя_процедуры-название данной процедуры в соответствии с общими правилами именования объектов базы данных. Если в названии процедуры используются недопустимые знаки, имя процедуры помещается в квадратные скобки [].

Номер - номер группы процедур.

@ Имя_переменной - с помощью этого аргумента описывают входные параметры процедуры. Имя параметра обязательно должно начинаться с @ и удовлетворять общим требованиям именования объектов.

Тип -тип входного параметра.

Первоначальное значение - с помощью этого аргумента определяется значение, которое будет присваиваться параметру автоматически, если при обращении к процедуре параметр не задан.

[OUTPUT] - это ключевое слово используется тогда, когда необходимо возвратить измененное значение входного параметра. То есть все параметры, которые изменяют свое исходное значение при выполнении процедуры, должны быть помечены OUTPUT.

В данной работе будет рассмотрено создание следующей процедуры:

)        Авторизация пользователя.

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

CREATE PROCEDURE [dbo].[Авторизация]

@login varchar (20),

@porol varchar (10),

@category varchar (20) OUTPUT@category=[Категория доступа]ПользователиЛогин=@login and Пароль=@porol@category is NULL set @category=''

END

Выполнение процедуры «Авторизация».

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

 

2.4 Разработка триггеров


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

Триггер создается посредством оператора create trigger. Опции insert, update и delete задают действия триггера. (Действием триггера является тип оператора Transact-SQL, который активирует этот триггер.)

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

)        Удаление информации из таблицы «Библиотека»;

)        Удаление информации из таблицы «Школа»;

)        Добавление информации в таблицу «Абонемент».

)        Удаление информации для таблицы «Библиотека».

Данный код триггера:TRIGGER InsteadOfDelete2 ON [dbo].[БИБЛИОТЕКА] INSTEAD OF DELETE AS

RAISERROR (N'Удаление записей из таблицы Библиотека запрещено!',16,0);

Триггер на запрет удаления информации из таблицы «Библиотеке».

Проверка триггера с помощью запроса:

from [Автоматизация выдачи книг в школьной библиотеке].[dbo].[БИБЛИОТЕКА][Инд_ном_биб_ки]=5

Запрос на проверку триггера удаления информации из таблицы «Библиотеке»

2)      Удаление информации из таблицы «Школа».

Данный код триггера:TRIGGER Delete2[dbo].[ШКОЛА]DELETE(SELECT Инд_ном_шк_лы FROM deleted) IS NOT NULL OR

(SELECT [Инд_ном_биб_ки] FROM deleted) IS NULL OR

(SELECT [Название_учр] FROM deleted) IS NULL OR

(select [Адрес_учр] FROM deleted) IS NOT NULL OR

(select [ФИО_дир] FROM deleted) IS NOT NULL OR

(SELECT Инд_ном_шк_лы FROM deleted) IS NOT NULL

BEGIN('Из базы запрещено удалять информацию о школе!',1,11)

ROLLBACK TRAN

Триггер на запрет удаления информации из таблицы «Школа».

Проверка триггера с помощью запроса:from [Автоматизация выдачи книг в школьной библиотеке].[dbo].[ШКОЛА][Инд_ном_шк_лы]=3

Запрос на проверку триггера на запрет удаления информации из таблицы «Школа».

)        Добавление информации в таблицу «Абонемент».

.1. Добавление Даты выдачи книги и Даты возврата книги в таблицу «Абонемент».

Необходимо ввести код:TRIGGER [dbo].[ZAPRET_NA_VVOD_DATY][dbo].[АБОНЕМЕНТ]INSERT(select day([Дата_выд]) from inserted)<>day(GETDATE ())

(select month([Дата_выд]) from inserted)<>month(GETDATE ())

(select year([Дата_выд]) from inserted)<>year(GETDATE ())

BEGIN('Дата выдачи книги не соответствует сегодняшней дате!!!',1,11)

rollback tran(select [Дата_сд] from inserted) <(select [Дата_выд] from inserted)

BEGIN('Дата сдачи книги введена некорректна!!!',1,11)

rollback tran

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

Проверка триггера с помощью запроса на ввод не верных данных:into [АБОНЕМЕНТ] ([Инд_ном_кн],[Инд_ном_шк_ка], [Дата_выд], [Дата_сд])

values (2,2,'31.01.2016', '14.02.2017')

go

Запрос на проверку триггера, на ввод не верных данных.

Проверка триггера с помощью запроса на ввод верных данных:into [АБОНЕМЕНТ] ([Инд_ном_кн],[Инд_ном_шк_ка], [Дата_выд], [Дата_сд],[Дата_посещ],[Сдал])

values (1,3,'14.05.2017', '28.05.2017','14.05.2017', 0)

go

Запрос на проверку триггера, на ввод верных данных.

.2.     Триггер на проверку ввода Даты сдачи книги. Так как книга выдается на 14 дней.

Необходимо ввести код:trigger [dbo].[Не_корректная_дата_сд]

on [dbo].[АБОНЕМЕНТ]INSERT(DATEDIFF (day,(select ([Дата_выд]) from inserted),(select ([Дата_сд]) from inserted)) > 14)(DATEDIFF (day,(select ([Дата_выд]) from inserted),(select ([Дата_сд]) from inserted)) < 14)

begin(' Не корректная дата сдачи книги !!! ',1,11)tran

Триггера на ввод верной даты сдачи книги.

Проверка триггера с помощью запроса на ввод не верных данных:into [АБОНЕМЕНТ] ([Инд_ном_кн],[Инд_ном_шк_ка], [Дата_выд], [Дата_сд],[Дата_посещ],[Сдал])

values (1,3,'14.05.2017', '30.05.2017','14.05.2017', 0)

go

Триггера на ввод не верной даты сдачи книги.

3.3.   Добавление информации Даты посещения в таблицу «Абонемент».

Необходимо ввести код:TRIGGER [dbo].[Insert_Data_posesch][dbo].[АБОНЕМЕНТ]INSERT(select day([Дата_посещ]) from inserted)<>day(GETDATE ())

(select month([Дата_посещ]) from inserted)<>month(GETDATE ())

(select year([Дата_посещ]) from inserted)<>year(GETDATE ())

BEGIN('Введенная Дата посещения школьника не соответствует сегодняшней дате!!!',1,11)tran

Триггера на ввод Даты посещения книги.

Код запроса на проверку ввода не верной даты посещения книги:into [АБОНЕМЕНТ] ([Инд_ном_кн],[Инд_ном_шк_ка], [Дата_выд], [Дата_сд],[Дата_посещ],[Сдал])

values (1,3,'14.05.2017', '30.05.2017','15.05.2017', 0)

go

Запрос на проверку триггера.

4)      Добавление информации в таблицу «Школьник».

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

create TRIGGER [dbo].[Insert_klas3][dbo].[ШКОЛЬНИК]INSERT((select ([Класс]) from inserted)<1)((select ([Класс]) from inserted)>11)

raiserror ('Не верно введен номер класса !!!',1,11)

rollback tran

Триггера на ввод класса в таблицу «Школьник».

Код запрос на проверку ввода не верных данных :

insert into [ШКОЛЬНИК] (ФИО_шк_ка,Адрес_шк_ка,Класс, Буква_кл, Тел_шк_ка)

values ('Костарёв Виктор Николаевич','ул.Револючионная, дом. 30',15,'б','89523320177')

go

Запрос на проверку триггера, на ввод не верных данных.

Запрос на проверку ввода верных данных. Код данного запроса:into [ШКОЛЬНИК] (ФИО_шк_ка,Адрес_шк_ка,Класс, Буква_кл, Тел_шк_ка)('Митрофанова Мария Михайловна','ул.Октябрьская, дом. 12, кв. 68 ',9,'а','89523320177')

Запрос на проверку триггера, на ввод верных данных.

После разработки триггеров необходимо разработать клиентское приложение в программе Delphi 7.

 

2.5 Разработка клиентской части информационной системы в Delphi 7


На данном этапе необходимо создать клиентское приложение. Для этого выбираем программное средство Delphi 7 .

2.5.1 Установка соединения Delphi 7 с Microsoft SQL Server

В первую очередь необходимо установить соединение между программами Delphi 7 и Microsoft SQL Server 2014.

Создадим новый проект в Delphi 7, в форме размещаем компонент ADOConnection со вкладки ADO (Компоненты для работы с базами данных).

Форма с добавленным компонентом ADOConnection.

На форме выделяем ранее размещенный компонент ADOConnection и делаем по нему двойной клик мыши или в Object Inspector выбираем свойство ConnectionString и нажимаем там по "...". Сразу после этих действий появится форма настройки подключения. В этом окне нужно перейти к "Use Connection String" и нажать "Build".

Присоединение БД к приложению.

После чего выбираем необходимую базу данных и проверяем ее соединение с программой Delphi 7. [3] Далее добавляем на форму необходимые компоненты и прописываем программный код для кнопки «ПОДКЛЮЧЕНИЕ» :

Окно ввода программного кода в Delphi 7.

 

.5.2 Меню пользователей в приложении

Разработана простая и понятная ИС для пользователей. Для того чтобы ИС выполняла функции описательной области были созданы формы, запросы. В программе Delphi 7 было создано приложения клиентской части. Для того чтобы войти в базу данных необходимо авторизоваться под пользователем.

Авторизация пользователя.

Если логин или пароль введены не верно то форма выводит ошибку (см. Рис.).

Авторизация пользователя с не верно введенными данными.

После введенного верного логина и пароля для пользователя Читатель, и нажав на кнопку «ПОДКЛЮЧЕНИЕ» открывается форма «МЕНЮ ЧИТАТЕЛЯ» (см. Рис.).

Меню читателя.

В данной вкладке «Работа с книгами» пользователь может производить поиск по списку книг имеющихся в библиотеке. Поиск можно производить разными способами:

·        Общий поиск - предназначен для поиска по всей информации имеющейся в списке книг (см. Рис.);

·        Поиск по автору книги - предназначен только для поиска в столбце Автор книги (см. Рис.);

·        Поиск по названию книги - предназначен только для поиска в столбце Название книги (см. Рис.).

Меню читателя. Общий поиск.

Меню читателя. Поиск по Автору книги.

Меню читателя. Поиск по Названию книги.

Так же у пользователя есть вкладка «ИНФОРМАЦИЯ» (см. рис.) на которой присутствуют кнопки: Посмотреть информацию о школе (см. рис.), Посмотреть информацию о библиотеке (см. рис.), Посмотреть информацию о сотруднике библиотеки (см.рис.). При нажатии кнопки открывается форма с соответствующей названию кнопки информацией.

Меню читателя. Вкладка «ИНФОРМАЦИЯ».

На форме «МЕНЮ ЧИТАТЕЛЯ» присутствует кнопка «НАЗАД» - которая производит выход из БД.

Форма «Информация о школе».

При нажатии на кнопку «Посмотреть контактные номера школы», открывается форма «Контактные телефоны МАОУ «СОШ №3» ».

Форма «Контактные телефоны МАОУ «СОШ №3» ».

При нажатии на данной форме кнопку «Назад» происходит возврат в форму «Информация о школе».

Форма «ИНФОРМАЦИЯ О БИБЛИОТЕКЕ».

Форма «ИНФОРМАЦИЯ О СОТРУДНИКЕ БИБЛИОТЕКИ».

Формы (см. рис.) предназначены для просмотра информации. На каждой из форм присутствует кнопка «Закончить просмотр информации», при ее нажатии пользователь попадает с свое главное меню - «МЕНЮ ЧИТАТЕЛЯ».

Далее рассмотрим интерфейс второго пользователя - Библиотекарь. Для того чтобы выполнить вход меню библиотекаря, необходимо ввести логин и пароль, после чего нажать кнопку «Подключение». При верном вводе логина и пароля пользователь переходит в форму «МЕНЮ БИБЛИОТЕКАРЯ».

Меню библиотекаря.

В форме «МЕНЮ БИБЛИОТЕКАРЯ» есть три вкладки: Работа с читателями, Работа с книгами, посмотреть Абонемент читателя. На Рис. представлена рабочая зона вкладки «РАБОТА С ЧИТАТЕЛЯМИ».

Рассмотрим вкладку «РАБОТА С ЧИТАТЕЛЯМИ» на которой присутствует кнопка «РЕДАКТИРОВАНИЕ СПИСКА ЧИТАТЕЛЕЙ», при ее нажатии открывается следующая форма «РАБОТА С ЧИТАТЕЛЯМИ» (см. Рис.).

Форма «РАБОТА С ЧИТАТЕЛЯМИ».

На данной форме есть область «Редактирование информации о читателе» на которой находятся кнопки: Зарегистрировать читателя, Изменить информацию о читателе, Удалить информацию о читателе. Так же есть область «Поиска» в которой можно производить поиск по списку читателей по ФИО читателя или воспользоваться общим поиском. Так же есть список всех читателей библиотеки. Есть кнопка «Назад» при ее нажатии происходит возврат к форме «МЕНЮ БИБЛИОТЕКАРЯ».

Рассмотрим форму при нажатии на кнопку «Зарегистрировать читателя» (см. Рис.)

Форма для Регистрации читателя.

При нажатии на кнопку «Сохранить» происходит добавление информации о читателе в БД. Если нажать кнопку «Отмена» данная информация не добавляется в БД.

Рассмотрим кнопку на форме «РАБОТА С ЧИТАТЕЛЯМИ» под названием «Изменить информацию о читателе». Для этого необходимо выбрать из списка читателя, чью информацию нужно изменить, после чего нажать на кнопку «Изменить информацию о читателе».

Форма для Изменения информации о читателе.

При нажатии на кнопку «Сохранить» происходит сохранение измененной информации в БД, при нажатии на кнопку «Отмена» - измененные данные не сохраняются.

Рассмотрим кнопку на форме «РАБОТА С ЧИТАТЕЛЯМИ» под названием «Удалить читателя». При ее нажатии происходит открытие форма «Вопрос» (см. Рис.).

Форма «Вопрос».

Необходимо ввести индивидуальный номер читателя, чью информацию необходимо удалить, после чего нажать кнопку «Да». Если информацию о читателе не нужно удалять нажать кнопку «Нет».

Так же на форме «РАБОТА С ЧИТАТЕЛЯМИ» есть область «Поиска»:

Поиск по ФИО читателя и Общий поиск.

Форма «РАБОТА С ЧИТАТЕЛЯМИ». Поиск по ФИО читателя.

Форма «РАБОТА С ЧИТАТЕЛЯМИ». Общий поиск.

При нажатии на кнопку «Назад» происходит возврат в форму «МЕНЮ БИБЛИОТЕКАРЯ». На вкладке «РАБОТА С ЧИТАТЕЛЯМИ» при нажатии на кнопку «РАБОТА СО СПИСКОМ ВЫДАЧИ КНИГ» открывается форма «РАБОТА СО СПИСКОМ ВЫДАЧИ КНИГ» (см. Рис.).

Форма «РАБОТА СО СПИСКОМ ВЫДАЧИ КНИГ».

На данной форме есть область «Редактирование» и область «Поиск», так же есть список выдачи книг.

При нажатии на кнопку «Выдать книгу» открывается форма «Информация о выдаче книги».

Форма «Информация о выдаче книги».

При внесении данных, нажать кнопку «Сохранить» - для сохранения информации, кнопку «Отмена» - при отмене сохранения введенных данных.

Рассмотрим кнопку на форме «РАБОТА СО СПИСКОМ ВЫДАЧИ КНИГ» под названием «Изменить информацию о выдаче книги». Для этого необходимо выбрать из списка выдачи книг, ту книгу чью информацию нужно изменить, после чего нажать на кнопку «Изменить информацию о выдаче книги».

Форма «Информация о выдаче книги».

При нажатии на кнопку «Сохранить» происходит сохранение измененной информации в БД, при нажатии на кнопку «Отмена» - измененные данные не сохраняются.

Рассмотрим форму «РАБОТА СО СПИСКОМ ВЫДАЧИ КНИГ» кнопку «Удалить выдачу книги». Для этого необходимо выбрать из списка выдачи книг ту выдачу, которую нужно удалить из БД. После нажатия на данную кнопку появится Форма «Вопрос».

Форма «Вопрос».

При нажатии на кнопку «Да» -происходит удаление выбранной из списка Выдачу книги. При нажатии на кнопку «Нет»- удаления выбранной информации не происходит.

Так же на форме «РАБОТА СО СПИСКОМ ВЫДАЧИ КНИГ» - есть область «Поиск». В данной области можно производить поиск по списку выдачи книг двумя способами:

·        Поиск по Индивидуальному номеру школьника - при вводе индивидуального номера школьника происходит поиск по списку выдачи книг и фильтрует данные. Показывает выдачу книг конкретного читателя.

·        Общий поиск - происходит поиск по всему списку выдачи книг.

·        Поиск по Отметке о возврате книги - если ввести 1, то покажет список возвращенных книг, если ввести 0, то покажет список невозвращенных книг.

При нажатии на кнопку «Назад», которая находится на форме «РАБОТА СО СПИСКОМ ВЫДАЧИ КНИГ», происходит возврат к форме «МЕНЮ БИБЛИОТЕКАРЯ».

Рассмотрим кнопку «Посмотреть абонемент читателя» на форме «МЕНЮ БИБЛИОТЕКАРЯ». При нажатии на данную кнопку открывается форма «ПОСМОТРЕТЬ АБОНЕМЕНТ ЧИТАТЕЛЯ» (см. Рис.).

Форма «ПОСМОТРЕТЬ АБОНЕМЕНТ ЧИТАТЕЛЯ».

Так же на данной форме есть область «Поиска»: Общий поиск (поиск по Списку читателей) и Поиск по Индивидуальному номеру школьника. При выборе, какого либо читателя - внизу появляется информация о выданных книгах, т.е. абонемент читателя. Чтобы вернуться в предыдущую форму необходимо нажать кнопку «Назад».

На форме «МЕНЮ БИБЛИОТЕКАРЯ» присутствует вкладка «РАБОТА С КНИГАМИ». Она разделена на области: Редактирование информации о книге, Поиск, Количество книг в библиотеке.

Форма «МЕНЮ БИБЛИОТЕКАРЯ» вкладка «РАБОТА С КНИГАМИ».

Так же на этой форме показывается сумма стоимости всех книг. И при нажатии кнопки, можно узнать количество книг в библиотеке.

Рассмотрим область «Редактирование информации о книге», при нажатии на кнопку «Добавить книгу» открывается форма «ИНФОРМАЦИЯ О КНИГЕ».

Форма «ИНФОРМАЦИЯ О КНИГЕ».

При вводе всех данных и нажатии на данной форме кнопки «Сохранить» происходит добавление информации о книге. При нажатии на кнопку «Отмена» добавление данных не происходит.

На форме «ИНФОРМАЦИЯ О КНИГЕ» есть кнопка «Изменить информацию о книге», для этого в списке необходимо выбрать ту книгу ,чью информацию необходимо изменить, после чего нажать кнопку ««Изменить информацию о книге».

Форма «ИНФОРМАЦИЯ О КНИГЕ».

При редактировании данных и нажатии на данной форме кнопки «Сохранить» происходит изменение информации о книге. При нажатии на кнопку «Отмена» добавление данных не происходит.

Рассмотрим форму «МЕНЮ БИБЛИОТЕКАРЯ» вкладу «РАБОТА С КНИГАМИ» - кнопку «Удалить выдачу книги». Для этого необходимо выбрать из списка книг ту книгу, которую нужно удалить из БД. После нажатия на данную кнопку появится Форма «Вопрос».

Форма «Вопрос».

При нажатии на кнопку «Да» - происходит удаление выбранной из списка книги. При нажатии на кнопку «Нет»- удаление выбранной информации не происходит.

Так же на форме «МЕНЮ БИБЛИОТЕКАРЯ» на вкладке «РАБОТА С КНИГАМИ» - есть область «Поиск». В данной области можно производить поиск по списку книг двумя способами:

·        Поиск по Индивидуальному номеру книги - при вводе индивидуального номера книги происходит поиск по списку книг и фильтрует данные.

·        Общий поиск - происходит поиск по всему списку книг.

При нажатии на кнопку «Узнать количество книг в библиотеке, появляется цифра.

Форма «МЕНЮ БИБЛИОТЕКАРЯ» вкладка «РАБОТА С КНИГАМИ».

Так же на данной форме есть Сумма стоимости всех книг.

Форма «МЕНЮ БИБЛИОТЕКАРЯ» вкладка «РАБОТА С КНИГАМИ».

Рассмотрим вкладку «ИНФОРМАЦИЯ» в форме «МЕНЮ БИБЛИОТЕКАРЯ».

Форма «МЕНЮ БИБЛИОТЕКАРЯ» вкладка «ИНФОРМАЦИЯ».

При нажатии на кнопку «Информация о школе» открывается форма для просмотра, так и для редактирования информации о школе. При нажатии на кнопку «Назад» происходит возврат в форму «МЕНЮ БИБЛИОТЕКАРЯ».

Форма «Информация о школе»

При нажатии на кнопку «Информация о библиотеке» открывается форма для просмотра, так и для редактирования информации о библиотеке. При нажатии на кнопку «Назад» происходит возврат в форму «МЕНЮ БИБЛИОТЕКАРЯ».

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

При нажатии на кнопку «Информация о библиотеке» открывается форма для просмотра, так и для редактирования информации о библиотеке. При нажатии на кнопку «Назад» происходит возврат в форму «МЕНЮ БИБЛИОТЕКАРЯ».

Форма «Информация о сотруднике библиотеки».

При нажатии на кнопку «Выход» на форме «МЕНЮ БИБЛИОТЕКАРЯ», происходит выход из БД.

 

.5.3 Реализация SQL запросов в Delphi 7

При реализации ИС в программе Delphi 7 были разработаны SQL запросы. Рассмотрим некоторые из них.

Для того чтобы каждый пользователь мог попасть в свое меню, для этого ему необходимо пройти авторизацию. Для авторизации пользователя необходимо ввести добавить компоненты: ADOConnection1, ADOStoredProc1, Edit1, Edit2, Button1.

В компоненте ADOConnection1 в меню Object Inspector в поле ConnectionString указать путь нахождения БД. В компоненте ADOStoredProc1 в в меню Object Inspector в поле Connection выбрать созданный ADOConnection1, в поле ProcedureName выбрать название процедуры созданной на серверной части ( в данном случае) - Аторизация. В компоненте Button1 указать код:TForm1.Button1Click(Sender: TObject);,pass:string;.Close;.Parameters.ParamValues['@login']:=edit1.Text;.Parameters.ParamValues['@porol']:=edit2.Text;.ExecProc;ADOStoredProc1.Parameters.ParamByName('@category').value='Библиотекарь' then.Show;;ADOStoredProc1.Parameters.ParamByName('@category').value='Читатель' then.Show;;ADOStoredProc1.Parameters.ParamByName('@category').value='Администратор' then;ADOStoredProc1.Parameters.ParamByName('@category').value='' then

begin('Авторизация не пройдена. Логин или пароль не верны.');

exit;

end;

end;

В поле edit1 - вводиться логин, в поле edit2 - вводиться пароль.

Для того чтобы показать данные хранящиеся на серверной части в конкретной таблице, на форму необходимо добавить седлающие компоненты: DBGrid, DataSource, ADOQuery, ADOConnection.

В компоненте ADOConnection в меню Object Inspector в поле ConnectionString указать путь нахождения БД. В компонент ADOQuery в меню Object Inspector в поле Connection выбрать из всплывающего списка компонент ADOConnection, который связанный с БД. В поле SQL нажать на многоточие и ввести код: select*from КНИГИ, для того чтобы вывести информацию находящейся в таблице «Книги» на серверной части. В компоненте DataSource в меню Object Inspector во вкладе Events в поле DataSet выбрать компонент ADOQuery. Выбрать компонент DBGrid в меню Object Inspector в поле DataSource выбрать созданный нами ранее крмпонент DataSource. После чего свойстве компонента ADOQuery в меню Object Inspector в поле Active указать значение True. После чего в компоненте DBGrid появиться информация (в рассматриваемом примере) из таблицы «Книги». Там где использовался компонент DBGrid в клиентской части по такому же сценарию выводиться информацию в соответствующий DBGrid, соответствующей таблицы серверной части.

Для того, чтобы пользователь мог производить поиск компоненту DBGrid, был создать компонент Edit. Необходимо нажать дважды на компонент Edit, появиться окно для ввода программного кода. В данное окно необходимо ввести данный код, для выполнения общего поиска по таблице «Книги»:

var, h2: string;Edit3.Text = '' then Exit;:='%'+Form3.Edit3.Text+'%';:=QuotedStr(h1);Form3.ADOQuery1 do;

//sql.Clear;.text:='select*from КНИГИ where Инд_ном_кн like'+ h2+' or Автор_кн like'+ h2+' or Название_кн like'+ h2+' or Год_издан like'+ h2+' or Назван_изд_ва_кн like'+ h2+' or Ценная_кн like'+ h2+' or Место_в_биб_ке like'+ h2+' or Цена_кн like'+h2;

open;;;

Данный код использовался для общего поиска информации в таблице «Книги» в данном примере. Аналогично выполнялся код в других формах, где используется поиск.

Чтобы произвести поиск по одному столбцу таблицы «Книги» был использован данный код для поиска по автору книги:

var, h2: string;Edit1.Text = '' then Exit;:='%'+Form3.Edit1.Text+'%';:=QuotedStr(h1);Form3.ADOQuery1 do;

//sql.Clear;.text:='select*from КНИГИ where Инд_ном_кн like'+ h2+' or Автор_кн like'+ h2;

open;;;

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

Для добавления, изменения, удаления данных из таблицы необходимо создать две формы. В данном примере Form5, Form12. На Form5 были созданы три кнопки с названиями: Добавить книгу, Изменить информацию о кние, Удалить книгу. Так же имеется компонент DBGrid1 на Form5, который показывает данные из таблицы «Книги». На Form12 есть компоненты: DBEdit1, DBEdit2, DBEdit3, DBEdit4, DBEdit5, DBEdit6, DBEdit7, DBEdit8, Button1, Button2, ADOQuery1, DataSource1.

Компоненты: DBEdit1, DBEdit2, DBEdit3, DBEdit4, DBEdit5, DBEdit6, DBEdit7, DBEdit8 необходимо в меню Object Inspector в поле DataSource выбрать Form5.DataSource2, в поле DataField, выбрать нужное поле серверной таблицы «Книги» для соответствующей информации в отдельном поле DBEdit.

Для кнопки на Form12 «Сохранить» пропишем код:

procedure TForm12.Button1Click(Sender: TObject);adoquery1.Modified then adoquery1.Post;.close;.Open;.adoquery1.Active:=false;.adoquery1.Active:=true;.Close;

form5.Show;;

Для кнопки на Form12 «Отмена» пропишем код:

procedure TForm12.Button2Click(Sender: TObject);.Close;.Show;

end;

Для кнопки на Form5 «Добавить книгу» пропишем код:

procedure TForm5.Button8Click(Sender: TObject);.Show;.ADOQuery1.Append;5.Close;

end;

Для кнопки на Form5 «Изменить информацию о книге» пропишем код:

procedure TForm5.Button10Click(Sender: TObject);.Show;.Close;

end;

Для кнопки на Form5 «Удалить книгу» пропишем код:

procedure TForm5.Button9Click(Sender: TObject);

begin.Show;;

Изменив данные в коде программы Delphi 7, аналогично были созданы кнопки на других формах приложения.

Для того чтобы узнать сумму стоимости всех книг на Form5 есть компонент DBEdit1 в меню Object Inspector в поле выбрать вкладку Evens в поле DataSource выбрать DataSource1 нажать на плюс, в поле DataSet выбрать ADOQuery1, в поле AfterOpen cоздано ADOQuery1AfterOpe нажав дважды в окне кода написано следующее:

procedure TForm5.ADOQuery1AfterOpen(DataSet: TDataSet);.Text:=ADOQUERY1.FieldByName('sek').AsString;

end;

Данное поле показывает сумму стоимости всех книг на Form5.

Для того чтобы на Form5 узнать количество книг в библиотеке необходимо нажать на кнопку с соответствующим названием. На данной форме присутствует компонент Label6 - в котором будет выводиться количество книг в библиотеке. В компонент Button2 ввести код:TForm5.Button2Click(Sender: TObject);.Caption:=IntToStr(DBGrid1.DataSource.DataSet.RecordCount);.adoquery1.Active:=false;.adoquery1.Active:=true;

end;

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

Данный пункт показывает, как в программе Delphi 7 реализуются SQL запросы в данной ИС.

Заключение


Разработана ИС «Автоматизация выдачи книг в школьной библиотеке » которая, с легкостью позволяет выполнять следующие функции:

·        Просмотр: списка книг, информацию о школе, информацию о сотрудниках, абонементы читателей, контактные телефоны школы;

·        Оформление факта выдачи книг/и школьнику;

·        Отмечать в абонемент (е/ах) о сдаче и выдаче книг/и школьникам;

·        Ввод данных: при регистрация впервые пришедших школьников в библиотеку, о новых книгах, при выдаче книги;

·        Производить поиск книг, школьников, по списку выдачи книг, разными способами;

·        Редактировать: информацию о читателях, список книг, факт выдачи книги читателю, информацию о сотрудниках библиотеки, информация о школе;

·        Удаление: информации о школьниках, книг, факта выдачи книги;

·        Запрашивать: список должников;

·        Производить поиск книг в библиотеке.

Цель курсовой работы была реализована посредствам решения конкретных задач. Проанализирована предметная область школьной библиотеки, создана концептуальная модели рассматриваемой области, рассмотрено логическое проектировании данной БД. Проведено упрощение концептуальной модели. Проведена нормализация таблиц. Определена целостность БД. Был спроектирован пользовательский интерфейс. Разработана серверная часть в программе MS SQL Server Management Studio и клиентская часть в программе Delphi 7.

В приложении реализован удобный и простой пользовательский интерфейс школьной библиотеки МАОУ «СОШ №3» для двух категорий пользователей.

Основным достоинством созданной Информационной Системы является простота и удобство работы, т.е. возможность ее использования не квалифицированным пользователям.

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


Использованная литература:

.        Базы данных. Принципы нормализации. Технология проектирования. Учебный курс. / В.А. Кошин. - Пермь. РМЦПК ПГТУ. Кафедра информационных технологий и информационного менеджмента, 2002.

2.      Microsoft Access 2007. Разработка приложений на реальном примере. / Г. Гурвиц. - Изд. БХВ - Петербург, 2007.

.        Самоучитель Access 2014 / Ю. Б. Бекаревич, Н. В. Пушкина. - СПб.: БХВ-Петербург, 2011.

4.      Microsoft SQL Server 2014./ А.Бондаль -- БХВ-Петербург, 2015 г.

5.      Библия Delphi. \ М.Фленов - БХВ-Петербург, 2011 г.

6.      Разработка клиент-серверных приложений в Delphi 7. /А.Шкрыль - БХВ-Петербург, 2006 г.

Ссылки на Интернет-ресурсы:

1.      http://ns2d.ru/articles/delphi/podklyuchenie-mysql-v-delphi-7-chast-1 (Дата посещения сайта: 15.03.2017 г.).

Похожие работы на - Автоматизация выдачи книг в школьной библиотеке

 

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