Краткие теоретические сведения
Реляционная структура базы данных базируется на аппарате реляционной алгебры. Основными понятиями реляционной базы данных (БД) являются:
- отношение (представляющее собой таблицу БД);
- кортеж (представляющий собой запись - строку таблицы БД);
- домен (представляющий собой поле - столбец таблицы БД).
Все обрабатываемые данные в БД организованы в таблицы, обладающие свойствами реляционных таблиц, и результатом любого манипулирования является таблица или совокупность таблиц.
Постановка задачи
Рассмотрим задачу, связанную с предоставлением студентам льгот по оплате обучения в коммерческом ВУЗе по результатам экзаменационной сессии. Допустим, что руководство института приняло решение материально поощрить студентов, добившихся высоких результатов в учёбе и успешно сдавших сессию, в форме предоставления им некоторых льгот по оплате за обучение. При этом было решено, что студентам, получившим в сессии все отличные оценки, предоставляется скидка 20% по оплате за обучение; студентам, получившим одну оценку «хорошо», а остальные «отлично», - 10%; студентам, получившим две оценки «хорошо», а остальные «отлично», - 5%. Контроль успеваемости студентов ведётся с помощью базы данных СТУДЕНТ. Используя эту базу данных, необходимо определить по результатам сдачи экзаменационной сессии списки студентов, имеющих право на указанные льготы по каждой категории и подготовить проект соответствующего приказа ректора.
Данные организованы в три таблицы: СТУДЕНТ, СЕССИЯ, СКИДКА ОПЛАТЫ. В ранее созданной таблице СТУДЕНТ содержатся необходимые сведения о каждом студенте. Таблица СЕССИЯ содержит сведения о результатах сдачи студентами пяти экзаменов: номер студенческого билета (и зачётной книжки), оценку по информатике, оценку по математике, оценку по экономике, оценку по философии, оценку по иностранному языку и итоговый результат сдачи сессии. Таблица СКИДКА ОПЛАТЫопределяет условия предоставления студентам льгот по оплате за обучение в ВУЗе.
Построение информационно-логической модели
При проектировании БД целесообразно строить информационно-логическую модель предметной области, которая определяет совокупность информационных объектов, их атрибутов и структурных связей.
Информационный объект - это формализованное отображение объекта реального мира, в качестве которого могут выступать реально существующие объекты, процессы, понятия.
Информационный объект должен обладать следующими свойствами: иметь имя, уникальный идентификатор, состав атрибутов, количество экземпляров. В качестве идентификатора используется один или несколько атрибутов, называемых ключом. Ключи позволяют определить связи между объектами.
Применительно к решаемой задаче можно выделить следующие информационные объекты (в скобках указаны их атрибуты (поля таблиц), подчёркнутый атрибут является ключом):
СТУДЕНТ (Номер, Фамилия, Имя, Отчество, Пол, Дата рождения, Группа, Место проживания, Тест при поступлении);
СЕССИЯ (Номер, Оценка-Информатика, Оценка-Математика, Оценка-Экономика, Оценка-Философия, Оценка-ИнЯз, Результат);
СКИДКА ОПЛАТЫ(Результат, Процент скидки).
В графическом виде информационно-логическая модель для решаемой задачи представлена на рис. 1.
1 1
1 ¥
Рис. 1. Информационно-логическая модель решаемой задачи
Связи между информационными объектами отображаются реальными отношениями. Определены следующие типы реальных отношений:
1) 1:1 (Один-к-одному), при котором одному экземпляру первого информационного объекта соответствует один экземпляр второго информационного объекта. Примером такого отношения в данной задаче может служить связь между информационными объектами
СТУДЕНТ СЕССИЯ
2) 1:М (Один-ко-многим), при котором одному экземпляру первого объекта соответствует множество экземпляров второго объекта, а каждому экземпляру второго объекта соответствует один экземпляр первого объекта. Примером такого отношения в данной задаче может служить связь между информационными объектами
СКИДКА ОПЛАТЫСЕССИЯ
3) М:М (Многие-ко-многим), при которых каждому экземпляру первого объекта соответствует множество экземпляров второго объекта, и каждому экземпляру второго объекта соответствует множество экземпляров первого объекта. Например, связь между информационными объектами СТУДЕНТ и ПРЕПОДАВАТЕЛЬ. В СУБД Access тип связи «Многие-ко-многим» не предусмотрен. В необходимых случаях такую связь всегда можно расщепить на две связи типа «Один-ко-многим», добавив дополнительную (перекрёстную) таблицу. В информационно-логической модели данной задачи связь «Многие-ко-многим» отсутствует.
Связи между объектами в реляционной базе данных не хранятся, а образуются в процессе манипулирования.
Связи между атрибутами (полями) реализуются объединением атрибутов в таблицу.
Таким образом, для решения данной задачи надо создать многотабличную (реляционную) базу данных. СУБД Access может обрабатывать данные различных таблиц базы данных, но для этого необходимо в каждой из этих таблиц создать ключ (определить ключевое поле), а затем установить связи между таблицами. Access создаёт индекс для ключевого поля таблицы и использует его для поиска записей и объединения таблиц в запросе. При создании ключевых полей важно помнить, что ключевое поле не может содержать пустых и повторяющихся значений.
Таблицу, в которой не определён ключ, нельзя использовать при установке связей, кроме того, поиск и сортировка в такой таблице выполняются медленнее.