Речь идет не о деловой информации; ее можно получить посредством множество отчетов. Речь идет о «персональных» базах данных, которые мы все постоянно собираем. О каких персональных базах данных и запросах идет речь? Например, база данных календаря My Calendar, по которой можно было бы узнать, сколько времени мы провели в аэропорту. Или база данных контактов My Contacts, которая мне тоже недоступна: ее неплохо бы очистить от лишних записей, в которые не заглядываешь как минимум пять лет. База данных с фотографиями Adobe Lightroom — та же история. Ведь есть что-то ценное в этих байтах. Я думаю, имело бы смысл покопаться в них, а возможности это сделать нет.
История вопроса
Конечно, работать с такими базами данных хлопотно, а то и просто невозможно. Разработчики держат данные в патентованных форматах просто потому, что так проще. Это не камень в их огород, это история, которая повторяется. Когда в 1973 году я начал писать приложения для мэйнфреймов, большинство разработчиков сохраняло данные приложений в файлах, сформатированных на свой лад. Это не доставляло неудобств… до тех пор, пока другая программа не обращалась к ним. Время шло. Независимые разработчики создавали программы, которые позволяли хранить данные в стандартном легкодоступном месте. Такие системы управления базами данных database management system (DBMS) были удобны, однако довольно дороги, и в конце концов образовались не очень совместимые вселенные, извлечь данные из которых стало довольно трудоемкой задачей. Стандарт 1970 года предложил единый язык запросов к базам данных — потом он превратился в SQL, однако доступной реализации SQL, подобной урезанным версиям SQL Server от MySQL и Microsoft (MSDE и более поздняя версия, SQL Server Express Edition), так и не появилось за тридцать лет. Сейчас можно возразить: есть замечательный ответ — SQL. Однако… давайте будем объективны.
Теперь многие приложения бизнес-класса хранят данные в стиле SQL, и делается это по трем очевидным причинам. Во?первых, разрешение DBMS управлять данными приложения, естественно, не слишком затруднительно для разработчика приложения. Во?вторых, включение DBMS во многие приложения обходится дешево или бесплатно и фактически легко реализуется в программе (обычно это просто одна таблица SQL). В?третьих, клиенту предоставляется доступ через SQL: «Вот данные в любимом формате!»
Простые шаги по разблокировке данных
Любое приложение, которое хранит информацию обо мне, может мне понадобиться. Однако разработчик приложения не знает, что именно понадобится, когда и в каком виде. Вот почему в мире бесплатных программ для баз данных, поддерживающих SQL, разработчики приложения не могут позволить пользователям хранить данные приложения на дешевом сервере SQL, хотя им было бы удобно работать с инструментами запросов SQL для поиска данных.
Предположим теперь, что поставщики приложений начинают предлагать возможность хранить данные на сервере SQL, тогда понадобится сервер SQL для хранения данных. Где же взять дешевый и простой сервер SQL? Можно загрузить заранее созданную виртуальную машину с MySQL, которая уже работает на ней, и запустить эту виртуальную машину в бесплатном Player от VMWare. Или можно загрузить SQL Server Express 2005 с сайта Microsoft и получить базу SQL на персональном компьютере, следуя инструкциям на сайте www.minasi.com/newsletters/nws0509.htm. Более простого способа нет, указанные два метода вполне реализуемы и не требуют особых усилий для работы.
И наконец, как следует делать запрос к этим базам данных SQL? В MySQL предусмотрено несколько бесплатных средств, в том числе инструментарий веб-запросов SQL. В редакции SQL Server Express существует интерфейс запросов через командную строку. Однако оптимальным интерфейсом различных версий Microsoft SQL Server будет Access либо Excel. Дополнительно веб-поиск по SQL query front-end (интерфейс для запросов SQL) выдаст изрядное количество ответов.
Итак, что скажете, господа поставщики? С вашей помощью пользователи компьютеров могли бы собрать о себе всю информацию, причем ценой не слишком больших усилий. Конечно, это может усилить «информационный эгоцентризм». Однако всякая технология имеет свой потенциал.
Марк Минаси (www.minasi.com/gethelp) — старший редактор журнала Windows IT Pro, сертифицированный системный инженер по продуктам Microsoft