Таблица

Таблица — это схема или рамка, в которой представлены данные и информация, которые можно читать как по вертикали, так и по горизонтали. Организована в строки (n-уплет или запись) и столбцы (пивот), первая строка часто составляет заголовок (или header) таблицы с её различными полями (атрибутами), в то время как остальные строки составляют тело таблицы, в которое поступают полезные данные.

Использование таблиц широко распространено во всей коммуникации, научных исследованиях и анализе данных. Таблицы встречаются в СМИ, в рукописных заметках, в информатике в электронных таблицах, в программном обеспечении и реляционных базах данных, на дорожных знаках и во многих других местах. Точные соглашения и терминология для таблиц варьируются в зависимости от контекста. Кроме того, таблицы значительно различаются по разнообразию, структуре, гибкости и нотации[5].[6][7][8][9] В книгах и статьях технической литературы информационные таблицы обычно представлены, помимо основного текста, в виде пронумерованных и озаглавленных блоков.

Что важно знать
Таблица
итал. Tabella
Область использования Информационные технологии, базы данных, бизнес, наука, образование[1]
Дата появления IV—III тысячелетия до н. э[2].
Место появления Древняя Месопотамия[3]
Автор понятия Не имеет единственного автора[4]

Описание

Таблица состоит из упорядоченного расположения строк и столбцов. Это упрощённое описание самого элементарного типа таблицы. Из этого упрощённого описания следуют некоторые соображения:

  • термин строка имеет несколько распространённых синонимов (например, запись, k-кортеж, n-кортеж, вектор);
  • термин столбец имеет несколько распространённых синонимов (например, поле, параметр, свойство, атрибут, стойка);
  • столбец обычно идентифицируется по имени;
  • имя столбца может состоять из одного слова, фразы или числового индекса;
  • пересечение строки и столбца называется ячейкой.

Элементы таблицы могут быть сгруппированы, сегментированы или расположены различными способами и даже рекурсивно вложены. Кроме того, таблица может включать метаданные, аннотации, заголовок, подвал или другие вспомогательные элементы[9].

Простая таблица

Ниже приведён пример простой таблицы с тремя столбцами и девятью строками. Первая строка не учитывается, так как используется только для отображения имён столбцов. Она называется «строкой заголовка».

Таблица возраста
Имя Фамилия Возраст
Tinu Elejogun 14
Marek Kostrzewski 25
Giglio McGarrett 18
Olatunkbo Chijiaku 22
Adrienne Anthoula 22
Axelia Athanasios 22
Jon-Kabat Zinn 22
Thabang Mosoa 15
Kgaogelo Mosoa 13

Многомерная таблица

Пример таблицы, содержащей строки с итоговой информацией. Итоговая информация состоит из частичных сумм, объединённых из предыдущих строк в том же столбце. Также понятие измерения является частью базовой терминологии[10]. Любая «простая» таблица может быть представлена как «многомерная» таблица, нормализуя значения данных в упорядоченные иерархии. Обычный пример такой таблицы — таблица умножения.

Таблица умножения
× 1 2 3
1 1 2 3
2 2 4 6
3 3 6 9

В многомерных таблицах каждая ячейка в теле таблицы (и её значение) относится к значениям в начале столбца (то есть заголовку), строки и другим структурам в более сложных таблицах. Это инъективное соответствие: каждая комбинация значений строки заголовков (строка 0, за неимением лучшего термина) и столбца заголовков (столбец 0, за неимением лучшего термина) связана с уникальной ячейкой в таблице:

  • Столбец 1 и строка 1 будут соответствовать только ячейке (1,1);
  • Столбец 1 и строка 2 будут соответствовать только ячейке (2,1) и т. д.

Первый столбец часто содержит описание измерения информации, по которому осуществляется навигация по остальной части таблицы. Этот столбец называется «столбец-шаблон». Таблицы могут содержать три и более измерений и могут классифицироваться по количеству измерений. Многомерные таблицы могут иметь суперстроки — строки, описывающие дополнительные измерения для строк, представленных под этой строкой, и обычно сгруппированы в древовидную структуру. Эта структура обычно визуально представлена соответствующим количеством пробелов перед меткой каждого шаблона[11].

В литературе таблицы часто содержат числовые значения, накопленную статистику, категориальные значения и иногда параллельные описания в виде текста[12]. Они могут конденсировать большие объёмы информации в ограниченном пространстве и поэтому популярны в научной литературе во многих областях исследований.

Специфические применения

Таблицы являются универсальным инструментом для структурирования, представления и анализа данных, который применяется в самых разнообразных сферах человеческой деятельности.

Информационные технологии и базы данных

В сфере информационных технологий таблицы играют фундаментальную роль.

  • Реляционные базы данных: Таблицы служат основным средством для хранения и организации больших объёмов информации. Каждая таблица содержит данные об объектах определённого типа (например, клиенты, товары), где строки соответствуют отдельным записям, а столбцы — их характеристикам (атрибутам)[13]. Для управления данными в таких таблицах используется язык SQL[13].
  • Электронные таблицы: Программы, такие как Microsoft Excel и Google Sheets, позволяют не только хранить данные, но и производить с ними сложные вычисления с помощью формул, выполнять сортировку, фильтрацию, а также создавать на их основе диаграммы и графики[14].

Бизнес, экономика и финансы

Таблицы являются незаменимым инструментом для множества бизнес-процессов[15].

  • Финансовый учёт и анализ: Бухгалтеры и финансовые аналитики используют таблицы для ведения учёта, составления отчётов (например, о прибылях и убытках), расчёта бюджетов и анализа финансовых показателей[15].
  • Бизнес-аналитика: Аналитики данных применяют таблицы для сбора, обработки и анализа информации о бизнес-процессах, продажах и эффективности маркетинговых кампаний[15].
  • Управление проектами: В планировании используются табличные формы, такие как диаграмма Ганта, для распределения задач и отслеживания их выполнения[15].
  • Юнит-экономика: Таблицы помогают рассчитать прибыльность бизнеса на основе одной единицы товара или одного клиента[16].

Наука и образование

В научных исследованиях и образовательном процессе таблицы используются для систематизации и наглядного представления информации.

Повседневное использование

Таблицы широко распространены и в обычной жизни для организации информации. Примерами могут служить расписание уроков, турнирные таблицы в спорте, списки дел или классный журнал[19]. Их также вставляют в текстовые документы, отчёты, книги и на веб-сайты для наглядной иллюстрации данных.

Публикация

В издательском деле и при подготовке документов таблицы используются для наглядного представления данных. Их вставляют в отчёты, научные работы, книги, презентации и на веб-сайты.

Математика

Таблицы применяются для решения логических задач, представления наборов данных для анализа и демонстрации зависимостей между величинами. Классическими примерами являются таблица умножения в арифметике и таблица истинности в логике.

Естественные науки

В естественных науках таблицы используются для систематизации и наглядного представления информации. Наиболее известным примером является Периодическая таблица Менделеева в химии, которая не только упорядочила известные элементы по их свойствам, но и позволила предсказать существование и характеристики ещё не открытых[20]. Другими примерами служат таблицы приливов в океанографии и астрономические таблицы (например, зидж) для расчёта положения небесных тел.

Программные приложения

Таблица на HTML

Современные программные приложения предоставляют пользователям возможность создавать, форматировать и редактировать таблицы и табличные данные для широкого спектра применений, например:

  • Текстовые процессоры, где таблицы используются для вставки структурированных данных непосредственно в документы.
  • Приложения для электронных таблиц, такие как Microsoft Excel и Google Sheets. Они позволяют не только хранить данные, но и производить с ними сложные вычисления с помощью формул, выполнять сортировку, фильтрацию, а также создавать на их основе диаграммы и графики.
  • Программное обеспечение для презентаций, в котором таблицы служат для наглядного представления информации на слайдах.
  • Таблицы, заданные в HTML или другом языке разметки для отображения данных на веб-страницах.

Разработка программного обеспечения

Таблицы используются в разработке программного обеспечения как для высокоуровневой спецификации, так и для низкоуровневой реализации. Использование в спецификации программного обеспечения может включать произвольное включение простых таблиц решений в текстовые документы вплоть до использования табличных методологий спецификации, примерами которых являются SCR и Statestep[21][22]. Сторонники табличных техник, среди которых выделяется Дэвид Парнас, подчёркивают их понятность, а также преимущества качества и стоимости формата, позволяющего систематическую инспекцию, в то время как соответствующие недостатки, испытываемые при графической нотации, были отмечены как мотивация для разработки по меньшей мере двух табличных подходов[22][23].

На уровне программирования программное обеспечение может быть реализовано с использованием конструкций, обычно представляемых или понимаемых как табличные, например, для хранения данных (возможно, для мемоизации предыдущих результатов), например, в массивах или хеш-таблицах, или управляющих таблицах, определяющих поток выполнения программы в ответ на различные события или входные данные.

Базы данных

В реляционных базах данных таблицы служат основным средством для хранения и организации больших объёмов информации. Каждая таблица содержит данные об объектах определённого типа (например, клиенты, товары), где строки соответствуют отдельным записям, а столбцы — их характеристикам (атрибутам). Для управления данными в таких таблицах используется язык SQL.

Пример на SQL:

CREATE TABLE Clienti ( CodiceCliente NUMBER(5), Cognome VARCHAR(20), Nome VARCHAR(20), Città VARCHAR(20) );

Доступность

Таблицы должны быть доступными, то есть легко воспринимаемыми для любого типа пользователя и читателя, будь то на бумаге или на экране[24].

В 2018 году произошли важные обновления в стандартах веб-доступности, которые затронули и работу с таблицами. 5 июня консорциум W3C опубликовал новую версию Руководства по обеспечению доступности веб-контента — WCAG 2.1[25]. Эта версия расширила стандарт WCAG 2.0, сделав упор на улучшение доступности для пользователей мобильных устройств, людей со слабым зрением и с когнитивными нарушениями[26]. Одновременно в 2018 году началось активное внедрение спецификации WAI-ARIA 1.1, которая предоставила более совершённые инструменты для создания сложных интерактивных таблиц (гридов)[27].

Простота

Простая таблица (более доступная):

Итоговые результаты
Класс Серия A Серия B
1 Ювентус (90 очков) Аталанта (93 очка)
2 Милан (89 очков) Сассуоло (88 очков)
3 Интер (85 очков) Эмполи (82 очка)

Сложная таблица (менее доступная):

Итоговые результаты
Серия A Серия B
Команда Очки Команда Очки Команда Очки Команда Очки
Ювентус 90 Милан 89 Аталанта 93 Сассуоло 88

Цвет

Цвет может помочь пользователю или читателю при чтении таблиц[28]:

Таблица с чередующимися цветными строками
Таблица с чередующимися цветными строками

В вебе

С появлением мобильных устройств, HTML5 и CSS3, например, стало возможно создавать адаптивные и интерактивные таблицы для веба, то есть такие, которые подстраиваются под устройство, на котором отображаются, и с которыми пользователь может взаимодействовать с помощью мыши или пальца.

Стандарт HTML5 закрепил тенденцию разделения структуры (HTML) и представления (CSS), в результате чего многие атрибуты тега <table>, отвечавшие за внешний вид, были признаны устаревшими. Такие атрибуты, как `align`, `bgcolor`, `border`, `cellpadding`, `cellspacing` и `width`, были заменены соответствующими CSS-свойствами, такими как `border`, `padding` и `border-spacing`[29].

Современные CSS-технологии позволяют гибко стилизовать таблицы. Свойство `border-collapse: collapse` используется для создания аккуратных одинарных рамок[30], а `table-layout: fixed` ускоряет их отрисовку[31]. Для улучшения читаемости больших объёмов данных широко применяется «зебра-полосатость» (чередование цвета фона строк) с помощью псевдокласса `:nth-child(even)`[32]. Структурные теги <thead>, <tbody> и <tfoot> позволяют применять разные стили к шапке, телу и подвалу таблицы соответственно[33].

Значительным прорывом в веб-вёрстке стало широкое внедрение CSS Flexbox и CSS Grid, которые предоставили альтернативу для создания табличных макетов[34]. Однако для семантически верного представления именно табличных данных (статистика, отчёты) по-прежнему рекомендуется использовать тег <table>, в то время как Flexbox и Grid служат для общей раскладки элементов на странице.

Для создания сложных интерактивных таблиц используются JavaScript-библиотеки и компоненты в составе фреймворков (например, React или Vue). Они позволяют реализовать такие функции, как сортировка и фильтрация данных на лету, разбиение на страницы (пагинация), закрепление заголовков при прокрутке и редактирование ячеек[30].

Согласно правилам WCAG, при использовании таблиц для представления данных рекомендуется использовать теги TH и SCOPE для идентификации ячеек-заголовков строк и столбцов[35]. Это позволяет скринридеру (программа программного обеспечения, которая определяет и интерпретирует текст, отображаемый на экране компьютера, представляя его с помощью синтеза речи или через брайлевский дисплей) организовать данные для чтения в логическом порядке и идентифицировать типы данных. Следует избегать длинных строк и столбцов в таблицах данных, особенно в качестве заголовков, поскольку многие скринридеры не могут корректно их анализировать. Для сложных таблиц данных необходимо использовать теги доступности, такие как CAPTION, SUMMARY, ABBR, ACRONYM, TFOOT и THEAD для организации информации в сложных таблицах данных. Более доступным вариантом является разделение сложной таблицы на серию связанных простых таблиц, которые также легче обрабатывать[36].

Код

Базовый код доступной HTML-таблицы следующий:

<table>
<caption>Дети Марты</caption>

<tr>
<th scope="col">Имя</th>
<th scope="col">Возраст</th>
<th scope="col">День рождения</th>
</tr>

<tr>
<th scope="row">Роберто</th>
<td>5</td>
<td>6 мая</td>
</tr>

<tr>
<th scope="row">Анна</th>
<td>8</td>
<td>4 февраля</td>
</tr>

</table>

Примеры недоступных таблиц

Можно вложить одну таблицу в другую, если включить полную структуру, включая элемент <table>. Обычно это не рекомендуется, так как делает разметку более запутанной и менее доступной для пользователей скринридеров[37].

Пример:

таблица 1
вложенная таблица 2
ячейка таблицы 1

Таблицы без соответствующих ячеек-заголовков трудно навигировать пользователям скринридеров, и чем сложнее таблица, тем менее она понятна[38].

Таблица в следующем примере не содержит ни одной реальной ячейки-заголовка (<th>); вместо этого используются только ячейки данных (<td>). Те ячейки, которые должны быть заголовками, просто визуально выделены с помощью CSS-правила font-weight: bold. Кроме того, есть только одна строка заголовков (верхняя строка), а строки данных не имеют своих заголовков.

Недоступная таблица
Недоступная таблица

Правила WAI ARIA

WAI-ARIA (Web Accessibility Initiative — Accessible Rich Internet Applications) — это набор документов, опубликованных W3C (World Wide Web Consortium), которые определяют, как повысить доступность динамического контента и компонентов пользовательского интерфейса, разработанных с использованием AJAX, HTML, JavaScript и других связанных технологий[39].

Спецификация WAI-ARIA 1.1, получившая статус рекомендации W3C в конце 2017 года и активно внедрявшаяся в 2018-м[27], предоставила более совершённые инструменты для создания сложных интерактивных таблиц. Стандарт помогает разграничить статические таблицы данных и интерактивные гриды (grids). Для статических таблиц по-прежнему предпочтительно использовать семантические теги HTML, в то время как WAI-ARIA предназначена для описания ролей, состояний и свойств динамических интерфейсов, превращая таблицы в полноценные интерактивные компоненты, такие как табличные редакторы или сетки с возможностью сортировки и выделения[40].

Ключевые возможности WAI-ARIA 1.1 для табличных структур:

  • Интерактивные гриды: Спецификация подробно описывает, как с помощью роли `role="grid"` и связанных с ней атрибутов превратить структуру, внешне похожую на таблицу (созданную, например, с помощью тегов <div>), в полноценный интерактивный компонент.
  • Семантические роли: WAI-ARIA формально определяет роли, которые позволяют создавать доступные табличные структуры даже без использования нативных тегов HTML (хотя их применение остаётся предпочтительным)[41]. К ним относятся `role="table"`, `role="row"`, `role="cell"`, `role="columnheader"` и `role="rowheader"`.
  • Атрибуты для больших таблиц: Для таблиц с виртуальной прокруткой, где не все строки и столбцы одновременно загружены в DOM, были введены атрибуты `aria-colcount` и `aria-rowcount`. Они сообщают вспомогательным технологиям общее количество столбцов и строк в таблице, улучшая навигацию[41].

Таблицы как изображения

Таблицы, вставленные как изображения с помощью тега HTML <img>, не могут быть прочитаны скринридерами так же, как таблица, построенная с помощью тега <table>[42].

Следующая таблица

Курс День Время
Фортепиано Понедельник 14.00-15.00

будет прочитана скринридерами построчно, сверху вниз, если построена с помощью тега <table>.

Следующая таблица

Tabella-non-accessibile.png

является таблицей-изображением, которая может быть в формате GIF, JPG или PNG. Она вставляется следующим образом:

<img src="pianoforte-corso.jpg" alt="таблица курс фортепиано" width="230" height="65">

История

«A TABLE of the Apertures of Object-Glasses" Адриена Озу из статьи 1665 года в Philosophical Transactions.

Понятие таблицы как способа организации данных не имеет единственного автора и развивалось на протяжении тысячелетий. Слово «таблица» происходит от латинского tabula, что означает «доска» или «плита»[43].

Древний мир

Самые ранние формы табличной записи данных появились в Древней Месопотамии. Зарождение письменности на глиняных носителях началось около 3500 г. до н. э[44]., а к 3200—3000 гг. до н. э. появились более развитые формы клинописи[45]. Шумеры использовали глиняные таблички для ведения хозяйственного и административного учёта: составляли перечни имущества, скота, собранного урожая и долговых обязательств[46]. Эта система возникла из необходимости управлять сложной экономикой храмовых и дворцовых хозяйств[47]. Примерно в то же время в Древнем Египте для аналогичных целей учёта использовались папирусные свитки[46].

Значительно позже, в Древнем Риме, таблицы приобрели юридическое значение. В 451—450 гг. до н. э. был создан первый свод писаных законов — Законы Двенадцати таблиц, выгравированный на 12 досках и выставленный на всеобщее обозрение на Форуме[48][49].

От математики до современной науки

Математические таблицы известны с глубокой древности. В Вавилоне около 2000 года до н. э. были распространены глиняные таблички с таблицами умножения, обратных чисел, квадратов и кубов[50]. В привычном виде таблица умножения была зафиксирована последователем Пифагора Никомахом Герасским на рубеже I и II веков н. э[51]..

С развитием науки таблицы становились всё более сложными. В IX веке персидский учёный аль-Хорезми разработал подробные тригонометрические и астрономические таблицы (зидж)[43]. В эпоху Возрождения европейские математики, такие как Региомонтан и Николай Коперник, создавали более точные тригонометрические таблицы[50].

В средневековых счётных домах столы покрывались куском клетчатой ткани для подсчёта денег. Exchequer — архаичный термин для английского учреждения, ведавшего государственными доходами.

Вершиной научной систематизации стала Периодическая система химических элементов, созданная Дмитрием Менделеевым в 1869 году. Эта таблица не только упорядочила известные химические элементы, но и позволила предсказать существование и свойства ещё не открытых.

Электронные таблицы

Революция в использовании таблиц произошла с появлением компьютеров. Идею электронной таблицы для проведения вычислений впервые сформулировал учёный Ричард Маттессич в 1961 году в своей работе «Бюджетные модели и симуляция систем».

Практическая реализация появилась в 1979 году, когда студент Гарвардского университета Дэн Бриклин и программист Боб Фрэнкстон разработали программу VisiCalc для компьютера Apple II[52]. Идея пришла к Бринклину, когда он наблюдал, как его профессор был вынужден стирать и переписывать множество цифр на доске при изменении одного параметра в расчётах[43]. VisiCalc автоматизировала этот процесс и стала первым массовым табличным процессором, превратив персональный компьютер из хобби для энтузиастов в мощный бизнес-инструмент. Дэна Бриклина часто называют «отцом электронных таблиц»[53].

В 1982 году появился Lotus 1-2-3, который интегрировал в себя графику и элементы баз данных, а в 1985 году Microsoft выпустила первую версию Excel для Macintosh, которая со временем стала доминирующим табличным процессором в мире[43].

Примечания