Лабораторная работа №3

ПРОЕКТИРОВАНИЕ БАЗ ДАННЫХ В СУБД MS ACCESS 2010

Цель работы: изучение принципов построения реляционных баз данных, приобретение практических навыков физического проектирования баз данных (БД) в системе управления базами данных (СУБД) MS ACCESS 2010.

ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

# Общие сведения о реляционных базах данных

Реляционные БД проектируются на основе реляционной модели данных в основе которой лежит представление данных в виде таблиц. Таблицу БД можно представлять как обычную двумерную таблицу с характеристиками (атрибутами) какого-то множества объектов. Таблица имеет имя, по которому на нее можно сослаться.

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

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

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

При работе с таблицей пользователь как бы скользит курсором по записям. В каждый момент времени есть некоторая текущая запись, с которой и ведется работа. Записи в таблице базы данных физически могут располагаться без какого-либо порядка, как правило, в последовательности их ввода. Но когда данные таблицы предъявляются пользователю, они должны быть упорядочены. Для упорядочивания и ускорения поиска данных используется индекс. Индекс содержит набор ссылок на записи таблицы и показывает, в какой последовательности желательно просматривать таблицу. Он является как бы посредником между пользователем и таблицей (рис. 3.1). Курсор скользит по индексу, а индекс указывает на ту или иную запись таблицы. Для пользователя таблица выглядит упорядоченной, причем он может сменить индекс и последовательность просматриваемых записей изменится. Но в действительности это не связано с какой-то перестройкой самой таблицы и с физическим перемещением в ней записей. Меняется только последовательность ссылок на записи.

Рис. 3.1. Схема перемещения курсора по индексу

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

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

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

Создают базы данных и обрабатывают запросы к ним системы управления базами данных. Известно множество СУБД, различающихся своими возможностями: Paradox, dBase, Microsoft Acess, FoxPro, Oracle, InterBase, Sybase и много других.

Разные СУБД по разному организуют и хранят базы данных. Например, Paradox и dBase используют для каждой таблицы отдельный файл. В этом случае база данных – это каталог, в котором хранятся файлы таблиц. В Microsoft Access и в InterBase база данных из нескольких таблиц хранится как один файл.

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

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

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

Проектирование баз данных в СУБД MS ACCESS 2010

MICROSOFT ACCESS (MS ACCESS) представляет собой СУБД, входящую в состав профессиональной редакции Microsoft Office и являющуюся одной из лучших в классе настольных СУБД. Область применения MS ACCESS – от однопользовательских локальных разработок до несложных профессиональных сетевых проектов. Важнейшей особенностью этой СУБД является возможность разработки приложений для работы с базами данных без использования программного кода, лишь с помощью средств визуального проектирования, встроенных мастеров и шаблонов. При необходимости приложения можно усовершенствовать, используя встроенный язык Visual Basic for Application (VBA). Также реализована возможность использования языка структурированных запросов SQL. Дальнейшее наращивание функциональных возможностей связано с построением клиент-серверных систем, в которых Access выступает в качестве клиента, запрашивающего сервисы у мощной внешней СУБД Microsoft SQL Server, используемой в качестве сервера. Для реализации этой возможности используются проекты MS ACCESS (файлы с расширением .adp).

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

Таблицы непосредственно хранят информацию, относящуюся к конкретной предметной области.

Запросы позволяют получать всевозможные выборки информации из одной или нескольких таблиц и/или запросов с использованием различных критериев отбора данных.

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

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

Страницы предназначены для публикации информации из базы данных на интернет-страницах.

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

Модуль представляет собой совокупность описаний и процедур на языке VBA, сохраненных под общим именем.

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

Процесс физического проектирования БД в СУБД MS ACCESS обычно состоит из следующих основных этапов:

1. Создание новой пустой базы данных.

2. Создание таблиц базы данных с заданными типами и свойствами полей.

3. Создание и настройка связей между таблицами.

5. Наполнение таблиц конкретными данными.

## Создание пустой базы данных

Для создания новой базы данных в СУБД MS ACCESS необходимо в стартовом окне СУБД выбрать пункт Новая база данных (рис. 3.2). После одинарного щелчка левой кнопкой мыши данный пункт будет подсвечен. Далее, необходимо задать путь и имя сохраняемого файла базы данных. Путь и имя сохраняемого файла БД задается через графический интерфейс с помощью нажатия кнопки Поиск расположения для размещения базы данных (зона 1 на рис. 3.2). Путь вводится в зону 2, а имя файла – в область 3 стартового окна (см. рис. 3.2). После ввода имени файла и пути необходимо нажать кнопку Создать (зона 4 на рис. 3.2).

Рис. 3.2. Интерфейс создания файла БД

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

В MS ACCESS существует пять вариантов создания таблицы:

– режим таблицы;

– мастер таблиц;

– импорт таблиц;

– связь с таблицами;

– конструктор.

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

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

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

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

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

## Создание таблицы в режиме конструктора

Для перехода в режим создания таблицы необходимо выбрать панель Работа с таблицами, вкладку Поля, нажать кнопку Режим, в выпадающем меню выбрать Конструктор (рис. 3.3).

Рис. 3.3. Вход в режим Конструктор

После нажатия кнопки Конструктор СУБД откроет диалоговое окно сохранения таблицы, в котором необходимо ввести имя таблицы (рис. 3.4).

Рис. 3.4. Диалоговое окно сохранения таблицы

После сохранения таблицы СУБД переключиться в режим Конструктор. В этом режиме на вкладке редактирования таблицы можно создавать поля таблицы и редактировать их параметры (рис. 3.5).

Рис. 3.5. Окно конструктора для создания таблицы

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

Далее необходимо выбрать тип поля, щелкнув на выпадающем списке справа от названия поля в столбце Тип данных (рис. 3.6).

Имеются следующие типы полей.

Текстовый. Для текстов и/или чисел, не требующих проведения расчетов. Размер поля – не более 255 символов.

MEMO. Для очень длинных текстов. Размер поля – до 65 535 символов.

Числовой. Для чисел, используемых для проведения расчетов. Имеет целый ряд подтипов. Размер поля – от 1 до 16 байт.

Дата/время. Для даты и времени, относящихся к годам с 100 по 9999. Размер поля – 8 байт.

Денежный. Для денежных значений, используемых для проведения расчетов. Обеспечивает точность до 15 знаков в целой и до 4 знаков в дробной части. Размер поля – 8 байт.

Счетчик. Для уникальных последовательно возрастающих на единицу или случайных чисел, генерируемых автоматически. Размер поля – 4 байта.

Логический. Для значений «Да» и «Нет». Размер поля – 1 бит.

Объект OLE (Object Linking and Embedding). Для объектов, связанных или внедренных в таблицу ACCESS (электронные таблицы Excel, документы Word, рисунки, звукозаписи и другие данные в двоичном формате). Размер поля – до 1 Гб.

Гиперссылка. Для комбинации текста и чисел, используемой в качестве адреса гиперссылки. Длина каждой из частей гиперссылки не более 2048 символов.

Рис. 3.6. Выбор типа поля

Далее необходимо настроить необходимые свойства полей на вкладке Общие, расположенной внизу окна конструктора в разделе Свойства поля (рис. 3.7).

Размер поля. Указывается для текстовых и числовых типов данных. Для текстовых полей изменяется в диапазоне от 1 до 255 символов, по умолчанию равен 50. Для числовых полей возможны 3 целочисленных подтипа (байт, целое, длинное целое), 3 вещественных подтипа (одинарное с плавающей точкой, двойное с плавающей точкой, действительное), а также подтип с названием «Код репликации».

Рис. 3.7. Настройка параметров поля

Формат поля. Определяет вид представления информации при выводе на экран и на печать. Для числовых типов данных и типа «Дата/время» нужный формат можно выбрать из выпадающего списка или же ввести вручную.

Число десятичных знаков. Задает число десятичных знаков для полей вещественного и денежного типов.

Маска ввода. Используется при вводе данных, упрощая и проверяя правильность их ввода.

Подпись. Задает более подробное наименование поля, которое будет использоваться в формах и отчетах в качестве имени поля.

Значение по умолчанию. При формировании новой записи это значение будет подставляться в поле автоматически. При необходимости его можно изменить.

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

Сообщение об ошибке. Текст этого сообщения выдается на экран, если при вводе было нарушено рассмотренное выше условие на значение.

Обязательное поле. Здесь указывается необходимость ввода данных в поле для каждой записи таблицы.

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

Пустые строки. Здесь указывается, допускается ли ввод в поле строк, не содержащих ни одного символа.

## Создание маски ввода

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

Маски ввода выполняют значительный объем работы по проверке данных, предотвращая ввод в таблицу неверных данных (например номера телефона в поле даты). Маски ввода также позволяют обеспечить единообразный вид вводимых данных, что упрощает поиск сведений и управление базой данных.

Маски ввода можно использовать для полей с типом данных «Текстовый», «Числовой» (кроме кода репликации), «Денежный» и «Дата/время».

Для создания маски ввода необходимо выполнить следующие действия:

- выберите поле, к которому необходимо применить маску ввода;

- в разделе Свойства поля на вкладке Общие щелкните на поле справа от свойства Маска ввода;

- запустите мастер масок ввода, нажав кнопку Построить (рис. 3.8);

- выберите нужный тип маски ввода из списка (рис. 3.9);

- щелкните на поле Проба и введите данные, чтобы проверить работу маски;

- для продолжения нажмите кнопку Далее;

- отредактируйте маску ввода и заполнитель, если это необходимо;

- сохраните изменения маски, нажав кнопку Готово.

Рис. 3.8. Вызов мастера создания маски ввода

Рис. 3.9. Окно мастера создания маски ввода

При редактировании маски ввода могут использоваться следующие знаки:

- 0 – пользователь должен ввести цифру (от 0 до 9);

- 9 – пользователь должен ввести цифру (от 0 до 9);

- # – пользователь может ввести цифру, пробел, знак «плюс» или «минус». Если ничего не ввести, будет вставлен пробел;

- L – пользователь должен ввести букву;

- ? – пользователь может ввести букву;

- A – пользователь должен ввести букву или цифру;

- a – пользователь может ввести букву или цифру;

- & – пользователь должен ввести какой-либо знак или пробел;

- C – пользователь может ввести знаки или пробелы;

- . , : ; - / – разделитель целой и дробной части, групп разрядов, значений дат и времени;

– > – все последующие знаки будут переведены в верхний регистр;

- < – все последующие знаки будут переведены в нижний регистр;

- ! – маска ввода заполняется слева направо, а не справа налево;

- \ – символы, следующие непосредственно за обратной косой чертой, отображаются без изменений.

Определение первичного ключа таблицы

Для определения простого первичного ключа таблицы выделим нужное поле, щелкнув кнопкой мыши на области маркировки слева от имени поля, и нажмем кнопку Ключевое поле во вкладке Конструктор. Признаком установки ключа является изображение ключа слева от имени поля (рис. 3.10). Для определения составного первичного ключа в режиме конструктора таблиц надо выделить входящие в составной ключ поля, щелкая кнопкой мыши на области маркировки при нажатой клавише <Ctrl> и затем нажать кнопку Ключевое поле. После проделанных манипуляций сохраним созданную структуру таблицы, выполнив команду Файл/Сохранить.

Рис. 3.10. Определение первичного ключа таблицы

Создание связей между таблицами

После создания всех таблиц БД необходимо создать связи между ними. MS ACCESS позволяет создавать связи трех типов.

## Связь «один-ко-многим». Связь этого типа означает, что одной записи главной таблицы соответствует множество записей подчиненной таблицы. Чтобы создать связь «один-ко-многим» в структуре подчиненной таблицы должно быть поле одноименное с первичным ключом главной таблицы.

## Связь «многие-ко-многим». Связь этого типа означает, что нескольким записям главной таблицы соответствует множество записей подчиненной таблицы и наоборот. Например, связь между таблицей «Продукты» и таблицей «Заказы». Один заказ может включать несколько продуктов. С другой стороны, отдельный продукт может содержаться в нескольких заказах.

Чтобы создать связь «многие-ко-многим», нужно создать третью (связующую) таблицу, с помощью которой связь «многие-ко-многим» разбивается на две связи «один-ко-многим». Первичные ключи обоих таблиц вставляются в третью таблицу. Например, таблицы «Заказы» и «Продукты» имеют связь «многие-ко-многим», определяемую путем создания двух связей «один-ко-многим» с таблицей «Заказано».

## Связь «один-к-одному». При связи «один-к-одному» каждая запись в главной таблице может иметь не более одной связанной записи в подчиненной таблице и наоборот. Связи этого типа используются нечасто, поскольку обычно сведения, связанные таким образом, хранятся в одной таблице. Связь «один-к-одному» используется для разделения таблицы, содержащей много полей, с целью отделения части таблицы по соображениям безопасности, а также с целью сохранения сведений, относящихся к подмножеству записей в главной таблице. При определении такой связи у обеих таблиц должно быть общее поле.

При создании связи между таблицами не требуется, чтобы общие поля имели одинаковые имена. Вместо этого поля должны иметь одинаковый тип данных. Однако если поле первичного ключа имеет тип «Счетчик», поле внешнего ключа может иметь тип «Числовой» при условии, что свойство Размер поля обоих полей одинаково. Например, можно сопоставить поле с типом «Счетчик» и поле с типом «Числовой», если свойство Размер поля обоих полей имеет значение «Длинное целое». Если оба общих поля имеют тип «Числовой», они должны иметь одинаковое значение свойства Размер поля.

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

## В группе Работа с таблицами на вкладке Работа с базами данных щелкните на элементе Схема данных (рис. 3.11). Если ни одна связь еще не определена, автоматически откроется диалоговое окно Добавление таблицы. Если это окно не открылось, в группе Работа со связями на вкладке Конструктор щелкните элемент Отобразить таблицу (рис. 3.12).

В диалоговом окне Добавление таблицы отображаются все таблицы и запросы базы данных. Чтобы просмотреть только таблицы, выберите пункт Таблицы. Выберите одну или несколько таблиц и нажмите кнопку Добавить. По завершении добавления таблиц в окно Схема данных нажмите кнопку Закрыть.

Перетащите поле (как правило, поле первичного ключа) из главной таблицы на общее поле (поле внешнего ключа) подчиненной таблицы. Чтобы перетащить сразу несколько полей, нажмите клавишу <Ctrl> и, удерживая ее нажатой, выделите каждое поле. При этом откроется диалоговое окно Изменение связей (рис. 3.13).

Рис. 3.11. Вызов окна Схема данных

Рис. 3.12 Окно Схема данных

Убедитесь, что имена общих полей связи отображаются правильно. Если имя поля отображается неверно, щелкните на нем и выберите новое поле в списке. Установите флажки Обеспечение целостности данных, Каскадное удаление связанных записей и Каскадное обновление связанных полей. Нажмите кнопку Создать. Диалоговое окно Изменение связей закроется, между двумя таблицами будет нарисована линия связи. Если установлен флажок Обеспечение целостности данных, концы линии будут выглядеть утолщенными, а над полужирной частью линии с одной стороны связи будет отображаться цифра 1, а с другой стороны – символ бесконечности ∞ (рис. 3.14).

Рис. 3.13. Диалоговое окно Изменение связей

Рис. 3.14. Схема данных БД

В режиме обеспечения целостности данных действуют правила:

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

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

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

При возникновении проблем с созданием связей обратите внимание на указанные ниже необходимые условия обеспечения целостности данных:

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

2. Общие поля должны иметь одинаковый тип данных. Единственное исключение – поле типа «Счетчик» можно связать с полем типа «Числовой», если его свойство Размер поля имеет значение Длинное целое.

## Удаление связи между таблицами

Чтобы удалить связь между таблицами, нужно удалить линию связи в окне Схема данных. Для этого поместите курсор на линию связи, а затем щелкните на ней. Выделенная линия связи станет полужирной. Нажмите клавишу DEL на клавиатуре. При этом может появиться сообщение Подтвердите удаление выделенной связи из базы данных. Нажмите Да.

ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

1. Загрузить MS ACCESS.

2. Создать новую (пустую) базу данных и сохраните ее в своей рабочей папке под своим именем.

4. Создать таблицы БД в соответствии с индивидуальным заданием.

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

6. Ввести в таблицы базы данных данные в соответствии с индивидуальным заданием.

7. Завершить работу с базой данных. Завершить работу с MS ACCESS.

8. Оформить отчет по работе.

СОДЕРЖАНИЕ ОТЧЕТА

1. Цель работы.

2. Краткие теоретические сведения.

3. Распечатка таблиц базы данных.

4. Схема данных базы данных.

5. Выводы.

КОНТРОЛЬНЫЕ ВОПРОСЫ

1. Что такое база данных?

2. Что такое таблица базы данных?

3. Что такое поле таблицы?

4. Что такое запись?

5. Перечислите способы создания таблиц.

6. Что такое макет таблицы?

7. Как осуществляется ввод данных в таблицу?

8. Как осуществляется изменение данных в существующей таблице?

9. Как осуществляется создание связей между таблицами?

10. Как обеспечивается целостность данных в БД?

## ЛИТЕРАТУРА

1. Глушаков, С. В. Базы данных / С. В. Глушаков, Д. В. Ломотько. – Харьков : Фолино ; М. : АСТ, 2002.

2. Бутов, А. А. Технологии организации, хранения и обработки данных : лаб. практикум для студ. экон. спец. БГУИР всех форм обуч. / А. А. Бутов. – Минск : БГУИР, 2008.

3. Коренская, И. Н. Офисные и интернет-приложения : учеб.-метод. пособие / И. Н. Коренская, В. А. Полубок. – Минск : БГУИР, 2013.

4. Оскерко, В. С. Технологии баз данных : учеб. пособие / В. С. Оскерко, З. В. Пунчик, О. А. Сосновский. – Минск : БГЭУ, 2007.