- •Проектирование баз данных
 - •Введение
 - •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-е домашнее задание по Базам данных  | 
	
| 
			 | 
		Оценка  | 
		Значение оценки  | 
	
