
- •1. Информационные системы и технологии
- •1.1. Информационные системы
- •1.1.1. Общее представление
- •1.1.2. Роль структуры управления в информационной системе
- •1.2. Структура и классификация информационных систем
- •1.2.1. Структура информационной системы
- •1.2.2. Классификация информационных систем по признаку структурированности задач
- •1.2.3. Прочие классификации информационных систем
- •1.3. Информационные технологии
- •1.3.1. Понятие информационной технологии
- •1.3.2. Этапы развития информационных технологий
- •1.3.3. Проблемы использования информационных технологий
- •1.4. Виды информационных технологий
- •1.4.1.Информационная технология обработки данных
- •1.4.2. Информационная технология управления
- •1.4.3. Информационная технология поддержки принятия решений
- •1.4.5. Информационная технология экспертных систем
- •2. Основы построения баз данных
- •2.1. Базы данных и информационные системы
- •2.1.1.Архитектура информационной системы
- •2.1.2. Модели данных
- •2.1.3. Системы управления базами данных
- •2.2. Реляционная модель данных
- •2.2.1 Элементы реляционной модели
- •2.2.2 Ограничения и операции над отношениями
- •2.3. Проблемы проектирования реляционных бд
- •2.3.1 Избыточное дублирование данных и аномалии
- •2.3.2 Формирование исходного отношения
- •2.4. Проектирование бд методом нормальных форм
- •2.4.1.Зависимости между атрибутами
- •2.4.2. Выявление зависимостей между атрибутами
- •2.4.3. Нормальные формы
- •2.5. Обеспечение целостности бд
- •2.6. Языки запросов qbe и sql
- •2.6.1. Язык запросов по образцу
- •2.6.2. Структурированный язык запросов
- •3. Информационные технологии совместной работы
- •3.1. Локальные вычислительные сети
- •3.1.1. Аппаратные средства лвс
- •3.1.2. Классификация и архитектура локальных сетей
- •3.2. Региональные сети
- •3.2.1. Оборудование для создания региональных сетей
- •3.2.2. Коммутация пакетов и стандарт X.25
- •3.2.3. Цифровые каналы связи
- •3.2.4. Новейшие технологии связи
2.3.1 Избыточное дублирование данных и аномалии
Следует различать простое (неизбыточное) и избыточное дублирование данных, Первое из них вполне естественно, второе может приводить к проблемам при обработке данных. Приведем примеры обоих вариантов дублирования.
Пример неизбыточного дублирования данных представляет приведенное на рис. 17 отношение С_Т с атрибутами Сотрудник и Телефон. Для сотрудников, находящихся в одном помещении, номера телефонов совпадают. Номер телефона 4328 встречается несколько раз, хотя для каждого служащего номер телефона уникален. Поэтому ни один из номеров не является избыточным. Действительно, при удалении одного из номеров телефонов будет утеряна информация о том, по какому номеру можно дозвониться до одного из служащих.
С_Т
Сотрудник |
Телефон |
Иванов |
3721 |
Петров |
4328 |
Сидоров |
4328 |
Егоров |
4328 |
Рис. 17. Неизбыточное дублирование
Пример избыточного дублирования представляет приведенное на рис. 18 а отношение С_Т_Н, которое, в отличие от отношения С_Т, дополнено атрибутом Н_комн (номер комнаты сотрудника). Естественно предположить, что все служащие в одной комнате имеют один и тот же телефон. Следовательно, в рассматриваемом отношении имеется избыточное дублирование данных. Так, в связи с тем, что Сидоров и Егоров находятся в той же комнате, что и Петров, то их номера можно узнать из кортежа со сведениями о Петрове.
С_Т_Н
Служащий |
Телефон |
Н_комн |
Иванов |
37-21 |
109 |
Петров |
43-28 |
111 |
Сидоров |
4328 |
111 |
Егоров |
4328 |
111 |
Рис. 18 а. Избыточное дублирование
На рис. 18 б приведен пример неудачного отношения С_Т_Н, в котором вместо телефонов Сидорова и Егорова поставлены «прочерки» (неопределенные значения). Неудачность подобного способа исключения избыточности заключается в следующем.
С_Т_Н
Служащий |
Телефон |
Н_комн |
Иванов |
3721 |
109 |
Петров |
4328 |
111 |
Сидоров |
- |
111 |
Егоров |
- |
111 |
Рис. 18 б. Избыточное дублирование
Во-первых, при программировании придется потратить дополнительные усилия на создание механизма поиска информации для «прочерков» таблицы. Во-вторых, память все равно выделяется под атрибуты с «прочерками», хотя дублирование данных и исключено. В-третьих, что особенно важно, при исключении из коллектива Петрова кортеж со сведениями о нем будет исключен из отношения, а значит, уничтожена информация о телефоне 111-й комнаты, что недопустимо.
Возможный способ выхода из данной ситуации приведен на рис. 19. Здесь показаны два отношения С_Н и Н_Т, полученные путем декомпозиции исходного отношения С_Т_Н. Первое из них содержит информацию о номерах комнат, в которых располагаются сотрудники, а второе — информацию о номерах телефонов в каждой из комнат. Теперь, если Петрова и уволят из учреждения и, как следствие этого, удалят всякую информацию о нем из баз данных учреждения, то это не приведет к утере информации о номере телефона в 111-й комнате.
Процедура декомпозиции отношения С_Т_Н на два отношения С_Н и Н_Т является основной процедурой нормализации отношений.
С_Н
Служащий |
Н_комн |
Иванов |
109 |
Петров |
111 |
Сидоров |
111 |
Егоров |
111 |
Н_Т
Н_комн |
Телефон |
109 |
3721 |
111 |
4328 |
Рис. 19. Исключение избыточного дублирования
Избыточное дублирование данных создает проблемы при обработке кортежей отношения, названные Э. Коддом аномалиями обновления отношения. Он показал, что для некоторых отношений проблемы возникают при попытке удаления, добавления или редактировании их кортежей. Проблемы удаления и добавления кортежей, в принципе, снимаются в современных СУБД (например, Visual FoxPro) с появлением в них значений для полей таблиц типа Null - неопределенных значений. Поэтому далее рассмотрим только проблемы редактирования кортежей отношений.