Жизнь без MS Access
Очередная статья из цикла «Жизнь без Microsoft» посвящена важному компоненту MS Office — MS Access. И прежде, чем мы перейдем к рассмотрению его аналогов, применяемых на платформе Macintosh, попробуем разобраться, что представляет собой Access, для каких целей он предназначен и где он применяется.
Access — это средство разработки баз данных. Поскольку он является частью офисного пакета, можно заключить, что он не предназначен для профессиональных программистов. Действительно, Access относится к классу программ, где сама база данных, средства ее разработки и управления и клиентская часть заключены в одном приложении. То есть, пользователь с помощью Access создает базу данных, проектирует ее функциональную часть, и пользуется результатом. Идея предоставления обычным пользователям возможности самостоятельно создавать свои базы данных и различные решения на их основе родилась еще на заре персональных компьютеров. Однако только в эпоху графического интерфейса стало возможным появление приложений, освоение которых не требовало изучения специальных языков программирования. Базы данных (лучше употреблять слово проекты) там не пишутся, а как бы «рисуются». Так появился MS Access и другие.
В предыдущих статьях название «Жизнь без Microsoft » предполагало, что читатели не хотят пользоваться продуктами фирмы Microsoft на своих маках. Но в этот раз название «Жизнь без MS Access» стоит понимать буквально — Microsoft не выпускает Access для платформы Macintosh.
В этой статье мы опишем три подобных приложения. Ни одно из них не совместимо с Access, но в этом нет ничего удивительного. В предыдущих статьях программы открывали файлы MS Office, то это были просто файлы, содержащие исключительно данные в определенном формате. В отличие от них, файлы MS Access или подобных программ содержат не только сами данные, но и пользовательскую функциональную часть доступа к ним. Вопрос совместимости, вернее, экспорта данных из файлов Access в рассматриваемые программы будет освещен в конце статьи. А сейчас попробуем выяснить, обделены ли пользователи Macintosh невозможностью использовать MS Access.
Для того, чтобы получить представление о возможностях рассматриваемых программ, я решил сделать небольшой тест. В этот раз речь не идет о совместимости и открытии одного файла в разных приложениях. Поэтому наш тест — это небольшое задание программам-претендентам по созданию простейшей системы управления магазином на основе базы данных. Тест предполагает, что у нас есть база нашей продукции (название продукта, его описание), база клиентов (название, адрес, телефон) и система учета заказов, в который указывается, что и кому было продано, и дата продажи. Начал я с самого MS Access, поэтому не удивляйтесь, что первый скриншот в этой статьи сделан на PC. Намерено не буду вдаваться в подробности описания созданной базы, а сразу перейду к участникам обзора, так как идеология первого из них идентична принципам работы самого Access.
NeoOffice 2.0 иOpenOffice 2.0
Писать об этих пакетах по-отдельности нет смысла. Как уже говорилось в прошлых статьях, это версии одного и того же проекта. Разница лишь в том, что OpenOffice требует для работы специальной среды X11, а NeoOffice является нативной программой для Mac OS X. В версии 2.0 NeoOffice окончательно сравнялся по функциональности со своим братом OpenOffice. Следовало бы порекомендовать использовать именно его, если бы не одно «но». В части своей работы с базами данных NeoOffice работает крайне нестабильно, постоянно «вылетая», при этом портя сам файл. Я потратил немало времени и нервов и в конце концов плюнул и пересел на OpenOffice. Второй важный недостаток NeoOffice — это скорость работы. NeoOffice уже не раз получал подобный упрек в прошлых обзорах, но в этот раз он превзошел сам себя. На iMac G5 c 512 Mb памяти, на котором проводились тесты, NeoOffice показывал скорость телеги с квадратными колесами, постоянно «подвисая» на простейших операциях. Выдав такие «злобные» авансы, перейдем к функциональной части пакетов семейства OpenOffice.
Идеология работы OpenOffice такая же, как и у Access. Весь проект подразделяется на четыре основные структуры: таблицы, запросы, формы и отчеты.
— Таблица. Это область, где хранятся данные. Работа с ней напоминает работу с Excel, где количество столбцов задается пользователем, и каждый столбец — это одно из полей базы данных, например, название организации, адрес, телефон и т.п. Таблиц может быть много, это зависит от желания пользователя. Для нашего случая потребуется три: таблицы клиентов, продукции и таблица учета сделанных заказов. Таблицы — это содержательная часть проекта. Для того, чтобы сделать нашу базу интерактивной, нам потребуется другой инструмент — формы.
— Формы. Это то, как ваши данные представлены. Каждая форма «привязана» к той или иной таблице. В режиме редактирования вы создаете экранную форму, располагая на ней элементы управления (кнопки, выпадающие списки и т.п.) и сами поля таблицы. Можно создать достаточно сложные формы, с перекрестным вызовом друг друга, различными режимами ввода и представления данных. Арсенал для создания формы в OpenOffice значительно беднее, чем в Access. Причем Access — самостоятельная программа, где для создания форм, используется свой редактор, а OpenOffice использует для этого свою часть для работы с текстом — OpenOffice Write. Нажав кнопку редактирования формы, вы оказываетесь внутри текстового процессора. Из-за этого конструировать формы в OpenOffice крайне неудобно, а если добавить к этому и нестабильность работы, о которой говорилось выше, то картина получается совсем безрадостной.
— Запросы. Сам термин пришел из мира баз данных SQL, где любое взаимодействие клиента с базой (сервером) описывается как некий запрос. В данном случае подразумеваются различные заранее сформулированные запросы к вашей базе данных. Например, мы хотим узнать, какие товары покупал у нас тот или иной клиент. Отправляем запрос найти только те записи, где в качестве покупателя фигурирует этот клиент и перечислить все купленные им товары. Можно подготовить для этого специальную форму, связанную с этим запросом, где полученная информация будет удобно отображаться.
— Отчеты. Как следует из названия, это подготовленные к печати на принтере отчеты, Например, сколько было проданно определенного товара, сколько было куплено определенным клиентом и тому подобное. Они формируются путем подсчета количества записей в таблице по заданному пользователем критерию.
Для тех пользователей, кто работал с Access, в этом описании нет ничего нового. Разница в том, что OpenOffice гораздо слабее в функциональности и уступает Access в удобстве работы. Как и в Access, вы можете значительно увеличить функциональность и интерактивность своего проекта, воспользовавшись макросами, но для этого вам придется изучить их язык. По сути, это будет уже программирование. Еще одним недостатком OpenOffice является отсутствие экспорта данных. Если в Access вы можете каждую таблицу (правда по отдельности) экспортировать в различные популярные форматы данных, например dbf, в виде Excel таблицы или в виде текстового файла, то в OpenOffice такая возможность отсутствует. Однажды создав некую базу с помощью OpenOffice, вы не сможете перенести свои данные в другое приложение, когда вам надоест мучится с OpenOffice.
Это короткое описание принципов работы OpenOffice для простого пользователя может выглядеть почти как китайская грамота. Формы, запросы, отчеты, макросы, — ясно, что все это следует долго изучать, чтобы создать свой проект. Достаточно взглянуть на скриншот, чтобы создалось впечатление, что OpenOffice, как и сам Access, инструмент разработки скорее программиста, чем менеджера.
Получается, работа с базами данных так сложна, что придется переквалифицироваться в программиста? Ответ на этот вопрос дает наш следующий претендент, и дает он его с настоящим «маковским» изяществом.
FileMaker 8.5
Если вы никогда не слышали о FileMaker, то вы либо совершенно не интересуетесь базами данных, либо только вчера впервые сели за мак. FileMaker — одна из старейших программ для Macintosh. Раньше приложение выпускалось фирмой Claris, потом преобразовавшейся в одноименную компанию FileMaker. Это дочерняя компания фирмы Apple, и дух «эпловских» программ и абсолютная непохожесть на другие присущ FileMaker.
Идеология FileMaker в корне отличается от принципов работы в Access или OpenOffice. Если в последних работа над проектом — это взгляд изнутри, и вам нужно иметь четкое представление о том, как функционирует база данных, то FileMaker — это взгляд снаружи.
Программа предлагает вам сосредоточится на формировании внешнего представления базы данных, то есть, на интерфейсе. Остальное FileMaker практически полностью берет на себя. Если вы не хотите даже разрабатывать интерфейс, вам сразу предоставляется стандартный, и вы получаете доступ к мощным инструментам отображения и поиска данных для начала немедленной работы. С другой стороны, если вы желаете, то можно углубляться в суть процессов и наполнять ваш проект дополнительной функциональностью. Попробуем разобраться, как это происходит.
Центральным понятием в FileMaker является Layout (было бы правильно перевести как «макет», но для удобства я буду использовать английское слово). Можно сказать, что Layout — это аналог формы в Access или в OpenOffice. Но, в отличие от них, Layout создается автоматически при создании таблицы и изначально имеет несложное форматирование. Пользователь может при желании отредактировать его, изменив представление своих данных, а также может создать новые дополнительные Layout’ы. Работа с каждым из Layout, может происходить в четырех режимах, переключение между которыми осуществляется одним нажатием мыши:
— Browse mode. Основной режим представления данных. Этот режим сам подразделяется на три вида: формы (Forms), список (List) и таблицы (Table). Иногда удобно просматривать каждую запись в базе отдельно (форма), а иногда — в виде горизонтального списка, где каждая строчка это запись в вашей базе. Это принципиально отличается от таблицы, так как представление строк задается пользователем произвольно при форматировании Layout. Строки могут содержать, помимо полей базы, различные элементы управления, например, кнопки и графические элементы оформления интерфейса.
— Find mode. Режим поиска в базе с использованием форматирования данного Layout. При этом вид Layout остается таким же, но с пустыми полями. Заполнив нужное поле искомым значением и нажав Enter, вы заставите FileMaker осуществить поиск.
— Layout Mode. Режим редактирования Layout. В отличие от аналогичных режимов в OpenOffice и Access, этот режим отличается крайней простотой и удобством в работе. Работа напоминает рисование в несложном и интуитивно понятном графическом редакторе.
Preview Mode. Режим предварительного просмотра перед печатью.
Создатели FileMaker исходили из того, что пользователи не являются программистами и специалистами в области баз данных, поэтому программа не мучает вас обилием сложных вопросов, специфических терминов и различных параметров. Например, в NeoOffice я насчитал 21 возможный тип поля базы данных. При этом числовых типов (целочисленных, с плавающей точкой и т.п.) набралось около десятка. В FileMaker есть только один числовой тип с понятным названием Numbers, и он сам разбирается с оптимизацией хранения данных. В отличие от конкурентов, в FileMaker есть только шесть основных типов полей, но зато они универсальны и не заставляют пользователя мучительно размышлять, чем, скажем, «Tiny Integer» отличается от «Длинного целого». Зато в FileMaker есть специальные типы полей, значения которых автоматически вычисляется по заданным пользователем критериям — специальным формулам.
Другой пример. В нашем тесте мне хотелось, чтобы в режиме работы над заказами, можно было выбирать клиента из выпадающего списка (см рисунок ниже). В Access и в OpenOffice я должен был преобразовать поле в выпадающий список, а потом в его свойствах указать, что значения этого списка должны являться результаты запроса к таблице клиентов, создав этот запрос. В FileMaker вы просто указываете, что ваше поле отображается как выпадающий список, а в качестве значений указываете созданный вами, так называемый, Value List, который так и переводится — список значений. В этом Value List вы можете указать, что значения берутся из такого-то поля, такой-то таблицы, то есть, FileMaker разговаривает с пользователем на понятном языке. Кроме того, можно создать Value List, набрав значения вручную, например, создав таким образом выпадающий список «да, нет, не знаю».
Несмотря на кажущуюся простоту и аскетичность интерфейса, FileMaker — мощнейший инструмент, позволяющий вам создавать очень сложные проекты. Можно создать домашний каталог видеодисков, а можно замахнутся на систему управления предприятием. При этом, подавляющую часть работы по созданию такого проекта вы проведете в режиме «рисования». Ограниченный рамками одной статьи я лишь перечислю некоторые важные возможности FileMaker, являющиеся, на мой взгляд, его конкурентными преимуществами.
— Порталы. Порталы это возможность в одном Layout, который всегда привязан к какой-то конкретной таблице, отобразить списком данные из другой таблицы по заданному критерию. Например, в нашем тесте в Layout клиентов я добавил портал, который представляет список всех, купленных клиентом, товаров. Портал — это всегда список, но вы можете произвольно форматировать вид его строк, отображая сразу несколько полей заданной таблицы, добавляя интерактивные элементы, такие как: кнопки, выпадающие списки и т.п. Фактически, это такой Layout в Layout. Отсюда и название — порталы
(рис. 4 FileMaker 2.png)
— Web Viewer. С выходом последней версии 8.5 в FileMaker появилась возможность встраивать интернет браузер прямо в тело Layout. При этом адрес отображаемой страницы может вычисляться из значений в вашей базы. Это необязательно статический web-адрес, это может быть и запрос к какому-либо интернет сервису. Самый простой пример: рядом с данными о клиенте (имя, адрес) отображается карта-фото с google.map. Чтобы получить представление об открывающихся возможностях, советую посмотреть раздел примеров на сайте FileMaker. Web Viewer основан на том же движке, что и Safari, так что у вас врядли возникнут проблемы с отображением каких-то страниц — поддерживаются все современные интернет технологии.
— Скрипты. Как и Access с NeoOffice, FileMaker позволяет увеличить функциональность базы с помощью написания небольших подпрограмм — скриптов. В отличие от макросов в Access и NeoOffice, написание скриптов под FileMake гораздо более простое занятие и, можно сказать, удовольствие. Фактически вы не пишете, а выбираете команды из представленного списка возможных, указывая параметры. При этом список команд весьма обширен и позволяет создавать по-настоящему серьезные проекты.
— Сетевая работа. File Maker позволяет вам сделать вашу базу доступной в вашей локальной сети (sharing), при этом над одной базой могут работать до 5 пользователей, на компьютерах которых установлен FileMaker. Вы можете ограничить их возможности, введя систему пользователей, паролей и прав доступа, для этого в FileMaker есть специальные функции. Кроме того, вы можете расшарить вашу базу для доступа через интернет. Тогда другим пользователям для работы с вашей базой нужно знать только IP адрес вашего компьютера, а вся работа будет проходить через internet browser. Причем неважно, мак это или PC, FileMaker «на ходу» генерирует интернет страницы, идентичные Layout вашей базы.
— FileMaker Server, Если пять одновременно работающих пользователей для вас мало, вы можете приобрести серверную версию FileMaker, тогда количество пользователей возрастет до 256, плюс добавятся различные серверные «примочки»: расписание задач, резервное копирование и тп.
— Runtime Solution, Если вы счастливый обладатель Advanced версии FileMaker, то вы можете превратить ваш файл FileMaker в самостоятельно работающее приложение, внутрь которого встроен движок FileMaker. При этом вы можете даже изменить систему меню своего файла, исключив возможность редактирования файла для других пользователей и создав меню программы полностью соответствующую вашим задачам.
— Экспорт и импорт данных. FileMaker обладает развитыми функциями импорта данных из различных форматов файлов, таких как: файл баз данных dbf, wks, файлы Excel, текстовые файлы и т.д. Кроме того, он позволяет закачивать фотографии в базу прямо с подключенной фотокамеры, так что при большом желании вы можете даже создать некоторый аналог iPhoto. Поддерживаемые при импорте форматы файлов также поддерживаются и при экспорте, к ним добавляется экспорт в pdf , html и xml файлы.
— Примеры работ. Вместе с самим FileMaker поставляется набор готовых работ — Solutions. В отличие от обычных примеров, которые часто идут в комплекте с другими программами, поставляемыми с FileMaker, — это законченные решения на многие случаи жизни. Там вы найдете решения для бизнеса, образования, дома. Каждый файл — это готовый к использованию проект.
— Кроссплатформенность. FileMaker существует как в версии для мака, так и для PC, причем это абсолютно идентичные версии. «Расшаренная» в сети база будет открываться без проблем на обеих платформах, вне зависимости от того, где она была сделана. Возможно, на PC возникнут проблемы с отображением русского текста, но небольшое «шаманство» с настройками реестра Windows решает эту проблему. Кроме того, существует версия FileMaker для КПК.
Если же все-таки искать недостатки, то главным недостатком FileMaker я бы указал слабую распространенность в России и, как следствие, практически полное отсутствие русскоязычной литературы и документации.
Некоторое затруднение при работе с FileMaker может вызвать перенос данных из MS Access, Так как FileMaker не открывает и не импортирует mdb-файлы, вам предварительно придется пересесть на PC и экспортировать данные таблиц в какой-либо универсальный формат, например, dbf. Однако в этом случае у вас могут возникнуть проблемы с русским текстом в полях базы, так как на маке и PC используется разная русская кодировка. Решением может служить экспорт не в dbf, а в xls файл, с последующим его открытием в Excel на маке. Используйте команду «выделить все» и замените шрифт на русифицированный, чтобы весь русский текст в таблице читался, после чего сохраните файл. После такой предварительной подготовки данные из xls файла должны экспортироваться в FileMaker нормально.
Заключение
Мир систем разработки баз данных на Macintosh, не блещет разнообразием. FileMaker, одна из старейших маковских программ, практически полностью доминирует. Системы семейства OpenOffice только недавно бросили ему вызов, но они пока слишком слабы, и перспективы их развития крайне низки. Они ущербны уже потому, что основываясь на идеологии MS Access, от пользователя требуют слишком много специальных знаний. Если проблемы скорости и стабильности работы можно решить, то решение этой проблемы потребует полностью переработать весь подход к работе с базами данных. Но, к сожалению, opensource — разработчики от версии к версии демонстрирует полную импотенцию в том, что касается чего-то нового. А FileMaker находится, как и вся Apple, явно на подъеме. Время между выходами версий уменьшается, внедряются все новые и новые функции, позволяя создавать все более сложные и при этом изящные интерактивные проекты. Появление новых крупных игроков на этом фоне видимо не предвидится. Есть, правда, еще Panorama, но я не стал включать ее в обзор, из-за ее низкой функциональности. Это не полноценное средство разработки базы данных, а средство подготовки рекламных рассылок, как электронных, так и бумажных, на основе несложной базы данных. Одновременно можно работать только с одной таблицей в файле, поэтому реализовать используемый тестовый пример из этой статьи не представляется возможным.
Источник