6_Проектирование баз данных
.docПроектирование баз данных
Проектирование информационных систем, включающих в себя базы данных, осуществляется на физическом и логическом уровнях.
Решение проблем проектирования на физическом уровне во многом зависит от используемой СУБД, зачастую автоматизировано и скрыто от пользователя. В ряде случаев пользователю предоставляется возможность настройки отдельных параметров системы, которая не составляет большой проблемы.
Логическое проектирование заключается в определении числа и структуры таблиц, формировании запросов к БД, определении типов отчетных документов, разработке алгоритмов обработки информации, создании форм для ввода и редактирования данных в базе и решении ряда других задач.
Наиболее важной задачей логического проектирования является проблема структуризации данных.
При проектировании структур можно выделить три основных подхода:
-
Сбор информации об объектах в рамках одной таблицы и последующая декомпозиция ее на несколько взаимосвязанных таблиц на основе процедуры нормализации отношений.
-
Формулирование знаний о системе (определение типов исходных данных и их взаимосвязей) и требований к обработке данных, получение схемы БД.
-
Структурирование информации в процессе проведения системного анализа на основе совокупности правил и рекомендаций.
Рассмотрим первый из названных подходов, являющийся классическим и исторически первым. Прежде всего охарактеризуем основные проблемы, имеющие место при определении структур данных в отношениях реляционной модели.
Избыточное дублирование данных
Следует различать простое и избыточное дублирование данных. Наличие первого из них допускается в базах данных, а избыточное дублирование данных приводит к проблемам при обработке данных.
Пример неизбыточного дублирования данных – рис.1 - отношение Сотрудник_Телефон с атрибутами Сотрудник и Телефон.
-
Для сотрудников, находящихся в одном помещении, номера телефонов совпадают.
-
Номер 4328 встречается несколько раз, хотя для каждого служащего он уникален.
-
Ни один из номеров не является избыточным.
-
При удалении одного номера будет утеряна информация, по какому номеру можно дозвониться до одного из служащих.
Рис. 1. Простое дублирование
Пример избыточного дублирования - рис.2 - отношение Сотрудник_Телефон_Номер комнаты.
-
Служащие в одной комнате имеют один телефон.
-
Следовательно, в рассматриваемом отношении имеется избыточное дублирование данных.
-
Сидоров и Егоров находятся в одной комнате с Петровым, их номера можно узнать из кортежа со сведениями о Петрове.
Рис. 2. Избыточное дублирование
Пример неудачного способа исключения избыточности - отношение Сотрудник_Телефон_Номер_комнаты
-
Вместо телефонов Сидорова и Егорова поставлены прочерки
-
Во-первых, программирование механизма поиска информации для прочерков таблицы.
-
Во-вторых, хотя дублирование исключено, память выделяется под атрибуты с прочерками.
-
В-третьих, при исключении из отношения кортежа со сведениями о Петрове будет уничтожена информация о телефоне 111-й комнаты
.
Возможный способ исключения дублирования на рис.3. Два отношения Сотрудник_Номер_комнаты и Номер_комнаты_Телефон, полученные путем декомпозиции исходного отношения Сотрудник_Телефон_Номер комнаты.
Первое из них содержит информацию о номерах комнат, в которых располагаются сотрудники.
Второе - информацию о номерах телефонов каждой комнаты.
Если информацию о Петрове удалят из базы данных учреждения, это не приведет к утере информации о номере телефона в 111-й комнате.
Рис. 3. Исключение избыточного дублирования
Процедура декомпозиции отношения Сотрудник_Телефон_Номер_комнаты на два отношения Сотрудник_Номер_комнаты и Номер_комнаты_Телефон является основной процедурой нормализации отношений.
Аномалии данных
Аномалия - ситуация в таблицах БД, которая приводит к противоречиям в БД либо усложняет обработку данных.
Три основные вида аномалий:
-
аномалии модификации
-
аномалии удаления
-
аномалии добавления.
Аномалии модификации - изменение значения одного данного влечет за собой просмотр всей таблицы и изменение других записей таблицы.
Например, изменение номера телефона в комнате 111, потребует просмотра всей таблицы Сотрудники_Телефон_Номер_комнаты и изменения поля Номер_комнаты согласно текущему содержимому таблицы в записях, относящихся к Петрову, Сидорову и Егорову.
Аномалии удаления - удаление какого-либо данного из таблицы может привести к удалению другой информации, которая не связана напрямую с удаляемым данным.
В таблице Сотрудники_Телефон_Номер_комнаты удаление записи о сотруднике Иванове приводит к исчезновению информации о номере телефона, установленного в 109-й комнате.
Аномалии добавления - информацию в таблицу нельзя поместить до тех пор, пока она неполная, либо вставка новой записи требует дополнительного просмотра таблицы.
-
Пример - добавление нового сотрудника в таблицу Сотрудники_Телефон_Номер_комнаты.
-
Противоестественным будет хранение сведений в этой таблице только о комнате и номере телефона в ней, пока никто из сотрудников не помещен в нее.
-
Если в таблице поле Служащий является ключевым, то хранение записей с отсутствующей фамилией недопустимо из-за неопределенности значения ключевого поля.
Формирование исходного отношения
Проектирование БД начинается с определения всех объектов, сведения о которых будут включены в базу, и определения их атрибутов. Затем атрибуты сводятся в одну таблицу - исходное отношение.
Для учебной части создается БД о преподавателях
-
На первом этапе определяют как должна использоваться БД и какую информацию заказчик хочет получать в процессе ее эксплуатации.
-
Устанавливаются атрибуты, которые должны содержаться в отношениях БД, и связи между ними.
-
Перечислим имена выделенных атрибутов и, их краткие характеристики
-
ФИО - Исключаем возможность совпадения
-
Должн
-
Оклад
-
Стаж
-
Д_Стаж - надбавка за стаж
-
Каф - номер кафедры, на которой числится преподаватель
-
Предм - название читаемого предмета
-
Группа - номер группы, в которой преподаватель проводит занятия
-
ВидЗан
-
Одно из требований к отношениям заключается в том, чтобы все атрибуты отношения имели атомарные (простые) значения. В исходном отношении каждый атрибут кортежа также должен быть простым. Пример исходного отношения ПРЕПОДАВАТЕЛЬ приведен на рис.4.
Рис.4. Исходное отношение ПРЕПОДАВАТЕЛЬ
Указанное отношение имеет следующую схему ПРЕПОДАВАТЕЛЬ (ФИО, Должн, Оклад, Стаж, Д_Стаж, Каф, Предм, Группа, ВидЗан).
Исходное отношение ПРЕПОДАВАТЕЛЬ содержит избыточное дублирование данных, которое и является причиной аномалий редактирования. Различают избыточность явную и неявную.
Явная избыточность - строки с данными о преподавателях, проводящих занятия в нескольких группах, повторяются.
-
Все данные по Иванову повторяются. Если Иванов станет старшим преподавателем, то это необходимо отразить в обеих строках.
-
В противном случае будет иметь место аномалия редактирования, из-за избыточности данных в отношении.
Неявная избыточность - одинаковые оклады и добавки к окладу преподавателей (оклад связан с должностью).
-
При изменении окладов за должность с 500 на 510 значение изменят у всех преподавателей, кроме Сидорова, то база станет противоречивой.
Средство исключения избыточности, и как следствие - аномалий - нормализация отношений.
Контрольные вопросы и задания
-
Дайте определение понятия информационной системы в широком и узком смысле.
-
Что представляет собой банк данных и какие компоненты входят в его состав?
-
Каково назначение СУБД?
-
Назовите основные модели данных.
-
Дайте определение приложения, укажите, в каких случаях оно разрабатывается.
-
Укажите назначение словаря данных.
-
Перечислите функции администратора базы данных.
-
Что представляет собой вычислительная система?
-
Охарактеризуйте архитектуру клиент-сервер и назовите варианты ее реализации, укажите достоинства и недостатки.
-
Изобразите структуру информационной системы с файл-сервером.
-
Изобразите структуру информационной системы с сервером баз данных.
-
Охарактеризуйте основные виды программ, относящихся к СУБД.
-
Назовите основные способы работы пользователя с базой данных при решении прикладных задач.
-
Укажите технологии создания приложений работы с базами данных.
-
Охарактеризуйте способы выполнения приложений работы с базами данных.
-
Изобразите схему обмена данными пользователя с БД для следующих операций а) выборки; б) добавления; в) модификации; г) удаления.
-
Дайте характеристику многопользовательским СУБД.