Что такое плоские данные
Что может сводная таблица (часть 1)
Сводная таблица – невероятно сильный инструмент анализа. Конечно, мы не спорим с дисперсионным анализом данных, с дескриптивной статистикой, с регрессивным анализом, с методами Machine Learning и BigData (графы, ближайший сосед и пр.), речь о том, что «сводная таблица» это самый простой и доступный прикладной инструмент, освоить который можно в течении 5-10 минут. При этом, по принципу Парето «80 на 20», знание такого простого инструмента поможет вам решить 80% всех задач, связанных с обработкой данных. Для освоения нам нужно немного совсем простой (специально упрощенной) теории. Дело в том, что Сводную таблицу можно построить только из таблицы определённого типа… (забегая вперед из «Плоской таблицы») Во-вторых, чтобы анализировать данные, нам нужно понимать, что такое данные (хоть вопрос и кажется тривиальным).
Итак мы имеем два основных вопроса.
1. НАШИ ВОПРОСЫ
Запоминаем. ВОПРОС 1: «Что такое «плоская таблица»? ВОПРОС 2: «Какие бывают данные»? ))
2. А теперь ПРИМЕР
Допустим вы производите и продаете какую-то продукцию. И хотите спланировать свою деятельность. Сколько вам произвести или закупить?
Вот ваша таблица со среднемесячными продажами. (Рисунок 1)
По этим данным вы легко можете спланировать свою деятельность. Сколько вам купить-произвести для продажи на следующий месяц. Но вот незадача, вы вспоминаете, что у вас не одна номенклатура товара, а семь. Семь разных видов товара. Соответственно, для планирования вам нужна более сложная таблица, в которой кроме «Клиентов» появляется еще и «Товар». НО вы легко решаете эту проблему, расположив по вертикали (как и было) Контрагентов и по горизонтали Товар. Теперь вы знаете, сколько товара вам нужно купить или произвести для какого клиента. Сумма ИТОГО, конечно совпадает. (Рисунок 2)
И только вы решили, приступить к производству или к закупке этого товара, как вспомнили, что это же среднемесячные продажи, но ваш товар сезонный, и вам нужна таблица продаж по месяцам.
И вот тут-то вы призадумались! Как вам расположить поля? Можно использовать разные листочки, для каждого месяца свой лист (Рисунок 3)
Можно попробовать добавить строк в таблицу (Рисунок 4).
А что если появится еще что-то … это может быть что угодно, давайте придумаем пример, хотя он не важен.
ПРИМЕР: часть ваших клиентов требует доставки, часть забирает товар самостоятельно, и это зависит от месяца к месяцу (кто-то не пользуется машиной зимой, кто-то отдает ее на лето детям) и ваш транспорт так же доступен только часть месяцев. Тогда планировать продажи вы можете только, имея еще и информацию, о том, есть ли у вас на следующий месяц машина, и у кто из клиентов требует доставки. Можем использовать цвет. (Рисунок 5)
Если появится еще что-то, как мы это разместим в таблице? Будем делать строчки под январем, февралем? Или разделим ячейку на несколько цветов? Почему вообще мы имеем ограничения, почему нам сложно, когда у нас появляется еще что-то? И как назвать это «еще что-то»?
Отметим, что у нас появились еще вопросы. Как назвать это «еще что-то», при появлении которого нам приходится перестраивать таблицу? Забегая вперед, это производная от ВОПРОСА 2 («Какие бывают данные»)?
И еще появился еще один вспомогательный ВОПРОС 3: «Почему сложно построить большие таблицы»? Пример не пока не помог нам ответить на ВОПРОС 1, ВОПРОС 2, а только добавил ВОПРОС 3.
3. ТОТ ЖЕ ПРИМЕР, ТОЛЬКО с другой стороны
Вторая таблица (там, где был Контрагент и Товар) будет выглядеть так (Рисунок 7). Теперь наши коробки лежат не на прямой, а на плоскости. По одной линии мы откладываем Контрагент 1, Контрагент 2, а по другой линии откладываем Товар 1, Товар 2…А на пересечении лежит наш коробок с цифрой, с ответом на вопрос, сколько Товара N покупает Контрагент N. Это двухмерный мир. Декартова система координат (кто помнит математику 6-го класса). Математики бы сказали: «Двухмерный массив данных».
Наша третья таблица выглядела бы так (нарисуем в ней циферки, чтобы легче было представлять). По одной прямой мы бы откладывали метки Контрагент 1, 2. по другой Товар 1,2. а по третьей Месяц 1,2…И на пересечении этих трех линий коробков был бы наш искомый коробок, с нужной нам цифрой. Это уже походе на трехмерный мир, и математики бы назвали бы это «трехмерный массив данных».
4. А ТЕПЕРЬ ОТВЕТЫ
Все что мы записывали на бумажки внутри коробков спичек, это были сами данные, то что мы измеряем. Это обычным языком могут называть следующими словами: «данные-сами данные-цифры-измеряемые величины-ресурсы-цифры-показатели».
А то, что мы откладывали как метки по прямым (Контрагент 1,2. Товар 1,2, Месяц 1,2..) — это были аналитические разрезы или характеристики данных, или еще говорят: «аналитики-разрезы-аналитические разрезы-характеристики данных- измерения»… (слово «измерение» скорее всего вам не знакомо, но программисты используют едва ли не чаще всего; почему, мы это узнаем чуть позже).
Кстати, в нашем примере была одна бумажка с в коробке, но это для простоты, на самом деле и данных может быть очень много, В нашем примере, например, % накапливаемой скидки за эту продажу, или за цена (если мы каждому клиенту продаем по своей цене, так называемая — ценовая дискриминация), себестоимость, но это легко представить, как просто 2,3… подписанные бумажки с цифрами в нашей коробочке.
«Почему сложно построить большие таблицы»? ОТВЕТ: потому что мы живем в трехмерном измерении, а аналитических разрезов бывает на-а-а-а-много больше, чем 3. Да даже когда их 3, мы уже вынуждены напрягаться, разные таблицы или расшифровка строк. А как же быть, если аналитик больше, чем три? (ЭТО ВОПРОС 4, но дадим на него ответ сразу.)
ВОПРОС: «А как же быть, если аналитик больше, чем три»? ОТВЕТ: использовать «плоскую таблицу». Плоская таблица дает возможность упорядоченно расположить таблицу с любым количеством Аналитических разрезов.
5. КАК СТРОЯТСЯ ПЛОСКИЕ ТАБЛИЦЫ
Посмотрим, как они строятся?
На том же примере: Сначала у нас была одна линия, по которой мы откладывали Контрагент 1,2.. Потом появилось «две пересекающиеся линии», на пересечении которых наши данные. Потом «три пересекающиеся линии». А что если эти линии не пресекать? Если они будут параллельными? А считать данные мы сможем прочтя строку (см. самую правую картинку на Рисунок 9). Контрагент 1, Товар 1, Март, можем добавить что-то еще, и в конце данные по продаже – 15. Кажется в такой таблице можно поместить бесконечное количество параллельных Аналитик и данных и бесконечное количество данных.
Забегая вперед, для каждого аналитического разреза и для каждого ресурса (для бумажки с цифрой) мы выделим один – «свой» столбец.
Кстати, таблицы, где есть пересекающиеся измерения – называются «кросc-таблицами», от английского cross – пересечение.
Кстати, почему программисты и математики часто используют слово «измерения», потому что это очень похоже на двух-мерный, трех-мерный, одно-мерный мир.
Для закрепления построим из нашей двухмерной кросс-таблицы — «плоскую таблицу». Вспомним ее (Рисунок 2)
Вырезаем «контрагентов» – они у нас в отдельной колонке (столбце ли – я до сих пор путаюсь, как правильно). Во вторую колонку (столбец ли) помещаем Товар, и заполняем Товаром 1. И потом на заполняем третью колонку (столбец) данными по продаже. (Рисунок 10) Возможно, это сложно давайте прямо по действиям…
Итак … По действиям …
Выделяем для Аналитики Товар 1-й столбец (колонку) И заполняем ее всеми нашими возможными контрагентами. (перебираем всех наших конрагентов) (Рисунок 11)
Теперь заполняем вторую колонку (столбец) Товаром, но так как товаров у нас много, то мы пока зафиксируем Товар 1. (Рисунок 12)
Теперь заполним (а можно просто вырезать из нашей двухмерной кросс-таблицы данные и подставить к нашим двум столбцам. (Рисунок 13)
И так и идем не переставая, пока не закончится товар. И вот что у нас получится (таблица сильно уйдет вниз, поэтому мы всю ее не будем представлять). ВОТ ОНА НАША «ПЛОСКАЯ ТАБЛИЦА» Пока двухмерная. (Рисунок 14).
Первое, компьютеру не нужно хранить нулевые записи. Мы отфильтруем нулевые записи, и таблица станет намного меньше… Вот так компьютер и будет хранить эти таблицу (Рисунок 15), вместо не поленитесь, поднимитесь к началу статьи и посмотрите сколько было зарезервировано пространства компьютером, (сколько было пустых коробков спичек, в которых не лежало ни одной бумажки с цифрами)?!
Осталось немного… посмотреть как будет выглядеть плоская трехмерная таблица из нашего примера (Рисунок 13), ну правда только для января, но восприятия это уже не испортит, потому что нам нужно всего лишь перебрать таким же способом Февраль, март и т.д.
Вот мы и поняли, что данные бывают сами данные (или «данные-сами данные-цифры-измеряемые величины-ресурсы-цифры-показатели»)
Бывают «аналитики-разрезы-аналитические разрезы-характеристики данных- измерения-характеристики».
И мы всегда теперь отличим плоскую таблицу от кросс-таблицы.
Кстати, а вы всегда отличите данные от аналитических разрезов? Не торопитесь, данные это не всегда цифры, а аналитические разрезы, это не всегда строки. В вопросе: Сколько в классе школьников, у которых средний бал 3, 4, 5? Здесь, 3,4,5 – это разве данные или скорее это аналитические разрезы? Это аналитический разрез, а не «сами данные», хотя они выражены цифровыми значениями. В другую сторону пример привести сложнее, потому что мы измеряем (сами данные) это чаще все-таки цифры. Но мы можем измерять и, например, «счастлив» «не счастлив», в зависимости от аналитических разрезов «пол», возраст (опять цифры в аналитических разрезах данных), национальности, образования…
Eще один интересный момент, а почему мы говорим о «аналитических разрезах». Об этом можете прочесть в ЧАСТИ 2.
Что такое плоский файл?
Как это работает
Чтобы сделать модель данных плоского файла функциональной, вся соответствующая информация о записи должна храниться в одном файле. Например, в листе CSV никакие специфичные для приложения форматы не применяются к данным, содержащимся в файле; только запятая обозначает конец одного поля в записи. Каждая запись записывается в строку в файле, что позволяет хранить все данные для одной записи отдельно от других записей.
Такие базы данных могут быстро стать очень большими и трудными для управления из-за простого способа их организации. Многие современные модели данных используют связанные таблицы для организации групп связанных данных. Это упрощает поиск и гибкость такой информации.
Использование плоской системы
Если клиент звонит компании, чтобы разместить заказ, то кто-то вводит его или ее информацию в таблицу или базу данных. Тот же самый человек или кто-то еще вводит информацию для этого конкретного заказа. Плоская файловая система может хранить всю эту информацию для клиента в одном файле.
Однако в этом нет необходимости, поэтому можно поддерживать несколько файлов: один для клиента и один для каждого отдельного заказа. Информация о заказе, хранящаяся в одном плоском файле, не связана с информацией о клиенте, хранящейся в другом. Эти файлы не имеют никакого отношения, поэтому кто-то, использующий базу данных плоских файлов для поиска информации о клиентах, может легко пропустить дополнительные файлы о заказах.
Слабые стороны этой системы
Поскольку каждая запись должна быть завершена сама по себе, плоская файловая система обычно приводит к очень большим файлам или отсутствию связи между информацией внутри нее. Общая база данных, используемая сегодня, является реляционной базой данных. Эта модель позволяет связать информацию в одной таблице с другими таблицами, используя ключевые поля, которые существуют в каждой из них. Несколько таблиц соединяются через эти поля, что позволяет каждой из них иметь только часть всей необходимой информации.
Реляционные базы данных
Тот же пример клиента, приведенный выше, может выглядеть совсем иначе в реляционной модели. Когда клиент звонит, чтобы разместить заказ, кто-то вводит его или ее информацию в таблицу «клиент» в базе данных. Затем другой человек может ввести информацию для своего заказа в отдельной таблице. Каждая из этих таблиц содержит поля, которые связывают их друг с другом. Это означает, что кто-то может использовать систему для более удобного поиска всей информации для клиента, включая общую историю заказов.
Продолжение использования
Базы данных с плоскими файлами действительно используются, хотя функциональность этой модели данных не так эффективна, как более быстрый реляционный подход. Простые системы могут легко содержать основную информацию для быстрой базы данных. Отсутствие связанных полей также устраняет ошибки, которые могут возникнуть из-за отсутствующих таблиц, поэтому многие загружаемые базы данных используют этот формат, чтобы избежать таких проблем.
Иллюстрированный самоучитель по SQL для начинающих
Основы реляционных баз данных
Плоские файлы
Плоские файлы – самая простая разновидность структурированных данных. Нет, плоский файл – это не папка, придавленная стопкой книг. Плоские файлы называются так потому, что имеют минимальную структуру. Если бы они были зданиями, то их стены поднимались бы не от фундамента, а прямо от земли. Плоский файл – это собрание записей данных, записываемых в определенном формате одна за другой, – данные, одни только данные и ничего, кроме данных, т.е. список. На компьютерном языке плоский файл называется простым. В таком файле нет метаданных со структурной информацией, а есть лишь одни данные.
Скажем, вам нужно сохранить в системе плоских файлов имена и адреса клиентов вашей компании. У этой системы может быть примерно такая структура.
Harold Percival | 26262 | S. Howards Mill Rd | Westminster | CA92683 |
Jerry Appel | 32323 | S. River Lane Rd | Santa Ana | CA92705 |
Adrian Hansen | 232 | Glenwood Court | Anaheim | CA92640 |
John Baker | 2222 | Lafayette St | Garden Grove | CA92643 |
Michael Pens | 77730 | S. New Era Rd | Irvine | CA92715 |
Bob Michimoto | 25252 | S. Kelmstey Dr | Stanton | CA92610 |
Linda Smith | 444 | S.E. Seventh St | Costa Mesa | CA92635 |
Robert Funnell | 2424 | Shen Court | Anaheim | CA92640 |
Bill Checkal | 9595 | Curry Dr | Stanton | CA92610 |
Jed Style | 3535 | Randall St | Santa Ana | CA92705 |
Как видите, в файле нет ничего, кроме данных. Каждое поле имеет фиксированную длину (например, длина поля имени всегда равна 15 символам), и в этой структуре поля не отделены друг от друга. Тот, кто создал базу данных, для каждого из полей назначил позицию и длину. Любая программа, которая использует этот файл, должна «знать», какие характеристики назначены каждому полю, потому что этой информации в самой базе данных нет.
Такая структура плоских файлов позволяет работать с ними очень быстро. Однако недостатком является то, что программная логика, которая предназначена для манипуляции данными из файлов, должна быть очень подробной. Приложение должно точно «знать», где и как в файле хранятся данные. Итак, что касается малых систем, то в них плоские файлы работают прекрасно. Но чем больше система плоских файлов, тем труднее с ней работать. Использование базы данных вместо системы плоских файлов позволяет этого избежать. Хотя файлы базы данных имеют больший «фундамент», приложения могут работать на большем количестве аппаратных платформ и операционных систем. Кроме того, базы данных позволяют легче писать прикладные программы, потому что программисту не нужно вникать в детали того, как в файлах физически расположены данные.
Базы данных облегчают работу программистов, потому что при работе с данными в детали «вникает» СУБД. А приложениям, написанным для работы с плоскими файлами, необходимо держать эти детали при себе, т.е. в собственном коде. Если нескольким приложениям приходится одновременно получать доступ к одним и тем же данным из плоских файлов, то в каждом из приложений обязательно должен быть код, предназначенный для работы с этими данными. Но когда используется СУБД, то такой код в приложениях вообще не нужен.
Кроме того, если в приложении имеется код для работы с данными из плоских файлов, причем работает он только на определенной аппаратной платформе, то перенос приложения на новую платформу – это довольно сложное дело. Ведь придется изменить весь код, связанный с аппаратным обеспечением. А вот перенос на другую платформу аналогичного СУБД-приложения проходит намного проще – с меньшим количеством проблем и выпитого аспирина.
data_client
Как создать плоскую сводную таблицу
Добрый день. Сегодня я расскажу Вам, как создавать плоскую сводную таблицу в Excel. Пройдя этот урок, Вы научитесь создавать сводные таблицы, как на картинке ниже.
Известно, что при формировании сводной таблицы по умолчанию, Excel строит ее в древововидном виде. Это неплохо, когда нужно быстро получить обобщенные данные, но когда требуется в дальнейшем продолжить обработку таблицы, такой вид не годится. Нам на помощь придет плоская сводная таблица, которую можно сделать в несколько простых приемов.
Рассмотрим в качестве учебного примера ситуацию с простым отчетом по продажам. Есть несколько записей о выручке, которую получили наши агенты в разных городах в разное время. Нужно обобщить информацию по месяцам и фамилиям для последующего расчета премий.
1. Создаем сводную таблицу
Подробно останавливаться на этом пункте не буду, так как у нас на сайте есть отличная статья на эту тему: «Как создать сводную таблицу в Excel». Если Вы еще не знаете как это сделать, рекомендую прочитать, иначе двигаемся дальше.
2. Изменяем макет сводной таблицы на табличный
Для этого кликните на любую ячейку сводной таблицы, вверху справа должен появиться блок меню «Работа со сводными таблицами«. В нем выберите меню «Конструктор«, далее подменю «Макет отчета» и там «Показать в табличной форме«.
Выполнив эти действия, мы получаем сводную таблицу уже не в древовидном виде, а в форме таблицы. Однако для полноценной работы, нам мешают итоговые строки и отсутствие данных в части ячеек. Сейчас мы это исправим.
3. Удаляем итоговые строки
Для удаления итоговых строк кликните правой кнопкой мыши на любую итоговую ячейку, к примеру «Январь 2017 Итог». В появившемся контекстном меню выберите «Параметры поля» и там в блоке «Итоги» выберите «Нет«.
Итак, итоги удалены. Осталось добавить в пустые строки дублирующие данные и плоская сводная таблица будет готова!
4. Заполняем пропущенные данные
Если Вы обратите внимание на сводную таблицу в самом начале урока, то заметите что дата проставлена не во всех ячейках, сейчас мы это исправим. Для этого снова вызовите контекстное меню, нажав правой кнопкой мыши на любую из дат и снова выберите «Параметры поля. «, там перейдите в раздел «Разметка и печать» и установите галочку напротив пункта «Повторять подписи элементов«.
Что такое плоские данные
Типичным примером плоской таблицы является адресно-телефонный справочник, или, например, такая вот таблица:
Здесь атрибутами являются Код заказчика, Предприятие, Представитель, Страна и Город. Названия атрибутов помещаются в заголовке. Первая по счету запись указывает, что представителем предприятия ООО Андрей и К является некий Стасов, и что местоположением предприятия является город Киев, Украина.
ПЛОСКАЯ ТАБЛИЦА КАК МОДЕЛЬ БАЗЫ ДАННЫХ
ПРЕИМУЩЕСТВА ПЛОСКОЙ ТАБЛИЦЫ
2) Удобно хранить неструктурированные данные. В ряде случаев пользователю может быть неизвестно заранее, существует ли между атрибутами какая-либо иерархическая связь. Если так, то данные лучше всего хранить именно в плоской таблице. Например, именно в такой форме ученые начинают накапливать свои знания об окружающем нас мире. В дальнейшем, когда между атрибутами удается выявить взаимосвязи типа «один ко одному», «один ко многим» и «многие ко многим», можно будет преобразовать данные в иерархическую или реляционную базу данных.
3) Компактность. Несмотря на отсутствие структуры, плоская таблица представляет собой довольно компактную форму хранения данных. Каждая запись (или строка массива) состоит из строго определенного количества информационных атрибутов, что само по себе упорядочивает записи и делает их более сопоставимыми в заданных информационных разрезах.
ЭЛЕКТРОННЫЕ ПЛОСКИЕ ТАБЛИЦЫ
В действительности электронные таблицы и были созданы изначально для того, чтобы можно было эффективно работать именно с плоскими таблицами. Но для того, чтобы такая работа была эффективной, надо соблюдать определенные правила. Наример, на следующем рисунке показан пример плоской таблицы на рабочем листе Excel:
В данном случае заголовок таблицы занимает первую по счету строку, а записи расположены с 2 по 13 строки. Соответственно, столбцы занимают колонки с А до Е. Таким образом, таблица расположена в левом верхнем углу рабочего листа. Такое расположение плоской таблицы позволяет наилучшим способом применить к анализу плоской таблицы такие инструменты, как автофильтр и сводная таблица. На этом сайте под электронной плоской таблицей как правило понимается именно такое ее расположение.