РАБОТАЕМ С ДАННЫМИ | КОМПЬЮТЕРНАЯ ГАЗЕТА
Microsoft Access, первое знакомство Весьма символично, что Microsoft Access не входит в базовый комплект Microsoft Office. Как показывает практика, в первую очередь отечественная, круг повседневных задач львиной доли рядовых пользователей не выходит за рамки текстового редактора и электронных таблиц. Для американцев и европейцев, живущих и работающих в совершенно иных условиях, характерно также использование прикладных пакетов для создания всевозможных презентаций. Поэтому стандартный набор прикладных программ Microsoft Office — это всем известные Microsoft Word, Microsoft Excel и Microsoft PowerPoint. “Девяносто восьмой” офис обогатился еще пакетом Microsoft Outlook для лучшей организации своего рабочего времени. Все остальное — уже для профессионалов. Все остальное — это прежде всего Microsoft Access. © Компьютерная газета | Вы наверняка уже обратили внимание, что возле фирменного наименования Microsoft Access обязательно присутствует загадочная аббревиатура СУБД. Перед тем как коснуться тонкостей самого Microsoft Access, непременно следует уяснить себе смысл этого загадочного сочетания заглавных букв. СУБД — это сокращение от словосочетания Система Управления Базами Данных. Представьте себе большой канцелярский шкаф, полный всевозможных папок, отдельных листов и вообще бумажных обрывков с записями любого характера. Этот шкаф можно вполне назвать полноценной базой данных. Более того, в докомпьютерную эру только так оно и было. Однако сам по себе этот шкаф никакой практической ценности не имеет. Во всяком случае без квалифицированного служителя, который бы знал, что в шкафу лежит, где конкретно оно находится и как быстро можно получить всеобъемлемый ответ на интересующий вопрос. Так вот, этот служитель вкупе с обязательной системой организации папок в шкафу и является системой управления базой данных, то есть СУБД. Касательно Microsoft Access она выглядит следующим образом. Вся исходная информация хранится в четко определенных таблицах. Под четким определением подразумевается такая структура таблицы, в которой каждая строка имеет уникальный идентификатор (например, номер строки), а данные представлены столбцами. Таким образом, любая таблица является одномерным набором записей. Непременным правилом создания таблицы в СУБД является строгое определение содержимого самой таблицы. В ее ячейках может храниться только фактическая и только неизменяемая информация. Сие может показаться несколько странным и слишком уж искусственным для пользователей электронных таблиц, однако ни в Microsoft Access, ни в СУБД вообще, в ячейках базовых таблиц принципиально не может быть вычисляемых значений. Естественно, было бы совершенно невозможно оперировать данными без того, чтобы не существовала какая-нибудь возможность сей препон обойти. Для этого в СУБД существуют так называемые запросы. Собственно говоря, запросы — это те же самые таблицы, только они заполняются не вручную, а при помощи заранее заданных формул и прочих зависимостей. Таким образом, то, что нельзя в таблице, можно в запросе. Складывать. Вычитать. Делить. Выполнять прочие математические или логические операции. А свое название запросы получили оттого, что они схожи с широко распространенным естественным действием аналогичного назначения. Например, запросом является ну хотя бы такая конструкция: кто конкретно покупал автомобиль ВАЗ 21099 вишневого цвета в период с января по декабрь 1998 года и расплачивался при этом наличной иностранной валютой, в качестве которой использовались швейцарские франки. Столкнувшись с подобным запросом, СУБД самостоятельно просмотрит соответствующие таблицы, в которых хранятся фактические данные, и отберет из них все строки, которые соответствуют требованиям запроса. Причем с самими таблицами ничего не происходит, в таблицу запроса передаются лишь копии этих записей. Благодаря сочетанию в структуре запросов как функций выборки информации из некоторого ее массива, так и возможностей манипулирования этой информацией с помощью формул, запросы стали основным рабочим инструментом СУБД. Одновременно с отбором, запросы могут производить любые расчеты (например, не только показать всех покупателей вишневых девяток, но и указать, сколько каждая продажа принесла дохода, какова оказалась ее себестоимость, сколько пришлось отдать в казну, а сколько осталось в качестве чистой прибыли) и даже подводить итоги. В то же время, формально запросы сами могут быть представлены как таблицы и использованы в дальнейшем в качестве источника данных для других запросов. Это называется запрос по запросу. Само собой разумеется, что запросы и таблицы лишь тогда будут жить и трудиться в мире и согласии, когда между ними появятся однозначные и строго определенные связи. Эти связи служат третьим китом, на которого опирается вся система СУБД. Теоретически, можно сконструировать такую общую таблицу, в рамках которой можно представить все аспекты хранящихся в базе данных, однако практика показала, что подобная таблица оказывается почти повсеместно, во-первых, излишне громоздкой, а во-вторых, заполненной повторяющимися данными. Из-за громоздкости ею трудно оперировать, а излишние данные неоправданно сильно раздувают ее общий объем, что оборачивается быстрым ростом аппетита к системным ресурсам компьютера. Допустим, база данных содержит информацию о продажах. Следовательно, в ней непременно станут присутствовать столбцы с данными на самого клиента. Например, его фамилия, должность, телефон и адрес доставки. А теперь представьте, что у вашей компании появился постоянный клиент, который сделал в течение года, предположим, пятьдесят разноименных покупок. Согласно правилам организации таблицы, эти данные будут повторяться в каждой ее строке, а значит — они займут в сорок девять раз больше места, чем им на самом деле нужно. В тоже время, применив систему связей, можно создать отдельно таблицу для оформления заказа и отдельно таблицу с реестром клиентов. В том случае, когда покупатель обратился впервые, реестр пополняется новой строкой. Если же он пришел повторно, то, вместо новой записи в реестре, в таблице заказа ставится указатель на уже существующую строку реестра. Четвертым китом СУБД являются формы. Полагаю, ни для кого не секрет, есть большая разница между тем, что вы видите на экране, и тем, что на самом деле записано на винчестере. К примеру, на экране вы лицезреете обнаженную красотку в фривольной позе, а на жестком диске “лежат” только определенным образом чередующиеся нули и единицы. Так вот, эта фактически хранящаяся информация может служить примером фактических данных, а отображаемая на ее основе картинка — формой отображения. Причем от того, насколько верно организована форма, в немалой степени зависит, насколько хорошо будет воспринята или введена пользователем сама информация. Не мне вам объяснять, как трудно бывает порой заполнить даже элементарный печатный бланк, если его поля снабжены маловразумительными подписями, да еще разбросанными в произвольном порядке по листу. Таким образом, теоретически, формы в СУБД служат только для удобного представления информации исключительно для человеческих глаз (например, на бумажной распечатке или на экране монитора). Однако на практике, с помощью механизма форм становится возможным многократно и по разному поводу обращаться к одним и тем же данным одних и тех же таблиц одновременно. Это преимущество особенно ярко раскрывается при многопользовательской работе, когда, например, на основе одной и той же таблицы менеджер службы продаж может через свою форму определять, кому, что и почем продано или желательно продать, сотрудник службы обеспечения посредством своей формы составляет ведомость отгрузки со склада, менеджер службы закупок выявляет дефицит склада и определяет номенклатуру и объемы закупок, а бухгалтерия, в тоже время, может проводить оценочный расчет текущих финансовых показателей предприятия. Теперь, когда общая внутренняя структура СУБД стала понятной, пора нанести последние штрихи на общую картину и уяснить, зачем это все надо и где можно найти этому применение. В процессе своей жизни любой человек или предприятие накапливает некоторый массив информации. Это может быть практически что угодно. В простейшем случае — телефоны, адреса, имена, даты рождений и прочие полезные сведения о своих родственниках, друзьях или знакомых. В более широком плане это может быть массив данных на предприятии, например, что, где, когда, как и почем покупалось, кем, кому и в каком виде продавалось, как, кем, в каких условиях и каким образом использовалось. Базами данных пользуются даже те люди, которые внешне вроде бы настолько далеки от компьютеров, насколько море Спокойствия далеко от Средиземного моря. Например, известный писатель и основатель жанра политического технотриллера — Том Клэнси — собирает различные факты о политиках, современных событиях, технических устройствах и технологиях в своего рода базу данных. Это газетные вырезки, ксерокопии статей, выдержки из других изданий, новости, например телевизионные или из Интернет. А в результате, любой роман Клэнси (настоятельно рекомендую почитать, уверяю, потом даже за уши не оттянешь) поражает своей достоверностью деталей, даже в описаниях мест, где писатель не был и принципиально быть не мог. Например, на Центральном Посту ультрасовременной атомной ракетной подводной лодки или в Кризисном Центре в Кэмп Дэвиде, или в Центре Командования НОРАД, расположенного под основанием горы Шеннон в США. Подобным образом поступают очень многие люди — инженеры, дизайнеры, ученые и так далее. Даже многие из вас наверняка сталкиваются с СУБД чуть ли не каждый божий день. Взять к примеру бухгалтерский комплекс известной российской софтверной компании 1С или его аналог-конкурент бухгалтерский пакет “Галактика”. По сути это те же базы данных, в точности соответствующие всей вышеописанной идеологии СУБД. “Галактика” или “1С Бухгалтерия” являются примерами готовых к немедленному употреблению решений. Они уже спроектированы, оформлены и готовы к работе сразу после инсталляции на персональный компьютер. Один или несколько. Правда, последние версии этих популярных программ уже содержат внутренние инструментальные средства, с помощью которых пользователи могут создавать собственные функции или виды представления информации. Однако необходимость иметь под рукой толковую и удобную СУБД вовсе не ограничивается одной только бухгалтерией. Да и почти всегда пользовательские требования достаточно индивидуальны для налаживания массового централизованного производства для них общих СУБД. Кроме того, для обычного филателиста, например, вовсе не нужно реализовывать в базе данных механизмы математического анализа или статистических оценок. Иными словами, глупо палить из пушки по воробьям, гораздо рациональнее самостоятельно сконструировать для себя необходимую базу данных. Для этого разработано достаточно много всевозможных сред, среди которых значительное место занимает СУБД Microsoft Access, о возможностях которой я хочу рассказать вам в новом году. Для начала — несколько советов. Когда вы будете устанавливать Microsoft Access на свой компьютер, постарайтесь установить его полностью, включая дополнительные компоненты. Конечно, далеко не все из этого богатства понадобится для ваших экспериментов, однако заранее вы сможете определять свои потребности только при накоплении достаточного практического опыта. А до того лучше сделать все необходимое, чтобы в самый ответственный момент Microsoft Access не заявил, что вы непременно обязаны вставить компакт с дистрибутивом и что-то там с ним проделать. Первый запуск Microsoft Access всегда производит неоднозначное впечатление на неподготовленного пользователя. Эта прикладная программа достаточно “умна” и стремится обращаться к человеку лишь в тех случаях, когда это действительно нужно. Однако в самый первый раз она похожа на глухого провинциала, впервые попавшего в многомиллионный мегаполис. Во всяком случае ее вопрос — “что делать будем?” — практически повсеместно вызывает улыбку (см. рис. 1). На выводимом программой вспомогательном окне требуется выбрать один из трех возможных вариантов: создать новую базу вручную, запустить мастер разработки баз данных или открыть уже существующую базу. Порекомендовать тут что-либо определенное трудно, однако если вы видите Microsoft Access впервые, то лучше выбрать самый первый пункт меню. При этом программа задаст всего один дополнительный вопрос (см. рис. 2.): как вы желаете назвать новую базу данных и где она будет храниться. Впоследствии, каждый раз при запуске Microsoft Access станет активизировать именно этот проект. Весьма удобно и практично, позволяет сэкономить немного времени на путешествии по структуре каталогов жесткого диска. Выполнив все эти первоначальные манипуляции, Microsoft Access входит в штатный рабочий режим (см. рис. 3.), с которым вам и предстоит в дальнейшем постоянно иметь дело. На иллюстрации рабочая область свернута в окно, хотя ничто не мешает развернуть ее на весь экран. Рабочий экран состоит из шести областей, каждая из которых обозначена собственным корешком: таблицы, запросы, формы, отчеты, макросы и модули. Согласно введенному разработчиками правилу, одноименные элементы СУБД должны находиться в едином месте. С одной стороны, такое правило позволяет лучше организовывать разнородные элементы проекта любого рода, но с другой — налагает дополнительные требования на выбор наименований для этих элементов. Далее вступают в силу практически все соглашения, уже известные вам по другим пользовательским приложениям Microsoft Windows 95/98. Все действия, команды и операции распространяются только на тот элемент, который в данный момент активен. Все возможности Microsoft Access сведены в два меню и одну инструментальную панель. Первым меню является системное, расположенное в верхней части рабочего окна Microsoft Access. Это файл, правка, вид, вставка, сервис, окно и помощь. Вторым пользовательским меню является контекстно-зависимое, вызываемое “к жизни” нажатием правой клавишей мыши. Постоянного содержания это меню не имеет, оно формируется из тех или иных режимов, в зависимости от того, на что конкретно указывает маркер мыши. Параллельно с меню существует панель инструментов. Вообще говоря, таких панелей в Microsoft Access две. Одна уже на экране и содержит экранные кнопки, дублирующие операции, наиболее часто используемые разработчиками. Вторая инструментальная панель содержит дополнительные средства, необходимые для работы в Интернет. По умолчанию “интернетовская” панель на экран не выводится, но в любой момент ее можно активизировать вручную. Каждая область рабочего экрана содержит три кнопки: открыть, создать и конструктор. Кнопка “ Открыть” предназначена для активизации выделенного элемента из имеющихся в данном проекте. Открываясь, эти элементы предстают в том виде, который используется для его просмотра. Таблицы и запросы открываются в виде таблицы. Формы и отчеты — в том виде, в котором они должны представать перед пользователем. Лишь макросы и модули открываются в виде для редактирования. В том случае, если вам требуется сразу получить возможность изменить что-либо, например, в принципе работы запроса или в исходном коде модуля, лучше сразу воспользоваться кнопкой “ Конструктор”. Естественно, когда вам нужно по ходу работы создать новый элемент того или иного вида, то следует нажимать “ Создать”. Далее вообще просто. Это как строить дом: сделали или купили необходимое количество исходных кирпичей, а потом собрали их в нужном порядке. Можете мне поверить, это не так уж и сложно. А детали мы разберем в последующих материалах. Александр Запольскис E-mail: leshy@nestor.minsk.by
© Компьютерная газета