Раздел 7 Access2003,6лр. Лабораторная работа 1 Создание и редактирование таблицы базы данных Цель работы научиться создавать, заполнять и редактировать
Скачать 1.22 Mb.
|
Лабораторная работа 4Реляционная база данныхЦель работы: научиться создавать реляционную базу данных из нескольких таблиц и устанавливать связи между нимиСодержание работы1 Создание инфологической и логической моделей базы данных из пяти таблиц. 2 Создание реляционной базы данных. 3 Установка связей между таблицами. 4 Ввод данных в таблицы посредством форм. 1 Инфологическая модель данных Инфологическая модель реляционной БД – это структурная схема объектов БД – её таблиц и логических связей между таблицами. Слово "инфологическая" происходит от лат. "informatio" - разъяснение, сведения и греч. "logikě" - логика, т.е. инфологическая модель означает информационную модель данных, между которыми установлены логические связи. Массивы данных обычно сводятся в таблицы, а таблицы – в базы данных (БД). Слово "реляционная" происходит от relation (англ.) – отношение, в математических моделях данных отношения изображают в виде таблиц, поэтому БД, состоящая из двумерных таблиц, называется реляционной. Реляционная БД (РБД)состоит из нескольких таблиц, содержащих массивы данных, между таблицами установлены логические связи, которые и объединяют их в единую базу данных. Отношение БД (таблица) состоит из полей (другое название - атрибутов), т.е. столбцов таблицы, и записей (или кортежей), т.е. строк таблицы. Шапка таблицы с названиями полей называется схемой отношения. Связь между таблицами устанавливаются по ключевым атрибутам, которые в Access могут быть трёх типов: простой ключ, составной ключ и внешний ключ. Простой ключ или ключевой атрибут (в русифицированной версии Access – первичный ключ или ключевое поле) должен однозначно идентифицировать (определять) любую запись в таблице БД. Например, поле Фамилия не может быть первичным ключом, т.к. в кортежах БД могут быть люди с одной фамилией, поле Корпус может означать и корпус прибора, и воинское подразделение и т.п., поэтому в качестве первичного выбирают уникальные атрибуты – Табельный номер, шифр изделия, Код дисциплины и т.п. Составной ключ – это первичный ключ, состоящий из нескольких 437 атрибутов, например, по отдельности атрибуты Фамилия и Дата рождения не могут однозначно определить любую запись таблицы, а составной атрибут Фамилия+Дата рождения является уникальным (единственным), так как маловероятно, что в таблице могут иметься две записи с совпадающими значениями этих полей. Внешний ключ – это атрибут, который служит для связи с другими таблицами и имеется во всех таблицах, между которыми устанавливается связи. Обычно таблица БД имеет один ключевой атрибут (простой или составной) и один или несколько вторичных. Внешним ключом для подчинённой таблицы является первичный ключ. Для задания связи эти поля таблицы должны иметь одинаковые имена или хотя бы одинаковые форматы данных. Одна таблица в БД является основной, родительской, а связанные с ней таблицы – подчинёнными, дочерними, которые, в свою очередь являются основными для своих подчинённых таблиц и т.д. На рис. 1 изображена структура реляционной БД "Факультет", содержащая таблицы Деканат, Кафедры, Преподаватели, Дисциплины, Группы и Студенты . связь 1:1 связь 1:N связь N:M Рисунок 1 Инфологическая модель реляционной БД "Деканат" Между таблицами БД может быть три вида связей:
438 и дисциплинами, т.к. один преподаватель читает несколько дисциплин, и одна дисциплина может читаться несколькими преподавателями. Связи "один к одному" и "один ко многим" легко устанавливаются в Access, а связь "многие ко многим" напрямую не может быть реализована, но фактически она представляет собой две связи типа "один ко многим", поэтому для неё создаётся третья таблица, ключ которой состоит из двух полей, общих для двух таблиц со связью N:M. Таким образом, связь N:M заменяется на ещё одну таблицу, которая связывается с обеими таблицами двумя связями 1:N. В таблице связи, кроме ключевых атрибутов могут быть и другие описательные поля. Например, связь N:M между таблицами-объектами ГРУППА и ДИСЦИПЛИНА реализуется с помощью третьей таблицы с именем ГРУП-ДИСЦ, которые связаны с исходными таблицами связями 1:N (рис. 2). N M 1 N N 1 Рисунок 2 Замена связи N:M на таблицу с двумя связями 1:N Таким образом, реализация связи "многие ко многим" добавляет в БД ещё один объект – таблицу связи. Логическая модель реляционной БД – это инфологическая БД, в которой каждая её таблица представлена своей схемой – шапкой таблицы и показаны ключевые атрибуты, между которыми установлены логические связи между таблицами. Целостность данных Целостность данных - это система правил, используемых в СУБД Access для поддержания связей между записями в связанных таблицах, а также обеспечение защиты от случайного удаления или изменения связанных данных: 1 Поле таблицы, посредством которого реализована связь, является ключевым полем или имеет уникальный индекс (индекс – это значение поля в записи, по которому выполняется поиск этой записи). 2 Связанные поля таблиц имеют один тип данных (исключение - поле счетчика может быть связано с числовым полем, если оно имеет тип Длинное целое). 3 Обе таблицы принадлежат одной базе данных Access. 439 4 При изменении поля связи в записи родительской таблицы следует синхронно изменить значение поля связи в записях дочерней таблицы. 5 При удалении записи в родительской таблице следует удалить соответствующие записи в дочерней таблице. Изменения или удаления в записях дочерней таблицы при одновременном изменении или удалении записи в родительской таблице называются каскадными изменениями или каскадными удалениями. Таким образом, ссылочная целостность – это совокупность каскадных связей между отдельными таблицами БД. Нарушение хотя бы одной из них делает информацию в БД недостоверной. СУБД обычно блокирует действия, которые нарушают целостность связей между таблицами, т.е. ссылочную целостность. Пример 1 Создать реляционную БД Спортзал, состоящую из объектов Тренеры (Код тренера, Фамилия, Имя, Отчество, Дата рождения, Должность, Дисциплина, Код дисциплины, Телефон, Зарплата) , Спортсмены (Код спортсмена, Фамилия, Имя, Отчество, № группы, Телефон) и Виды спорта(Код дисциплины, Название дисциплины). Разработать инфологическую и логическую модели БД, структуру таблиц, установить связи. Ввод данных в таблицы выполнить посредством форм. Порядок работы 1 Разработка инфологической модели БД Спортзал, т.е. определение всех таблиц БД и связей между ними. По условию, БД должна содержать 3 таблицы: Тренеры, Спортсмены, Виды спорта. Между таблицами Тренеры и Виды спорта действует связь 1:M, между таблицами Виды спорта и Спортсмены – связь N:M. Связь "многие ко многим" между объектами Виды спорта и Спортсмены заменяем на новую таблицу с именем Оценки (Код спортсмена, Код дисциплины, Оценки) и двумя связями типа 1:N. Всего в БД Кафедра получается 4 таблицы и 3 связи типа 1:N, её инфологическая модель имеет вид (рис. 3): 1:N 1:N 1:N Рисунок 3 Инфологическая модель БД Спортзал 440 2 Составление логической модели БД, она должна показывать схему(структуру) каждой таблицы и связанные ключевые атрибуты (рис. 4). Назначим ключевые атрибуты:
В таблице связи Оценки первичного ключа быть не может, т.к. данные в любом поле повторяются и идентификаторами записей быть не могут. Рисунок 4 Логическая модель БД Спортзал 3 Создание реляционной БД в Access. 3.1 Создание РБД Спортзал:
3.2 Создать структуру таблицы Тренеры.Для этого:
441
Таблица 1 Тренеры.
Заполнение таблицы данными будет сделано в режиме формы. 3.3 Создать структуру таблицы Виды спортааналогично п. 3.2 в соответствии с табл. 2. Таблица 2 Виды спорта
В качестве ключевого поля задайте «Код дисциплины». Заполняться эта таблица будет также в режиме формы. 3.4 Создать структуру таблицы Спортсменыаналогично п. 3.2 в соответствии с табл. 3. Таблица 3 Спортсмены
442
В качестве ключевого поля задайте "Код спортсмена". Заполняться эта таблица будет также в режиме формы. 3.5 Создайте структуру таблицы Оценкианалогично п. 3.2 в соответствии с табл. 4. Таблица 4 Оценки
В этой таблице задавать ключевое поле не надо, так как данные во всех полях могут повторяться. Заполнение таблицы - в режиме формы. 3.6 Разработать схему данных, т.е. создать связи между таблицами. Для этого:
Создайте связь между таблицами Тренерыи Виды спорта.Дляэтого подведите курсор мыши к полю Код дисциплины в таблице Виды спорта,щелкните левой кнопкой мыши и, не отпуская ее, перетащите курсор на поле Код дисциплины в таблицу Тренеры, а затем отпустите кнопку мыши. На экране откроется окно Изменение связей;
Задание каскадного обновления связанных полей и каскадного уда- 443 ления связанных записей позволяет отредактировать записи только в таблице Виды спорта,а в таблице Тренерыэти данные изменятся автоматически. Например, если удалить из таблицы Виды спорта один предмет, то в таблице Тренерыудалятся все строки, связанные с этим предметом.
Рисунок 5 Структурная схема реляционной БД Спортзал 4 Создание форм для ввода данных в таблицы 4.1 Для создания формы Тренеры:
Если вид макета не удовлетворяет пользователя, можно перейти в режим конструктора и изменить его,. При щелчке по элементу макета левой мышью он выделяется прямоугольной рамкой, с помощью которой можно изменять размеры и двигать элемент. Щелчок правой клавишей мыши по элементу открывает окно других изменяемых свойств элемента. 4.2 Заполните данными, приведенными в табл. 5, таблицу Тренерыпосредством формы.Закройте форму, задав ей имя Тренеры. Таблица 5 Тренеры
444
4.3 Создайте форму Виды спорта аналогично п. 4. 1. Заполните данными, приведенными в табл. 6 таблицу Виды спортапосредством формы и закройте форму, задав ей имя Виды спорта. Таблица 6 Виды спорта
4.4 Создайте форму Спортсменыаналогично п. 4.1. Заполните данными, приведенными в табл. 7, таблицу Спортсменыпосредством формы, закройте форму, задав ей имя Спортсмены Таблица 7 Спортсмены
4.5 Создайте форму Преп-Дисц аналогично п. 4. 1. Заполните данными, приведенными в табл. 8 таблицу Оценкипо- средством формы и закройте форму, задав ей имя Оценки. Таблица 8 Оценки
445
Контрольные вопросы1 Что такое инфологическая модель БД? 2 Какие ключи используются для задания связи таблиц? 3 Какие есть виды связей в реляционной БД? 4 Что означает целостность данных, как она устанавливается? 5 Как устанавливаются связи между таблицами БД, что такое схема БД? 6 Как реализуется связь вида "многие ко многим"? 7 Как создать форму и ввести через неё данные в таблицу БД? Задание (Номер варианта – номер компьютера в аудитории)1 Создать реляционную БД содержащую несколько таблиц согласно варианту задания. Вид связи между первой и второй таблицами – "один ко многим", между второй и третьей – "многие ко многим". Разработать инфологическую и логическую модели БД, структуру таблиц, назначить ключевые поля, установить связи. Разработать формы для заполнения всех таблиц своими данными– по аналогии с примером 1. Таблицу связи назвать по именам соединяемых таблиц (например, для таблиц "Виды спорта" и "Спортсмены" название промежуточной таблицы: "Виды спорта-Спортсмены"). 2 Изменить данные в первой таблице БД (с помощью запроса или формы), проверить их изменение в подчинённых таблицах. Результаты сохранить на диске А(З,5") Варианты задания
446 Содержание отчёта 1 Название работы. 2 Цель и содержание работы. 3 Логическая модель реляционной БД 4 Письменные ответы на контрольные вопросы. 5 ВЫВОДЫ. 447 Лабораторная работа 5Сложные запросы в Access.Цель работы: научиться создавать запросы с параметрами, освоить технологию создания различных запросовСодержание работы1 Разработка запроса с параметрами по одной и нескольким таблицам 2 Разработка перекрёстного запроса. 3 Разработка запроса на изменение 1 Виды запросов в AccessВ лабораторной работе №3 "Запросы в Access" были рассмотрены Простой запрос, запрос Повторяющиеся записи и запрос Записи без подчинения. Они являются достаточно простыми как по созданию, так и по выполняемым операциям. В MS Access также широко применяются более сложные виды запросов, к которым относятся Перекрёстный запрос и Запросы на изменение.Перекрестный запрос отображает результаты статистических расчетов (таких, как суммы, количество записей, средние значения), выполненных по данным из одного поля таблицы. Эти результаты группируются по двум наборам данных, один из которых расположен в левом столбце таблицы, во второй – в верхней строке. Например, если надо узнать средний стаж работы доцентов и профессоров на разных кафедрах (на основе таблицы Преподаватели), то используется перекрестный запрос, в котором заголовками строк будут служить должности, заголовками столбцов - названия кафедр, а в ячейках будут рассчитаны средние значения стажа преподавателей. Запрос на изменение - это запрос, который за одну операцию вносит изменения в несколько записей. Существует четыре типа запросов на изменение: на удаление, обновление и добавление записей, а также на создание таблицы.
448 скольких таблиц в конец одной или нескольких таблиц
Запрос SQL – это запрос, создаваемый при помощи инструкций SQL. Этот тип запросов довольно сложен для начинающих пользователей и используется обычно опытными пользователями, имеющими навыки программирования и общения с серверами баз данных, поэтому в работе не рассматривается. 2 Разработка запросов 2.1 Запрос с параметром по одной таблице. Для создания запросов с параметром Должность тренера. 2.1.1 Сначала создаётся простой запрос:
2.1.2 Теперь на базе этого простого запроса нужно создать запрос с параметром Должность. Для этого перейдите в режим конструктора;
449
2.2 Запрос с параметром по нескольким таблицам. Создадим запрос по таблицам Тренеры и Виды спорта, в котором по фамилии тренера и названию спортивной дисциплины можно определить его имя, отчество, должность и зарплату. 2.2.1 Сначала создаётся простой запрос по таблицам Тренеры и Виды спорта:
Тем самым сформировано шесть полей запроса - они связаны между собой посредством схемы данных;
Таблица 1
450 2.3 Перекрестный запрос. Создадим запрос о средней зарплате тренеров по дисциплинам. Такой запрос строится на основе одной таблицы или одного запроса, в связи чем надо сначала сформировать запрос, в котором были бы поля Должность, Название дисциплины и Зарплата. 2.3.1 Создаём простой запрос с этими полями из таблиц Виды спорта и Тренеры, вводим имя запроса Зарплата тренеров, сохраняем запрос и закрываем его таблицу – см. п. 2.1.. 2.3.2 Создание перекрестного запроса. Для этого:
2.4 Запрос на удаление Создать простой запрос на базе таблицы Спортсмены с полями Фамилия, Имя, Отчество, введите имя запроса Отчисление,
451 2.5 Запрос на создание таблицы Также выполняются на базе простого запроса из режима конструктора с помощью команд меню Запрос\ Создание таблицы. После выбора команды меню Вид\Групповые операции в окне конструктора в строке Групповые операции для каждого поля можно раскрыть список операций и выбрать нужную функцию, например, Сумма. Перед созданием таблицы с помощью запроса необходимо иметь в БД одну или несколько таблиц, из полей которых будет составляться запрос, а затем создаваться новая таблица. В запросе можно выполнить некоторые математические операции над сгруппированными данными (Группировка, sum, ave, min, max, count, stdev, var, first, last, Выражение, Условие – соответственно объединение в группы, сумма, среднее, минимум, максимум, количество, стандартное отклонение, вариация, добавление математического выражения, условия), а затем по нему создать таблицу. Для разработки запроса на создание таблицы введём в БД ещё одну таблицу (таблица 2), по которой и будет создаваться запрос: Таблица 2 Абитуриент
В таблице приведены данные Единого госэкзамена (ЕГЭ) при поступлении в ВУЗ. Создадим запрос абитуриентов, поступивших в ВУЗ при проходном балле, равном 13. Для этого в поле Оценка данные должны быть сгруппированы по каждому абитуриенту и для каждой группы вычислена сумма баллов. Если она больше или равна 13 баллам, данный абитуриент включается в создаваемую таблицу Результаты ЕГЭ. 2.5.1 Создадим таблицу из окна БД (выделить объект Таблицы, нажать клавишу Создать, выбрать режим Конструктор, ввести названия полей согласно табл. 3, сохранить её под именем Абитуриент (ключи не задавать, т.к. она не будет связываться с другими объектами БД), перейти в режим Таблица и заполнить её данными из табл. 2. 452 Таблица 3
2.5.2 Создать Простой запрос по одной таблице, в который включены все поля – см. п. 2.1.1, введите имя запроса ЕГЭ, нажмите Готово,
Таким образом, по таблице Абитуриент с помощью запроса ЕГЭ создана таблица Результаты ЕГЭ. Аналогично создаётся запрос на добавление данных в конец одной или нескольких таблиц (командой Запрос\Добавление, при этом указывается имя таблицы для вставки новых данных из запроса Контрольные вопросы1 Как создать запрос с параметром по одной таблице БД? 2 Как создать запрос с параметром по нескольким таблицам БД? 3 Как создать перекрёстный запрос? Выбор поля для пересечения 4 Какие существуют виды запросов на изменение? 5 Как создать запрос на удаление данных, ввод условия отбора? 6 Как создать запрос на обновление данных, ввод условия отбора? 7 Как создать запрос на добавление данных и создание новой таблицы БД? 8 Какие функции относятся к групповым операциям? 453 Задание 1 Создать все виды запросов по таблицам БД своего варианта из л.р. №4 "Реляционная БД". Для разработки запроса на создание использовать одну из таблиц БД своего варианта из л.р. №4 или ввести в Access новую таблицу (аналогичную табл. 2 Абитуриент) со своими данными. 2 Самостоятельно: Разработать запрос на добавление и с его помощью добавить данные в таблицу 3 своего варианта из л.р. №4. Данные взять из таблицы 1. 3 Результаты запросов сохранить на своей дискете (5 запросов и таблица для запроса на создание). Содержание отчёта
Результаты работы – созданные документы сохранит на дискете. 454 Лабораторная работа № 6 |