Проектирование модели реальной БД на примере создания БД «Школа».
Мы будем создавать работающую БД со всеми основными объектами: таблицами, формами, запросами и отчетами, используя всем нам хорошо знакомую предметную область – школу. Школа – это сложная структура со множеством объектов. Перечислим эти объекты: ученики, учителя, классы, администрация, изучаемые предметы, оценки по этим предметам, библиотека, столовая, кружки, родительский комитет, зарплата учителей, школьная мебель и оборудование, ремонт помещений и т. п. и т. д. Создать БД, которая бы полностью охватывала бы все эти объекты и взаимосвязи между ними, мы никак не успеем в рамках тех часов, которые выделены нам на изучение этой темы. Поэтому выделим только самые основные и хорошо знакомые ученикам.
Основные объекты:
1. Ученики.
2. Учителя.
3. Классы.
4. Предметы.
Логическая структура:
1 – 4 : Основные объекты БД
5 – 8 : Объекты, с помощью которых осуществляется связь основных объектов друг с другом:
5 – 6 : Связи между объектами, которые реализуются с помощью дополнительных таблиц,
7 – 8 : Связи между объектами, которые реализуются с помощью прямых связей между таблицами.
На рис.1.1 стрелки, соединяющие объекты БД, помечены значками 1 и ¥. Это означает вид связи один-ко-многим. Например, в одном классе учатся много учеников или, один ученик получает много оценок.
Отношение многие-ко-многим (¥ и ¥) может применяться в такой ситуации: один и тот же учитель читает в разных классах и один и тот же предмет читают разные учителя. Например, на английский язык класс делиться на группы и в этих группах работают разные учителя или математику в разных классах читают разные учителя и т. п. А связь один-к-одному обозначает точное совпадение количества записей в таблицах.
Разработка структуры таблиц и типов полей в БД «Школа».
Таблица
Имя поля
Тип данных
Примечание
Учителя
№_учителя
Счетчик
Ключевое поле
Фамилия
Текстовый
Имя
Текстовый
Отчество
Текстовый
Классное_ руководство
Логический
Класс
Название_КЛ
Текстовый
Ключевое поле
№_учителя
Числовой
Мастер подстановки из таблицы Учителя.
Ученики
№_ученика
Счетчик
Ключевое поле
Фамилия
Текстовый
Имя
Текстовый
Отчество
Текстовый
Класс
Текстовый
Мастер подстановки из таблицы Класс
Дата_рождения
Дата – время
Адрес
Текстовый
Телефон
Текстовый
Маска ввода
Предмет
№_предмета
Счетчик
Ключевое поле
Название
Текстовый
Преподает
№_учителя
Числовой
Мастер подстановки из таблицы Учителя
№_предмета
Числовой
Мастер подстановки из таблицы Предмет
Класс
Текстовый
Мастер подстановки из таблицы Класс
Получает
№_ученика
Числовой
Мастер подстановки из таблицы Ученики
№_предмета
Числовой
Мастер подстановки из таблицы Предмет
Период
Текстовый
Мастер подстановки на основе фиксированного набора данных
Оценка
Числовой
Мастер подстановки на основе фиксированного набора данных
Табл. 1.1
Допустимые данные для таблиц БД «Школа»
Хотя мы и так довольно сильно сократили количество объектов в нашей БД «Школа», но если мы будем вносить в таблицы реальное количество классов в школе (10-40), учеников в них (30), изучаемых предметов и учителей, читающих эти предметы, то наша БД станет очень большой и все время придется потратить только на ввод данных в нее. Поэтому мы и здесь сократим свою работу до минимума.
В нашей школе будет 3 класса: 11-А, 11-Б и 11-В (в вашей могут быть совершенно другие классы, например, 5-Ё). В каждом классе учится по 5 учеников, в школе работает 6 учителей (3 классных руководителя и 3 учителя-предметника) и дети изучают в каждом классе по 5 предметов. Один и тот же предмет в разных классах могут вести разные учителя и один и тот же учитель может читать разные предметы.
Для того чтобы мы знали, какие конкретно данные вводить в таблицы БД, составим списки предметов (табл. 1.2), которые будут читаться в разных классах (у нас обучение профильное и в разных классах читаются разные предметы, а у вас это могут быть просто разные классы – 5, 7, 10)