Базы данных: модели, разработка, реализация

Проектирование реляционных баз данных с использованием декомпозиционного и ER–методов. Вопросы поддержки целостности, защиты информации и параллельной обработки данных. Приложения для работы с базами данных с использованием СУБД Access и языка VBA.

Рубрика Программирование, компьютеры и кибернетика
Вид учебное пособие
Язык русский
Дата добавления 01.03.2011
Размер файла 211,5 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

В dBASE - подобных СУБД использован реляционный подход к организации данных, т.к. каждый файл .dbf представляет собой двумерную таблицу, которая состоит из фиксированного числа столбцов и переменного числа строк (записей). С помощью командных языков этих СУБД создаются и исправляются макеты файлов .dbf (описание таблиц), создаются индексные файлы, пишутся программы работы с базами данных (чтение, поиск, модификация данных, составление отчетов и многое другое). Характерной особенностью файла .dbf является простота и наглядность: физическое представление данных на диске в точности соответствует представлению таблицы на бумаге.

Однако в целом системы, построенные на основе файлов .dbf, следует считать устаревшими. Многие механизмы реляционных БД в dBASE - подобных системах либо не поддерживаются, либо создаются пользователями и программистами «кустарным» способом.

Большую популярность до сего времени имеют и другие СУБД ( с другим форматом файлов) - Paradox, Clarion, dv_Vista и т.д. Cледует подчеркнуть, что перечисленные системы ведут родословную от MS DOS, однако нынче почти все они усовершенствованы и имеют версии для Windows.

Среди современных реляционных систем наиболее популярны СУБД для Windows - Access фирмы Microsoft, Approach фирмы Lotus, Paradox фирмы Borland.

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

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

Вместе с тем, в центр современных информационных технологий перемещаются более мощные реляционные СУБД с так называемым SQL - доступом. В основе этих СУБД лежит технология «клиент - сервер».

Среди ведущих производителей таких систем фирмы Oracle, Centura, Sybase, Informix, Microsoft и другие.

Следующее направление в развитии СУБД это объекто - реляционные и объектные СУБД. Объектно - реляционные базируются на реляционных СУБД со встроенной поддержкой объектной ориентации. К таким СУБД относятся DB2 и Oracle фирм IBM и Oracle соответственно, Jllustra фирмы Informix, Ingres компании Computer Associates.

Среди объектных СУБД можно назвать Objectvity фирмы Objectvity, Ontos DB фирмы Ontos, ObjectStore фирмы ObjectDesing, Poet компании Poet Software GmbH, O2 фирмы О2 Technology, Itasca фирмы Ibex Computing, UniSQL фирмы UniSQL, Jasmine компании Computer Associates, ODB-Jupiter фирмы НПЦ «Интелтек Плюс» и другие.

3.2 СУБД Access

3.2.1 Вводные замечания

СУБД Access входит в состав пакета Microsoft Office и хорошо интегрирована с другими программными продуктами Microsoft.

Кроме того, она хорошо зарекомендовала себя при использовании в сети.

Несомненным достоинством Access является также то, что эта программа создавалась сразу для Windows и поэтому не содержит в себе ограничений, накладываемых MS DOS.

Access - интегрированная среда проектирования, работа в которой базируется на манипулировании объектами и их атрибутами.

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

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

- с применением прогрессивных стандартов OLE - автоматики (Object Linking and Embedding - связывание и внедрение объектов) и компонентной объектной модели (COM) можно быстро строить приложения из различных компонентов других приложений и интерфейсов;

- развитые механизмы свойств помогают легко связывать формы и отчеты (объекты внешнего интерфейса) с таблицами и запросами (объектами данных);

- стандартного вида приложения и компоненты приложений быстро создаются с использованием мастеров и шаблонов.

В Access используется объектно -ориентированное программирование (ООП). В основе ООП лежит идея «упакованной функциональности». Прикладная программа строится из объектов с некоторыми свойствами и некоторых операций, которые эти объекты могут выполнять.

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

Объекты приложения Access могут быть вполне «осязаемыми» для пользователя, как, например, окна диалога, командные кнопки, текстовые поля и т.д. Объекты могут также представлять собой некоторые категории, которые непосредственно не являются частью пользовательского интерфейса и которые нельзя «потрогать» курсором мыши. Это, например, рабочие области, соединения и наборы записей и т.д.

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

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

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

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

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

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

Стандартные методы Access подразделяются на две категории:

- процедуры, реагирующие на стандартные события;

- методы, вызываемые явно в программном коде разработчика.

Access располагает большим набором стандартных методов, которые удовлетворяют любые потребности программиста.

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

Примечание. Свойства и методы называют также интерфейсом объекта.

Важнейшее понятие ООП - класс. Класс обычно описывается как шаблон или проект, из которого впоследствии будет создан объект. Каждый объект в этом случае является экземпляром класса.

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

Данные объекта обычно называются переменными - членами, переменными экземпляра или полями экземпляра. Следует отметить, что объект, который является экземпляром класса, должен иметь некоторые значения переменных экземпляра. Эти значения определяют текущее состояние объекта. Кроме того:

- функции и процедуры в классе (модуле класса) Access соответствуют методам и свойствам объекта;

- пользовательский доступ к текущему состоянию объекта (т.е. к полям экземпляра) только через эти методы и свойства.

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

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

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

Отношение между объектами. В дополнение к изменению характеристик отдельных объектов в приложении должны быть определены отношения между объектами. Например, при связывании формы с таблицей определяется отношение между объектом внешнего интерфейса и объектом базы данных. Если данные, отбираемые из таблицы и представленные в форме, переупорядочиваются, отношение между этими объектами переопределяется. В то же время для командной кнопки, которая, будучи нажата, открывает форму, действует несколько иная зависимость: отношение между командной кнопкой и формой определяет код метода, который добавляется к процедуре Click() командной кнопки.

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

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

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

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

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

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

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

Существует много способов управления в Microsoft Access: система меню, панели инструментов, контекстные меню, использование указателя мыши и комбинаций «горячих клавиш». Многие средства ввода команд просто дублируют друг друга. Наиболее удобными считаются применение контекстного меню и мыши.

При работе в сети Access разрешает 255 одновременных обращений и может обрабатывать файлы размером до 2 Гбайт.

3.2.2 Создание базы данных

Сразу после запуска Access открывает окно. В нем пользователю предлагается выбрать один из следующих вариантов: создать новую базу данных, запустить мастер по созданию базы данных, открыть существующую базу данных. Если поставить переключатель в положение Новая база данных и нажать кнопку ОК, то откроется окно Файл новой базы данных, в котором нужно указать папку, куда будет записываться создаваемый файл, тип файла из списка и имя файла. Сохранить файл базы данных нужно прежде, чем приступить к созданию таблиц. Поскольку базы данных быстро увеличиваются в размерах, в качестве носителя для базы следует использовать жесткий диск или сменный диск большого размера. После сохранения базы откроется окно База данных. Оно содержит семь вкладок: таблицы, формы, отчеты , запросы, макросы, модули.Visual Basic, страницы доступа к данным.

3.2.3 Создание и работа с таблицами

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

Если в БД создана хотя бы одна таблица, то в данном окне доступны кнопки Открыть и Конструктор.

После нажатия на кнопку Создать программа откроет окно диалога Новая таблица. Продолжить работу можно используя: режим таблицы, конструктор, мастера таблиц, импорта таблиц и связи с таблицами. Рассмотрим различные режимы работы.

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

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

Основной “технологический “ прием, который необходимо освоить при работе с таблицей, - выделение ячеек мышью. Для выделения одной ячейки необходимо передвинуть указатель мыши в ее левую часть так, чтобы он превратился в жирный белый крестик, и нажать кнопку мыши. При двойном щелчке в ячейке будут выделены только данные. Для выделения столбца достаточно щелкнуть по его заголовку. Для выделения группы смежных столбцов необходимо, при нажатых клавише Shift и кнопки мыши, провести по заголовкам выделяемых столбцов. Те же действия, но без нажатой клавиши Shift, приведут к перемещению столбца по горизонтали. Для выделения записи нужно щелкнуть в ее области выделения, а для выделения нескольких записей провести мышью при нажатой кнопке по нужным областям выделения.

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

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

Над строками таблицы можно выполнять операции: изменять высоту строки (или нескольких строк) и выполнять три стандартные операции перемещения данных с использованием буфера обмена.

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

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

Команда Шрифт обеспечивает доступ к обычной для Windows - приложений процедуре выбора шрифтов, их начертания, размера и цвета. Команда Отобразить столбцы открывает список полей, в котором можно указать, какие поля должны быть видимы, а какие -- нет. Таким образом, эта команда служит не только для «показа» полей, как подразумевает ее название, но и для их скрытия. Следует обратить внимание, как распределены команды по контекстным меню. Команды фильтрации находятся в меню для ячейки таблицы и для всей таблицы. Команды сортировки находятся в меню, связанными с ячейкой и со столбцом. Команды для работы с буфером обмена имеются сразу в нескольких меню.

Существуют две команды сортировки: «по возрастанию» и «по убыванию». Они производят сортировку всего столбца, независимо от того, какой его фрагмент выделен.

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

Команда Добавить объект доступна только в том случае, когда поле таблицы имеет тип «Поле объекта 0LЕ». Внедрение объектов в таблицу -- это уже высший пилотаж в конструировании баз данных.

Если в таблице имеется поле типа «Гиперссылка», пункт Гиперссылка позволяет вставлять в базу данных ссылки на самые различные документы и файлы .

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

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

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

После того как таблица закрыта, она отображается в окне базы данных в виде значка и своего имени. Как и положено современной СУБД, Ассеss позволяет менять структуру таблицы и в дальнейшем, на любом этапе работы с базой данных. Для этого предусмотрен режим конструктора.

Режим «Конструктор». Для запуска Конструктора после нажатия кнопки Создать в окне Новая таблица надо выбрать опцию Конструктор.

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

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

Первоначально бланк в верхней части окна пуст. Для создания таблицы необходимо, как минимум, заполнить графы «Имя поля» и «Тип поля». Графа «Описание» не является обязательной и предназначена для текста подсказки, который выводится в нижней строке экрана во время работы с таблицей.

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

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

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

Рассмотрение типа данных полей ограничим из-за ограниченности объема пособия типами Гиперссылка , Мемо и Мастер подстановок.

Гиперссылка. Использовать форматы для этого поля теоретически возможно, но на самом деле они не определены. В реальной задаче вероятнее всего необходимо, чтобы это поле допускало произвольный формат, поскольку ссылки на файлы могут быть самыми разными. Для создания гиперссылки надо выбрать команду из главного меню Вставка/Гиперссылка или команду из контекстного меню Гиперссылка/Изменить гиперссылку. Поиск адреса документа производится в диалоговом окне. В этом окне можно указать не только путь к документу, но и адрес объекта внутри файла. Доступ к данным осуществляется путем запуска приложения, позволяющего просмотреть указанный файл.

Поле МЕМО. Поля этого типа подобны текстовым, но могут содержать до 55535 символов. Вкладка свойств поля МЕМО такая, как у поля логического типа за исключением последней строки, где вместо строки Индексированное поле используется строка Пустые строки.

Такие поля могут выполнять разные функции. Во-первых, они обеспечивают совместимость с базами данных других СУБД, поддерживающих такие поля (например, «dВА5Е или FохРго). Это может оказаться важным при выполнении операций импорта или экспорта баз данных. Во-вторых, поле МЕМО может служить хранилищем текста. Но увидеть такой текст можно будет только в форме или отчете, если для поля МЕМО будет создан элемент управления «поле». Лучше всего создавать его при помощи Мастера. Область для вывода текста может иметь размеры, позволяющие увидеть сразу несколько строк, а если весь текст не уместится в границах элемента управления, то будет создана полоса вертикальной прокрутки.

Мастер подстановок. Последний элемент в списке типов полей -- Мастер подстановок -- не является названием типа, а представляет собой команду для запуска Мастера, позволяющего создать связь между таблицами. Для пояснения работы Мастера рассмотрим небольшой пример. Допустим, в базе данных имеются две таблицы, каждая из которых имеет по два поля типа «Счетчика и «Числовое». Содержимое таблиц показано на рис. 3.1. Для облегчения понимания существа дела в одну из них -- Таблица1 -- введены числа, начинающиеся с цифры 1, а в другую -- Таблица2 -- числа, начинающиеся с цифры 2. Имена полей также снабжены соответствующими цифрами. Задача: выполнить подстановку поля Числа1 из Таблица1 в Таблица2.

Код

Числа1

Текст 1

Код2

Числа2

10

115

Телевизоры

20

221

11

115

Ведра

21

222

12

117

Гвозди

22

223

13

118

Кабель

23

224

14

119

Обувь

24

225

15

120

Магнитолы

25

225

15

121

Мебель

(Счетчик)

Рис.2.1 Исходные данные для операции подстановки

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

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

На третьем шаге необходимо выбрать список доступных полей выбранной таблицы.

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

Схема с двумя списками и кнопками со стрелками между ними часто используется в современных программах, особенно фирмы Мiсrоsоft. Поэтому, встретив подобную конструкцию, знайте, чего от вас ждут: сформировать правый список, используя элементы левого. После того как поля выбраны (в данном случае - это одно поле Числа1), можно переходить к следующему шагу.

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

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

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

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

Дальнейшее исследование подстановки необходимо производить в режиме просмотра таблицы.

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

Если необходимо удалить поле подстановки, то нужно вначале ликвидировать связь между таблицами. Для этого командой Сервис/Схема данных вызывается графическое представление связи, щелкается по соединяющей линии, чтобы она стала жирной и выбирается команда Удалить из контекстного меню. После этого поле подстановки можно удалить в режиме конструктора.

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

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

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

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

Наиболее просто импорт выполняется из баз данных, например, dBASE, FoxPro, Paradox. Это объясняется тем, что в файлах разных СУБД определены одинаковые по смыслу элементы, имеющие схожие свойства. Импорт электронной таблицы Excel проходит не так гладко и требует определенного диалога с пользователем для настройки алгоритма преобразования. Но если даже правильно ответить на все вопросы программы, нет гарантии, что данные будут импортированы без потерь и искажений. В результате может понадобиться несколько приемов переноса.

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

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

Связь с таблицами. Существует несколько форматов баз данных, которые поддерживаются в Access, поэтому в некоторых случаях нет необходимости импортировать базу данных, а достаточно установить связь с файлом. Такой способ позволяет работать с файлом базы данных, используя «родную» для него СУБД.

Работа с таблицами. Access поддерживает четыре типа отношений между таблицами: один-к-одному, один-ко-многим, много-к-одному, много-ко-многим.

Примечание. Связь много-ко-многим реализуется с использованием вспомогательных таблиц.

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

Обязательным условием нормальной работы с базой данных является однозначная идентификация каждой записи. Для этого каждой записи Access автоматически назначает индивидуальный номер. Автоматическая нумерация записей выполняется в том случае, если таблица включает поле с типом данных Счетчик. Чтобы значение в таком поле увеличивалось на 1 для каждой новой записи, свойство Новые значения должно иметь значение Последовательные.

Запись таблицы активизируется при выполнении на ней щелчка. Переходить от записи к записи и от поля к полю таблицы позволяют также клавиши управления курсором. С помощь клавиш Tab и Enter можно перемещаться по полям слева направо, а посредством комбинации клавиш Shift+Tab - в обратном направлении.

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

В программе Access по умолчанию содержимое поля полностью выделяется, если переход произведен с помощью клавиш управления курсором или клавиши Tab. Если же поле активизировано путем выполнения на нем щелчка, то в нем появляется курсор ввода. Это связано с наличием в Access двух режимов обработки данных таблицы - режима замены и режима вставки.

Режим замены. В режиме замены содержимое активизированного поля полностью маркируется и удаляется в момент ввода новых данных.

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

Переходить из режима вставки в режим замены и наоборот позволяет клавиша Ins. Режим замены обозначается индикатором ЗМЩ в строке состояния окна Access.

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

После активизации поля записи в строке состояния появляется комментарий, который введен пользователем в поле Описание при составлении таблицы.

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

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

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

В поле Образец диалогового окна поиска указывается искомый объект (содержимое поля). Если не будут выполнены другие установки, Access исследует все поля активной колонки на предмет совпадения их содержимого с объектом поиска. По умолчанию регистр при поиске не учитывается. Чтобы программа нашла только те поля, содержимое которых соответствует объекту поиска и по способу написания, надлежит активизировать опцию С учетом регистра.

Существенно расширить круг поиска можно, применив символы подстановки * и ?. Звездочка заменяет любое количество символов, а знак вопроса - только один символ.

По умолчанию в диалоговом окне поиска установлена опция Только в текущем поле, вследствие чего поиск осуществляется только в активном поле. Это позволяет быстрее получить результат. Название активного поля появляется в строке заголовка окна поиска. Если необходимо выполнить поиск во всей таблице, следует отключить опцию Только в текущем поле. Программа начинает выполнять поиск после нажатия кнопки Найти. При обнаружении искомого объекта Access выделяет его, а в строке состояния появляется сообщение Образец поиска обнаружен. С помощью кнопки Найти далее можно проверить остальные поля на наличие в них объекта поиска.

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

Другое ограничение сферы поиска устанавливается с помощью опции С учетом формата полей, которую можно использовать только совместно с опцией Только в текущем поле. Например, пользователю необходимо отобразить в поле День рождения даты рождения за июнь. Если он использует в качестве объекта поиска сочетание букв июн, он ничего не добьется, так как внутренние форматы даты и времени отличаются от форматов их отображения. Однако объектом поиска июн все же можно воспользоваться, если установить опцию С учетом формата полей. При ее активизации объект поиска сопоставляется с содержимым поля в формате отображения. (При этом должно быть задано совпадение объекта поиска с любой частью поля, поскольку название месяца является лишь частью содержимого поля День рождения). Существует другой способ решения данной задачи: указать в качестве объекта поиска порядковый номер месяца июнь - 05. Другим средством быстрого перехода к нужным записям являются фильтры.

Фильтрация данных в таблице. Для применения фильтра необходимо:

1.Раскрыв таблицу для просмотра, нажать кнопку Изменить фильтр на панели инструментов. В окне таблицы будет видна только пустая запись для ввода критериев фильтрации.

2. Ввести в нужное поле необходимый критерий (это могут быть первые цифры кода, первые буквы или фамилия целиком, адрес и т.д.).

3.Нажать кнопку Применить фильтр на панели инструментов или команду Фильтр/Применить фильтр.

4. Для возврата к прежнему состоянию необходимо нажать кнопку Удалить фильтр на панели инструментов.

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

В тех случаях, когда условие фильтрации формируется достаточно сложно, применяется расширенный фильтр. Его окно активизируется нажатием кнопки Расширенный фильтр или командой Записи/Фильтр/Расширенный фильтр. Окно разбито на две панели. На верхней размещается список полей, а на нижней бланк для формирования условия фильтрации. Каждый столбец бланка предназначен для одного поля таблицы. Строки Условия отбора предназначены для ввода одного или нескольких значений поля. Фильтрация для одного поля выполняется для каждого введенного в бланк значения поля (объединение по ИЛИ). Здесь же можно задать сортировку. Сортировка может быть задана по любому полю независимо от того по какому полю производится фильтрация.

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

Отбор записей для расширенного фильтра выполняется по команде Применить фильтр контекстного меню, которое вызывается щелчком правой кнопки мыши вне бланка. Здесь же имеется команда Очистить бланк для его очистки.

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

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

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

Удаление данных. В Access для удаления данных предназначена команда Удалить из меню Правка. Удаляемую запись необходимо маркировать, иначе указанная команда не будет доступна. Выделение записей осуществляется посредством колонки маркировки,

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

Поле таблицы маркируется при выполнении щелчка на его заголовке, но удалить такое поле нельзя. Удаление полей осуществляется в окне конструктора таблицы.

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

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

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

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

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

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

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

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

Подобным образом подбирается высота строки, которая в Access измеряется в пунктах. Разделительные линии между строками перемещаются в колонке маркировки. Установить точные значения высоты строк позволяет команда Высота строки из меню Формат.

Установка параметров шрифта. Размер площади, занимаемой полем, во многом зависит от вида и размера применяемого шрифта. Для установки параметров шрифта предназначена команда Шрифт из меню Формат. Выбранные вид, размер и начертание шрифта применяются ко всем записям таблицы.
Параметры ячеек. Для установки параметров ячеек в Access предназначено специальное диалоговое окно Вид сетки, которое открывается вследствие активизации команды Ячейки из меню Формат.
В области Вид сетки можно выбрать способ оформления ячеек: - Обычное - стандартное оформление; - Приподнятое - невыделенные ячейки таблицы напоминают выпуклые кнопки, а маркированные - нажатые кнопки; - Утопленное- этот способ оформления противоположен предыдущему.
В случае выбора первого способа оформления ячеек становятся активными опции По горизонтали и По вертикали в области Линии сетки, которые позволяют отменять и восстанавливать отображение разделительных линий в таблице.
Поля Цвет линий сетки и Цвет фона служат для выбора цвета разделительных линий и фона ячеек.
Изменение расположения строк/колонок. В процессе работы с готовой таблицей часто приходится вставлять, переносить и удалять поля. Желание пользователя получить удобную в применении таблицу (например, упорядочить ее поля таким образом, чтобы наиболее часто используемые из них располагались ближе к левому краю) является вполне естественным. Выполнение такого требования влечет за собой изменение структуры таблицы.
Поставленную задачу можно легко решить с помощью мыши. Для этого необходимо маркировать поле, установить указатель мыши на заголовке маркированного поля, удерживая нажатой левую кнопку манипулятора, переместить поле в позицию перед полем, куда необходимо его вставить и отпустить кнопку мыши.
Изменить расположение полей можно и в окне конструктора таблицы. Для этого необходимо переместить строки в проекте таблицы.
Иногда целесообразно не перемещать поля, а копировать их, что позволяет сократить время, необходимое для создания таблицы, в которой многие поля имеют идентичные параметры. Чтобы, создавая очередное поле, не производить установку параметров повторно, следует скопировать имеющееся поле. Копирование полей осуществляется следующим образом:
- Активизируется режим конструктора таблицы.
- Маркируется копируемое поле.
- Выбирается меню Правка команда Копировать.

- Устанавливается курсор в строке проекта таблицы, соответствующей полю, перед которым нужно вставить копию.

- Вставляется пустая строка перед строкой, куда необходимо скопировать запись, для чего активизируется команда Вставка строки из меню Правка.

После вставки копии необходимо изменить ее имя, поскольку Access-таблица не может содержать поля с одинаковыми именами.

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

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

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

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

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

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

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

Отображение одной или нескольких полей отменяется таким образом:

- Выделяются поля, отображение которых необходимо отменить.

- Выбирается команда Скрыть столбцы в меню Формат.

В результате выделенная область будет удалена с экрана (но не из таблицы). Access позволяет скрыть любое количестве полей (даже все).

Необходимо иметь ввиду, что скрытые поля не используются при выполнении поиска и обработке запросов.

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

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

Фиксация полей осуществляется следующим образом:

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


Подобные документы

  • Базы данных с двумерными файлами и реляционные системы управления базами данных (СУБД). Создание базы данных и обработка запросов к ним с помощью СУБД. Основные типы баз данных. Базовые понятия реляционных баз данных. Фундаментальные свойства отношений.

    реферат [57,1 K], добавлен 20.12.2010

  • Базы данных (БД) и системы управления базами данных (СУБД) как основы современной информационной технологии, их роль в хранении и обработке информации. Этапы реализации БД, средств ее защиты и поддержки целостности. Протоколы фиксации и отката изменений.

    презентация [364,2 K], добавлен 22.10.2013

  • Реализация приложения "Книжный магазин" средствами систем управления базами данных. Проектирование структуры базы данных, определение сущности и атрибутов. Логическое проектирование базы данных и реализация базы данных в СУБД Microsoft Office Access.

    курсовая работа [7,8 M], добавлен 13.02.2023

  • Основные этапы проектирования базы данных. Access как система управления базами данных (СУБД), ее предназначение, отличительные возможности. Работа с таблицами, их создание и редактирование. Порядок создания запросов. Способы защиты баз данных.

    лабораторная работа [3,1 M], добавлен 18.08.2009

  • Системы управления базами данных: сущность и характеристика. Типы данных и свойства полей СУБД Access. Объекты базы данных: таблицы, схемы данных, формы, запросы, отчеты. Разработка и проектирование базы данных "Продажи книг" в среде Microsoft Access.

    курсовая работа [1,8 M], добавлен 04.02.2013

  • Базы данных и системы управления базами данных. Структура простейшей базы данных, свойства полей. Понятие языка SQL. Проектирование баз данных, режимы работы, объекты. СУБД Microsoft Access. Создание базы данных "Электротовары" средствами Visual FoxPro.

    курсовая работа [5,7 M], добавлен 29.04.2014

  • Изучение основных понятий баз данных: структура простейшей базы данных, компоненты базы данных Microsoft Access. Проектирование базы данных "Туристическое агентство" в СУБД Access 2010, в которой хранятся данные о клиентах, которые хотят поехать отдыхать.

    курсовая работа [3,3 M], добавлен 20.09.2013

  • Основные принципы проектирования реляционных баз данных и их практическая реализация в MS Access. Концептуальная и логическая модели реляционной базы данных, ее физическое проектирование. Автоматизация процесса взаимодействия с клиентами и поставщиками.

    курсовая работа [2,8 M], добавлен 10.03.2015

  • Операции в системе управления базами данных (СУБД). MS Access как функционально полная реляционная СУБД. Разработка реляционных моделей баз данных экономического направления. Применение прикладных программ для решения экономико-управленческих задач.

    курсовая работа [2,1 M], добавлен 14.01.2015

  • Понятие и сущность базы данных, их классификация и характеристика. Системы управления базами данных. СУБД структуры "сервер-клиент", его суть. Microsoft Access - функционально полная реляционная СУБД. Предназначение СУБД Access, и описание ее работы.

    реферат [44,3 K], добавлен 27.02.2009

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.