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

6_Проектирование баз данных

.doc
Скачиваний:
19
Добавлен:
15.03.2015
Размер:
101.89 Кб
Скачать

Проектирование баз данных

Проектирование информационных систем, включающих в себя базы данных, осуществляется на физическом и логическом уровнях.

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

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

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

При проектировании структур можно выделить три основных подхода:

  1. Сбор информации об объектах в рамках одной таблицы и последующая декомпозиция ее на несколько взаимосвязанных таблиц на основе процедуры нормализации отношений.

  1. Формулирование знаний о системе (определение типов исходных данных и их взаимосвязей) и требований к обработке данных, получение схемы БД.

  1. Структурирование информации в процессе проведения системного анализа на основе совокупности правил и рекомендаций.

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

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

Следует различать простое и избыточное дублирование данных. Наличие первого из них допускается в базах данных, а избыточное дублирование данных приводит к проблемам при обработке данных.

Пример неизбыточного дублирования данных – рис.1 - отношение Сотрудник_Телефон с атрибутами Сотрудник и Телефон.

  1. Для сотрудников, находящихся в одном помещении, номера телефонов совпадают.

  2. Номер 4328 встречается несколько раз, хотя для каждого служащего он уникален.

  3. Ни один из номеров не является избыточным.

  4. При удалении одного номера будет утеряна информация, по какому номеру можно дозвониться до одного из служащих.

Рис. 1. Простое дублирование

Пример избыточного дублирования - рис.2 - отношение Сотрудник_Телефон_Номер комнаты.

  1. Служащие в одной комнате имеют один телефон.

  2. Следовательно, в рассматриваемом отношении имеется избыточное дублирование данных.

  3. Сидоров и Егоров находятся в одной комнате с Петровым, их номера можно узнать из кортежа со сведениями о Петрове.

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

Пример неудачного способа исключения избыточности - отношение Сотрудник_Телефон_Номер_комнаты

  1. Вместо телефонов Сидорова и Егорова поставлены прочерки

  2. Во-первых, программирование механизма поиска информации для прочерков таблицы.

  3. Во-вторых, хотя дублирование исключено, память выделяется под атрибуты с прочерками.

  4. В-третьих, при исключении из отношения кортежа со сведениями о Петрове будет уничтожена информация о телефоне 111-й комнаты

.

Возможный способ исключения дублирования на рис.3. Два отношения Сотрудник_Номер_комнаты и Номер_комнаты_Телефон, полученные путем декомпозиции исходного отношения Сотрудник_Телефон_Номер комнаты.

Первое из них содержит информацию о номерах комнат, в которых располагаются сотрудники.

Второе - информацию о номерах телефонов каждой комнаты.

Если информацию о Петрове удалят из базы данных учреждения, это не приведет к утере информации о номере телефона в 111-й комнате.

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

Процедура декомпозиции отношения Сотрудник_Телефон_Номер_комнаты на два отношения Сотрудник_Номер_комнаты и Номер_комнаты_Телефон является основной процедурой нормализации отношений.

Аномалии данных

Аномалия - ситуация в таблицах БД, которая приводит к противоречиям в БД либо усложняет обработку данных.

Три основные вида аномалий:

  • аномалии модификации

  • аномалии удаления

  • аномалии добавления.

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

Например, изменение номера телефона в комнате 111, потребует просмотра всей таблицы Сотрудники_Телефон_Номер_комнаты и изменения поля Номер_комнаты согласно текущему содержимому таблицы в записях, относящихся к Петрову, Сидорову и Егорову.

Аномалии удаления - удаление какого-либо данного из таблицы может привести к удалению другой информации, которая не связана напрямую с удаляемым данным.

В таблице Сотрудники_Телефон_Номер_комнаты удаление записи о сотруднике Иванове приводит к исчезновению информации о номере телефона, установленного в 109-й комнате.

Аномалии добавления - информацию в таблицу нельзя поместить до тех пор, пока она неполная, либо вставка новой записи требует дополнительного просмотра таблицы.

  1. Пример - добавление нового сотрудника в таблицу Сотрудники_Телефон_Номер_комнаты.

  2. Противоестественным будет хранение сведений в этой таблице только о комнате и номере телефона в ней, пока никто из сотрудников не помещен в нее.

  3. Если в таблице поле Служащий является ключевым, то хранение записей с отсутствующей фамилией недопустимо из-за неопределенности значения ключевого поля.

Формирование исходного отношения

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

Для учебной части создается БД о преподавателях

  1. На первом этапе определяют как должна использоваться БД и какую информацию заказчик хочет получать в процессе ее эксплуатации.

  2. Устанавливаются атрибуты, которые должны содержаться в отношениях БД, и связи между ними.

  3. Перечислим имена выделенных атрибутов и, их краткие характеристики

    1. ФИО - Исключаем возможность совпадения

    2. Должн

    3. Оклад

    4. Стаж

    5. Д_Стаж - надбавка за стаж

    6. Каф - номер кафедры, на которой числится преподаватель

    7. Предм - название читаемого предмета

    8. Группа - номер группы, в которой преподаватель проводит занятия

    9. ВидЗан

Одно из требований к отношениям заключается в том, чтобы все атрибуты отношения имели атомарные (простые) значения. В исходном отношении каждый атрибут кортежа также должен быть простым. Пример исходного отношения ПРЕПОДАВАТЕЛЬ приведен на рис.4.

Рис.4. Исходное отношение ПРЕПОДАВАТЕЛЬ

Указанное отношение имеет следующую схему ПРЕПОДАВАТЕЛЬ (ФИО, Должн, Оклад, Стаж, Д_Стаж, Каф, Предм, Группа, ВидЗан).

Исходное отношение ПРЕПОДАВАТЕЛЬ содержит избыточное дублирование данных, которое и является причиной аномалий редактирования. Различают избыточность явную и неявную.

Явная избыточность - строки с данными о преподавателях, проводящих занятия в нескольких группах, повторяются.

  1. Все данные по Иванову повторяются. Если Иванов станет старшим преподавателем, то это необходимо отразить в обеих строках.

  2. В противном случае будет иметь место аномалия редактирования, из-за избыточности данных в отношении.

Неявная избыточность - одинаковые оклады и добавки к окладу преподавателей (оклад связан с должностью).

  1. При изменении окладов за должность с 500 на 510 значение изменят у всех преподавателей, кроме Сидорова, то база станет противоречивой.

Средство исключения избыточности, и как следствие - аномалий - нормализация отношений.

Контрольные вопросы и задания

  1. Дайте определение понятия информационной системы в широком и узком смысле.

  2. Что представляет собой банк данных и какие компоненты входят в его состав?

  3. Каково назначение СУБД?

  4. Назовите основные модели данных.

  5. Дайте определение приложения, укажите, в каких случаях оно разрабатывается.

  6. Укажите назначение словаря данных.

  7. Перечислите функции администратора базы данных.

  8. Что представляет собой вычислительная система?

  9. Охарактеризуйте архитектуру клиент-сервер и назовите варианты ее реализации, укажите достоинства и недостатки.

  10. Изобразите структуру информационной системы с файл-сервером.

  11. Изобразите структуру информационной системы с сервером баз данных.

  12. Охарактеризуйте основные виды программ, относящихся к СУБД.

  13. Назовите основные способы работы пользователя с базой данных при решении прикладных задач.

  14. Укажите технологии создания приложений работы с базами данных.

  15. Охарактеризуйте способы выполнения приложений работы с базами данных.

  16. Изобразите схему обмена данными пользователя с БД для следующих операций а) выборки; б) добавления; в) модификации; г) удаления.

  17. Дайте характеристику многопользовательским СУБД.