Файл: Курсовая работа по дисциплине Базы и хранилища данных Разработка базы данных для предметной области Библиотека.docx

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 04.12.2023

Просмотров: 39

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

МИНОБРНАУКИ РОССИИ

Федеральное государственное бюджетное

образовательное учреждение высшего образования

«Челябинский государственный университет»

(ФГБОУ ВО «ЧелГУ»)
Институт информационных технологий
Кафедра информационных технологий и экономической информатики
КУРСОВАЯ РАБОТА
по дисциплине «Базы и хранилища данных»
__________«Разработка базы данных для предметной области «Библиотека»_________

(тема)


Выполнил студент__ Аврамец С.А. ______

(Ф.И.О.)

группы_<номер группы>_____

заочной формы обучения

направления подготовки

_____<Название направления обучения> ____________________________________

(подпись)

«____» ____________ 20___г.




Научный руководитель

Фамилия, имя, отчество__Сичинский Д.А._

Должность____________________________

Ученая степень ________________________

Ученое звание _________________________

______________________________________

(подпись)

«___» _________ 20____г.


Челябинск

2020

Задание


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

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

Перечень входных (первичных) документов.

название книги

название зала

Автор

Место издания

Издательство

Год издания

номер билета читателя

Область знаний

Море

зал художественной литературы

Пушкин А.С

Москва

Альфа

1951

1

Живописные рассказы

Принципы ООП

зал технической литературы

Буч

Челябинск

2-комсомольца

2000

2

Программирование


Продолжение таблицы:

количество страниц

Дата выдачи книги

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

Фио читателя

Дата рождения

Телефон

17

22/10/2014

22/11/2014

Алешкин Иван Николаевич

18/11/1991

+7 (954) 1111111

188

21/10/15

05/12/15

Бородкин Семен

25/05/1928





Ограничения предметной области:

  • Одна книга (Название, Автор, год издания) может быть в нескольких экземплярах.

  • Один читатель не может взять более 5 книг.

  • Один читатель не может взять 2 экземпляра (одинаковым названием, автором, год издания) одной книги.

  • Дата выдачи, дата возврата и дата рождения хранятся в виде DD/MM/YYYY

  • Телефон имеет вид +7 (111) 1765880

  • Области знаний бывают 3-х типов (любые).

  • Читальных залы бывают 3-х типов (зал художественной литературы, зал технической литературы, зал иностранной литературы).

  • Дата возврата книги не может быть раньше даты получения!

  1. Выполнить концептуальное (инфологическое) проектирование.

  2. Выполнить даталогическое проектирование для реляционной базы данных.

  3. Выбрать СУБД (обосновав выбор) и выполнить физическое проектирование.

  4. Создать базу данных в выбранной СУБД с учетом ограничений предметной области.

  5. Реализовать следующие отчеты (запросы):

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

  2. Вывести название и возраст книги самой старой книги в каждом из залов.

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

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

  1. Выбрать язык программирования и разработать приложение для работы с БД (формы ввода/редактирования данных и отчеты).

  2. Оформить пояснительную записку.


Содержание

Задание 2

Содержание 4

Концептуальная модель БД 6

Логическая модель БД 8

Физическая модель БД 12

Описание приложения для работы с БД 15

Заключение 24

Библиография 25

Приложение 1. SQL скрипты 26

Приложение 2. Код веб-приложения 30


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

Библиотека состоит из нескольких читальных залов (зал художественной литературы, зал технической литературы, зал иностранной литературы).

Библиотекари выдают книги читателям.

Требуемые функции системы, использующей базу данных:

        1. Ведение учёта посетителей библиотеки

        2. Ведение учёта книг, имеющихся в библиотеке

        3. Ведение учёта посещений читателями библиотеки (регистрация выдачи книг на руки и их возврата)

База данных проектируется с учётом следующих особенностей:

    1. Одна книга (Название, Автор, год издания) может быть в нескольких экземплярах.

    2. Один читатель не может взять более 5 книг.

    3. Один читатель не может взять 2 экземпляра (одинаковым названием, автором, год издания) одной книги.

    4. Дата выдачи, дата возврата и дата рождения хранятся в виде DD/MM/YYYY

    5. Телефон имеет вид +7 (111) 1765880

    6. Области знаний бывают 3-х типов (любые).

    7. Читальных залы бывают 3-х типов (зал художественной литературы, зал технической литературы, зал иностранной литературы).

    8. Дата возврата книги не может быть раньше даты получения!


Концептуальная модель БД

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

Базовые сущности предметной области:

Таблица 1. Таблица сущностей

Наименование сущности

Описание сущности

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

Книга

Книга, которую выдают на руки читателю

ID книги

Читальный зал

Читальный зал, в котором может находиться книга

ID читального зала

Область знаний

Сфера, о которой написана книга

ID области знаний

Читатель

Читатель, который берет в библиотеке книги на время

ID читателя



Теперь определим атрибуты для каждой сущности:

Таблица 2. Таблица атрибутов

Сущность

Наименование атрибута

Тип значения

Может ли быть пустым

Книга

Название

VARCHAR

Нет

Автор

VARCHAR

Нет

Год издания

INT

Нет

Количество страниц

INT

Нет

Место издания

VARCHAR

Нет

Издательство

VARCHAR

Нет

Читальный зал

Название

VARCHAR

Нет

Область знаний

Название

VARCHAR

Нет

Читатель

ФИО

VARCHAR

Нет

Телефон

VARCHAR

Нет

День рождения

VARCHAR

Нет


Между сущностями определены следующие связи:

Таблица 3. Таблица связей

Наименование связи

Тип связи

Атрибуты связи

Книга : область знаний

Один к одному

Нет

Книга : читальный зал

Один к одному

Нет

Читатель : книга

Один ко многим

Дата выдачи

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

Список книг


Подобно тому, как выше рассмотрены атрибуты сущностей, рассмотрим атрибуты связей.

Таблица 4. Атрибуты связей

Связь

Наименование атрибута

Тип значения

Может ли быть пустым

Атомарность

Читатель : книга

Дата выдачи

VARCHAR

Нет

Да

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

VARCHAR

Нет

Да






Рисунок 1. Инфологическая диаграмма
На основе приведенного выше описания сущностей и связей составим ER-диаграмму.
Логическая модель БД


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

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

Результатом работы на этом этапе будет ER-диаграмма в нотации «воронья лапка».

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

Составим таблицы, соответствующие сущностям.

Таблица 5. readers - таблица с данными о читателях

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

описание

id (int, PK, autoincrement)

уникальный идентификатор читателя

name (varchar)

полное имя читателя

phone (varchar)

номер телефона

birthday (date)

дата рождения


Таблица 6. types - области знаний

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

описание

id (int, PK, autoincrement)

уникальный идентификатор области знаний

name (varchar)

название типа области знаний


Таблица 7. readrooms - читальные залы

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

описание

id (int, PK, autoincrement)

уникальный идентификатор читального зала

name (varchar)

название читального зала



Таблица 8. books - книги

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

описание

id (int, PK, autoincrement)

уникальный идентификатор книги

name (varchar)

название книги

phone (varchar)

автор книги

year (int)

дата публикации книги

pubplace (varchar)

город издания

pubhouse (varchar)

издательство

type (int, FK)

область знаний (идентификатор области из таблицы types)

readroom (int, FK)

читальный зал (идентификатор зала из таблицы readrooms)