
- •Белорусский государственный университет модели данных и субд Учебное пособие
- •Введение
- •Раздел 5 посвящен семантическим или инфологическим моделям, используемым в современных программных системах поддержки проектирования, называемых case-системами (Computer Aided Software Engineering).
- •Раздел 10 посвящен вопросам распределенной обработки данных, здесь рассматриваются проектирование распределенных систем обработки данных, уделяется большое внимание фрагментации данных.
- •1. Основные понятия и определения теории баз данных.
- •1.1. Причины возникновения систем баз данных.
- •1.3. Системы управления базами данных.
- •2. Классификация моделей данных.
- •2.1. Моделирование данных.
- •2.2. Иерархическая модель.
- •2.3. Сетевая модель.
- •2.4. Реляционная модель.
- •2.5. Объектно-ориентированная модель.
- •2.6. Объектно-реляционная модель.
- •2.7. Многомерная модель.
- •3. Реляционная алгебра и реляционное исчисление.
- •3.1. Реляционная алгебра.
- •3.2. Реляционное исчисление.
- •4. Проектирование реляционных баз данных на основе нормализации.
- •4.1. Нормализация отношений, цели нормализации.
- •4.2. Структура функциональных зависимостей.
- •4.2.1. Функциональные зависимости и их свойства.
- •4.2.2. Ключи схем отношений.
- •4.2.3. Полные и неполные функциональные зависимости.
- •4.2.4. Покрытие множеств зависимостей.
- •4.2.5. Декомпозиция схем отношений.
- •4.2.6. Декомпозиции, сохраняющие зависимости.
- •4.3 Нормальные формы отношений.
- •4.3.1. Первая и вторая нормальные формы схем отношений.
- •4.3.2. Третья нормальная форма схем отношений.
- •4.3.4. Четвертая нормальная форма схем отношений.
- •4.3.5. Пятая нормальная форма схем отношений.
- •5. Семантическое моделирование
- •5.1. Цели и средства семантического моделирования.
- •5.2. Метод “сущность-связь”.
- •5.3. Этапы моделирования.
- •5.4. Правила формирования отношений.
- •Формирование отношений для связи 1:1.
- •Формирование отношений для связи 1:м.
- •6. Структура субд и основные функции.
- •6.1. Типовая организация современной субд.
- •6.2. Поддержка языков бд.
- •6.3. Управление данными во внешней памяти.
- •6.4. Управление буферами оперативной памяти.
- •6.5. Управление транзакциями.
- •6.6. Журнализация и восстановление после сбоев.
- •7. Управление транзакциями.
- •7.1. Свойства транзакций. Проблемы параллельного выполнения.
- •7.2. Консервативные методы управления транзакциями.
- •7.2.1. Метод блокировки.
- •7.2.2. Метод временных отметок.
- •7.3. Оптимистические методы управления транзакциями.
- •7.4. Уровень детализации блокируемых элементов данных.
- •8. Восстановление базы данных после сбоев.
- •8.1. Основные принципы и функции восстановления.
- •8.3. Создание контрольных точек.
- •8.4. Методы восстановления.
- •9. Защита баз данных.
- •9.1. Основные понятия.
- •9.2. Компьютерные средства защиты.
- •9.3. Некомпьютерные средства защиты.
- •10. Распределенные базы данных
- •10.1. Основные концепции.
- •10.2. Функции распределенных субд.
- •10.3. Разработка распределенных реляционных баз данных.
- •10.4. Распределение данных.
- •10.5. Фрагментация.
- •10. 6. Обеспечение прозрачности в рсубд.
- •11. Введение в субд oracle.
- •11.1. Характеристика субд Oracle.
- •11.2. Объекты базы данных Oracle.
- •11.4. Архитектура базы данных Oracle.
- •11.5. Архитектура экземпляра базы данных Oracle.
- •11.6. Формирование базы данных и экземпляра Oracle.
- •12. Основы языка sql.
- •12.1. Алфавит и лексемы языка sql.
- •12.2. Типы данных языка sql.
- •12.3. Операторы языка sql.
- •12.4. Операции языка sql.
- •12.5. Функции языка sql.
- •12.6. Создание, модификация и удаление таблиц.
- •12.7. Выбор информации из базы данных.
- •13. Основы языка pl/sql.
- •13.1. Алфавит и лексемы языка.
- •13.3. Типы данных и объявление переменных.
- •13.4. Операторы.
- •13.5. Курсоры.
- •13.6. Обработка исключительных ситуаций.
- •13.7. Триггеры базы данных.
- •13.8. Хранимые процедуры и функции.
- •13.9. Пакеты.
- •13.10. Объекты.
- •Литература
5.3. Этапы моделирования.
Процесс моделирования базы данных является итерационным – допускающим возврат к предыдущим этапам для пересмотра ранее принятых решений и включает ряд этапов.
Выделение сущностей и связей между ними.
Построение диаграмм ER-типа для всех сущностей и их связей.
Формирование с использованием диаграмм ER-типа набора предварительных отношений с указанием предполагаемого первичного ключа для каждого отношения.
Добавление неключевых атрибутов в отношения.
Приведение предварительных отношений к нормальной форме Бойса-Кодда, например, с помощью метода нормальных форм.
Пересмотр ER-диаграмм в следующих случаях:
• некоторые отношения не приводятся к нормальной форме Бойса-Кодда;
• некоторым атрибутам не находится логически обоснованных мест в предварительных отношениях.
После преобразования ER-диаграмм осуществляется повторное выполнение предыдущих этапов проектирования (возврат к этапу 1).
Одним из узловых этапов проектирования является этап формирования отношений. Рассмотрим процесс формирования предварительных отношений, составляющих первичный вариант схемы базы данных.
В рассмотренных выше примерах связь ВЕДЕТ всегда соединяет две сущности и поэтому является бинарной. Сформулированные ниже правила формирования отношений из диаграмм ER-типа распространяются именно на бинарные связи. Поэтому, когда речь идет о связях, слово “бинарные” далее опускается.
5.4. Правила формирования отношений.
Правила формирования отношений основываются на учете:
степени связи между сущностями (1:1, 1:М, М:1, М:М);
класса принадлежности экземпляров сущностей (обязательный и необязательный).
Рассмотрим формулировки шести правил формирования отношений на основе диаграмм ER-типа.
Формирование отношений для связи 1:1.
Правило 1. Если степень бинарной связи 1:1 и класс принадлежности обеих сущностей обязательный, то формируется одно отношение. Первичным ключом этого отношения может быть ключ любой из двух сущностей.
На рис. 6 приведены диаграмма ER-типа и отношение, сформированное по правилу 1 на ее основе.
1
1
К1,… К2,… К1К2
Рис. 6. Диаграмма и отношение для правила 1
На рисунке используются следующие обозначения:
Cl, C2 – сущности 1 и 2;
Kl, K2 – ключи первой и второй сущности соответственно;
R1 – отношение 1, сформированное на основе первой и второй сущностей;
Kl, … или K2, ... означает, что ключом сформированного отношения может быть либо К1, либо К2.
Это и другие правила будем проверять, рассматривая различные варианты связи ПРЕПОДАВАТЕЛЬ ВЕДЕТ ДИСЦИПЛИНУ. Пусть сущность ПРЕПОДАВАТЕЛЬ характеризуется атрибутами НП (идентификационный номер преподавателя), ФИО (фамилия, имя и отчество), Стаж (стаж преподавателя). Сущность ДИСЦИПЛИНА характеризуется соответственно атрибутами КД (код дисциплины), Часы (часы, отводимые на дисциплину). Тогда схема отношения, содержащего информацию об обеих сущностях, и само отношение для случая, когда степень связи равна 1:1, а класс принадлежности обязательный для всех сущностей, могут иметь вид, показанный на рис. 7.
ПРЕПОДАВАТЕЛЬ_ДИСЦИПЛИНА (НП,ФИО, Стаж, КД, Часы)
ПРЕПОДАВАТЕЛЬ_ДИСЦИПЛИНА
-
НП
ФИО
Стаж
КД
Часы
П1
Иванов
5
К1
62
П2
Петров
7
К2
74
ПЗ
Сидоров
10
К3
102
П4
Егоров
5
К4
80
Рис. 7. Полученные по правилу 1 схема и отношение
Сформированное отношение содержит полную информацию о преподавателях, дисциплинах и о том, как они связаны между собой. Так, преподаватель Иванов ведет только дисциплину с кодом К1, а дисциплина К1 ведется только Ивановым (связь 1:1). В этом отношении отсутствуют пустые поля (класс принадлежности обязательный для всех сущностей), т. к. нет преподавателей, которые бы что-то не вели, и нет дисциплин, которые никто не ведет. Таким образом, одного отношения в данном случае достаточно. В качестве первичного ключа может быть выбран ключ первого отношения НП или ключ второго отношения КД.
1
К1,… К2,… К1, К2 К2
Рис. 8. Диаграмма и отношения для правила 2
Правило 2. Если степень связи 1:1 и класс принадлежности одной сущности обязательный, а второй – необязательный, то под каждую из сущностей формируется по одному отношению с первичными ключами, являющимися ключами соответствующих сущностей. Далее к отношению, сущность которого имеет обязательный класс принадлежности, добавляется в качестве атрибута ключ сущности с необязательным классом принадлежности.
На рис. 8 приведены диаграмма ER-типа и отношения, сформированные по правилу 2 на ее основе.
Чтобы убедиться в справедливости правила, рассмотрим следующий пример. На рис. 9 приведено исходное отношение, содержащее информацию о преподавателях и дисциплинах. Оно представляет вариант, в котором класс принадлежности сущности ПРЕПОДАВАТЕЛЬ является обязательным, а сущности ДИСЦИПЛИНА – необязательным. При этом пробелы “---” (пустые поля) присутствуют во всех кортежах с информацией о дисциплинах, которые не ведутся ни одним из преподавателей.
|
НП |
ФИО |
Стаж |
КД |
Часы |
||
---|---|---|---|---|---|---|---|
|
П1 |
Иванов |
5 |
К1 |
62 |
||
|
П2 |
Петров |
7 |
К2 |
74 |
||
|
ПЗ |
Сидоров |
10 |
К3 |
102 |
||
|
--- |
---- |
-- |
К4 |
80 |
||
|
|
||||||
|
|
||||||
|
|
КД Часы НП К1 62 П1 К2 74 ПЗ КЗ 102
|
НП КД П1 К1 ПЗ К2
|
КД Часы К1 62 К2 74 КЗ 102
|
ДИСЦИПЛИНА
ДИСЦИПЛИНА
Рис. 9. Исходное отношение
Избежать этой ситуации можно, применив правило 2, в соответствии с которым, формируются два отношения, приведенные на рис. 10.
ПРЕПОДАВАТЕЛЬ ДИСЦИПЛИНА
-
НП
ФИО
Стаж
КД
КД
Часы
П1
Иванов
5
К1
К1
62
П2
Петров
7
К2
К2
74
ПЗ
Сидоров
10
К3
К3
102
К4
80
Рис.10. Отношения, полученные по правилу 2
В результате мы избежали пустых полей в отношениях, не потеряв данных. Добавив атрибут КД – ключ сущности ДИСЦИПЛИНА (с необязательным классом принадлежности) в качестве внешнего ключа в отношение, соответствующее сущности ПРЕПОДАВАТЕЛЬ (с обязательным классом принадлежности), мы связали отношения (рис. 11).
-
НП
ФИО
Стаж
КД
КД
Часы
Рис. 11. Связь отношений по внешнему ключу
Точнее говоря, мы создали условия для связывания отношений. Это связывание при работе с базой данных позволяет, например, получать одновременно данные о преподавателе и о ведущихся им дисциплинах (часах).
Правило 3. Если степень связи 1:1 и класс принадлежности обеих сущностей является необязательным, то необходимо использовать три отношения. Два отношения соответствуют связываемым сущностям, ключи которых являются первичными в этих отношениях. Третье отношение является связным между первыми двумя, поэтому его ключ объединяет ключевые атрибуты связываемых отношений.
1
1
К1,… К2,… К1,… К2,…
К1, К2
Рис. 12. Диаграмма и отношения для правила 3
На рис. 12 приведены диаграмма ER-типа и отношения, сформированные по правилу 3 на ее основе.
На рис.13 приведены примеры отношений, подтверждающие необходимость использования трех отношений при наличии необязательного класса принадлежности для обеих связываемых сущностей. Использование одного отношения в рассматриваемом случае приводит к наличию нежелательных пустых полей в этом отношении (рис.1За). При использовании двух отношений (рис. 13б) нам пришлось добавить ключи каждой из сущностей в отношение, соответствующее другой сущности, чтобы не потерять сведения о том, какую дисциплину ведет каждый преподаватель и наоборот. При этом также появились пустые поля.
а) одно отношение
ПРЕПОДАВАТЕЛЬ_ДИСЦИПЛИНА
-
НП
ФИО
Стаж
КД
Часы
П1
Иванов
5
К1
62
П2
Петров
7
---
---
ПЗ
Сидоров
10
К3
102
---
----
--
К4
80
б) два отношения
ПРЕПОДАВАТЕЛЬ ДИСЦИПЛИНА
-
НП
ФИО
Стаж
КД
КД
Часы
НД
П1
Иванов
5
К1
К1
62
П1
П2
Петров
7
---
К3
102
П3
ПЗ
Сидоров
10
К3
К4
80
---
в) три отношения
ПРЕПОДАВАТЕЛЬ ВЕДЕТ ДИСЦИПЛИНУ
-
НП
ФИО
Стаж
НД
КД
КД
Часы
П1
Иванов
5
П1
К1
К1
62
П2
Петров
7
ПЗ
К3
К3
102
ПЗ
Сидоров
10
К4
80
Рис. 13. Варианты отношений для правила 3
Выход заключается в использовании трех отношений, сформированных по правилу 3 (рис. 13). Объектные отношения (с атрибутами сущностей) содержат полную информацию обо всех преподавателях и дисциплинах соответственно. Связное отношение ВЕДЕТ содержит данные о преподавателях, которые ведут дисциплины, и о дисциплинах, которые ведутся преподавателями. При этом в нем имеется только одно упоминание о каждом преподавателе и дисциплине в силу связи 1:1. Это отношение содержит в данном случае только ключевые атрибуты обеих сущностей, но может иметь и другие атрибуты, характеризующие эту связь. Например, номер семестра, в котором преподаватель ведет дисциплину.
Итак, сформулированы три правила, которые позволяют формировать отношения на основе ER-диаграмм для вариантов со степенью связи типа 1:1. Сформулируем аналогичные два правила для вариантов, степень связи между сущностями которых 1:М.