Академический Документы
Профессиональный Документы
Культура Документы
Создание и обработка
баз данных
Конспект лекций
Одесса 2014
УДК 004.43
План УМИ 2014 г.
Рецензент
Ю.В. Флейта, к.т.н., доцент кафедры Компьютерно-интегрированных
технологических процессов и производств ОНАС им. А.С. Попова
3. Классификации СУБД
По используемой модели данных различают иерархические, сетевые, реля-
ционные, объектно-ориентированные и объектно-реляционные СУБД (см. п. 4).
По степени распределённости различают локальные (все части локальной
СУБД размещаются на одном компьютере) и распределённые СУБД (части
СУБД могут размещаться на двух и более компьютерах).
По способу доступа к БД различают файл-серверные, клиент-серверные и
встраиваемые СУБД.
В файл-серверных СУБД файлы данных располагаются централизованно
на файл-сервере. СУБД располагается на каждом клиентском компьютере (ра-
бочей станции). Доступ СУБД к данным осуществляется через локальную сеть.
Синхронизация чтений и обновлений осуществляется посредством файловых
блокировок. Примерами таких СУБД являются Microsoft Access, Paradox,
dBase, FoxPro, Visual FoxPro. Преимуществом этой архитектуры является низ-
кая нагрузка на процессор файлового сервера. К недостаткам можно отне-
сти: 1) потенциально высокую загрузку локальной сети, поскольку возникает
необходимость передавать по сети большие объемы информации;
2) затруднённость или невозможность централизованного управления, органи-
зации контроля доступа и синхронизации работы разных пользователей;
3) затруднённость или невозможность обеспечения таких важных характери-
стик как надёжность, доступность и безопасность. Поэтому, чаще всего, работа
с такими БД производится обычно в однопользовательском режиме или в систе-
мах с низкой интенсивностью обработки данных и низкими пиковыми нагрузка-
ми на БД. На данный момент файл-серверная технология считается устаревшей,
а её использование в крупных информационных системах – недостатком.
При клиент-серверной архитектуре СУБД вместе с БД располагается на
удаленном сервере, а приложения, работающие с этой БД, располагаются на
6 Лекция 1. ТЕОРИЯ ПРОЕКТИРОВАНИЯ БАЗ ДАННЫХ
4. Модели данных
Логическую структуру данных, хранимых в БД, называют моделью пред-
ставления данных. К основным моделям представления данных (моделям
данных) относятся следующие: иерархические, сетевые, реляционные, объект-
но-ориентированные и объектно-реляционные.
Иерархическая модель (англ. hierarchical Уровень 1
data model) представляет собой древовидный Уровень 2
граф, в котором каждый из элементов связан Уровень 3
только с одним стоящим выше элементом (ро-
дителем, предком), но в то же время на него могут ссылаться один или не-
сколько стоящих ниже элементов (потомков). Все экземпляры данного типа по-
томка с общим экземпляром типа предка называют близнецами. Для такой БД
определен полный порядок обхода – сверху-вниз и слева-направо.
Для описания структуры иерархической БД при программировании ис-
пользуется тип данных "дерево" (рис. 1.1). Для организации физического раз-
мещения иерархических данных в памяти компьютера, как правило, использу-
ются динамические структуры-списки.
Достоинствам иерархической модели данных является быстрый доступ к
данным, так как заранее известны все вершины и все ключи к доступу информа-
ции.
Лекция 1. ТЕОРИЯ ПРОЕКТИРОВАНИЯ БАЗ ДАННЫХ 7
Организация
Отделы Филиалы
Компьютеры Факсы
Покупатель 1 Покупатель 2
ОРГАНИЗАЦИИ
БАНКИ
Организация 1 Банк 2
Банк 1
Работа
СОТРУДНИКИ Сотрудник 5
Накопления
Сотрудник 4 Счет 1
Сотрудник 3
Сотрудник 2
СЧЕТА
Сотрудник 1
5. Этапы проектирования БД
При создании БД наиболее важными являются задачи, связанные с созда-
нием правильной логической структуры данных, обеспечивающей решение
всего набора требуемых задач, что предусматривает комплексный анализ всех
факторов, влияющих на формирование и обработку данных. Таким образом,
проектирование является важнейшей стадией при создании БД, так как именно
на этом этапе принимаются очень важные стратегические решения, влияющие
на весь процесс создания эффективной БД. Разработка эффективной БД являет-
ся достаточно сложной задачей, так как зачастую к ней предъявляется много
противоречивых требований. Задача проектировщика состоит в учете всех тре-
бований с целью создания оптимальной БД.
Естественно, что проект БД надо начинать с анализа предметной области и
выявления требований к ней отдельных пользователей (сотрудников организа-
ции, для которых создается БД). Затем необходимо выполнить следующие эта-
пы проектирования.
1. Сбор, анализ и подготовка исходной информации об объектах конкрет-
ной предметной области для их преобразования в таблицы БД.
2. Разработка оптимального состава и структуры таблиц БД. При этом не-
обходимо проанализировать, какие из сведений могут оказаться второстепен-
ными и исключить их из списка.
3. Проведение нормализации таблиц, определение ключевых полей и уста-
новление логических связей между таблицами.
4. Выбор критериев поддержания целостности данных по значению.
5. Разработка необходимого числа запросов для реализации поставленной
задачи.
Лекция 1. ТЕОРИЯ ПРОЕКТИРОВАНИЯ БАЗ ДАННЫХ 13
ключом может быть атрибут Табельный номер, поскольку его значение уни-
кально для каждого работника предприятия. Подобно этому поле Номер пас-
порта или Идентификационный номер налогоплательщика, однозначно опреде-
ляет характеристики любого физического лица при составлении соответствую-
щих таблиц БД для отделов кадров или бухгалтерии предприятия.
Отношение может содержать несколько потенциальных ключей. Всегда
один из ключей объявляется первичным, его значения не могут обновляться.
Все остальные возможные ключи отношения называются потенциальными
(альтернативными) ключами. Неуникальные ключи ещё называют вторичными.
Выбор ключевых полей не всегда является простой и очевидной задачей,
особенно для таблиц с большим количеством полей. Удобным вариантом соз-
дания ключа является использование для него поля типа "счетчик", для которо-
го СУБД предусматривает автоматическое увеличение на единицу каждого но-
вого значения и обеспечивает поддержание уникальности значений ключевого
поля.
При определении ключа следует придерживаться следующих правил:
– ключ должен быть уникальным (значения ключевого поля никогда не
повторяются). У составного ключа значения отдельных полей (но не всех одно-
временно) могут повторяться;
– ключ должен быть достаточным и неизбыточным, т. е. не содержать по-
ля, которые можно удалить без нарушения уникальности ключа;
– в состав ключа не могут входить поля некоторых типов, например: дей-
ствительные числа, включая денежный тип и тип дата-время, встраиваемые
OLE-поля или поля комментариев. Нецелесообразно также использовать ключи
с длинными текстовыми значениями.
Индекс (англ. index) – средство, обеспечивающее быстрый доступ к стро-
кам таблицы на основе значений одного или нескольких столбцов. Простой ин-
декс состоит из одного поля, а составной (сложный) – из нескольких полей.
СУБД пользуется индексом также, как Вы пользуетесь предметным указателем
книги. В индексе хранятся значения данных и указатели на строки, где эти дан-
ные встречаются. Значения данных в индексе располагаются в убывающем или
возрастающем порядке, чтобы СУБД могла быстро найти требуемое значение.
Индексы могут быть первичными и вторичными. Например, первичным
индексом могут служить поля, выбранные при создании БД как ключевые. А
вторичные индексы могут создаваться из других полей как в процессе создания
самой БД, так и в процессе работы с нею. Как правило, индексы хранятся в ин-
дексных файлах отдельно от табличных файлов. Отсюда и повышение скорости
выполнения операций в индексированных таблицах, так как основная часть ра-
боты производится с небольшими индексными файлами, а не с самими табли-
цами.
Внешний ключ (англ. foreign key) – неключевое поле подчиненной (до-
черней) таблицы, которое является главным ключом в главной (родительской)
таблице, и по этому полю эти таблицы связываются. Реляционная модель на-
кладывает на внешние ключи ограничение для обеспечения целостности дан-
ных, называемое ссылочной целостностью. Это означает, что каждому значе-
16 Лекция 2. РЕЛЯЦИОННЫЕ БАЗЫ ДАННЫХ
вания таблиц в связи участвуют оба ключевых поля, а сами таблицы, по сути,
являются равноправными. На практике связи вида 1:1 редки, так как удобнее
хранить одну таблицу вместо двух. Но иногда необходимо хранить две таблицы
вместо одной. Например, необходимо разделить секретную и несекретную ин-
формацию о каком-либо объекте.
2) Связь ОДИН-КО-МНОГИМ (1:М или 1:) характеризуется тем, что ка-
ждой записи главной таблицы соответствует несколько записей подчиненной
таблицы. Например, у каждого клиента несколько заказов, в одной группе
множество студентов, каждый студент изучает множество предметов, в одном
доме проживает несколько жильцов, а каждая квартира может пустовать, в ней
может жить один или несколько жильцов.
3) При связи МНОГИЕ-К-ОДНОМУ (М:1 или :1) одной или нескольким
записям основной таблицы ставится в соответствие одна запись подчиненной
таблицы. Этот тип связи можно увидеть из связи 1:М, если посмотреть со сто-
роны подчиненной таблицы на главную. Например, множество студентов со-
ставляют одну группу.
Вообще связи 1:М и М:1 зависят только от того, какая из таблиц главная, а
какая подчиненная. Данные типы связи являются самыми распространёнными.
4) Связь МНОГИЕ-КО-МНОГИМ (М:N) возникает в тех случаях, когда
одной записи одной таблицы может соответствовать несколько записей другой
таблицы и наоборот: когда одной записи второй таблицы может соответство-
вать несколько записей первой таблицы. Например, многие пациенты поликли-
ники могут пройти медосмотр у многих врачей, на предприятии есть работни-
ки, но и один работник может работать на двух предприятиях, или же каждый
преподаватель вуза может обучать нескольких студентов, в то же время каждый
студент может обучаться у нескольких преподавателей. Еще одним примером
такого вида связи может служить связь между таблицами Товары и Клиенты:
каждый клиент может приобрести несколько товаров, а каждый товар (по на-
именованию) может быть приобретён (или заказан) несколькими клиентами.
Этот вид связи в реляционных БД не поддерживается в явном виде. Чтобы уст-
ранить неоднозначность, от такого типа связи следует избавляться путем вве-
дения дополнительной таблицы (декомпозиции таблиц) и замены двумя связя-
ми один-ко-многим.
Контроль целостности перечисленных видов связей обычно означает ана-
лиз содержимого двух таблиц на соблюдении следующих правил:
– каждой записи основной таблицы соответствует нуль или более записей
дополнительной таблицы;
– в дополнительной таблице нет записей, которые не имеют родительских
записей в основной таблице;
– каждая запись дополнительной таблицы имеет только одну родитель-
скую запись основной таблицы.
Основные операции над данными (ввод, модификация и удаление запи-
сей) должны подчиняться правилам целостности.
Ввод. Логичнее сначала вводить новые записи в основную таблицу, а затем
заполнять подчиненные таблицы.
18 Лекция 2. РЕЛЯЦИОННЫЕ БАЗЫ ДАННЫХ
Сотрудники_Отделы
Номер- Фами- Номер- Проекты
Телефон Номер-
Сотрудника лия Отдела 1 Проект
1 Иванов 1 11-22-33 Проекта
2 Петров 1 11-22-33 1 Космос
3 Сидоров 2 33-22-11 2 Климат
1 Задания
Номер- Номер- Номер-
Сотрудника Проекта Задания
1 1 1
1 2 1
2 1 2
3 1 3
3 2 2
Рисунок 2.2 – Таблицы, нормализованные до 2НФ
Теперь фамилии сотрудников и наименования проектов хранятся без избы-
точности. Если сотрудник сменит фамилию или проект сменит наименование,
то такое обновление будет произведено в одном месте. А если по проекту будут
временно прекращены работы, но потребуется, чтобы сам проект сохранился,
то для этого проекта просто удалятся соответствующие кортежи в отношении
Задания, а данные о самом проекте и данные о сотрудниках, участвовавших в
проекте, останутся в отношениях Проекты и Сотрудники_Отделы. Тем не ме-
нее часть противоречий разрешить не удалось, поскольку осталась избыточ-
ность данных, порожденная тем, что в отношении Сотрудники_Отделы хра-
нится разнородная информация (о сотрудниках и об отделах). Одни и те же но-
мера телефонов повторяются во многих кортежах отношения. Поэтому если в
отделе меняется номер телефона, то такие изменения необходимо одновремен-
но выполнить во всех местах, где этот номер телефона встречается, иначе от-
ношение станет некорректным. Таким образом, обновление БД одним действи-
ем реализовать невозможно. С другой стороны при удалении некоторых дан-
ных может произойти потеря другой информации. Например, если удалить со-
трудника Сидорова, то будет потеряна информация о том, что в отделе номер 2
находится телефон 33-22-11. Все эти трудности будут устранены, если произве-
сти декомпозицию отношения Сотрудники_Отделы.
Третья нормальная форма (3НФ, 3NF) предусматривает устранение в
таблице любых зависимостей полей не от первичного ключа. Таблица находит-
ся в 3НФ, если она удовлетворяет определению 2НФ, все ее неключевые поля
взаимно независимы и полностью зависят от первичного ключа.
Пока отношение Сотрудники_Отделы не находится в 3НФ, так как имеет-
ся функциональная зависимость неключевых атрибутов (зависимость номера
телефона от номера отдела). Для того чтобы устранить зависимость неключе-
вых атрибутов, нужно произвести декомпозицию этого отношения на два от-
ношения Сотрудники и Отделы (рис. 2.3). При этом те неключевые поля, кото-
рые являются зависимыми, выносятся в отдельное отношение.
Лекция 2. РЕЛЯЦИОННЫЕ БАЗЫ ДАННЫХ 21
Отделы
1 Номер- Телефон
Отдела
1 11-22-33
Сотрудники 2 33-22-11
Номер- Номер- Проекты
Фамилия 1 Номер-
Сотрудника Отдела Проект
1 Иванов 1 Проекта
2 Петров 1 1 Космос
3 Сидоров 2 2 Климат
1
Задания
Номер- Номер- Номер-
Сотрудника Проекта Задания
1 1 1
1 2 1
2 1 2
3 1 3
3 2 2
Рисунок 2.3 – Таблицы, нормализованные до 3НФ
2. Сортировка данных
Сортировка данных выделенных ячеек таблицы осуществляется коман-
дой Сортировка, которая находится на вкладке Данные в группе Сортировка и
фильтр (в Excel 2003 – команда Данные Сортировка). Эта команда позволя-
ет переставлять записи в определенном порядке на основании значений одного
или нескольких столбцов или переставлять столбцы на основании значений в
строках (рис. 3.1).
3. Использование фильтров
Фильтрация списка – это отбор только тех записей списка, которые
удовлетворяют заданному условию. В отфильтрованном списке будут отобра-
жены строки, отвечающие условиям отбора. Все остальные строки будут скры-
ты.
В Excel для фильтрации списков можно использовать два средства: Авто-
фильтр для простых условий отбора и Расширенный фильтр для более слож-
ных условий отбора. Условия автофильтрования можно задавать для одного
или нескольких полей, а с помощью расширенного фильтра допускается зада-
вать вычисляемые условия (например, можно вывести на экран список только
тех сотрудников, у которых оклад хотя бы на 25% выше среднего). В отличие
от сортировки при фильтрации порядок записей в списке не изменяется. При
фильтрации строки, неудовлетворяющие условию, будут временно скрыты, а
слева в столбце с номерами отфильтрованных строк будут видны прежние но-
мера элементов, которые они имели в исходном списке. Строки, отобранные
при фильтрации, можно редактировать, форматировать и выводить на печать, а
также создавать на их основе диаграммы, не изменяя порядок строк и не пере-
мещая их.
26 Лекция 3. СРЕДСТВА УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ В EXCEL
4. Промежуточные итоги
Промежуточный итог – операция Excel, которая может осуществлять вы-
вод как промежуточных, так и общих итогов в списке. Команда Промежуточ-
ный итог является средством быстрого просмотра данных на листе с одновре-
менным подведением итогов по различным группам, которые автоматически
объединяются на основе сходства признаков.
Перед формированием промежуточных итогов список необходимо обяза-
тельно отсортировать по полю, по которому будут подводиться итоги. Это по-
зволит корректно группировать строки при подведении итогов.
Команда Промежуточный итог находится на вкладке Данные в группе
Структура (в версии Excel 2003 команда Данные Итоги). Эта команда вы-
полнит открытие диалогового окна Промежуточные итоги.
Предположим, требуется вычислить суммарную стоимость товаров, про-
данных каждым продавцом. Для этого необходимо выполнить такие действия.
1) Сначала выполнить сортировку записей таблицы по полю Имя продавца
(в алфавитном порядке).
2) После того как список отсортирован, надо выделить все ячейки таблицы
и выполнить команду Данные Итоги.
3) В открывшемся диалоговом окне Промежуточные итоги надо выбрать
значения из предложенных списков:
– При каждом изменении в: – Имя (отсортированный столбец, изменение
значений в котором приведет к пересчету
итоговых значений);
– Операция: – Сумма (или другую итоговую операцию);
– Добавить итоги по: – Стоимость (один или несколько столбцов,
по которым должен производиться подсчет
итоговых значений.
Кроме этого, надо проследить, чтобы
в нижней части окна были установлены
флажки Заменить текущие итоги и
Итоги под данными, и нажать кнопку
OK.
В результате выполнения этой ко-
манды список отобразится в виде струк-
туры. На рис. 3.5 представлен список с
развернутыми записями в итоговых
группах.
Лекция 3. СРЕДСТВА УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ В EXCEL 31
После этого на новом листе отобразится макет сводной таблицы (рис. 3.6).
Работать с ним несложно – надо перетаскивать мышью названия столбцов (по-
лей) из окна Список полей сводной таблицы в области строк, столбцов, страниц
и данных макета. Единственная тонкость – надо делать как можно точнее: поле
Имя – в область столбцов, поле Наименование проданного товара – в область
строк, поле Количество – в область данных.
Таблица 3.1
Функции категории "Работа с базой данных"
Наименование
Описание
функции
Усредняет значения в столбце списка или базы данных,
ДСРЗНАЧ
удовлетворяющих заданным условиям
Подсчитывает количество ячеек в столбце списка или БД,
содержащих числа, удовлетворяющие заданным условиям.
БСЧЁТ
Примечание. Если аргумент "поле" опущен, то функция БСЧЁТ
подсчитывает количество записей в БД, отвечающих критериям
Подсчитывает количество непустых ячеек в столбце списка или
БД, которые удовлетворяют заданным условиям.
БСЧЁТА
Примечание. Если аргумент "поле" опущен, то функция БСЧЁТА
подсчитывает количество записей в БД, отвечающих критериям
Извлекает отдельное значение из столбца списка или БД,
которое удовлетворяет заданным условиям.
Примечание. Если ни одна из записей не удовлетворяет критерию,
БИЗВЛЕЧЬ то функция БИЗВЛЕЧЬ возвращает значение ошибки #ЗНАЧ!.
Если более чем одна запись удовлетворяет критерию, то
функция БИЗВЛЕЧЬ возвращает значение ошибки #ЧИСЛО!
Возвращает наибольшее число в столбце списка или БД,
ДМАКС
которое удовлетворяет заданным условиям
Возвращает наименьшее число в столбце списка или БД,
ДМИН
которое удовлетворяет заданным условиям
Перемножает значения в столбце списка или БД,
БДПРОИЗВЕД
которые удовлетворяют заданным условиям
Оценивает стандартное отклонение на основе выборки
ДСТАНДОТКЛ из генеральной совокупности, используя числа в столбце спи-
ска или БД, которые удовлетворяют заданным условиям
Вычисляет стандартное отклонение генеральной
ДСТАНДОТКЛП совокупности, используя числа в столбце списка или БД,
которые удовлетворяют заданным условиям
Суммирует числа в столбце списка или БД, которые
БДСУММ
удовлетворяют заданным условиям
Оценивает дисперсию генеральной совокупности по выборке,
БДДИСП используя числа в столбце списка или БД, которые
удовлетворяют заданным условиям
Вычисляет дисперсию генеральной совокупности, используя
БДДИСПП числа в столбце списка или БД, которые удовлетворяют
заданным условиям
Каждая из этих функций этой категории использует три аргумента:
1) база данных – это интервал ячеек, формирующих список базы данных.
Верхняя строка списка содержит названия всех столбцов;
2) поле – столбец таблицы, используемый функцией для вычислений. Этот
аргумент может быть задан числом – порядковым номером поля в таблице или
текстовым названием столбца в двойных кавычках;
Лекция 3. СРЕДСТВА УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ В EXCEL 37
= БДСУММ(A1:H15; 6; А17:В18)
Продемонстрируем специфику функции БСЧЕТ для вычисления количества
сделок по товарам с наименованиями Программное обеспечение и Клавиатура.
Для этого путем копирования надо сформировать соответствующее условие, на-
пример в ячейках Н17:Н19 (см. рис. 3.11). После этого можно подписать ячейку
Н20 и вставить в ячейку Н21 функцию БСЧЕТ, которая подсчитывает количество
числовых ячеек в указанном столбце по заданному критерию (рис. 3.13):
=БСЧЁТ(A1:H15; 4; H17:H19)
а) б)
Рисунок 4.6 – Список с возможными типами данных для поля таблицы:
а) список типов, выбираемых для поля в режиме Таблица;
б) список типов, выбираемых для поля в режиме Конструктор.
Другим способом выбора типа данных конструируемого поля является пе-
реход из режима Таблица в режим Конструктор. В этом режиме для каждого
поля можно выбрать свой тип данных (рис. 4.6, б).
Рассмотрим подробнее основные типы данных.
Текстовый тип используется для хранения таких данных, как имена и
адреса, а также для чисел, не требующих вычислений, таких как номера теле-
фонов, инвентарные номера или почтовые индексы. По умолчанию всем полям
таблицы в Access 2010 задаётся именно этот тип данных. В текстовом поле мо-
жет находиться до 255 знаков. По умолчанию устанавливается размер поля 50
знаков. Свойство Размер поля определяет максимальное количество знаков, ко-
торые можно ввести в текстовое поле. Для экономии общего объёма памяти при
использовании текстовых данных целесообразно для каждого поля задавать его
размер в символах.
Поле МЕМО – тип данных для текстовых полей с длиной более 255
символов. В поле MЕМО может находиться до 65 536 символов. Обычно ис-
пользуется для хранения абзацев текста: резюме, кратких описаний и т. п. При
Лекция 4. СУБД ACCESS. ОСОБЕННОСТИ СОЗДАНИЯ ТАБЛИЦ 49
При этом первым полем автоматически создаётся поле Код с типом дан-
ных Счётчик, которое предлагается использовать в качестве ключа.
3. Нажав по полю Щелкните для добавления, выбрать из открывшегося
списка (рис. 4.6, а) необходимый формат второго создаваемого поля Стаж –
– текстовое поле.
4. Заменить имя поля Поле1 на Стаж (в соответствии с табл. 4.1) с помо-
щью команды контекстного меню .
5. Подобным образом добавить еще одно поле с именем Надбавка и фор-
матом данных .
6. Заполнить созданную таблицу данными из табл. 4.1, в результате чего
заполненная таблица приобретет вид:
Рисунок 4.8 Вид окна конструктора таблицы Сотрудники после уточнения свойств полей
5. Для заполнения созданной таблицы надо перейти в режим таблицы, вос-
пользовавшись соответствующей командой контекстного меню или командой
Режим Режим таблицы на ленте инструментов. На сообщение с предложе-
нием сохранения таблицы нажать кнопку Да. Заполнить таблицу произвольны-
ми данными (не менее десяти записей), например такими:
, будет открыто окно для добавления таблиц при создании схемы дан-
ных. Нажимая на кнопку Добавить, надо поочередно вынести на поле Схема
данных все таблицы БД, после чего нажать кнопку Закрыть.
После этого в окне Схема данных появится связь, на одном конце которой будет
стоять единица, а на другом конце – знак : связь вида ОДИН-КО-МНОГИМ.
4. Для создания связи между таблицами Сотрудники и Анкеты надо вы-
полнить те же действия, но, в отличие от предыдущих, здесь будет создана
связь вида ОДИН-К-ОДНОМУ (см. п. 2 в лекции 2).
После этого Схема связей для рассматриваемого примера приобретет вид:
64 Лекция 4. СУБД ACCESS. ОСОБЕННОСТИ СОЗДАНИЯ ТАБЛИЦ
Если открыть этот запрос в режиме SQL командой Режим Режим SQL
запрос приобретет вид:
При желании, можно переключиться в режим SQL и увидеть, как этот за-
прос будет выглядеть в виде оператора SELECT.
Выбрать тот или иной тип запроса можно на вкладке Конструктор в груп-
пе Тип запроса.
После этого в окне переходов базы данных появится новый вид запроса
. При запуске этого запроса система сформирует со-
общение о подтверждении выполнения запроса, так как данные будут безвоз-
вратно удалены. После того, как будет нажата кнопка , появится
диалоговое окно для ввода фамилии как параметра удаления записи из БД.
С помощью команды Без подробностей или знаков минус (–) справа от на-
званий должностей или под названиями отделов можно скрыть детальные поля.
Лекция 5. ACCESS. СОЗДАНИЕ ФОРМ, ОТЧЕТОВ 85
14. Для того чтобы изменить подпись и формат данных того или иного по-
ля, например итогового поля Сумма Зарплата в области данных, надо выде-
лить это поле и выполнить команду Страница свойств, которая находится в
группе Сервис на вкладке Конструктор. Это приведет к открытию диалогового
окна Свойства, на вкладке Заголовки которого можно задать новое имя заго-
ловка поля, а на вкладке Формат выбрать способ сортировки, уточнить число-
вой формат данных поля (общий, денежный, фиксированный и др.), стиль и
86 Лекция 5. ACCESS. СОЗДАНИЕ ЗАПРОСОВ
15. Чтобы отобразить итоги в виде процента от общего итога, надо вы-
брать итоговое поле, а затем на вкладке Конструктор в группе Сервис выпол-
нить команду Форматы Процент от общего итога.
В уже готовую
сводную диаграмму
можно добавлять новые
поля из списка, сформи-
рованного при создании
88 Лекция 5. ACCESS. СОЗДАНИЕ ЗАПРОСОВ
Чтобы быстро создать форму, надо выбрать таблицу или запрос в области
навигации и на основе этого объекта быстро создать форму с помощью команды
Форма. Например, открыв запрос Зарплата (с надбавками) и нажав кнопку Фор-
ма, получим быстрое создание формы, которую сохраним с именем Зарплата.
Быстрым и удобным способом создания форм является использование
Мастера форм.
Самостоятельное создание формы осуществляется с помощью Конструк-
тора форм или Пустой формы. В этих случаях разработчик может использо-
Лекция 5. ACCESS. СОЗДАНИЕ ФОРМ, ОТЧЕТОВ 91
6. Создание отчетов
Общие сведения
Отчет – это объект базы данных, который используется для отображения и
обобщения данных. Как правило, отчет является конечным продуктом БД,
предназначенным для печати, и при создании отчета можно комбинировать
данные из таблиц, запросов и даже форм.
Отчеты могут содержать подробные сведения об отдельных записях, свод-
ные сведения о большой группе записей либо и то, и другое. Кроме того, отче-
ты Access также можно использовать при создании наклеек для списков рассы-
лок и многого другого.
В Access 2010 с помощью отчетов можно распространять и архивировать
мгновенные снимки данных в печатном виде, в виде PDF- или XPS-файлов и
файлов других форматов. Также в Access 2010 появилась возможность создания
веб-баз данных путем публикации баз данных Access на сервере SharePoint, на
котором работают службы Access. Если имеется веб-база данных, отчеты
Access можно отображать в браузере с помощью служб отчетов SQL Server.
При таком преобразовании набор доступных функций в отчетах, отображаемых
в браузере, будет несколько ограничен. Однако, если не нужно отображать от-
четы в браузере, можно использовать полный набор возможностей, предостав-
ляемых конструктором отчетов Access.
Составные части отчета
В приложении Access макет отчета разбит на разделы. В клиентской базе
данных разделы отчета можно просмотреть в режиме Конструктора. В режиме
Макета разделы выделены не так четко, однако они все же обозначены и их
можно выбирать в раскрывающемся списке в группе Выделенный фрагмент на
вкладке Формат. Рассмотрим и охарактеризуем назначение каждого из семи
разделов в порядке их расположения в отчете.
1) Заголовок отчета включает информацию, выводимую только один раз
в начале отчета на титульной странице, например эмблему компании, название
отчета или дату. Если в этом разделе содержится вычисляемый элемент управ-
ления, в котором используется агрегатная функция суммирования, то сумма
будет рассчитываться для всего отчета. Заголовок отчета печатается перед
верхним колонтитулом.
2) Верхний колонтитул содержит информацию, выводимую на печать
вверху каждой страницы отчета, например: название отчета, дату или время
формирования текущего отчета и др.
Лекция 5. ACCESS. СОЗДАНИЕ ФОРМ, ОТЧЕТОВ 101
Кроме того, когда отчет открыт в режиме макета или конструктора, можно
добавить эти функции с помощью области Группировка, сортировка и итоги.
Если область Группировка, сортировка и итоги не открыта, надо выполнить
команду Группировка, которая находится на вкладке Конструктор в группе
Группировка и итоги. После этого надо нажать кнопку Добавить группировку
или Добавить сортировку и выбрать поле, по которому требуется сгруппиро-
вать или отсортировать данные. Чтобы задать дополнительные параметры или
добавить итоги, в строке группировки или сортировки выбрать команду Больше.
Добавление изображений
Изображения в Access традиционно привязывались к отдельным элемен-
там управления на формах и отчетах. Чтобы изменить часто используемое изо-
бражение, присутствующее на нескольких формах и отчетах, каждый соответ-
ствующий элемент управления приходилось обновлять вручную. В приложении
Access 2010 можно прикрепить к базе данных изображение, а затем использо-
вать его с несколькими объектами. Обновление одного изображения приводит к
его обновлению в масштабах всей базы данных. Это очень полезно при работе с
такими объектами, как эмблемы компаний и фоновые изображения, используе-
мые во всей базе данных.
1. В области навигации щелкнуть правой кнопкой мыши на отчете, в кото-
рый требуется добавить изображение, и выбрать команду Режим макета.
2. Щелкнуть на то место отчета, где нужно поместить изображение.
3. На вкладке Конструктор в группе Элементы управления нажать кнопку
Вставить изображение.
4. Выполнить одно из указанных ниже действий:
– Используйте существующее изображение, если нужное изображение
уже есть в коллекции, щелкнуть его, чтобы добавить в отчет;
– Добавьте новое изображение, нажав кнопку Обзор в нижней части кол-
лекции. В диалоговом окне Выбор рисунка перейти к нужному изображению и
нажать кнопку Открыть.
После этого выбранное изображение будет добавлено в отчет.
Добавить фоновое изображение можно следующим образом. В области на-
вигации щелкнуть правой кнопкой мыши отчет, в который требуется добавить
фоновое изображение, и выбрать команду Режим макета. На вкладке Формат
в группе Фон нажать кнопку Фоновый рисунок. Дальше надо выбрать одно из
существующих в коллекции изображений или загрузить новое изображение,
нажав кнопку Обзор в нижней части коллекции.
2. Создание макросов
Макрос представляет собой именованный набор макрокоманд, выпол-
няющих определённые операции, позволяющие автоматизировать работу при-
ложения. Используя макросы для выполнения рутинных операций, можно су-
щественно сэкономить время и силы. Кроме того, поскольку всякий раз при за-
пуске макроса будет осуществляться одна и та же последовательность дейст-
вий, макрос сделает работу с базой данных более эффективной и аккуратной.
Макросы могут быть как простыми, состоящими из одной макрокоманды, так и
сложными, включающими логические операции и несколько взаимосвязанных
макрокоманд.
Объекты (например, формы и отчеты) и элементы управления на них (на-
пример, кнопки и поля) могут иметь множество разных событий, которым
можно назначить выполнение разных макросов. Примерами событий могут
быть щелчок кнопки мыши, открытие или закрытие формы, запуск отчета или
изменение данных в текстовом поле и др. Например, при добавлении кнопки на
форму событие OnClick кнопки связывается с макросом, содержащим команды,
которые должны выполняться при каждом нажатии кнопки.
События могут также запускаться внешними по отношению к Access фак-
торами, такими как системные события, макросы или процедуры, связанные с
108 Лекция 7. ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ ACCESS
Макросы и нажать кнопку ОК. Далее в окне построителя макроса надо из списка
выбрать макрокоманду ЗадатьВремПеременную.
В открывшемся бланке макрокоманды в строке Имя ввести имя временной
переменной Z, с помощью которой будут передаваться данные из главной фор-
мы в подчиненную. Чтобы это происходило, в строке Выражение бланка мак-
роса следует вписать имя поля Должность, значения которого будут связую-
щим звеном между главной и подчиненной формами. Причем, имя этого поля
можно не вписывать, а выбрать из списка полей, воспользовавшись кнопкой .
В строке Режим окна выбрать из списка значение Окно диалога. Это дела-
ется для того, чтобы пользователь мог просматривать данные, собранные из
подчинённой таблицы, в соответствии с поставленным условием.
3. Создание модулей
Модули являются объектом базы данных, объединяющим одну или не-
сколько процедур либо функций, написанных на языке Visual Basic for
Лекция 7. ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ ACCESS 115
– SELECT
– CREATE
– INSERT
– ALTER
– UPDATE
– DROP
SQL – DELETE
Ошибочный
Where УчебныйПлан.КодПредмета=
запрос!
(SELECT КодПредмета FROM Предмет
WHERE НаименованиеПредмета="Информатика"
OR НаименованиеПредмета="Физика");
Таким образом, используя вложенные запросы, основанные на операторах
отношения, необходимо быть уверенным, что конечными выходными данными
подзапроса является только одна строка.
А что делать, если подзапрос вообще не вернет никаких данных, так назы-
ваемый NULL-выход? Это приведет к тому, что подзапрос будет оценен не как
TRUE или FALSE, а как имеющий значение UNKNOWN. Результат UNKNOWN
аналогичен результату FALSE – основной запрос не выберет ни одной строки,
т. е. тоже приведет к NULL-выходу. Например, если допущена ошибка при на-
писании его названия или запрашиваемый предмет отсутствует в БД:
SELECT * FROM УчебныйПлан
Where УчебныйПлан.КодПредмета=
(SELECT КодПредмета FROM Предмет
WHERE НаименованиеПредмета="Культурология");
В некоторых случаях использование оператора IN позволяет сформулиро-
вать вложенные запросы, в результате выполнения которых получается любое
количество строк. Надо оговориться, что операторы BETWEEN, LIKE, IS NULL
к подзапросам применять нельзя. Пример, выбрать фамилии и имена всех сту-
136 Лекция 9. ОПЕРАТОР ВЫБОРКИ SELECT
Список литературы
1. Берко А. Ю. Системи баз даних та знань. Книга 2. Системи управління
базами даних та знань : навч. посіб. / Берко А. Ю., Верес О. М., Пасічник В. В.
– Львів : «Магнолія-2006», 2012. – 584 с.
2. Введение в программирование Access. [Электронный ресурс]. – Ре-
жим доступа: http://office.microsoft.com/ru-ru/access-help/HA010341717.aspx?CTT
=1#BMlearnaboutmacros. – Название с экрана.
3. Гайна Г. А. Основи проектування баз даних : навч. посіб. / Гайна Г. А. –
К.: Кондор, 2008. – 200 с.
4. Джелен Б. Сводные таблицы в Microsoft Excel 2010 ; пер. с англ. /
Б. Джелен, М. Александер. – М. : ООО "И.Д. Вильямс", 2011. – 464 с.
5. Знакомство с запросами. [Электронный ресурс]. – Режим доступа:
http://office.microsoft.com/ru/access-help/HA102749599.aspx. – Название с экрана.
6. Експорт даних Access у документ Word. [Електронний ресурс]. – Ре-
жим доступу: http://office.microsoft.com/uk-ua/access-help/HA010341683.aspx #BM2.
– Назва з екрану.
7. Завадський І. О. Основи баз даних : навч. посіб. / Завадський І. О. – К.:
Видавець І. О. Завадський, 2011. – 192 с.
8. Зарицька О. Л. Бази даних та інформаційні системи : метод. посіб. / За-
рицька О. Л. – Житомир : Вид-во ЖДУ ім. І. Франка, 2009. – 132 с.
9. Кузнецов С. Базы данных. Вводный курс. [Электронный ресурс]. –
Режим доступа: http://citforum.ru/database/advanced_intro. – Название с экрана.
10. Михеев Р. VBA и программирование в MS Office для пользователей.
Специальный курс / Михеев Р. – М. : bhv, 2006. – 361 с.
11. Обмен данными с Microsoft Word в системе автоматизации. [Элек-
тронный ресурс]. – Режим доступа: www.taurion.ru/access/15/11. – Название с
экрана.
12. Основи баз даних. СУБД Access 2010 (2013) : посіб. [до вивчення та
практичної роботи] / [Д. А. Покришень, Ю. О. Крєпкий, І. Т. Атрошенко та ін.] –
Чернігів : ТОВ НВП «Інтерсервіс», 2013. – 225 с.
13. Павлов А. Н. Пособие для поддержки практических работ по освое-
нию возможностей СУБД Access 2010 / Павлов А. Н. [Электронный ресурс]. –
Режим доступа: http://pavlov-rags.narod.ru/Accsess2010. – Название с экрана.
14. Ткаченко В. А. Microsoft Access 2007 / Ткаченко В. А. [Электронный
ресурс]. – Режим доступа: http://www.lessons-tva.info/edu/inf-access/ access.html.
– Название с экрана.
15. Фуфаев Э. В. Базы данных : учебн. пособ. для студ. / Э. В. Фуфаев,
Д. Э. Фуфаев. – [7-е изд.] – М. : Издательский центр "Академия", 2012. – 320 с.
16. Хомоненко А. Д. Базы данных : учебник [для высших учебных заве-
дений] / Хомоненко А. Д., Цыганков В. М. , Мальцев М. Г. ; под ред. проф.
А. Д. Хомоненко. – [4-е изд., доп. и перераб.] – СПб. : КОРОНА принт, 2004. –
736 с.
138
Оглавление
Учебно-методическое издание
Трофименко Е.Г.
Буката Л.Н.
Швайко И.Г.
Создание и обработка
баз данных
Конспект лекций