Учебное пособие: Построение модели DFD и реализация в СУБД Visual FoxPro
КОНЕЦ ЕСЛИ
ЕСЛИ изменить ИНФОРМАЦИЮ О ПРЕПОДАВАТЕЛЯХ ТО
ВЫПОЛНИТЬ редактировать ИНФОРМАЦИЮ О ПРЕПОДАВАТЕЛЯХ
КОНЕЦ ЕСЛИ
ЕСЛИ удалить ИНФОРМАЦИЮ О ПРЕПОДАВАТЕЛЯХ ТО
ВЫПОЛНИТЬ удалить ИНФОРМАЦИЮ О ПРЕПОДАВАТЕЛЯХ
КОНЕЦ ЕСЛИ
Спецификация процесса A0.4
@ВХОД = ПОИСК КУРАТОРА
@ВХОД = ДАННЫЕ О ГРУППАХ И ПРЕПОДАВАТЕЛЯХ
@ВЫХОД = ПОИСК ИНФОРМАЦИИ О КУРАТОРЕ
@ВЫХОД = ИНФОРМАЦИЯ О КУРАТОРЕ
@СПЕЦПРОЦ A0.4 ПОИСК КУРАТОРА
ПОИСК ИНФОРМАЦИИ О КУРАТОРЕ = ПОИСК КУРАТОРА
ВЫПОЛНИТЬ Поиск в БД ИНФОРМАЦИИ О КУРАТОРЕ
ИНФОРМАЦИЯ О КУРАТОРЕ = найденные в БД ДАННЫЕ О ГРУППАХ И ПРЕПОДАВАТЕЛЯХ
Проектирование структуры базы данных
Выделим две сущности: Группы и Преподаватели.
Связь между этими сущностями имеет тип «многие к одному» так как каждый преподаватель может быть куратором в нескольких группах и в каждой группе может быть только один куратор.
Сущность «Преподаватели» имеет атрибуты: ФИО, Год рождения, учёная степень, Адрес. Ни один из этих атрибутов не уникален для каждого конкретного преподавателя. К тому же для разных преподавателей могут совпадать сразу совокупность значений таких атрибутов, как ФИО, год рождения и Учёная степень. Поэтому выделим отдельный атрибут ID_Преподавателя, однозначно идентифицирующий каждый экземпляр сущности «Преподаватели». От атрибутов, не входящих в состав уникального идентификатора, функционально не зависят другие атрибуты.
Сущность «Группа» имеет атрибуты: Название группы, Имя куратора, Должность, Оклад, ID_Преподавателя (являющегося куратором данной группы). Так как название группы уникально, то это атрибут будет являться уникальным идентификатором для сущности «Группы». Все остальные атрибуты функционально зависят от уникального идентификатора.
· «Имя куратора». В каждой студенческой группе только один куратор.
· «Должность». У каждого куратора, а значит и группы, может быть только одна должность.
· «Оклад». У каждой должности только один оклад.
· «ID_Преподавателя». В каждой группе только один куратор, а значит и один преподаватель является куратором в данной группе.
Так как несколько должностей могут иметь один и тот же оклад, но каждая должность может иметь только один оклад, то атрибут «Оклад» функционально зависит от атрибута «Должность», не входящего в состав уникального идентификатора. Атрибут «Должность» также не может рассматриваться в качестве альтернативного ключа, ибо нет функциональной зависимости ключевого атрибута «Название группы» от атрибута «Должность», то есть одна и та же должность куратора может быть в разных группах, а альтернативный ключ должен идентифицировать каждую запись, а не набор записей. Отсюда следует, что данная структура не находится в третьей нормальной форме. Для приведения её в третью нормальную форму необходимо выделить отдельную сущность «Должности» и атрибуты «Должность» и «Оклад» выделить для этой сущности.
Определим степени связей между сущностями.
Связь между сущностью «Группы» и «Преподаватели» имеет тип «Многие к одному», так как каждый преподаватель может быть куратором в нескольких группах, а у каждой группы может быть только один куратор.
Связь между сущностью «Группы» и «Должности» имеет тип «Многие к одному», так как одна и та же должность куратора может быть в разных группах и у каждой группы может быть только один куратор, значит и одна должность куратора.
Диаграмма связей между сущностями представлена на рисунке 2.16.3.