- •Базы данных
- •1. Введение в базы данных
- •1.1. Базы данных и информационные системы
- •1.2. Архигсюура информационной системы
- •1.3. Системы управления базами данных
- •1.4. Локальные информационные системы
- •1.5. Способы разработки и выполнения приложений
- •1.6. Схема обмена данными при работе с бд
- •2. Модели и типы данных
- •2.1. Иерархическая модель
- •Сотоудники
- •2.2. Сетевая модель
- •2.3. Реляционная модель
- •2.4. Постреляционная модель
- •2.5. Многомерная модель
- •1996 1994 Петров Смирнов Яковлев
- •2.6. Объектно-ориентированная модель
- •2.7. Типы данных
- •3. Реляционная модель данных
- •3.1. Определение реляционной модели
- •3.2. Индексирование
- •3.3. Связывание таблиц
- •3.4. Контроль целостности связей
- •3.5. Теоретические языки запросов
- •I аспределенное Удаленное Распределен- Удаленн! 1йдо- Распределен- предстаеление представление ная функция ступ к данным наяЬд
- •4.5. Информационные системы в Интернете и интранете
- •Часть 2. I Ъоектиросанн ? и использование бд
- •7. Средства автоматизации проектирования
- •7.1. Основные определения
- •7.8. Рекомендации по применению case-систем
- •9. Дополнительные вопросы применения баз данных
- •9.1. Программно-аппаратные платформы
- •9.2. Перспективы развития субд
- •9.3. Стандартизация баз данных
- •9.4. Характеристика технологии ado.Net
- •10.1. Общая характеристика
- •10.2. Новые возможности Microsoft Access 2002
- •10.3.Средства поддержки проектирования
- •10.4. Создание основных элементов бд
- •IQdbl mdb
- •Option Compare Database Public Function funl() beep End Function
- •10.5. Работа с гиперссылками
- •10.6. Использование языка sql
- •Аргументы макрокоманды ' Инструкция sQl. Select distinctrow tof
- •10.7. Защита баз данных
- •10.9. Обслуживание баз данный
- •10.10. Репликация баз данных
- •Реплицируемые объекты
- •Реплицируемые объекты
- •10.11. Работа с мультимедиа-данными
- •Тип объекта
- •Comic Chat Boom Microsoft Graph so Music Prop pry Page 2 1 Option f ropery Page21 Ры-ndox FableВидео-клип
- •10.12. Создание файлов приложений
- •10.13. Страницы доступа к данным
- •Краткая характеристика отличий сДд от форм и отчетом
- •10.14. Разработка проекта
- •Распределение атрибутов по вариантам
- •11.1. Пользовательский интерфейс
- •11.2. Характеристика проекта
- •11.3. Компиляция и выполнение проекта
- •11.4. Разработка приложения
- •11.5. Средства интегрированной среды разработки
- •Управление параметрами среды
- •11.6. Базы данных и средства работы с ними
- •Компоненты приложений для баз данных
- •11.7. Создание таблиц базы данных
- •11.8. Создание приложения bde
- •Значения свойств компонентов
- •11.9. Работа с отчетами
- •12. Субд Visual FoxPro 8.0
- •12.1. Общая характеристика
- •12.2. Новые возможности Visual FoxPro 8.0
- •12.3. Элементы проекта
- •12.4. Интерфейс Visual FoxPro
- •12.5. Средства автоматизации разработки
- •12.6. Создание баз данных
- •12.7. Таблицы и индексы
- •12.8. Организация межтабличных связей
- •12.9. Обеспечение ссылочной целостности
- •12.10. Создание запросов
- •Variables:
- •13. Microsoft sql Server 2000
- •13.1. Характеристика sql Server
- •13.2. Язык запросов Transact-sql
- •13.3. Системные базы данных и таблицы
- •13.4. Создание баз данных
- •13.5. Работа с таблицами
- •15.1. Принципы функционирования Web-приложений
- •15.2. Архитектура Web-приложений, публикующих бд
- •15.3. Обзор Web-серверов
- •15.4. Использование Personal Web-server
- •15.5. Использование Microsoft Internet Information Server
- •15.6. Использование Apache дляMicrosoft Windows 9х/2000
- •Вы видите это вместо ожидаемой страницы?
- •15.7. Варианты создания Web-узла
- •16. Интерфейсы программирования Web-приложений
- •16.1. Общий интерфейс взаимодействия cgi
- •18. Публикация бд средствами Microsoft Access
- •18.1. Характеристика вариантов публикации
Часть 2. I Ъоектиросанн ? и использование бд
варианта могут быть рабочими, а выбор лучшего из них будет результатом личных предпочтений.
С целью повышения наглядности и удобства проектирования для представления сущностей, экземпляров сущностей и связей между ними используются следующие графические средства:
дыа&рсшмы ЕК-экземтишрос,
диагралиАы ER-muna, и пи ER-диаграмчы.
11а рис. 6.1 приведена диаграмма ER-экземпляров для сущностей ПРЕПОДАВАТЕЛЬ и ДИСЦИПЛИНА со связью ВЕДЕТ.
ПРЕПОДАВАТЕЛЬ ВЕДЕ1 ДИСЦИПЛИНА
ИВАНОВ
И.М.
ф.
•
СУБД
ПЕТРОВ
М.И.
ф
Г
inOPOR
1-1
Г —
^ф
ПЛ/1 ЕГОРОВ
В В.
ф
Ф
Алгол КОЗЛОВ
А. С. г^
~~~~
ф Фортран
Рис.
6 1. Диаграмма ER-экземпляров
Диаграмма ER экземпляров показывает. как v ю конкретно дисциплину (СУБД, ПЛ/1 и т.д.) ведет каждый из преподавателей. На рис. 6.2 представлена диаграмма ER-типа, соответствующая рассмотренной диаграмме ER- экземпляров.
Рис.
6 2. Диа! рамма ЕК-типа
На начальном этане проектирования БД выделяются атрибуты, составляющие ключи сущностей.
168
Степень связи является характеристикой связи между сущностями, кото рая может быть типа: 1:1, 1:М, М:1, М:М.
Класс принадлежности (КП) сущности может быть: обяза.пелъны м и не- оСииттелъным.
Класс принадлежнос ги сущности является обязат> лънъил, если все экземпляры ттой сущности обязательно участвуют в рассматриваемой связи, в про тивном случае класс принадлежности сущности является необязательным
Варьируя классом принадлежности сущностей для каждого из названных типов связи, можно получить несколько вариантов диаграмм ER-типа. Рассмотрим примеры некоторых из них.
Пример 1. Связи типа 1:1 и необязательный класс нринад. [ежноети.
В приведенной на рис. 6.1 диаграмме степень связи между сущнос гями 1:1, а класс принадлежности обеих сущностей необязательный. Действительно, из рисунка видно следующее:
каждый преподаватель ведет не более одной дисциплины, а каждая дисциплина ведется не более чем одним преподавателем (степень связи 1:1);
некоторые преподаватели не ведут ни одной дисциплины и имеются дисциплины, которые не ведет ни один из преподавателей (класс принадлежности обеих сущностей необязательный).
Пример 2. Связи типа 1:1 и обязательный класс принадлежности.
Па рис. 6.3 приведены диаграммы, у которых степень связи между сущностями 1:1, а класс принадлежности обеих сущностей обязательный.
В этом случае каждый преподаватель ведет одну дисциплину и каждая дисциплина ведется одним преподавателем.
а) ER-экземпляров
ПРЕПОДАВАТЕЛЬ |
ВЕДЕТ |
ДИСЦИПЛИНА |
|
|
|
ИВАНОВ И.М. ф пргрпя 1\/ Л » - |
|
СУБД ПП/1 |
СИДОРОВ Н.Г.»- |
|
—Паскаль |
ЕГОРОВ В.В. |
|
—• Алгол |
КОЗЛОВ А.С. » |
|
• Фортран |
Рис
6.3. Диаггаммы для связи 1:1 и обязательным
КГ( обеих сущнос гей
В» 1змижны два промежуточных варианта с необязательным классом принадлежности одной из сущностей.
Замечания.
На диаграммах ER-типа обязательное участие в связи экземпляров сущности отмечается блоком с точкой внутри, смежш im с блоком этой сущности (рис. 6.36).
При необязательном, участии экземпляров сущности в связи дополните тьный блок к блоку сущности не пристраивается, а точка размещается на линии связи (рис. 6.2).
Символы на линии связи указыьают на степени связи.
Под каждым блоком, соответствующим некоторой сущности, указывается ее ключ, выделяемый подчеркиванием. Многоточие за ключевыми атрибутами означает, что возм< окны дру] ие ттрибуты сущности, но ни один из них не может быть час тью ее ключа Эт и атрибуты выяяляются после формирования отношений.
На практике степень связи и класс принадлежности сущностей при проектировании БД определяется спецификой предметной области. Рассмотрим примеры вариантов со степенью связи 1:М или М:1.
Пример 3. С вязи типа 1:М.
Каждый преподаватель может вести несколько дисциплин, но каждая дисциплина ведется одним преподавателем.
Пример 4. Связи типа М:1.
Каждый преподаватель может вести одну дис циплину, но каждук) дисциплину могут вести несколько прс подавателей.
Примеры с типом с вязи 1:М или М:1 могут иметь ряд вариантов, отличающих» я к тесом 1 финал лежн< юти одной или обеих сущностей. Обозначим обязательный класс принадлежности символом «О», а необязательный - символом «Н», тогда варианты для связи типа 1:М условно можно представить как: О-О, О-Н, Н-О, H-II. Для связи типа М:1 также имеются 4 аналогичных варианта.
Пример 5. Связи типа i:M вариант Н-О.
Каждый преподаватель может вести несколько дисциплин или ни одной, но каждая дисцип шна ведется одним преподавателем (рис. 6.4).
По аналогии легко составить диаграг хмы и для остальных вариантов.
Пример 6. Связи типа М:М.
Каждый преподаватель может вести несколько дисциплин, а каждая дисциплина может вестись несколькими преподавателями.
Как и в случае других типов связей, для связи т ипа М:М возможны 4 варианта. отличающиеся классом принадлежности сущностей.
Пример 7. Связи типа М:М и вариант класса принадлежности О-Н.
Допустим что каждый преподаватель ведет не менее одной дисциплины, а дисциплина может вестись более чем одним преподавателем, есть и такие дисциплины, которые никто не ведет. CooTBeTCTRvioinHe этому случаю диаграммы приведены на рис. 6.5.
а)
ER-экземпляров
ПРЕПОДАВАТЕЛЬ
ВЕДЕТ
ДИСЦИПЛИНА
•
СУБД
-
п П /1
9
IUI/1
ПЕТРОВ
М.И. •
CMHi
Pt
irt
Н
Г Ш.
•
Паскаль
ЕГОРОВ
В. В. tc^
-—•
Фортран
КОЗЛОВ
А.С. •
' «
С++
""
-• JAVA
б)
ER-типов
Рис.
6.4. Диа^аммы для связи типа 1:М вариант?
Н О
а)
ER-экземпляров
Рис.
6.5. Диагоаммо] для свяги типа М: М и
варианта О-Н
6.2. Этапы проектирования
Процесс проектирования базы данных является итерационным - допускающим возврат к предыдущим этапам для пересмот ра ранее принятых решений и включает следующие этапы:
Выделение сущностей и связей между ними.
Построение диаграмм ER-т ипа с учетом всех сущностей и их связей.
Формирование набора предварительных отношений с указанием предполагаемого первичного ключа для каждого отношения и использованием диаграмм ER- типа.
4 Добавление неключевых атрибутов в отношения.
Приведение предварительных отношений к нормальной форме Бойса - Кодда, например, с помощью метода норма чьных форм.
Пересмотр E.R-диаграмм в следующих случаях:
некоторые отнопк ния не приводятся к нормальной форме Бойса - Кодда;
некоторым атрибутам не находится логически обоснованных мест в предварительных отношениях.
После преобразования ER-диаграмм осущест вляется повторное выполнение предыдущих этапов проектирования (возврат к этапу 1).
Одним из узловых этапов проектирования является этап формирования отношений. Рассмотрим процесс формирования предварительных отношений, составляющих первичный вариант схемы БД.
В рассмотренных выше примерах связь ВЕДЕТ всегда соединяет две сущности и поэтому яв шется оинаюной. Сформулированные ниже правила формирования отношений из диаграмм ER-типя распространяются именно на бинарные связи Поэтому, когда речь идет о связях, слово «бинарные» далее опускается.
6.3. Правила формирования отношений
Правила формирования отношений основываются на учете следующего:
степени связи между сущностями (1:1,1:М, М.1, М:М);
класса принадлежности экземпляров сущностей (обязательный и необязательный).
Рассмотрим формулировки шести правил формирования отношений на основе циа! рамм ER типа.
Формирование отношений для связи 1:1
Правило 1. Если степень бинарной связи 1:1 и класс принадлежности обеих сущностей обязательный, го формируется одно отношение. Первичным ключом этого отношения может быть ключ любой из двух сущностей.
] 1а рис. 6.6 приведены диаграмма ER-типа и отношение, сформированное по правил у 1 на ее основе.
6. МСТОД CVLllhOGl. UR3L
К2»
.. К1 К2
Рис.
6 6. Диаграмма и отношения для правила
1
На рисунке используются следующие обозначения:
CI, С2 - сущности 1 и 2;
Кl,i К2 - ключи первой и второй сущности соответственно;
R1 - отношение 1, сформированное на основе первой и второй сущностей;
KlvK2,.„ означает, что ключом сформированного отношения может быть либо К1, либо К2_
Это и другие правила будем проверять, рассматривая различные варианты связи ПРЕПОДАВАТЕЛЬ ВЕДЕТ ДИСЦИПЛИНУ. Пусть сущность ПРЕПОДА В АТЕЛЬ характеризуется атрибутами ПП (идентификационный номер преподавателя), ФИО (фамилия, имя и отчество), Стаж (стаж преподавателя). Сущность ДИСЦИПЛИНА характеризуется соответственно атрибутами КД (код дисциплины), Часы (часы, отводимые на дисциплину). Тогда схема отношения, содержащего информацию об обеих сущностях, и само отношение дня случая, когда степень связи равна 1:1, a K1I обязательный для всех сущностей, могут иметь вид, показанный на рис. 6.7.
ПРЕПОДАВАЛ ЕЛЬ ДИСЦИПЛИНАРНО,ФИО, Ос ж, КД, Часы)
ПРЕПОДАСТ ГЕЛЬ ДИС11И1 ШИНА
НП |
ФИО |
Стаж |
КД |
Часы |
П1 |
Ивпнов И М. |
5 |
К1 |
6? |
112 |
Петров М И. |
7 |
К2 |
74 |
ПЗ |
Сидоров Н.Г |
10 |
КЗ |
102 |
П4 |
Егоров В.В. |
5 |
К4 |
80 |
Рис. 6.7. Полученные по правилу 1 схема и отношение
173
образом, одного отношения в данном случае достаточно. И качестве первичного ключа может быть выбран ключ первого отношения Н П или клю' г второго отношения КД.
Правило 2. Если степень связи 1:1 и класс принадлежности одной сущности обязательный, а второй - необяза re. [ьный, то под каждую из сущностей формируется по отношению с первичными ключами, являющимися ключами cooi ветствующих сущностей. Далее к отношению, сущность которого имеет обязательный КП, добавляется в качестве атрибута ключ сущности с необязательным КП.
На рис. 6.8 приведены диаграмма ER-типа и отношения, сформированные по правилу 2 на ее основе.
К1,... К2,... К
<2
Рис. fi.8. Диаграмма и отношения для правила 2
Ч гобы убедиться в справедливости правила, рассмотрим следующий пример. На рис. 6.9 приведено исходное отношение, содержащее информацию о преподавателях и дисциплинах. Оно представляет вариант, в котором класс сущности ПРЕПОДАВАТЕЛЬ является обязательным, а сущности ДИСЦИПЛИНА - необязательным. При этом пробелы «—» (пустые поля) присутствуют во всех кортежах с информацией о дисциплинах, которые не ведутся ни одним из преподавателей.
ПРЬПОДАВАТЕПЬ_ДИСЦИПЛИНА
нп
ФИО
Стаж
КД
Часы
П1
Иванов
И.М.
5
К1
62
П2
Петр<
в М.И.
7
К2
74
ПЗ
Сидоров
н г
10
КЗ
102
—
—
—
К4
80
Рис.
6.9. Исходное отношенщ
Избежать этой ситуации можно, применив правило 2, в соответствии с которым, выделяются дьа отношения, приведенные на рис. 6.10.
ПРЕПОДАВАТЕЛЬ^НП, ФИО, Стаж, КД) ДИСЦИПЛИНА(КД, Часы)
КД |
Часы |
К1 |
62 |
к? |
74 |
КЗ |
102 |
К4 |
80 |
ПРЕПОДАВАТЕЛЬ ДИСЦИПЛИНА
НП |
ФИО |
Стаж |
КД |
П1 |
Иванов И.М. |
5 |
К1 |
П2 |
Петров М.И. |
7 |
К2 |
ПЗ |
Сидоров н Г |
10 |
КЗ |
П4 |
Егоров В.В. |
5 |
К4 |
Рис. 6.10. Отношения, по пученные по правилу 2
В результате мы избежали пустых полей в отношениях, не потеряв данных. Добавив атрибут КД - ключ сущности ДИСЦИПЛИНА (с необязательным KI [) в качестве внешнего ключа в отношение, соответствующее сущности П РЕ- ПОДАВ АГЕЛЬ (с обязательным КП), мы связали отношения (рис. 6.11).
НП |
ФИО |
Стаж |
КД |
КД
Часы
Рис. 6.11. Связь отношений по внешнему ключу
Точнее говоря, мы создали условия для с вязывания отношений. Это связывание при работе с базой данных позволяет, например, получать одновременно данные о преподавателе и о ведущихся им дисциплинах (часах).
Прави юЗ. Если степень < вязи 1:1 и класс принадлежности обеих сущностей является необязательным, то необходимо использовать три отношения. Два отношения соответствуют связываемым сущностям, ключи которых являются первичными в этих отношениях. Третье отношение яв ляется связным между первыми двумя, поэтому его ключ объединяет ключевые атрибуты свя- 1ыьаемы> отношений.
Рис.
6.12. Диаграмма и отношения для правила
3
К1,
На рис. 6.12 приведены диаграмма ER-типа и отношения, сформированные но правилу 3 на ее основе.
На рис. 6 13 приведены примеры отношений, подтверждающие необходимость использования трех отношений при наличии необязательного КП для обеих связываемых сущностей.
а) одно отношение ПРЕПОДАВАТЕЛЬ^ИСЦИПЛИНА
нп |
ФИО |
Стаж |
КД |
Часы |
П1 |
Иванов И М |
5 |
К1 |
62 |
П2 |
Петрор М.И. |
7 |
— |
— |
ПЗ |
иидоров н г |
10 |
К2 |
74 |
— |
|
— |
КЗ |
102 |
НП |
ФИО |
Стаж |
КД |
|
|
П1 |
Иванов И М |
5 |
К1 |
|
|
П? |
П ;гров М.И. |
7 |
— |
|
|
ПЗ |
Сидоров Н.Г. |
10 |
К2 |
|
|
в) три отношения |
|
|
|
| |
ПРЕПОДАВАТЕЛЬ |
|
|
ВЕДЕТ | ||
НП |
ФИО |
Стаж |
|
НП |
КД |
П1 |
Иванов И.М. |
5 |
|
П1 |
К1 |
П2 |
Петров М И. |
7 |
|
ПЗ |
К2 |
ПЗ |
Сидоров Н Г. |
10 |
|
|
|
ДИСЦИПЛИНА
КД |
Часы |
НП |
К1 |
62 |
П1 |
К2 |
74 |
ПЗ |
КЗ |
102 |
— |
ДИСПИПЛИНА
КД |
Часы |
К1 |
62 |
К2 |
74 |
КЗ |
102 |
Рис. 6.13. Варианты отношений для правила 3
Использование одного отношения в рассматриваемом случае приводит к наличию нежелательных пустых полей в этом отношении (рис. 6.13а). При использовании двух отношений (рис. 6.136) нам пришлось добавить ключи каждой из сущностей в отношение, соответствующее другой сущности, чтобы не потерять сведения о том, какую дисциплину ведет каждый преподаватель и наоборот. 1 [ри этом также появились пустые поля.
Выход зак, почаетс я ь использовании т рех отношений, сформированных по пра вилу 3 (рис. 6.13в). ()бъектные отношения (с атрибутами сущностей) содержат полную информацию обо всех преподавателях и дисциплинам соотве гственно. (Связное отношение ВЕДЕТ содержит данные о преподава гелях, коп |рые ведут дисциплины и о дисциплинах, которые ведутся преподавате лям] 1.11ри этом в ihm имеется только одно упоминание о каждом преподавате. ге и дисциплине в силу связи 1:1. Это отношение содержит в данном случае только ключевые атрибуты обеих сущностей, но может иметь и другие атрибуты, характеризующие эту связь. Например, номер семестра, в котором преподаватель ведет дисциплину.
Итак, сформулированы три правила, позволяющие формировать отношения на основе ER-диаграмм, для вариантов со степенью связи типа 1:1. Сформулируем аналогичные два прави ла для вариантов, степень связи между сущностями которых 1:М
Формирование отношений для связи 1:М
Если две сущности С1 и С2 связаны как 1:М, сущность СI будем называть односвязной (1-связной), а сущность С2 - многосвязной (М связной). Онре деляющим фактором при формировании отношений, связанных этим видом связи, является класс принадлежности М-связной сущности. Так, если класс принадлежности М-связной сущности обязательный, то в результате приме нения правила получим два отношения, если необязательный - три отноше ния. Класс принадлежности односвязной сущности не влияет на результат.
Чтобы убедиться в этом, рассмотрим отношение ПРЕПОДАВАТЕЛЬ - ДИСЦИПЛИНА (рис. 6.14), соответствующее диаграммам, приведенным на рис. 6.4, т. е. случаю, когда: связь типа 1:М, класс принадлежности М-связ- ной сущности обязательный, 1-связной - необязательный.
ПРЕП
СДАВ АТЕЛ Ь^ЦИ СЦИ П Л И Н А
НГ1
ФИО
Стаж
КД
Часы
feu
ИваноьИ.М.
5
Ki
62
П1
И
зановИ.М.
5
К2
74
П2
ПетровМ.И.
7
К4
80
ПЗ
Сидоров
Н.Г.
10
КЬ
96
ПЗ
Сидоров
Н.Г.
10
Кб
120
П4
Егопов
В.В
5
КЗ
102
П4
Боров
В.В.
5
К7
89
П5
Колло"
А.С.
8
—
—
Рис
fi
14.
Исходное отношение
С отношением ПРЕПОДЛВАТЕЛЬДИСЦИПЛИНА (рис. 6.14) связаны следующие проблемы:
имеются коотежи с пустыми полями (преподаватель не ведет дисцитины),
избыточное дублирование данных (повторяется стаж преподавателя ) в кортежах со сведениями о преподавателях, ведущих неско тько дисциплин.
Если бы класс принадлежности 1-связной сущности был обязательным (нет препо ивагеля без дисциплины), то исчезли бы пустые поля, но повторяющиеся данные в атрибутах преподавателя сохранились бы. Для устранения названных проблем отношения могут быть сформированы по следующему правилу.
Правило 4. Если степень < вязи между сущностями 1 :М (или М:1) и класс принадлежности М-связной сущности обязательный, то достаточно формирование двух отношений (по одному на каждую из сущностей). При этом первичными ключами этих отношений являются ключи их сущностей. Кроме того, ключ 1-связной сущности добавляется как атрибут (внешний ключ) в отношение, соответствующее М-связной сущности.
КД |
Часы |
НП | ||
К1 |
62 |
П1 | ||
К2 |
74 |
П1 | ||
КЗ |
102 |
П4 | ||
К4 |
80 |
П2 | ||
К5 |
96 |
ПЗ | ||
Кб |
120 |
ПЗ | ||
К7 |
89 |
П4 | ||
НП |
ФИО |
Стая | ||
П1 |
ИвановИ.М. |
5 | ||
П2 |
ПетровМ.И. |
7 | ||
ПЗ |
Сидоров Н.Г. |
10 | ||
П4 |
Егоров В.В. |
5 | ||
П5 |
Козлов А.С. |
8 |
Рис.
6.16. Отношения, полученные по правилу
4
К2,... Ш.- К2,... К1.К2
Рис.
6.15. Диа1памма и отношения для правила
4
В соответствии < пр шилом 4 преобразуем отношение на рис. 6.14 в два отношения (рис. 6.16).
ПРЕПОДАВАТЕЛЬ ДИСЦИПЛИНА
Из рис. 6.16 видно, что пустые поля и дублирование информации удалось устранить. Потери сведений о том, кто из преподавателей ведет какую дисциплину, не произошло благодаря введению ключа 11П сущности ПРЕПОДАВАТЕЛЬ в качестве внешнего ключа в отношение ДИСЦИПЛИНА.
Для формулирования и обоснования необходимости использован] ш следующего правила рассмотрим следующий пример.
Пример. Связь между сущностями 1:М, г класс принадлежности М-связ- ной сущности необязательный.
Пусть класс принадлежности 1 -сьязной сущности также необязательный, хотя это и не принципиально, так как опреде. [яюшим является класс принадлежности М-связной сущности. Посмотрим, к чему может привести использование одного отношения в этом случае (рис. 6. J 7).
ПРЕПОДАВАТЕЛЬ ДИСЦИПЛИНА
НП |
ФИО |
Стаж |
КД |
Часы |
П1 |
ИвановИ.М. |
5 |
К1 |
62 |
П1 |
ИвановИ.М. |
5 |
К2 |
74 |
П2 |
ПетровМ.И. |
7 |
К4 |
80 |
— |
— |
— |
К5 |
96 |
ПЗ |
:идрров н г |
10 |
Кб |
120 |
П4 |
Егоров В. В. |
5 |
КЗ |
102 |
П4 |
Егоров В.В. |
5 |
К7 |
89 |
П5 |
Козлов А.С. |
8 |
— |
— |
Рис. 6.17. Исходное отношение
С приведенным отношением связаны следующие проблемы:
Имеютс я пустые поля з кортежах, которые содержат следующее:
а) данные о преподавателях, не ведущих дисциплин;
б) данные о дисциплинах, которые не ведутся преподавателями.
Избыточное дублирование данных о преподавателях, ведущих более одной дисцип айны.
В случае обязательного класса принадлежности 1-связной сущности исчезают проблемы 1 а). Для устранения всех проблем нужно перейти к трем отношениям в соответствии со следующим правилом.
Правило 5. Если степень связи 1:М (М:1) и класс принадлежности М-связ ной сущности является необязательным, то необходимо формирование трех отношений (рис. 6.18). Два отношения соответствуют связываемым сущностям. ключи которых являются первичными в этих отношениях. Третье отношение является связным между первыми двумя (его ключ объединяет ключевые атрибуты связываемых отношений).
R
12
< К"
Рис. 6.18. Диаграмма и отношение для правила 5
В результате применения правила 5 к рассматриваемому отношению содержащиеся в нем данные (рис. 6.17) распределяются по трем отношениям (рис. 6.19)
ПРЕПОДАВАТЕЛЬ ВЕДЕТ ДИСЦИПЛИНА
НП |
ФИО |
Стах: |
П1 |
ИвановИ.М. |
5 |
П2 |
ПетровМ.И. |
7 |
ПЗ |
Сидоров Н.Г. |
10 |
П4 |
Егоров В.В. |
5 |
П5 |
Козлов А.С. |
8 |
НП |
КД |
П1 |
К1 |
П1 |
К2 |
П2 |
К4 |
ПЗ |
Кб |
П4 |
КЗ |
П4 |
К7 |
КД |
Часы |
К1 |
62 |
К2 |
74 |
КЗ |
102 |
К4 |
80 |
К5 |
96 |
Кб |
120 |
К7 |
89 |
Рис. 6.19. Отношения, полученные по правилу 5
Таким образом, ука tainibie проблемы уда чось разрешить. Ключ в связном отношении ВЕДЕТ является составным и включает в себя ктючевые атрибуты обоих связываемых отношений (сущностей). В практических ситуациях связ ное отношение может содержать и другие характеризующие связо атрибуты
Подчеркнем, что определяющим фактором ири выборе между 4-м или 5-м правилом является класс принадлежности М-связной сущности.
Формирование отношений для связи М:М
При наличии связи М:М между двумя сущностями необходимо три отношения независимо от к час са принадлежности дюбой из сущностей. Исполь-
зовчиие одного или двух отношений в этом случае не избавляет от пустых полей или избыточно дублируемых данных.
Правило 6. Если степень связи М:Д4, то независимо от класса принадлежности сущностей формируются три отношения. Два от ношения соответствуют связываемым сущностям и их к ночи являются первичными ключами этих отношений. Третье отношение является связным между первыми двумя, а его ключ объединяет ключевые атрибуты связываемых отношений.
Рис.
6.20. Ди грамма и отношения для правила
6
Ю
Применим
правило 6 к примеру, приведенному на
рис 6.5. В нем степень связи равна
М:М,
класс принадлежности для сущности
П РЕПОДАВАТЕЛЬ обязательный,
а для сущности
ДИСЦИ1 (ЛИНА
- необязательный.
Соответствующее
этому примеру исходное отношение
показа! о на рис. 6.21.
ПРЕПОДАВАТЕЛЬ_ДИСЦИГЫИНА
НП
ФИО
Стаж
КД
Часы
П1
ИвановИ
М
5
К1
62
П1
ИвановИ.М
5
К2
74
42
ПетрибМ.И.
7
К4
80
—
—
—
КЗ
102
ПЗ
Сидоров
Н.Г.
10
Кб
120
m
Егоров
В.В.
5
К2
74
П4
Ei
оров
В В
5
К7
89
П5
Козлов
А.С.
8
К5
96
Рис.
6.21. Исходное отношение
182 Часть 2. Проектирование и использование БД
В результате применения правила 6 получаются три отношении (рис. 6.22).
ПРЕПОДАВАТЕЛЬ ВЕДЕТ ДИСЦИПЛИНА
НП |
ФИО |
Стаж |
П1 |
ИвановИ.М. |
5 |
П2 |
ПетровМ И. |
7 |
ПЗ |
Сидоров Н.Г. |
10 |
П4 |
Егоров В.В. |
5 |
П5 |
Козлов А.С. |
8 |
НП |
КД |
П1 |
KI |
П1 |
К2 |
П2 |
К4 |
ПЗ |
Кб |
П4 |
КЗ |
П4 |
К7 |
КД |
Часы |
К1 |
62 |
К2 |
74 |
КЗ |
102 |
К4 |
80 |
К5 |
96 |
Кб |
120 |
К7 |
89 |
Рис. 6.22. Отношения, полученные по правилу 6
Аналогичные результаты получаются и для трех других вариантов, различающихся к тассами г.ринадлежност и их сущностей. Рассмотрим применение сформулированных правил на примерах п] юектирования БД методом суишост ь-связь.
6.4. Пример проектирования БД учебной части
Применим описанные правила к примеру, рассмо i ренному при изучении метода нормальных форм (подраздел 5.2). Напомним, что речь шла о БД для учебной части, содержащей с. [едующие сведения:
ФИО - фамилия и инициалы преподав." теля (возможность совпадения фамилии и инициалов у преподавателей исключена).
Должн - должность занимаемая преподавателем.
Оклад - оклад преподавателя.
Стаж - прет давательский стаж.
Д_Стаж - надбавка за стаж.
Каф - номер кафедры, на которой работает преподаватель.
Предм - название дисциплины (предмета), ведомой иреподаьателем.
Группа - номер группы, ь кот орой преподаватель проводит занятия.
ВидЗан - вид занятий, проводим] ix преподавателем в учебной групп" (преподаватель в одной группе ведет только один вид занятий).
Исходное отношение ПРЕПОДАВАТЕЛЬ приведено на рис. 5.4.
При проектировании будем придерживаты я этапов, описанных в подразделе 6.2.
Первыг этап проектирования - выделение сущностей и связей между ними.
Выделим следующие сущности:
ПРЕПОДАВАТЕЛЬ (Ключ - ФИО).
ЗАНЯТИЕ (Ключ - Групп». ПредмV
СТАЖ (Ключ - Стаж).
ДОЛЖНОСТЬ (Ключ - Доджи).
Выделим связи между сущностями:
ПРЕПОДАВАТЕЛЬ ИМЕЕТ СТАЖ,
ПРЕПОДАВАТЕЛЬ ВЕДЕТ ЗАНЯТИЕ,
ПРЕПОДАВАТЕЛЬ ЗА1 [ИМАЕТ ДОЛЖНОСТЬ.
Второй этап проектирования - построение диаграммы ER-типа с учетом всех сущностей и связей между ними. Диаграмма ER-типа для рассматриваемого примера приведена на рис. 6.23.
Рис.
6.23. Диаграмма ER-тида
Связь ИМЕЕТ являе гея связью типа М: 1, т. к. одинаковый < таж могут иметь несколько преподавателей. Сущность ПРЕПОДАВАТЕЛЬ имеет обязательный класс принадлежности, поскольку каждый преподаватель имеет свой стаж. Сущност] I СТАЖ имеет необязательный класс принадлежности, так как возможны такие значения < тажа, которые не имеет ни один из преподавателей.
Сиязь ВЕДЕТ имеет тип М:М, так как преподаватель может вести несколько занятий, а каждое заня/ие может проводиться несколькими преподавателями. Занятие может быть лекционным или практическим, проводимым преподавателем в учебной группе по одной из дисциплин. Обе сущности в данной связи имеют KII обязательный, в предположении, что нет преподавателей, которые не проводят занят ий, и нет занятий, которые не обеспечены преподавателями.
Связь ЯАНИМА ЕТ имеет тип М: 1, так как каждый преподаватель занимает определенную должность и одинаковые должности могут занимать несколь ко преподавателей. Сущность ПРЕПОДАВАТЕЛЬ имеет обяза тельный класс принадлежности, так как предполагаем, что каждый преподават ель занимает должность. Сущность ДОЛЖНОСТЬ имеет необязательный КП, так как не исключаем, например, отсутствие должности профессора на кафедре, а зна чит, и преподавателя, который ее занимает.
Третий man проектирование1 - формирование набора предварительных отношений с указанием предполагаемого первичного ключа для каждого отношения, используя дна! раммы ER типа.
11а основе анализа диаграммы ER типа (рис. 6.23) с помощью шести сфор мулированных выше правил получаем набор предварительных отношений, поедставленных следующими схемам™ отношений.
Связь ИМЕЕТ удовлетворяет условиям правила 4, в соответствии с кото рым получаем два отношения:
1.1IFE1ЮДАВАТЕЛЬ (Ф1Ю. Стаж....) - добавился ключевой атрибут Стаж. 2. СТАЖ (Стаж, -)■
Связь ВЕДЕТ удовлетворяел условиям правила 6, в соответствии с которым получаем три отношения:
ПРЕПОДАВАТЕЛЬ (ФИО. ( тажг...).
ЗАНЯТИЕ (Группа. Пре^м. ..X
ВЕДЕТ (ФИО. Группа. Ппедм. .^Д.
Связь ЗЛНИМ АШТяш логично связи ЯМЕ£Тудовлетворяет условиям ира вила 4. поэтому имеем следующие два отношения
ПРЕПОДАВАТЕЛЬ (ФИО. Стаж. I[олжн....) добавился ключевой атрибут Должн.
ДОЛЖНОСТЬ (Должн,...).
Третий этап проектирования - добавление неключевых атрибутов, которые не были выбраны в качестве к лючевых раньше, и назначение их одному из предварительных отношений с тем условием, чтобы отношения отвечали т ребованиям норма льной формы Бойса - Кодда.
После добавления пек лючевых атрибутов схемы отношений примут следующий вид:
ПРЕПОДАВАТЕЛЬ (ФИО. Стаж. Jojc.ti. Каф к
СТАЖ (Стаж. Д Стаж),
ЗАНЯТИЕ (Группа. Предм).
ВЕДЕТ (ФИО. Ipvnna. ] 1релм. ВидЗанV
ДОЛЖНОСТЬ (Должн. Оклад).
После определения отношений следует проверить их на соответствие тре- б< маниям нормальной формы Бойса - Кодда. В нашем с пучае мы получили те же отношения, что и при проектировании примера методом нормальных форм. Полученная схема базы данных приведена на рис. 6.24.
Рис.
6.21 Схема базы данных
Замечания.
В нашем примере отношение ЗАНЯТИ Е, кроме ключевых атрибутов (Группа. Предм). других атрибутов не имеет. Поэтому оно не несет до полнительной информации, кроме содержащейся в отношении ВЕДЕТ. Действительно, это отношение включает в себя атрибуты Группа. Предм. Поэтому отношение ЗАНЯТИЕ нужно исключить из формируемой схемы БД (на рис. 6.24 оно перечеркнуто). Если бы имелись другие атрибуты, например атрибут Семестр, в котором некоторая группа изучает конкретную дисциплину, то получили бы отношение ЗА! 1ЯТИЕ (Группа. 1 Гредм. Семестр), которое вошло бы в БД.
На последнем этапе проектирования предварительные отношения анализируются на предмет избыточного дублирования информации. При этом возможно рассмотрение нескольких кортежей каждого отношения. При наличии избыточности возможно либо перепроектирование соответствующей части проекта (ER-диаграмм), либо декомпозиция соответствующих отношений с использованием метода нормальных форм. Конечный результат преобразований представляет собой совокупность отношений в нормальной форме Бойса - Кодда.
Рассмотренные правила проектирования БД позволяют моделировать многие практические ситуации. Построение ряда других pea тьных моделей может потребовать использования дополнительных конструкций. В частности, может возникнуть необходимость использования связей более высокого порядка, чем бинарнъи, например, те\ тарные, связыва ющие три сущности.
Контрольные вопросы изадания
Перечислите основные понятия метода сущность-связь.
Охарактеризуйте понятие ключа сущности.
Что преде гавляют собой диаг] аммы ER-экземп шров и диаграммы ER- типа.
Что определяет степень связи между сущностями?
Каким может быть класс принадлежности?
Приведите пример диаграммы ER-экземпляров со степенью связи между сущностями 1:1 и обязательным классом принадлежности двух сущ ностей.
Как на диаграммах ER-типа обозначаются степень « вязи, обязательное и необязательное участие в связи экземпляров сущности?
Приведите пример диаграммы ER-экземпляров для связи типа 1:М варианта И-О.
Назовите этапы проектирования базы данных.
Как осуществляется формирование отношений для связи 1:1?
Сформулируйте поавило 3 формирования отношений, если степень связи 1:1 и класс принадлежности ибеих сущностей является необязательным.
Сформулируйте правило сЬормирования отношения для случая степени связи между сущностями 1:М (М:1) и обязательного класса принадлежности М-"вязной сущности.
Укажите правила формирования отношений для связи М:М.
Покажите, что полученные в прикладном примере из раздела отношения находятся в норма тгной форме Бойса - Колда.
Литература
Дейт К. Дж. Введение в системы баз данных.: Пер. с англ. 6-е изд. К.: Диа лек- гика, 1998.
Джекшн Г. I [поектирование реляционных баз данных для использования с МИКРОЭВМ: Пер. с англ. М.: Мир, 1991.
Кузнецов С. Д. Введение в СУБД: часть 4 // Системы Управления Базами Данных, №4, 1995. С. 114-122.
Основы современных компьютерных технологий: Учебное пособие / Под ред. приф. А. Д. Хомоненко. Авторы: Артамонов Б. Н., Брякалов Г. А., Гофман В. Э. и др. СПб.: КОРОНА принт, 1998.
Хансен Г., Хансен Д. Базы данных: разработка и управление: Пер. с англ. М.: ЗАО «Издательство БИНОМ», 1999.