access_2010_в_примерах (833831), страница 3
Текст из файла (страница 3)
преп.ассистентдоцентдоцентдоцентассистент01010101010202020203030303040404040405050506060606д-р техн. наукканд. фил. наукканд. ист. наукканд. ист. наукканд. ист. наукканд. фил. наук.канд. фил. наук.канд. фил. наук.канд. фил. наук.канд. пед. наукканд. фил. наукканд. фил. наукканд. фил.
наукТаблица B.5. Данные таблицы ПРЕДМЕТКод предмета Название предмета010203040506ИнформатикаМатематикаИсторияИностранный яз.ФилософияФизкультураВсего часов20020014020010010021ЛекцииПрактика Семестров801009004001201005020060100443422Таблица B.6. Данные таблицы ИЗУЧЕНИЕНомер группыКод предмета10110110110110110110110110110110210210210520120120220320401010202030304050506010104010102040105Таб. номер преподавателя101102201202301302401501502601101103401101102201403101503Вид занятийлекпрлекпрлекпрпрлекпрлеклекпрлеклекпрпрпрлекпрЧасы40605050482050505010010018010010018070100100100Таблица B.7. Данные таблицы УСПЕВАЕМОСТЬНомергруппы101101101101101101101101Номер студента0101020203030404Код предметаТаб.
номер преподавателя010301030103010310130210130210130210130222Вид занятийлекпрлекпрлекпрлекпрОценка50504030Урок 3. Логическая структура базы данныхЛогическая структура базы данных «Учебный процесс» приведена на рис.3.1.Она является адекватным отображением информационно-логической модели.Каждый информационный объект модели данных отображается соответствующей реляционной таблицей.Связи между объектами модели данных реализуются одинаковыми реквизитами – ключами связи в соответствующих таблицах.
При этом ключом связи всегда является уникальный ключ главной таблицы. Ключом связи в подчиненнойтаблице является либо некоторая часть уникального ключа в ней, либо поле, невходящее в состав первичного ключа (например, код кафедры в таблице ПРЕПОДАВАТЕЛЬ). Ключ связи в подчиненной таблице называется внешним ключом.На этой схеме прямоугольники отображают таблицы БД с полным списком ихполей, а связи показывают, по каким полям осуществляется взаимосвязь таблиц. Имена ключевых полей для наглядности выделены и находятся в верхнейчасти полного списка полей каждой таблицы.ПРЕМЕТГРУППАсвязьно НГНГКОЛПБАЛЛКПНПЧАСЫЛЕКПРсвязьпо НГКАФЕРАсвязь поККАФККАФНКАФТЕЛЗАВСТУДЕНТсвязьпо КПНГНСФИОГОДРАДРЕСПБАЛЛсвязь посоставномуключуПРЕПОДАВАТЕЛЬТАБНФИОСТЗВККАИЗУЧЕНИЕУСПЕВАМОСТЬНСНГКПТАБНВИДЗОЦЕНКАНГКПТАБНВИДЗсвязьпо ТАБНФЧАСЫсвязь посоставномуключуРис. 3.1.
Логическая структура реляционной базы данных “Учебныйпроцесс”23Включение таблиц в схему данныхРассмотрим процесс создания схемы данных в соответствии с логическойструктурой БД «Учебный процесс». При активном окне Учебный процесс: База данных нажмем на вкладку Работа с базами данных. В открывшемся менюнажмем Схема данных. Нажмем левой кнопкой мыши на свободном участке ивыберем Добавить таблицу, выберем вкладку Таблицы и, нажимая кнопкуДобавить, разместим в окне Схема данных все ранее созданные таблицы базыданных, которые отображены в окне Добавление таблицы. Затем нажмемкнопку Закрыть.
В результате в окне Схема данных будут представлены всетаблицы базы данных «Учебный процесс» со списками своих полей (см. рис.3.2).связь типа 1:М по составному ключуРис. 3.2. Схема данных БД «Учебный процесс»Определение связей между таблицами схемы данныхОпределение связей по простому ключу. Установим связь между таблицамиГРУППА и СТУДЕНТ по простому ключу НГ.Для этого в окне Схемы данных установим курсор мыши на ключевом полеНГ главной таблицы ГРУППА и перетащим его на поле НГ в подчиненной таблице СТУДЕНТ.
В открывшемся окне Изменение связей в строке Тип отно24шения установится значение один-ко-многим. Отметим параметр Обеспечение целостности данных. Если таблица ГРУППА и СТУДЕНТ ранее были заполнены корректными данными, между таблицами будет установлена связь,обозначенная на схеме как 1:∞. Это свидетельствует о регистрации связи типа1:М с параметром поддержания целостности. В противном случае появится сообщение о невозможности установить этот тип отношения.Для обеспечения автоматической корректировки данных во взаимосвязанныхтаблицах установим флажок каскадное обновление связанных полей и каскадное удаление связанных записей.Аналогичные действия выполняются для других пар таблиц КАФЕДРА →ПРЕПОДАВАТЕЛЬ (ключ ККАФ), ПРЕДМЕТ → ИЗУЧЕНИЕ (ключ КН),ПРЕПОДАВАТЕЛЬ → ИЗУЧЕНИЕ (ключ ТАБН), ГРУППА → ИЗУЧЕНИЕ(ключ НГ).Определение связей по составному ключу.
Определим связи между таблицами СТУДЕНТ → УСПЕВАЕМОСТЬ, которые связаны по составному ключуНГ+НС. Для этого в главной таблице СТУДЕНТ выделим оба этих поля, удерживая клавишу Ctrl. Перетащим оба поля на поле НГ в подчиненной таблицеУСПЕВАЕМОСТЬ.В окне Изменение связи (рис. 3.3) для ключевого поля НС главной таблицыТАБЛИЦА/ЗАПРОС выберем соответствующее поле подчиненной таблицаСВЯЗАННАЯ ТАБЛИЦА/ЗАПРОС. В этом же окне установим режимы Обеспечение целостности данных и другие параметры связи.Рис. 3.3.
Окно выбора параметров СвязиАналогично определяются связи между парой таблиц ИЗУЧЕНИЕ → УСПЕВАЕМОСТЬ (составной ключ связи – НГ+КП+ТАБН+ВИДЗ).25После определения связей таблицы могут перемещаться в пределах рабочегопространства окна схемы данных. Перемещения и изменения размеров таблицосуществляются принятыми в Windows способами. На рис.
3.2 показана схемаданных «Учебный процесс», где таблицы размещены в соответствии с их относительной подчиненностью.Проверка работоспособности схемы данных, поддержание целостности осуществляется при конструировании форм, запросов, отчетов и их использовании, атакже при непосредственной корректировке таблиц.Проверка поддержания целостности в базе данныхНа рис. 3.2 в созданной схеме данных БД «Учебный процесс» все связи отмечены символами 1, ∞, что свидетельствует об установлении связей типа 1:М (попростому или составному ключу), для которых будет обеспечиваться целостность данных.Проверим поддержание целостности при внесении изменений в таблицыГРУППА → СТУДЕНТ, связанные одно-многозначными отношениями.Проверка целостности при изменении значений связанных полей в таблицах.
Откроем таблицу ГРУППА в режиме таблицы. Изменим значение ключевого поля НГ (номер группы) в одной из записей главной таблицы ГРУППА.Убедимся, что во всех записях подчиненной таблицы СТУДЕНТ, для студентов, обучающихся в этой группе, автоматически также изменится значение поля НГ. Изменение происходит поскольку был установлен параметр каскадноеобновление связных полей (см рис.
3.3). Причем это изменение осуществляется мгновенно, как только изменяемая запись перестает быть текущей. Длянаблюдений за автоматическими изменениями в подчиненной таблице откроемна экране одновременно таблицы ГРУППА и СТУДЕНТ. Открыв другие подчиненные таблицы, можно убедиться, что каскадное обновление распространяется также на подчиненные таблицы следующих уровней ИЗУЧЕНИЕ и УСПЕВАЕМОСТЬ.Изменим значение ключа связи НГ в подчиненной таблице СТУДЕНТ на значение, не существующее в записях таблицы ГРУППА, и убедимся, что такоеизменение запрещено, т.к. при поддержании целостности не может существовать запись подчиненной таблицы с ключом связи, которого нет в главной таблице.Проверка при добавлении записей в подчиненную таблицу. Убедимся, чтовместе с удалением записи в главной таблице ГРУППА удаляются все подчиненные записи, т. к. был установлен параметр каскадное удаление связанныхзаписей.26Заметим, если каскадное удаление не разрешено, невозможно удалить запись вглавной таблице, если имеются связанные с ней записи в подчиненной.Если выполнение изменений невозможно, появится сообщение (рис.
3.4).Рис.3.4. Сообщение о невозможности внесения изменений в таблицуСТУДЕНТОпределение технологии загрузки базы данныхРассмотрим технологию загрузки на примере базы данных “Учебный процесс”, в котором связи между таблицами соответствуют схеме данных, приведенной в этой главе .Документы-источники загрузки этой базы данных перечислены при описаниипредметной области в главе 2.Таблицы-объекты загрузкиОпределим объекты загрузки – группы из взаимосвязанных таблиц, подлежащих загрузке из одного документа:1. Таблицы ГРУППА →СТУДЕНТ.
Загрузка записей этих таблиц будет производиться одновременно из одного документа “Список студентов группы”, что обеспечивает формирование взаимосвязей записей студентов с соответствующей записью группы. При этом будет обеспечен однократныйввод реквизитов ГРУППЫ и однократный ввод значений НГ для всех студентов группы.2. Таблицы КАФЕДРА→ ПРЕПОДАВАТЕЛЬ. Загрузка записей этих таблицтакже будет производиться одновременно из одного документа “Списокпреподавателей кафедры”, что обеспечивает сразу формирование взаимосвязей записей преподавателей с соответствующей записью кафедры.
Приэтом будет обеспечен однократный ввод реквизитов КАФЕДРЫ и однократный ввод значений ККАФ для всех преподавателей кафедры.3. Таблица ПРЕДМЕТ. Загрузка этой таблицы может производиться из планапроизведения занятий в группах. При этом достаточно ввести составной27идентификатор занятия, не вводя наименование предмета и фамилию преподавателя.4. Таблица ИЗУЧЕНИЕ. Загрузка этой таблицы может производиться из плана проведения занятий в группах. При этом достаточно ввести составнойидентификатор занятия, не вводя наименование предмета и фамилию преподавателя.5. Таблица УСПЕВАЕМОСТЬ.