1
СПЕЦИАЛЬНОСТЬ
Книги издательства «Горячая линия - Телеком»
можно заказать через почтовое агентство DESSY: 107113, г.Москва, а/я 10, а также интернет-магазины: www.dessy.ru www.top-kniga.ru Практический курс по электронным таблицам
MS Excel
Практический курс по электронный ным таблицам та
MS Excel
Книга содержит материал, необходимый для быстрого изучения общих принципов создания пользовательских таблиц, построения математическихформулсиспользованием встроенных функций, способов адресации данных, в том числе механизмов внутренней и внешней адресации и адресации с пользовательским именованием, а также средств и основных приемов форматирования чисел. Рассмотрены вопросы построения и настройки диаграмм, создания и ведения списков и БД, решения задач финансового анализа и анализа «что если». Отличительной особенностью и несомненным достоинством книги является наличие вариантов заданий к каждой теме.
Программирование в среде
Visual Basic for Applications
Профаммрашсреде А. Н. Пыльник
Visual Basic for Applications (VBA) - это сочетание одного из самых простых языков программирования и всех вычислительных возможностей Excel. Он прост в освоении и позволяет быстро получать ощутимые результаты конструировать профессиональные приложения, решающие практически все задачи, встречающиеся в среде Windows. При этом создание многих приложений с использованием VBA проще и быстрее, чем при помощи других языков программирования. VBA позволяет легко решать многие задачи, о возможности выполнения которых средствами Excel вы раньше даже и не догадывались.
Работа с текстовым процессором
MS Word
Paioia неистовым процессором
MS Word I—--— . •**
ГА. Новиков П. А. Новиков MB. Орлов А.Н.Пылы«ин
Книга содержит материал, необходимый для изучения и освоения общих принципов работы с наиболее распространенным текстовым редактором Microsoft Word. Большое внимание уделено основам работы и редактированию документов различного назначения, а также созданию графиков, диаграмм, написаниюформул. Отличительной особенностью книги является простота изложения, наличие контрольных вопросов, примеров выполнениязаданий.
Сайт издательства:
www.techbook.ru
дизайн, реклама, полиграфия — www.6v.ru
Н. Н. Гринченко, Е. В. Гусев, Н. П. Макаров, А.Н. Пылькин, Н.И. Цуканова
ПРОЕКТИРОВАНИЕ БАЗ ДАННЫХ
СУБД MICROSOFT
Рекомендовано УМО по образованию в области прикладной информатики в качестве учебного пособия для студентов высших учебных заведений, обучающихся по специальности 351400 «Прикладная информатика» и другим междисциплинарным специальностям»
Москва
Горячая линия - Телеком 2004
УДК 681.3.082 ББК 32.97 П79
П 79
Проектирование баз данных. СУБД Microsoft Access: Учебное пособие для вузов / Н. Н. Гринченко, Е. В. Гусев, Н. П. Макаров. А. Н. Пылькин, Н. И. Цуканова. - М.: Горячая линия-Телеком, 2004. 240с.: ил. ISBN 5-93517-193-7. В форме практических рекомендаций рассмотрены методы создания баз данных с использованием интегрированной среды Microsoft Access. Изложение материала оформлено в виде отдельных разделов, в которых кратко представлен теоретический материал но конкретной теме. Каждая представленная тема может выступать в качестве отдельного практического занятия (или темы лабораторной работы). С этой целью рассмотрены конкретные примеры, приведены вопросы и варианты заданий для самостоятельного выполнения. При описании интерфейса использована последняя на данный момент версия Microsoft Access 2002, Для студентов вузои, будет полезна всем желающим быстро опладеть основами работы с интегрированной средой MS Access 97...2002. ББК 32.97 Адрес издательства н Интернет WWW.TECHBOOK.KU e-mail: radio s_M@ mtu-nei.ru
Учебное издание Г р и н ч е н к о Наталья Николаевна. Гусев Ввгений Владимирович. Макаров Николай Петрович, Нылькнн Александр Николаевич Цуканова Нина Ивановна ПРОЕКТИРОВАНИЕ БАЗ ДАННЫХ. СУБД MICROSOFT ACCESS Учебное пособие для вузов Компьютерная верстка И. М. Чумаковой Обложка художника В. Г. Снгникова ЛР№071825от 1бмарта 1999г. Подписано в печать 15.01.04. Формат 60x88/16. Усл.-псч. л. 14,75. Тираж 2000 экз. Изд. №193. ISBN 5-93517-193-7
© Гринченко Н. Н., Гусев Е. В., Макаров, Н. П., Пылькин А. П.. Цуканова.Н.И., 2004 © Оформление издательства «Горячая линия-Телеком». 2004
Тема 1 ПРОЕКТИРОВАНИЕ РЕЛЯЦИОННЫХ БАЗ ДАННЫХ С ИСПОЛЬЗОВАНИЕМ ЯЯ-ТЕХНОЛОГИИ 1. Основные понятия реляционных баз данных 1.1. Базы данных База данных (БД) - это средство накопления и организации больших массивов информации об объектах некоторой предметной области (ПО). БД должна отображать текущие данные о предметной области, накапливать, хранить информацию и предоставлять различным категориям пользователей быстрый доступ к данным. Для этого данные в базе должны быть структурированы в соответствии с некоторой моделью, отражающей основные объекты ПО, их свойства и связи между ними. БД является частью сложной системы, называемой банком данных или системой баз данных (СБД). Эта система (рис. 1) включает в себя собственно БД, программные, технические, языковые и организационнометодические средства, обеспечивающие централизованное накопление и коллективное многоцелевое использование данных. Одна из компонент СБД - система управления БД (СУБД) представляет собой совокупность языковых и программных средств, с помощью которых БД создается и поддерживается в процессе эксплуатации.
Проектирование баз данных. СУБД MS Access Система баз данных
Информационные компоненты база данных. Данные и метаданные
Программные средства
Организационнометодические средства
Языковые средства
Администратор БД
Рис. 1. Компоненты СБД
При проектировании и эксплуатации БД к ней предъявляются следующие требования: 1. Адекватность отображения ПО (полнота, целостность, непротиворечивость, актуальность данных). 2. Возможность взаимодействия пользователей разных категорий; обеспечение высокой эффективности доступа, 3. Дружественность интерфейса. 4. Обеспечение секретности и конфиденциальности. 5. Обеспечение взаимной независимости программ и данных. 6. Обеспечение надежности БД; защита данных от случайного и преднамеренного разрушения; возможность быстрого и полного восстановления данных в случае сбоев в системе. Лицом, ответственным за создание, эксплуатацию и сопровождение БД является администратор базы данных (АБД). В его обязанности входит выполнение следующих функций: 1. Анализ предметной области, ее описание, формулировка ограничений целостности. 2. Проектирование структуры БД: состава и структуры файлов БД, связей между ними.
Тема I. Проектирование реляционных баз данных
5
3.
Задание ограничений целостности при описании структуры БД и процедур обработки данных.
4.
Первоначальная загрузка и ведение БД.
5.
Защита данных: * обеспечение порядка входа в систему; *
определение прав доступа пользователей к данным;
» выбор и создание программно-технических средств защиты данных; *
тестирование средств защиты данных;
*
сбор статистики об использовании данных;
» исследование случаев нарушения защиты данных; » обеспечение восстановления БД, организация ведения системных журналов. 6. Анализ обращений пользователей к БД. 7.
Работа с пользователями.
8.
Работа над совершенствованием и динамическим развитием БД.
В жизненном цикле БД одним из наиболее важных этапов является этап проектирования, от результатов которого зависит эффективность дальнейшего использования БД в решении задач предметной области. Главная задача, которая решается в процессе проектирования, • • это организация данных: интегрирование, структурирование и определение взаимосвязей. Способ организации данных определяется логической моделью, которая отражает основные сущности ПО и их взаимосвязи. Различные формы представления связей между объектами породили существование различных логических моделей данных, например: иерархическую, сетевую, реляционную. Наибольшую популярность к середине 1980-х годов приобрела реляционная модель в силу ее простоты и математической обоснованности. Как следствие большинство современных СУБД поддерживают эту модель. Поэтому настоящее пособие посвящено проектированию и разработке реляционных баз данных (РБД).
Проектирование баз данных. СУБД MS Access
1.2. Этапы проектирования БД При проектировании БД организацию данных принято рассматривать на трех уровнях: информационно-логическом (мифологическом), датаяогическом (концептуальном) и физическом. Этим уровням соответствуют инфологическая, концептуальная и физическая модели предметной области. Весь процесс проектирования может быть разбит на три этапа (рис. 2). 1-й этап
Проектирование мифологической модели данных
Анализ предметной области: объекты и связи между ними Информационные потребности пользователя (анализ запросов) Анализ существующих и будущих прикладных программ Построение информационной структуры
2-й этап. Проектирование концептуальной модели БД. Выбор СУБД. Отображение инфологической модели на логическую модель
Оценка эксплуатационных характеристик прикладных программ
3-й этап. Проектирование физической модели БД. Структура физической записи
Оценка физической модели БД Реализация БД Рис. 2. Этапы проектирования БД
Тема 1. Проектирование реляционных баз данных
7
1.3. Реляционная модель данных Модель данных - это правила, которые определяют структуру данных, допустимые реализации данных и допустимые операции над данными. Мифологическая модель описывает предметную область на содержательном уровне. На первом этапе при ее разработке осуществляется анализ предметной области, решаемых задач, запросов пользователей и документов, отражающих события и процессы, протекающие в ПО. Результатом этого анализа являются списки объектов предметной области, перечни их свойств или атрибутов, определение связей между объектами и описание структуры ПО в виде диаграммы. Для каждого из атрибутов указываются ограничения на их возможные значения, определяемые свойствами ПО. Такие ограничения называются ограничениями целостности данных. Мифологическая модель объединяет в единое «обобщенное представление» требования отдельных пользователей и служит средством общения между ними, поэтому разрабатывается без учета особенностей представления данных в памяти ЭВМ. Концептуальная модель описывает объекты и связи ПО на формальном уровне. Ее разработка ведется на втором этапе и основывается на инфологической модели, полученной на первом этапе. В процессе разработки осуществляется выбор типа модели данных и определяются ее элементы. Каждая СУБД поддерживает только одну из моделей. Выбор модели данных и выбор СУБД тесно взаимосвязаны. Внутренняя, или физическая, модель данных определяет способ размещения данных непосредственно на машинном носителе, учитывает распределение данных, методы доступа и способы индексирования. В современных прикладных программных средствах этот уровень организации обеспечивается автоматически без вмешательства пользователя. Пользователь, как правило, оперирует в прикладных программах и универсальных программных средствах представлениями СУБД на организацию данных. Таким образом основная задача проектирования заключается в создании инфологической модели ПО и концептуальной БД. 1.3.1. Определение РБД РБД представляет собой совокупность отношений, содержащих всю информацию, которая должна храниться в БД. Отношением называется любая взаимосвязь между объектами и/или их
8
Проектирование баз данных. СУБД MS Access
свойствами. Различают взаимосвязи между объектами, между свойствами одного объекта и между свойствами различных объектов. Отношение задается своим именем и списком атрибутов элементов, связанных этим отношением: <имя отношения>(<список атрибутов>)
Имя отношения выбирается таким образом, чтобы оно поясняло смысл связи между элементами отношения (семантику отношения). Для описания некоторого свойства объекта или связи используется простейший неделимый элемент данных, называемый атрибутом. Атрибут характеризуется именем, типом, значением и другими свойствами. Имя атрибута - это условное обозначение атрибута в процессах обработки данных. Оно должно быть уникальным в пределах одного и того же отношения. Значение атрибута - величина, характеризующая некоторое свойство объекта и связи. Атрибуты соответствуют классам сущностей, объединяемых данным отношением. Список имен атрибутов отношения и их характеристик называют схемой отношения. Характеристики атрибутов задают область допустимых значений (ОДЗ) доя каждого аргумента отношения. Атрибуг или набор атрибутов, которые могут быть использованы для однозначной идентификации конкретного кортежа (конкретного экземпляра отношения), называется первичным ключом отношения или просто ключом. Математически отношение определяется следующим образом: пусть даны N множеств данных D\, D2f £>з, ••-, Av, тогда R есть отношение (связь) между этими множествами, если R - множество упорядоченных W-кортежей вида
, где d\eD\, d2cD2, ..-, dN cDN. Множества D[t D2, ..., DN являются множествами возможных значений атрибутов А\, А2,..., AN отношения R и называются доменами. Таким образом, отношение является подмножеством декартова произведения одного или более доменов D,xD2j:---JcDv. Каждый кортеж в отношении уникален. Пример 1. БД о поставке деталей может быть описана следующими отношениями:
Тема 1. Проектирование реляционных баз данных
9
Деталь (<номер детали>. <название детали>, <цвет>, <вес>). Поставщик (<код поставщика>, <фамилия>, <город>). Поставка деталей (<код поставщикам <номер детали>, <количество>),
Первичные ключи подчеркнуты, Ограничения на значения атрибутов могут быть заданы типом данного для соответствующего атрибута (табл. I). Другая форма представления отношения - табличная. Каждому отношению соответствует таблица с таким же именем. Атрибуту в таблице соответствует столбец с именем атрибута, а каждому кортежу отношения - строка таблицы. Строка таблицы часто называется записью, а значение атрибута - полем записи (по аналогии с сетевой моделью данных), Таблица 1
Тип
Имя атрибута Код поставщика Фамилия
Символьный (3) Символьный (6)
Номер детали
Символьный (10) Целый
Название детали Цвет
Символьный (6) Символьный (6) Целый
Вес Количество
Целый
Пример 2. Описание отношений БД Поставка деталей с помощью табл. 2-4. Таблица 2. Деталь Номер детали
101 102
Название детали
Sec
Цвет
Болт
Черный
Ъ
Муфта
Синий
9
Таблица 3. Поставщик Код поставщика
Фамилия
П1
Иванов
П2
Алексин
Город Ярцево Курск
10
Проектирование баз данных. СУБД MS Access Таблица 4. Поставка деталей Номер детали
Код поставщика
П1 П2
102 101
Количество
40 60
Здесь в отношении Деталь атрибутами являются номер детали, название детали, цвет, вес. Значениями этих атрибутов впервой строке таблицы будут соответственно <101, Болт, Черный, 3>. Каждая строка таблицы описывает конкретный экземпляр сущности Деталь. Доменами атрибутов будут: для номера детали Dt - множество целых чисел, для названия детали D2 - множество символьных строк, названий предметов, для цвета D?, - множество символьных строк, названий цветов, для веса D4 - множество целых чисел. В отношении два кортежа каждый состоит из четырех упорядоченных элементов. Для отношения Поставка деталей первичный ключ является составным <код поставщика, номер оетали>. Таким образом, в ходе разработки РБД должен быть определен состав взаимосвязанных реляционных таблиц и определен состав атрибутов каждого отношения с указанием ограничений на их допустимые значения. Состав атрибутов должен отвечать требованиям нормализации. Нормализация отношений производится на этапе концептуального проектирования БД, Существует несколько нормальных форм (НФ) реляционной модели данных (РМД), которые позволяют исключить избыточное дублирование данных, обеспечить целостность и непротиворечивость данных. При первой нормальной форме (1НФ) все атрибуты отношения должны быть простыми (атомарными, неделимыми) с точки зрения СУБД. НФ более высокого порядка основаны на понятии функциональной зависимости (ФЗ), которая может быть определена следующим образом. Пусть А и В - подмножества атрибутов отношения. Говорят, что В функционально зависит от .4 (Л—>5), если для каждого значения А существует ровно одно связанное значение В. ФЗ можно выявить, исходя из базовых свойств самих атрибутов путем анализа.
Тема 1. Проектирование реляционных баз данных
11
При второй нормальной форме (2НФ) должна обеспечиваться 1НФ и каждый неключевой атрибут функционально полно зависит от ключа. Полная ФЗ от ключа означает, что если ключ составной, то любой неключевой атрибут зависит от всего ключа и не зависит ни от какой его части. При третьей нормальной форме (ЗНФ) отношение должно находиться 2НФ, а также каждый неключевой атрибут нетранзитивно зависит от ключа, проще говоря: отсутствуют ФЗ между неключевыми атрибутами. Нормальная форма Бойса-Кодда (НФБК) является развитием ЗНФ и требует, чтобы в отношении были только такие ФЗ. левая часть которых является потенциальным ключом отношения. Потенциальным ключом называется такое подмножество атрибутов отношения, которое удовлетворяет определению первичного ключа отношения. Фактически первичный ключ - это один из потенциальных ключей, назначенный в качестве первичного. Поясним эти определения на примере. Пример 3. Рассмотрим БД для консультанта радиоакадемии Успеваемость студентов общежития. БД состоит из одного отношения, в котором представлена информация о студентах, проживающих в общежитии, и их оценках по изучаемым дисциплинам в различных семестрах. Задано отношение: Студент (<Сном>, <Сфам>, <Кном>, <Тном>, <Дисциплина>, <Семеспгр>, <Оценка>)
Основные атрибуты отношения: номер зачетной книжки студента (Сном); фамилия студента (Сфам); номер комнаты (Кном), где он проживает; номер телефона (Тном) в комнате (предполагается, что один телефон на одну комнату); дисциплина; семестр; оценка. Диаграмма (рис. 3) отражает ФЗ между атрибутами отношения: Сном~>Сфам, Сном—>Кном, Сном->Тном, Кном~>Тном, Тном—>Кном, <Сном, Дисциплина, Семестр>~> ->0ценка.
Проектирование баз данных. СУБД MS Access
Рис. 3. Диаграмма ФЗ отношения Студент Рассмотрим некоторые определения. Потенциальный ключ представляет собой атрибут (или множество атрибутов), который может быть использован для данного отношения в качестве первичного ключа. Детерминантом называется левая часть ФЗ. Большинство возможных аномалий в БД будет устранено в случае приведения каждого отношения в НФБК. Эта форма определяется следующим образом: отношение находится в НФБК тогда и только тогда, когда каждый детерминант отношения является потенциальным ключом. Существуют НФ более высокого уровня, которые накладывают более сильные ограничения; на практике в большинстве случаев достаточно получить отношения в НФБК. В отношении Успеваемость студентов общежития один потенциальный ключ <Сном, Дисциплина, Семестрх Детерминантами являются: <Сном, Дисциплина, Семестр>, <Сном>, <Кном>, <Тном>. Представим списки детерминантов и потенциальных ключей в виде таблицы (табл. 5). Таблица 5 Потенциальные ключи <Сном, Дисциплина, Семестр>
Детерминанты <Сном, Дисциплина, Семестр> <Сном> <Кном> <Тном>
Очевидно, что данное отношение не находится в НФБК, так как детерминанты Сном, Кном, Тном не являются потенциальными ключами. Для приведения отношения к НФБК его следует разбить на три отношения:
Тема 1. Проектирование реляционных баз данных
13
Студент (Сном, Сфам, Кном) Оценка (Сном, Дисциплина, Семес'ф, Оценка) Телефон (Кном, Тном).
Каждое из этих отношений находится в НФБК, так как в них все детерминанты являются потенциальными ключами, 1.3.2. Целостность реляционных данных Логические ограничения, которые накладываются на данные. называются ограничениями целостности. Они формулируются в соответствии со свойствами ПО в форме предикатов, которые для одних множеств данных могут иметь значение истина, для других - ложь. Ограничения используются в моделях данных для поддержания целостности данных при функционировании системы. То есть СУБД должна контролировать соответствие данных заданным ограничениям при переводе БД из одного состояния в другое. Использование ограничений связано также с адекватностью отражения ПО с помощью данных, хранимых в БД. Выделяют два основных вида ограничений: внутренние и явные. Внутренние — это ограничения, свойственные собственно модели данных. Они накладываются на структуру отношений, на связи, на допустимые значения наборов данных, заложенные в выбранной модели данных. Явные ограничения - это ограничения, задаваемые семантикой ПО. Они описывают области допустимых значений атрибутов, соотношение между атрибутами, динамику их изменения и т. д. В РМД существует два вида внутренних ограничений целостности: 1.
Целостность по существованию - потенциальный ключ отношения не может иметь пустого (NULL) значения. Иными словами, так как потенциальный ключ отношения позволяет из всего множества экземпляров сущности выделить только один, то сущность, не имеющая идентификатора, не существует.
2. Целостность по связи - определяется понятием внешнего ключа (ВК) отношения: подмножество атрибутов отношения R2 называется внешним ключом для отношения RI, если каждому значению ВК отношения R2 найдется такое же значение первичного ключа в отношении RI. Внешний ключ является тем клеем, который обеспечивает связывание отдельных отноше-
14
Проектирование баз данных. СУБД MS Access
ний РБД в единое целое. Целостность данных по связи означает систему правил, используемых в СУБД для поддержания связей между записями в связанных таблицах, а также обеспечивает защиту от случайного удаления или изменения связанных данных, от некорректного изменения ключевых полей. Способы реализации внутренних ограничений целостности зависят от конкретной СУБД. Для СУБД Access они будут рассмотрены после общего знакомства с этой системой. 1.3.3. Реляционные операции. Операции над отношениями Основными операциями над отношениями РМД являются 8 операций, входящих в реляционную алгебру Кодда (автора РМД). Реляционная алгебра Кодда включает традиционные операции над множествами: объединение, пересечение, разность (вычитание), декартово произведение - и специальные операции: выбор, проекция, соединение и деление. Совокупность этих операций образует замкнутую алгебру отношений. Замкнутость определяется тем, что аргументами операции реляционной алгебры являются отношения и результатом обработки всегда является новое отношение, которое также может быть аргументом в другой операции (по аналогии с обычной алгеброй чисел). Рассмотрим основные операции реляционной алгебры. Объединение - операция выполняется над двумя совместными отношениями R\, R2 (с идентичной структурой - d\, d2, ---, dn). В результате операции объединения строится новое отношение R = RI U #2- Отношение R имеет тот же состав атрибутов и совокупность кортежей исходных отношений. Причем в эту совокупность не включаются дубликаты по определению отношения. Пример 4. Ниже приведены исходные отношения: R\ «Клиенты банка А» (табл. 6) и R2 «Клиенты банка В» (табл. 7) и результат объединения - R (табл. 8) Таблица 6. Rt «Клиенты банка А» Город
К11 К12 К13
Фамилия
Москва Санкт-Петербург
Петров Смирнов
Воронеж
Соколов
15
Тема I. Проектирование реляционных баз данных
Таблица 7. R2 «Клиенты банка В» Город
К21 К22 К23
Фамилия
Самара Москва
Петров
Тверь
Семенов
Петров Таблица 8. К «Клиенты» Город
Фамилия
кп
Москва
Петров
К12 К13 К21 К23
Санкт-Петербург
Смирнов
Воронеж
Соколов
Самара
Петров
Тверь
Семенов
Пересечение - операция выполняется над двумя совместными отношениями R], fa. Результирующее отношение RP = R[ n RI содержит кортежи, которые есть в каждом из двух исходных. Результат пересечения имеет тот же состав атрибутов, что и в исходных отношениях. Пересечение двух отношений - R\, «Клиенты банка А» и Й2, «Клиенты банка В» дает одно отношение RP «Клиент» (табл. 9). Таблица 9. RP «Пересечение отношений» Город КЩК22)
Москва
Фамилия Петров
Вычитание - операция выполняется над двумя совместными отношениями R[t R2. В результате операции вычитания строится новое отношение RV = RI - R2 с идентичным набором атрибутов, содержащее только те кортежи первого отношения, R\, которые не входят в другое отношение, /?2. Вычитание отношения R? «Клиенты банка В» из отношения и, «Клиенты банка А», поскольку Л"11 = Л22, дает отношение RV «Клиент только банка В»: RV = Я, - R2 = fK\ 1, К12. /аЗ/ - /А21, КП, /Ш/ = /7П2, ЮЗ/.
Декартово произведение выполняется над двумя отношениями RI, R2, имеющими в общем случае разный состав атрибутов: (d\, d2f..., d,,) и (pi, p2, -.., p,J соответственно. В результате операции образуется новое отношение RD = R\ x R2, которое включает
16
Проектирование баз данных. СУБД MS Access
все атрибуты исходных относпений (d\, d2, ..., dn, pi, /?2, .... р,„). Результирующее отношение состоит из всевозможных сочетаний кортежей исходных отношений R\ и R2. Число кортежей декартова (мощность) отношения-произведения равно произведению мощностей исходных отношений. Пример 5. Декартово произведение двух отношений /?L «Студент» (табл. 10) и #2 «Предмет» (табл. 11) дает новое отношение RD «Экзаменационная ведомость» (табл. 12), которое содержит все атрибуты исходных отношений. Таблица 10. RI «Студент» Фамилия
Номер,
кп
11
К12 KI3
12
Иванов Петров Сидоров
13
Таблица 11. RJ «Предмет» Код
Наименование
Математика Информатика
Ш
К21
га
К22
Таблица 12. RD «Экзаменационная ведомость» Номер КП
кп
К21
11
К22
12
К12
К21
К12
К22
К13 К13
К21
13 11 12
К22
13
Фамилия Иванов Петров Сидоров Иванов Петров Сидоров
Код
Наименование
Оценка
Ш
Математика Математика Математика Информатика Информатика Информатика
5 3 5 5 4
Ш П1
П2 П2 П2
4
Заметим, что в полученное отношение целесообразно добавить атрибут Оценка для записи результатов экзамена. Выбор - операция выполняется над одним отношением R. Для отношения R по заданному условию (предикату) осуществляется выборка подмножества кортежей. Результирующее отношение имеет ту же структуру, что и исходное отношение, но число его кортежей будет меньше (или равно) числа кортежей исходного от-
17
Тема 1. Проектирование реляционных баз данных
ношения. Например, выбрать студентов, сдавших математику на отлично: Выбор (Экзаменационная ведомость) Если Оценка = 5.
Проекция - операция выполняется над одним отношением R. Операция проекции формирует новое отношение (RPR) с заданным подмножеством атрибутов исходного отношения R. Оно может содержать меньше кортежей, так как после отбрасывания в исходном отношении R части атрибутов (возможного исключения первичного ключа) могут образоваться кортежи-дубли, которые из результирующего отношения исключаются по определению. Пример 6. Ниже приведен пример исходного отношения R «Служащий» (табл. 13) и результат проекции (RPR) этого отношения на два его атрибута -Должность и Номер отдела (табл. 14). Таблица 13. R «Служащий» Служащий Иванов
Номер отдела
Должность
01
Инженер
Петров
02
Инженер
Нестеров
01 02
Лаборант
Никитин
Инженер Таблица 14. Отношение RPR
Номер отдела
01 02 02
Должность Инженер Инженер Лаборант
Соединение выполняется для заданного условия соединения над двумя логически связанными отношениями. Исходные отношения RI и R2 имеют разные структуры, в которых есть одинаковые атрибуты - внешние ключи (ключи связи). Операция соединения формирует новое отношение, структура которого является совокупностью всех атрибутов исходных отношений. Результирующие кортежи формируются соединением каждого кортежа из R\ с теми кортежами RI, для которых выполняется условие соединения. В зависимости от этого условия соединение называется: естественным ~ равенство значений общих атрибутов отношений R1
18
Проектирование баз данных. СУБД MS Access
и R2; эквисоединением - равенство значений атрибутов, входящих в условие соединения; тета-соединением - другой знак сравнения. Операция соединения имеет большое значение для РБД, так как в процессе нормализации отношений исходное нормализованное отношение разбивается на несколько более мелких отношений, которые при выполнении запросов пользователя требуется, как правило, вновь соединять для восстановления исходного отношения. Целение - операция выполняется над двумя отношениями R\ и Й2, имеющими в общем случае разные структуры и часть одинаковых атрибутов. В результате операции образуется новое отношение, структура которого получается исключением из множества атрибутов отношения RI множества атрибутов отношения R2. Результирующие строки образуются из тех строк отношения /?ь значения несовпадающих атрибутов которых одинаковые, а значения общих атрибутов образуют отношение, совпадающее с отношением^Например, чтобы узнать кто из студентов получил по математике 5 и по информатике 4, надо разделить отношения Экзаменационная ведомость на вспомогательное отношение Мат5Физ4 со схемой: Мат5Физ4 (Наименование, Оценка) Математика 5 Информатика 4
В результате получим отношение: (Номер, Фамилия, Код) 13 Сидоров Ш
Рассмотренные выше операции в той или иной мере реализуются в языке манипулирования данными (ЯМД) СУБД, обеспечивающим обработку реляционных таблиц. К таким языкам относится, например, язык SQL (Structured Query Language), язык QBE (Query By Example) и другие языки запросов. Развитие реляционного подхода привело к созданию реляционных языков. Например, язык SQL, реализованный в большинстве СУБД, является более чем реляционно-полным, так как кроме операций реляционной алгебры он содержит полный набор операторов над кортежами - Включить, Удалить, Изменить, а также реализует арифметические операции и операции сравнения.
Тема 1. Проектирование реляционных баз данных
19
1.3.4. Преимущества и недостатки реляционных моделей Реляционные модели имеют ряд достоинств. К ним относятся: простота представления данных благодаря табличной форме, минимальная избыточность данных при нормализации отношений. В реляционных моделях обеспечивается: независимость приложений пользователя от данных, допускающая включение или удаление отношений, изменение атрибутного состава отношений. В отличие от иерархических и сетевых, РБД не требуют описания схемы данных и его генерации. К недостаткам реляционной модели можно отнести то, что нормализация данных реляционной модели приводит к значительной фрагментации данных, в то время как в большинстве задач необходимо объединение фрагментированных данных.
Контрольные вопросы 1. Что такое БД? 2.
Что такое СБД?
3. 4. 5. 6.
Требования, предъявляемые к БД. Функции АБД. Этапы проектирования БД. Дать определение инфологической модели БД.
7. Дать определение концептуальной модели БД. 8.
Что такое модель данных?
9. Какие существуют модели данных? 10. Из каких элементов состоит любая модель данных? 11. Дать определение РМД. 12. Что представляют собой структуры РМД? 13. Каковы ограничения целостности РМД? 14. Операции РМД. 15. 16. 17. 18.
Дать определение отношения. Дать определение первичного ключа отношения. Дать определение внешнего ключа отношения. Дать определение потенциального ключа отношения,
19. Что такое ФЗ?
20
Проектирование баз данных. СУБД MS Access
20. В чем заключается процесс нормализации отношения? 21. Дать определение НФБК. 22. Почему отношение надо приводить к НФБК? 23. Дать определение 1, 2, 3 НФ.
2. Проектирование РБД с использованием .ЕЯ-технологии 2.1. Постановка задачи проектирования РБД Целью разработки БД является определение ее логической структуры. В результате проектирования должен быть определен состав реляционных таблиц, для каждой таблицы - состав ее атрибутов (столбцов) и логические связи между таблицами. Для каждого атрибута должны быть заданы тип данного, его размер и ограничения целостности. Для каждой таблицы - первичный ключ, потенциальные ключи и внешние ключи. При этом получаемая логическая модель оценивается по достижению следующих целей проектирования; 1. Возможности хранения всех необходимых данных в БД. 2. Исключения избыточных данных. 3. Сведения числа хранимых отношений в БД к минимуму. 4. Нормализации отношений для упрощения решения проблем, связанных с обновлением, добавлением и удалением данных. Первый шаг процесса проектирования состоит в определении как всех атрибутов, наличия которых в БД ожидает пользователь, так и связей между атрибутами. Этот шаг выполняется на основе анализа документов с данными, запросов пользователей и других сведений об объектах и процессах, характеризующих предметную область. После определения состава данных, подлежащих хранению з БД, должен быть произведен их анализ и структурирование. 2.2. Один из подходов к проектированию БД: метод «сущность-связь» Разработку логической модели можно осуществлять различными методами. Наиболее формализованным и простым для понимания является метод «сущность-связь», или ER-метод. Суть метода состоит в построении ER-диаграмм, отображающих в гра-
Тема 1. Проектирование реляционных баз данных
21
фической форме основные объекты ПО и связи между ними, и в определении характеристик этих связей. Затем по четким правилам делается переход от £У?-диаграмм к таблицам БД, осуществляется наполнение таблиц атрибутами и проверка их на выполнение условий нормализации (НФБК). Определяются ключевые атрибуты таблиц и связи между таблицами. Результатом проектирования является схема данных БД. Рассмотрим более подробно отдельные этапы метода «сущность-связь». Для этого вначале познакомимся с некоторыми понятиями в области анализа данных. 2.2.1. Сущности и связи Сущность - это объект, информация о котором должна быть представлена в БД (обычно соответствует существительному). Экземпляр сущности - это информация о конкретном представителе объекта. Например, для сущности Студент экземпляром является Петухов В. В., а для сущности Группа - экземпляром является 144. Связь - соединение между двумя и более сущностями (соответствует глаголу). Экземпляр связи - это конкретная связь между конкретными представителями объектов. Например, для связи Студент учится в группе экземпляром является Петухов В. В. учится в группе 144. Атрибут - свойство сущности или связи. Например, Фамилия, Имя, Отчество есть атрибуты сущности Личность, а слова Терехин, Александр, Николаевич являются экземплярами этих атрибутов. Атрибут или набор атрибутов, используемый для однозначной идентификации экземпляра сущности, называется ключом сущности. Каждый экземпляр связи определяется набором ключей сущностей, соединяемых этой связью. Пример 7. Рассмотрим БД о преподавателях и о дисциплинах, которые они читают. Сущности ПО: Преподаватель, Дисциплина. Связь между ними: Преподаватель читает Дисциплину, 2.2.2. Построение ER-диаграммы ПО Рассмотрим построение £7?-диаграммы, описывающей структуру ПО. В £7?-диаграмме для отображения сущностей используются прямоугольники, а для отображения связей - ромбы. Различают ER-диаграммы для экземпляров сущностей и ЕЯ-диаграммы
22
Проектирование баз данных. СУБД MS Access
для классов сущностей. Ниже приведены £й-диаграммы обоих типов для БД Преподаватель читает дисциплину (рис. 4). ПОИС ПСИИ
Информатика
Математика Рис. 4. ER-диаграмма для экземпляров сущностей и связей
Здесь П1, П2, ПЗ, П4 различные преподаватели, а ПОИС, ПСИИ, Информатика, Математика - названия дисциплин. Дисциплина
Преподаватель
<кп,кд> Рис. 5. £й-диаграмма классов КП (код преподавателя), КД (код дисциплины) - атрибуты, являющиеся первичными ключами соответственно сущностей Преподаватель и Дисциплина. Для каждого экземпляра сущности Преподаватель и Дисциплина коды различны. Ключ связи - составной из двух атрибутов <КП, КД>. На первом этапе необходимы только атрибуты, являющиеся ключами сущностей. Другие атрибуты вместе с определенными над ними ФЗ добавляются в отношения на более поздних этапах. Чаще всего встречаются бинарные связи, т. е. связи между двумя сущностями, но могут быть и связи более высокого порядка, когда по смыслу неразрывно соединены несколько сущностей. Связь «Преподаватель читает дисциплину» является бинарной, она связывает только две сущности, а связь «Преподаватель читает дисциплину для специальности» является тройственной, она связывает три сущности, и т. д. Сначала рассмотрим наиболее простые и распространенные бинарные связи. 2.2.3. Характеристики связей Связь между сущностями имеет две характеристики: степень связи и класс принадлежности сущности к связи. Значения этих характеристик могут быть определены из анализа связей между
Тема 1. Проектирование реляционных баз данных
23
экземплярами сущностей. Степень связи показывает, сколько экземпляров одной сущности могут быть связаны с каждым экземпляром другой сущности. Степень связи оценивается с каждой из сторон. Степень связи может иметь одно из трех значений: •
один к одному (1:1);
•
один ко многим (1:МилиМ:1);
•
многие ко многим (M:N).
Связь 1:1 означает, что каждый экземпляр первой сущности может быть связан только с одним экземпляром второй сущности и наоборот. Связь 1:М означает, что каждый экземпляр первой сущности может быть связан с несколькими экземплярами второй сущности, а каждый экземпляр второй сущности может быть связан только с одним экземпляром первой сущности. Связь M:N означает, что каждый экземпляр первой сущности может быть связан с несколькими экземплярами второй сущности и наоборот. Класс принадлежности сущности к связи может быть обязательным и необязательным. При обязательном классе принадлежности каждый экземпляр сущности обязательно должен быть связан с другой сущностью, при необязательном классе принадлежности не требуется, чтобы каждый экземпляр сущности был связан с каким-либо экземпляром другой сущности. Другими словами, в БД хранится информация обо всех экземплярах сущностей, но только некоторые из них связаны с экземплярами другой сущности. Для отображения характеристик связи на диаграмме может использоваться, например, символ «точка». Если точка внутри прямоугольника, то соответствующая прямоугольнику сущность имеет обязательный класс принадлежности. Если вне прямоугольника, то необязательный класс принадлежности. Цифры или буквы рядом с точками указывают на степень связи. Сочетание трех типов связей с двумя классами принадлежности дают возможность описания множества различных вариантов связей в предметной области. Чтобы лучше усвоить введенные понятия, рассмотрим на примерах некоторые случаи и для них построим ЕД-диаграммы. Существуют различные правила взаимоотношений между сущностями Преподаватель и Дисциплина, принятые в различных учебных заведениях.
:
•
Проектирование баз данных. СУБД MS Access
Случай I. Каждый преподаватель может читать только одну Дисциплину, каждая Дисциплина читается не более чем одним Преподавателем. Степень связи /:/, класс принадлежности обеих сущностей обязательный (рис. 6). Степень связи равна 1 : 1 , и класс принадлежности сущностей Преподаватель и Дисциплина является обязательным
Дисциплина
<КП, КД> Рис. 6. Отношение сущностей и £7?-диаграммы для случая I
Здесь Д1, Д2, ДЗ, Д4 - названия дисциплин. КП, КД - ключи сущностей соответственно Преподаватель и Дисциплина. Случай 2. Преподаватель может читать только одну Дисциплину, каждая Дисциплина читается не более чем одним Преподавателем. Есть преподаватели, которые в настоящий момент не заняты в учебном процессе (находятся на повышении квалификации, занимаются административной работой и т.п.). Степень связи 1:1, класс принадлежности сущности Дисциплина обязательный, сущности Преподаватель - необязательный (рис. 7). Степень связи равна 1:1, и класс Д2 принадлежности сущности Дисциплина является обязательным
Преподаватель
Дисциплина
КП Рис. 7. Отношение сущностей и ЕЯ-диаграммы для случая 2
Случай 3. Преподаватель может читать только охну Дисциплину, Дисциплина читается не более чем одним Преподавателем, Есть преподаватели, которые в настоящий момент не заняты
Тема 1. Проектирование реляционных баз данных
25
в учебном процессе, и есть дисциплины в учебном плане, которые никем не читаются. Степень связи /:/, класс принадлежности обеих сущностей необязательный (рис. 8). Д] Степень связи равна 1;1,и класс I—I J Д2 принадлежности к связи ни одной из сущностей не является обязательным
Дисциплина
кп
\S
кд
Рис. 8. Отношение сущностей и ЕЯ-диаграммы для случая 3 Случай 4. Каждый Преподаватель может читать одновременно несколько Дисциплин, но каждая Дисциплина читается не более чем одним Преподавателем. Есть преподаватели, которые в настоящий момент не заняты в учебном процессе, и есть дисциплины в учебном плане, которые никем не читаются. Степень связи 1:М, класс принадлежности обеих сущностей необязательный (рис. 9).
Степень связи равна 1 :N, и класс принадлежности ни одной из сущностей не является Д5 обязательным
Дисциплина кп N/ кд Рис. 9. Отношение сущностей и ЕЯ-диаграммы для случая 4 Случай 5. Каждый Преподаватель читает не более одной Дисциплины, но каждая Дисциплина может читаться несколькими Преподавателями (рис. 10).
Проектирование баз данных. СУБД MS Access
f~*\ д3 ^^
Степень связи равна N:l, и класс принадлежности обеих сущностей является
Д4 обязательным
кп
\/
кд
Рис. 10. Отношение сущностей и ЕЯ-диаграммы для случая 5
Случай 6. Преподаватель может читать несколько Дисциплин, к Дисциплина может читаться несколькими Преподавателями. Есть преподаватели, которые в настоящий момент не заняты в учебном процессе, и есть дисциплины в учебном плане, которые никем не читаются. Степень связи «многие ко многим», класс принадлежности обеих сущностей необязательный (рис. 11). Ц1
Д2 Степень связи равна M:N, и класс принадлежности д4 ни одной из сущностей не является Д5 обязательным Дб •Г-
Дисциплина
кп
\/
кд
Рис. 11. Отношение сущностей и ER-диаграммы для случая 6
Контрольные вопросы 1. Что такое сущность? Что такое экземпляр сущности? Приведите пример. 2. Что такое атрибут сущности? Приведите пример.
Тема 1. Проектирование реляционных баз данных
27
3. 4. 5. 6.
Что называется связью? Как изображаются сущности и связи на диаграмме? По каким правилам строится £7?-диаграмма предметной области? Что такое степень связи? Какие типы связей между сущностями могут быть? 7. Как определить степень связи? 8. Что такое бинарная связь и связь более высокого порядка? Приведите примеры. 9. Что характеризует класс принадлежности сущности связи? Какие классы принадлежности могут быть? 10. Как определить класс принадлежности? 11. Что такое ключевой атрибут сущности, связи, отношения?
Задание 1 Постройте ЕЯ-диаграмму и определите характеристики связей для следующих случаев из предметной области: 1. Личность имеет адрес прописки и может иметь адрес местожительства. 2. Изделие выпускается фирмой-изготовителем. Каждый вид изделия выпускается только одной фирмой, каждая фирма выпускает только один вид изделия. В базе должна храниться информация о всех фирмах города, среди них не только фирмыизготовители. 3. Врач принимает пациента поликлиники. 4. Троллейбус обслуживает маршрут. 5. Маршрут состоит из остановок. 6. Клиент делает заказ на ремонт оборудования. 7. Заказы на ремонт оборудования выполняют сотрудники мастерской. 8. Мастер руководит сборщиком в мастерской. 9. Для выполнения заказа необходимы трудовые ресурсы, материалы, оборудование. 10. Изделие имеет тип и характеристики. 11. Пациент поставлен на учет в соответствии с диагнозом. 12. В аптеке имеется лекарство.
Тема 2 ПОЛУЧЕНИЕ ОТНОШЕНИИ ИЗ ДИАГРАММЫ ЯД-ТИПА Общий подход к построению БД с использованием ЕЯ-метода состоит в выполнении следующих шагов: 1. Построения диаграммы ЕЯ-типа, включающей в себя все сущности и связи, важные с точки зрения интересов организации. 2. Анализа связей и определения их характеристик: степени связи и класса принадлежности. 3. Построения набора предварительных отношений с указанием предполагаемого первичного ключа для каждого отношения. 4. Подготовки списка всех представляющих интерес атрибутов (тех из них, которые не были уже перечислены в диаграмме ЕЯ-типа в качестве ключей сущности) и назначения каждого из этих атрибутов одному из предварительных отношений с тем условием, чтобы эти отношения находились в НФБК. 5. Проверки, все ли полученные отношения находятся в НФБК. 6. Построения схемы данных. 7. Если полученные в итоге отношения не находятся в НФБК или если некоторым атрибутам не находится логически обоснованных мест в предварительных отношениях, то в этих случаях необходимо пересмотреть ЕЯ-диаграммы на предмет устранения возможных затруднений. Ранее были рассмотрены первые два шага процесса проектирования, третий шаг - построение предварительных отношений выполняется по определенным правилам, рассмотрению которых посвящены следующие разделы.
Тема 2. Получение отношений из диаграммы £У?-типа
29
1. Предварительные отношения для бинарных связей 1:1 Перечень общих правил генерации отношений из диаграмм ЕЯ-типа можно получить, опираясь на класс принадлежности и степень связи как на определяющие факторы. Ниже приводятся эти правила, во всех таблицах и рисунках ключевые атрибуты выделены подчеркиванием. Правило 1. Если степень бинарной связи /:/ и класс принадлежности обеих сущностей является обязательным, то требуется только одно отношение. Первичным ключом этого отношения может быть ключ любой из двух сущностей. Пример 8. Преподаватель читает Дисциплину (рис. 12). Дисциплина
Преподаватель
кп
кд Рис. 12. £Я-диаграмма для примера 8
Получаем отношение Преподаватель (КП, Фамилия, Телефон, КД, Дисциплина, число часов) (табл. 15), степень связи 1:1, класс принадлежности обязательный. Таблица 15. Преподаватель КП
ш П2 ПЗ П4
Фамилия Иванов Андреев Суслов Репин
Телефон 234566 233367 226785 274564
КД
Д1 Д2
дз
Д4
Дисциплина ПОИС Математика Физика Информатика
Число часов 48 56 34 68
Гарантируется однократное появление каждого значения КП и КД. Отношение никогда не будет содержать ни пустых данных, ни повторяющихся групп избыточных данных.
Проектирование баз данных. СУБД MS Access Правило 2. Если степень бинарной связи 1:1 и класс принадлежности одной сущности является обязательным, а другой - необязательным, то необходимо построение двух отношений. Под каждую сущность выделяется одно отношение, при этом ключ сущности должен служить первичным ключом для соответствующего отношения. Кроме того, ключ сущности, для которого класс принадлежности является необязательным, добавляется в качестве атрибута в отношение, выделенное для сущности с обязательным классом принадлежности. Пример 9. Класс принадлежности сущности Преподаватель обязательный, а сущности Дисциплина ~ необязательный (рис. 13). Дисциплина
Преподаватель
кп
кд Рис. 13. ЕЯ-диаграмма для примера 9
Получаем отношения: Преподаватель (КП, Фамилия, Телефон, КД) (табл. 16), Дисциплина (КД. наименование, число часов) (табл. 17). Таблица 16. Преподаватель
кп П1 П2 ПЗ
Телефон
Фамилия Иванов Андреев Суслов
234566 233367 226785
КД Д1 Д2
ДЗ Таблица 17. Дисциплина
Дисциплина
КД
Д1
поис
Д2 ДЗ Д4
Математика Физика Информатика
Число часов 48 56 34 68
Пример 10. Класс принадлежности сущности Преподаватель необязательный, а сущности Дисциплина - обязательный (рис. 14),
Тема 2. Получение отношений из диаграммы ER-тиш Преподаватель
Дисциплина
ЕО1
кЛ Рис. 14. ЕЯ-диаграмма для примера 10
Получаем отношения: Преподаватель (КП, Фамилия, Телефон) (табл. 18), Дисциплина (КД. наименование, число часов, КП) (табл. 19). Таблица 18. Преподаватель
КП
Фамилия
Телефон
П1
Иванов
234566
П2
Андреев
пз
233367
Суслов
226785
П4
Репин
274564 Таблица 19. Дисциплина
щ
КД
Дисциплина
КП
Число часов
поис
48
Д2
Математика
ДЗ
Физика
56 34
Ш П2 ПЗ
Правило 3. Если степень бинарной связи равна /:/ и класс принадлежности ни одной из сущностей не является обязательным, то необходимо использовать три отношения: по одному для каждой сущности и одно отношение для связи. Причем ключ каждой сущности используется в качестве первичного ключа соответствующего отношения. Отношение связи должно иметь в числе своих атрибутов ключи каждой сущности. Пример 11. Класс принадлежности обеих сущностей - Преподаватель и Дисциплина ~ необязательный (рис. 15). Дисциплина
Преподаватель
Рис. 15. Ей-диаграмма для примера 11
Проектирование баз данных. СУБД MS Access Получаем отношения: Преподаватель (КП, Фамилия, Телефон) (табл. 20), Дисциплина (КД, наименование, число часов) (табл. 21), читает (КП, КД) (табл. 22). Таблица 20. Преподаватель Фамилия
КП
Телефон
Иванов Андреев Суслов Репин
П1 П2 ПЗ П4
234566 233367 226785 274564
М!
Таблица 21. Дисциплина
КД
Д1 Д2
дз
Д4
Число часов
Дисциплина ПОИС Математика Физика Информатика
48 56 34
68
Таблица 22. Читает
КД
КП П1 ПЗ П4
Д1
дз Д4
Пример 12. Постановка задачи. Предметная область: профессиональные рыболовные проводники Мещерских озер и озера, которые они обслуживают. Разрешается закрепление не более одного проводника за одним озером, и по соглашению между проводниками каждый из них обслуживает только одно озеро. Таким образом, степень связи 1:1. Атрибуты-, имя проводника, код проводника, номер телефона, ежедневная плата, максимально допустимое число людей в группе рыбаков (размер), название озера, код озера, рыболовный рейтинг и основной вид вылавливаемой в озере рыбы. Решение задачи. Предположения при создании £7?-диаграммы: все проводники имеют работу, некоторые озера проводниками не обслуживаются. Следовательно, класс принадлежности сущности Проводник обязательный, а сущности Озеро необязательный.
Тема 2. Получение отношений из диаграммы Е/?-типа
33
Проводник обслуживает Озеро (рис. 16-18 и табл. 23-24).
П1 L>\ f
LJ 01
\
Jis^r-
П2 [ )
S—Ч
—
^\
{
ПЗ I J-
) 02
О
03
Рис. 16. £У?-диаграмма для экземпляров сущностей •1
Проводник
кп
ко
\^ Рис. 17. ЕЯ-диаграмма для классов сущностей
Таблица 23. Проводник (КП. ..., КО)
КП
Фамилия
Телефон
Плата
Размер
КО
Таблица 24. Озеро (КО, ...)
КО
Наименование
Рейтинг
Фамилия Рис. 18. Диаграмма ФЗ
Вид
34
Проектирование баз данных. СУБД MS Access
Из анализа диаграмм можно заключить, что оба отношения находятся в НФБК. Детерминанты КП и КО являются ключевыми атрибутами.
Контрольные вопросы 1. Сколько таблиц необходимо, если степень связи 1:1 и класс принадлежности обеих сущностей обязательный? 2. Какие атрибуты принимаются за ключевые в предварительных отношениях, соответствующих случаю, когда степень связи 1:1 и класс принадлежности обеих сущностей обязательный? 3. Сколько таблиц необходимо, если степень связи 1:1 и класс принадлежности одной сущности обязательный, а другой - необязательный? 4. Какие атрибуты принимаются за ключевые в предварительных отношениях, соответствующих случаю, когда степень связи 1:1 и класс принадлежности одной сущности обязательный, а другой - необязательный? 5. Сколько таблиц необходимо, если степень связи 1:1 и класс принадлежности обеих сущностей необязательный? 6. Какие атрибуты принимаются за ключевые в предварительных отношениях, соответствующих случаю, когда степень связи 1:1 и класс принадлежности обеих сущностей необязательный?
Задание 2 Для случаев, описанных ниже, составьте £7?-диаграмму и по правилам 1-3 перейдите от нее к предварительным отношениям, для каждого отношения укажите первичный ключ. 1. На приеме у врача ставится диагноз пациенту. 2. На приеме врач может выдать пациенту больничный лист. 3. Должность требует образования. 4. Личность прописана по адресу. 5. Личность проживает не в месте прописки. 6. Квартира имеет адрес. 7. Личность имеет опекуна. 8. Врач поликлиники обслуживает участок. 9. Квартира имеет владельца. 10. Пациент имеет медицинскую карту.
Тема 2. Получение отношений из диаграммы £Я-типа
35
2. Предварительные отношения для бинарных связей 1:N В такой ситуации используются два правила. Каждое из них определяется классом принадлежности УУ-связной сущности, класс принадлежности 1-связной сущности на результат не влияет. Ниже приводятся правила вместе с рисунками и таблицами, иллюстрирующими их применение. Правило 4. Если степень бинарной связи равна 1:N и класс принадлежности /V-связной сущности является обязательным, то достаточным является использование двух отношений, по одному на каждую сущность, при условии, что ключ каждой сущности служит в качестве первичного ключа для соответствующего отношения. Дополнительно ключ 1-связной сущности должен быть добавлен как атрибут в отношение, отводимое Л'-связной сущности (рис. 19, табл. 25, 26). Преподаватель
Дисциплина N/
КП
КД
Рис. 19. ER-диаграмма к правилу 4 Таблица 25. Преподаватель
ш
кп
П2 ПЗ П4
Телефон
Фамилия Иванов
234566
Андреев
233367
Суслов
226785
Репин
274564 Таблица 26. Дисциплина
кд
Дисциплина
Д1
48
Д2
Математика
ДЗ
Физика Информатика
56 34 68
Д4
КП
Число часов
поис
т П2
ш
П4
16
Проектирование баз данных. СУБД MS Access
Правило 5. Если степень бинарной связи равна J:N и класс принадлежности /У-связной сущности является необязательным, то необходимо формирование трех отношений: по одному для каждой сущности и одно отношение для связи (табл. 27-29). Причем ключ каждой сущности используется в качестве первичного ключа соответствующего отношения. Отношение связи должно иметь в числе своих атрибутов ключи каждой сущности. Таблица 27. Преподаватель Фамилия
А77
Телефон 234566 233367 226785 274564
Иванов Андреев Суслов Репин
Ш П2 ПЗ П4
Таблица 28. Дисциплина
кд Д1
поис
Д2
Математика Физика Информатика
ДЗ Д4
Число часов
Дисциплина 48 56 34 68
Таблица 29. Читает
кд
КП
Ш
Д1
П2 П1 П2
Д2
ДЗ Д4
Контрольные вопросы 1. Сколько таблиц необходимо, если степень связи «один ко многим» и класс принадлежности обеих сущностей обязательный? 2. Какие атрибуты принимаются за ключевые в предварительных отношениях, соответствующих случаю, когда степень связи «один ко многим» и класс принадлежности обеих сущностей обязательный?
Тема 2. Получение отношений из диаграммы £У?-типа
37
3. Сколько таблиц необходимо, если степень связи «один ко многим» и класс принадлежности односвязноЙ сущности обязательный, а /V-связной - необязательный? 4. Какие атрибуты принимаются за ключевые в предварительных отношениях, соответствующих случаю, когда степень связи «один ко многим» и класс принадлежности односвязноЙ сущности обязательный, а Л'-связной - необязательный? 5. Сколько таблиц необходимо, если степень связи «один ко многим» и класс принадлежности обеих сущностей необязательный? 6. Какие атрибуты принимаются за ключевые в предварительных отношениях, соответствующих случаю, когда степень связи «один ко многим» и класс принадлежности обеих сущностей необязательный? 7. Сколько таблиц необходимо, если степень связи «один ко многим» и класс принадлежности односвязноЙ сущности необязательный, а /V-связной - обязательный? 8. Какие атрибуты принимаются за ключевые в предварительных отношениях, соответствующих случаю, когда степень связи «один ко многим» и класс принадлежности односвязноЙ сущности необязательный, а Л^-связной - обязательный?
Задание 3 Для случаев, описанных ниже, составьте £7?-диаграмму и по правилам 4-5 перейдите от нее к предварительным отношениям, для каждого отношения укажите первичный ключ. 1. Сотрудник имеет образование. 2. Клиент делает заказ. 3. Пациент имеет льготы. 4. Адрес относится к участку в поликлинике. 5. Сотрудник получает взыскание. 6. Сотрудник имеет гражданство (гражданин страны). 7. Сотрудник имеет документ, удостоверяющий личность. 8. Квартира имеет владельца.
Проектирование баз данных. СУБД MS Access
38
9. Личность прописана в квартире. 10. Квартира имеет варианты обмена квартиры. 11. Житель города проходит обследование в поликлинике. 12. Карта обследования включает анализы.
3. Предварительные отношения для бинарных связей степени N:M Правило 6. Если степень бинарной связи равна M:N, то для хранения данных необходимо три отношения: по одному для каждой сущности и одно отношение для связи (табл. 30-32). Причем ключ каждой сущности используется в качестве первичного ключа соответствующего отношения. Отношение связи должно иметь в числе своих атрибутов ключи каждой сущности. Таблица 30. Преподаватель
кп
ш
Телефон
Фамилия Иванов Андреев Суслов Репин
П2
пз П4
234566 233367 226785 274564 Таблица 31. Дисциплина
кд
Дисциплина
Д1
поис
Д2
Математика Физика Информатика
ДЗ Д4
Число часов 48 56 34 68
Таблица 32. Читает
кд
КП
ш
Д1
П2 ПЗ П4
Д2
ДЗ Д4
Тема 2. Получение отношений из диаграммы ЕЯ-типа
39
3.1. Пример проектирования Рассмотрим задачу о рыболовных проводниках. Проводники обеспечивают группам рыбаков рыбалку на озерах. Пусть верны следующие предположения: сразу несколькими проводниками может обслуживаться одно озеро, но каждый проводник обслуживает только одно озеро. Рыбаки, нанимающие проводников, интересуются видами рыб, которые водятся в озерах, самыми крупными экземплярами каждого вида, выловленными в регионе в текущем сезоне, и типом лучшей наживки для ловли каждого вида рыбы в регионе (см. рис. 21). Атрибуты: код проводника (КП) - уникален для каждого проводника; имя проводника (Фамилия); номер телефона (Телефон); плата за день (Плата); название озера (Название); максимально допустимое число людей в группе рыбаков (Размер); рыболовный рейтинг каждого озера (Рейтинг); основные виды рыб в каждом озере (Название); по каждому виду рыб вес самого большого экземпляра (Vmax), пойманного в текущем сезоне, и лучшая наживка для каждого вида рыб (Наживка). Проводник обслуживает Озеро, в нем водится Рыба (рис. 20, 21, табл. 33-36). О О
Проводник
-N
Рис. 20. ЕЯ-диаграмма к примеру
Проектирование баз данных. СУБД MS Access
Рис. 21. Функциональные зависимости к примеру Таблица 33. Проводник
кп
Фамилия
Телефон
Плата
Размер
КО
! П
Таблица 34. Озеро
КО
Название
Рейтинг
КО
Таблица 35. Рыба КР
Название
Наживка
Vmax
Таблица 36. Водится
КО
КР
<КО. КР>
Анализ ФЗ показывает, что все детерминанты являются возможными ключами; следовательно, отношения находятся в НФБК.
Тема 2. Получение отношений из диаграммы ER-типа
41
Контрольные вопросы Как скажется на решении изменение следующих условий: 1. Проводник может обслуживать несколько озер. 2. Требуется хранить информацию обо всех наживках, которые можно использовать для данного вида рыбы? 3. Сколько таблиц необходимо, если степень связи «многие ко многим» и класс принадлежности обеих сущностей обязательный? 4. Какие атрибуты принимаются за ключевые в предварительных отношениях, соответствующих случаю, когда степень связи «многие ко многим» и класс принадлежности обеих сущностей обязательный? 5. Сколько таблиц необходимо, если степень связи «многие ко многим» и класс принадлежности обеих сущностей необязательный? 6. Какие атрибуты принимаются за ключевые в предварительных отношениях, соответствующих случаю, когда степень связи «многие ко многим» и класс принадлежности обеих сущностей необязательный? 7. Сколько таблиц необходимо, если степень связи «многие ко многим» и класс принадлежности одной сущности обязательный, а другой - необязательный? 8. Какие атрибуты принимаются за ключевые в предварительных отношениях, соответствующих случаю, когда степень связи «многие ко многим» и класс принадлежности одной сущности обязательный, а другой - необязательный?
Задание 4 Для случаев, описанных ниже, составьте Е7?-диа1рамму и по правилу 6 перейдите от нее к предварительным отношениям, для каждого отношения укажите первичный ключ. 1. Врач принимает пациента. 2. Товар обладает характеристиками. 3. Товар входит в поставку. 4. Лекарство имеется в аптеке.
12
Проектирование баз данных. СУБД MS Access
5. Троллейбус обслуживает маршрут. 6. Изделие продается на торговой точке. 7. Маршрут имеет остановки. 8. Читатель берет книги, 9. В блюдо входят продукты. 10. Заявка выполняется рабочими.
4. Связи более высокого порядка Задача об озерах. Предположим, что люди, нанимая проводника, хотят знать, какой вид рыбы предпочитает ловить проводник. Если Иванов обслуживает озеро О\ и в нем водятся рыбы Р\, РЪ РЗ-, т° это еще не значит, что он предпочитает один из этих видов рыб. Если связь между сущностями Проводник и Рыба существует, то она должна быть представлена на диаграмме как Предпочитает (рис. 22). Озеро
Проводник
•N
Рыба
.———
Проводник
•м ];
! II
Рис. 22. Ей-диаграмма к задаче
В этом случае, когда связь Предпочитает N:l, можно обойтись бинарными связями. В отношение Проводник добавить ключевой атрибут вида рыбы КР. Можно показать недостаточность бинарных связей для корректного моделирования некоторой ситуации. Предположим, что проводники обслуживают более чем по одному озеру и каждый проводник может предпочитать ловить один вид рыбы в одном
Тема 2. Получение отношений из диаграммы ЕЯ-типа
43
озере, а другой - в другом озере. Семенов, например, предпочитает ловить пучеглазика в озере Черное и северную щуку в озере Великое. Дмитриев обслуживает только озеро Великое и предпочитает ловить северную шуку. Собрав вместе эти данные, получим следующий перечень утверждений: •
Семенов обслуживает оба озера - Черное и Великое.
•
Дмитриев обслуживает только озеро Великое.
•
Семенов предпочитает ловить пучеглазика в озере Черное.
•
Семенов предпочитает ловить северную щуку в озере Великое.
•
Дмитриев предпочитает ловить северную щуку в озере Великое.
Так как бинарные связи не позволяют корректно отображать эту информацию, то воспользуемся трехсторонней связью, т. е. отношением, в котором неразрывно связаны три сущности: проводник, обслуживаемое им озеро и предпочитаемая проводником в этом озере рыба (рис. 23).
КР Рис. 23. ЕЯ-диаграмма для случая трехсторонней связи
В этом случае правило перехода к предварительным отношениям для 3-сторонних (TV-сторонних) связей будет иметь вид: Правило 7. В случае трехсторонней связи необходимо использовать 4 («+1) предварительных отношения, по одному для каждой сущности, и одно для связи. Причем ключ каждой сущности должен служить в качестве первичного ключа для соответствующего отношения. Отношение, порождаемое связью, будет иметь среди своих атрибутов ключи от каждой сущности. (Аналогично, когда связь /V-сторонняя, требуется л+1 предварительное отношение.) Применим это правило к нашей задаче. Получаем следующие отношения (табл. 37^-0):
п
Проектирование баз данных. СУБД MS Access Проводник(КП,...) Озеро(КО, •••) Рыба(КР, ...) U О Р(КП. КО. КР. ...)
Первичный ключ для П_О_Р не может быть определен до тех пор, пока не будут распределены все другие атрибуты. Первичный ключ для П_О_Р будет составным < П„имя, О_назв > в том случае, если каждый проводник предпочитает ловить в озере только один вид рыбы. Если число видов рыбы два или более для какоголибо озера, то все три атрибута отношения П_О_Р будут составлять ключ. Таблица 37. Проводник Телефон
Л77
Плата
Размер
l-.ll Таблица 38. Озеро
КО
Название
Рейтинг
I.. Таблица 39. Рыба
КР
Vniax
Название
Наживка
\ р Таблица 40. Водится
кп
ко
КР
<КП. КО. КР>
Контрольные вопросы 1. Сколько таблиц необходимо, если связь объединяет 4 сущности в одно неразрывное целое?
Тема 2. Получение отношений из диаграммы ЕЯ-типа
45
2. Как класс принадлежности влияет на получение предварительных отношений в случае, если связь объединяет 4 сущности в одно неразрывное целое? 3. Какие атрибуты принимаются за ключевые в предварительных отношениях, соответствующих случаю, когда связь объединяет 4 сущности в одно неразрывное целое?
Задание 5 Для случаев, описанных ниже, составьте £/?-диаграмму и по правилу 6 перейдите от нее к предварительным отношениям, для каждого отношения укажите первичный ключ. 1. Рецелт на лекарство реализован в аптеке. 2. Экзамен по дисциплине сдает группа преподавателю. 3. Личность проживает в номере гостиницы.
5. Использование ролей В некоторых ситуациях одних сущностей и связей может оказаться недостаточно для полноценного моделирования организации. Одна из таких ситуаций возникает тогда, когда экземпляры некоторой сущности должны играть разные роли в деятельности предприятия. Рассмотрим задачу. В ней идет речь о небольшом предприятии - поставщике автомобилей. Имеется следующая информация о производственном персонале. На предприятии две категории служащих: мастера и сборщики. Мастера получают фиксированный оклад, в то время как у сборщиков почасовая оплата. Ключ сущности - номер страхового полиса каждого служащего (рис. 24). Сборщик
Мастер
Мастер#
Сборщнк#
Рис. 24. ER-диаграмма классов сущностей
Здесь Мастер# и Сборщик# - номера страховых полисов, ключи сущностей. По правилу 4 получаем два предварительных отношения:
46
Проектирование баз данных. СУБД MS Access Л/дстер(Мастер#, ...) , ... , Мастер#) В отношения необходимо добавить следующие атрибуты:
•
СлФам - фамилия и имя служащего.
•
РТел - номер служебного телефона мастера. Сборщик служебного телефона не имеет.
•
ДТел - номер домашнего телефона служащего.
•
СлАдрес - домашний адрес служащего.
•
ТСтавка - почасовая тарифная ставка сборщика.
•
Оклад - месячный оклад мастера.
• •
СбКод - рабочий код сборщика. СфКомп - сфера компетенции мастера.
В результате предварительные отношения будут преобразованы к виду: А/астер(Мастер#, Оклад, СфКомп, РТел, ...) Сборщик(Сборщнк#> ТСтавка, СбКод, ..., Мастер#) Остальные атрибуты: ДТел, СлФам, СлАдрес - можно продублировать в обоих отношениях под разными именами. Однако этот способ имеет ряд недостатков: во-первых, присутствует дублирование информации; во-вторых, усложняется поиск, например при поиске домашнего телефона служащего Петрова необходимо просматривать обе таблицы. Можно предложить другое решение, ввести дополнительное отношение Служащий, обобщающее сущности Мастер и Сборщик, и все оставшиеся атрибуты приписать этому отношению. Прежде чем сформулировать правило, рассмотрим некоторые понятия. Роль, или ролевая сущность, описывает функции, выполняемые сущностью в организации. Между ролевыми сущностями могут быть связи, зависящие от деятельности организации и от выполняемых ими функций. Обобщающая сущность описывает общие свойства всех ролевых сущностей. Между обобщающей сущностью и ролевыми сущностями устанавливается связь типа «дерево», иерархическая связь (рис. 25).
Тема 2. Получение отношений из диаграммы £7?-типа Обобщающая сущность
Ролевая сущность Мастер
1 • Ролевая сущность Сборщик
Мастер#
Сборщик#
Рис. 25. Ей-диаграмма для случая иерархических связей
Правило 8. Обобщающей сущности соответствует одно отношение, причем ключ сущности служит в качестве ключа отношения, общие для всех ролевых сущностей атрибуты приписываются этому отношению. Ролевые элементы и связи, их соединяющие, порождают такое число отношений, которое определяется ранее описанными правилами, причем каждая роль трактуется как обычная сущность. Связываются отношения с помощью ключевого атрибута. Каждому значению ключевого атрибута ролевой сущности соответствует одна запись в обобщающем отношении с таким же значением ключа. Служащий(Служ#, СлФам, ДТел,СлАдрес) Мастер(Мастер#, Оклад, СфКомп, РТел) Сборщик(Сборщик#, ТСтавка, СбКод, Мастер#)
Номер страхового полиса связывает эти отношения. Можно в отношение Служащий включить атрибут роль - мастер или сборщик.
6. Связь между таблицами Из рассмотренных примеров следует, что результатом проектирования по методу «сущность-связь» является совокупность взаимосвязанных таблиц. Связь между таблицами осуществляется через одинаковые по смыслу, типу и значению атрибуты. Назовем их атрибутами связи. В одних таблицах эти атрибуты играют роль ключевых, в других они вводятся дополнительно по правилам 1-8 для отображения связи. В Примере 9 темы \ таблицы Преподаватель к Дисциплина связаны с помощью атрибута Код дисциплины. В таблице Дисциплина он является ключевым, а в таблице Преподаватель это обычный атрибут.
48
Проектирование баз данных. СУБД MS Access
Таблица, в которой атрибут связи является ключом отношения, называется главной; связанная с ней по этому атрибуту таблица называется подчиненной. Информация в подчиненной таблице зависит от данных в главной таблице. Атрибут связи в подчиненной таблице называется внешним ключом. Для Примера 9 темы 1: таблица Дисциплина - главная, таблица Преподаватель - подчиненная, атрибут Код дисциплины в таблице Преподаватель - внешний ключ. Данные в связанных таблицах должны удовлетворять следующим ограничениям целостности: •
каждой записи главной таблицы может соответствовать нуль или более записей подчиненной таблицы;
•
в подчиненной таблице не должно быть записей, которые не имеют родительской записи в главной таблице;
•
каждая запись подчиненной таблицы может иметь только одну родительскую запись в главной таблице.
Эти ограничения определяют порядок выполнения операций ввода, обновления и удаления записей. Перед созданием таблиц и заполнением их данными след\ет определить между ними отношение порядка. К нулевому уровню относятся таблицы, в которых данные не зависят от данных в других таблицах. Обычно это таблицы со справочными данными. К первому уровню принадлежат те таблицы, данные в которых зависят только от таблиц нулевого уровня; ко второму - таблицы, данные в которых зависят от таблиц нулевого и первого уровня, и т. д. Полученное отношение порядка определяет порядок заполнения таблиц. Сначала создают и заполняют таблицы нулевого уровня, затем первого и т. д. Для Примера 9 темы 1 таблица Дисциплина является независимой и относится к нулевому уровню, таблица Преподаватель к первому уровню. Следовательно, сначала надо создать и заполнить таблицу Дисциплина. Процессы создания таблиц, связывания их, выполнения операций ввода, обновления и удаления записей в СУБД Access подробно рассмотрены в теме 3 настоящих рекомендаций по проектированию БД.
Тема 2. Получение отношений из диаграммы £У?-типа
49
Контрольные вопросы Как скажется на решении изменение следующих условий: 1. Каждый сборщик в разное время может входить в разные бригады. Бригада создается для выполнения определенной работы. В бригаде несколько человек, ею руководит бригадир. 2. В штате существуют сборщики, за которыми в данный момент не закреплена работа (они находятся в отпуске, на больничном и т. п.).
Задание 6 Ниже приведены списки атрибутов для разных предметных областей. Дня каждой ПО построить ЕЯ-диаграмму и перейти от нее к предварительным отношениям. Затем все оставшиеся атрибуты приписать к полученным отношениям и проверить, находятся ли эти отношения в НФБК. 1. Физкультура Зачетка, Фамилия, Группа, Дата рождения, Преподаватель, Специализация, Медицинская группа, Разряд, Вид, Особенности, Норматив, Результат, Дата, Оценка, Семестр, Пол. 2. Кинотеатры Название, Адрес, Телефон, Категория, Вместимость, Число залов, Кинотеатр, Кинофильм, Время, Дата, Режиссер, Год выпуска, Страна, Число серий, Тематика, Краткое содержание, 3. Аптека Номер, Дата, Врач, Поликлиника, Лекарство, Количество, Режим приема, Стоимость, Особые замечания, Шифр, Название, Группа, Краткая рекомендация по применению, Срок хранения рецепта, Дата поступления. Цена, Единица измерения, Количество, Срок годности. 4. Библиотека Шифр, Автор, Название, Тематика, Издательство, Год издания, Тираж, Количество страниц, Аннотация. Билет, Фамилия, Место работы, Должность, Телефон, Возраст, Особые отметки, Дата выдачи, Срок возврата.
50
Проектирование баз данных. СУБД MS Access
5. Почтовое отделение Шифр, Название, Тип, Учреждение, Цена, Число экземпляров в год, Адрес, Фамилия, Профессия, Возраст, Дата начала, Длительность, Сумма. 6. Расписание экзаменов Номер группы, Специальность, Число студентов, Староста, Факультет, Курс, Название дисциплины, Преподаватель, Дата консультации, Время консультации. Дата экзамена, Время экзамена, Аудитория для консультации, Аудитория для экзамена. 7. Гостиницы города Номер, Название, Директор, Телефон, Категория, Адрес, Число мест, Стоимость, Фамилия, Адрес, Возраст, Дата заезда, Срок проживания, Оплата, Особые отметки. 8. Расписание занятий Номер группы, Специальность, Факультет, Число студентов, Староста, Номер аудитории, Вместимость, Тип, Шифр дисциплины, Название, Фамилия преподавателя, Звание, Должность, Кафедра, Время, День, Неделя. 9. Поликлиника Карта, Фамилия, Адрес, Возраст, Место работы, Профессия, Дата последнего посещения, Особые отметки, Номер кабинета, Название, Врач, Пропускная способность, Дата, Время, Жалобы, Диагноз, Назначение. 10. Канцелярия Номер, Фамилия, Должность, Кафедра, Дата, Длительность, Город, Организация, Аванс, Приказ, Дата приказа, Содержание командировки, Подпись, Тип расхода, Сумма расхода, Ведомость, Дата отчета. 11. Диета Номер, Название диеты, Диагноз, Длительность, Противопоказания, Название блюда, Жиры, Белки, Углеводы, Калорийность, Несовместимость, Особенности применения, Количество, Форма. 12. Кулинария Название блюда, Категория, Калорийность, Стоимость, Название продукта, Единица измерения, Жиры, Белки, Углеводы, Витамины, Цена, Поставщик, Количество, Состояние.
Тема 2. Получение отношений из диаграммы £7?-типа
51
13. Больница Номер палаты, Отделение, Число коек, Врач, Персонал, Фамилия, Карта, Возраст, Диагноз, Адрес, Профессия, Место работы, Специализация, Оклад, Телефон, Характеристика. 14. Турнир Название, Город, Спонсор, Тренер, Телефон, Рейтинг, Фамилия игрока, Команда, Амплуа, Возраст, Адрес, Телефон, Характеристика, Хозяева, Гости, Дата, Судья, Число зрителей, Время, Результат, Оценка. 15. Коллекционирование монет Шифр, Название, Страна, Государство, Тираж, Сплав. Год, Вес, Оценка, История, Фамилия, Адрес, Профессия, Место работы, Телефон, Количество. 16. Телефон Город, Индекс, Стоимость, Промежуточный пункт, Примечания, Телефон, Дата, Продолжительность, Вид оплаты, Документ об оплате, Факт оплаты, Сумма, Адрес, Фамилия, Месячная плата. 17. Шахматы Шифр, Команда, Возраст, Место работы, Профессия, Должность, Квалификация, Рейтинг, Телефон, Белые, Черные, Очки-б, Очки-ч, Дата, Итог, Число ходов, Номер игры, Ход-б, Ход-ч, Время-б, Время-ч. 18. Домоуправление Адрес, Квартира, Фамилия, Площадь, Число комнат, Номер ордера, Дата получения, Месячная плата, Долг, Вид услуги, Стоимость, Дата введения, Дата оплаты, 19. Управление троллейбусами Номер маршрута, Протяженность, Время, Число остановок, Начало движения, Конец движения, Состояние, Число машин, Название остановки, Номер маршрута, Номер остановки, Крыша, Время отправления. 20. Спортклуб Название секции, Тренер, Число членов, Место занятий. Особенности приема, Оплата, Фамилия, Возраст, Адрес, Телефон, Рост, Вес, Личный рекорд, Достижения, Дата соревнования, Ранг, Результат, Место, Число участников.
52
Проектирование баз данных. СУБД MS Access
21. Ремонт телевизоров Марка, Тип, Завод, Адрес завода, Телефон, Характеристика телевизора, Цена, Фамилия, Адрес, Дата ремонта, Платы, Документ, Мастер, Работа. 22. Станция технического обслуживания Фамилия, Разряд, Адрес, Телефон, Оклад, Стаж, Номер, Марка автомобиля, Цвет, Заводской номер, Пробег, Владелец, Техпаспорт, Год выпуска, Состояние, Дата поступления, Документ, Срок готовности, Дата окончания, Стоимость, Содержание ремонта. 23. Научно-исследовательская работа Номер, Тема, Исполнитель, Заказчик, Дата заключения, Дата начала, Дата окончания, Сумма, Число этапов, Особые условия, Кафедра, Фамилия, Телефон, Число договоров, Сумма договоров, Адрес, Счет, Руководитель, Факс, Министерство. 24. Учебный план специальности Шифр специальности, Дисциплина, Семестр, Вид испытания. Вид занятий, Форма занятий, Количество часов. 25. Расписание занятий Группа, Аудитория, Дисциплина, Вид занятий, Преподаватель, День недели, Пара занятий.
7. Основные объекты СУБД MS Access СУБД MS Access (далее просто СУБД) является 32-разрядной системой управления РБД нового поколения, работающей в средах Windows 98/ME и Windows NT 4.0/2000/XP. В ней предусмотрены все необходимые средства для определения и обработки данных, а также для управления ими при работе с большими объемами информации. СУБД позволяет создавать приложения, работающие в среде Windows и полностью соответствующие потребностям заказчика. В состав СУБД входят средства управления таблицами, запросами, формами, отчетами, макросами и модулями как самостоятельными объектами, хранящимися в одном файле БД (расширение .mdb). Благодаря этому создание связанных объектов и проверка целостности данных значительно облегчаются.
Тема 2. Получение отношений из диаграммы £7?-типа
53
Состав файла БД. Архитектура СУБД СУБД называет объектами все, что может иметь имя. В БД Access основными объектами являются таблицы, запросы, формы, отчеты, макросы и модули. Таблицы Таблица - это объект, определяемый для хранения данных. Каждая таблица включает информацию об объекте реального мира, например о клиентах фирмы. Таблица состоит из заголовка и тела. Заголовок включает имена атрибутов объекта (столбцов) и их свойства, например фамилию, телефон и адрес клиента. Тело содержит кортежи (строки), каждая строка представляет множество значений столбцов, в которых хранятся данные о конкретном экземпляре объекта. Например, информация о клиенте: Семенов; 75-48-09; г. Рязань, ул. Полевая, 20.
Для каждой таблицы можно определить первичный ключ, обеспечивающий уникальность каждой строки, один или несколько индексов, обеспечивающих упорядоченность записей, и другие свойства. Запросы Запрос - это объект, который позволяет пользователю получить нужные данные из одной или нескольких базовых таблиц, и других запросов. В запросе можно указать условия, которым должны удовлетворять данные. Благодаря этому запрос позволяет из большого массива информации, хранимой в БД, извлекать только нужные данные. Для создания запроса используют запрос по образцу (QBE) или инструкции SQL. Можно создавать запросы на выборку, обновление, удаление или на добавление данных. С помощью запросов можно создавать новые таблицы, используя данные одной или нескольких таблиц, которые уже существуют. Формы Форма - это объект, предназначенный в основном для ввода данных, отображения их на экране или управления работой приложения. Формы используются для того, чтобы реализовать требования заказчика к представлению данных из таблиц и запросов. Формы можно распечатать. С помощью формы можно в ответ на некоторое событие запустить макрос или процедуру, выполняющие определенную обработку данных.
54
Проектирование баз данных. СУБД MS Access
Отчеты Отчет - это объект, предназначенный для создания документа, который впоследствии может быть распечатан или включен в документ другого приложения. Прежде чем выводить отчет на принтер, его можно просмотреть на экране. Макросы Макрос - это объект, представляющий собой структурированное описание одного или нескольких действий, которые будут выполняться в ответ на определенное событие. Например, можно определить макрос, который в ответ на выбор некоторого элемента в основной форме открывает другую форму. С помощью другого макроса можно осуществить проверку значения поля при изменении его содержимого. Можно из одного макроса запустить другой макрос или функцию модуля. Модули Модуль - это объект, содержащий программы на Microsoft Access Visual Basic, которые могут разрабатываться пользователем для реализации нестандартных процедур при создании приложения. Все объекты в СУБД Access могут быть созданы пользователем с помощью конструктора или с помощью различных мастеров. Мастера помогают пользователю в режиме диалога создавать объекты, дают подсказки, предлагают свои решения, что облегчает работу начинающим и непрофессиональным пользователям. Такие объекты, как формы и отчеты, состоят из графических элементов, называемых элементами управления. Основные элементы управления служат для связи объектов с записями таблиц, являющихся источниками данных. Каждый объект и элемент управления имеет свои свойства, определяя которые можно настраивать объекты и элементы управления. Изучение объектов и элементов управления проведем на конкретных примерах.
Тема 3 ТАБЛИЦЫ При работе с Access таблицы являются одним из основных объектов, на их базе осуществляется построение всех других элементов, таких, как формы, запросы и отчеты. В таблице собираются данные по конкретной теме, например вся информация о клиентуре фирмы. Каждая строка данных таблицы клиентов содержит информацию об определенном клиенте. Информация эта может быть неоднородна, и поэтому строка состоит из нескольких разнотипных полей, содержащих фамилию клиента, его телефон, адрес, номер счета и т. д. БД Access может состоять из нескольких таблиц, в каждой из которых хранится информация на одну тему. В одной таблице могут храниться сведения о клиентах, в другой - о всех торговых договорах, которые заключены с теми или иными клиентами, в третьей - информация о расходах, налогах и затратах на развитие фирмы, в четвертой - инвентаризационный список складского фонда, в пятой - сроки проведения выставок и презентаций и т. д.
1. Проектирование БД Хорошо продуманная структура и формат записей БД являются непременным условием эффективной работы с ней в рамках Access, поскольку именно в разумно построенной базе можно получить быстрый доступ ко всей необходимой информации. Прежде чем приступить к разработке большой БД со множеством таблиц, ее необходимо тщательно спланировать, чтобы в дальнейшем не пришлось больше заниматься крупными изменениями структуры. Это правило отражает общеизвестную закономерность, заключающуюся в том, что в процессе разработки любого изделия наиболее важные и дорогостоящие (в смысле затрат на исправление) решения принимаются в самом начале проектирования.
Проектирование баз данных. СУБД MS Access
1.1. Проектирование БД TOYOTA Рассмотрим работу управляющего складом филиала торговой фирмы, продающей автомобили «Toyota» в России. Перед ним стоит задача осуществить упорядочение информации об ассортименте продукции и всех клиентах фирмы в данном регионе в одной БД. Речь идет об адресах клиентов, их заказах, марках автомобилей, предлагаемых на продажу, их характеристиках, включая продажные нетто-цены. Проектирование БД выполним методом «сущность-связь». Из анализа атрибутов объектов ПО следует, что они группируются вокруг двух сущностей: Модели машины «Toyota» и Клиенты, осуществляющие заказ этих моделей. На рис. 26 отражена взаимосвязь этих сущностей. Предполагается, что каждый клиент заказывает одну модель и любая модель может быть заказана многими клиентами или ни одним из клиентов. Степень связи N:l, класс принадлежности сущности Клиенты обязательный, а сущности Модели ~ необязательный.
Код модели
Номер заказа
Рис. 26. ER-диаграмма
На основе ER-диаграммы по правилу 4 получим предварительные отношения. Для представления данных достаточно двух таблиц. Одна таблица - для сущности Клиенты, другая - для сущности Модели. Связывание таблиц осуществим путем введения атрибута Код модели в таблицу Клиенты. Этот атрибут является ключевым для односвязной сущности Модели.
Тема 3. Таблицы
57
Предлагаемые модели Код модели
Клиенты Номер заказа
Код модели
Таблица Модели должна быть дополнена атрибутами, задающими характеристики моделей, например такими, как мощность двигателя, цвет, количество дверей и т. п. Таблица Клиенты - атрибутами, связанными с заказом и с клиентом, осуществляющим заказ: фамилия и адрес заказчика, телефон, дата заказа, скидка и т. п. Первая группа атрибутов функционально зависит от ключевого атрибута сущности Модели (Код модели), вторая - от ключевого атрибута сущности Клиенты (Номер заказа). Следовательно, полученные отношения находятся в НФБК.
1.2. Связи между таблицами Определим некоторые понятия, относящиеся к связи между таблицами. Результатом проектирования по методу «сущность-связь» является совокупность взаимосвязанных таблиц. Связь между таблицами осуществляется через одинаковые по смыслу атрибуты. Назовем их атрибутами связи. В одних таблицах эти атрибуты играют роль ключевых, в других - они вводятся дополнительно по правилам 1-8 для отображения связи. В нашем примере таблицы Модели и Клиенты связаны с помощью атрибута Код модели. В таблице Модели он ключевой, а в таблице Клиенты - обычный атрибут. Та таблица, в которой атрибут связи является ключом отношения, называется главной, а связанная с ней по этому атрибуту таблица называется подчиненной. Информация, хранящаяся в подчиненной таблице, зависит от данных главной таблицы. Агрибут связи в подчиненной таблице называется внешним ключом. Для рассматриваемого примера таблица Модели является главной, таблица Клиенты - подчиненной, атрибут Код модели в таблице Клиенты будет внешним ключом. Рекомендуется, прежде чем создавать, а главное, заполнять данными таблицы, определить между ними отношение порядка.
58
Проектирование баз данных. СУБД MS Access
К нулевому уровню отнесем те таблицы, данные в которых не зависят от данных других таблиц. Обычно это таблицы со справочными данными. К первому уровню будут принадлежать те таблицы, данные в которых зависят только от таблиц нулевого уровня, ко второму - таблицы, данные в которых зависят от таблиц нулевого и первого уровня, и т. д. Полученное отношение порядка определяет порядок создания и заполнения таблиц. Сначала создаются и заполняются таблицы нулевого уровня, затем - первого и т. д. Для нашего примера таблица Модели относится к нулевому уровню, она независимая, а таблица Клиенты - к первому уровню, следовательно, сначала надо создать и заполнить таблицу Модели, а затем таблицу Клиенты. Приступим теперь к реализации БД TOYOTA в СУБД Access. Сначала создадим таблицу с полной информацией о всех моделях «Toyota», а затем разработаем таблицу заказов всех клиентов.
2. Создание БД В первую очередь следует создать БД, в которой будут сохранены все другие объекты: таблицы, запросы, формы и т. д. В прикладном окне Access из меню Файл выберите команду Создать или щелкните на кнопке с изображением пустого бланка на стандартной панели инструментов. В правой части окна будет отображена панель со списком возможных действий. В верхней части данной панели вам будет предложено открыть файл либо из списка, построенного программой, либо из указанного места. Чуть ниже, в разделах Создание, Создание из имеющегося файла и Создание с помощью шаблона, будет предложено создать новую БД Access различными способами. Тут создание и из шаблона, и из имеющегося файла, а также создание проекта Access или Страницы доступа к данным. Кнопки реализованы в виде гиперссылок, как на страницах в Интернете. Щелкнем на ссылке Новая база данных и Access отобразит на экране диалоговое окно создания файла базы Файл новой базы данных. В этом окне найдите свою папку и в поле Имя файла введите имя файла, в котором будет храниться БД, например TOYOTA. Access автоматически добавит расширение имени БД .mdb. Для закрытия диалогового окна выполните щелчок на кнопке ОК.
Тема 3. Таблицы
Access создаст файл БД и затем индицирует пока еще пустое окно, в котором можно создать объекты новой БД (рис. 27). В MfcfiOeoffr Access - [Simple : базе данных (формат Access 2000J] Файл
Правка
Вставка
Сервис
£JCHC
£праека
_ Я X
Конструктор
3j Иj
Создание страницы доступа к данным с помощью мастера Изменение существующей веб-страницы
Готово
Рис. 27. Окно БД
3. Создание таблицы моделей автомобилей Приступим к созданию первой таблицы. В ней должны находиться данные о моделях автомобилей, включая технические характеристики, цвет, тип салона, а также отпускную цену завода плюс транспортные издержки и затраты на предпродажную подготовку. В окне БД щелкните на кнопке Таблицы и нажмите кнопку Создать, чтобы приступить к проектированию новой таблицы. Access откроет диалоговое окно, в котором будет предложено воспользоваться одним из следующих способов создания таблицы. Режим таблицы - создание таблицы в табличном представлении (проектирование таблицы происходит в ходе ее заполнения по анализу вводимых данных).
Проектирование баз данных. СУБД MS Access
60
Конструктор - создание таблицы с помощью конструктора таблиц. Мастер таблиц - создание таблицы с помощью мастера таблиц на основе коллекции таблиц и полей. Импорт таблиц - создание таблицы пугем импорта данных из внешнего файла или из другой БД. Связь с таблицами - присоединение внешнего файла или таблицы другой БД. Выберите опцию Конструктор для создания таблицы с помощью конструктора таблиц и нажмите кнопку ОК. В верхней части появившегося окна (рис. 28) задайте поля, которые должна содержать таблица. В нижней части Свойства поля дайте детальное определение формата полей таблицы, задавая для каждого поля необходимые характеристики. Е Microsoft Access - [Тайлн^а! : тайлцца] ... Ш
файл
Главка
вид
Вставка
Сервис
фсно
^правка
Сеойстм поля Обшие
Подстановка
№wi now может состсягь *й £•! четом елов, Дпя справки по именам ПОПЙ
Конструкте^. F6 = переключение окон.
Рис. 28. Окно проектирования таблицы в режиме конструктора
Тема 3, Таблицы
61
3.1. Объявление полей Сначала продумайте, какие поля и в какой последовательности должна содержать создаваемая таблица. Таблица моделей должна состоять из следующих полей: •
Код модели.
•
Модель.
•
Мощность (кВт/л, с.).
•
Цвет,
• Количество дверей. •
Коробка передач.
•
Обивка.
•
Другое оснащение.
•
Заводская цена.
• Транспортные издержки. • •
Предпродажные издержки. Специальная модель,
Эти имена полей следует ввести друг под другом в колонку Имя поля. Затем для каждого поля в колонке Тип данных надлежит установить тип хранимых в нем данных. В Access предусмотрены типы данных полей, приведенные в табл. 41. Таблица 41 Тип
Текстовый MEMO Числовой Дата/Время Денежный Счетчик Логический Объект OLE
Описание Цепочка алфавитно-цифровых символов (длиной не более 255 символов) Текст переменной длины (общий объем памяти до 64 000 байт) Числовые значения (целые или вещественные числа) Дата и время Денежный Уникальное число, которое в каждой новой записи Access автоматически увеличивается на 1 Логические значения (истина или ложь) OLE-объекты и иллюстрации
62
Проектирование баз данных. СУБД MS Access Окончание таблицы 41
Тип
Описание
Гиперссылка
Строка, состоящая из букв и цифр и представляющая адрес гиперссылки (текста или файла с текстом)
Мастер подстановок
Создает поле, в котором предлагается выбор значений из списка или из поля со списком, содержащими набор постоянных значений или значений из другой таблицы. Выбор этого параметра в списке запускает мастера подстановок, который определяет тип поля
После выполнения щелчка в колонке Тип данных появится манипулятор открытия списка, при нажатии на который развернется список со всеми доступными типами данных. Маркируйте необходимый тип данных, после чего список автоматически закроется и выбранный тип будет внесен в колонку Тип данных текущей строки. Чтобы сделать таблицы понятными, для каждого поля таблицы можно ввести описание (комментарий) в колонку Описание. Но наличие (или отсутствие) комментария никак не влияет на корректность спецификации таблицы. В качестве примера комментария рассмотрим поле Цепа разрабатываемой таблицы. В колонку Описание спецификации этого поля можно ввести следующий комментарий: «Полная продажная цена, включая налог на добавленную стоимость». Теперь эта фраза будет появляться в статусной строке в момент обращения к полю Цена. Ввод полей всегда осуществляйте построчно, т. е. для каждого поля сначала вводите имя поля, затем тип данных поля и, наконец, если есть необходимость, описание поля. Переход к следующей ячейке строки осуществляется с помощью нажатия клавиши [Tab]. Для перехода к нужной ячейке можно также выполнить на ней щелчок. Черный треугольник в селекторной колонке (самая левая колонка в окне проектирования) всегда идентифицирует ту строку, с которой в данный момент работает пользователь. Для решения поставленной задачи введите спецификации полей так., как это показано в приведенной ниже табл. 42.
Тема 3. Таблицы
63 Таблица 42
Имя поля
Тип данных поля
Код модели
Числовой
Название модели Цвет Количество дверей
Текстовый Текстовый Числовой
Коробка передач Обивка Другое оснащение Заводская цена
Текстовый Текстовый MEMO Денежный Денежный
Транспортные издержки Предпродажная подготовка Специальная модель
Денежный Логический
Описание Код заказа модели по заводскому каталогу Тип кузова Цвет кузова Двухдверный или четырехдверный салон Автоматическая или ручная Велюр, кожа, ткань Дополнительные аксессуары Заводская продажная нетто-цена Издержки на доставку Издержки на предпродажную подготовку Специальная модель или стандартное исполнение
На экране монитора таблица выглядит приблизительно еледующим образом (рис. 29). Я, Предлагаемы в модели ; гай^иш) Типдалигл Числовой
KOflHOJ
Модель Моииос
Мсчшость двигэгепв
Когичество сверей Коребкэ передам СШИБКИ Дру-ое оснащение Заводская цетьэ Грачстивтпы* «идермкн
Чклзеой Тететовь»! Теесто&Л" Поче MEMO Дгнежньи Дече»1ый
Двуядвеоный или JET ыргхдверныи салон Деторчагтчаскаа или ру1*|ая Btmoc, кога, ткано Дополнительные аксессуары Завлекая грсдлжная негте-и»и вдержки па добавку И1аериккнэ грвапродажчу™ подготоеку Сп^инапьная модель и стандартчо* исполи Свойгты тали
Общие Ра^вгр поля Формат norw Млсиа ввода Подпись
Индессировашое поле С*атие Юникод
Не Д
Рис. 29. Спецификация полей таблицы Модель
Проектирование баз данных. СУБД MS Access Примечание. Для поля Мощность двигателя выбран тип Текстовый. Данные о киловаттах и лошадиных силах - числовые величины. Однако, поскольку эти две величины разделены специальным символом, косой чертой, приходится указывать для данного поля тип Текстовый, так как числовые поля могут содержать только числа. 3.1,1. Задание характеристик полей Итак, для отдельных полей таблицы назначены имена, определены типы данных и введены краткие описания. Спецификация таблицы почти готова. Остается установить значения характеристик отдельных полей, такие, как размер поля, формат и т. д. Задание этих значений выполняется в нижней части окна проектирования. Каждое поле обладает индивидуальными свойствами (характеристиками), по которым можно установить, как должны сохраняться, индицироваться и обрабатываться данные. Набор свойств, присущих полю, зависит от выбранного типа данных поля, а также от семантики поля в предметной области. Прежде чем приступить к определению свойств, рассмотрим, что означают отдельные свойства (табл. 43). Таблица 43
Свойство Размер поля
Формат поля Число десятичных знаков Маска ввода
Функция Определяет максимальную длину текстового поля или размерность данных числового поля. При определении размера поля следите за тем, чтобы длина его была минимальной, но в то же время достаточной для записи информации. Слишком большой размер непроизводительно расходует дорогостоящую память; слишком маленький - может привести к искажению содержимого поля Устанавливает формат вывода данных в форме и запросе Определяет количество разрядов в дробной части десятичного числа Определяет маску данных при вводе
Тема 3. Таблицы Окончание таблицы 43 Свойство Подпись
Значение по умолчанию Условие на значение
Сообщение об ошибке
Обязательное поле Пустые строки Индексированное поле Сжатие Юникод
Функция Содержит надпись, которая выводится рядом с полем в форме или отчете. Подпись поля в форме или отчете не обязательно должна совпадать с именем поля, а также может содержать поясняющие сведения. Например, для поля Цена подпись могла бы выглядеть так: Полная цена (вкл. НДС) Определяет значение, которое автоматически вводится в поле при создании новой записи Описывает правило, которое ограничивает множество доступных для этого поля значений. Если речь идет о текстовом поле, то при перечислении доступных значений каждое из них должно быть заключено в кавычки. Для поля Коробка передач правило выполнимости могло бы гласить, к примеру: «Автоматика» Or «Ручная». Это правило объявляет другие значения данного поля недопустимыми Выдает сообщение о нарушении, которое соответствует каждому правилу отбора допустимых значений. Оно отображается на экране, когда пользователь пытается ввести данные, которые не соответствуют правилу отбора. Сообщение о нарушении для поля Коробка передач могло бы выглядеть так: Допустимые значения только «Автоматика» или «Ручная» Определяет необходимость заполнения поля при вводе Определяет возможность установления нулевой длины поля Определяет простые индексы для ускорения процессов поиска; поле первичного ключа индексируется автоматически В Microsoft Access для хранения информации полей типа Текстовый, MEMO или Гиперссылка используется кодировка Юникод. где каждый знак представляется 2 байтами, поэтому для хранения данных требуется больше места, чем в более ранних версиях, в которых каждый знак представляется 1 байтом. В одном поле можно хранить любую комбинацию знаков, которые поддерживает Юникод. Если первый байт отдельного знака не равен нулю, этот знак не будет сжиматься, иначе он будет представлен 1 байтом (сжат)
66
Проектирование баз данных. СУБД MS Access Окончание таблицы 43 Свойство
Режим IME
Режим предложений IME
Функция Обеспечивает ввод текста на восточных языках, таких, как китайский или японский. Данное средство доступно только в том случае, если в языковые параметры Microsoft Office включена поддержка китайского или японского языка. Для использования данного средства необходим Microsoft IME либо другой редактор способов ввода Данное свойство определяет переключение режима предложений ШЕ для полей в таблице или элементов управления и форме при перемещении фокуса ввода
Примечание. Если указатель мыши поместить на одной из характеристик в нижней части окна проектирования, то в информационной зоне справа внизу появится рекомендация по выбору значения данной характеристики и сведения о ее влиянии на свойства поля. Обратимся к характеристикам первого поля таблицы Предлагаемые модели. В колонке Имя поля выполните щелчок в первой строке. Теперь можно приступать к установке значений характеристик в зоне Свойства поля. Первое поле таблицы Код модели числовое. В нем содержится число, используемое в каталоге фирмы-изготовителя для идентификации модели автомобиля. Для начала необходимо установить размер поля, чтобы определить максимальное число, которое можно сохранить в данном поле. Выполните щелчок на строке Размер поля и откройте список, в котором отображены все возможные значения этой характеристики (табл. 44). Таблица 44 Значение Байт Целое Длинное целое Одинарное с плавающей точкой
Описание Числа от 0 до 255 (целые > 0). Занимает 1 байт Числа от -32 768 до 32 767 (целые). Занимает 2 байта Числа от -2 147 483 648 до 2 147 483 647 (целые). Занимает 4 байта Дробные числа (с плавающей точкой) с шестью знаками в дробной части от -3,402823 Е38 до 3,402823 Е38. Занимает 4 байта
Тема 3. Таблицы
67 Окончание таблицы 44
Значение Двойное с плавающей точкой Код
репликации Действительное
Описание Дробные числа (с плавающей точкой) с 10 знаками в дробной части от -1J9769313486232E308 до 1,797693 13486232Е308. Занимает 8 байт Уникальный глобальный идентификатор (GU1D 16-байтовое поле, используемое для уникальных идентификаторов при репликации Числа от (-10 Е38) - 1 до (10 Е38) - 1 (.adp). Числа от (-10 Е28) - 1 до (10 Е28) - 1 (.mdb). Занимает 12 байт. Дробная часть 28 значащих цифр
Примечание. Всегда используйте наименьшую установку для размера поля. Такие поля быстрее обрабатываются и занимают меньше памяти. Для кода модели рекомендуется размер поля Длинное целое, так как код будет состоять из 6-разрядного идентификационного номера. Следующая характеристика поля, Формат поля, определяет способ представления чисел (а в общем случае содержимого полей) при выводе их на экран и распечатку. Щелчком на кнопке открытия списка разверните список всех возможных форматов. В формате С разделителями разрядов Access автоматически устанавливает пробел в качестве разделителя тысяч, запятую в качестве знака, отделяющего дробную часть от целой, и точность два разряда после десятичной запятой. Если же будет выбран формат Основной, то число будет показано таким, каким его введет пользователь. Для рассматриваемого примера вполне подходит установка Основной. Затем следует свойство Число десятичных знаков. Так как код модели представляет собой целое число, то можно задать для этой характеристики значение 0. Свойство Маска ввода позволяет задать отображение постоянных символов в поле, чтобы их не пришлось вводить, и проверяет, помещается ли вводимое значение в маску. В данном случае опустим это свойство поля. Для характеристики Подпись поля значение можно не задавать. В этом случае система использует в формах и отчетах в качестве надписи имя поля.
68
Проектирование баз данных. СУБД MS Access
Следующие три свойства следует пропустить, не устанавливая для них значений, поскольку для кода моделей не существует ни стандартного значения по умолчанию, ни правила отбора допустимых значений Условие на значение, а следовательно, и сообщения о нарушении условия Сообщение об ошибке. Свойство Обязательное поле позволяет указать, что данное поле не должно опускаться при вводе, т. е. должно содержать значение. В нашем случае можно указать значение Да, чтобы при вводе данных содержимое поля обязательно было заполнено. Интерес представляет свойство Индексированное поле, поскольку, если поле индексируется, существенно сокращается время поиска записи по содержимому этого поля. Вполне вероятно, что поле кода модели будет" использоваться для поиска записи в базе. Щелкните на свойстве Индексированное поле и выберите в развернувшемся списке значение Да (Совпадения не допускаются), поскольку код модели является уникальным для каждой модели, т. е. один и тот же код не может встретиться два или более раза в разных записях базы. Кроме того, данное поле позднее будет преобразовано в поле первичного ключа, а обязательным условием этого является значение Да (Совпадения не допускаются) для характеристики Индексированное поле. Итак, значения характеристик поля Код модели установлены. Далее следует установить характеристики других полей таблицы так, как это описано ниже (приведены только те характеристики, значения которых отличаются от стандартных). Примечание. Свойство Подпись здесь опущено: вы можете задать подписи для полей по своему усмотрению. 1. Поле Размер поля Индексированное поле
Название модели 20 Да (Допускаются совпадения)
Примечание. При индексировании поля Название модели следует разрешить дубликаты, так как одна и та же модель может встречаться в базе многократно с различными вариантами оснащения, 2. Поле Размер поля Индексированное поле
Мощность двигателя 10 Нет
Тема 3. Таблицы 3. Поле Размер поля Индексированное поле 4. Поле Размер поля Формат поля Число десятичных знаков Значение по умолчанию Условие на значение Сообщение об ошибке Индексированное поле 5. Поле Размер поля Значение по умолчанию Условие на значение Сообщение об ошибке Индексированное поле 6. Поле Размер поля Индексированное поле 7. Поле Размер поля 8. Поле Формат поля Число десятичных знаков Индексированное поле 9. Поле Формат поля Число десятичных знаков Индексированное поле 10. Поле Формат поля Число десятичных знаков Значение по умолчанию Индексированное поле
69 Цвет 20 Нет Количество дверей Байт Основной О I 2 Or 4 Данное поле может содержать только 2 или 4! Нет Коробка передач 15 Ручная «Ручная» Ог «Автоматика» Допустимы только значения «Ручная» или «Автоматика» Нет Обивка 20 Нет Другое оснащение MEMO, размер определяется хранящейся в них информацией. Заводская цена Денежный Auto Нет Транспортные издержки Денежный Auto Нет Предпродажная подготовка Денежный Auto 105 Нет
70
_
Проектирование баз данных СУБД MS Access
Примечание, Так как издержки на подготовку к эксплуатации взимаются целиком и для каждой модели одинаковы, то следует указать некоторую фиксированную величину в качестве значения по умолчанию (например, 105 марок). Позднее это значение будет заноситься автоматически в соответствующее поле каждой записи. 11. Поле Формат поля
Специальная модель Да/Нет
3.1.2. Назначение поля первичного ключа Прежде чем сохранить проект (спецификацию) и приступить к заполнению пустой таблицы конкретными данными, необходимо определить поле первичного ключа. В большинстве случаев первичный ключ представляет собой отдельное поле таблицы, однозначно идентифицирующее каждую запись таблицы. Поле Количество дверей в разработанной таблице, к примеру, вообще непригодно для использования в качестве поля первичного ключа, поскольку значения в этом поле одинаковы для многих записей. А вот идентификационный код модели легко позволяет отличить каждую модель автомобиля: «Toyota Corolla GT» с двумя дверьми, кожаной обивкой, навесным багажником и радио/плейером, раздвижной крышей и алюминиевыми «дворниками» имеет свой код модели так же, как и «Toyota Corolla GT» с четырьмя дверьми, тканевой обивкой и без дополнительного оборудования. Наконец, код модели одинаково удобен и для учета продаж, и при обмене информацией с заводом-изготовителем. Чтобы установить первичный ключ для поля Код модели, следует зафиксировать на нем в спецификации таблицы курсор мыши. После чего необходимо выполнить щелчок на кнопке первичного ключа в строке пиктограмм (пиктограмма с изображением ключа) или выбрать из меню Правка команду Ключевое поле. Слева от объявленного первичным ключом поля в селекторной колонке появится изображение маленького ключа. Это признак того, что данное поле является теперь полем первичного ключа. Внимание! При проектировании таблицы следует тщательно выбирать поле первичного ключа. После установления отношения между таблицами с участием поля первичного ключа внести какие бы то ни было изменения свойств этого поля практически невозможно,
Тема 3. Таблицы
71
3.1.3. Сохранение проекта таблицы После того как определение таблицы полностью завершено, проект таблицы следует сохранить. Только после сохранения проекта можно приступать к вводу данных в таблицу. Из меню Файл выберите команду Сохранить и назначьте новой таблице имя, однозначно описывающее информацию, содержащуюся в ней. Имя таблицы может иметь длину до 64 символов. В данном случае вполне подойдет имя Предлагаемые модели. После щелчка на кнопке ОК в строке заголовка окна проектирования появится выбранное имя таблицы. Если со временем у пользователя возникнет желание, он может переименовать таблицу, маркировав ее имя в окне БД и выбрав из меню Правка команду Переименовать. Затем в диалоговое окно переименования следует ввести новое имя, после чего Access переименует таблицу. 3.2. Виды представления таблицы После создания таблицы мы еще не раз можем обратиться к таблице, чтобы просмотреть, обработать, изменить или проанализировать данные. В зависимости от конкретных целей мы можем представлять таблицу в том или ином виде, наиболее подходящем нам. Откроем только что созданную таблицу Предлагаемые модели, выполнив двойной щелчок на ее названии (Кнопка Таблицы окна БД). По умолчанию таблица откроется в виде Таблица, с которым мы уже успели познакомиться. Всего существует 4 вида представления таблиц, переключать их можно либо кнопкой панели инструментов, либо с помощью выбора соответствующих пунктов меню Вид: •
Таблица - вид, наиболее оптимальный для представления табличных данных, он открывает естественную структуру их представления.
•
Конструктор - вид представления таблицы, отображающий исчерпывающую информацию о полях таблицы и их свойствах - так называемые Метаданные таблицы.
•
Сводная таблица - вид представления больших объемов данных, делающий их удобными для анализа и обработки.
•
Сводная диаграмма - еще более удобный вид представления больших объемов данных, представление данных в этом виде
72
Проектирован ие&1з данных. СУБД MS Access
более наглядно, но менее информативно, но в то же время с использованием сводных диаграмм анализировать данные значительно проще. Вообще многие объекты в Access можно представлять в виде сводной таблицы или сводной диаграммы, среди них таблицы, запросы (результат их выполнения), формы и др. Некоторые из них мы рассмотрим в следующих темах. Данное представление в простой наглядной форме позволяет отобразить результат выполнения достаточно сложных запросов. Это очень удобно, например, при анализе больших объемов данных. При грамотном использовании данный инструмент может сильно помочь всем, кто занимается анализом, контролем, отбором информации из БД.
4. Редактирование проекта таблицы Если позднее необходимо будет добавить, удалить или изменить параметры поля (например, формат, индексирование), маркируйте имя таблицы в окне БД и выполните щелчок на кнопке Конструктор, После этого Access откроет проект таблицы и вы сможете внести в нее любые исправления. Разумеется, при удалении полей следует быть очень внимательным, особенно если эти поля уже содержат данные (т. е. изменяются поля заполненной табляцы), так как вместе с полем удаляются и все содержащиеся в нем данные. Точно так же рекомендуется соблюдать осторожность при изменении характеристик, в особенности размера поля. Когда поле удлиняется, это не оказывает влияния на содержащиеся в нем данные. Критическая ситуация возникает при сокращении размера полей, так как вследствие этого не редко искажается содержимое. Приведем пример: пусть поле Модель необходимо сократить до 10 символов. В таком «коротком» поле уже не поместится название модели «Corolla Liftback XL» или «Corolla Compact GT», от этих названий останется только слово «Corolla». Если необходимо добавить поле в определенной позиции в проекте, например между двумя полями Цвет и Количество дверей, следует маркировать с помощью селекторного столбца ту строку, перед которой должна быть введена пустая строка (в рассматриваемом примере - строка Количество дверей). Затем в меню Вставка необходимо активизировать команду Строки или Поле подстановок. Перед маркированным полем Access вста-
Тема 3. Таблицы
73
вит пустую строку спецификации таблицы, и все спецификации полей, расположенные ниже, сдвинутся на одну строку вниз. При этом в случае использования команды Поле подстановок активизируется мастер подстановок, который возьмет управление на себя. Воспользуемся возможностью внесения изменений в структуру таблицы. Так как в поле Коробка передач могут быть введены только два значения («Ручная» или «Автоматика»), логичнее будет не вводить данные в поле с осуществлением проверки на корректность ввода, а выбирать значения из списка. Чтобы осуществить это предложение, в колонке Тип данных поля Коробка передач в окне проектирования следует выполнить щелчок и из раскрывшегося списка доступных типов выбрать значение Мастер подстановок, в результате запустится мастер подстановок поля. Шаг 1 мастера (рис. 30) требует определить вид источника данных для подстановки. Создание подстановки Мастер создает столбец подстановки, е котором отображается список значений для выбора. Каким способом столбец подстановки будет получать эти значения? Г Объект "столбец подстановки" будет испспьзовать [значения УК таблицы или запроса. (* |Будег введен фиксированный набор значений.
[ Далее > _)
Рис. 30. Выбор вида источника списка в окне Мастера подстановок (шаг I)
В диалоговом окне мастера подстановок следует выбрать опцию Будет введен фиксированный набор значений, которая дает возможность пользователю самостоятельно сформировать список значений для поля., и нажать кнопку Далее, Шаг 2 мастера (рис. 31) требует определить список значений для подстановки.
I
Проектирование баз данных. СУБД MS Access Создание подстановки Выберите значение, которые будет содержать столбец подстановки. Введите число столбце© списка и значения для каждой ячейки. Перетащите правую границу заголовка столбца на нужную ияфину или дважды щелкните ее для автоматического подбора ширины.
Отмена
< Назад
[
Далее >
Готово
|
Рис. 31. Формирование списка значений в окне Мастера подстановок (шаг 2) В появившееся на экране следующее окно мастера подстановок следует ввести значения Ручная и Автоматика, а затем нажать кнопку Готово, после чего процесс формирования комбинированного списка для поля Коробка передач завершится. В разделе Подстановка области Свойства поля для поля Коробка передач появятся новые свойства (рис. 32, табл. 45). № Предлагаемые йоге л и : I Мощность двита Цвет Количество дверей Обиакд Другое оснащение Заводская йена Обшив
Тип данных Числовой Текстовый
| Кол заказа имели по мвоаскоиу каталогу
Чклосой
Двуалверныл ипичетырехдверпый сзявп
Попе MEMO Дечеэтвй
Дотолнительмьге аксеиуаоы Заболевая гцхдажизя нетга-цвна Свойства попя
Подстановка >
Раллерполя ичриатпопя Маска ввода Подпись "Ручная" От "йвтспатика" Допустты то*«о гпэчения гбям тельное поп Тустые строки ие Ючнкод 1М
предложе
Рис. 32. Свойства поля Коробка передач, представленного в виде комбинированного списка
Тема 3. Таблицы
75
Таблица 45 Свойство
Функция
Тип элемента управления
Определяет вид выводимого для поля элемента управления (в данном случае это Поле со списком)
Тип источника строк
Определяет тип источника данных. Так как данные вводились непосредственно пользователем, то это свойство имеет значение Список значений Определяет источник данных для поля и содержит следующую строку: «Ручная»; «Автоматика»
Источник строк Пр исоеди ненн ьга столбец
Номер столбца, значение которого будет выводиться в поле
Число столбцов
Определяет количество столбцов для показа
Заголовки столбцов
Определяет, следует ли выводить для поля со списком заголовок Определяет ширину столбцов в списке
Ширина столбцов Число строк списка Ширина списка
Определяет количество элементов в списке
Ограничиться списком
Определяет выбор значений для данного поля: Да - значения могут принадлежать только выводимому списку
Определяет ширину выводимого списка
4.1. Редактирование записей Итак, проект таблицы готов. Теперь можно заполнить таблицу Предлагаемые модели конкретными данными и по мере необходимости вносить в нее дополнения и изменения. Но для начала облегчим нашу работу по заполнению таблицы, изучив работу с буфером обмена, 4.2. Работа с буфером обмена При создании таблицы и заполнении ее данными полыователю приходится вводить много однотипной и повторяющейся информации. Действительно, многие машины могут иметь, например, один и тот же цвет, одну и ту же комплектацию и т. д. Для облег-
76
Проектирование баз данных. СУБД MS Access
чения данной задачи можно использовать буфер обмена. Один раз введя и скопировав в буфер обмена информацию любого объема, мы можем вставить ее в любое место сколько угодно раз за всего одним нажатием клавиш или щелчком мыши. Например, мы набрали большой текстовый фрагмент, описание комплектации одной из машин. Если мы хотим быстро, не набирая повторно, воспроизвести его несколько раз, необходимо скопировать его в буфер обмена одним из следующих способов: •
выделив фрагмент для копирования и, шелкнув правой кнопкой мыши, во всплывающем меню выбрав пункт Копировать;
•
выбрав опцию Копировать из меню Правка;
•
нажав комбинацию клавиш [Ctrl + С].
Если вы хотите переместить выделенный фрагмент с одного места на другое, вам необходимо совершить те же действия, но вместо опции Копировать выбирать опцию Вырезать. Комбинация клавиш для данной опции - [Ctrl + X]. Попробуйте скопировать в буфер обмена два текстовых фрагмента различными способами. Вы увидите, что в правой части окна появилась панель Буфер обмена (рис. 33). Данная панель позволяет пользователю легко управлять содержимым буфера обмена, вставлять из буфера обмена в различные места текста различные фрагменты, скопированные туда ранее. Вызывается данная панель либо через главное меню, выбрав пункт Буфер обмела Offfice меню Правка, либо двойным нажатием комбинации клавиш [Ctrl -ь С]. В данной панели, вверху, находятся кнопки Вставить все и Очистить все, которые позволяют вставить в текущее место все фрагменты, скопированные в буфер обмена, либо очистить буфер обмена. В списке ниже находятся пиктограммы объектов, скопированных в буфер обмена ранее. В раскрывающемся списке рядом с каждой пиктограммой можно выбрать действие, которое можно совершить с текущим объектом буфера обмена. Указав место в тексте, куда необходимо поместить вставляемый объект, щелкнем мышью по данному объекту буфера обмена, либо, нажав кнопку Вставить все, мы можем вставить соответственно один или все объекты буфера обмена в место, где находится курсор. Для вставки последнего скопированного в буфер объекта существует комбинация клавиш [Ctrl + V].
Тема 3. Таблицы B'WitrosoTf flccess - Шреда<1(ае*ше (.яделн : гяйлииа] О
Oi«l
й- щ
etrssea
Janwn
Се»*
Цве^JKopoEiai перзд| Кмнчезтво де| Оаиекз Антрацита вый нэ Ручная 4 Ткань утылочное ti Автомг 4 Ткань Не6есно-гол>1) Ручная 2 Велюр Черный Ручная 1 Кожэ Ручная
£кнс
[Друг.-is орчаци[ Завала Навеской бага № 2CO,OUp Радио/плейер, 35 700.00р (ПЯДРЩЩ] ЗЭЗОО.ОСр Раздвижная tf 37 ЭОО.ОСр Рад^о/плейер, 41 'DQ.QOp
Буфгр обнена (г « Z' » X
ЙОчшгитькг Выберите счавшэв-пй
Рис. 33. Работа с буфером обмена
Теперь, изучив возможности работы с буфером обмена, приступим к заполнению созданной таблицы данными.
4.3. Добавление записей Для ввода записей в таблицу маркируйте имя таблицы в окне БД и щелкните на кнопке Открыть. Если в данный момент пользователь находится в окне проектирования, то вместо этого следует установить в меню Вид опцию Резким таблицы или щелкнуть в строке пиктограмм на пиктограмме таблицы. Access откроет таблицу в режиме заполнения: каждая строка будет представлять собой отдельную запись, столбцы - поля, а имена полей - заголовки столбцов. Переход от поля к полю осуществляется с помощью клавиши [Tab]; в предыдущее поле можно попасть с помощью комбинации клавиш [Shift+Tab]. Посредством клавиш [вверх] и [вниз] осуществляются перемещения между строками таблицы. Как только будет закончен ввод записи, т. е. строки таблицы, и вы, воспользовавшись клавишей [Tab], перейдете к первой ячейке следующей строки, Access автоматически сохранит только что введенную запись в файле.
8
Проектирование баз данных. СУБД MS Access
Теперь следует ввести некоторые записи примера. Ради простоты ограничимся сначала различными моделями «Toyota Corolla» с вариациями дополнительного оснащения. Готовая таблица будет выглядеть так, как показано на рис. 34. Ю Прцдлагаемые модели : таблице
•
Цвет Коробка перед Количество дв| Обивка Код модели | Модель | Мощность дви 4 Ткань 124Ю Corolla Cnmbi 60ЯО Антрацитовый Автоматика 1 4 Ткань 12579 Corolla Lifiback 53/75 Красный торна Ручная 4 Ткань 12580 Corolla Lifiback В9ЯО бутылочное ст Автоматика 2 Велюр 12Б51 Corolla Согпрзс ЭОЛ 35 Небесно-голуб Ручная 2 Кожа 12553 Corolla Compac 1 00/1 39 Черный Ручная «! - wo.: К | Ч || 3 * 1 H !>*) И» 5 !
|»1
-| г
~ъ
Рис. 34. Заполнение таблицы
При добавлении новой записи в поля, для которых были определены значения по умолчанию, будут автоматически введены соответствующие значения, а именно: Количество дверей=4 и Коробка передач^Ручиая. Если необходимо изменить значение в поле, содержащем значение по умолчанию, следует щелкнуть в нем мышью и ввести новое значение. Кроме упомянутых выше стандартных установок, в поле Специальная модель Access вносит по умолчанию значение Нет. Здесь разработчик таблицы исходил из того, что большинство моделей являются стандартными. При необходимости значение Нет можно изменить на Да. В три денежных поля - Заводская цена, Транспортные издержки и Предпродажная подготовка просто введите числа (без точек и запятых). Access автоматически преобразует эти числа в форматы денежных величин. Формат валюты зависит от установок для страны в системе Windows. Заполните таблицу следующими пятью записями: 1. Код модели Модель Мощность двигателя Цвет Количество дверей Коробка передач Обивка Другое оснащение Заводская цена
12579 Corolla LiftbackXL 53/75 Красный торнадо 4 (уже введено) Ручная (уже введено) Ткань Радио/плейер, раздвижная крыша
35700
Тема 3. Таблицы Транспортные издержки Предпродажная подготовка Специальная модель 2. Код модели Модель Мощность двигателя Цвет Количество дверей Коробка передач Обивка Другое оснащение Заводская цена Транспортные издержки Предпродажная подготовка Специальная модель 3. Код модели Модель Мощность двигателя Цвет Количество дверей Коробка передач Обивка Другое оснащение
Заводская цена Транспортные издержки Предпродажная подготовка Специальная модель 4. Код модели Модель Мощность двигателя Цвет Количество дверей Коробка передач
,Н
950
ю:
Нет 12580 Corolla LiftbackGT 69/90 Бутылочное стекло I Автоматика Ткань Радио/плейер, раздвижная крыша, лаковое покрытие «металлик» 39200 1 200 L05 Нет 12653 Corolla CompactGT 100/139 Черный ' Ручная Кожа Радио/плейер, раздвижная крыша, алюминиевые «дворники», лаковое покрытие «металлик», электроиодъемник окон 41 100 975 105 Да 12651 Corolla CompactXL 90/135 Небесно-голубой 2 Ручная
Проектирование баз данных. СУБД MS Access
80
Обивка Другое оснащение Заводская цена Транспортные издержки Предпродажная подготовка Специальная модель 5. Код модели Модель Мощность двигателя Цвет Количество дверей Коробка передач Обивка Другое оснащение Заводская цена Транспортные издержки Предпродажная подготовка Специальная модель
Велюр Раздвижная крыша, электроподъемник окон 37900 1050 105 Да 12410
Corolla Kombi 60/90 Антрацитовый 4
Автоматика Ткань Навесной багажник, раздвижная крыша, электроподъемник окон 46200 1 100 !• 5 Нет
При желании можно дополнить таблицу моделей, воспользовавшись каталогом фирмы Toyota. Чем больше в таблице записей, тем интереснее будет проходить процесс поиска и обработки данных. При следующем открытии таблицы можно убедиться в том, что Access сортирует записи по полю первичного ключа, т. е. по коду модели. Запись с наименьшим кодом модели будет стоять первой (Corolla Kombi; Код модели 12410), несмотря на то что была введена последней.
4.4. Редактирование и печать записей Пользователь может добавить в таблицу любое количество записей, удалить или исправить имеющиеся данные. Удаляемые данные следует предварительно маркировать с помощью селекторной колонки и нажать клавишу [Del] или выбрать из меню Правка команду Удалить или Удалить запись. Access во избежание случайных ошибок выдаст запрос о том, действительно ли должна быть удалена маркированная запись, т. е. пользователь получит возможность вовремя отказаться от удаления.
Тема 3. Таблицы Если таблицу необходимо перенести на бумагу, из меню Файл следует выбрать команду Печать. Можно отпечатать только некоторые записи. Их следует предварительно маркировать в режиме заполнения таблицы и затем активизировать команду Печать. В группе Печатать активизируйте кнопку Выделенные записи и щелкните мышью на кнопке ОК для запуска процесса печати (рис. 35).
состояние; Готов тип;
Panasonic KX-P6500
место:
LPT1:
заметки:
Г" печать в файл Копии
Печатать
<••
все
число копий;
1 ;fj
страницы с: выделенные записи
Отмена
Настройка..,
,
Рис, 35. Диалоговое окно печати Закрыть таблицу можно посредством команды Закрыть из меню Файл или с помощью двойного щелчка на кнопке вызова управляющего меню окна таблицы. Сохранение данных не 1ребуется, поскольку программа Access уже автоматически поместила все записи по мере их ввода в файл на жесткий диск. 4.5. Работа с клиентами Итак, первая Access-таблица уже содержится в БД, поэтому приступим к проектированию второй таблицы, в которой будут собраны имена и адреса клиентов и информация об их заказах. Поле Код модели должно стать связующим полем таблицы клиентов с таблицей предлагаемых моделей. На основе кода модели для
82
Проектирование баз данных. СУБД MS Access
каждого клиента можно выбрать из таблицы моделей информацию о заказанном автомобиле (цвет, мощность, обивка и т. д.). Создайте новую таблицу точно так же, как создавали первую, выполнив щелчок мышью в окне БД на закладке таблицы и нажав затем кнопку Создать. После выбора в диалоговом окне создания таблицы команды Конструктор Access откроет пустое окно проектирования. Наличие других открытых окон таблиц или других объектов не рассматривается Access как преграда для открытия еще одного окна. Какие операции следует выполнять при создании таблицы, вам уже известно. Надлежит определить типы данных полей и свойства полей. При необходимости для каждого поля можно задать краткое описание, чтобы подробнее документировать разрабатываемый проект. Хотелось бы дать еще один совет. При проектировании структуры таблицы и выборе типов полей разбивайте информацию на наименьшие возможные (в разумных пределах) независимые элементы. Так, почтовый адрес рекомендуется разделить на несколько отдельных полей: поле почтового индекса, поле населенного пункта и т. д. Тот же подход следует применить при проектировании полей, содержащих имена клиентов. Эту информацию удобно хранить в трех полях: поле фамилии, поле имени и отчества. Такое структурирование информации вполне себя оправдывает. Во-первых, упрощается процедура поиска и сортировки по отдельным элементам информации - индексу, городу и т. д. Вовторых, упрощается процедура оформления серийных писем, в особенности обращений к адресатам. В начале письма обычно присутствует обращение к адресату, например: «Дорогой господин Бендер!» Это обращение формируется по содержимому полей таблицы клиентов. Если предусмотрены отдельные поля для фамилии, имени и отчества, то проблем не возникнет. В противном случае попытка использовать единственное поле, содержащее и имя и фамилию, для генерации обращения приведет к тому, что это обращение будет выглядеть так: «Дорогой господин Бендер Остап Ибрагимович!» Такое обращение не принято! Таблица клиентов должна содержать следующие поля (табл. 46).
Тема 3. Таблицы
83 Таблица 46
Имя поля
Тип данных поля
Код модели
Числовой
Номер договора
Числовой
Обращение Имя
Текстовый
Отчество
Текстовый
Фамилия
Текстовый
Почтовый адрес
Текстовый
Текстовый
Почтовый индекс
Числовой
Населенный пуню-
Текстовый
Телефон
Текстовый
Дата заказа
Дата/Время
Скидка
Числовой
Примечание. Поле Телефон объявлено текстовым полем, а не числовым. Такое объявление объясняется тем, что в привычной форме записи номеров телефонов встречаются специальные символы, такие, как дефис и скобки, например (0211)-123-44-6б. В числовых же полях не разрешены никакие знаки, кроме цифр, точек и запятых. Объявленные поля имеют следующие свойства: 1. Поле Код модели Размер поля Формат
Длинное целое Основной
Число десятичных знаков
О Да (Допускаются совпадения)
Индексированное поле
Примечание. В таблице предлагаемых моделей каждому типу автомобиля присваивался уникальный код модели, и запись с таким кодом встречалась в таблице один раз. В таблице клиентов один код модели может встречаться несколько раз, когда несколько клиентов заказывают одну и ту же модель. Поэтому для свойства поля Индексированное поле следует выбрать значение Да (Допускаются совпадения).
Проектирование баз данных. СУБД MS Access 2. Поле Размер поля Формат Число десятичных знаков Индексированное поле 3. Поле Размер поля Значение по умолчанию Условие на значение Сообщение об ошибке Индексированное поле 4. Поле Размер поля Индексированное поле 5. Поле Размер поля Индексированное поле 6. Поле Размер поля Индексированное поле 7. Поле Размер поля Индексированное поле 8. Поле Размер поля Формат Число десятичных знаков Индексированное поле
Номер заказа Длинное целое Основной О Да (Совпадения не допускаются) Обращение 10 Господину «Господину» or «Госпоже» Допустимые значения «Господину» или «Госпоже»! Нет Имя •!
Нет Отчество 40 Нет Фамилия 40 Нет Почтовый адрес 40 Нет Почтовый индекс Длинное целое Основной О Да (Допускаются совпадения)
Примечание. Почтовые индексы в России кодируются шестизначным числом, поэтому приходится выбирать для соответствующего поля размер Длинное целое, так как размер Целое позволяет хранить только четырехзначные числа. 9. Поле Размер поля Индексированное поле
Населенный пункт 40 Нет
Тема 3. Таблицы
85
10. Поле Размер поля Индексированное поле 11. Поле Формат Индексированное поле
Телефон 20 Нет
Дата заказа Краткий формат даты Да (Допускаются совпадения I
Примечание. Существуют различные форматы даты, например: 02.05.93, 2.5.1993, 02.05.1993, 02-Май-93. Формат Краткий формат даты является наиболее общеупотребительным способом записи даты. Разумеется, вы можете по своему усмотрению воспользоваться любым другим форматом. 12. Поле Размер поля Формат Число десятичных знаков Индексированное поле
Скидка С плавающей точкой (8 байт) Процентный О Нет
Проект таблицы должен выглядеть приблизительно так, как показано на рис. 36. 3- Клиенты; таблица
,
-
.
Тип д а н ч ы < ( Числовой Числовой Текстовый Текстовый Текстовый Текстмьй Текстовый Числовой Текстовьй Текстовьй Дата/время Чиспсвой
\ Иняпопя ! >• Код «одели i Напер iaitasa 1 С€рзщенив j Иия [п Отчество |_ Фамилия | Почтовый адрес • Почтовьй индекс | Населенный пункт __ Телефон 1 Дата закана Г [ Скидка
'
"
.
, '
Описание
, „{УНйй 1л
Свойства тля Общие
j Подстановка ]
PasMep полч Формат поля Числа десятичных ;Н;КОБ Маска вводя Подпись Значение по уиопчан№о Услжие на (начение Сообщение об ошибке Обняв тельное поле Индексированное поле
Дттное целое Основной 0 Пня |>^пн «о^ет cw-тоятв иь 6* зчако» с учетич грибелое. finacnpas^i- ^ hwsi-ам попей е^хчите 'AW.IUV F i -
0
Нет Да (Допускаются совпадения)
Рис. 36. Проект таблицы клиентов
86
Проектирование^ баз данных 1 СУБД MS Access
На ней отображается первичный ключ, установленный для поля Номер договора. Это условие выполняется, поскольку для характеристики Индексированное поле установлено значение Да (Совпадения не допускаются). Благодаря первичному ключу будет исключен ввод повторяющихся номеров договоров. Для объявления поля Номер договора полем первичного ключа маркируйте соответствующую строку спецификации и выполните щелчок на пиктограмме ключа в строке пиктограмм или выберите из меню Правка команду Ключевое поле. Перейдите из режима проектирования в режим заполнения таблицы посредством щелчка на пиктограмме таблицы в строке пиктограмм или выберите опцию Таблица в меню Вид. Сохраните готовый проект таблицы, выбрав для него подходящее имя, например Клиенты. В спроектированную таблицу клиентов необходимо ввести готовые данные. На ней отображается первичный ключ, установленный для поля Номер договора. Это условие выполняется, поскольку для характеристики Индексированное поле установлено значение Да (Совпадения не допускаются). Благодаря первичному ключу будет исключен ввод повторяющихся номеров договоров. Для объявления поля Номер договора полем первичного ключа маркируйте соответствующую строку спецификации и выполните щелчок на пиктограмме ключа в строке пиктограмм или выберите из меню Правка команду Ключевое поле. Сохраните готовый проект таблицы, выбрав для него подходящее имя, например Клиенты. В спроектированную таблицу клиентов необходимо ввести готовые данные. Перейдите из режима проектирования в режим заполнения таблицы посредством щелчка на пиктограмме таблицы в строке пиктограмм или выберите опцию Таблица в меню Вид. Вы можете заполнить таблицу клиентов произвольными адресами, телефонами и фамилиями. В отношении кодов моделей следует быть осторожнее: эти коды должны в точности совпадать с таковыми из таблицы Предлагаемые модели. В поле Скидка для особенно надежных партнеров указаны суммы скидок в процен-
Тема 3. Таблицы
87
тах. Для всех остальных клиентов введите в это поле нуль (0). При заполнении полей процентного формата следует учитывать, что вводимую величину Access умножает на 100 и интерпретирует как проценты. Если, к примеру, клиент должен получить скидку 10 %, то надлежит ввести значение 0,1 (0,1 х 100 % = 10 %). Если бы в поле скидки было введено значение 10, то получилась бы скидка 1 000 % (10 х 100 % - 1 000 %). Произведя некоторый анализ созданной таблицы, заметим, что поле Обращение может иметь только два значения («Господину» или «Госпоже») и может быть преобразовано в комбинированный список (поле со списком), как это было проделано с полем Коробка передач в таблице Предлагаемые модели. Несколько по-другому строится комбинированный список для поля Код модели. Он может базироваться только на моделях, содержащихся в таблице Предлагаемые модели. Процесс создания комбинированного списка на основе данных другой таблицы проследим после рассмотрения связывания таблиц в БД.
5. Связывание таблиц Access позволяет строить РБД, отдельные таблицы которых могут быть связаны между собой отношениями. В нашем примере нужно объявить связь между таблицей предлагаемых моделей и таблицей клиентов. Для этого из меню Сервис следует выбрать команду Схема данных. На экране появится окно Схема данных. При первом открытии оно будет пустым. Чтобы добавить таблицы или запросы в окно Схема данных, необходимо выбрать опцию Добавить таблицу в меню Связи или нажать кнопку Добавить таблицу, расположенную в строке пиктограмм. В списке таблиц раздела Таблицы окна Добавление таблицы (рис. 37) маркируйте таблицу Предлагаемые модели, для которой необходимо установить связь, и нажмите клавишу Добавить. Ту же операцию проделайте с таблицей Клиенты. Затем нажмите клавишу Закрыть.
Проектирование баз данных. СУБД MS Access
:Добавление таблицы
Таблицы j Запросы | Таблицы и запросы Закрыть
i
Рис. 37. Добавление таблицы в схему данных
Связь между таблицами следует организовать так, чтобы при работе с таблицей клиентов было достаточно ввести только соответствующий код модели, после чего вся необходимая информация по желаемому типу автомобиля будет извлечена из таблицы моделей. С помощью мыши перенесите поле, которое следует использовать для установки связи, из списка одной таблицы к соответствующему полю другой таблицы. В данном случае таковым является поле Код модели. На экране появится диалоговое окно Изменение связей (рис. 38), в котором будет предложена связь между таблицами Предлагаемые модели и Клиенты через поле Код модели (для обеих таблиц). Несколько клиентов вполне могут заказать один и тот же тип автомобиля, а значит, одной записи в таблице моделей будет соответствовать несколько записей в таблице клиентов. Теперь посредством установления типа отношений между таблицами необходимо определить параметры связи. Установите опцию Обеспечение целостности данных. Для данных таблиц будет установлено отношение типа Один ко многим, что отразится в области Тип отношения. Это означает, что одной записи главной или первичной таблицы Предлагаемые модели могут быть поставлены в соответствие несколько записей связанной (подчиненной) таблицы Клиенты. Данное отношение является наиболее распространенным в РБД.
Тема 3. Таблицы Изменение связей Таблица/запрос:
Связанная таблица/запрос:
I Код модели
...". 1 Код подели
Л
Отмена Объединение...
V
-у Обеспечение целостности денных . Г
каскадное обновление связанных полей
'
каскадное удаление связанных записей
Тип отношения;
Новое..
один-ко-многим
Рис. 38. Объявление связи между таблицами
После нажатия кнопки Создать в окне Схема данных (рис. 39) будет графически показана созданная связь между таблицами Предлагаемые модели и Клиенты. Примечание. Поля, через которые осуществляется связь, в первичной и связанной таблицах могут иметь разные имена. Необходимым условием установления связи является совпадение типа данных и значений характеристик (в особенности размера).
|i Кед модели I How ер заказа
| Обращение |Ммя ;) Отчество JФамилия •IПочтовый адрес |Почтовый индекс 3 Нас елейный пункт j Тепе фон И Дата заказа IСкидка
Модель Мощность двигателя Цвет Коробка передач | Количеств о дверей | Обивка Другое оснащение Заводская цена Транспортные издержки Предпродажная подготовка Специальная модель
Рис. 39. Схема данных с установленной связью
90
Проектирование баз данных. СУБД MS Access
Наконец, установление опции проверки ссылочной целостности Обеспечение целостности данных обеспечивает проверку ссылочной целостности связи между обеими таблицами. Эта проверка позволяет избежать ряда ошибок, допускаемых при удалении записей из первичной таблицы и вводе информации в связанную таблицу. Благодаря проверке ссылочной целостности можно избежать следующих ошибочных ситуаций: •
добавления в связанную таблицу записей, для которых отсутствует соответствующая запись в первичной таблице;
•
осуществления изменений в главной таблице, которые приведут к появлению «осиротевших» записей в связанной таблице;
•
удаления записей в главной таблице, на которые ссылаются записи из связанной таблицы.
5.1. Что означает целостность данных Примечание. Между двумя таблицами может быть объявлено только одно отношение. Если дается определение другому отношению между теми же таблицами, то оно заменит уже имеющееся отношение. Как указывалось ранее, под целостностью данных понимается выполнение логических ограничений на данные. Эти ограничения вытекают из свойств ПО и свойств модели данных. Одни ограничения определяются неявно и зависят от выбранной модели данных, для реляционной модели они рассмотрены в [1]. Другие ограничения указываются пользователем явно с использованием средств Access. К таким ограничениям относятся ограничения на ОДЗ атрибутов таблиц, которые задаются при определении типов данных и характеристик полей таблицы. Процесс введения таких ограничений рассмотрен в предыдущих разделах. Второй тип ограничений - это ограничения на связи между таблицами. Рассмотрим особенности задания таких ограничений. Целостность данных означает систему правил, используемых в Access для поддержания связей между записями в связанных таблицах, а также обеспечивает защиту от случайного удаления
Тема 3. Таблицы
91
или изменения связанных данных. Установить целостность данных можно, если выполнены следующие условия: 1. Связанное поле главной таблицы является ключевым полем или имеет уникальный индекс. 2. Связанные поля имеют один тип данных. Здесь существует два исключения. Поле счетчика может быть связано с числовым полем формата Длинное целое. А также поле счетчика можно связать с числовым полем, если в обоих полях для свойства Размер поля задано значение Код репликации. 3. Обе таблицы принадлежат одной БД Access. Если таблицы являются связанными, то они должны быть таблицами Access. Для установки целостности данных БД, в которой находятся таблицы, должна быть открыта. Для связанных таблиц из БД других форматов установить целостность данных невозможно. 4.
Установив целостность данных, необходимо действовать в соответствии со следующими правилами.
5. Невозможно ввести в поле внешнего ключа связанной таблицы значение, не содержащееся в ключевом поле главной таблицы. Однако в поле внешнего ключа возможен ввод пустых значений, показывающих, что записи не являются связанными. Например, нельзя сохранить запись, регистрирующую заказ на несуществующую в БД модель машины «Toyota», но можно создать запись для заказа, в котором клиент пока не определился, какую модель машины он предпочтет, если ввести пустое значение в поле Код модели. 6.
Не допускается удаление записи из главной таблицы, если существуют связанные с ней записи в подчиненной таблице. Например, невозможно удалить запись из таблицы Модели, если в таблице Клиенты имеются заказы, относящиеся к данной модели.
7.
Невозможно изменить значение ключевого поля в главной таблице, если существуют записи, связанные с данным значением. Например, невозможно изменить код модели в таблице Модели, если в таблице Клиенты имеются заказы, относящиеся к этой модели.
92
Проектирование баз данных. СУБД MS Access
Чтобы наложить эти правила на конкретную связь, при ее создании следует установить флажок Обеспечение целостности данных. Если данный флажок установлен, то любая попытка выполнить действие, нарушающее одно из перечисленных выше правил, приведет к выводу на экран предупреждения, а само действие выполнено не будет. Чтобы преодолеть ограничения на удаление или изменение связанных записей, сохраняя при этом целостность данных, следует установить флажки Каскадное обновление связанных полей и Каскадное удаление связанных полей. Если установлен флажок Каскадное обновление связанных полей, то при изменении ключевого поля главной таблицы автоматически изменяются и соответствующие значения связанных записей. Если установлен флажок Каскадное удаление связанных полей, то при удалении записи в главной таблице удаляются и все связанные записи в подчиненной таблице. 5.2. Доработка таблицы клиентов Теперь пришло время рассмотреть построение комбинированного списка (поля со списком) для поля Код модели таблицы Клиенты на основе связанной таблицы Предлагаемые модели. Как уже было сказано выше, логично было бы представить список имеющихся моделей (и/или их кодов) при заполнении поля Код модели таблицы Клиенты. Это избавило бы пользователя от ввода данных с клавиатуры и, следовательно, от допущения ошибок. Выберите в окне БД таблицу Клиенты и нажмите кнопку Конструктор. В открывшемся окне проектирования таблицы щелкните в колонке Тип поля поля Код модели и из списка доступных типов полей выберите строку Мастер подстановок. В первом диалоговом окне мастера (рис. 40) выберите опцию столбец подстановки использует значения из таблицы или запроса, которая позволяет создать список значений для поля на основе другой таблицы, и нажмите кнопку Далее. В следующем окне из приведенного списка таблиц (или запросов) следует выбрать таблицу Предлагаемые модели, так как именно эта таблица является для нас источником списка кодов моделей. Нажав кнопку Далее, перейдите к следующему окну мастера.
Тема 3. Таблицы
93
.Создание подстановки Выберите таблицу или запрос со значениями, которые будет содержать столбец подстановки. Таблица: Предлагаемые модели
Показать fi" 1аблиць!
С Запросы
Отмена
С Таблицы и запросы
< Назад
[ Далее >
|
Рис. 40. Выбор таблицы для создания поля со списком В этом окне (рис. 41) из предложенного списка полей Доступные поля выберите поля, значения которых будут фигурировать в списке. В нашем случае достаточно выбрать поле Модель, так как ключевое поле Код модели автоматически присоединится к списку. Это можно увидеть в следующем диалоговом окне мастера (рис. 42), если отключить опцию Скрыть ключевой столбец. Создание подстановки
m «ex ххх яих m та ш ххх
Какие поля содержат значения, которые следует включить в столбец подстановки? Отобранные попя станут столбцами в объекте "столбец подстановки".
ах act ж m
Доступные поля;
Выбранные поля;
Код модели Цвет Коробка передач Количество дверей Обивка Заводская иена Транспортные издержки
Отмена
|
< Назад
| Далее >
Рис. 41. Выбор полей для формирования списка
Проектирование баз данных. СУБД MS Access
94 Создание подстановки
Задайте ширину столбцов, которые содержит столбец подстановки. Перетащите правую границу заголовка столбца на нужную ширину или дважды щежните ее для автоматического подбора шириш. Г Ккрить ключевой столбец (рекомендуется)
Отмена
< Назад
Рис. 42. Установка показа или скрытия ключевого столбца Оставим опцию отключенной и перейдем к следующему окну (рис. 43), где предстоит выбрать столбец, значение которого будет сохранено в поле Код модели. Создание подстановки При выборе строки в объекте 'столбец подстановки" можно сохранить значение из этой строки в базе данных: или использовать это значение в дальнейшем для выполнения действия. Выберите поле, однозначно определяющее строку. Какой столбец объекта "столбец подстановки" содержит значение, которое следует сохранить 8 базе данных? Доступные поля;
Модель
Отмена
)
< Назад j Далее >
Готово
|
Рис. 43. Выбор поля для сохранения значения Из списка полей Доступные поля выберите поле Код модели. Процесс проектирования комбинированного списка подошел к концу. Осталось только нажать кнопку Готово и просмотреть результат нашей работы, предварительно сохранив проект таблицы.
Тема 3. Таблицы Если при вводе данных в таблице Клиенты в поле Код модели щелкнуть мышью, то развернется комбинированный список, состоящий из двух колонок (рис. 44): Код модели и Модель. Теперь достаточно выбрать соответствующую строку из списка и значение кода модели данной строки перенесется в поле ввода. Ш Клиенты : таблице Кед модерн
Номер заказа Обращение 1200 Господину Господину Corolla UbackS Corolia Corolla Coropac Cctol^a Compac
Отчество
:•
Павел
Фамилия Чичиков
Иванович
Гочтсвый а ул. Ленина
>
Рис. 44. Выбор значений из комбинированного списка Access автоматически сохраняет каждую вводимую пользователем запись. После того как в таблицу будут введены необходимые данные (рис. 45), ее можно закрыть и вернуться в окно БД. £3 Microsoft Access. Правка
Вид
Вставка
Формат
а чз а а У
Цепней
^
Сэшис
Окно
£правка
з; Ji v i
*
- (2
-Клиенты ::таблица
>
Код модели 12579 -
12410 12580 12651 12S53
I
Номер заказа
120 121 122 123 124 '
Имя
Обращение Господину
Павел
Отчество Иванович
Фамилия Чичиков
Госпоже
Настасья
Кирилловна
Иванова
Господину
Иеан
Николаевич
Андреев
Господину
Илья
Петрович
Афанасьев
Госпоже
Наталья
Семеновна
Ремизова
Господину
Рис. 45. Заполненная таблица клиентов
6. Импортирование, встраивание и экспортирование таблиц Предположим, что перед принятием решения о переводе всего делопроизводства в среду Access, данные обрабатывались другой программой управления БД или программой расчета электронных
96
Проектирование баз данных. СУБД MS Access
таблиц. Переход к Access желательно выполнить с минимальными потерями и не начинать все с самого начала, т. е. преобразовать уже имеющиеся наборы данных в Access-таблицы. Наличие средств конвертирования форматов может существенно сэкономить время на перенос информации из других сред, особенно если речь идет о достаточно больших БД, содержащих сотни и тысячи записей. Встроенные в Access средства конвертирования позволяют считывать и подвергать дальнейшей обработке данные «чужих» форматов, а также экспортировать Access-таблицы в другие БД.
6.1. Импортирование таблиц Для импортирования набора данных следует из меню Файл выбрать подменю Внешние данные, а в нем - команду Импорт. Эта команда копирует данные из текстового файла, файла программы обработки электронных таблиц или БД в Access-таблицу. Она же позволяет скопировать объекты из другой БД Access в активную БД. Данные можно импортировать, если они хранятся в файлах одного из следующих форматов: • MS Access, •
Текстовый,
•
Microsoft Excel,
•
Paradox,
•
Exchange,
•
Outlook,
•
Документы HTML,
• dBASE Ш, • •
dBASE IV, dBASE 5,
•
Таблицы Lotus 1-2-3,
• •
Документы XML, ODBC Database.
Предположим, что до сих пор данные об адресах клиентов и их заказах хранились в Excel-таблице. С целью дальнейшей обработки она должна быть импортирована в Access.
Тема 3. Таблицы
Для этого вызовите из меню Файл подменю Внешние данные, а в нем активизируйте команду Импорт. В поле Тип файлов (рис. 46) пролистайте список доступных для импорта форматов файлов и маркируйте желаемый формат (в рассматриваемом примере - Microsoft Excel).
„)Б$эы данных ._РГРТА :_J Теория
.
документы
tr-," Мее сетевое окружение
Имя файла: Тип файлов;
r «of t Excel (*
Рис. 46. Диалоговое окно импортирования таблицы
Найдите файл, который следует импортировать и маркируйте его. Выполните щелчок на кнопке Импорт для запуска программы Мастер импорта, которая поможет преобразовать формат электронной таблицы в таблицу Access. После запуска программы Мастер импорта откроется диалоговое окно (рис. 47), в котором отобразятся данные импортируемой таблицы Excel. В этом окне предлагается выбрать в качестве имен полей первую строку таблицы Excel, содержащую заголовки столбцов. Для этого следует установить опцию Первая строка содержит заголовки столбцов. Имена полей, а также другие характеристики можно откорректировать в следующем диалоговом окне, для этого нужно нажать кнопку Далее. В открывшемся окне (рис. 48) можно изменить имя поля и, если возможно, его тип, а также определить, следует ли его импортировать, установив опцию Не импортировать поле (Пропустить), Кроме того, можно определить, требуется ли индексация данного поля.
Проектирование баз данных. СУБД MS Access = Импорт электронной таблицы Файл электронной таблицы содержит несколько листов или диапазонов. Выберите мужний объект. <*" листы именованные
Образцы данных для листа "Предлагаемые^ дели".
1 ;од модели Чолель 2 12S79 Corolla £ 12 580 Corolla t 12 6S3 Corolla S 12 651 Corolla Corolla
б 12410
louiHOCTb двигателя
Цвет
LifibackXL LifibackGT CompactOT Compact2P
53/75
Combi
60/90
Красный т Бутылочке Черный Зебеско-г Антраците
69/90 100/139 ЭО/1Э5
] Далее >
|
Рис. 47. Выбор имен полей для таблицы г' Импор г электронной теблицы rtieerca возможность описать каждое поле импорта. Вьйерите ngtie в нижней части окна и измените сведения в области "Описание поля". Описание поля иняполя: \i индцкс:
[Да (Допускаются совпадения)
V] Г" не импортировать (прояустить) папе
Номер заказа )Код модели |Иодель Иощность 1131 orolia LifibackXL S3/7S 2132 orolla LifibackGT 69/90 3133 orolla CotnpaccCT 100/139 4 L34 orolle CompaccXP 90/135 5 135 o r o l l a Cottibi 60/90 >
|
Далее >
|
Готе
Рис. 48. Мастер импорта электронной таблицы (шаг 2) В следующем окне (рис. 49) нужно установить первичный ключ для таблицы, исходя из следующих предложенных вариантов: •
автоматически создать ключ - программа Access сама добавляет поле с первичным ключом;
Тема 3. Таблицы
определить следующий ключ - поле, которое будет выполнять роль первичного ключа, из списка доступных полей выбирает пользователь; не создавать ключ - первичный ключ не присваивается. 63 Импорт электронной таблицы
е= 1 XXI НИХ m
Z х» m m 3 хи m m 2 mil mm 4 in m m
,
|Х|
Рекомендуется задать ключевое поле & новой таблице. Ключ используется для однозначного определения каждой записи таблицы и позволяет ускорить обработку данных, {? ] автоматически создать ключ f* определить ключ:
j
3
[Номер заказа
Г не создавать ключ
Код | Нон ер зака за Код модели Модель 12579 Corolla
LifibackXL Corolla LifibackGT Corolla CornpaccGT Corolla CompaccXP Corolla Cornbi
• ННШ31 3
] •
•l32
12580
Hl33 Hi 34
12653
Hl35
12410
12651
Нощно с ть j 53/75 69/90
J
100/139 90/135 60/90
u
-
Отмена
< Цазад | Далее > \
-
Готово
|
Рис. 49. Выбор первичного ключа при импорте данных
Теперь остается перейти к последнему диалоговому окну мастера и задать имя импортируемой таблицы. В этом окне можно установить опцию, которая позволит после импорта таблицы запустить программу анализа данных. 6.2. Встраивание таблиц Кроме возможности импорта данных из файлов другой прикладной программы, в Access существует возможность анализа данных, представленных в формате другой прикладной программы, а также возможность их обработки без выполнения импортирования. Такие данные представляют для Access внешнюю таблицу, они остаются в своем исходном формате и могут обрабатываться далее как в оригинальной прикладной программе, так и в Access.
100
Проектирование баз данных. СУБД MS Access
Для встраивания таблицы следует в меню Файл выбрать подменю Внешние данные и в нем активизировать команду Связь с таблицами. Данная команда устанавливает связь с таблицей из другой БД Access или из другой СУБД. В БД Access могут быть встроены данные в виде таблицы из файлов следующих форматов: •
MS Access,
•
Microsoft Excel,
•
Paradox.,
• • • • • • •
dBASE HI, dBASE IV, dBASE 5, Exchange, Outlook, Документы HTML, ODBC Database.
После выбора формата следует нажать кнопку Связь. Процесс связывания проходит под управлением мастера связи и аналогичен процессу импорта таблицы. После маркировки встраиваемой таблицы и нажатия кнопки Связь выбранная таблица встроится в активную БД и Access выдаст об этом подтверждающее сообщение. В окне БД рядом со встроенной таблицей появится пиктограмма-стрелка. Эта пиктограмма обозначает внешнюю таблицу, которая была встроена в Access. Открыв встроенную таблицу в режиме проектирования, пользователь сможет убедиться в том, что она выглядит точно так же, как и обычная Access-таблица. Хотя структуру этой таблицы изменить нельзя, т. е. здесь нельзя добавить или удалить поля, имеется возможность установить для встроенных таблиц те же свойства, что и для обычных Access-таблиц. 6.3. Экспортирование таблиц Пользователь может экспортировать данные из Access-таблиц в текстовые файлы, электронные таблицы, файлы других прикладных программ управления БД, а также в другую БД Access, воз-
Тема 3. Таблицы
101
можно, в формате предыдущей версии Access. Для выполнения экспортирования перейдите в БД (например, TOYOTA), содержащую экспортируемую таблицу (например Клиенты), маркируйте ее и активизируйте команду Экспорт из меню Файл. Появившееся при этом диалоговое окно экспорта будет выглядеть точно так же, как окно импорта (см. рис. 30) (за исключением заголовка). В нем следует выбрать формат файла или БД, в которую желательно произвести экспорт. Имеющиеся в распоряжении форматы экспорта идентичны форматам импорта. В зависимости от того, какой формат был выбран пользователем, запускаемый мастер экспорта автоматически или в диалоге с пользователем проводит экспорт выбранной таблицы. Процесс экспорта во многом схож с процессом импорта, поэтому подробно на нем мы останавливаться не будем. Выберите формат по своему вкусу, например Microsoft Excel. В качестве имени в поле Имя файла Access предложит имя Клиенты (так как мы маркировали эту таблицу). Теперь останется только выполнить щелчок на кнопке Экспорт. В результате Access создаст Excel-файл со всеми данными из Access-таблицы и вставит имена полей таблицы в первую строку таблицы Excel (рис. 50). ЕЭ Aticrospft Excel -Клиенты. xls ОКНО
X
лоделиДНомер заказа Обращение 120 Господину 121 Госпоже 12580 122 Господину 12651 123 Господину 12653 1<М Госпоже
..р ;
Имя Пввел Настасья Иван Илья Наталья
£л[Мв1М
«
Ч
Е
.
F
Отчество Фемипия Иванович Чичиков Кирилловна Иванова Николаевич Андреев Петрович АфвнасьгеСемемоена Ремизова
Почтовой адрес ул. Пенима. 15 ул. Введенская 1 5 ул. Победы 21 ул Полевая. 12 уп Почтовая, 11
и \Клиенты/
Рис. 50. Экспортированная таблица Клиенты в Excel-формате
ПочтГ ЗЗС 39Е
(Г
Проектирование баз данных. СУБД MS Access
Также имеется возможность сохранить таблицу в текущей БД. Для этого маркируйте ее и активизируйте команду Сохранить как из меню Файл. В диалоговое окно Сохранение (рис. 51) следует ввести имя копии, а также выбрать, во что при сохранении будет преобразована таблица. Таблицу можно сохранить как Таблицу без преобразования либо, выбрав одну из опций Форма, Отчет, Страница доступа к данным, преобразовать ее автоматически в выбранный тип объекта. При этом исходная таблица не изменится. Выберите опцию Таблица и нажмите кнопку ОК. Сохранение Сохранение объекта Таблица 'Клн...' в: |Кспия "Ктенты"
Как (Таблица МРаппВаТЛ
Форма Отчет Страница доступа к данным
Рис. 51. Выбор вида сохранения таблицы
Контрольные вопросы Как соотносятся друг с другом таблицы и БД? Какие типы данных полей вам известны? Какие свойства полей имеются в Access? Для чего служат характеристики полей Значение по умолчанию и Условие на значение? Что такое индексы и для чего они предназначены? Как создать индекс таблицы? Что такое формат поля? Почему для каждой таблицы следует устанавливать первичный ключ? 9. Что такое первичный ключ таблицы? 10. В таблицы Предлагаемые модели и Клиенты добавьте некоторые записи по своему выбору. 11. Как установить связь между таблицами? 12. Как установить ссылочную целостность между таблицами?
Тема 3. Таблицы
103
13. Что понимается под ссылочной целостностью и для чего она служит? 14. Какое различие существует между встраиванием и импортированием таблицы? 15. Что такое размер поля? Какие размеры рекомендуется указывать для каждого типа поля? 16. Как создать поле со списком с помощью мастера подстановок? 17. Что может быть источником данных при создании поля со списком? 18. Какие виды ограничений целостности позволяет реализовать Access? 19. Что такое схема данных? 20. Как добавить данные в таблицу?
Задание 7 Для своего варианта задания разработать БД, создать файл БД в Access, сконструировать таблицы, определить атрибуты таблиц, их типы и свойства. Задать ограничения на значения атрибутов. Определить связи между таблицами, построить схему данных, наложить ограничения целостности и заполнить таблицы данными.
Тема 4 ЗАПРОСЫ - В ЦЕНТРЕ ВНИМАНИЯ РЫНОК СБЫТА С помощью запросов пользователь может получить из исходных базовых таблиц ответы на интересующие его вопросы. Например: «Как часто до сегодняшнего дня продавалась модель X?» или «Кто из клиентов живет в Рязани?» Такой тип запросов называется запросами на выборку. С помощью таких запросов пользователь может увидеть часть данных БД и проанализировать их, Данные, доступные пользователю в одном запросе, могут храниться в одной или нескольких таблицах одной или нескольких БД. То есть запрос может объединять данные из нескольких таблиц и запросов, находящихся как в текущей, так и в других БД. Результат выполнения запроса на выборку может быть динамическим (Dynaset) или статическим (Snapshot). Результат динамического запроса может быть использован для редактирования данных в тех таблицах, на основе которых он был получен. Этот набор называется и выглядит точно так же, как обычная таблица, но не является таковой. Dynaset является виртуальной таблицей, которая при закрытии запроса ликвидируется. Результат статического запроса запоминается в новой базовой таблице, которая далее используется обычным образом. Отсюда следует, что запрос типа Snapshot нельзя использовать для редактирования таблицисточников.
1. Типы запросов В зависимости от последующего использования или способа получения данных, полученных с помощью запроса, в Access существует 4 типа запросов;
Тема 4. Запросы - в центре внимания рынок сбыта
105
1. Запросы на выборку отбирают нужные поля данных из записей, удовлетворяющих заданному условию из одной или нескольких таблиц и/или других запросов БД. 2.
Перекрестные запросы формируют данные из таблиц и запросов в виде электронной таблицы (матрицы). В такой таблице заголовки строк образуются из уникальных значений одного поля, заголовки столбцов - из уникальных значений другого поля, а на их пересечении вычисляются какие-либо суммарные значения для отобранного множества записей.
3.
Запросы на изменение делятся на 4 вида: * на создание новой таблицы; * на добавление новых записей в таблицу; » на удаление отобранных записей из таблицы; * на изменение значений каких-либо полей в отобранных записях таблицы.
4.
Запросы с параметрами - это такие запросы, в которых критерии отбора задаются пользователем при каждом запуске запроса. То есть запрос с параметрами можно получить из любого из трех предыдущих типов запросов, введя в него параметры для отбора записей. При запуске такого запроса на экран выводится окно, в которое следует ввести значение параметра выборки, для каждого из параметров. Процесс проектирования запроса можно открыть несколькими способами: *
в окне БД на вкладке Запросы нажать кнопку Создать или выбрать одну из строк: Создание запроса в режиме конструктора или Создание запроса с помощью мастера;
* в окне БД на вкладке Таблицы выбрать инструмент Новый объект/Запрос: » выбрать в главном меню пункт Вставка/Запрос. В большинстве случаев процесс конструирования запроса начинается с открытия диалогового окна выбора способа конструирования (рис. 52). Здесь можно выбрать один из специальных типов запросов, создаваемых с помощью мастера: Перекрестный,
Проектирование баз данных. СУБД MS Access
Простой, Повторяющиеся записи, Записи без подчиненных либо открыть обычный режим ручного конструирования запроса на выборку. Новый запрос
Самостоятельное создание нового запроса.
Простой запрос Перекрестный запрос Повторяющиеся записи Записи без подчиненных
Рис. 52. Начало конструирования запроса
Выбор нужного типа запроса осуществляется далее либо с помощью главного меню Запросы, либо с помощью контекстного меню в любой момент после открытия процесса конструирования запроса. Исключение составляет перекрестный запрос и некоторые специальные виды запросов на выборку, для которых существует специальные мастера. При этом конструирование запроса производится в пошаговом режиме путем ответов на вопросы мастера.
2. Режимы представления запроса В процессе конструирования запроса его можно представить в одном из пяти режимов: 1. Окно QBE - конструктор запроса (рис. 53). 2. Страница SQL — текст запроса на языке структурированных запросов SQL (рис. 54). 3. Таблица - предварительный просмотр результатов запроса (рис. 55).
Тема 4. Запросы - в центре внимания рынок сбыта
107
: ЗвнигОСТвДуйьг: перекрестный запрос
Иия таблицы Групповая оперения Перекрести
М9ащ Расписание rpvmHooeEa Заголовки строк по возрастанию
Воввяначати Пара Групгбшсвка JaroficeKf- стообщ
First ФИО: ФИО Поеполлеатель Pert Значение
Условие отбора
л
ЧчслЗкан Ja«aiHe Условие
"Чалите!*"
<
к
.!
Рис. 53. Окно QBE конструирования запроса t"'ЗйнитостьЛудит : псрсирсстныйзапрос TRAMSFORM Р1г5С(Преподаватгяь.ФИО) AS Fint_i S8.ECT CstniKaHHe.Nflayfl К*ОН Препмвоатмв JWfift ХШ (Пара imER JOIN (Занятие INNER JOIN Расгисание ON Заиятне.Мвмп - Ркгигаил.Мйлн) ОТ* вАвлтегь.ТхфрПрег - Сжткаяч WHERE {((Заня1Ие.ЧиспЗнаи)-'Чклнтеяь')) GROUP BV Расписание. МСауд ORDER ВУР .ВДэуд Пам.Всен*1ача апа;|
Рис. 54. Страница SQL конструирования запроса
Макаров Н.П. 203 Петров И.А 206 Иванов И.А. 234 Петров И.А. 324 333 Иопэ Н.И. Запись: N |/ J | 1 > J_H.!:_] из 6
Бркжов Д.Б
Рис. 55. Режим таблицы результатов запроса 4. Сводная таблица - просмотр результатов запроса в виде сводной таблицы, что позволяет более просто осуществлять анализ данных, полученных от сложных запросов {рис. 56).
[08
Проектирование баз данных. СУБД MS Access 1
si ЗанятостьДудиг: перекрестный запрос
№ауд-:08_10 - 09_55 - 11_40 123 Макаров Н.П. 203 Петров ИА 206 Иванов И.А. 234 Петров И.А 324 Брюков Д Б. 333 Иопз Н.И.
Рис. 56. Режим таблицы Сводная таблица
5. Сводная диаграмма - еще более простая, чем сводная таблица, удобная для анализа форма представления результатов сложных запросов (рис. 57).
Рис. 57. Режим таблицы Сводная диаграмма Переключение режима можно выполнить посредством (рис. 58): •
панели инструментов (обычно левый крайний инструмент).
•
контекстного меню;
•
главного меню Вид.
Тема 4. Запросы - в центре внимания рынок сбыта
109
G Microsoft Access - рлия гости Аузиг ; перекрестной запрос] .;" Файл
Правка ; 1 Ell PewmSQL
Сошная диаграя;
ifll
P**mSQl
jkjt
Сводная лшгрэтла
*Т; Дсбаеть табпииу.,, f
l-]
Е
Панели ™*:труие«тзв
ПарачетрыТтупроса Запрос 5QL
"^ Схенада«1ыч-.г - sDe«"H*«.ia Грушке» операци отбора
First ФИО. WO
Гоутировка Эщ-опоекн CTIXK гскганмо
Рис. 58. Три способа переключения режима конструирования запроса В процессе конструирования запроса любые изменения, сделанные в окне QBE, отображаются на странице SQL и наоборот. Таким образом, запрос можно записывать (вводить с клавиатуры) на языке SQL или конструировать в окне QBE, периодически наблюдая получившийся результат в режиме таблицы, сводной таблицы или диаграммы. Рассмотрим более подробно процедуру создания сводной диаграммы и сводной таблицы. Представим в виде сводной диаграммы данные таблицы Предлагаемые модели. Для этого откроем данную таблицу, сделав двойной щелчок на ее имени (кнопка Таблицы, окна БД). Откроем представление данной таблицы в виде сводной диаграммы (через кнопку панели инструментов или выбрав пункт Сводная диаграмма меню Вид). На экране будут отображены формы, позволяющие нам проектировать сводные диаграммы (рис. 59J. Их две - Предлагаемые модели: таблица и Список полей диаграммы. В первой будет отображаться вид проектируемой диаграммы со списком полей, необходимых ее для построения. Во второй форме будет отображен список всех полей таблицы. Перетаскивая необходимые поля
по
Проектирование баз данных. СУБД MS Access
на пустые места в первую форму, мы получаем требуемую нам диаграмму.
Рис. 59. Сводная диаграмма
По умолчанию в форме проектирования диаграммы тип диаграммы установлен как гистограмма (столбиковая диаграмма). Его можно изменить, выделив область построения диаграммы и выбрав из контекстного меню пункт Свойства, на вкладке Тип выбрать любой другой тип диаграммы. Выберем тип Объемная гистограмма. Например, построим объемную гистограмму заводских цен на соответствующие модели «Toyota». Для построения объемной гистограммы по нашим данным перетащим на место Поля данных поле Заводская цена, а на место Поля категорий - поле Модель. Построенная гистограмма будет иметь вид, показанный на рис. 60. При построении одного объекта - или сводной таблицы, или сводной диаграммы - другой объект будет создан автоматически. Сводная таблица для нашего примера изображена на рис, 61.
Тема 4. Запросы - в центре внимания рынок сбыта
111
Рис. 60. Сводная диаграмма ffl Предлагаемые МОДЕЛИ таблица
SHJ]f§
Модель - Сумма "Заводская ценз" Cojolla Comb! '!' 46 Ж) ,00р. Перетащите в таблицу Corolla CompadGT * 41 100,00р. ,%? Предлагаемые модели А Corolia CompactXP*! 37 900,00р. • - °ol Итоги Coraila LifihackGT + 39200,00р. 1 ^j сумма "Заводская цен. . Corolla UfibaekXL 1 35700,00р. I* Дкодиодели Общие итоги * 200 100.00р. I * Д Мадеяь 1 . Ш Мощность деигатепя 1 rS I * И Цевт В 1 '+ f^l О КоР°бкв передач * Щ Количество дверей « Д] Об(вка * (Л Другое оснащение » [Л Заводская иена * Ш Трансповтньи юдержки
v
" И -
.J
-•
Рис. 61. Сводная таблица
112
Проектирование баз данных. СУБД MS Access
Рассмотрим создание сводной таблицы для нашего примера, Данный процесс во многом аналогичен процессу создания сводной диаграммы. Представим в виде сводной таблицы данные таблицы Предлагаемые модели. Для этого откроем данную таблицу, сделав двойной щелчок на ее имени (кнопка Таблицы, окна БД). Откроем представление данной таблицы в виде сводной таблицы (через кнопку панели инструментов или выбрав пункт Сводная таблица меню Вид). На экране будут отображены формы, позволяющие нам проектировать сводные таблицы (рис. 61). Их две - Предлагаемые модели - таблица и Список полей сводной таблицы. В первой будет отображаться вид проектируемой сводной таблицы, со списком полей, необходимых ее для построения. Во второй форме будет отображен список всех полей таблицы. Перетаскивая необходимые поля на пустые места в первую форму, мы получаем требуемую нам таблицу. Как и в предыдущем примере, построим сводную таблицу заводских цен на соответствующие модели «Toyota». Для этого перетащим на место Поля итогов или деталей поле Заводская цена, причем, как и в предыдущем примере, его заголовок измениться на Сумма «Заводская цена», а на место Поля строк - поле Модель. Построенная сводная таблица будет иметь вид, показанный на рис. 61. Как уже говорилось, после создания сводной таблицы сводная диаграмма будет создана автоматически. Вы можете открыть ее и убедиться, что она имеет такой же вид, как и на рис. 60. При попытке закрыть форму, отображающую содержимое нашей таблицы в том или ином виде, если сводная таблица или сводная диаграмма были изменены, будет выдано подтверждение на сохранение вида таблицы, ответьте на него Да для сохранения построенной сводной таблицы и диаграммы.
3. Проектирование запроса на выборку Появление в продаже модели «Corolla Kombi» антрацитового цвета очень оживило торговлю. Предположим, что для анализа и учета планируется установить величину выручки от продажи этих моделей по Москве. Для того, чтобы узнать, какие клиенты из Москвы к настоящему времени заказали «Corolla Kombi» ан-
113
Тема 4. Запросы - в центре внимания рынок сбыта
трацитового цвета, неооходимо сконструировать запрос по двум таблицам - Предлагаемые модели и Клиенты. В окне БД выполните щелчок на кнопке Запросы или выберите из меню Вид команду Объекты базы данных, а в открывшемся подменю - опцию Запросы. Затем щелкните на кнопке Создать, и Access откроет диалоговое окно Создание запроса, в котором будет предложено несколько способов создания запроса. Выберите строку Конструктор, при активизации которой построение запроса происходит без помощи мастера по созданию запроса, и нажмите кнопку ОК. После этого на экране появится пустое окно проектирования запроса и отобразится диалоговое окно задания базовой таблицы запроса Добавление таблицы (рис. 62). Добавление таблицы Таблицы | Запросы | Таблицы и запросы Закрыть Предлагаемые модели
Рис. 62. Окно выбора и добавления базовых таблиц источника запроса
В этом диалоговом окне, состоящем из трех разделов (Таблицы,, Запросы, Таблицы и запросы), приведены все имеющиеся в распоряжении пользователя таблицы и запросы. Перейдите в раздел Таблицы и маркируйте таблицу Предлагаемые модели, после чего выполните щелчок на кнопке Добавить. Так как в запросе следует использовать и вторую таблицу, Клиенты, необходимо маркировать ее и снова выполнить щелчок на кнопке Добавить. Затем следует закрыть диалоговое окно, выполнив щелчок на кнопке Закрыть. Имена таблиц появятся в окне проектирования запроса. Добавить таблицу можно также двойным щелчком мыши по имени таблицы в списке.
Проектирование баз данных. СУБД MS Access
114
Примечание. Выбрать поле можно и непосредственно в строке Поле QBE-области проектирования, выполнив щелчок на стрелке открытия списка. 3.1. Окно запроса Окно запроса (рис. 63) разделено на две части. В верхней половине находятся таблицы, добавленные на предыдущем шаге, которые представлены в виде списков полей. Каждый список полей снабжен заголовком, содержащим имя таблицы. н? Запрос2 : запрос на выборку
Поле: Инн таблшы: Сортировка: Вьвод на экран; /слови* отбор*: . .1
Рис. 63. Окно проектирования запроса
Так как в рассматриваемом примере была задана определенная связь между двумя таблицами, то списки в верхней части окна связаны друг с другом соединительной линией. Необходимо отметить, что связь между таблицами можно установить непосредственно в этом окне. Кроме того, на схеме виден характер связи, один ко многим, что индицируется символами «1» и «бесконечность». Родительской таблицей в данном случае является таблица Предлагаемые модели (так как связь с ее стороны помечена символом «1»). В нижней части окна содержится спецификация запроса. Эта область называется QBE-областью проектирования (Query by Example - запрос по образцу). При этом конструирование запроса выполняется путем перетаскивания полей с помощью мыши из верхней части окна в нижнюю. Каждая колонка QBE-области проектирования содержит информацию о поле в запросе.
Тема 4. Запросы - в центре внимания рынок сбыта
115
3.2. Проектирование запроса Начнем с проектирования запланированного запроса «Какие клиенты из Москвы заказали в текущем году «Corolla Kombi» антрацитового цвета?». Процедура проектирования запроса включает в себя следующие этапы: 1. Выбор полей. В запрос не следует включать все поля обеих таблиц. Нас в данном случае интересуют коды моделей «Kombi», фамилии клиентов, их адреса, а также даты заказов, На экране должны быть отображены именно эти поля. 2. Установку условий отбора записей. В запросе определяются условия, которым должны удовлетворять отбираемые записи. В данном случае условиями отбора являются: Населенный пункт = Москва; Код модели = 12410; Дата заказа > 01.01.1999.
3.
Упорядочение выходных записей (сортировку). Пользователь может установить формирование записей в определенной последовательности, например по фамилиям в алфавитном порядке. 3.3. Включение полей в запрос
Сначала выберите поля, которые необходимо поместить в запрос. Первым в строку Лоле первой колонки QBE-области проектирования перетащите поде Код модели из списка полей таблицы Предлагаемые модели. Данное поле - единственное включаемое в запрос из таблицы моделей; все остальные поля необходимо взять из таблицы Клиенты: •
Имя, отчество,
•
Фамилия,
•
Почтовый адрес,
•
Почтовый индекс,
•
Населенный пункт,
•
Дата заказа.
Последовательно маркируйте перечисленные поля в списке полей таблицы Клиенты, удерживая клавишу [Ctrl] нажатой и вы-
116
Проектирование баз данных. СУБД MS Access
полняя щелчки на полях в указанной последовательности. Затем одновременно перетащите все маркированные поля в QBE-область проектирования. В строке Поле второй колонки отпустите кнопку мыши, и поля будут помещены в следующие друг за другом колонки. Окно проектирования после этого должно выглядеть так, как показано на рис. 64. га-нв
1Z21
Рис. 64. Результат включения полей в спецификацию запроса
Если в запрос необходимо поместить все поля из таблицы, следует выполнить двойной щелчок на строке заголовка того или иного списка полей. Access маркирует все поля, и их можно будет перетащить в область спецификации или сделать двойной щелчок мышью по полю, обозначенному звездочкой (*). Примечание. Если в основу запроса положено несколько таблиц, то для большей наглядности можно запустить индикацию соответствующих имен таблиц в QBE-области, чтобы знать, из какой таблицы взято поле. Для этого в меню Вид следует установить опцию Имена таблиц. Access добавит в спецификацию строку Таблица. Теперь при перетаскивании поля в область проектирования соответствующее имя таблицы также автомати-
Тема 4. Запросы - в центре внимания рынок сбыта
117
чески переместится и отобразится на экране. В запросе можно установить показ имен таблиц по умолчанию, выбрав опцию Вывод имен таблиц в разделе Таблицы/Запросы диалогового окна настройки Параметры, вызываемого из меню Сервис командой Параметры. Поле признака индикации Вывод на экран автоматически активизируется для всех полей в QBE-области проектирования. Если поле должно анализироваться запросом, но в его индикации нет необходимости, то следует отключить опцию Вывод на экран. Для нашего примера нет необходимости в индикации поля кода модели, так как точно известно, что будет запрошена только модель «Corolla Kombi». Избыток информации в запросе только затрудняет восприятие действительно ценных сведений. 3.4. Установка критериев отбора записей Запрос должен выбрать из базы только информацию о клиентах из Москвы, заказавших в этом году модель «Kombi». Поэтому критерии отбора должны устанавливаться по полям Населенный пункт, Код модели и Дата заказа. Ввод каждого критерия следует завершать нажатием клавиши [Enter]. Сначала следует ввести критерий отбора для поля Код модели. Начнется поиск всех «Kombi» антрацитового цвета. Критерий будет выглядеть таким образом: 12410. Затем следует выполнить щелчок в строке Условие отбора столбца Населенный пункт и ввести слово Москва. Access автоматически заключит это значение в кавычки. И наконец, вводится критерий для поля Дата заказа. Мы должны учесть только те заказы, которые поступили после 1 января 1999 года. Следовательно, критерий будет таким: >1.1.99. Access автоматически преобразует дату в формат, выбранный в режиме проектирования таблицы (Short Date: 01.01.1999), и вставит перед ней и после нее знак # {ограничитель константы типа Дата/Время). 3.5. Упорядочение записей в запросе Наконец, необходимо указать, что имена клиентов должны отображаться в алфавитном порядке по фамилиям. Для этого в поле Фамилия выполните щелчок на кнопке открытия списка строки Сортировка и из развернувшегося списка выберите порядок сор-
L18
Проектирование баз данных. СУБД MS Access
тировки По возрастанию. Таким образом, записи результата запроса будут упорядочены по фамилии клиентов от А до Я (в случае сортировки в убывающем порядке сортировка выполнялась бы от Я до А). Итак, запрос сконструирован. На рис. 65 показана готовая спецификация запроса.
Рис. 65. Готовый запрос
4. Выполнение запроса Выполнение запроса осуществляется одним из следующих способов: • в строке пиктограмм активизируется пиктограмма табличного представления; •
в меню Вид устанавливается опция Таблица;
•
в меню Вид устанавливается опция Сводная таблица',
•
в меню Вид устанавливается опция Сводная диаграмма;
•
из меню Запрос выбирается команда Выполнить;
•
посредством щелчка активизируется кнопка выполнения запроса в панели инструментов (кнопка с восклицательным знаком).
Тема 4. Запросы - в центре внимания рынок сбыта
119
Для режимов Сводная таблица и Сводная диаграмма вначале будет предложено сконструировать их. К этому очень удобному инструменту анализа данных мы вернемся несколько позднее. Access отобразит на экране записи (динамический набор Dynaset), которые были выбраны из соединения таблиц Клиенты и Предлагаемые модели в соответствии с заданными критериями (рис. 66). <цдыпдб.аи]
Имя
[
Отчеств о
]
<Е анилин^
[Почтовый здрд Почтовый ннд {[Нацеленный nj Дата заказа
Рис. 66. Результат выполнения запроса на выборку
5. Сохранение запроса Возможно, в будущем запрос придется повторять неоднократно, чтобы оценить изменение объемов заказов на данную модель автомобиля на рынке сбыта в Москве. Чтобы не готовить проект запроса всякий раз заново, его следует сохранить. Прежде всего это рекомендуется делать для сложных запросов, в которых содержится много полей, критериев и вычислений. Обратите внимание на то, что сохраняется не результат выполнения запроса, а только спецификация запроса. Из меню Файл выберите команду Сохранить и назначьте запросу уникальное имя, например Комби. Щелкните на кнопке ОК, и Access сохранит запрос в БД TOYOTA.
6. Редактирование запроса Если возникнет необходимость внести в проект запроса изменения, его следует маркировать в окне БД и щелкнуть на кнопке Конструктор. Откроется окно проектирования запроса, в котором пользователь может внести необходимые изменения в определение запроса. Если одно из полей запроса желательно перенести в другую позицию, то следует выполнить щелчок в селекторной строке над подлежащим переносу полем. Маркированную колонку можно перетащить на новое место с помощью мыши.
120
Проектирование баз данных. СУБД MS Access
Для вставки дополнительного поля в запрос перетащите его из списка полей таблицы в ту колонку спецификации, в которую хотите вставить. Если в этой колонке уже находится какое-либо поле, то оно, как и все последующие поля, будет сдвинуто вправо, чтобы освободить место для нового поля. Для удаления поля маркируйте его и нажмите клавишу [Del].
7. Другие дополнительные возможности запроса на выборку > £ групповые операции •ГЦ] имена таблиц
Наиболее важными дополнительными возможностями запросов на выборку являются: •
расширение списка полей (вычисления по горизонтали);
•
группирование записей;
•
вычисления по вертикали.
d§* Свойства...
Расширение списка полей (или просто расширение) - это специальная операция, позволяющая добавить к списку полей запроса любое поле, которого нет в таблицах-источниках запроса. В общем случае это поле должно представлять собой любое выражение, построенное с использованием встроенных элементов Access: знаков операций, функций, полей из любых таблиц или запросов БД, элементов управления любых объектов БД (например, форм). Для более быстрого и правильного построения выражения можно воспользоваться услугами построителя выражений (контекстное меню/пункт Построить или специальная пиктограмма с тремя точками внутри). При этом открывается окно Построитель выражения (рис. 67). Например, чтобы по Дате рождения вычислить Возраст, необходимо включить в список полей поле-выражение Возpacm:Year(Date()) - Уеаг(Дата рождения), где Возраст -имя нового поля в запросе, Year() - встроенная функция выделения года из даты. DateQ - встроенная функция считывания текущей даты системы.
Тема 4. Запросы - в центре внимания рынок сбыта
121
Рис. 67. Окно построителя выражений
Группирование - это специальная операция, применяемая к результирующему множеству записей запроса на выборку. Она заключается в том, что все записи делятся на группы с одинаковыми значениями поля группирования, далее для каждой группы формируется одна-единственная запись, которая и будет включена в окончательный результат запроса. Например, требуется узнать, какие цвета автомобилей представлены в нашей базе. Чтобы реализовать такой запрос, необходимо, как обычно, открыть диалог конструктора запроса. Затем добавить в него таблицу-источник требующихся данных (таблица Предлагаемые модели) и отобрать из нее поле Цвет. Далее следует установить операцию группирования, для этого выбрать в меню Вид пункт Групповые операции. При этом в нижней половине окна конструктора (QBE) появляется строка Групповая операция, а в столбцах устанавливается значение Группировка. В результате при запуске запроса мы получаем столько записей, сколько различных цветов есть в таблице Предлагаемые модели. Вычисления по вертикали - это такая возможность конструктора запросов, которая тесно связана с операциями группирования и расширения (вычисления по горизонтали), рассмотренными выше. Предположим, что в предыдущем примере необходимо не просто получить список цветов, но и вычислить количество автомобилей каждого цвета. Чтобы осуществить такое вычисление, необходимо расширить список полей еще одним полем Цвет, в котором и будет реализовано нужное вычисление; для этого в строке Групповая операция в правой части этого щелкнуть левой
122
Проектирование баз данных. СУБД MS Access
кнопкой мыши и в развернувшемся списке выбрать агрегатную функцию Count (рис. 68). -я' Запрос? : запрос на выборку
Попе: Имя таблицы: Групповая операция: Сортировка: Вывод на экран: Условие отбора: или
Рис. 68. Окно построителя запроса на выборку
Чтобы задать имя добавляемому полю запроса, необходимо ввести его в начале этого столбца в строке Поле и поставить разделитель двоеточие перед основным именем поля, например: Количество автомобилей:Цвет. Здесь Количество автомобилей это имя нового поля в запросе. Общий вид запроса и результат его выполнения показаны на (рис. 69). При вычислениях по вертикали, как видно из списка, возможен и ряд других функций, например: наибольший (Мах), первый (First) и т. д.
Рис. 69. Запрос с вычислениями по вертикали в режиме конструктора и в режиме таблицы
Тема 4. Запросы - в центре внимания рынок сбыта
123
8. Проектирование перекрестного запроса Перекрестный запрос позволяет представить в форме таблицы информацию, которая обычно выводится в виде диаграммы или графика. При этом получаемая перекрестная таблица, в отличие от обычной таблицы, в которой имена имеют только столбцы, состоит из именованных строк и столбцов, на пересечении которых размещается информация. При конструировании перекрестного запроса необходимо определить три компонента: •
заголовки строк - поле, каждое уникальное значение которого образует строку в результате запроса; таких полей может быть несколько;
•
заголовки столбцов - поле, каждое уникальное значение которого образует столбец в результате запроса; такое поле может быть только одно;
•
значение - поле, к которому применяется необходимая агрегатная функция и полученное значение размещается на пересечении соответствующей пары строки и столбца; такое поле может быть только одно.
Замечание. Каждое поле может быть задано выражением, записанным как вручную, так и с помощью конструктора выражений. В качестве примера рассмотрим процесс конструирования перекрестного запроса на основе таблицы Авто (рис. 70, а), который можно сформулировать следующим образом: Получить сумму продаж автомобилей каждой модели в каждом филиале фирмы и общим количеством проданных автомобилей по каждой модели. То есть мы хотим узнать, насколько популярна каждая модель в каждом регионе. Вначале отметим, что построить перекрестный запрос можно как вручную, в конструкторе, так и с помощью мастера. Чтобы построить запрос с помощью мастера, необходимо запустить процесс создания нового запроса, в окне БД на вкладке Запросы выбрать режим Создать. В открывшемся окне (рис. 71) выбрать пункт Перекрестный запрос и нажать клавишу ОК.
; •;
Проектирование баз данных. СУБД MS Access
Ш Дето - таблица
Код
•
Модель 1 SA3-21043 2 Моеквич-214 .3 8АЗ-2104Э 4 Ниеа-2235 5 ГАЗ-3510 В Нивэ-2235 7 ВАЗ-2104Э 3 ГАЗ-3510
,
Филиал Владимир Рязань Рязань Тула Рязань Тула Рязань Рязань
. tJ@l?D
[ ДатаПродажи | ЦенаПродажи) 2001.2002 92 ОСЮ ДОр. 22.022002 80 000 ДОр. 21.02.2002 95000,00р. 1201 2002 100 000 ДОр. 25.03 2002 120 000 ДОр. 22 01 2002 ПО 000 ДОр. 97 000 ДОр. 13 ОД. 2002 1 1 02.2002 124 000,00р.
ЗавНомер [*-' 117738 226677 s 31245Б !
ззэззз - 331569 434343 545454 999999
- ZJ
~ ЛИ*
Запись: _Н | Ч | Г
>• \> |>*|из 6
3
а
1
ei Продажа Антонеренрестный Владимир
Рязань
92000,СОр
192000,(Юр.
ГАЗ-3510 Москвич-214 210 000,00р.
Нива-2235 Запись:
Рис. 70. Пример конструирования перекрестного запроса: а - исходная таблица; б - результат выполнения перекрестного запроса
е
^Открыть ^Конструктор Ыр Стада- ь|
• Нонын запрос Щ
Табп^ы
Ц'\ Щ 1
Форры Отчеты
4i) Страницы 3
Макросы
Ǥ
Модули
i Создание зщ»са, выводящего данные в компактном формате, псдобни1 формату электромнш таблицы.
о VJSjilSi
[
Г?]|'ХП Конструктор Простой запрос Повторяющиеся записи Записи без подчиненных
ОК
Отмена
Групгы i'*1 Избранное
Рис. 71. Окно выбора режима создания запроса На первом шаге запустившегося мастера перекрестного запроса (рис, 72) выбираем исходную таблицу для построения запроса Продажа Лето и нажимаем кнопку Далее.
Тема 4. Запросы - в центре внимания рынок сбыта
125
Создание леренресгиых таблиц Выбейте таблицу «пи запрос, поля которые необходимо вывести в перекрестной мпросе.
Таблица; Предлагаемые полепи Таблица: Признаки Таблица: Тт
Для включения попей нз нескольких таблиц сначала создайте обычный запрос, содержащий все необходимые поля.
Покаить (• 1а6лииь(
Р Загчихы
(" Т-^йгицы и
Рис. 72. Первый шаг мастера перекрестного запроса: выбрать источник данных На втором шаге мастера (рис. 73) выбираем поля для заголовков строк Модель и переносим их в правое окошко либо двойным щелчком мыши, либо нажатием клавиши со знаком «больше» (>) в середине окна, после чего нажимаем кнопку Далее. Создание перекрестных таблиц поля, значажя которых будут использованы Б качестве мголоеков строг.
Доступньи толя:
Выбранные пола:
Допускается выбор не бояте трех полей. Выберите поля по порядку сортировки данных. Например, можно сначала выполните ссртнроБку эначешн по странам, а ззтви по городам.
ЗавНоиер
Опчена
I
< Наид
н
Далее >
Рис. 73. Второй шаг мастера перекрестного запроса: выбрать поле для заголовков строк
Проектирование баз данных. СУБД MS Access На третьем шаге мастера (рис. 74) выбираем поле для заголовков столбцов Филиал. Следует заметить, что как на этом, так и на предыдущем шаге по мере выбора поля в нижней части окна появляются образцы соответствующих заголовков результирующей таблицы-запроса в абстрактной форме. Создание перекрестных таблиц Выберитк поля для использования их значений е качестве заголовков столбцов,
1
Например, чтобы использовать имя каждого сотрудника в качестве заголовка столбца, выберите поле
Отмена
< На зад
Рис. 74. Третий шаг мастера перекрестного запроса: выбрать поле для заголовков столбцов На четвертом шаге мастера (рис. 75) выбираем поле, на основе значений которого будут производиться итоговые значения перекрестной таблицы ЦенаПродажи. Кроме того, на этом же шаге можно отказаться от включения в запрос итоговых результатов выводимых для каждой строки запроса. По умолчанию мастер включит в список заголовков строк дополнительное поле с итогами, в котором будет вычисляться та же агрегатная функция, что и в основном поле значений. На пятом шаге мастера (рис. 76) задаем имя запроса, а также дальнейший режим работы с ним: либо просмотр таблицы-результата, либо продолжение конструирования в ручном режиме.
127
Тема 4. Запросы - в центре внимания рынок сбыта Создание перекрестных таблиц <зкне вычисления необходимо гроеести для каждой ячейки на пересечении строк и столбцов?
Дисперсия Максимум Минимум Отклонение Первой Последний Среднее
Hanpvmep, можно вычислить сумму заказов лля каждого сотрудника (столбец) по странам и регионам (строка). Вычислить итоговое значение для каждой строки? I? да.
Числи
и Отмена —
'
< Назад .—
В в
. Далее > -
J
.
Рис. 75. Четвертый шаг мастера перекрестного запроса: выбрать поле для вычисления перекрестных результатов Созданное рекрестных таблиц Залайте имя запроса. [Продажа Авто_перекрестньй Указаны есе сведения, необходимые для создания запроса с помощью мастера, Дальнейшие действия после создания запроса: <" Просмотреть результаты запроса, * |Изненить структуру запроса.
Г Вывести справку по работе с перекрестной таблицей.
Готово
Рис. 76. Пятый (заключительный) шаг мастера перекрестного запроса: задать имя запроса и определить дальнейший режим работы с ним
Проектирование баз данных. СУБД MS Access
128
В случае выбора первого режима мы увидим таблицу с результатами сконструированного запроса (рис. 77). f — !^?<№П Г- j|D !X|
а? Продажа Двго_пвреирес1ный : перенресг.нми запрос , . Модель
Итоговое значение ЦенаЛродажи [
284 ЖО ,00р. 244 000 ,Шр. 80 QGO.OOp 2100GO,OOp
» ГАЗ-3510 Москвич-214 Нив а -2235 ты И | ' | Г
Владимир
32 000 .ООр
Рязань
Тула
1
132 ООС,ООр
244 030, ООр й)ОСЮ,ООр 210 000 ДОр,
_ ^
Рис. 77. Таблица-результат перекрестного запроса со столбцом итоговых значений В случае выбора второго режима мы перейдем в окно конструктора запроса в обычном режиме (рис. 78). Здесь можно заменить функцию столбца итогов, выводимых в каждой строке запроса. Для нашего примера необходимо заменить функцию Sum в столбце Итоговое значение строки Перекрестная таблица на функцию Count (количество), а также заменить имя Итоговое значение ЦенаПродаж этого столбца в строке Поле на имя Колич Прод Авто. Результат этого запроса показан на рис. 70, б. к1 Продажа Авга_пс реирвстньш : перекрестный запрос
'- ju!i[X
JKM
tMoAeite [витал |ДагаПродзжи 1 ЗавНоивр
<
>
Поле: l*w табтчы: Групповая операция; Перекрестная таЕ'Дта: Ссрп^оека: Условие от&»а: или:
Модель Лсодана Дето Гомпиэовка Загоповсл СТРЖ
- Фмпиал Прэдв*а Дето Гр'/пгисоЕка Заголовки столбш
иемаПцодахи ГЪодажэ ДБГО Sum Значите
Итоговое змэчениПродажа Авто Sum Загоповкк строк
Рис. 78. Перекрестный запрос в обычном режиме конструктора Особенно часто на практике бывает необходимо построение перекрестной таблицы, отражающей какие-либо итоги по отрезкам времени, например по месяцам, кварталам, годам и т. д. Для реали-
Тема 4. Запросы - в центре внимания рынок сбыта
129
зации такого запроса можно использовать функцию Format с аргументом типа Дата/Время и построить на ее основе следующее выражение: Выражение!: FormatdПродажа Авто]![ДатаПродажи];"т"). Здесь функция Формат имеет два аргумента, разделителем между которыми используется точка с запятой (;): 1. Выражение, значение которого преобразуется к нужному формату. 2. Сам формат преобразования может быть стандартным (стандартные форматы Дата/Время можно посмотреть в конструкторе таблиц) или определяемым пользователем (Custom Formats). Последний задается в виде текстовой константы, состоящей из форматных символов. Например, чтобы получить перекрестную таблицу, отображающую результаты продаж каждой модели по месяцам, необходимо в качестве поля-заголовка столбца задать выражение Format([Продалса Авто]![ДатаПродажи];"тт"). Здесь пользовательский формат «mm» означает преобразование значения поля ДатаПродажи типа Дата/Время в номер месяца (от 01 до 12). Результат запроса представлен на рис. 79.
Рис. 79. Перекрестный запрос с группированием по месяцам в формате «mm»
Если изменить формат на «mmm», то результат будет выглядеть как на рис. 80. При этом надо заметить, что столбикимесяцы упорядочиваются по алфавиту, а не по номеру. Чгобы упорядочить столбцы по номеру месяца, можно, например, добавить в выражение Заголовки столбцов этот номер, например: Выражение!: Formatd Продажа Авто]![ДатаПродажи];"т\ ") & Рогта^[ПродажаАвто]![ДатаПродажи];"ттт "). В этом выражении формат «\ » с пробелом нужен для разделения номера месяца и его названия (рис, 63).
130
Проектирование баз данных. СУБД MS Access
1
ЕЩИ
1
и Пвренрсспю1Й_.0/ : перекрестный иптос Мадель | ИНДЫ ГАЗ-35Ю Мое IB ич-21 4 Нивв-2235
_»
то
Итоговое значение ЦеиаПродажи 234000,00? 244000,00р. 80000,00р 2 SO OGG, ООр Г > IMJ. J m 4
элр 97000Д]р
мар
{
120000,00р.
фее [ 95000.00р. 1240ШДЮр. aOQOOJDOp
ян в 9200000р
210 000 ООр
- JlJ_jr Рис. 80. Перекрестный запрос с группированием по месяцам в формате «mmm»
Если этот вариант не подходит, то следует построить промежуточный запрос с упорядоченными месяцами, а на его основе построить перекрестный (рис. 81). ]? ПерснрЕстинм_07 : перекрестный запрос Модель
|
•
ГАЗ-Э510 Москвич-214
Итоговое значение ЦенаПродэжи 2840ШД)р 244 000 .ООр еООООЙОр 21СОООД)р
f- рЭр{| 1 яне 92000,00р
2 феэ [ Э5000Д}р. 124000,00р. 30 OOO.tHp
3 мар
Т
4 апр 97 000,00р.
120000,00р.
21СОООД1р
;
™сь: 1*1 -1Г
Рис. 81. Перекрестная таблица с упорядоченными столбцами Таким образом, ширина перекрестной таблицы зависит от количества уникальных значений поля, выбранного в качестве заголовков столбцов, а также от длины каждого значения, поэтому, решая вопрос о том, какое поле выбрать для заголовков столбцов, надо учитывать этот факт и выбирать поле с меньшим количеством значений. Кроме того, если в перекрестной таблице требуется сгруппировать записи по нескольким полям (вложенные группы и подгруппы), то эти поля надо назначать как заголовки строк. СУБД Access позволяет иметь три уровня группирования. Например, перекрестная таблица, отражающая результаты продаж по кварталам для каждой модели и в каждом филиале, будет выглядеть как на рис. 82. ts* ПрпдалаАвто .псрсярсстный : перекрестный запрос
JL
inlaid
Филиал | Итоговое значение Цена | 2 1 1 Т Владимир 92000,00р. 92 000,00р. ВАЗ-21043 Рязань 192000,00р. 95 000,00р. 3? 000, ООрГАЗ-3510 Рязань 244 ООО.ООр 244 000,00р. Moi:KBH4-2U Рязань КЗ ООО.ООр. 80000,00р. Нива-2235 Тула 210 000,00р. 210 000, ООр _ ^ Н |.' | И1 5 чсь ИЫГ
Модель 1ДДД6Ж
I
Рис. 82. Перекрестный запрос с двумя уровнями группирования по строкам (моделям и филиалам) и поквартальным группированием по столбцам
131
Тема 4. Запросы - в центре внимания рынок сбыта
Для получения такого результата необходимо добавить в конструкторе запроса поле Филиал на вторую позицию (см. рис. 77) и назначить его Заголовками столбцов, а чтобы изменить группирование по столбцам на поквартальное, используем формат «q». В средней части рис. 67 показана область ввода для Выражения! (3-столбец). Эта область может быть использована вместо построителя выражения для редактирования любого выражения. Чтобы открыть окно области ввода какого-либо поля, надо установить на него указатель мыши, нажать правую кнопку и из раскрывшегося контекстного меню выбрать пункт Масштаб.
Пн
чем»
I -
,>"
Пете itoi^ I4VT«6*UC .Гр*
н
.
S^ii .- _ г п ,-,
L
bii».B«.L-Fg.allin»H«ie.)l'reKin!KH.Hl-a'i
нП».тя itouvaAerb
ЦЯ
' SSSSSSST ГЬонаяа4й1п
*'
ГЛЛВОПЦЖЦИС»ТЧ»«Г
гчв™кг*«ч
—
Рис. 83. Перекрестный запрос Продажа Авто по кварталам и двумя уровнями группировки по строкам (Модель->Филиал) Некоторые наиболее часто применяемые форматные символы приведены в табл. 47. Таблица 47 Символ С D Dd Odd Dddd Ddddd dddddd w
Описание Аналог встроенного общего формата День месяца, 1-2 цифр (1-31) День месяца, две цифры (01-31) Первые две буквы дня недели (Пн - Вс) Полное название дня недели То же, что и Краткий формат даты Устроенны и) То же, что и Длинный формат даты (встроенный) День недели (1-7)
132
Проектирование баз данных. СУБД MS Access Окончание таблицы 47 Описание
Символ WW
m
mm mmm
mmmm
q
Номер недели в году (1-52) Месяц, 1-2 цифры (1-12) Месяц две цифры (01-12) Первые три буквы месяца (Янв - Дек) Полное название месяца Кварта! (1—4)
Полный перечень форматов функции Format можно найти в справочной системе Access.
9. Запросы на изменение Запросы на изменение позволяют создать новые таблицы и обновить данные в имеющихся таблицах. В Access имеется 4 типа запросов на изменение: 1.
Запросы на создание таблицы — это обычный запрос на выборку, с той лишь разницей, что результат запроса сохраняется в новой таблице, имя которой задается в начальном диалоге. На языке SQL это отличие выражается фразой INTO <Имя новой таблицы>. Необходимость в создании новой таблицы возникает, когда требуется заранее сформировать нужный набор записей, который затем может быть использован для последующей обработки или передачи по каналу связи.
2.
Запросы на добавление используют полученные в выборке записи для добавления в какую-либо из имеющихся таблиц. Очевидно, что схема выборки должна соответствовать схеме таблицы-приемника.
3.
Запросы на удаление используют полученные в выборке данные для их удаления из таблицы-источника.
4.
Запросы на изменение заменяют одни значения в каких-либо полях выбранных записей на другие, например: Увеличить сумму заработной платы на 20 %.
Тема 4. Запросы - в центре внимания рынок сбыта
133
9.1. Проектирование запроса на создание таблицы Рассмотрим пример конструирования запроса на создание таблицы, содержащей модели автомобилей, средняя цена продаж которых выше средней цены продаж всех моделей. Начальная стадия конструирования запроса аналогична описанному выше запросу на выборку: 1. На вкладке Запросы окна БД выбираем режим Создать, далее в выведенном списке выбираем Конструктор - открывается стандартное окно конструктора запроса на выборку. 2.
Добавляем в запрос дважды таблицу Продажа Авто (соединять таблицы не надо).
3. Назначаем каждой таблице свой псевдоним (А1 и А2 соответственно), для этого откроем окно Свойства списка полей через контекстное меню и в этом окне в строке Псевдоним, последовательно переходя с одной таблицы на другую, вводим псевдонимы. 4. Как обычно перетаскиваем нужные поля в нижнюю часть конструктора; предположим, нам потребуются поля Модель и ЦенаПродажи, которые мы выбираем из таблицы A I , а также поле, ЦенаПродажи, из таблицы А2. При этом первое поле ЦенаПродаж будет использовано для вычисления средней стоимости продаж для каждой модели в таблице А1, а второе для вычисления общей средней стоимости продаж всех моделей. 5.
Включаем режим Групповые операции через меню Вид или инструмент £ и в строке Групповая операция нижней половины конструктора вводим значения: в поле Модель - Группировка, а в полях ЦенаПродажи - Avg (Среднее).
6.
Установим в строке Условие отбора поля А1.ЦенаПродажи значение >=Avg([A2].lЦенаПродажи]).
7.
Установим тип запроса Запрос на создание таблицы, используя меню или панель инструментов. При этом открывается окно для ввода имени создаваемой таблицы, в которое вводим имя ТДорогиеМодели (рис. 84).
Проектирование баз данных. СУБД MS Access
I.M
Рис. 84. Запрос на создание таблицы в режиме конструктора 8. 9.
Сохраним запрос под именем ЗДорогиеМодели. Включаем режим Таблица для предварительного просмотра результатов выполнения запроса (рис. 85). модель Ниеа-2235
|Ауд-ЦвнаПрод1А¥д-ЦенаПрод 122 000.00р.
102 25000р
1050Ю.ООр.
102250Шв
SELECT А1.МоАель, Avg(Al .ЦенаПродажн) Д5 [Avg-ЦенлПродажп], Дуд(Д2.Цеч4Прода«и) AS [йуд-ЦелгЛрода*и1; INTO ТДорогиеМолвпн FROM ПродажаАвго AS A1, ГромжвАвто AS A2 GROUP BY А! .Модель
Рис. 85. Запрос на создание таблицы в режимах Таблица и SQL 10. Включаем режим SQL (см. рис. 85) и изменяем в нем имена полей будущей таблицы, которые указаны после слова SELECT
Тема 4. Запросы - в центре внимания рынок сбыта
135
во фразе AS, на СредняяЦенаМодели и СредняяЦенаВсехМоделей соответственно. Если снова включить режим Таблица, то увидим результат запроса с новыми именами полей (рис. 86).
Рис. 86. Запрос на создание таблицы с новыми именами полей
После закрытия запроса и его запуска по команде Открыть в окне БД будет создана таблица ТДорогиеМодели\ открыв ее в режиме конструктора, мы увидим, что поля этой таблицы унаследовали типы соответствующих полей таблицы-источника. По большому счету поле СредняяЦенаВсехМоделей в полученной таблице является лишним, так как его значение во всех будущих строках будет одинаковым. Поэтому в окончательном варианте запроса в режиме конструктора следует снять флажок Вывод на экран для этого поля. 9.2. Проектирование запроса на добавление Запрос на добавление может быть сконструирован в двух вариантах: добавление одной записи и добавление множества записей. В первом варианте он позволяет добавить в любую таблицу БД единственную запись либо во все ее поля, либо только в те, которые являются обязательными для ввода (эти свойства задаются полям на этапе конструирования таблицы). Кроме того, добавить запись можно с клавиатуры или непосредственно с помощью констант. Последний случай имеет смысл при добавлении с помощью программы, в которой производится вычисление добавляемых значений. Во втором варианте запрос на добавление строится как обычный запрос на выборку, с учетом того, что результат выборки будет добавляться в таблицу-получатель. В этом случае при конструировании запроса на выборку следует обеспечить совместимость типов полей таблицы-источника с соответствующими типами полей таблицы-получателя.
136
Проектирование баз данных. СУБД MS Access
Для примера рассмотрим запрос, с помощью которого в таблицу ТДорогиеМодели, созданную с помощью запроса ЗДорогиеМодели, добавим записи о моделях, средняя цена продаж которых выше, чем у модели «Москвич». Вначале сконструируем новый запрос на выборку, аналогично запросу Запроса! (можно воспользоваться им как шаблоном). Отличия будуг в том, что требуется ввести дополнительное условие отбора для поля: Продажа Авто_1.Модель, Москвич*, что означает все модели с начальным названием «Москвич», а в окончании что угодно (символ *), т. е. все похожие на «Москвич». Далее Access автоматически поставит операцию Like (рис. 87).
iff ••
> Г*"*:
Гррпона операция:
|Г&д?*аД|М5
Добавпенне: Модель Успеете rnttjfA;
Прода-аДвго Кс*Д"М1й"*^1Д-г-1
Цен^д-. ^Да*ДДбто_1
№«*
-
№злегь V
Рис. 87. Запрос на добавление в режиме конструктора на стадии определения таблицы-получателя
После этого преобразуем этот запрос в запрос на добавление (как и ранее, через меню или панель инструментов), для чего выберем из списка имя таблицы ТДорогиеМодели и нажимаем кнопку ОК. Затем в появившейся строке конструктора Добавление выбираем в столбце Модель поле Модель, а в столбце ЦенаПродажи поле СредняяЦенаМодели. Запрос готов; посмотрев его в режиме таблицы, мы увидим список моделей со средней ценой продаж больше, чем у Москвича. Сохраняем запрос под именем ЗДобавипгьВДорогие. Вид запроса на языке SQL и результат его работы показаны на рис. 88.
Тема 4. Запросы - в центре внимания рынок сбыта
1М
.)ij^
Рис. 88. Запрос на добавление группы записей на странице SQL и результат его работы
Добавить одну запись в какую-либо таблицу можно двумя способами. По первому способу можно воспользоваться классическим запросом на языке SQL: INSERT INTO [Предлагаемые модели] ([Код модели], Модель, [Мощность двигателя], Цвет, [Количество дверей]) VALUES ('2111', 'ВАЗ 2111', 'Черный', 86, 4);
Этот же запрос в режиме конструктора показан на рис. 89. При этом если снова переключиться в режим SQL, то увидим, ч го Access изменил вторую часть запроса и он теперь выглядит следующим образом: INSERT INTO [Предлагаемые модели) ( [Код модели], Модель, Цвет, /Мощность двигателя}, [Количество дверей]) SELECT '2111'AS Выражение!, 'ВАЗ- 211Г AS Выражение2, 'Черный' AS ВыражениеЗ, 86 AS Выражение^ 4 AS Выражение5;
J Отекание . . I Вывод BOSK n J Уикалывл ; гписч
Поле: Выра*ии«1' "2п Соргирсе^эДэбгвле-*.-: Код «одели Условие отйора:
не>
Т 1
^*
Быоажгкпегг "ВАЗ
6ым*ен»еЭ: "Чей
ВвО**(№«1; 86
Выт-а*ея«5: 1
Чой*ль
Моиность двг!ГЭ11
Leai
1коли-*:7вояв*ов
<
Рис. 89. Запрос на добавление одной записи в таблицу Предлагаемые модели
>
138
Проектирование баз данных. СУБД MS Access
И наконец, второй способ добавления одной записи предусматривает ввод значений полей с клавиатуры. При этом следует сконструировать параметрический запрос на добавление, в котором параметрами будут вводимые значения. Для этого необходимо в предыдущем запросе вместо значений (после слова VALUES) записать в квадратных скобках приглашения на их ввод, например: VALUES ([Код модели],[Модель],[Цвет], [Мощность],}Дверей]). При запуске этого запроса Введите з н а ч е н и е параметра на экран выводится окно с заданКод модели ным в запросе приглашением для каждого поля, в которое следует ввести нужное значение, потом наживается клавиша [Enter]. Возможна и комбинация двух способов добавления одной записи, т. е одни значения задать непосредственно в запросе, а другие ввести с клавиатуры. 9.3. Проектирование запроса на удаление Удаление записей из таблиц БД требуется довольно часто, например информация устарела, или ее надо перенести в архив, или она стала ненужной и т. д. Для удаления определенных записей требуется сначала создать запрос на выборку этих записей обычным образом; при этом вопрос о том, какие поля включить в запрос, решается только с точки зрения правильной индикации удаляемых записей, чтобы не было сомнения, что это именно те записи, которые требуется удалить. К удалению следует относиться с большой осторожностью, так как удаленные данные восстановить будет нельзя. Например, сконструируем запрос на удаление из таблицы Предлагаемые модели моделей синего цвета. После того как запрос на выборку сконструирован, его надо преобразовать в запрос на удаление стандартным способом. При этом окно конструктора примет вид запроса на удаление, а в режиме SQL слово SELECT будет изменено на DELETE: DELETE [Предлагаемые модели].Цвет, *
FROM [Предлагаемые модели] WHERE ((([Предлагаемые моде:ш].Цвет)=«Синий»));
139
Тема 4. Запросы - в центре внимания рынок сбыта
Если требуется удалить записи из таблицы, связанной с другой таблицей отношением 1 - М, то запрос может не пойти, если не установлен флажок Каскадное удаление для этой связи. В этом случае необходимо будет сначала удалить записи из подчиненной таблицы, а потом уже из главной. Если флажок установлен, то при удалении записи из таблицы-владельца (со стороны один) будут также удалены все связанные с этой записью записи из таблицыподчиненного (со стороны многие). 9.4. Проектирование запроса на изменение Запрос на изменение данных позволяет изменить значения данных в нужных полях таблицы тех ее записей, которые удовлетворяют заданному условию отбора, или всех записей. При этом новое значение вычисляется для каждого поля по своему одному и тому же выражению. Например: Увеличить стоимость всех моделей ВАЗ цвета Металлик на J %. Чтобы сконструировать такой запрос, сначала выберем нужные записи из таблицы Предлагаемые модели с помощью запроса на выборку, а затем преобразуем его в запрос на изменение. После этого в строке Обновление окна конструктора в поле ЦенаПродажи введем выражение [Продажа Авто].ЦенаПродажи* 1,01 (рис. 90). ss4 УвелнчнтьНа1% : запрос на обновление
Модель Мощность двигателя Цвет Коробка передач
Количество дверей
Обивка Другое оснащение Заводская цена Транспортные издержки
Код Модель Филиал ДатаПрода*м ЦенэПродажи З-эеНомер
Попе; ЦенаЛоодажи цвет Имя таблицы: ПродажаАвто Предлагаемые но; 1 Обновление: ГПиодажаАвто!. Ценз Условие отбора: "Метаялик" или
А
Модель Предлагаемые н<н Like "ВАЗ*"
<
>
Рис. 90. Запрос на изменение
V
140
Проектирование баз данных. СУБД MS Access
Цены продажи автомобилей моделей ВАЗ и цветом металлик увеличены на 1 %. В режиме SQL запрос будет выглядеть следующим образом: UPDATE [Предлагаемые модели] INNER JOIN [Продажа Авто] ON [Предлагаемые модели].Модель = [Продажа Авто].Модель\ SET [Продажа Авто].ЦенаПродажи = = [Продажа Авто].ЦенаПродажи*1.01 WHERE ((([Предлагаемые модели].Цвет)=«Металлик») AND (((Предлагаемые модели].Модель) Like «ВАЗ*»)); Как видно из текста, запрос на выборку начинается со слова UPDATE, после которого указывается источник записей, затем следует слово SET, за которым записывается имя изменяемого поля источника, знак равенства (присвоить) и выражение для вычисления нового значения этого поля. В общем случае здесь может размещаться список всех изменяемых полей через запятую. После слова WHERE, как обычно, записывается условие отбора записей.
Контрольные вопросы 1.
Для чего служат запросы?
2. 3.
В чем особенности запроса типа Dynaset? В чем особенности запроса типа Snapshot?
4. Какие бывают типы запросов? 5. По каким признакам определяется тип запроса? 6. Как преобразовать запрос из одного типа в другой? 7.
В каких режимах может отображаться запрос?
8. Как переключить режим представления запроса? 9. Опишите процесс формирования запроса. 10. Какие возможности имеются у пользователя для формирования запроса? 11. Что такое запрос на выборку? 12. Какова последовательность действий при конструировании запроса на выборку? 13. Что такое перекрестный запрос? 14. Из каких трех компонентов должен состоять перекрестный запрос?
Тема 4. Запросы - в центре внимания рынок сбыта
141
15. Из каких шагов состоит процесс конструирования перекрестного запроса с помощью мастера? 16. Как дополнить перекрестный запрос вычислениями итоговых значений? 17. Что такое построитель выражения? 18. Для чего можно использовать построитель выражения? 19. Для чего предназначена команда Масштаб в контекстном меню? 20. Вычисления по горизонтали и их реализация. 21. Вычисления по вертикали и их реализация. 22. В каких случаях применяется операция группирования записей? 23. Как формируется условие отбора записей? 24. Как можно упорядочить записи в запросе? 25. Какие запросы называются параметрическими? 26. Что такое запрос на создание таблицы? 27. Как конструируется запрос на удаление? 28. Какие модификации имеет запрос на удаление? 29. Как конструируется запрос на добавление? 30. Как конструируется запрос на изменение? 31. Какими ключевыми фразами отличаются запросы различных типов на языке SQL? 32. В каком случае запрос на удаление может не выполниться и как в этом случае следует поступить? 33. Когда при конструировании запроса необходимо применять переименование полей и таблиц? Как это сделать? 34. Где в процессе конструирования запроса на создание таблицы или запроса на добавление можно посмотреть (или задать) имя таблицы-получателя данных? 35. Каким образом можно соединить несколько таблиц-источников данных в одном запросе? Когда это нужно делать?
Задание 8 1. Создайте несколько запросов на выборку для своей БД в следующих модификациях: а) простой запрос с отбором нужных полей; б) простой запрос с отбором нужных записей и сортировкой;
142
Проектирование баз данных. СУБД MS Access
в) г) д) е) ж) 2.
3. 4.
5. 6.
с использованием нескольких таблиц в источнике; с вычислениями по горизонтали; с вычислениями по вертикали; с группированием; с форматированным представлением данных (функция Format). Создайте перекрестный запрос в следующих вариантах: а) классический вариант в режиме конструктора; б) с помощью мастера; в) с группированием в строках по нескольким полям; г) с различными статистическими функциями и выражениями в строках или в столбцах; д) с различными выражениями в клетках значений. Сконструируйте запрос на создание таблицы. Сконструируйте запрос на добавление записей в следующих вариантах: а) добавление группы записей из таблицы-источника; б) добавление одной записи с клавиатуры; в) добавление одной записи с фиксированными значениями. Сконструируйте запрос на удаление одной записи и группы записей. Сконструируйте запрос на изменение значений одного поля, нескольких полей, в одной таблице и в нескольких таблицах.
Основные требования к представлению результатов выполнения заданий: •
прежде чем приступить к конструированию запроса, четко сформулировать его содержание на естественном языке;
•
определить, какие поля БД или выражения, построенные на их основе, должны войти в запрос;
•
определить, какие таблицы и/или запросы должны войти в источник данных;
•
определить условия отбора записей;
•
определить порядок сортировки записей;
•
сконструировать запрос и привести его текст на языке SQL.
Тема 5 ФОРМЫ Существует три способа ввода информации в Access: посредством таблицы, с помощью формы и с использованием страницы доступа к данным. Выбрать тот или иной способ можно, основываясь на следующем простом правиле. Если данные в таблице изменяются редко или в нее редко добавляются новые записи, то для ввода, изменения и индикации данных следует использовать таблицу. Кроме того, режим таблицы рекомендуется использовать тогда, когда необходимо получить наиболее полный обзор данных. Но если данные часто меняются или база постоянно пополняется новыми записями, следует пользоваться формой, так как в режиме формы можно сконцентрировать внимание на данных, относящихся к определенной записи, например к определенному клиенту, Страницы доступа к данным представляют специальный тип вебстраниц, предназначенный для просмотра и работы через Интернет или интрасеть с данными, хранящимися в БД Microsoft Access. Использование страниц доступа к данным для ввода данных аналогично использованию форм ввода данных: пользователь имеет возможность просматривать, вводить, редактировать и удалять данные в БД. Однако страницу можно использовать за пределами БД Microsoft Access, предоставляя пользователям возможность обновлять или просматривать данные через Интернет или Интранет. Страницы доступа к данным разрабатываются в режиме конструктора в Microsoft Access. Страница представляет собой отдельный файл, хранящийся за пределами Access; однако при создании этого файла Microsoft Access автоматически добавляет ярлык к нему в окно БД. Разработке страниц доступа к данным посвящена тема 7 книги. Любая форма строится на основе Access-таблицы. Вся информация формы содержится в управляющих элементах (полях) этой формы, некоторые из них напрямую связаны с полями базовой
Проектирование баз данных. СУБД MS Access
Ni
таблицы. В таких элементах можно показать содержимое соответствующих полей таблицы и внести в них изменения. Другие элементы формы служат для оформления, например надписи, позволяющие обозначить те или иные объекты в форме, линии и прямоугольники, чтобы структурировать форму и обозначить группы данных. Access позволяет создавать 6 основных типов форм. В один столбец (рис. 91). Значения полей каждой записи отображаются в одной колонке друг под другом. Каждое поле располагается в собственной строке.
Название
[Зацвижка
Цена
12,000
Описание
Управляет системой отхрьггия и закрытия
Рис. 91. Форма в один столбец
Ленточная (рис. 92). Значения полей каждой записи отображаются в одной строке. Количество строк соответствует количеству записей. i£ Оборудование
.
,
Кос. Название
t [
|
-
0]3апвияка
12,00р Управляет слсгелай открытия и закрытия
2 {Раздвижка
ISO.OOo. Управляет системен открытия и закрытия
3 j Видеоконтроллер
120,00р. Конгдолйчет видеосигнал
4 [Микросхема памяти j
ПО.СОр. Кокгролцчет ра(оту памяти
5 [Микросхема иинлгп 1
50.00р. Необходима для t.our роля инншсатара
(Счетмнк! |
• 11<ь;
Н
J», |[П||Х | Цена Описание
L.J I
.^
0.00р.
Г > [ И | ИК[ ю S
Рис. 92. Ленточная форма
d
Тема 5. Формы
145
Составная форма (рис. 93). Составная форма удобна при работе со связанными таблицами. Данные главной формы (взятые из родительской таблицы) будут представлены в отдельной области; данные подчиненной формы (взятые из дочерней таблицы) отобразятся в форме таблицы. Для каждой записи главной формы в подчиненной форме появляется одна или несколько записей. е? Заказы моделей Corolla
Рис. 93. Составная форма
Табличная форма (рис. 94). Табличная форма по внешнему виду не отличается от самой таблицы. Данные размещаются в ней в строках и столбцах. Одновременно индицируются несколько записей. Поля наименований служат в качестве заголовков столбцов; каждая запись располагается в отдельной строке. Эл Оборудование Название КодОборудоеэнии Д Задвижка 2 Раздвижка 3 Видеоконтроллер 4 Микросхема памяти 5 Микросхема индикатора ^Счетчик)
Описание
Цена
12.СЮр. Управляет системой открытия и 150,ВДр. 120.00р. 110,00р. 50,00р.
Управляет системой открытия и Контролирует видеосигнал Контролирует работу памяти Необходима для контроля индии 1
Рис. 94. Табличная форма Сводная таблица и сводная диаграмма (см. рис. 56, 57). В Microsoft Access имеется возможность многие объекты, в том числе формы, представлять в режимах сводной таблицы и сводной
Проектирование баз данных. СУБД MS Access
146
диаграммы. Используя эти возможности, можно представлять данные в компактной и удобной для анализа и понимания форме. Кроме вышеперечисленных форм, следует выделить диаграммную форму, которая содержит диаграмму и может встраиваться в другие формы и отчеты. Форму можно подготовить автоматически (с помощью команды Автоформа}, автоматизированным способом (с помощью мастера форм) или «вручную» (используя инструментальные средства конструктора форм). Автоформа позволяет быстро получить простую форму, что не всегда устраивает пользователя. Мастер форм ускоряет и облегчает процесс создания форм (для каждого типа форм имеется свой мастер форм), так как выполняет за пользователя большую часть основной проектной работы. Если читатель уже достаточно освоился с Access и уверенно чувствует себя при проектировании и оформлении форм, он может отказаться от поддержки мастера и самостоятельно сконструировать новую форму в соответствии со своими представлениями.
1. Проектирование диаграммной формы Для начала создадим диаграммную форму, которая достаточно наглядно отображает цены на модели «Corolla» благодаря средствам деловой графики. Грамотно спроектированная иллюстрация или диаграмма зачастую говорит больше, чем сотня слов и тысяча голых цифр. Чтобы приступить к проектированию формы, щелкните в окне БД на закладке Формы, затем на кнопке Создать. Access откроет диалоговое окно создания формы (рис. 95). Новая форма
Создание формы с диаграммой.
Конструктор Мастер форм Автоформа: в столбец Автоформа: ленточная Автоформа: табличная Автоформа: сводная таблица Автоформа; сводная диагр Сводная таблица
Выберите в качестве источника данных таблицу или запрос:
Рис. 95. Диалоговое окно создания формы
Тема 5. Формы
U7
В этом диалоговом окне следует выбрать таблицу, на которой будет базироваться диаграммная форма. Откройте список и маркируйте таблицу Предлагаемые модели. Далее выберите строку Диаграмма и щелкните на кнопке ОК. На экране появится первое диалоговое окно мастера диаграмм (рис. 96). Создание диаграмм
taiaxa вин» ив
Выберите поля с данными, которые необходим отобразить с диаграмме. Доступные поля: Код модели Мощность двигателя Цвет Коробка передач Количество дверей Обивка
Поля диаграммы:
_
Модель Заводская цена
-
Специальная модель
Отмена
Далее >
Рис. 96. Выбор полей для диаграммы
Если в форме должны появиться все поля таблицы, следует просто выполнить щелчок на кнопке с двойной стрелкой (»), которая находится между списками полей, и Access будет использовать в форме все поля в той же последовательности, в которой они были определены при проектировании таблицы. Если в форму необходимо включить не все, а только некоторые (избранные) поля, то каждое такое поле следует маркировать в левом списке с последующим нажатием кнопки переноса (>). При этом необходимо соблюдать порядок маркировки, он должен соответствовать требуемому порядку включения полей в форму. Если поле было внесено в форму по ошибке, то для удаления из формы его достаточно маркировать в правом списке и выполнить щелчок на кнопке со стрелкой влево (<). В проектируемой диаграмме цен нужно представить компоненты цены - продажную цену и расходы на перегон автомобиля для каждой модели. Затраты на получение допуска к эксплуатации для каждой модели одинаковы, поэтому их можно не показывать.
148
Проектирование баз данных. СУБД MS Access
Последовательно выберите поля Заводская цена, Транспортные издержки и Модель. После щелчка на кнопке Далее на экране появится окно выбора типа проектируемой диаграммы (рис. 97). Создание диаграмм Выберите тип .««граммы,
L
Прави*ъньй тип диаграммы позволяет наглядно представить значения выбранных полей. Гистограмма Отображает изменения за период времени или показывает относительные значения элементов. Категории данных располагакпчгя по горизонта пи, изменяющиеся по времени значения - па вертикали.
Отмена
< Назад
Готово
Рис. 97. Окно выбора типа диаграммы
1.1. Типы диаграмм Теперь целесообразно совершить краткий экскурс в мир диаграмм. Приведенный ниже обзор должен помочь читателю произвести правильный выбор диаграммы для отображения конкретных данных. Круговая диаграмма относится к одномерным и позволяет отображать только один числовой ряд (в преобразованном виде). Круговая диаграмма наиболее наглядно показывает «части пирога». Она лучше всего подходит для представления частей целого, например распределения оборота по категориям товара, распределения клиентов по месту жительства, распределения голосов между кандидатами на выборах и т. д. Точечная диаграмма позволяет наглядно отобразить последовательности измеренных (рассчитанных) величин. По точкам измерения (расчета) можно сделать некоторые выводы о характере изменения отдельных величин и их взаимосвязи.
Тема 5. Формы
149
С помощью ленточной диаграммы удобно демонстрировать динамику соотношений нескольких параметров, составляющих общую сводную величину, например соотношение объемов продаж пирожков, пончиков и бубликов по месяцам в течение года с общим объемом продаж. Линейная и столбиковая (гистограмма) диаграммы подходят для представления соотношений нескольких параметров в различные моменты времени и по различным категориям. Например, для представления дневной температуры, влажности и скорости ветра за месяц наблюдений или для представления цены, мощности двигателя и расхода горючего по определенным моделям автомобилей. Также существуют и другие типы диаграмм, на которых мы не будем останавливаться подробно. 1.2. Составление диаграммы Пользуясь приведенными выше рекомендациями по применению диаграмм различных типов, читатель может выбрать диаграмму для конкретного случая. Так, для показа цен отдельных моделей «Corolla» лучше всего подойдет столбиковая диаграмма, Ее образец уже установлен по умолчанию в диалоговом окне выбора типа диаграммы. Если читатель предпочитает работу с трехмерным вариантом, следует выполнить щелчок на соответствующем образце (второй в первой строке образцов). Трехмерное изображение при небольшом количестве данных смотрится лучше, чем традиционная двумерная диаграмма. После щелчка на кнопке Далее появится следующее диалоговое окно (рис. 98), в котором объединены функции выбора установки надписей, категории для легенды и источника данных. По умолчанию Access предложит вам заполненные значения, т. е. готовую диаграмму для вашего набора полей. Если вас не устраивает предложенный вариант, вы можете его скорректировать. Количество опций на форме различается от диаграммы к диаграмме, для нашего варианта их три. Это Оси, Ряды, Данные. Справа находится список доступных для использования полей. Вы можете перетаскивать доступные поля в любую ячейку. В левом верхнем углу данной формы имеется кнопка Образец, которая позволит вам в любой момент посмотреть полученый результат в отдельной форме.
Проектирование баз данных. СУБД MS Access
150 Создание диаграмм |j*i
• ^^
Выберите тип отображения да«ыхна диаграмме.
,„т^М
Перетащите кнопки попей в об пасть итьвид ipyi-KMMwwwebiwuieNHH, 1важды ое поле ипиполе типа даты.
риа Завоюем о»:* ..Транспортные юд; w "; -_
6000 Т И «НЕ 2МО
J
И
модель
—
LJ
flj -fe
"ВЦ
' '
'
|
мадм* —
г*—
|.
—-
Заводская цена
:—|
Оси ! - •—
•
Отмена
- •-
< Назад
•
fi.snee
•• -
>
-
Co тою
Рис. 98. Мастер диаграмм на шаге определения источника данных
В области Данные должны располагаться данные, представляемые в виде столбцов диаграммы (в данном примере). Сюда перенесем оба поля цены Заводская цена и Транспортные издержки. При переносе второго поля необходимо следить, чтобы оно не перекрыло первое. В противном случае произойдет замена одного поля другим. После переноса полей обнаружится, что поля Заводская цена и Транспортные издержки в области Данные изменили свои названия на следующие: Сумма_3аводская цена и Сумма_Транспортпные издержки. Дело в том, что по умолчанию над этими полями для каждой категории легенды (в нашем случае — поле Модель) производится операция суммирования. В данном примере эта операция не является необходимой, так как каждая модель представлена в таблице одной записью. Чтобы отменить операцию суммирования, следует дважды щелкнуть на поле Сумма_3аводская цена, а затем на поле Сумма_Транспорпгные издержки. В появившемся на экране диалоговом окне Операции суммирования следует выбрать одну из следующих возможных операций: •
отсутствие операций (Нет),
•
суммирование данных (Sum),
•
вычисление среднего значения (Average),
Тема 5. Формы
151
•
нахождение минимального значения (Min),
•
нахождение максимального значения (Мах),
•
подсчет количества записей (Count).
Выберите в списке элемент Нет и нажмите кнопку ОК. Ту же процедуру проделайте для поля Sum О/Транспортные издержки. Область Ряды оставим пустой, так как мы перенесли два поля в область данных. В область Оси перенесем поле Модель, тогда под каждой группой столбцов будут выводиться подпись, содержащая название данной модели. Нажмите кнопку Далее и перейдите к последнему окну мастера диаграмм, в котором следует подобрать диаграмме подходящий заголовок. По умолчанию в качестве заголовка диаграммы используется имя базовой таблицы. Однако в данном случае более подходящим выглядит заголовок «Структура цеп моделей Corolla». После ввода этого имени щелкните на кнопке Готово, чтобы отобразить на экране готовую диаграмму. Access потратит некоторое время на построение изображения данной диаграммы. В статусной строке во время построения будет видна процентная линейка выполнения. Внимательно посмотрите на полученный результат (рис. 99). Названия моделей «Corolla» располагаются по оси X диаграммы; каждой модели соответствует определенный цвет (см. легенду). Компоненты цены для отдельных моделей представлены в виде разноцветных столбцов, высота которых ориентируется на шкалу цен оси Y. Структура ц«н моделей Corel*
• Corolla Combi \Ш Corolla i CompactGT JD Corolla ! CompactXP | С Corolla LlflbackGT I • Corolla LiflbackXL
Рис. 99. Готовая трехмерная столбиковая диаграмма (гистограмма)
Если диаграмма вам нравится, ее можно сохранить, использовав команду Сохранить меню Файл и выбрав подходящее имя,
152
Проектирование баз данных. СУБД MS Access
например Структура цен. Если диаграмму необходимо немного изменить, то, нажав соответствующую кнопку в панели инструментов или выбрав пункт Конструктор в меню Вид, следует перейти в режим проектирования формы. Access обрабатывает диаграммы с помощью утилиты MS Graph- программы деловой графики, которая входит^в комплект поставки Access (и Microsoft Office). До тех пор пока диаграмма находится на экране, утилита MS Graph остается активной. Она прекращает работу только при закрытии окна диаграммы. Для внесения изменений в диаграмму следует посредством двойного щелчка на диаграмме в окне проектирования вызвать утилиту MS Graph. После внесения изменений следует переключиться обратно в окно диаграммы. Если в рамках MS Graph вносились изменения, то при закрытии окна диаграммы Access выдаст запрос о подтверждении этих изменений в окне сообщения. Ответьте на данный запрос, нажав кнопку ОК.
2. Проектирование составной формы В этом разделе мы спроектируем составную форму, в которой главная форма связана с подчиненной. Источником данных для формы будет соединение таблиц Предлагаемые модели и Клиенты. При помощи такой формы можно будет получить сведения об отдельных моделях автомобилей и о заказавших их клиентах. По количеству заказов, приходящихся на каждую модель, легко будет узнать, какая из моделей пользуется спросом у покупателей, а какая реализуется плохо. Во избежание осложнений и в этом случае предоставьте подготовку проекта формы мастеру. Позднее готовую форму можно будет улучшить или отредактировать, например встраивая иллюстрации, управляющие и оформительские элементы, изменяя положение полей и встраивая вычисляемые поля. Приступим к созданию проекта формы. В окне БД следует выполнить щелчок на кнопке Формы или установить в меню Вид опцию Формы. После щелчка на кнопке Создать в окне БД на экране появится уже знакомое диалоговое окно Новая форма, в котором надлежит выбрать способ создания формы. Выберите строку Мастер форм, чтобы создать формы под управлением мастера. Таблицу на этом этапе можно не указывать. После нажатия кнопки Далее появится первое диалоговое окно мастера (рис. 100), в котором следует выбрать таблицы и поля для проектируемой формы.
Тема 5. Формы
153
Выберите поля для формыДопускается выбор нескольких таблиц или запросов.
Таблицы и запросы [Таблица: Предлагаемые моде. •*] Доступные поля; Цвет Коробка перевач Количество дверей Обиека Другое оснащение Заводская цена Т ранспортные издержки
I
Далее >
Готово
Рис. 100. Выбор таблиц и полей для формы
В списке Таблицы/Запросы выберите таблицу Предлагаемые модели. Теперь из списка Доступные поля необходимо выбрать поля, участвующие в форме, и перенести их в список Выбранные поля. В форму, предназначенную для обзора заказов на модели серии, должны войти все данные о той или иной модели, включая информацию об оснащении и цене. Единственное поле, которое нет нужды включать в такую форму, - это поле Специальная модель. Чтобы не перетаскивать последовательно каждое из полей в правый список, воспользуйтесь кнопкой с двойной стрелкой (») и поместите в этот список все поля, а затем, маркировав поле Специальная модель в правом списке, исключите его с помощью щелчка на кнопке со стрелкой, указывающей в обратном направлении (<). Затем из списка Таблицы/Запросы выберите таблицу Клиенты, которая является таблицей для подчиненной формы. Внесите в проект формы следующие поля в указанной очередности: •
Обращение,
•
Имя,
•
Отчество,
•
Фамилия,
•
Почтовый адрес,
Проектирование баз данных. СУБД MS Access
154
• •
Почтовый индекс, Населенный пункт,
• •
Номер договора, Дата заказа,
•
Скидка.
Пользователь не обязан переносить поля в той последовательности, в которой они расположены в левом списке. Поля можно разместить так, как предложено выше. Окончив эту процедуру, выполните щелчок на кнопке Далее. На экране появится следующее диалоговое окно (рис. 101). Создание ферм Выберите вид представления данных: Код йоделн. Модель, Мощность двигателя, Цвет, Коробка передач, Количество дверей. Обивка, Другое оснащение, Обращение, Имя, Отчество, Камилия, Чочтовьй индекс. Почтовый адрес, Населенный пункт, Номер мказа. Дата заказа. Скидке
ff Подчиненные формы
< Назад
С~ Связанные формы
Готово
Рис. 101. Выбор вида связи главной и подчиненной формы
В этом окне Access предлагает построить проектируемую форму в виде главной (родительской) и подчиненной (дочерней), которые соединены в одной составной форме (опция Подчиненные формы). В качестве главной формы мастер определил форму на основе таблицы Предлагаемые модели, проанализировав связи между таблицами. Этот вариант мы и оставим. Чтобы перейти к следующему окну, нажмите кнопку Далее, хотя на этом можно было бы и завершить проектирование формы, нажав кнопку Готово. В последнем случае при создании формы будут использованы стандартные установки. Мы же проследим все этапы проектирования.
Тема 5. Формы
155
В следующем окне (рис. 102) выбирается вид подчиненной формы, которая может быть представлена как в ленточном, так и в табличном виде. Остановимся на табличном виде и перейдем к следующему окну (рис. 103). Создание форм Выберите внешний вид подчиненной формы: ' ЯВ --. ." •*-• •
на vs.;.-.=.;;•
JJ
ГЩ --'- •~-".^ -
па .--,--.-- ';,.
mat
Л
•-,•<:
?£E ^ 5
,
»* '.--*;.(-v
лентсчньй
& ггабтчньм Г" сводная таблица С сводная диаграмма
Отмена
< Назад
|
Далее >
|
[отоео
Рис. 102. Выбор типа формы для подчиненной формы Создание форм Выберите требуемый стиль.
Диффузный Камень Международный Наждачная бумага Официальный Промышпен№1Й Рисовая бумага Рисунок Сунн
йняяя Чертеж
Отмена
< Цамд
|
йалее >
Рис. 103. Выбор оформления формы
\
Готово
Проектирование баз данных. СУБД MS Access
156
В этом окне выбирается один из предлагаемых видов оформления формы. Для начала остановимся на простом оформлении формы (в списке выберем строку Стандартный), заметив при этом, что стиль оформления можно изменять, в том числе создавать новый. Теперь перейдем к последнему окну мастера (рис. 104), в котором можно присвоить подходящие имена главной и подчиненной формам. Создание форм Задайте имена форм: Форма: Подчиненная
Закакн но дел ей Corolla [Клиенты подчиненна!! форма
Указаны все сведения, необходимые для создания форны е поиощыо мастера. Дальнейшие действия: <* Открыть форму дпя просмотра и СЕОДЗ данных. ^ Изменить макет формы.
Г" Вывести справку по работе с форме и?
Отмена
< Назад
Рис. 104. Присвоение имен главной и подчиненной формам
Выберем следующий заголовок для главной формы - Заказы моделей Corolla. Для подчиненной формы можно оставить имя, выбранное Access. В заключение необходимо выбрать одну из следующих опций, предложенных в окне, - Открытие формы для просмотра или ввода данных, или Изменение макета формы. Остановимся на втором варианте, так как полученная нами форма вряд ли будет пригодна для немедленного использования. Нажмите кнопку Готово, и на экране появится готовый проект формы (рис. 105). Сначала будет видна только шапка формы с заголовком, а также область данных, в которой в одной колонке друг под другом стоят поля главной формы. С помощью вертикальной линейки прокрутки, расположенной на правом краю экрана, переместитесь
Тема 5. Формы
157
вниз, и вы увидите подчиненную форму, точнее, только белый прямоугольник с именем подчиненной формы в нем - это указание на то, что данная форма является самостоятельной формой, которая была связана с главной. За Заказы моде лей- Corolla ; форма ._ .-
.,.,-, i
!
Z ' ' ' 3 " i ' « ' i - 5
- .
" . . _•'
. . ^T|SJ(X^
• i • э • • • ю - " • и - i - и - • • 13 " - н • i - 15 • i - te - N
i •в• i •7• '-
* Заготовок форпы 4 UWkKlIt A5f*tC<
.j
• !
1—:
!
'-Си модел- 06ji6«3
• ^ . "
Моле/ Мощ»
1
S
IE ivLiamauja
:• i Мощность
jUBW ^Кособ
1
| Обнвко
User
и.
т? ; — ' — 'За Персика га ^
| Количестве Кхиис :ITjufHj-bi
;тр
wc^a^
Завоасг.оя иеяа Трач^iDprttie иаде
•^^
Слиенты подч-иеияая форма
1
i б
|
1
:
Рис. 105. Готовый макет формы
Примечание. С помощью щелчка на прямоугольнике можно открыть подчиненную форму в режиме проектирования. Так как эта форма была сохранена под собственным именем, ее можно использовать как в качестве подчиненной формы, так и в качестве самостоятельной, независимой формы. 2.1. Оформление составной формы Проект формы готов. Попробуем отредактировать его, чтобы сделать более выразительным: добавим графику и изменим расположение отдельных полей. 2.2. Перенос полей и изменение размера полей Займемся областью данных Область данных главной формы. В области данных находятся поля из таблицы Предлагаемые модели. Еще раз обратите внимание на строки области данных. Каждая из них содержит два элемента: слева - наименование поля
158
Проектирование баз данных. СУБД MS Access
(тип элемента Надпись), справа - содержание поля БД (тип элемента Поле). Элементы, предназначенные для размещения содержимого полей, имеют длину, определенную размером соответствующих полей в таблице (см. опцию Ширина, которая отображается в окне свойств Свойства при маркированном элементе). Поле наименований содержит либо надпись (характеристика Надпись поля), которая была определена при проектировании таблицы, либо (если надпись не была задана) имя поля. Прежде чем приступить к изменению проекта формы, следует немного увеличить его ширину и высоту. Ориентироваться следует по координатной линейке, расположенной на верхнем краю окна. Выполните щелчок на вертикальной разделительной линии справа от элементов области данных Область данных. Если у вас небольшое окно, то, чтобы увидеть разделительную линию, необходимо переместить его немного вправо с помощью горизонтальной линейки прокрутки, расположенной на нижнем краю экрана. После позиционирования курсора мыши на правом краю области данных Область данных он приобретет вид двунаправленной стрелки. Перетащите ограничительную линию несколько вправо и отпустите кнопку манипулятора. То же самое проделайте, расширяя область данных формы вниз. 2.2.1. Перенос полей Для начала перетащим подчиненную форму вниз с таким расчетом, чтобы в освободившемся промежутке поместились поля главной формы, не вместившиеся в первый столбец. Маркируйте подчиненную форму и поместите курсор мыши на край этой формы, чтобы он приобрел вид ладони. Теперь, удерживая нажатой кнопку мыши, перетащите подчиненную форму в нижнюю часть области данных. Таким же способом следует переместить поля главной формы, не вошедшие в первую колонку, чтобы все поля с их надписями были построены в одну колонку (столбец) (рис. 106). Теперь можно расположить эти поля более компактно. Так, поле Модель должно быть расположено в первой строке справа от поля Код модели (рис. 107).
Тема 5. Формы
15'»
Рис. 106. Поля главной формы, расположенные в один столбец а? Заиаэы моделей Corolla: форма
ч • i -к • i к • i •» • i -я -
Рис. 107. Проект формы с перенесенными полями
160
Проектирование баз данных. СУБД MS Access
Маркируйте поле Модель, выполнив на нем щелчок (именно на содержимом, а не на наименовании), и не отпускайте левую кнопку манипулятора. Курсор мыши приобретет вид раскрытой ладони. На окаймляющей поле рамке появятся размерные манипуляторы (маленькие черные прямоугольники), а в левом углу рамки - большой черный квадрат (манипулятор перемещения). Теперь при нажатой кнопке мыши перетащите составное поле (надпись и содержимое) на первую строку формы, а затем отпустите кнопку. Поле будет размещено на новом месте. В результате щелчка вне поля маркирование отменяется. Примечание. Существует возможность перемещать компоненты составных полей (например, надписи и содержимого) по отдельности. Для этого следует после маркирования поля не удерживать кнопку мыши, а отпустить ее (маркировка останется). Если теперь поместить курсор мыши на манипулятор перемещения, то он приобретет вид указывающей вверх руки Это признак того, что можно перемещать отдельный элемент составного поля. Если же курсор не изменил вида (по-прежнему имеет вид раскрытой ладони), сместите его с манипулятора перемещения (не нажимая кнопки мыши) и поместите на верхнюю кромку маркировочной рамки. После нескольких попыток он приобретет требуемый вид, Таким же способом расположите во второй строке поля Мощность и Коробка передач, в третьей - Цвет, Количество дверей и Обивка, в четвертой -Другое оснащение. Затем через небольшой интервал поместите поля (каждое в своей строке) Заводская цена, Транспортные издержки, Предпродажная подготовка. Теперь в области данных основной формы освободилось место и можно подвинуть прямоугольник, представляющий подчиненную форму, поближе к последнему полю главной формы. Подчиненная форма перетаскивается, как и любой другой элемент, с помощью манипулятора перемещения. Примечание. Если необходимо перенести все поля сразу, установите указатель мыши слева от первого переносимого поля (так, чтобы оно при этом не маркировалось!) и начертите, передвигая манипулятор и удерживая нажатой его кнопку, маркировочную рамку, охватывающую все поля, которые должны быть перенесены. Затем отпустите кнопку манипулятора, и все попавшие в рамку элементы (в том числе и частично попавшие) будут маркированы.
Тема 5. Формы
161
2.2.2. Изменение размеров полей После того как вы расположите поля, необходимо будет решить следующую проблему: некоторые надписи не поместились в отведенное для них пространство. Для решения этой проблемы выполните следующие действия. Установите курсор мыши на размерной линейке, расположенной по левому краю макета формы, напротив той строки, в которой располагаются элементы, размер которых необходимо изменить. Курсор приобретет вид стрелки, направленной вправо. Нажмите кнопку мыши. Все элементы, расположенные в данной строке, будут маркированы. Выберите команду По размеру данных из подменю Размер меню Формат, с помощью которой подбирается оптимальный размер выделенных элементов. Но это еще не все, поскольку надписи теперь наезжают на поля. Активизируйте команду Сделать равными из подменю Интервал по горизонтали меню Формат, после чего между элементами установятся равные промежутки. Если ширина промежутка вас не удовлетворяет, то, используя команды Увеличить и Уменьшить того же подменю, можно соответственно увеличить или уменьшить размер промежутков. Теперь, если расположение полей вас устраивает, можно приступить к подгонке их размеров. Изменим в форме размер поля Другое оснащение. Это поле в таблице является МЕМО-полем и поэтому может содержать довольно длинный текст (до 64 000 символов). Для некоторых моделей число дополнительных деталей оснащения так велико, что их описание не поместится в соответствующем элементе формы. Выполните щелчок на элементе Другое оснащение, вокруг него появится маркировочная рамка с размерными манипуляторами. За исключением левого угла, занятого манипулятором перемещения, каждый угол (и середина каждой стороны) имеет собственный размерный манипулятор. С его помощью можно изменить положение угла (стороны) при неподвижном элементе, т. е. сдвинуть угол или сторону, увеличив/уменьшив тем самым размер элемента. При перемещении размерных манипуляторов, расположенных на верхней и нижней сторонах рамки, изменяется высота элемента. Размерные манипуляторы, расположенные по бокам, служат для изменения ширины элемента. С помощью манипуляторов, нахо-
162
Проектирование баз данных. СУБД MS Access
дящихся в углах, изменяются одновременно высота и ширина элемента. Руководствуясь вышеизложенным, растяните упомянутое МЕМО-поле до необходимого размера так, чтобы его высота составляла около 1,5 см, а ширина - около 10 см. Примечание. При изменении размера поля, особенно при уменьшении, следует помнить о том, что поле во время использования формы будет содержать некоторую информацию, взятую из соответствующего поля БД. Поэтому размер поля формы должен быть достаточным для отображения этой информации.
3. Добавление управляющих элементов Для добавления управляющих элементов понадобится панель элементов (см. рис. 90), расположенная по умолчанию на левом краю экрана. При переносе полей главной формы эта панель может быть помехой, поскольку закрывает большую часть левого края формы. Но панель элементов можно перенести в любую позицию на экране, как и любое другое окно. Состояние опции Панель элементов в меню Вид определяет наличие (опция включена) или отсутствие панели элементов на экране. Каждая пиктограмма панели элементов предПат х ставляет собой стилизованное изображение управляющего (оформительского) элемента, который можно встроить в форму (рис. 108). Чтобы читатель смог правильно понять назначение пиктограмм панели элементов, ниже мы приводим их обзор (табл. 48).
Рис. 108. Панель элементов управления
Тема 5. Формы
L63 Таблица 48
Пиктограмма
Название
Функция
Выбор объектов
Если активизирована данная пиктограмма (а она активизируется по умолчанию), курсором мыши можно маркировать поля, выполнять переносы и изменять размеры
-Ч ;*>
Мастера элементов управления
Включение/выключение вызова мастеров при проектировании элементов управления
Аа
Надпись
Вставка в форму нового поля наименования
Поле
Отображение содержимого некоторого поля записи БД или вычисляемого поля
Группа переключателей
Создание и размещение группы, в которую можно ввести контрольные индикаторы, селекторные кнопки или двухпозиционные кнопки Отображение значения некоторой опции, которая может иметь два состояния
§
аЫ
%Л*-Г I
**та
•няЛ Г——
Выключатель, кнопка с фиксацией
9
Переключатель
Выбор (индикация) одного из нескольких взаимоисключающих значений некоторого параметра (например, одного из цветов автомобиля)
F
Контрольный индикатор, флажок
Индикация (изменение) значения опции, которая может иметь одно из двух возможных значений (включена/выключена, отмечена/не отмечена)
Ц|
Комбинированный список (иоле со списком) Список
После щелчка на манипуляторе открытая (кнопка со стрелкой на правом краю поля) разворачивается комбинированный список В поле списка, в отличие от комбинированного списка, все элементы видны постоянно. Если же их так много, что они не помещаются в выделенное для поля место, то на правом краю поля автоматически размещается линейка прокрутки списка
Проектирование баз данных. СУБД MS Access
164
Продолжение таблицы 48 Пиктограмма
Название
Функция
Командная кнопка
Создание кнопки, с которой может быть связана некоторая команда или последовательность действий. Например, можно создать командную кнопку Далее, с помощью которой будет производиться переход к следующей записи. Команда, соответствующая кнопке, должна быть определена как макрос
Рисунок
Встраивание статических иллюстраций (графических файлов) в форму
Присоединенная рамка объекта
Встраивание иллюстрации или другого произвольного OLE-объекта, который сохранен в таблице БД Access. Встраивание возможно, если в таблице объявлено OLE-поле, хранящее соответствующий объект
Разрыв страницы
Сообщение Access, в каком месте должен быть произведен перенос остатка формы на следующую страницу
ii
Свободная рамка объекта
Встраивание в форму объекта, который хранится в отдельном файле вне БД, например рисунка из Paint или графики из MS Draw
JJ
Набор вкладок
Элемент управления Набор вкладок используется для представления нескольких страниц данных в одном наборе. Например, элемент управления Набор вкладок может быть использован в форме Сотрудники, чтобы отделить общие сведения от личных
s \
Подчиненная форма/отчет
Встраивание подчиненной формы в главную форму и установка отношений между формами
Линия
С помощью данной пиктограммы в форме можно провести прямую линию
_J
о
£& XV&
.f~J fel
Тема 5. Формы Окончание таблицы 48 Пиктограмма
Название
а
Прямоугольник
*& >^>* « •
Дополнительные элементы ActiveX
Функция Объединение и выделение группы полей посредством заключения их в прямоугольную рамку Специальный элемент управления OLE
3.1. Вставка контрольного индикатора Для начала в проект формы следует вставить контрольный индикатор (флажок). Рассмотрим поле Специальная модель, которое в проекте таблицы Предлагаемые модели было определено как логическое поле и которое до сих пор в форму не вставлено. Поместим в форму информацию, о какой модели идет речь (специальной или нет). В проекте формы переместитесь в область данных, выполните щелчок в панели элементов на пиктограмме, с помощью которой можно создать контрольные индикаторы, а затем щелкните непосредственно под полем Модель в проекте формы. Access разместит управляющий элемент типа Контрольный индикатор (Флажок) вместе с соответствующим полем наименования. Позиционируйте флажок и поле наименования. С помощью двойного щелчка на поле надписи составного элемента откроите окно свойств Свойства, в котором следует установить параметры данного поля. Также окно свойств можно вывести на экран, установив опцию Свойства в меню Вид, или активизировав соответствующую кнопку в строке пиктограмм. Большинство параметров можно оставить без внимания, сохранив установки, используемые по умолчанию. Интерес представляет лишь первый параметр. В поле Надпись введите название поля - Специальная модель (рис. 109). Теперь перейдем к элементу Контрольный индикатор (Флажок). В разделе Данные окна свойств этого элемента (рис. ПО) следует указать имя поля таблицы, содержимое которого должен отражать контрольный индикатор.
166
Проектирование баз данных. СУБД MS Access s? Надпись: Наелись25
Макет | Данные | События j Другие j В« Подпись Специальная Вывод на экран Да Режим вывода Всегда От певсго края 4,804см От верхнего края 6,845см Ширина 1,587см Высота 0,423с« Тип фона Прозрачный Цвет ф»*а -2Н7483633 Оформление обычное Тип гранты Отсутствует Цвет границы < О Шммнагпднииы... . ._._._. _-_ Гвдпутпнк-дд
Рис. 109. Установка параметров надписи для контрольного индикатора !й* Флажок: Флажо«?4
Макет Данные |события] другие j Все | Данные ДВДЯН? ™8ffB - I ...I Значение по умолчанию Условие на жачение Сообщение об ошибке Доступ Да Блокировка Нет Тройное состояние Нет
Рис. 110. Установка связи значения флажка с полем базовой таблицы Щелкните мышью на параметре Данные и разверните список полей. Выберите в списке поле Специальная модель. Затем закройте окно свойств двойным щелчком на кнопке вызова управляющего меню. Размер поля наименования автоматически увеличится и весь текст надписи станет видимым, если на маркированном поле наименования дважды щелкнуть мышью. Контрольный индикатор готов.
3.2. Проведение линий Чтобы отделить группу полей, описывающих технические характеристики продукта, от полей цен, проведите разделительную
167
Тема 5. Формы
линию между полями Другое оснащение и Заводская цена. В панели элементов выберите пиктограмму линии, установите курсор мыши на левом краю формы и проведите поперечную линию по всей ширине экрана, удерживая нажатой кнопку мыши. Линия должна проводиться точно по горизонтали, поскольку при малейшем отклонении она становится ступенчатой. Чтобы облегчить рисование, можно воспользоваться клавишей [Shift]. Ее следует нажать еще до нажатия кнопки мыши и удерживать в процессе рисования. Теперь область данных формы выглядит так, как показано на рис. 111.
' • i • 1 • i . 2 . i - 3 • i • * • i • 5 • i • 6 • i • Г • ' • 8 ' t • 9 • i - Ю • i • 11 • I • В • i • В • t • м • i • Я -^
!
# Заголовок фзрмь; •1 * Отпасть датых •Код м веян •
» •етьдю 1ГЗТЙЛй
illser "ДО!)ГО -
j М ЭПвлв
[М одель
IMOL дность; внгателя
-
Горда а передач J- '- -
SР
Коли*отводе ерей .
_|Ивет слча/. ение
В
i
|Код модели
ройка передач ПЙЩЬ
1 Iffii «ВКо
Ipjjroe оснащение
т
Завод ^кли це на ' .
Заводе каяцена
-
оргмые нзаеоя Предг имаже ая гюог отоекг ' | Предпродажная поит отсека _
Клиен гы
пециас >ная Т
--
Клиенты подч1тненмая форма
..
1
—i
Рис. 111. Проект формы с контрольным индикатором и разделительной линией
3.3. Вычисляемые поля Под разделительной линией в области данных находятся три поля типа Денежный: Заводская цена, Транспортные издержки и Предпродажная подготовка. Используя эти поля, необходимо
168
Проектирование баз данных. СУБД MS Access
вычислить общую цену и показать ее в форме, поэтому добавим в форму вычисляемое поле, содержимое которого определяется не каким-то отдельным полем БД. а вычислением общей суммы трех других полей. При вычислениях в рамках Access можно свободно пользоваться четырьмя арифметическими операциями: сложением (+), вычитанием (-), умножением (*) и делением (/). Убедитесь в том, что панель -элементов отображена на экране, и выполните щелчок на пиктограмме Поле, чтобы вставить вычисляемое поле. Разместите это поле в нижней части формы. Лучше всего, если общая цена будет находиться справа, рядом с полем Заводская цена. После завершения размещения поле наименования будет содержать просто номер поля, а текстовое поле - ссылку Свободный. Первым делом вызовите окно свойств для поля наименования. Это окно уже известно читателю. Для параметра Надпись введите значение Общая цена. Все другие установки оставьте без изменений. Закройте окно, выполнив двойной щелчок на кнопке вызова управляющего меню. Затем заполните текстовое поле содержимым, открыв для этого соответствующее окно свойств. В поле Данные следует поместить формулу вычисления содержимого. Любая формула представляет собой комбинацию из операторов и имен полей. Начинаться формула всегда должна со знака равенства (-), а каждое имя поля в формуле должно заключаться в квадратные скобки ([...]). При проведении вычислений учитывайте следующее. Чтобы вычисления проводились корректно, имя поля в форме должно точно совпадать с соответствующим именем поля в таблице. В противном случае поля, из которых должны быть взяты данные для вычислений, могут оказаться неидентифицированными (при вычислении в вычисляемом поле появится сообщение об ошибке - ? Имя). Access использует в выражениях только те поля, которые были определены при создании таблицы и использованы при проектировании формы. Поле, добавленное задним числом, не учитывается, и поэтому не может привлекаться к вычислениям. Чтобы получить общую цену, необходимо суммировать три составляющие цены. Формулу можно либо прямо ввести с клавиатуры в поле Данные, либо отдельные поля последовательно выбрать с помощью стрелок прокрутки из списка полей.
[69
Тема 5. Формы
Установите в окне характеристик вычисляемого поля следующие значения параметров: Параметр Источник данных Формат
Значение = [Заводская цена] + [Транспортные издержки) + [Предпродажная подготовка] Денежный
Чтобы не заниматься вводом с клавиатуры формулы для расчета общей цены, можно воспользоваться построителем выражений Построитель выражений (рис. 112), для вызова которого следует нажать кнопку построителя, расположенную справа от поля Данные, Построитель выражений
; -fSBr
[Заводская пена] +[ Транспортные из держки]+ [Предпродажная подготовка] Отмена j Назад
±1 j-dd *! зз^Ы *!*
Or j Wotj Like j С I ) j
& ' ^йШШШШШШШШ
Ш Таблицы QD Запросы dt) Forms (И Reports : |±] Функции !Оконстанты О Операторы CD Общие выражения
Код модели_Надпись Код модели Мод ель „Надпись Модель Мошность двигателя_Надпи< Мощность двигателя Цвет^Нздпись Цвет Коробка передзч_Нэдписв v
Вставить ;
j
Справка 1
•Другое оснащение 1 Заводская цема >Код модели i Количество дверей" |Коробка передач ', Модель {Мощность двигателя [обивка
л
ц^УМ8§В«ЕШМ8Ь£^ Специальная модель [Транспортные издержки
v.
Рис. 112. Формула обшей цены, введенная с помощью построителя выражений
Другие параметры в списке оставьте без изменений и закройте окно, выполнив двойной щелчок на кнопке вызова управляющего меню. Вычисляемое поле будет вставлено в проект формы. Теперь следует оформить часть формы, содержащую данные о цене. Эти данные необходимо сгруппировать и выделить. Активизируйте элемент Прямоугольник и с помощью манипулятора, удерживая его кнопку нажатой, начертите прямоугольник вокруг группируемых полей (фактически необходимо протянуть главную диагональ прямоугольника).
Проектирование баз данных. СУБД MS Access
170
После того как кнопка мыши будет отпущена, вокруг полей появится обрамление в виде прямоугольной рамки (рис. 113). Sj Заказы моделей Corolla : фар
Рис. 113. Сгруппированные денежные поля
3.4. Форматирование текста Созданная нами форма выглядит бледно из-за однообразия форматов текста в полях. Access допускает произвольное и независимое форматирование текста в каждом поле: выбор шрифта, его размера, начертания, а также выравнивание текста (по левому краю, по центру, по правому краю). Все эти оформительские возможности доступны для пользователя. Займитесь заключенной в рамку областью с денежными полями. Выделите текст содержащихся в ней полей (наименования и содержимого) курсивом. Поскольку речь идет о единообразном оформлении нескольких полей, то для ускорения процедуры маркируйте их, а затем все вместе оформите. Установите указатель мыши слева от первого поля Заводская цена и начертите с помощью мыши маркировочный прямоугольник, охватывающий все
Тема 5. Формы
171
поля ценовой группы. Отпустите кнопку манипулятора, и все охваченные маркировочным прямоугольником поля окажутся маркированными. Посмотрите на строку панели инструментов Формат (рис. 114) (она расположена под строкой панели инструментов Конструктор форм в верхней части окна Access): как только будет маркирован хотя бы один элемент, на панели станут доступными пиктограммы, с помощью которых можно сформатировать текст. Три пиктограммы (кнопки) с буквами Ж (Жирно), К (Курсив) и Ч (Подчеркивание) обеспечивают возможность выделения текста. Выполните щелчок на кнопке с изображением буквы А", и все поля маркированной области отобразятся в курсивном начертании. Попробуйте маркировать любое из полей наименований и по активизировавшейся кнопке с изображением буквы Ж на панели инструментов увидите, что все поля наименований Access автоматически выделил жирным шрифтом. Данные установки следует оставить.
Рис. 114. Развернутый список шрифтов
Теперь измените вид и размер шрифта. Маркировка области пока еще не отменена. На панели инструментов можно найти три
172
Проектирование баз данных. СУБД MS Access
комбинированных списка: в среднем приведены все доступные шрифты, в правом - размеры шрифта в пунктах. Выберите один из шрифтов (но только с кириллицей!), например Anal Cyr, и установите отличный от принятого по умолчанию размер, который не должен быть слишком большим, так как содержимое поля БД не поместится в соответствующее поле формы. Больше всего подходит размер 8 или 9 пунктов, В заключение можно изменить выравнивание текста. Предназначенные для этого пиктограммы также находятся в пиктографическом меню. Чтобы выровнять по центру величины цен в четырех полях, маркируйте эти поля и воспользуйтесь второй пиктограммой из группы выравнивания. Содержимое полей будет выровнено по центру. 3.5. Встраивание объекта Кроме области данных в проекте формы имеются еще область заголовка Заголовок формы и область примечаний Примечание формы. Введем в заголовок формы название формы. Для начала следует расширить область заголовка в форме. Установите курсор между областью заголовка Заголовок формы и областью данных Область данных так, чтобы он приобрел вид двунаправленной стрелки, нажмите кнопку мыши и переместите манипулятор вниз. Теперь в увеличенную область заголовка можно поместить заголовок формы. Для этого на панели элементов следует активизировать элемент Надпись. После чего необходимо переместить изменивший вид курсор в требуемое место области заголовка и выполнить щелчок мышью. Теперь, когда элемент размещен, можно ввести заголовок, например Заказы. Чтобы заголовок выделялся среди других надписей, следует установить для него другой вид и размер шрифта. Для улучшения внешнего вида формы можно встроить в ее заголовок иллюстрацию. Поскольку форма в нашем примере содержит данные о моделях автомобилей и заказах на них, вполне подходящей иллюстрацией будет изображение автомобиля. Процесс встраивания объекта базируется на механизме OLE (Object Linking and Embedding). При встраивании объекта можно применить один из двух доступных в Access способов: внедрение или связывание. В первом случае речь идет о том, что в таблице,
Тема_5_. Формы
173
на которой базируется форма, существует OLE-иоле (поле встроенного объекта), а объект (Внедренный объект} хранится в самой базе, внутри ее. Во втором случае встроенный объект (Связанный объект) хранится не в базе, а вне ее в собственном файле объекта (он внешний по отношению к базе). Посредством двойного щелчка на любом встроенном объекте (внедренном или связанном) можно запустить родительскую прикладную программу, с помощью которой этот объект был создан (например Paint, если речь идет об иллюстрации), после чего пользователь может изменить объект, а затем сохранить его в форме, т. е. актуализировать. Примечание. При связывании объект сохраняется не в файле БД Access, а в отдельном файле в формате родительской прикладной программы, с помощью которой он был создан (например, иллюстрация сохраняется в формате Paint). Во время отображения формы на экране Access использует «свежий» вариант связанного объекта из этого файла. Преимущество процедуры внешнего встраивания заключается в том, что оригинальный объект можно связать с несколькими Access-формами (и любыми другими документами), при этом он хранится только в одном месте - в своем собственном файле. Во всех местах, с которыми он связан, располагаются только ссылки на этот файл. Итак, нам необходимо встроить иллюстрацию автомобиля в форму. Простейшим графическим редактором, работающим со встроенными иллюстрациями в среде Windows, является Paint (рис. 115). Он включен в стандартную поставку операционной системы Windows. Вы также можете воспользоваться любым другим редактором, поддерживающим OLf-интерфейс (Core! Draw, Photofinish). В заголовке формы выполните щелчок справа от заголовка и из меню Вставка выберите команду Объект. Появится диалоговое окно выбора типа встраиваемого объекта (рис. 116). Открыть данное окно можно и с помощью панели элементов (инструментальное меню), расположенной на левом краю экрана: следует щелкнуть на соответствующей пиктограмме (Свободная рамка объекта или Присоединенная рамка объекта), перевести указатель мыши в заголовок формы и начертить там рамку для иллюстрации. Затем надлежит отпустить кнопку мыши, после чего появится диалоговое окно Вставка объекта.
Проектирование баз данных. СУБД MS Access
174
& irnaseOQI .wmT - Paint вид
Рисунок
Палитре
Справка
Для получен*! спрэе™ выберите кеилнду "выме
Рис. 115. Создание иллюстраций в редакторе Paint Microsoft Access Тип объекта: <•' Сомлть новый f Создать из файле
ЗвуК1»апись Клип мультимедиа Лист Microsoft Excel Пакет Microsoft PowerPoint
Г" в виде мачка
Слайд Mcrasoft PowerPoint Результат Добавление в документ нового объекта типа Рисунок Paintbrush',
Рис. 116. Выбор типа встраиваемого объекта В этом диалоговом окне приведен список всех инсталлированных в Windows прикладных программ, которые поддерживают OLE-интерфейс, т. е. их «продукцию» можно встроить в качестве объекта. Пролистайте список и маркируйте название любого графического редактора, который следует запустить посредством щелчка на кнопке ОК. После этого на экране появится окно для рисования. В данном окне вы можете самостоятельно нарисовать любой необходимый элемент. Для этого редакторы предоставляют различные инструменты и богатую палитру цветов. Если вы считаете
Тема 5. Формы
175
себя профессиональным художником и имеете достаточно времени, можете приступить к работе. Выполните щелчок на инструменте для рисования линии, переведите указатель мыши в рабочую зону рисования и нарисуйте контуры автомобиля, по возможности похожего на «Toyota Corolla». Если же у вас нет навыков, таланта или времени для рисования, следует обратиться к готовой Clipart-библиотеке и выбрать оттуда картинку с автомобилем. Вы можете с помощью редактора Paint внести изменения в рисунок и сохранить его под именем car.bmp. Если у вас имеется готовый рисунок, то в окне Вставка объекта следует выбрать опцию Создать из файла. Тогда окно Вставка объекта изменит свой вид (рис. 117). Microsoft Access Файл: f Соэдать ноеьй <* Cos дать на файла
jcTiDocumenls and Set4ngs\MarinalM<w доку Обзор...
1 l»1" Связь
Резулвтат Добавление в документ изображения содержимого файла. Изображение будет связано с файлом, что позволит отражать б документе изменения этого файла.
Рис. 1 П. Встраивание объекта из файла
Останется отыскать нужный файл (кнопка Обзор) и определить характер внедрения объекта в форму. Если опция Связь будет установлена, то любые изменения в исходном файле приведут к изменению объекта в документе. При отсутствии связи объект встраивается в документ. Иллюстрация получится слишком большой для нашей формы, поэтому попробуйте ее уменьшить, выполнив на ней щелчок, а затем перетащив угловые размерные манипуляторы рамки при нажатой левой кнопке мыши. Изменение размера возможно, если для свойства объекта Установка размеров будет установлено значение По размеру рамки. Практический совет. Не сжимайте изображение автомобиля слишком сильно, так как может исказиться его внешний вид. Уменьшайте изображение пропорционально по горизонтали и вертикали.
L76
Проектирование баз данных. СУБД MS Access
Выполните щелчок на иллюстрации, поместите курсор мыши на манипулятор перемещения (большой черный квадрат в левом углу) и перетащите рамку в желаемую позицию' справа от заголовка формы. Размер заголовка формы автоматически будет подогнан под встроенную иллюстрацию, а область данных формы с полями сдвинется вниз. Если иллюстрация поместилась не полностью, маркируйте ее и увеличьте графическую рамку с помощью размерных манипуляторов в центре соответствующей стороны. Иллюстрацию можно растянуть вверх или перетащить правую сторону рамки вправо. Если нижний край иллюстрации находится слишком далеко от изображения, подвиньте его вверх, используя соответствующий размерный манипулятор на рамке так, чтобы он проходил прямо под изображением. Готовый заголовок формы представлен на рис. 118, WI Заказы моделей Corolla : форма
Рис. 118. Встроенная графика в форме
4. Сохранение и открытие формы Итак, мы подготовили проект главной формы. Теперь его необходимо сохранить под именем Заказы (команда Сохранить меню Файл).
Тема 5. Формы
177
Чтобы увидеть, как выглядит форма в работе, следует выбрать из меню Вид команду Форма или щелкнуть на комбинированной кнопке с режимами представления на панели инструментов. Access перейдет в режим работы с формой и отобразит в главной форме первую запись таблицы предлагаемых моделей, а в подчиненной форме - все данные о клиентах, заказавших определенную модель, из таблицы клиентов (рис, 119). ,Щ Заказы моделей Corolla Модель
Кодмядели Мощностьденгателя Цвет
[СогаИа СотЫ
(НУЭО
Коробка передач
[Антрацитовые
Другое оснащение
[Автоматик а
К о л ччест во
Навесной багажник, раздвижная крыша, э лекгроп оаъемниг. CF.OH
Ззввяскзи чен \ Трзксларгк&е мзаерлх WS.Otfa. Г~
Им 06раще*-| * Госпоже Настасья Госпоже Настасья . Господин
»
- мсь:
ИЫГ~
Т
Специальная
| Отчество Кирилловна Анетольевна > !»•LMJ
« 2
| Шамили Иванова Семенова
_<1.
Запись: Н
Рис. 119. Форма в рабочем режиме
Возможно, что сначала пользователь увидит только большую иллюстрацию в заголовке формы и часть области данных. В этом случае необходимо увеличить размеры окна формы так, чтобы все данные попадали в окно. Если данные все же не вмещаются в отведенные рамки, с помощью вертикальной линейки прокрутки сместитесь вниз к подчиненной форме, чтобы увидеть связанные данные. Во время перемещения верхняя часть области данных переместится под заголовок формы, последняя же остается без изменений.
178
Проектирование баз данных. СУБД MS Access
Если формула вычислений в вычисляемом поле была введена правильно, то поле Общая цена должно содержать окончательную цену модели. Данные подчиненной формы представлены в табличной форме. Здесь можно найти всех клиентов, которые заказали модель, представленную в главной форме. С помощью горизонтальной линейки прокрутки можно просмотреть все колонки этой таблицы, а с помощью вертикальной - все записи, Примечание. Посредством команды Таблица из меню Вид или с помощью щелчка на третьей пиктограмме слева в строке пиктографического меню можно в любой момент включить табличное представление данных, выбранных из БД главной формы,
5. Редактирование формы Если пользователю понадобится внести в форму какие-либо дополнения или изменения, он может в любой момент перейти в режим проектирования формы. Для этого следует воспользоваться первой пиктограммой в строке пиктографического меню (пиктограмма с изображением угольника и карандаша) или установить опцию Конструктор форм в меню Вид. Вносимые при этом изменения будут сразу же актуализироваться.
5.1. Добавление кнопки Попробуем дополнить проект формы. Встроим в форму кнопку, с помощью которой в любой момент можно будет переключиться на диаграмму Структура цен (не используя обходной путь через окно БД). Такая возможность может пригодиться, например, при просмо'фе имеющихся заказов на «Corolla Kombi», если необходимо определить соотношение цен на разные модели. Достаточно будет нажать эту кнопку, чтобы диаграмма появилась на экране. При проектировании кнопки пользователь должен сообщить Access, какую функцию будет выполнять данная кнопка. Необходимо написать макрос, реализующий эту фз'нкцию. Создадим очень простой макрос только для того, чтобы показать, как приписать нужное действие некоторой кнопке.
Тема 5. Формы
174
5.2. Написание макроса Прежде всего закройте форму, выполнив двойной щелчок на кнопке вызова управляющего меню, и вернитесь в окно БД. Щелкните на кнопке Макросы для перехода к группе объектов «макросы» и затем на кнопке Создать для создания нового макроса. Впрочем, форму можно оставить и открытой на заднем плане, а из меню Вставка выбрать команду Макрос. Access откроет окно макроса. На рис. 120 представлен уже готовый макрос в этом окне. в Манрос1 : манвос. F ОткрытьФорчу
Аргументы макрокоманды Имя Режим Имя фнгьтра Условие отбора
Структура цен Форма
Режим окна
Обычное
Н359ПЕНЭ
Рис. 120. Готовый макрос
Опишем процесс создания макроса. 1. Выполните щелчок в первой пустой строке колонки Макрокоманда - в ней записываются выполняемые макросом действия (макрокоманды) - и нажмите манипулятор раскрытия списка. Развернется список всех встроенных макрокоманд и операций, доступных для использования в качестве элементов (действий) создаваемого макроса. С помощью линейки прокрутки переместитесь до макрокоманды Открыть форму и выберите ее. Имя макрокоманды появится в строке колонки Макрокоманда. 2. В поле Имя формы выберите из списка форму Структура цен либо введите имя формы в строку с клавиатуры. 3. В меню Режим установите опцию Форма, поскольку диаграмма должна быть открыта в режиме формы.
180
Проектирование баз данных. СУБД MS Access
4.
В поле Режим данных укажите, для какой цели открывается данная форма. Если в нее необходимо ввести новые данные, из списка следует выбрать опцию Добавление, для обработки имеющихся или добавления новых записей выберите опцию Правка, если же форму нужно всего лишь просмотреть, следует маркировать элемент Только чтение. 5. В поле Резким окна выберите опцию Обычное. 6. Сохраните макрос посредством команды Сохранить меню Файл под именем Открытие диаграммы. 7. Закройте окно макроса и из окна БД откройте форму Заказы в режиме проектирования. Если окно макроса бьшо открыто без закрытия окна формы, закройте проект макроса, после чего произойдет автоматический возврат в режим проектирования формы. 5.3. Добавление кнопок Макрос подготовлен, и теперь в форму можно вставить кнопку. Сначала необходимо продумать, в каком месте формы ее лучше всего разместить. Кнопка должна быть хорошо видна и не должна теряться среди полей и других управляющих элементов. Хорошо бьшо бы поместить ее в область примечаний формы, поскольку область данных формы уже достаточно заполнена. С помощью линейки прокрутки переместитесь в область примечаний формы. Затем выполните щелчок на пиктограмме создаваемой кнопки в панели элементов и разместиге указатель мыши в области примечаний формы приблизительно посредине экрана. Отпустите кнопку мыши, и на экране появится пронумерованная кнопка. Теперь этой кнопке необходимо присвоить имя и связать с ней некоторое действие. Для этого следует выполнить на созданной кнопке двойной щелчок, после чего откроется окно свойств. Установите следующие значения для характеристик кнопки: Характеристика
Имя
Надпись Нажатие кнопки
Значение
Взгляд на диаграмму Просмотреть структуру цен Открытие диатраммы
Тема 5. Формы
Закройте окно свойств. Маркируйте создаваемую кнопку и увеличьте ее размер с помощью правого нижнего размерного манипулятора так, чтобы на ней смог полностью поместиться текст, заданный в характеристике Надпись (рис. 121).
mm
'f. Заказы моделей Corolla; форма
• 13 • I • 14 • t . 15.
I
•* Заголовок формы * Область данных Код модели
М мепь
«•aremj |Мош мостьпенгателя
КорБВ
|К.оро6иа передач
Рис. 121. Кнопка в проекте формы
Перейдите в режим работы с формой и сразу же проведите испытания кнопки. Проверьте, откроет ли Access диаграмму цен после щелчка на новой кнопке в подстрочнике формы. 5.4. Создание кнопки Назад Итак, мы добились желаемой цели - попали в диаграммную форму. Но теперь нам необходимо вернуться назад к исходной форме.
182
Проектирование баз данных. СУБД MS Access
Один из возможных способов возврата заключается в переключении на форму Заказы через меню Окно. Этот способ имеет существенный недостаток: окно диаграммы остается открытым на заднем плане и скорость обработки данных замедляется. Нет необходимости держать окно диаграммы открытым, ведь, чтобы получить к нему доступ, достаточно всего лишь нажать кнопку Просмотреть структуру цен. Второй способ возврата заключается в создании дополнительного управляющего элемента в форме Структура цен; кнопки, посредством которой диаграммная форма будет закрыта и произойдет возврат к исходной форме. Для связывания таких действий с новой кнопкой необходимо создать соответствующий макрос. Он будет не сложнее первого. В разделе Макросы окна БД нажмите кнопку Создать. Access откроет уже знакомое вам окно проектирования макроса. Введите в окно следующие значения: Параметр Макрокоманда Тип объекта Имя объекта
Установка
Закрыть
Форма Структура цен
Затем сохраните макрос под именем Закрыть форму и закройте окно макроса. В диаграммной форме перейдите в режим проектирования. Выведите на экран панель элементов (опция Панель элементов меню Вид) и выполните щелчок на пиктограмме создания кнопки. Позиционируйте указатель мыши в области данных формы в верхнем правом углу и выполните щелчок. На экране появится изображение новой кнопки. Теперь займитесь установкой параметров нового управляющего элемента. Откройте окно свойств двойным щелчком на создаваемой кнопке и введите следующие значения характеристик: Характерном ика
Имя Надпись
Нажатие кнопки
Значение Закрытие диаграммы Назад Закрыть форму
Закройте окно свойств. Проект диаграммы выглядит теперь так, как показано на рис. 122.
Тема 5. Формы
L83 Структура цен моделей Согова
9 Corolla Combi • Corolla CompactGT LJ Corolla CompactXP i ; Corolla UfibackGTj • Corolla LifibacbXL
Рис. 122. Диаграмма с кнопкой назад
Немного увеличьте размер кнопки по вертикали, чтобы сделать ее более пропорциональной. Затем сохраните изменения, произведенные в проекте формы. Останется проверить созданную кнопку в действии. Перейдите в режим формы и щелкните на кнопке Назад. Access закроет диаграмму и осуществит возврат в исходную точку. Теперь форма готова окончательно и можно проверить все операции. Щелкните на кнопке Посмотреть структуру цен, откроется диаграмма в режиме формы. Щелчок на кнопке Назад приведет к закрытию окна диаграммы и возврату к форме Заказы. Если читатель следовал приведенным выше инструкциям, проблем возникнуть не должно. 5.5. Создание кнопок с помощью мастера Кроме описанного выше способа создания кнопок с помощью макрокоманд, существует более простой способ. Кнопки можно создавать, используя мастер по разработке кнопок. Чтобы подключить мастер к созданию кнопки, необходимо активизировать пиктограмму Мастера элементов управления на панели элементов. Повторим процесс создания кнопки вызова диаграммы с помощью мастера по созданию кнопок. После нажатия кнопки Командная кнопка на панели элементов установите указатель в то место формы, где будет расположена кнопка (например, в область заголовка формы рядом с рисунком автомобиля), и нажмите кнопку мыши.
Проектирование баз данных. СУБД MS Access
IM
На экране появится первое диалоговое окно Создание кнопок (рис. 123). В нем пользователю будет предложен список категорий действий, которые могут программироваться ,цля проектируемой кнопки, и список действий, возможных для выбранной категории. Так как мы работаем с формой (хотим ее открыть), из списка в левом окне Категории выберите строку Операции с формой, а в списке Действия маркируйте строку Открытие формы и нажмите кнопку Далее. Создание кнопок Выберите дейстеие, которое будет выпэлнятьсй при нажатии кнопки. Каждая категория содержит собственный набор действий. Действия: Терехсды по записям Обработка записей
Закрыть форму Изменить фильтр формы Обновить данные формы дткрьпь страницу Печать текущей формы Печать фермы Применить фильтр формы
Отмена
Рис. 123. Выбор типа действия
В следующем окне (рис. 124) из списка доступных форм, выведенного на экран, выберите форму, которая будет открыта при нажатии кнопки. В нашем случае это диаграмма Структура цен. Нажмите кнопку Далее. Мастер по разработке кнопок откроет следующее окно (рис. 125), в котором предложит пользователю выбрать, что разместить на кнопке - текст или рисунок. Выберем кнопку Рисунок и подберем подходящий рисунок для проектируемой кнопки. По умолчанию в качестве образца выводится пиктограмма Формы. Установите опцию Показать все рисунки и выберите из предоставленного списка рисунок с именем Диаграмма. Нажмите кнопку Далее и задайте название для кнопки. После нажатия кнопки Готово мастер завершит свою работу и вернет управление конструктору форм.
Тема 5. Формы
185
Создание кнопок Выберите форму, открываемую нажатием данной кнопки.
Заказы моделей СогоЛа Клиенты Клиенты подчиненная ферма Оборудование Оборудование,1 Табличная
Отмена
< Цаээд
|
Далее >
Готово
Рис. 124. Выбор формы Создание кнопок Что необходимо разместить на кнопке' Введите текст или выберите нужньй рисунок. Для поиска рисунка на диске воспользуйтесь кнопкой "Обзор". С Текст: (Г Рисунок:
[Открыть форму Граница (6 пунктов) Граница (с веря тонка я) Грустное лицо Дискета (S..25) [Заказать все рисунки
Отмена
< Назад
Готово
Рис. 125. Оформление кнопки
Необходимо отметить некоторые различия между приведенными способами создания кнопок. Если для «ручного» способа характерно использование макросов, то при работе с мастером по созданию кнопок Access создает процедуру обработки событий Access Basic, которая выполняется тогда, когда в форме произойдет указанное событие. В данном случае это нажатие кнопки.
186
Проектирование баз данных. СУБД MS Access
Откройте окно свойств данной кнопки. Щелкните на поле свойства Нажатие кнопки. При этом раскроется список, состоящий из строк Процедура Access Basic для обработки событий и Макрос. Оба данных параметра выполняют одну и ту же функцию - открытие диаграммы Структура цен. Для изменения содержимого процедуры или макроса необходимо нажать кнопку, находящуюся справа от списка параметров.
6. Печать формы Готовую форму Заказы желательно распечатать таким образом, чтобы на каждой странице располагалось по одной записи из главной формы, т. е. на каждую модель должно приходиться по одной странице. Прежде чем можно будет активизировать команду печати, следует внести некоторые коррективы в форму. Для этого необходимо вернуться в режим проектирования. Щелкните левой кнопкой мыши по свободному месту формы и в контекстном меню выберите пункт Свойства. Появится окно свойств формы. Для параметра Режим по умолчанию установите значение Одиночная форма, если оно не установлено по умолчанию. Закройте окно свойств. После этого выполните щелчок в любом месте области данных и вызовите окно свойств для данной области. В строке Конец страницы установите значение После раздела, чтобы после каждой записи главной формы при печати начиналась новая страница. Закройте окно свойств. Чтобы оценить распечатываемую страницу, перейдите в режим просмотра страницы. Это осуществляется либо с помощью команды Предварительный просмотр меню Файл, либо посредством щелчка на соответствующей пиктограмме (пиктограмма с изображением листа бумаги с лупой) в пиктографическом меню. Access отобразит на экране форму в том виде, в котором она будет представлена на распечатке (рис. 127).
Тема 5. Формы
187
if: 1аказимоделсм Corolla .
}t.-||Hj^f
|ИЯ».»ЧЯ1
ш
Заказы * (со г^шепн
|
Мощность двигателя Цвет
i'aiO
Ьсиель
[torolfa Combi
[Ю/ЗО
Коробка передач
JAnrtMaifroebii
Другое оснащение
[АЕГО ^ет use
Кэ.™честк:ав*оей |
4 Обивка
|Т<ань
— лТЙйЗ
Нзвесчэй 6ага*ник. разлв-^«н»1 крыша. j лекгроподъя-м ц
Р^в^рК 3Wft!s||J8S^
Злвеясхвя ягн
ffftW.ffft'. ff&rjfet то
\
Грат-лвртые ющер?а \ Прея/граллюма псагвгч | Г
lOEpaujei-l
/7-ЙЯГ
/Д^ОДСгевжиыюя
Иыя
_Н Госпоже Настасья ^Пгоспоже Настасья
|
I tflP.ffifp.
Огчесг о Кирилловна Ачатсльевна
|
Фэмнли Иванова Семенова
(Лгоспсдиь
d Зв™»»: 11-L.-.J 1
Г > IHJ»*) Н) 5
Рис. 126. Готовая форма с кнопкой Диаграмма
Рис. 127. Форма в режиме просмотра страницы
Проектирование баз данных. СУБД MS Access
188
Если детали формы желательно рассмотреть поточнее, поместите курсор мыши на страницу (он приобретет зид лупы) и выполните щелчок. Access увеличит изображение до натуральной величины. В результате повторного щелчка вы вернетесь к предыдущему отображению страницы, она будет видна целиком. Если внешний вид формы вас устраивает, можно выполнить щелчок на кнопке Печать или выбрать одноименную команду в меню Файл. В последнем случае появится диалоговое окно печати (рис. 128).
Принтер имя
состояние: Готов тип:
Panasonic KX-P6500
место:
LPT1:
заметки:
Г печать в файл Копии
Печатать
,
число копий:
1 ~ri
С страницы с: j <" выделение записи
Рис. 128. Диалоговое окно печати
В этом диалоговом окне можно установить, должны ли быть отпечатаны все записи (опция Все) или только отдельные из них (каждая запись на отдельной странице). В последнем случае >тсажите, от какой (поле с...) до какой (поле по...) страницы должна осуществляться печать. Кроме того, можно определить, следует ли направлять документ на принтер (по умолчанию) или в файл (опция печать в файл) и сколько экземпляров должно быть отпечатано (поле число копии). Произведите необходимые установки и запустите процесс печати, выполнив щелчок на кнопке ОК. Если форму распечатывать не нужно, то выйти из режима предварительного просмотра следует с помощью кнопки Отмена.
Тема 5. Формы
189
Контрольные вопросы 1. Какие типы форм существуют в Access? 2. Что такое главная форма и подчиненная форма? 3. Поясните термины «управляющий элемент» и «поле наименования», 4.
Оформите форму Информация о клиентах как самостоятельную, а не как подчиненную, по-новому разместив в ней поля и встроив в шапку формы Paint-иллюстрацию.
5. Какие управляющие элементы предлагает панель элементов? Испытайте элементы, которые не были описаны выше. 6. Как создаются вычисляемые управляющие элементы? 7. Придумайте несколько выражений, которые могли бы быть использованы в вычисляемых полях. 8. Какие возможности форматирования текста полей есть у пользователя? 9. Какие режимы представления формы доступны пользователю? 10. Как добиться того, чтобы при распечатке формы каждая запись размещалась на новой странице?
Задание 9 Для своей БД разработать формы: • • •
простые - для независимых таблиц (таблиц-справочников) нулевого уровня; составные - для связанных таблиц; главную кнопочную форму - для объединения форм, запросов и отчетов в одно приложение,
Тема 6 ОТЧЕТЫ Отчет оформляется в тех случаях, когда необходимо наглядно представить на экране или распечатать сводную информацию по БД. Для получения такой информации должны быть проведены подсчеты во всех группах данных, результатами которых будут общие и промежуточные суммы. По структуре и оформлению отчет подобен форме. В него также можно добавлять управляющие элементы и оформлять данные в соответствии с собственными вкусами (или требованиями заказчика). Отчет, однако, по сравнению с формой обладает большей гибкостью в представлении данных, и благодаря группированию данных с его помощью можно представить информацию более наглядно. Сконструируем проект отчета, позволяющего получить обзорную информацию по заказам. Из отчета можно будет быстро узнать, какую модель заказал тот или иной клиент. Обзорная информация из отчета даст возможность, к примеру, выяснить частоту продаж модели «Corolla Liftback GT» или дату поступления заказа от клиента Козлова. Прежде чем вывести отчет, необходимо пополнить записями таблицу Клиенты. Чтобы разрабатываемый отчет во время работы выглядел более реально, таблица должна содержать достаточное количество записей (например, десятка полтора). Для каждой модели, т. е. для каждого кода модели, придумайте еще по два-три клиента с новыми номерами заказов, уникальным адресом и датой заказа. Маркируйте таблицу клиентов в окне БД и щелкните мышью на кнопке Открыть. Access откроет таблицу в режиме заполнения, после чего в нее можно будет добавить новые записи. Каждую запись после завершения ввода Access автоматически сохраняет. После окончания работы с таблицей закройте ее и вернитесь в окно БД.
191
Тема 6. Отчеты
1. Создание отчета А теперь обратимся к отчету, который отражал бы текущее положение дел с заказами. Допустим, владельца фирмы интересует, хорошо ли идут дела по продаже автомобилей «Toyota» в России или же, наоборот, пора спасать положение. Выступая в роли руководителя отдела сбыта, попытайтесь подготовить для шефа необходимые сведения, оформив их в виде отчета с помощью средств Access. Новый отчет создается знакомым читателю способом: необходимо щелкнуть на кнопке Отчеты в окне БД и нажать кнопку Создать. В открывшемся диалоговом окне создания отчета Новый отчет (рис. 129) Access предложит задать таблицу, которая будет положена в основу отчета, и указать способ создания отчета. Посредством щелчка откройте комбинированный список таблиц и выберите таблицу Клиенты. Новый отчет
Автоматическое создание отчета из основе выбранных полей,
;-Автоотчат: в столбец |Аетоотчет: ленточный iМастер диаграмм (Почтовые наклейки
Выберите в качестве источника данных таблицу и пи запрос: 01
Отмена
Рис. 129. Окно создания отчета
Далее воспользуйтесь помощью мастера отчетов. По окончании работы созданный мастером отчет можно будет дополнить деталями и улучшить. Выберите строку Мастер отчетов, и на экране появится первое окно (рис. 130) из серии диалоговых окон мастера отчетов.
Проектирование баз данных. СУБД MS Access
192 Создание отчетов
п
Выберите norm для отчета. Допускается выбор нескольких таблнц или запросов.
Таблицы и запросы Таблицам Клиенты Доступные поля:
Выбранные поля:
Обращение
<од модели Фамилия
• !
Отчее г во Почтовый адрес Почтовый индекс Населенный пункт Теле_фзн
Отмена
Готово
Рис. 130. Выбор нолей для отчета
На первом этапе необходимо задать поля, которые должны появиться в отчете. Выберите следующие поля в заданной последовательности: •
Код модели.
•
Фамилия.
•
Дата заказа.
Чтобы переместить поле из левого списка (Доступные поля] в правый список (Выбранные поля), необходимо маркировать имя поля в левом списке и нажать кнопку со стрелкой вправо (>). Если поле было выбрано ошибочно, то необходимо маркировать удаляемое поле в правом списке и нажать кнопку со стрелкой, указывающей в обратном направлении (<). Чтобы переместить из одного списка в другой все поля, щелкните на одной из кнопок с двойными стрелками (» или «). После того как все названные поля окажутся в правом списке и будут расположены в указанной последовательности, щелкните на кнопке Далее, откроется следующее диалоговое окно мастера (рис. 131).
Тема 6. Отчеты
L93
Создание отчетов Добавить уровни группировки?
Фамилия, Дата
Дата заказа
Уровень
_J
Группировка...
Отмена
<Йазад
\
Дапее>
Готово
Рис. 131. Группирование данных
Преимущество отчетов по сравнению с формами в отношении представления сводной информации заключается в возможности группирования данных, что значительно улучшает структурированность документа. Данные в отчете должны быть сгруппированы по Кодом моделей, благодаря чему можно будет при актуализации сразу же выяснить, сколько экземпляров каждой модели действительно было заказано к настоящему моменту. В следующем диалоговом окне мастер отчетов предложит именно такое группирование на основе анализа данных таблицы Клиенты. В этом окне мастеру отчетов необходимо сообщить, по каким полям должно быть произведено группирование. Данные в отчете можно группировать не более чем по трем полям. Рассмотрим пример. Представьте себе большую и действительно полную таблицу клиентов. В ней представлен весь ассортимент продукции и содержатся сведения не только о модели «Corolla», но и о моделях «Carina» и «Tercel» всех возможных модификаций. Кроме того, некоторые клиенты в течение одного года могут заказать несколько автомобилей. Так, преуспевающий владелец адвокатской конторы мог бы приобрести для своих сотрудников несколько фирменных автомобилей, соответствующих их должности. Ведущие сотрудники, к примеру, получат представительские автомобили высокого класса, а помощники адвокатов будут довольствоваться скромными малолитражками.
194
Проектирование баз данных. СУБД MS Access
Принимая во внимание объем БД клиентов и характер хранимой информации, данные имеет смысл группировать по трем уровням. Сначала следует произвести группирование по фамилиям клиентов, чтобы свести воедино в отчете все заказы одного клиента. В рамках заказов одного клиента целесообразно произвести группирование по моделям автомобилей. Это будет группирование второго уровня. Тогда все модели «Corolla» или «Carina», которые заказал клиент, например господин адвокат профессор Кони, будут стоять в отчете рядом. И наконец, на третьем уровне в рамках рядов моделей можно произвести группирование по параметрам этих моделей, например по мощности двигателя или объему салона. Тогда позднее с первого взгляда можно будет понять, сколько автомобилей «Corolla Compact» и сколько «Сого//д»-лимузинов заказал указанный клиент. Таблица, которую мы используем в качестве примера, к сожалению, содержит слишком мало записей, чтобы можно было произвести столь сложное группирование. Кроме того, в нее внесены сведения только по моделям Corolla. Поэтому целесообразно сгруппировать данные по кодам моделей, чтобы собрать в одной группе все заказы по каждой из моделей. Мастер отчетов уже предложил подобное решение и отобразил в правой части окна представление группирования отчета. Если требуется большая детализация, следует из левого списка полей выбрать поле для следующего уровня группирования и перенести его в правый список. Уровни группирования можно изменить, используя кнопку Уровень. Чтобы выбрать способ группирования, нажмите кнопку Группировка. Щелчок на кнопке Далее приводит к открытию следующего диалогового окна (рис. 132), в котором следует установить уровень сортировки данных. Access автоматически сортирует данные по группирующим полям (в рассматриваемом случае по полю Код модели). Если записи в рамках группы должны быть дополнительно рассортированы и по другим полям, то эти поля необходимо указать в окнах уровней сортировки (4 поля). В нашем примере можно произвести сортировку по полю Фамилия. Выберите его в поле списка первого уровня сортировки. Направление сортировки указывается с помощью кнопки, расположенной справа от поля, ее следует нажать для изменения направления сортировки. Произведя все установки, нажмите кнопку Далее.
Тема 6. Отчеты Создание отчетов те порядок сортировки гаписаи, Допускается сортировка записей по возрастанию или по убыванию, включающая до 4 попей.
I
Z
3
* по возраст анию
..I
Рис. 132. Выбор порядка сортировки данных В следующем окне (рис. 133) мастер предлагает использовать один из макетов для создания отчета. После выбора одного из вариантов представление примера отчета в уменьшенном виде будет отображено в левой области диалогового окна. Переключателем Настроить ширину полей для размещения на одной странице определяется автоматическое изменение размеров полей так, чтобы все они помещались на выбранном листе. Создание отчетов Выберите вид макета для отчета. Ориентация
Макет *•" [ступенчатый
*•" книжная
*"" ЁЛОК
*~ альбомная
г
^РУктура!
Г структура 2 (~ QO левюту краю 1 Г~ по левому краю 2
Настроить щнрину попвй для размещения на одной странице,
Отмена
< Назад
|
Далее >
]
Рис. 133. Выбор вида макета для отчета
Готе
Проектирование баз данных. СУБД MS Access
196
В следующем окне (рис. 134) мастер предоставляет пользователю возможность выбрать один из стандартных стилей оформления отчета. После выбора одного из вариантов представление отчета в уменьшенном виде будет отображено в левой области диалогового окна. Для нашего примера выберите стиль Деловой, нажмите кнопку Далее в последний раз и присвойте отчету имя (рис. 135). Создание отчетов Выберите требуемый стиль.
Обычный Полужирный Сжатый Спокойный Строгий
Отмена
< Назад
I
Далее >
I
Готово
Рис. 134. Выбор стиля оформления отчета Создание отчетов Задайте имя отчета: [обэорзжазов!
Ук««иы есе сведения, необходимые дся создания Отчета с помощью мастеря. Дальнейшие действия: " Просмотреть отчет. *~ И>"е№'ть «зкет отчета.
I
Вывести справку по работе с отчетом?
Рис. 135. Назначение имени отчета
Тема 6. Отчеты
197
В поле Задайте имя отчета Access по умолчанию введет имя таблицы, на основе которой создается отчет. Возможно, пользователь сочтет это имя подходящим для отчета. В рассматриваемом примере в этом поле будет стоять имя Клиенты. Но более подходящим для сконструированного отчета будет имя Обзор заказов. Чтобы увидеть внешний вид отчета, следует выполнить щелчок на кнопке Просмотр отчета. Выполнение отчета займет некоторое время, зависящее от сложности проекта и объема базы. Наш отчет состоит только из трех полей и содержит не слишком много данных. Однако пройдет некоторое время, прежде чем результат появится на экране (рис. 136).
Обзор }аказов
- .• -
Рис. 136. Отчет в режиме предварительного просмотра
При этом в статусной строке будут отображаться сведения о выполняемых Access этапах генерации отчета. После того как составление отчета завершится, разверните окно отчета до полноэкранного представления, чтобы можно было увидеть наибольшую часть страницы отчета. С помощью линейки прокрутки можно перемещать окно над листом отчета,
198
Проектирование баз данных. СУБД MS Access
Примечание. Выполнив щелчок в любом месте страницы отчета (указатель мыши, попадая в область, страницы отчета, приобретает вид лупы), его можно отобразить в уменьшенном формате: будет видна целая страница, причем она будет выглядеть точно так же, как и на распечатке. В готовом отчете в области нижнего колоыгитула автоматически устанавливается дата генерации. Сам же отчет имеет вид таблицы: имена полей приведены под строкой заголовка и отделены от нее и от данных жирной разделительной линией. Группы строк, начинающихся кодом некоторой модели, содержат списки клиентов, которые заказали данную модель. Там же приведены даты заказов. Сохраните отчет с помощью команды Сохранить из меню Файл под подходящим именем, например Отчет о заказах или Обзор заказов.
2. Доработка отчета Каркас отчета готов, осталось лишь слегка его доработать. Сначала вставим фирменный знак Toyota, а затем изготовим подотчет и встроим его в главный отчет. Для этого перейдем в режим конструирования отчета. Если вы все еще находитесь в режиме предварительного просмотра страницы, то следует выполнить щелчок на кнопке Закрыть, и Access вернется в режим проектирования. Если отчет уже закрыт и был выполнен возврат в окно БД, то имя отчета следует маркировать и затем щелкнуть на кнопке Конструктор. 2.1. Области отчета Прежде чем приступить к доработке проекта отчета, внимательно ознакомьтесь с его структурой (рис. 137). Любой отчет содержит несколько областей, каждая из которых обладает вполне самостоятельными функциями. Разделение отчета на области позволяет автоматизировать его оформление. Функции каждой области наиболее ярко проявляются в многостраничных отчетах. Ниже приведен краткий обзор областей, доступных для использования в Access-отчетах.
19')
Тема 6. Отчеты
2.1.1. Заголовок отчета Заголовок отчета появляется только один раз в начале перед верхним колонтитулом на первой странице отчета. В данный момент в заголовке нашего отчета находится текст Обзор заказов. .Обэос заказов ; отчет
Рис. 137. Отчет в режиме конструирования
2.1.2. Верхний колонтитул Верхний колонтитул страницы появляется по умолчанию на каждой странице отчета. Его появление можно заблокировать на страницах, содержащих шапку или резюме отчета. Обычно в верхнем колонтитуле располагаются заголовки колонок (речь идет об отчете, представленном в табличной форме). В нашем отчете в верхнем колонтитуле также стоят заголовки колонок, а точнее, имена полей Код модели, Фамилия и Дата заказа. 2.1.3. Заголовок группы Заголовок группы всегда появляется в начале новой группы. Группа записей данных определяется общностью значений в группирующем поле. Например, если данные были сгруппированы по полю Код модели, то в заголовке группы стоит значение этого поля для всех записей, включенных в данную группу (оно у них у всех одно и то же). В заголовке первой группы находится код модели 12410, в заголовке второй - код модели 12579 и т. д. На проекте отчета заголовок группы описывается именем группы со словами Заголовок группы. На нашем отчете этот заголовок имеет вид Заголовок группы «Код модели».
200
Проектирование баз данных. СУБД MS Access
2.1.4. Область данных Область данных обычно содержит основную часть данных отчета. Элементы этой области повторяются для каждой выбранной из таблицы записи. В области данных нашего отчета находятся данные, взятые из полей Фамилия и Дата заказа. Примечание. Подробнее об управляющих и оформительских элементах, их назначении и свойствах можно прочитать в теме 5, посвященной формам. 2.7.5. Примечание группы Примечание группы появляется в конце группы записей. Оно применяется преимущественно для указания числа записей или суммы полей группы. Так, если отчет содержит в рамках группы данные, например, о стоимостях заказов, то в примечании группы может отражаться суммарная стоимость всех заказов группы. В нашем отчете примечание группы отсутствует. На проекте отчета примечание группы описывается именем группы со словом Примечание группы. На нашем отчете - Примечание группы «Код модели». 2.1.6. Нижний колонтитул Нижний колонтитул появляется на каждой странице отчета. Чаще всего его используют для отображения номеров страниц. По умолчанию мастер отчетов вводит в нижний колонтитул функцию =Page. Если отчет содержит достаточно много записей и занимает несколько страниц, то отдельные его страницы будут автоматически пронумерованы. Кроме того, мастер отчетов также вводит в нижний колонтитул выражение ~Now(). Это выражение во время генерации отчета заменяется текущей датой (т. е. датой генерации), 2.1.7. Примечание отчета Примечание отчета появляется только один раз в конце отчета и может содержать некоторую сводную, резюмирующую информацию обо всем отчете. Примечание отчета является последней областью проекта отчета, но при печати появляется перед нижним колонтитулом последней страницы.
Тема 6. Отчеты
201
Теперь, разобравшись с назначением всех областей отчета, вы можете попытаться применить полученные знания на деле и улучшить внешний вид своего отчета. 2.2. Создание и внедрение фирменного знака Первым делом изготовим фирменный знак Toyota и встроим его в шапку отчета, он должен появиться в отчете в начале первой страницы. Связать готовый логотип с Access-отчетом можно знакомым вам способом (мы уже связывали иллюстрацию с формой). Однако чтобы созданная связь могла нормально функционировать, необходимо выполнить перечисленные ниже условия. 1. Логотип должен быть создан с помощью программы, которая поддерживает OLE-интерфейс (например, CorelDRAW! или Paint). 2. Объекты должны быть сохранены в файлах родительской прикладной программы. При использовании внутреннего связывания среди полей таблицы должно присутствовать OLE-поле, хранящее связываемый объект. Так как таблица Клиенты не содержит OLE-поля, следует установить связь с внешним объектом. Сначала изготовим фирменный знак Toyota в программе Paint (в стандартном графическом редакторе Windows) и сохраним его в файле. Затем готовый рисунок свяжем с Access-отчетом. Если позднее фирменный знак будет изменен, например фирма Toyota захочет создать себе совершенно новый имидж, то, чтобы отчет всегда соответствовал текущему положению дел, нам нужно будет только изменить логотип с помощью программы Paint. Такой способ оформления имеет преимущества тогда, когда эмблему фирмы нужно связать не с одним, а с несколькими отчетами и/или формами. Можно, однако, ограничиться просто встраиванием логотипа в отчет. Именно этот вариант мы и рассмотрим. 2.2.1. Создание фирменного знака С помощью кнопки Пуск, расположенной на панели задач Windows, разверните стартовое меню и активизируйте подменю Программы, а в нем - подменю Стандартные и запустите программу Paint. Откроется пустое окно для рисования. Если вам не знаком оригинальный фирменный знак Toyota или вы не можете вспомнить его в точности, посмотрите на рис 138.
Проектирование баз данных. СУБД MS Access
202
" Псэммнннмй - Paint йп
Правка
Вил Рисунок
Палитра
Справка
Г* А
\ г
гвшнн
ГГВГГ?ГИШГГч~ИИГ
Дня получетв травки выберите ксвинду "Вызов 230,12
Рис. 138. Фирменный знак Toyota в окне программы Paint
Знак Toyota состоит из окружности с двумя вписанными в нее эллипсами, образующими букву Т (рис. 138). Как окружность, так и оба эллипса рисуются с помощью инструмента для рисования окружности из списка инструментов рисования, находящегося на левом краю экрана. Щелкните на кнопке с пиктограммой окружности и нарисуйте окружность (фактически необходимо протянуть главную диагональ описанного прямоугольника). Затем снова выполните щелчок на кнопке этого инструмента и нарисуйте первый (вытянутый вертикально) эллипс внутри окружности. После еще одного щелчка на кнопке с пиктограммой окружности нарисуйте второй эллипс, вытянутый по горизонтали. Толщина линии выбирается по образцам в левом нижнем углу окна Paint, а цвет - в палитре в нижней части окна. Убедитесь, что окружность действительно круглая, а большие полуоси эллипсов расположены перпендикулярно. Если с первого раза не все получилось, не отчаивайтесь. Неправильно начерченные линии или другие элементы всегда можно удалить, используя «ластик» (его пиктограмма находится справа в третьем ряду инструментов). Если знак Toyota готов, сохраните его с помощью команды Сохранить из меню Файл под именем Toyota.bmp,
Тема 6. Отчеты
203
2.2.2. Внедрение фирменного знака А теперь приступим к внедрению фирменного знака. Применим несколько отличную от уже знакомой по формам процедуру внедрения. Для начала маркируем в окне Paint логотип, воспользовавшись инструментом Выбор. Выбрав этот инструмент, следует прочертить главную диагональ маркировочного прямоугольника, охватывающего логотип. Затем надлежит выбрать из меню Правка команду Копировать. Окно Paint должно оставаться открытым при установлении связи. Поэтому вернитесь в окно программы Access, используя панель задач или комбинацию клавиш [Alt + Tab]. Если перед переходом в окно Paint отчет не был закрыт, то автоматически произойдет возврат к проекту отчета. Выполните щелчок в заголовке отчета, поскольку именно там должен быть помещен логотип. Выберите из меню Правка в окне Access команду Специальная вставка. В открывшемся диалоговом окне уже находится имя внедряемого Paint-рисунка с указанием полной спецификации файла. Активизированная селекторная кнопка Вставить указывает на то, что рисунок будет встроен в отчет и что для внесения изменений следует двойным щелчком на внедренном объекте вызвать родительскую программу. После внесения изменений управление передается конструктору отчета. Выполните щелчок на кнопке ОК, и фирменный знак будет вставлен в область заголовка проекта отчета. Этот объект следует маркировать посредством щелчка и перетащить вправо так, чтобы знак не закрывал заголовок отчета (рис. 139). Если вы хотите оценить внешний вид отчета, перейдите в режим просмотра страницы. Для этого следует либо выполнить щелчок на пиктограмме с изображением лупы, либо в меню Файл выбрать команду Предварительный просмотр. Заголовок отчета получится довольно большим (рис. 140): фирменный знак займет много места. Но это хорошо, потому что каждый, кто возьмет отчет в руки, сразу поймет, о чем идет речь. Итак, процесс связывания успешно завершен и можно закрыть окно Paint, которое все еще отображается на заднем плане. С помощью комбинации клавиш [Alt + Tab] переключитесь в программу Paint и дважды щелкните мышью на кнопке вызова управляющего меню, а затем, вернувшись назад в окно Access, не забудьте сохранить измененный проект отчета.
Проектирование баз данных. СУБД MS Access
204 Обзор заказов : отчет
• я • t • и • i • в • " • к • 1 - я • i - w • 1 • IT • i • а
Обзор заказов
Рис. 139. Фирменный знак в проекте отчета
Обзор заказов
Рис. 140. Фирменный знак в режиме просмотра страницы
Тема 6. Отчеты
205
2.3. Ввод названия фирмы в нижний колонтитул В отчете должно присутствовать название фирмы, чтобы просматривающий его смог понять, что имеет дело с представительством Toyota в России. Попробуйте решить самостоятельно, куда следует вставить соответствующую надпись: в резюме отчета или в нижний колонтитул. Если название будет стоять в резюме отчета, оно появится только один раз в конце отчета; если же его поместить в нижний колонтитул, то оно будет отпечатано на каждой странице. Нам представляется целесообразным поместить название фирмы в нижнем колонтитуле. Перейдите в режим проектирования отчета и убедитесь в том, что панель элементов отображается на экране. Если ее нет, вызовите панель на экран, установив опцию Панель элементов в меню Вид. Посредством вертикальной линейки прокрутки переместитесь вниз до нижнего колонтитула страницы. Для начала необходимо освободить место для ввода надписи, перенеся элемент с выражением =Now() в область заголовка. В правой части нижнего колонтитула уже стоит функция для распечатки номера страницы. Выполните щелчок на пиктограмме поля наименования в панели элементов, расположенной вверху слева (пиктограмма с изображением стилизованной литеры А). Установите указатель мыши слева в нижнем колонтитуле и щелкните в том месте, где должна быть вставлена надпись. Access индицирует крошечный прямоугольник с мерцающим курсором ввода. Поле будет увеличиваться по мере ввода текста с клавиатуры; его размер автоматически согласуется с размером надписи. Введите следующее название: Представительство Toyota в России (рис. 141). При печати отчета это название будет выводиться в конце каждой страницы. Можно перейти в режим просмотра страницы, чтобы увидеть, как будет выглядеть название фирмы в нижнем колонтитуле отчета.
3. Проектирование и встраивание подотчета В каждый отчет можно встроить другие отчеты (подотчеты), чтобы пояснить или дополнить содержащуюся в главном отчете информацию.
206
Проектирование баз данных. СУБД MS Access
Рис. 141. Название фирмы в нижнем колонтитуле Встроим в отчет Обзор заказов подотчет, в котором будет приведена точная информация о цене моделей. Отчет Обзор заказов станет главным. В подотчет же будет включена информация о ценах рассматриваемой в данный момент модели. Благодаря этому для каждой модели можно будет быстро узнать заводскую (нетто) и продажную (брутто) цену, включающую 15 % налога на добавленную стоимость. 3.1. Проектирование подотчета Прежде чем главный отчет и подотчет можно будет объединить и установить между ними отношение подчинения, необходимо спроектировать подотчет в виде самостоятельного обычного отчета. Для этого следует поступить точно так же, как ранее при создании отчета Обзор заказов. Снова обратитесь к поддержке мастера отчетов и следуйте приведенным ниже >казаниям.
207
Тема 6. Отчеты
• • • •
Новый отчет должен базироваться на таблице Предлагаемые модели. Следует выбрать создание сгруппированного отчета. Отчет должен содержать поля Код модели, Модель и Заводская цена, Отчет должен быть сгруппирован по полю Код модели.
•
Данные в отчете следует сгруппировать с помощью опции Обычный, т. е. в группу объединятся все записи с одинаковыми значениями в заданном поле.
•
Дополнительно следует провести сортировку по полю Модель.
•
Надлежит выбрать стандартную форму представления.
•
Отчету следует назначить заголовок Информация о ценах и открыть его в режиме предварительного просмотра.
Если все будет сделано правильно, готовый отчет должен выглядеть так, как показано на рис. 142.
Информация о ценах £ud.4oder*J
-Vfoftin
Залаваюя иепа
=-.,«.
КХОЯК
C«4,L.ib»yL
XHK-Kt
C^U^O,
нгюопс
c^.^«»
V9MKI
IZStL
г ччта
Рис. 142. Готовый подотчет
Каждая модель в подотчете будет представлена самостоятельной группой. В конце группы (в примечании) Access автоматически вычислит промежуточную сумму столбца Заводская цена. Так как каждая модель встречается один раз, промежуточная сумма
208
Проектирование баз данных. СУБД MS Access
равна цене за 1 шт. Вычисление промежуточной суммы целесообразно проводить тогда, когда сумма образуется из многих приведенных в группе записей. В примечании отчета стоит общая сумма всех промежуточных сумм из отдельных групп. Общая сумма содержит сведения о том, сколько стоят все модели вместе взятые. Access автоматически складывает цены, образуя промежуточные суммы, а затем промежуточные суммы складывает в общую сумму.
3.2. Добавление вычисляемого поля Заводская цена является продажной ценой без начислений (нетто). Однако в отчете необходимо дополнительно указать продажную цену (брутто), поручив ее автоматическое вычисление по каждой модели программе Access. Для этого в проект отчета следует ввести поле наименования и вычисляемое поле. Посредством кнопки Закрыть перейдите в режим конструирования. На рис. 143 представлен результат, к которому должен стремиться читатель: вычисляемое поле Продажная цена уже вставлено в отчет и содержит необходимую формулу, т, е. представлен готовый проект отчета.
Рис. 143. Вычисляемое поле в проекте: отчета
Чтобы можно было добавить вычисляемое поле, освободите для него место: отодвиньте правый край проекта отчета, захватив правую ограничительную линию и при нажатой кнопке манипуля-
Тема 6. Отчеты
„_^__
209
тора перетащив ее вправо. Согласуйте (выровняйте) ограничительные линии в шапке отчета и верхнем колонтитуле с остальной (расширенной) частью отчета, растянув их на необходимое расстояние вправо. Точное выполнение описанных ниже действий позволит вам правильно оформить отчет. В верхнем колонтитуле дважды щелкните на поле наименования Заводская цена, чтобы изменить содержащуюся в нем надпись. Появится окно характеристик, в котором для параметра Подпись поля следует ввести новое значение: Цена без начислений. Закройте окно свойств, выполнив двойной щелчок на кнопке вызова управляющего меню. На панели элементов активизируйте пиктограмму поля наименования (пиктограмма с изображением буквы А) и расположите надпись в верхнем колонтитуле справа от надписи Цена без начислений. Напишите в новом поле: Продажная цена — и поле автоматически примет необходимый для размещения этой надписи размер. На панели элементов активизируйте пиктограмму текстового поля (пиктограмма с изображением букв ab), расположенную справа от пиктограммы поля наименования, и, выполнив щелчок, вставьте поле в область данных справа от поля Заводская цена. Это поле должно быть вычисляемым. Двойным щелчком на созданном поле откройте относящееся к нему окно характеристик и введите следующие значения параметров: Имя элемента управления
Данные Формат Число десятичных знаков
Продажная цена
=[3аводская цена]*1,!5 Денежный Auto
В поле Данные находится формула вычислений. Формула всегда начинается со знака равенства (=). Имена полей заключаются в квадратные скобки. Звездочка (*) символизирует знак умножения, Число 1,15 задает величину налога на добавленную стоимость, составляющую 15 %. Поле Продажная цена рассчитывается как продажная цена без начислений (содержится в поле таблицы Заводская цена), умноженная на величину налога на добавленную стоимость. Закройте окно свойств. В резюме группы должна стоять промежуточная сумма продажных цен соответствующих групп. Формула для нее похожа
210
Проектирование баз данных. СУБД MS Access
на формулу суммы поля Заводская цена. Справа от промежуточной суммы нетто вставьте текстовое поле и откройте окно характеристик. В нем следует установить: Имя элемента управления Данные Формат Число десятичных знаков
Продажная цена =5ит([3аводс»:ая цена]*!, 15) Денежный Денежный
Вычисление суммы производится с помощью функции =Sum(). Суммируются продажные цены. Формула вычисления величины суммируемого элемента стоит в круглых скобках. Закройте окно свойств. Поскольку Access при проектировании отчета с помощью мастера отчетов автоматически выделяет жирным шрифтом промежуточные и общую сумму, выберите такое выделение для только что определенного поля, чтобы обеспечить единообразие. Маркируйте поле и в пиктографическом меню щелкните на кнопке с изображением буквы К. Переместитесь в примечание отчета. В нем уже находится выражение Общая сумма, а также формула суммы для поля Заводская цена. Справа от этого поля вставьте еще одно текстовое поле для вычисления общей продажной цены из промежуточных сумм отдельных групп. Откройте окно свойств и выполните следующие установки: Имя элемента управления Данные Формат Число десятичных знаков
Продажная цена =5ит([3аводская цена]*1, 15) Денежный Auto
Закройте окно свойств и назначьте шрифту этого поля жирное начертание. Подотчет готов. Перейдите в режим просмотра страницы, чтобы оценить результаты своих трудов (рис. 144). Access отобразит в отчете новую колонку Продажная цена, промежуточную сумму для каждой группы и общую сумму в самом низу отчета. Сохраните готовый отчет под именем Наши цены и, выполнив двойной щелчок на кнопке вызова управляющего меню, вернитесь в окно БД. В списке существующих отчетов вы обнаружите теперь и новый отчет Наши цены.
Тема 6. Отчеты
211
Информация о ценах Цена Sf,- наиисяашй
Сяк* a Lf*Ma.XL
Продажная цена
35700.0* Н 200,00В
Т ни|
Рис. 144. Отчет с вычисляемыми ценами брутто
3.3. Встраивание подотчета Для реализации намеченных планов вам осталось встроить отчет Наши цены в качестве подотчета в главный отчет Обзор заказов. Для этого откройте главный отчет в режиме конструирования, маркировав имя отчета в окне БД и выполнив щелчок на кнопке Конструктор. Переместите курсор мыши в шапку группы (рис. 145). Затем нажмите клавишу [F11], чтобы перейти в окно БД. Перетащите подотчет в ту область главного отчета, где вы хотите его разместить. Наиболее естественная форма связки отчет-подотчет достигается, когда подотчет вплотную прилегает к отчету в резюме главного отчета. При этом подотчет как бы «подвешен» к главному отчету. В нашем примере наряду с обзором заказов можно будет увидеть цены отдельных моделей «Corolla». Access вставит в примечание отчета элемент с именем Наши цены и соответствующее поле наименования. Чтобы вернуться в окно отчета и закрыть окно БД, следует выполнить щелчок мышью в любом месте главного отчета. Первым делом удалите поле наименования подотчета, оставьте только заголовок подотчета. Маркируйте поле наименования, которое немного перекрыто рамкой подотчета, и нажмите клавишу [Del]. Следите за тем, чтобы было удалено только поле наименования, но ни в коем случае не сам подотчет.
Проектирование баз данных. СУБД MS Access
212 Обзор эохааон; отчет
Обзор заказов
I If Верхний колонтитул - .
;—'——
ъ}&1.Ц
1^1:—:—"1~
'
'—J—^=—-[:
'VaawJua
- 4-г-—
J-
-J-
- -.
__J * Заготовок группы Ход гюдепн'
Кск> 1||Л?глЫ J *О6"^тьдд«д
d,»*™i
I
I
*^m'J
-^Ояран^кд " ф/F^ei А "и:
Прг<кпичиггк.^ьс1пв\ Tayataf Ркеии _| ^ Пртечанна отчета [ . I • ! • . • 1 • I • 1 • I • 4 • Г-'5 • I • 6
~
Z3 * Загопгвдк отчега
Информация о ценал Рис. 145. Подотчет в проекте отчета
Перейдите в режим просмотра страницы, чтобы оценить внешний вид спроектированного отчета с подотчетом (рис. 146). Примечание. Если позднее вы захотите доработать проект подотчета, достаточно будет выполнить двойкой щелчок на элементе-подотчете Наши цены, чтобы открыть отчет Наши цены в режиме проектирования. Чтобы увидеть всю страницу целиком в режиме просмотра страницы, выполните щелчок либо на кнопке Масштаб, либо в любом месте внутри страницы отчета. Access отобразит страницу в некотором масштабе (с уменьшением). С помощью манипуляторов листания страниц, расположенных в нижнем левом углу окна, можно осуществить постраничное листание вперед или назад. Можно также сразу переместиться к первой или последней странице. На счетчике страниц, расположенном между манипуляторами листания, можно видеть, на какой странице вы находитесь в данный момент. При необходимости отчет можно распечатать, нажав кнопку Печать. Затем следует вновь вернуться в режим конструирования с помощью кнопки Закрыть.
Тема 6. Отчеты
213
Информация о ценах
Рис. 146. Подотчет в главном отчете
Контрольные вопросы 1. В чем заключается отличие отчетов от форм? 2. Поясните процесс группирования данных по трем уровням. 3. Из каких областей состоит отчет и какие функции выполняют отдельные области? 4. Какие условия должны быть выполнены, чтобы пользователь смог осуществить связывание объектов? 5. Как встроить подотчет в главный отчет? 6. Как создать вычисляемое поле? 7. Что такое поле наименования и как оно создается? 8. Как внедрить рисунок в отчет? 9. Как создать отчет? 10. Для чего предназначены заголовок и примечание отчета, заголовок и примечание группы?
Задание 10 Для своего варианта задания создайте два-три отчета и покажите преподавателю в режиме предварительного просмотра.
Тема? СТРАНИЦЫ ДОСТУПА К ДДННЫМ Страницы доступа к данным представляют специальный тип веб-страниц, предназначенный для просмотра и работы через Интернет или локальную сеть с данными, хранящимися в БД Microsoft Access. Использование страниц доступа к данным для ввода данных аналогично использованию форм ввода данных: пользователь имеет возможность просматривать, вводить, редактировать данные в БД и удалять их из нее. Однако страницу можно использовать за пределами БД Microsoft Access, так как она хранится на диске в виде отдельного файла, что позволяет открывать ее с помощью Интернет-браузера Microsoft Internet Explorer. Это дает пользователям возможность обновлять или просматривать данные через Интернет или локальную сеть. Ниже показан внешний вид страницы доступа к данным, используемой для ввода и обновления информации о клиентах в таблице Клиенты (рис. 147). Данная страница создана с использованием мастера создания страниц доступа к данным. Вы можете создать такую же страницу, выбрав в главном окне БД кнопку Страницы, а в открывшемся списке - пункт Создание страницы доступа к данным с помощью мастера. Все шаги мастера по созданию страниц доступа к данным похожи на шаги при создании отчетов, рассмотренные ранее, потому не будем на них подробно останавливаться. После завершения работы мастера (при выборе на последнем шаге переключателя Открыть страницу) на экране будет отображена данная страница.
Тема 7. Страницы доступа к данным
215
3 Клиенты
Код полепи: Номер заказа: Обращение: I
Гнастасвя
Отчество;
> Киоилловна
Фамилия: Почтовый адрес:
|уп. Введенская, 15 ПОЧТОВ&РН индекс: Г"тз«вм Населенный (г. Рязань Телефон; Дата saKasai Скидка;
И
<
Клиенты 1иэ5
И*
Рис. 147. Страница доступа к данным
1. Составные части страницы доступа к данным Рассмотрим основные составляющие страниц доступа к данным. Их можно увидеть, если страница представлена в виде конструктора. В зависимости от вида конкретной страницы некоторые разделы могут отсутствовать. Основной текст - является главным элементом страницы доступа к данным в режиме конструктора. На странице доступа к данным, поддерживающей ввод данных, область основного текста используется для отображения информационного текста, элементов управления, присоединенных к данным, и разделов. Разделы -- используются для отображения текста, данных из БД, а также панелей инструментов. Существует два типа разделов, обычно используемых на страницах, поддерживающих ввод данных: Раздел заголовка группы и Раздел перехода по записям. Страница может также содержать разделы примечаний группы и подписей.
216
Проектирование баз данных. СУБД MS Access
Раздел заголовка и примечания группы - используются для отображения данных и вычисления итоговых значений. Раздел перехода по записям - используется для отображения кнопок перехода по записям для данного уровня группировки. Подписи - используется для отображения подписей полей и других элементов управления. Отображается непосредственно перед заголовком группы.
2. Разработка страниц доступа к данным различных типов Страницы доступа к данным разрабатываются в режиме конструктора в Microsoft Access. Разработка страниц доступа к данным аналогична разработке форм и отчетов: используется список полей, панель элементов, элементы управления и т. д. Способ разработки страницы зависит от ее предназначения.
2.1. Типы источников данных для страниц доступа к данным Страницы доступа к данным используют данные из БД Microsoft Access. Чтобы создать страницу, использующую данные одной из таких БД, необходимо подключить страницу к БД. При наличии открытой БД Microsoft Access создаваемая страница доступа к данным автоматически подключается к текуодей БД, путь к которой сохраняется в свойстве Строка подключения страницы доступа к данным. При просмотре страницы в Internet Explorer или в режиме страницы текущие данные из БД, являющейся источником данных, отображаются с использованием пути, определенного в свойстве Строка подключения. Если при разработке страницы доступа к данным БД находится на локальном диске, Microsoft Access использует локальный путь. В случае перемещения или копирования БД после окончания разработки страницы необходимо обновить значение свойства Строка подключения, указав путь к новому расположению. Вместо обновления данного свойства каждой страницы в БД по отдельности удобно создать файл подключения. В файле подключения сохраняется информация о подключении для страниц доступа к данным, которую могут использовать разные страницы.
Тема 7. Страницы доступа к данным
217
При открытии страницы доступа к данным, использующей файл подключения, страница читает этот файл и выполняет подключение к БД. Если после создания файла подключения БД перемещается или копируется в другое место, достаточно исправить сведения о подключении в файле подключения. Создадим файл подключения к нашей БД. Для этого в каталоге, содержащем нашу БД, создадим новый файл, например с именем Sample,udL Можно просто создать текстовый файл, а затем изменить его имя и расширение на указанные выше. UDL (Universal Data Link) - это файл универсального подключения к данным. Он позволяет осуществить подключение к БД, После открытия данного файла на экране появится окно Свойства связи с данными (рис. 148). Ч> Свойства связи с данными Поставщик данных Подключение ] Дополнительно | Все
]
Для подключенияданных ODBC укажите следующее: 1. Источник данным: f* Испольэоватьммяисточникаданных Обновить Г Использовать строку подключения
2. Для входа в сервер использовать Пользователь: Пароль: Г~ Пустой пароль
Г Разрешить сохранение пароля
3. Введите начальный каталог
•
Отмена
1
Справка
Рис. 148. Окно Свойства связи с данными
Это окно содержит несколько вкладок: Поставщик данных, Подключение, Дополнительно, Все. Раскроем вкладку Постав-
218
Проектирование баз данных. СУБД MS Access
щик данных. Она содержит список всех доступных на данном компьютере поставщиков данных (провайдеров). Для нашего примера выберем из списка двойным щелчком мыши строку Microsoft Jet 4.0 OLE DB Provider (рис. 149). ^ Свойства связи с данными Поставщик данных | Подключение [ Дополнительно \ Есе
|
Выберите подключаемые данные Поставщики OLE DB MedaCatalogDE OLE OB Provider MedaCatalogMeigedDB OLE DB Provider MediaCatalogWebDe OLE DB Ptovidei Microsoft ISAM 1Л OLE DB Provider Microsoft Jet 3.51 OLE DB Piovidei Microsoft Jet 4.0 OLE D8 Provider Microsoft OLE DB Provider For Data Mining Services Microsoft OLE DB Provider for Indexing Service Microsoft OLE DB Piovider for Internet PubEshing Microsoft OLE DB Provide; for ODBC Drivers Microsoft OLE DB Provider fa OLAP Services 8.0 Microsoft OLE DB Piovider for Oracle Microsoft OLE DB Provider for Outlook Search Microsoft OLE DB Provider foi SQL Server Microsoft OLE DB Simple Provider MSDataShape Поставщик OLE DB для служб каталогов
Далзе »
Рис. 149. Вкладка Поставщик данных
После этого автоматически откроется вкладка Подключение. На данной вкладке в поле Имя базы данных кеобходимо указать полный путь к нашей БД. Его можно ввести вручную или выбрать файл БД в стандартном диалоговом окне, нажав кнопку Обзор. После этого, чтобы проверить, все ли данные введены корректно, необходимо нажать кнопку Проверить подключение ниже на этой вкладке. Будет либо выдано сообщение об ошибке, либо сообщение «Проверка подключения выполнена» (рис. L50). Если все в порядке, то закрываем это окно нажатием кнопки ОК.
Тема 7. Страницы доступа к данным
219
Поставщик данных Подключение ! Дополнительно | See
j
Укажите сведения для подключения к данным Access: 1. Выберите или введите имя базы данных:
2. Введите сведения для входа в базу данных: Пользователь: JAdmin
Связь с данными (Microsoft) Проверка подключения выполнена.
Проверить подключение
Рис. 150. Проверка подключения
На этом процедура создания файла подключения для нашей БД завершена. Теперь при перемещении БД необходимо лишь заново указать путь к ней в окне Свойства связи с данными на вкладке Подключение, а изменения страниц доступа к данным не требуется. Это очень удобно при большом количестве их. Использование созданного файла доступа к данным для создания страниц доступа к данным мы рассмотрим далее. 2.2. Автоматическое создание страниц доступа к данным Воспользуемся мастером автостраниц для создания страницы доступа к данным, содержащей все записи и поля из таблицы или запроса. Используем для этого таблицу Предлагаемые модели. В окне БД выберите кнопку Страницы в списке Объекты. Затем на панели инструментов окна БД нажмите кнопку Создать. В появившемся диалоговом окне Новая страница доступа к данным выберите Автостраница: в столбец (рис. 151).
Проектирование баз данных. СУБД MS Access
220
Новая страница доступа к данным Конструктор Существующая веб-страница Мастер страниц Автсмагическое создание страницы доступа к данным с полями, расположенными в один столбец. Выберите в качестве источника данных таблицу или запрос:
^^иШИ
Лредпагаемые «одели Отмена
Рис. 151. Создание страницы доступа к данным Выберите таблицу или запрос, содержащие данные, на которых должна быть основана страница. В нашем случае это таблица Предлагаемые модели. Для создания страницы доступа к данным нажмите кнопку ОК. На готовой странице доступа к данным каждое поле будет располагаться в отдельной строке; слева от каждого из полей будет находиться его метка (рис. 152). (5 Предлагаемые модели
<од моцели: Моден*
Corolla LiftoackXL
Моацдасть
53/75
Цвет:
Красный торнадо
Коробке передвч: • ру чна я Количество
4
Обиыя.
: Ткань
Другое оснащение РаджнПлейер, раздвижная крыша
Заводская цена'
35700,00р.
"""asQjoop.
Транспортные Предпродажная Специальная
~ 105ЛОр. [~ Предлагаемые «одели 1 из 5
Рис. 152. Полученная страница доступа к данным
Тема 7. Страницы доступа к данным
221
Если получилась не та страница, которая была нужна, можно изменить страницу в режиме конструктора, как это сделать, будет описано далее.
2.3. Создание страницы доступа к данным с помощью мастера страниц Для создания страниц доступа к данным с помощью мастера в окне БД выберите кнопку Страницы в списке Объекты, затем на панели инструментов окна БД нажмите кнопку Создать. В появившемся диалоговом окне Новая страница доступа к данным выберите строку Мастер страниц. В раскрывающемся списке выберите имя таблицы или запроса, содержащего данные, которые будут служить базовыми для страницы доступа к данным, после чего нажмите кнопку ОК. Следуйте инструкциям в диалоговых окнах мастера. Они аналогичны инструкциям мастера создания отчетов, поэтому не будем на них подробно останавливаться. 2.4. Создание страниц доступа к данным в режиме конструктора Для создания страниц доступа к данным в режиме конструктора необходимо в окне БД выбрать кнопку Страницы в списке Объекты, затем на панели инструментов окна БД нажать кнопку Создать. В появившемся диалоговом окне Новая страница доступа к данным выберите строку Конструктор. В раскрывающемся списке выберите таблицу или запрос, содержащий данные, которые будут служить базовыми для страницы доступа к данным, и нажмите кнопку ОК. Access откроет страницу доступа к данным в режиме конструктора, в котором можно изменить страницу. Для примера создадим страницу доступа к данным таблицы Предлагаемые модели с помощью конструктора (рис. 153). Для добавления данных на страницу перетащите поля из списка на страницу.
222
Проектирование баз данных. СУБД MS Access
Л
О«
Рис. 153. Открытие страницы доступа к данным в режиме конструктора 2.4.1. Подключение страницы к источнику данных при помощи существующего файла подключения Для этого из контекстного меню (правая кнопка мыши) выберите пункт Свойства страницы. В открывшейся стандартной форме редактирования свойств, хорошо знакомой нам по предыдущим темам, перейдите на вкладку Данные, затем в свойстве ConnectionFile (файл соединения с данными) откройте редактор свойств (диалоговое окно выбора файла соединения сданными). В этом окне необходимо выбрать ранее созданный нами файл соединения с данными Sample.udl, перейдя в содержащую его папку. Для использования файла соединения с данными с созданием связи между страницей и файлом подключения нажмите кнопку ОК. В свойстве ConnectionFile отобразиться имя файла соединения с данными, созданного нами ранее.
Тема 7. Страницы доступа к данным
223
2.4.2. Добавление данных на страницу доступа к данным при помощи списка полей При использовании списка полей для добавления данных на страницу доступа к данным Access автоматически создает элементы управления, присоединенные к добавляемым полям, как при работе со списками полей форм и отчетов. Однако списки полей форм и отчетов отличаются от списка полей страницы доступа к данным. Перед добавлением присоединенных элементов управления в форму или в отчет необходимо сначала присоединить форму или отчет к конкретному источнику записей. Список полей для страницы доступа к данным отображает все поля, которые могут быть выбраны в БД для добавления на страницу. Щелкнув в списке полей индикатор развертывания рядом с конкретной таблицей или запросом, отображаем список полей для этого источника записей. Если источником записей является таблица, над списком папок отображается папка Связанные таблицы. Эта папка содержит список таблиц и полей, связанных с таблицей, которая развернута в списке полей. Если задержать указатель на таблице из папки Связанные таблицы, отобразится поле, связывающее таблицы. При добавлении полей непосредственно из связанных таблиц или из запросов, использующих связанные таблицы, Access автоматически использует существующие отношения при создании страницы доступа к данным. При добавлении на страницу полей из несвязанных таблиц или из таблиц, не имеющих множественных отношений с таблицами, которые уже используются на странице, Microsoft Access каждый раз выводит приглашение определить новое отношение. Отношения, определяемые таким образом, используются только для текущей страницы доступа к данным, в БД они не добавляются. Допускается перетаскивание одного поля, нескольких полей из таблицы или запроса, а также всей таблицы или запроса ич списка полей на страницу. Если перетащить одно поле, Access автоматически создает элемент управления подходящего типа, основанный на типе данных, хранящихся в поле. Кроме того, можно выбрать нужный тип создаваемого элемента управления перед перетаскиванием поля на страницу доступа к данным, Если нажата кнопка мастера на панели элементов, то при перетаскивании таблицы, запроса или нескольких полей из таблицы
224
Проектирование баз данных. СУБД MS Access
или запроса запускается мастер макета с вопросом, следует ли добавлять поля как отдельные элементы управления (в макете столбцов или ленточном) или в виде веб-элемента (сводная таблица, электронная таблица или диаграмма). Если кнопка мастера не нажата, то при перетаскивании таблицы, запроса или нескольких полей из таблицы или запроса, Access добавляет на страницу отдельные элементы управления. У сводного списка и диаграммы имеются собственные списки полей, отдельные от списка полей страницы доступа к данным. Список полей компонента содержит все поля, добавленные из списка полей страницы доступа к данным в этот компонент. Для нашего примера просто перетащим всю таблицу Предполагаемые модели на раздел страницы, после отпускания кнопки мыши, если нажата кнопка мастера, будет выведена форма с возможностью выбора макета расположения полей. Выберем из списка макет В столбец, после чего нажмем кнопку ОК. Мы увидим, что каждое поле нашей таблицы представлено с помощью одного поля ввода со связанной надписью. Если кнопка мастера не нажата, мы получим то же самое без выбора макета. Здесь можно перетаскивать поля, изменять их размер, как и в конструкторе форм или отчетов. Например, разместим поля так, как на рис. 154. ,
ЕЩ
rf
Й
к ч
&. А,- .£.*
;В л"* £
«S3.
Рис. 154. Работа со списком полги
Тема 7. Страницы доступа к данным
225
2.4.3. Работа с панелью элементов Для добавления управляющих элементов понадобится панель элементов (рис. 155), расположенная по умолчанию на левом краю экрана. Панель элементов можно переносить в любую часть экрана, а также закрывать. Состояние опции Панель элементов в меню Вид определяет наличие (опция включена) или отсутствие панели элементов на экране. Каждая пиктограмма панели элементов представляет собой стилизованное изображение управляющего (оформительского) элемента, который можно встроить в форму. Обзор панели элементов приведем в табл. 49.
, Пане) ^ X -
\Ла. Д
!oQ
Рис. 155. Панель элементов Таблица 49
Пиктограмма
Е
Название
Функция
Выбор объектов
•ч **х •*
Если активизирована данная пиктограмма (а она активизируется по умолчанию), курсором мыши можно маркировать поля, выполнять переносы и изменять размеры
Мастера элементов управления
Включение/выключение вызова мастеров при проектировании элементов управления
А&
Надпись
Вставка на страницу доступа к данным нового поля наименования
А
Связанный текст
Добавляет на страницу связанный текст, который представляет собой надпись и поле. Если использовать этот элемент, то страница в обозревателе будет грузиться быстрее. Данный элемент позволяет добавлять также вычисляемые поля
Поле
Отображение содержимого некоторого поля записи БД или вычисляемого поля
аЫ
Проектирование баз данных. СУБД MS Access
226
Продолжение таблицы 49 Пиктограмма
Название
Функция
Бегущая строка
Добавляет на страниц/ доступа к данным бегущую строку
Группа переключателей
Создание и размещение группы, в которую можно ввести контрольные индикаторы, селекторные кнопки или двухпозиционные кнопки
Переключатель
Выбор (индикация) одного из нескольких взаимоисключающих значений некоторого параметра (например, одного из цветов автомобиля)
F
Контрольный индикатор, флажок
Индикация (изменение) значения опции, которая может иметь одно из двух возможных значений (включена/выключена, отмечена/не отмечена)
Раскрывающийся список (поле со списком)
После щелчка на манипуляторе (открытая кнопка со стрелкой на правом краю поля) разворачивается комбинированный список
Список
В поле списка, в отличие от комбинированного списка, все элементы видны постоянно. Если же и:с так много, что они не помещаются в выделенное для поля место, то на правом краю поля автоматически размещается линейка прокрутки списка
Командная кнопка
Создание кнопки, с которой может быть связана некоторая команда или последовательность действий. Например, можно создать командную кнопку Долее, с помощью которой будет производиться переход к следующей записи. Команда, соответствующая кнопке, должна быть определена как макрос
Развертывание
Используется для возможности свернуть или развернуть элемент, список и др. (например, в списке папок или файлов)
0
о
S3
Тема 7. Страницы доступа к данным
227 Продолжение таблицы 49
Пиктограмма
Название
Функция
4*
Панель кнопок перехода по записям
Добавляет на страницу доступа к данным панель перехода по записям, которая используется для навигации по БД (переход по записям, удаление, добавление и другие действия)
- i_
Сводная таблица
Добавляет на страницу доступа к данным сводную таблицу
Диаграмма
Добавляет на страницу доступа к данным диаграмму
Электронная таблица
Добавляет на страницу доступа к данным электронную таблицу Office. Лист электронной таблицы можно использовать для ввода и вычисления данных. Лист состоит из ячеек, упорядоченных по столбцам и строкам. Данные вводятся непосредственно в ячейки, а затем с ними производятся нужные вычисления (для этого следует использовать формулы). При создании интерактивной электронной таблицы с помощью программконструкторов Microsoft Office XP с последующим ее размещением на вебстранице пользователям предоставляется возможность интерактивной работы с данными и выполнения вычислений непосредственно в веб-обозревателе. Пользователи могут изменять данные и автоматически получать результаты вычислений
%
Гиперссылка
Добавляет на страницу доступа к данным гиперссылку на другой документ или страницу. При помещении этого элемента на страницу появляется окно Добавление гиперссылки, которое помогает пользователю выполнить эту процедуру
$1
Гиперссылка рисунка
Добавляет на страницу доступа к данным рисунок с гиперссылкой
Ш
Проектирование баз данных. СУБД MS Access
228
Окончание таблицы 49 Пиктограмма 1
©в
k& 1
0
Название Фильм
Добавляет на страницу доступа к данным видеофайл
Рисунок
Встраивание статических иллюстраций (графических файлов) в страницу доступа к данным С помощью данной пиктограммы на странице можно провести прямую линию
\
Линия
П
Прямоугольник
*
Функция
Дополнительные элементы ActiveX
Объединение и выделение группы полей посредством заключения их в прямоугольную рамку Специальный элемент управления OLE
2.4.3. Работа с графикой на странице доступа к данным Вставлять рисунки из файла можно посредством либо копирования и вставки из другого расположения, либо вставки связи с рисунком путем указания фиксированного расположения, такого, как веб-сервер, или относительного расположения файла. Вставка рисунка аналогична данной операции для отчетов или форм. Связывание рисунка со страницей доступа к данным уменьшает размер страницы, облегчает обновление рисунка, а также позволяет сделать рисунок общим для различных страниц доступа к данным. При перемещении или копировании страницы доступа к данным в Microsoft Windows необходимо также переместить или скопировать все вспомогательные файлы (такие, как рисунки, фоновые текстуры и маркеры), чтобы сохранить в рабочем состоянии ссылки на графические объекты страницы доступа к данным. Например, добавим рисунок машины на нашу страницу доступа к данным Предполагаемые модели. Полученный результат изображен на рис. 156. 2.5. Стратегии создания страниц доступа к данным Существует ряд средств, позволяющих создавать эффективные страницы доступа к данным, в зависимости от задач, которые требуется решить. Следующие сведения помогуг выбрать средства и макет для использования при создании страниц каждого типа.
Тема 7. Страницы доступа к данным
229
3 Предлагаемые модели новая
Предполагаемые модели
Традаюртмые нмесики; [ Пэелпролажнав подготовка,
Рис. 156. Работа с графикой на странице доступа к данным
2.5.7. Страницы для анализа данных Как уже говорилось, для анализа данных можно использовать сводные списки, так как они позволяют организовывать данные различными способами. Сводный список можно использовать как единственный элемент управления на странице доступа к данным или с другими элементами управления. При использовании сводного списка на странице без группировки сводный список и другие элементы управления можно поместить в основную часть или в раздел на странице. Разработчик должен принять решение, следует ли предоставлять пользователям возможность добавлять, изменять или удалять данные, и задать соответствующие свойства для уровня группировки. При использовании сводного списка на странице доступа к данным с группировкой:
230
Проектирование баз данных. СУБД MS Access
•
поместите сводный список и присоединенные элементы управления в раздел; • убедитесь, что сводный список находится на самом нижнем уровне группировки; • если сводный список является единственным элементом управления в разделе, удалите или скройте раздел кнопок перехода для уровня группировки, на котором находится сводный список. 2.5.2. Страницы для ввода и изменения данных Можно создать страницу доступа к данным, на которой пользователи могут вводить, редактировать данные в БД и удалять их из нее. При создании страницы для ввода данных следует иметь в виду следующее: • Используйте отдельные элементы управления, такие, как поля, списки,, раскрывающиеся списки, группы параметров, переключатели и флажки. • Помешайте элементы управления в основной части страницы или в разделах. Если раздел не используется, его можно удалить. • Используйте компонент электронной таблицы для создания электронных таблиц, с помощью которых выполняются вычисления с полями записи. Вычисляемые значения можно отобразить в электронной таблице или скрыть электронную таблицу и отобразить рассчитанные значения в элементах управления связанного текста. • Определите способы использования данных пользователями путем настройки панели перехода по записям. 2.5.3. Страницы для наглядного отображения данных Можно использовать компонент диаграммы для создания диаграмм, с помощью которых выполняется анализ тенденций, выявляются закономерности и производится сравнение данных в БД, либо использовать компонент электронной таблицы, в которую можно вводить и в которой можно редактировать данные и с помощью формул выполнять вычисления. При использовании электронной таблицы на странице доступа к данным без группировки электронную таблицу и другие элементы управления можно поместить в основную часть или в раздел на странице.
ТемаЛ. Страницы доступа к данным
231
При использовании электронной таблицы на странице доступа к данным с группировкой поместите электронную таблицу и другие элементы управления, присоединенные к полям БД, в раздел. Электронные таблицы можно использовать на любом уровне группировки. 2,5.4. Страницы для просмотра данных Страницы доступа к данным предоставляют возможность взаимодействия с большими объемами выбранных данных. Развертывая и свертывая группы записей, пользователь может сфокусироваться только на тех данных, которые ему необходимы. При создании страниц с группировкой имейте в виду следующее: •
помещайте присоединенные элементы управления в раздел;
•
для отображения записей на самом нижнем уровне группировки используйте отдельные элементы управления или сводный список; • удаляйте ненужные кнопки с панели перехода по записям; • с помощью свойств уровня группировки определите доступ только для чтения.
3. Сохранение объекта как страницы доступа к данным Существует возможность сохранить таблицу, запрос (на выборку, управляющий или перекрестный), форму или отчет в БД Access в виде страницы доступа к данным. Сохранение объекта в виде страницы доступа к данным позволяет быстро преобразовать объект в страницу и обеспечивает пользователям приложения возможность вводить или анализировать данные через Интернет или локальную сеть. Например, если имеется список предлагаемых моделей автомобилей, который требуется сделать доступным в Интернете, то вместо разработки страницы доступа к данным в виде отчета можно сохранить отчет как страницу доступа к данным. С помощью команды Сохранить как в меню Файл отчет будет сохранен в виде страницы доступа к данным, аналогичной по внешнему виду и функциональности исходному отчету. Если потребуется изменить макет получившейся страницы, можно открыть ее в режиме конструктора и внести необходимые изменения.
232
Проектирование баз данных. СУБД MS Access
Режим по умолчанию, т. е. режим, в котором объект был открыт при выполнении команды Сохранить как, определяет макет страницы доступа к данным.
4. Использование страниц доступа к данным 4.1. Использование в браузере Internet Explorer Страница доступа к данным непосредственно связана с БД. При просмотре в Internet Explorer для пользователя отображается копия страницы, создаваемая при ее открытии. Поэтому любой отбор данных, сортировка и другие изменения способа отображения данных, включая изменения в сводном списке или электронной таблице, влияют только на копию страницы. Однако изменения в самих данных - изменение значений, добавление или удаление данных - сохраняются в исходной БД и поэтому доступны всем, кто просматривает страницу вне зависимости от используемого способа просмотра. Для получения справки по работе со страницей в Internet Explorer пользователю достаточно нажать кнопку Справка на панели перехода по записям. Файл справки для вывода на экран автоматически добавляется к каждой странице доступа к данным, распространяемой с панелью перехода по записям. При удалении панели перехода по записям или отключении кнопки Справка на этой панели данная возможность недоступна.
4.2. Использование в Microsoft Access Со страницами доступа к данным также можно работать в режиме страницы в Microsoft Access. Страницы доступа к данным могут дополнять формы и отчеты, используемые в приложении БД. Выбирая между разработкой страницы доступа к данным, формы или отчета, учитывайте задачи, которые требуется решить. Для получения справки по работе со страницей в режиме страницы следует нажать кнопку Справка на панели инструментов Разметка страницы для вызова справочной системы Access. По нажатии кнопки Справка на панели перехода по записям страницы на экран выводится справка по работе со страницей в Internet Explorer. Как говорилось выше, этот файл справки автоматически
Тема 7. Страницы доступа к данным
233
добавляется к странице доступа к данным, публикуемой с панелью перехода по записям. Можно удалить эту кнопку Справка со страниц, используемых только в Access, либо изменить свойства кнопки для предоставления настроенной справки.
5. Изменение страниц доступа к данным Для изменения страниц доступа к данным страницу необходимо открыть в режиме конструктора, далее, аналогично формам и отчетам, можно изменять расположение, размер и другие свойства полей.
5.1. Изменение внешнего вида страниц с использованием тем Тема представляет собой набор унифицированных элементов структуры и цветовых схем для маркеров, шрифтов, горизонтальных линий, фоновых изображений и других элементов страницы доступа к данным. Тема облегчает создание профессиональных, хорошо спроектированных страниц доступа к данным. При применении темы к странице доступа к данным настраиваются следующие элементы страницы: стили основного текста и заголовков, фоновые цвета и рисунки, цвета границ таблиц, горизонтальные линии, маркеры, цвета гиперссылок и элементы управления. Кроме того, имеется возможность выбрать более яркие цвета для текста и рисунков, а также использовать фон на странице доступа к данным. Пользователь имеет возможность применить тему к странице, не имеющей темы, сменить текущую тему или удалить тему. Перед применением темы можно просмотреть образец страницы, использующей эту тему. Анимации рисунков темы работают только при просмотре страницы доступа к данным в веб-обозревателе; они не работают при просмотре страницы доступа к данным в Access. Попробуем применить тему к странице доступа к данным для таблицы Предполагаемые модели. Для этого откроем страницу доступа к данным в режиме конструктора, в меню Формат выберем команду Тема, далее в списке Выберите тему укажем нужную тему, например Разрез. Полученный вид страницы доступа к данным показан на рис. 157.
234
Проектирование баз данных, СУБД MS Access
Предполагаемые модели
ОЙ-»:
Пии,
Рис. 157. Использование тем
Контрольные вопросы 1. 2. 3. 4. 5. 6. 7. 8.
В чем заключается отличие отчетов от форм от страниц доступа к данным? Назовите составные части страниц доступа к данным. Опишите процесс создания файла подключения к БД. Опишите панель элементов для конструирования страниц. Что такое список полей? Опишите несколько способов создания страниц доступа к дгшным. Как внедрить рисунок на страницу доступа к данным? Что такое тема для страницы доступа к данным и как с ней работать?
Задание 11 Для своего варианта задания создайте две-три страницы доступа к данным, используя несколько способов создания страниц.
СПИСОК СОКРАЩЕНИЙ АБД БД ВК НФ НФБК ОДЗ ПО РБД РМД СБД СУБД ФЗ
-
администратор базы данных. база данных. внешний ключ. нормальная форма. нормальная форма Бойса-Кодда. область допустимых значений. предметная область. реляционная база данных. реляционная модель данных. системая база данных. система управления базой данных. функциональная зависимость.
СПИСОК ЛИТЕРАТУРЫ 1. Базы даных: Учеб. для вузов / Под ред. А. Д. Хомоненко. СПб.: КОРОНА принт, 2000. 416 с. 2. Бемер С. MS Access 2.0: Пер. с нем. СПб.: BHV - СанктПетербург, 1995. 448 с. 3. Богданова Н. П. Access 2000 - интегрированная среда для работы с данными: Метод, указания к практ. занятиям / РГРТА. Рязань, 2001.28с. 4. Гончаров A. Microsoft Access 7.0 в примера. СПб.: М., 1997. 256с. 5. Дейт К. Дж. Введение в системы баз данных: Пер. с англ. 7-е изд. М.; СПб.; Киев: Вильяме, 2001. 1071 с. 6. Дженнингс Р. Использование Access 97: Пер. с англ. 2-е спец. изд. М.; Спб.; Киев: Вильяме, 1998. 944 с. 7. Картыгин С.A. Access 2000. Руководство пользователя с примерами. М.: Лаборатория базовых знаний, 2000. 376 с. 8. Карлова Т.С. Базы данных: модели, разработки, реализация. Спб.: Питер, 2001.303с. 9. Microsoft Access 2000. Шаг за шагом: Пер. с англ. М.: ЭКОМ, 2000. 350 с. 10. Новалис С. Access 2000. Руководство по VBA: Пер. с англ. М.: Лори, 2001.506с. 11. Новиков Ф. А., Яценко А. Д. Microsoft Office 2000 в целом. СПб.: БХВ, 1999. 727 с. 12. Орлов Г. С. Изучение основ работы с базой данных Microsoft Access 97: Метод, указ, к лаб. работам / РГРТА. Рязань, 2002. 16 с. 13. Пасько В. Access 97. Русифицированная версия. Киев: BHV «Ирина», 2000. 346 с. 14. Савицкий Н. И. Технологии организации, хранения и обработки данных: Учеб. пособие. М.: ИНФРА-М, 2001. 232 с. 15. Харитонова И. А. Самоучитель Access 2000. СПб.: Питер, 2001. 383с. 16. Хабрейкен Д. Изучи Microsoft Access 2002 за 10 минут: Пер. с англ. М.: Вильяме, 2002. 216 с. 17. Хомоненко А. Д., Цыганков В. М., Мальцев М. Г. Базы данных: Учеб. для вузов. 2-е изд. Спб.: КОРОНА принт, 2002. 665 с.
ОГЛАВЛЕНИЕ ТЕМА 1. ПРОЕКТИРОВАНИЕ РЕЛЯЦИОННЫХ БАЗ ДАННЫХ С ИСПОЛЬЗОВАНИЕМ ЯЯ-ТЕХНОЛОГИИ 1. ОСНОВНЫЕ ПОНЯТИЕ РЕЛЯЦИОННЫХ БАЗ ДАННЫХ
1.1. Базы данных 1.2. Этапы проектирования БД 1.3. Реляционная модель данных
КОНТРОЛЬНЫЕ ВОПРОСЫ 2. ПРОЕКТИРОВАНИЕ РБД с ИСПОЛЬЗОВАНИЕМ ЕЯ-ТЕХНОЛОГИИ
2.1. Постановка задачи проектирования РБД 2.2. Один из подходов к проектированию БД: метод «сущность-связь»
КОНТРОЛЬНЫЕ ВОПРОСЫ
3 3
3 6 7
19
20
20 20
26
ЗАДАНИЕ 1
27
ТЕМА 2. ПОЛУЧЕНИЕ ОТНОШЕНИЙ ИЗ ДИАГРАММЫ ЯК-ТИПА
28
1. ПРЕДВАРИТЕЛЬНЫЕ ОТНОШЕНИЯ для БИНАРНЫХ СВЯЗЕЙ 1:1
29
КОНТРОЛЬНЫЕ ВОПРОСЫ
ЗАДАНИЕ 2 2. ПРЕДВАРИТЕЛЬНЫЕ ОТНОШЕНИЯ для БИНАРНЫХ СВЯЗЕЙ i:N КОНТРОЛЬНЫЕ ВОПРОСЫ ЗАДАНИЕ 3 3. ПРЕДВАРИТЕЛЬНЫЕ ОТНОШЕНИЯ для БИНАРНЫХ СВЯЗЕЙ СТЕПЕНИ N:M
ЗЛ. Пример проектирования
КОНТРОЛЬНЫЕ ВОПРОСЫ
34
34 35 36 37 38
39
41
ЗАДАНИЕ 4
41
КОНТРОЛЬНЫЕ ВОПРОСЫ ЗАДАНИЕ 5 5. ИСПОЛЬЗОВАНИЕ РОЛЕЙ 6. СВЯЗЬ МЕЖДУ ТАБЛИЦАМИ КОНТРОЛЬНЫЕ ВОПРОСЫ...
44 45 45 47 49
4. СВЯЗИ БОЛЕЕ ВЫСОКОГО ПОРЯДКА
42
238
Проектирование баз данных. СУБД MS Access
ЗАДАНИЕ 6
49
7. ОСНОВНЫЕ ОБЪЕКТЫ СУБД MS ACCESS Состав файла БД. Архитектура СУБД
52 .53
ТЕМА 3. ТАБЛИЦЫ
55
1. ПРОЕКТИРОВАНИЕ БД
55
1.1. Проектирование БД TOYOTA 1.2. Связи между таблицами 2. СОЗДАНИЕ БД
56 57 58
3. СОЗДАНИЕ ТАБЛИЦЫ МОДЕЛЕЙ АВТОМОБИЛЕЙ
59
3.1. Объявление полей 3.2. Виды представления таблицы 4. РЕДАКТИРОВАНИЕ ПРОЕКТА ТАБЛИЦЫ 4.1. Редактирование записей 4.2. Работа с буфером обмена 4.3. Добавление записей 4.4. Редактирование и печать записей 4.5. Работа с клиентами 5. СВЯЗЫВАНИЕ ТАБЛИЦ 5.1. Что означает целостность данных 5.2. Доработка таблицы клиентов 6. ИМПОРТИРОВАНИЕ, ВСТРАИВАНИЕ и ЭКСПОРТИРОВАНИЕ ТАБЛИЦ 6.1. Импортирование таблиц 6.2. Встраивание таблиц 63. Экспортирование таблиц
61 71 72 75 75 77 80 81 87 90 92 95 96 99 100
КОНТРОЛЬНЫЕ ВОПРОСЫ
102
ЗАДАНИЕ?
103
ТЕМА 4. ЗАПРОСЫ - В ЦЕНТРЕ ВНИМАНИЯ РЫНОК СБЫТА
104
1. ТИПЫ ЗАПРОСОВ 2. РЕЖИМЫ ПРЕДСТАВЛЕНИЯ ЗАПРОСА
104 106
3. ПРОЕКТИРОВАНИЕ ЗАПРОСА НА ВЫБОРКУ 3.1. Окно запроса 3.2. Проектирование запроса 3.3. Включение полей в запрос 3.4. Установка критериев отбора записей 3.5. Упорядочение записей в запросе
112 114 115 115 117 117
4. ВЫПОЛНЕНИЕ ЗАПРОСА...
...118
Оглавление
239
5. СОХРАНЕНИЕ ЗАПРОСА
119
6. РЕДАКТИРОВАНИЕ ЗАПРОСА
119
8. ПРОЕКТИРОВАНИЕ ПЕРЕКРЕСТНОГО ЗАПРОСА
123
7. ДРУГИЕ ДОПОЛНИТЕЛЬНЫЕ ВОЗМОЖНОСТИ ЗАПРОСА НА ВЫБОРКУ 9. ЗАПРОСЫ НА ИЗМЕНЕНИЕ
9.1. Проектирование запроса на создание таблицы 9.2. Проектирование запроса на добавление 9.3. Проектирование запроса на удаление 9.4. Проектирование запроса на изменение
КОНТРОЛЬНЫЕ ВОПРОСЫ
120 132
133 135 138 139
140
ЗАДАНИЕ 8
141
ТЕМА 5. ФОРМЫ
143
1. ПРОЕКТИРОВАНИЕ ДИАГРАММНОЙ ФОРМЫ
146
1.1. Типы диаграмм 1.2. Составление диаграммы 2. ПРОЕКТИРОВАНИЕ СОСТАВНОЙ ФОРМЫ 2.1. Оформление составной формы 2.2. Перенос полей и изменение размера полей 3. ДОБАВЛЕНИЕ УПРАВЛЯЮЩИХ ЭЛЕМЕНТОВ 3.1. Вставка контрольного индикатора 3.2. Проведение линий 3.3. Вычисляемые поля 3.4. Форматирование текста 3.5. Встраивание объекта
148 149 152 157 157 162 165 166 167 170 172
5. РЕДАКТИРОВАНИЕ ФОРМЫ 5.1. Добавление кнопки 5.2. Написание макроса 5.3. Добавление кнопок 5.4. Создание кнопки Назад 5.5. Создание кнопок с помощью мастера 6. ПЕЧАТЬ ФОРМЫ
178 178 179 180 181 183 186
4. СОХРАНЕНИЕ и ОТКРЫТИЕ ФОРМЫ
КОНТРОЛЬНЫЕ ВОПРОСЫ
176
189
ЗАДАНИЕ 9
189
ТЕМА 6. ОТЧЕТЫ 1. СОЗДАНИЕ ОТЧЕТА 2. ДОРАБОТКА ОТЧЕТА
190 191 198
240
Проектирование баз данных. СУБД MS Access
2.1. Области отчета 2.2. Создание и внедрение фирменного знака 2.3. Ввод названия фирмы в нижний колонтитул 3. ПРОЕКТИРОВАНИЕ и ВСТРАИВАНИЕ ПОДОТЧЕТА 3.1. Проектирование подотчета „_._, 3.2. Добавление вычисляемого поля '. 3.3. Встраивание подотчета КОНТРОЛЬНЫЕ ВОПРОСЫ
198 201 205 205 206 208 211 213
ТЕМА 7. СТРАНИЦЫ ДОСТУПА К ДАННЫМ
214
1. СОСТАВНЫЕ ЧАСТИ СТРАНИЦЫ ДОСТУПА к ДАННЫМ
215
ЗАДАНИЕ 10
2. РАЗРАБОТКА СТРАНИЦ ДОСТУПА к ДАННЫМ РАЗЛИЧНЫХ
типов
2.1. Типы источников данных для страниц доступа к данным 2.2. Автоматическое создание страниц доступа к данным 2.3. Создание страницы доступа к данным с помощью мастера страниц 2.4. Создание страниц доступа к данным в режиме конструктора 2.5. Стратегии создания страниц доступа к данным
213
216 216 219 221 221 228
3. СОХРАНЕНИЕ ОБЪЕКТА КАК СТРАНИЦЫ ДОСТУПА к ДАННЫМ ....231 4. ИСПОЛЬЗОВАНИЕ СТРАНИЦ ДОСТУПА к ДАННЫМ 232 4.1. Использование в браузере Internet Explorer 4.2. Использование в Microsoft Access 5. ИЗМЕНЕНИЕ СТРАНИЦ ДОСТУПА к ДАННЫМ 5.1. Изменение внешнего вида страниц с использованием тем КОНТРОЛЬНЫЕ ВОПРОСЫ ЗАДАНИЕ 11
232 232 233
СПИСОК СОКРАЩЕНИЙ
235
СПИСОК ЛИТЕРАТУРЫ...
233 234 234
...236
ii Центральным коллектор научных библиотек
ОБЯЗАТЕЛЬНЫЙ ЭКЗЕМПЛЯР Центральный коллектор научных библиотек - это старейшее государственное предприятие по комплектованию книжных фондов библиотек России и стран СНГ, работающее с 1931 г. На ГП ЦКНБ возложено исполнение Федерального Закона «Об обязательном экземпляре докумен и Постановления № 859 от 03.12.02 обязательном экземпляре изданий». Для очного и заочного профильного комплектования библиотек по Индивидуальным тематическим план. ГП ЦКНБ предлагает несколько вариантов, широкий ассортимент, издательские цены. Рассылка обязательных экземпляров производится по тарифам, установленным для бюджетных организаций с 50% льготной скидкой. Главная задача ГП ЦКНБ быть максимально выгодным и удобным партнером для библиотек и издателей
СВОДНЫЙ АННОТИРОВАННЫЙ ТЕМАТИЧЕСКИЙ ПЛАН Каждое полугодие отдел СТП аккумулирует издательскую информацию о выпускаемых изданиях и формирует сводные аннотированные тематические планы, которые по различным каналам (почта, e-mail, Internet) бесплатно распространяются по библиотекам России и стран СНГ. В сводных тематических планах ГП ЦКНБ представлены книги ведущих российских издательств, выпускающих учебную литературу для учреждений высшего, среднего и начальн профессионального образов медицинскую, научнотехническую и детскую литературу. Все издания сопровождаются подробным библиографи-ческим описание аннотацией.
Тел. (095) 330-3365 I Тел. ЗЗЗ-ЗЗОЗ, 335-8200 e-mail: [email protected]"| e-mail: [email protected]
ОТВЕТСТВЕННОЕ ХРАНЕНИЕ Склады хранения могут принять более 5 000 000 единиц. книжной^^Г продукции на ответственное хранение, а экспедиционный комплекс и свое почтовое отделение в кратчайшие сроки способны ' скомплектовать и доставить почтовые отправления в любой регион России, ближнее и дальнее зарубежье, включая таможенное оформление. Розничные и подписные тиражи мы доставим до пунктов ПЖДП, ОПГ1, АООП по приемлемцмщарифа^ Все это делает ГП U выгодным, надежным^Рртнер
БИБТЕХНИКА ГП ЦКНБ реализует предметы библиотечной техники: каталожные карточки, книжные и читательские формуляры, разделители и др.
НАШИ РЕКВИЗИТЫ АДРЕС 117342, Москва, ул. Бутлерова, д. 17"Б" ТЕЛЕФОН 330-5283 ФАКС 330-4829
ИНТЕРНЕТ
www.gpcknb.ru
БАНКОВСКИЕ РЕКВИЗИТЫ ИНН 7
38, расчетный счет: 4050 2810 9332 8010 0015
Наименование банка: Сбербанк России Донское отделение № 7613/01578 г. Москва 6ИК 044525225 корр. счет: ЗОЮ 1610 4000 0000 0225 е ОПЕРУ Московского ГТУ Банка России ИНН Ьанка: 7707083893 КПП 772801001 Код ОКОНХ 71110, Код ОКНО 0^425117
СХЕМА ПРОЕЗДА
Книги издательства «Горячая линия - Телеком» можно заказать через почтовое агентство DESSY: 107113, г.Москва, а/я 10, а также интернет-магазины: www.dessy.ru www.top-kniga.ru
Сайт издательства:
Н. Н. Гринченко, Е. В. Гусев, Н. П. Макаров, А. Н. Пылькин, Н. И. Цуканова
В форме практических рекомендаций рассмотрены методы баз данных с использованием интегрированной среды Microsoft Access. Изложение материала оформлено в виде отдельных разделов, в которых кратко представлен теоретический материал по конкретной теме. Каждая представленная тема может выступать в качестве отдельного практического занятия (или темы лабораторной работы). С этой целью рассмотрены конкретные примеры, приведены конкретные вопросы и варианты заданий для самостоятельного выполнения. Для студентов вузов, будет полезна всем желающим быстро овладеть основами работы с интегрированной средой MS Access 97...2002, проектирования баз данных.
ISBN
5-93517-193-7
9"785935"171933l