Тема 1. Функциональные зависимости атрибутов. Первичный ключ. Схема данных
Создание многотабличной базы данных в СУБД MS Access
1. Постановка задачи:учет результатов экзаменационных испытаний, которые показали студенты по дисциплинам учебного плана по семестрам. Требуется автоматизировать ввод, хранение и обработку накопленной информации.
На этапе проектирования базы данных определяется набор атрибутов, описывающий объекты и процессы предметной области. Набор функциональных зависимостей атрибутов определяет эксперт предметной области. Функциональные зависимости позволяют нормализовать получившееся отношение.
База данных ДЕКАНАТ – табличная реализация отношения
ИтогиСессии = {<КодДисциплины, НаимДисциплины, ЧислоАудЧасовВНеделю, Семестр, НомерЗачКнижки, ФИО, ДатаЭкзамена, ЧислоБаллов >},
В отношении ИтогиСессии определены функциональные зависимости атрибутов:
F: <КодДисциплины, НомерЗачКнижки, ДатаЭкзамена > ® ЧислоБаллов
КодДисциплины ® НаимДисциплины, ЧислоАудЧасовВНеделю, Семестр
НомерЗачКнижки ® ФИО, Группа
После приведения отношения ИтогиСессии к третьей нормальной форме исходное отношение преобразуется в многотабличное, функциональные зависимости атрибутов сохраняются. Нормализованное отношение включает таблицы-справочики Дисциплина и Студент и оперативную (операциональную) таблицу Сессия:
Дисциплина = {<КодДисциплины, НаимДисциплины, ЧислоАудЧасовВНеделю, Семестр>}
F: КодДисциплины ® НаимДисциплины, ЧислоАудЧасовВНеделю, Семестр
Студент = {<НомерЗачКнижки, ФИО, Группа>}
F: НомерЗачКнижки ® ФИО, Группа
Сессия ={<КодДисциплины, НомерЗачКнижки, ДатаЭкзамена, ЧислоБаллов>}
F: <КодДисциплины, НомерЗачКнижки, ДатаЭкзамена > ® ЧислоБаллов
2. Создать базу данных в СУБД ACCESS, для этого:
Вызвать MS ACCESS, выбрать команду MS Office. Затем выбрать опцию меню Создать Þ В диалоговом окне параметров файла определить местоположение и имя файла.
В нашем примере имя файла – ДЕКАНАТ, файл расположен на жестком диске D в каталоге Documents and Settings в папке Students. Выбрать команду Создать (рис. 1).
Расширение файла «.accdb» устанавливается автоматически.
Рис. 1. Создание новой базы данных
3. Многотабличная база данных ДЕКАНАТ состоит из трех связанных таблиц: Дисциплина,Студент и Сессия. Первичный ключ каждой таблицы определяют функциональные зависимости атрибутов, Основные этапыпроцесса создания каждой таблицы и определения схемы данных:
3.1. Создание таблицы Дисциплина.
3.1.1. Для создания таблицы перейти на линейке управления на закладку Создание, в группе Таблицы выбрать команду Таблица. Þ Выбрать режим Конструктор. Þ В открывшемся окне определить имя таблицы – Дисциплина. | ||
3.1.2. Определить имена полей таблицы, тип данных для каждого поля, в нижней части панели конструктора определить тип данных и свойства каждого поля (рис.2): КодДисциплины –– числовой, размер поля - целое, НаимДисциплины - текстовый, размер –30 символов, поле обязательное, ЧислоАудЧасовВНеделю – числовой, размер – длинное целое, Семестр – числовой, размер – байт. | Рис. 2. Таблица Дисциплина в режиме конструктора | |
3.1.3. В таблице Дисциплина первичный ключ состоит из одного атрибута (простой первичный ключ) – КодДисциплины.
Закрыть вкладку работы с таблицей Дисциплина, сохранить проведенные изменения.
3.2. Таблицу Студент создать по такой же схеме (рис. 2). Структура таблицы: НомЗачКнижки - текстовый, длина 15 символов, ФИО- текстовый, размер – 30 символов, поле обязательное, Группа–текстовый, размер 5 символов. Атрибут НомЗачКнижки является первичным ключом таблицы Студент. Закрыть вкладку работы с таблицей Студент, сохранить проведенные изменения. | Рис. 3. Таблица Студент в режиме конструктора |
3.3. Создать таблицу Сессия.
3.3.1. Структура таблицы:
КодДисциплины – тип поля – числовой, размер поля - целое,
НомЗачКнижки – тип поля – текстовый, длина 15 символов,
ДатаЭкзамена - тип поля - дата/время, формат поля -краткий формат даты, поле обязательное, ЧислоБаллов – тип поля – числовой, размер поля – одинарное с плавающей точкой, число десятичных знаков – 1.
3.3.2. В таблице Сессия первичный ключ состоит из трех атрибутов (составной первичный ключ): КодДисциплины, НомЗачКнижки, ДатаЭкзамена.
Для определения ключевых атрибутов выделить строки структуры с атрибутами КодДисциплины, НомЗачКнижки, ДатаЭкзамена, затем выбрать команду Ключевое поле на линейке управления не закладке Конструктор в группе Сервис (рис.4).
3.3.3. Закрыть вкладку работы с таблицей Студент, сохранить проведенные изменения.
Рис. 4. Команда определения ключевого поля таблицы
4. Для упрощения ввода данных в таблицу Сессия определить для атрибутов КодДисциплиныиНомЗачКнижкиавтоподстановку значений. Открыть таблицу Сессияв режиме Конструктора.
Рис. 5. Вызов Мастера подстановок для поля КодДисциплины
4.1. Для поля КодДисциплины в колонке Тип данных выбрать значение Мастер подстановок… (рис. 5). Выбрать параметр ¤ Объект «столбец подстановки» будет использовать значения из таблицы или запроса. Þ Далее Þ Выбрать таблицу Дисциплина Þ Далее Þ
Клавиша на предложенной панели ">" формирует список выбранных полей. Из списка полей таблицы Дисциплина выбрать поля КодДисциплины, НаименованиеДисциплины и Семестр. Þ
Далее Þ Далее Þ þСкрыть ключевой столбец Þ Далее Þ Готово.
В диалоговом окне Создание подстановки на вопрос: «Перед созданием связи необходимо сохранить таблицу. Выполнить это сейчас?» ответить Да.
4.2. Для поля НомЗачКнижки таблицы Сессия установить автоподстановку значений по таблице Студент:
Для поля НомЗачКнижки в колонке Тип данных выбрать значение Мастер подстановок… Þ Выбрать параметр
¤ Объект «столбец подстановки» будет использовать значения из таблицы или запроса. Þ
Далее Þ Выбрать таблицу Студент. Þ Далее Þ
Из списка предложенных полей выбрать поля НомЗачКнижки, ФИО и Группа.Þ