- •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. Порядок выполнения работы
- •Рекомендуемая литература
- •Статистические функции
- •Построитель выражений
- •Операторы для создания выражений
КодАбитуриента КодСпециальности
КодСпециальностиНазваниеСпециальности,
НазваниеСпециальности КодФакультета
НазваниеСпециальности НазваниеФакультета
КодСпециальности КодФакультета
КодСпециальности НазваниеФакультета
Отсюда видно, что в данном отношении существуют следующие транзитивные зависимости:
КодАбитуриента КодСпециальности НазваниеСпециальности
КодАбитуриента КодФакультета НазваниеФакультета
КодСпециальности КодФакультета НазваниеФакультета
Для удаления транзитивных зависимостей, из нормализуемого отношения выносят в отдельное отношение транзитивно зависящие друг от друга атрибуты. Кроме этого, атрибут, через который проходит транзитивная связь, остается в исходном отношении и играет роль внешнего ключа для связи с новым отношением, в котором он является первичным ключом.
Проделав такие действия, мы получим три следующих отношения:
АБИТУРИЕНТЫ (КодАбитуриента, ФИО, ДатаПодачиДокументов,
КодСпециальности)
СПЕЦИАЛЬНОСТИ (КодСпециальности, НазваниеСпециальности,
КодФакультета)
ФАКУЛЬТЕТЫ (КодФакультета, НазваниеФакультета)
Первичные ключи в отношениях выделены жирным шрифтом, внешние ключи, участвующие в связях между отношениями, подчеркнуты.
Отношения ФАКУЛЬТЕТЫ и СПЕЦИАЛЬНОСТИ связаны по атрибуту КодФакультета, тип связи – 1:М
Отношения СПЕЦИАЛЬНОСТИ и АБИТУРИЕНТЫ связаны по атрибуту КодСпециальности, тип связи – 1:М
Теперь транзитивные зависимости удалены, и отношение АБИТУРИЕНТЫ находится в третьей нормальной форме
Если в отношении, находящемся в ЗНФ, имеются зависимости атрибутов составного ключа от неключевых атрибутов, то данное отношение необходимо приводить к так называемой усиленной 3НФ, которая иначе называется нормальная форма Бойса-Кодда (БКНФ).
У нас таких зависимостей нет, поэтому процесс проектирования на этом заканчивается и можно переходить к реализации полученной структуры БД.
2.1.3. Реализация структуры базы данных средствами субд Access
Реализуем полученную структуру БД средствами СУБД Access путем модификации структуры БД УНИВЕРСИТЕТ, созданной в лабораторной работе №1.
2.1.3.1. Определение связей между таблицами базы данных
Для того чтобы определить связь между таблицами, следует добавить таблицы в окно Схема данных и перенести с помощью мыши ключевое поле одной таблицы в другую таблицу.
Тип создаваемой связи зависит от полей, для которых определяется связь. Отношение «один-ко-многим» создается в том случае, когда только одно из полей является ключевым или имеет уникальный индекс. Отношение «один-к-одному» создается в том случае, когда оба связываемых поля являются ключевыми или имеют уникальные индексы. Связь с отношением «многие-ко-многим» фактически является двумя связями с отношением «один-ко-многим» через третью таблицу, ключ которой состоит, по крайней мере, из двух полей, которые являются полями внешнего ключа в двух других таблицах.
Если перенести с помощью мыши поле, не являющееся ключевым или не имеющее уникального индекса, на другое поле, которое также не является ключевым или не имеет уникального индекса, создается неопределенное отношение. В запросах, содержащих таблицы с неопределенным отношением, Microsoft Access по умолчанию создает линию объединения между таблицами, но условия целостности данных при этом не накладываются, и нет гарантии уникальности записей в любой из таблиц.
Для определения связей между таблицами необходимо произвести следующие действия:
1. Закройте все открытые таблицы. Создавать или изменять связи между открытыми таблицами нельзя.
2. Переключитесь в окно базы данных. Для переключения в окно базы данных из других окон нажмите клавишу F11.
3 . Нажмите кнопку Схема данных на панели инструментов.
4. Если в базе данных не определено никаких связей, то на экран автоматически будет выведено окно Добавление таблицы.
Е сли необходимо добавить таблицы до определения связей, а диалогового окна Добавление таблицы на экране нет, нажмите кнопку Добавить таблицу на панели инструментов.
Если же таблицы, которые необходимо связать, отображены на экране, перейдите к шагу 6.
5. Дважды щелкните имена таблиц, для которых требуется определить связи. Затем закройте диалоговое окно Добавление таблицы.
6. Для связывания полей выберите поле в одной таблице и перетащите его на соответствующее поле во второй таблице.
Для связывания сразу нескольких полей переместите их при нажатой клавише CTRL.
В большинстве случаев связывают ключевое поле (представленное в списке полей полужирным шрифтом) одной таблицы с соответствующим ему полем (часто имеющим то же имя), которое называют полем внешнего ключа во второй таблице. Связанные поля не обязательно должны иметь одинаковые имена, но они должны иметь одинаковые типы данных (из этого правила существует два исключения) и иметь содержимое одного типа. Кроме того, связываемые поля числового типа должны иметь одинаковые значения свойства Размер поля. Исключение из правила: поле счетчика можно связывать с числовым полем, если в последнем в свойстве Размер поля задано значение «Длинное целое».
7. В диалоговом окне Схема данных, отображенном на экране, проверьте имена полей, представленные в двух колонках. В случае необходимости внесите изменения. Если необходимо, установите параметры связи .
8. Для создания связи нажмите кнопку Создать.
9. Для каждой пары таблиц, которые необходимо связать, выполните шаги 5-8.
Если необходимо просмотреть все связи, определенные в базе данных, нажмите кнопку Показать все связи на панели инструментов. Для просмотра связей только для определенной таблицы выберите таблицу, а затем на панели инструментов нажмите кнопку Показать прямые связи.
Если в структуру таблицы необходимо внести изменения, щелкните таблицу правой кнопкой и выберите команду Конструктор таблиц.
Для связывания таблицы самой с собой или для связывания поля таблицы с другим полем той же таблицы следует дважды добавить таблицу. Такая ситуация возникает при определении поля с подстановкой значений из той же таблицы.