Основные понятия теории баз данных
Этапы проектирования реляционных баз данных. Особенность работы с таблицами и формами. Анализ запросов на выборку и изменения информации. Характеристика трудов с отчетами в Microsoft Access. Сущность создания модулей средствами языка программирования.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | учебное пособие |
Язык | русский |
Дата добавления | 27.05.2015 |
Размер файла | 2,9 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Тольятти 2008
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
Тольяттинский государственный университет
Кафедра "Компьютерные технологии и обработка материалов давлением"
УЧЕБНОЕ ПОСОБИЕ ДЛЯ СТУДЕНТОВ
по курсу «Математика и информатика»
Содержание
1. Основные понятия теории баз данных
1.1 Базы данных и системы управления базами данных. Модели данных
1.2 Основы проектирования реляционных баз данных
1.3 Этапы проектирования реляционной базы данных
2. Основы работы с СУБД Microsoft Access
2.1 Объекты базы данных Microsoft Access
2.2 Работа с таблицами
2.3 Работа с формами
2.4 Работа с запросами. Запросы на выборку
2.5 Итоговые запросы и запросы на изменение данных
2.6 Работа с отчетами
3. Методические указания по выполнению индивидуального домашнего задания (ИДЗ) по теме «Базы данных»
3.1 Представление результатов выполнения ИДЗ
Источники информации
1. Основные понятия теории баз данных
1.1 Базы данных и системы управления базами данных. Модели данных
База данных (БД) - это поименованная совокупность структурированных данных, относящихся к определенной предметной области. С понятием базы данных тесно связано понятие системы управления базами данных (СУБД). СУБД - это комплекс программных средств, предназначенных для создания структуры новой базы данных, наполнения ее содержимым, редактирования содержимого и создания различных пользовательских представлений информации (отбор, сортировка, фильтрация и т.д.). Существует множество различных систем управления базами данных, однако большинство СУБД опираются на единый комплекс основных понятий. Рассмотрим эти понятия.
Информационный объект - это описание некоторой сущности (реального объекта, явления, процесса, события) в виде совокупности логически связанных реквизитов (информационных элементов). Такими сущностями для информационных объектов могут служить: студент, вуз, сдача экзаменов, магазин, склад, и т.д. Например, информационный объект СТУДЕНТ может быть представлен в базе данных с помощью следующих реквизитов: Номер зачетной книжки, Фамилия, Имя, Отчество, Год рождения. Это можно записать так:
СТУДЕНТ (Номер зачетной книжки, Фамилия, Имя, Отчество, Год рождения)
Ядром любой базы данных является модель данных. Модель данных - это совокупность структур данных и операций их обработки. С помощью модели данных могут быть представлены информационные объекты и взаимосвязи между ними. Рассмотрим три основных типа моделей данных: иерархическую, сетевую и реляционную.
Иерархическая модель данных представляет собой совокупность элементов данных, расположенных в порядке их подчинения и образующих по структуре перевернутое дерево (рис. 1). К основным понятиям иерархической структуры относятся: уровень, узел и связь. Узел - это совокупность реквизитов данных, описывающих информационный объект.
Рис. 1. Графическое изображение иерархической структуры данных.
Иерархическая структура должна удовлетворять следующим требованиям:
· каждый узел на более низком уровне связан только с одним узлом, находящимся на более высоком уровне;
· иерархическое дерево имеет только один корневой узел, не подчиненный никакому другому узлу и находящийся на самом верхнем уровне;
· к каждому узлу существует только один путь от корневого узла;
Пример, представленный на рисунке 2, иллюстрирует использование иерархической модели для построения базы данных «Институт». Информация базы данных структурирована в виде деревьев, количество которых равно количеству специальностей в институте. Информационные объекты первого уровня описываются реквизитами номер специальности, название специальности, ФИО декана. Информационные объекты второго уровня - реквизитами шифр группы, ФИО старосты, третьего уровня - реквизитами номер зачетки, фамилия, имя, отчество.
Подчеркиванием выделяется реквизит, который однозначно определяет описываемый информационный объект. Например, реквизит номер специальности однозначно определяет конкретную специальность. Для рассматриваемого примера иерархическая структура организации данных применима, так как каждый студент учится в определенной и только одной группе, которая относится к определенной и только одной специальности.
Рис. 2. Пример иерархической структуры данных.
Сетевая модель данных основана на тех же основных понятиях (уровень, узел, связь), что и иерархическая модель, но в сетевой модели каждый узел может быть связан с любым другим узлом. На рисунке 3 схематически изображена сетевая структура организации данных.
Рис. 3. Графическое изображение сетевой структуры данных.
Примером сетевой структуры может служить структура базы данных, содержащей сведения о студентах, занимающихся в спортивных секциях. Возможно участие одного студента в нескольких секциях, а также участие нескольких студентов в одной секции. Графическое изображение описанной в примере сетевой структуры, состоящей из двух типов информационных объектов, показано на рисунке 4.
Рис. 4. Пример сетевой структуры данных.
Реляционная модель данных использует организацию данных в виде двумерных таблиц. Каждая реляционная таблица представляет собой двумерный массив и обладает следующими свойствами:
· все столбцы в таблице однородные, т.е. все элементы в одном столбце имеют одинаковый тип (числовой, символьный и т.д.) и максимально допустимый размер;
· каждый столбец имеет уникальное имя;
· одинаковые строки в таблице отсутствуют;
· порядок следования строк и столбцов в таблице может быть произвольным.
Объектами обработки реляционной БД являются (рис. 5):
Поле - элементарная единица логической организации данных, которая соответствует конкретному реквизиту информационного объекта (столбец реляционной таблицы).
Запись - совокупность логически связанных полей (строка реляционной таблицы).
Таблица - заданная структура полей, состоящая из конечного набора однотипных записей.
Рис. 5. Основные структурные элементы реляционной таблицы.
Например, в виде реляционной таблицы можно представить информацию о студентах, обучающихся в вузе:
Номер личного дела |
Фамилия |
Имя |
Отчество |
Пол |
Дата рождения |
Специальность |
|
16493 |
Сергеев |
Петр |
Михайлович |
м |
01.01.86 |
080104 |
|
16593 |
Петрова |
Анна |
Владимировна |
ж |
15.03.85 |
080102 |
|
16693 |
Анохин |
Андрей |
Борисович |
м |
14.04.86 |
080104 |
1.2 Основы проектирования реляционных баз данных
Базы данных могут содержать различные объекты, но основными объектами любой базы данных являются таблицы. Простейшая база данных имеет хотя бы одну таблицу. Даже если таблица не содержит данных, она уже содержит информацию - это информация о структуре таблицы. Структура таблицы определяет методы занесения данных и хранения их в базе данных. Таблицы базы данных создаются таким образом, чтобы каждая из них содержала информацию об одном информационном объекте. Не следует сводить в одну таблицу данные, относящиеся к разным информационным объектам. После создания различных таблиц, содержащих данные, относящиеся к различным информационным объектам базы данных, между этими таблицами должны быть установлены реляционные связи. Установка таких связей делает возможным выполнение одновременной обработки данных из нескольких таблиц. Для установки связей обычно используют ключевые поля таблиц.
Первичный ключ реляционной таблицы - это поле или группа полей, которые позволяют однозначно определить каждую строку в таблице. Первичный ключ должен обладать двумя свойствами:
· однозначная идентификация записи - запись должна однозначно определяться значением ключа;
· отсутствие избыточности - никакое поле нельзя удалить из ключа, не нарушая при этом свойства однозначной идентификации записи.
Если первичный ключ состоит из одного поля, то он называется простым ключом или ключевым полем. Если первичный ключ состоит из нескольких полей, то такая таблица базы данных имеет составной ключ.
Чтобы связать две реляционные таблицы, необходимо ключ одной связываемой таблицы ввести в состав ключа другой связываемой таблицы (возможно совпадение ключей) или ввести в структуру одной таблицы внешний ключ, т.е. поле, не являющееся ключевым в первой таблице, но являющееся ключевым во второй.
Пример. Рассмотрим базу данных «Деканат», состоящую из трех таблиц: СТУДЕНТ, СЕССИЯ, СТИПЕНДИЯ, имеющих показанную ниже структуру.
Таблица студент
Номер личного дела |
Фамилия |
Имя |
Отчество |
Группа |
|
120603 |
Свиридова |
Анна |
Алексеевна |
ЭТ-101 |
|
120608 |
Голубев |
Игорь |
Андреевич |
ЭТ-102 |
|
… |
… |
… |
… |
… |
В этой таблице ключевым полем является поле Номер личного дела, оно однозначно определяет каждую запись (строку) таблицы, т.к. не существует двух или более личных дел с одинаковыми номерами.
Таблица сессия
Номер личного дела |
Экзамен 1 |
Экзамен 2 |
Экзамен 3 |
Результат |
|
120603 |
3 |
4 |
4 |
0 |
|
120608 |
5 |
5 |
5 |
2 |
|
120634 |
4 |
5 |
4 |
1 |
|
… |
… |
… |
… |
В столбце Результат содержатся числа 0, 1 или 2 в зависимости от того, получает ли студент стипендию по результатам сессии (0 - студент не получает стипендию, 1 - обычная стипендия, 2 - увеличенная в 2 раза стипендия). В этой таблице ключевым полем также является поле Номер личного дела.
Таблица стипендия
Результат |
Процент |
|
0 |
0 |
|
1 |
100 |
|
2 |
200 |
Эта таблица содержит информацию о проценте начисляемой студенту стипендии в зависимости от результата сдачи сессии. В этой таблице ключевым является поле Результат.
Для наглядности представления связей между таблицами перейдем к представлению таблиц в виде структур этих таблиц, т.е. будем указывать только имена полей таблиц. Итак, наша база данных содержит три таблицы (рис. 6).
Рис. 6. Пример реляционной структуры данных.
Таблицы СТУДЕНТ и СЕССИЯ имеют совпадающие первичные ключи (Номер личного дела), что дает возможность легко организовать связь между ними. Таблица СЕССИЯ имеет первичный ключ Номер личного дела и содержит внешний ключ Результат, который обеспечивает ее связь с таблицей СТИПЕНДИЯ.
Будем говорить, что некоторая запись таблицы А связана с некоторой записью таблицы В, если в обеих таблицах эти записи содержат одно и то же значение в поле, по которому установлена связь между таблицами.
Различают три типа связей (отношений) между таблицами реляционной базы данных:
· отношение «один-к-одному» (1 -- 1)
· отношение «один-ко-многим» (1 -- М)
· отношение «многие-ко-многим» (М -- М)
Говорят, что таблицы А и В находятся в отношении «один-к-одному», если каждая запись в таблице А может иметь не более одной связанной с ней записи в таблице В и наоборот, каждая запись в таблице В может иметь не более одной связанной с ней записи в таблице А.
В этом случае для связи используются ключевые поля связываемых таблиц. Этот тип связи используется достаточно редко, т.к. в этом случае данные двух таблиц могут быть объединены в одну таблицу. Можно указать следующие причины, по которым все-таки выполняется разбиение одной таблицы на несколько таблиц, связанных отношением «один-к-одному»:
· разделение очень «широкой» таблицы на несколько таблиц с целью облегчения работы;
· отделение части таблицы по соображениям защиты ее от несанкционированного доступа.
Рассмотренные ранее таблицы СТУДЕНТ и СЕССИЯ находятся в отношении «один-к-одному» (иначе говоря, между таблицами установлена связь типа «один-к-одному») (рис. 7).
Рис. 7. Пример таблиц, находящихся в отношении «один-к-одному».
Говорят, что таблицы А и В находятся в отношении «один-ко-многим», если каждая запись в таблице А может быть связана с несколькими записями таблицы В, но каждая запись в таблице В не может быть связана более чем с одной записью таблицы А. Таблица А в этом случае называется главной таблицей, а таблица В - подчиненной.
В этом случае для связи используется поле, которое является первичным ключом таблицы, находящейся на стороне отношения «один» (таблица А), и являющееся внешним ключом в таблице, находящейся на стороне отношения «многие» (таблица В).
Например, рассмотренные ранее таблицы СТИПЕНДИЯ и СЕССИЯ находятся в отношении «один-ко-многим» (рис. 8). При этом на стороне «один» находится таблица СТИПЕНДИЯ, а на стороне «многие» - таблица СЕССИЯ. Связь устанавливается по полю Результат. Каждая запись таблицы СТИПЕНДИЯ может иметь много связанных с ней записей в таблице СЕССИЯ, иначе говоря, в таблице СЕССИЯ может быть много строк с заданным значением в поле Результат (например, со значением 1). В то же время, если взять любую строку в таблице СЕССИЯ, то для нее найдется не более одной строки в таблице СТИПЕНДИЯ с таким же значением в поле Результат.
Рис. 8. Пример таблиц, находящихся в отношении «один-ко-многим».
Говорят, что таблицы А и В находятся в отношении «многие-ко-многим», если каждая запись таблицы А может быть связана с несколькими записями в таблице В, и наоборот, каждая запись таблицы В может быть связана с несколькими записями в таблице А.
Такая связь всегда реализуется с помощью третьей (связующей) таблицы. Примером могут служить таблицы Читатели и Книги (рис. 9). Связь между ними организуется посредствам таблицы Абонемент.
Рис. 9. Пример таблиц, находящихся в отношении «многие-ко-многим».
Каждой записи в таблице Читатели могут соответствовать несколько записей в таблице Книги, и наоборот, каждая запись таблицы Книги может иметь более одной соответствующей ей записи в таблице Читатели. Соответствие устанавливается с помощью таблицы абонемент. При этом между таблицами ЧИТАТЕЛИ и АБОНЕМЕНТ установлено отношение «один-ко-многим», в котором таблица ЧИТАТЕЛИ является главной, а таблица АБОНЕМЕНТ - подчиненной. Аналогично между таблицами КНИГИ и АБОНЕМЕНТ установлено отношение «один-ко-многим», в которой таблица КНИГИ является главной.
1.3 Этапы проектирования реляционной базы данных
В процессе разработки базы данных можно выделить следующие этапы:
1. Анализ предметной области
На этом этапе формируется задание по созданию БД. В нем подробно описывается состав базы данных, назначение и цели ее создания, а также перечисляется, какие виды работ предполагается осуществлять в этой базе данных (отбор, изменение данных, печать или вывод отчета и т. д.).
2. Разработка схемы данных БД. На этом этапе рассматривается, из каких информационных объектов должна состоять БД, какими реквизитами описывается каждый объект. Затем определяется структура реляционных таблиц БД с указанием свойств полей и связей между таблицами.
3. Синтез компьютерной модели объекта, предполагающий выполнение следующих типовых операций:
1. Создание файла базы данных.
2. Создание исходной таблицы или таблиц.
3. Создание экранных форм.
Экранные формы создаются с целью облегчения процедуры ввода, редактирования и просмотра данных таблицы. На основе одной таблицы можно создать несколько форм, которые могут отличаться видом или количеством используемых полей данной таблицы.
4. Заполнение данными таблиц БД.
5. Работа с созданной базой данных:
· сортировка, фильтрация и поиск записей в таблице;
· отбор данных из таблиц в соответствии с заданными критериями отбора;
· выполнение обработки данных (удаление, добавление, изменение данных, выполнение вычислений);
· подготовка отчетов.
Рассмотрим подробно этап разработки схемы данных. Разработку схемы данных обычно выполняют в следующей последовательности:
1. Составляется общий список полей, отражающий реквизиты информационных объектов БД.
2. В соответствии с типом данных, размещаемых в каждом поле, определяют тип и другие свойства каждого поля.
3. Поля общего списка распределяются по базовым таблицам. Критерии распределения полей по таблицам могут быть различными. Например, сведения о сотрудниках организации могут храниться в одной таблице или могут быть созданы две таблицы, одна из которых хранит информацию служебного назначения (СОТРУДНИКИ), а другая - информацию личного плана (ЛИЧНЫЕ ДАННЫЕ) (рис. 10).
Рис. 10. Пример разделения одной таблицы на две по признаку разделения доступа к данным разных таблиц.
Однако чаще критерием выделения таблицы является факт повторения данных в таблице. Например, в таблице СОТРУДНИКИ многократно повторяются названия должностей и оклады. Возможно, было бы целесообразно создать таблицу ДОЛЖНОСТИ, в которой хранить названия и характеристики должностей (рис.11). Тогда данные будут храниться в двух таблицах: например, это могут быть таблицы СОТРУДНИКИ_2 и ДОЛЖНОСТИ. В таблицу СОТРУДНИКИ_2 включен внешний ключ таблицы ДОЛЖНОСТИ - поле Код должности. По этому полю устанавливается связь между таблицами.
Рис. 11. Пример разделения одной таблицы на две по признаку устранения повторяемости данных.
4. Обычно в каждой из таблиц намечают ключевое поле. В качестве ключевого выбирают поле, данные в котором повторяться не могут и которое однозначно определяет каждую запись таблицы. Например, для таблицы СОТРУДНИКИ_2 ключевым может быть поле, содержащее уникальный код каждого сотрудника (поле КодСотрудника).
5. Определяются связи между таблицами. На рисунке 12 показан пример установки связей между таблицами, составляющими одну базу данных. Такой чертеж называется схемой данных.
Рис. 12. Пример схемы данных.
6. Разработкой схемы данных заканчивается «бумажный» этап работы проектирования базы данных. Далее следует этап компьютерной реализации базы данных, который в значительной мере определяется выбором конкретной СУБД для реализации базы данных.
1.4 Вопросы для самоконтроля
1. Что такое база данных (БД), система управления базами данных (СУБД)?
2. Что такое информационный объект?
3. Что такое модель данных?
4. Укажите основные понятия и характеристики иерархической и сетевой моделей данных.
5. Укажите характеристики и объекты обработки реляционной модели данных.
6. Что такое первичный ключ реляционной таблицы базы данных?
7. Что такое внешний ключ реляционной таблицы базы данных?
8. Какого типа связи (отношения) могут быть установлены между таблицами реляционной базы данных? Охарактеризуйте каждый тип связи.
9. Что такое «схема данных» реляционной базы данных?
2. Основы работы с СУБД Microsoft Access
2.1 Объекты базы данных Microsoft Access
Рассмотрим основные приемы проектирования баз данных и работы с ними на примере СУБД Microsoft Access. Microsoft Access - это СУБД, предлагающая широкий диапазон средств для хранения информации и эффективного управления этой информацией. База Данных в Microsoft Access - это один файл с расширением .mdb, содержащий таблицы, запросы и другие объекты базы данных. Рассмотрим эти объекты более подробно.
Таблицы - это основные объекты любой базы данных. В таблицах хранятся все данные, имеющиеся в базе, кроме того, таблицы хранят и структуру базы (поля, их типы и другие свойства). На рисунке 13 показан пример таблицы базы данных в режиме просмотра данных.
Рис. 13. Пример таблицы базы данных.
Запросы - это специальные средства для отбора и анализа данных. С помощью запросов выполняют отбор данных, сортировку, фильтрацию, изменение и удаление данных. Кроме того, запросы позволяют создавать новые таблицы, выполнять автоматическое добавление в таблицы данных, импортированных из других источников, выполнять вычисления в таблицах и многое другое. На рисунке 14 показан пример выполнения запроса на выборку данных из таблицы СОТРУДНИКИ согласно критерию отбора Должность=Инженер. В полученной таблице строки отсортированы по полю КодСотрудника, при этом в результирующую таблицу включены лишь некоторые поля из таблицы СОТРУДНИКИ.
Формы используются как средство, облегчающее ввод новых данных в таблицы базы данных, а также для просмотра имеющихся данных. В форме можно разместить специальные элементы управления (счетчики, раскрывающиеся списки, переключатели, флажки и пр.) для автоматизации ввода. На рисунке 15 показана простейшая форма для таблицы СОТРУДНИКИ.
Отчеты предназначены для вывода данных на экран или на принтер. В них предусмотрены средства для вывода специальных элементов оформления, характерных для печатных документов: верхний и нижний колонтитулы, номера страниц, служебная информация о времени создания отчета и т.п. (рис. 16).
Страницы доступа к данным (рис. 17) служат для обеспечения удаленного доступа к данным, содержащимся в базе данных, через Internet или через корпоративную сеть Intranet. Обычно базы данных имеют очень большие размеры, напрямую передавать их через медленные каналы связи непрактично. Страницы доступа выполняют связующую функцию между базой данных и Web-страницами Интернета. Их нетрудно встроить в любой Web-документ.
Макросы предназначены для автоматизации выполнения повторяющихся операций при работе с СУБД. Несколько команд управления базой данных могут быть сохранены в виде макроса, чтобы в дальнейшем можно было воспроизводить эти команды, запуская сохраненный макрос.
Модули создаются средствами языка программирования Visual Basic for Applications. Это одно из средств, с помощью которых разработчик базы данных может заложить в нее нестандартные функциональные возможности, повысить быстродействие системы управления или уровень ее защищенности.
Рис. 14. Пример выполнения запроса к базе данных.
Рис. 15. Пример формы базы данных.
Рис. 16. Пример простейшего отчета.
Рис. 17. Пример простейшей страницы доступа
Работа с любыми объектами базы данных выполняется в окне «База данных» (рис. 18). На левой панели данного окна находятся элементы управления для вызова всех семи типов объектов.
Рис. 18. Окно База данных.
СУБД Microsoft Access предоставляет несколько средств создания каждого из основных объектов базы данных. Эти средства можно классифицировать как:
· ручные (разработка объектов в режиме Конструктор);
· автоматизированные (разработка с помощью программ-мастеров);
· автоматические - средства ускоренной разработки простейших объектов.
2.2 Работа с таблицами
Основными объектами базы данных Microsoft Access являются реляционные таблицы, структура которых определяется набором полей таблицы (столбцы), а информация хранится в виде записей (строки). Поля таблицы базы данных не только определяют структуру таблицы, но также определяют групповые свойства данных, записываемых в ячейки, принадлежащие каждому из полей. Далее перечислены некоторые свойства полей:
· Имя поля - определяет, как следует обращаться к данным этого поля при операциях с базой данных. Однозначно определяет каждое поле в таблице. Одна таблица не может иметь двух полей с одинаковыми именами.
· Тип поля - определяет тип данных, которые могут содержаться в данном поле.
· Размер поля - определяет предельную длину данных, которые могут размещаться в данном поле.
· Формат поля - определяет способ форматирования данных в ячейках таблицы, принадлежащих полю.
· Подпись - определяет заголовок столбца таблицы для данного поля (если подпись не указана, то в качестве заголовка столбца используется свойство Имя поля).
· Значение по умолчанию - то значение, которое вводится в ячейки поля автоматически.
· Условие на значение - ограничение, используемое для проверки правильности ввода данных.
· Обязательное поле - свойство, определяющее обязательность заполнения данного поля при воде данных в таблицу.
Cвойства полей могут различаться в зависимости от типа данных. При работе с Microsoft Access используются следующие типы данных:
· Текстовый - тип данных, используемый для хранения текста ограниченного размера (до 255 символов).
· Поле Мемо - специальный тип данных для хранения больших объемов текста (до 65 535 символов).
· Числовой - тип данных для хранения чисел.
· Дата/время - тип данных для хранения календарных дат и текущего времени.
· Денежный - тип данных для хранения денежных сумм. Для денежных сумм есть некоторые особенности (например, связанные с правилами округления), которые делают более удобным использование специального типа данных.
· Счетчик - специальный тип данных для уникальных (не повторяющихся в поле) увеличивающихся на 1 натуральных чисел, значения которых вводятся в поле автоматически при создании новой записи.
· Логический - используется для хранения логических данных. Такие данные могут принимать только два значения: Истина или Ложь (Да или Нет).
· Поле объекта OLE - специальный тип данных, предназначенный для хранения объектов OLE (графические, аудио- и видеоданные, фрагменты электронных таблиц и др.). Реально такие объекты в таблице не хранятся. Они хранятся в другой части файла базы данных, а в таблице хранятся только указатели на них. Это позволяет существенно ускорить операции с базой данных.
· Гиперссылка - специальное поле для хранения адресов Web-страниц Интернета. При щелчке на ссылке автоматически происходит запуск программы-браузера (например, Internet Explorer) и воспроизведение страницы в его окне.
Создание таблиц начинается с выбора элемента управления Таблицы в окне База данных (рис. 18). Чтобы создать таблицу вручную, следует использовать значок Создание таблицы в режиме конструктора или выбрать пункт Конструктор в управляющем меню окна. Окно Конструктора таблиц представлено на рис. 19.
Рис. 19. Таблица в режиме Конструктор.
В первом столбце вводятся имена полей. Если свойство Подпись для поля не задано, то Имя поля станет одновременно и именем столбца будущей таблицы. Тип для каждого поля выбирают из раскрывающегося списка. Нижняя часть окна содержит список свойств поля, выделенного в верхней части. Некоторые свойства уже заданы по умолчанию, их можно принять или изменить.
При создании таблицы целесообразно задать ключевое поле, являющееся первичным ключом таблицы. Для задания ключевого поля следует щелкнуть на его имени правой кнопкой мыши и выбрать пункт Ключевое поле из контекстного меню или щелкнуть инструмент Ключевое поле на панели инструментов в окне программы (рис. 20).
Рис. 20. Задание ключевого поля таблицы.
Закончив создание структуры таблицы, нужно закрыть бланк. При этом система выдает запрос на сохранение таблицы. После сохранения значок таблицы появляется на вкладке Таблицы в окне База данных (рис. 18).
Ввод данных в таблицу. Заполнение таблицы данными производится с клавиатуры в режиме просмотра данных таблицы (рис. 21). Переход к следующей ячейке можно выполнить клавишей <Tab>. В нижней части таблицы расположена Панель кнопок перехода. Ее элементами управления удобно пользоваться при перемещении по таблице, имеющей большое число записей. Шириной столбцов можно управлять методом перетаскивания их границ с помощью мыши. Сохранение вводимых в таблицу данных выполняется автоматически в режиме реального времени.
Рис. 21. Таблица в режиме просмотра данных.
Если возникнет необходимость изменить структуру таблицы (состав полей или их свойства), таблицу надо открыть в режиме Конструктор. Для этого ее следует выделить в окне База данных и щелкнуть на кнопке Конструктор (рис. 18).
Создание межтабличных связей
Эта операция выполняется с помощью мыши в специальном окне Схема данных (рис. 22), которое открывается соответствующей кнопкой на панели инструментов или командой Сервис > Схема данных. Одновременно с окном Схема данных открывается окно Добавление таблицы, в котором можно выбрать нужные таблицы для включения в структуру межтабличных связей. Если окно не открылось, нужно выбрать команду Добавить таблицу из контекстного меню после щелчка правой кнопкой мыши внутри окна Схема данных.
Рис. 22. Диалоговое окно Схема данных.
Связь между таблицами устанавливается перетаскиванием поля одной связываемой таблицы на одноименное поле другой таблицы. Образовавшаяся межтабличная связь отображается в окне Схема данных в виде линии, соединяющей два поля разных таблиц (рис. 23). При этом одна из таблиц считается главной, а другая - связанной. Главная - это та таблица, которая участвует в связи своим ключевым полем (название этого поля на схеме данных отображается жирным шрифтом). Например, в отношении Сотрудники - Командировки главной является таблица Сотрудники.
Рис. 23. Связанные таблицы в окне Схема данных.
При создании связей между таблицами следует позаботиться об обеспечении целостности данных. Примером нарушения целостности данных может служить следующая ситуация. Если в таблице Сотрудники кто-то удалит запись для одного из сотрудников, но не сделает этого в таблице Командировки, то получится, что согласно таблице Командировки некто, имеющий только абстрактный код, ездил в командировки. Узнать по коду, кто этот сотрудник, будет невозможно - произошло нарушение целостности данных.
Установка связи между таблицами позволяет:
· либо исключить возможность удаления или изменения данных в ключевом поле главной таблицы, если с этим полем связаны какие-либо поля других таблиц;
· либо сделать так, что при удалении (или изменении) данных в ключевом поле главной таблицы автоматически произойдет удаление или изменение соответствующих данных в полях связанных таблиц.
Настройка связи выполняется в окне Изменение связей (рис. 24). В нем показаны названия связанных таблиц и имена полей, участвующих в связи, а также приведены элементы управления для обеспечения условий целостности данных. Если установлен только флажок Обеспечение целостности данных, то удалять данные из ключевого поля главной таблицы нельзя. Если вместе с ним включены флажки Каскадное обновление связанных полей и Каскадное удаление связанных записей, то операции редактирования и удаления данных в ключевом поле главной таблицы разрешены, но сопровождаются автоматическими изменениями в связанной таблице.
Рис. 24. Диалоговое окно Изменение связей.
Это окно открывается, если в окне Схема данных выделить линию, соединяющую поля двух таблиц, щелкнуть на ней правой кнопкой мыши и открыть контекстное меню связи (рис. 25), после чего выбрать в нем пункт Изменить связь.
Рис. 25. Контекстное меню связи в окне Схема данных.
2.3 Работа с формами
Формы позволяют пользователям вводить данные в таблицы базы данных без непосредственного доступа к самим таблицам.
Автоформы. Это средство автоматического создания форм. Автоформа всегда создается на базе только одной таблицы и содержит все поля этой таблицы. Существует три вида автоформ: «в столбец», ленточные и табличные (рис. 26). Автоформа «в столбец» отображает поля только одной записи, ленточная» автоформа отображает одновременно группу записей, табличная автоформа по внешнему виду ничем не отличается от таблицы, для которой она создана.
Рис. 26. Три вида автоформ.
Для создания автоформы следует открыть панель Формы в окне База данных и воспользоваться командной кнопкой Создать. В открывшемся диалоговом окне Новая форма выбирают тип автоформы и таблицу (или запрос), на которой она основывается. После щелчка на кнопке <ОК> автоформа формируется автоматически.
Создание форм с помощью мастера. Мастер форм - специальное средство, создающее структуру формы в режиме диалога с разработчиком. В режиме Мастера форм можно создать форму, базирующуюся как на одной, так и на нескольких таблицах. Можно выбрать нужные поля для включения в форму. Этот режим создания формы является более гибким по сравнению с режимом создания Автоформы.
Мастер форм можно запустить из окна База данных щелчком на значке Создание формы с помощью мастера на панели Формы. Создание формы выполняется в несколько этапов:
1. На первом этапе работы Мастера форм выбирают таблицы и поля, которые войдут в будущую форму:
2. На втором этапе выбирается внешний вид формы:
3. На третьем этапе выбирается стиль оформления формы
4. На последнем этапе выполняется сохранение формы.
Подчиненные формы
Подчиненная форма - это форма, находящаяся внутри другой формы. При этом первичная форма называется главной формой. Подчиненная форма удобна для таблиц, связанных отношением «один-ко-многим». Например, можно создать форму с подчиненной формой для вывода данных из таблиц СОТРУДНИКИ и КОМАНДИРОВКИ (рис. 27).
Рис. 27. Пример формы, содержащей подчиненную форму.
Главная форма и подчиненная форма связаны таким образом, что в подчиненной форме выводятся только те записи, которые связаны с текущей записью в главной форме. Например, когда главная форма отображает данные о конкретном сотруднике, подчиненная форма отображает только те командировки, которые относятся к данному сотруднику.
Структура формы. Форма, если открыть ее в режиме Конструктор (рис. 28), имеет три основных раздела: заголовок формы, область данных и примечание формы. В разделах заголовка и примечания располагаются элементы оформления формы. В разделе данных представлены элементы управления, с помощью которых выполняется отображение данных из таблиц или ввод данных. Разработчик формы может также разместить здесь дополнительные элементы управления для автоматизации ввода данных (переключатели, флажки, списки и др.).
Рис. 28. Форма базы данных в режиме Конструктор.
Элементы управления формы. Форма может содержать элементы управления одного из трех типов: свободные, связанные, вычисляемые. Свободные элементы управления (рисунки, надписи, линии) не связаны с другими объектами базы данных и используются только в целях оформления внешнего вида формы. Связанные элементы управления (поля, переключатели, командные кнопки, списки, присоединенные рамки объектов и др.) отражают в форме состояние тех или иных объектов базы данных. Например, поле формы отображает содержимое некоторого поля таблицы базы данных. Вычисляемые элементы управления отображают результаты вычислений, которые выполняются по определенным формулам. Например, если в таблице базы данных есть поля Цена единицы товара и Количество единиц, то в форму можно включить поле, в котором будет выводиться Стоимость товара, вычисляемая как произведение цены за единицу товара на количество единиц.
Элементы управления, которыми может пользоваться разработчик, представлены на Панели элементов (рис. 29). Ее открывают щелчком на соответствующей кнопке панели инструментов Microsoft Access или командой Вид > Панель элементов.
Рис. 29. Панель элементов.
Выбор элемента управления выполняется одним щелчком на его значке в Панели элементов, после чего следующим щелчком в поле формы отмечается место, куда он должен быть вставлен. Для создания в форме текстовых надписей служит свободный элемент управления Надпись. Элемент Поле отображает содержимое одного из полей таблицы, на которой основана форма. Для создания графических элементов оформления служат элементы управления Рисунок (для вставки рисунка из графического файла), Свободная рамка объекта (для вставки объектов OLE -- звук, анимация, видео). Форма может содержать командные кнопки, которые запускают те или иные операции с объектами базы данных: открывают таблицы или другие формы, выполняют те или иные запросы, хранящиеся в базе данных. Для создания командной кнопки используется инструмент Кнопка.
2.4 Работа с запросами. Запросы на выборку
Если пользователю надо получить данные из БД, он должен использовать специальные объекты -- запросы. Особенность запросов состоит в том, что они извлекают данные из базовых таблиц и создают на их основе временную результирующую таблицу. При сохранении запроса сохраняется не результирующая таблица, а только алгоритм ее получения. Поэтому при следующем выполнении запроса мы, скорее всего, получим другую результирующую таблицу, отражающую новое состояние базы данных.
Если запрос подготовлен и сохранен в базе данных, то для выполнения запроса следует открыть панель Запросы в окне База данных (рис. 30), выбрать запрос и открыть его двойным щелчком на значке запроса - откроется результирующая таблица, соответствующая данному запросу.
Рис. 30. Запросы в окне базы данных.
Запросы лучше создавать вручную в режиме Конструктор. Для этого используется специальный значок Создание запроса в режиме конструктора в окне База данных. Он открывает специальный бланк, называемый бланком запроса по образцу (рис. 31). Он состоит из двух областей. В верхней отображается структура таблиц, к которым адресован запрос, а нижняя область разбита на столбцы - по одному столбцу на каждое поле будущей результирующей таблицы.
Рис. 31. Запрос в режиме Конструктор.
Для включения полей базовых таблиц в результирующую таблицу запроса следует дважды щелкнуть соответствующее поле в верхней части бланка. При этом автоматически заполняются столбцы в нижней части бланка.
Упорядочение записей в результирующей таблице. Если необходимо, чтобы данные, отобранные в результате работы запроса, были упорядочены по какому-либо полю, применяют сортировку. В нижней части бланка имеется специальная строка Сортировка. При щелчке на этой строке появляется раскрывающийся список, в котором можно выбрать метод сортировки: по возрастанию или по убыванию. В результирующей таблице данные будут отсортированы по тому полю, для которого задан порядок сортировки. На рисунке 32 задана сортировка по полю Фамилия.
Управление отображением данных в результирующей таблице. В нижней части бланка запроса по образцу имеется строка Вывод на экран. По умолчанию предполагается, что все поля, включенные в запрос, должны выводиться на экран, но это не всегда целесообразно. Бывают случаи, когда некое поле необходимо включить в запрос, но нежелательно, чтобы пользователь базы видел его содержание. В таких случаях отображение содержимого на экране запрещают сбросом флажка Вывод на экран. На рисунке 32 поле Город в результирующей таблице не будет показываться, хотя оно содержится в таблице. Необходимость включения этого поля в запрос обусловлена тем, что по нему задано условие отбора данных.
Рис. 32. Задание условий сортировки записей и показа полей в результирующей таблице запроса.
Сформировав структуру запроса, его закрывают, дают ему имя и в дальнейшем запускают двойным щелчком на значке в окне База данных.
Простые запросы на выборку
Критерий отбора записей |
Запись условия отбора |
|
Значение в поле начинается с символа "А", остальные символы могут быть любыми |
А* |
|
Значение в числовом поле = 60 |
= 60 |
|
Значение в текстовом поле НЕ равно "Ontario" |
NOT "Ontario" |
|
Значения в поле типа дата в диапазоне от 1.12.96 до 15.12.96 |
BETWEEN 1.12.96 AND 15.12.96 |
|
Значение в числовом поле в диапазоне от 10 до 100 |
BETWEEN 10 AND 100 |
|
Значение в текстовом поле равно "инженер" или "бухгалтер" |
"инженер" OR "бухгалтер" |
|
Значение в поле логического типа равно TRUE (истина) |
TRUE |
Такие запросы используются для отбора записей из одной или нескольких взаимосвязанных таблиц в соответствии с заданными критериями отбора. Критерии отбора записей записываются в виде условий отбора в строке Условие отбора бланка запроса по образцу и расположенных под ней строках. Условия отбора записываются по определенным правилам записи. В следующей таблице приведены примеры записи условий отбора.
Условия отбора для нескольких полей могут быть записаны в одной строке или в разных строках. В первом случае при выполнении запроса будут отбираться те записи из таблиц, для которых выполнены все условия отбора. Если условия отбора находятся на разных строках бланка, то будут отбираться те записи, для которых выполняется хотя бы одно из условий.
Например, в случае записи условий отбора так, как показано на рисунке 33, будут отбираться те записи из таблицы СОТРУДНИКИ, для которых значение в поле КодСотрудника больше 4 и при этом значение в поле Оклад меньше 3000.
Рис. 33. Пример записи условий отбора в запросе.
В случае записи условий отбора так, как показано на рисунке 34, будут отбираться записи из таблицы СОТРУДНИКИ, для которых значение в поле КодСотрудника больше 4, или записи, для которых значение в поле Оклад меньше 3000, а также записи, для которых справедливы оба условия отбора.
Рис. 34. Пример записи условий отбора в запросе.
Вычисления в запросах на выборку
Результирующие таблицы запросов на выборку могут включать не только поля базовых таблиц, но и новые поля, значения в которых получаются как результат вычислений с использованием данных из базовых таблиц. Поле, содержимое которого получается как результат расчета по содержимому других полей, называется вычисляемым полем. Вычисляемые поля существуют только в результирующих таблицах запросов. В исходных таблицах такое поле создать нельзя.
Для создания такого поля вместо имени поля записывается формула в следующем формате:
Имя поля: выражение
где выражение - формула для вычисления нужного значения.
Выражение может содержать: функции, имена полей, знаки действий, константы. При этом имена полей заключаются в квадратные скобки.
Действия могут быть:
· арифметические: + (сложение), - (вычитание), * (умножение), / (деление), ^ (возведение в степень)
· логические: And (логическое умножение), Or (логическое сложение), Not (логическое отрицание)
· сравнения: > (больше), >= (больше либо равно), < (меньше), <= (меньше либо равно), = (равно),<> (не равно)
· соединения текстовых цепочек: & (например: [Фамилия] & " " & [Имя])
На рисунке 35 показан пример запроса с вычисляемым полем Налог. При конструировании запроса в заголовке поля записывается формула Налог: [Оклад]*0,13.
В результирующей таблице появится поле с именем Налог, значения в котором будут получены как результат умножения соответствующих значений из поля Оклад на число 0,13.
Чтобы вводить формулу было удобнее, можно нажать на клавиатуре Shift + F2. Открывается диалоговое окно Область ввода для ввода формулы.
Удобно пользоваться для ввода формул Построителем выражений. Для этого нужно щелкнуть правой кнопкой в поле ввода формулы и выбрать команду Построить. После этого строится выражение формулы, при этом почти все составляющие элементы формулы (имена полей таблиц, знаки математических операций и т.д.) выбираются с помощью мыши в диалоговом окне построителя выражений. Это позволяет свести к минимуму ошибки ввода.
Запросы с параметром
Запросы с параметром - специальный тип запросов, которые позволяют пользователю самому ввести критерий отбора данных на этапе выполнения запроса. При выполнении такого запроса на экран будет выводиться диалоговое окно с приглашением ввести значение какого-либо параметра. Это значение будет использовано в качестве критерия отбора записей из таблиц. Этим приемом обеспечивается гибкость работы с базой данных. Запросы с параметром создаются тогда, когда предполагается, что данный запрос придется выполнять многократно при различных значениях параметров.
При конструировании запроса с параметром в строке Условие отбора в квадратных скобках указывается текст, который будет выведен в диалоговом окне при выполнении этого запроса (рис. 38). Пользователь должен будет ввести с клавиатуры значение запрашиваемого параметра. Это значение будет использовано для отбора записей из базовых таблиц и включения их в результирующую таблицу запроса.
Рис. 38. Запрос с параметром-значением.
Если качестве параметров отбора нужно в указать верхнюю и нижнюю границы какого--либо значения, то следует ввести условие отбора в виде:
BETWEEN [Введите нижнюю границу] AND [Введите верхнюю границу]
Например,
BETWEEN [Введите нижнюю дату] AND [Введите верхнюю дату]
В этом случае при выполнении запроса будут поочередно запрашиваться значения нижней и верхней границы параметра, которые будут использованы для отбора записей из таблиц (рис. 39).
2.5 Итоговые запросы и запросы на изменение данных
Итоговый запрос - это запрос, в котором выводятся результаты статистических расчетов по какой-либо группе записей из одной или нескольких таблиц. Можно находить сумму (функция Sum), среднее значение (функция Avg), наибольшее значение (функция Max) или наименьшее значение (функция Min), количество знаний в группе (функция Count).
Процедура создания итогового запроса похожа на процедуру создания запроса на выборку. При выполнении такого запроса требуется группировать записи по совпадающим значениям в каком-либо поле таблицы. Для выполнения группировки записей нужно щелкнуть по кнопке Групповые операции на панели инструментов. В бланке запроса по образцу появляется дополнительная строка Групповая операция. В тех полях, по которым проводится группировка, надо установить функцию Группировка. В тех полях, где проводится итоговые операции, нужно в строке Групповая операция раскрыть список и выбрать одну из функций (Sum, Avg, Max, Min, Count и т. д.)
Пример. Таблица содержит данные о должностях и размерах окладов.
Можно создать запрос для определения среднего оклада, наибольшего оклада и наименьшего оклада для каждой должности (рис. 41). В этом случае следует задать группировку по полю Должность и выбрать соответствующие функции в поле Оклад, включив это поле в бланк запроса трижды.
Рис. 41. Создание итогового запроса.
Результатом выполнения запроса будет следующая таблица (рис. 42):
Рис. 42. Результат выполнения итогового запроса.
Запрос на изменение данных - это запрос, который за одну операцию вносит изменения в несколько записей таблицы. Существует четыре типа запросов на изменение данных: на удаление записей, на обновление записей, на добавление записей, на создании таблицы.
Запрос на удаление записей удаляет группу записей из одной или нескольких таблиц. С помощью запроса на удаление можно удалять только всю запись, а не отдельные поля внутри нее.
Создание запроса на удаление записей таблицы
1. Создать новый запрос, включив в него таблицы, из которых необходимо удалить записи.
2. В режиме Конструктор нажать на кнопку Тип запроса и выбрать команду Удаление (рис. 43).
3. Для таблиц, из которых нужно удалить записи, переместить символа « * » из списка полей таблицы в бланк запроса в строку Поле. В строке Удаление появляется при этом текст Из.
4. Включить в бланк запроса только те поля, для которых устанавливается условие отбора. В строке Удаление в этих полях появляется текст Условие.
5. Ввести условия отбора в строку Условие отбора для полей, перемещенных в бланк запроса.
6. Для предварительного просмотра удаляемых записей нажать кнопку Вид на панели инструментов.
7. Для удаления записей нажать кнопку Запуск на панели инструментов.
Пример. Требуется удалить из таблицы СОТРУДНИКИ все записи о сотрудниках, принятых на работу после 01.01.2000.
При заполнении бланка запроса перетаскиваем символ « * » в строку Поле первого столбца, включаем в бланк также поле Дата назначения. Для поля Дата назначения в строке Условие отбора вводим условие: >01.01.2000 (рис. 43).
В результате выполнения этого запроса из таблицы СОТРУДНИКИ будут удалены те записи таблицы, для которых значение в поле Дата назначения больше 01.01.2000.
Запрос на обновление записей вносит общие изменения в группу записей одной или нескольких базовых таблиц базы данных.
Создание запроса на обновление записей таблицы
1. Создать новый запрос, включив в него таблицы, содержащие записи, которые следует обновить.
2. В режиме Конструктор нажать кнопку Тип запроса на панели инструментов и выбрать Обновление.
3. Включить в бланк запроса поля, которые нужно обновить, а также поля, для которых нужно определить условие отбора.
4. Для полей, которые нужно обновить, в ячейку Обновление ввести выражение или значение, которое должно быть использовано для изменения полей.
5. Для полей, по которым нужно выполнить отбор обновляемых записей, ввести условия отбора.
6. Для обновления записей нажать кнопку Запуск на панели инструментов.
Пример. Требуется создать запрос на обновление, после выполнения которого в таблице СОТРУДНИКИ будут увеличены на 20% оклады сотрудников, принятых на работу до 01.01.2000.
При заполнении бланка запроса включаем в него поля Оклад и Дата назначения из таблицы СОТРУДНИКИ.
Для поля Оклад в строке Обновление вводим правило обновления: [Оклад] * 1,2
Для поля Дата назначения в строке Условие отбора вводим условие: < 01.01.2000 (рис. 44).
В результате выполнения этого запроса в таблице СОТРУДНИКИ будут изменены значения в поле Оклад в тех записях таблицы, для которых значение в поле Дата назначения меньше 01.01.2000.
Запрос на создание таблицы создает новую базовую таблицу (имена базовых таблиц указаны на вкладке Таблицы в окне базы данных) на основе всех или части данных из одной или нескольких таблиц. Запрос на создание таблицы полезен для выполнения следующих действий:
· Создание таблицы для экспорта в другую базу данных Microsoft Access. Например, требуется создать таблицу, содержащую несколько полей из таблицы СОТРУДНИКИ, а затем экспортировать эту таблицу в базу данных, используемую отделом кадров.
· Создание резервной копии таблицы.
· Создание архивной таблицы, содержащей старые записи. Например, можно создать таблицу, сохраняющую все старые заказы, прежде чем удалить их из текущей таблицы.
Подобные документы
Теоретические основы проектирования баз данных. Файл-серверные приложения и "настольные" СУБД. Архитектура клиент-сервер, серверы БД и инструментальные средства. Основы работы с Microsoft Access, работа с таблицами, запросами, формами, отчетами.
учебное пособие [419,6 K], добавлен 05.11.2012Основные этапы проектирования базы данных. Access как система управления базами данных (СУБД), ее предназначение, отличительные возможности. Работа с таблицами, их создание и редактирование. Порядок создания запросов. Способы защиты баз данных.
лабораторная работа [3,1 M], добавлен 18.08.2009Принципы работы с реляционными базами данных в среде Microsoft Access. Основные положения базы данных Access. Составление таблиц, запросов, отчетов, страниц и модулей. Основные структуры представления базы данных. Определение связей между таблицами.
контрольная работа [2,6 M], добавлен 03.04.2014Состав, расширение баз данных Access (Microsoft Office). Выполнение запросов, заполнение форм и таблиц. Типы данных Microsoft Access. Средства создания объектов базы данных СУБД. Дополнительные возможности запросов. Свойства полей. Режим работы с формами.
презентация [3,0 M], добавлен 28.10.2014Создание моделей данных, основных таблиц с помощью конструктора таблиц, связей между таблицами, форм для заполнения таблиц, запросов на выборку данных, отчетов для вывода на печать и начальной кнопочной формы. Основные объекты Microsoft Access.
контрольная работа [4,5 M], добавлен 18.03.2012Проектирование реляционных баз данных. Основные типы модулей. Исходное отношение, нормализация. Процесс создания базы данных в программном продукте Microsoft Access. Организация связей, обеспечение целостности данных. Формирование запросов, отчёт.
курсовая работа [3,4 M], добавлен 24.04.2014Применение Microsoft Office Access для создания базы данных "Гостиница" с целью ведения списка постояльцев и учета забронированных мест. Методы построения таблиц, запросов, форм, отчетов, макросов и модулей. Реализация концептуальной и логической модели.
курсовая работа [418,1 K], добавлен 14.06.2011Характеристика Microsoft Access как системы управления базами данных. Особенности работы с различными объектами: таблицами, запросами, формами, отчётами, страницами, макросами, модулями. Разработка базы данных "Видеокарты", создание запросов и отчетов.
курсовая работа [4,2 M], добавлен 18.08.2014Основные понятия базы данных. Разработка сложной формы для обработки данных. Модели организации данных. Архитектура Microsoft Access. Реляционные связи между таблицами баз данных. Проектирование базы данных. Модификация данных с помощью запросов действий.
лабораторная работа [345,5 K], добавлен 20.12.2011Рассмотрение интерактивной реляционной системы управления базами данных Microsoft Access. Графические возможности программы; создание таблиц, запросов, формуляров, отчетов, макросов и модулей. Сравнительная характеристика баз данных Clipper и Access.
курсовая работа [1,1 M], добавлен 22.01.2013