Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Axess_laby.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
2.47 Mб
Скачать

2.2. Многотабличные базы данных.

В реальных базах данных количество полей достаточно велико и составляет десятки и сотни значений. Работать с такой базой данных в однотабличном варианте затруднительно и даже невозможно. Существует теория реляционных баз данных, которая позволяет разбивать исходную таблицу, как правило, имеющую большое количество полей, на несколько таблиц (отношений). Пользователь в этом случае имеет дело с простыми таблицами, имеющими небольшое количество полей. При выполнении же запросов и составлении отчетов программа управления базой данных восстанавливает исходную запись с помощью ключевых полей и связей между таблицами. Разработка баз данных дело достаточно сложное и является предметом изучения отдельного курса. Мы же ограничимся рассмотрением несложных примеров построения многотабличных баз данных.

Упражнение 2.9. Постройте базу данных для фирмы, которая осуществляет сборку компьютеров для продажи. Руководство предприятия заказало базу данных, в которой требуется хранить информацию о наличии комплектующих, а также сведения, о том, где и по какой цене можно их приобрести. Предприятие приобретает комплектующие по оптовым ценам, делает наценку и формирует розничные цены. Стоимость компьютера рассчитывается на основании розничных цен.

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

Создание структуры базы данных.

  1. Создайте файл новой базы данных, присвойте ему имя Комплектующие и поместите его в свою папку.

  2. Создайте две таблицы в режиме конструктора, структура которых указана ниже на рисунке 1. На вопрос о создании ключевого поля в данном случае надо ответить – нет.

Для связи таблицы Комплектующие, с таблицей Поставщики необходимо в ней задать ключевое поле.

Комплектующие

Имя поля

Тип поля

Свойства поля

Компонент

Текстовый

50 символов

Модель

Текстовый

10 символов

Основной параметр

Текстовый

20 символов

Цена розничная

денежный

Количество знаков после запятой-2

Поставщики

Имя поля

Тип поля

Свойства поля

Компонент

Текстовый

50 символов

Модель

Текстовый

10 символов

Цена оптовая

Денежный

Количество знаков после запятой-2

Поставщик

Текстовый

50 символов

Рисунок 1.

В таблице Комплектующие ни одно поле не претендует на уникальность. Поэтому используем составной ключ: Компонент и Модель. Для этого в режиме конструктора при нажатой клавише SHIFT выделите оба поля, щелкните правой кнопкой мыши и в появившемся контекстном меню выберите пункт Ключевое поле.

Ключевое поле в таблице Поставщики можно не создавать, так как записи в ней уникальны и повторений не может быть.

Создание межтабличных связей.

  1. Нажмите на панели инструментов кнопку Схема данных. Щелчком по кнопке Добавить, выберите обе созданные таблицы.

  2. При нажатой клавише SHIFT выделите в таблице Комплектующие два поля: Компонент и Модель.

  3. Перетащите эти поля на список таблицы Поставщики. Появится окно Связи.

  4. На правой панели окна Связи выберите поля Компонент и Модель таблицы Поставщики, включаемые в связь. Поставьте галочку в окошке Обеспечение целостности данных. Программа Обеспечение целостности данных будет следить за работой пользователя, и пресекать его некорректные действия.

  5. Нажмите кнопку Создать и закройте окно схемы данных. Закройте окно Схема данных.

3. Заполните таблицу Комплектующие содержанием, как показано на рисунке 2. При этом для удобства ввода целесообразно поле Компонент привести к виду поля со списком. Для этого в режиме конструктора создайте новую таблицу, содержащую только одно поле Компонент. Присвойте таблице имя Список компонентов. Ключевое поле задавать не следует.

Откройте ее и заполните следующими данными:

  • Материнская плата

  • Процессор

  • Оперативная память

  • Жесткий диск

  • Корпус

  • Дисковод CD-ROM

  • Дисковод гибких дисков

  • Видеоадаптер

  • Звуковая карта

  • Клавиатура

  • Мышь

  • Модем

  • Монитор

  • Сетевая карта

Затем откройте таблицу Комплектующие в режиме конструктора. Выделите поле Компонент и во вкладке Подстановка укажите тип поля Поле со списком. В открывшемся свойстве поля со списком укажите:

  • Тип источника строк – Таблица или Запрос

  • Источник строк – Список компонентов.

В этом случае не будет необходимости вводить с клавиатуры названия компонентов, можно будет их выбирать из раскрывающегося списка.

4. Откройте и заполните содержанием таблицу Поставщики, как показано на рисунке 3. Перед заполнением определите поля Компонент и Поставщик как поля со списком. Для поля Компонент используйте таблицу Список компонентов, а для поля Поставщик создайте таблицу Список поставщиков.

Комплектующие

Компонент

Модель

Основной параметр

Цена розничная

Видеоадаптер

В1

2 000,00р.

Видеоадаптер

В2

1 500,00р.

Видеоадаптер

В3

1 000,00р.

Дисковод CDROM

Д1

2 000,00р.

Дисковод DVD

Д2

3 000,00р.

Дисковод DVD

Д3

1 500,00р.

Жесткий диск

Ж1

120 Гбайт

2 000,00р.

Жесткий диск

Ж2

80 Гбайт

1 800,00р.

Жесткий диск

Ж3

40 Гбайт

1 500,00р.

Звуковая карта

З1

2 000,00р.

Звуковая карта

З2

1 500,00р.

Звуковая карта

З3

1 000,00р.

Клавиатура

К1

1 000,00р.

Клавиатура

К2

700,00р.

Клавиатура

К3

500,00р.

Корпус

КК1

1 500,00р.

Корпус

КК2

1 000,00р.

Корпус

КК3

800,00р.

Материнская плата

М1

8 000,00р.

Материнская плата

М2

6 000,00р.

Материнская плата

М3

4 000,00р.

Модем

ММ1

56 Кбит/сек

1 000,00р.

Модем

ММ2

90 Кбит/сек

2 000,00р.

Монитор

МО1

1280х1024

15 000,00р.

Монитор

МО2

1600х1200

6 000,00р.

Монитор

МО3

1024х768

3 000,00р.

Мышь

МЫ1

звуковая

1 000,00р.

Мышь

МЫ2

оптическая

200,00р.

Мышь

МЫ3

обычная

150,00р.

Оперативная память

О1

2048 Мбайт

3 000,00р.

Оперативная память

О2

1024 Мбайт

2 000,00р.

Оперативная память

О3

512 Мбайт

1 500,00р.

Процессор

П1

4,5 Ггц

6 000,00р.

Процессор

П2

4 Ггц

5 000,00р.

Процессор

П3

2 Ггц

3 000,00р.

Сетевая карта

С1

1 000,00р.

Рисунок 2.

Поставщики.

Компонент

Модель

Цена оптовая

Поставщик

Дисковод CDROM

Д1

1 500,00р.

ГАММА тел.7865495 г.Саратов, ул.Гоголя, 4

Дисковод DVD

Д2

2 500,00р.

ГАММА тел.7865495 г.Саратов, ул.Гоголя, 4

Жесткий диск

Ж1

1 500,00р.

ВЭТА тел.2345612 г.Москва, ул.Кирпичная, 34

Клавиатура

К1

700,00р.

АЛЬФА тел.5642378 г.Казань, ул.Жуковского, 12

Клавиатура

К3

300,00р.

АЛЬФА тел.5642378 г.Казань, ул.Жуковского, 12

Корпус

КК1

1 000,00р.

АЛЬФА тел.5642378 г.Казань, ул.Жуковского, 12

Материнская плата

М3

3 000,00р.

ДЭЛЬТА тел.4523678 г.Воркута, ул.Победы, 18

Монитор

МО1

13 000,00р.

АЛЬФА тел.5642378 г.Казань, ул.Жуковского, 12

Оперативная память

О1

2 500,00р.

АЛЬФА тел.5642378 г.Казань, ул.Жуковского, 12

Процессор

П1

5 000,00р.

АЛЬФА тел.5642378 г.Казань, ул.Жуковского, 12

Процессор

П1

4 000,00р.

ВЭТА тел.2345612 г.Москва, ул.Кирпичная, 34

Процессор

П2

3 700,00р.

ДЭЛЬТА тел.4523678 г.Воркута, ул.Победы, 18

Сетевая карта

С1

600,00р.

ДЭЛЬТА тел.4523678 г.Воркута, ул.Победы, 18

Рисунок 3.

Создание пользовательских форм.

Для удобства ввода данных в СУБД Access предусмотрена возможность создания пользовательских форм. Формы можно создавать с помощью мастера или конструктора. Второй способ предназначен для более квалифицированных пользователей. Новичкам для создания формы лучше воспользоваться мастером для создания форм.

Упражнение 2.10. Создайте составную пользовательскую форму, используя таблицы Комплектующие и Поставщики, показанную на рис. 4.

Для этого:

  1. В окне базы данных откройте вкладку Формы. Щелкните по кнопке Создать.

  2. Затем выберите Мастер форм и в качестве источника данных выберите таблицу Комплектующие. Нажмите кнопку Далее;

  3. Выберите необходимые поля для формы и перенесите их в правое окно;

  4. В строке таблицы и запросы из списка выберите таблицу Поставщики и перетащите в правую часть только необходимое поле. Нажмите кнопку Далее;

  5. Следуйте указаниям мастера форм до получения конечного результата рис.4.

Рисунок 4.

Создание запросов на выборку.

Упражнение 2.11. Создайте запрос о наличии у поставщиков процессоров с частотой 4Ггц и ценой не более 4000р. Для этого:

  1. В окне базы данных откройте вкладку Запросы. Щелкните по кнопке Создать.

  2. В окне Новый запрос выберите Конструктор.

  3. В окне Добавление таблицы выберите таблицу Поставщики.

  4. В списке полей таблицы Поставщики выберите поля, включаемые в результирующую таблицу: Компонент, Модель, Цена оптовая, Поставщик. Выбор производится двойными щелчками на именах полей.

  5. Задайте условие отбора для поля Компонент. В строку Условие отбора введите: Процессор.

  6. Задайте условие отбора для поля Цена оптовая. В строку Условие отбора введите: <=4000.

  7. Еще необходимо задать условие отбора по основному потребительскому параметру – частоте. Для этого добавьте таблицу Комплектующие в верхнюю часть бланка запроса. Для этого щелкните правой кнопкой мыши в верхней части бланка запроса и выберите пункт Добавить таблицу.

  8. Двойным щелчком на поле Основной параметр введите его в бланк запроса. В условие отбора этого поля введите 4 Ггц.

  9. Закройте бланк запроса. При закрытии запроса введите его имя – Выбор комплектующих.

  10. Откройте только что созданный запрос и рассмотрите результирующую таблицу. Ее содержание зависит от того, какое содержимое находилось в таблицах.

Создание запроса с параметром.

Недостатком только что созданного запроса является то, что пользователь не имеет возможности изменять запрос. Например, он не может изменить цену в условии отбора по своему усмотрению. В этом случае на помощь приходит Запрос с параметром.

Упражнение 2.12. Создадим запрос, позволяющий отбирать процессоры, предельную цену которых пользователь может задавать сам при запуске запроса.

Откройте вкладку Запросы и нажмите кнопку Создать.

  1. В открывшемся окне создайте запрос на выборку на основе таблицы Поставщики, в который войдут следующие поля:

  • Компонент

  • Модель

  • Цена оптовая

  • Поставщик

  1. В строке Условие отбора поля Компонент введите: Процессор.

  2. В строке Условие отбора поля Цена оптовая введите: <[Введите максимальную цену]. Текст в квадратных скобках – это текст, обращенный к пользователю.

  3. Закройте запрос и присвойте ему имя Запрос с параметром.

  4. Выполните запрос. На экране появится окно Введите значение параметра.

  5. Введите значение максимальной цены 5000 и щелкните по кнопке ОК.

  6. Ознакомьтесь с результатами запроса. Закройте запрос.

  7. Выполните еще раз запрос при значении максимальной цены 6000.

  8. Ознакомьтесь с результатами запроса. Закройте запрос.

Создание итогового запроса.

Итоговые запросы предназначены для вычисления суммы значений или среднего значения по всем ячейкам поля, также может выбираться максимальное или минимальное значение данных или выполняться какая-либо другая функция.

Пусть фирма собирает компьютеры трех классов: супер, профессиональный, недорогой. Соответственно, каждый класс компьютеров имеет свой набор комплектующих, которые отличаются ценой. Так суперкомпьютер собирается из самых дорогих составляющих, недорогой из самых дешевых и т. д.

Упражнение 2.13. Необходимо подготовить отчет, который определит цену каждого класса компьютеров и количество составляющих. Такой отчет позволит отслеживать изменение цены компьютера при изменении состава комплектующих или поставщиков.

  1. Откройте таблицу Комплектующие в режиме конструктора.

  2. В начало структуры таблицы вставьте новое поле. Для этого выделите первое поле (Компонент) и нажмите клавишу INSERT.

  3. Введите имя нового поля – Класс и определите его как текстовый.

  4. Закройте окно конструктора.

  5. Откройте таблицу Комплектующие и заполните поле Класс, предварительно приведя го к виду поля со списком. Для компонентов, входящих:

  • в суперкомпьютер введите – супер

  • в профессиональный введите – профессиональный

  • в недорогой введите – недорогой.

  1. Закройте таблицу Комплектующие.

  2. Создайте запрос в режиме Конструктора на основе таблицы Комплектующие. В бланк запроса введите поля:

  • Класс;

  • Компонент;

  • Цена розничная.

  1. Для поля Класс введите сортировку по возрастанию.

  2. Выберите пункт меню Вид/Групповые операции. Эта команда необходима для создания в нижней части бланка строки Групповые операции. На основе этой команды создаются итоговые вычисления. Все поля, отобранные в этом запросе, получают в строке значение Группировка.

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

  4. Для поля Цена выберите итоговую функцию Sum – для определения стоимости всего изделия как суммы всех его комплектующих.

  5. Для поля Компонент выберите итоговую функцию Count, определяющую общее количество записей, вошедших в группу. В данном случае это количество узлов, из которых собран компьютер.

  6. Закройте окно запроса и присвойте ему имя – Расчет стоимости компьютера.

  7. Запустите запрос и убедитесь, что он правильно работает.

Оформление результатов запросов в виде документов (отчетов).

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

1. Откройте вкладку Запросы и нажмите кнопу Создать.

2. В отрывшемся окне создайте запрос на выборку на основе таблицы Комплектующие, в который войдут следующие поля:

  • Класс

  • Компонент

  • Цена розничная

  1. В строке Условие отбора поля Класс введите: [введите класс].

  2. Закройте запрос и присвойте ему имя Список компонентов заданного типа компьютера.

  3. Выполните запрос. Если был задан класс профессиональный, то результат будет выглядеть следующим образом:

Класс

Компонент

Цена

профессиональный

Процессор

5 000,00р.

профессиональный

Монитор

6 000,00р.

профессиональный

Модем

2 000,00р.

профессиональный

Материнская плата

6 000,00р.

профессиональный

Оперативная память

2 000,00р.

профессиональный

Жесткий диск

1 800,00р.

профессиональный

Корпус

1 000,00р.

профессиональный

Дисковод DVD

3 000,00р.

профессиональный

Видеоадаптер

1 500,00р.

профессиональный

Звуковая карта

1 500,00р.

профессиональный

Клавиатура

700,00р.

профессиональный

Мышь

200,00р.

Рисунок 4.

Создадим отчет на основе построенного запроса. Для этого:

  1. Выберите вкладку Отчет и нажмите кнопку Создать.

  2. Выберите Мастер отчетов, а в качестве источника запрос Список компонентов заданного типа компьютера.

  3. В окне Создание отчетов выберите все доступные поля.

  4. Добавьте группировку по полю Класс.

  5. Задайте сортировку по возрастанию по полю Компонент.

  6. Нажмите кнопку Итоги. В появившемся окне пометьте галочкой функцию Sum по полю Цена розничная.

  7. Выберите макет Ступенчатый, ориентацию – Книжная, стиль – Деловой.

  8. Присвойте отчету имя Расчет стоимости компьютера. При выборе недорогого компьютера отчет будет иметь вид, показанный на рисунке 5.

Расчет стоимости компьютера

Класс Компонент Цена

недорогой

Видеоадаптер 1 000,00р.

Дисковод DVD 1 500,00р.

Жесткий диск 1 500,00р.

Звуковая карта 1 000,00р.

Клавиатура 500,00р.

Корпус 800,00р.

Материнская плата 4 000,00р.

Монитор 3 000,00р.

Мышь 150,00р.

Оперативная память 1 500,00р.

Процессор 3 000,00р.

Итоги для 'Класс' = недорогой (11 записей)

Sum 17 950,00р.

ИТОГО 17 950,00р.

Рисунок 5.

  1. Улучшите вид отчета. Для этого откройте отчет в режиме конструктора. Откройте Панель элементов из пункта меню Вид. С помощью подсказок ознакомьтесь с назначением кнопок на панели элементов.

  2. Нажмите кнопку Аа и сделайте надпись Класс в заголовке отчета ниже названия отчета слева.

  3. При открытии отчета в режиме конструктора обычно автоматически открывается панель Список полей. Если она не появилась на экране, ее можно вызвать с помощью меню Вид/Список полей. Выберите поле Класс и с помощью мыши перетащите его в заголовок отчета. Разместите это поле справа от надписи Класс. Выделите надпись Поле со списком и удалите ее. Поле Класс расположите справа от надписи Класс.

  4. Удалите в верхнем колонтитуле надпись Класс, а надписи Компонент и Цена переместите левее.

  5. Скройте заголовок группы Класс. Для этого щелкните правой кнопкой мыши по заголовку Класс. В контекстном меню выберите Свойства и укажите Вывод на экран – нет.

  6. В разделе Область данных выделите поля Компонент и Цена и прижмите их к левому краю.

  7. Скройте примечание группы Класс и нижний колонтитул.

  8. Переместите итоговую сумму левее.

  9. Закройте отчет сохраните его.

  10. Откройте отчет. Введите интересующий вас класс компьютера. Просмотрите отчет. Он должен иметь вид, приведенный на рисунке 6. Отформатируйте поле Класс в заголовке отчета по образцу надписи Класс с помощью кнопки Формат по образцу. Выделите надпись и поле Класс. Щелкните по ним правой кнопкой мыши и в контекстном меню выберите Выравнивание по верхнему краю.

  11. Закрой те отчет, сохранив макет отчета.

  12. Просмотрите отчет. Для недорого компьютера он должен иметь вид, показанный на рисунке 6.

Расчет стоимости компьютера

Класс недорогой

Компонент Цена розничная

Видеоадаптер 1 000,00р.

Дисковод DVD 1 500,00р.

Жесткий диск 1 500,00р.

Звуковая карта 1 000,00р.

Клавиатура 500,00р.

Корпус 800,00р.

Материнская плата 4 000,00р.

Монитор 3 000,00р.

Мышь 150,00р.

Оперативная память 1 500,00р.

Процессор 3 000,00р.

ИТОГО 17 950,00р.

Рисунок 6.

Создание кнопочных форм.

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

Упражнение 2.15. Создайте кнопочную форму для разработанной БД.

  1. Вызовите диспетчер кнопочных форм с помощью меню Сервис/Служебные программы/Диспетчер кнопочных форм. Вам предложат создать кнопочную форму, на этот вопрос следует ответить – да.

  2. В окне диспетчера кнопочных форм нажмите кнопку Изменить. Появится окно Изменение страницы кнопочной формы.

  3. Создайте элементы кнопочной формы. Для этого поместите курсор в нижнее окно и нажмите кнопку Создать. Появится окно Изменение элемента кнопочной формы. В строке Текст ведите название формы Ввод и редактирование. В строке Команда выберите Открыть форму для добавления. В третьей строке укажите форму Комплектующие. Нажмите кнопку OK.

  4. По такой же методике создайте элементы (кнопки) для открытия отчета Расчет стоимости компьютера и назовите ее, соответственно, Расчет стоимости компьютера.

  5. Нажмите кнопку Закрыть. Закройте диспетчер кнопочных форм.

  6. В окне форм появилась форма Кнопочная форма. Откройте форму и ознакомьтесь с ее видом.

Затем откройте форму в режиме Конструктор. Измените оформление ее по своему усмотрению. Можно изменять надписи, цвет шрифта и заливки, вставлять рисунки и т. д.

Выберите команду меню Сервис/Параметры запуска. В окне Вывод формы/страницы укажите – Главная кнопочная форма и удалите галочку в окошке Окно базы данных. Закройте свою базу данных. При следующих запусках вашей базы данных перед вами будет открываться кнопочная форма. Окно базы данных будет скрыто от пользователя, и будет вызываться только по мере необходимости.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]