Описание базы данных Biblia
База данных Biblia является основным элементом информационной системы "Библиотека". Эта база данных позволяет фиксировать факт поступления новых книг в библиотеку, ведение систематического каталога (систематизирующего книги по областям знаний), учет выдачи литературы читателям и ряд других библиотечных задач.
Для каждой выдаваемой книги устанавливается 15-дневный срок пользования. По истечении этого срока книга должна быть возвращена в библиотеку. Для особо популярных книг устанавливается боле короткий срок, в некоторых случаях он может превышать 15 дней.
Управление базой данных занимается администратор Степанов Ю.Л. и библиотекари Петрова Ю.П. , Иванова С.В., Сидорова О.К. и Попова И.Н. Все они зарегистрированы в базе данных под именами Stepanov, Petrova, Ivanova, Sidorova и Popova, соответственно. Библиотекари объединены в группу LIBRARIANS. Другая группа пользователей называется Readers. Она объединяет читателей библиотеки.
Взаимодействие пользователей с базой данных осуществляется при помощи хранимых процедур. Исключение составляют администратор -Степанов Ю.Л. и заведующая библиотекой Петрова Ю.П. Администратор имеет все привилегии, а заведующей библиотекой предоставлены более широкие полномочия по сравнению с библиотекарями.
База данных Biblia содержит шесть таблиц данных. Ее схема представлена на рис.А1.
Рис. А1. Схема базы данных Biblia
где Code_book - название поля, составляющего первичный ключ;
Code_book - название поля, составляющего внешний ключ.
Свойства таблиц базы данных Biblia представлены в табл. А1-А6. Все эти таблицы имеют одинаковую структуру. Назначение их колонок представлено ниже:
Поле - наименование поля таблицы. Тип - тип данных, хранящихся в поле. Ключ - признак ключевого поля (символ "*" обозначает, что поле входит в состав первичного ключа). Default - значение поля по умолчанию. Unique - признак уникальности значения поля (символ "*" обозначает, что значение поля должно быть уникальным). NULL - признак разрешение хранения значений типа NUUL (символ "*" обозначает, что в поле разрешено хранение значений типа NUUL). Check - условие, накладываемое на значение поля.
Таблица Sys_catalog хранит информацию об областях знаний (систематизированный каталог).
А1. Свойства таблицы Sys_catalog
N_realm | * | Smallint | Auto-increment | * | нет | Код области знаний | |
Title_realm | Char(45) | нет | Название области знаний |
Таблица Book содержит информацию о характеристиках книг.
А2. Свойства таблицы Book
Code_book | * | Smallint | Autoin-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 | Smallint | 0 | нет | Кол-во заявок на данную книгу |
Таблица Book_Catalog классифицирует книги по областям знаний.
А3. Свойства таблицы Book_catalog
N_realm | Smallint | нет | Код области знаний | ||||
Code_book | Smallint | нет | Шифр (код) наименования книги |
Таблица Copies предназначена для фиксирования информации об экземплярах книг.
А4. Свойства таблицы Copies
* | Smallint | Auto-increment | * | нет | Инвентарный N экземпляра книги | |
Smallint | нет | Шифр (код) наименования книги | ||||
Bit | 1 | нет | Признак наличия данного экземпляра книги |
Таблица Reader представляет собой каталог читательских карточек.
А5. Таблица Reader - Читательская карточка
:
Name_reader | Char(18) | нет | Фамилия и инициалы читателя | ||||
Adress | Char(26) | нет | Адрес читателя | ||||
N_reader | * | Smallint | Auto-incre-ment | * | нет | N читательской карточки | |
Hom_phone | Char(9) | да | N домашнего телефона | ||||
Work_phone | Char(9) | да | N рабочего телефона | ||||
Birthday | Date | (Тек.дата- Birthday)>17 | Дата рождения читателя |
Таблица Absent хранит данные о книгах, находящихся на руках у читателей.
А6. Свойства таблицы Absent
N_books | * | Smallint | * | Нет | Инвентарный N экземпляра книги | ||
N_reader | Smallint | Нет | N читательской карточки | ||||
Beg_date | Date | Тек. дата | нет | Дата взятия книги | |||
End_date | Date | Тек. Дата+15 | нет | Дата, когда должна быть возвращена книга |
Ограничение таблицы - CHECK(End_date>Beg_date)
|