Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
метода к типовому v.3_.doc
Скачиваний:
5
Добавлен:
11.11.2019
Размер:
2.18 Mб
Скачать

3Пример выполнения типового расчета (с методическими указаниями и рекомендациями)

3.1Построить диаграмму функциональных зависимостей и найти минимальное покрытие отношения

Функциональные зависимости:

А В

В С, E

А, F E

C D

B D

C, E D

В, F E

Решение.

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

Рис. 3.1

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

Шаг 1. Рассмотрим ФЗ №4 и №6. Атрибут D зависит от атрибута C, но вместе с тем и от группы атрибутов C, E. По правилу №2 ФЗ №6 избыточна, уберем ее. Получим диаграмму, показанную на рис. 3.2.

Рис. 3.2

Шаг 2. Рассмотрим ФЗ №2. По правилу 5 ее можно заменить на две ФЗ, избавившись от зависимости группы атрибутов (С, E) от одного атрибута (В). Получим диаграмму, показанную на рис. 3.3.

Рис. 3.3

Шаг 3. Рассмотрим ФЗ №1, №3 и №7. По правилу 4 ФЗ №3 избыточна, избавимся от нее. Полученная диаграмма показана на рис. 3.4.

Рис. 3.4

Шаг 4. Рассмотрим ФЗ №9 и №7. Ситуация аналогична шагу 1. Получим диаграмму, показанную на рис. 3.4.

Рис. 3.5

Шаг 5. Рассмотрим ФЗ №8, №4 и №5. Атрибут D транзитивно зависит от атрибута В, следовательно по правилу 3 ФЗ №5 избыточна и ее можно удалить. Получили минимальное покрытие (рис. 3.6).

Рис. 3.6

3.2Нормализация базы данных

Дано описание предметной области:

Учет оценок студентов. Для каждого студента ведется электронный журнал, в котором занесены данные о сдаче студентом всех лабораторных, домашних заданий, курсовых работ и семинарских занятий для каждого семестра. Студент обязательно обучается только в одной группе. О группе известен код специальности, по которой группа обучается. Один и тот же предмет может вестись у разных групп разными преподавателями (в том числе и один вид работ по предмету у разных групп может вестись разными преподавателями). Один предмет в разных семестрах у одной группы могут вести разные преподаватели. О преподавателях известно: фамилия преподавателя, должность и ученая степень. О дисциплине известно: наименование, семестры, в которых преподается, количество различных видов занятий для каждого семестра.

3.2.1Анализ предметной области

Описание функций базы данных

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

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

  3. Система управляет списками групп.

  4. Система управляет списком преподавателей с указанием должностей и ученых степеней.

  5. Система хранит информацию о видах занятий дисциплин.

Перечень и описание всех сущностей базы данных.

Из перечня функций базы данных составим перечень кандидатов на сущности.

  1. Оценки;

  2. Студенты;

  3. Виды занятия;

  4. Предметы;

  5. Семестры;

  6. Преподаватели;

  7. Группы;

  8. Должности;

  9. Ученые степени.

Размышляем.

  1. Оценки. Если это сущность, то какая информация об оценке, кроме значения оценки, нам известна (то есть какие атрибуты могут зависеть от оценки)? Внимание, мы говорим не о конкретной оценке студента Иванова по предмету Базы данных, а об абстрактной оценке отлично или хорошо, которую может получить любой студент по любому предмету. Поэтому это скорее всего атрибут.

  2. Студенты. Это сущность. О студенте нам известна некоторая информация: номер студенческого билета, ФИО. Эти атрибуты объединены в сущность.

  3. Виды занятия. Это сущность-справочник. Можно реализовать в виде множества, но здесь реализуем как сущность.

  4. Предметы. Это также сущность-справочник. О предметах известен набор информации, к тому же состав предметов может меняться.

  5. Семестры. Реализуем в виде множества. Количество и названия семестров не изменяются никогда – они в принципе константы, так зачем их хранить в базе данных? В дальнейшем реализуем программно в виде массива.

  6. Преподаватели. Это сущность-справочник. О преподавателе нам известна некоторая информация.

  7. Группы. Это сущность. Состав групп меняется, поэтому нельзя делать как список; с другой стороны о группе нам известна специальность этой группы, поэтому группа – это не атрибут.

  8. Должности. Перечень должностей в организации может меняться, должности могут переименовываться, упраздняться и могут появляться новые должности. Поэтому Должности – сущность-справочник.

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

Заметьте, что мы никак не выделили какой преподаватель какие занятия у какой группы ведет. Однако это является скорее не сущностью, а трехсторонней связью. В случае разбиения n-арных связей могут возникнуть некоторые трудности, поэтому пока будем считать "какой … какие … у кого" трехсторонней связью. Вообще, представляйте себе сущности как некоторые островки с однородной информацией, через которые можно протянуть мостики – связи.

Итак, выделили следующие сущности:

  1. Студенты;

  2. Виды занятия;

  3. Предметы;

  4. Преподаватели;

  5. Группы;

  6. Должности.

Перечень и описание всех атрибутов базы данных.

Таблица 3.1

Перечень атрибутов базы данных Учет оценок студентов

Имя атрибута

Описание

КодПреп

Уникальный код преподавателя

ФИОПреп

Фамилия, Имя, Отчество преподавателя

КодДолж

Должность преподавателя

НазвДолж

Наименование должности преподавателя

УчСт

Ученая степень преподавателя

НомГруппы

Название группы, например, ИВТ-11-00

КодСпец

Код специальности по классификатору, например, 2201

КодСтуд

Номер зачетной книжки студента

ФИОСтуд

Фамилия, Имя, Отчество студента

КодДисц

Уникальный код дисциплины

НазвДисц

Наименование дисциплины

КодВидЗан

Уникальный код вида занятия

НазвВидЗан

Наименование вида занятия, например, домашнее задание

Семестр

Номер семестра

Колво

Количество вида занятия определенной дисциплины за определенный семестр

НомерВидЗан

Номер определенного вида занятия, по которому студент получил оценку, например, Иванов получил оценку отл за 3-е домашнее задание по Базам данных

Оценка

Значение оценки