- •Содержание
- •1.1. Основные понятия
- •1.2. Компоненты БнД
- •1.3. Классификация БнД и бд
- •1.4. Этапы проектирования бд
- •1.5. Взаимосвязь этапов проектирования бд
- •Вопросы для самоконтроля
- •Раздел 2. Проектирование баз данных. Тема 2. Инфологическое моделирование (начало)
- •2.1. Необходимость инфологического моделирования
- •2.1.1. Виды ограничений целостности
- •2.1.2. Причины, приводящие к нарушению ограничений целостности
- •2.2. Описание объектов и их свойств
- •Тема 3. Инфологическое моделирование (окончание)
- •3.1. Описание связей между объектами.
- •3. 2. Описание сложных объектов
- •Вопросы для самоконтроля
- •Тема 4. Даталогическое проектирование
- •4.1. Общие сведения
- •4.2. Подход к даталогическому проектированию
- •4.3. Определение состава бд
- •4.4. Разновидности даталогических моделей
- •Вопросы для самоконтроля
- •Тема 5. Реляционная даталогическая модель базы данных
- •5.1. Основные понятия
- •5.2. Цели проектирования рбд
- •5.2.1. Возможность хранения всех необходимых данных в бд
- •5.2.2. Исключение избыточности данных
- •5.2.3. Сведение числа хранимых в бд отношений к минимуму
- •5.2.4. Нормализация отношений
- •Вопросы для самоконтроля
- •Тема 6. Метод проектирования реляционной базы данных на основе илм
- •Вопросы для самоконтроля
- •Тема 7. Пример проектирования реляционной базы данных на основе илм
- •7.6. Определение состава бд
- •7.7. Определение отношений, включаемых в бд
- •7.8. Описание логической структуры бд на языке субд (схема бд)
- •7.9. Сравнение спроектированной рбд с однотабличной бд
- •Вопросы для самоконтроля
- •Раздел 3. Описание информационных потребностей пользователей базы данных. Тема 8. Информационные потребности пользователей базы данных.
- •8.1. Типы и языки запросов
- •8.2. Реляционная алгебра (алгебра отношений)
- •8.2.1. Проекция
- •8.2.2. Выборка
- •8.2.3. Соединение
- •8.2.4. Объединение
- •8.2.5. Пересечение
- •8.2.6. Вычитание
- •8.2.7. Умножение
- •8.2.8. Деление
- •8.3. Примеры запросов на реляционном языке
- •Вопросы для самоконтроля
- •Раздел 4. Использование языкаSql для работы с базами данных. Тема9. Структурированный язык запросов sql
- •9.1. Стандарт и разновидности языка sql
- •9.2. Краткое введение в sql
- •Тема 10. Основные элементы языка sql. Использование языка sql для выборки данных
- •10.1. Оператор select
- •Тема 11. Отбор строк из таблиц. Условия поиска строк
- •Вопросы для самоконтроля
- •Тема 12. Сортировка таблиц
- •Тема 13. Использование псевдонимов для обозначения таблиц базы данных. Самосоединение таблиц. Итоговые запросы и агрегатные функции
- •Вопросы для самоконтроля
- •Тема 14. Запросы с группировкой
- •Тема 15. Вложенные запросы
- •Вопросы для самоконтроля
- •Тема 16. Изменение данных в базе данных
- •16.1. Корректировка таблиц бд
- •16.2. Создание объектов бд
- •16.3. Создание представлений
- •Вопросы для самоконтроля
- •Рекомендуемая литература
5.2. Цели проектирования рбд
Среди множества целей проектирования наиболее важными являются:
возможность хранения всех необходимых данных в БД;
исключение избыточности данных;
сведение числа хранимых в БД отношений к минимуму;
нормализация отношений для упрощения решения проблем, связанных с обновлением и удалением данных.
Рассмотрим каждую из целей отдельно.
5.2.1. Возможность хранения всех необходимых данных в бд
БД должна содержать все данные, представляющие интерес для решаемой задачи. Первым шагом в процессе проектирования является определение всех атрибутов, которые впоследствии будут помещены в БД. После определения атрибутов проектировщик решает, сколько отношений необходимо и какие атрибуты включать в какие отношения.
5.2.2. Исключение избыточности данных
Суть этой цели станет понятной, если уяснить четкое различие между дублированием данных и избыточным дублированием данных. Рассмотрим отношение, приведенное на рис.5.4(а). Отношение П-3 имеет два атрибута - НП (номер преподавателя) и ЗавК (зав.кафедрой). В отношении содержатся данные, указывающие непосредственного начальника каждого преподавателя в институте.
П-3 П-3
НП |
ЗавК |
|
НП |
ЗавК |
102 |
Шаньгин |
|
102 |
Шаньгин |
104 |
Вернер |
|
104 |
Вернер |
108 |
Вернер |
|
108 |
- |
125 |
Шаньгин |
|
125 |
- |
(а) (б)
Рис.5.4. Дублирование данных, не являющееся избыточным
Фамилии зав. кафедрами могут неоднократно появляться в отношении, что и видно на рисунке. Но несмотря на дублирование фамилий, ни одна из дублируемых фамилий не является избыточной. Отсутствие избыточности легко обнаруживается, если из отношения удалить одну из дублируемых фамилий (рис.5.4(б)). Видно, что в результате удаления теряется информация: невозможно определить фамилии зав. кафедрами, на которых работают преподаватели с номерами 108 и 125.
На рис 5.5(а) приведен пример отношения с избыточным дублированием данных. Отношение П-3-Т похоже на отношение П-3, но включает дополнительный атрибут Нтел, представляющий собой номер телефона зав. кафедрой.
П-3-Т П-3-Т П-3 3-Т
НП |
ЗавК |
Нтел |
|
НП |
ЗавК |
Нтел |
|
НП |
ЗавК |
|
ЗавК |
Нтел |
102 |
Шаньгин |
2854 |
|
102 |
Шаньгин |
2854 |
|
102 |
Шаньгин |
|
Шаньгин |
2854 |
104 |
Вернер |
2882 |
|
104 |
Вернер |
2882 |
|
104 |
Вернер |
|
Вернер |
2882 |
108 |
Вернер |
2882 |
|
108 |
Вернер |
- |
|
108 |
Вернер |
|
|
|
125 |
Шаньгин |
2854 |
|
125 |
Шаньгин |
- |
|
125 |
Шаньгин |
|
|
|
(а) (б) (в)
Рис.5.5. Избыточное дублирование данных и исключение избыточных данных
В приведенном экземпляре отношения номера телефонов Шаньгина и Вернера появляются более чем один раз, и дублированная информация о телефонных номерах является избыточной. Причина избыточности в том, что, если, например, удалить один из телефонных номеров Шаньгина, то эта информация может быть получена из других кортежей отношения. Из рис.4.5(б) видно, что телефонные номера Шаньгина и Вернера не утеряны, поскольку каждый из них обнаруживается в одном из кортежей отношения.
Такой способ исключения избыточности плох по двум причинам. Во-первых, пустых полей в БД следует избегать, так как при их наличии необходимо дополнительное программирование, направленное на определение действительных значений пустых полей. Во-вторых, что более важно, отношение, представленное на рис.4.5(б), имеет структуру, которая создает серьезные проблемы при удалении информации. Если преподаватель с номером НП=102 уволится с кафедры и кортеж <102, Шаньгин, 2854> будет удален из отношения, произойдет утеря телефонного номера Шаньгина, поскольку нигде в отношении этот номер больше не представлен.
Чтобы исключить избыточность телефонных номеров, отношение П-3-Т заменяется двумя отношениями, одно из которых П-3 содержит информацию о номерах преподавателей и фамилиях зав. кафедрами, а другое 3-Т - информацию о телефонных номерах зав. кафедрами. Теперь преподаватель с номером 102 может быть удален из отношения П-3 без потери номера телефона бывшего начальника этого преподавателя.