- •Проектирование баз данных
- •Введение
- •1Задание и требования к типовому расчету
- •1.1Задание
- •1.2График выполнения
- •1.3Содержание пояснительной записки
- •1.4Защита типового расчета
- •2Теоретические сведения
- •2.1Термины и определения
- •2.2Теория нормальных форм
- •2.3Нормализация базы данных методом декомпозиции
- •2.4Проверка декомпозиции методом табло
- •2.5Нормализация базы данных с использованием модели er-диаграмм
- •2.6Основы реляционной алгебры.
- •3Пример выполнения типового расчета (с методическими указаниями и рекомендациями)
- •3.1Построить диаграмму функциональных зависимостей и найти минимальное покрытие отношения
- •3.2Нормализация базы данных
- •3.2.1Анализ предметной области
- •3.2.2Нормализация базы данных методом декомпозиции.
- •3.2.3Проверка нормализации методом табло.
- •3.2.4Нормализация базы данных с использованием модели er-диаграмм.
- •3.3Реляционная алгебра
- •Приложение а. Варианты заданий.
- •Приложение б. Титульный лист
- •Пояснительная записка к типовому расчету
- •Приложение в. Типовые вопросы для защиты
- •Приложение г. Заполненная база данных Учебный процесс
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Анализ предметной области
Описание функций базы данных
Система должна регистрировать и хранить оценки студентов по различным видам занятий предметов текущего и пройденных семестров.
Система должна регистрировать и хранить информацию о том, какой преподаватель ведет какие виды занятий по различным предметам у каких групп.
Система управляет списками групп.
Система управляет списком преподавателей с указанием должностей и ученых степеней.
Система хранит информацию о видах занятий дисциплин.
Перечень и описание всех сущностей базы данных.
Из перечня функций базы данных составим перечень кандидатов на сущности.
Оценки;
Студенты;
Виды занятия;
Предметы;
Семестры;
Преподаватели;
Группы;
Должности;
Ученые степени.
Размышляем.
Оценки. Если это сущность, то какая информация об оценке, кроме значения оценки, нам известна (то есть какие атрибуты могут зависеть от оценки)? Внимание, мы говорим не о конкретной оценке студента Иванова по предмету Базы данных, а об абстрактной оценке отлично или хорошо, которую может получить любой студент по любому предмету. Поэтому это скорее всего атрибут.
Студенты. Это сущность. О студенте нам известна некоторая информация: номер студенческого билета, ФИО. Эти атрибуты объединены в сущность.
Виды занятия. Это сущность-справочник. Можно реализовать в виде множества, но здесь реализуем как сущность.
Предметы. Это также сущность-справочник. О предметах известен набор информации, к тому же состав предметов может меняться.
Семестры. Реализуем в виде множества. Количество и названия семестров не изменяются никогда – они в принципе константы, так зачем их хранить в базе данных? В дальнейшем реализуем программно в виде массива.
Преподаватели. Это сущность-справочник. О преподавателе нам известна некоторая информация.
Группы. Это сущность. Состав групп меняется, поэтому нельзя делать как список; с другой стороны о группе нам известна специальность этой группы, поэтому группа – это не атрибут.
Должности. Перечень должностей в организации может меняться, должности могут переименовываться, упраздняться и могут появляться новые должности. Поэтому Должности – сущность-справочник.
Ученые степени. Ученые степени не меняются, их состав всегда постоянен, поэтому целесообразнее будет сделать ученую степень просто атрибутом сущности Преподаватели. Программно множество ученых степеней реализуем в виде массива-списка.
Заметьте, что мы никак не выделили какой преподаватель какие занятия у какой группы ведет. Однако это является скорее не сущностью, а трехсторонней связью. В случае разбиения n-арных связей могут возникнуть некоторые трудности, поэтому пока будем считать "какой … какие … у кого" трехсторонней связью. Вообще, представляйте себе сущности как некоторые островки с однородной информацией, через которые можно протянуть мостики – связи.
Итак, выделили следующие сущности:
Студенты;
Виды занятия;
Предметы;
Преподаватели;
Группы;
Должности.
Перечень и описание всех атрибутов базы данных.
Таблица 3.1
Перечень атрибутов базы данных Учет оценок студентов
№ |
Имя атрибута |
Описание |
|
КодПреп |
Уникальный код преподавателя |
|
ФИОПреп |
Фамилия, Имя, Отчество преподавателя |
|
КодДолж |
Должность преподавателя |
|
НазвДолж |
Наименование должности преподавателя |
|
УчСт |
Ученая степень преподавателя |
|
НомГруппы |
Название группы, например, ИВТ-11-00 |
|
КодСпец |
Код специальности по классификатору, например, 2201 |
|
КодСтуд |
Номер зачетной книжки студента |
|
ФИОСтуд |
Фамилия, Имя, Отчество студента |
|
КодДисц |
Уникальный код дисциплины |
|
НазвДисц |
Наименование дисциплины |
|
КодВидЗан |
Уникальный код вида занятия |
|
НазвВидЗан |
Наименование вида занятия, например, домашнее задание |
|
Семестр |
Номер семестра |
|
Колво |
Количество вида занятия определенной дисциплины за определенный семестр |
|
НомерВидЗан |
Номер определенного вида занятия, по которому студент получил оценку, например, Иванов получил оценку отл за 3-е домашнее задание по Базам данных |
|
Оценка |
Значение оценки |