Определение связей

Создав несколько таблиц, необходимо связать их друг с другом (рис. 10.16).

Для этого следует выбрать команду Схема данных в группе Отношения на вкладке Работа с базами данных.

Используя команду Добавить таблицу из контекстного меню, укажите имена таблиц, которые должны быть связаны.

Установите курсор в любую из таблиц на поле, по которому будет установлена связь, и "перетащите" это поле на связующее ноле другой таблицы.

Активизируйте флажок Обеспечение целостности данных (см. рис. 10.16). Данное действие позволит предотвратить случайное удаление или изменение связанных данных. Установите флажок Каскадное обновление связанных полей, тогда при изменении ключевого поля главной таблицы автоматически будут изменяться и соответствующие значения связанных записей. Установите флажок Каскадное удаление связанных записей, тогда при удалении записи в главной таблице будут удалены и все связанные записи в подчиненной таблице.

Рис. 10.16. Связывание таблиц

Сжатие базы данных

В результате удаления одних и создания других объектов файл базы данных может стать фрагментированным. С течением времени он разрастается и занимает гораздо больше места, чем необходимо для хранения всех объектов и данных. Поэтому следует периодически сжимать базу данных. Перед сжатием базы данных все объекты БД должны быть закрыты. Выберите команду Сжать и восстановить базу данных в группе Сервис на вкладке Работа с базами данных.

Пример 10.2. В качестве примера рассмотрим создание базы данных "Продажи".

Решение

1. Создайте в режиме конструктора таблицу "Фирмы" (рис. 10.17).

Рис. 10.17. Создание таблицы "Фирмы"

Для поля [Код фирмы] определите тип данных – числовой, размер поля – целое, подпись – "Код фирмы".

Для поля [Название фирмы] определите размер поля – 20, подпись – "Название фирмы", ограничьте значения поля названиями четырех фирм: "Citilink"; "Dinikin", "Elee", "Lizarin". Для сообщения об ошибке задайте текст: "Название фирмы введено неверно".

Для поля [Телефон фирмы] введите маску ввода: (999)999-99-99:;_. Размер поля – 20.

Сохраните таблицу под именем [Фирмы]. Перейдите в режим таблицы и введите данные (рис. 10.18).

Рис. 10.18. Заполнение таблицы "Фирмы" данными

2. Создайте в режиме конструктора таблицу "Товары" (рис. 10.19).

Рис. 10.19. Создание таблицы "Товары"

Для полей [Наименование], [Марка], [Размер] таблицы [Товары] установите размер поля – 50 символов. Для поля [Код товара] таблицы [Товары] установите размер ноля – целое, подпись – "Код товара".

Для поля [Цепа] таблицы [Товары] обеспечьте ввод только положительных значений. Для сообщения об ошибке введите текст: "Введите положительное число". Определите тип данных – числовой, размер поля – одинарное с плавающей точкой, формат поля – $#, число десятичных знаков – 2.

Сохраните таблицу под именем [Товары]. Перейдите в режим таблицы и введите данные (рис. 10.20).

3. Создайте в режиме конструктора таблицу "Склады" (рис. 10.21).

Для поля [Номер склада] таблицы [Склады] установите подпись "№ склада", для поля [Телефон] введите маску ввода, размер поля задайте – 20.

Рис. 10.20. Заполнение таблицы "Товары" данными

Рис. 10.21. Создание таблицы "Склады"

Для поля [Код фирмы] создайте столбец подстановки (рис. 10.22). В качестве "столбца подстановки" используйте поля [Код фирмы], [Название фирмы] таблицы [Фирмы]. Отмените опцию "Скрыть ключевой столбец".

Сохраните таблицу под именем "Склады". Перейдите в режим таблицы и введите данные (рис. 10.23).

Поле [Код фирмы] заполните, используя столбец подстановки: Citilink (26,27), Dinikin (56,59), Lizarin (16,18,23), Elee (81).

Рис. 10.22. Создание подстановки

Рис. 10.23. Заполнение таблицы "Склады" данными

4. Создайте таблицу "Хранение" (рис. 10.24).

Для полей [Номер склада], [Код товара] с помощью мастера подстановок создайте столбцы подстановок:

• для поля [Номер склада] в качестве столбца подстановки используйте значения таблицы [Склады]. В столбец подстановки выберите поле [Номер склада];

• для поля [Код товара] в качестве столбца подстановки используйте значения таблицы [Товары]. В столбец подстановки выберите поля [Код товара], [Наименование], скройте ключевой столбец.

Рис. 10.24. Создание таблицы "Хранение"

5. Создайте таблицу "Продажи" (рис. 10.25).

Для ноля [Дата] задайте подпись – "Дата продажи", маску ввода 99->L<LL-00;0;_. Обеспечьте ввод дат позже 2000 г. Для сообщения об ошибке введите текст: "Проверьте введенную дату" (см. рис. 10.25).

В таблицу [Продажи] добавьте поле [Скидки] (рис. 10.26). Определите тип данных – числовой, формат поля – процентный. Обеспечьте ввод скидок до 100%: установите размер поля – одинарное с плавающей точкой; число десятичных знаков – 0; условие на значение – "Between 0 And 1"; сообщение об ошибке – "Размер скидки нс должен превышать 100%".

Сохраните таблицу иод именем "Продажи". Перейдите в режим таблицы и введите данные (рис. 10.27).

Рис. 10.25. Создание таблицы "Продажи"

Рис. 10.26. Свойства поля [Скидки]

Рис. 10.27. Заполнение таблицы "Продажи" данными

Для поля [ID] с помощью Мастера подстановок создайте столбец подстановки. В качестве столбца подстановки используйте значения таблицы [Хранение]. В столбец подстановки выберите ноля [ID], [Код товара], [Номер склада], откройте ключевой столбец. Объявите доступным поле [ТО].

6. Установите связи между таблицами, обеспечив целостность данных, каскадное обновление и удаление данных в связанных таблицах. У вас должна получиться Вперед схема данных (рис. 10.28).

Рис. 10.28. Схема данных для БД "Продажи"