Основа информационной системы, объект ее обработки – база данных (БД). База данных – это совокупность сведений о конкретных объектах реального мира в какой-либо предметной области или разделе предметной области. Например, БД по вузам (высшее образование), база данных по лекарственным препаратам (медицина), БД по автомобилям (ГАИ), БД по стройматериалам (склад) и т.п. Синоним термина «БД» - «банк данных».
Ядром любой БД является модель данных, которая представляет собой структуру данных, соглашения о способах их представления и операций манипулирования ими. Модель данных представляет собой формализованное описание объектов предметной области и взаимосвязей между ними.
Различают 3 основных типа моделей данных: иерархическая, сетевая и реляционная. Иерархическая структура представляет собой совокупность элементов, в которой данные одного уровня подчинены данным другого уровня, а связи между элементами образуют древовидную структуру. В такой структуре исходные элементы порождают другие элементы, причем эти элементы в свою очередь порождают следующие элементы и т.д. Существенно то, что каждый порожденный элемент имеет только одного «родителя». Обратите внимание, что в иерархической структуре порождающим элементом может быть не объект сам по себе, а только конкретный экземпляр объекта. Примером иерархической БД может служить генеалогическое древо вашей семьи.
Существуют и более сложные – сетевые – структуры, в которых каждый порожденный элемент может иметь более одного порождающего элемента. Сетевая модель данных отличается от иерархической тем, что каждый элемент сетевой структуры данных связан с любым другим элементом. Примером сложной сетевой структуры может служить структура БД, содержащая сведения об учащихся, занимающихся в различных кружках. При этом возможны занятия одного и того же ученика в разных кружках, а также посещение несколькими учениками занятий одного кружка. И сетевые и иерархические структуры можно свести к простым двумерным таблицам.
Реляционные БД
Наиболее удобным и для пользователя, и для компьютера является представление данных в виде двумерной таблицы. БД, которые состоят из двумерных таблиц, называются реляционными (по-англ. - отношение). Основная идея реляционного подхода состоит в том, чтобы представить произвольную структуру данных в виде простой двумерной таблицы. Примером реализации реляционной модели данных может быть таблица с информацией об учащихся (табл.)
№ личного дела |
Фамилия |
Имя |
Отчество |
Дата рождения |
Адрес |
класс |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Как видно из приведенного примера, реляционная таблица обладает следующими свойствами:
§ Каждая строка таблицы – один элемент данных (сведения об одном учащемся)
§ Все столбцы в таблице однородные, т.е. все элементы в столбце имеют одинаковый тип и длину (например, в столбце Имя отображаются имена учащихся символьного типа длиной не более 17 символов)
§ Каждый столбец имеет уникальное имя (например, в таблице нет двух столбцов Имя)
§ Одинаковые строки в таблице не допускаются (запись о каждом учащемся делается только один раз)
§ Порядок следования строк и столбцов в таблице может быть произвольным (запись об учащемся в таблицу делается при поступлении в школу, при этом порядок следования столбцов не имеет значения).
На примере реляционной таблицы рассмотрим основные структурные элементы БД.
1. В реляционных БД любые совокупности данных представляются в виде двумерных таблиц (отношений), подобных описанному выше списку учащихся. При этом каждая таблица состоит из фиксированного числа столбцов и некоторого (переменного) количества строк. Описание столбцов принято называть макетом таблицы.
2. Каждый столбец таблицы представляет поле – элементарную единицу логической организации данных, которая соответствует неделимой единице информации – реквизиту объекта данных (например, фамилия учащегося, адрес).
Для описания поля используются характеристики:
§ Имя поля (например, № личного дела, Фамилия)
§ Тип поля (например, символьный, дата)
§ Дополнительные характеристики (длина поля, формат, точность).
Например, поле Дата рождения может иметь тип «дата» и длину 8 (6 цифр и 2 точки, разделяющих в записи даты день, месяц, год).
3. Каждая строка таблицы называется записью. Запись логически объединяет все поля, описывающие один объект данных, например, все поля в первой строке описывают данные об учащемся. Система нумерует записи по порядку: 1,2, ..., n, где n – общее число записей (строк) в таблице на данный момент. В отличие от количества полей (столбцов) в таблице, количество записей в процессе эксплуатации БД может как угодно меняться (от нуля до миллионов). Количество полей, их имена и типы тоже можно изменить, но это уже особая операция, которая называется изменением макета таблицы.
4. В структуре записи файла указываются поля, значения которых являются простым ключом, которые идентифицируют экземпляр записи. Примером такого простого ключа в таблице Учащиеся является поле № личного дела, значение которого однозначно определяет один объект таблицы – одного учащегося, т.к. в таблице нет двух учащихся с одинаковым номером личного дела.
5. Каждое поле может входить в несколько таблиц (например, поле Фамилия может входить в таблицу Список занимающихся в театральном кружке).
Системы управления БД и их функции
Для создания БД, их поддержки и обслуживания используется специализированное программное обеспечение – системы управления БД (СУБД). СУБД – это комплекс программных и языковых средств, необходимых для создания и эксплуатации БД.
На этапе разработки БД СУБД служит для описания структуры БД: определения таблиц, определения количества полей, типа данных, отображающихся в них, размеров полей, определения связей между таблицами. Помимо таблиц большинство СУБД предусматривает создание специальных средств для работы с данными: форм, запросов.
Во время эксплуатации БД СУБД обеспечивает редактирование структуры БД, заполнение ее данными, поиск, сортировку, отбор данных по заданным критериям, формирование отчетов.
В информационных системах (ИС), которые работают на IBM-совместимых персональных компьютерах, большое распространение получили так называемые dBASE - подобные системы управления БД.
В dBASE – подобных БД фактически использован реляционный подход к организации данных, т.е. каждый файл .DBF представляет собой двумерную таблицу, которая состоит из фиксированного числа столбцов и переменного числа строк (записей). В терминах, принятых в технической документации, каждому столбцу соответствует поле одного из 5 типов (N – числовое, C – символьное, D – дата, L – логическое, M - примечание), а каждой строке – запись фиксированной длины, состоящая из фиксированного числа полей. С помощью командных языков этих СУБД создаются и исправляются макеты файлов .DBF (описания таблиц), создаются индексные файлы, описываются процедуры работы с БД (чтение, поиск, модификация данных, составление отчетов и многое другое).
Типы данных в БД
Информационные системы работают со следующими основными типами данных.
Текстовые данные. Значение каждого текстового (символьного) данного представлено совокупностью произвольных алфавитно-цифровых символов, длина которой чаще всего не превышает 255 (например, 5, 10, 140). Текстовыми данными представляют в ИС фамилии и должности людей, названия фирм, продуктов, приборов и т.д. В частном случае значение текстового данного может быть именем какого-то файла, который содержит неструктурированную информацию произвольной длины (например, биографию или фотографию объекта). Фактически это структурированная ссылка, позволяющая резко расширить информативность вашей таблицы.
Числовые данные. Данные этого типа обычно используются для представления атрибутов, со значениями которых нужно проводить арифметические операции (весов, цен, коэффициентов и т.п.). Числовое данное, как правило, имеет дополнительные характеристики, например: целое число длиной 2 байта, число с плавающей точкой (4 байта) в фиксированном формате и др. Разделителем целой и дробной части обычно служит точка.
Данные типа даты и (или) времени. Данные типа даты задаются в каком-то известном машине формате, например, ДД.ММ.ГГ (день, месяц, год). С первого взгляда – это частный случай текстового данного. Однако использование в ИС особого типа для даты имеет следующие преимущества. Во-первых, система получает возможность вести жесткий контроль (например, значение месяца может быть только дискретным в диапазоне 01-12). Во-вторых, появляется возможность автоматизированного представления формата даты в зависимости от традиций той или иной страны (например, в США принят формат ММ-ДД-ГГ). В-третьих, при программировании значительно упрощается арифметические операции с датами (попробуйте, например, вручную вычислить дату спустя 57 дней после заданного числа). Те же преимущества имеет использование данного типа времени.
Логические данные. Данное этого типа (иногда его называют булевым) может принимать только одно из двух взаимоисключающих значений – True или False (условно: 1 или 0). Фактически это переключатель, значение которого можно интерпретировать как «Да» и «Нет» или как «Истина» и «Ложь». Логический тип удобно использовать для тех атрибутов, которые могут принимать одно из двух взаимоисключающих значений, например: наличие водительских прав (да-нет), военнообязанный (да-нет) и т.п.
Поля объекта OLE. Значением таких данных может быть любой объект OLE, который имеется на компьютере (графика, звук, видео). В частности, в список учащихся можно включить не только статическую фотографию учащегося, но и его голос.
Пользовательские типы. Во многих системах пользователям предоставляется возможность создавать собственные типы данных, например: «День недели» (понедельник, вторник и т.д.), «Адрес» (почтовый индекс – город - ...) и др.
В частном случае значение текстового данного может быть совокупностью пробелов, а значение числового данного – нулем. Если же в таблицу вообще не введена информация, значение будет пустым. Не следует путать с нулем или пробелами. Во многих системах пользователю важно зафиксировать отсутствие данных для каких-то экземпляров объекта (например, отсутствие адреса. Если случайно ввести в такую строку таблицы пробел, система сочтет, что адрес задан, и данный экземпляр не попадет в список объектов с отсутствующими адресами.)
Access
MS Access – это система управления реляционными БД , предназначенная для работы на автономном ПК или в локальной вычислительной сети под управлением Microsoft Windows. Другими словами, MS Access – это набор инструментальных средств для создания и эксплуатации информационных систем. Средствами Access можно выполнить следующие операции.
1. Проектирование базовых объектов ИС – двумерных таблиц с разными типами данных, включая поля объектов OLE.
2. Установление связей между таблицами, с поддержкой целостности данных, каскадного обновления и удаления записей.
3. Ввод, хранение, просмотр, сортировку, модификацию и выборку данных таблиц с использованием различных средств контроля информации, индексирование таблиц и аппарата логической алгебры (для фильтрации данных).
4. Создание, модификацию и использование производных объектов ИС (форм, запросов и отчетов), с помощью которых в свою очередь выполняются следующие операции:
§ Оптимизация пользовательского ввода и просмотра данных (формы)
§ Соединение данных из различных таблиц
§ Проведение групповых операций (т.е. операций над группами записей, объединенных каким-то признаком), с расчетами и форматированием вычисляемых полей
§ Отбор данных с применением аппарата логической алгебры (запросы)
§ Составление печатных отчетов по данным, которые содержатся в таблицах и запросах БД.
Технология работы с MS Access
Вы можете запускать MS Access и завершать ее работу любым из стандартных способов, предусмотренных в среде Windows.
Объектом обработки MS Access является файл БД, имеющий произвольное имя и расширение .MDB. В этот файл входят основные объекты MS Access: таблицы, формы, запросы, отчеты, страницы, макросы и модули. После загрузки Access ожидает от вас одного из следующих распоряжений:
§ Либо создать новую БД, т.е. файл с расширением .MDB
§ Либо открыть существующую БД , т.е. файл с расширением .MDB
Создание БД. После выбора варианта Создание новой базы данных или команды Файл – Создать ...на экране появится стандартный файл, в котором следует открыть нужную папку и задать имя создаваемого файла БД. Например, для нашей БД мы выбрали папку Мои документы, а имя файла – группа .MDB.
Создав файл, Access раскрывает пустое окно базы данных и в этом окне будет проводить все операции – создавать и манипулировать объектами БД.
MS Access является многооконным приложением, однако в любой момент может быть открыта только одна БД. Именно ее окно является главным окном документа в приложении Access, и его закрытие означает закрытие соответствующего файла .MDB.
Окно БД порождает множество дочерних окон объектов (таблицы, запроса, формы и т.д.), и каждое такое окно может быть закрыто автономно – любым из стандартных способов Windows.
Кроме того, не закрывая окна, вы можете сохранить объект (например, макет таблицы), окно которого находится на экране, и присвоить ему имя – точно так же, как это делается с файлами: командой Файл-Сохранить или Файл-Сохранить как...
С окном любого объекта (дочерним окном) можно работать либо в оперативном режиме (например, вводить или просматривать данные в таблице), либо в режиме конструктора (например, изменять макет таблицы).
Основные понятия MS Access. Объекты MS Access.
БД Access может иметь следующие объекты: таблицы, формы, запросы, отчеты, страницы. Кроме того, квалифицированные пользователи могут работать еще с двумя объектами: макросами и модулями. Макрос – это набор специальных макрокоманд (например, Открыть Форму, Печатать Отчет и т.п.), а модуль – это программа, написанная на языке Access Basic или Visual Basic для приложений.
Таблица является базовым объектом MS Access. Все остальные объекты являются производными и создаются нами только на базе ранее подготовленных таблиц.
Форма не является самостоятельным объектом Access: она просто помогает вводить, просматривать и модифицировать информацию в таблице или запросе. Запросы и отчеты выполняют самостоятельные функции: выбирают, группируют, представляют, печатают информацию. Страницы доступа к данным представляют собой специальный тип Web-страниц, предназначенный для просмотра и работы через Интернет или интрасеть с данными, хранящимся в БД Access. С помощью страницы пользователи могут вводить, редактировать и удалять данные из БД.
Каждый объект MS Access имеет имя. В MS Access действуют следующие ограничения на имена полей, элементов управления и объектов:
§ Имя должно содержать не более 64 символов
§ Имя может включать любую комбинацию букв, цифр, пробелов и спец. символов за исключением точки, ! , “ , и кв. скобок ([ ])
§ Не должно начинаться с символа пробела
§ Не должно включать управляющие символы
§ Не должно включать прямые кавычки в именах таблиц, представлений и хранимых процедур в проекте MS Access
Определяя имя для поля, элемента управления или объекта, полезно проверить, не совпадает ли это имя с именем свойства или другого элемента, используемого MS Access (для русских имен такая ситуация может возникнуть при совпадении с именем свойства или функции, определяемых пользователем).
С каждым объектом БД работа выполняется в отдельном окне, причем предусмотрено 2 режима работы:
1. Оперативный режим, когда просматривается, изменяется или выбирается информация
2. Режим конструктора, когда создается или изменяется макет, структура объекта (например, структура таблицы).
Кроме этого, в файл БД входит еще 1 документ, имеющий собственное окно: Схема данных. В этом окне мы создаем, просматриваем, изменяем и разрываем связи между таблицами. Эти связи помогают нам контролировать данные, создавать запросы и отчеты.
В окне БД мы видим 3 командные кнопки (Открыть, Конструктор и Создать) и 7 вкладок (по числу объектов Access) с корешками: Таблица, Запрос, Форма, Отчет, Страницы, Макрос и Модуль. Если выбрана какая-либо вкладка, то в ее окне отображается список существующих объектов этого типа данной БД.
Например, если выбрать вкладку Таблица, то в окне отображается список таблиц открытой БД. Чтобы открыть таблицу, надо выделить ее имя в этом списке и нажать кнопку Открыть. Чтобы включить в БД новую таблицу, надо нажать кнопку Создать. Чтобы исправить макет существующей таблицы, надо выделить ее имя в списке и нажать кнопку Конструктор.
Такие же операции выполняются со всеми другими объектами БД Access.
Если выбрать команду Правка-Схема данных... (или нажать соответствующую кнопку панели инструментов), на экране появится окно документа Схема данных.
Набор пунктов горизонтального меню и состав панелей инструментов зависят от типа и режима окна документа, которое в данный момент активно. Например, окно таблицы в оперативном режиме имеет кнопки Вырезать, Сортировать по возрастанию и др., а в режиме конструктора – кнопки Свойства, Определить ключ и др. Работа с панелями инструментов подчиняется стандарту.
Типы данных, которые могут иметь поля в MS Access, приведены в таблице:
Тип данных |
Использование |
Размер |
текстовый |
Текст или комбинация текста и чисел, например, адреса, а также числа, не требующие вычислений, например, номера телефонов, инвентарные номера или почтовые индексы |
До 255 символов |
числовой |
Числовые данные, используемые для математических вычислений, за исключением финансовых расчетов (для них следует использовать тип «Денежный»). Для более точного определения типа числа используйте свойство Размер поля. |
1,2,4 или 8 байт |
Поле МЕМО |
Длинный текст или числа, например, примечания или описания |
До 64 000 символов |
Дата/время |
Даты и время |
8 байт |
Денежный |
Значения валют. Денежный тип используется для предотвращения округлений во время вычислений. Предполагает до 15 символов в целой части числа и 4 – в дробной |
8 байт |
Счетчик |
Автоматическая вставка последовательных (увеличивающихся на 1) или случайных чисел при добавлении записи. Этот тип поля удобно применять для первичного ключа таблицы. В качестве значений таких полей Access автоматически выбирает целые порядковые номера (1,2,...). В дальнейшем номер, присвоенный записи при ее создании, не изменяется (независимо от удаления, вставки новых записей и т.п.) |
4 байта |
Логический |
Поля, содержащие только одно из двух возможных значений, таких как «Да/Нет», «Истина/Ложь», «Вкл/Выкл» |
1 бит |
Поле объекта OLE |
Объекты (например, документы Microsoft Word, электронные таблицы Microsoft Excel, рисунки, звуки и др. двоичные данные), созданные в других программах, использующих протокол OLE. Объекты могут быть связанными или внедренными в таблицу Microsoft Access. Для отображения объекта OLE в форме или отчете необходимо использовать присоединенную рамку объекта. |
До 1 гигабайта (ограничено объемом диска) |
Гиперссылка |
Поле, в котором хранятся гиперссылки, имеющие вид пути (адреса) |
До 64 000 символов |
Мастер подстановок |
Создает поле, позволяющее выбрать значение из другой таблицы или списка значений, используя поле со списком. При выборе данного параметра в списке типов данных запускается мастер для автоматического определения этого поля. |
Тот же размер, который имеет первичный ключ, являющийся также и полем подстановок; обычно – 4 байта |
Примечание. Поля типов «Числовой», «Дата/Время», «Денежный» и «Логический» имеют предопределенные форматы вывода данных. формат вывода можно выбрать в ячейке свойства Формат поля Format. Можно также создать собственные форматы вывода для всех типов данных, кроме объектов OLE.
Использование справки Microsoft Access
Microsoft Access имеет мощную справочную систему. При возникновении вопросов можно обратиться к помощнику Office. Во время работы помощник автоматически предоставляет разделы справки и советы по выполняемым задачам – даже без обращения с вопросом. Например, при разработке отчета помощник автоматически выводит названия разделов, помогающих в создании и разработке отчета.
Для получения справки можно воспользоваться командой Справка по Microsoft Access в меню Справка или нажать клавишу F1. Если помощник включен, он появится на экране.
Для просмотра содержания справки перейдите на вкладку Содержание. Для поиска по конкретным словам или фразам перейдите на вкладку Указатель. Для ввода вопроса в окне справки перейдите на вкладку Мастер ответов, задайте вопрос и щелкните кнопку Найти. После этого в правой области окна справки будет выведен текст подсказки или в списке найденных разделов будет выведена подсказка «Перефразируйте свой вопрос». Чтобы просмотреть подсказку для команды меню, кнопки панели инструментов или области экрана, выберете в меню Справка пункт Что это такое?, а затем щелкните элемент, сведения по которому требуется просмотреть.
Чтобы просмотреть подсказку к параметру диалогового окна, нажмите в диалоговом окне кнопку с вопросительным знаком, а затем щелкните нужный параметр (если кнопка с вопросительным знаком не отображается, выделите параметр и нажмите клавиши Shift + F1). Чтобы просмотреть название кнопки на панели инструментов, задержите указатель мыши на нужной кнопке, пока не отобразится ее название.
Выражения в Microsoft Access
Основным средством выполнения многих операций Microsoft Access являются выражения. Они представляют собой комбинацию символов – идентификаторов, операторов и значений, дающую определенный результат. Например, следующее выражение позволяет вывести в форме, отчете или элементе управления сумму значений полей «СуммаЗаказа» и «СтоимостьДоставки»:
=[СуммаЗаказа]+[СтоимостьДоставки].
В Access можно использовать любое выражение: арифметическое, условное и логическое. Они используются для описания следующих операций:
§ Указание значения свойства, которое определяет вычисляемый элемент управления, определяет условие на значение или задает для поля значение по умолчанию, например:
[Номер] <= 25 And [Номер] >= 10, [Код] = 2 Or [Код] = 4 Or [Код] = 6.
§ Указание условий отбора, создание вычисляемого поля или обновление записей в запросе или фильтре
§ Указание условий выполнения макрокоманды или набора макрокоманд в макросе и определение аргументов многих макрокоманд
§ Определение аргументов для многих функций, инструкций и методов в процедурах Visual Basic для приложений.
Операндами выражений могут быть:
§ Имена полей (они записываются в квадратных сковках), например:
[Цена],[Номер],[Сумма],...
§ Числовые литералы, например: 78, 29.4
§ Текстовые литералы (они записываются в кавычках), например: «Мир», «ВАЗ»
§ Функции
Microsoft Access довольно «либеральна» к синтаксису выражений. Например, имя поля можно опустить, если выражение записано в столбце с этим именем; можно опустить «=» (этот знак принимается по умолчанию) и т.д.
Использование значений в выражениях. Для того чтобы указать значение в выражении используют литералы, константы, функции и идентификаторы. Литералом называют значение в явном представлении, например, число, строковое значение или дату. Примерами значений в явном представлении могут служить «Москва», 123 и #3-февр-99#. Даты необходимо заключать в символы (#), а строковые значения – в прямые кавычки.
Константа представляет величину с неизменным значением. True , False являются примерами констант, автоматически определяемых в Microsoft Access. Пользователь имеет возможность определить собственные константы.
Функция возвращает значение, которое является результатом расчетов или выполнения других операций. В Microsoft Access определен ряд встроенных функций, например:
§ Функция Date возвращает текущую дату
§ Функция Sum возвращает сумму набора значений поля
§ Функция DLookup возвращает значение указанного поля
Пользователь имеет возможность создавать собственные функции.
Идентификатор представляет ссылку на значение поля, элемента управления или свойства. Например, следующий идентификатор определяет ссылку на значение свойства Значение по умолчанию (Default Value) элемента управления «Дата Размещения» в форме «Заказы»:
Forms ! [Заказы] ! [Дата размещения].Default Value
Оператор слияния строк & позволяет объединить значение поля, элемента управления или свойства со строкой в явном представлении. Например, в следующем выражении выполняется слияние строки «[Код Типа]=»со значением элемента управления «Код Типа» в форме «Товары»:
“[КодТипа]”=”& Forms! [Товары] ! [КодТипа]
Для того чтобы получить в выражениях строку, заключенную в кавычки, следует либо использовать вложенные строки в одинарных кавычках, либо использовать тройные пары прямых кавычек. Например, следующие выражения являются эквивалентными:
Forms ! [Константы] ! [Город] .Default Value = ” ’Рига’ ”
Forms ! [Константы] ! [Город] .Default Value = ” “”Рига”” ”
Примеры некоторых выражений:
Арифметические:
=[Цена]* 1,06;
=[ДатаНазначения]-[ДатаИсполнения]
Текстовые:
=[Имя]&””&[Фамилия]
=Right([КодТовара],2)
Логические:
=IIF([Подтверждено]=”Да”, “Заказ подтвержден”, “Заказ не подтвержден”)
=IIF(IsNull ([Область]), [Город]&” ”&[Индекс], [Город]&” ”&[Область]&” “&[Индекс])
Технология создания БД в Access
Любой объект БД можно создать либо вручную, либо с помощью Мастера. При создании БД, как правило, выполняется следующая последовательность шагов:
1. Сначала мы должны выполнить проектирование БД, которое заключается в следующем:
§ Определение цели создания БД (назначение БД, как она будет использоваться, и какие сведения она должна содержать)
§ Определение таблиц, которые должна содержать БД (определить, какие сведения будут храниться в таблицах)
§ Определение полей в таблице
§ Определение ключевых полей
§ Определение связей между таблицами
2. После создания нужных таблиц, полей и связей необходимо еще раз просмотреть структуру БД и выявить возможные недочеты. Желательно это сделать, пока таблицы не заполнены данными.
3. Затем следует ввести в таблицы достаточный объем данных для проверки структуры. После этого создаются черновые формы, отчеты и выполняется анализ, отображаются ли в них те данные, что ожидались. Чтобы проверить связи в БД, проверяется, удается ли создать запросы для получения нужных сведений. При обнаружении проблем следует выполнить доработку структуры БД.
4. Если структуры таблиц отвечают поставленным требованиям, то можно ввести все данные. Затем можно создать все необходимые объекты БД (формы, отчеты, запросы, страницы доступа к данным).
5. В заключении можно выполнить разработку макросов и программ для приложений, с помощью которых объекты БД объединяются в единое приложение. В приложении связанные между собой задачи организуются таким образом, чтобы пользователи могли сконцентрироваться на конкретной работе, а не на изучении механизма работы приложения или программ, обеспечивающих его работу.
Рассмотрим технологию разработки БД на примере БД Группа.
Определим цель создания данной базы – хранение сведений об учащихся. В качестве базового объекта БД определим таблицу, в которой будут храниться следующие данные об учащихся: № личного дела, фамилия, имя, отчество, дата рождения, домашний адрес, класс. Для их размещения определим одноименные поля таблицы. В качестве ключа зададим поле № личного дела.
Для создания БД запустим Access. В диалоговом окне выберем вариант создать новую БД, затем в окне Файл новой базы данных откроем папку Новая папка и зададим имя Группа для создаваемой БД.
Создание таблицы. Для создания таблицы выберем окно БД (для переключения в окно БД из других окон нажмите клавишу F11).
Выберем значок Таблицы в списке Объекты и щелкнем кнопку Создать на панели инструментов окна БД. Из предложенных способов создания выберем вариант Конструктор, для чего дважды щелкнем мышью указанную строку.
После этого в окне Access раскроется окно таблицы в режиме конструктора. В верхней части окна находится создаваемый или модифицируемый макет таблицы, который представляет собой просто список полей с указанием имени поля, типа данных и описания.
В столбце Поле вы набираете произвольное имя, а в следующем столбце указываете тип данных для этого поля. Тип данных можно выбрать из раскрывающегося списка. Как только курсор оказывается в столбце Тип данных, в нижней части окна возникает бланк свойств (характеристик) данного поля. Он представляет собой перечень свойств (слева название свойства, справа – значение этого свойства) с окном подсказки по каждому свойству. Перечень свойств меняется, в зависимости от типа данных, который в текущий момент отображается в столбце Тип данных. Щелкнув мышью на поле значения в бланке свойств, вы можете изменить это значение (в рамках допустимого для этого типа данных).большинство значений принимается системой по умолчанию, многие свойства можно изучить самостоятельно. Некоторые свойства можно выбрать из раскрывающегося списка.
При выборе значения свойства принципиально важно следовать следующим рекомендациям:
§ Для текстового и числового поля надо указать размер поля, причем для текста – это допустимая длина значения (например, 20 или 40 символов), а для числа – формат представления в машине (байт, целое (2 байта), длинное целое и т.д.)
§ Для поля Дата/время обязательно надо указать формат, чтобы система знала, как обрабатывать вводимые данные. Например, если выбрать Краткий формат даты, система будет ожидать от вас ввода именно даты (в русской версии – ДД.ММ.ГГ), а если выбрать Краткий формат времени, в этом поле придется набирать ЧЧ:ММ (часы и минуты).
§ В качестве значения свойства Условие на значение вы можете указать логическое выражение, которое должно принимать значение True («Истина») при вводе данных в это поле. В следующем свойстве можно записать произвольное сообщение об ошибке, которое будет выдано системой, например: «это значение поля недопустимо». В свойстве Обязательное поле можно указать «Да» (пустые значения не допускаются) или «Нет» (пустые значения допускаются).
§ Если в первичный ключ вашей таблицы входит одно поле, в свойстве Индексированное поле для него выберете: «Да, совпадения не допускаются», а затем щелкните в панели инструментов на кнопке Определить ключ своей таблицы (и запретите ввод записей с повторяющимся значением первичного ключа).
Итак: определим поля таблицы. В графе Имя поля зададим имя «№ личного дела». Для определения типа данных этого поля, щелкнув стрелку в графе Тип данных, раскроем список возможных типов данных и выберем вариант Текстовый. В области окна конструктора Свойства поля выберем вкладку Размер поля и определим максимальное количество знаков для ввода в этом поле – 10 символов.
Обратите внимание, что при выборе различных параметров свойства поля в правой части выводится подсказка о назначении параметра.
Действуя аналогично, введем следующие данные о других полях таблицы.
Имя поля |
Тип данных |
Свойства (формат поля) |
Фамилия |
Текстовый |
20 символов |
Имя |
Текстовый |
20 символов |
Отчество |
Текстовый |
20 символов |
Дата рождения |
Дата/время |
Длинный формат даты |
Домашний адрес |
Текстовый |
50 символов |
Класс |
Текстовый |
3 символа |
Завершив ввод описания полей таблицы, сохраним таблицу. До того, как сохранить таблицу, определим первичный ключ. Для этого, указав поле № личного дела, щелкнем кнопку Ключевое поле в панели инструментов Стандартная.
Переключим отображение созданной таблицы в Режим таблицы. При этом обязательно сохраним таблицу под именем Учащиеся. Для переключения отображения таблицы выберем команду Режим таблицы в меню Вид.
Примечание. Поле первичного ключа определять не обязательно, но желательно. Если первичный ключ не был определен, Microsoft Access при сохранении таблицы спросит, нужно ли создать ключевое поле.
Операции с данными в таблице
Ввод данных. выбрав в окне таблицу Учащиеся, щелкнем кнопку Открыть. Установим курсор в поле № личного дела и введем значение П-69. По окончании ввода значения поля нажмем клавишу Tab для перехода к следующему полю. В остальные поля этой записи введем данные: Петров; Иван; Васильевич;12.03.89; ул. Горького, 12-34; 4А.
После окончания ввода значений всех полей записи нажмем клавишу Tab для перехода к следующей записи. Введем еще 4 записи.
№ личного дела |
Фамилия |
Имя |
Отчество |
Дата рождения |
Домашний адрес |
Класс |
П-69 |
Петров |
Иван |
Васильевич |
12 марта 1989 г. |
Ул. Горького, 12-34 |
4А |
С-97 |
Сидоров |
Василий |
Николаевич |
3 декабря 1988 г. |
Ул. Карбышева, 34-123 |
4Б |
Я-24 |
Яковлев |
Иван |
Семенович |
15 января 1989 г. |
Пер. Садовый, 45-28 |
4В |
И-35 |
Иванов |
Павел |
Николаевич |
6 июля 1988 г. |
Ул. Горького, 35-14 |
5А |
Е-56 |
Епишев |
Павел |
Семенович |
19 апреля 1988 г. |
Ул. Киевская, 78-92 |
5Б |
Если вам не нравится ширина столбца таблицы (например, она слишком велика или наоборот мала и скрывает часть данных), ее можно уменьшить или увеличить – точно так же, как вы изменяли ширину столбца в Excel.
Перемещение по таблице. В строке состояния указывается общее число записей в таблице и номер текущей записи. Текущая запись отмечается стрелкой в левой части окна (в области маркировки записей). Для перемещения по таблице служат кнопки переходов в строке состояния (слева направо: переход к первой записи таблицы, к предыдущей записи, к следующей записи и к последней записи таблицы).
Чтобы переместить текстовый курсор в произвольную ячейку таблицы, можно просто щелкнуть на ячейке мышью.
Кроме того, по таблице можно перемещаться с помощью клавиш Tab,
Shift + Tab, стрелок курсора.
Редактирование таблицы. При вводе данных используется основной стандарт редактирования. Закончив ввод или модификацию данных в конкретном поле, нажмите Tab или Enter (или щелкните мышью в другой ячейке таблицы).
Для ввода (внедрения) объекта OLE надо щелкнуть правой кнопкой мыши на его поле в таблице и выбрать OLE-сервер из списка. После внедрения OLE-объекта, отображаемым в таблице значением его будет название соответствующего OLE-сервера (например, Точечный рисунок ВМР). Чтобы просмотреть или отредактировать объект (или скажем, чтобы воспроизвести звукозапись) надо, как всегда, дважды щелкнуть на этом названии.
Операции с записями и столбцами. С помощью команд меню и кнопок панели инструментов вы можете проводить множество стандартных операций с записями и столбцами: вырезать и копировать в буфер, удалять записи, скрывать столбцы и т.д.
Изменим структуру таблицы, вставив перед столбцом Дата рождения столбец с полем Пол. Для этого, выделив столбец Дата рождения, в меню Вставка выберем команду Столбец.
Переименуем вставленный столбец, выделив столбец Поле1 и выбрав в меню Формат команду Переименовать столбец. После этого зададим столбцу имя Пол.
Для определения свойств нового поля переключим таблицу в режим Конструктора, выбрав команду Конструктор в меню Вид. Определим для поля Пол логический тип данных, а на вкладке Общие в области описания Свойства поля выберем формат Да/Нет и отредактируем его, записав как Муж/Жен.
Переключим отображение таблицы в Режим таблицы и в поле Пол выставим флажки в записях с мальчиками.
Переместим столбец Пол, установив его справа от поля Дата рождения. Для этого выделим столбец Пол, щелкнув область выделения поля со словом Пол, затем отпустим кнопку мыши. Снова нажмем кнопку мыши и, удерживая кнопку в области выделения поля, перетащим столбец Пол в нужное положение.
Отсортируем записи в таблице по алфавиту фамилий, для чего, щелкнув поле Фамилия, нажмем кнопку Сортировка по возрастанию в панели инструментов Access или воспользуемся командой Сортировка в меню Записи.
№ личного дела |
Фамилия |
Имя |
Отчество |
Дата рождения |
Пол |
Домашний адрес |
Класс |
Е-56 |
Епишев |
Павел |
Семенович |
19 апреля 1988 г. |
٧ |
Ул. Киевская,78-92 |
5Б |
И-35 |
Иванов |
Павел |
Николаевич |
6 июля 1988 г. |
٧ |
Ул. Горького,35-14 |
5А |
П-69 |
Петров |
Иван |
Васильевич |
12 марта 1989 г. |
٧ |
Ул. Горького,12-34 |
4А |
С-97 |
Сидоров |
Василий |
Николаевич |
3 декабря 1988 г. |
٧ |
Ул. Карбышева,34-123 |
4Б |
Я-24 |
Яковлев |
Иван |
Семенович |
15 января 1989 г. |
٧ |
Пер. Садовый, 45-28 |
4В |
Использование фильтра для отбора данных в таблице. Работая с таблицей в оперативном режиме, можно установить фильтр, т.е. задать логическое выражение, которое позволит выдавать на экран только записи, для которых это выражение принимает значение True («истина»).
Выделив в поле Имя значение Павел, нажмем кнопку Применение фильтра на панели инструментов Стандартная или выберем в меню Записи команду Фильтр, затем – Фильтр по выделенному.
№ личного дела |
Фамилия |
Имя |
Отчество |
Дата рождения |
Пол |
Домашний адрес |
Класс |
Е-56 |
Епишев |
Павел |
Семенович |
19 апреля 1988 г. |
٧ |
Ул. Киевская,78-92 |
5Б |
И-35 |
Иванов |
Павел |
Николаевич |
6 июля 1988 г. |
٧ |
Ул. Горького,35-14 |
5А |
Чтобы снять фильтр и увидеть все записи в таблице, щелкнем кнопку Удалить фильтр в панели инструментов Стандартная.
Для отбора записей, удовлетворяющих более сложным условиям отбора, используется расширенный фильтр. Например, создадим фильтр, который отбирает из всех записей таблицы только те, которые удовлетворяют условиям: учащиеся, по отчеству «Семенович», родившиеся после 1-го января 1989 г.
Для этого выберем в меню Записи команду Фильтр и подкоманду Расширенный фильтр. После этого в верхней области окна Access откроется список полей таблицы Учащиеся, а в нижней области окна будет раскрыт бланк записи фильтра.
Добавим в бланк поле Отчество, затем в ячейке Условие отбора для этого поля запишем значение «Семенович». Чтобы указать порядок расположения отфильтрованных записей таблицы, выберем ячейку Сортировка, щелкнем стрелку и выберем порядок сортировки по возрастанию. В строке поля зададим еще одно поле Дата рождения и в ячейке Условие отбора для этого поля введем условие отбора в виде логического выражения >#01.01/89#.
Для применения созданного расширенного фильтра щелкнем кнопку Применение фильтра на панели инструментов Стандартная и посмотрим результат действия расширенного фильтра. Как видно, в таблице отображается только одна запись, удовлетворяющая заданным в фильтре условиям.
№ личного дела |
Фамилия |
Имя |
Отчество |
Дата рождения |
Пол |
Домашний адрес |
Класс |
Я-24 |
Яковлев |
Иван |
Семенович |
15 января 1989 г. |
٧ |
Пер. Садовый, 45-28 |
4В |
Примечание. Фильтры сохраняются автоматически при сохранении таблицы или формы. Таким образом, при повторном открытии таблицы или формы можно будет снова применить сохраненный фильтр.
Создание и использование формы
Основными недостатками способа представления в окне всех полей конкретной таблицы заключаются в следующем:
1. Если полей слишком много, они не умещаются на экране и приходится прибегать к различным манипуляциям, чтобы отрегулировать представление: убирать некоторые столбцы, изменять ширину столбцов, перемещаться по таблице с помощью полосы прокрутки.
2. Если в таблице имеются какие-то коды, таблица теряет информативность: приходится иметь под рукой классификатор, чтобы понять, какому экземпляру объекта соответствует тот или иной код.
Чтобы упростить просмотр, ввод и модификацию данных в конкретной таблице, можно создать для нее одну или несколько форм. Форма – это документ, в окне которого отображается, как правило, одна запись таблицы, причем пользователь имеет возможность по своему усмотрению разместить поля на форме. Таблица и форма – основные объекты в современных информационных системах. Они неотделимы друг от друга и размещены в одном окне документа на разных вкладках.
Формы используются для следующих целей:
§ Вводо/редактирования данных, помещенных в таблицу
§ Организации диалога выбора, предварительного просмотра и печати нужного отчета
§ Открытия других форм и отчетов с помощью кнопок данной формы.
По структуре форма похожа на окно диалога. Связь между формой и источником данных для нее создается при помощи графических объектов, называемых элементами управления. Наиболее часто используемым для ввода и вывода данных элементом управления является поле. В зависимости от природы поля можно сохранить для него обычное представление (поле ввода, как в таблице), или исключить поле, или описать группой кнопок-переключателей (если поле имеет несколько допустимых значений), или флажком (для логических данных), или полем ввода со списком и т.п.
В форме имеются следующие разделы:
1. Заголовок, который отображается вверху и содержит общие сведения, например название фирмы.
2. Колонтитулы, в которых отображаются сведения для вывода форм на печать, например, название столбцов, дата и номер страницы.
3. Область данных формы, которая включает поясняющий текст, данные, вычисленные значения, графические элементы (рисунки).
4. Примечание формы, в котором содержатся сведения, общие для всех записей, инструкции по работе с формой.
Как и любой объект, MS Access может создать форму вручную или воспользоваться услугами Мастера форм. Форма создается для конкретной таблицы или конкретного запроса. Подробные сведения о создании и использовании форм можно получить, выбрав в справке Access тему Работа с формами. Для создания формы необходимо в окне БД щелкнуть значок Формы в списке Объекты. Нажать кнопку Создать на панели инструментов окна БД. В диалоговом окне Новая форма выбрать строку Конструктор и выбрать имя таблицы, на которой нужно основать форму, например Учащиеся. Если форма не будет содержать данные (например, если нужно создать кнопочную форму для открытия других форм или отчетов), не выбирайте ничего из этого списка. Нажмите кнопку ОК.
Примечание. Чтобы создаваемая форма использовала значения из нескольких таблиц, она должна быть основана на запросе.
Форма будет открыта в режиме Конструктора. Для размещения поля таблицы в форме следует взять его мышью в таблице и оттащить в область данных.
При выборе любого из компонентов в формах и отчетах MS Access отображает маркеры перемещения для поля и подписи, а также маркеры изменения размеров для выбранного компонента. Подпись находится слева от поля и перемещается вместе с ним. Для выделения отдельно подписи или поля нужно взять объект мышью за левый верхний маркер и оттащить.
Для одновременного перемещения нескольких объектов выделите элементы управления, удерживая прижатой клавишу Shift.
Наведите указатель на границу любого выделенного элемента управления и, когда указатель примет форму руки, переместите элементы управления в нужную позицию.
Для изменения форматирования элемента формы можно использовать кнопку Автоформат на панели инструментов, кнопки на панели инструментов Форматирование или команды контекстного меню.
Для изменения свойств поля, выбрав объект формы, щелкнем правой кнопкой мыши и в контекстном меню выберем команду Свойства. Выбирая вкладки, можно изменить свойства объекта, например, цвет, отображение в поле формы данные, связать с этим объектом определенные события.
Зададим маску ввода даты, для чего, указав поле Дата рождения, нужно вызвать контекстное меню и в нем выбрать команду Свойства. В окне Поле: Дата рождения на вкладке Данные щелкнем строку Маска ввода для вызова диалогового окна. В окне Создание масок ввода выберем вариант Краткий формат даты, в поле Проба зададим вариант ввода даты для проверки избранной маски ввода. Щелкнув кнопку Далее, отредактируем маску ввода. Для применения созданной маски ввода щелкнем кнопку Готово.
Создадим заголовок формы, для чего выберем в меню Вид команду Заголовок/примечание формы. После этого, выбрав в панели инструментов Конструктора инструмент Надпись, выберем место в зоне заголовка формы, зададим размер надписи и введем ее в текст «Учащиеся».
Завершим создание формы, выбрав команду Режим формы в меню Вид. После сохранения макета формы данные таблицы будут представлены так:
|
Используя поле номера записи, можно просматривать записи таблицы. Щелкнув кнопку Новая запись, откроем форму для создания новой записи и введем следующие данные о новом учащемся: Л-23; Лынова Екатерина Михайловна; 03.08.88; 4В; ул. Смоленская, 17-35. Выбрав команду Режим таблицы в меню Вид, просмотрим изменения данных в таблице Учащиеся.
Для добавления в форму фонового рисунка откроем форму в режиме конструктора. Дважды щелкнув область выделения формы, откроем окно свойств формы. На вкладке Макет в ячейке свойства Рисунок щелкнем кнопку (...) для вызова диалогового окна. В диалоговом окне Выбор рисунка откроем нужную папку и файл. Щелкнув ОК, завершим выбор рисунка, например, Праздник воздушных шаров.JPG. В свойстве Тип рисунка выберем тип рисунка – внедренный или связанный. Внедренный рисунок сохраняется в файле БД.
Если внедрить этот же рисунок в другую форму, он будет добавлен в файл БД еще раз. Связанный рисунок не сохраняется в БД – его файл должен присутствовать на жестком диске. Для экономии места на диске выберем тип рисунка – связанный.
Поместив рисунок в форму , можно изменить его размер или выбрать фрагмент. Для этого необходимо указать в ячейке свойства Масштабы рисунка значение Фрагмент. Для выравнивания рисунка выберем одно из значений в ячейке свойства Выравнивание рисунка вариант Сверху слева. Для того чтобы размножить рисунок по всему фону формы, установим в ячейке свойства Мозаичное заполнение значение Да. Заполнение начинается с позиции, определяемой значением свойства Выравнивание рисунка.
Создание и использование запроса
Запрос – это вопрос о данных. существуют разные типы запросов (на выборку, запрос с параметрами, перекрестные запросы, запрос на изменение таблицы, запросы SQL).
Запрос-выборка. Простейший из запросов – это производная таблица, которая содержит те же структурные элементы, что и обычная таблица (столбцы-поля и строки), и формируется на основе фактических данных БД. Запрос на выборку отбирает данные из одной или более таблиц по заданным условиям, а затем отображает их в нужном порядке. Запрос можно создать с помощью мастера или самостоятельно в режиме конструктора, выбрав таблицы или запросы, содержащие нужные данные, и заполнив бланк запроса.
При создании макета запроса (т.е. производной таблицы) в общем случае нам необходимо выполнить следующие базовые операции:
§ Указать системе, какие поля и из каких таблиц мы хотим включить в запрос
§ Описать вычисляемые поля, т.е. поля, значения которых являются функциями значений существующих полей (например, средняя успеваемость – среднее арифметическое значение всех оценок)
§ Описать групповые операции над записями исходных таблиц (например, нужно ли объединить группу записей и указать условие отбора для расчета среднего значения роста учащихся класса)
При разработке конкретного запроса допускается любое сочетание базовых операций.
Создание запроса-выборки с помощью мастера. Мастер простого запроса на выборку создает запросы для получения данных из полей, выбранных в одной или нескольких таблицах или запросах. с помощью мастера можно также вычислять суммы, количества и средние значения для всех записей или определенных групп записей, а также находить максимальное и минимальное значение в поле. Однако нельзя ограничить количество записей, возвращаемых этим запросом, с помощью условий отбора.
Для создания запроса выберете в окне БД Группа значок Запросы в списке Объекты и нажмите кнопку Создать на панели инструментов. В диалоговом окне Новый запрос выберете мастера Простой запрос и нажмите кнопку ОК.
Укажите имя таблицы Учащиеся, на которой будет основан создаваемый запрос, а затем выберете поля, данные которых нужно использовать.
Следуя инструкциям Мастера, выберем вариант подробный отчет и щелкнем кнопку Далее. В последнем диалоговом окне зададим имя запроса Запрос1 и запустим полученный запрос, выбрав вариант Открыть запрос для просмотра данных и щелкнув кнопку Готово.
Фамилия |
Имя |
Отчество |
Пол |
Дата рождения |
Домашний адрес |
Класс |
Епишев |
Павел |
Семенович |
٧ |
19 апреля 1988 г. |
Ул. Киевская,78-92 |
5Б |
Иванов |
Павел |
Николаевич |
٧ |
6 июля 1988 г. |
Ул. Горького,35-14 |
5А |
Лынова |
Екатери |
Михайловна |
|
3 августа 1988 г. |
Ул. Смоленская, 17-35 |
4В |
Петров |
Иван |
Васильевич |
٧ |
12 марта 1989 г. |
Ул. Горького,12-34 |
4А |
Сидоров |
Василий |
Николаевич |
٧ |
3 декабря 1988 г. |
Ул. Карбышева,34-123 |
4Б |
Яковлев |
Иван |
Семенович |
٧ |
15 января 1989 г. |
Пер. Садовый, 45-28 |
4В |
Выбрав команду Режим SQL в меню Вид, можно увидеть текст созданного запроса на языке SQL:
SELECT [Учащиеся].[Фамилия], [Учащиеся].[Имя], [Учащиеся].[Отчество], [Учащиеся].[Пол], [Учащиеся].[Дата рождения], [Учащиеся].[Домашний адрес], [Учащиеся].[Класс]
FROM Учащиеся;
Примечание. Для получения подробной справки о создании запроса вызовите справочную систему Access и на вкладке Мастер ответов задайте текст вопроса «Создание запроса». Затем в списке найденных разделов выберете раздел Создание запроса и изучите справочную информацию в правой части окна справки.
Если получится не тот запрос, который был нужен, можно снова запустить мастера или изменить этот запрос в режиме конструктора. Откроем созданный запрос в режиме Конструктор. В верхней части этого окна показана схема данных выбранных таблиц с указанием связей и имен всех полей, в данном случае таблица Учащиеся. В нижней части окна размещается бланк QBE, который представляет собой макет некой таблицы. Столбцы этой таблицы соответствуют полям создаваемого запроса, а число строк переменно и зависит от состояния флажков «Имена таблиц» и «Групповые операции» (на панели инструментов или в пункте Вид). В строке Поле: указываются имена столбцов (полей ) создаваемого запроса. Существующее имя можно выбрать из раскрывающегося списка (щелкнув мышью на поле) или просто перенести в ячейку Поле: из таблицы Учащиеся в верхней части окна запроса. В первом столбце разместим поле Фамилия, во втором – Имя и т.д. В ячейке Имя таблицы: (она появляется в бланке, если установлен флажок «Имена таблиц») отображается имя таблицы, которая содержит выбранное поле (таблица Учащиеся).
Если бы в строке Поле: размещалось вычисляемое поле, тогда в ячейке этой строки нужно было бы ввести формулу: <Имя поля>:<Выражение>
Например: Стоимость: [Количество]*[Цена]
В строке Сортировка: можно указать порядок вывода на экран записей (по возрастанию, по убыванию)
В поле Вывод на экран: находятся флажки, установив или сбросив флажок, мы разрешим или запретим вывод данного столбца на экран.
Если бы мы собирались проводить в запросе групповые операции (т.е. объединять записи в группы), нужно было бы включить флажок «Групповые операции» - появляется строка Групповая операция: После щелчка на любом поле этой строки появится список типов групповых операций: Группировка, Sum, Count (сосчитать), Выражение и др.
Например, если в качестве типа групповой операции в столбце указать Count, то получим количество записей, соответствующих запросу в этой группе.
В строках Условие отбора: и или: можно указать условие или логические выражения, которые позволяют нам отобрать для запроса только записи, удовлетворяющие заданному условию.
Соглашения, предусмотренные в Access:
1. Условные выражения, набранные в разных столбцах строки Условие отбора, по умолчанию соединяются между собой знаком AND. Например, если соседние столбцы имеют имена Пол и Класс и вы набрали в них =True и =5Б, то тем самым вы сформулировали логическое выражение: Пол= True и Класс=5Б.
2. Условные выражения, набранные в соседних строках одного и того же столбца, соединяются между собой знаком OR. Например, если столбец имеет имя Класс и мы набрали в строке Условие отбора:=4А, а в строке или:=5А, то тем самым мы сформулировали логическое выражение: [Класс]=4А Or [Класс]=5А.
Изменим запрос, добавив условие отбора только тех учащихся, которые не имеют мужской пол. Для этого установим курсор в столбце Пол на строке Условие отбора и, щелкнув правую кнопку мыши, вызовем контекстное меню, а в меню выберем команду Построить. В списке папок построителя выражений, щелкнув папку Запрос1, раскроем список полей. дважды щелкнув поле Пол, включим это поле в область выражений. Щелкнув оператор «=», включим его в выражение.
Выбрав папку Константы, в списке констант дважды щелкнем на значении «Ложь». Щелкнув ОК, завершим построение логического выражения.
Выбрав в меню Вид команду Режим SQL, можно посмотреть запись созданного запроса на языке SQL:
SELECT Учащиеся. Фамилия, Учащиеся. Имя, Учащиеся. Отчество, Учащиеся. Пол, Учащиеся.[Дата рождения], Учащиеся. [Домашний адрес], Учащиеся. Класс
FROM Учащиеся
WHERE (([Пол]=False));
Выражение WHERE (([Пол]=False)) отбирает в таблице те записи об учащихся, в которых поле Пол не является мужским. После просмотра записи выберем в меню Вид команду Режим таблицы и просмотрим таблицу-результат запроса.
Фамилия |
Имя |
Отчество |
Пол |
Дата рождения |
Домашний адрес |
Класс |
Лынова |
Екатерина |
Михайловна |
|
3 августа 1988 г. |
Ул. Смоленская, 17-35 |
4В |
Создание запроса с параметром. В частном случае, проектируя запрос, можно создать из него своеобразную микропрограмму, которая будет работать по-разному, в зависимости от вводимого вами параметра. Запрос с параметрами выводит одно или несколько предопределенных диалоговых окон, в которых запрашивается ввод условий отбора при каждом запуске запроса. В ответ на запрос пользователь должен ввести значения параметров (условия отбора). Откроем созданный ранее запрос на выборку Запрос1 в режиме конструктора и удалим условие отбора [Пол]=Ложь.
Для каждого поля, которое предполагается использовать как параметр, следует ввести в ячейку строки Условия отбора текст приглашения, заключенный в квадратные скобки. Это приглашение будет выводиться при запуске запроса. Текст приглашения должен отличаться от имени поля, но может включать его. Для поля, которое выводит даты, можно ввести приглашения следующего вида «Введите начальную дату:» и «Введите конечную дату:», чтобы задать границы диапазона значений. «Снимем» флажок выдачи столбца Класс на экран, а в поле Условие отбора: (в этом столбце !) наберем текст приглашения: [Какой класс] (квадратные скобки обязательны).
Для просмотра результатов нажмем кнопку Вид на панели инструментов. После этого на экран будет выведено окно с приглашением ввести параметр. Введем параметр 4В и щелкнем ОК для выполнения выборки записей из таблицы в соответствии с заданным параметром-условием.
Фамилия |
Имя |
Отчество |
Пол |
Дата рождения |
Домашний адрес |
Яковлев |
Иван |
Семенович |
٧ |
15 января 1989 г. |
Пер. Садовый, 45-28 |
Лынова |
Екатерина |
Михайловна |
|
3 августа 1988 г. |
Ул. Смоленская, 17-35 |
Чтобы вернуться в режим конструктора запроса, снова нажмем кнопку Вид на панели инструментов.
Отменим запрос с параметром и изменим условие отбора данных, чтобы в запросе отображались данные об учащихся, родившихся летом 1988 г. Для этого восстановим флажок выдачи столбца Класс на экран, а в поле Условие отбора: (в этом столбце!) удалим текст приглашения. В ячейку строки Условие отбора поля Дата рождения введем текст условия:
[Дата рождения]>#01.06.88# AND [Дата рождения]<#01.09.88#.
Для проверки действия созданного запроса выберем команду Режим таблицы в меню Вид.
Фамилия |
Имя |
Отчество |
Пол |
Дата рождения |
Домашний адрес |
Класс |
Иванов |
Павел |
Николаевич |
٧ |
6 июля 1988 г. |
Ул. Горького,35-14 |
5А |
Лынова |
Екатери |
Михайловна |
|
3 августа 1988 г. |
Ул. Смоленская, 17-35 |
4В |
Создание и использование отчета
Отчет представляет собой эффективный способ представления данных в печатном формате. Имея возможность управлять размером и внешним видом элементов отчета, пользователь может отобразить сведения желаемым образом. Как правило, для формирования отчета создают запрос, в котором собирают данные из разных таблиц с включением вычисляемых полей, группировкой, условиями отбора (любая операция необязательна). Далее на базе такого запроса проектируют отчет, который позволяет:
§ Представить данные в удобной для чтения и анализа форме
§ Сгруппировать записи (по нескольким уровням) с вычислением итоговых и средних значений
§ Включить в отчет и напечатать графические объекты (например, диаграммы)
Сведения, отображаемые в отчете:
§ Заголовок отчета и столбцов
§ Данные, определяемые выражением, которое задается в макете отчета
§ Данные из полей базовой таблицы, запроса или инструкции SQL
§ Итоговые значения, вычисляемые с помощью выражений, заданных в макете отчета.
Для создания связи между отчетом и его исходными данными применяются элементы управления: поля, содержащие имена или числа, надписи для заголовков, декоративные линии для графического оформления отчета.
Структура отчета. Структура отчета аналогична структуре формы. Сведения в отчете могут быть разбиты на разделы. Каждый раздел имеет определенное назначение и печатается на странице и в отчете в заданном порядке.
Как в форме, так и в отчете могут присутствовать следующие разделы:
§ Заголовок
§ Верхний и нижний колонтитулы
§ Область данных
§ Применение отчета
Заголовок отчета выводится один раз в начале отчета и содержит наиболее общие сведения: название и логотип фирмы, название отчета.
Верхний колонтитул печатается вверху каждой страницы и может содержать подписи столбцов – графы отчета. Нижний колонтитул печатается внизу каждой страницы и может содержать номер страницы, даты создания отчета.
Основной раздел отчета – область данных, в котором размещаются данные отчета из каждой записи базового источника (таблицы, запроса). Если в отчете используются сгруппированные записи, то в основном разделе отчета в каждой группе может использоваться заголовок группы. В нем отображаются сведения, общие для всей группы (название группы).
Примечание отчета выводится один раз в конце отчета и содержит итоговые данные отчета.
Размеры разделов можно изменить в режиме конструктора отчета.
Возможны следующие способы создания отчета: Автоотчет, Мастер отчетов, создание отчета в среде конструктора.
Создание отчета с помощью мастера. В окне БД выберем значок Отчеты в списке Объекты. Щелкнем кнопку Создание отчета с помощью мастера. В диалоговом окне Создание отчетов выберем таблицу Учащиеся, на которой должен быть основан отчет. Включим в список Выбранные поля поля из таблицы. Для этого, указав поле в списке Доступные поля, щелкнем кнопку >. Если нужно включить в список Выбранные поля все поля из списка Доступные поля, то нужно щелкнуть кнопку >>.
Примечание. Порядок расположения полей таблицы в списке Выбранные поля определяет порядок расположения столбцов будущего отчета. Используйте кнопки < и > для формирования списка полей в том порядке, как вам нужно.
Завершив формирование списка Выбранные поля, щелкнем кнопку Далее. На следующем шаге диалога с Мастером отчетов определим уровни группировки полей в отчете. Пусть данные в нашем отчете будут сгруппированы по классам, для этого, выбрав поле Класс, щелкнем кнопку >. Щелкнув кнопку Далее, зададим сортировку записей в группах по фамилиям в алфавитном порядке. На следующем шаге создадим макет отчета, выбрав ступенчатый вариант отчета на странице с книжной ориентацией. Включим опцию Настроить ширину полей для размещения на одной странице. Щелкнув кнопку, завершим создание отчета и посмотрим результат на экране.
Учащиеся
Класс Фамилия Имя Отчество Пол Дата рождения Домашний адрес
4А
Петров Иван Васильевич ^ 12 марта 1989 г. ул. Горького, 12-34
4Б
Сидоров Василий Николаевич ^ 3 декабря 1988 г. ул. Карбышева, 34-123
4В
Лынова Екатерина Михайловна 3 августа 1988 г. ул. Смоленская, 17-35
Яковлев Иван Семенович ^ 15 января 1989 г. пер. Садовый, 45-28
5А
Иванов Павел Николаевич ^ 6 июля 1988 г. ул. Горького, 35-14
5Б
Епишев Павел Семенович ^ 19 апреля 1988 г. ул. Киевская, 78-92
Обратите внимание на группировку записей по классам, а внутри группы 4В – упорядоченное расположение записей, отсортированных по фамилиям учащихся в алфавитном порядке.
Параметры просмотра отчета можно изменить, используя кнопки панели инструментов предварительного просмотра.
Так, например, кнопка Масштаб переключает изображение между режимами полной страницы и изменяемого масштаба. Когда указатель мыши принимает форму лупы, нажатие кнопки мыши на странице отчета приводит к увеличению отчета до размера полной страницы. Повторное нажатие мыши возвращает прежний масштаб отображения отчета.
Нажатие кнопки Вид выводит список доступных режимов отображения текущего окна. Для выбора режима можно щелкнуть кнопку раскрытия списка и выбрать нужный вариант. В данном случае на кнопке изображен режим Конструктор. Щелкнув по кнопке с изображением режима Конструктор, можно перейти к изменению отчета.
Создание Web–страницы доступа к данным
Страницы доступа к данным представляют собой специальный тип Web – страниц, предназначенный для просмотра и работы через Интернет или интрасеть с данными, хранящимися в БД. Страница доступа к данным может также включать данные из других источников, таких как Excel.
Страницы доступа к данным разрабатываются с помощью мастера или в режиме конструктора страниц. Страница представляет собой отдельный файл, хранящийся за пределами Access; однако при создании этого файла Access автоматически добавляет ярлык к нему в окно БД. Разработка страниц доступа к данным аналогична разработке форм и отчетов: используется список полей, панель элементов, элементы управления, диалоговое окно Сортировка и группировка т.д. Тем не менее разработка страниц доступа к данным имеет ряд существенных отличий от разработки форм и отчетов. Способ разработки страницы зависит от ее предназначения.
Существует несколько типов страниц доступа к данным.
1. Составление отчетов в интерактивном режиме. Страницы доступа к данным этого типа часто используются для объединения и группировки сведений, хранящихся в БД, а также для публикации сводок данных. Например, страница может публиковать сводки по продажам для каждого региона, в котором проводятся операции. С помощью маркеров развертывания можно перейти от общей сводки данных, такой как список всех регионов и общий объем продаж по ним, к подробностям по продажам отдельных товаров в каждом регионе. Хотя страница может также содержать кнопки панели инструментов, позволяющие сортировать и фильтровать данные, редактировать данные на страницах этого типа невозможно.
2. Ввод данных. этот тип страниц доступа к данным представляет пользователям возможности вводить, редактировать и удалять данные из БД.
3. Анализ и наглядное отображение данных. Страницы доступа к данным этого типа могут включать сводные списки – аналог форм Access и отчетов Excel, - которые позволяют реорганизовывать данные для их анализа различными способами.
Страница может содержать диаграммы для анализа тенденций, закономерностей и выполнения сравнений между данными в БД или электронные таблицы, в которые можно вводить и редактировать данные, а также использовать формулы для выполнения некоторых вычислений, выполняемых в Excel.
Использование страниц доступа к данным в Internet Explorer. Страница доступа к данным непосредственно связана с БД. При просмотре в Internet Explorer для пользователя отображается копия страницы. Поэтому любой отбор данных, сортировка и другие изменения способа отображения данных, включая изменения в сводном списке или электронной таблице, влияют только на копию страницы. Однако изменения в самих данных – изменение значений, добавление или удаление данных, сохраняются в исходной БД, и поэтому доступны всем, кто просматривает страницу.
Использование страниц доступа к данным в Access. Страницы доступа к данным могут дополнять формы и отчеты, используемые в приложении БД. Страницы доступа к данным представляют возможность взаимодействия с большими объемами выбранных данных. развертывая и свертывая группы записей, пользователь может сфокусироваться только на тех данных, которые ему необходимы.
Составные части страницы доступа к данным. Страница доступа к данным может состоять из большого числа различных компонентов, набор которых варьируется в зависимости от цели создания страницы.
Некоторые из наиболее часто используемых компонентов страницы доступа к данным.
Текстовые поля или поля ввода. Отображают существующие данные из БД или, если разрешено, принимают вводимые пользователем новые данные для хранения в БД.
Записи. Наборы связанных фактов об одном хранящемся в БД элементе. Например, все данные об учащемся Петрове Иване представляют собой одну запись.
Группы. Объединяют данные в наборы. Например, записи учащихся могут быть сгруппированы по классам. Название каждого класса – заголовок группы.
Панель перехода по записям. Позволяет быстро выполнять переходы между записями либо добавлять, удалять, сохранять, отменять изменения, сортировать или фильтровать записи.
На странице доступа с группами каждая группа может иметь собственную панель перехода по записям, расположенную в нижней части развернутой группы. Если панель на странице не включает некоторые из кнопок, показанных на следующем рисунке, или включает кнопки, не перечисленные здесь, значит, она была специально настроена разработчиком страницы.
Сводные списки. Аналог сводных таблиц Excel; отображают данные в виде строк и столбцов, которые можно реорганизовывать для анализа данных различными способами. Это делается путем перемещения строк в столбцы и столбцов в строки, отображения итоговых сумм на пересечении строки столбцов, а также с использованием других способов упорядочения и суммирования данных. Сводный список содержит собственную панель инструментов и встроенную справку.
Электронные таблицы. Аналог листа Excel; позволяют вводить и редактировать данные или выполнять вычисления с данными. Электронная таблица содержит собственную панель инструментов и встроенную справку.
Диаграммы. Используют БД для визуального отображения тенденций, закономерностей и сравнений. При изменении БД происходит соответствующее изменение диаграммы. Если диаграмма связана со сводным списком или электронной таблицей на странице доступа к данным, то диаграмма изменяется при изменении связанного сводного списка или электронной таблицы.
Web – страницу можно создать следующими способами:
§ С помощью Автостраницы
§ С помощью мастера
§ Преобразование существующей Web – страницы в страницу доступа а данным
§ Создания страницы в режиме конструктора страниц MS Access.
Создание Web-страницы доступа к данным с помощью мастера. Щелкнув ярлык Страницы, выбрать вариант Создание страницы доступа к данным с помощью мастера.
На первом шаге диалога с мастером выбрать базовую таблицу Учащиеся, выбирая в списке Доступные поля поля таблицы данных и щелкая кнопку >, включая их в список Выбранные поля, определим состав полей таблицы данных, отображаемых на странице доступа к данным.
Щелкнув кнопку Далее, перейдем к этапу определения уровней группировки. С учетом того, что добавление уровней группировки приводит к тому, что страница будет доступна только для чтения, не добавляем уровней группировки и щелкнем кнопку Далее. Затем определим порядок сортировки по фамилиям в алфавитном порядке. Щелкнув кнопку Далее, зададим название страницы Учащиеся и включим флажок Применить тему к странице. Выбрав опцию Открыть страницу, щелкнем кнопку Готово. После этого выполняется инициализация страницы доступа к данным и через некоторое время на экране раскрывается окно Темы. Выбирая в списке Выберете тему вариант оформления страницы, просматриваем в правой области окна образец оформления. Щелкнув ОК, завершаем выбор темы оформления.
Для просмотра страницы выбираем в меню Вид команду Просмотр страницы. Если выбрана тема Смесь, то окно Access со страницей доступа к данным выглядит так:
Фамилия Епишев .
Имя Павел .
Отчество Семенович .
Пол ^
Дата рождения 19.04.88 .
Класс 5Б .
Домашний адрес ул. Киевская, 78-92 .
Сохраним созданную страницу на диске для последующего использования. Для этого в меню Файл выберем команду Сохранить как, а затем в диалоговом окне укажем папку и имя файла, например Страница1.htm.
Для просмотра созданной страницы доступа к данным запустим Internet Explorer5 и выберем автономный режим работы. Выбрав в меню Файл команду Открыть. Щелкнем кнопку Обзор, в окне открыть выберем папку и файл страницы доступа и щелкнем кнопку Открыть. Проверим запись адреса страницы в поле Открыть и, щелкнув кнопку ОК, откроем указанную страницу в Интернет-броузере. После этого указанная страница будет загружена в окно Internet Explorer5.
Для просмотра записей воспользуемся кнопками перехода по записям в нижней части окна. В строке перехода по записям присутствуют еще несколько инструментов: добавить, удалить запись, сохранить, отсортировать, задать снять фильтр и т.п.
Для изменения существующей страницы в MS Access щелкнем ярлык Страница, а затем выберем команду Изменение существующей Web-страницы.
В окне конструктора страницы, выбрав на панели инструментов инструмент поле, укажем позицию и зададим размер нового поля. Указав поле, выберем в меню Вид команду Свойства. В окне определения свойств объекта определим исходные данные для отображения в этом поле и другие свойства поля. Действуя таким образом, зададим на странице поле, в котором будут отображаться № личного дела. Закроем окно описания свойств нового поля и, выбрав в меню Вид команду Просмотр страницы, перейдем к просмотру страницы.
Для добавления новой записи щелкнем кнопку ?*. Введем значения новой записи и сохраним изменения, щелкнув соответствующую кнопку в строке перехода по записям. Для сортировки записей щелкнем кнопку направления сортировки. Для задания фильтра поставим курсор в поле со значением фильтра (например, в поле Класс со значением 5Б) и щелкнем кнопку Фильтр по выделенному. После этого записи на странице отфильтруются, а в сроке перехода по записям будет выведено сообщение: Учащиеся 1 из 2 (всего отфильтровано 2 записи). Просмотрев обе записи, снимите фильтр, щелкнув кнопку Удалить фильтр.
Просмотрим измененную страницу доступа к данным в окне Internet Explorer5, для чего запустим Internet Explorer, выберем автономный режим работы и загрузим страницу.
Выбрав в меню Вид Internet Explorer команду в виде HTML, мы можем просмотреть кодировку Web-страницы.
Оптимизация страниц доступа к данным. Существуют следующие способы повышения скорости загрузки страниц доступа к данным в режиме страницы MS Access или в Internet Explorer5:
§ Не создавайте перекрывающиеся элементы управления
§ Не создавайте лишние рисунки и другие графические объекты. Старайтесь использовать черно-белые рисунки вместо цветных
§ Убедитесь, что в окне Сортировка и группировка свойство Развернуто по умолчанию (Expanded By Default) для самого верхнего уровня группировки имеет значение Нет. Установка значения Нет для этого свойства нижних уровней группировки повысит скорость других взаимодействий после открытия страницы.
§ Установите для свойства Размер страницы доступа (Data Page Size) в окне Сортировка и группировка, определяющего число записей, отображаемых в группе на странице, низкое, а не высокое значение или значение Все. Чем ниже значение этого свойства, тем быстрее отображаются записи.
§ Для отображения данных, которые не обновляются (например, значений счетчика, гиперссылок и значений, извлекаемых из выражений), используйте присоединенные элементы управления HTML, а не поля.
§ На страницах с группировкой используйте для отображения данных присоединенные элементы управления HTML, а не поля.
§ При использовании страниц доступа к данным Access закрывайте все неиспользуемые объекты БД.
§ При использовании страниц доступа к данным в Internet Explorer закрывайте все окна, которые не используются.
§ На страницах доступа к данным, используемых для ввода данных, установите для свойства страницы Data Entry значение Истина, чтобы страница открылась с пустой записью.
§ Индексируйте все поля, по которым проводится сортировка, группировка или отбор.
§ На страницах доступа к данным с группировкой, содержащих записи с отношением «один-ко-многим», группируйте записи по таблице, а не по полю или выражению.
§ На страницах доступа к данным с группировкой, основанных на таблицах с отношением «один-ко-многим», присоединяйте каждый раздел к таблице, а не к запросу. Access загружает записи из таблицы только по мере необходимости их отображения на странице. При использовании запроса Access загружает все записи до отображения записей на странице. Используйте запрос только при необходимости ограничения использования данных на странице, вычисления статических значений или выполнения задач, возможных только в запросе.
Связь между таблицами и целостность данных
Для координации таблиц между ними устанавливается связь. Связь между таблицами устанавливает отношения между совпадающими значениями в ключевых полях, обычно между полями, имеющими одинаковые имена в обеих таблицах. В большинстве случаев с ключевым полем одной таблицы, являющимся уникальным идентификатором каждой записи, связывается внешний ключ другой таблицы.
При установлении связи между таблицами возможны 3 типа связей.
Отношение «один-ко-многим». Это наиболее часто используемый тип связи между таблицами. В отношении «один-ко-многим» каждой записи в таблице А могут соответствовать несколько записей в таблице В, но запись в таблице В не может иметь более одной соответствующей ей записи в таблице А.
Отношение «многие-ко-многим». При этом типе связи одной записи в таблице А могут соответствовать несколько записей в таблице В, а одной записи в таблице В – несколько записей в таблице А. этот тип связи возможен только с помощью третьей (связующей) таблицы, первичный ключ которой состоит из двух полей, являющихся внешними ключами таблиц А и В. отношение «многие-ко-многим» по сути дела представляет собой 2 отношения «один-ко-многим» с третьей таблицей. Например, отношение «многие-ко-многим» между таблицами «Заказы» и «Товары» определяется путем создания двух отношений «один-ко-многим» с таблицей «Заказано».
Отношение «один-к-одному». При отношении «один-к-одному» запись в таблице А может иметь не более одной связанной записи в таблице В и наоборот. Отношения этого типа используются не очень часть, поскольку большая часть сведений, связанных таким образом, может быть помещена в одну таблицу. Отношение «один-к-одному» может использоваться для разделения очень широких таблиц, для отделения части таблицы по соображениям защиты, а также для сохранения сведений, относящихся к подмножеству записей в главной таблице. Например, можно создать таблицу для отслеживания участия сотрудников в благотворительных спортивных мероприятиях.
Тип отношения в создаваемой Microsoft Access связи между таблицами зависит от способа определения связываемых полей.
Отношение «один-ко-многим» создается в том случае, когда только одно из полей является ключевым или имеет уникальный индекс.
Отношение «один-к-одному» создается в том случае, когда оба связываемых поля являются ключевыми или имеют уникальные индексы.
Отношение «многие-ко-многим» фактически являются двумя отношениями «один-ко-многим» с третьей таблицей, первичный ключ которой состоит из полей – внешних ключей двух других таблиц.
Целостность данных
Для поддержания связей между записями в связанных таблицах, а также обеспечения защиты от случайного удаления или изменения связанных данных в Microsoft Access используется механизм поддержки целостности данных.
Целостность данных означает:
§ В связанное поле подчиненной таблицы можно вводить только те значения, которые имеются в связанном поле главной таблицы
§ Из главной таблицы нельзя удалить запись, у которой значение связанного поля совпадает хотя бы с одним значением того же поля в подчиненной таблице
Установить целостность данных можно, если выполнены следующие условия:
1. Связанное поле главной таблицы является ключевым полем или имеет уникальный индекс. В большинстве случаев связывают первичный ключ (представленный в списке полужирным шрифтом) одной таблицы с соответствующим ему полем (часто имеющим то же имя) второй таблицы, которое называют полем внешнего ключа.
2. Связанные поля не обязательно должны иметь одинаковые имена, но они должны иметь одинаковые типы данных (из этого правила существуют два исключения) и иметь содержимое одного типа. Кроме того, связываемые поля числового типа должны иметь одинаковые значения свойства Размер поля (Field Size).
Исключения. Поле счетчика можно связывать с числовым полем, свойство Размер поля (Field Size) которого имеет значение Длинное целое; также поле счетчика можно связать с числовым, если для обоих полей в свойстве Размер поля (Field Size) задано значение Код репликации.
3. Обе таблицы принадлежат одной БД Microsoft Access. Если таблицы являются связанными, то они должны быть таблицами Microsoft Access для установки целостности данных БД, в которой находятся таблицы, должна быть открыта. Для связанных таблиц из БД других форматов установить целостность данных невозможно.
Примечание. Допускается определение связей не только для таблиц, но и для запросов. Причем для запросов соблюдение целостности данных не обязательно.
Установив целостность данных, необходимо следовать следующим правилам:
1. Невозможно ввести в поле внешнего ключа связанной таблицы значение, не содержащееся в ключевом поле главной таблицы. Однако в поле внешнего ключа возможен ввод значений Null, показывающих, что записи не являются связанными. Например, нельзя сохранить запись, регистрирующую заказ, сделанный несуществующим клиентом, но можно создать запись для заказа, который пока не отнесен ни к одному из клиентов, если ввести значение Null в поле «КодКлиента».
2. Не допускается удаление записи из главной таблицы, если существуют связанные с ней записи в подчиненной таблице. Например, невозможно удалить запись из таблицы «Сотрудники», если в таблице «Заказы» имеются заказы, относящиеся к данному сотруднику.
3. Невозможно изменить значение первичного ключа в главной таблице, если существуют записи, связанные с данной записью. Например, невозможно изменить код сотрудника в таблице «Сотрудники», если в таблице «Заказы» имеются заказы, относящиеся к этому сотруднику.
Чтобы наложить эти правила на конкретную связь, при ее создании следует установить флажок Обеспечение целостности данных. если данный флажок установлен, то любая попытка выполнить действие, нарушающее одно из перечисленных выше правил, приведет к выводу на экран предупреждения, а само действие выполнено не будет.
Чтобы преодолеть ограничения на удаление или изменение связанных записей, сохраняя при этом целостность данных, следует установить флажки Каскадное обновление связанных полей и Каскадное удаление связанных полей.
Режимы каскадного обновления и каскадного удаления. Для отношений, в которых проверяется целостность данных, пользователь имеет возможность указать, следует ли автоматически выполнять для связанных записей операции каскадного обновления и каскадного удаления. Если включить данные параметры, станут возможными операции удаления и обновления, которые в противном случае запрещены условиями целостности данных. чтобы обеспечить целостность данных при удалении записей или изменении значения первичного ключа в главной таблице, автоматически вносятся необходимые изменения в связанные таблицы.
Если при определении отношения установить флажок Каскадное обновление данных, любое изменение значения первичного ключа главной таблицы приведет к автоматическому обновлению соответствующих значений во всех связанных записях. Например, при изменении кода клиента в таблице «Клиенты» будет автоматически обновлено поле «КодКлиента» во всех записях таблицы «Заказы» для заказов каждого клиента, поэтому целостность данных не будет нарушена.
Примечание. Если в главной таблице ключевым полем является поле счетчика, то установка флажка Каскадное обновление связанных полей не приведет к каким-либо результатам, т.к. изменить значение поля счетчика невозможно.
Если при определении отношения установить флажок Каскадное удаление связанных записей, любое удаление записи в главной таблице приведет к автоматическому удалению связанных записей в подчиненной таблице. Например, при удалении из таблицы «Клиенты» записи конкретного клиента будут автоматически удалены все связанные записи в таблице «Заказы» (а также записи в таблице «Заказано», связанные с записями в таблице «Заказы»). Если записи удаляются из формы или таблицы при установленном флажке Каскадное удаление связанных записей, Microsoft Access выводит предупреждение о возможности удаления связанных записей. Если же записи удаляются с помощью запроса на удаление, то Microsoft Access удаляет записи автоматически без вывода предупреждения.
Определение связей между таблицами
Связь между таблицами определяется путем добавления связываемых таблиц в окно «Схема данных» с последующим перетаскиванием ключевого поля из одной таблицы в другую. Также можно определять связи с помощью клавиатуры. Создавать или изменять связи между открытыми таблицами нельзя. Для определения связей между таблицами закройте все открытые таблицы.
Создание связей между таблицами. Установление связей между таблицами рассмотрим на конкретном примере – БД Library (библиотека), состоящей из двух таблиц: Книги и Читатели.
Имя поля |
Тип данных |
Размер поля, формат |
примечание |
Таблица Книги |
|||
Инвентарный номер |
Числовой |
Длинное целое |
Ключевое поле |
Автор |
Текстовый |
30 символов |
|
Название |
Текстовый |
50 символов |
|
Год издания |
Числовой |
Целое число |
|
Цена |
Числовой |
Одинарное с плавающей точкой |
|
Таблица Читатели |
|||
№ личного дела |
Текстовый |
10 символов |
Ключевое поле |
Фамилия |
Текстовый |
30 символов |
|
Имя |
Текстовый |
20 символов |
|
Адрес |
Текстовый |
50 символов |
|
Телефон |
Текстовый |
12 символов |
|
Класс |
Текстовый |
3 символа |
|
книга |
Числовой |
Длинное целое |
|
Установим связь между таблицами Книги и Читатели. Выберем команду Схема данных в меню Сервис. После этого раскроется пустое окно Схема данных, а в главном меню Access появится новый пункт меню Связи. Выбрав в меню Связи команду Добавить таблицу, в диалоговом окне Добавление таблицы выберем вкладку Таблицы. Выбирая из списка всех таблиц открытой БД Library и щелкая кнопку Добавить, добавим в окно схемы данных таблицы Книги и Читатели. Закроем окно Добавление таблицы, щелкнув кнопку Закрыть.
Примечания. Удерживая прижатой клавишу Ctrl, можно выделить (и добавить) сразу несколько таблиц.
Чтобы связать таблицу саму с собой, добавьте ее дважды. Это полезно, когда нужно создать поле подстановки, использующее значения этой же таблицы. Например, в таблице Сотрудники учебной БД Борей определена связь между полями КодСотрудника и Подчиняется, поэтому поле Подчиняется может отображать данные о сотруднике, имеющем соответствующее значение в поле КодСотрудника. После этого в окне Схема данных будут представлены две выбранных нами таблицы, между которыми устанавливается связь.
Для установления связи между двумя таблицами можно методом «Draq-and-Drop», переместить имя поля с первичным ключом главной таблицы (Инвентарный номер) на поле Книга подчиненной таблицы.
Как только вы отпустите левую кнопку мыши, на экране появится диалоговое окно Изменение связей. Для включения механизма поддержки целостности данных в связываемых таблицах установите флажок Обеспечение целостности данных.
После активации флажка Обеспечение целостности данных становятся доступными два флажка каскадных операций. Включим переключатели каскадной модификации – обновления и удаления связанных записей.
В группе Тип отношений выберем один-ко-многим. Завершим создание связи, щелкнув кнопку Создать. В окне Схема данных появится графическое изображение установленной связи. Пометки у концов линии связи 1-8 означают, что одна запись таблицы Книги может иметь сколько угодно связанных записей в таблице Читатели.
Закройте окно связи, сохранив изменения макета Схема данных.
Примечание. Если необходимо просмотреть все связи, определенные в БД, нажмите кнопку Отобразить все связи на панели инструментов. Для просмотра связей только для определенной таблицы выберете таблицу, а затем на панели инструментов нажмите кнопку Отобразить прямые связи.
Если нужно изменить структуру таблицы, щелкните таблицу правой кнопкой и выберете команду Конструктор таблиц.
Для того чтобы просмотреть связи, определенные для конкретной таблицы, выберете эту таблицу, а затем нажмите кнопку Отобразить прямые связи на панели инструментов.
Примечание. Если в окне схемы данных уже отображены все таблицы, связанные с выбранной таблицей, то нажатие кнопки Отобразить прямые связи не даст никаких результатов, поскольку при нажатии этой кнопки на экран только добавляются таблицы, связанные с текущей таблицей. Если требуется просмотреть прямую связь только с одной таблицей, нажмите кнопку Очистить макет на панели инструментов, чтобы удалить все таблицы из окна схемы данных (при этом таблицы и связи физически не удаляются, а только убираются из окна схемы данных). затем снова добавьте нужную таблицу в окно схемы данных и нажмите кнопку Отобразить прямые связи. Для добавления таблицы нажмите кнопку Отобразить таблицу на панели инструментов, дважды щелкните нужную таблицу, а затем нажмите кнопку Закрыть.
Изменение или удаление существующих связей. Изменять связи между открытыми таблицами нельзя. Закройте все открытые таблицы. Переключитесь в окно БД и нажмите кнопку Схема данных на панели инструментов. Если таблиц, связи которых нужно изменить, нет на экране, нажмите кнопку Отобразить таблицу на панели инструментов и дважды щелкните таблицы, которые нужно добавить. Дважды щелкните линию связи, которую необходимо изменить, и установите параметры связи. Для получения дополнительных сведений о конкретном параметре диалогового окна Изменение связей нажмите кнопку контекстной справки и щелкните нужный параметр.
Для удаления выделите линию связи, которую необходимо удалить (выделенная линия становится более толстой), а затем нажмите клавишу Delete и подтвердите удаление.
Удаление таблицы из окна «Схема данных». Выберете таблицу, которую необходимо удалить, а затем нажмите клавишу Delete. При этом из окна Схема данных удаляется таблица и ее линии связи. Это действие затрагивает только отображение в окне схемы данных. сама таблица и ее связи остаются в БД.
Печать окна схемы данных. Для создания отчета, отображающего связи между таблицами БД в том виде, как они показаны в окне схемы данных, Microsoft Access использует мастер схемы данных.
Для создания такого отчета при открытом окне Схема данных выберете в меню Файл команду Печать схемы данных. после этого раскроется окно отчета о связях между таблицами в текущей БД.
Закрыть окно отчета с сохранением, щелкнув кнопку Да в ответ на запрос Сохранить изменения макета отчета?, задав имя отчета, щелкнуть кнопку ОК.
Создание формы для связанных таблиц
Откроем БД Library. Выбрав объект Формы, щелкнем в правой области окна кнопку Создание формы с помощью мастера.
На первом шаге диалога мастера Создание форм выбрав таблицы Книги, а затем Читатели, включим в форму все поля таблицы Книги, а также все поля таблицы Учащиеся, кроме поля Книга (это поле дублирует поле Инвентарный номер таблицы Книги), и щелкнем кнопку Далее.
На следующем шаге диалога с мастером выберем вид представления данных, указав в качестве главной таблицу Книги и включив опцию Подчиненные формы. Щелкнув кнопку Далее, выберем внешний вид подчиненной формы – ленточный, далее выберем стиль оформления Чертеж. На следующих этапах диалога с мастером Создание форм зададим имя для каждой из связанных форм, выберем в качестве дальнейших действий вариант Открыть форму для просмотра и ввода данных. завершим создание форм, щелкнув кнопку Готово.
Для запуска щелкнем ярлычок главной формы Книги. После этого на экране раскроется окно формы Книги с подчиненной формой Читатели.
У главной и подчиненной форм имеются отдельные строки перехода по записям. При переходе в главной форме к другой книге в подчиненной форме выводятся данные о читателях этой книги. Если в такой форме ввести данные о книге и читателе, то они будут записаны в соответствующие таблицы.
Можно изменить, разработанную с помощью мастера Создание форм. Для этого закроем форму и, указав главную форму Книги, щелкнем кнопку Конструктор в панели инструментов. В режиме конструктора переместим и изменим размеры элементов управления, их свойства. Изменим надписи и другие параметры макета формы. Завершим редактирование, выбрав в меню Вид команду Режим формы.
Аналогично, с использованием мастеров и в режиме конструктора создаются и изменяются другие объекты БД, состоящей из связанных таблиц.