Разработка приложений баз данных для СУБД Sybase SQL Anywhere

         

Описание базы данных 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


ПолеключТип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_realmSmallint  нет Код области знаний
Code_book Smallint  нет Шифр (код) наименования книги

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



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


ПолеключТипDefaultUniqueNULLCheckКомментарийN_booksCode_bookPresent

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

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



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


:

ПолеключТипDe-faultUniqueNULLCheckКомментарий

Name_readerChar(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)

|