Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Проектирование Баз Данных - Сибилев, 2007

.pdf
Скачиваний:
155
Добавлен:
11.05.2015
Размер:
1.73 Mб
Скачать

Федеральное агентство по образованию

ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)

Кафедра автоматизированных систем управления (АСУ)

В.Д. Сибилёв

ПРОЕКТИРОВАНИЕ БАЗ ДАННЫХ

Томск 2007

2

Сибилёв В.Д. Проектирование баз данных: Учебное по-

собие /@@@@@@@@@@@@@@@@@@@@@@@@и – Томск, 2007. — 265 с.

 

3

 

 

ОГЛАВЛЕНИЕ

 

1 ВВЕДЕНИЕ....................................................................................

8

1.1

Жизненный цикл системы баз данных .................................

8

1.1.1 Структура жизненного цикла..........................................

8

1.1.2 Планирование разработки ...............................................

9

1.1.3 Определение требований к системе ...............................

9

1.1.4 Анализ требований пользователей.................................

9

1.1.5 Проектирование БД........................................................

10

1.1.6 Проектирование приложений .......................................

11

1.1.7 Реализация ......................................................................

12

1.1.8 Первоначальная загрузка...............................................

13

1.1.9 Тестирование ..................................................................

13

1.1.10 Эксплуатация и сопровождение .................................

14

1.2

Обзор процеса проектирования БД.....................................

15

1.2.1 Цели проектирования.....................................................

15

1.2.2 Фазы проектирования БД..............................................

15

1.2.3 Концептуальное моделирование...................................

17

1.2.4 Логическое моделирование...........................................

18

1.2.5 Физическое проектирование.........................................

20

1.3

Языковые средства моделирования ....................................

20

Контрольные вопросы................................................................

22

2 МОДЕЛЬ «СУЩНОСТЬ-СВЯЗЬ» .............................................

24

2.1

Общее представление...........................................................

24

2.2

Понятийная основа ...............................................................

24

2.2.1 Сущность.........................................................................

25

2.2.2 Связь................................................................................

26

2.2.3 Атрибут ...........................................................................

27

2.2.4 Типы атрибутов..............................................................

28

2.2.5 Идентификаторы ............................................................

29

2.3

Обозначения для сущностей и связей.................................

30

2.4

Свойства связей.....................................................................

32

2.4.1 Степень связи..................................................................

32

2.4.2 Мощность связи..............................................................

32

2.4.3 Степень участия сущности в связи...............................

34

2.4.4 Типы бинарных связей...................................................

35

2.5

Дополнительные элементы модели.....................................

36

4

 

2.5.1 Слабые сущности ...........................................................

36

2.5.2 Изображение атрибутов на ER-диаграммах ................

38

2.5.3 Подтипы и супертипы сущностей ................................

40

2.6 Математическая модель сущностей и связей.....................

42

2.6.1 Атрибут ...........................................................................

43

2.6.2 Сущность.........................................................................

43

2.6.3 Связь................................................................................

44

2.6.4 Связь как сущность........................................................

44

2.6.5 Редукция связей..............................................................

47

2.6.6 Композитные и многозначные атрибуты.....................

47

2.6.7 Резюме.............................................................................

48

Контрольные вопросы................................................................

48

3 РЕЛЯЦИОННАЯ МОДЕЛЬ ДАННЫХ.....................................

50

3.1 Общая характеристика модели............................................

50

3.2 Структуры..............................................................................

52

3.2.1 Основные понятия..........................................................

52

3.2.2 Свойства отношений......................................................

55

3.2.3 Интуитивная основа РМД .............................................

56

3.2.4 Семантика конструкций РМД.......................................

57

3.3 Реляционная целостность.....................................................

58

3.3.1 Возможные ключи отношения......................................

58

3.3.2 Первичный и альтернативные ключи...........................

60

3.3.3 Связи отношений и внешние ключи.............................

62

3.3.4 Внутренние ограничения целостности РМД...............

65

3.3.5 Правила внешних ключей .............................................

67

3.4 Неопределённые значения в БД и ограничения

 

целостности данных.............................................................

69

3.4.1 Проблема представления незнания ..............................

69

3.4.2 NULL-значения и целостность атрибута .....................

71

3.4.3 Идентификация кортежей и NULL-значения..............

71

3.4.4 Ссылочная целостность и NULL-значения..................

72

3.5 Реляционный язык определения данных............................

73

3.5.1 Объявление домена........................................................

74

3.5.2 Объявление отношения..................................................

75

Контрольные вопросы................................................................

78

4 НОРМАЛЬНЫЕ ФОРМЫ ОТНОШЕНИЙ ...............................

80

4.1 Пример. База данных куратора............................................

80

 

5

 

4.1.1 Проблемы куратора........................................................

80

4.1.2 Техническое задание на разработку БД куратора.......

81

4.1.3 Варианты «структуры» БД............................................

82

4.1.4 Проблемы обновления универсального отношения ...

85

4.2

Бизнес-правила и функциональные зависимости

 

 

атрибутов ..............................................................................

89

4.3

Нормальные формы отношений и проблема аномалий

 

 

обновления............................................................................

92

4.3.1 Первая нормальная форма.............................................

92

4.3.2 Вторая нормальная форма.............................................

93

4.3.3 Третья нормальная форма .............................................

94

4.3.4 Нормальная форма Бойса-Кодда ..................................

95

4.3.5 Теорема Хеза...................................................................

98

4.3.6 Независимость проекций...............................................

99

4.3.7 Многозначные зависимости и 4НФ............................

100

4.4

Нормализация......................................................................

103

4.5

Синтез отношений ..............................................................

111

4.5.1 Выбор начальной схемы..............................................

111

4.5.2 Расширение схемы .......................................................

112

4.5.3 Критерий окончания синтеза отношения...................

113

4.5.4 Сокращение множества атрибутов.............................

113

4.5.5 Пример синтеза.............................................................

114

4.6

Резюме..................................................................................

117

Контрольные вопросы..............................................................

118

5 РЕЛЯЦИОННАЯ МОДЕЛЬ ДАННЫХ IDEF1X ....................

120

5.1

Компоненты языка IDEF1X ...............................................

120

5.1.1 Модель данных.............................................................

120

5.1.2 Уровни представления диаграмм ...............................

120

5.2

Сущности, атрибуты, домены............................................

121

5.2.1 Обозначения..................................................................

121

5.2.2 Правила именования и определения ..........................

122

5.2.3 Правила для атрибутов ................................................

123

5.3

Соединения..........................................................................

124

5.3.1 Типы соединений .........................................................

124

5.3.2 Синтаксис соединений.................................................

125

5.3.3 Правила именования соединений...............................

127

5.4

Связи категоризации...........................................................

127

 

6

 

5.4.1 Синтаксис категорий....................................................

128

5.4.2 Правила для категоризационных связей....................

129

5.5

Имя роли..............................................................................

129

5.6

Требования к диаграммам..................................................

131

5.6.1 ER-уровень....................................................................

131

5.6.2 КВ-уровень....................................................................

131

5.6.3 Правила для первичных и альтернативных ключей ....

132

5.6.4 Правила для внешних ключей.....................................

132

5.6.5 FA-уровень....................................................................

133

5.7

Дополнения к модели.........................................................

133

5.8

Лексические соглашения....................................................

134

5.8.1 Имена.............................................................................

134

5.8.2 Идентификаторы ..........................................................

135

5.8.3 Метки атрибутов ..........................................................

135

Контрольные вопросы..............................................................

135

6 МЕТОДОЛОГИЯ ПРОЕКТИРОВАНИЯ БАЗ ДАННЫХ .....

138

6.1

Понятие методологии проектирования.............................

138

6.2

Фазы проектирования базы данных..................................

139

6.3

Факторы успешного завершения проекта ........................

140

6.4

Общий обзор методологии.................................................

141

6.4.1 Фаза концептуального моделирования......................

141

6.4.2 Фаза логического моделирования ..............................

142

6.4.3 Фаза физического проектирования.............................

143

Контрольные вопросы..............................................................

144

7 МЕТОДОЛОГИЯ КОНЦЕПТУАЛЬНОГО

 

МОДЕЛИРОВАНИЯ....................................................................

145

7.1

Создание локальной концептуальной модели .................

145

Этап 1.1. Определение типов сущностей............................

146

Этап 1.2. Определение типов связей ...................................

150

Этап 1.3. Определение атрибутов сущностей и связей .....

152

Этап 1.4. Определение доменов атрибутов.........................

155

Этап 1.5. Определение потенциальных и выбор

 

первичных ключей................................................................

155

Этап 1.6 (необязательный). Специализация/генерализация

 

типов сущностей ...................................................................

158

Этап 1.7. Создание ER-диаграммы......................................

163

7

 

Этап 1.8. Обсуждение локальной концептуальной

 

модели с конечным пользователем .....................................

164

Контрольные вопросы..............................................................

164

8 МЕТОДОЛОГИЯ ЛОГИЧЕСКОГО МОДЕЛИРОВАНИЯ

 

РЕЛЯЦИОННЫХ БАЗ ДАННЫХ ..............................................

166

8.1 Построение и проверка локальной логической модели .....

166

Этап 2.1. Очистка локальной концептуальной модели от

 

нежелательных элементов. ...................................................

166

Этап 2.2. Определение набора отношений на основе

 

очищенной концептуальной модели. ..................................

176

Этап 2.3. Проверка нормализованности логической

 

модели ....................................................................................

180

Этап 2.4. Проверка исполнимости транзакций...................

185

Этап 2.5. Создание окончательной диаграммы

 

локального представления....................................................

187

Этап 2.6. Определение ограничений целостности

 

данных. ...................................................................................

187

Этап 2.7. Обсуждение локальной логической модели

 

с конечным пользователем...................................................

192

8.2 Построение и проверка глобальной логической модели....

193

Этап 3.1. Слияние локальных моделей в глобальную

 

логическую модель. ..............................................................

194

Этап 3.2. Проверка глобальной логической модели..........

197

Этап 3.3. Проверка возможности расширения модели......

198

Этап 3.4. Создание окончательной диаграммы

 

глобальной модели................................................................

198

Этап 3.5. Обсуждение глобальной модели

 

с пользователями...................................................................

198

Контрольные вопросы..............................................................

199

РЕКОМЕНДУЕМАЯ ЛИТЕРАТУРА.........................................

201

8

1 ВВЕДЕНИЕ

1.1 Жизненный цикл системы баз данных

1.1.1 Структура жизненного цикла

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

Под жизненным циклом (ЖЦ) системы баз данных (СБД) понимается непрерывный процесс, который начинается в момент принятия решения о создании СБД и заканчивается в момент полного изъятия системы из эксплуатации. Этот процесс принято подразделять на ряд этапов (фаз). На каждом этапе выполняется определённый перечень работ, направленных на создание или эксплуатацию и развитие системы. Следующая схема представляет идеальную временнýю последовательность этапов ЖЦ СБД (рис. 1.1).

Планирование

Определение

Анализ требований

требований к

разработки

пользователей

системе

 

 

Реализация

Проектирование

Проектирование

приложений

базы данных

 

Первоначальная

Тестирование

Эксплуатация и

загрузка данных

сопровождение

 

Рис. 1.1 — Жизненный цикл СБД

В идеале результаты очередного этапа должны являться исходными данными для следующего. Однако реальный жизненный цикл — это итерационный процесс. На каждом этапе могут возникнуть проблемы, которые потребуют пересмотра решений,

9

принятых на любом из предшествующих. Поэтому приведённую здесь схему следует рассматривать как перечень видов работ, а не как строгую временнýю последовательность их исполнения.

Рассмотрим фазы ЖЦ подробнее.

1.1.2 Планирование разработки

Планирование разработки — это подготовительный этап. Здесь оцениваются

требуемый объём работ;

требуемые ресурсы;

общая стоимость проекта.

Эти оценки приближённые. Они нужны руководству организации для принятия решения о создании (или радикальной переработке) системы. Обычно этот этап выполняется небольшой группой (2÷3 человека) высококвалифицированных и авторитетных специалистов. Возможно привлечение независимых экспертов.

1.1.3 Определение требований к системе

На этом этапе определяются диапазон действия системы (поддерживаемые бизнес-процессы), её границы и состав пользователей.

1.1.4 Анализ требований пользователей

Это наиболее ответственный этап ЖЦ. Недостаточно тщательно выполненный анализ приведёт к выходу за рамки бюджета проекта, превышению сроков разработки и, возможно, краху проекта. На этом этапе собирается и анализируется информация о деятельности организации, необходимая для проектирования БД и приложений. Выявляются

функции пользователей системы,

данные, необходимые для выполнения функций,

бизнес-правила, ограничивающие функции.

Эта информация собирается различными способами. В частности

10

путём опроса отдельных наиболее авторитетных сотрудников организации;

посредством наблюдений за деятельностью организации;

посредством изучения документов, в особенности тех, которые используются для сбора или представления информации;

путём анкетирования широкого круга будущих пользователей системы.

Привлекается и опыт разработчиков в проектировании аналогичных систем.

Собранная информация по каждой области применения и каждой группе пользователей должна включать

входную и выходную документацию организации;

подробные сведения о выполняемых транзакциях;

список требований пользователей с указанием приоритетов. Получаемая аналитиками информация о деятельности орга-

низации всегда плохо структурирована. Задача аналитиков — структурировать её и определить спецификации требований пользователей, т.е. дать точное и однозначное описание функций пользователей и их потребностей в данных.

1.1.5 Проектирование БД

Проектирование БД — это этап создания информационного ядра системы. Основные цели этапа следующие.

Определить данные и связи между ними, необходимые для всех основных областей применения создаваемой СБД и любых существующих групп пользователей.

Создать модель данных, способную поддерживать выполнение любых требуемых транзакций обработки данных.

Разработать предварительный вариант проекта СБД, структура которого позволит удовлетворить основные требования к производительности системы.

Вообще говоря, эти цели противоречивы. Задача проектировщиков — найти удачный компромисс между универсальностью и производительностью системы.

Процесс проектирования БД мы обсудим подробно в разделе 6.