ВВЕДЕНИЕ

Целью создания курсовой работы была разработка и реализация базы данных библиотеки, а также получение навыков работы с языком SQL.
Предметной областью базы данных является библиотека. В базе данных хранится информация о книгах, посетителях, выдачах книг, платных услугах, выручке по платным услугам, инвентаре. В первом разделе подробно рассматривается предметная область. Определяются данные, которые будут храниться в базе данных. Также определяются таблицы и поля, которые будут создаваться. В зависимости от типа хранимой информации выбирается тип полей. Составляются предполагаемые запросы к БД, необходимые для работы библиотекаря.
Второй раздел посвящён проектированию базы данных в прикладной программе Enterprise Architect (создание таблиц, полей и связей между таблицами), а также экспорт БД в целевую СУБД, в нашем случае это MS SQL Server 2008 R2, построение диаграммы базы средствами MS SQL Server 2008 R2 и заполнение данными базы.
Третий раздел посвящен созданию запросов к БД на языке T-SQL. Используются простые запросы, включающие работу как с одной таблицей, так и продвинутые запросы, которые работают с несколькими таблицами в БД. Определяются запросы на выборку данных, обновление, удаление, создание данных.
В заключении приводятся основные результаты и выводы по работе.
Приложения содержат схему БД, полный скрипт её создания и код запросов в среде MS SQL Server 2008 R2.

1. АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ

1.1 Общие сведения

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

1.2 Основные сведения о предметной области

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

1.3 Перечень хранимой информации: таблицы, поля, типы

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

Таблица 1 - Таблица данных
Название таблицы	Поле	Тип	
Книга	Идентификационный номер	число	
	Автор	текст	
	Название	текст	
	Код по классификатору	текст	
	Год издания	число	
	Объявленная стоимость	число	
Посетители	Идентификационный номер	Число	
	Фамилия	Текст	
	Имя	Текст	
	Отчество	Текст	
	Год рождения	Число	
	Домашний адрес	Текст	
	Телефон	Текст	
Выдача книг	Номер записи	Число	
	Номер книги	Число	
	Номер посетителя	Число	
	Дата выдачи	Дата	
	Дата возврата	Дата	
Платные услуги	Идентификационный номер	Число	
	Название услуги	Текст	
	Цена	Число	
Выручка по платным услугам	Идентификационный номер	Число	
	Номер услуги	Число	
	Номер клиента	Число	
	Количество	Число	
	Итого	Число	
Инвентарь	Идентификационный номер	Число	
	Название	Текст	
	Объявленная стоимость	Число	

1.4 Выделение справочных и оперативных данных

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

Таблица 2 - Справочные и оперативные данные
Справочные таблицы	Инвентарь	
	Выручка по платным услугам	
Оперативные таблицы	Книги	
	Посетители	
	Выдача книг	
	Платные услуги	

1.5 Необходимые предполагаемые запросы к БД

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

2. МОДЕЛИРОВАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ

2.1 Общие сведения

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

2.2 Выделение сущностей, атрибутов, ключей, связей

Исходя из проанализированных баз данных, созданы основные таблицы с полями и типом данных, они приведены в 3 таблице.

Таблица 3 - Типы полей и данных БД
№	Сущность	Атрибут	Тип данных	
1	Books	book_ID	bigint	
		Author	varchar	
		Name	Varchar	
		Klass_kod	Varchar	
		PressData	DateTime	
		Cost	Decimal	
2	Clients	Client_ID	Bigint	
		Family	Varchar	
		Name	Varchar	
		LastName	Varchar	
		Birthday	Datetime	
		Adress	Varchar	
		Phone	Varchar	
3	BookOut	BookOut_ID	Bigint	
		Book_ID	Bigint	
		Client_ID	Bigint	
		DateOut	Datetime	
		DateIN	Datetime	
4	PlatUslug	plUsl_ID	Bigint	
		Name	Varchar	
		Cost	Decimal	
5	plUslPrib	plUslP_ID	Bigint	
		plUsl_ID	Bigint	
		Client_ID	BigInt	
		Count	Float	
		Itogo	Float	
6	Invent	Invent_ID	Bigint	
		Name	Varchar	
		Cost	decimal	

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

Таблица 4 - Выделение первичного(PK) и внешнего(FK) ключей
№	Наименование таблицы	Первичный ключ(РК)	Внешний ключ(FK)	
1	Books	Book_ID	-	
2	Clients	Client_ID	-	
3	BookOut 	BookOut_ID	Book_ID, Client_ID	
4	PlatUslug	plUsl_ID	-	
5	plUslPrib	plUslP_ID	plUsl_ID, Client_ID	
6	Invent	Invent_ID	-	

В таблицах видно, какие поля являются первичными, а какие внешними ключами.

2.3 Проектирование диаграммы сущность - связь в ЕА