ПРИЛОЖЕНИЕ: Описание базы данных Biblia

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

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

Управление базой данных занимается администратор Степанов Ю.Л. и библиотекари Петрова Ю.П. , Иванова С.В., Сидорова О.К. и Попова И.Н. Все они зарегистрированы в базе данных под именами Stepanov, Petrova, Ivanova, Sidorova и Popova, соответственно. Библиотекари объединены в группу LIBRARIANS. Другая группа пользователей называется Readers. Она объединяет читателей библиотеки.

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

База данных Biblia содержит шесть таблиц данных. Ее схема представлена на рис.А1.

Рис. А1. Схема базы данных Biblia
где Code_book - название поля, составляющего первичный ключ;
Code_book - название поля, составляющего внешний ключ
.

Свойства таблиц базы данных Biblia представлены в табл. А1-А6. Все эти таблицы имеют одинаковую структуру. Назначение их колонок представлено ниже:

Таблица Sys_catalog хранит информацию об областях знаний (систематизированный каталог).

Таблица А1. Свойства таблицы Sys_catalog

ПолеключТипDefaultUniqueNULLCheckКомментарий
N_realm*SmallintAuto-increment*нет Код области знаний
Title_realm Char(45)  нет Название области знаний

Таблица Book содержит информацию о характеристиках книг.

Таблица А2. Свойства таблицы Book

ПолеключТипDefaultUniqueNULLCheckКомментарий
Code_book*SmallintAutoin-crement*нет Уникальный шифр (код) наименования книги
Author Long varchar да  Фамилия и инициалы автора книги
Coauthors Long varchar да  Фамилии и инициалы соавторов книги
Title_book Long varchar нет  Название книги
City_publish Char(15) нет  Город, где издана книга
Publisher Char(20) нет  Название издательства
Year_publish Smallint нет  Год издания книга
Number Smallint нет  Кол-во экземпляров книги
Start_date DateТек. датанет  Дата поступления книги в библиотеку
Times_read Smallint0нет  Кол-во заявок на данную книгу

Таблица Book_Catalog классифицирует книги по областям знаний.

Таблица А3. Свойства таблицы Book_catalog

ПолеключТипDefaultUniqueNULLCheckКомментарий
N_realm Smallint  нет Код области знаний
Code_book Smallint  нет Шифр (код) наименования книги

Таблица Copies предназначена для фиксирования информации об экземплярах книг.

Таблица А4. Свойства таблицы Copies

ПолеключТипDefaultUniqueNULLCheckКомментарий
N_books*SmallintAuto-increment*нет Инвентарный N экземпляра книги
Code_book Smallint  нет Шифр (код) наименования книги
Present Bit1 нет Признак наличия данного экземпляра книги

Таблица Reader представляет собой каталог читательских карточек.

Таблица А5. Таблица Reader - Читательская карточка:

ПолеключТипDe-faultUniqueNULLCheckКомментарий
Name_reader Char(18)  нет Фамилия и инициалы читателя
Adress Char(26)  нет Адрес читателя
N_reader*SmallintAuto-incre-ment*нет N читательской карточки
Hom_phone Char(9)  да N домашнего телефона
Work_phone Char(9)  да N рабочего телефона
Birthday Date   (Тек.дата- Birthday)>17Дата рождения читателя

Таблица Absent хранит данные о книгах, находящихся на руках у читателей.

Таблица А6. Свойства таблицы Absent

ПолеключТипDefaultUniqueNULLCheckКомментарий
N_books*Smallint *Нет Инвентарный N экземпляра книги
N_reader Smallint  Нет N читательской карточки
Beg_date DateТек. дата нет Дата взятия книги
End_date DateТек. Дата+15 нет Дата, когда должна быть возвращена книга

Ограничение таблицы - CHECK(End_date>Beg_date)

Назад | Содержание