АВТОМАТИЧЕСКОЕ ОБНАРУЖЕНИЕ СВЯЗЕЙ ДЛЯ ФОРМИРОВАНИЯ ОТЧЕТА ПО ДАННЫМ ЭЛЕКТРОННОЙ ТАБЛИЦЫ
AUTOMATIC DETECTION OF RELATIONSHIPS FOR FORMING REPORT BASED ON DATA SPREADSHEET

УРОВЕНЬ ТЕХНИКИ
Сводные таблицы данных в электронных таблицах могут быть использованы для анализа больших объемов данных. Сводные таблицы данных предоставляют эффективный способ отображения и обобщения данных, предоставляемых программой баз данных, или данных в электронной таблице. Пользователь может выбрать поля данных для включения в фильтр областей, строк, столбцов или областей данных сводной таблицы данных и может выбрать такие функции, как суммирование, дисперсия, отсчет и стандартное отклонение, которые будут отображаться для выбранных полей данных. Данные в базе данных, которые могут быть запрошены из программы электронных таблиц или таблицы данных, включая списки, могут быть проанализированы в сводной таблице данных.
Для пользователя электронных таблиц, которые содержат значительное количество данных, может быть трудно выбрать нужные данные, которые должны быть включены в такие отчеты, как сводные таблицы данных. Например, объем данных, предоставленных в одной или более значительно неструктурированных электронных таблицах, может перегрузить пользователя, что вызывает трудности при поиске фрагментов данных, подходящих для конкретного вида отчетности.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Согласно одному аспекту система для создания отчета в электронной таблице включает в себя: центральный процессор, память, кодирующую инструкции, которые при выполнении центральным процессором заставляют центральный процессор создать: модуль источника данных, запрограммированный для идентификации таблиц, ассоциированных с электронной таблицей; модуль связей, запрограммированный анализировать таблицы и идентифицировать связь между элементами, и модуль отображения, запрограммированный для отображения связей между таблицами.
Согласно другому аспекту, способ идентификации связей между элементами данных в электронной таблице включает в себя: идентификацию вычислительным устройством таблиц, ассоциированных с электронной таблицей; предоставление пользователю возможности добавить одну из таблиц в сводную таблицу данных в электронной таблице; анализ добавленной таблицы для определения связи между добавленной таблицей и другими таблицами в сводной таблице данных, и когда добавленная таблица не связана с другими таблицами в сводной таблице данных, автоматическую идентификацию связи между добавленной таблицей и другими таблицами в сводной таблице данных.
Согласно еще одному аспекту, способ идентификации связей между измерениями в сводной таблице данных электронной таблицы содержит: предоставление возможности пользователю добавить таблицу в сводную таблицу данных в электронной таблице, причем таблица содержит область данных, заданную в электронной таблице; анализ столбцов, ассоциированных с таблицей для определения связи между измерениями и другими таблицами в сводной таблице данных, а когда добавленная таблица не связана с другими таблицами в сводной таблице данных: уведомление пользователя о необходимости задания связи, когда добавленная таблица добавляется к сводной таблице данных, и использование эвристики, чтобы автоматически идентифицировать связь между таблицей и другими таблицами в сводной таблице данных; отображение связи между добавленной таблицей и другими таблицами в сводной таблице данных.
Сущность изобретения предоставлена для описания в упрощенной форме выбора концепций, которые дополнительно описаны ниже в подробном описании. Эта сущность изобретения не предназначена для определения ключевых или существенных признаков заявленного изобретения, а также не предназначена для использования, чтобы каким-либо образом ограничить объем заявленного объекта патентования.
ОПИСАНИЕ ЧЕРТЕЖЕЙ
На фиг.1 показан пример системы формирования отчета в программе электронных таблиц.
На фиг.2 показан пример сводной таблицы в электронной таблице.
На фиг.3 показан пример области данных, используемой для формирования сводной таблицы в электронной таблице.
На фиг.4 показан пример модулей в клиентском вычислительном устройстве системы, показанной на фиг.1.
На фиг.5 показан пример способа идентификации связи между двумя или более таблицами в отчете.
На фиг.6 показан пример мастера для идентификации вручную связи между двумя или более таблицами в отчете.
На фиг.7 показан интерфейс для идентификации связи между данными из внешнего хранилища данных и одной или более таблицами в отчете.
На фиг.8 показан пример компонентов вычислительных устройств, показанных на фиг.1.
ПОДРОБНОЕ ОПИСАНИЕ
Настоящая заявка относится к системам и способам для автоматического обнаружения и предложения связей между областями данных с помощью электронных таблиц. В примерах, описанных здесь, связи между областями данных идентифицированы и представлены пользователю, чтобы позволить пользователю легче объединять данные в одном удобном отчете.
На фиг.1 показан пример системы 100, которая поддерживает формирование одного или более отчетов, основанных на данных, приведенных в приложении электронной таблицы. Система 100 включает в себя клиентский компьютер 102 и серверный компьютер 106. Клиентский компьютер 102 подключен к серверному компьютеру 106 через сеть, обычно корпоративную интрасеть (Интранет) или Интернет. Может быть использовано большее или меньшее количество клиентских компьютеров, серверных компьютеров или других вычислительных устройств.
Как описано ниже, клиентский компьютер 102 может подключаться к серверному компьютеру 106, чтобы получить данные, такие как файл электронной таблицы. Клиентский компьютер 102 может выполнять собственное приложение электронных таблиц на клиентском компьютере 102, чтобы управлять файлом электронной таблицы. В другом примере, клиентский компьютер 102 может использовать одно или более приложений, размещенных на сервере 106 для доступа и управления файлом электронной таблицы. Возможны и другие конфигурации.
На фиг.2 показан пример программы 200. В этом примере программа 200 - это программа электронных таблиц Microsoft EXCEL, работающая в компьютерной системе, например, в компьютерной системе 100, описанной выше. Программа 200 включает в себя электронную таблицу с примерным списком данных.
Пользователь может создавать один или более отчетов на основе данных в электронной таблице. В некоторых примерах, описанных здесь, отчеты могут быть сводными таблицами данных. Тем не менее, в других примерах отчет может быть просто еще одной "обычной" таблицей. Например, системы и способы, описанные здесь, могут использоваться для того, чтобы предложить некоторые столбцы для таблицы, созданной пользователем, на основе ассоциаций, идентифицированных с другими таблицами в электронной таблице.
В качестве примера показан пользовательский интерфейс 302 программы 200. Пользовательский интерфейс 302 включает в себя исходную сводную таблицу 320 данных (сводная таблица 320 данных пустая на фиг.3). Сводная таблица 320 данных может быть создана на основе данных из различных источников. В одном примере, как показано на фиг.3, сводная таблица 320 данных может быть создана из данных, представленных в файле электронной таблицы или из одного или более внешних хранилищ данных.
Пользовательский интерфейс 302 программы 200 также включает в себя пример панели 450 задач, которую можно использовать для создания и изменения сводной таблицы 320 данных. Например, панель 450 задач включает в себя список полей данных из данных, ассоциированных с файлом электронной таблицы. Пользователь может выбрать или отменить выбор поля из панели 450 задач для создания сводной таблицы 320 данных.
Панель 450 задач обычно включает в себя панель 452 поля и панель 454 макета. Панель 452 поля включает в себя список полей данных, доступных в электронной таблице. В этих примерах, поля данных включают в себя таблицы, причем каждая таблица имеет один или более столбцов, которые можно добавить в отчет. Когда поле данных в списке добавляется в панель 454 макета, как описано ниже, проверяется флажок, ассоциированный с полем данных.
Панель 454 макета включает в себя множество зон, которые представляют аспекты сводной таблицы 320 данных, которая создается с помощью панели 450 задач. Например, панель 454 макета включает в себя зону строки, зону столбца, зону значения и зону фильтра. Зона строки задает заголовки строк для итоговой сводной таблицы 320 данных. Зона столбца задает заголовки столбцов для сводной таблицы 320 данных. Зона значения идентифицирует данные, обобщенные (например, собранные, измененные и т.д.) в сводной таблице 320 данных. Зона фильтра позволяет выбрать фильтр, который применяется ко всем другим полям в других зонах.
Одно или более полей данных из панели 452 поля добавляются в одну или более из зон панели 454 макета для создания и изменения сводной таблицы 320 данных. В показанном примере пользователь может нажать и перетащить поле данных из списка на панели 452 поля в одну из зон панели 454 макета, чтобы добавить поле в сводную таблицу 320 данных.
На фиг.3 данные, используемые для создания отчета, такого как сводная таблица 320 данных, могут поступать из нескольких источников. Источники данных могут быть внутри электронной таблицы или внешними.
Например, электронная таблица 500, показанная на фиг.3, включает две внутренних области 502 и 504 данных. Области данных задаются набором данных, содержащим по меньшей мере два измерения, такие как строки и столбцы. Например, область 502 данных включает в себя столбцы идентификационный номер работника, имя и строки 1-3. Кроме того, область 504 данных включает в себя столбцы идентификационный номер работника, объем продаж, и строки 1-7.
В примерах множество областей данных могут быть включены в нескольких местах в электронную таблицу, например, на одном или разных листах электронной таблицы. Как отмечено ниже, данные также могут быть включены из внешних источников.
В этом примере программа 200 запрограммирована, чтобы анализировать области 502 и 504 данных и автоматически определять связи между областями. Например, программа определяет, что данные идентификационного номера работника в обеих областях сходны, используя различные эвристики, описанные ниже.
В этих примерах связь является ссылкой, созданной между двумя областями данных (иногда называемых "таблицами") на основе сопоставления значений данных. Эти связи могут включать в себя связи типа «один-к-одному» и/или связи «один-к-многим». Например, одно значение в таблице может соответствовать множественным значениям в просматриваемых или связанных таблицах.
Связи позволяют программе просмотреть и обобщить данные в обеих таблицах одновременно.
При этом обнаружении программа 200 создает связь между двумя областями 502, 504 данных и позволяет пользователю легко создать отчет, просто выбрав поля в пользовательском интерфейсе. Например, поля данных, ассоциированные с областями 502, 504 данных, могут быть сгруппированы в пользовательском интерфейсе, в результате чего пользователь может легко идентифицировать связи между областями данных. Дополнительную информацию о примере пользовательского интерфейса для этой цели можно найти в заявке на патент США № 13/252412, номер в реестре патентного поверенного 33378902 (14917.1922US01), под названием "Автоматическое определение областей элементов данных" («Automatic Scoping of Data Entities»), поданной одновременно c данной, которая полностью включена сюда посредством ссылки.
Одним из примеров отчета, который может быть сформирован после обнаружения связи между областями 502, 504 данных является отчет 510 в электронной таблице 500. В этом примере, отчет 510 представляет собой сводную таблицу данных, например, сводную таблицу, сформированную с использованием данных из областей 502, 504 данных. Для создания отчета 510 пользователь выбирает желаемые поля данных из областей 502, 504 данных и внешнего хранилища 506 данных способом, аналогичным тому, который описан на фиг.2.
В дополнение к областям 502, 504 данных в электронной таблице 500, данные могут также быть включены из внешних хранилищ данных в электронную таблицу 500. Например, внешнее хранилище 506 данных показано на фиг.3. Примеры таких внешних хранилищ данных включают в себя источники данных с OLAP (оперативный анализ данных) и без OLAP. Данные этого внешнего хранилища 506 данных включаются в электронную таблицу 500. На основе информации об этом внешнем хранилище 506 данных могут быть идентифицированы связи между данными во внешнем хранилище 506 данных и областями 502, 504 данных в электронной таблице 500, как описано ниже.
В некоторых примерах, количество доступных полей данных, предоставляемых в областях данных и внешних хранилищах данных, из которых пользователь может выбрать, становится объемным. В таких случаях, для пользователя может быть трудно просмотреть доступные поля данных и выбрать нужные поля для включения в отчет.
Обратимся теперь к фиг.4, где показаны логические модули клиентского компьютера 102. Эти модули включают в себя модуль 522 источника данных, модуль 524 связей и модуль 526 интерфейса. В этих примерах, модули 522, 524, 526 выполняются совместно с приложением электронных таблиц, которое позволяет пользователю управлять данными в файле электронных таблиц. Модули 522, 524, 526 клиентского компьютера 102 служат для идентификации связей между данными в электронной таблице, так что пользователь может легко идентифицировать соответствующие поля, которые пользователь может захотеть выбрать при создании отчета.
Модуль 522 источника данных идентифицирует все источники данных, ассоциированные с конкретным файлом, например, файлом электронной таблицы. Это могут быть внутренние области данных, заданные на одном или более листах файла электронной таблицы. Также это могут быть данные из внешних хранилищ данных. Такие внешние хранилища данных могут включать в себя данные, которые имеют ссылки внутри таблицы, на такие внешние данные, которые были включены в файл электронной таблицы. Модуль 522 источника данных предоставляет все источники данных модулю 524 связей для анализа.
Модуль 524 связей определяет, какие, если таковые имеются, из источников данных в электронной таблице связаны. Например, если пользователь создает отчет, например, сводную таблицу, модуль 524 связей определяет, используя различные эвристики для анализа всех областей данных и внешних хранилищ данных, которые были включены в электронную таблицу, любые связи между ними.
Например, программа использует эвристику для проверки данных: либо данных в сетке электронной таблицы, либо данных из любого внешнего источника данных, которые пользователь импортирует в электронную таблицу, и на основе этого предлагает связанные данные в различных областях данных. Приложение электронных таблиц затем сохраняет информацию об этих связях и другие функции электронных таблиц теперь будут автоматически использовать эти связи, что позволит пользователю создать отчет, который включает в себя данные из множественных разных областей данных.
Некоторые примеры эвристики, которые могут быть использованы для идентификации ассоциаций, включают в себя одно или более из следующего:
• сравнение имени столбца (например, столбцы с подобными заголовками);
• сравнение значений, например, одного столбца с уникальными значениями в первичной ключевой таблице и столбца с повторяющимися значениями во внешней ключевой таблице, причем отличающийся набор значений существует в первичном ключевом столбце;
• сравнение типа данных (например, поля даты или валюты);
• сравнение неполных значений (например, "CA" соответствует "California"), а также
• использование таблицы соответствий, чтобы создать необходимые идентификаторы в одной таблице для создания связи с другой таблицей, которая уже имеет столбец с тем же идентификатором.
Например, на фиг.5, в одном из сценариев, связь между двумя или более таблицами создается, когда пользователь добавляет поля данных из несвязанных таблиц в отчет, например, сводную таблицу данных.
В этом примере способ 530 начинается, когда пользователь добавляет поле в отчет в операции 532. Далее в операции 534 выполняется определение того, требуется ли связь, потому что, например, поле не имеет связи с полями, уже включенными в таблицу. Если связь не требуется (т.е. поле уже связано каким-то образом), поле добавляется и способ завершается.
Однако, если связь необходима, управление передается операции 536, и пользователь уведомляется о том, что связь может отсутствовать. Одним из примеров способа такого уведомления является предоставление информационной панели в пользовательском интерфейсе для уведомления пользователя о том, что не хватает связи (например, "Связи между таблицами возможно, должны быть созданы").
Далее, в ходе операции 538 выполняется определение того, хочет ли пользователь создать связь для вновь добавленного поля. Если нет, то способ завершается, а пользователю может быть вновь предложено создать связь в следующий раз, когда пользователь изменит отчет. Если это так, то управление передается операции 539. В ходе операции 539 определяются связи между вновь добавленным полем и полями, уже включенными в отчет. В одном примере связь может быть автоматически определена с помощью одной или более описанных выше эвристик. В другом примере, связь может быть задана вручную.
Например, на фиг.6 проиллюстрирован пример мастера 540 связи. В этом мастере 540 пользователь может вручную задавать связь между полями в разных таблицах. В этом примере поле идентификационный номер работника связано для таблиц Таблица продаж и Таблица работников.
Связи, заданные модулем 524 связей, будь то автоматически созданные программой или заданные пользователем вручную, могут быть сохранены на протяжении всего создания отчета. В некоторых примерах связи также могут быть сохранены путем создания других отчетов в электронной таблице так, что программа и/или пользователь не должны перезадавать связи каждый раз, когда используются поля данных в электронной таблице.
Как показано на фиг.4, модуль 526 интерфейса предоставляет доступные поля данных из областей данных и внешних хранилищ данных в электронной таблице пользователю для включения в отчет. В этом примере модуль 526 интерфейса указывает связи между источниками данных для пользователя в интерфейсе. Эти связи могут проявляться несколькими способами. В одном примере, пользователь выбирает таблицу, а интерфейс может предоставить только эту таблицу и любые другие таблицы, связанные с выбранной таблицей. В другом примере таблицы могут быть сгруппированы для идентификации связей.
Как отмечалось выше, в дополнение к заданию связей между полями данных из таблиц в электронной таблице, программа может задавать связи с данными из внешних источников, таких как внешние хранилища данных. В этом случае, модуль 524 связей запрограммирован для анализа данных из внешнего хранилища данных и представления любых связей между этими данными и любых других данных, содержащихся в электронной таблице.
Например, на фиг.7 показан пример мастера 550 подключения данных. В этом примере, мастер 550 подключения данных позволяет пользователю выбирать таблицы, которые имеют непосредственное отношение к текущей выбранной таблице (таблицам) в мастере. В данном примере внешнее хранилище данных "Adventure WorksDW2008R2" выбрано в мастере 550, и пользователь может выбрать конкретные таблицы в электронной таблице, чтобы связать с базой данных (например, выбран DimEmployee). Этот выбор может быть сделан вручную пользователем в мастере 550, или он может быть сделан автоматически с помощью программы с использованием эвристики, описанной выше. В других примерах, если внешний источник данных имеет уже заданные связи между своими таблицами, те могут быть импортированы вместе с данными из внешнего источника данных и использованы в электронных таблицах вместе с любыми другими связями, созданными там.
Например, программа может получить доступ к информации о схеме внешнего хранилища данных, что позволяет программе установить связи между таблицами. Эта схема (например, в виде XML-файла) может относиться к полям во внешнем хранилище данных, которые импортируются, а также другим данным в других внешних хранилищах данных. Программа использует эту информацию для автоматической связи полей данных для пользователя.
На фиг.8 показаны примеры компонентов клиентского компьютера 102 и серверного компьютера 106. В приведенных в качестве примера вариантах, клиентский компьютер 102 и серверный компьютер 106 являются вычислительными устройствами. Клиентский компьютер 102 и серверный компьютер 106 могут включать в себя устройства ввода/вывода, центральный процессор (ЦП, CPU), устройство хранения данных и сетевое устройство. Клиентский компьютер 102 также может быть мобильным вычислительным устройством, таким как ноутбук, планшетный компьютер, трансформируемый компьютер или другим портативным устройством, таким как смартфон или сотовый телефон. Серверный компьютер 106 также может быть включен в виде одного или более серверных компьютеров в сети серверов. При таком сценарии, сеть может выступать платформой облачных вычислений, в которой одно или более приложений и данные размещены для клиентов, подключающихся к платформе облачных вычислений. Приведенное ниже описание в отношении серверного компьютера 106 также относится к компонентам клиентского компьютера 102.
В базовой конфигурации, серверный компьютер 106 обычно включает в себя по меньшей мере один блок 602 обработки и системную память 604. В зависимости от конкретной конфигурации и типа вычислительного устройства, системная память 604 может быть энергозависимой (такой как ОЗУ), энергонезависимой (такой как ПЗУ, флэш-память и т.д.) или некоторой комбинацией этих двух типов памяти. Системная память 604 обычно включает в себя операционную систему 606, подходящую для управления работой сервера, такую как Microsoft SharePoint Server 2010 от Microsoft Corporation, Редмонд, Вашингтон. Системная память 604 может также включать в себя одно или более программных приложений 608 и может включать в себя программные данные.
Серверный компьютер 106 может иметь дополнительные особенности или функциональные возможности. Например, серверный компьютер 106 может также включать в себя машиночитаемые носители. Машиночитаемые носители могут включать в себя как машиночитаемые носители данных, так и среды передачи данных.
Машиночитаемый носитель - это физический носитель, например, устройство хранения данных (съемное и/или несъемное), включая магнитные диски, оптические диски или ленты. Такое дополнительное запоминающее устройство показано на фиг.6 как съемное запоминающее устройство 610 и несъемное запоминающее устройство 612. Компьютерные носители могут включать в себя энергозависимые и энергонезависимые, съемные и несъемные носители, реализованные любым способом или технологией для хранения информации, такой как машиночитаемые команды, структуры данных, программные модули или другие данные. Компьютерные носители могут включать в себя, но не ограничиваются ими, ОЗУ, ПЗУ, ЭСППЗУ, флэш-память или другую технологию памяти, компакт-диски (CD-ROM), цифровые универсальные диски (DVD) или другое оптическое запоминающее устройство, магнитные кассеты, магнитную ленту, накопитель на магнитных дисках или другие магнитные запоминающие устройства, или любой другой носитель, который может использоваться для хранения требуемой информации и к которому может обращаться серверный компьютер 106. Любые такие компьютерные носители могут быть частью серверного компьютера 106. Серверный компьютер 106 также может иметь устройство (устройства) 614 ввода, такое как клавиатура, мышь, перо, устройство речевого ввода, устройство ввода касанием и т.д. Устройство (устройства) 616 вывода, такие как дисплей, динамики, принтер и т.д. также может быть включено.
В соответствии с вариантами осуществления настоящего изобретения, устройство (устройства) 614 ввода может включать в себя любое устройство обнаружения движения, способное обнаруживать движение или жест пользователя. Например, устройство (устройства) 614 ввода может включать в себя устройство захвата движения Kinect от корпорации Microsoft, содержащее множество камер и множество микрофонов.
Серверный компьютер 106 может также содержать коммуникационные соединения 618, которые позволяют устройству обмениваться данными с другими вычислительными устройствами 620, например, по сети в распределенной вычислительной среде, например, в интрасети или в Интернете. Коммуникационные соединения 618 являются одним из примеров коммуникации.
Коммуникационные носители обычно могут быть воплощены в виде машиночитаемых команд, структур данных, программных модулей или других данных в виде модулированного сигнала данных, например, несущей волны или другого механизма передачи, и включают в себя любые среды доставки информации. Термин «модулированный сигнал данных» означает сигнал, который имеет одну или более характеристик, установленных или измененных таким образом, чтобы кодировать информацию в сигнале. В качестве примера, а не ограничения, среда передачи данных включает в себя проводную среду, такую как проводная сеть или прямое проводное соединение, и беспроводные среды, такие как акустические, радиочастотные, инфракрасные и другие беспроводные среды.
Варианты осуществления настоящего изобретения могут быть осуществлены с помощью системы на кристалле (SoC), где каждый или многие из компонентов, проиллюстрированных на фиг.6, могут быть интегрированы в единую интегральную схему. Такое устройство с системой на кристалле может включать в себя один или более блоков обработки, графические блоки, блоки связи, блоки виртуализации системы и различные прикладные функциональности, причем все они интегрированы (или "выжжены") на подложке микросхемы в виде единой интегральной схемы. При работе посредством системы на кристалле функции, описанные выше, по отношению к настоящему изобретению, могут работать посредством реализующего логику приложения, интегрированного с другими компонентами вычислительных устройств 102 и 106 на одной интегральной схемы (микросхеме).
Различные варианты осуществления, описанные выше, приведены только в качестве иллюстрации и не должны истолковываться как ограничивающие. Различные модификации и изменения могут быть сделаны в описанных выше вариантах осуществления без отступления от сущности и объема изобретения.