Upload
others
View
21
Download
0
Embed Size (px)
Citation preview
В.В. Гедранович, Ю.В. Змеева, И.Н. Тонкович
ТТЕЕХХННООЛЛООГГИИИИ ББААЗЗ ДДААННННЫЫХХ ИИ ЗЗННААННИИЙЙ
Учебно-методический комплекс
Минск Изд-во МИУ
2013
2
УДК 681.3(075.8) ББК 32.973я73
Г28
Р ец ен з ен т ы : Б.А. Железко, кандидат технических наук, доцент, заведующий ка-
федрой экономической информатики Белорусского государственного экономического университета;
С.Г. Шульдова, кандидат технических наук, доцент кафедры ин-формационных технологий и высшей математики Минского института управления
Рекомендован к изданию Научно-методическим советом Минского института управления (протокол № 3 от 27.12.2012).
Гедранович, В.В. Г28 Технологии баз данных и знаний: учебно-методический комплекс. /
Валентина Васильевна Гедранович, Юлия Викторовна Змеева, Ирина Николаевна Тонкович – Минск: Изд-во МИУ, 2013. – 188 с.: ил.
ISBN 978-985-490-852-6.
Учебно-методический комплекс предназначен для студентов эконо-мических специальностей, изучающих дисциплины «Компьютерные информационные технологии» и «Информационные технологии». Он содержит теоретический материал по дисциплине, примеры тестовых заданий для самоконтроля.
УМК может быть также использован аспирантами и магистрантами в качестве учебного пособия по дисциплине «Основы информационных технологий».
УДК 681.3(075.8) ББК 32.973я73
ISBN 978-985-490-852-6
© В.В. Гедранович, Ю.В. Змеева, И.Н. Тонкович, 2013 © Оформление. МИУ, 2013
3
ОГЛАВЛЕНИЕ
ВВЕДЕНИЕ.............................................................................................6 ТЕМАТИЧЕСКИЙ ПЛАН ПО РАЗДЕЛУ «ТЕХНОЛОГИИ БАЗ ДАННЫХ И ЗНАНИЙ» ............................................................................................7 1 ОРГАНИЗАЦИЯ ДАННЫХ В БАЗАХ ДАННЫХ ..............................8
1.1 ПРИЧИНЫ, ОБУСЛОВИВШИЕ ПОЯВЛЕНИЕ БАЗ ДАННЫХ ............................8 1.2 ФАЙЛОВАЯ ОРГАНИЗАЦИЯ ДАННЫХ В АИС, ЕЕ НЕДОСТАТКИ ...................8 1.3 ДОКУМЕНТАЛЬНЫЕ И ФАКТОГРАФИЧЕСКИЕ ИНФОРМАЦИОННЫЕ
СИСТЕМЫ ......................................................................................10 1.4 ПОНЯТИЕ БАЗЫ ДАННЫХ..................................................................11 ТЕСТ ДЛЯ САМОКОНТРОЛЯ..............................................................13
2 МОДЕЛИ ПРЕДСТАВЛЕНИЯ ДАННЫХ........................................15 2.1 ИЕРАРХИЧЕСКАЯ МОДЕЛЬ ДАННЫХ....................................................15 2.2 СЕТЕВАЯ МОДЕЛЬ ДАННЫХ...............................................................17 2.3 РЕЛЯЦИОННАЯ МОДЕЛЬ ДАННЫХ ......................................................18 ТЕСТ ДЛЯ САМОКОНТРОЛЯ..............................................................20
3 ПРОЕКТИРОВАНИЕ РЕЛЯЦИОННЫХ БАЗ ДАННЫХ .................22 3.1 АРХИТЕКТУРА БД. ФИЗИЧЕСКАЯ И ЛОГИЧЕСКАЯ НЕЗАВИСИМОСТЬ.
ЭТАПЫ ПРОЕКТИРОВАНИЯ БАЗ ДАННЫХ .............................................22 3.2 НОРМАЛИЗАЦИЯ ОТНОШЕНИЙ...........................................................25 3.3 ФИЗИЧЕСКОЕ ПРОЕКТИРОВАНИЕ .......................................................29 ТЕСТ ДЛЯ САМОКОНТРОЛЯ..............................................................31
4 СИСТЕМЫ УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ. ОБЩАЯ ХАРАКТЕРИСТИКА MICROSOFT ACCESS .........................................33
4.1 СУБД, ИХ ФУНКЦИОНАЛЬНЫЕ ВОЗМОЖНОСТИ. ОБЩАЯ ХАРАКТЕРИСТИКА MS ACCESS...................................................................................33
4.2 ЗАПУСК ACCESS И СОЗДАНИЕ ИЛИ ОТКРЫТИЕ БАЗ ДАННЫХ ...................35 4.3 СТРУКТУРА ОКНА ACCESS. СПРАВОЧНАЯ СИСТЕМА MS ACCESS.
ВЫХОД ИЗ ACCESS .........................................................................39 ТЕСТ ДЛЯ САМОКОНТРОЛЯ..............................................................42
5 ПРОЕКТИРОВАНИЕ ТАБЛИЦ И РАБОТА С НИМИ В СУБД MS ACCESS................................................................................................43
5.1 СОЗДАНИЕ ТАБЛИЦ В РЕЖИМЕ КОНСТРУКТОРА....................................43 5.2 СОЗДАНИЕ ТАБЛИЦ С ИСПОЛЬЗОВАНИЕМ МАСТЕРА ТАБЛИЦ ..................50
4
5.3 ОБЩИЕ СВЕДЕНИЯ О СВЯЗЯХ В БАЗЕ ДАННЫХ .....................................53 5.4 СРЕДСТВА УСКОРЕНИЯ ДОСТУПА К ДАННЫМ .......................................56 ТЕСТ ДЛЯ САМОКОНТРОЛЯ..............................................................57
6 ФОРМИРОВАНИЕ ЗАПРОСОВ В MS ACCESS............................60 6.1 ОБЩИЕ СВЕДЕНИЯ О ЗАПРОСАХ ........................................................60 6.2 МАСТЕР ПРОСТОГО ЗАПРОСА НА ВЫБОРКУ .........................................61 6.3 СОЗДАНИЕ ЗАПРОСА НА ВЫБОРКУ В РЕЖИМЕ КОНСТРУКТОРА ...............63 6.4 СОЗДАНИЕ ИТОГОВЫХ ЗАПРОСОВ .....................................................68 6.5 ЗАПРОСЫ ДЕЙСТВИЯ.......................................................................69 6.6 ПАРАМЕТРИЧЕСКИЕ ЗАПРОСЫ ..........................................................70 6.7 ПЕРЕКРЕСТНЫЕ ЗАПРОСЫ ...............................................................71 ТЕСТ ДЛЯ САМОКОНТРОЛЯ..............................................................74
7 ПРОЕКТИРОВАНИЕ ФОРМ В MS ACCESS..................................77 7.1 НАЗНАЧЕНИЕ ФОРМ. АВТОМАТИЧЕСКОЕ СОЗДАНИЕ ФОРМ ....................77 7.2 СОЗДАНИЕ ФОРМ С ПОМОЩЬЮ МАСТЕРА ...........................................82 7.3 СОЗДАНИЕ ФОРМ С ПОМОЩЬЮ КОНСТРУКТОРА...................................90 7.4 КНОПОЧНЫЕ ФОРМЫ .......................................................................97 ТЕСТ ДЛЯ САМОКОНТРОЛЯ..............................................................99
8 ОТЧЕТЫ В MS ACCESS.............................................................. 101 8.1 ПРОЕКТИРОВАНИЕ ОТЧЕТОВ В MS ACCESS ......................................101 8.2 СПОСОБЫ СОЗДАНИЯ ОТЧЕТА ........................................................ 102 8.3 ПЕЧАТЬ ОТЧЕТОВ .........................................................................109 ТЕСТ ДЛЯ САМОКОНТРОЛЯ............................................................ 110
9 СОЗДАНИЕ МАКРОСОВ В MS ACCESS И РАБОТА С НИМИ ...112 9.1 ОСНОВНЫЕ ПОНЯТИЯ....................................................................112 9.2 РАБОТА С МАКРОСАМИ ИЛИ ГРУППОЙ МАКРОСОВ............................... 114 ТЕСТ ДЛЯ САМОКОНТРОЛЯ............................................................ 118
10 СОВМЕСТНАЯ РАБОТА MS ACCESS И ПРИЛОЖЕНИЙ MS OFFICE.......................................................................................... 120
10.1 ИНТЕГРАЦИЯ MS ACCESS И MS EXCEL ...........................................120 10.2 ИНТЕГРАЦИЯ MS ACCESS И MS WORD ...........................................122 ТЕСТ ДЛЯ САМОКОНТРОЛЯ............................................................ 125
5
11 ВВЕДЕНИЕ В ЯЗЫК SQL............................................................ 127 11.1 ЯЗЫК SQL, ЕГО ФУНКЦИОНАЛЬНЫЕ ВОЗМОЖНОСТИ .......................... 127 11.2 СТРУКТУРА КОМАНДЫ SQL, ТИПЫ ДАННЫХ ......................................128 11.3 ОСНОВНЫЕ ИНСТРУКЦИИ ЯЗЫКА..................................................... 130 ТЕСТ ДЛЯ САМОКОНТРОЛЯ............................................................ 139
12 АДМИНИСТРИРОВАНИЕ БАЗ ДАННЫХ....................................140 12.1 ПОНЯТИЕ ПОЛЬЗОВАТЕЛЯ И АДМИНИСТРАТОРА БАЗЫ ДАННЫХ.
МЕТОДЫ ЗАЩИТЫ БАЗЫ ДАННЫХ..................................................... 140 12.2 СОЗДАНИЕ РЕЗЕРВНЫХ КОПИЙ БАЗЫ ДАННЫХ. СЖАТИЕ БАЗЫ ДАННЫХ.
ВОССТАНОВЛЕНИЕ БАЗЫ ДАННЫХ ................................................... 145 12.3 ОПТИМИЗАЦИЯ РАБОТЫ БАЗЫ ДАННЫХ ............................................149 12.4 УСТАНОВКА ПАРАМЕТРОВ ЗАПУСКА БАЗЫ ДАННЫХ ............................. 150 ТЕСТ ДЛЯ САМОКОНТРОЛЯ............................................................ 153
13 МОДЕЛИ ПРЕДСТАВЛЕНИЯ ЗНАНИЙ.......................................156 13.1 ЗНАНИЯ. ИХ ВИДЫ. БАЗЫ ЗНАНИЙ................................................... 156 13.2 МОДЕЛИ ПРЕДСТАВЛЕНИЯ ЗНАНИЙ ..................................................159 13.3 КРАТКИЕ СВЕДЕНИЯ О ФОРМАЛЬНЫХ ЛОГИЧЕСКИХ МОДЕЛЯХ...............166 ТЕСТ ДЛЯ САМОКОНТРОЛЯ............................................................ 167
14 СИСТЕМЫ ОБРАБОТКИ МНОГОПОЛЬЗОВАТЕЛЬСКИХ БАЗ ДАННЫХ............................................................................................. 170
14.1 ТЕХНОЛОГИИ СЕТЕВОЙ ОБРАБОТКИ ДАННЫХ.....................................170 14.2 СИСТЕМЫ УПРАВЛЕНИЯ РАСПРЕДЕЛЕННЫМИ БАЗАМИ ДАННЫХ ............173 14.3 ХРАНИЛИЩА ДАННЫХ. ТЕХНОЛОГИИ ОБРАБОТКИ ХРАНИЛИЩ ДАННЫХ...177 ТЕСТ ДЛЯ САМОКОНТРОЛЯ............................................................ 181
ПРИМЕРНЫЕ ТЕСТОВЫЕ ЗАДАНИЯ К ПРАКТИЧЕСКОЙ ЧАСТИ ЭКЗАМЕНА......................................................................................... 183
6
ВВЕДЕНИЕ
Учебно-методический комплекс (УМК) предназначен для студентов экономических специальностей, изучающих дисциплины «Компьютер-ные информационные технологии» и «Информационные технологии». УМК может быть использован в качестве учебного пособия по дисцип-лине «Основы информационных технологий» аспирантами и магистрантами.
Материал, представленный в УМК, поможет студентам изучить кон-цепции моделирования данных, принципы организации баз данных и их проектирования, назначение, архитектуру и функциональные возмож-ности современных систем управления базами данных (СУБД), воз-можности языка баз данных SQL, технологии обработки многопользо-вательских баз данных, овладеть методами и средствами работы с ба-зами данных.
В УМК рассматриваются вопросы, касающиеся раздела «Техноло-гии баз данных и знаний» типовой учебной программы для высших учебных заведений по дисциплине «Компьютерные информационные технологии». Целью изучения этого раздела является получение зна-ний о современных технологиях организации, хранения и обработки данных, приобретение навыков по созданию баз данных и работе с ни-ми.
Изучение материала этого раздела основано на использовании зна-ний, умений и навыков, полученных студентами после усвоения мате-риала первого раздела «Техническое и программное обеспечение ин-формационных технологий». Знания, умения и навыки, приобретенные в ходе изучения материала учебно-методического комплекса, позволят студентам эффективно использовать современное прикладное про-граммное обеспечение в процессе решения учебных, научных и прак-тических задач, станут основой для усвоения материала третьего раз-дела учебной программы «Корпоративные информационные системы».
Главы 1–8, примерные тестовые задания к практической части экза-мена написаны В.В. Гедранович, 9, 10, 12 – Ю.В. Змеевой, 11, 13, 14 – И.Н. Тонкович.
7
ТЕМАТИЧЕСКИЙ ПЛАН ПО РАЗДЕЛУ «ТЕХНОЛОГИИ БАЗ ДАННЫХ И ЗНАНИЙ»*
Лекционный курс: 1. Организация данных в базах данных (2 ч.) 2. Модели представления данных (2 ч.) 3. Проектирование реляционных баз данных (2 ч.) 4. Системы управления базами данных. Общая характеристика
Microsoft Access (2 ч.) 5. Создание БД в СУБД MS Access. Проектирование таблиц и ра-
бота с ними (2 ч.) 6. Формирование запросов в СУБД MS Access (4 ч.) 7. Проектирование форм и отчетов в СУБД MS Access (2 ч.) 8. Макросы в СУБД MS Access. Совместная работа СУБД MS
Access с другими компонентами MS Office (2 ч.) ** 9. Введение в язык SQL. Администрирование баз данных (4 ч.) ** 10. Модели представления знаний (2 ч.) 11. Системы обработки многопользовательских баз данных (2 ч.) **
Лабораторные занятия: 1. Проектирование реляционных баз данных (2 ч.) 2. Создание БД в СУБД MS Access. Проектирование таблиц и ра-
бота с ними (4 ч.) 3. Формирование запросов в СУБД MS Access (4 ч.) 4. Проектирование форм в СУБД MS Access и работа с ними (2
ч.) 5. Проектирование отчетов в СУБД MS Access (2 ч.) 6. Макросы в СУБД MS Access (2 ч.) 7. Совместная работа СУБД MS Access с другими приложениями
MS Office (4 ч.) 8. Проектирование и создание БД. Проектирование объектов БД
и работа с ними (6 ч.)**
* Тематический план составлен на основе типовой учебной программы для выс-ших учебных заведений по дисциплине «Компьютерные информационные тех-нологии», регистрационный номер № УД-ТД 181 / тип. от 23.12.2009. ** Тема выносится на управляемую самостоятельную работу. Форма контроля – тестирование по теоретическим основам, защита индивидуальных заданий.
8
1 ОРГАНИЗАЦИЯ ДАННЫХ В БАЗАХ ДАННЫХ
1.1 Причины, обусловившие появление баз данных В истории вычислительной техники можно проследить развитие
двух основных областей ее использования. Первая область – применение вычислительной техники для вы-
полнения сложных расчетов. Развитие этой области способствовало: - интенсификации методов численного решения сложных матема-
тических задач; - появлению языков программирования, ориентированных на удоб-
ную запись численных алгоритмов; - становлению обратной связи с разработчиками новых архитектур
ЭВМ. Характерной особенностью данной области является наличие
сложных алгоритмов обработки информации, которые применяются к простым по структуре данным, объем которых сравнительно невелик.
Вторая область – это использование средств вычислительной тех-ники в автоматизированных информационных системах (АИС).
Информационная система представляет собой программ-но-аппаратный комплекс, обеспечивающий выполнение следующих функций:
- надежное хранение информации в памяти компьютера; - выполнение специфических для данного приложения преобразо-
ваний информации и вычислений; - предоставление пользователям удобного и легко осваиваемого
интерфейса. Обычно такие системы работают с большими объемами информа-
ции, имеющими достаточно сложную структуру. Примеры информационных систем: - банковские системы, - автоматизированные системы управления предприятиями, - системы резервирования мест в гостиницах, авиационных и же-
лезнодорожных билетов, - информационно-поисковые системы и т.п.
1.2 Файловая организация данных в АИС, ее недостатки
В 60-е годы до появления ЭВМ третьего поколения обработка дан-ных осуществлялась в основном при помощи операций ввода-вывода. Файлы при такой обработке были организованы последовательным способом. При этом физическая структура данных и логическая струк-тура файла совпадали.
9
Пользователям файл в этой ситуации представляется как линейная последовательность записей, где структура записи файла известна только программе, которая с ним работает, поскольку эта структура содержится только в ней.
С точки зрения прикладной программы, файл – это именованная область внешней памяти, в которую можно записывать и из которой можно считывать данные. Пользователи могли выполнять над ним ряд стандартных операций:
- создать файл (требуемого типа и размера); - открыть ранее созданный файл; - прочитать из файла некоторую запись (текущую, следующую,
предыдущую, первую, последнюю); - записать в файл на место текущей записи новую, добавить новую
запись в конец файла. В разных файловых системах эти операции могли немного отли-
чаться. Для того чтобы извлечь некоторую информацию из файла, необходи-
мо было знать структуру его записи с точностью до бита. При изменении структуры файла требовалось изменять программу. Этот недостаток файловых систем явился толчком к созданию новых систем хранения и обработки данных.
Так как с одной программой мог работать не один пользователь, то следовало организовывать авторизацию доступа к файлу. Авторизация доступа к файлам (какие действия с файлом может производить тот или иной пользователь) в основном выполняется его создателем–владельцем (программистом). Для множества файлов, отражающих информационную модель одной предметной области, такой децентра-лизованный принцип управления доступом вызывал трудности и по-служил еще одной причиной разработки систем управления базами данных.
Важным шагом в развитии информационных систем является пере-ход к использованию централизованных систем управления файлами.
Необходимость обеспечения эффективной работы многих пользо-вателей с одним и тем же файлом стала следующей причиной созда-ния нового подхода к управлению данными.
В файловых системах одновременная работа нескольких пользова-телей, связанная с модификацией данных в файле, либо вообще не реализовывалась, либо была замедленной.
Эти недостатки послужили тем толчком, который заставил разра-ботчиков информационных систем предложить новый подход к управ-лению информацией. Он был реализован в рамках новых программных систем, названных впоследствии системами управления базами дан-ных (СУБД).
10
1.3 Документальные и фактографические информационные системы
Первые АИС работали преимущественно с информацией фактиче-ского характера, например, характеристиками объектов и их связей. По мере «интеллектуализации» АИС появилась возможность обрабаты-вать текстовые документы на естественном языке, изображения и дру-гие виды и форматы представления данных.
Несмотря на то, что принципы хранения данных в системах обра-ботки фактической и документальной (текстовой) информации схожи, алгоритмы обработки в них заметно различаются. Поэтому в зависимо-сти от характера информационных ресурсов, которыми оперируют та-кие системы, принято различать два крупных их класса – докумен-тальные и фактографические.
Документальные системы служат для работы с документами на ес-тественном языке – монографиями, публикациями в периодике, сооб-щениями пресс-агентств, текстами законодательных актов и др. Наибо-лее распространенный тип документальных систем – информационно-поисковые системы (ИПС), предназначенные для накопления и поиска по различным критериям документов на естественном языке.
Другой большой класс автоматизированных систем – фактографи-ческие системы. Они оперируют фактическими сведениями, представ-ленными в виде специальным образом организованных совокупностей формализованных записей данных. Центральное функциональное зве-но фактографических информационных систем – системы управления базами данных (СУБД). Фактографические системы используются не только для реализации справочных функций, но и для решения задач обработки данных.
Задачи, связанные с обработкой данных, широко распространены в любой сфере деятельности. Они ведут учет товаров в супермаркетах и на складах, начисляют зарплату в бухгалтериях и т.д. Невозможно представить себе деятельность современного предприятия или учреж-дения без использования АИС. Эти системы составляют фундамент информационной деятельности во всех сферах, начиная с производст-ва, управления финансами и телекоммуникациями и заканчивая управ-лением семейным бюджетом.
Массивы информации, накопленные в АИС, должны быть оптималь-ным образом организованы для их компьютерного хранения и обработ-ки, должна обеспечиваться их целостность и непротиворечивость. Ис-пользуя функции стандартных файловых систем, невозможно добиться нужной производительности при решении подобных задач, поэтому все автоматизированные информационные системы опираются на СУБД.
11
1.4 Понятие базы данных В широком смысле слова база данных – это совокупность сведений
о конкретных объектах реального мира в какой-либо предметной об-ласти.
Объектом может быть предмет, вещество, событие, лицо, явле-ние, т.е. все то, что может характеризоваться набором значений неко-торой совокупности атрибутов.
Например, телефонный справочник, личные дела сотрудников, биб-лиотечные каталоги.
Предметная область – часть реального мира, например, пред-приятие, библиотека, вуз и т.д.
Данные могут представляться разными способами: неструктуриро-ванно и структурированно.
Структурирование – это введение соглашений о способах пред-ставления данных.
Пример 1
Cкрабова Марина, группа 91001, оценка по дисциплине КИТ – шесть; Бибик Сергей, группа 91001, оценка по дисциплине КИТ – семь; Белозор Дмитрий, группа 91001, оценка по дисциплине КИТ – девять.
При использовании неструктурированных данных трудно осуществ-лять поиск необходимых данных, практически невозможно упорядочить информацию.
Пример 2 Фамилия Имя Группа Оценка по дисциплине КИТ
Скрабова Марина 91001 шесть Бибик Сергей 91001 семь Белозор Дмитрий 91001 девять
База данных – это именованная совокупность структурированных данных, относящихся к определенной предметной области.
БД должна обладать определенными свойствами: - многократное использование; - быстрый поиск и получение информации по запросам; - простота обновления; - уменьшение избыточности данных; - защита от несанкционированного доступа; - защита от уничтожения данных; - максимальная независимость от прикладных программ. Обеспечивает выполнение этих и других свойств, предоставляет
различные информационные услуги пользователям система управле-ния базами данных.
12
Обслуживанием базы данных занимается группа лиц, называемая администратором БД.
Функции администратора: - защита данных; - сохранение БД; - разрешение доступа и т.д. По технологии обработки данных БД подразделяются на цен-
трализованные и распределенные. Централизованная база данных хранится в памяти одной вычис-
лительной системы. Если эта вычислительная система является ком-понентом сети ЭВМ, возможен распределенный доступ к такой базе. Такой способ часто применяется в ЛС (локальных сетях).
Распределенная БД состоит из нескольких пересекающихся или даже дублирующих друг друга частей, хранимых в различных ЭВМ ком-пьютерной сети.
По способу доступа к данным БД разделяются на БД с локальным доступом и БД с удаленным (сетевым) доступом.
Существуют различные архитектуры систем централизованных БД с сетевым доступом: файл-сервер, клиент-сервер.
Файл-сервер. На сервере файлов (центральной машине) хранится БД. Обработка файлов БД производится на рабочих станциях.
Клиент-сервер. На центральной машине (сервере БД) хранятся файлы БД и здесь же выполняется обработка данных. На рабочие станции передаются только извлеченные данные, а не файлы.
Спецификой данной архитектуры является использование языка за-просов, например SQL (Stuctured Query Language – язык структурных запросов).
Литература 1. Информатика: учебник / под ред. проф. Н.В. Макаровой. – М.: Фи-
нансы и статистика, 1997. – 768 с. 2. Корнеев, В.В. Базы данных. Интеллектуальная обработка инфор-
мации / В.В. Корнеев, А.Ф. Гареев, С.В. Васютин, В.В. Райх. – М.: Нолидж, 2000. – 352 с.
3. Карпова, Т.С. Базы данных: модели, разработка, реализация / Т.С. Карпова. – СПб.: Питер, 2001. – 304 с.
4. Петров, В.Н. Информационные системы / В.Н. Петров. – СПб.: Пи-тер, 2002. – 688 с.
5. Малыхина, М.П. Базы данных: основы, проектирование, использо-вание / М.П. Малыхина. – СПб.: БХВ-Петербург, 2004. – 512 с.
6. Гедранович, В.В. Технологии организации, хранения и обработки данных: учеб.-метод. комплекс / В.В. Гедранович, Ю.В. Змеева. – Минск: Изд-во МИУ, 2004. – 160 с.
13
ТЕСТ ДЛЯ САМОКОНТРОЛЯ 1. Информационные системы можно разделить на 2 крупных класса:
a) документальные и графические b) документальные и фактографические c) графические и фактографические d) документальные и текстовые
2. Существуют два способа представления данных: a) структурированный и строгий b) структурированный и объемный c) структурированный и неструктурированный
3. В функции администратора БД входит: a) наполнение БД b) редактирование данных c) сохранение БД d) разрешение доступа к данным e) защита данных
4. База данных – это ... a) часть реального мира, например, предприятие, библиотека, вуз
и т.д. b) именованная совокупность данных, отражающая состояние
объектов и их отношений в рассматриваемой предметной об-ласти
c) система, которая работает с большими объемами информа-ции, имеющими достаточно сложную структуру
5. Фактографические системы оперируют ... a) структурой записи файлов с точностью до бита b) текстовыми документами, для которых авторизирован доступ c) фактографическими сведениями, представленными в виде
специальным образом организованных совокупностей форма-лизованных записей данных
6. Документальные системы служат ... a) для работы только с файлами b) для работы с документами, представленными в виде специ-
альным образом организованных совокупностей формализо-ванных записей данных
c) для работы с документами на естественном языке 7. Информационная система выполняет следующие функции:
a) надежное хранение информации в памяти компьютера b) анализ и прогноз макроэкономических показателей c) обеспечение целостности банковской информации d) выполнение специфических для данного приложения преобра-
зований информации и вычислений e) предоставление пользователям удобного и легко осваиваемого
интерфейса
14
8. Обслуживанием БД занимается группа лиц, называемая ... a) руководителем БД b) администрацией БД c) администратором БД
9. По технологии обработки данных БД подразделяются на: a) локальные и сетевые b) централизованные и нецентрализованные c) централизованные и распределенные d) централизованные и периферийные
10. По способу доступа к данным БД разделяются на: a) БД с периферийным доступом и БД с глобальным доступом b) БД с локальным доступом и БД с сетевым доступом c) БД с локальным доступом и БД с международным доступом
11. Централизованная БД хранится в памяти ... a) не менее 5 вычислительных машин b) одной вычислительной машины c) двух вычислительных машин
15
2 МОДЕЛИ ПРЕДСТАВЛЕНИЯ ДАННЫХ
2.1 Иерархическая модель данных Одними из основополагающих в концепции баз данных являются ка-
тегории «данные» и «модель данных». Модель данных – это совокупность взаимосвязанных структур дан-
ных и операций над этими структурами. По способу установления связей между данными наиболее распро-
странёнными являются иерархическая, сетевая и реляционная мо-дели данных.
Теоретико-графовые модели данных отражают совокупность объектов реального мира в виде графа взаимосвязанных информаци-онных объектов. В зависимости от типа графа выделяют иерархиче-скую или сетевую модели.
Иерархическая модель данных является наиболее простой среди всех даталогических моделей. Основными информационными едини-цами в иерархической модели являются: база данных (БД), сегмент и поле. Поле определяется как минимальная, неделимая единица дан-ных, доступная пользователю с помощью СУБД.
Сегмент в терминологии Американской ассоциации по базам данных называется записью, при этом в рамках иерархической модели опреде-ляются два понятия: тип сегмента, или тип записи, и экземпляр сег-мента, или экземпляр записи.
Тип сегмента – это поименованная совокупность типов элементов данных, в него входящих. Экземпляр сегмента образуется из кон-кретных значений полей или элементов данных, в него входящих. Для возможности различия отдельных записей в данном наборе каждый тип сегмента должен иметь ключ или набор ключевых атрибутов (полей, элементов данных). Ключом называется набор элементов данных, од-нозначно идентифицирующих экземпляр сегмента.
В иерархической модели сегменты объединяются в ориентирован-ный древовидный граф. При этом полагают, что направленные ребра графа отражают иерархические связи между сегментами: каждый сег-мент связан с одним или несколькими на более низком уровне, и только с одним на более высоком уровне. Сегмент, находящийся на более высоком уровне иерархии, называется логически исходным по отно-шению к сегментам, соединенным с ним направленными иерархиче-скими ребрами, которые в свою очередь называются логически под-чиненными по отношению к этому сегменту (рисунок 2.1). Иногда ис-ходные сегменты называют сегментами-предками, а подчиненные сегменты называют сегментами-потомками.
16
Рисунок 2.1 – Пример иерархических связей между сегментами
Схема иерархической БД представляет собой совокупность отдель-ных деревьев, каждое дерево в рамках модели называется физической базой данных. Каждая физическая БД удовлетворяет следующим ие-рархическим ограничениям:
- в каждой физической БД существует один корневой сегмент, то есть сегмент, у которого нет логически исходного (родительского) типа сегмента;
- каждый логически исходный сегмент может быть связан с произ-вольным числом логически подчиненных сегментов;
- каждый логически подчиненный сегмент может быть связан только с одним логически исходным (родительским) сегментом.
Очень важно понимать различие между сегментом и типом сегмента – оно такое же, как между типом переменной и самой переменной: сег-мент является экземпляром типа сегмента. Например, у нас может быть тип сегмента Группа (Номер, Староста) и сегменты этого типа, такие как (30501, Петров Ф.И.) или (30803, Кустова Т.С.).
Каждый тип сегмента может иметь множество соответствующих ему экземпляров. Между экземплярами сегментов также существуют иерархические связи.
На рисунке 2.2 представлены два экземпляра иерархического дере-ва соответствующей структуры:
1b
2a1a
2b
1d
3b
1e2d
1c
5b4b 2c
3c
3d4d 4e
3e2e
Рисунок 2.2 – Пример двух экземпляров иерархического дерева
Экземпляры-потомки одного типа, связанные с одним экземпля-ром сегмента-предка, называют «близнецами». Так, для нашего примера экземпляры b1, b2 и b3 являются «близнецами», но экзем-
17
пляр b4 подчинен другому экземпляру родительского сегмента и не является «близнецом» по отношению к экземплярам b1, b2 и b3. Набор всех экземпляров сегментов, подчиненных одному экземпля-ру корневого сегмента, называется физической записью. Количество экземпляров-потомков может быть разным для разных экземпляров родительских сегментов, поэтому в общем случае физические запи-си имеют разную длину. Используя принцип линейной записи иерар-хических графов, пример на рисунке 2.2 можно представить в виде двух записей:
a1 b1 b2 b3 c1 d1 d2 e1 a2 b4 b5 c2 c3 d3 d4 e2 e3 e4 Запись 1 Запись 2
Как видно из нашего примера, физические записи в иерархической модели различаются по длине и структуре.
Рисунок 2.3 – Пример иерархической структуры БД
Основные достоинства иерархической модели – простота описания иерархических структур реального мира, гибкие возможности организа-ции поиска.
Недостатки иерархической модели: - в этой модели не предусмотрена поддержка соответствия между
парными записями; - модель реализует отношение между исходной и дочерней запи-
сью по схеме 1:N, то есть одной родительской записи может соот-ветствовать любое число дочерних. Т.о., приходится дублировать информацию;
- сложно структурировать данные в больших БД.
2.2 Сетевая модель данных Если в модели каждый порожденный элемент может иметь более
одного исходного, то такая модель называется сетевой. Сетевая мо-дель представляет структуру, у которой любой элемент может быть связан с любым другим без каких-либо ограничений (рисунок 2.4). Се-тевая база данных состоит из набора записей, соответствующих каж-дому экземпляру объекта предметной области, и набора связей между ними.
18
Рисунок 2.4 – Графическое изображение сетевой структуры
Так, например, информация об участии студентов в научно–исследовательской работе может быть представлена в сетевой БД (ри-сунок 2.5). В данном примере сетевая модель хорошо отражает то, что в научно-исследовательской работе по одному направлению могут уча-ствовать разные студенты, и в то же время каждый студент может уча-ствовать в различных направлениях научно-исследовательской работы.
Рисунок 2.5 – Пример сетевой структуры БД
К достоинствам сетевой модели можно отнести гибкость организа-ции БД, а к недостаткам – некомпактное хранение данных, сложность отбора, высокую степень зависимости от конкретных данных.
2.3 Реляционная модель данных В реляционных базах данных вся информация представляется в
виде прямоугольных таблиц. Реляционная модель была разработана Эдгаром Коддом в начале 70-х годов XX века. Будучи математиком по образованию, Кодд предложил использовать для обработки данных аппарат теории множеств (объединение, пересечение, разность, декар-тово произведение). Он показал, что любое представление данных сводится к совокупности двумерных таблиц особого вида, известной в математике как отношение (на английском языке – relation, отсюда и название – реляционные базы данных).
Одна из главных идей Кодда заключалась в том, что связь между данными должна устанавливаться в соответствии с их внутренними логическими взаимоотношениями.
Второй важный принцип, предложенный Коддом, заключается в том, что в реляционных системах одной командой могут обрабатываться целые файлы данных, в то время как в ранних СУБД одной командой
19
обрабатывалась только одна запись. Реализация этого принципа суще-ственно повысила эффективность программирования баз данных.
Реализация реляционных принципов в СУБД сделала возможным разработку простых языков запросов, доступных для изучения пользо-вателями, не являющимися специалистами в области программирова-ния. Таким образом, благодаря снижению требований к квалификации существенно расширился круг пользователей баз данных.
Одним из основных преимуществ реляционной модели является ее однородность. Все данные рассматриваются как хранимые в таблицах и только в таблицах. Операции над реляционной базой данных сводят-ся к манипуляциям с таблицами. Таблица состоит из строк и столбцов и имеет имя, уникальное внутри базы данных. Каждая таблица обладает следующими свойствами:
- каждый элемент таблицы – один элемент данных; - все столбцы в таблице однородны, т.е. все элементы одного
столбца (поля) имеют одинаковый тип (числовой, текстовый и т.д.) и длину;
- каждый столбец имеет уникальное имя; - одинаковые строки (записи) в таблице отсутствуют; - порядок следования строк и столбцов может быть произвольным. Любая таблица может иметь один или несколько столбцов, значения
в которых однозначно идентифицируют каждую ее строку. Такой стол-бец (или комбинация столбцов) называется первичным ключом. В таблице не должно быть строк, имеющих одно и то же значение пер-вичного ключа. Если таблица удовлетворяет этому требованию, она называется отношением.
Взаимосвязь таблиц в реляционной модели поддерживается внеш-ними ключами. Внешний ключ – это столбец (столбцы), значения кото-рого однозначно характеризуют записи другой таблицы (отношения), то есть задают значения их первичного ключа. Благодаря наличию связей между таблицами обеспечивается целостность данных. Пример
Рисунок 2.6 – Пример реляционной модели
СТУДЕНТ (Номер, Фамилия, Имя, Отчество, Группа, Дата, …) СЕССИЯ (Номер, Оц1, Оц2, Оц3, Оцn,…, Результат)
20
ПРИКАЗ (Результат, Приказ). Таблицы СТУДЕНТ и СЕССИЯ имеют совпадающие ключи Номер,
что дает возможность легко организовать связь между ними. Таблица СЕССИЯ имеет первичный ключ Номер и внешний ключ Результат, который обеспечивает ее связь с таблицей ПРИКАЗ.
В настоящее время реляционная модель данных получила очень широкое распространение и фактически её можно рассматривать как стандарт СУБД для современных информационных систем.
Литература 1. Информатика: учебник / под ред. проф. Н.В. Макаровой. – М.: Фи-
нансы и статистика, 1997. – 768 с. 2. Корнеев, В.В. Базы данных. Интеллектуальная обработка инфор-
мации / В.В. Корнеев, А.Ф. Гареев, С.В. Васютин, В.В. Райх. – М.: Нолидж, 2000. – 352 с.
3. Карпова, Т.С. Базы данных: модели, разработка, реализация / Т.С. Карпова. – СПб.: Питер, 2001. – 304 с.
4. Петров, В.Н. Информационные системы / В.Н. Петров. – СПб.: Пи-тер, 2002. – 688 с.
5. Малыхина, М.П. Базы данных: основы, проектирование, использо-вание / М.П. Малыхина. – СПб.: БХВ-Петербург, 2004. – 512 с.
6. Гедранович, В.В. Технологии организации, хранения и обработки данных: учеб.-метод. комплекс / В.В. Гедранович, Ю.В. Змеева. – Минск: Изд-во МИУ, 2004. – 160 с.
ТЕСТ ДЛЯ САМОКОНТРОЛЯ 1. Совокупность взаимосвязанных структур данных и операций над
этими структурами называют: a) ключом b) сегментом c) экземпляром сегмента d) моделью данных
2. Теоретико-графовые модели данных подразделяются на: a) сетевые и теоретико-множественные модели b) иерархические и сетевые модели c) иерархические и дескрипторные модели d) иерархические и объектно-ориентированные
3. К основным достоинствам иерархической модели относят a) простоту в конструировании данных в больших БД b) простоту описания иерархических структур реального мира c) гибкие возможности организации поиска
4. Основными информационными единицами в иерархической моде-ли являются: a) круг
21
b) сектор c) сегмент d) шар e) БД f) поле
5. Минимальная неделимая единица данных, доступная пользовате-лю с помощью СУБД: a) круг b) сектор c) сегмент d) шар e) БД f) поле
6. Основным недостатком иерархической модели является ... a) сложность структурирования данных в больших БД b) сложность описания иерархических структур реального мира c) сложность в организации поиска
7. Если в модели каждый порожденный элемент имеет более одного исходного, то такая модель называется ... a) иерархической моделью b) реляционной моделью c) сетевой моделью
8. В реляционных системах одной командой могут обрабатываться ... a) не более пяти записей b) только одна запись c) целые файлы данных
9. К недостаткам сетевой модели можно отнести ... a) некомпактное хранение данных b) гибкость организации БД c) сложность отбора данных
10. Столбец таблицы, значения в котором однозначно идентифициру-ют каждую строку, называют ... a) первичным ключом b) внешним ключом
11. Если в модели каждый сегмент связан с одним или несколькими на более низком уровне, и только с одним на более высоком уровне, то такая модель называется ... a) иерархической моделью b) реляционной моделью c) сетевой моделью
22
3 ПРОЕКТИРОВАНИЕ РЕЛЯЦИОННЫХ БАЗ ДАННЫХ
3.1 Архитектура БД. Физическая и логическая независимость. Этапы проектирования баз данных
В процессе научных исследований, посвященных тому, как именно должна быть устроена СУБД, предлагались различные способы реали-зации. Самым жизнеспособным из них оказалась трехуровневая систе-ма организации БД, изображенная на рисунке 3.1.
Рисунок 3.1 – Трехуровневая система организации БД
1. Уровень внешних моделей – самый верхний уровень, где каж-дая модель имеет свое «видение» данных. Этот уровень определяет точку зрения на БД отдельных приложений. Каждое приложение видит и обрабатывает только те данные, которые необходимы именно этому приложению. Например, при работе с БД по студентам, бухгалтерию не интересует успеваемость студентов, а только вопросы, связанные со своевременной оплатой.
2. Концептуальный уровень – центральное управляющее звено, здесь база данных представлена в наиболее общем виде, который объединяет данные, используемые всеми приложениями, работающи-ми с этой базой данных. Фактически концептуальный уровень отражает обобщенную модель предметной области (объектов реального мира), для которой создавалась база данных. Как любая модель, концепту-
23
альная модель отражает только существенные, с точки зрения обра-ботки, особенности объектов реального мира.
3. Физический уровень – собственно данные, расположенные в файлах или в страничных структурах, которые хранятся на внешних носителях информации.
Эта архитектура позволяет обеспечить логическую (между уровнями 1 и 2) и физическую (между уровнями 2 и 3) независимость при работе с данными. Логическая независимость предполагает возможность из-менения одного приложения без корректировки других приложений, работающих с этой же базой данных. Физическая независимость пред-полагает возможность переноса хранимой информации с одних носи-телей на другие при сохранении работоспособности всех приложений, работающих с конкретной базой данных. Это именно то, чего не хвата-ло при использовании файловых систем.
Выделение концептуального уровня позволило разработать аппарат централизованного управления базой данных.
Наибольший интерес вызывают модели данных, используемые на концептуальном уровне. По отношению к ним внешние модели называ-ются подсхемами и используют те же абстрактные категории, что и кон-цептуальные модели данных.
Кроме трех рассмотренных уровней при проектировании БД сущест-вует еще один уровень, предшествующий им. Модель этого уровня должна выражать информацию о предметной области в независимом от используемой СУБД виде. Эти модели называются инфологиче-скими, или семантическими.
Естественно, что проект базы данных надо начинать с анализа предметной области и выявления требований к ней отдельных пользо-вателей (сотрудников организации, для которых создается база дан-ных).
Инфологическая модель (информационно-логическая модель) отображает реальный мир в некоторые понятные человеку концепции, такая человеко-ориентированная модель полностью независима от физических параметров среды хранения данных. В конце концов, этой средой может быть память человека, а не ЭВМ. Поэтому инфологиче-ская модель не должна изменяться до тех пор, пока какие-то изменения в реальном мире не потребуют изменения в ней некоторого определе-ния, чтобы эта модель продолжала отражать предметную область.
Цель инфологического моделирования – обеспечение наиболее есте-ственных для человека способов сбора и представления той информа-ции, которую предполагается хранить в создаваемой базе данных. По-этому инфологическую модель данных пытаются строить по аналогии с естественным языком (последний не может быть использован в чистом виде из-за сложности компьютерной обработки текстов и неоднозначно-сти любого естественного языка).
Остальные модели, показанные на рисунке 3.2, являются компью-теро-ориентированными.
24
Рисунок 3.2 – Этапы проектирования БД
Итак, инфологические модели используются на ранних стадиях про-ектирования для описания структур данных в процессе разработки при-ложения, а даталогические модели уже поддерживаются конкретной СУБД.
Даталогические модели разделяют на документальные и факто-графические. Отдельные фактографические модели были рассмотре-ны в предыдущей теме.
Документальные модели данных соответствуют представлению о слабоструктурированной информации, ориентированной в основном на свободные форматы документов, текстов на естественном языке. К ним относятся модели, ориентированные на формат документов, дескрип-торные и тезаурусные модели.
Классификация даталогических моделей приведена на рисунке 3.3.
25
Рисунок 3.3 – Классификация даталогических моделей
Модели, ориентированные на формат документа, связаны, преж-де всего, со стандартным общим языком разметки – SGML (Standart Generalised Markup Language), который был утвержден ISO в качестве стандарта еще в 80-х годах.
Дескрипторные модели – самые простые из документальных мо-делей, они широко применялись на ранних стадиях использования до-кументальных баз данных. В этих моделях каждому документу соответ-ствовал дескриптор – описатель. Этот дескриптор имел жесткую струк-туру и описывал документ в соответствии с теми характеристиками, которые требуются для работы с документами в разрабатываемой до-кументальной БД.
Например, для БД, содержащей описание литературы в библиотеке, дескриптор содержал название области знаний, к которой относится кон-кретная книга, издательство, год издания и еще ряд ключевых парамет-ров, которые заполнялись для каждого литературного источника.
Тезаурусные модели основаны на принципе организации словарей, содержат определенные языковые конструкции и принципы их взаимо-действия в заданной грамматике. Эти модели эффективно используют-ся в системах-переводчиках, особенно многоязыковых. Принцип хране-ния информации в этих системах и подчиняется тезаурусным моделям.
3.2 Нормализация отношений Важнейшей проблемой, решаемой при проектировании баз данных,
является создание такой их структуры, которая бы обеспечивала мини-мальное дублирование информации и упрощала процедуры обработки и обновления данных.
Нормализация представляет собой процесс реорганизации данных путем ликвидации повторяющихся групп и иных противоречий с целью приведения таблиц к виду, позволяющему осуществлять непротиворе-чивое и корректное редактирование данных.
26
Окончательная цель нормализации сводится к получению такого проекта базы данных, в котором каждый факт появляется лишь в одном месте, то есть, исключена избыточность информации.
Нормализация отношений – пошаговый процесс разложения (де-композиции) исходных отношений БД на более простые. Каждая сту-пень этого процесса приводит схему отношений БД в последовательные «нормальные формы». Каждая следующая нормальная форма облада-ет «лучшими свойствами», чем предыдущая.
В теории реляционных баз данных принято выделять следующую последовательность нормальных форм:
1) первая нормальная форма (1NF); 2) вторая нормальная форма (2NF); 3) третья нормальная форма (3NF); 4) нормальная форма Бойса-Кодда (BCNF); 5) четвертая нормальная форма (4NF); 6) пятая нормальная форма (5NF). Каждой нормальной форме соответствует некоторый набор ограни-
чений. Отношение находится в определенной нормальной форме, если оно удовлетворяет набору ограничений этой формы. Переводя структу-ру отношений БД в формы более высокого порядка, мы добиваемся удаления из таблиц избыточной неключевой информации.
Процесс нормализации основан на понятии функциональной зави-симости атрибутов. Говорят, что атрибут В функционально зависит от атрибута А (обозначается А→В), если в любой момент времени каждо-му значению атрибута А соответствует не более одного значения атри-бута В. Если неключевой атрибут зависит от всего составного ключа и не зависит от его частей, то говорят о полной функциональной зависи-мости атрибута от составного ключа. Если атрибут А зависит от атрибу-та В, а В зависит от атрибута С, но обратная зависимость отсутствует, то говорят, что атрибут С зависит от А транзитивно.
Отношение находится в первой нормальной форме (1NF), если зна-чения атрибутов атомарны, то есть в каждом столбце находится только одно значение, и все неключевые атрибуты функционально зависят от ключа.
Отношение находится во второй нормальной форме (2NF), если вы-полняются ограничения первой нормальной формы (1NF), и каждый неключевой атрибут функционально полно зависит от первичного ключа (первичный ключ может быть составным).
Отношение находится в третьей нормальной форме (3NF), если вы-полняются ограничения второй нормальной формы (2NF), и если все неключевые атрибуты отношения взаимно независимы и полностью зависят от первичного ключа. Можно дать и другое определение. Отно-шение находится в третьей нормальной форме (3NF), если выполняют-ся ограничения второй нормальной формы (2NF), и в нем отсутствуют транзитивные зависимости неключевых атрибутов от ключа.
27
На практике третья нормальная форма схем отношений в большин-стве случаев достаточна, и приведением к третьей нормальной форме процесс проектирования реляционной базы данных обычно заканчива-ется. Нормальные формы, выше третьей на практике затрудняют раз-работку структур данных и снижают их функциональность.
Рассмотрим пример приведения отношения к третьей нормальной форме.
В качестве примера возьмем таблицу Сотрудники, содержащую информацию о сотрудниках некой организации. Структура этой таблицы приведена на рисунке 3.4.
Рисунок 3.4 – Структура ненормализованной таблицы Сотрудники В нашем примере для приведения таблицы Сотрудники ко вто-
рой нормальной форме ее следует разделить на две таблицы. Первичный ключ исходной таблицы состоит из двух атрибутов – «Код сотрудника» и «Должность». Все личные данные о сотрудниках за-висят только от атрибута «Код сотрудника». Атрибуты, соответст-вующие этим данным, мы и выделим в качестве одной из таблиц, которую назовем Физические лица. Информацию о должностях и их оплате вынесем в другую таблицу, которой присвоим имя Сотрудни-ки. Схема приведения таблицы ко второй нормальной форме приве-дена на рисунке 3.5.
Полученные две таблицы связаны между собой по полю «Код физи-ческого лица», которое является первичным ключом для таблицы Фи-зические лица и внешним ключом для таблицы Сотрудники. Данное поле отсутствовало в исходной таблице и было добавлено при прове-дении нормализации.
28
Рисунок 3.5 – Приведение таблицы ко второй нормальной форме
Третья нормальная форма Рассмотрим таблицу Сотрудники, полученную после приведения ис-
ходной таблицы ко второй нормальной форме. Для этой таблицы сущест-вует функциональная связь между полями «Код сотрудника» и «Зарпла-та». Однако эта функциональная связь является транзитивной.
Транзитивность зависимости полей «Код сотрудника» и «Зарплата» означает, что заработная плата на самом деле является характеристи-кой не сотрудника, а должности, которую он занимает. В результате мы не сможем занести в базу данных информацию, характеризующую за-работную плату должности, до тех пор, пока не появится хотя бы один сотрудник, эту должность занимающий (так как первичный ключ не мо-жет содержать неопределенное значение). При удалении записи, опи-сывающей последнего сотрудника, занимающего данную должность, мы лишимся информации о заработной плате, соответствующей этой должности. Кроме того, чтобы согласованным образом изменить зара-ботную плату, соответствующую должности, необходимо предваритель-но найти все записи, описывающие сотрудников, занимающих данную должность. Таким образом, в таблице Сотрудники по-прежнему суще-ствуют аномалии. Их можно устранить путем дальнейшей нормализа-ции – приведения базы данных к третьей нормальной форме.
Чтобы перейти от второй нормальной формы к третьей, нужно вы-полнить следующие шаги:
29
1. Определить все поля (или группы полей), от которых зависят другие поля.
2. Создать новую таблицу для каждого такого поля (или группы по-лей) и группы зависящих от него полей и переместить их в эту таблицу. Поле (или группа полей), от которого зависят все ос-тальные перемещенные поля, станет при этом первичным клю-чом новой таблицы.
3. Удалить перемещенные поля из исходной таблицы, оставив лишь те из них, которые станут внешними ключами.
Приведем рассматриваемую в качестве примера базу данных к третьей нормальной форме. Для этого разделим таблицу Сотрудники на две – Сотрудники и Должности (рисунок 3.6).
Рисунок 3.6 – Приведение базы данных к третьей нормальной форме
В заключение приведем схему базы данных, рассматриваемой в качестве примера и приведенной к третьей нормальной форме (ри-сунок 3.7).
Рисунок 3.7 – Структура базы данных, приведенной к третьей
нормальной форме
3.3 Физическое проектирование В соответствии с трехуровневой архитектурой мы сталкиваемся
с понятием модели данных по отношению к каждому уровню. Физиче-
30
ская модель данных оперирует категориями, касающимися организации внешней памяти и структур хранения, используемых в данной операци-онной среде. В настоящий момент в качестве физических моделей ис-пользуются различные методы размещения данных, основанные на файловых структурах: это организация файлов прямого и последова-тельного доступа, индексных и инвертированных файлов, файлов, ис-пользующих различные методы хэширования, взаимосвязанных фай-лов. Кроме того, современные СУБД широко используют страничную организацию данных. Физические модели данных, основанные на стра-ничной организации, являются наиболее перспективными.
На этапе физического проектирования логическая модель реа-лизуется средствами выбранной СУБД: создаются объекты БД и связи между ними. На этом же этапе выбираются физические устройства для размещения БД и ее копий. Типичные этапы физического проектирова-ния:
- разработка и описание структур таблиц данных; - разработка схемы данных и задание системы взаимосвязей между
таблицами; - разработка системы запросов к таблицам базы данных; - разработка экранных форм ввода/вывода данных; - разработка системы отчетов по данным; - разработка программных расширений для базы данных, решаю-
щих специфические задачи по обработке содержащейся в ней информации, с помощью макросов и модулей;
- разработка системы защиты данных, прав и ограничений по дос-тупу.
Литература 1. Информатика: учебник / под ред. проф. Н.В. Макаровой. – М.: Фи-
нансы и статистика, 1997. – 768 с. 2. Корнеев, В.В. Базы данных. Интеллектуальная обработка инфор-
мации / В.В. Корнеев, А.Ф. Гареев, С.В. Васютин, В.В. Райх. – М.: Нолидж, 2000. – 352 с.
3. Карпова, Т.С. Базы данных: модели, разработка, реализация / Т.С. Карпова. – СПб.: Питер, 2001. – 304 с.
4. Петров, В.Н. Информационные системы / В.Н. Петров. – СПб.: Пи-тер, 2002. – 688 с.
5. Экономическая информатика / под ред. П.В. Конюховского и Д.Н. Колесова. – СПб.: Питер, 2000. – 560 с.
6. Гедранович, В.В. Технологии организации, хранения и обработки данных: учеб.-метод. комплекс / В.В. Гедранович, Ю.В. Змеева. – Минск: Изд-во МИУ, 2004. – 160 с.
31
ТЕСТ ДЛЯ САМОКОНТРОЛЯ 1. Трехуровневая система организации БД включает в себя:
a) уровень внешних моделей; физический уровень; коммерческий уровень
b) уровень внешних моделей; концептуальный уровень; физиче-ский уровень
c) уровень внешних моделей; физический уровень; тезаурусный уровень
2. Уровень внешних моделей – это ... a) собственно данные, расположенные в файлах или в странич-
ных структурах, которые находятся на внешних носителях ин-формации
b) самый верхний уровень, где каждая модель имеет свое «виде-ние» данных
c) обобщенная модель предметной области, для которой созда-ется БД
3. Концептуальный уровень – это ... a) собственно данные, расположенные в файлах или в странич-
ных структурах, которые находятся на внешних носителях ин-формации
b) самый верхний уровень, где каждая модель имеет свое «виде-ние» данных
c) обобщенная модель предметной области, для которой созда-ется БД
4. Физический уровень – это ... a) собственно данные, расположенные в файлах или в странич-
ных структурах, которые находятся на внешних носителях ин-формации
b) самый верхний уровень, где каждая модель имеет свое «виде-ние» данных
c) обобщенная модель предметной области, для которой созда-ется БД
5. Какие физические модели данных являются наиболее перспектив-ными? a) основанные на страничной организации данных b) основанные на файловых структурах
6. Тезаурусные модели: a) опираются на систему понятий: таблица, отношение, строка,
столбец b) основаны на принципе организации словарей, содержат опре-
деленные языковые конструкции и принципы их взаимодейст-вия в заданной грамматике
c) в этих моделях каждому документу соответствует описатель, имеющий жесткую структуру
32
7. Самые простые из документальных моделей, которые широко при-менялись на ранних стадиях использования документальных БД, – это: a) инфологические модели b) теоретико-графовые модели c) дескрипторные модели d) объектно-ориентированные модели
8. Цель нормализации заключается в... a) получении избыточности информации b) исключении избыточности информации c) получении такого проекта БД, в котором каждый факт появля-
ется не менее двух раз 9. Нормализация – это:
a) процесс реорганизации данных путем ввода дополнительных повторяющихся групп для получения избыточности информа-ции
b) пошаговый процесс разложения исходных отношений базы данных на более простые
c) процесс индексирования столбцов 10. Обобщенное описание предметной области, не привязанное к ка-
кой-либо СУБД, это: a) физическая модель данных b) даталогическая модель данных c) инфологическая модель данных
33
4 СИСТЕМЫ УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ. ОБЩАЯ ХАРАКТЕРИСТИКА MICROSOFT ACCESS
4.1 СУБД, их функциональные возможности. Общая характеристика MS Access
Системы управления базами данных (СУБД) появились в конце 60-х – начале 70-х годов XX века. СУБД первого поколения были ориентиро-ваны на мэйнфреймы, доминировавшие в то время. В 1975 году поя-вился первый стандарт ассоциации по языкам систем обработки дан-ных – Conference of Data System Languages (CODASYL), определивший ряд фундаментальных понятий в теории систем баз данных, которые и до сих пор являются основополагающими для сетевой модели данных. В развитие теории баз данных большой вклад внёс американский ма-тематик Э.Ф. Кодд, который является создателем реляционной модели данных. Возможности первых СУБД были ограниченными, они имели много недостатков, однако АИС на их базе используются до сих пор. Сегодня системы управления базами данных представляют собой со-вершенные инструменты, которые могут быть успешно применены в различных областях человеческой деятельности.
СУБД – совокупность языковых и программных средств, предна-значенных для создания, ведения и совместного использования БД многими пользователями (MS FoxPro, MySQL, PostgreSQL, MS Access, Sybase, Microsoft SQL Server, Oracle, DB2).
СУБД предназначена для централизованного управления базой данных.
По степени универсальности СУБД делятся на: - системы общего назначения; - специализированные системы. СУБД общего назначения не ориентированы на какую-либо пред-
метную область или на информационные потребности определенной группы пользователей.
Специализированные СУБД предназначены для конкретного при-менения.
Функциональные возможности СУБД обширны. Они позволяют: - создавать БД и работать с ней (т.е. открывать, переименовывать,
перемещать, восстанавливать и т.д.); - редактировать, импортировать и экспортировать данные; - формировать запросы; - проектировать экранные формы для ввода, просмотра, редакти-
рования данных; - формировать и печатать отчеты. MS Access – самая популярная система управления базами данных
(СУБД) общего назначения. Это комплекс программных средств, пред-
34
назначенных для создания структуры новой базы данных, наполнения ее содержимым, редактирования содержимого, отбора данных в соот-ветствии с заданными критериями, их упорядочивания, оформления, печати.
Access работает под управлением Windows и поэтому может ис-пользовать все возможности DDE (Dynamic Data Exchange, динамиче-ский обмен данными) и OLE (Object Linking and Embedding, связь и вне-дрение объектов). DDE позволяет выполнять функции и производить обмен данными между Access и любым другим приложением Windows, поддерживающим DDE. Для осуществления динамического обмена данными с другими приложениями можно использовать макросы или процедуры на Visual Basic. Access поддерживает механизм связывания и внедрения объектов, являющийся частью современной технологии OLE корпорации Microsoft. Это означает, что можно внедрять в табли-цы, запросы, формы и отчеты объекты из других приложений – рисунки, электронные таблицы, диаграммы, текстовые документы, звуковые фрагменты и т.д.
В Access база данных обозначает файл, содержащий набор инфор-мации. Каждая база данных в Access состоит из основных объектов: таблиц, запросов, форм, отчетов, страниц, макросов и модулей.
Рисунок 4.1 – Компьютерная схема баз данных
Access может работать одновременно только с одной базой данных. Но одна БД Access может включать сотни таблиц, форм, запросов, от-четов, макросов и модулей, которые хранятся в единственном файле с расширением mdb (multiple database).
Таблица – это объект, определяемый и используемый для хра-нения данных. Каждая таблица включает информацию определенного типа. Таблица содержит поля (столбцы), в которых хранятся данные, например фамилия или номер группы студента, и записи (строки). В записи собрана вся информация о конкретном объекте. Для каждой таблицы можно определить первичный ключ (одно или несколько по-лей, которые имеют уникальное значение для каждой записи) и один
35
или несколько индексов с целью увеличения скорости доступа к дан-ным.
Access позволяет изменить структуру таблицы, просматривать, ре-дактировать, удалять и добавлять записи, осуществлять поиск, замену, сортировку данных, изменять вид таблицы, создавать связи между таб-лицами и удалять их.
Запрос – это объект, который позволяет пользователю полу-чить данные из одной или нескольких таблиц. Запрос можно создавать на выбор, обновление, добавление или удаление данных. С помощью запросов можно создавать новые таблицы, используя данные из одной или нескольких уже существующих таблиц.
Формы – это объект, предназначенный для просмотра, ввода и редактирования записей базы данных (БД). В формах можно использо-вать поля из нескольких таблиц или запросов. В них можно создавать вычисляемые поля.
Отчет – это объект, предназначенный для создания документа, который впоследствии может быть распечатан либо включен в доку-мент другого приложения. В отчетах можно производить вычисления, сортировку и группировку данных, подводить итоги по полям. В отчете нельзя редактировать данные
Страницы – это объект, представляющий собой специальный тип Web-страниц, предназначенный для просмотра и работы через Ин-тернет или интрасеть с данными, хранящимися в базах данных Microsoft Access или базах данных Microsoft SQL Server. Страница дос-тупа к данным может также включать данные из других источников, та-ких как Microsoft Excel.
Макрос – это объект, представляющий собой последователь-ность макрокоманд для автоматизации наиболее часто выполняемых действий при работе с базой.
Модуль – это объект, автоматизирующий комплексные опера-ции и предоставляющий программисту более полный контроль, чем макрос; модули – это процедуры, написанные на языке программиро-вания Visual Basic for Applications. Модули могут быть независимыми объектами, содержащими функции, которые можно вызвать из любого места приложения, но они могут быть «привязаны» к отдельным фор-мам или отчетам для реакции на те или иные происходящие в них со-бытия.
4.2 Запуск Access и создание или открытие баз данных
После нажатия кнопки Пуск на экране появляется стартовое меню. Для запуска Access следует открыть подменю Программы стартового
36
меню и активизировать команду Microsoft Access. В результате про-грамма MS Access будет загружена. Можно использовать и другие из-вестные способы: ярлычок на Рабочем столе, кнопку на Панели быст-рого запуска.
После запуска программы MS Access на экране появляется окно приложения (рисунок 4.2), в котором пользователь должен выбрать один из следующих вариантов работы: создание пустой базы данных, создание базы данных с помощью мастера, открытие одной из сущест-вующих баз данных.
Рисунок 4.2 – Главное окно Access 2003
В результате выбора Новая база данных из раздела Создание в области задач Создание файла создается пустая база данных, в кото-рую впоследствии можно поместить таблицы, формы, отчёты и т.д.
В появившемся диалоговом окне Файл новой базы данных следу-ет открыть папку, в которой будет храниться база данных, ввести имя файла и нажать кнопку Создать (рисунок 4.3).
Если в области задач Создание файла из раздела Создание с помо-щью шаблона выбрать команду Общие шаблоны…, то появится диало-говое окно Шаблоны (рисунок 4.4). Вкладка Базы данных позволяет ис-пользовать шаблоны наиболее популярных баз данных. После выбора одного из ярлыков шаблона открывается Мастер шаблонов, с помощью которого создается новая база данных.
37
Рисунок 4.3 – Диалоговое окно Файл новой базы данных
Рисунок 4.4 – Диалоговое окно Шаблоны
В случае необходимости открыть существующую базу данных сле-дует из раздела Открытие файла выбрать имя базы, которую нужно открыть. Если необходимая база данных не указана в этом списке, её можно отыскать в окне Открытие файла базы данных (рисунок 4.5), которое открывается после щелчка на строке Другие файлы… .
38
Рисунок 4.5 – Диалоговое окно Открытие файла базы данных
Открыть файл можно в одном из четырех режимов (рисунок 4.6):
Рисунок 4.6 – Режимы открытия файла базы данных
- Открыть – режим коллективного доступа. Когда вы открываете файл базы данных в этом режиме, доступ к нему будет разрешен другим пользователям, они могут открыть его и работать с объек-тами базы данных одновременно с вами. Причем все пользовате-ли будут иметь возможность как просматривать данные, так и из-менять их.
- Открыть монопольно – режим монопольного доступа. В этом случае никто другой не сможет открыть этот файл, пока вы его ис-пользуете.
- Открыть для чтения – режим коллективного доступа только для чтения. В этом случае вы не сможете изменять ни данные в таб-лицах, ни другие объекты базы данных.
- Открыть монопольно только для чтения – режим монопольного доступа только для чтения. Вы открываете файл только для чте-ния и одновременно запрещаете другим пользователям открывать этот файл.
39
4.3 Структура окна Access. Справочная система MS Access. Выход из Access
У строки заголовка Access типичный состав. Она содержит кнопку для открытия системного меню, имя прикладной программы, имя от-крытой базы данных (если окно базы данных развёрнуто на всё окно приложения), кнопки управления представлением окна, кнопку для за-крытия окна.
Рисунок 4.7 – Пример базы данных
Строка меню по умолчанию расположена под строкой заголовка. Она содержит имена меню, в которые объединены по функционально-му признаку команды и опции.
Каждое меню открывается при выполнении щелчка на его имени или при нажатии комбинации клавиш, состоящей из клавиши [Alt] и клавиши с подчёркнутой в имени меню буквой.
Команды и опции, входящие в состав меню, активизируются при вы-полнении щелчка на их именах. Для вызова команд меню можно вос-пользоваться и клавиатурой.
Структура меню зависит от режима работы Access. Программа име-ет три основных режима работы:
1. Режим конструктора, в котором создаются и модифицируются объекты базы данных;
2. Режим запуска, в котором можно выполнять некоторые опера-ции, не открывая базу данных;
3. Режим выполнения, в котором отображаются окна объектов ба-зы данных. (Данный режим имеет различные названия, что зави-
40
сит от того, с каким объектом работает пользователь. При работе с таблицей, этот режим называется режимом таблицы, при работе с формой – режимом формы и т.д.).
Панель инструментов с многочисленными кнопками. О назначении любой из них можно узнать, указав на неё мышью.
Окно базы данных, содержащее вкладки семи основных объектов БД. Когда выбирается вкладка, такая как Таблицы, Access перечисляет имеющиеся имена таблиц. Для того, чтобы открыть какой-либо объект, нужно сделать двойной щелчок по его имени или выделить это имя и щёлкнуть по кнопке Открыть, которая доступна только для таблиц, за-просов, форм и страниц. Кнопка Открыть меняет свое имя на Про-смотр для отчетов и превращается в кнопку Запуск для макросов и модулей. Кнопки Создать и Конструктор используются для того, чтобы создавать новые объекты баз данных или модифицировать сущест-вующие.
Access содержит обширную справочную систему и средства ее ви-зуализации, готовые дать ответ на подавляющее большинство вопро-сов, возникающих у пользователя. При этом сведения, предоставляе-мые справочной системой, можно не только прочесть, но и скопировать в буфер обмена или вывести на печать.
Существует несколько способов получить ответы на свои вопросы. - С помощью специального поля для ввода вопроса в строке глав-
ного меню Access. - Вызвав окно Справка Microsoft Access. - Задав вопрос Помощнику. - Обратившись за справкой на Web-сервер Microsoft. Чтобы вызвать окно справки, выполните одно из действий: - выберите в меню Справка команду Справка: Microsoft Access; - нажмите кнопку Справка: Microsoft Access на стандартной
панели инструментов Access; - выберите команду Справка Microsoft Access) в области задач
Создание файла, если она отображается на экране. В любом случае вы получите на экране окно Справка Access, кото-
рое выглядит так, как показано на рисунке 4.8. Существует несколько способов выхода из программы Access: - кнопка Закрыть, в правом верхнем углу окна MS Access (на таких
кнопках принято изображать крестик); - активизация команды Выход из меню Файл; - вызов команды Закрыть из системного меню окна программы
MS Access; - комбинация клавиш Alt+F4.
41
Рисунок 4.8 – Справочная система: Оглавление и окно Справка
Литература 1. Праг, Н. Керри. Access 2000. Библия пользователя: учеб. пособие:
пер. с англ. / Керри Н. Праг, Майкл Р. Ирвин. – М.: Издательский дом «Вильямс», 2000. – 1040 с.
2. Харитонова, И.А. Microsoft® Access 2000 / И.А. Харитонова, В.Д. Михеева. – СПб.: БХВ – Санкт-Петербург, 2000. – 1088 с.
3. Вейскас, Дж. Эффективная работа с Microsoft Access 2000 / Дж. Вейскас. – СПб.: БХВ – Санкт-Петербург, 2000. – 1036 с.
4. Михеева, В.Д. Microsoft® Access 2002 / В.Д. Михеева, И.А. Харито-нова. – СПб.: БХВ – Санкт-Петербург, 2003. – 1040 с.
5. Гедранович, В.В. Технологии организации, хранения и обработки данных: учеб.-метод. комплекс / В.В. Гедранович, Ю.В. Змеева. – Минск: Изд-во МИУ, 2004. – 160 с.
42
ТЕСТ ДЛЯ САМОКОНТРОЛЯ 1. СУБД – это ...
a) это система специальным образом организованных данных – баз данных, программных, технических, языковых, организаци-онно-методических средств, предназначенных для обеспече-ния централизованного накопления и коллективного многоце-левого использования данных
b) язык программирования, ориентированный на удобную запись численных алгоритмов
c) совокупность языковых и программных средств, предназначен-ных для создания, ведения и совместного использования БД многими пользователями
2. Объектами СУБД Access являются: a) таблицы b) запросы c) формы d) страницы e) отчеты f) макросы g) главы h) модули i) параграфы
3. Объект Access, позволяющий пользователю получить данные из одной или нескольких таблиц: a) таблицы b) запросы c) формы d) отчеты
4. Объект Access, предназначенный для просмотра, ввода и редакти-рования записей в базе данных: a) таблицы b) запросы c) формы d) отчеты
5. Объект Access, предназначенный для создания документа, который впоследствии может быть распечатан или включен в документ дру-гого приложения: a) таблицы b) запросы c) формы d) отчеты
6. Объект Access, определяемый и используемый для хранения дан-ных: a) таблицы b) запросы c) формы d) отчеты
7. Создавать и модифицировать объекты базы данных можно: a) в режиме запуска b) в режиме выполнения c) в режиме конструктора
8. По степени универсальности СУБД делятся на: a) системы общего назначения и специализированные системы b) системы общего назначения и системы локального доступа c) системы общего назначения и локально-прикладные системы
43
5 ПРОЕКТИРОВАНИЕ ТАБЛИЦ И РАБОТА С НИМИ В СУБД MS ACCESS
5.1 Создание таблиц в режиме Конструктора В окне База данных выбрать способ создания Создание таблицы
в режиме конструктора, или нажать кнопку и в окне Но-вая таблица выбрать Конструктор (рисунок 5.1).
Рисунок 5.1 – Окно базы данных с открытым диалоговым
окном Новая таблица На экране появится окно Конструктора (рисунок 5.2). В нём задают-
ся поля таблицы и их свойства. Справа внизу Access отображает спра-вочную информацию о допустимых на данном этапе проектирования действиях.
Работа в таблице полей Эта таблица позволяет определить имена полей, типы содержащих-
ся в них данных и задавать им описания. Таблица состоит из колонок, названных Имя поля, Тип данных и Описание.
Колонка Имя поля может содержать имена до 64 символов, вклю-чая любые комбинации букв, цифр, пробелов и специальных символов за исключением точки (.), восклицательного знака (!), надстрочного
44
символа (`) и прямых скобок ([ ]). В таблице не может быть двух полей с одинаковыми именами.
Рисунок 5.2 – Окно Конструктора таблиц
Задание типа данных Для поля, включённого в запись, задаётся тип данных, который оп-
ределяет вид информации, которая будет храниться в данном поле. Таблица 5.1 –Типы данных Access Типы данных Описание
Текстовый Текст, максимальная длина которого равна 255 символов.
Комментарий (Поле МЕМО)
Текстовые и числовые данные объёмом не более 64000 символов (поля этого типа не индексируются)
Числовой Числовые значения (таблица 5.2)
Дата/Время Дата и время, начиная с 100 г. по 9999 г. включительно
Денежный Числа, хранящиеся с точностью до 15 знаков в целой и до 4 знаков в дробной части
Счётчик Число, которое автоматически увеличивается на единицу, когда в таблицу добавляется новая запись
Логический Логические данные (Да/Нет, Истина/Ложь, Вкл/Выкл)
45
Продолжение таблицы 5.1
Типы данных Описание
Поле объекта OLE
Объект, например электронная таблица или рисунок, созданный другим приложением с объёмом, не превышающим 1 Гбайт
Гиперссылка Данные, которые представляют собой путь к файлу, находящемуся на жёстком диске, либо адрес в сетях Интернет/интранет
Таблица 5.2 – Значения, разрешенные для числового типа
Значение Описание Дробная часть Размер
Байт Числа от 0 до 255 Отсутствует 1 байт
Целое Числа от –32 768 до 32 767 Отсутствует 2 байта
Длинное целое
(Значение по умолчанию) Числа от –2 147 483 648 до 2 147 483 647 (без дробной части)
Отсутствует 4 байта
С плавающей точкой (4 байт)
Числа от –3,402823E38 до 3,402823E38 7 4 байта
С плавающей точкой (8 байт)
Числа от –1,79769313486232E308 до 1,79769313486231E308
15 8 байт
Действительное Числа от –1E28+1 до 1E28–1 28 12 байт
Код репликации Уникальный глобальный идентификатор (GUID)*
Не определено 16 байт
Кроме этого существует элемент Мастер подстановок, позволяю-щий представить значение полей в виде простого или комбинированно-го списка.
Изменение типа данных после ввода данных в таблицу сопровож-дается процедурой преобразования данных в момент сохранения таб-лицы. Если Access не сможет выполнить преобразование без ошибок, часть данных будет утеряна или искажена.
По умолчанию устанавливается тип данных Текстовый. Для изме-нения типа данных выполняется щелчок в нужной ячейке колонки Тип * 16-байтовое поле, используемое для создания уникального идентификатора при репликации. Коды GUID широко используются для идентификации реплик, наборов реплик, таблиц, записей и других объектов.
46
данных, после чего появляется кнопка для раскрытия списка, из кото-рого выбирают нужный тип.
Описание полей. Эта колонка используется для того, чтобы внести дополнительную информацию о поле.
Задание характеристик полей выполняется последовательно, т.е. для каждого поля сначала вводится имя, затем тип данных и, наконец, при необходимости, описание. Переход к следующей ячейке строки осуществляется с помощью клавиши [Tab]. Для перехода к нужной ячейке можно также выполнить на ней щелчок. Черный треугольник в столбце маркировки указывает на ту строку, в которой в данный момент находится курсор ввода.
Свойства полей Каждое поле обладает соответствующими характеристиками, по ко-
торым можно установить как должны сохраняться, отображаться или обрабатываться данные. Набор свойств зависит от выбранного типа данных.
Свойства полей, установленные на уровне таблицы, автоматически применяются и для других объектов базы данных, таких как формы, отчеты и запросы, которые используют эту таблицу. Свойства полей представлены на двух вкладках Общие и Подстановка.
Для установки свойств поля в режиме Конструктора необходимо: 1) выделить поле, для которого следует изменить свойства. Нижняя
часть окна отразит общие свойства для этого поля (рисунок 5.3);
Рисунок 5.3 – Свойства полей в окне Конструктора таблиц
2) выбрать на вкладке Общие свойство, которое следует изменить; 3) ввести значения для данного свойства или выбрать его из рас-
крывающегося списка (если он доступен);
47
4) перейти на вкладку Подстановка и установить при необходимо-сти нужные свойства.
Свойства полей, представленные на вкладке Общие - Размер поля – определяет максимальную длину текстового или
числового поля; - Формат поля – устанавливает формат отображения данных при
выводе на экран или печать; - Число десятичных знаков – задаётся число знаков, выводимых
после запятой для числового (кроме кода репликации) и денежно-го типов данных;
- Маска ввода – определяет маску данных, которая видна при вво-де значения в поле, например, для даты (__/__/__);
- Подпись – содержит подпись, которая выводится рядом со значе-нием поля в форме или отчёте. Этот текст также выводится для таблицы или запроса в заголовке столбца в режиме таблицы;
- Значение по умолчанию – появляется при заполнении соответ-ствующих полей;
- Значение по умолчанию – определяется значение по умолчанию для любого типа данных, кроме счётчика, кода репликации и поля объекта OLE;
- Условие на значение – определяется значение, которое можно вводить в это поле при заполнении таблицы;
- Сообщение об ошибке – определяет текст сообщения, которое появляется на экране при вводе недопустимого значения;
- Обязательное поле – данное поле обязательно следует запол-нить;
- Пустые строки – можно разрешить ввод пустых строк («») для текстовых и МЕМО-полей;
- Индексированное поле – определяет простые индексы для уско-рения поиска.
Поля типа «Счетчик» и репликация базы данных Если база данных будет реплицироваться*, то необходимо опре-
делить подходящий размер для поля типа «Счетчик», используемого в качестве первичного ключа таблицы. При использовании поля типа «Счетчик» в качестве первичного ключа таблицы в реплицируемой базе
* Репликация – процесс создания копий баз данных (реплик), которые могут обмениваться обновляемыми данными или реплицированными формами, отче-тами или другими объектами. Такой обмен называют синхронизацией. Каждая копия базы данных называется репликой, и каждая реплика содержит общий набор таблиц, запросов, отчетов, форм, макросов и модулей. Каждая реплика может также содержать локальные объекты, которые существуют только в этой реплике.
48
данных следует установить для его свойства Размер поля (FieldSize) либо значение Длинное целое, либо Код репликации.
- Если между операциями синхронизации реплик обычно добав-ляется менее 100 записей, то с целью экономии дискового про-странства для свойства Размер поля (FieldSize) используется значение Длинное целое.
- Если же между операциями синхронизации добавляется более 100 записей, то следует использовать для свойства Размер поля (FieldSize) значение Код репликации, чтобы предотвратить по-вторение значений в ключевых полях записей в разных репликах. Однако следует отметить, что в поле типа «Счетчик» с размером «Код репликации» генерируются 128-байтовые значения, требую-щие больше места на диске.
Установка первичного ключа Поле, каждое значение которого однозначно определяет соответст-
вующую запись, называют Ключевым. Для более эффективной работы в Access каждая таблица должна
иметь ключевое поле. Ключевые поля не могут содержать одинаковых значений для двух различных записей.
Преимущества создания первичного ключа. - Скорость. Access создает индекс на основе ключевого поля, и это
позволяет ему быстрее обрабатывать запросы и выполнять дру-гие функции.
- Отсутствие повторов. Access не позволит пользователю ввести данные с тем же самым значением первичного ключа, как и у су-ществующей записи.
- Связи. Access поддерживает связи между связанными таблицами на основании взаимоотношений первичного ключа в одной табли-це и соответствующего ему внешнего ключа в другой.
Определяется первичный ключ в режиме конструктора: - выделяется соответствующая строка или строки;
- выполняется щелчок на кнопке или команда Правка–Ключевое поле.
Если к моменту выхода из конструктора первичный ключ не уста-новлен, то Access запрашивает о необходимости его включения в таб-лицу (рисунок 5.4).
Рисунок 5.4 – Запрос на создание ключевого поля
При положительном ответе Access создаёт особое поле с именем Код и типом Счётчик.
49
Готовую спецификацию можно изменять, т.е. удалять или добавлять поля, модифицировать свойства и т.д. Однако все исправления в специ-фикацию следует вносить до начала заполнения базы данных, иначе по-пытка изменения параметров заполненной базы данных может привести к искажению или потере данных.
Вставка нового поля Для вставки нового поля в режиме Конструктора необходимо: - установить курсор на строку, перед которой должна быть введена
новая строка;
- нажать кнопку на панели инструментов или выбрать команду Вставка–Строки, если выделено несколько строк, то вставляется столько же.
Удаление поля Для удаления поля (полей) в режиме Конструктора необходимо: - выделить нужную строку (строки); - нажать кнопку на панели инструментов либо выбрать команду
Правка–Удалить строки. Отмену неправильного удаления строк можно осуществить, выпол-
нив следующие операции: - нажать кнопку Нет в окне с предложением удалить; - выбрать команду Правка–Отменить удаление, если удаление
было последней операцией; - закрыть окно без сохранения изменений.
Готовую спецификацию следует сохранить, нажав кнопку на панели инструментов или выполнив команду Файл–Сохранить. В диалоговом окне (рисунок 5.5) нужно ввести имя таблицы и подтвер-дить ввод.
Рисунок 5.5 – Сохранение таблицы
Заполнение таблицы При заполнении таблицы для перехода к следующему полю нужно
использовать клавишу Tab, а к предыдущему – Shift + Tab. После окончания ввода записи и нажатия на клавишу Tab Access
автоматически сохранит только что введённую запись в файле.
50
Для редактирования введённых записей используются команды ме-ню Правка.
5.2 Создание таблиц с использованием Мастера таблиц
Для создания таблицы с помощью Мастера таблиц в диалоговом окне Новая таблица (см. рисунок 5.1) выбирается соответствующий пункт. Access вызывает диалоговое окно Мастера таблиц (рисунок 5.6).
Рисунок 5.6 – Создание таблиц с помощью Мастера таблиц (1-е окно)
Приведенные в списке образцы таблиц зависят от того, какой тип таблиц выбран: для личного применения или делового. После выбо-ра образца таблицы, в списке Образцы полей появляются предо-пределенные поля. Необходимо использовать кнопки для добавле-ния и удаления полей в новую таблицу.
Когда поля выбраны, нажмите кнопку Далее>. Обратите внимание на то, что нажатие кнопки Готово на этой стадии закроет окно Мастера и создаст таблицу, базируясь на той информации, которая была ему сообщена.
При выборе кнопки Далее> появится следующее диалоговое окно Мастера создания таблиц (рисунок 5.7). В текстовое поле этого окна нужно ввести имя таблицы и выбрать способ определения ключа. Если пользователь определяет ключ самостоятельно, то появится диалого-вое окно (рисунок 5.8). В этом окне нужно выбрать поле, которое будет использоваться в качестве ключевого, и определить, какие данные бу-дут содержаться в этом поле.
51
Рисунок 5.7 – Создание таблиц с помощью Мастера таблиц (2-е окно)
Рисунок 5.8 – Создание таблиц с помощью Мастера таблиц (3-е окно)
Четвертое окно Мастера таблиц доступно в том случае, когда в базе данных уже есть созданные таблицы. В этом окне Мастер предлагает создать связи с таблицами (рисунок 5.9).
52
Рисунок 5.9 – Создание таблиц с помощью Мастера таблиц (4-е окно)
Для установки связей нужно выбрать из списка имя существующей таблицы и нажать кнопку Связи… . В появившемся диалоговом окне Связи (рисунок 5.10) выбрать тип связи новой таблицы с существующей.
Рисунок 5.10 – Диалоговое окно Связи
53
На последнем шаге Мастера определяются дальнейшие действия после создания таблицы (рисунок 5.11):
- Изменить структуру таблицы (при выборе этой опции соз-данная таблица открывается в режиме Конструктора).
- Ввести данные непосредственно в таблицу – таблица от-крывается в режиме таблицы.
- Ввести данные в таблицу с помощью формы, создаваемой мастером – открывается форма для ввода данных.
Рисунок 5.11 – Создание таблиц с помощью Мастера таблиц (5-е окно)
5.3 Общие сведения о связях в базе данных Access позволяет строить реляционные базы данных, отдельные
таблицы которых могут быть связаны между собой. Как правило, свя-зывают ключевое поле одной таблицы с соответствующим полем дру-гой таблицы, которое называется полем внешнего ключа. Связанные поля могут иметь разные имена, однако у них должны быть одинаковые типы данных и одинаковые значения свойств.
При отношении «один–к–одному» запись в таблице A может иметь не более одной связанной записи в таблице B и наоборот. Этот тип связи используют не очень часто, поскольку такие данные могут быть помещены в одну таблицу. Связь с отношением «один–к–одному» ис-пользуют для разделения очень широких таблиц, для отделения части таблицы по соображениям защиты, а также для сохранения сведений, относящихся к подмножеству записей в главной таблице.
Связь с отношением «один–ко–многим» является наиболее часто используемым типом связи между таблицами. В такой связи каждой
54
записи в таблице A могут соответствовать несколько записей в таблице B, а запись в таблице B не может иметь более одной соответствующей ей записи в таблице A.
При отношении «многие–ко–многим» одной записи в таблице A могут соответствовать несколько записей в таблице B, а одной записи в таблице B несколько записей в таблице A. Такая схема реализуется только с помощью третьей (связующей) таблицы, ключ которой состоит, по крайней мере, из двух полей, которые являются полями внешнего ключа в таблицах A и B.
При наличии связей между таблицами Access автоматически выби-рает данные из нескольких связанных между собой таблиц.
Определение связей между таблицами 1. Закройте все открытые таблицы. Создавать или изменять связи
между открытыми таблицами нельзя. 2. Переключитесь в окно базы данных. 3. Воспользуйтесь командой Сервис схема данных… или нажмите
кнопку Схема данных на панели инструментов. 4. Если в базе данных не определено никаких связей, то на экран
автоматически будет выведено окно Добавление таблицы (ри-сунок 5.12). Если необходимо добавить таблицы до определения связей, а диалогового окна Добавление таблицы на экране нет,
нажмите кнопку Добавить таблицу на панели инструмен-тов. Если же таблицы, которые необходимо связать, отображены на экране, перейдите к шагу 6.
Рисунок 5.12 – Диалоговое окно Добавление таблицы
5. Дважды щелкните по именам таблиц, для которых требуется оп-ределить связи. Затем закройте диалоговое окно Добавление таблицы.
55
6. Для связывания полей выберите поле в одной таблице и пере-тащите его на соответствующее поле во второй таблице.
Включение опций Обеспечение целостности данных, каскадное обновление связанных полей и каскадное удаление связанных полей обеспечивает проверку, которая позволяет избежать ряда оши-бок, допускаемых при удалении записей из первичной таблицы и вводе данных в связанную таблицу (рисунок 5.13).
Рисунок 5.13 – Диалоговое окно Изменение связей
При нажатии на кнопку Создать связи будут представлены в виде линий, соединяющих первичный ключ основной таблицы с полем внеш-него ключа связанной таблицы (рисунок 5.14).
Рисунок 5.14 – Схема данных
56
Тип создаваемой связи зависит от полей, для которых определяется связь.
- Отношение «один–ко–многим» создается в том случае, когда только одно из полей является ключевым или имеет уникальный индекс.
- Отношение «один–к–одному» создается в том случае, когда оба связываемых поля являются ключевыми или имеют уникальные индексы.
- Связь с отношением «многие–ко–многим» фактически является двумя связями с отношением «один–ко–многим» через третью таб-лицу, ключ которой состоит, по крайней мере, из двух полей, кото-рые являются полями внешнего ключа в двух других таблицах.
Примечание. Если перенести с помощью мыши поле, не являющееся ключевым или не имеющее уникального индекса, на другое поле, ко-торое также не является ключевым или не имеет уникального ин-декса, создается неопределенное отношение. В запросах, содержа-щих таблицы с неопределенным отношением, Microsoft Access по умолчанию создает линию объединения между таблицами, но условия целостности данных при этом не накладываются и нет гарантии уникальности записей в любой из таблиц.
5.4 Средства ускорения доступа к данным Современным СУБД приходится оперировать огромными массивами
информации, объемы которых достигают порой десятков терабайт. Вы-полняя запросы многочисленных пользователей, они должны обеспе-чить небольшое время отклика. СУБД не сможет эффективно работать в таких условиях, не используя методов ускорения выборки данных. Цель этих методов – избежать полного перебора строк таблиц БД при выполнении реляционных операций, например, при соединении отно-шений или при поиске строк, удовлетворяющих условию.
Одним из основных методов ускорения доступа к данным в совре-менных СУБД является индексирование. Индекс – это средство, кото-рое обеспечивает быстрый доступ к данным в таблице на основе зна-чений одного или нескольких столбцов. Индекс представляет собой упорядоченный список значений со ссылками на те записи, в которых хранятся эти значения. Чтобы найти нужные записи, СУБД сначала ищет требуемое значение в индексе, а затем по ссылкам быстро отби-рает соответствующие записи. Индексы бывают двух типов: простые и составные. Простые индексы представляют собой индексы, созданные по одному столбцу. Индекс, построенный по нескольким столбцам (по-лям), называется составным. Примером составного индекса может быть индекс, построенный по столбцам «Фамилия» и «Имя».
Однако применение индексов имеет не только преимущества, но и недостатки. Главный недостаток заключается в том, что при добавле-нии и удалении записей или при обновлении значений в индексном
57
столбце требуется обновлять индексы, а при большом их количестве в таблице это замедляет работу. Поэтому индексы рекомендуется соз-давать только для тех столбцов таблицы, по которым наиболее часто выполняется поиск записей. Во многих СУБД (например, FoxPro) индек-сы хранятся в отдельных файлах и являются предметом заботы разра-ботчиков, т.к. при нарушении индекса поиск данных выполняется не-корректно. В Microsoft Access индексы хранятся в том же файле базы данных, в котором хранятся таблицы и другие объекты Access. Индек-сировать можно любые поля, кроме МЕМО-полей, полей типа Гипер-ссылка и объектов OLE.
Чтобы создать простой индекс, необходимо: 1. Открыть таблицу в режиме Конструктора. 2. Выбрать поле, для которого необходимо создать индекс. 3. Открыть вкладку Общие и выбрать для свойства Индексиро-
ванное поле значение Да (Допускаются совпадения) или Да (Совпадения не допускаются).
Ключевое поле таблицы автоматически индексируется и свойству Индексированное поле присваивается значение Да (Совпадения не допускаются).
Литература 1. Харитонова, И.А. Microsoft® Access 2000 / И.А. Харитонова,
В.Д. Михеева. – СПб.: БХВ – Санкт-Петербург, 2000. – 1088 с. 2. Праг, Н. Керри. Access 2000. Библия пользователя.: пер. с англ.:
учеб. пособие / Керри Н. Праг, Майкл Р. Ирвин. – М.: Издательский дом «Вильямс», 2000. – 1040 с.
3. Винтер, Р. Microsoft® Office 97 в подлиннике: в 2 т.: пер. с англ. / Р. Винтер, П. Винтер. – СПб.: BHV – Санкт-Петербург, 1997. Том II – 656 с.
4. Ботт, Эд. Использование Microsoft Office 2000. Специальное изда-ние: пер. с англ.: учеб. пособие / Эд Ботт, Вуди Леонард. – М.: Из-дательский дом «Вильямс», 2000. – 1024 с.
5. Гедранович, В.В. Технологии организации, хранения и обработки данных: учеб.-метод. комплекс / В.В. Гедранович, Ю.В. Змеева. – Минск: Изд-во МИУ, 2004. – 160 с.
ТЕСТ ДЛЯ САМОКОНТРОЛЯ 1. Таблица полей состоит из колонок:
a) Имя поля, Тип данных, Свойства поля b) Имя поля, Тип данных, Описание, Свойства поля, Общие, Под-
становка c) Имя поля, Тип данных, Общие, Подстановка d) Имя поля, Тип данных, Описание e) Имя поля, Тип данных, Описание, Свойства поля
58
2. Имя поля может содержать: a) до 64 символов, включающих в себя любые комбинации букв,
цифр, пробелов и специальных символов, за исключением (.), (!), (`), ([])
b) до 255 символов, включающих в себя любые комбинации букв, цифр, пробелов и специальных символов, и начинаться с бук-вы
c) до 64 символов, включающих в себя любые комбинации букв, цифр, пробелов и специальных символов, и начинаться с бук-вы
d) до 255 символов, включающих в себя любые комбинации букв, цифр, пробелов и специальных символов, за исключением (.), (!), (`), ([])
3. Тип данных для поля: a) определяет текст сообщения, которое выводится на экран при
вводе недопустимого значения b) определяет вид информации, которая будет храниться в данном
поле c) содержит дополнительную информацию о поле и может быть не
указан 4. Если запись в таблице A может иметь не более одной связанной
записи в таблице B и наоборот, то таблицы связаны между собой отношением: a) «один-ко-многим» b) «один-к-одному» c) «многие-ко-многим»
5. Если каждой записи в таблице A могут соответствовать несколько записей в таблице B, а запись в таблице B не может иметь более одной соответствующей ей записи в таблице A, то таблицы связа-ны между собой отношением: a) «один-ко-многим» b) «один-к-одному» c) «многие-ко-многим»
6. Если одной записи в таблице A могут соответствовать несколько записей в таблице B, а одной записи в таблице B несколько запи-сей в таблице A, то таблицы связаны между собой отношением: a) «один-ко-многим» b) «один-к-одному» c) «многие-ко-многим»
7. При проектировании таблиц в режиме конструктора разработчик: a) может не указывать ключевые поля, однако Access автомати-
чески сделает первое из заданных полей ключевым b) обязательно должен указать хотя бы одно ключевое поле c) может указать более одного ключевого поля в одной таблице
59
8. Диапазон допустимых чисел для размера числового поля Длин-ное целое: a) от -2 147 483 648 до 2 147 483 647 b) от -32 768 до 32 767 c) от -3,402823E38 до 3,402823E38
9. Поле, каждое значение которого однозначно определяет соответ-ствующую запись, называют: a) счетчиком b) обязательным полем c) ключевым d) составным ключом
10. Неопределенное отношение создается в том случае, когда ... a) оба связываемых поля не являются ключевыми или не имеют
уникального индекса b) оба связываемых поля являются ключевыми или имеют уни-
кальные индексы c) только одно из полей является ключевым или имеет уни-
кальный индекс 11. Поле со списком создается при помощи:
a) Построителя… b) Мастера подстановок… c) Мастера списков…
12. Индекс – это средство, которое обеспечивает ... a) быстрый доступ к данным в таблице на основе значений одно-
го или нескольких столбцов b) быстрый поиск файлов на жестких дисках c) быстрое редактирование документов
13. Индекс, построенный по нескольким столбцам, называется ... a) связанным b) простым c) составным
14. Одним из основных методов ускорения доступа к данным в совре-менных СУБД является ... a) преобразование b) транспонирование c) индексирование
15. Если при добавлении новой записи в таблицу значение поля авто-матически увеличивается на единицу, то тип этого поля ... a) Текстовый b) Поле MEMO c) Числовой d) Денежный e) Счетчик
60
6 ФОРМИРОВАНИЕ ЗАПРОСОВ В MS ACCESS
6.1 Общие сведения о запросах Запросы предназначены для просмотра, анализа и изменения дан-
ных из одной или нескольких таблиц, удовлетворяющих заданным кри-териям. Результатом выполнения запроса является набор записей, собранных в таблице, который называется RecordSet (динамический, временный набор данных). В объекте RecordSet допускается добавле-ние, изменение, удаление записей. В нем отображаются также записи, добавляемые, удаляемые или изменяемые в исходных таблицах. Объ-ект RecordSet формируется всякий раз заново при выполнении запроса на основе реальных таблиц базы данных.
По способу формирования запросы можно разделить на два вида: - запросы по образцу (QBE-запросы, Query By Example), парамет-
ры которых устанавливаются в окне Конструктора запросов; - структурированные (SQL-запросы). Любой запрос хранится в ба-
зе данных в формате SQL – Structured Query Language (язык структурированных запросов). Основное достоинство этого языка состоит в том, что он является стандартом для большинства ре-ляционных СУБД. SQL имеет унифицированный набор инструк-ций, которые можно использовать во всех СУБД, поддерживаю-щих этот язык.
Основной тип QBE-запросов – это запросы на выборку. Для форми-рования запроса по образцу нужно в окне базы данных в списке Объ-екты выбрать объект Запросы и указать способ создания запроса: Создание запроса в режиме конструктора или Создание запроса с помощью мастера (рисунок 6.1).
Рисунок 6.1 – Окно БД (объект Запросы) с диалоговым
окном Новый запрос В окне базы данных можно нажать кнопку Создать, вследствие чего
появится диалоговое окно Новый запрос (см. рисунок 6.1), в котором предлагаются способы создания запроса:
61
1. Конструктор. Позволяет создавать новые и изменять сущест-вующие запросы в режиме конструктора. (Режим конструктора. Окно, в котором отображается макет следующих объектов базы данных: таблицы, запросы, формы, отчеты, макросы и страницы доступа к данным. В режиме конструктора пользователь создает новые объекты базы данных или изменяет макеты существую-щих).
2. Простой запрос. Вызывает мастер простого запроса на выбор-ку.
3. Перекрестный запрос. Перекрестные запросы используют для расчетов и представления данных в структуре, облегчающей их анализ. Перекрестный запрос подсчитывает сумму, среднее, число значений или выполняет другие статистические расчеты, после чего результаты группируются в виде таблицы по двум на-борам данных, один из которых определяет заголовки столбцов, а другой заголовки строк.
4. Повторяющиеся записи. Вызывается мастер запроса поиска повторяющихся записей, созданный запрос выбирает повторяю-щиеся записи из указанной таблицы или другого запроса (про-стого).
5. Записи без подчиненных. Создается запрос, выбирающий из таблицы записи, не связанные с записями из других таблиц.
6.2 Мастер простого запроса на выборку Мастер простого запроса на выборку создает запросы для полу-
чения данных из полей, выбранных в одной или нескольких таблицах или запросах. С помощью мастера можно также вычислять суммы, чис-ло записей и средние значения для всех записей или определенных групп записей, а также находить максимальное и минимальное значе-ние в поле. Однако нельзя ограничить количество записей, возвращае-мых этим запросом, с помощью условий отбора.
Для формирования запроса по образцу нужно активизировать вкладку Запросы в окне базы данных и выбрать способ создания за-проса – Создание запроса с помощью мастера (см. рисунок 6.1), или на панели инструментов окна базы данных нажать кнопку Создать и в диалоговом окне Новый запрос выбрать в списке строку Простой запрос.
В появившемся окне Создание простых запросов в поле со спи-ском Таблицы и запросы следует выбрать таблицу или запрос, кото-рые будут служить источником данных для создаваемого запроса (ри-сунок 6.2).
62
Рисунок 6.2 – Мастер создания простого запроса (1-е окно)
Затем нужно переместить необходимые поля из списка Доступные поля: в список Выбранные поля:, используя кнопки:
– добавить выбранное поле;
– добавить все поля;
– удалить выбранное поле (из списка Выбранные поля);
– удалить все поля. После выбора полей нажать кнопку Далее > для перехода в сле-
дующее окно Мастера. В этом окне (рисунок 6.3) задается имя запроса и выбирается способ открытия запроса: Открыть запрос для про-смотра данных или Изменить макет запроса. При выборе первого способа запрос открывается в режиме просмотра, при выборе второго – в режиме Конструктора.
63
Рисунок 6.3 – Мастер создания простого запроса (2-е окно)
6.3 Создание запроса на выборку в режиме Конструктора
После выбора способа создания Конструктор появляется пустое окно Конструктора запроса и диалоговое окно Добавление таблицы (рисунок 6.4).
В окне Добавление таблицы выбираются таблицы и (или) запросы с помощью кнопки Добавить, на основании которых будет строиться за-прос. Имена выбранных таблиц и (или) запросов со списками полей появляются в верхней части Конструктора запросов (рисунок 6.5). После выбора всех необходимых объектов, следует закрыть окно До-бавление таблицы. Для повторного пополнения списка таблиц нужно воспользоваться командой Запрос – Добавить таблицу… или нажать
кнопку Отобразить таблицу на панели инструментов.
64
Рисунок 6.4 – Окно Добавление таблицы Конструктора запросов
Рисунок 6.5 – Окно Конструктора запросов с добавленными
таблицами Специальности и Факультеты
65
При составлении запроса на основе нескольких таблиц между ними не-обходимо установить связь. Если ее нет, то результаты запроса могут быть некорректными.
Разработка запроса состоит из нескольких этапов: - добавление полей в запрос; - установка критериев отбора записей; - сортировка записей. Нужные поля в бланк запроса можно добавить, используя следующие
способы: - перетащить их имена из списка в верхней части окна в строку По-
ле: бланка запроса; - сделать двойной щелчок левой клавишей мыши по имени поля в
таблице-источнике; - выбрать имя поля из раскрывающегося списка в строке Поле; - выделить все имена в списке и перетащить в бланк запроса (для
выделения всех имен нужно сделать щелчок на первом поле спи-ска, затем при нажатой клавише Shift на последнем поле списка);
- использовать знак звездочки (*).
Использование знака звездочки (*) в бланке запроса Чтобы включить в запрос все поля из таблицы или запроса, можно
либо выбирать каждое поле по отдельности, либо использовать под-становочный знак звездочки (*). В запросе удобнее применять знак звездочки, а не выбирать все поля. При использовании знака звездочки в результаты запроса автоматически включаются все поля, добавлен-ные в базовые таблицу или запрос после создания данного запроса. Все удаленные поля будут автоматически удаляться из запроса.
При одновременном перетаскивании в бланк нескольких полей Microsoft Access помещает каждое поле в отдельный столбец. Если перетащить в бланк знак звездочки, Microsoft Access помещает имя таблицы или запроса в один столбец и добавляет к имени точку и звез-дочку (например, Сессия.*). Оба эти действия приводят к одинаковому результату.
Столбец поля запроса можно выделить, указав мышью в область выделения (указатель мыши примет вид черной стрелки, направленной вниз). После выделения столбцы можно копировать, перемещать или удалять, используя соответствующие команды меню Правка.
Записи в создаваемом динамичном наборе могут быть рассортиро-ваны по алфавиту, по возрастанию или убыванию. Можно производить сортировку по содержимому нескольких полей (допускается до 10). Для выполнения сортировки следует перейти в строку Сортировка: и в ячейке соответствующего поля выбрать способ сортировки из раскры-вающегося списка.
В строке Вывод на экран: бланка запроса отображается флажок, который указывает на то, будет ли выводиться соответствующее поле запроса на экран при просмотре запроса в режиме таблицы или при
66
построении на основе запроса формы или отчета. Флажок вывода на экран удобно использовать при необходимости включения в запрос полей, по которым производится отбор записей или вычисления, но данные которых в итоговом запросе не нужны. В этом случае достаточ-но снять флажок в столбце соответствующего поля (рисунок 6.6).
Рисунок 6.6 – Пример запроса
Задание критериев отбора В строке Условие отбора: и в строке или: указываются критерии
отбора записей. Такими критериями могут быть логические выражения, например, (=2), (>3), (=«ЭП») и т.п. Эти критерии указывают на то, какие записи нужно выбрать из таблицы или таблиц. Их может быть несколь-ко для одного или нескольких полей. При необходимости указания не-скольких условий отбора для одного поля, следующее условие можно указывать в строке или:. Кроме того, для определения составного кри-терия можно использовать операторы And (и) или Or (или). Например, в строке Условие отбора: могут задаваться следующие критерии: (>1 And <3), (=2 Or =3) и т.п. Комбинирование условий с помощью операторов And и Or
Если выражения вводятся в несколько ячеек строки Условие отбо-ра:, то они автоматически объединяются с помощью операторов And или Or. Если выражения находятся в разных ячейках, но в одной стро-ке, то Microsoft Access использует оператор And. Это означает, что бу-дут возвращены только записи, отвечающие условиям отбора, указан-ным во всех ячейках. Если же выражения находятся в разных строках бланка запроса, то Microsoft Access использует оператор Or, это озна-чает, что возвращены будут записи, отвечающие условиям отбора, ука-занным в любой ячейке.
Условие отбора можно вводить самостоятельно, а можно восполь-зоваться Построителем выражений. Для этого нужно в бланке запро-са установить курсор в соответствующую ячейку строки Условие отбо-
67
ра: и нажать кнопку Построить или выбрать команду Построить… из контекстного меню.
В верхней части Построителя выражений (рисунок 6.7) находится поле, в котором строится соответствующее выражение. Элементы, ко-торые можно использовать для выражения, находятся в трех полях нижней половины окна. Над ними находится панель с кнопками отдель-ных операторов:
- математических (+, –, /, *); - коммерческого «и» (&); - логических (=, <, >,<>); - операторов связи и сравнения (And, Or, Not, Like).
Рисунок 6.7 – Пример критерия отбора, составленного
в Построителе выражений Из списка левого окна выбирается таблица, запрос или другой объ-
ект для построения выражения. Для ввода нужного поля в выражение необходимо сделать двойной
щелчок по его имени в списке среднего окна или выделить поле и на-жать кнопку Вставить. Из третьего списка можно выбрать функции или операторы, которые можно вставить в выражение.
Ввод выражений В бланке запроса выражения вводятся в разных местах, в зависи-
мости от выполняемой операции. После ввода выражения в бланк за-проса и нажатия клавиши ENTER выражение отображается на экране с использованием синтаксиса, понятного Microsoft Access. Если в выра-жение не был включен оператор, то подразумевается, что был исполь-зован оператор =. Например, если в качестве условия отбора в поле «СокрНазвСпец» будет введено ЭиУП, то Microsoft Access отобразит на
68
экране «ЭиУП», а выражение интерпретирует как СокрНазвСпец ="ЭиУП". Если выражение содержит ссылки на имена полей, то эти по-ля должны находиться в одной из таблиц, добавленных в запрос. Не допускается перетаскивание полей в выражение в бланке запроса.
Создание вычисляемого поля В бланке запроса можно создавать вычисляемые поля – времен-
ные поля, создаваемые в динамических таблицах при запуске запроса. Они сохраняют результат операций над полями таблиц.
Для создания вычисляемого поля следует перейти в пустой столбец бланка запроса, в строке Поле ввести новое имя и обязательно поста-вить символ двоеточие (:), после двоеточия ввести выражение.
Например, выражение СреднийБалл:([Оценки]![ОКИТ]+[Оценки]![ВМ]+[Оценки]![ОАиП])/3 использует данные из таблицы Оценки и вычисляет средний балл по трём дисциплинам.
6.4 Создание итоговых запросов Запрос можно также использовать для подведения итогов и выпол-
нения расчетов, обобщая при этом данные исходных таблиц. Статистическая функция задается в строке Групповая операция:,
которая появляется после нажатия кнопки Групповые операции или выбора команды Групповые операции из меню Вид. Таблица 6.1 – Статистические функции
Элемент Результат Тип поля
Sum Сумма значений поля «Числовой», «Дата/время», «Денеж-ный» и «Счетчик»
Avg Среднее от значений поля «Числовой», «Дата/время», «Денеж-ный» и «Счетчик»
Min Наименьшее значение поля «Текстовый», «Числовой», «Да-та/время», «Денежный» и «Счетчик»
Max Наибольшее значение поля «Текстовый», «Числовой», «Да-та/время», «Денежный» и «Счетчик»
Count Число значений поля без учета пустых значений
«Текстовый», «Числовой», «Да-та/время», «Денежный», «Счетчик», «Логический» и «Поле объекта OLE»
StDev Среднеквадратичное отклоне-ние от среднего значения поля
«Числовой», «Дата/время», «Денеж-ный» и «Счетчик»
Var Дисперсия значений поля «Числовой», «Дата/время», «Денеж-ный» и «Счетчик»
69
Функции «First» и «Last» Функции First и Last используются для возвращения первой или по-
следней записи. Записи возвращаются в том порядке, в котором они были введены. Сортировка записей не влияет на выполнение этих функций.
6.5 Запросы действия Кроме запроса на выборку в Access существуют следующие виды
запросов: - запросы на добавление; - запросы на удаление; - запросы на обновление; - запросы на создание таблицы.
Запрос на добавление С помощью этого запроса можно записи из одной таблицы перемес-
тить в конец другой таблицы. При этом таблицы могут находиться в одной или разных базах данных. При работе с различными базами дан-ных сначала нужно присоединить таблицу-источник к базе с табли-цей-приемником, используя команду Файл – Внешние данные – Связь с таблицами….
Для отбора добавляемых записей нужно составить запрос на выборку и проверить правильность его работы. Затем в режиме Конструктора вы-полнить команду Запрос – Добавление… и выбрать таблицу-приемник в диалоговом окне Добавление (рисунок 6.8). После закрытия диалога Access добавит в бланк запроса строку Добавление:, в которой нужно указать какие поля из таблицы-источника присоединяются к каким полям из таблицы-приемника и выполнить запрос.
Рисунок 6.8 – Выбор таблицы для добавления записей
Запрос на удаление Этот запрос предназначен для удаления из таблицы группы запи-
сей, удовлетворяющих критериям отбора. Порядок создания этих за-просов:
70
- создать запрос на выборку и выполнить (для проверки правильно-сти создания);
- вернуться в режим Конструктора; - выполнить команду Запрос – Удаление. После этого в бланк за-
проса добавится строка Удаление:, в которой можно задать до-полнительные условия;
- выполнить запрос.
Запрос на обновление Он используется для изменения группы записей, удовлетворяющих
критериям отбора. Для создания запроса на обновления необходимо: - создать запрос на выборку и выполнить его; - вернуться в режим Конструктора и выполнить команду Запрос –
Обновление. В появившейся строке Обновление: нужно указать новые значения для полей таблицы, в том числе можно добавлять выражения;
- выполнить запрос.
Запрос на создание таблицы На основе результирующего набора записей запроса можно постро-
ить новую таблицу с помощью запроса на создание таблицы. При этом необходимо выполнить следующие действия:
- создать запрос на выборку и выполнить его; - вернуться в Конструктор и выполнить команду Запрос – Созда-
ние таблицы…. В появившемся диалоговом окне ввести имя но-вой таблицы;
- выполнить запрос.
6.6 Параметрические запросы Часто приходится создавать запросы по одному критерию, но при
разных его значениях. Параметрические запросы представляют собой варианты базового запроса и незначительно отличаются друг от друга. Чтобы избежать создания нового запроса каждый раз при изменении значения критерия создают запрос с параметром. Параметров может быть несколько в одном запросе.
Порядок создания этих запросов следующий: - создается запрос на выборку, при этом строки условий отбора за-
полняются не конкретными критериями, а обращениями к пользо-вателю;
- активизируется ячейка строки Условие отбора: и выполняется команда Запрос – Параметры….
- в диалоге Параметры запроса указывается текст, который будет запрашивать значение параметра при исполнении запроса и вы-бирается тип данных указанного поля.
71
Создать параметр можно непосредственно в бланке запроса, на-брав нужный текст в соответствующей ячейке строки Условие отбора:, заключив его в квадратные скобки.
6.7 Перекрестные запросы Перекрестные запросы позволяют компактно отображать отобран-
ные данные и объединять однородную информацию. Таблицы, в кото-рых отображаются результаты выполнения перекрестного запроса, удобны для создания диаграмм и графиков с помощью мастера.
Перекрестные запросы используют для расчетов и представления данных в структуре, облегчающей их анализ. Перекрестный запрос подсчитывает сумму, среднее, число значений или выполняет другие статистические расчеты, после чего результаты группируются в виде таблицы по двум наборам данных, один из которых определяет заго-ловки столбцов, а другой – заголовки строк.
В запросе на выборку (рисунок 6.9) итоговые значения группируются по вертикали по фамилиям и товарам. Результаты содержат большое количество записей, что затрудняет сравнение итоговых значений для разных фамилий заказчиков.
Рисунок 6.9 – Запрос на выборку
В перекрестном запросе (рисунок 6.10) те же данные группируются по вертикали и по горизонтали. Формат таблицы является более ком-пактным и удобным для анализа.
Рисунок 6.10 – Перекрестный запрос
72
Создание перекрестного запроса Перекрестный запрос создается с помощью мастера или самостоя-
тельно в режиме конструктора запроса. В бланке запроса можно ука-зать поля, значения которых будут заголовками столбцов и строк, а также поле, значения которого следует использовать в вычислениях (рисунок 6.11).
Рисунок 6.11 – Пример создания перекрестного запроса
Создание перекрестного запроса в режиме Конструктора 1. В окне базы данных в списке Объекты выберите Запросы и на
панели инструментов окна базы данных нажмите кнопку Соз-дать.
2. В диалоговом окне Новый запрос выберите Конструктор. 3. В диалоговом окне Добавление таблицы выберите вкладку, со-
держащую объекты, данные из которых будут использованы в за-просе.
4. Дважды щелкните объекты, которые нужно добавить в запрос, а затем нажмите кнопку Закрыть.
5. Добавьте поля в строку Поле в бланке запроса и задайте усло-вия отбора.
6. На панели инструментов нажмите кнопку Тип запроса и выберите Перекрестный.
7. Для поля или полей, значения которых должны быть представ-лены в виде заголовков строк, щелкните ячейку строки Перекре-стная таблица и выберите значение Заголовки строк. Для та-ких полей нужно оставить в строке Групповая операция значе-ние Группировка, установленное по умолчанию.
8. Для поля, значения которого должны быть представлены в виде заголовков столбцов, щелкните ячейку строки Перекрестная таблица и выберите значение Заголовки столбцов. Значение Заголовки столбцов можно задать только для одного поля. Для этого поля нужно оставить в ячейке строки Групповая операция значение Группировка, установленное по умолчанию.
По умолчанию заголовки столбцов сортируются в алфавитном по-рядке или по числовым значениям. Если требуется расположить их в другом порядке или если нужно ограничить количество отображаемых заголовков столбцов, следует использовать свойство Заголовки столбцов запроса.
Имеется возможность изменить порядок или ограничить количество заголовков столбцов в перекрестном запросе. Например, названия ме-
73
сяцев можно вывести в заголовках в хронологическом, а не в алфавит-ном порядке или вывести столбцы только с января по июнь.
1. Откройте перекрестный запрос в режиме конструктора. 2. Щелкните фон окна режима конструктора запроса вне бланка за-
проса и списка полей.
3. Откройте окно свойств запроса нажатием кнопки Свойства на панели инструментов. В ячейку свойства Заголовки столб-цов введите заголовки столбцов в том порядке, в котором они должны отображаться в запросе. Заголовки столбцов следует разделять точкой с запятой или использовать знак разделителя списка, принятый в данной стране. (Для того чтобы найти кон-кретный знак разделителя списка, откройте окно «Язык и стан-дарты» панели управления Windows.)
4. Вводящиеся заголовки столбцов должны точно соответствовать заголовкам столбцов запроса в режиме таблицы. (После нажатия клавиши ENTER или перевода указателя в другую ячейку имя каждого заголовка заключается в кавычки).
5. Для просмотра результатов запроса нажмите кнопку Вид на панели инструментов.
6. Для поля, значения которого нужно использовать при создании перекрестной таблицы, щелкните ячейку строки Перекрестная таблица и выберите Значение. Пункт Значение можно выбрать только для одного поля.
7. В строке Групповая операция выберите статистическую функ-цию, которая будет использована для заполнения перекрестной таблицы (например Sum, Avg или Count).
Если требуется прервать выполнение запроса после его запуска, нажмите клавиши CTRL+BREAK.
Создание перекрестных запросов с помощью Мастера
1. В окне базы данных в списке Объекты выберите Запросы и на панели инструментов окна базы данных нажмите кнопку Соз-дать.
2. В диалоговом окне Новый запрос выберите Перекрестный за-прос.
3. Следуйте инструкциям в диалоговых окнах мастера. В послед-нем диалоговом окне можно либо запустить запрос, либо от-крыть его в режиме конструктора.
74
Литература 1. Харитонова, И.А. Microsoft® Access 2000 / И.А. Харитонова,
В.Д. Михеева. – СПб.: БХВ – Санкт-Петербург, 2000. – 1088 с. 2. Праг, Н. Керри. Access 2000. Библия пользователя: учеб. пособие:
пер. с англ. / Керри Н. Праг, Майкл Р. Ирвин. – М.: Издательский дом «Вильямс», 2000. – 1040 с.
3. Винтер, Р. Microsoft® Office 97 в подлиннике. в 2 т.: пер. с англ. / Р. Винтер, П. Винтер. – СПб.: BHV – Санкт-Петербург, 1997. Том II – 656 с.
4. Ботт, Эд. Использование Microsoft Office 2000. Специальное изда-ние: учеб. пособие: пер. с англ. / Эд Ботт, Вуди Леонард. – М.: Из-дательский дом «Вильямс», 2000. – 1024 с.
5. Гедранович, В.В. Технологии организации, хранения и обработки данных: учеб.-метод. комплекс / В.В. Гедранович, Ю.В. Змеева. – Минск: Изд-во МИУ, 2004. – 160 с.
ТЕСТ ДЛЯ САМОКОНТРОЛЯ 1. Набор записей RecordSet – это:
a) таблица, представляющая собой динамический набор данных b) отдельный файл, в который копируется информация из раз-
личных таблиц c) таблица, представляющая собой постоянный набор данных
2. Для расчетов и представления данных в структуре, облегчающей их анализ, следует создать запрос: a) Простой b) Записи без подчиненных c) Перекрестный d) Повторяющиеся записи
3. Добавить нужное поле в бланк запроса можно, используя следую-щие способы: a) перетащить в бланк запроса символ * b) перетащить имя поля из таблицы-источника в бланк запроса c) сделать двойной щелчок левой клавишей мыши по имени поля
в таблице-источнике d) выбрать имя поля из раскрывающегося списка в строке Поле:
4. Для нахождения среднего значения в данном поле можно исполь-зовать статистическую функцию ... a) Avg b) Count c) Среднее
5. Статистическая функция Var дает результат вычисления: a) среднеквадратичного отклонения b) дисперсии значений полей
75
c) наибольшего значения поля 6. Запросы на обновление позволяют:
a) изменять названия полей таблицы b) изменять группы записей, удовлетворяющих критериям отбора c) обновить все записи
9. Запросы создаются: a) для изменения оформления таблицы b) для изменения структуры таблицы c) для связывания таблиц d) для анализа и изменения данных в одной или нескольких таб-
лицах 10. Для получения данных из полей, выбранных в одной или несколь-
ких таблицах или запросах, следует создать: a) Простой запрос b) Перекрестный запрос c) Повторяющиеся записи
11. В мастере создания простого запроса удалить выбранное поле из списка Выбранные поля можно с помощью кнопки:
a) b) c) d) 12. В мастере создания простого запроса удалить все поля из спи-
ска Выбранные поля можно с помощью кнопки:
a) b) c) d) 13. При создании запроса на основе нескольких таблиц
a) таблицы обязательно должны быть связаны до создания за-проса
b) таблицы могут быть несвязанными c) таблицы могут быть несвязанными до создания запроса, но их
следует связать в бланке запроса, если Access не сделал этого автоматически
14. Производить сортировку записей в создаваемом динамичном на-боре данных можно по содержимому нескольких полей. Допускает-ся: a) до 5 полей b) до 10 полей c) до 15 полей
15. Если необходимо создать запрос, который будет выбирать записи из одной или нескольких таблиц с учетом некоторого критерия, но при разных его значениях, то: a) можно использовать запрос на обновление b) можно создать запрос на выборку со сложным условием отбо-
ра c) можно создать параметрический запрос
76
16. Результаты выполнения запроса на обновление можно увидеть: a) в режиме конструктора таблиц b) в режиме выполнения запроса c) в режиме конструктора запроса d) в режиме таблицы, для обновления данных в которой создавался
запрос 17. Результатом выполнения запроса является ...
a) отдельный файл, в который копируется информация из раз-личных таблиц
b) таблица, представляющая собой динамический набор данных c) таблица, представляющая собой постоянный набор данных
18. Поле, данные из которого участвуют в запросе ... a) всегда выводится на экран в режиме выполнения запроса b) выводится на экран в режиме выполнения запроса по желанию
пользователя 19. К запросам-действиям не относятся:
a) запросы на добавление b) запросы на удаление c) запросы на обновление d) запросы на выборку e) запрос на создание таблицы
20. Статистическая функция Sum не может быть использована для следующих типов полей: a) денежный b) числовой c) дата/время d) текстовый e) счетчик
21. Запросы на удаление: a) удаляют все записи таблицы b) удаляют таблицу c) удаляют записи, удовлетворяющие критериям отбора
77
7 ПРОЕКТИРОВАНИЕ ФОРМ В MS ACCESS
7.1 Назначение форм. Автоматическое создание форм
Access позволяет организовать удобный и интуитивно понятный ин-терфейс пользователя для работы с данными с помощью форм. Фор-мами называются настраиваемые диалоговые окна, сохраняемые в базе данных в виде объектов специального типа.
Формы предоставляют более удобный способ просмотра и правки данных в таблицах, чем режим Таблицы. Формы содержат элементы управления, с помощью которых осуществляется доступ к данным в таблицах. Элементами управления являются:
- текстовые поля для ввода и редактирования данных; - рамки объектов для отображения графики и объектов OLE; - кнопки, флажки, переключатели, списки, надписи. Формы позволяют выполнять проверку корректности данных при
вводе, проводить вычисления и обеспечивают доступ к данным в свя-занных таблицах с помощью подчиненных форм.
В форме можно одновременно отобразить большое количество по-лей, можно использовать различные средства ускорения ввода и про-верки допустимости вводимых данных. Кроме того, в форме могут ото-бражаться графические элементы и содержимое полей примечаний (МЕМО). В режиме таблицы они не доступны.
Формы используются для работы с базой данных нескольких поль-зователей. Форма может служить средством защиты базы от действий неквалифицированных пользователей, а также для ограничения досту-па пользователей к полям, в которых хранится конфиденциальная ин-формация.
Формы обеспечивают пользователям возможность ввода данных без необходимости знать, как устроена таблица. Одна форма может содержать данные из многих таблиц, благодаря чему обеспечивается возможность ввода данных в разные таблицы с одного места и, на-оборот, в одну таблицу с разных рабочих мест. Макет формы можно сделать так, чтобы форма на экране выглядела похожей на бумаж-ный первоисточник: заявление о приеме на работу, бланк регистрации, опросный лист, бюллетень для голосования и прочие документы, ис-пользуемые для сбора данных, подлежащих вводу в базу. Если форма, используемая для ввода записей в базу, полностью соответствует до-кументу-источнику, вероятность ошибок при вводе данных снижается. Форму можно также использовать как кнопочную форму, позволяющую открывать другие формы и отчеты, распечатывать отчеты. Кроме того, можно создавать такой тип форм, как пользовательское диалоговое окно для ввода данных и выполнения действий, определяемых введен-ными данными.
78
Существует несколько способов создания форм: - автоматическое создание форм на основе таблицы или запроса; - создание форм с помощью Мастера; - создание формы вручную в режиме Конструктора. Самым простым из них является использование средств автомати-
ческого создания форм на основе таблицы или запроса. Автоматически создаваемые формы бывают пяти видов: организованные в столбец, ленточные, табличные, сводная таблица и сводная диаграмма. С по-мощью автоформ можно создавать формы, в которых выводятся все поля и записи базовой таблицы или запроса.
Для создания Автоформы в окне базы данных следует выбрать яр-лык Формы и нажать кнопку Создать (рисунок 7.1).
Рисунок 7.1 – Окно базы данных
В диалоговом окне Новая форма в раскрывающемся списке вы-брать имя таблицы или запроса, которые будут использованы в качест-ве источника данных для формы, и из списка способов создания формы выбрать необходимую Автоформу (рисунок 7.2).
Рисунок 7.2 – Диалоговое окно Новая форма
79
Автоформа: в столбец. Каждое поле располагается на отдельной строке; подпись находится слева от поля.
Рисунок 7.3 – Автоформа: в столбец на основе таблицы Специальность
Автоформа: ленточная. Поля, образующие одну запись, располо-жены в одной строке; их подписи выводятся один раз в верхней части формы.
Рисунок 7.4 – Автоформа: ленточная на основе таблицы Специальность
Автоформа: табличная. Поля записей расположены в формате таблицы, где каждой записи соответствует одна строка, а каждому по-лю – один столбец. Имена полей служат заголовками столбцов.
80
Рисунок 7.5 – Автоформа: табличная на основе таблицы Специальность
Формы можно также открывать в режиме сводной таблицы или в режиме диаграммы для анализа данных. В этих режимах можно ди-намически изменять макет формы для изменения способа представ-ления данных. Существует возможность упорядочивать заголовки строк и столбцов, а также применять фильтры к полям. При каждом изменении макета сводная форма немедленно выполняет вычисле-ния заново в соответствии с новым расположением данных.
Автоформа: сводная таблица. Форма открывается в режиме сводной таблицы Excel. Имеется возможность добавлять поля путем их перетаскивания из списка полей в различные области макета.
Рисунок 7.6 – Автоформа: сводная таблица на основе таблицы Заказы
(режим создания) В режиме сводной таблицы имеется возможность просматривать
исходные данные или сводные данные, упорядочивая поля в областях фильтра, строк, столбцов и данных.
81
Рисунок 7.7 – Автоформа: сводная таблица на основе таблицы Заказы
(общий вид формы) Автоформа: сводная диаграмма. Форма открывается в режиме
сводной диаграммы. Имеется возможность добавлять поля путем их перетаскивания из списка полей в различные области макета.
Рисунок 7.8 – Автоформа: сводная диаграмма на основе таблицы За-
казы (режим создания) В режиме сводной диаграммы можно визуально представлять дан-
ные, выбрав тип диаграммы и упорядочивая поля в областях фильтра, рядов, категорий и данных.
82
Рисунок 7.9 – Автоформа: сводная диаграмма на основе таблицы
Заказы (общий вид формы)
7.2 Создание форм с помощью Мастера Другим простым и быстрым способом создания формы является ис-
пользование Мастера форм. С помощью Мастера можно создавать формы на основе одной таблицы и более сложные формы на основе нескольких таблиц и запросов.
Для создания формы с помощью Мастера нужно в окне базы данных в списке Объекты выбрать объект Формы и указать способ создания формы: Создание формы с помощью мастера (рисунок 7.1). В окне базы данных можно нажать кнопку Создать, вследствие чего появится диалоговое окно Новая форма (см. рисунок 7.2), в котором выбрать способ создания Мастер форм и из раскрывающегося списка выбрать таблицу или запрос, которые будут использованы в качестве источника данных. После нажатия кнопки ОК появится диалоговое окно Создание форм (рисунок 7.10).
83
Рисунок 7.10 – Мастер форм: выбор полей для формы
В раскрывающемся списке Таблицы и запросы можно выбрать любую таблицу или запрос, поскольку формы могут содержать поля из разных (связанных) таблиц. При выборе таблицы или запроса список Доступные поля: будет заполняться соответствующими полями. По-сле выбора необходимых полей для формы на следующем шаге выби-рается внешний вид формы (рисунок 7.11).
Рисунок 7.11 – Мастер форм: выбор внешнего вида формы
84
На следующих шагах выбирается стиль оформления (рисунок 7.12), задается имя формы и выбирается режим работы с формой (рису-нок 7.13).
Рисунок 7.12 – Мастер форм: выбор стиля оформления формы
Рисунок 7.13 – Мастер форм: задание имени формы и выбор способа
работы с формой (режим Формы или режим Конструктора)
85
Подчиненные формы Подчиненной формой называют форму, вставленную в другую фор-
му. Первичная форма называется главной формой, а форма внутри формы называется подчиненной формой.
Подчиненные формы особенно удобны для вывода данных из таб-лиц или запросов, связанных с отношением «один–ко–многим». Напри-мер, можно создать форму с подчиненной формой для вывода данных из таблицы «Факультеты» и из таблицы «Специальности». Данные в таблице «Факультеты» находятся на стороне «один» отношения. Дан-ные в таблице «Специальности» находятся на стороне «многие» отно-шения – на каждом факультете может проводиться обучение по не-скольким специальностям.
В главной форме отображаются данные на стороне отношения «один», а в подчиненной – данные на стороне отношения «многие».
Главная и подчиненная формы в этом типе форм связаны таким об-разом, что в подчиненной форме выводятся только те записи, которые связаны с текущей записью в главной форме. Например, когда главная форма отображает факультет «Экономики», подчиненная форма ото-бражает только те специальности, по которым осуществляется подго-товка на этом факультете.
Если на первом шаге Мастера форм (см. рисунок 7.10) выбираются данные из связанных таблиц (тип отношения «один-ко-многим»), то Мастер добавляет дополнительные диалоговые окна для создания подчиненной формы (рисунки 7.14, 7.16, 7.17). В диалоговом окне (ри-сунки 7.14, 7.16, 7.20) выбирается вид представления данных. При вы-боре таблицы, данные из которой находятся на стороне «многие» (ри-сунок 7.14), Мастер создает одиночную форму (рисунок 7.15).
Рисунок 7.14 – Мастер форм: выбор вида представления данных*
* Диалоговое окно появляется только в случае выбора полей из таблиц, связан-ных отношением «один-ко-многим», или из запроса.
86
Рисунок 7.15 – Форма специальности
Если же выбирается таблица, данные из которой находятся на сто-роне «один», то можно выбрать создание главной и подчиненной форм (рисунок 7.16) или создание связанных форм (рисунок 7.20).
Рисунок 7.16 – Мастер форм: выбор вида представления данных* На следующих шагах выбирается внешний вид подчиненной формы
(рисунок 7.17), задаются имена форм и выбирается режим работы с формой (рисунок 7.18).
* Диалоговое окно появляется только в случае выбора полей из таблиц, связан-ных отношением «один-ко-многим», или из запроса.
87
Рисунок 7.17 – Мастер форм: выбор внешнего вида подчиненной формы
Рисунок 7.18 – Мастер форм: задание имен форм и выбор дальнейших
действий при работе с формой На рисунке 7.19 показан пример главной и подчиненной форм, соз-
данных с помощью Мастера.
88
Рисунок 7.19 – Составная форма Факультеты
Синхронизация связанных записей в двух формах В некоторых случаях возникает необходимость одновременного
просмотра связанных записей в двух формах. Например, при просмот-ре записей о факультетах в форме «Факультеты» может потребоваться открыть форму «Специальности» и просмотреть список специально-стей, по которым идет подготовка на данном факультете.
Для синхронизации записей между двумя формами можно создать в Конструкторе кнопку, которая открывает вторую форму и синхронизирует ее с первой, или воспользоваться Мастером форм. На втором шаге Мастера следует выбрать опцию Связанные формы (рисунок 7.20) и нажать кнопку Далее>.
Рисунок 7.20 – Мастер форм: выбор вида представления данных*
* Диалоговое окно появляется только в случае выбора полей из таблиц, связан-ных отношением «один-ко-многим», или из запроса.
89
На последнем шаге (рисунок 7.21) следует задать имя каждой фор-ме и выбрать режим работы с формой.
Рисунок 7.21 – Мастер форм: задание имен форм и выбор
работы с формой На рисунке 7.22 показан пример связанных форм, созданных с по-
мощью Мастера. Связанная форма «Специальности» открывается из формы «Факультеты» с помощью кнопки Специальности.
Рисунок 7.22 – Связанные формы Факультеты и Специальности
90
7.3 Создание форм с помощью Конструктора Для самостоятельного проектирования формы в диалоге «Новая
форма» (рисунок 7.2) выбирается опция Конструктор и таблица или запрос, на основе которых строится форма.
Новая форма в режиме Конструктора форм содержит только об-ласть данных, но можно добавить и другие разделы. Сделать это воз-можно с помощью команд Заголовок/примечание формы и Колонти-тулы из меню Вид:
Любая форма может включать следующие разделы: - Раздел Заголовок формы определяет верхнюю часть формы.
Этот раздел добавляется в форму вместе с разделом примечания формы. В область заголовка формы можно поместить текст, гра-фику и другие элементы управления. При печати многостраничной формы раздел заголовка отображается только на первой страни-це.
- Раздел Верхний колонтитул определяет верхний колонтитул страницы при печати формы. Этот раздел добавляется в форму вместе с разделом, определяющим нижний колонтитул страницы. Этот раздел отображается только тогда, когда форма открыта в режиме предварительного просмотра. При печати многостранич-ной формы верхний колонтитул отображается вверху каждой страницы.
- Раздел Область данных определяет основную часть формы, со-держащую данные, полученные из источника. Этот раздел может содержать элементы управления, отображающие данные из таб-лиц и запросов, а также неизменяемые данные, например надпи-си. При печати многостраничной формы этот раздел отображает-ся на каждой странице.
- Раздел Нижний колонтитул определяет нижний колонтитул страницы при печати формы. При печати многостраничной формы нижний колонтитул отображается внизу каждой страницы.
- Раздел Примечание формы определяет нижнюю часть формы. Этот раздел добавляется в форму вместе с разделом заголовка формы. При печати многостраничной формы примечание будет отображено только внизу последней страницы.
Разделы формы в режиме Конструктора представлены на рисун-ке 7.23. Каждый раздел формы или отчета может иметь собственную высоту. Однако изменение ширины одного раздела приводит к автома-тическому изменению ширины всех остальных разделов в форме или отчете.
Для изменения высоты раздела нужно установить указатель на нижнюю границу раздела и перетащить ее вверх или вниз (рису-нок 7.24), а для изменения ширины раздела нужно установить указа-тель на правую границу раздела и перетащить ее влево или вправо (рисунок 7.25).
91
Рисунок 7.23 – Разделы формы Access
Рисунок 7.24 – Изменение высоты
Рисунок 7.25 – Изменение ширины
Пользователь имеет возможность скрыть раздел или изменить его размеры, добавить рисунок или задать цвет фона раздела. Можно так-же изменять свойства, определяющие как будет печататься содержи-мое раздела.
92
Выделение раздела Для выделения раздела в форме можно выполнить щелчок левой
клавишей мыши в одной из следующих областей (рисунок 7.26): 1. Область выделения раздела. 2. Заголовок раздела. 3. Фоновая область раздела. 4. Область выделения формы.
Рисунок 7.26 – Выделение разделов в форме
Объекты, которые размещаются на форме, называют элементами управления. Это могут быть поля БД, отображающие данные, тексто-вые надписи, линии, рамки, вставленные рисунки, списки и поля со спи-сками, кнопки, флажки, переключатели, выключатели, набор вкладок и др.
Элементы управления можно передвигать, удалять, изменять их свойства, предварительно выделив их.
Свойства изменяют в окне, которое вызывается с помощью команды Свойства из меню Вид или из контекстного меню.
Для каждого элемента управления типа «поле БД» создается тек-стовое поле и связанная с ним надпись. Выделенное поле отмечается рамкой с черными квадратами на границах (рисунок 7.27).
Рисунок 7.27 – Выделенное текстовое поле
Для изменения размера элемента управления нужно перетащить маркеры изменения размера (указатель мыши должен изменить свою форму на двунаправленную стрелку). Чтобы переместить отдельно один элемент на другое место (подпись или поле), нужно перетащить
93
его за маркер перемещения (указатель мыши изменит свою форму на изображение руки с вытянутым указательным пальцем). Если необхо-димо переместить подпись поля и поле одновременно, то следует по-тянуть за границу выделенного элемента управления (указатель мыши изменит свою форму на изображение руки).
При необходимости выделения более одного элемента нужно один из элементов выделить обычным способом, а остальные при нажатой клавише Shift. Выделенные элементы управления можно форматиро-вать, т.е. выравнивать, изменять размер и интервалы, изменять шрифт, его размер, стиль, цвет, цвет фона, оформление.
Создание новых элементов управления Самый простой способ добавить элементы управления в форму –
это воспользоваться списком полей. При перетаскивании поля из этого списка на форму Access автоматически создает подходящий для него элемент управления (переключатель для логического типа, связанная рамка объекта для объектов OLE, поле со списком для полей с уста-новленным свойством подстановки). Для того чтобы вызвать или спря-тать список полей, можно выполнить команду Список полей из меню
Вид или нажать соответствующую кнопку на панели инструментов . Если необходимо применить другие типы элементов управления, то следует использовать панель элементов. Для ее вызова используется
соответствующая команда из меню Вид или кнопка на панели ин-струментов.
В формах имеются три категории элементов управления: - связанные элементы – привязаны к полю в таблице или запросе; - свободные элементы – не связаны с каким-либо полем в таблице
или запросе; - вычисляемые элементы – являются свободными, но используют
данные из полей для выполнения расчетов. Результаты расче-тов не хранятся в таблице или запросе.
Для создания на форме нового элемента следует выбрать его на панели (форма указателя мыши меняется на крестик и рядом виден значок выбранного элемента), переместить указатель мыши в нужное место формы и, если надо, изменить размер элемента.
Краткое описание панели элементов (рисунок 7.28). Выбор объектов. Предназначен для выделения объектов, с кото-
рыми нужно работать. Активизируется по умолчанию. Мастера. Включает и выключает Мастеров элементов. Рекоменду-
ется держать их включенными, чтобы они помогали при сложных опе-рациях типа создания группы переключателей, полей со списками, а также подчиненных форм.
94
Рисунок 7.28 – Панель элементов.
Надпись. Создает текстовый элемент. Используется для того, что-бы внести в формы текст, например, заголовок.
Поле. Используется чаще всего для создания вычисляемых полей. Пример выражения в вычисляемом поле: = [Цена]*[Количество].
Выражение можно вводить с клавиатуры или использовать построи-тель выражений. Для входа в построитель выражений нужно выбрать поле, нажать кнопку Свойства на панели инструментов или нажать кнопку Построить рядом с ячейкой свойства Данные (рисунок 7.29).
Рисунок 7.29 – Окно свойств для текстового поля
95
Группа переключателей. Используется, если необходимо создать зависимые кнопки в группе, где возможен только один вариант из не-скольких. Размещение на форме группы переключателей вызывает Мастер, который помогает определить эту группу и установить нужные опции. Например, группа переключателей может быть использована для определения способа доставки: воздушным путем, морским или сухопутным. На странице доступа к данным группа может содержать только переключатели.
Выключатель. Создает кнопку включения/выключения, которая на-жата при включенном состоянии. Эта кнопка может являться частью группы переключателей, а может быть самостоятельной.
Переключатель. Создает отдельный элемент управления, присое-диненный к логическому полю в базе данных Microsoft Access. Пере-ключатель в пользовательском диалоговом окне или входящий в группу параметров является свободным элементом управления, принимаю-щим действия пользователя.
Флажок. Вводит данные в поле типа Да/Нет. Можно перетащить ло-гическое поле из списка полей для создания флажка.
Поле со списком. Комбинирует функции текстового поля и списка. Можно вводить значение в текстовое поле или выбирать доступный элемент в раскрывающемся списке.
Список. Создает список, допускающий прокрутку. Позволяет выби-рать значения из раскрывающегося списка. Ввести значение в раскры-вающийся список невозможно.
Кнопка. Создает кнопки, которые используются для выполнения действий, таких, как поиск записи, печать записи, применение фильтра и др. При перемещении этого элемента на форму запускается Мастер, который предлагает возможные опции и автоматически создает проце-дуру на Visual Basic, которая работает вместе с кнопкой.
Рисунок. Используется для отображения неизменяемого рисунка в форме. Поскольку рисунок не является объектом OLE, то после поме-щения рисунка в форму не допускается его изменение из Microsoft Access.
Свободная рамка объекта. Используется для отображения в фор-ме свободного объекта OLE, например, электронной таблицы Microsoft Excel. Этот объект остается неизменным при переходе от записи к за-писи.
Присоединенная рамка объекта. Используется для отображения в форме объектов OLE, таких, как набор рисунков. Этот элемент управ-ления предназначен для объектов, сохраненных в поле в базовом ис-точнике записей формы. При переходе от записи к записи в форме или отчете выводятся разные объекты.
Разрыв страницы. Используется для указания начала нового экра-на в форме, новой страницы в печатной форме.
Набор вкладок. Используется для создания формы с несколькими вкладками (например, форма «Сотрудники» в базе данных «Борей»)
96
или диалогового окна с вкладками (например, диалоговое окно Пара-метры в меню Сервис). На вкладку можно скопировать или добавить другие элементы управления. Этот элемент помещается на форму пер-вым, а затем перетаскиваются поля на нужные вкладки или создаются другие элементы управления.
Подчиненная форма/отчет. Используется для вывода в форме или отчете данных из нескольких таблиц.
Линия. Используется в формах, отчетах или на страницах доступа к данным для отделения родственных или особенно важных данных, а также для отделения разных разделов формы или страницы.
Прямоугольник. Используется для создания графических эффек-тов, например, при группировке набора родственных элементов управ-ления, а также для привлечения внимания к важным данным в форме, отчете или на странице доступа к данным.
Другие элементы…. Вызывает меню зарегистрированных элемен-тов управления, которые также называются элементами управления ActivX. Примером является элемент управления Календарь.
Создание главной и подчиненной форм Создание подчиненной формы и добавление ее в другую форму
Для этого следует открыть в режиме конструктора форму, в которую нужно добавить подчиненную форму. Убедиться, что кнопка Мастера
на панели элементов нажата. Нажать кнопку Подчиненная фор-ма/отчет на панели элементов. В форме сделать щелчок в том месте, в которое следует поместить подчиненную форму. Дальше нуж-но следовать инструкциям в диалоговых окнах мастера. После нажатия кнопки Готово Microsoft Access добавит элемент управления подчинен-ной формы в форму. Будет также создана отдельная форма для подчи-ненной формы.
Создание формы с подчиненными формами путем добавления формы в другую форму
Нужно открыть в режиме конструктора форму, которая должна быть главной. Обычно это форма, основанная на таблице или запросе, на-ходящихся на стороне «один» отношения «один-ко-многим». Убеди-тесь, что кнопка Мастера на панели элементов нажата. Перейдите в окно базы данных (для перехода в окно базы данных можно нажать клавишу F11). Перетащите форму, таблицу или запрос из окна базы данных в главную форму.
97
7.4 Кнопочные формы Для создания, изменения и удаления кнопочных форм служит дис-
петчер кнопочных форм.
Создание кнопочной формы В окне базы данных выберите команду Служебные программы из
меню Сервис, а затем Диспетчер кнопочных форм. Если выводится запрос на подтверждение создания кнопочной формы (рисунок 7.30), нажмите кнопку Да.
Рисунок 7.30 – Запрос на подтверждение создания кнопочной формы
Затем нажмите кнопку Создать… (рисунок 7.31).
Рисунок 7.31 – Диспетчер кнопочных форм
В диалоговом окне Создание (рисунок 7.32) введите имя новой кно-почной формы и нажмите кнопку OK.
Рисунок 7.32 – Диалоговое окно Создание
98
После этого имя новой кнопочной формы добавляется в поле Стра-ницы кнопочной формы.
Выберите имя новой кнопочной формы и нажмите кнопку Изме-нить…. В диалоговом окне Изменение страницы кнопочной формы (рисунок 7.33) нажмите кнопку Создать… .
Рисунок 7.33 – Изменение страницы кнопочной формы
В появившемся диалоговом окне Изменение элемента кнопочной формы в поле Текст введите текст для первой кнопки кнопочной фор-мы, а затем выберите для нее команду в поле Команда. Например, введите текст Просмотр списка студентов, а затем выберите в поле Команда команду Открыть форму для изменения.
Рисунок 7.34 – Изменение элемента кнопочной формы
Для большинства выбранных команд под полем Команда открывает-ся новое поле со списком. При необходимости выберите нужный элемент в этом поле. Например, если на предыдущем шаге была выбрана коман-да Открыть форму для изменения, выберите в поле Форма имя нуж-ной формы, например, Студенты, и нажмите кнопку OK.
Остальные кнопки кнопочной формы создаются аналогично. Закон-чив создание кнопочной формы, нажмите кнопку Закрыть.
Примечание. Чтобы кнопочная форма открывалась при открытии базы данных, нужно выбрать имя кнопочной формы в диалоговом окне Диспетчер кнопочных форм и нажать кнопку По умолчанию.
99
Литература 1. Харитонова, И.А. Microsoft® Access 2000 / И.А. Харитонова,
В.Д. Михеева. – СПб.: БХВ – Санкт-Петербург, 2000. – 1088 с. 2. Праг, Н. Керри. Access 2000. Библия пользователя: учеб. пособие:
пер. с англ. / Керри Н. Праг, Майкл Р. Ирвин. – М.: Издательский дом «Вильямс», 2000. – 1040 с.
3. Винтер, Р. Microsoft® Office 97 в подлиннике. в 2 т.: пер. с англ. / Р. Винтер, П. Винтер. – СПб.: BHV – Санкт-Петербург, 1997. Том II – 656 с.
4. Ботт, Эд. Использование Microsoft Office 2000. Специальное изда-ние: учеб. пособие: пер. с англ. / Эд Ботт, Вуди Леонард. – М.: Из-дательский дом «Вильямс», 2000. – 1024 с.
5. Гедранович, В.В. Технологии организации, хранения и обработки данных: учеб.-метод. комплекс / В.В. Гедранович, Ю.В. Змеева. – Минск: Изд-во МИУ, 2004. – 160 с.
ТЕСТ ДЛЯ САМОКОНТРОЛЯ 1. Обязательными разделами макета формы являются:
a) заголовок и область данных b) заголовок, область данных, примечания c) область данных
2. В форме поля записей расположены в формате таблицы, где каж-дой записи соответствует одна строка, а каждому полю один стол-бец. Имена полей служат заголовками столбцов. Тип этой авто-формы: a) Автоформа: сводная диаграмма b) Автоформа: сводная таблица c) Автоформа: ленточная d) Автоформа: в столбец e) Автоформа: табличная
3. Формы создаются на основе: a) таблиц b) запросов c) отчетов d) таблиц и запросов e) запросов и отчетов f) таблиц и отчетов
4. В форме поля, образующие одну запись, расположены в одной строке; их подписи выводятся один раз в верхней части формы. Тип этой автоформы: a) Автоформа: сводная диаграмма b) Автоформа: сводная таблица c) Автоформа: ленточная d) Автоформа: в столбец
100
e) Автоформа: табличная 5. В форме каждое поле располагается на отдельной строке; подпись
находится слева от поля. Тип этой автоформы: a) Автоформа: сводная диаграмма b) Автоформа: сводная таблица c) Автоформа: ленточная d) Автоформа: в столбец e) Автоформа: табличная
6. Форма Access 2003 может быть сохранена в следующих форматах: a) формы, отчеты, страницы доступа к данным b) только формы c) таблицы, формы, страницы доступа к данным
7. Для того, чтобы при работе в конструкторе форм на экране появил-ся список полей источника данных, необходимо: a) выполнить команду Вставка-Список полей или на панели ин-
струментов выбрать инструмент Список полей b) выполнить команду Вид-Список полей или на панели инстру-
ментов выбрать инструмент Список полей 8. Элементами управления в форме являются:
a) кнопки, флажки, переключатели, списки b) текстовые поля, надписи, рамки объектов для отображения
графики и объектов OLE c) оба варианта верны
9. Макет формы состоит максимально из ... a) 5 разделов b) 3 разделов c) 6 разделов
10. Для удаления или добавления разделов формы необходимо ... a) выполнить команду Правка-Удалить, Правка-Вставить b) в меню Вид выбрать название соответствующего раздела c) удаление или добавление разделов невозможно
11. Вычисляемые поля для отображения итоговых значений в формах: a) создаются в области Примечание формы b) создаются в области Заголовка формы c) оба варианта верны
12. В форме, состоящей из четырех страниц, заголовок формы будет печататься на страницах: a) 1, 4 b) 2, 3 c) 1, 2, 3, 4 d) 1 e) 4
101
8 ОТЧЕТЫ В MS ACCESS
8.1 Проектирование отчетов в MS Access Отчеты позволяют выбрать из базы данных требуемую пользовате-
лем информацию и оформить ее в виде документов, которые можно про-смотреть и напечатать. Источником данных для отчета может быть таб-лица или запрос. Кроме данных, полученных из таблиц, в отчете могут отображаться вычисленные по исходным данным значения, например, итоговые суммы. В отчетах приняты специальные меры для группировки выводимых данных и для вывода специальных элементов оформления, характерных для печатных документов.
Отчеты и формы Access имеют много общего. Однако в отличие от форм, отчеты не предназначены для ввода и правки данных в табли-цах. Они позволяют лишь просматривать и печатать данные. В отчете невозможно изменить исходные данные с помощью элементов управ-ления, как это можно сделать с помощью форм. В отчетах можно ис-пользовать такие же элементы управления для указания состояния пе-реключателей, флажков и списков. Имея возможность управлять раз-мером и внешним видом всех элементов отчета, пользователь может отобразить сведения любым образом (рисунок 8.1):
Рисунок 8.1 – Формы представления данных в отчете
Большая часть сведений в отчет поступает из базовой таблицы, за-проса (требования на отбор данных, хранящихся в таблицах, или тре-бования на выполнение определенных действий с данными) или инст-рукции SQL, являющейся источником данных для отчета. Остальные сведения для отчета хранятся в его структуре.
Отчеты являются эффективным средством для распечатки инфор-мации регулярного использования. Можно создать проект отчета и со-хранить его для дальнейшего использования. Проект отчета останется
102
неизменным, но каждый раз можно будет получать распечатку текущих данных.
Перед тем как создать отчет, следует определиться, откуда отчет бу-дет извлекать данные. Если все данные из одной таблицы, то отчет будет основываться на этой таблице. Если же необходимы данные более чем из одной таблицы, то отчет должен основываться на запросе.
8.2 Способы создания отчета Access предлагает несколько способов создания отчетов. Наиболее
простым из них является использование средств автоматического соз-дания отчета. Автоматически создаваемый на основе таблицы или за-проса отчет называется автоотчетом. Access позволяет автоматически создавать отчеты двух форматов: в столбец и ленточный.
Самый быстрый способ создания отчета – Мастер Автоотчета. Отчет будет представлять собой единственную колонку, показывая все поля таб-лицы или запроса.
Создание отчета с помощью Мастера Автоотчета 1-й способ 1. В окне базы данных выбираем Таблицы или Запросы. 2. Выбираем таблицу или запрос, на котором будет основываться наш
отчет. 3. Выполняем команду меню Вставка – Автоотчет.
Создание отчета с помощью Мастера Автоотчета 2-й способ
Для этого необходимо в окне базы данных на вкладке Отчеты на-жать на кнопку Создать и в появившемся окне (рисунок 8.2) следует выбрать вариант создания отчета.
Рисунок 8.2 – Диалоговое окно Новый отчет
103
- Автоотчет: в столбец – каждое поле находится на отдельной строке; подпись располагается слева.
- Автоотчет: ленточный – поля каждой записи находятся на от-дельной строке; подписи печатаются сверху, один раз для каждой страницы.
Для простого отчета можно использовать вариант Автоотчет, но самый удобный режим – Мастер отчетов. В нем можно легко и полно-стью определить вид отчета, поля, порядок сортировки и группировки записей, выбрать стиль отчета, установить вид вычислений по число-вым полям. Для того чтобы вывести не все записи, а только отвечаю-щие определенному условию, надо предварительно сделать запрос с этим условием и уже на его основе сформировать отчет.
Создание отчета с помощью Мастера Для этого необходимо в окне базы данных на вкладке Отчеты на-
жать на кнопку Создать и в появившемся окне (см. рисунок 8.2) следует выбрать вариант Мастер отчетов.
Рисунок 8.3 – Мастер отчетов: выбор полей отчета
В поле со списком, находящимся в нижней части диалогового окна Новый отчет, содержатся имена всех таблиц и запросов базы данных, которые могут быть использованы в качестве источника данных для отчета. Можно раскрыть этот список и выбрать источник данных, также можно сделать выбор в первом окне Мастера отчетов (рисунок 8.3) из раскрывающегося списка Таблицы и запросы, который появляется после нажатия кнопки ОК. В этом же окне выбираются поля для отчета. Поля можно выбирать из разных связанных таблиц.
104
Преимущество отчетов перед формами заключается в возможности группирования данных, что значительно улучшает внешний вид доку-мента и повышает его удобочитаемость. Данные в нашем примере должны быть сгруппированы по полю Группа. На следующем шаге Мастера (рисунок 8.4, 8.5) добавим уровень группировки. Для этого следует выделить поле Группа и нажать кнопку добавить .
Рисунок 8.4 – Мастер отчетов: добавление уровней группировки
Рисунок 8.5 – Мастер отчетов: выбрана группировка по полю Группа Если выбран параметр группировки при работе с Мастером, то отчет
разбивается на различные разделы. Каждое изменение в значении па-раметра группировки приводит к появлению заголовка группы и приме-чания группы (обычно частичные суммы).
Кнопка Группировка… открывает диалоговое окно Интервалы группировки (рисунок 8.6). Для каждого текстового поля группировки можно выбрать группирование по целому значению (обычный) или
105
только по первым нескольким символам. Если группируются данные по числовому полю, то можно группировать данные по десяткам, пятиде-сяткам, сотням и т.д. Если группирующее поле – это дата, можно груп-пировать по году, кварталу, месяцу и другим промежуткам времени.
Рисунок 8.6 – Выбор интервалов группировки
В четвертом диалоговом окне Мастера отчетов (рисунок 8.7) можно выбирать порядок сортировки записей. Access позволяет сортировать записи в пределах группы по значению произвольного поля, при этом сортировка проводится не более чем по четырем полям. При выбран-ной группировке доступна кнопка Итоги… .
Рисунок 8.7 – Мастер отчетов: выбор порядка сортировки
После нажатия этой кнопки появляется диалоговое окно Итоги (ри-сунок 8.8). Мастер отчетов перечисляет все числовые поля отчета, не являющиеся счетчиками, и позволяет подсчитать по ним сумму, сред-
106
нее, минимальное и максимальное значения. Кроме того, можно сде-лать выбор между выводом только расчетных величин и выводом ито-гов вместе с данными. Можно также получить проценты.
Рисунок 8.8 – Диалоговое окно Итоги
В следующем диалоговом окне (рисунок 8.9) Мастер предлагает на выбор шесть стилей макета отчета. В левой части диалогового окна отображается вид выбранного стиля макета. Здесь же можно выбрать ориентацию страницы и настроить ширину полей.
Рисунок 8.9 – Мастер отчетов: выбор макета отчета
В шестом диалоговом окне Мастера (рисунок 8.10) выбирается стиль отчета, а в последнем (рисунок 8.11) – вводится заголовок и вы-бирается режим работы с отчетом: Просмотр или Конструктор.
107
Рисунок 8.10 – Мастер отчетов: выбор стиля отчета
Рисунок 8.11 – Мастер отчетов: последнее диалоговое окно
На рисунке 8.12 изображен отчет, созданный Мастером отчетов. Если отчет, созданный Мастером, не полностью вас удовлетворяет,
его можно изменить в режиме Конструктора.
108
Рисунок 8.12 – Базовый отчет, созданный Мастером отчетов
Создание отчета с помощью Конструктора Работа в режиме Конструктора форм и Конструктора отчетов прак-
тически идентична. Ниже приведено краткое описание того, что необ-ходимо знать и уметь при работе с Конструктором отчетов:
- добавлять поля; - выделять сразу несколько элементов, удерживая нажатой клави-
шу Shift или указывая мышью на линейки; - удалять элементы управления, выделяя их и нажимая Delete; - перемещать элементы управления, перетаскивая их мышью,
имеющей курсор в виде ладони (поле и подпись) или пальца; - выравнивать и изменять размеры элементов управления при по-
мощи команд меню Формат; - добавлять линии, удерживая нажатой клавишу Shift для создания
прямых линий; - получать доступ к окну свойств выделенного элемента, используя
команду Свойства из меню Вид или контекстного меню; - создавать вычисляемые поля в текстовом поле, набирая
=формула; - изменять внешний вид элементов при помощи панели инструмен-
тов форматирования и менять формат чисел при помощи свойств Формат поля и Число десятичных знаков;
109
- уметь скрывать участок отчета (например для того, чтобы превра-тить детальный отчет в итоговый), изменяя свойство Вывод на экран на Нет;
- использовать инструмент Разрыв страницы и уметь работать со свойствами Конец страницы и Не разрывать;
- если текст в строках достаточно больших размеров, менять свой-ство Расширение на Да (тогда текст может помещаться в не-сколько строк).
Использование подчиненных отчетов Отчет внутри другого отчета называется подчиненным. Можно ис-
пользовать подчиненные отчеты для создания многотабличного отчета, в котором подотчеты приводят записи, связанные с данной записью основного отчета. Создание подчиненных отчетов аналогично созданию подчиненных форм.
8.3 Печать отчетов Отчет можно распечатать как из окна базы данных, так и из режима
конструктора или предварительного просмотра. При этом Access учиты-вает установки, выполненные в диалоговом окне Параметры страницы. Параметры, заданные в этом окне, Access сохраняет вместе с проектом отчета. Вывод отчета на печать:
1. Откроем отчет в любом режиме. 2. Из меню Файл выберем команду Печать…. Access откроет диа-
логовое окно Печать. 3. Выберем необходимую опцию:
- все – распечатка полного отчета - страницы с… по – распечатка выбранного диапазона страниц.
4. Для установки числа копий введем номер в поле число копий. 5. После установки всех необходимых опций нажимаем OK. 6. Если принтер не доступен, можно переслать в файл, установив
флажок печать в файл, и распечатать его позднее.
110
Литература 1. Харитонова, И.А. Microsoft® Access 2000 / И.А. Харитонова,
В.Д. Михеева. – СПб.: БХВ – Санкт-Петербург, 2000. – 1088 с. 2. Праг, Н. Керри. Access 2000. Библия пользователя: учеб. пособие:
пер. с англ. / Керри Н. Праг, Майкл Р. Ирвин. – М.: Издательский дом «Вильямс», 2000. – 1040 с.
3. Винтер, Р. Microsoft® Office 97 в подлиннике. в 2 т.: пер. с англ. / Р. Винтер, П. Винтер. – СПб.: BHV – Санкт-Петербург, 1997. Том II – 656 с.
4. Ботт, Эд. Использование Microsoft Office 2000. Специальное изда-ние: учеб. пособие: пер. с англ. / Эд Ботт, Вуди Леонард. – М.: Из-дательский дом «Вильямс», 2000. – 1024 с.
5. Пасько, В. Access 97 / В. Пасько. – К.: Издательская группа BHV, 1997. – 416 с.
6. Гедранович, В.В. Технологии организации, хранения и обработки данных: учеб.-метод. комплекс / В.В. Гедранович, Ю.В. Змеева. – Минск: Изд-во МИУ, 2004. – 160 с.
ТЕСТ ДЛЯ САМОКОНТРОЛЯ 1. Отчет используется для ...
a) просмотра данных b) ввода данных c) изменения данных d) печати данных
2. Отчет в Access можно создать с помощью ... a) Конструктора b) Мастера Автоотчетов c) Мастера d) шаблона Word e) простого запроса
3. Обязательными разделами макета отчета являются: a) заголовки, области данных, примечания b) заголовки, области данных, колонтитулы c) область данных
4. Источниками данных для отчета могут быть ... a) формы b) отчеты c) нет верных ответов d) инструкции SQL e) таблицы f) запросы
5. Как изменить в отчете исходные данные с помощью элементов управления? a) с помощью элемента управления Список
111
b) в отчете нельзя изменять исходные данные c) можно в поле OLE таблицы d) нет правильных ответов
6. Уровней группировки в отчете может быть: a) до 10 b) один c) несколько d) не более двух
7. Итоговые значения отчета MS Access ... a) вычисляются с помощью выражений и хранятся в таблицах b) вычисляются с помощью выражений и хранятся в его структуре c) поступают из запросов d) поступают из таблиц
8. Отчеты могут содержать: a) подчиненные отчеты b) подчиненные отчеты и подчиненные формы c) подчиненные отчеты и подчиненные таблицы
9. В режиме Предварительный просмотр можно ... a) осуществить редактирование записей в таблице, являющейся
источником данных для отчета b) моделировать структуру отчета c) просмотреть и вывести на печать отчет
10. В MS Access можно создавать следующие Автоотчеты: a) в столбец b) ленточный c) табличный d) сводный
11. В отчете каждое поле располагается на отдельной строке; подпись находится слева от поля. Тип этого Автоотчета ... a) Автоотчет: в столбец b) Автоотчет: ленточный c) Автоотчет: сводный
12. В отчете поля каждой записи находятся на отдельной строке, под-писи печатаются сверху, один раз для каждой страницы. Тип этого Автоотчета ... a) Автоотчет: в столбец b) Автоотчет: ленточный c) Автоотчет: сводный
112
9 СОЗДАНИЕ МАКРОСОВ В MS ACCESS И РАБОТА С НИМИ
9.1 Основные понятия Макрос представляет набор макрокоманд, который создается для
автоматизации часто выполняемых задач. Например, при нажатии пользователем кнопки можно запустить макрос, который распечатает отчет, откроет форму, запустит макрос и т.д.
Макрокоманда – основной компонент макроса, самостоятельно или в комбинации с другими макрокомандами определяющий выполняемые в макросе действия. MS Access располагает множеством встроенных макрокоманд.
Макрос может быть как собственно макросом, состоящим из после-довательности макрокоманд, так и группой макросов. Объединение родственных макросов в группу может существенно упростить управле-ние БД.
Группа макросов – набор взаимосвязанных макросов, сохраняе-мых под общим именем. Группу макросов иногда называют просто мак-росом.
При запуске макроса в группе макросов выполняется макрокоманда в столбце макрокоманд, а также все следующие макрокоманды, для которых столбец Имя макроса пуст. Для запуска макроса из группы макросов в процедуре обработки события следует указать имя группы, а затем, через точку, имя макроса. На рисунке 9.1 приведена группа макросов с именем «Клиенты», который состоит из трех родственных макросов: «Ввод клиентов», «Вывод клиентов» и «Закрытие». Имя в столбце Имя макроса определяет каждый макрос.
Рисунок 9.1 – Окно конструктора макроса
113
Условные макрокоманды Если требуется выполнять макрокоманду или серию макрокоманд
только при выполнении некоторых условий, то для задания этих усло-вий в режиме Конструктора макроса используется столбец Условие. Например, если в макросе проверяется соответствие данных в форме условиям на значение, то для одних значений может потребоваться вывести одно сообщение, а для других значений – другое сообщение. В подобных случаях условия позволяют определить порядок передачи управления между макрокомандами в макросе. Условие задается лю-бым логическим выражением, которое может иметь значения True/False или Да/Нет. В зависимости от значения логического выражения управ-ление передается разным макрокомандам.
При запуске макроса MS Access проверяет значение первого услов-ного выражения. Если это выражение истинно, выполняется макроко-манда, находящаяся в той же строке, и все идущие подряд макроко-манды, у которых в ячейках столбца Условие содержится многоточие (...). После этого будут выполнены все макрокоманды, у которых ячейки столбца Условие являются пустыми, до следующей макрокоманды с определенным условием, до следующего имени макроса или до конца макроса.
Если условное выражение ложно, MS Access игнорирует эту макро-команду и все идущие подряд макрокоманды, у которых в ячейках столбца Условие содержится многоточие (...), и переходит к ближай-шей строке, в которой содержится новое условие или ячейка столбца Условие является пустой (см. рисунок 9.1).
Аргументы макрокоманды Аргументы макрокоманды задают дополнительную информацию,
которая требуется некоторым макрокомандам, или специальное усло-вие, при котором выполняется макрокоманда. После добавления мак-рокоманды в макрос следует задать в нижней части окна конструктора макроса Аргументы макрокоманды. Эти аргументы дают MS Access дополнительные сведения по выполнению данной макрокоманды.
Основные правила при задании аргументов макрокоманд: - Рекомендуется задавать аргументы макрокоманды в том поряд-
ке, в котором они перечислены (т.к. выбор одного аргумента мо-жет определять возможные значения следующего аргумента).
- Если макрокоманда имеет аргумент, вызывающий имя объекта базы данных, значение этого аргумента и соответствующий тип объекта можно задать автоматически, перетащив объект из окна базы данных в поле аргумента.
- При добавлении макрокоманды в макрос путем перетаскивания объекта базы данных из окна базы данных, MS Access автомати-чески задает подходящие аргументы для этой макрокоманды.
114
- Для задания нескольких аргументов макрокоманд используется выражение, перед которым ставится знак равенства (=).
9.2 Работа с макросами или группой макросов Созданиее макросов и групп макросов
Для создания макроса в БД в MS Access необходимо выполнить следующие действия: 1. В окне базы данных выбрать объект Макросы в списке Объекты. 2. На панели инструментов окна базы данных нажать кнопку Создать. 3. Добавьте в макрос макрокоманду. Для этого: - в окне макроса (рисунок 9.2) выберите первую пустую ячейку в
столбце Макрокоманда;
Рисунок 9.2 – Окно конструктора макроса со списком макрокоманд - в ячейке столбца Макрокоманда нажмите кнопку раскрытия
списка макрокоманд (рисунок 9.2) и выберите имя макрокоманды; - в нижней части окна при необходимости укажите аргументы
макрокоманды. Если значения аргументов являются названиями объектов БД, их можно задавать путем перетаскивания имени объекта из окна базы данных в ячейку аргумента Имя объекта или выбором объекта БД из соответствующего списка (рисунок 9.3). Для построения выражения в соответствующем поле аргу-мента макрокоманды можно пользоваться Построителем выражений, который вызывается нажатием кнопки рядом с полем аргумента.
Затем можно набрать текст примечания к макрокоманде (необяза-тельный столбец). Чтобы добавить дополнительные макрокоманды в макрос, перейдите на другую строку в столбце Макрокоманды и по-
115
вторите шаг 3. В MS Access макрокоманды выполняются в порядке их ввода.
Для задания условий для выполнения макрокоманды необходимо выполнить следующие действия:
1. В окне макроса добавить столбец Условие командой меню Вид
– Условия, либо нажатием кнопки Условия на панели ин-струментов.
2. Ввести условное выражение в ячейку столбца Условие той стро-ки, для которой требуется задать условие. Для задания условно-го выражения можно использовать Построитель выражений.
3. Выбрать в ячейке столбца Макрокоманда имя макрокоманды, ко-торая должны выполняться, если условное выражение истинно.
Примечание: При задании условного выражения в макросе в столбце Условия нельзя использовать выражения SQL.
Рисунок 9.3 – Окно конструктора макросов со списком объектов БД
в области задания аргументов макрокоманды Работать с группой макросов часто оказывается удобнее, чем с не-
сколькими отдельными макросами. Для того чтобы объединить не-сколько родственных макросов, можно создать группу макросов. Про-цедура создания группы макросов выглядит следующим образом:
1. В окне базы данных в списке объектов выберите Макросы и на панели инструментов окна БД нажмите кнопку Создать.
2. Для добавления столбца Имена макросов нажмите кнопку Име-
на макросов на панели инструментов. 3. Введите в ячейку столбца Имя макроса имя первого макроса
группы макросов, добавьте макрокоманды, выполняемые в пер-вом макросе, и задайте их аргументы.
4. Для создания следующего макроса в данной группе повторите шаг 3.
116
Имя, указанное при сохранении группы макросов, будет служить именем группы. Это имя будет выводиться в списке макросов и групп макросов в окне базы данных. Для ссылок на макросы, входящие в группу макросов, используется следующий синтаксис: имяГруппыМак-росов.имяМакроса. Например, имя «ОтрытиеОтчетов.Товары» задает ссылку на макрос «Товары» в группе «ОтрытиеОтчетов». В списках имен макросов, например, в списке возможных значений аргумента «Имя макроса» макрокоманды «ЗапускМакроса» (RunMacro), макрос «Товары» будет отображаться под именем «ОтрытиеОтчетов.Товары».
Выполнение макросов и групп макросов Макрос можно запустить на выполнение непосредственно, в группе
макросов, из другого макроса или процедуры обработки события, а также в ответ на событие в форме, отчете или их элементе управления.
Чтобы осуществить запуск отдельного макроса, необходимо вы-полнить одно из действий:
- Чтобы запустить макрос из окна макроса, щелкните кнопку Запуск
на панели инструментов. - Чтобы запустить макрос из окна базы данных, в списке объектов
БД выберите Макросы, а затем дважды щелкните имя нужного макроса или щелкните кнопку Запуск в окне БД.
- Также из окна БД макрос можно запустить командой Сервис – Макрос – Выполнить макрос, затем выберите нужный макрос в поле со списком Имя макроса.
Чтобы выполнить запуск макроса, принадлежащего группе мак-росов необходимо выполнить одно из действий:
- Укажите макрос в качестве значения свойства события в форме или отчете (рисунок 9.4) или в качестве аргумента Имя макроса макрокоманды «ЗапускМакроса» (RunMacro) в формате имяГруп-пыМакросов.имяМакроса (рисунок 9.5).
- Выполните команду Сервис – Макрос – Выполнить макрос, за-тем выберите нужный макрос в поле со списком Имя макроса. При выборе имени макроса в списке каждый макрос, содержащий-ся в группе макросов, входит в список как отдельный элемент в формате имяГруппыМакросов.имяМакроса.
При запуске всей группы макросов MS Access выполняет каждый макрос, начиная с первой макрокоманды, до появления макрокоманды «ОстановитьМакрос» (StopMacro), имени другой группы макросов или выполнения всех макрокоманд в группе.
117
Рисунок 9.4 – Окно конструктора формы Наклейки для клиентов
и окно свойств кнопки Печать
Рисунок 9.5 – Окно конструктора макроса с указанием макроса
в качестве аргумента макрокоманды ЗапускМакроса MS Access реагирует на события различных типов, возникающие в
формах, отчетах и элементах управления, в том числе на нажатие кно-пок мыши, изменение данных, а также на открытие или закрытие фор-
118
мы или отчета. Чтобы осуществить запуск макроса в ответ на со-бытие в форме, отчете или элементе управления, следует вы-полнить действия:
1. Откройте форму или отчет в режиме конструктора. 2. Для элемента управления формы, отчета вызовите окно свойств
(предварительно выделив его и выполнив команду Вид – Свой-
ства или нажав кнопку Свойства на панели инструментов). 3. Выберите вкладку События в окне свойств данного элемента
управления (см. рисунок 9.4) и выберите в соответствующее по-ле свойства события формы, отчета или элемента управления имя макроса из списка данного поля.
На рисунке 9.4 продемонстрирован ввод имени макроса Печать группы макросов Наклейки для клиентов в поле свойств события На-жатие кнопки для кнопки Печать формы Наклейки для клиентов. В результате чего при нажатии кнопки Печать в данной форме будет выполняться макрос Наклейки для клиентов.Печать.
Чтобы осуществить запуск макроса из другого макроса, необхо-димо добавить макрокоманду «ЗапускМакроса» (RunMacro) в макрос и указать в аргументе Имя макроса имя запускаемого макроса (см. ри-сунок 9.5).
Литература 1. Карпова, Т.С. Базы данных: модели, разработка, реализация /
Т.С. Карпова. – СПб.: Питер, 2001. – 304 с. 2. Корнеев, В.В. Базы данных. Интеллектуальная обработка инфор-
мации / В.В. Корнеев, А.Ф. Гареев, С.В. Васютин, В.В. Райх. – М.: Нолидж, 2000. – 352 с.
3. Харитонова, И.А. Microsoft® Access 2000 / И.А. Харитонова, В.Д. Михеева. – СПб.: БХВ – Санкт-Петербург, 2000. – 1088 с.
4. Шилина, А.Л. Технологии организации, хранения и обработки дан-ных: учеб. пособие / А.Л. Шилина, Ю.В. Змеева. – Минск: Изд-во МИУ, 2004. – 51 с.
ТЕСТ ДЛЯ САМОКОНТРОЛЯ 1. В окне создания макроса нельзя задать:
a) имя макроса b) имя группы макросов c) условие d) макрокоманду e) примечание f) описание g) аргументы
2. Окно создания макроса состоит из столбцов: a) имя макроса b) условие
119
c) макрокоманда d) примечание e) описание f) аргументы макрокоманды
3. Макрос, входящий в группу макросов, можно запустить: a) только вместе с остальными макросами группы b) отдельно и вместе с остальными макросами группы c) только отдельно
4. Если выражение в столбце «Условие» ложно, то выполняются мак-рокоманды: a) у которых в строке «Условие» стоит многоточие b) у которых в строке «Условие» стоит другое условие c) с пустой строкой «Условие», которая следует сразу за строкой
с многоточием в строке «Условие» d) со строкой «Условие» с новым выражением, которая следует
сразу за строкой с многоточием в строке «Условие» 5. Для задания выражения в полях аргументов макрокоманд исполь-
зуется символ: a) = b) :
6. Команда выполнения макроса или группы макросов закреплена за командой меню: a) Макрос b) Файл c) Сервис
7. Для ссылки на макрос, входящий в группу макросов, используется синтаксис: a) имяГруппыМакросов.имяМакроса b) имяМакроса.имяГруппыМакросов
8. Если выражение в столбце «Условие» ложно, то выполняется пе-реход к макрокоманде: a) у которой в строке «Условие» стоит многоточие b) у которой в строке «Условие» стоит другое условие c) с пустой строкой «Условие», которая следует сразу за строкой
с многоточием в строке «Условие»
120
10 СОВМЕСТНАЯ РАБОТА MS ACCESS И ПРИЛОЖЕНИЙ MS OFFICE
10.1 Интеграция MS Access и MS Excel Импорт и связывание таблиц из MS Excel в MS Access
Прежде чем осуществлять операцию импорта или связывания, не-обходимо данные в электронной таблице оформить в виде списка данных MS Excel (рисунок 10.1).
Рисунок 10.1 – Таблица MS Excel с данными в виде списка
Для осуществления импорта и связывания таблиц из MS Excel в MS Access необходимо выполнить следующие действия:
1. Открыть базу данных, в которую будут импортироваться данные. 2. Выполнить одну из команд меню:
- Файл – Внешние данные – Импорт – для импорта таблицы. - Файл – Внешние данные – Связь с таблицами – для связы-
вания таблиц. 3. В диалоговом окне Импорт (или Связь) выбрать диск или папку,
в которой расположен файл электронной таблицы, выбрать в списке Тип файла вариант Microsoft Excel (*.xls).
4. Следовать инструкциям в диалоговых окнах мастера Импорт электронной таблицы (или Связь с электронной таблицей).
Можно импортировать или связать как все данные электронной таб-лицы, так и данные из именованного диапазона ячеек. Для импорти-руемых в MS Access данных обычно создается новая таблица. Если заголовки столбцов электронной таблицы совпадают с именами полей таблицы-приемника, то можно также добавить данные в существующую таблицу БД.
121
Импортируемым (или связываемым) полям MS Access устанавлива-ет подходящий тип данных, но результаты следует проверить, чтобы убедиться, что каждое поле получило правильный тип. Например, если данные не должны использоваться в вычислениях (поле телефонных номеров или почтовых индексов), а при импортировании MS Access установил тип данных «Числовой», то он должен быть заменен на «Текстовое».
Экспорт в файл Microsoft Access или Microsoft Excel Экспорт объектов базы данных в существующую базу данных MS
Access осуществляется следующим образом: 1. В окне базы данных выберите имя объекта, который нужно экс-
портировать, и выполните команду меню Файл – Экспорт. 2. В появившемся диалоговом окне Экспорт объекта выберите
диск и папку, где расположена база данных, в которую нужно экспортировать объект, и дважды щелкните по значку базы дан-ных, в которую экспортируется объект.
3. В появившемся окне Экспорт введите имя нового объекта (или используйте текущее имя). При экспорте таблицы в диалоговом окне Экспорт выберите переключатель, соответствующий тре-буемому виду экспорта: «структура и данные» или «только струк-тура».
Экспорт в формат Microsoft Excel осуществляется последователь-ностью действий:
1. В окне базы данных выберите имя экспортируемого объекта и выполните команду меню Файл – Экспорт. Чтобы экспортиро-вать данные из открытой таблицы (все или часть таблицы) БД, откройте ее и выделите нужные данные перед продолжением и при осуществлении экспорта.
2. В появившемся диалоговом окне Экспорт объекта выберите диск и папку, в которую будет экспортирован объект, введите имя в поле Имя файла (или используйте предложенное имя). В поле со списком Тип файла выберите Microsoft Excel 5-7 (*.xls) или Microsoft Excel 97-2003 (*.xls). Установите флажок Сохра-нить формат.
3. При экспорте данных из открытой таблицы (всех или части таб-лицы) БД, в окне Экспорт объекта нажмите кнопку Экспорт всех для сохранения всей таблицы или Сохранить фрагмент для сохранения части таблицы. При экспорте всех остальных объектов нажмите кнопку Экспорт.
Для загрузки таблицы, запроса, формы или отчета в MS Excel необходимо выполнить действия:
1. В окне базы данных выбрать имя объекта БД, данные которых нужно сохранить и загрузить в MS Excel. Чтобы сохранить лишь выделенную область таблицы, откройте её и выделите нужную часть.
122
2. Выполнить команду меню Сервис – Связи с Office – Анализ в Microsoft Excel.
10.2 Интеграция MS Access и MS Word Импорт или связывание текстового файла с разделителями и текстового файла с фиксированной длиной записей
Текстовый файл с разделителями – файл, в котором значения отдельных полей разделены знаками, такими, как запятая, знак табуля-ции, пробел и др.
Текстовый файл с фиксированной длиной записей – файл, со-держащий данные в виде полей определенной ширины.
Перед тем как приступить к импорту или связыванию данных из тек-стового файла с разделителями или из текстового файла с фиксиро-ванной длиной записей, необходимо убедиться, что каждое поле этого файла содержит данные одного типа и все строки содержат одинако-вые поля. На рисунке 10.2 представлен текст с разделителями полей в виде знаков табуляции.
Рисунок 10.2 – Текстовый файл с разделителями полей в виде знаков
табуляции Для проведения процедуры импорта или связывания текстового
файла и объекта БД необходимо выполнить следующие действия: 1. Открыть базу данных и выполнить одно из следующих действий.
- для импорта данных выполните команду Файл – Внешние данные – Импорт;
123
- для связывания данных выполните команду Файл – Внешние данные – Связь с таблицами.
2. В диалоговом окне Импорт (или Связь) выберите диск и папку, где находится файл, выберите в поле со списком Тип файла ва-риант Текстовые файлы (*.txt; *.csv; *.tab; *.asc) и дважды щелкните по значоку файла.
3. Следуйте инструкциям в диалоговых окнах мастера Импорт тек-ста (или Связи с текстовым файлом). Кнопка Дополнительно в диалоговых окнах шагов мастера открывает окно, в котором позволяет создать или использовать спецификацию импор-та/экспорта (рисунок 10.3).
Рисунок 10.3 – Диалоговое окно, позволяющее создать или
использовать спецификацию импорта/экспорта Примечание. Если все записи текстового файла с фиксированной длиной записей имеют одну и ту же длину, то присутствие в середи-не строки вставленных разделителей строк (например, знаков воз-врата каретки и перевода строки) не приведет к возникновению ошибок. Однако если длина записей неодинакова, то вставленные знаки разделителей строк интерпретируются MS Access как знаки окончания записей.
Экспорт в формат Microsoft Word или другой текстовый формат
Для экспорта таблицы или запроса MS Access в текстовый файл с разделителями или в текстовый файл с фиксированной длиной записей следует выполнить действия:
1. В окне базы данных выбрать имя таблицы, запроса, который нужно экспортировать, и выполнить команду меню Файл – Экс-порт.
124
2. В появившемся окне выберите диск и папку, в которую будет экспортирован объект, выберите в поле со списком Тип файла вариант Текстовые файлы (*.txt; *.csv; *.tab; *.asc) или Rich Text Format (*.rtf).
3. В поле Имя файла введите имя файла (или оставьте старое имя) и нажмите кнопку Экспорт, в результате чего будет запу-щен мастер экспорта.
4. Следуйте инструкциям в диалоговых окнах мастера. Кнопка До-полнительно позволяет создать или использовать специфика-цию импорта/экспорта.
Для загрузки таблицы, запроса, формы или отчета в Microsoft Word необходимо выполнить действия:
1. В окне базы данных выбрать имя таблицы, формы или отчета, данные которых нужно сохранить и загрузить в Microsoft Word. Для сохранения только выделенной области таблицы откройте таблицу и выделите ее часть.
2. Выполнить команду меню Сервис – Связи с Office – Публика-ция в Microsoft Word.
Создание составного документа Microsoft Word с помощью мастера слияния
Для создавания однотипных документов на основе данных, хранящихся в таблицах, запросах БД, используется Мастер слияния. При этом в результате слияния будет создано такое число однтипных документов, которое равно числу строк объекта БД. Так Мастером слияния могут быть созданы письма, электронные сообщения, конверты, наклейки, каталоги адресов.
Процедура слияния с помощью мастера следующая: 1. В окне базы данных выберите имя таблицы или запроса для экс-
порта, а затем выполните команду меню Сервис – Связи с Office – Слияние в Microsoft Word.
2. Следуйте инструкциям в окнах Мастера Слияние с документа-ми Microsoft Word.
На рисунке 10.4 представлены основные этапы мастера слияния таблицы БД «Клиенты» с документом MS Word в виде письма (1 этап), на основании текущего документа (2 этап) и используемого списка, т.е. записей таблицы «Клиенты» (3 этап), с заданием вида письма и определения полей слияния (4 этап), просмотром созданных писем для каждой отдельной записи (5 этап). Далее возможны сохранение и/или печать писем. Кроме того при печати возможно изменение каждого отдельного письма, однако эти правки не будут сохранены в документе слияния MS Word.
125
Рисунок 10.4 – Этапы Мастера Слияния
Литература 1. Карпова, Т.С. Базы данных: модели, разработка, реализация /
Т.С. Карпова. – СПб.: Питер, 2001. – 304 с. 2. Корнеев, В.В. Базы данных. Интеллектуальная обработка инфор-
мации / В.В. Корнеев, А.Ф. Гареев, С.В. Васютин, В.В. Райх. – М.: Нолидж, 2000. – 352 с.
3. Харитонова, И.А. Microsoft® Access 2000 / И.А. Харитонова, В.Д. Михеева. – СПб.: БХВ – Санкт-Петербург, 2000. – 1088 с.
4. Шилина, А.Л. Технологии организации, хранения и обработки дан-ных: учеб. пособие / А.Л. Шилина, Ю.В. Змеева. – Минск: Изд-во МИУ, 2004. – 51 с.
126
ТЕСТ ДЛЯ САМОКОНТРОЛЯ 1. Таблица MS Excel, импортируемая или связываемая с таблицей
MS Access, должна иметь вид: a) сводной таблицы b) списка данных c) таблицы подстановки
2. При экспорте таблицы MS Access в MS Excel имена поле таблицы: a) игнорируются b) становятся первой строкой таблицы c) выводятся на отдельном листе
3. В MS Access не могут быть импортированы данные из файла фор-мата: a) *.txt b) *.doc c) *.rtf
4. При обнаружении в импортируемом в MS Access тексте с записями фиксированной длины знаков возврата каретки MS Access: a) выдает сообщение об ошибке b) игнорирует эти знаки c) считает его знаком окончания строки
5. Если при просмотре писем, получившихся при слиянии документа MS Word и объекта MS Access, в некоторые из них внести измене-ния, то они: a) будут сохранены b) исчезнут при новом открытии документа слияния
6. Для инициализации процедуры импорта электронных таблиц MS Excel в MS Access можно: a) выбрать команду Файл – Внешние данные – Импорт b) выбрать команду Вставка – Внешние данные – Импорт c) в окне БД перейти на вкладку Таблицы и выбрать команду
Сервис – Импорт 7. Для быстрого экспорта данных из БД в MS Excel или MS Word мож-
но использовать: a) команду Файл – Экспорт… b) команду Сервис – Связи с Office c) кнопку Связи с Office на панели База данных
8. Копирование таблицы MS Access в книгу MS Excel можно выпол-нить следующим образом: a) в окне БД выделить таблицу и выполнить команду Файл – Экс-
порт… b) открытую таблицу скопировать в буфер обмена, переключить-
ся в MS Excel и выполнить команду Вставить c) закрытую таблицу скопировать в буфер обмена, переключить-
ся в MS Excel и выполнить команду Вставить d) выполнить команду Файл – Внешние данные – Связь с табли-
цами
127
11 ВВЕДЕНИЕ В ЯЗЫК SQL
11.1 Язык SQL, его функциональные возможности Интенсивное развитие технологий баз данных потребовало разра-
ботки стандартного языка, пригодного для создания баз данных и рабо-ты с ними независимо от специфики компьютера.
Таким языком стал язык SQL (Structured Query Language – структу-рированный язык запросов), используемый для управления данными реляционных СУБД. Язык SQL появился в 70-е годы. Его прототип был разработан фирмой IBM и известен под названием SEQUEL (Structured English Query Language).
Официальный стандарт SQL был опубликован ANSI (American National Standards Institute - Национальный институт стандартизации, США) в 1986 году. В 1989 году появился первый международный стан-дарт языка SQL – SQL1. В 1992 году был принят стандарт SQL2, в 1999 году – SQL3. Последний на текущий момент стандарт SQL2003.
Фирмы-разработчики СУБД при реализации языка SQL могут вно-сить в него расширения, но обязаны реализовать базовый набор ко-манд ANSI SQL.
Основное достоинство этого языка состоит в том, что он является стандартом для большинства реляционных СУБД, SQL имеет унифи-цированный набор инструкций, которые можно использовать во всех СУБД, поддерживающих этот язык. SQL обеспечивает пользователям, прикладным программам и вычислительным системам доступ к инфор-мации, содержащейся в базе данных.
SQL представляет собой непроцедурный язык. Термин «непроце-дурный» означает, что на данном языке можно сформулировать, что нужно сделать с данными, но не требуется указывать, как именно это следует сделать. В этом языке отсутствуют алгоритмические конструк-ции, такие как метки, условные переходы, операторы цикла и др. В связи с этим SQL автономно не используется, обычно он погружен в среду встроенного языка программирования СУБД.
Существуют и используют две формы языка: интерактивный (ко-мандный) SQL и программный SQL (встроенный). Интерактивный SQL используется для задания SQL-запросов пользователем. Встроенный SQL состоит из команд, встроенных внутрь программ, обычно написан-ных на другом языке (Паскаль, С, С++ и др.).
Язык SQL содержит набор команд, предоставляющих пользовате-лям возможность создавать базы данных и табличные структуры, манипулировать данными (вставлять, обновлять, удалять, извлекать данные внутри таблиц БД), администрировать данные, а также созда-вать запросы к базе данных для извлечения необходимой информа-ции. Однако SQL не обеспечивает удобный ввод данных, а также не предназначен для создания меню, отчетных форм, всплывающих меню, экранных форм.
128
11.2 Структура команды SQL, типы данных Команды – это инструкции, с помощью которых SQL обращается к
базе данных. Каждая команда SQL начинается с действия (глагола) – ключевого слова или группы слов, описывающих выполняемую опера-цию, далее может следовать одно или несколько предложений.
Ключевые слова – это слова, имеющие специальное назначение. Ключевые слова нельзя использовать в качестве имен таблиц, полей, имен объектов базы данных, пользователей.
Пример ключевых слов: INSERT (добавить), DELETE (удалить), COMMIT (завершить), CREATE TABLE (создать таблицу).
Предложение описывает данные, с которыми работает команда, может содержать уточняющую информацию о действии, выполняемом командой. Каждое предложение должно начинаться с ключевого слова. Например, WHERE, FROM, INTO.
Перечень основных предложений языка SQL приведен в таблице 11.1. Таблица 11.1 – Основные предложения языка SQL Инструкция Назначение FROM Указывает имя таблицы, из которой выбираются данные WHERE Определяет критерий отбора данных INTO Указывает имя таблицы, в которую помещаются данные GROUP BY
Определяет, что выбираемые записи должны быть сгруппированы
HAVING Задает условие, которому должна удовлетворять каждая группа отобранных записей, сгруппированных посредст-вом GROUP BY
ORDER BY Определяет порядок сортировки записей Пример SQL-команды:
Приведенная команда формирует запрос, осуществляющий выборку
из таблицы СТУДЕНТЫ данных (значений полей ФАМИЛИЯ, ИМЯ и ГОД РОЖДЕНИЯ) о студентах, которые учатся на третьем курсе.
В описании синтаксиса команд SQL могут использоваться: - угловые скобки < >. В угловые скобки заключаются элементы, оп-
ределяемые пользователем. Угловые скобки не вводятся; - квадратные скобки [ ]. Указывают на необязательный элемент
конструкции; - многоточие . . . . Определяет, что выражение, предшествующее
многоточию, может повторяться любое число раз; - фигурные скобки { } . Объединяют последовательность элементов
в логическую группу, один из элементов которой должен быть обя-зательно использован;
129
- вертикальная черта | . Означает альтернативный выбор. Для выполнения операций над данными в SQL используют выра-
жения. В выражениях (вычисляемых полях) могут использоваться: - имена полей; - константы: константы с фиксированной запятой (44); с плавающей
запятой (3.5Е-4); строковые константы ('пр. Пушкина, 27')*; - круглые скобки ( ); - встроенные функции: для работы со строками (LENGTH,
REPLACE, TRANSLATE и др.); математические функции (ABS, SQRT, SIN, COS, TAN, EXP и др.); функции преобразования значе-ний (TO_CHAR, TO_NUMBER, TO_DATE);
- операторы: арифметические: + , - , * , / , ^ ; сравнения: =, , > , < , >= , <= , <>; логические: AND (логическое И), OR (логическое ИЛИ), NOT (отрицание НЕТ); специальные: IN, BETWEEN, LIKE, IS (NOT) NULL; конкатенации: || – используется для строковых дан-ных (в разных СУБД может использоваться свой символ).
Типы данных В языке SQL определен ряд типов данных, некоторые из них пред-
ставлены в таблице 11.2. Таблица 11.2 – Типы данных
Тип данных Описание CHAR(длина) или CHARACTER(длина)
Строка символов фиксированной длины в n символов (0<n<256)
INTEGER или INT 4 байтовое целое число в диапазоне от -231 до +231-1
SMALLINT 2 байтовое целое число -215 до +215-1 NUMERIC(p, q) DECIMAL(p, q) или DEC(p, q)
десятичное число с фиксированной запятой в диапазоне от 1038+1 до 1038-1, включающее p цифр и знаков (точка-разделитель учитывается). q – число цифр справа от десятичной точки 0 < p <=38 0 <= q <= p (если q = 0, оно может быть опущено)
REAL(p) 4 байтовое число с плавающей точкой одинарной точности в диапазоне от -3,40Е+38 до 3,40Е+38
FLOAT(р) 8 байтовое число с плавающей точкой и указанной минимальной точностью р (от -1,79Е+308 до 1,79Е+308)
* Строковые константы должны быть заключены в одинарные кавычки.
130
Допустимые значения для указанных типов данных могут варьиро-ваться для различных версий и диалектов SQL.
Более поздние стандарты предусматривают дополнительно и дру-гие типы данных, такие, например, как строка символов переменной длины, дата, время, абстрактные типы данных и др.
Для обозначения отсутствующих, пропущенных или неизвестных значений атрибута используется понятие «отсутствующее значение NULL».
11.3 Основные инструкции языка В различных СУБД состав операторов SQL может несколько отли-
чаться. Приведем краткое описание ограниченного множества некото-рых основных операторов языка SQL для версии, принятой в СУБД MS Access.
Для работы с языком SQL в СУБД MS Access необходимо открыть окно Конструктора запроса (появляющееся при этом окно Добавление таблицы следует закрыть) и перейти в режим SQL по команде Вид – Режим SQL. В результате появится окно SQL-запроса (рисунок 11.1), предназначенное для формирования и редактирования SQL-запроса.
Рисунок 11.1 – Окно SQL-запроса
В окне SQL-запроса можно написать и сохранить только один за-прос. Запись SQL-инструкций разрешается производить в несколько строк. Разделителем между словами является пробел, а элементы спи-ска разделяются запятыми. Любая SQL-команда должна заканчиваться символом “точка с запятой”.
Для набора SQL-запроса можно использовать как строчные, так и прописные буквы. Выполняют запрос по команде Запрос – Запуск или
при помощи кнопки (Запуск). В составе SQL выделим следующие группы инструкций: - язык определения данных – DDL (Data Definition Language); - язык манипулирования данными – DML (Data Manipulation
Language); - язык запросов к данным – DQL (Data Query Language). Для более полного представления о группах инструкций и о самих
инструкциях SQL-языка обратитесь к соответствующей литературе.
131
Инструкции языка определения данных Инструкции языка определения данных предназначены для созда-
ния, изменения и удаления базы данных и объектов внутри них (таблиц, представлений и др.).
К данной группе относят следующие инструкции: - CREATE (создание новых объектов – таблиц, полей, индексов и т.д.); - DROP (удаление объектов); - ALTER (изменение объектов).
Создание таблиц Таблицы базы данных (структуры таблиц) создаются с помощью ин-
струкции CREATE TABLE, которая имеет следующий формат: CREATE TABLE <имя таблицы> ({<имя поля> <тип дан-
ных>[<размер> ] [<ограничения на поле>][<значение поля по умолчанию>] },...)
Инструкция CREATE TABLE определяет имя таблицы и множество поименованных полей в указанном порядке. Каждая создаваемая таб-лица должна иметь, по крайней мере, одно поле.
При определении поля необходимо задать его имя, тип данных, а также определить, можно ли в качестве значения рассматриваемого поля использовать ключевое слово NULL (или NOT NULL). Ключевым словом NULL помечается такое поле, которое может содержать неоп-ределенные значения. Такая ситуация возможна для полей, соответст-вующих непервичным атрибутам отношения. Определения полей пер-вичных ключей отношений всегда должны содержать ключевые слова NOT NULL. Значение NULL принимается по умолчанию для любого по-ля, для которого не было установлено ограничение NOT NULL. Пример 1. Создать структуру таблицы СТУДЕНТЫ, представленную следующим образом: Таблица 11.3 – Структура таблицы СТУДЕНТЫ
Номер зачетки ФАМИЛИЯ Курс Факультет 60001с-1 Антонов 3 ЭиУП 60001с-2 Белых 3 ЭиУП 70601с-1 Антонов 2 УФФ
В качестве первичного ключа указать поле Номер зачетки. Реализация задания с помощью инструкции CREATE TABLE на язы-
ке SQL: CREATE TABLE СТУДЕНТЫ (НОМЕР_ЗАЧ CHAR(10) PRIMARY KEY NOT NULL, ФАМИЛИЯ CHAR(15) NOT NULL, КУРС SMALLINT NOT NULL, ФАКУЛЬТЕТ CHAR(8));
Поле НОМЕР_ЗАЧ объявлено первичным ключом с помощью PRIMARY KEY.
132
Пример 2. Создать таблицу ОЦЕНКИ_ЭКЗАМ с полями НОМЕР_ЗАЧ, КИТ, ФИЛОСОФИЯ, АНГЛИЙСКИЙ. В качестве внешнего ключа указать поле НОМЕР_ЗАЧ.
Реализация задания с помощью инструкции CREATE TABLE на язы-ке SQL: CREATE TABLE ОЦЕНКИ_ЭКЗАМ (НОМЕР_ЗАЧ CHAR(10) NOT NULL, КИТ SMALLINT, ФИЛОСОФИЯ SMALLINT, АНГЛИЙСКИЙ SMALLINT, FOREIGN KEY (НОМЕР_ЗАЧ) REFERENCES СТУДЕНТЫ);
Поле НОМЕР_ЗАЧ объявлено внешним ключом. Для этого указано FOREIGN KEY (НОМЕР_ЗАЧ) REFERENCES СТУДЕНТЫ. Для решения вопросов поддержания ссылочной целостности используется ограниче-ние FOREIGN KEY. Одно из действий ограничения – это отклонение ввода значений внешнего ключа, отсутствующих в таблице с первич-ным ключом.
Удаление таблицы Инструкция удаления таблицы имеет следующий формат:
DROP TABLE <имя таблицы> Пример 3. Удалить таблицу СТУДЕНТЫ
Реализация задания с помощью инструкции DROP TABLE на языке SQL:
DROP TABLE СТУДЕНТЫ;
Изменение структуры таблицы Инструкция изменения структуры таблицы имеет следующий фор-
мат: ALTER TABLE <имя таблицы> ({ADD, MODIFY, DROP} <имя поля> [<тип данных>][ NOT NULL]; [,{ADD, MODIFY, DROP} <имя поля> [<тип данных>][ NOT NULL]]…);
Данная инструкция позволяет вносить изменения в уже созданную таблицу. Изменение структуры таблицы может состоять в добавлении (ADD), изменении (MODIFY) или удаления (DROP) одного или несколь-ких столбцов таблицы. Пример 4. Добавить в таблицу СТУДЕНТЫ поле ГОД РОЖДЕНИЯ.
Реализация задания с помощью инструкции ALTER TABLE на языке SQL:
ALTER TABLE СТУДЕНТЫ ADD ГОД_РОЖДЕНИЯ INT NOT NULL; Пример 5. Удалить в таблице СТУДЕНТЫ поле ГОД РОЖДЕНИЯ.
Реализация задания с помощью инструкции ALTER TABLE на языке SQL:
ALTER TABLE СТУДЕНТЫ DROP ГОД_РОЖДЕНИЯ; При удалении поля указывать тип данных не требуется.
133
Инструкции языка манипулирования данными Инструкции языка манипулирования данными предназначены для
заполнения таблиц данными и для обновления данных (добавление, удаление, модификация данных).
К данной группе относят следующие инструкции: - INSERT (добавление записей в таблицу); - DELETE (удаление записей из таблицы); - UPDATE (изменение значений отдельных записей и полей). Пример простейшего применения указанных инструкций – создание
запросов действия: на добавление, на удаление и на обновление.
Запрос на добавление С помощью запроса на добавление можно добавлять в конец таб-
лицы записи: 1) для которых значения полей задаются литералами или выраже-
ниями; 2) отобранные из другой таблицы с помощью инструкции SELECT. 3) В первом случае инструкция запроса на добавление имеет сле-
дующий формат: INSERT INTO<имя таблицы>[{<имя поля>},...] VALUES({<значение>},...);
Задание списка полей в этом операторе необязательно тогда, когда вводится строка с заданием значений всех полей. При таком вводе предполагается, что информация будет вводиться в том порядке, в ко-тором поля описаны в операторе CREATE TABLE.
Если поле при описании таблицы имеет признак NOT NULL, то опе-ратор INSERT должен обязательно содержать данные для ввода в каж-дую строку этого поля. Если в таблице для всех полей ввод обязателен, то каждая вводимая строка должна содержать полный перечень вводи-мых значений, а указание имен полей в этом случае можно опустить. В то же время, если имеется хотя бы одно необязательное поле, в кото-рое не вводится значение, задание списка имен полей – обязательно. Пример 6. Добавить записи в таблицу СТУДЕНТЫ в соответствии с таблицей 11.3.
Реализация задания с помощью инструкции INSERT на языке SQL: INSERT INTO СТУДЕНТЫ VALUES ('60001с-1','Антонов', 3, 'ЭиУП');
Инструкция INSERT выполняет ввод одной записи. Аналогично вво-дятся остальные записи.
Во втором случае инструкция запроса на добавление имеет сле-дующий формат:
INSERT INTO<имя таблицы>[{<имя поля>},...] <инструкция SELECT>;
134
Запрос на удаление Запрос на удаление предназначен для удаления группы записей,
удовлетворяющих определенному критерию. Если критерий отбора не задан, то удалению подлежат все записи таблицы. Особенно эффекти-вен данный запрос при удалении большого числа записей.
Инструкция запроса на удаление имеет следующий формат: DELETE FROM<имя таблицы>[WHERE <условие отбора>];
Пример 7. Создать запрос на удаление из таблицы СТУДЕНТЫ сведе-ний о студенте с фамилией Антонов.
Реализация задания с помощью инструкции DELETE FROM на язы-ке SQL:
DELETE FROM СТУДЕНТЫ WHERE ФАМИЛИЯ=’Антонов’;
Запрос на обновление С помощью запроса на обновление изменяют группу записей, ото-
бранных по заданному критерию. Инструкция запроса на обновление имеет следующий формат:
UPDATE<имя таблицы> SET<имя поля>={<выражение>, NULL} [,SET<имя поля>={<выражение>, NULL}… [WHERE <условие отбора>];
Пример 8. Создать запрос, позволяющий для всех записей таблицы СТУДЕНТЫ изменить значения поля КУРС на значение 3.
Реализация задания с помощью инструкции UPDATE на языке SQL: UPDATE СТУДЕНТЫ SET КУРС=3;
Для указания конкретных записей таблицы, значения полей которых должны быть изменены, указывают предложение с ключевым словом WHERE. Пример 9. Создать запрос, позволяющий для всех студентов третьего курса, сведения о которых находятся в таблице СТУДЕНТЫ, изменить курс на значение 4.
Реализация задания с помощью инструкции UPDATE на языке SQL: UPDATE СТУДЕНТЫ SET КУРС=4 WHERE КУРС=3;
Инструкции языка запросов к данным Данная категория представлена одной инструкцией SELECT. Назна-
чение этой инструкции состоит в выборке и отображении данных одной или нескольких таблиц.
Инструкция запросов к данным имеет следующий формат: SELECT [DISTINCTALL] {<выражение>},…*FROM {<имя таб-лицы>},... [WHERE <условие>] [ORDER BY {<имя поля>
135
[ASCDESC]},...] [GROUP BY {<имя поля>},...] [HAVING <усло-вие>];
После слова SELECT через запятую перечисляются наименования полей, содержимое которых запрашивается. Обязательным ключевым словом является слово FROM. За ключевым словом FROM указывается список разделенных запятыми имен таблиц, из которых извлекается информация. Пример 10. Выбрать для просмотра из таблицы СТУДЕНТЫ поля НОМЕР_ЗАЧ, ФАМИЛИЯ.
Реализация задания с помощью инструкции SELECT на языке SQL: SELECT НОМЕР_ЗАЧ, ФАМИЛИЯ FROM СТУДЕНТЫ;
Порядок следования полей соответствует порядку полей, указанно-му в запросе, а не их порядку во входной таблице СТУДЕНТЫ.
Если необходимо вывести значения всех полей таблицы, то можно вместо перечисления их имен использовать символ * (звездочка). Пример 11. Выбрать для просмотра все записи из таблицы СТУДЕНТЫ.
Реализация задания с помощью инструкции SELECT на языке SQL: SELECT * FROM СТУДЕНТЫ;
Для исключения из результата SELECT-запроса повторяющихся за-писей используется ключевое слово DISTINCT (отличный). Пример 12. Исключить из таблицы СТУДЕНТЫ записи с повторяющи-мися фамилиями.
Реализация задания с помощью инструкции SELECT на языке SQL: SELECT DISTINCT ФАМИЛИЯ FROM СТУДЕНТЫ;
Пример 13. Отсортировать по полю Фамилия все записи таблицы СТУДЕНТЫ.
Реализация задания с помощью инструкции SELECT и параметра ORDER BY на языке SQL:
SELECT * FROM СТУДЕНТЫ ORDER BY ФАМИЛИЯ;
Запросы на выборку с заданием критериев отбора Использование в инструкции SELECT предложения, определяемого
ключевым словом WHERE (где), позволяет задавать выражение усло-вия. Предложение WHERE определяет, какие записи указанных таблиц должны быть выбраны.
Пример 14. Выполнить выборку из таблицы СТУДЕНТЫ номеров за-четок студентов с фамилией Антонов.
Реализация задания с помощью инструкции SELECT на языке SQL: SELECT НОМЕР_ЗАЧ FROM СТУДЕНТЫ WHERE ФАМИЛИЯ = “Антонов”;
136
В условиях, задаваемых в предложениях WHERE, могут использо-ваться операции сравнения, определяемые операторами = > < >= <= <>, а также логические операторы AND, OR, NOT. Пример 15. Определить фамилии студентов, обучающихся на втором и третьем курсах.
Реализация задания с помощью инструкции SELECT на языке SQL: SELECT ФАМИЛИЯ FROM СТУДЕНТЫ WHERE КУРС = 2 OR КУРС = 3;
При задании логического условия в предложении WHERE могут быть использованы операторы IN (равен любому из списка), NOT IN (не равен ни одному из списка), BETWEEN, LIKE, IS NULL. Пример 16. Выбрать из таблицы ОЦЕНКИ_ЭКЗАМЕН сведения о сту-дентах, имеющих экзаменационные оценки по дисциплине КИТ только 7 и 8.
Реализация задания с помощью инструкции SELECT на языке SQL: SELECT * FROM ОЦЕНКИ_ЭКЗАМ WHERE КИТ IN (7, 8);
Пример 17. Выбрать из таблицы ОЦЕНКИ_ЭКЗАМЕН сведения о сту-дентах, не имеющих ни одной экзаменационной оценки по философии, равной 9 и 10.
Реализация задания с помощью инструкции SELECT на языке SQL: SELECT * FROM ОЦЕНКИ_ЭКЗАМ WHERE ФИЛОСОФИЯ NOT IN (9, 10);
Оператор BETWEEN используется для проверки условия вхождения значения поля в заданный интервал. Граничные значения входят во множество значений, с которыми производится сравнение. Данный оператор может использоваться как для числовых, так и для символь-ных типов полей. Пример 18. Выбрать для просмотра из таблицы СТУДЕНТЫ записи о студентах, которые учатся на первых трех курсах.
Реализация задания с помощью инструкции SELECT на языке SQL: SELECT * FROM СТУДЕНТЫ WHERE КУРС BETWEEN 1 AND 3;
Оператор LIKE просматривает строковые значения полей с целью определения, входит ли заданная в операторе LIKE подстрока (образец поиска) в символьную строку-значение проверяемого поля. Данный оператор применим только к символьным полям.
Для выборки строковых значений по заданному образцу подстроки можно применять шаблон символов искомого образца строки. В качест-ве символов шаблона используются:
* – означает любое число символов; ? – означает один произвольный символ; # - означает одну произвольную цифру; [ ] – означает диапазон допустимых символов.
137
Пример 19. Выбрать для просмотра из таблицы СТУДЕНТЫ сведения о студентах, фамилии которых начинаются на букву А.
Реализация задания с помощью инструкции SELECT на языке SQL: SELECT * FROM СТУДЕНТЫ WHERE ФАМИЛИЯ LIKE “А*”;
Запросы с вычислением и группировкой Инструкция SELECT дает возможность проведения вычислений над
полями, а также итоговых вычислений с использованием функций агре-гирования SUM, AVG, COUNT, MAX, MIN и некоторых других. Пример 20. Создать запрос, рассчитывающий средний балл каждого студента.
Реализация задания с помощью инструкции SELECT на языке SQL: SELECT НОМЕР_ЗАЧ, (КИТ+ФИЛОСОФИЯ+АНГЛИЙСКИЙ)/3 FROM ОЦЕНКИ_ЭКЗАМ;
Пример 21. Создать запрос, подсчитывающий количество студентов, у которых оценка по философии 9.
Реализация задания с помощью инструкции SELECT на языке SQL: SELECT COUNT(НОМЕР_ЗАЧ) FROM ОЦЕНКИ_ЭКЗАМ WHERE ФИЛОСОФИЯ=9;
Запрос действия на создание новой таблицы С помощью инструкции SELECT можно создать запрос действия на
создание новой таблицы. Запрос на создание новой таблицы имеет следующий формат:
SELECT<список полей>INTO<имя новой таблицы> FROM<имя таблицы>[WHERE<условие отбора>];
С помощью этого запроса создается новая таблица на основе уже существующей. В новую таблицу переносятся все записи или записи, удовлетворяющие некоторому критерию. Обычно этот запрос применя-ется для создания архивных копий таблиц. Пример 22. Создать таблицу ВЫПУСКНИКИ, содержащую информацию о студентах пятого курса – номере зачетки, фамилии и факультете.
Реализация задания с помощью инструкции SELECT на языке SQL: SELECT НОМЕР_ЗАЧ, ФАМИЛИЯ, ФАКУЛЬТЕТ INTO ВЫПУСКНИКИ FROM СТУДЕНТЫ WHERE КУРС=5;
Вложенные запросы Инструкцию SELECT используют для создания вложенных запро-
сов*. Вложенная инструкция SELECT записывается как часть WHERE и служит для отбора записей основного запроса. Сначала выполняется
* Вложенный запрос – запрос, в котором инструкции SELECT многократно вкладываются друг в друга.
138
вложенный запрос, а затем сравнивается основной запрос с результа-том вложенного. Вложенные запросы записываются внутри скобок. Пример 23. Определить экзаменационную оценку по дисциплине ФИЛОСОФИЯ студента с фамилией Белых.
Реализация задания с помощью инструкции SELECT на языке SQL: SELECT НОМЕР_ЗАЧ, ФИЛОСОФИЯ FROM ОЦЕНКИ_ЭКЗАМ WHERE НОМЕР_ЗАЧ= (SELECT НОМЕР_ЗАЧ FROM СТУДЕНТЫ WHERE ФАМИЛИЯ='Белых');
Параметрические запросы С помощью инструкции SELECT можно создать параметрический
запрос. Пример 24. Создать запрос, который запрашивает номер курса и выво-дит поля ФАМИЛИЯ и ФАКУЛЬТЕТ.
Реализация задания с помощью инструкции SELECT на языке SQL: SELECT ФАМИЛИЯ, ФАКУЛЬТЕТ FROM СТУДЕНТЫ WHERE КУРС=[Введите номер курса];
Для того чтобы контролировать при вводе значения параметров на соответствие типу, можно явно определить типы запрашиваемых пара-метров с помощью инструкции PARAMETERS,которая имеет следую-щий формат:
PARAMETERS [имя параметра] тип данных; Реализация предыдущего задания в этом случае имеет вид:
PARAMETERS [Введите номер курса] SMALLINT; SELECT ФАМИЛИЯ, ФАКУЛЬТЕТ FROM СТУДЕНТЫ WHERE КУРС=[Введите номер курса];
Литература:
1. Астахова, И.Ф. SQL в примерах и задачах: учеб. пособие / И.Ф. Астахова, А.П. Толстобров, В.М. Мельников. – Минск: Новое знание, 2002. – 176 с.
2. Базы данных: учебник для высших учебных заведений / А.Д. Хомо-ненко [и др.]; под общ. ред. проф. А.Д. Хомоненко; 4-е изд., доп. и перераб. – СПб.: КОРОНА принт, 2004. – 736 с.
3. Змитрович, А.И. Базы данных и знаний: учеб. пособие / А.И. Змит-рович, В.В. Апанасович, В.В. Скакун. – Минск: Изд. центр БГУ, 2007. – 364 с.
4. Малыхина, М.П. Базы данных: основы, проектирование, использо-вание / М.П. Малыхина. – СПб.: БХВ-Петербург, 2004. – 512 с.
5. Рудикова, Л.В. Базы данных. Разработка приложений / Л.В. Рудико-ва. – СПб.: БХВ-Петербург, 2006. – 496 с.
139
ТЕСТ ДЛЯ САМОКОНТРОЛЯ 1. Язык SQL предоставляет пользователям возможность ...
a) создавать базы данных b) манипулировать данными c) создавать табличные структуры d) администрировать данные e) создавать запросы к базе данных f) создавать экранные формы
2. В составе SQL выделяют следующие группы инструкций: a) язык определения данных b) язык запросов к данным c) язык манипулирования данными d) язык создания процедуры
3. Для открытия окна SQL-запроса в СУБД MS Access необходимо выполнить следующие действия: a) открыть окно Конструктора запроса и выполнить команду Вид –
Режим SQL b) открыть окно запуска Access и установить переключатель в по-
ложение Режим SQL c) открыть окно базы данных и выполнить команду Вид – Режим
SQL d) открыть окно Конструктора таблицы и выполнить команду
Вид – Режим SQL 4. Каждая команда на SQL-языке начинается с ...
a) ключевого слова b) инструкции SELECT c) предложения d) ключевого слова SQL
5. Запрос на создание структуры таблицы на SQL-языке реализуется с помощью инструкции ... a) CREATE TABLE b) SELECT TABLE c) INSERT TABLE d) UPDATE TABLE
6. Запрос на удаление таблицы на SQL-языке реализуется с помо-щью инструкции ... a) ALTER TABLE b) DROP TABLE c) DELETE TABLE d) UPDATE TABLE
7. Запрос на ввод значений в созданную таблицу на SQL-языке реа-лизуется с помощью инструкции ... a) INSERT b) INPUT c) UPDATE d) ALTER
8. Запрос на удаление записи из таблицы на SQL-языке реализуется с помощью ... a) UPDATE b) ALTER c) DELETE d) DROP
9. Запрос на выборку данных из таблицы на SQL-языке реализуется с помощью инструкции ... a) CREATE b) DROP c) UPDATE d) SELECT
140
12 АДМИНИСТРИРОВАНИЕ БАЗ ДАННЫХ
12.1 Понятие пользователя и администратора базы данных. Методы защиты базы данных
База данных существует во времени и в пространстве. Она проходит определенные этапы своего развития: проектирование, реализацию, экс-плуатацию, модернизацию и развитие, полную реорганизацию. На каж-дом этапе своего существования с БД связаны разные категории пользо-вателей.
Пользователь (user) – это физическое или юридическое лицо, ко-торое пользуется услугами компьютерной системы для получения ин-формации либо решения соответствующих задач.
Существуют различные категории пользователей: - аналитики, - администратор системы, - системные программисты, - прикладные программисты, - операторы компьютера, - конечные пользователи. Пользователями базы данных могут быть также прикладные про-
граммы и программные комплексы. СУБД обеспечивает доступ пользователя к базе данных в соответ-
ствии с определенными правилами, которые призваны поддерживать работоспособность и целостность БД, а также разрешать конфликтные ситуации, неизбежные при организации многопользовательского досту-па. Другими словами, при наличии нескольких пользователей БД нуж-дается в централизованном управлении – администрировании.
Администратор базы данных – это лицо или группа лиц, в обязан-ности которых входят:
- определение информационного содержания БД, - определение внутренней структуры БД, - определение стратегии доступа к БД, - обеспечение охраны информации, - обеспечение целостности информации, - контроль производительности работы БД, - реагирование на требования пользователей. Все функции администратора БД объединены в следующие группы: - администрирование предметной области, - администрирование БД, - обеспечение безопасности данных, - обеспечение безопасности приложений. Администрирование БД ведется в соответствии с инструкциями,
разрабатываемыми создателями БД совместно с руководством того социально-экономического объекта, в работу которого внедряется БД.
141
СУБД предоставляет средства защиты информации для предот-вращения несанкционированного доступа к объектам базы. С их помо-щью системе указываются пользователи, которым дано или не дано разрешение на доступ к объектам базы данных.
Пользователей можно разделить на группы, каждой из которых оп-ределить свой доступ к базе данных. При установке Access программой Setup создается стандартный файл рабочей группы (System.mdw), ко-торый содержит информацию обо всех пользователях и группах и при-меняется по умолчанию при запусках Access. Разрешение на доступ к конкретным объектам базы данных сохраняется в файле рабочей груп-пы.
База данных, созданная пользователем рабочей группы, принадле-жит ее создателю и рабочей группе. Каждая рабочая группа и каждый пользователь имеют уникальные внутренние идентификаторы. При изменении месторасположения базы данных вместе с файлом базы данных перемещаются и права на доступ.
Компьютерные системы защиты информации бывают открытыми или закрытыми. В открытой системе информация открыта для всех пользователей (кроме информации, имеющей специальную защиту), в закрытой системе защиты информации – только по назначении досту-па. Существуют несколько способов защиты базы данных: установле-ние пароля, разграничение прав доступа и шифрование (кодирование) БД.
Защита БД с помощью пароля Для защиты БД при ее открытии можно задать пароль. В результате
этого перед каждым открытием базы данных появляется окно для вво-да пароля. После открытия файла базы данных – все объекты БД ста-новятся доступными.
Для установления пароля на базу данных необходимо выполнить следующую последовательность действий:
- открыть БД монопольно; - выполнить команду Сервис – Защита – Задать пароль базы
данных; - в появившемся окне Задание пароля базы данных ввести па-
роль в поле Пароль (с учетом регистра: верхнего, нижнего) и под-твердить пароль повторным его вводом в поле Подтверждение, нажать кнопку ОК.
При открытии базы данных будет появляться окно диалога для вво-да пароля.
Защита базы данных разграничением прав пользователей Разграничение прав пользователей (защита на уровне пользовате-
ля), считается наиболее гибким и распространенным способом защиты базы данных. Защита на уровне пользователя позволяет установить
142
различные уровни доступа к важным данным и объектам в базе данных. Для работы с базой данных, защищенной на уровне пользователя, не-обходимо ввести пароль при запуске MS Access. После этого анализи-руется файл рабочей группы, в котором каждый пользователь иденти-фицируется уникальным кодом. Уровень доступа и объекты, доступ к которым получает пользователь, зависят от кода и пароля.
Рабочая группа – это группа пользователей, которые в сети совме-стно пользуются базой данных.
Файл рабочей группы содержит данные о пользователях группы и считывается во время запуска. Этот файл содержит следующую ин-формацию:
- имена учетных записей пользователей, - пароли пользователей, - имена групп, в которые входят пользователи. Базе данных или ее объектам могут быть назначены следующие ти-
пы разрешений: - открытие/запуск, - чтение макета, - изменение макета, - разрешение администратора, - чтение данных, - обновление данных, - вставка данных, - удаление данных. При установке MS Access создается стандартная рабочая группа,
которая содержит: - один встроенный код пользователя с названием Admin, - два встроенных кода группы (User и Admins). MS Access автоматически загружает пользователя с его кодом и
предоставляет все права и привилегии. Встроенный код группы User включает в себя всех пользователей
(членов) группы и автоматически предоставляет полные права доступа к объектам базы данных. Пользователям предоставляется разрешение на доступ к каждому объекту базы данных.
Для каждого файла рабочей группы при его создании устанавлива-ется уникальный внутренний идентификатор рабочей группы. По умол-чанию в эту группу включен только пользователь Admin. Пользователи группы Admin могут определять и изменять учетные записи пользова-телей и групп, устанавливать и менять личные пароли, имеют полный доступ к любым базам данных, созданным при использовании этого файла рабочей группы. Любая база данных, которая создана с приме-нением конкретного файла этой группы, наследует ее код.
Для осуществления проверки (или изменения) разрешений поль-зователю или группе на доступ к объектам базы данных (для про-смотра разрешений пользователям необходимо быть собственниками
143
базы данных и ее объектов или иметь разрешение администратора на доступ) необходимо выполнить последовательность действий:
- открыть нужную базу данных; - выполнить команду Сервис – Защита – Разрешения… . В от-
крывшемся окне на вкладке Разрешения будут отображены поль-зователи и группы, которые определены в базе данных (рисунок 12.1);
- выбрать группу (Admin) или пользователей (Admins, Users), ак-тивизировав соответствующий флажок. В списке Имя объектов: будут отображены имена объектов базы данных. В окне можно изменить тип объекта базы данных в раскрывающемся списке Тип объекта. После этого в части окна Разрешения: флажки укажут на явные разрешения доступа (их можно отключить или активизи-ровать).
Рисунок 12.1 – Окно разрешений на доступ к объектам базы данных Вкладка Смена владельца позволяет назначить нового владельца
(пользователя или группу).
144
Разделение прав доступа к БД с помощью Мастера защиты Мастер защиты MS Access позволяет установить защиту базы дан-
ных на уровне пользователя. Перед запуском Мастера защиты необ-ходимо:
- зарегистрироваться под именем владельца базы данных или в файле рабочей группы, который применялся при создании базы данных, и быть членом группы Admins;
- сформировать новую рабочую группу с уникальным кодом, отлич-ным от кода рабочей группы, где создавалась база данных;
- ввести новый код пользователя, отличный от Admin (для вла-дельцев базы данных Admin нельзя установить защиту). Если пользователь зарегистрирован в первичной рабочей группе как пользователь Admin, то Мастер предложит создать новую рабо-чую группу;
- удалить разрешения для всех объектов с группы Users. Для запуска мастера защиты данных необходимо выполнить сле-
дующие действия: - выполнить команду Сервис – Защита – Мастер… . В первом окне
диалога Мастера защиты содержится краткое описание работы Мастера и предлагаются два варианта: Создать файл рабочей группы или Изменить текущий файл рабочей группы. При вы-боре опции Создать файл рабочей группы Мастер создаст но-вый файл рабочей группы, а в этой рабочей группе – новый код пользователя (не Admin) и установит защиту для базы данных в новой рабочей группе и нового пользователя;
- на втором шаге Мастер по умолчанию предлагает защитить все объекты базы данных. Можно отменить (снять флажок) защиту отдельных объектов;
- на третьем шаге Мастер предлагает создать одну или несколько дополнительных групп. В списке имен групп можно выбрать нуж-ную группу и увидеть разрешения на доступ для этой группы;
- на четвертом шаге Мастер предлагает запретить или представить разрешения универсальной группе Users;
- на пятом шаге Мастера можно добавить пользователей (если нужно) в файл рабочей группы; для каждого пользователя задать пароль и уникальный личный код;
- на шестом шаге Мастера можно включить пользователей в нуж-ные группы;
- на заключительном шаге Мастера необходимо задать имя для ре-зервной копии файла базы данных и нажать кнопку Готово для завершения работы Мастера.
Шифрование/дешифрование БД Одним из способов защиты базы данных является шифрование БД
(кодирование БД). Он применяется при электронной передаче базы
145
данных или сохранении ее внешних устройствах хранения информа-ции.
Шифрование базы данных (кодирование) – это способ сжатия файла БД, после чего он становится недоступным для чтения с помо-щью служебных программ или текстовых редакторов. Шифрование не-защищенной базы данных неэффективно, поскольку каждый сможет открыть такую базу данных и получить полный доступ ко всем ее объ-ектам.
Чтобы приступить к кодированию базы данных MS Access, необхо-димо быть либо ее владельцем, либо, если база данных защищена, членом группы Admins в файле рабочей группы, который содержит учетные записи, используемые для защиты базы данных. Кроме того, базу данных надо открыть в монопольном режиме, для чего необхо-димо иметь разрешения «открытие/запуск» и «монопольный доступ». Для шифрования БД (кодирования) необходимо выполнить команду: Сервис – Защита – Закодировать или раскодировать базу дан-ных…. После чего заполнить соответствующие поля открывшегося ок-на.
Дешифрование базы данных (декодирование) – это операция, об-ратная шифрованию (кодированию).
12.2 Создание резервных копий базы данных. Сжатие базы данных. Восстановление базы данных
Для поддержания работоспособности БД целесообразно регулярно создавать различного рода копии БД: резервные, реплики. Резервирование базы данных
Операции резервного копирования (backup) и восстановления (restore) связаны друг с другом и предполагают сохранение информа-ции базы данных для использования в будущем. При резервном копи-ровании данные копируются из базы данных и сохраняются в другом месте. Резервирование как процесс является стратегией в современ-ных СУБД: в случае, когда определенная аппаратная либо программная ошибка сделала базу данных непригодной для работы, возможно ее восстановление с последней, резервной копии.
Резервирование есть процесс создания копии базы данных для создания архива или сохранения особенно ценных объектов.
Для создания резервной копии базы данных необходимо выпол-нить следующие действия:
- закрыть БД и убедиться в том, что все пользователи ее закрыли; - скопировать файл базы данных в резервный каталог папки «Мой
компьютер» с помощью проводника Windows или программой ар-хивации файлов MS Backup, либо другой программой архивации.
Для создания полной резервной копии базы данных в MS Access необходимо выполнить следующие действия:
146
- открыть БД и выполнить команду Сервис – Служебные про-граммы – Резервная копия базы данных…;
- в появившемся окне выбрать папку, в которой будет храниться резервная копия, и задать имя файла (по умолчанию предлагает-ся имя копируемой БД с добавлением даты).
Для создания резервной копии отдельных объектов базы данных (таблиц, запросов, форм, отчетов, макросов, модулей) можно создать пустую базу данных, а затем импортировать (см. раздел 3) в нее нуж-ные объекты из исходной базы данных.
Репликация базы данных Репликация (replication – копия, копирование) – это создание не од-
ной копии (реплики), а набора копий (реплик) базы данных, которые могут обмениваться обновляемыми данными или реплицированными формами, отчетами.
В создаваемом наборе копий базы данных одна копия является ос-новной репликой (копией). Копии базы данных могут находиться на ис-ходном компьютере и на любом компьютере локальной сети, а также на компьютере, подключенном через Internet к локальной сети. Изменения данных могут вноситься в любую реплику, а изменения структуры базы данных – только в основную.
Репликация позволяет обмениваться изменениями, вносимыми в базу данных, и осуществлять одновременный доступ к собственным копиям пользователям, работающим за разными компьютерами. Изме-нения, внесенные в основную реплику, распределяются по всем репли-цируемым объектам (таблицам, формам, запросам, отчетам, макросам, модулям).
Для организации работы с реплицированной базой данных, отсле-живания вносимых изменений в структуру и данные, MS Access автома-тически добавляет скрытые системные таблицы.
Реплики можно создавать, только имея право на открытие базы данных в монопольном режиме.
Для осуществления полной репликации БД необходимо выполнить последовательность действий:
- откройте базу данных, предназначенную для репликации (при ра-боте в многопользовательской среде следует убедиться в том, что все остальные пользователи закрыли эту базу данных) в моно-польном режиме. Если база данных защищена паролем, его необ-ходимо удалить.
- выполните команду Сервис – Репликация – Создать реплику…; - в появившемся окне нажмите кнопку Да в ответ на вопрос о за-
крытии базы данных; - на следующем шаге в ответ на вопрос о создании резервной ко-
пии базы данных (это диалоговое окно выводится только при пре-образовании базы данных в основную реплику) нажмите кнопку Да или Нет (рекомендуется Да);
147
- в появившемся диалоговом окне Выбор источника данных вы-берите место, куда следует поместить новую реплику, с помощью кнопки Приоритет определите приоритет реплики, установите флажок Запретить удаление, если не следует предоставлять пользователям возможность удалять записи в реплике, выберите видимость реплики в поле со списком Тип файла (локальная БД, глобальная БД, анонимная БД), затем подтвердите выбор.
После создания реплики MS Access выдает следующее сообщение: «Приложение MS Access преобразовало (имя базы данных.mdb) в ос-новную реплику набора». Изменения структуры базы данных допуска-ются, как уже упоминалось, только в основной реплике, изменение дан-ных могут выполняться как в основной, так и в любой другой реплике набора. Дополнительные реплики создаются той же командой Создать реплику.
После внесения изменений в структуру основной реплики (напри-мер, перед печатью объектов базы данных) следует проводить синхро-низацию данных в основной и не основной реплике, в результате чего происходит обмен данными между элементами набора реплик.
Для создания частичной репликации в MS Access используется Мастер частичной репликации, который активизируется командой меню Сервис – Репликация – Мастер частичной репликации. На первом шаге мастера определяется месторасположение частичной реплики БД, определяется тип файла реплики и устанавливаются огра-ничения на изменения данных (реплика только для чтения или реплика с запретом удаления). На втором шаге используется выражение фильтра, определяющее отбор записей частичной реплики (рису-нок 12.2).
На третьем шаге выбираются объекты, к которым не применяется фильтр. На последнем шаге мастер предлагает создать временный отчет по новым значениям свойств частичной реплики
Для упорядочивания изменений БД их можно синхронизировать* с помощью специальных инструментов MS Access.
Синхронизация реплик в MS Access осуществляется следующим образом:
- открыть основную или любую другую реплику, - выполнить команду Сервис – Репликация – Синхронизация…. Конфликты при синхронизации базы данных просматриваются и
устраняются командой Сервис – Репликация – Устранить конфлик-ты…. Выбирается нужный вариант, например, из двух различных изме-нений по одной и той же записи.
* Синхронизация (synchronization) – организация действий над данными в опре-деленной последовательности или параллельно – поддерживает целостность базы данных при ее использовании многими пользователями, обеспечивает вре-менное упорядочение действий параллельных процессов с базой данных.
148
Рисунок 12.2 – Окно второго шага Мастера частичной репликации Для выхода из конфликтной ситуации между элементами набора
реплик следует: - открыть проверяемую базу данных; - указать таблицу-источник, которая могла вызвать конфликт, дать
команду Сервис – Репликация – Удалить конфликт…; - при наличии конфликта система задает вопрос о необходимости
его разрешения, ответить «Да»; - для каждой конфликтной записи принять решение и нажать соот-
ветствующую кнопку Сохранить существующую или Заменить на конфликтную.
Восстановление базы данных СУБД MS Access следит за состоянием базы данных: при появлении
повреждений во время манипуляций с ней дает соответствующее со-общение; имеет средства для восстановления базы данных. MS Access объединяет в одном процессе сжатие и восстановление БД. При уда-лении данных или объектов из базы данных файл может стать фраг-ментированным и неэффективно использовать дисковое пространство. При сжатии файла MS Access создается копия файла и корректируется способ его хранения на диске. Сжатие оптимизирует быстродействие как баз данных MS Access, так и проектов MS Access. В большинстве случаев MS Access определяет наличие повреждений в файле MS
149
Access при попытке его открытия и тут же предлагает выполнить вос-становление.
Сжатие и восстановление закрытой базы данных в MS Access осуществляется командой меню: Сервис – Служебные программы – Сжать и восстановить базу данных…. В открывшемся окне необхо-димо выбрать каталог (папку), в которой хранится БД, выделить имя сжимаемой БД (восстанавливаемой БД) и нажать кнопку Сжать (Вос-становить). В появившемся окне можно задать месторасположение и имя для сжатой (восстановленной) БД и нажать кнопку Сохранить.
При проведении сжатия и восстановление открытой базы данных с помощью выше названной команды, не создается копии.
12.3 Оптимизация работы базы данных Для оптимизации работы базы данных в MS Access применяется
Мастер анализатор. Для запуска Мастера анализатора необходимо при открытом окне базы данных:
- выполнить команду Сервис – Анализ – Быстродействие (рису-нок 12.3);
- в появившемся окне выбрать категорию анализируемых объектов (текущая база данных, таблицы, отчеты и др.), указать конкретный объект путем установки флажка рядом.
Рисунок 12.3 – Начальное окно анализатора быстродействия
Мастер анализатор выдает сообщение (рисунок 12.4) о результатах анализа в виде списка «советов», «предложений», «мыслей» и «ис-правлений». Выбрав (выделив) подходящее предложение и щелкнув кнопку Оптимизировать, можно внести в базу данных соответствую-щие изменения.
Однако к «мыслям» анализатора следует относиться критически, потому что принятие отдельных «мыслей» может привести к появлению
150
большого объема дополнительной работы и мизерному повышению быстродействия.
Рисунок 12.4 – Окно анализатора быстродействия с результатами анализа
12.4 Установка параметров запуска базы данных Параметры запуска позволяют управлять внешним видом и функ-
циональными характеристиками файла MS Access при его открытии. Параметры запуска применяются только к текущему файлу MS Access.
Свойства, соответствующие параметрам запуска, не подавляют на-стройки свойств конкретной панели инструментов, строки меню, контек-стного меню, формы или отчета. Например, параметры Строка меню и Контекстное меню в диалоговом окне Параметры запуска (рисунок 1.5) не переопределяют значения свойств для конкретных форм или отчетов, имеющих пользовательскую строку меню или контекстное ме-ню. Таким образом, при открытии формы или отчета MS Access ото-бражает пользовательскую строку меню, присоединенную к этой форме или отчету, а не глобальную строку меню, указанную в диалоговом окне Параметры запуска.
Настройка параметров запуска Для определения параметров запуска конкретного файла БД необ-
ходимо выполнить следующие действия: - выполнить команду меню Сервис – Параметры запуска…; - установить требуемые параметры и ввести нужные значения.
151
Значение полей диалогового окна «Параметры запуска» (рису-нок 12.5):
Рисунок 12.5 – Вид диалогового окна Параметры запуска
- в поле Заголовок приложения вводится имя приложения, кото-рое будет отображаться в строке заголовка БД;
- в поле Значок приложения вводится имя файла рисунка (.bmp) или значка (.ico), содержащего изображение, которое будет выво-диться в качестве значка приложения, выводимого в строке заго-
ловка БД. При этом кнопка , позволяет указать путь к файлу рисунка;
- флажок Значок форм и отчетов задает отображение рисунка, файл которого указан в поле Значок приложения, в строке заго-ловков всех форм и отчетов БД;
- список в поле Строка меню позволяет выбрать из списка строку меню, которая будет отображаться как собственное меню, исполь-зуемое по умолчанию в текущей БД;
- флажок Полный набор меню Access позволяет установить ис-пользование всех команд меню MS Access;
- флажок Контекстные меню по умолчанию позволяет установить использование встроенных контекстно-зависимых меню MS Access;
- флажок Специальные клавиши Access позволяет установить использование специальных клавиш (таблица 12.1);
- список в поле Вывод формы/страницы позволяет указать фор-му или страницу, открываемую при открытии файла текущей БД;
- флажок Окно базы данных позволяет разрешить (или запретить) открытие окна БД при открытии файла БД;
- флажок Строка состояния позволяет установить (или запретить) отображение строки состояния;
152
- список Контекстное меню позволяет указать в списке меню, ко-торое будет отображать, как собственное, контекстное меню для форм и отчетов текущей БД;
- флажок Встроенные панели инструментов позволяет устано-вить использование встроенных панелей инструментов MS Ac-cess;
- флажок Изменение панелей инструментов/меню позволяет разрешить изменение панелей инструментов и меню в текущей БД. В противном случае панели инструментов блокируются, т.е. удаляется команда Панели инструментов в меню Вид, отключа-ется правая кнопка мыши и удаляется кнопка Закрыть с заголовка панелей инструментов.
Таблица 12.1 – Специальные клавиши и их назначение Клавиши Результат F11 Вывод окна базы данных поверх других окон CTRL+П Открытие окна проверки (Immediate) CTRL+F11 Переключение между пользовательской строкой меню
и встроенной строкой меню CTRL+BREAK В проекте Microsoft Access приостановка получения
записей с сервера ALT+F11 Запуск редактора Microsoft Visual Basic
Если для базы данных определена защита на уровне пользователя, можно запретить пользователям изменять настройки в диалоговом окне Параметры запуска. Для этого следует обеспечить невозможность получения пользователями прав администратора на доступ к базе дан-ных.
Создание макроса AutoExec Для выполнения макрокоманд при открытии файла MS Access поль-
зователь имеет возможность создать макрос AutoExec. Если в базе данных существует макрос AutoExec, то при открытии базы данных MS Access выполняет поиск макроса с этим именем и автоматически запус-кает его.
Для определения параметров запуска можно использовать диалого-вое окно Параметры запуска вместо или в дополнение к макросу AutoExec. Макрос AutoExec выполняется после вступления в силу па-раметров запуска, поэтому в макрос AutoExec не следует включать макрокоманды, которые могут изменить параметры запуска. Например, если в поле Вывод формы/страницы диалогового окна Параметры запуска указана форма, а в макросе AutoExec вызывается макроко-манда ОткрытьФорму, то сначала будет открыта форма, указанная в диалоговом окне Параметры запуска, а сразу за ней – форма, указан-ная в макрокоманде ОткрытьФорму.
Для создания макроса, который запускается при первом открытии файла БД, необходимо создать макрос (процедура создания макросов
153
в MS Access описана в разделе 2), содержащий макрокоманды, кото-рые требуется выполнить при открытии базы данных и сохранить его под именем AutoExec. При следующем открытии базы данных MS Access автоматически запустит этот макрос. Если же требуется открыть базу данных, не выполняя при этом макрос AutoExec, необходимо от-крыть базу данных при нажатой клавише SHIFT. Литература 1. Карпова, Т.С. Базы данных: модели, разработка, реализация /
Т.С. Карпова. – СПб.: Питер, 2001. – 304 с. 2. Корнеев, В.В. Базы данных. Интеллектуальная обработка инфор-
мации / В.В. Корнеев, А.Ф. Гареев, С.В. Васютин, В.В. Райх. – М.: Нолидж, 2000. – 352 с.
3. Харитонова, И.А. Microsoft® Access 2000 / И.А. Харитонова, В.Д. Михеева. – СПб.: БХВ – Санкт-Петербург, 2000. – 1088 с.
4. Шилина, А.Л. Технологии организации, хранения и обработки дан-ных: учеб. пособие / А.Л. Шилина, Ю.В. Змеева. – Минск: Изд-во МИУ, 2004. – 51 с.
ТЕСТ ДЛЯ САМОКОНТРОЛЯ 1. К пользователям БД относятся следующие категории пользователей:
a. системный программист, прикладной программист b. инженер электронной техники c. администратор системы d. оператор компьютера, конечный пользователь e. прикладные программы, СУБД
2. Что не входит в функции администратора баз данных? a. определение стратегии доступа к БД b. обеспечение безопасности пользователя c. обеспечение безопасности данных d. обеспечение безопасности приложений
3. Как называется процесс создания копии базы данных или ее объ-ектов? a. резервирование b. синхронизация c. модификация d. репликация e. отладка
4. Что нужно сделать при создании резервной копии базы данных? a. открыть БД только для чтения b. открыть БД монопольно c. открыть БД монопольно для чтения d. обязательно закрыть БД
5. Access анализирует быстродействие базы данных с помощью ... a. Мастера разрешения конфликтов b. Мастера репликации c. Мастера анализатора d. Мастера баз данных e. Мастера защиты
154
6. Для установки защиты базы данных на уровне пользователя в MS Access предназначен ... a. Мастер баз данных b. Мастер репликации c. Мастер анализатора d. Мастер разрешения конфликтов e. Мастер защиты
7. При установке MS Access создается стандартная рабочая группа, которая содержит встроенные коды: a. User b. Admins c. Lammer d. Admin e. Hacker
8. Пользователи группы могут определять и изменять учетные записи пользователей и групп, устанавливать и менять личные пароли, имеют полный доступ к любым базам данных. Это группа: a. Hacker b. User c. Lammer d. Admin
9. Выберите типы разрешений, которые могут быть назначены базе данных или ее объектам: a. монопольный доступ (Open | Exclusive) b. чтение макета (Read | Design) c. изменение макета (Modify Design) d. разрешение администратора (Administer) e. удаление MS Access (Delete MS Access) f. открытие/запуск (Open | Run)
10. Выберите типы разрешений, которые не могут быть назначены ба-зе данных или ее объектам: a. удаление MS Access (Delete MS Access) b. удаление данных (Delete Data) c. чтение данных (Read Data) d. обновление данных (Update Data) e. вставка данных (Insert Data)
11. В обязанности администратора БД входит: a. редактирование данных в БД b. определение стратегии доступа к БД c. определение политики безопасности d. внесение данных в БД
12. Оптимизация БД – это процесс ускорения ее работы за счет ... a. удаления устаревшей информации из БД b. архивирования малоиспользуемой информации БД c. изменения структуры БД
13. Команды, относящиеся к процедурам резервирования, реплициро-вания, оптимизации, защиты БД, находятся в меню: a. Правка b. Вид c. Сервис
14. Команда для задания пароля БД находится в меню: a. Правка b. Сервис c. Вставка
155
15. К видам защиты БД относятся: a. удаление устаревшей информации из БД b. использование паролей c. определение прав для определенных групп пользователей
16. Задание пароля для БД происходит: a. в режиме совместного доступа при закрытой БД b. в режиме совместного доступа при открытой БД c. в режиме монопольного доступа при открытой БД d. в режиме монопольного доступа при закрытой БД
17. База данных, созданная пользователем рабочей группы, принад-лежит: a. только ее создателю b. только рабочей группе, в которую входит ее создатель c. ее создателю и рабочей группе d. никому не принадлежит
18. Если пользователь может изменять данные БД, а возможность ее открытия другими пользователями блокируется, то она ... a. открыта монопольно b. закрыта c. открыта в режиме коллективного доступа d. открыта монопольно для чтения e. открыта для чтения
19. Режим разделенного доступа к базе данных предусматривает, что: a. несколько пользователей одновременно могут работать с БД b. БД делится на части, количество которых соответствует числу
пользователей 20. Access обеспечивает следующие способы защиты данных:
a. установка пароля, требуемого при открытии БД b. защита на уровне определения прав пользователя c. перезагрузка компьютера при несанкционированном обраще-
нии к БД 21. При введении неправильного пароля на открытие базы данных:
a. БД удалится физически b. БД не откроется c. БД откроется в монопольном режиме d. БД откроется без возможности внесения изменений в структуру
ее объектов 22. Сжатие базы данных позволяет:
a. увеличить производительность приложения b. архивировать БД c. выполнить дефрагментацию БД
23. При выполнении операции сжатия одновременно выполняется операция: a. резервного копирования БД b. восстановления файла БД c. архивирования файла БД
156
13 МОДЕЛИ ПРЕДСТАВЛЕНИЯ ЗНАНИЙ
13.1 Знания. Их виды. Базы знаний Попытки создания интеллектуальных механизмов, действующих
аналогично человеческому разуму при решении сложных задач, пред-принимались еще в древнейшие времена. Однако широкие научные исследования и их практическое применение связаны с 70-ми годами прошлого века, когда на смену поиска универсального алгоритма мыш-ления пришла идея моделировать конкретные знания специалистов, экспертов. Сформировался новый подход к решению интеллектуальных задач – представление и использование знаний.
Для начального представления о таких задачах в экономической области приведем несколько примеров. Пример 1. Интерпретация данных, поступающих на предприятие в виде больших массивов информации из различных источников. Решение такой задачи может послужить основой для повышения прибыльности предприятия и получения конкурентных преимуществ на рынке. Пример 2. Диагностика ситуации, когда по результатам наблюдений необходимо выявлять причины неправильного функционирования сис-темы решения предпринимательских задач. Поток информации про-фессиональных публикаций, отчетов по результатам маркетинговых исследований, данных о результатах разного вида переговоров и т.п. должен быть обработан оперативно, оценен с точки зрения реализо-ванных и упущенных возможностей. Пример 3. Прогнозирование ситуаций, связанных со стратегическими направлениями деятельности и источниками их информационного обеспечения, когда определяются вероятностные последствия иссле-дуемых и принимаемых решений.
Для решения указанных задач недостаточно использовать традици-онное представление информации – в виде формализованных данных, под которыми понимают отдельные факты, характеризующие объ-екты, процессы и явления предметной области, а также их свойст-ва.
Приведенные задачи связаны с процессом накопления и использо-вания знаний о рассматриваемой предметной области и указывают на необходимость разработки компьютерных программ, способных обра-батывать качественную информацию (характерен нечисловой харак-тер, включает субъективные оценки).
Что же такое знания? Несмотря на широкое распространение и ис-пользование понятия «знания», строгого определения данного термина нет. Очень часто используют так называемый прагматический подход, согласно которому, знания – это формализованная информация, на ко-торую ссылаются и/или используют в процессе логического вывода.
157
Возможен и другой подход – на основе понятия «данные»: знания – это хорошо структурированные данные, или данные о данных, или ме-таданные.
Если рассматривать знания с точки зрения решения задачи в неко-торой предметной области, то знания можно определить как выявлен-ные закономерности предметной области (принципы, связи, законы), полученные в результате практической деятельности и профессио-нального опыта, позволяющие специалистам ставить и решать за-дачи в этой области.
Какие характеристики «превращают» данные в знания? На рисун-ке 13.1 представлены пять основных характеристик знаний. Кратко оха-рактеризуем их.
Рисунок 13.1 – Характеристики знаний
Интерпретация. Эта характеристика предполагает, что в компьюте-ре хранятся не только сами данные, но и данные о данных, что позво-ляет содержательно их интерпретировать.
Структурированность. Данные должны обладать гибкой структу-рой, т.е. одна информационная единица может быть включена в состав любой другой.
Связность. Между информационными единицами устанавливаются связи различного типа, характеризующие отношения между объектами, явлениями.
Семантическая метрика. На множестве информационных единиц задаются отношения, характеризующие ситуационную близость этих единиц. Это позволяет находить знания, близкие уже имеющимся.
158
Активность. Знания человека активны, поскольку ему свойственна познавательная активность. Знания позволяют получать новые знания.
При обработке на ЭВМ знания условно трансформируются, проходя следующие этапы:
I этап: знания в памяти человека как результат мышления. II этап: материальные носители знаний (учебники, методические по-
собия). III этап: поле знаний – условное описание основных объектов пред-
метной области, их атрибутов и закономерностей. IV этап: знания, описанные на языках представления знаний (про-
дукционные языки, семантические сети, фреймы). V этап: база знаний на машинных носителях информации. Наука о знании называется эпистемологией. Она занимается при-
родой, структурой и происхождением знания. Область деятельности по накоплению знаний, их фильтрации, хранению, обработке и получению новых знаний называется управлением знаниями (Knowledge Management – КМ) или инженерией знаний.
Классифицировать знания можно по самым различным основаниям. Приведенная ниже классификация знаний не является исчерпываю-щей. По способу существования знания делят на две категории факты и эвристики.
Факты – это хорошо известные обстоятельства в данной предмет-ной области. Знания этой категории иногда называют текстовыми, под-черкивая их освещенность в специальной литературе.
Эвристики – знания из опыта экспертов в данной предметной об-ласти.
По формам представления знания подразделяются на декларатив-ные (факты в виде наборов структурированных данных) и процедур-ные (алгоритмы в виде процедур обработки фактов).
Знания могут быть классифицированы на поверхностные и глу-бинные.
Поверхностные – знания о видимых взаимосвязях между отдель-ными событиями и фактами в предметной области.
Глубинные – абстракции, аналогии, схемы, отображающие структу-ру и природу процессов, протекающих в предметной области. Эти зна-ния объясняют явления и могут использоваться для прогнозирования поведения объектов.
Для хранения знаний используются базы знаний, которые содержат описание абстрактных сущностей: объектов, отношений, процессов.
База знаний – это совокупность знаний, описанных с использовани-ем выбранной формы их представления.
База знаний хранит систематизированную совокупность понятий, правил и фактов, относящихся к определенной предметной области. Ее содержимое оформляется, связывается между собой и представляется таким образом, чтобы на его основе можно было с помощью специаль-
159
ных программ осуществлять рассуждения и делать выводы, получая сведения, которые в явном виде не могут присутствовать в базе знаний.
Основные функции базы знаний: создание, загрузка, актуализация, поддержание в достоверном состоянии, расширение, включение но-вых знаний, обработка, формирование знаний.
13.2 Модели представления знаний Одной из наиболее важных проблем, характерных для искусствен-
ного интеллекта, является представление знаний. Проблема пред-ставления знаний – это проблема представления взаимосвязей в конкретной предметной области в форме, понятной системе искусст-венного интеллекта.
Представление знаний – это их формализация и структурирова-ние, с помощью которых отражаются характеристики знаний или, иначе, это соглашение о том, как описывать реальный мир.
Для того чтобы манипулировать всевозможными знаниями из ре-ального мира с помощью компьютера, необходимо осуществлять их моделирование. В настоящее время разработано более тридцати мо-делей данных. Большинство из них может быть сведено к следующим классам:
- продукционные модели; - семантические сети; - фреймовые модели; - логические модели. Наиболее популярными и практически применяемыми из них явля-
ются продукционные модели, семантические сети, фреймы. Выбор конкретной модели определяется возможностью и удобством
представления исследуемой проблемной области с учетом необходи-мости не только представления, но и использования знаний.
Продукционная модель. В настоящее время это наиболее распро-страненная модель представления знаний (чаще всего используется в промышленных экспертных системах).
Данная модель основана на представлении знаний в виде правил продукции или продукционных правил. Идея этой модели принадлежит американскому логику Е. Посту (1943). В качестве продукции Пост по-нимал запись ”Если А, ТО В”, которая трактовалась как оператор заме-ны цепочки А цепочкой В.
Продукционные правила имеют вид: Если (перечень условий), ТО (перечень действий). Суть использования правил продукции для представления знаний
состоит в том, что левой части (условная часть) ставится в соответст-вие некоторое условие, а правой части (констатирующая часть) – дей-ствие.
Под условием понимается некоторое предложение – образец, осно-вание, по которому осуществляют поиск в базе знаний, а под действи-
160
ем – действия, выполняемые при успешном исходе поиска, или заклю-чение, гипотеза – вывод, представляющий собой новое знание, или некоторая цель. Пример 4. ЕСЛИ объемы производства в стране падают, ТО курс на-циональной валюты снижается.
В правиле может быть несколько условий. В этом случае использу-ются соединители И, ИЛИ и НЕ. Пример 5. ЕСЛИ доходность акций приемлема, И ожидается хороший темп роста дивидендов, ТО нужно приобрести акции.
При использовании продукционной модели исходные факты – дан-ные – хранятся в базе фактов, а набор правил – в базе знаний.
Программа, управляющая перебором правил, называется машиной вывода.
Схематично работу машины вывода можно представить следующим образом: Запрос к базе знаний содержит описание некоторой ситуации. Машина вывода ищет правила, в условной части которых содержится аналогичная ситуация. Если такие правила удается обнаружить, то в соответствии с их констатирующей частью выполняются действия, в результате которых могут появиться новые ситуации. Машина вывода продолжает аналогичным образом обрабатывать вновь созданные си-туации (формировать цепочку рассуждений). Работа заканчивается, когда не удается обнаружить ни одной необработанной ситуации, а ре-зультатом выполнения запроса считается последнее полученное таким образом утверждение.
Описанная схема логического вывода называется прямой – предпо-лагает проверку условия и актуализацию тех продукций, для которых условие имеет место. Это стратегия “от данных к цели”.
Используется и обратная схема логического вывода. В этом случае обработка информации осуществляется в обратном направлении – проверяются правые части продукционных правил, чтобы обнаружить в них искомое утверждение. Это стратегия “от цели к данным”.
Рассмотрим процесс логического вывода для прямой и обратных схем. Пример 6. Имеется фрагмент базы знаний из двух правил П1 и П2:
П1: ЕСЛИ доходность акций приемлема, И ожидается хороший
темп роста дивидендов, ТО приобрести акции.
П2: ЕСЛИ темп роста фирмы и ее активов высокий, ТО ожидается хороший темп роста дивидендов.
В базу знаний поступили данные (факты): Д1 = темп роста фирмы и ее активов высокий; Д2 = доходность акций приемлема.
Прямой вывод Шаг 1. Проверяем правило П1. Вывод: правило П1 неприменимо,
161
поскольку нет данных Д2, подтверждающих ожидание хорошего темпа роста дивидендов.
Шаг 2. Проверяем правило П2. Наличие в базе фактов Д1 позволяет его применить и получить новые данные Д3 = “ожидается хороший темп роста дивидендов”, которые добавляются в базу фактов. Правило П1 становится допустимым к использованию и приводит к выводу: “приоб-рести акции”.
Обратный вывод Вывод должен начинаться с цели “приобрести акции”. Шаг 1. Проверяем правило П1. Цель “приобрести акции” фигурирует
в заключении данного правила. Но поскольку в правиле П1 содержится Д3 = “ожидается хороший темп роста дивидендов”, которого нет в базе фактов, нужно назначить промежуточную цель: найти правило, в кото-ром заключение будет содержать Д3= “ожидается хороший темп роста дивидендов”.
Шаг 2. Проверяем правило П2. Цель найдена. Правило П2 может быть активизировано, так как в качестве предпосылки Д2 – данные, присутствующие в базе фактов. В результате база фактов пополняется данными Д3. Обратная цепочка построена, и она указывает на путь от цели к имеющимся данным.
Достоинства продукционных моделей: - большинство человеческих знаний можно представить в виде
правил продукций; - модульность продукций – добавление в базу знаний новых про-
дукционных правил без изменения прежних; - возможность реализовывать любые алгоритмы и, следовательно,
любые процедурные знания; - параллелизм и асинхронность продукций; - простота смысловой интерпретации. Основной недостаток подобных систем – трудность проверки не-
противоречивости системы при большом количестве продукций. Кроме того, затруднительна оценка целостного образа знаний, содержащихся в системе. Семантические сети
Начало разработки семантических сетей относится к 1960 г., когда они использовались для моделирования обработки естественного язы-ка. Данная модель представления знаний была предложена американ-ским психологом Куиллианом. Основным ее преимуществом является то, что она более других моделей позволяет успешно структурировать информацию. Это наиболее общая модель представления знаний, так как в ней имеются средства реализации всех характерных для знаний характеристик: интерпретации, структурированности, семантической метрики и активности.
Семантическая сеть – это ориентированный граф с размеченными вершинами и дугами.
162
Вершинам соответствуют понятия моделируемой предметной об-ласти, а дугам – отношения между ними.
В качестве понятий обычно выступают абстрактные или конкретные объекты (сущности), свойства, события, операции, а отношения – это связи типа: “это”, “имеет частью”, “принадлежит” и т.д.
Выделяют следующие типы отношений: - класс – элемент класса (пример, автомобиль – легковой автомо-
биль); - свойство – значение (скорость разгона – 12 с.); - пример элемента класса (легковой автомобиль “Ford Fiesta”); - целое – часть (автомобиль имеет часть – двигатель). Наиболее часто в семантических сетях используются следующие
отношения: - функциональные (определяемые глаголами “производит”, “влия-
ет”, “поставляет” и др.); - количественные (больше, меньше, равно и т.д.); - пространственные (далеко от, близко от и др.); - временные (раньше, позже и др.); - атрибутивные связи (иметь свойство, иметь значение); - логические связи (И, ИЛИ, НЕ) и др. Базовыми элементами сетей служат вершины двух типов: - вершины, соответствующие понятиям, которые изображаются
в виде прямоугольника; - вершины, соответствующие отношениям, которые изобража-
ются в виде направленных стрелок и прямоугольников со скруг-ленными углами (могут использоваться также овалы или круги), с помощью которых увязываются понятия.
Посредством семантической сети имеется возможность представить смысл высказывания.
В качестве примера модели семантической сети рассмотрим пред-ставление знания, содержащегося в следующем высказывании: «Инте-грал производит компьютеры». Пример 7
Рисунок 13.2 – Модель «Интеграл производит компьютеры»
Построение модели предметной области в виде семантической сети происходит путем синтеза графических представлений знаний, содер-жащихся в отдельных высказываниях. Синтез происходит по следую-щему правилу: если в одном графе существует вершина, идентичная вершине в другом, то они объединяются с сохранением всех отноше-ний.
163
Пример 8. Знания, содержащиеся в высказывании «Интеграл находит-ся в Минске. Интеграл производит компьютеры», формализуются с по-мощью модели семантической сети, представленной на рисунке 13.3.
Рисунок 13.3 – Модель Интеграл производит компьютеры
Обрабатывается семантическая сеть на основе принципа сопо-ставления понятия и отношений, указанных в запросе, с понятиями и отношениями, имеющимися в семантической сети.
Например, если запрос имеет вид «Что производит Интеграл», то будет выделен тот фрагмент сети, где фигурирует указанный объект «Интеграл» и отношение «производит». Ответом будет: «Интеграл про-изводит компьютеры».
Достоинства семантических сетей: - наглядность системы знаний, представленной графически; - близость структуры сети, представляющей систему знаний, се-
мантической структуре фраз на естественном языке; - соответствие современным представлениям об организации дол-
говременной памяти человека. Недостатки семантических сетей: - не дают четкого представления о структуре предметной области,
поэтому формирование и модификация таких моделей затрудни-тельны;
- представляют пассивные структуры, для обработки которых необ-ходим специальный аппарат формального вывода и планирова-ния;
- отличаются сложностью поиска вывода; - отсутствуют стандарты наименований направленных линий; - характеризуются значительным ростом числа просматриваемых
вершин при отрицательном ответе на запрос. Фреймовые модели
Теорию фреймов опубликовал в 1975 году М. Минский (США). Эта теория относится к психологическим понятиям и касается способов по-нимания того, как мы воспринимаем (видим, слышим) явления, процес-сы, объекты и т.п.
В основе теории фреймов лежит восприятие фактов посредством полученной извне информации о некотором явлении в сопоставлении с уже имеющимися данными, накопленными опытным путем или полу-ченными в результате вычислений. Когда человек попадает в новую
164
ситуацию, он вызывает из своей памяти основную структуру, называе-мую фреймом.
Фрейм – это некоторая абстрактная структура данных для описания концептуальных знаний о предметной области.
Фрейм – это своего рода шаблон для множества однотипных си-туаций, включающий наиболее существенные характеристики объ-ектов данного класса.
Посредством фрейма можно воспринимать объекты и явления ок-ружающего нас мира. Формируются фреймы на основе опыта.
Рассмотрим пример фреймового представления компьютерной ла-боратории.
Термин «компьютерная лаборатория» порождает образ помещения с окнами, дверью, компьютерной техникой. Из такого описания ничего нельзя убрать без потери смысла: если убрать компьютерную технику, то это уже будет просто комната. Такой образ и есть фрейм. Но в дан-ном описании компьютерной лаборатории есть незаполненные значе-ниями атрибуты (количество рабочих мест, быстродействие процессора и т.д.) – слоты.
Слоты – это элементы фрейма, которые могут быть пустыми и за-полняться в процессе активизации фрейма в соответствии с опреде-ленными условиями.
Слот является основной единицей фрейма и в общем случае может быть представлен в виде:
имя_слота: (признак_1, значение_1), (признак_2, значение_2),
… (признак_n, значение_n).
Структура фрейма как формализованной модели для представле-ния абстрактного образа определяется следующим образом:
имя_фрейма: (имя_1_слота: значение_1_слота), (имя_1_слота: значение_2_слота), … (имя _n_слота: значение_n_слота).
Значением слота может быть практически все что угодно: числа, ма-тематические соотношения, тексты на естественном языке или про-граммы, правила вывода или ссылки на другие слоты фрейма.
Различают фреймы-образцы (прототипы), хранящиеся в базе зна-ний. Как правило, фрейм-образец содержит набор атрибутов – слотов. При конкретизации фрейма ему и слотам присваиваются конкретные имена. Происходит заполнение слотов. Из фреймов-образцов получа-ются фреймы-экземпляры, которые создаются для отображения реаль-ных фактических ситуаций на основе поступающих данных.
Кроме фреймов-образцов и фреймов-экземпляров существуют и не-которые другие виды фреймов, например:
165
- фреймы-структуры, использующиеся для обозначения объектов и понятий (заем, залог, вексель);
- фреймы-роли (менеджер, кассир, клиент, заемщик, кредитор); - фреймы-сценарии (совещание, презентация, собрание акционе-
ров); - фреймы-ситуации (тревога, происшествие, сбой работы про-
граммного продукта). Пример 9. Завод «Интеграл» получил целевой кредит в валюте от Бе-ларусбанка, расположенного в Минске.
Представим с помощью фрейма данную ситуацию. Получение:
Предмет (кредит: (тип, целевой), (вид, валютный)), Заемщик (завод: (название, Интеграл)), Кредитор (банк: (название, Беларусбанк), (расположение, Минск)),
где Получение – имя фрейма; Предмет, Заемщик, Кредитор – роли, которые играют, соответствен-но, слоты кредит, завод, банк; тип, вид, название и т.д. – это признаки слота, целевой, валютный, Интеграл и т.д. – значения признака.
Фрейм можно также представлять в виде таблицы (отношения), строки которой соответствуют слотам фрейма, а столбцы – атрибутам (характеристикам объекта). Название таблицы является именем фрей-ма, и оно уникально.
Каждый слот таблицы содержит следующие атрибуты: - имя слота; - указатель наследования, показывающий, какую информацию об
атрибутах слотов во фрейме верхнего уровня наследуют слоты с такими же именами во фрейме нижнего уровня. Типичные указа-тели наследования: U (unique – уникальный); S (same – такой же); R (range – установление границ); O (override – переопределить) и др.;
- тип данных. К типам данных относятся FRAME (указатель); INTEGER (целый); REAL (действительный); BOOL (булев); LISТ (список); TEXT (текст); EXPRESSION (выражение) и др.;
- значение слота – соответствует указанному типу данных этого слота; кроме того, должно выполняться условие наследования;
- присоединенная процедура, указывающая, каким образом могут заполняться значения слотов или устанавливаться связи и отно-шения.
Различают процедуры-демоны и процедуры-слуги. Демон – автоматически запускаемая процедура при обращении
к слоту и выполнении некоторого условия. Слуга – процедура, активизируемая при выполнении некоторых ус-
ловий относительно содержимого слотов (часто по запросу).
166
К основным достоинствам фреймовой модели относятся: - способность отражать концептуальную основу организации памя-
ти человека; - наглядность и естественность представления; - модульность; - возможность использования значений слотов по умолчанию. Основным недостатком фреймовых моделей является отсутствие
механизмов управления выводом. Большинство проблем во фреймах возникает с необходимостью изменения слотов. После того как слот может быть изменен, свойства, которые наследует фрейм, могут быть изменены или отменены где-нибудь в иерархии. Это означает, что не-возможно создать универсальные формулировки.
13.3 Краткие сведения о формальных логических моделях
Традиционно в представлении знаний выделяют формальные логи-ческие модели.
Логические модели – модели представления знаний, которые ос-новываются на использовании предикатов.
Предикат – это функция от любого числа аргументов, принимаю-щая значение “истина” или “ложь”. Предикат отображает наличие или отсутствие у субъекта того или иного признака.
Основная идея подхода при построении логических моделей пред-ставления знаний состоит в том, что предметная область или задача описывается в виде набора аксиом (фактов, утверждений). Система знаний представляется совокупностью формул логики предикатов. Получение новых знаний сводится к реализации процедур логического вывода.
Например, факт следующего содержания: “Петров является менед-жером” может быть представлен унарным предикатом вида менеджер (Петров) или бинарным предикатом вида (Петров, менеджер).
В основе логических моделей представления знаний лежит понятие формальной теории, задаваемое четверкой:
S = <B, F, A, R>. Множество В – множество базовых символов, называемых алфави-
том языка предикатов. Множество F – множество формул, т.е. множество синтаксических
правил. С их помощью из элементов множества В образуют синтакси-чески правильные совокупности.
А – это подмножество априори истинных формул, называемых ак-сиомами, выделяемое на множестве синтаксически правильных сово-купностей.
Множество R – конечное множество отношений между формулами, называемое правилами вывода. Применяя их к элементам А, можно
167
получить новые синтаксически правильные совокупности, к которым снова можно применять правила из R.
Правила вывода являются наиболее сложной составляющей фор-мальной системы. В базе знаний хранятся лишь те знания, которые образуют множество А, а все остальные знания получаются из них по правилам вывода.
Рассмотрение теории логического исчисления предикатов выходит за рамки данного учебно-методического комплекса. Для углубленного изучения этого вопроса обратитесь к литературе [2, 3].
Исчисление предикатов является, с одной стороны, самой теорети-чески обоснованной моделью искусственного интеллекта (используется классический аппарат математической логики), а с другой стороны – языком искусственного интеллекта. На основе множества исходных аксиом можно доказать истинность или ложность некоторой гипотезы (теоремы).
Методы исчисления предикатов реализованы в виде программного обеспечения (система Пролог) и нашли свое отражение в языке про-дукционных правил.
Язык исчисления предикатов применяют для описания и решения задач в области бизнеса и финансово-экономического анализа.
Основной недостаток логических методов – отсутствие четких прин-ципов организации фактов в базе знаний. Не любое знание можно представить с помощью языка предикатов.
Литература 1. Гаврилова, Т.А. Базы знаний интеллектуальных систем /
Т.А Гаврилова, В.Ф. Хорошевский. – СПб.: Питер, 2000. – 384 с. 2. Железко, Б.А. Информационно-аналитические системы поддержки
принятия решений / Б.А. Железко, А.Н. Морозевич. – Минск: НИУ, 1999. – 140 с.
3. Змитрович, А.И. Базы данных и знаний: учеб. пособие / А.И. Змитрович, В.В. Апанасович, В.В. Скакун. – Минск: Изд. центр БГУ, 2007. – 364 с.
4. Информатика для экономистов: учебник / В.М. Матюшок [и др.]; под общ. ред. В.М. Матюшка. – М.: ИНФРА-М, 2006. – 880 с.
5. Экономическая информатика / под ред, П.В. Конюховского и Д.Н. Колесова. – СПб.: Питер, 2000. – 560 с.
ТЕСТ ДЛЯ САМОКОНТРОЛЯ 1. К классу интеллектуальных задач относят задачи:
a. обработки таблично организованной информации b. диагностики заболеваний по симптомам c. управления объектом с целью достижения желаемого поведения d. определения смыслового содержания входных данных e. обработки текстовых документов f. прогнозирования последствий наблюдаемых ситуаций
168
2. Выделите группу характеристик, присущих знаниям: a. интерпретация, структурированность, связность, синтаксическая
метрика, активность b. интерпретация, структурированность, связность, семантическая
метрика, пассивность c. интерпретация, структурированность, связность, семантическая
метрика, активность d. интерпретация, структурированность, разрозненность, семанти-
ческая метрика, активность 3. Знания – это ...
a. формализованная информация b. отдельные факты c. данные о данных d. выявленные закономерности предметной области
4. По какому классификационному признаку знания делят на факты и эвристики? a. по формам представления b. по глубине познания c. по способу существования d. по степени усвоения
5. По формам представления знания классифицируют на: a. поверхностные и глубинные b. факты и эвристики c. простые и объемные d. декларативные и процедурные
6. Знания, полученные из опыта экспертов данной предметной области, называют ... a. фактами b. эвристиками c. декларативными d. процедурными e. поверхностными f. глубинными
7. Свойство знаний находить знания, близкие имеющимся, отражено в характеристике: a. структурированность b. интерпретация c. активность d. семантическая метрика
8. Идея формализации знаний в виде ориентированного графа с раз-меченными вершинами и дугами лежит в основе ... a. продукционной модели b. фреймовой модели c. семантической сети d. логической модели
169
9. Недостатком продукционной модели является ... a. трудность проверки непротиворечивости системы при большом
количестве продукций b. параллелизм и асинхронность продукций c. модульность продукций d. простота смысловой интерпретации e. возможность реализовывать любые алгоритмы f. представление большинства знаний людей в виде правил про-
дукций 10. Идея использования абстрактной структуры данных для описания
концептуальных знаний о предметной области лежит в основе ... a. продукционной модели b. фреймовой модели c. семантической сети d. логической модели
11. Знания, содержащиеся в высказывании «Если объемы производства в стране падают, то курс национальной валюты снижается», можно формализовать с помощью ... a. продукционной модели b. фреймовой модели c. семантической сети d. логической модели
12. Модели представления знаний, в которых система знаний представ-ляется совокупностью формул логики предикатов, называют: a. продукционными моделями b. фреймовыми моделями c. семантическими сетями d. формальными логическими моделями
13. Предикат отображает ... a. наличие или отсутствие у субъекта некоторого признака b. действие c. гипотезу исследования d. некоторое условие
170
14 СИСТЕМЫ ОБРАБОТКИ МНОГОПОЛЬЗОВАТЕЛЬСКИХ БАЗ ДАННЫХ
14.1 Технологии сетевой обработки данных При размещении базы данных в сети возможны различные концеп-
ции сетевой обработки данных. Выделяют технологии обработки данных на основе архитектуры: - файл-сервер; - клиент-сервер. Важными понятиями в данных технологиях являются понятия сер-
вера и клиента. В общем случае сервером определенного ресурса в компьютерной
сети называется компьютер (программа), управляющим этим ресурсом. В качестве ресурса компьютерной сети может выступать файл,
внешнее устройство, база данных, т.е. все то, что может использовать-ся коллективно в сети. Тип сервера определяется видом ресурса, кото-рым он управляет, например:
- файловый сервер предназначен для хранения файлов общего ис-пользования;
- сервер приложений позволяет с рабочих станций запускать сете-вые приложения, записанные на сервере;
- сервер базы данных управляет базой данных; - факс-сервер хранит, получает и рассылает факсимильные сооб-
щения; - сервер печати печатает на подключенных к нему принтерах фай-
лы, отправляемые на печать с рабочих станций; - архивационный сервер служит для резервного копирования про-
граммного обеспечения и данных и т.д. Клиентом (пользователем) называется компьютер (программа),
делающий запрос к серверу на использование ресурса. Исторически первыми появились базы данных с применением архи-
тектуры файл-сервер. В ее рамках предполагается, что один из ком-пьютеров в сети является файловым сервером. Функция файл-сервера заключается в хранении файлов базы данных и обеспечении доступа пользователей. На сервере располагается и СУБД. На компьютерах-клиентах имеется прикладное программное обеспечение (клиентское приложение), реализующее функции пользовательского интерфейса доступа к данным. Клиентское приложение устанавливает соединение с сервером и формирует запрос к серверу базы данных. В результате обращения к СУБД с сервера на компьютере пользователя создается копия СУБД. По каждому запросу пользователя файловый сервер пе-редает требуемый блок данных, независимо от того, сколько данных реально необходимо для выполнения запроса. Например, на файл-сервере хранится общая база данных бухгалтерской системы. Если поступит запрос о начисленной заработной плате какого-либо сотруд-
171
ника, то будет передан файл со всеми сотрудниками. Далее СУБД пользователя выполняет запрос – отбирает нужные записи. Таким об-разом, файл-серверная обработка – это обработка данных на компью-терах пользователей.
При небольших объемах данных архитектура файл-сервер вполне соответствует современным требованиям, но с увеличением числа компьютеров в сети или ростом базы данных начинают возникать про-блемы, связанные с резким падением производительности системы. К недостаткам технологии данной модели относят также отсутствие на-дежных средств обеспечения безопасности работы с данными (защита только на уровне файловой системы) и ограниченный набор допусти-мых действий по обработке данных на файловом сервере.
Недостатки файл-серверных систем привели к появлению более эффективной технологии, получившей название клиент-сервер.
Архитектура клиент-сервер предполагает централизованное хра-нение данных как с двухзвенным (между сервером и клиентом) распре-делением функций СУБД, так и трехзвенным вариантом представления данных. В данной архитектуре выполнение запроса, обработка тран-закций и правил целостности происходит на сервере, а клиенту пере-дается только результат.
Если вся обработка данных происходит на стороне сервера, а кли-ент выполняет только функции интерфейса с пользователем, то кли-ентское приложение называют ”тонким” клиентом. Если часть обра-ботки данных происходит на стороне клиента – то “толстым” клиен-том.
По разделению функций между клиентом и сервером выделяют следующие модели архитектуры клиент-сервер:
- модель доступа к удаленным данным, или модель удаленного доступа к данным (RDA-модель);
- модель сервера баз данных, или модель удаленного представле-ния (DBS-модель);
- модель сервера приложений, или модель распределенной функ-ции (AS-модель).
В модели доступа к удаленным данным на компьютере-клиенте располагаются части приложения, реализующие функции представле-ния (это функции ввода и отображения данных) и обработки данных. Функции сервера определяются управлением данными и обработкой запросов со стороны клиентов. Клиент обращается к серверу с запро-сами на языке SQL. В ответ на запрос клиент получает только данные, соответствующие запросу.
Основное достоинство данной модели состоит в том что, во-первых, взаимодействие пользователя с сервером осуществляется с помощью стандартного языка запросов. Во-вторых, это наличие большого числа готовых СУБД и других инструментальных средств, обеспечивающих быстрое создание программ клиентской части.
172
Недостатки RDA-модели: высокая загрузка системы передачи дан-ных; неудобны с точки зрения разработки, модификации и сопровожде-ния.
В модели сервера баз данных на компьютере-клиенте располага-ются части приложения, реализующие только функции представления, а прикладные функции, определяющие основные алгоритмы решения задач приложения и включающие обеспечение целостности, безопас-ности и секретности, реализуются на стороне сервера. Работа прило-жения основана на механизме хранимых процедур и триггеров.
Хранимые процедуры – это специальные программные модули, которые используются для извлечения или изменения данных.
Существуют два вида хранимых процедур: системные и пользова-тельские.
Системные хранимые процедуры предназначены для получения информации из системных таблиц и выполнения различных служебных операций. Чаще всего такие процедуры используются при администри-ровании базы данных. Пользовательские хранимые процедуры созда-ются непосредственно разработчиками или администраторами базы данных.
Обычно процедуры хранятся в словаре базы данных и могут разде-ляться между несколькими клиентами. Выполняются хранимые проце-дуры на том же компьютере, где функционирует SQL-сервер. Хранимые процедуры пишутся на процедурном языке, который зависит от кон-кретной СУБД. Клиентское приложение обращается к серверу с коман-дой запуска хранимой процедуры, а сервер выполняет ее и возвращает клиенту требуемые данные.
Механизм триггеров позволяет выполнять централизованный кон-троль целостности базы данных. Триггер – это особый тип хранимой процедуры, автоматически выполняющейся при каждой попытке изме-нить данные. Триггер, как и хранимая процедура, хранится в словаре базы данных. Если триггер вызывает ошибку в запросе, обновление информации не производится, а в приложение возвращается сообще-ние об ошибке.
Достоинства модели сервера баз данных: возможность централизо-ванного администрирования приложений и обеспечения целостности, а также эффективное использование вычислительных и коммуникацион-ных ресурсов. Недостатки DBS-модели: ограниченность действий, вы-полняемых с помощью хранимых процедур и триггеров, и очень боль-шая загрузка сервера.
Модель сервера приложений является трехзвенной моделью. На компьютере пользователя расположены приложения клиентов, обеспе-чивающие пользовательский интерфейс. Это нижний уровень модели. Между клиентом и сервером вводится дополнительный промежуточный уровень – сервер приложений, обеспечивающий управление данными и реализующий несколько прикладных функций. Серверов приложений может быть несколько, в зависимости от вида предоставляемого серви-
173
са. Любая программа, запрашивающая услугу у сервера приложений, является для него клиентом. На верхнем, третьем уровне располагает-ся удаленный сервер баз данных, выполняющий функции управления информационными ресурсами базы данных. Трехзвенная модель эф-фективна в тех случаях, когда требуется выполнить сложные аналити-ческие расчеты над базой данных.
К достоинствам AS-модели относят разгрузку сервера базы данных, к недостаткам – увеличение нагрузки на сеть.
14.2 Системы управления распределенными базами данных
С возникновением и развитием корпоративных и иных сетей возник-ла проблема организации доступа к одним и тем же данным из различ-ных структур подразделений предприятия.
Традиционно данная задача решалась с использованием архитекту-ры клиент-сервер на основе локальной сети с централизованной базой данных. В этом случае данные обычно хранятся на выделенном компь-ютере – сервере, а доступ к ним и их представление организуется че-рез клиентские программы. В такой системе отражается, во-первых, удачное сочетание централизованного хранения, обслуживания и кол-лективного доступа к общей корпоративной информации. Во-вторых, реализуется многопользовательский доступ к данным, поскольку суще-ствует возможность предоставлять одни и те же данные нескольким клиентам одновременно, решая при этом проблемы совместного досту-па.
Сегодня для стабильного развития предприятия в рыночной обста-новке и его эффективного функционирования необходимо обеспечи-вать отделы и руководство полной, достоверной и актуальной инфор-мацией, координировать процессы взаимодействия между ними, осу-ществлять аналитическую обработку данных в режиме реального вре-мени. Становится актуальным многопользовательский доступ к корпо-ративным данным в любой момент времени.
Происходящие при этом процессы увеличения объемов хранимых данных, числа пользователей, получающих к ним доступ, территори-альное развитие предприятий (и связанная с ним необходимость рас-пределенной обработки данных) приводят к возникновению ряда про-блем, свойственных централизованной архитектуре:
- большой объем обмена данных; - снижение надежности обмена данными; - снижение общей производительности; - рост затрат на разработку базы данных. Возможным решением перечисленных проблем является организа-
ция децентрализованного хранения данных – обеспечения хранения данных в местах их возникновения или обработки.
Такую среду предоставляют распределенные базы данных (РБД).
174
Распределенная база данных (Distributed Database – DDB) – это совокупность логически взаимосвязанных баз данных, распределенных в компьютерной сети.
Распределенная база данных предполагает физическое разделение на фрагменты и распределение их по локальным узлам сети данных. Главный критерий распределения данных в сети состоит в следующем: данные должны находиться там, где существует наибольшая частота обращения к ним. Такой подход обеспечивает быстрый и эффективный доступ к данным. Каждый фрагмент базы данных сохраняется на одном или нескольких узлах, соединенных между собой линиями связи, и каж-дый из них работает под управлением отдельной СУБД. Будучи фраг-ментом общего пространства данных, часть базы данных функциониру-ет как полноценная локальная база данных. Управление выполняется локально и независимо от других узлов системы. Пользователи взаи-модействуют с распределенной базой данных через приложения. Поль-зователь не обязан знать, каким образом ее компоненты размещены в узлах сети, т.е. распределенная база данных выглядит, с точки зрения пользователей (а также и прикладных программ), как единая локальная база данных.
Существуют два основных способа организации РБД с распреде-ленным хранением данных: фрагментация и репликация.
Фрагментация – процесс, посредством которого объекты базы данных разбиваются на части и распределяются по нескольким узлам.
В распределенной системе возможны два типа фрагментации: гори-зонтальная и вертикальная.
При горизонтальной фрагментации разбиение происходит за счет помещения в отдельные таблицы с одинаковой структурой не перекры-вающихся групп строк. Фактически осуществляется хранение строк од-ной логической таблицы в нескольких идентичных физических таблицах на различных узлах.
При вертикальной фрагментации разбиение происходит по столб-цам. Одни столбцы формируют одну таблицу, другие – другую.
В корпоративной базе данных существуют части, которые постоянно используются в нескольких узлах. Если отдельным узлам придется по-стоянно получать доступ к удаленно хранящимся данным, то произво-дительность неизбежно снизится. Решение этой задачи – использова-ние репликации данных.
Репликация (тиражирование) данных – это хранение одних и тех же данных в нескольких узлах.
Если копии одного и того же фрагмента данных располагаются на всех узлах сети, то говорят о полной репликации. В противном случае имеем дело с частичной репликацией.
Репликацию применяют из соображений производительности, дос-тупности и безопасности. Недостатком является трудность синхрониза-ции реплик при обновлении данных, а также тот момент, что между об-новлениями копии базы данных могут отличаться друг от друга.
175
Распределенные системы чаще всего классифицируют по двум при-знакам: по степени однородности и степени автономности.
По степени однородности распределенные базы данных классифи-цируют на гомогенные (однородные) и гетерогенные (неоднородные).
Гомогенная распределенная система баз данных – это такая сис-тема, в которой каждый узел имеет СУБД одного и того же типа.
Гетерогенная распределенная система баз данных – это система, объединяющая несколько различных типов баз данных.
По степени автономности РБД классифицируют на базы данных с полным отсутствием локальной автономности и федеративные.
Распределенная СУБД с полным отсутствием локальной ав-тономности имеет единую концептуальную схему данных, единый центр обработки запросов и транзакций, где части единой базы данных распределены по разным компьютерам.
Распределенная СУБД, которая хоть и имеет некоторую общую схему данных, но составлена из полностью автономных СУБД, называ-ется федеративной. Федеративная СУБД может быть составлена из СУБД, поддерживающих различные модели данных, типы, ограничения и языки манипулирования данными.
Доступ пользователей к распределенной базе данных и админист-рирование осуществляются с помощью системы управления распре-деленной базой данных.
Распределенная СУБД (Distributed Database Management System – DDBMS) – совокупность программ, предназначенных для управления распределенной базой данных.
Основная задача распределенной СУБД состоит в обеспечении средств интеграции локальных баз данных, располагающихся в различ-ных узлах компьютерной сети, чтобы пользователь работал со всеми локальными базами как с единой базой данных.
Впервые задача об исследовании основ и принципов создания и функционирования распределенных систем была поставлена извест-ным специалистом в области баз данных К. Дейтом (1987).
К. Дейт сформулировал 12 требований к распределенной базе дан-ных:
1. Локальная автономия. Означает, что управление данными на каждом из узлов распределенной системы выполняется локаль-но.
2. Независимость узлов. Предполагает, что все узлы равноправ-ны и независимы, а расположенные на них базы являются рав-ноправными поставщиками данных в общее пространство дан-ных. База данных на каждом из узлов включает полный собст-венный словарь данных и полностью защищена от несанкцио-нированного доступа.
3. Непрерывность операций. Это возможность непрерывного дос-тупа к данным в рамках распределенной базы данных вне зави-
176
симости от их расположения и вне зависимости от операций, выполняемых на локальных узлах.
4. Прозрачность расположения. Пользователь, обращающийся к базе данных, ничего не должен знать о реальном, физическом размещении данных в узлах информационной системы.
5. Прозрачная фрагментация. Это требование определяется как возможность распределенного (то есть на различных узлах) размещения данных, логически представляющих собой единое целое.
6. Независимое тиражирование. Предполагает перенос измене-ний объектов исходной базы данных в базы, расположенные на других узлах распределенной системы.
7. Обработка распределенных запросов. Заключается в возмож-ности выполнения операций выборки данных из распределен-ной базы данных посредством запросов на языке SQL.
8. Обработка распределенных транзакций. Предполагает выпол-нение операций обновления распределенной базы данных, не нарушающих целостность и согласованность данных.
9. Независимость от оборудования. Означает, что в качестве уз-лов распределенной системы могут выступать компьютеры лю-бых моделей и производителей.
10. Независимость от операционных систем. Допускает многооб-разие операционных систем, управляющих узлами распреде-ленной системы.
11. Прозрачность сети. Трактуется как возможность использова-ния в распределенной системе любых сетевых протоколов.
12. Независимость от баз данных. Это требование означает, что в распределенной системе могут использоваться СУБД различ-ных производителей, и возможны операции поиска и обновле-ния в базах данных различных моделей и форматов.
Распределенные базы данных характеризуются следующими пре-имуществами:
- разделяемость и локальная автономия; - управление распределенными данными на разных уровнях про-
зрачности; - увеличение стабильности и надежности системы; - увеличение производительности системы; - увеличение гибкости реорганизации за счет модульности
системы. Однако распределенные базы данных не лишены и некоторых не-
достатков: - повышение сложности; - увеличение сложности и срока разработки; - усложнение контроля за целостностью данных; - усложнение контроля за безопасностью и секретностью данных.
177
14.3 Хранилища данных. Технологии обработки хранилищ данных
Для повседневной деятельности предприятия требуются оператив-ные данные, являющиеся результатом обработки событий, сопутст-вующих протеканию бизнес-процессов (прием и увольнение сотрудни-ков, ведение табеля учета рабочего времени, поставка товаров и т.д.). Реляционные СУБД проектировались и используются именно для такой задачи – для поиска информации по регламентированным запросам с ориентацией на оперативную (транзакционную) обработку данных. Сис-темы такого типа называются системами оперативной обработки транзакций или OLTP-системами (On-Line Transaction Processing – оперативная обработка транзакций или выполнение транзакций в ре-жиме реального времени).
Сегодня для эффективного функционирования предприятия в ры-ночной обстановке требуются корпоративные решения, принятые на основании анализа данных всего предприятия. Для этого необходимы аналитические системы, позволяющие:
- анализировать разнородную информацию во временном аспекте; - формировать произвольные аналитические запросы к системе,
использующие не детальные, а обобщенные (агрегированные) данные;
- интегрировать данные из различных источников; - обрабатывать данные, имеющие неограниченный объем. Применение технологий баз данных, предназначенных для обслу-
живания повседневной деятельности предприятия, не дает желаемого результата.
Для решения приведенных выше задач анализа данных была пред-ложена и разработана концепция хранилищ данных или информацион-ных хранилищ. Основоположником этой концепции считают Б. Инмона (США).
Хранилище данных (Data warehouse) – это предметно-ориентированное, интегрированное, привязанное ко времени и неизме-няемое собрание данных для поддержки процесса принятия управ-ляющих решений.
Согласно определению, данные, содержащиеся в информационном хранилище, должны обладать следующими свойствами:
- предметная ориентированность обеспечивает организацию данных вокруг существенных аспектов деятельности предприятия (товар, покупатель, продажа и т.д.), отражающих предметную об-ласть, а не приложений, оперирующих данными;
- интегрированность означает, что данные, загружаемые в хра-нилище из различных источников, должны приводиться к общему виду (синтаксическому, семантическому) и интегрироваться в це-лостную структуру, отвечающую целям анализа данных.
178
- привязка ко времени требует расположения данных в хранилище в порядке их поступления;
- неизменяемость определяется свойством пополнения хранилища новыми данными из различных источников. Данные в информаци-онных хранилищах не обновляются и не изменяются.
Основное назначение информационного хранилища – информаци-онная поддержка принятия решений, а не оперативная обработка дан-ных, а именно:
- своевременное обеспечение аналитиков всей информацией, не-обходимой для выработки решений;
- создание интегрированного источника данных, предоставляющего удобный доступ к разнородной информации и гарантирующего получение одинаковых ответов на одинаковые запросы из различ-ных аналитических подсистем.
Технология информационного хранилища заключается в том, что все необходимые предприятию для анализа данные собираются из различных источников: локальных баз функциональных подсистем предприятия (баз бухгалтерского учета, финансового учета, кадрового учета и т.д.); закрытых серверов, внешних систем (Интернет, базы дан-ных поставщиков и т.д.). Далее поступившие оперативные данные очи-щаются (устраняется ненужная для анализа информация), преобразо-вываются в единый формат, интегрируются и складываются в храни-лище. Затем данные подготавливаются с использованием средств пе-реноса и трансформации данных для анализа, который реализуется посредством технологий доступа и анализа данных.
Важнейшим элементом хранилища являются метаданные, т.е. дан-ные о структуре, размещении, трансформации данных. Метаданные могут быть востребованы как любыми процессами хранилища, так и пользователями.
Существуют следующие типы хранилищ: - хранилище детальных данных – является общим для многих под-
разделений корпорации. Для крупных корпораций возможно соз-дание многочисленных хранилищ (мультихранилищ) детальных данных;
- витрины данных – небольшие хранилища, в которых отделы со-бирают данные для своих целей. Витрины данных можно считать хранилищами в миниатюре.
Для данных из различных областей существуют свои хранилища данных:
- финансовые хранилища данных; - хранилища данных в области страхования; - для управления людскими ресурсами; - в области телекоммуникаций; - глобальные хранилища данных; - хранилища с возможностями DATA Mining и т.п.
179
Информационное хранилище только предоставляет данные в виде, удобном для анализа. Для выполнения анализа данных нужны соответ-ствующие технологии.
Выделяют следующие основные технологии поддержки принятия управленческих решений на основе накопленной информации:
- OLAP-технологии; - технологии интеллектуального анализа данных. Технологии OLAP (On-line Analytical Processing – интерактивная
аналитическая обработка данных) – это технологии, ориентированные на область агрегированных показателей.
Технологии OLAP представляют собой инструмент для анализа больших объемов данных (нерегламентируемые запросы) в режиме реального времени. Эти технологии позволяют получить содержатель-ную информацию – знания из данных. Вся работа происходит в терми-нах предметной области.
Технология OLAP базируется на концепции многомерного представ-ления данных – в виде многомерных кубов (гиперкубов). Осями много-мерной системы координат служат атрибуты анализируемого бизнес-процесса – измерения. В ячейках гиперкуба находятся данные, количе-ственно характеризующие бизнес-процесс – меры. Мера может быть определена как переменная, формула. В отличие от измерений не все меры имеют реальные значения.
На рисунке 14.1 в качестве мер в трехмерном кубе использованы объемы продаж, в качестве измерений – Время, Товар и Фирма. Изме-рения показаны на определенных уровнях агрегирования: товары груп-пируются по категориям, фирмы – по городам, данные о времени про-даж – по кварталам.
Рисунок 14.1 – Пример OLAP-куба
Для анализа, как правило, важны не все возможные комбинации значений измерений, а некоторое подмножество гиперкуба, получаю-щееся в результате фиксации значения одного или более измерений – срез. Если в примере, приведенном на рисунке 14.1, мы ограничим зна-чение измерения Товар компьютерами, то получим срез в виде двумер-ной таблицы, содержащей данные об объемах продаж компьютеров за четыре квартала в разных городах.
Технологии интеллектуального анализа данных – это технологии Data Mining (добыча, извлечение данных), предназначенные для поиска
180
скрытых функциональных и логических закономерностей, тенденций в накопленной информации.
Data Mining – это совокупность большого числа различных методов или их комбинаций: методов статистического анализа, методов, основанных на нечетких множествах, методов нейронных сетей, генетических алгоритмов, деревьев решений и некоторых других. В совокупности они называются методами интеллектуального анализа данных. Выбор методов зависит от типа имеющихся данных и от того, какую информацию нужно получить.
Технология Data Mining позволяет выявить следующие стандартные закономерности:
- ассоциация – имеет место в том случае, если несколько событий связаны друг с другом;
- последовательность – если существует цепочка связанных во времени событий;
- классификация – выявление признаков, характеризующих группу, к которой принадлежит тот или иной объект;
- кластеризация – выделение групп (кластеров) элементов, схожих между собой;
- прогнозирование. Технологии интеллектуального анализа данных находят применение
в задачах автоматического нахождения взаимосвязей и нелинейных зависимостей в данных; выявления разного рода аномалий в данных, отклонений от общей закономерности; прогнозирования развития объ-ектов различной природы на основе хранящейся ретроспективной ин-формации об их состоянии в прошлом.
Литература 1. Корнеев, В.В. Базы данных. Интеллектуальная обработка инфор-
мации / В.В. Корнеев, А.Ф. Гареев, С.В. Васютин, В.В. Райх. – М.: Нолидж, 2000. – 352 с.
2. Змитрович, А.И. Базы данных и знаний: учеб. пособие / А.И. Змит-рович, В.В. Апанасович, В.В. Скакун. – Минск: Изд. центр БГУ, 2007. – 364 с.
3. Малыхина, М.П. Базы данных: основы, проектирование, использо-вание / М.П. Малыхина. – СПб.: БХВ-Петербург, 2004. – 512 с.
4. Роланд, Ф.Д.Основные концепции баз данных / Ф.Д. Роланд. – М.: Изд. дом «Вильямс», 2002. – 256 с.
5. Экономическая информатика / под ред, П.В. Конюховского и Д.Н. Колесова. – СПб.: Питер, 2000. – 560 с.
181
ТЕСТ ДЛЯ САМОКОНТРОЛЯ 1. Если серверная СУБД обеспечивает интерпретацию запроса, его
выполнение, формирование результата запроса и пересылку по сети на клиентский компьютер, то говорят об архитектуре ... a) файл-сервер b) клиент-сервер c) сервера баз данных d) файл-клиент
2. По разделению функций между клиентом и сервером выделяют сле-дующие модели архитектуры клиент-сервер: a) модель доступа к удаленным данным b) модель сервера баз данных c) модель сервера приложений d) модель сервера клиентов
3. Если на компьютере-клиенте располагаются части приложения, реа-лизующие только функции представления, а прикладные функции размещены на стороне сервера, то говорят о модели ... a) доступа к удаленным данным b) сервера баз данных c) сервера приложений d) сервера клиентов
4. Совокупность логически взаимосвязанных баз данных, распределен-ных в компьютерной сети, называют ... a) централизованной базой данных b) распределенной базой данных c) графические и фактографические d) документальные и текстовые
5. Распределенные базы данных классифицируют на: a) иерархические и реляционные b) хранилища данных и гетерогенные c) гомогенные и гетерогенные d) сетевые и гомогенные e) объектно-реляционные и объектно-ориентированные
6. Предметная ориентированность данных хранилища означает, что ... a) данные в хранилище расположены в порядке их поступления b) данные очищены от ошибок и избыточности и представлены
в виде, необходимом пользователю c) данные в хранилище организованы вокруг существенных ас-
пектов деятельности предприятия d) данные, попав в хранилище, не удаляются, не обновляются,
а пополняются новыми данными из оперативных систем e) данные, попав в хранилище, заменяют старые данные
182
7. Неизменяемость данных хранилища означает, что ... a) данные в хранилище расположены в порядке их поступления b) данные очищены от ошибок и избыточности и предоставлены в
виде, необходимом пользователю c) данные в хранилище организованы вокруг существенных ас-
пектов деятельности предприятия d) данные, попав в хранилище, не удаляются, не обновляются, а
пополняются новыми данными из оперативных систем e) данные, попав в хранилище, заменяют старые данные
8. Интегрированность данных хранилища означает, что ... a) данные в хранилище расположены в порядке их поступления b) данные очищены от ошибок и избыточности и предоставлены в
виде, необходимом пользователю c) данные в хранилище организованы вокруг существенных ас-
пектов деятельности предприятия d) данные, попав в хранилище, не удаляются, не обновляются, а
пополняются новыми данными из оперативных систем e) данные, попав в хранилище, заменяют старые данные
9. Данные, содержащиеся в информационном хранилище, обладают следующими свойствами: a) предметная ориентированность b) интегрированность c) привязка ко времени d) неизменяемость e) масштабируемость
10. Технологии Data Mining – это технологии, предназначенные для: a) поиска скрытых функциональных и логических закономерно-
стей b) для анализа больших объемов данных в режиме реального
времени c) оперативной обработки данных d) работы с базой данных
11. Технологии OLAP – это технологии, предназначенные для: a) поиска скрытых функциональных и логических закономерно-
стей b) для анализа больших объемов данных в режиме реального
времени. c) оперативной обработки данных d) работы с базой данных
183
ПРИМЕРНЫЕ ТЕСТОВЫЕ ЗАДАНИЯ К ПРАКТИЧЕСКОЙ ЧАСТИ ЭКЗАМЕНА
1. Определите, какой из указанных в окне запросов является запро-сом на удаление.
a) ВсегоКвитанции b) ВсегоОплачено c) ИЗМЕНЕНИЕ d) ОПЛАТЫ e) УвеличениеСсуды
2. Для поля Фамилия определите Тип данных и Размер поля
a) Тип данных – Текстовый, Размер поля – 15 b) Тип данных – Поле МЕМО, Размер поля – 7 c) Тип данных – Текстовый, Размер поля – 5 d) Тип данных – Текстовый, Размер поля – 60 e) Тип данных – Поле объекта OLE, Размер поля – 7
3. Какие форматы поля имеет логический тип данных? (Три ответа) a) Да/Нет b) Есть/Нет c) Истина/Ложь d) Чет/Нечет e) Вкл/Выкл
Ключевое
184
4. Укажите тип данных для поля со следующим свойством.
a) Числовой b) Текстовый c) Счетчик d) Дата/время e) Денежный
5. Запрос НОВАЯ ЦЕНА предназначен для
a) изменения значения поля УдельныйВес из таблицы
КОЭФФИЦИЕНТ СОРТНОСТИ на 20 или 100 для записей с це-ной 200000.
b) изменения значения поля Цена из таблицы ПРОДУКЦИЯ на 200000 для записей с удельным весом 20 или 100.
c) изменения значения поля УдельныйВес из таблицы ПРОДУКЦИЯ на 20 или 100 для записей с ценой 200000.
d) изменения значения поля Цена из таблицы КОЭФФИЦИЕНТ СОРТНОСТИ на 200000 для записей с удельным весом от 20 до 100.
e) изменения значения поля Цена из таблицы ПРОДУКЦИЯ на 200000 для записей с удельным весом от 20 до 100.
6. Какое выражение должно быть создано для отбора записей о зака-зах, сделанных с 21 по 23 декабря 2006 года? a) Like “[21,22,23].12.2006” b) Like “21&22&23.12.2006” c) Like “2[1-3].12.2006” d) Like “*[1-3].12.2006”
185
7. В отчете на основе таблицы Квитанции необходимо получить ито-ги по оплаченным суммам для каждого договора. Для этого нужно
a) группировать данные по полю НомерДоговора и в примечании
группы поместить выражение =Sum([ОплаченнаяСумма]) b) группировать данные по полю НомерДоговора и в примечании
группы поместить выражение =Итого([ОплаченаяCумма]) c) группировать данные по полю НомерДоговора и в примечании
отчета поместить выражение =Sum([ОплаченнаяСумма]) d) группировать данные по полю НомерДоговора и в области
данных поместить выражение =Sum([ОплаченнаяСумма]) e) группировать данные по полю ОплаченнаяСумма и в примеча-
нии группы поместить выражение =Sum([НомерДоговора]) 8. Какие записи будут отобраны в результате выполнения запроса?
a) Записи с фамилиями, которые начинаются с любой буквы,
кроме "T" b) Записи с фамилиями, которые не содержат букву “Т” c) Записи с фамилиями, которые начинаются на букву “Т” d) Записи с фамилиями, которые содержат букву “Т” e) Записи с фамилиями, которые заканчиваются буквой “Т”
Ключевое
186
9. В результате выполнения запроса будут отобраны записи
a) с фамилиями, начинающимися на букву «А» и заканчивающи-
мися на букву «К» b) с фамилиями, начинающимися с букв от «А» до «К» включи-
тельно c) с фамилиями, которые начинаются на букву «А» и содержат
букву «К» d) с фамилиями, содержащими буквы из диапазона от «А» до «К»
включительно e) с фамилиями, начинающимися на букву «А» или «К»
10. Вычисляемое поле, созданное в отчете, выводит
a) общее количество дней пребывания в стране по всем маршру-
там b) количество маршрутов по стране c) количество маршрутов по всем станам d) количество стран, в которые предлагаются маршруты e) количество гостиниц в стране
187
Учебное издание
Гедранович Валентина Васильевна Змеева Юлия Викторовна
Тонкович Ирина Николаевна
Технологии баз данных и знаний
Учебно-методический комплекс
Редактор Е.М. Бобровская Верстка авторов
188
Подписано в печать 04.02.2013. Формат 60 х 84 1 / 16 Гарнитура «Ариал». Бумага офсетная
Отпечатано способом ризографии Уч.-изд. л. 9; усл. печ. л. 10,5.
Заказ 7. Тираж 500.
Изд-во Минского института управления ЛИ № 02330/0150388 от 08.12.2008 г.
220102, г. Минск, ул. Лазо, 12.
Отпечатано способом ризографии Отдел ксерокопии Минского института управления
220102, г. Минск, ул. Лазо, 16.