- •Содержание
- •Введение
- •1 Организация систем управления базами данных
- •1.1 Базы данных и системы управления базами данных
- •1.2 Модели данных
- •1.3 Реляционная база данных
- •1.4 Связи между таблицами
- •1.4 Манипулирование реляционными данными
- •2 Объекты базы данных ms access
- •2.1 Таблицы
- •2.2 Запросы
- •2.3 Формы
- •2.4 Отчеты
- •2.5 Макросы
- •2.6 Модули
- •2.7 Web-страницы
- •2.8 Sql – запросы
- •2.8.1 Структура языка sql
- •Dcd (Data Control Language) – язык управления данными состоит из операторов контроля данных, защиты и управления данными:
- •2.8.2 Выборка данных из таблиц
- •2.8.3 Операторы sql
- •3 Лабораторный практикум
- •3.1 Применение кейс-метода при создании реляционной базы данных ms access
- •1. Кейс-компонент Открытие бд
- •2. Кейс-компонент Закрытие бд
- •3. Кейс-компонент Создание бд
- •4. Кейс-компонент Создание таблиц
- •5. Кейс-компонент Формирование связей между таблицами
- •6. Кейс-компонент Создание форм
- •7. Кейс-компонент Ввод данных
- •8. Кейс-компонент Организация данных
- •9. Кейс-компонент Создание запросов
- •10. Кейс-компонент Представление информации
- •11. Кейс-компонент Изменение структуры объектов бд
- •12. Кейс-компонент Импорт данных
- •3.2 Иллюстративные учебные кейсы
- •1. Работа с субд Microsoft Access на примере бд «Борей»
- •Задания и алгоритм реализации кейс-ситуации
- •Задания для самостоятельной работы
- •2. Создание однотабличной бд и работа с ней в различных режимах
- •Задания и алгоритм реализации кейс-ситуации
- •3. Создание и работа по запросам с двухтабличной бд «Авто»
- •Задания и алгоритм реализации кейс-ситуации
- •4. Разработка составной формы на основе двух таблиц для бд «Авто»
- •Задания и алгоритм реализации кейс-ситуации
- •Задания и алгоритм реализации кейс-ситуации
- •6. Создание структуры реляционной бд торговой фирмы
- •Задания и алгоритм реализации кейс-ситуации
- •7. Редактирование и обработка данных. Формирование сложных запросов
- •8. Создание форм для работы с данными. Разработка кнопочной формы
- •Задания и алгоритм реализации кейс-ситуации
- •9. Формирование отчетов и почтовых наклеек
- •Задания и алгоритм реализации кейс-ситуации
- •10. Интеграция баз данных ms Access и SharePoint
- •Задания и алгоритм реализации кейс-ситуации
- •3.3 Учебные кейсы. Создание запросов к бд «Фирма» с использованием языка sql
- •1. Создание простых запросов
- •2. Получение обобщенных данных для формирования отчетов и создание запросов с данными из нескольких таблиц и подзапросами
- •3. Создание объединения запросов и запросов с соотнесенными подзапросами для учебной и индивидуальной бд
- •4. Создание запросов на модификацию данных
- •1. Гостиница
- •2. Прокат спортивного оборудования
- •3. Платный абонемент
- •4. Подписка
- •5. Реклама в газете
- •6. Справочная сети аптек
- •7. Фирма добрых услуг
- •8. Продажа музыкальных альбомов
- •9. Транспортные перевозки
- •10. Ремонт компьютеров
- •Лебедева Татьяна Фёдоровна солопова Алла Николаевна
- •650942, Г. Кемерово, пр. Кузнецкий, 39. Тел. 75-75-00
1.4 Связи между таблицами
Создание связей между таблицами – последний этап физического проектирования БД. Связь между таблицами устанавливает отношение между совпадающими значениями в ключевых полях. В большинстве случаев связывают первичный ключ главной таблицы с внешним ключом подчинённой таблицы (часто имеющим то же имя).
Связь можно создать на уровне БД и на уровне запроса. Связи созданные на уровне БД постоянны и актуальны при любых действиях, а на уровне запроса действуют только в момент его выполнения.
Связи между отношениями на уровне БД могут иметь один из трех видов:
Один-к-одному. Одной записи базового отношения соответствует одна запись в подчинённой таблице, и наоборот. Этот тип связи применяется достаточно редко. Единственный случай, когда применение этого типа связи оправданно – разбиение таблицы, содержащей большое количество полей, на несколько вспомогательных таблиц. Например, значения атрибута Должность храниться в отдельной таблице-справочнике с конкретизацией по другим дополнительным атрибутам.
Один-ко-многим. Одной записи базового отношения соответствует несколько или ни одной записи в подчинённой таблице. В свою очередь каждой записи подчиненной таблицы может соответствовать только одна запись базового отношения. Наиболее употребительный вид связи. На рисунке 3 представлен пример такой связи между подчиненной таблицей Сотрудники и базовыми отношениями Должности и Оклады по атрибутам Должность и Оклад.
Рисунок 3 – Связанные таблицы
Многие-ко-многим. При этом типе связи многим записям базового отношения может соответствовать много записей в подчинённой таблице (и наоборот). В таблице 4 приведён вариант должностного совмещения внутри предприятия. Из табличных данных следует, что кадровый работник может быть сотрудником разных подразделений одного предприятия. Такую связь в MS Access можно организовать только при помощи третьей вспомогательной таблицы. По сути, связь «многие-ко-многим» представляет собой две связи типа «один-ко-многим». При этом базовая и подчинённая таблицы расположены со стороны «один», а вспомогательная таблица со стороны – «многие» (рисунок 4). Одной записи главной таблицы может соответствовать несколько записей подчинённой таблицы и наоборот. Уникальных ключей нет. Все ключи внешние. В этом случае таблицу, содержащую всевозможные комбинации базовых компонент, удобно нормализовать, используя инструмент Анализатор таблиц (Работа с базами данных /Анализ / Анализ таблиц, запускается мастер). На рисунке 4 показан этап нормализации таблицы Должностные совмещения на предприятии.
Таблица 4 – Должностные совмещения на предприятии
Код |
ФИО |
Дата Рождения |
Таб Номер |
Должность |
Подразделение |
Оклад |
Тарифный Разряд |
1 |
Иванов А.М. |
10.12.1970 |
1230 |
Директор |
Администрация |
4500 |
8 |
2 |
Петров Н.И. |
08.11.1975 |
1250 |
Менеджер по закупкам |
Рабочий Персонал |
4000 |
7 |
3 |
Сидоров О.П. |
04.05.1977 |
1240 |
Менеджер по продажам |
Рабочий Персонал |
3500 |
6 |
4 |
Степанов А.М. |
12.05.1981 |
1245 |
Менеджер по продажам |
Рабочий Персонал |
4000 |
7 |
5 |
Иванов А.М. |
10.12.1970 |
1230 |
Менеджер по закупкам |
Рабочий Персонал |
4500 |
8 |
6 |
Сидоров О.П. |
04.05.1977 |
1240 |
Менеджер по закупкам |
Рабочий Персонал |
4000 |
7 |
Одной из основных особенностей запросов является возможность отображения полей из связанных таблиц.
На рисунке 5 показано окно запроса на выборку сотрудников подразделения Рабочий персонал с тремя таблицами Сотрудники, Должности и Оклады. MS Access автоматически связывает таблицы, используя для этого параметры, заданные в окне Схема данных.
Существует возможность связать таблицы непосредственно в запросе, путём перетаскивания поля связи из списка полей первой на соответствующее поле в списке полей второй таблицы.
Рисунок 4 – Окно мастера анализа таблиц
Рисунок 5 – Создание связи на уровне запроса
Установив целостность данных, необходимо следовать следующим правилам:
Невозможно ввести в поле внешнего ключа связанной таблицы значение, не содержащееся в ключевом поле главной таблицы. Однако в поле внешнего ключа возможен ввод значений Null, показывающих, что записи не являются связанными. Например, нельзя сохранить запись, в таблице Должности без указания должности, но можно создать запись в таблице Сотрудники для вакансии на должность, которая пока не отнесена ни к одному из сотрудников, если ввести значение Null в поле ФИО.
Не допускается удаление записи из главной таблицы, если существуют связанные с ней записи в подчиненной таблице. Например, удаление записи из таблицы Должности, приведёт к удалению записей о сотрудниках из таблицы Сотрудники, имеющих данную должность.
Невозможно изменить значение первичного ключа в главной таблице, если существуют записи, связанные с данной записью. Например, невозможно изменить оклад сотрудника в таблице Сотрудники, если в таблице Оклады отсутствует устанавливаемое значение.