Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчет_курсов_пример.doc
Скачиваний:
11
Добавлен:
11.02.2016
Размер:
483.33 Кб
Скачать

Министерсво образования и нАукИ украины

Одесский национальный МОРСКОЙ университет

КораблеСтроительный Факультет

Кафедра технической кибернетики

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

по базам данных

«Библиотека: отдел комплектации»

Выполнил:

студент КСФ

3 курс 4 группа

Устич А.В.

Руководитель:

Ст. преподаватель

Рублев И.С.

Одесса 2013 Содержание

  1. Задание курсового проекта ……………………………………………………… 3

  2. Построение физической и логической модели БД……………………………... 5

  3. Создание базы данных в InterBase………………………………………………. 7

  4. Разработка клиентского приложения…………………………………………… 11

  5. Клиентское приложение ………………………………………………………… 14

  6. Вывод …………………………………………………………………………….. 15

  7. Приложение ……………………………………………………………………… 16

  8. Использованная литература ……………………………………………………. 28

  1. Построить логическую и физическую модели БД:

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

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

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

Физическая модель должна быть построена для СУБД Interbase, причем схема модели БД должны удовлетворять условиям не меньше чем НБКФ.

ОПИСАНИЕ ЗАДАЧИ:

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

Каждая книга, хранящаяся в библиотеке, характеризуется следующими параметрами:

• уникальный шифр;

• название;

• фамилии авторов (могут отсутствовать);

• место издания (город);

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

• год издания;

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

• стоимость книги;

• количество экземпляров книги в библиотеке.

Книги могут иметь одинаковые названия, но они различаются по своему уникальному шифру (ISBN).

В библиотеке ведется картотека читателей.

На каждого читателя в картотеку заносятся следующие сведения:

• фамилия, имя, отчество;

• домашний адрес;

• телефон (будем считать, что у нас два телефона — рабочий и домашний);

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

Каждому читателю присваивается уникальный номер читательского билета.

Каждый читатель может одновременно держать на руках не более 5 книг. Читатель не должен одновременно держать более одного экземпляра книги одного названия.

Каждая книга в библиотеке может присутствовать в нескольких экземплярах.

Каждый экземпляр имеет следующие характеристики:

• уникальный инвентарный номер;

• шифр книги, который совпадает с уникальным шифром из описания книг;

• место размещения в библиотеке.

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

• номер билета читателя, который взял книгу;

• дата выдачи книги;

• дата возврата.

Предусмотреть следующие ограничения на информацию в системе:

1. Книга может не иметь ни одного автора.

2. В библиотеке должны быть записаны читатели не моложе 17 лет.

3. В библиотеке присутствуют книги, изданные начиная с 1960 по текущий год.

4. Каждый читатель может держать на руках не более 5 книг.

5. Каждый читатель при регистрации в библиотеке должен дать телефон для связи: он может быть рабочим или домашним.

6. Каждая область знаний может содержать ссылки на множество книг, но каждая книга может относиться к различным областям знаний.

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

• библиотекари абонементного отдела;

• библиотекари отдела комплектации;

• читатели;

• администрация библиотеки.

При работе с системой библиотекарь абонементного отдела должен решать следующие задачи:

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

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

При работе с системой библиотекарь отдела комплектации должен решать следующие задачи:

1. Принимать новые книги и регистрировать их в библиотеке.

2. Относить книги к одной или к нескольким областям знаний.

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

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

Читатель должен иметь возможность решать следующие задачи:

1. Просматривать системный каталог, то есть перечень всех областей знаний, книги по которым есть в библиотеке.

2. По выбранной области знаний получить полный перечень книг, которые числятся в библиотеке,

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

4. Для выбранного автора получить список книг, которые числятся в библиотеке.

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

1. должниках - читателях библиотеки, которые не вернули вовремя взятые книги;

2. сведения о книгах, которые не являются популярными, т. е. ни один экземпляр которых не находится на руках у читателей;

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

4. сведения о стоимости конкретной книги, для того чтобы установить возможность возмещения стоимости утерянной книги или возможность замены ее другой книгой;

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

  1. На основании физической модели создать соответствующие таблицы БД в InterBase.

Для всех таблиц создать необходимые триггера и одну хранимую процедуры ( определение инвентарных номеров новых книг ).

  1. В Delphi 6 создать программу-клиент для «InterBase», используя технологию IBX.

Программа должна иметь следующие формы:

Главная форма – инвентаризации книг, добавление новых экземпляров книг.

Позволяет проводить фильтрацию/отбор данных по ISBN, по Названию, по Автору.

Вспомогательные формы:

Ввода и редактирования данных о Названиях и ISBN изданий книг

Форма - отчет

Список экземпляров книг заданного Названия

  1. Использовать транзакции( блокирование таблиц ) для многопользовательской работы с БД.

Результатом работы являются:

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

Файлы базы данных, заполненные информацией. Источник информации - расписание лекций текущего семестра ОНМУ. Описание и текст созданных триггеров, индексов и хранимых процедур БД.

Файлы программы-клиента. Распечатка текста программ и примеров - отчетов разработанных форм.

Построение логической и физической модели БД

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

Сущность– это класс однотипных объектов, информация о которых должна быть учтена в модели.

Атрибуты сущности– это характеристика или свойство сущности, имеющая имя, уникальное для данной сущности.

При построении своей логической модели, я выделил следующие сущности: Книга, Характеристика книги, Издательство, Область книги, Область знаний.

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

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

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

Книга:

ISBN(PK) – хранит уникальный код книги.

Название книги – хранит полное название книги.

Город издания – хранит название города издания книги.

Количество страниц – хранит количество страниц книги.

Год издания – хранит год издания книги.

Цена – хранит стоимость книги.

Количество экземпляров – хранит количество экземпляров книги имеющихся в библиотеке.

Характеристики книги:

Инвентарный номер (PK) – хранит оригинальный номер экземпляра книги.

ISBN(FK) – показывает к какой книге относится данная характеристика

Дата поступления книги (FK) – дата поступления экземпляра книги в библиотеку.

Место хранения книги состоит из:

Комнаты – комната где находится книга;

Полка – на которой находится книга;

Место на полке – номер места на полке на которой находится книга.

Автор:

IDАвтора (РК) – хранит уникальный номер автора в базе библиотеке.

Имя – хранит имя автора.

Фамилия – хранит фамилию автора.

Автор книги:

ISBN(PK)(FK) – хранит уникальный код книги.

IDАвтора – хранит уникальный номер автора в базе библиотеке.

Тематика:

IDЖанра (PK) – хранит уникальный код жанра.

Жанр – хранит название жанра.

Жанр книги:

IDЖанра (PK)(FK) – хранит уникальный код жанра.

ISBN(PK)(FK) – хранит уникальный код книги.

Жанр – хранит название жанра.

Поставка:

ISBN(PK)(FK) – хранит уникальный код книги.

Дата поставки (PK) – хранит дату поставки книги в библитеку.

Цена – хранит цену книги.

В общем виде вся логическая структура моей базы данных выглядит так:

На основании разработанной мною логической модели была сгенерированна физическая модель для Interbase.

На основе физической модели был сгенерирован скрипт для Interbase. Скрипт представлен в приложении.

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