Автоматизоване робоче місце менеджера - Навчальний посібник (Худякова І.М.)

6.6. асу бібліотекою, створення електронних каталогів бібліотеки

6.6.1. Призначення і предметна область

База даних призначена для зберігання даних про придбані біб- ліотекою видання (монографіях, довідниках, збірках статі і т. п.), інформацію про місцезнаходження окремих зразків (палітурок) кож- ного видання і відомостей про читачів.

Д27    Дейт К. Руководство по реляційній СУБД DB2 / Пер. з англ. і предм. М. Р. Когаловського. — М.: Фінанси  і статистика, 2000. — 320 с.: іл.

ISBN 5-279-00063-9

Книга   американського   фахівця    в   області    реляційних   баз   даних К. Дейта,  автора популярної в СРСР монографії «Введение  в системы баз  данных»  (М.:  Наука,  1981), є  порадником  щодо  перспективної СУБД   фірми   ІБМ  DB2,   що   поєднує  можливості  широко   відомої системи  IMS/VS і реляційної СУБД.

Для фахівців  з програмного забезпечення  інформаційних систем  і студентів ВНЗ.

ББК 32.973

Рис. 6.20.

Макет анотованої картки за каталогом

Для ведення бібліотечних каталогів, організації пошуку необ- хідних видань і бібліотечної статистики в базі повинні зберігатися відомості, велика частина яких розміщується в анотованих картках за каталогом (рис. 7.6.1). Аналіз запитів на літературу (як читачами,

 

так і співробітниками бібліотек) показує, що для пошуку відповід- них видань (за тематикою, автором, художником, видавництвом і т. ін.) і відбору потрібного (наприклад, за анотацією) слід виділити такі атрибути каталожної картки:

1.     Автор (прізвище та імена (ініціали) або псевдонім кожного ав-

тора видання).

2.     Назва (заголовок) видання.

3.     Номер тому (частини, книги, випуску).

4.     Вид видання (збірка, довідник, монографія,...).

5.     Укладач (прізвище та імена (ініціали) кожного з укладачів видання).

6.     Мова, з якої виконаний переклад видання.

7.     Перекладач (прізвище та ініціали кожного перекладача).

8.     Під чиєю редакцією (прізвище та імена (ініціали) кожного з ти-

тульних редакторів).

9.         Художник (прізвище і імена (ініціали) кожного художника-ілю- стратора) — для художніх видань, ілюстрованих оригінальними малюнками.

10.   Повторність видання (друге, одинадцяте і т. д.).

11.  Характер  перевидання  (виправлене,  доповнене,  перероблене,

стереотипне і т.ін.).

12.   Місце видання (місто).

13.   Видавництво (назва видавництва).

14.   Рік випуску видання.

15.   Видавнича анотація або реферат.

16.   Бібліотечний шифр (наприклад, ББК 32.973).

17.   Авторський знак (наприклад, Д27).

Бібліотечний шифр і авторський знак використовуються при укладанні каталогів і розміщенні видань на полицях: за змістом (відповідно до бібліотечного шифру) і алфавітом (відповідно до авторського знаку).

Бібліотечно-бібліографічна класифікація (ББК) розподіляє ви- дання за галузями знань відповідно до їх змісту. У ній використову- ється цифро-буквені індекси ступінчастої структури.

 

Кожний з дев’яти класів (1. Філософія; 2. Природничі науки; 3. Техніка. Технічні науки; 4. Сільське і лісове господарство; 5. Охоро- на здоров’я; 6. Суспільні і гуманітарні науки; 7. Бібліографічні по- сібники. 8. Довідкові видання. 9. Журнали.) ділиться на підкласи і наступні ступені розподілу:

Техніка. Технічні науки.

32 Радіоелектроніка.

32.97 Обчислювальна техніка.

32.973 Електронно-обчислювальні машини і пристрої.

32.973.2 Електронно-обчислювальні машини і пристрої дискретної дії.

Шифр ББК використовується при виділенні виданням певних кімнат, стелажів і полиць, що зберігаються, а також для складання каталогів і статистичних звітів.

Авторський знак, що складається з першої літери прізвища (псевдоніма) автора або назви видання (для видань без автора) і чис- ла, що відповідає складу, найбільш наближеного з написання пер- ших букв прізвища (назви), спрощує розстановку книг на полицях в алфавітному порядку.

До об’єктів і атрибутів, що дозволяють охарактеризувати окре- мі зразки видань (палітурки), місця їх зберігання і читачів, можна віднести:

1.         Номер кімнати (приміщення для зберігання видань).

2.         Номер стелажу в кімнаті.

3.         Номер полиці на стелажі.

4.         Номер (інвентарний номер) видання.

5.         Дата придбання конкретного видання.

6.         Ціна конкретного видання.

7.         Дата розміщення конкретного видання на конкретному місці.

8.         Дата вилучення видання зі встановленого місця.

9.         Номер читацького квитка (формуляра).

10.   Прізвище читача.

 

11.   Ім’я читача.

12.   По батькові читача.

13.   Адреса читача.

14.   Телефон читача.

15.   Дата видачі читачу конкретного видання.

16.   Термін, на який конкретне видання видане читачу.

17.   Дата повернення видання.

6.6.2. Побудова інфологічної моделі

Аналіз визначених вище об’єктів і атрибутів дозволяє виділити суть проектованої бази даних і, ухваливши рішення про створення реляційної бази даних, побудувати її інфологічну модель на мові

«Таблиці-зв’язки».

Основу становлять:

1.         Автори (Код автора, Автор).

Ця суть відводиться для зберігання відомостей про основних людей, що брали участь у підготовці рукопису видання (авторах, укладачах, титульних редакторах, перекладачах і художниках). Таке об’єднання допустиме, оскільки дані про різних творців вибираються з одного домена (прізвище й імена) і виключає ду- блювання даних (одна і та ж людина може виконувати різні функ- ції в підготовці різних видань). Наприклад, С. Я. Маршак писав вірші  (Казка  про  дурне  мишеня) і  п’єси  (Дванадцять місяців), переклад Дж. Байрона, Р. Бернса, Г. Гейне і складав збірки віршів. Оскільки прізвище і імена (ініціали) творця можуть бути доста- тньо  громіздкими  (М. Е. Салтиков-Щедрін,  Франсуа  Рене  де Шатобріан, Остен Жюль Жан-Батист Іпполіт і т. д.) і багато ра- зів зустрічатимуться в різних виданнях, то їх доцільно нумеру- вати і посилатися на ці номери. Для цього вводиться цілочисе- льний атрибут «Код автора», який автоматично збільшувати- меться на одиницю при введенні в базу даних нового автора,

 

перекладача або іншого автора. Аналогічно створюються: Код_видавництва, Код_заголовку, Вид_ видання, Код_характе- ра, Код_мови, Номер_билета, Номер_палітурки, Код_месця і Код_видання, що замінюють від одного до дев’яти атрибутів.

2.         Видавництва (Код_видавництва, Назва, Місто).

3.         Заголовки (Код_заголовку, Заголовок).

Виділення цієї суті дозволить скоротити обсяг даних і знизити вірогідність виникнення суперечності (немає необхідності вве- дення довгих текстових назв для різних томів зібрань творів, повторних видань, підручників і т.ін.).

4.         Вид_видання (Вид_издания, Назва_виду).

5.         Характери (Код_характеру, Характер_перевидання).

6.         Мови (Код_мови, Мова, Скорочення).

Окрім назви мови зберігається її загальноприйняте скорочення

(англ., ісп., нім., фр.), якщо воно існує.

7.         Місця (Код_місця, Номер_кімнати, Номер_стелажу, Номер_ полиці).

Один із кодів цієї суті (наприклад, «-1») відведений для опису уза- гальненого місця, що знаходиться за стінами сховища книг (видання видане читачу, тимчасово передано іншій бібліотеці або організації).

8.         Читачі (Номер_квитка, Прізвище, Ім’я, По батькові, Адреса,

Телефон).

Дві ключові суті, що описують видання і його конкретні зразки,

виявляються залежними від іншої суті і належать до класу позначень:

1.         Видання   (Код_видання,   Код_заголовку,   Вид_видання,   Но- мер_тома, Авторський_знак, Бібліотечний_шифр, Повторюва- ність, Код_видавництва, Рік_вивництва, Анотація) [Заголовки, Вид_издания, Видавництва];

2.         Палітурки (Номер_обкладинки, Код_видання, Ціна, Дата_при-

дбання)[Видання].

Основна суть і позначення пов’язані між собою асоціаціями:

1.         Автори [Автори M, Видання N] (Код_автора, Код_видання).

2.         Укладачі [Автори M, Видання N] (Код_автора, Код_видання).

 

4.         Художники [Автори M, Видання N] (Код_автора, Код_видання).

5.         Перекладачі [Автори M, Видання N] (Код_автора, Код_видання,

Мова).

6.         Перевидання   [Характери   M,   Видання   N]   (Код_характеру,

Код_видання).

7.         Розміщення [Місця M, Обкладинки N] (Код_місця, Номер_об-

кладинки, Дата_разміщення, Дата_вилучення).

8.         Видача [Читачі M, Обкладинки N] (Номер_билета, Номер_об-

кладинки, Дата_видачі, Термін, Дата_повернення).

І, нарешті, для зменшення обсягу позначення «Видання», яке часто використовується, з нього виділена характеристика:

1.         Анотації (Код_видання, Анотація) {Видання}.

Рис. 6.21.

Фрагмент інфологічної моделі бази  даних «Бібліотека», побудована за допомогою мови  «Таблиці-зв’язки»

 

6.6.3. Проектування бази даних

Відповідно до процедури проектування кожна з одержаної сут- ності повинна бути подана базовою таблицею. Приклад варіанту цих таблиць описується так:

СТВОРИТИ ТАБЛИЦЮ   Автори *(Стрижнева суть)

ПЕРВИННИЙ КЛЮЧ   (Код_автора)

ПОЛЯ   (Код_автора Ціле, Прізвище_ИП Текст 30);

СТВОРИТИ ТАБЛИЦЮ   Видавництва *(Стрижнева суть)

ПЕРВИННИЙ КЛЮЧ   (Код_видавництва)

ПОЛЯ   (Код_видавництва Ціле, Назва

Текст 40, Місто Текст 25);

СТВОРИТИ ТАБЛИЦЮ   Заголовок *(Стрижнева суть)

ПЕРВИННИЙ КЛЮЧ   (Код_заголовку)

ПОЛЯ   (Код_загловку Ціле, Заголовок Запис);

СТВОРИТИ ТАБЛИЦЮ   Вид_видання *(Стрижнева суть)

ПЕРВИННИЙ КЛЮЧ   (Вид_видання)

ПОЛЯ   (Вид_издания Ціле, Назва_виду Текст 16);

СТВОРИТИ ТАБЛИЦЮ   Характери *(Стрижнева суть)

ПЕРВИННИЙ КЛЮЧ   (Код_характера)

ПОЛЯ   (Код_характеру Ціле, Характер_перевидання Текст 16);

СТВОРИТИ ТАБЛИЦЮ   Мови *(Стрижнева суть)

ПЕРВИННИЙ КЛЮЧ   (Код_мови)

ПОЛЯ   (Код_мови Ціле, Мова Текст 16, Скорочення Текст 6);

СТВОРИТИ ТАБЛИЦЮ   Місця *(Стрижнева суть)

ПЕРВИННИЙ КЛЮЧ   (Код_місця)

ПОЛЯ   (Код_місця Ціле, Номер_кімнати Ціле,

Номер_стелажу Ціле, Номер_полиці Ціле);

СТВОРИТИ ТАБЛИЦЮ   Читачі *(Стрижнева суть)

ПЕРВИННИЙ КЛЮЧ   (Ном_білету)

ПОЛЯ   (Ном_білету Ціле, Прізвище Текст 20, Ім’я Текст 16,

По батькові Текст 20, Адреса Текст 60, Телефон Текст 9);

СТВОРИТИ ТАБЛИЦЮ   Видання *(Позначення)

ПЕРВИННИЙ КЛЮЧ   (Код_видання)

ЗОВНІШНІЙ КЛЮЧ   (Код_заголовка Із Заголовка NULL-значення не ДОПУСТИМІ ВИДАЛЕННЯ Із Заголовка ОБМЕЖУЄТЬСЯ

 

ЗОВНІШНІЙ КЛЮЧ   (Вид_видання З Вид_видавництва

NULL-значення ДОПУСТИМІ

ВИДАЛЕННЯ З Вид_видання ОБМЕЖУЄТЬСЯ ОНОВЛЕННЯ Вид_видання. Вид_видання КАСКАДУЄ)

ЗОВНІШНІЙ КЛЮЧ   (Код_видавництва З Видавництва

NULL-значення не ДОПУСТИМІ

ВИДАЛЕННЯ З Видавництва ОБМЕЖУЄТЬСЯ ОНОВЛЕННЯ Видавництва. Код_видавництва КАСКАДУЄ)

ПОЛЯ   (Код_видання Ціле, Код_заголовку Ціле,

Вид_видання Текст 16, Номер_тома Ціле, Авторський_знак Текст 3, Бібліотечний_шифр Текст 12, Повторюваність Ціле, Код_видавництва- Ціле,

Рік видання Ціле)

ОБМЕЖЕННЯ   (1. Значення полів Код_заголовку, Вид_видання

і Код_видавництва повинні належати набору значень відповідних полів таблиць Заголовка, Вид_видання

і  Видавництва; при  порушенні виведення повідомлення

«Такого заголовка немає», «Такого виду видання немає»

або «Такого видавництва немає».);

СТВОРИТИ ТАБЛИЦЮ   Обкладинки *(Позначення) ПЕРВИННИЙ КЛЮЧ   (Номер_обкладинки) ЗОВНІШНІЙ КЛЮЧ   (Код_видання З Видання

NULL-значення не ДОПУСТИМІ ВИДАЛЕННЯ З Видання ОБМЕЖУЄТЬСЯ

ОНОВЛЕННЯ Видання. Код_видання КАСКАДУЄ)

ПОЛЯ   (Номер_обкладинки Ціле, Код_видання Ціле, Ціна Гроші,

Дата_придбання Дата)

ОБМЕЖЕННЯ   (Значення поля Код_видання повинні належати набору значень відповідного поля таблиці Видання; при порушенні виведення повідомлення «Такого видання немає»);

СТВОРИТИ ТАБЛИЦЮ   Анотації *(Характеризує Видання)

ПЕРВИННИЙ КЛЮЧ   (Код_видання)

ЗОВНІШНІЙ КЛЮЧ   (Код_видання З Видання NULL-значення ДОПУСТИМІ ВИДАЛЕННЯ З Видання ОБМЕЖУЄТЬСЯ

ОНОВЛЕННЯ Видання. Код_видання КАСКАДУЄ)

ПОЛЯ   (Код_видання Ціле, Анотація Запис)

ОБМЕЖЕННЯ   (Значення поля Код_видання повинні належати набору значень відповідного поля таблиці Видання; при порушенні виведення повідомлення «Такого видання немає»);

СТВОРИТИ ТАБЛИЦЮ   Автори *(Зв’язує Автори і Видання)

ПЕРВИННИЙ КЛЮЧ   (Код_автора, Код_видання)

 

ЗОВНІШНІЙ КЛЮЧ   (Код_автора З Автори

NULL-значення не ДОПУСТИМІ ВИДАЛЕННЯ З Автори ОБМЕЖУЄТЬСЯ ОНОВЛЕННЯ Автори. Код_автора КАСКАДУЄ)

ЗОВНІШНІЙ КЛЮЧ   (Код_видання З Видання

NULL-значення не ДОПУСТИМІ ВИДАЛЕННЯ З Видання ОБМЕЖУЄТЬСЯ ОНОВЛЕННЯ Видання. Код_видання КАСКАДУЄ)

ПОЛЯ   (Код_автора Ціле, Код_видання Ціле)

ОБМЕЖЕННЯ   (Значення полів Код_автора і Код_видання повинні належати набору значень відповідних полів таблиць

Автори і Видання; при порушенні висновок повідомлення

«Такого автора немає» або «Такого видання немає»);

Рис. 6.22.

Приклад створення таблиці в СУБД Access

Аналогічний зміст мають описи таблиць Укладачі, Редактори, Художники і Перевидання. Решта таблиць проектованої бази даних описується так само:

 

СТВОРИТИ ТАБЛИЦЮ   Перекладачі *(Зв’язує Автори, Видання і Мови)

ПЕРВИННИЙ КЛЮЧ   (Код_автора, Код_видання)

ЗОВНІШНІЙ КЛЮЧ   (Код_автора З Автори

NULL-значення не ДОПУСТИМІ ВИДАЛЕННЯ З Автори ОБМЕЖУЄТЬСЯ

ОНОВЛЕННЯ Автори. Код_автора КАСКАДУЄ)

ЗОВНІШНІЙ КЛЮЧ   (Код_видання З Видання

NULL-значення не ДОПУСТИМІ ВИДАЛЕННЯ З Видання ОБМЕЖУЄТЬСЯ

ОНОВЛЕННЯ Видання. Код_видання КАСКАДУЄ)

ЗОВНІШНІЙ КЛЮЧ   (Код_мови З Мови

NULL-значення не ДОПУСТИМІ ВИДАЛЕННЯ З Мови ОБМЕЖУЄТЬСЯ

ОНОВЛЕННЯ Мови. Код_мови КАСКАДУЄ)

ПОЛЯ   (Код_автора Ціле, Код_видання Ціле)

ОБМЕЖЕННЯ   (Значення  полів  Код_автора,  Код_видання  і  Код_мови повинні   належати   набору   значень   відповідних   полів

таблиць Автори, Видання і Мови; при порушенні виведення

повідомлення   «Такого   автора   немає»   або   «Такого видання немає» або «Такої мови немає»);

СТВОРИТИ ТАБЛИЦЮ   Розміщення *(Зв’язує Місця і Обкладинки)

ПЕРВИННИЙ КЛЮЧ   (Код_місця, Номер_обкладинки)

ЗОВНІШНІЙ КЛЮЧ   (Код_місця З Місця

NULL-значення не ДОПУСТИМІ ВИДАЛЕННЯ З Місця ОБМЕЖУЄТЬСЯ

ОНОВЛЕННЯ Місця. Код_місця КАСКАДУЄ)

ЗОВНІШНІЙ КЛЮЧ   (Номер_обкладинки З Обкладинки NULL-значення не ДОПУСТИМІ ВИДАЛЕННЯ З Палітурки КАСКАДУЄ

ОНОВЛЕННЯ Обкладинки. Ном_обкладинки КАСКАДУЄ)

ПОЛЯ   (Код_місця Ціле, Номер_обкладинки Ціле,

Дата_разміщення Дата, Дата_изъятия Дата)

ОБМЕЖЕННЯ   (Значення полів Код_місця і Номер_обкладинки повинні належати набору значень відповідних полів таблиць Обкладинки і Місця; при порушенні висновок повідомлення

«Такої обкладинки немає» або «Такого місця немає»);

СТВОРИТИ ТАБЛИЦЮ   Видача *(Зв’язує Читачі і Палітурки)

ПЕРВИННИЙ КЛЮЧ   (Ном_билета, Ном_обкладинки)

ЗОВНІШНІЙ КЛЮЧ   (Ном_білета З Читачі

NULL-значення не ДОПУСТИМІ ВИДАЛЕННЯ З Читачі КАСКАДУЄ ОНОВЛЕННЯ Читачі. Ном_білета КАСКАДУЄ)

 

ЗОВНІШНІЙ КЛЮЧ   (Ном_обкладинки З Обкладинки NULL-значення не ДОПУСТИМІ ВИДАЛЕННЯ З Обкладинки КАСКАДУЄ

ОНОВЛЕННЯ Обкладинки. Ном_обкладинки КАСКАДУЄ)

ПОЛЯ   (Ном_білета Ціле, Ном_обкладинки Ціле, Дата_видачі Дата,

Термін Ціле, Дата_повернення Дата)

ОБМЕЖЕННЯ   (Значення полів Ном_білета і Ном_обкладинки повинні належати набору значень відповідних полів таблиць

Читачі і Обкладинки; при порушенні виведення повідомлення

«Такого читача немає» або «Такої палітурки немає»);

Тепер необхідно перевірити, чи не порушені в даному проекті будь-які принципи нормалізації, тобто будь-яке неключове поле кожної таблиці:

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

•     не має функціональної залежності від іншого неключового поля.

•           Сутність Автори, Укладачі, Редактори, Художники і Переви- дання, що не мають неключових полів, безумовно нормалізовані. Нормалізовані і суті Творці, Характери, Заголовки, Вид_видан- ня й Анотації, що складаються з нескладового ключа і єдиного неключового поля.

З аналізу сутності Перекладачі, Розміщення і Видача, що скла-

даються зі складового ключа і неключових полів, видно, що в них немає функціональних зв’язків між неключовими полями. Останні ж не залежать функціонально від будь-якої частини складового ключа.

Нарешті, аналіз сутності Видання, Обкладинки, Місця, Читача і Мови, показав, що єдиною «підозрілою» сутністю є основа Мови, що має два функціонально пов’язані неключові поля: Мова і Ско- рочення.

Поле Мова стало неключовим через введення цифрового пер-

винного ключа Код_мови, який замінює текстовий можливий ключ Мова. Це дозволило зменшити обсяг даних, що зберігаються, в табли- ці Перекладачі, витрати часу на введення безлічі текстових значень і можливої суперечності, яка часто виникає через введення в різні поля

 

помилкових дублікатів (наприклад, «Англійська», «Англійська», «Анг- лійська», «Англійська» і т.ін.). Якщо ми пригадаємо рекомендації про заміну на час нормалізації цифрових замінників первинних ключів (Код_мови) на початковий ключ (Мова) або скористаємося формулю- ванням НФБК, то виявиться, що таблиця Мови — нормалізована.

Для завершення проекту необхідно було б ввести в описи таб- лиць додаткові відомості про обмеження цілісності (вище вказаний лише мінімальний їх набір) і дати опис деяких таблиць, але обмеже-

ний обсяг публікації не дозволяє включати ці подробиці, що не є

принциповими для ілюстрації процедури проектування. Для зруч-

ності роботи з таблицями використовуються форми (рис. 6.23).

А система запитів дозволяє у будь-який момент часу одержати інформацію за заданих умов.

Рис. 6.23.

Приклад форми для  роботи з інформацією (СУБД Access)