Автор: Пользователь скрыл имя, 09 Марта 2013 в 10:59, лекция
Традиционно фиксация данных осуществляется с помощью конкретного средства общения (например, с помощью естественного языка или изображений) на конкретном носителе (например, камне или бумаге). Обычно данные (факты, явления, события, идеи или предметы) и их интерпретация (семантика) фиксируются совместно, так как естественный язык достаточно гибок для представления того и другого. Примером может служить утверждение "Стоимость авиабилета 128". Здесь "128" – данное, а "Стоимость авиабилета" – его семантика.
Глава 1. Что такое базы данных и СУБД
1.1. Данные и ЭВМ
1.2. Концепция баз данных
1.3. Архитектура СУБД
1.4. Модели данных
Глава 2. Инфологическая модель данных "Сущность-связь"
2.1. Основные понятия
2.2. Характеристика связей и язык моделирования
2.3. Классификация сущностей
2.4. О первичных и внешних ключах
2.5. Ограничения целостности
2.6. О построении инфологической модели
Глава 3. Реляционный подход
3.1. Реляционная структура данных
3.2. Реляционная база данных
3.3. Манипулирование реляционными данными
Глава 4. Введение в проектирование реляционных баз данных
4.1. Цели проектирования
4.2. Универсальное отношение
4.3. Почему проект БД может быть плохим?
4.4. О нормализации, функциональных и многозначных зависимостях
4.5. Нормальные формы
4.6. Процедура нормализации
4.7. Процедура проектирования
4.8. Различные советы и рекомендации
Глава 5. Пример проектирования базы данных "Библиотека"
5.1. Назначение и предметная область
5.2. Построение инфологической модели
5.3. Проектирование базы данных
Литература
Предметный указатель
Рис. 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).
К стержневым сущностям можно отнести:
Две ключевые сущности, описывающие издание и его конкретные экземпляры, оказываются зависимыми от других сущностей и попадают в класс обозначений:
Стержневые сущности и обозначения
связаны между собой
И, наконец, для уменьшения объема
часто используемого
Рис. 5.2. Инфологическая модель базы данных "Библиотека", построенная с помощью языка "Таблицы-связи"
В соответствие с процедурой проектирования (п. 4.4) каждая из полученных сущностей должна быть представлена базовой таблицей. Первый вариант этих таблиц описывается так:
СОЗДАТЬ ТАБЛИЦУ Создатели *( Стержневая сущность )
ПЕРВИЧНЫЙ КЛЮЧ ( Код_создат )
ПОЛЯ
( Код_создат Целое, Фам_ИО
СОЗДАТЬ ТАБЛИЦУ Издательства *( Стержневая сущность )
ПЕРВИЧНЫЙ КЛЮЧ ( Код_издательства )
ПОЛЯ
( Код_издательства Целое,
Текст 40, Город Текст 25 );
СОЗДАТЬ ТАБЛИЦУ Заглавия *( Стержневая сущность )
ПЕРВИЧНЫЙ КЛЮЧ ( Код_заглавия )
ПОЛЯ ( Код_заглавия Целое, Заглавие Запись );
СОЗДАТЬ ТАБЛИЦУ Вид_издания *( Стержневая сущность )
ПЕРВИЧНЫЙ КЛЮЧ ( Вид_издания )
ПОЛЯ
( Вид_издания Целое, Название_
СОЗДАТЬ ТАБЛИЦУ Характеры *( Стержневая сущность )
ПЕРВИЧНЫЙ КЛЮЧ ( Код_характера )
ПОЛЯ
( Код_характера Целое, Характер_
СОЗДАТЬ ТАБЛИЦУ Языки *( Стержневая сущность )
ПЕРВИЧНЫЙ КЛЮЧ ( Код_языка )
ПОЛЯ ( Код_языка Целое, Язык Текст 16, Сокращение Текст 6 );
СОЗДАТЬ ТАБЛИЦУ Места *( Стержневая сущность )
ПЕРВИЧНЫЙ КЛЮЧ ( Код_места )
ПОЛЯ
( Код_места Целое, Номер_
Номер_стелажа Целое, Номер_
СОЗДАТЬ ТАБЛИЦУ Читатели *( Стержневая сущность )
ПЕРВИЧНЫЙ КЛЮЧ ( Ном_билета )
ПОЛЯ
( Ном_билета Целое, Фамилия
Отчество Текст 20, Адрес Текст 60, Телефон Текст 9 );
СОЗДАТЬ ТАБЛИЦУ Издание *( Обозначение )
ПЕРВИЧНЫЙ КЛЮЧ ( Код_издания )
ВНЕШНИЙ КЛЮЧ ( Код_заглавия ИЗ Заглавия
NULL-значения НЕ ДОПУСТИМЫ
УДАЛЕНИЕ ИЗ Заглавия
ОБНОВЛЕНИЕ Заглавия.Код_
ВНЕШНИЙ КЛЮЧ ( Вид_издания ИЗ Вид_издания
NULL-значения ДОПУСТИМЫ
УДАЛЕНИЕ ИЗ Вид_издания
ОБНОВЛЕНИЕ Вид_издания.Вид_
ВНЕШНИЙ КЛЮЧ ( Код_издательства ИЗ Издательства
NULL-значения НЕ ДОПУСТИМЫ
УДАЛЕНИЕ ИЗ Издательства ОГРАНИЧИВАЕТСЯ
ОБНОВЛЕНИЕ Издательства.Код_
ПОЛЯ
( Код_издания Целое, Код_
Вид_издания Текст 16, Номер_тома Целое,
Авторский_знак Текст 3, Библиотечн_шифр Текст 12,
Повторность Целое, Код_
Год_издания Целое )
ОГРАНИЧЕНИЯ ( 1. Значения полей Код_заглавия, Вид_издания
и Код_издательства должны принадлежать набору значений
соответствующих полей таблиц Заглавия, Вид_издания
и Издательства; при нарушении вывод сообщения "Такого
заглавия нет", "Такого вида издания нет" или "Такого
издательства нет". );
СОЗДАТЬ ТАБЛИЦУ Переплеты *( Обозначение )
ПЕРВИЧНЫЙ КЛЮЧ ( Номер_переплета )
ВНЕШНИЙ КЛЮЧ ( Код_издания ИЗ Издания
NULL-значения НЕ ДОПУСТИМЫ
УДАЛЕНИЕ ИЗ Издания
ОБНОВЛЕНИЕ Издания.Код_издания КАСКАДИРУЕТСЯ)
ПОЛЯ
( Номер_переплета Целое, Код_
Дата_приобретения Дата )
ОГРАНИЧЕНИЯ ( Значения
поля Код_издания должны
значений соответствующего поля таблицы Издания;
при нарушении вывод сообщения "Такого издания нет" );
СОЗДАТЬ ТАБЛИЦУ Аннотации *( Характеризует Издания )
ПЕРВИЧНЫЙ КЛЮЧ ( Код_издания )
ВНЕШНИЙ КЛЮЧ ( Код_издания ИЗ Издания
NULL-значения ДОПУСТИМЫ
УДАЛЕНИЕ ИЗ Издания
ОБНОВЛЕНИЕ Издания.Код_
ПОЛЯ ( Код_издания Целое, Аннотация Запись )
ОГРАНИЧЕНИЯ ( Значения поля Код_издания должны принадлежать набору
значений соответствующего
при нарушении вывод сообщения "Такого издания нет" );
СОЗДАТЬ ТАБЛИЦУ Авторы *( Связывает Создатели и Издания )
ПЕРВИЧНЫЙ КЛЮЧ ( Код_создателя, Код_издания )
ВНЕШНИЙ КЛЮЧ ( Код_создателя ИЗ Создатели
NULL-значения НЕ ДОПУСТИМЫ
УДАЛЕНИЕ ИЗ Создатели
ОБНОВЛЕНИЕ Создатели.Код_
ВНЕШНИЙ КЛЮЧ ( Код_издания ИЗ Издания
NULL-значения НЕ ДОПУСТИМЫ
УДАЛЕНИЕ ИЗ Издания
ОБНОВЛЕНИЕ Издания.Код_
ПОЛЯ
( Код_создателя Целое, Код_
ОГРАНИЧЕНИЯ ( Значения полей Код_создателя и Код_издания должны
принадлежать набору значений соответствующих полей
таблиц Создатели и Издание; при нарушении вывод
сообщения "Такого автора нет" или "Такого издания нет" );
Аналогичное содержание имеют описания таблиц Составители, Редакторы, Художники и Переиздания. Остальные же таблицы проектируемой базы данных описываются так:
СОЗДАТЬ ТАБЛИЦУ Переводчики *( Связывает Создатели, Издания и Языки)
ПЕРВИЧНЫЙ КЛЮЧ ( Код_создателя, Код_издания )
ВНЕШНИЙ КЛЮЧ ( Код_создателя ИЗ Создатели
Информация о работе Основы проектирования реляционных баз данных