Проектирование Баз Данных - Сибилев, 2007
.pdfФедеральное агентство по образованию
ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)
Кафедра автоматизированных систем управления (АСУ)
В.Д. Сибилёв
ПРОЕКТИРОВАНИЕ БАЗ ДАННЫХ
Томск 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.