Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции / Лекции по информатике / ЛЕКЦИЯ09-10_Базы_данных.DOC
Скачиваний:
256
Добавлен:
27.06.2014
Размер:
253.44 Кб
Скачать
    1. Проблемы проектирования реляционных бд

Проектирование информационных систем, включающих в себя базы данных, осуще­ствляется на физическом и логическом уровнях. Решение проблем проектирования на фи­зическом уровне во многом зависит от используемой СУБД, оно зачастую автоматизиро­вано и скрыто от пользователя. В ряде случаев пользователю предоставляется возмож­ность настройки отдельных параметров системы, что не составляет большой проблемы.

Логическое проектирование заключается в определении числа и структуры таблиц, формировании запросов к БД, определении типов отчетных документов, разработке алгоритмов обработки информации, создании форм для ввода и редактирования данных и базе и решении ряда аналогичных задач.

Решение задач логического проектирования БД и основном определяется специфи­кой задач предметной области. Наиболее важной здесь является проблема структуриза­ции данных.

При проектировании структур данных для автоматизированных систем используют классический подход: сбор информации об объектах решаемой задачи в рамках одной таблицы (одного отношения) и последующая декомпозиция ее на несколько взаимосвязанных таб­лиц на основе процедуры нормализации отношений.

Но вначале охарактеризуем основные проблемы, имеющие мес­то при определении структур данных в реляционной модели.

Избыточное дублирование данных

Следует различать простое (неизбыточное)иизбыточное дублированиеданных. Пер­вое из них вполне естественно, второе может приводить к проблемам при обработке дан­ных. Приведем примеры обоих вариантов дублирования.

Пример неизбыточного дублирования данных представляет приведенное на рис. 2 от­ношение СЛУЖАЩИЕ_ТЕЛЕФОНЫ с атрибутами Сотрудник и Телефон. Для сотрудников, находящихся в одном помещении, номера телефонов совпадают. Номер телефона 4328 встречается несколько раз, хотя для каждого служащего номер телефона уникален. Поэтому ни один из номеров не яв­ляется избыточным. Действительно, при удалении одного из номеров телефонов будет уте­ряна информация о том, по какому номеру можно дозвониться до одного из служащих (поэтому эта информация не избыточна).

Служащий

Телефон

Иванов

37-21

Петров

43-28

Сидоров

43-28

Егоров

43-28

Рис. 2. Неизбыточное дублирование в отношении (таблице) СЛУЖАЩИЕ_ТЕЛЕФОНЫ

Пример избыточного дублирования представляет приведенное на рис. 3. Отно­шение СЛУЖАЩИЕ_ТЕЛЕФОНЫ_КОМНАТЫ, которое, в отличие от отношения СЛУЖАЩИЕ_ТЕЛЕФОНЫ, дополнено атрибутом НомерКомнаты. Естественно предположить, что все служащие в одной комнате имеют один и тот же телефон. Следовательно, в рассматриваемом отношении имеется избыточное дублирование данных. Так, в связи с тем, что Сидоров и Егоров находятся в той же комнате, что и Петров, то их номера можно узнать из кортежа со сведениями о Петрове.

Служащий

Телефон

НомерКомнаты

Иванов

37-21

109

Петров

43-28

111

Сидоров

43-28

111

Егоров

43-28

111

Рис. 3. Избыточное дублирование

На рис. 4 приведен пример неудачного отношения СЛУЖАЩИЕ_ТЕЛЕФОНЫ_ КОМНАТЫ, в котором вместо телефонов Сидорова и Егорова поставлены «прочерки» (неопреде­ленные значения). Неудачность подобного способа исключения избыточности заключается в следующем. Во-первых, при программировании придется потратить дополни­тельные усилия на создание механизма поиска информации для «прочерков» таблицы. Во-вторых, память все равно выделяется под атрибуты с «прочерками», хотя дублиро­вание данных и исключена. В-третьих, что особенно важно, при увольнении Петрова кортеж со сведениями о нем будет исключен из отношения, а значит, уничтожена информация о телефоне 111-й комнаты, что недопустимо.

Служащий

Телефон

НомерКомнаты

Иванов

3721

109

Петров

4328

111

Сидоров

111

Егоров

111

Рис. 4. Неудачный вариант решения проблемы избыточного дублирования через удаление номеров телефона Сидорова и Егорова, т.к. они работают в одной комнате с Петровым

В

СЛУЖАЩИЕ_КОМНАТЫ

Служащий

НомерКомнаты

Иванов

109

Петров

111

Сидоров

111

Егоров

111

озможный способ выхода из данной ситуации приведен па рис. 4. Здесь показаны два отношения СЛУЖАЩИЕ_КОМНАТЫ и КОМНАТЫ_ТЕЛЕФОНЫ, полученные путем декомпозиции исходного отношения СЛУЖАЩИЕ_ТЕЛЕФОНЫ_КОМНАТЫ. Первое из них содержит информацию о номерах комнат, в которых располага­ются служащие, а второе — информацию о номерах телефонов в каждой из комнат. Те­перь, если Петрова и уволят из учреждения и, как следствие этого, удалят всякую ин­формацию о нем из базы данных учреждения, то это не приведет к утере информации о номере телефона в 111-й комнате.

КОМНАТЫ_ТЕЛЕФОНЫ

НомерКомнаты

Телефон

109

37-21

111

43-28

Рис. 5. Исключение избыточного дублирования

Процедура декомпозиции отношения СЛУЖАЩИЕ_ТЕЛЕФОНЫ_КОМНАТЫ на два отношения СЛУЖАЩИЕ_КОМНАТЫ и КОМНАТЫ_ТЕЛЕФОНЫ является основной процедурой нормализации отношений.