- •2. Лабораторная работа №2. Проектирование структуры базы данных 16
- •2.1. Общие сведения 16
- •3. Лабораторная работа №3. Сортировка, поиск и фильтрация записей в таблицах 37
- •3.1. Общие сведения 37
- •4. Лабораторная работа №4. Разработка запросов 47
- •4.1. Общие сведения 47
- •5. Лабораторная работа №5. Использование языка sql для создания запросов 61
- •5.1. Общие сведения 61
- •6. Лабораторная работа №6. Создание и использование форм 67
- •6.1. Общие сведения 67
- •7. Лабораторная работа №7. Разработка отчетов 80
- •7.1. Общие сведения 80
- •7.2. Порядок выполнения работы 83
- •8. Лабораторная работа №8. Разработка командного интерфейса приложения 85
- •8.1. Общие сведения 85
- •Введение
- •1. Лабораторная работа №1. Разработка таблиц баз данных
- •1.1. Общие сведения
- •1.1.1. Постановка задачи
- •1.1.2. Создание базы данных
- •1.1.3. Создание таблицы базы данных
- •1.1.4. Добавление, удаление, редактирование записей в таблице базы данных
- •1.1.5. Редактирование структуры таблицы базы данных
- •1.2. Порядок выполнения работы
- •2. Лабораторная работа №2. Проектирование структуры базы данных
- •2.1. Общие сведения
- •2.1.1. Постановка задачи №1
- •2.1.2. Проектирование структуры базы данных
- •2.1.2.1. Виды связи между таблицами
- •2.1.2.2. Виды зависимостей между атрибутами отношений
- •КодАбитуриента НазваниеФакультета КодФакультета
- •2.1.2.3. Процедура нормализации
- •КодАбитуриента КодСпециальности
- •2.1.3. Реализация структуры базы данных средствами субд Access
- •2.1.3.1. Определение связей между таблицами базы данных
- •2.1.3.2. Удаление и модификация связей между таблицами базы данных
- •2.1.3.3. Модификация структуры базы данных «Университет»
- •2.1.4. Постановка задачи №2
- •2.2. Порядок выполнения работы
- •3. Лабораторная работа №3. Сортировка, поиск и фильтрация записей в таблицах
- •3.1. Общие сведения
- •3.1.1. Сортировка записей в таблице базы данных
- •3.1.2. Поиск записей по значению поля
- •3.1.3. Отбор данных при помощи фильтров
- •3.1.3.1. Фильтр по выделенному фрагменту
- •3.1.3.2. Поле «Фильтр для»
- •3.1.3.3. Обычный фильтр.
- •3.1.3.4. Расширенный фильтр и расширенная сортировка.
- •3.1.3.5. Использование сложных критериев отбора.
- •3.1.3.6. Сохранение и загрузка фильтра в качестве запроса
- •3.1.3.7. Настройка режима таблицы
- •3.1.3.8. Копирование и экспорт отсортированных и отфильтрованных данных
- •3.2. Порядок выполнения работы
- •4. Лабораторная работа №4. Разработка запросов
- •4.1. Общие сведения
- •4.1.1. Создание простого запроса на выборку с помощью Мастера запросов
- •4.1.2. Создание простого запроса на выборку с помощью Конструктора запросов
- •4.1.3. Создание многотабличных запросов
- •4.1.3.1. Создание многотабличного запроса на выборку
- •4.1.3.1.1. Включение в бланк запроса вычисляемых полей
- •4.1.3.1.2. Включение в бланк запроса групповой операции
- •4.1.3.2. Создание перекрестного запроса
- •4.1.3.3. Создание параметрического запроса
- •4.1.3.4. Создание запросов на изменение
- •4.1.3.4.1. Запрос на создание таблицы
- •4.1.3.4.2. Запрос на обновление записей
- •4.1.3.4.3. Запрос на добавление записей
- •4.1.3.4.4. Запрос на удаление записей
- •4.2. Порядок выполнения работы
- •5. Лабораторная работа №5. Использование языка sql для создания запросов
- •5.1. Общие сведения
- •5.1.1. Структура запроса на выборку
- •5.1.2. Создание перекрестных запросов
- •5.1.3. Порядок создания собственного запроса на языке sql в среде субд Access
- •5.2. Порядок выполнения работы
- •6. Лабораторная работа №6. Создание и использование форм
- •6.1. Общие сведения
- •6.1.1. Создание формы средствами автоматического создания форм
- •6.1.2. Создание формы с помощью Мастера форм.
- •6.1.3. Редактирование макета формы в режиме Конструктора
- •6.1.4. Создание элемента управления «Поле со списком»
- •6.1.5. Создание многотабличных форм в режиме Конструктора.
- •6.1.6. Создание вычисляемых полей
- •6.2. Порядок выполнения работы
- •7. Лабораторная работа №7. Разработка отчетов
- •7.1. Общие сведения
- •7.1.1. Построение отчета с помощью средств автоматического создания отчетов и Мастера отчетов
- •7.1.2. Разработка простого отчета в режиме Конструктора отчетов
- •7.1.3. Создание составного отчета.
- •7.2. Порядок выполнения работы
- •8. Лабораторная работа №8. Разработка командного интерфейса приложения
- •8.1. Общие сведения
- •8.2. Порядок выполнения работы
- •Рекомендуемая литература
- •Статистические функции
- •Построитель выражений
- •Операторы для создания выражений
2.1.2.1. Виды связи между таблицами
Как уже было сказано выше, на этапе проектирования тщательно разрабатывается структура базы данных: атрибуты данных группируют в таблицы, таблицы связывают между собой по общим полям, тем самым, группируя их в базу данных, для чего применяется формальная процедура, которая называется нормализацией. Связанные таблицы для пользователя представляются одной таблицей, то есть он может извлекать данные из нескольких таблиц так же, как если бы эти данные содержались в одной таблице.
Связь между таблицами устанавливает отношения между совпадающими значениями в соответствующих друг другу полях, обычно между полями разных таблиц, имеющими одинаковые имена. В большинстве случаев с первичным ключом одной таблицы связывается внешний ключ другой таблицы. Первичный ключ – поле или группа полей, являющиеся уникальным идентификатором каждой записи в таблице. Внешний ключ – поле или группа полей таблицы, значения которых соответствуют значениям первичного ключа в другой связанной таблице. Таблица, связанная по первичному ключу, называется главной, а связанная по внешнему ключу – подчиненной.
Выделяют 3 типа связи между таблицами:
1) отношение «один-ко-многим» ( 1:М )
С вязь с отношением «один-ко-многим» является наиболее часто используемым типом связи между таблицами. В такой связи каждой записи в таблице A могут соответствовать несколько записей в таблице B, а запись в таблице B не может иметь более одной соответствующей ей записи в таблице A. Пример такой связи изображен на рис. 2.1.
Рисунок 2.1 – Пример связи 1:М
Отношению «один-ко-многим» соответствует парное ему отношение «многие-к-одному» ( М:1 ). Фактически, это один и тот же вид связи, поскольку эти два вида связи различаются только направлением.
2) отношение «один-к-одному» ( 1:1 ):
При отношении «один-к-одному» запись в таблице A может иметь не более одной связанной записи в таблице B и наоборот. Этот тип связи используют не очень часто, поскольку такие данные могут быть помещены в одну таблицу. Связь с отношением «один-к-одному» используют для разделения очень широких таблиц, для отделения части таблицы по соображениям защиты, а также для сохранения сведений, относящихся к подмножеству записей в главной таблице.
3) отношение «многие-ко-многим» ( М:М ):
При отношении «многие-ко-многим» одной записи в таблице A могут соответствовать несколько записей в таблице B, а одной записи в таблице B несколько записей в таблице A. Такая схема реализуется только с помощью третьей (связующей) таблицы, ключ которой состоит, по крайней мере, из двух полей, которые являются полями внешнего ключа в таблицах A и B.
Например, на рис. 2.2 между таблицами «Заказы» и «Товары» имеется отношение «многие-ко-многим», которое определяется путем создания двух связей с отношением «один-ко-многим» для таблицы «Заказано».
Р исунок 2.2 – Пример связи М:М
2.1.2.2. Виды зависимостей между атрибутами отношений
Выделяют следующие основные виды зависимостей между атрибутами отношений: функциональные, транзитивные и многозначные.
Понятие функциональной зависимости является базовым, так как на его основе формулируются определения всех остальных видов зависимости. Во всех данных ниже определениях атрибуты могут быть составными, т.е. включать в себя несколько атрибутов.
Атрибут В функционально зависит от атрибута А, если каждому значению А соответствует одно и только одно значение В. Математически такая зависимость обозначается следующим образом: АВ.
Например, в таблице АБИТУРИЕНТЫ (табл. 2.2) можно выделить функциональные зависимости между следующими атрибутами:
КодАбитуриента ФИО, КодАбитуриента ДатаПодачиДокументов , и т.п.
Говорят, что между атрибутами А и В существует функциональная взаимозависимость (АВ), если выполняется АВ и ВА.
Например, в таблице АБИТУРИЕНТЫ (табл. 2.2) между следующими атрибутами существует взаимно однозначное соответствие: КодСпециальности НазваниеСпециальности, КодФакультета НазваниеФакультета.
Частичной функциональной зависимостью называется функциональная зависимость неключевого атрибута от части составного первичного ключа.
Альтернативой для частичной функциональной зависимости является полная функциональная зависимость неключевого атрибута от всего составного ключа.
Атрибут С зависит транзитивно от атрибута А, если для атрибутов А, В и С выполняются следующие условия: АВ и ВС, но обратная зависимость отсутствует.
Для таблицы АБИТУРИЕНТЫ (табл. 2.2) можно выделить, например, такие группы транзитивных зависимостей между атрибутами:
КодАбитуриента КодФакультетаНазваниеФакультета,