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

Верстак металлический слесарный верстак слесарный в Санкт-Петербурге.          

Описание базы данных Biblia


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

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

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

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

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

Описание базы данных Biblia

Рис. А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)

|