Разработайте БД «Комплектующие», состоящую из 2-х таблиц. Одна таблица содержит данные, которые могут отображаться для клиентов при согласовании спецификации изделия, – в ней указаны розничные цены на компоненты. Вторая таблица предназначена для анализа результатов деятельности предприятия – в ней содержатся оптовые цены на компоненты и краткая информация о поставщиках (клиенты предприятия не имеют доступа к данным этой таблицы).
1.Запустите программу Microsoft Access.
2.В окне Microsoft Access создайте новую базу данных.
3.Укажите расположение и имя файла с базой данных: Комплектующие. Откроется окно новой базы данных.
4.Откройте вкладку Создание.
5.Выберите пункт Конструктор таблиц – откроется бланк создания структуры таблицы.
6.Дня первой таблицы введите следующие поля:
Имя поля | Тип поля |
Компонент | Текстовый |
Модель | Текстовый |
Основной параметр | Числовой |
Цена | Числовой |
Обратите внимание на то, что в данном случае поле Цена задано не денежным типом, а числовым. Данные, относящиеся к денежному типу, имеют размерность, выраженную в рублях (если работа выполняется с версией Microsoft Access, локализованной в России). Но стоимость компонентов вычислительной техники выражать в этой единице измерения не принято. Для сравнимости цен разных поставщиков обычно используют «условные единицы». В таких случаях удобно использовать поле числового типа, чтобы не перенастраивать всю СУБД.
7.Щелкните на поле Цена. В нижней части бланка задайте свойство Число десятичных знаков, равным 2.
8.Для связи с будущей таблицей поставщиков надо задать ключевое поле. Поскольку здесь ни одно поле явно не претендует на «уникальность», используем комбинацию полей Компонент и Модель. Выделите оба поля в верхней части бланка (при нажатой клавише SHIFT). Щелчком правой кнопки мыши откройте контекстное меню и выберите в нем пункт Ключевое поле.
9.Закройте окно Конструктора. При закрытии окна дайте таблице имя Комплектующие.
10.Повторив действия пунктов 5-9, создайте таблицу Поставщики, в которую входят следующие поля.
Имя поля | Тип поля |
Компонент | Текстовый |
Модель | Текстовый |
Цена оптовая | Числовой |
Поставщик | Текстовый |
Телефон | Текстовый |
Адрес | Текстовый |
Примечание | Поле MEMO |
Обратите внимание на то, что поле номера телефона является текстовым, несмотря на то, что обычно номера телефонов записывают цифрами. Это связано с тем, что они не имеют числового содержания. Номера телефонов не сравнивают по величине, не вычитают из одного номера другой и т.д. Это типичное текстовое поле. Ключевое поле можно не задавать - для текущей задачи оно не требуется.
11.Откройте Схему данных (Работа с базами данных > Схема данных). Одновременно с открытием этого окна открывается диалоговое окно Добавление таблицы, на вкладке Таблицы которого можно выбрать таблицы, между которыми создаются связи.
12.Щелчком на кнопке. Добавить выберите таблицы Комплектующие и Поставщики в окне Схема данных откроются списки полей этих таблиц.
13.При нажатой клавише SHIFT выделите в таблице Комплектующие два поля – Компонент и Модель.
15.Перетащите эти поля на список полей таблицы Поставщики. При отпускании кнопки мыши автоматически откроется диалоговое окно Изменение связей.
16.На правой панели окна Изменение связей выберите поля Компонент и Модель таблицы Поставщики, включаемые в связь. Не устанавливайте флажок Обеспечение целостности данных – в данном упражнении это не требуется, но может препятствовать постановке учебных опытов с таблицами.
17.Закройте диалоговое окно Изменение связей и в окне Схема данных рассмотрите образовавшуюся связь. Убедитесь в том, что линию связи можно выделить щелчком левой кнопки мыши, а щелчком правой кнопки мыши открывается контекстное меню, позволяющее разорвать связь или отредактировать ее.
18.Создайте составную форму для заполнения БД.
19.Наполните таблицы экспериментальным содержанием (3-4 записи).
20.Создадим запрос на выборку жестких дисков, имеющих емкость не менее 500 Гбайт при цене менее 150 условных единиц. Результирующая таблица должна содержать также адрес поставщика и номер его телефона.
21.Создайте запрос в режиме конструктора (Создание > Другие > Конструктор запросов) – откроется бланк запроса по образцу. Одновременно с ним откроется диалоговое окно Добавление таблицы.
22.В окне Добавление таблицы выберите таблицу Поставщики и щелкните на кнопке Добавить. Закройте окно Добавление таблицы.
23.В списке полей таблицы Поставщики выберите поля, включаемые в результирующую таблицу: Компонент, Модель, Цена оптовая, Поставщик, Телефон. Выбор производите двойными щелчками на именах полей.
24.Задайте условие отбора для поля Компонент. В соответствующую строку введите: Жесткий диск. Из таблицы будут выбираться не все изделия, а только жесткие диски.
25.Задайте условие отбора для поля Цена оптовая. В соответствующую строку введите: < 150. Из таблицы будут выбираться только изделия, имеющие цену менее 150 условных единиц.
26.Нам еще надо задать условие отбора по основному потребительскому параметру - емкости жесткого диска. Однако в таблице Поставщики такого поля нет. С другой стороны, в ней есть поле Модель, которое однозначно определяет параметры изделия. Благодаря тому, что по полю Модель у нас установлена связь с таблицей Комплектующие, мы получаем возможность ввести в запрос поле Основной параметр, взяв его из другой таблицы.
Добавьте список полей таблицы Комплектующие в верхнюю часть бланка запроса по образцу. Для этого щелкните правой кнопкой мыши в верхней области бланка и в открывшемся контекстном меню выберите пункт Добавить таблицу – откроется уже знакомое нам окно Добавление таблицы. Выберите в нем таблицу Комплектующие.
25.Двойным щелчком на поле Основной параметр в списке полей таблицы Комплектующие введите это поле в бланк запроса по образцу.
26.В строке Условие отбора столбца Основной параметр введите условие >500 (емкость диска более пятисот гигабайт).
27.Закройте бланк запроса по образцу. При закрытии запроса введите его имя – Выбор комплектующих.
28.В подокне Комплектующие откройте только что созданный запрос Выбор комплектующих и рассмотрите результирующую таблицу. Ее содержательность зависит от того, что было введено в таблицы Комплектующие и Поставщики при их наполнении. Если ни одно изделие не соответствует условию отбора и получившаяся результирующая таблица не имеет данных, откройте базовые таблицы и наполните их модельными данными, позволяющими проверить работу запроса.
Выше мы рассмотрели, как действует условие отбора, но должны отметить его существенный недостаток. Пользователь базы данных работает с запросами, которые ему подготовил разработчик. Если, например, разработчик предусмотрел запрос, отбирающий изделия, имеющие цену менее 150 условных единиц, то пользователь базы уже не в состоянии отобрать изделия, цена которых менее 140 условных единиц, поскольку у него нет соответствующего запроса
Специальный тип запросов, называемый запросами «с параметром», позволяет пользователю самому ввести критерий отбора данных на этапе запуска запроса. Этим приемом обеспечивается гибкость работы с базой.
Создадим простой запрос, позволяющий отбирать процессоры, предельную цену которых пользователь может задать сам при запуске запроса.
29.Создайте новый запрос с помощью конструктора.
30.Задайте запрос на выборку, основанный на таблице Поставщики, в который войдут следующие поля: Компонент; Модель; Цена оптовая; Поставщик; Телефон.
31.В строке Условие отбора поля Компонент введите: Процессор.
32.Строку Условие отбора для поля Цена оптовая надо заполнить таким образом, чтобы при запуске запроса пользователь получал предложение ввести нужное значение.
Текст, обращенный к пользователю, должен быть заключен в квадратные скобки. Если бы мы хотели отобрать процессоры, цена которых больше 100 единиц, мы бы написали: >100. Если бы нам были нужны процессоры дешевле 80 единиц, мы бы написали <80. Ho если мы хотим дать пользователю возможность выбора, мы должны написать: < [Введите максимальную цену].
33.Закройте запрос. При закрытии сохраните его под именем Выбор комплектующих 2.
34.В окне Комплектующие: база данных откройте панель Запросы и запустите запрос Выбор комплектующих – на экране появится диалоговое окно Введите значение параметра.
35.Введите какое-либо число и щелкните на кнопке ОК. В зависимости от того, что реально содержится в таблице Поставщики, по результатам запроса будет сформирована результирующая таблица.
36. Создайте по одному запросу используя функции BETWEEN, IN, LIKE.