Разработка таблиц и схемы базы данных КУРСОВАЯ РАБОТА
по дисциплине «Базы данных»
Студентка группы
Руководитель Козлова Ольга Семёновна
№ зачетной книжки
САМАРА
Рецензия
Оглавление
1. Постановка задачи. 4
2. Инфологическая модель. 6
Семантическое моделирование. 6
Концептуальная модель. 8
3. Разработка таблиц и схемы базы данных. 9
4. Запросы системы.. 14
5. Выводы.. 22
6. Список используемых источников. 22
Постановка задачи
Вариант 8
Задача курсовой работы состоит в том, чтобы создать систему поддержки управления библиотекой, которая должна обеспечивать операции (добавление, удаление и изменение) над данными о читателях.
В регистрационном списке читателей должны храниться следующие сведения:
· фамилия, имя и отчество читателя;
· номер его читательского билета;
· дата выдачи билета.
Наряду с регистрационным списком системой должен поддерживаться каталог библиотеки, где хранится информация о книгах:
· название книги;
· список авторов;
· библиотечный шифр;
· год и место издания;
· название издательства;
· общее количество экземпляров книги в библиотеке;
· количество экземпляров, доступных в текущий момент.
Система должна обеспечивать добавление, удаление и изменение данных каталога, а также поиск книг в каталоге на основании введенного шифра или названия книги.
В системе должна осуществляться регистрация взятых и возвращенных читателем книг.
По каждой выданной книге должна храниться запись о том, кому и когда была выдана книга, и когда она будет возвращена. При возврате книги в записи должна делаться соответствующая пометка, а сама запись не удаляться из системы.
Система должна выдавать следующую справочную информацию:
· какие книги были выданы за данный промежуток времени;
· какие книги были возвращены за данный промежуток времени;
· какие книги находятся у данного читателя;
· имеется ли в наличии некоторая книга.
Вариант задания предусматривает разработку ER-диаграммы, хранящей список читателей, каталог книг и записи о выдаче книг.
Реализация настоящей БД должна быть произведена средствами СУБД MySQL.
В MySQL должны разрабатыватьсятаблицы, связи между ними.
Необходимо также разработать не менее 10 запросов следующих типов:
1. С использованием внутреннего соединения по одному полю;
2. С использованием косвенно связанных таблиц;
3. С использованием внешнего соединения таблиц;
4. С использованием рекурсивного соединения;
5. С использованием вложенного запроса;
6. С использованием функций агрегирования;
7. Перекрестный запрос;
8. С параметрами;
9. С вычисляемым полем.
Инфологическая модель
Семантическое моделирование
Из описания предметной области следуют:
1.Сущности:
· Каталог библиотеки;
· Читатель;
· Запись читательского билета;
2.Атрибуты:
· Библиотечный шифр;
· Название книги;
· Автор;
· Год издания;
· Место издания;
· Название издательства;
· Всего экземпляров;
· Доступное количество;
являются атрибутами сущности «Каталог библиотеки».
· Номер билета;
· Фамилия;
· Имя;
· Отчество;
· Адрес;
· Телефон;
· Дата выдачи билета;
являются атрибутами сущности «Читатель».
· № строки записи;
· Библиотечныйшифр;
· Номер билета;
· Дата выдачи;
· Дата возврата;
являются атрибутами сущности «Запись читательского билета».
3.Ключи сущностей:
· Номер билета является первичным ключом сущности «Читатель»;
· Библиотечный шифр является первичным ключом сущности «Каталог библиотеки»;
· № строки записи является первичным ключом сущности «Запись читательского билета»;
4.Связи сущностей:
Между сущностями «Читатель» и «Запись читательского билета»:
Слева направо: «Читатель может иметь несколько записей читательского билета»;
Справа налево: «Каждая запись читательского билета должна принадлежать одному читателю»;
Тип связи:один -ко-многим.
Между сущностями «Каталог библиотеки» и «Запись читательского билета»:
Слева направо: «Книгаможет быть выдана несколько раз»;
Справа налево: «Каждая запись читательского билета соответствует одной книге»;
Тип связи: один-ко-многим.
Концептуальная модель заданной предметной области представлена на рис. 1
| | | | | | Запись читательского билета
| | | | |
Рис 1. ER-диаграмма предметной области
Разработка таблиц и схемы базы данных
Для создания данной системы управления данными понадобятся следующие таблицы:
· Catalog_library
· Chitatel
· Zap_chit_bil
В СУБД MySQL создание таблицы происходит с помощью команды CREATE TABLE.
Создание таблицы Catalog_library(Каталог библиотеки):
CREATE TABLE ` Catalog_library `( ` Bibl_shiphr ` VARCHAR( 10 ) NOT NULL ,
` Nazv_knigi ` VARCHAR(70) NOT NULL ,
` Author ` VARCHAR( 20 ) NOT NULL ,
` God_izd ` YEAR( 4 ) NOT NULL ,
` Mesto_izd ` VARCHAR( 20 ) NOT NULL ,
` Nazv_izd ` VARCHAR( 25 ) NOT NULL ,
` Vsego ` INT( 5 ) NOT NULL,
` Dostypno ` INT( 5 ) NOT NULL);
Добавление первичного ключа таблицы Catalog_library(Каталог библиотеки):
ALTER TABLE ` Catalog_library ` ADD PRIMARY KEY ( ` Bibl_shiphr ` )
Структура таблицы Catalog_library(Каталог библиотеки):
Создание таблицы Chitatel(Читатель):
CREATE TABLE ` Chitatel `( ` Nom_bil ` INT( 7 ) NOT NULL ,
` Surname ` VARCHAR(15) NOT NULL ,
`Name` VARCHAR( 10 ) NOT NULL ,
` Patronymic ` VARCHAR( 15 ) NOT NULL,
` Address ` VARCHAR( 50 ) NOT NULL ,
` Telephone ` VARCHAR( 15 ) NOT NULL
` Data_vidachi ` DATE NOT NULL);
Добавление первичного ключа таблицы Chitatel(Читатель):
ALTER TABLE ` Chitatel ` ADD PRIMARY KEY ( ` Nom_bil ` )
Структура таблицы Chitatel(Читатель):
Создание таблицы Zap_chit_bil(Запись читательского билета):
CREATE TABLE `Zap_chit_bil` (`Nom_stroki_zap` INT(5) NOT NULL AUTO_INCREMENT,
` Bibl_shiphr ` VARCHAR( 10 ) NOT NULL ,
` Nom_bil ` INT( 7 ) NOT NULL ,
` Data_vid ` DATE NOT NULL ,
` Data_vozv ` DATE NOT NULL) ;
Добавление первичного ключа таблицы Zap_chit_bil(Запись читательского билета):
ALTER TABLE ` Zap_chit_bil ` ADD PRIMARY KEY ( ` Nom_stroki_zap ` )
Структура таблицы Zap_chit_bil(Запись читательского билета):
Общая структура базы данных
С помощью команд INSERT INTO и VALUES происходит вставка строк внутрь той или иной таблицы.
Вставка строки для таблицы Catalog_library(Каталог библиотеки) выполняется следующим образом:
INSERT INTO`Catalog_library` ( `Bibl_shiphr` , `Nazv_knigi` , `Author` , `God_izd` , `Mesto_izd` , `Nazv_izd` , `Vsego` , `Dostypno` )
VALUES( ' 681.3А47 ', ' Информатика 2001:учеб.пособие', ' Алексеев, А.П. ', ' 2001 ', ' Самара', ' СОЛОН-Р ', '50', '9');
Для вставки последующих значений в каждую таблицу команды INSERT INTOиVALUES выполняются аналогично.
Данные в таблице Catalog_library(Каталог библиотеки):
Данные в таблице Chitatel(Читатель):
Данные в таблице Zap_chit_bil(Запись читательского билета):
Запросы системы
Для данной системы было создано 11 запросов:
Запрос 1.Какие книги были выданы за промежуток времени с 12 по 31-ое марта;
Создается по данным таблиц Zap_chit_bil(Запись читательского билета), Catalog_library (Каталог библиотеки) и является запросом с использованием внутреннего соединения по одному полю:
Результат выполнения запроса 1:
Запрос 2. Какие книги находятся у читателя Бантюкова;
Создается по данным таблиц Chitatel (Читатель), Zap_chit_bil(Запись читательского билета), Catalog_library (Каталог библиотеки) и является запросом с использованием косвенно связанных таблиц:
Результат выполнения запроса 2:
Запрос 3.Вывести, в какие еще дни выдавались книги, выданные 10 марта;
Создается по данным таблиц Zap_chit_bil(Запись читательского билета), Catalog_library (Каталог библиотеки) и является вложенным запросом:
Результат выполнениязапроса 3:
Запрос 4. Выбрать всех читателей, у которых время возврата книги приходится на промежуток между 24 марта и 6 апреля;
Создается по данным таблиц Chitatel(Читатель), Zap_chit_bil(Запись читательского билета) и является запросом с использованием левого внешнего соединения таблиц:
Результат выполнения запроса 4:
Запрос 5. Найти номера билетов читателей, которые взяли те же книги, что и читатель Степанова, номер билета которой 757468;
Создается по данным таблицы Zap_chit_bil(Запись читательского билета)и является запросом с использованием рекурсивного соединения:
Результат выполнения запроса 5:
Запрос 6. Вывести доступное количество экземпляров книг, которые взял читатель Рунжин с номером билета 365708;
Создается по данным таблиц Catalog_library (Каталог библиотеки), Zap_chit_bil(Запись читательского билета)и является вложенным запросом:
Результат выполнения запроса 6:
Запрос 7. Найти минимальное и максимальное количество доступных книг;
Создается по данным таблицы Catalog_library (Каталог библиотеки) и является запросом с использованием функций агрегирования MIN, MAX:
Результат выполнения запроса 7:
Запрос 8. Вывести дату выдачи и возврата каждой книги (с учетом того, что одна и та же книга может быть выдана несколько раз);
Создается по данным таблиц Catalog_library (Каталог библиотеки), Zap_chit_bil(Запись читательского билета) и является перекрестным запросом:
Результат выполнения запроса 8:
Запрос 9. Какие книги были возвращены за промежуток времени с 15-ого по 29-ое марта;
Создается по данным таблиц Catalog_library (Каталог библиотеки), Zap_chit_bil(Запись читательского билета) и является запросом с параметрами:
Результат выполнения запроса 9:
Запрос 10. Посчитать, какое количество книг находится у каждого из читателей;
Создается по данным таблиц Chitatel(Читатель), Zap_chit_bil(Запись читательского билета) и является запросом с использованием вычисляемого поля:
Результат выполнения запроса 10:
Запрос 11. Имеется ли в наличии книга «Информационные технологии управления» (если да, то какое количество их имеется в наличии и какое доступно на данный момент);
Создается по данным таблицы Catalog_library (Каталог библиотеки) и является запросом с параметрами:
Результат выполнениязапроса 11:
Выводы
· В данной работе была исследована предметная область «Библиотечная система»;
· Построена инфологическая модель;
· Разработана даталогическая модель базы данных средствами MySQL, включающая 3 таблицы и соответствующие связи между ними;
· Разработаны 11 запросов для отображения данных из таблиц.
|