Приклад проектування бази даних Бібліотека

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

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

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

Д27 Дейт К. Посібник з реляційної СУБД DB2 / Пер. з англ. і предисл. М. Р. Когаловскій. - М.: Фінанси і статистика, 1988. - 320 с.: Іл.

ISBN 5-279-00063-9

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

ББК 32.973

Рис. 5.1. Макет анотованої каталожної картки

Для ведення бібліотечних каталогів, організації пошуку необхідних видань та бібліотечної статистики в базі повинні зберігатися відомості, велика частина яких розміщуються в анотованих каталожних картках (рис. 5.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 / 8. Суспільні та гуманітарні науки; 9. Бібліографічні посібники. Довідкові видання . Журнали.) ділиться на підкласи і наступні ступені ділення:

3. Техніка. Технічні науки.
32 Радіоелектроніка.
32.97 Обчислювальна техніка.
32.973 Електронні обчислювальні машини і пристрої.
32.973.2 Електронно обчислювальні машини й пристрої дискретної дії.

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

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

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

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

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

20. Номер полки на стелажі.

21. Номер (інвентарний номер) палітурки.

22. Дата придбання конкретного палітурки.

23. Ціна конкретного палітурки.

24. Дата розміщення конкретного плетіння на конкретному місці.

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

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

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

28. Ім'я читача.

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

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

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

32. Дата видачі читачеві конкретного палітурки.

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

34. Дата повернення палітурки.

Побудова инфологической моделі

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

До стрижневим сутностей можна віднести:

Творці (Код творця, Творець).

Ця сутність відводиться для зберігання відомостей про основні людях, які брали участь у підготовці рукопису видання (авторів, упорядник, титульних редакторах, перекладачах і художників). Таке об'єднання допустимо, тому що дані про різні творців вибираються з одного домену (прізвище та імена) і виключає дублювання даних (один і той самий людина може грати різні ролі в підготовці різних видань). Наприклад, С. Я. Маршак писав вірші (Казка про дурне мишеня) і п'єси (Дванадцять місяців), перекладав Дж.Байрона, Р. Бернса, Г. Гейне і становив збірки віршів.

Так як прізвище та імена (ініціали) творця можуть бути досить громіздкими (М. Є. Салтиков-Щедрін, Франсуа Рене де Шатобріан, Остен Жюль Жан-Батіст Іполит і т.п.) і будуть багаторазово зустрічатися в різних виданнях, то їх доцільно нумерувати і посилатися на ці номери. Для цього вводиться цілочисельний атрибут "Код_создателя", який буде автоматично нарощуватися на одиницю при введенні в базу даних нового автора, перекладача або іншого творця.

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

Виділення цієї сутності дозволить скоротити обсяг даних і знизити ймовірність виникнення суперечливості (виключається необхідність введення довгих текстових назв для різних томів зібрань творів, повторних видань, підручників тощо). Від_ізданія (Від_ізданія, Названіе_віда). Характери (Код_характера, Характер_переізданія). Мови (Код_язика, Мова, Скорочення).

Крім назви мови зберігається його загальноприйняте скорочення (англ., ісп., Нім., Фр.), Якщо воно існує. Місця (Код_места, Номер_комнати, Номер_стеллажа, Номер_ полиці).

Один з кодів цієї сутності (наприклад, "-1") відведена для опису узагальненого місця, що знаходиться за стінами сховища книг (видання видано читачеві, тимчасово передано іншій бібліотеці чи організації). Читачі (Номер_білета, Прізвище, Ім'я, По батькові, адреса, телефон).

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

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

Стрижневі сутності та позначення пов'язані між собою асоціаціями:

Автори [Творці M, Видання N] (Код_создателя, Код_ізданія). Укладачі [Творці M, Видання N] (Код_создателя, Код_ізданія). Редактори [Творці M, Видання N] (Код_создателя, Код_ізданія). Художники [Творці M, Видання N] (Код_создателя, Код_ізданія). Перекладачі [Творці M, Видання N] (Код_создателя, Код_ізданія, Мова). Перевидання [Характери M, Видання N] (Код_характера, Код_ізданія). Розміщення [Місця M, Палітурки N] (Код_места, Номер_переплета, Дата_размещенія, Дата_із'ятія). Видача [Читачі M, Палітурки N] (Номер_білета, Номер_переплета, Дата_видачі, Термін, Дата_возврата).

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

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

Приклад проектування бази даних "Бібліотека"

Рис. 5.2. Инфологическая модель бази даних "Бібліотека", побудована за допомогою мови "Таблиці-зв'язку"

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

У відповідність з процедурою проектування (п. 4.4) кожна з отриманих сутностей повинна бути представлена ​​базової таблицею. Перший варіант цих таблиць описується так:

СТВОРИТИ ТАБЛИЦЮ Творці * (Стрижнева сутність) ПЕРВИННИЙ КЛЮЧ (Код_создат) ПОЛЯ (Код_создат Ціле, Фам_ІО Текст 30); СТВОРИТИ ТАБЛИЦЮ Видавництва * (Стрижнева сутність) ПЕРВИННИЙ КЛЮЧ (Код_іздательства) ПОЛЯ (Код_іздательства Ціле, Назва Текст 40, Місто Текст 25); СТВОРИТИ ТАБЛИЦЮ Заголовки * (Стрижнева сутність) ПЕРВИННИЙ КЛЮЧ (Код_заглавія) ПОЛЯ (Код_заглавія Ціле, Заглавие Запис); СТВОРИТИ ТАБЛИЦЮ Від_ізданія * (Стрижнева сутність) ПЕРВИННИЙ КЛЮЧ (Від_ізданія) ПОЛЯ (Від_ізданія Ціле, Названіе_віда Текст 16); СТВОРИТИ ТАБЛИЦЮ Характери * ( Стрижнева сутність) ПЕРВИННИЙ КЛЮЧ (Код_характера) ПОЛЯ (Код_характера Ціле, Характер_переізданія Текст 16); СТВОРИТИ ТАБЛИЦЮ Мови * (Стрижнева сутність) ПЕРВИННИЙ КЛЮЧ (Код_язика) ПОЛЯ (Код_язика Ціле, Мова Текст 16, Скорочення Текст 6); СТВОРИТИ ТАБЛИЦЮ Місця * ( Стрижнева сутність) ПЕРВИННИЙ КЛЮЧ (Код_места) ПОЛЯ (Код_места Ціле, Номер_комнати Ціле, Номер_стелажа Ціле, Номер_полкі Ціле); СТВОРИТИ ТАБЛИЦЮ Читачі * (Стрижнева сутність) ПЕРВИННИЙ КЛЮЧ (Ном_білета) ПОЛЯ (Ном_білета Ціле, Прізвище Текст 20, Ім'я Текст 16, батькові Текст 20, Адреса Текст 60, Телефон Текст 9); СТВОРИТИ ТАБЛИЦЮ Видання * (Позначення) ПЕРВИННИЙ КЛЮЧ (Код_ізданія) ЗОВНІШНІЙ КЛЮЧ (Код_заглавія З Заголовки NULL-значення НЕ ПРИПУСТИМА ВИДАЛЕННЯ З Заголовки ОБМЕЖУЄТЬСЯ ОНОВЛЕННЯ Заглавія.Код_заглавія ОБМЕЖУЄТЬСЯ) ЗОВНІШНІЙ КЛЮЧ (Від_ізданія ІЗ Від_ізданія NULL-значення припустимі ВИДАЛЕННЯ З Від_ізданія ОБМЕЖУЄТЬСЯ ОНОВЛЕННЯ Від_ізданія.Від_ізданія КАСКАДІРУЕТСЯ) ЗОВНІШНІЙ КЛЮЧ (Код_іздательства З Видавництва NULL-значення НЕ ПРИПУСТИМА ВИДАЛЕННЯ З Видавництва ОБМЕЖУЄТЬСЯ ОНОВЛЕННЯ Издательства.Код_издательства КАСКАДІРУЕТСЯ) ПОЛЯ (Код_ізданія Ціле, Код_заглавія Ціле, Від_ізданія Текст 16, Номер_тома Ціле , Авторскій_знак Текст 3, Бібліотечн_шіфр Текст 12, Повторність Ціле, Код_іздательст-ва Ціле, Год_ізданія Ціле) ОБМЕЖЕННЯ (1. Значення полів Код_заглавія, Від_ізданія і Код_іздательства повинні належати набору значень відповідних полів таблиць Заголовки, Від_ізданія і Видавництва; при порушенні виведення повідомлення "Такого заголовка немає "," Такого виду видання ні "або" Такого видавництва немає ".); СТВОРИТИ ТАБЛИЦЮ Палітурки * (Позначення) ПЕРВИННИЙ КЛЮЧ (Номер_переплета) ЗОВНІШНІЙ КЛЮЧ (Код_ізданія З Видання NULL-значення НЕ ПРИПУСТИМА ВИДАЛЕННЯ З Видання ОБМЕЖУЄТЬСЯ ОНОВЛЕННЯ Ізданія.Код_ізданія КАСКАДІРУЕТСЯ) ПОЛЯ (Номер_переплета Ціле, Код_ізданія Ціле, Ціна Гроші, Дата_пріобретенія Дата) ОБМЕЖЕННЯ (Значення поля Код_ізданія повинні належати набору значень відповідного поля таблиці Видання; при порушенні виведення повідомлення "Такого видання немає"); СТВОРИТИ ТАБЛИЦЮ Анотації * (Характеризує Видання) ПЕРВИННИЙ КЛЮЧ (Код_ізданія) ЗОВНІШНІЙ КЛЮЧ (Код_ізданія З Видання NULL-значення припустимі ВИДАЛЕННЯ З Видання ОБМЕЖУЄТЬСЯ ОНОВЛЕННЯ Ізданія.Код_ізданія КАСКАДІРУЕТСЯ) ПОЛЯ (Код_ізданія Ціле, Анотація Запис) ОБМЕЖЕННЯ (Значення поля Код_ізданія повинні належати набору значень відповідного поля таблиці Видання; при порушенні висновок повідомлення "Такого видання немає"); СТВОРИТИ ТАБЛИЦЮ Автори * (Зв'язує Творці і Видання) ПЕРВИННИЙ КЛЮЧ (Код_создателя, Код_ізданія) ЗОВНІШНІЙ КЛЮЧ (Код_создателя З Творці NULL-значення НЕ ПРИПУСТИМА ВИДАЛЕННЯ З Творці ОБМЕЖУЄТЬСЯ ОНОВЛЕННЯ Создателі.Код_создателя КАСКАДІРУЕТСЯ) ЗОВНІШНІЙ КЛЮЧ (Код_ізданія ІЗ Видання NULL-значення НЕ ПРИПУСТИМА ВИДАЛЕННЯ З Видання ОБМЕЖУЄТЬСЯ ОНОВЛЕННЯ Ізданія.Код_ізданія КАСКАДІРУЕТСЯ) ПОЛЯ (Код_создателя Ціле, Код_ізданія Ціле) ОБМЕЖЕННЯ (Значення полів Код_создателя і Код_ізданія повинні належати набору значень відповідних полів таблиць Творці і Видання; при порушенні виведення повідомлення "Такого автора немає "або" Такого видання немає ");

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

СТВОРИТИ ТАБЛИЦЮ Перекладачі * (Зв'язує Творці, Видання та Мови) ПЕРВИННИЙ КЛЮЧ (Код_создателя, Код_ізданія) ЗОВНІШНІЙ КЛЮЧ (Код_создателя З Творці NULL-значення НЕ ПРИПУСТИМА ВИДАЛЕННЯ З Творці ОБМЕЖУЄТЬСЯ ОНОВЛЕННЯ Создателі.Код_создателя КАСКАДІРУЕТСЯ) ЗОВНІШНІЙ КЛЮЧ (Код_ізданія З Видання NULL-значення НЕ ПРИПУСТИМА ВИДАЛЕННЯ З Видання ОБМЕЖУЄТЬСЯ ОНОВЛЕННЯ Ізданія.Код_ізданія КАСКАДІРУЕТСЯ) ЗОВНІШНІЙ КЛЮЧ (Код_язика З Мови NULL-значення НЕ ПРИПУСТИМА ВИДАЛЕННЯ З Мови ОБМЕЖУЄТЬСЯ ОНОВЛЕННЯ Язикі.Код_язика КАСКАДІРУЕТСЯ) ПОЛЯ (Код_создателя Ціле, Код_ізданія Ціле) ОБМЕЖЕННЯ (Значення полів Код_создателя, Код_ізданія і Код_язика повинні належати набору значень відповідних полів таблиць Творці, Видання та Мови; при порушенні виведення повідомлення "Такого автора немає" або "Такого видання немає" або "Такої мови немає"); СТВОРИТИ ТАБЛИЦЮ Розміщення * (Зв'язує Місця та Палітурки) ПЕРВИННИЙ КЛЮЧ (Код_места, Номер_переплета) ЗОВНІШНІЙ КЛЮЧ (Код_места З Місця NULL-значення НЕ ПРИПУСТИМА ВИДАЛЕННЯ З Місця ОБМЕЖУЄТЬСЯ ОНОВЛЕННЯ Места.Код_места КАСКАДІРУЕТСЯ) ЗОВНІШНІЙ КЛЮЧ (Номер_переплета З Палітурки NULL-значення НЕ ПРИПУСТИМА ВИДАЛЕННЯ З Палітурки КАСКАДІРУЕТСЯ ОНОВЛЕННЯ Переплети.Ном_переплета КАСКАДІРУЕТСЯ) ПОЛЯ (Код_места Ціле, Номер_переплета Ціле, Дата_размещенія Дата, Дата_із'ятія Дата) ОБМЕЖЕННЯ (Значення полів Код_места і Номер_переплета повинні належати набору значень відповідних полів таблиць Палітурки та Місця; при порушенні виведення повідомлення "Такого палітурки ні" або "Такого місця немає"); СТВОРИТИ ТАБЛИЦЮ Видача * (Зв'язує Читачі і Палітурки) ПЕРВИННИЙ КЛЮЧ (Ном_білета, Ном_переплета) ЗОВНІШНІЙ КЛЮЧ (Ном_білета З Читачі NULL-значення НЕ ПРИПУСТИМА ВИДАЛЕННЯ З Читачі КАСКАДІРУЕТСЯ ОНОВЛЕННЯ Чітателі.Ном_білета КАСКАДІРУЕТСЯ) ЗОВНІШНІЙ КЛЮЧ (Ном_переплета З Палітурки NULL-значення НЕ ПРИПУСТИМА ВИДАЛЕННЯ З Палітурки КАСКАДІРУЕТСЯ ОНОВЛЕННЯ Переплети.Ном_переплета КАСКАДІРУЕТСЯ) ПОЛЯ (Ном_білета Ціле, Ном_переплета Ціле, Дата_видачі Дата, Термін Ціле, Дата_возврата Дата) ОБМЕЖЕННЯ (Значення полів Ном_білета і Ном_переплета повинні належати набору значень відповідних полів таблиць Читачі і Палітурки; при порушенні виведення повідомлення "Такого читача ні" або "Такого палітурки ні ");

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

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

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

Нарешті, аналіз сутностей Видання, Палітурки, Місця, Читачі та Мови, показав, що єдиною "підозрілою" сутністю є стрижень Мови, що має два функціонально пов'язаних неключових поля: Мова і Скорочення.

Поле Мова стало неключових через введення цифрового первинного ключа Код_язика, що заміняє текстовий можливий ключ Мова. Це дозволило зменшити обсяг збережених даних в таблиці Перекладачі, витрати праці на введення безлічі текстових значень і можливої ​​суперечливості, яка часто виникає з-за введення в різні поля помилкових дублікатів (наприклад, "Англійський", "Англійська", "анлійського", "англйском "і т.п.). Если мы вспомним рекомендации п. 4.5 о замене на время нормализации цифровыз заменителей первичных ключей (Код_языка) на исходный ключ (Язык) или воспользуемся формулировкой НФБК, то окажется, что таблица Языки – нормализована.

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

ЛІТЕРАТУРА Атре Ш. Структурний підхід до організації баз даних. - М.: Фінанси і статистика, 1983. - 320 с. Бойко В.В., Савінков В.М. Проектування баз даних інформаційних систем. - М.: Фінанси і статистика, 1989. - 351 с. Дейт К. Посібник з реляційної СУБД DB2. - М.: Фінанси і статистика, 1988. - 320 с. Джексон Г. Проектування реляційних баз даних для використання з мікроЕОМ. -М.: Світ, 1991. - 252 с. Кирилов В.В. Структурізованние мову запитів (SQL). - СПб.: ІТМО, 1994. - 80 с. Мартін Дж. Планування розвитку автоматизованих систем. - М.: Фінанси і статистика, 1984. - 196 с. Мейєр М. Теорія реляційних баз даних. - М.: Світ, 1987. - 608 с. Тіорі Т., Фрай Дж. Проектування структур баз даних. У 2 кн., - М.: Світ, 1985. Кн. 1. - 287 с.: Кн. 2. - 320 с. Ульман Дж. Бази даних на Паскалі. - М.: Машинобудування, 1990. - 386 с. Хаббард Дж. Автоматизоване проектування баз даних. - М.: Світ, 1984. - 294 с. Цікрітізіс Д., лохівський Ф. Моделі даних. - М.: Фінанси і статистика, 1985. - 344 с.

Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Доповідь
36кб. | скачати


Схожі роботи:
Проектування бази даних підприємства
Проектування бази даних Інститут
Проектування реляційної бази даних
Проектування і реалізація бази даних
Проектування бази даних Вивчення методології
Проектування бази даних оптового складу
Проектування бази даних з обліку основних засобів
Просопографіческіе бази даних Росії на прикладі баз даних Comandarm і Duma1
Використання електронної таблиці як бази даних Сортування і фільтрація даних в Microsoft Excel
© Усі права захищені
написати до нас