Спроектируйте бд для информационной системы наша школа

Рассмотрим на конкретном примере методику проектирования многотабличной базы данных. Для этого снова вернемся к задаче моделирования работы с информацией, выполняемой приемной комиссией при поступлении абитуриентов в университет (см. § 3).

Табличная форма модели данных

В § 3 была построена модель данных, состоящая из трех взаимосвязанных таблиц. Воспроизведем ее еще раз.

Эти три таблицы можно рассматривать как модель данных в реляционной СУБД. Но работать с БД в таком виде неудобно. Помимо того что реляционная БД должна состоять из таблиц, к ней предъявляется еще ряд требований.

Одним из главных требований является требование отсутствия избыточности (или минимизация избыточности) данных. Избыточность приводит к лишнему расходу памяти. Память нужно экономить. Это не только увеличивает информационную плотность базы данных, но и сокращает время поиска и обработки данных.

Очевидный недостаток описанных таблиц — многократное повторение длинных значений полей в разных записях. Например, название специальности «Радиофизика и электроника» будет повторяться в 100 записях для 100 абитуриентов, которые на нее поступают. Проще сделать так. В таблице СПЕЦИАЛЬНОСТИ для каждой специальности ввести свой короткий код. Тогда полное название запишется в БД только один раз, а в анкетах абитуриентов будет указываться только код. Точно так же можно закодировать названия факультетов.

Внесем изменения в таблицы ФАКУЛЬТЕТЫ и СПЕЦИАЛЬНОСТИ.

Здесь предполагаются два упрощающих допущения: пусть на разных специальностях одного факультета сдаются одни и те же экзамены, а число экзаменов на всех факультетах равно трем (это вполне разумно).

Очень неудобной для работы является таблица АБИТУРИЕНТЫ. В ней слишком много полей. В частности, такую таблицу неудобно будет просматривать на экране, легко запутаться в полях.

Поступим следующим образом. Разделим «большую» таблицу АБИТУРИЕНТЫ на четыре таблицы поменьше:

С такими таблицами работать гораздо проще. На разных этапах работы приемной комиссии каждая из этих таблиц будет иметь самостоятельное значение.

Таблица АНКЕТЫ содержит анкетные данные, не влияющие на зачисление абитуриента в вуз. В таблице АБИТУРИЕНТЫ содержатся сведения, определяющие, куда поступает абитуриент, а также данные, которые могут повлиять на его зачисление (предположим, что это может быть производственный стаж и наличие медали). Таблица ОЦЕНКИ — это ведомость, которая будет заполняться для всех абитуриентов в процессе приема экзаменов. Таблица ИТОГИ будет содержать результаты зачисления всех абитуриентов.

Отношения и связи

Каждая из спроектированных выше таблиц будет представлена в БД отдельным отношением. Опишем все их в строчной форме, дав в некоторых случаях полям сокращенные имена и подчеркнув главные ключи.

Чтобы эти шесть таблиц представляли собой систему, между ними должны быть установлены связи.

Фактически связи уже имеются через общие имена полей. Первые два отношения связаны между собой кодом факультета, второе и третье — кодом специальности, а четыре последних — регистрационным номером. Связи позволяют определить соответствия между любыми данными в этих таблицах, например между фамилией некоторого абитуриента и его оценкой по математике; между названием города и результатами экзамена по русскому языку выпускников школ этого города и пр. Благодаря этим связям возможно получение ответов на запросы, требующие поиска информации в нескольких таблицах одновременно.

Схема базы данных

Для явного указания связей между таблицами должна быть построена схема базы данных. В схеме указывается наличие связей между таблицами и типы связей. Схема для нашей системы представлена на рис. 1.11.

Рис. 1.11. Схема базы данных

В схеме использованы два типа связей: один к одному и один ко многим. Первый обозначен двунаправленной одинарной стрелкой, второй — одинарной стрелкой в одну сторону и двойной в другую. При связи «один к одному» с одной записью в таблице связана одна запись в другой таблице. Например, одна запись об абитуриенте связана с одним списком оценок. При наличии связи «один ко многим» одна запись в некоторой таблице связана с множеством записей в другой таблице. Например, с одним факультетом связано множество специальностей, а с одной специальностью — множество абитуриентов, поступающих на эту специальность.

Связь «один ко многим» — это связь между двумя соседними уровнями иерархической структуры. А таблицы, связанные отношениями «один к одному», находятся на одном уровне иерархии. В принципе все они могут быть объединены в одну таблицу, поскольку главный ключ у них один — РЕГ_НОМ. Но чем это неудобно, было объяснено выше.

Что такое целостность данных

СУБД поддерживает организацию связей между таблицами БД, обеспечивающую одно важное свойство базы данных, которое называется целостностью данных.

Система не допустит, чтобы одноименные поля в разных связанных между собой таблицах имели разные значения. Согласно этому принципу, будет автоматически контролироваться ввод данных. В связанных таблицах может быть установлен режим каскадной замены: если в одной из таблиц изменяется значение поля, по которому установлена связь, то в других таблицах одноименные поля автоматически изменят свои значения. Аналогично действует режим каскадного удаления: достаточно удалить запись из одной таблицы, чтобы связанные записи исчезли из всех остальных таблиц. Это естественно, поскольку, например, если закрывается какой-то факультет, то исчезают и все его специальности. Или если у абитуриента изменяют регистрационный номер в таблице АБИТУРИЕНТЫ, то автоматически номер должен обновиться и в других таблицах.

Читайте также:  Установка windows на macbook с флешки

На этом проектирование базы данных завершается. Это был теоретический этап. Практическая работа по созданию базы данных будет проходить в рамках компьютерного практикума.

Система основных понятий

Вопросы и задания

  1. а) Перечислите задачи, которые должна решать проектируемая информационная система «Приемная комиссия».

б) Какие информационные процессы происходят на различных этапах приемной кампании в вузе?

в) Какая информация добавляется к базе данных на каждом этапе?
а) В чем заключается построение модели данных?

б) Что означает свойство целостности БД?

в) Какие данные следует добавить в БД приемной комиссии, если требуется учитывать преподавателей, принимающих экзамены, и деление абитуриентов на экзаменационные группы?

г) Какие данные следует добавить в БД приемной комиссии, если дополнительно к требованиям предыдущего задания нужно учитывать расписание экзаменов, т. е. сведения о том, где, когда и какому преподавателю сдает экзамен данная группа?

д) Постройте схему БД с учетом выполнения заданий 2, в и 2, г.
а) При проектировании БД были определены следующие отношения:

МАГАЗИН(НОМЕР_МАГ, ТИП, АДРЕС, ДИРЕКТОР, ТЕЛЕФОН)

ОТДЕЛ(НАЗВАНИЕ_ОТД. ЗАВЕДУЮЩИЙ , ТЕЛЕФОН)

ПРОДАВЕЦ(ТАБЕЛЬНЫЙ_НОМ. ФАМИЛИЯ, ИМЯ, ОТЧЕСТВО, КАТЕГОРИЯ)

Являются ли эти отношения связанными? Добавьте всё, что необходимо для их связи; изобразите схему БД в графическом виде.

б) Спроектируйте базу данных для информационной системы «Наша школа», содержащей сведения об учителях, учениках, классах, изучаемых предметах. Замечание: данное задание носит творческий характер и может быть выполнено во многих вариантах. Устройте конкурс на лучшее решение этой задачи.

Спроектировать базу данных, построить программу, обеспечивающую взаимодействие с ней в режиме диалога, для завуча школы.
Для каждого учителя в БД должны храниться сведения о предметах, которые он преподает, номере кабинета, который за ним закреплен, номерах классов, в которых он ведет занятия, номере урока и дне, когда он ведет уроки. Существуют учителя, которые не имеют собственного кабинета. Об учениках должны храниться следующие сведения: фамилия и имя, в каком классе учится, какая оценка по каждому предмету получена. Ученик может исправить полученную оценку. Завуч может добавить информацию о новом учителе или ученике, а также удалить о выбывших. Завучу могут потребоваться следующие сведения:
• какой предмет будет в заданном классе, например, во вторник на заданном уроке;
• кто из учителей преподает в заданном классе;
• в каком кабинете будет 5-й урок в среду у некоторого класса;
• в каких классах преподает определенный учитель заданный предмет;
• расписание на заданный день недели для класса.

Завуч может вносить следующие изменения:
• ввести информацию о новом учителе;
• удалить запись об ученике;
• изменить оценку ученику.

Необходимо предусмотреть возможность выдачи справки о количестве учеников, в данном классе и отчета о работе школы (количество учителей по предметам, количество кабинетов, исло учеников в каждом классе, число учащихся на 2, 4-5, 5 по классам и по школе).

Цель практических заданий – приобретение навыков анализа предметной области, проектирования базы данных, ее физической реализации в СУБД Access.
Результат выполнения работы представляется в виде файла БД Access, который должен содержать:
• спроектированные таблицы,
• схему данных со связями между таблицами,
• формы, обеспечивающих интерфейс пользователя,
• запросы,
• отчеты,
• главную кнопочную форму.

Таблица «Ученики» — База данных Access Школа

Таблица «Предметы» — База данных Access Школа

Запрос «Расписание на определенный день» — База данных Access Школа

Запрос «Учителя в классе» — База данных Access Школа

Отчет «Кол-во учеников в школе»

Отчет «Кол-во учеников по оценкам»

Главная кнопочная форма

Готовая база данных Access Школа доступна для скачивания по ссылке ниже.

Скачать базу данных (БД) MS Access; База данных Access Школа; база данных access; бд access; субд access; базы данных access; access пример; программирование access; готовая база данных; создание база данных; база данных СУБД; access курсовая; база данных пример; программа access; access описание; access реферат; access запросы; access примеры; скачать бд access; объекты access; бд в access; скачать субд access; база данных ms access; субд access реферат; субд ms access; преимущества access; базу данных; скачать базу данных на access; базы данных; реляционная база данных; системы управления базами данных; курсовая база данных; скачать базу данных; база данных access скачать; базы данных access скачать; ученики; успеваемость

1. Проектирование БД «Школа»

1.1 Проектирование модели реальной БД на примере создания

Мы будем создавать работающую БД со всеми основными объектами: таблицами, формами, запросами и отчетами, используя всем нам хорошо знакомую предметную область – школу. Школа – это сложная структура со множеством объектов. Перечислим эти объекты: ученики, учителя, классы, администрация, изучаемые предметы, оценки по этим предметам, библиотека, столовая, кружки, родительский комитет, зарплата учителей, школьная мебель и оборудование, ремонт помещений и т. п. и т. д. Создать БД, которая бы полностью охватывала бы все эти объекты и взаимосвязи между ними, мы никак не успеем в рамках тех часов, которые выделены нам на изучение этой темы. Поэтому выделим только самые основные и хорошо знакомые ученикам.

Читайте также:  Canon canoscan 4400f драйвер

1 – 4 : Основные объекты БД

5 – 8 : Объекты, с помощью которых осуществляется связь основных объектов друг с другом:

5 – 6 : Связи между объектами, которые реализуются с помощью дополнительных таблиц,

7 – 8 : Связи между объектами, которые реализуются с помощью прямых связей между таблицами.

На рис.1.1 стрелки, соединяющие объекты БД, помечены значками 1 и ¥. Это означает вид связи один-ко-многим. Например, в одном классе учатся много учеников или, один ученик получает много оценок.

Отношение многие-ко-многим (¥ и ¥) может применяться в такой ситуации: один и тот же учитель читает в разных классах и один и тот же предмет читают разные учителя. Например, на английский язык класс делиться на группы и в этих группах работают разные учителя или математику в разных классах читают разные учителя и т. п. А связь один-к-одному обозначает точное совпадение количества записей в таблицах.

1.2 Разработка структуры таблиц и типов полей в БД «Школа»

Мастер подстановки из таблицы Учителя.

Мастер подстановки из таблицы Класс

Мастер подстановки из таблицы Учителя

Мастер подстановки из таблицы Предмет

Мастер подстановки из таблицы Класс

Мастер подстановки из таблицы Ученики

Мастер подстановки из таблицы Предмет

Мастер подстановки на основе фиксированного набора данных

Мастер подстановки на основе фиксированного набора данных

1.3 Допустимые данные для таблиц БД «Школа»

Хотя мы и так довольно сильно сократили количество объектов в нашей БД «Школа», но если мы будем вносить в таблицы реальное количество классов в школе (10-40), учеников в них (30), изучаемых предметов и учителей, читающих эти предметы, то наша БД станет очень большой и все время придется потратить только на ввод данных в нее. Поэтому мы и здесь сократим свою работу до минимума.

В нашей школе будет 3 класса: 11-А, 11-Б и 11-В (в вашей могут быть совершенно другие классы, например, 5-Ё). В каждом классе учится по 5 учеников, в школе работает 6 учителей (3 классных руководителя и 3 учителя-предметника) и дети изучают в каждом классе по 5 предметов. Один и тот же предмет в разных классах могут вести разные учителя и один и тот же учитель может читать разные предметы.

Для того чтобы мы знали, какие конкретно данные вводить в таблицы БД, составим списки предметов (табл. 1.2), которые будут читаться в разных классах (у нас обучение профильное и в разных классах читаются разные предметы, а у вас это могут быть просто разные классы – 5, 7, 10)

класс с углубленным изучением химии

класс с углубленным изучением физики

1.4 Создание таблиц БД «Школа» и связей между ними

Откроем программу Ms ACCESS, выберем место на диске, где будет храниться наша БД, назовем ее Школа.mdb и приступим к созданию таблиц.

Сначала будем создавать таблицы, при построении которых не используется Мастер подстановки (табл.1.1). Это таблицы Учителя и Предмет.

В главном окне БД выбираем Создание таблицы в режиме конструктора (рис.1.2) и делаем такие поля для таблицы Учителя (рис.1.3):

Поле №_учителя делаем ключевым – выделяем его и нажимаем кнопку Ключевое поле на панели инструментов (ПИ). Значения для этого поля вводятся автоматически при заполнении таблицы и не повторяются, даже если какая-то запись будет удалена.

Тип поля Класное_руководство устанавливаем Логический, значение – «Да» или «Нет». При вводе данных достаточно поставить галочку в этом поле.

Для того, чтобы избежать «необъяснимых» ошибок при создании запросов и отчетов, в имени полей нельзя использовать пробел, его лучше заменить знаком подчеркивания «_».

Таблицу Учителя можно сразу и заполнить данными, чтобы продемонстрировать потом работу Мастера подстановки. Переходим из режима конструктора в режим таблицы и вносим данные (рис.1.4):

Аналогично создаем таблицу Предмет (рис.1.5 и 1.6). Названия предметов берем из таблицы 1.2.

Теперь создадим таблицу Класс. Тоже в главном окне БД выбираем Создание таблицы в режиме конструктора и делаем такие поля (Рис.1.7):

Что такое Мастер подстановки? Это очень полезная возможность, которая используется для того, чтобы брать уже готовые данные из таблицы-источника и одним щелчком мыши вводить их в данную таблицу. Это позволяет, во-первых, значительно ускорить заполнение таблиц данными, а во-вторых, избежать ошибок и опечаток.

Например, при вводе названия класса можно написать: 11А, 11-А, 11 а и т. п. Для нас это все один и тот же 11-А класс, а для БД – это различные данные. Чтобы избежать такого разночтения и используется Мастер подстановки.

1. В списке типов полей выбираем Мастер подстановки (рис.1.7)

2. В появившемся окне переключатель устанавливаем в позицию Объект «столбец подстановки» будет использовать значения из таблицы или запроса. (рис.1.8)

3. В окне (рис.1.9) выбираем таблицу, из которой будем брать данные. Сейчас это таблица – Учителя.

4. В следующем окне выбираем поля для подстановки. Для того, чтобы нам в дальнейшем было удобно заполнять базу данными, выберем ключевой столбец и столбец с фамилией учителя.

Здесь еще можно выбрать столбец Классное_руководство, чтобы было сразу видно, кто из учителей является классным руководителем, чтобы учителю-предметнику не «навязать» еще и классное руководство! Программа ACCESS будет сохранять в таблице Класс номер учителя, а на экран при работе с этой таблицей выведет фамилию.

Читайте также:  Алиэкспресс на русском подушки

5. На рис. 1.10 видно, как будет выглядеть наш столбец подстановки:

6. Нажимаем кнопку Готово, переходим в режим таблицы и смотрим, как это работает (рис.1.11 и 1.12):

Теперь сформируем и остальные таблицы. Данные в них можно внести и после того, как создадим все таблицы.

Таблица Ученики. Для облегчения дальнейшего ввода данных в нее, в полях Дата_рождения и Телефон применим шаблоны – формат поля и маску ввода (см. Приложение на стр.47) (Рис. 1.13 и 1.14):

Вот готовая таблица Ученики (рис.1.15):

Теперь займемся таблицей Преподает. Эта таблица не содержит ключевого поля и все значения в ней определяются Мастером подстановки для полей №_учителя, №_предмета и Класс (табл.1.1). Вот заполненная таблица Преподает с сортировкой данных по классам (рис.1.16) и по учителям (рис.1.17):

Теперь приступим к самой большой таблице – Получает. Эта таблица должна содержать такое количество записей:

225=количество учеников * количество предметов в классе * количество периодов обучения

Период обучения – 1 семестр, 2 семестр, год. Таким образом, в нашей БД будут находиться только семестровые и годовые оценки учеников по всем предметам.

Поля №_ученика и №_предмета формируются с помощью Мастера подстановки так же, как и в предыдущих таблицах. А вот для полей Период и Оценки, мы создадим фиксированные наборы данных:

1. В столбце Тип данных Конструктора таблицы выбираем Мастер подстановки.

2. В открывшемся окне (рис. 1.18) переключатель устанавливаем возле «Будет введен фиксированный набор значений»

3. В следующем окне (рис.1.19) заполняем нужные нам данные. И получим «внутренний» для этой таблицы столбец подстановки.

Аналогично можно поступить и с полем Оценки. Обратите внимание, что в демонстрационной БД, которую Вы получили вместе с этой книгой используется 5-ти бальная система оценок. Учителям в Украине оценки нужно поменять на 12-ти бальную систему.

Когда начнем вводить информацию в таблицу, то в поле Период возникнет раскрывающийся список с периодами обучения (рис.1.20):

При заполнении этой таблицы нужно сверяться с данными в таблице 1.2, чтобы выставлять детям оценки по тем предметам, которые читаются у них в классе, иначе мы не сможем создать потом корректные запросы.

А вот пример заполненной таблицы для первого ученика (рис.1.21):

Еще 15 раз по столько – и золотой ключик у вас в кармане!

🙂 – Дети, если вы не будете хорошо учиться, то вам всю жизнь придется заполнять БД!

На самом первом этапе работы над БД «Школа» нужно просто создать эти таблицы. Заполнять данные лучше после того, как установлены и настроены все связи в таблицах.

1.5 Схема данных БД «Школа»

Перейдем в главное окно БД и в ПИ нажмем кнопку Схема данных . Появится соответствующее окно (рис.1.22). Если в процессе создания таблиц мы использовали Мастер подстановки, то Ms ACCESS самостоятельно установит нужные связи между полями в таблицах. Расположение таблиц в окне может быть другое. Вы можете для удобства сравнения с рисунком перетащить их, ухватившись за заголовок таблицы. Если на вашей схеме появилось меньше 6 таблиц, то недостающие таблицы нужно добавить. Нажмите правую кнопку мыши внутри окна схемы данных и выберите команду Добавить. Если же у вас появились лишние таблицы с именами Класс1 или Преподает3, то их нужно удалить, т. к. они не дадут нам построить запросы. Для удаления лишней таблицы, нужно сначала удалить связи, которые у нее есть с другими таблицами. Нажимаем правую кнопку мыши на линии связи и выбираем команду Удалить. Если же между таблицами нет линий связи, то вы не использовали мастер подстановки. Связи можно установить и в окне Схема данных. Выделаем нужное поле в нужной таблице и перетягиваем его на другую таблицу.

Теперь изменим свойства связей в БД. Посмотрим на рис.1.1. Там на стрелках стоят значки 1 и ¥. Такие же значки нужно установить и в схеме данных.

1. На каждой линии связи нажимаем правую кнопку мыши и выбираем команду Изменить связь (рис.1.23)

2. В появившемся окне (рис.1.24) ставим флажок Обеспечение целостности данных и жмем ОК.

3. Получаем результат (рис.1.25) – в одном классе учиться много учеников.

Та таблица, возле которой стоит 1, считается главной, т. к. она связывается по ключевому полю, которое в ней не повторяется. Таблица со знаком ¥ называется подчиненной. В главной таблице мы не можем удалить запись, пока в подчиненной таблице есть хоть одна запись с таким значением.

Аналогичным образом устанавливаем все свойства связей между таблицами, кроме связи Учитель – Класс. Хотя в одном классе может быть только один классный руководитель, и один учитель может быть классным руководителем тоже только в одном классе, этот тип связи между таблицам Учитель и Класс мы установить не можем, т. к. есть еще и учителя-предметники. Поэтому не может быть совпадения количества записей в таблицах Класс и Учитель.

В результате должна получиться такая картинка (рис.1.26):

Всю основную работу по проектированию и созданию таблиц БД «Школа» мы сделали, а заполнять таблицы можно по мере наличия свободного времени!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *