Данные как основа: от реляционных баз до SQL (1970–1979)

Что произошло

19 июня 1970 года в журнале «Communications of the ACM» вышла статья, которую сегодня мало кто читал, но результатами которой пользуется каждый. Эдгар Фрэнк Кодд (Edgar Frank Codd), математик из исследовательской лаборатории IBM в Сан-Хосе, опубликовал работу с негромким названием: «A Relational Model of Data for Large Shared Data Banks» — «Реляционная модель данных для больших совместно используемых банков данных».

За техническим языком скрывалась революция. Кодд предложил хранить данные в таблицах.

Звучит банально — но в 1970 году это было ересью. Существующие базы данных — IBM IMS, работавшая на мейнфреймах System/360, — использовали иерархическую модель: данные организованы как дерево, каждая запись связана с родительской. Чтобы найти нужную информацию, нужно было знать точный путь от корня дерева к листу. Программист писал код, который спускался по ветвям: «Войди в корневой сегмент → перейди к подразделению → найди сотрудника → извлеки телефон». Если структура дерева менялась (а она менялась постоянно — бизнес-требования не стоят на месте), все программы, обращающиеся к базе, приходилось переписывать.

Кодд увидел в этом фундаментальную ошибку: физическое хранение данных смешивалось с их логической структурой. Он предложил разделить одно и другое. Данные хранятся в таблицах (он называл их «отношениями» — relations, отсюда «реляционная модель»). Строки таблицы — записи. Столбцы — атрибуты. Связь между таблицами — через общие поля, а не через физические указатели. Чтобы получить данные, не нужно знать, как они хранятся. Нужно просто описать, что ты хочешь получить.

Это было не техническое усовершенствование — это был сдвиг парадигмы. От императивного «как найти» к декларативному «что найти». От программирования к запросу.

IBM отнеслась к идее Кодда прохладно. Компания продавала IMS — иерархическую базу данных, установленную на тысячах мейнфреймов по всему миру. Зачем уничтожать собственный продукт? Кодд настаивал, IBM сопротивлялась. Внутренний проект System R — прототип реляционной СУБД — был запущен, но с ограниченными ресурсами и без поддержки руководства.

Годом позже — 1971 — произошло событие из другой области, но с не менее далеко идущими последствиями для UX. Американский физик Джеймс Фергасон (James Fergason), работавший в лаборатории Кентского университета (Огайо), получил патент на практическую конструкцию LCD-дисплея на основе TN-эффекта (twisted nematic — скрученный нематик). Жидкие кристаллы были известны с конца XIX века, но никто не мог заставить их работать надёжно при низком энергопотреблении. Фергасон решил эту задачу: его TN-ячейка работала от крошечного напряжения, была контрастной, быстрой и дешёвой в производстве.

Первые LCD появились в наручных часах и калькуляторах. Казалось — нишевая технология. Но путь от калькулятора до экрана смартфона — это прямая линия, просто длинная. Без TN-эффекта Фергасона не было бы плоских мониторов, не было бы ноутбуков, не было бы планшетов. Вся мобильная революция XXI века стоит на плечах физика из Огайо.

А в 1979 году круг замкнулся. Маленькая калифорнийская компания Relational Software (вскоре переименованная в Oracle) выпустила первую коммерческую реляционную СУБД с поддержкой языка SQL. SQL — Structured Query Language — вырос из проекта System R в IBM. Два исследователя, Дональд Чемберлин (Donald Chamberlin) и Рэймонд Бойс (Raymond Boyce), в 1974 году разработали язык под названием SEQUEL (Structured English Query Language), специально спроектированный для того, чтобы быть похожим на английский:

SELECT name, phone FROM employees WHERE department = 'Sales'

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

IBM не торопилась с коммерциализацией. Oracle опередила. Ларри Эллисон и его партнёры, прочитав опубликованные статьи IBM о System R, построили собственную реализацию SQL и вывели её на рынок. К середине 1980-х SQL стал стандартом индустрии. Сегодня на SQL работают миллиарды запросов каждую секунду — от банковских транзакций до рекомендаций Netflix.

Контекст эпохи

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

Этот переход создал новую проблему. Вычисления требуют точности, но не гибкости: формула баллистической траектории не меняется от квартала к кварталу. Информация требует и того, и другого: структура данных о клиентах меняется, когда появляется новый продукт или новый рынок. Иерархические базы данных не справлялись с изменениями. Каждое изменение структуры — перестройка дерева, переписывание программ, тестирование, внедрение. Бизнес менялся быстрее, чем программисты успевали переписывать код.

Реляционная модель Кодда решала эту проблему элегантно. Таблицы можно добавлять, столбцы — расширять, связи — перестраивать. Логическая структура независима от физического хранения. Программист не должен знать, на каком диске лежат данные и в каком порядке записаны. Он просто спрашивает.

Параллельно менялись и экраны. ЭЛТ-мониторы — электронно-лучевые трубки — были громоздкими, тяжёлыми и потребляли много энергии. LCD-технология Фергасона предложила альтернативу: плоский, лёгкий, энергоэффективный дисплей. В 1970-х LCD годились только для часов и калькуляторов. Но технология развивалась: в 1980-х — экраны ноутбуков, в 1990-х — плоские мониторы, в 2000-х — смартфоны и планшеты. Каждый шаг уменьшал расстояние между человеком и информацией.

Значение для UX

Три изобретения 1970-х — реляционные базы, SQL и LCD — кажутся инженерными деталями, далёкими от дизайна интерфейсов. Но именно они создали инфраструктуру, на которой стоит современный UX.

Data-driven UX. Каждый раз, когда UX-дизайнер смотрит на тепловую карту кликов, анализирует воронку конверсии или запускает A/B-тест, — он работает с данными, которые хранятся в реляционной базе и извлекаются SQL-запросами. Без Кодда не было бы Google Analytics. Без SQL не было бы Mixpanel. Без реляционных баз не было бы CRM-систем, рекомендательных алгоритмов, персонализации контента. Весь data-driven подход к UX — «принимай решения на основе данных, а не мнений» — стал возможным благодаря тому, что данные научились хранить и извлекать эффективно.

SQL как модель декларативного интерфейса. Принцип SQL — «опиши что, а не как» — повлиял далеко за пределами баз данных. Современные интерфейсы всё чаще работают по декларативной модели: CSS описывает, как должен выглядеть элемент, а не как его нарисовать; React описывает, каким должен быть экран, а не как его обновить; голосовые помощники принимают запросы на естественном языке — «покажи погоду на завтра», а не последовательность команд. Кодд и Чемберлин сформулировали принцип, который стал фундаментом для юзабилити: хорошая система позволяет пользователю сказать, что он хочет, а не объяснять, как это получить.

LCD и мобильный UX. Путь от TN-ячейки Фергасона до iPhone — 36 лет. Но без первого не было бы второго. ЭЛТ-монитор невозможно положить в карман. LCD можно. Тонкие экраны сделали возможными ноутбуки, КПК, планшеты, смартфоны — и каждое из этих устройств породило новый тип пользовательского опыта. Мобильный UX, тач-интерфейсы, адаптивный дизайн — всё это следствия одного физического факта: экран стал тонким и лёгким. Закон Фиттса на мобильном экране работает иначе, чем на десктопе: палец грубее мыши, экран меньше, но ближе к глазам. Эти особенности породили целую дисциплину мобильного UX-дизайна.

Связанные статьи

Реляционные базы, SQL и LCD связаны с фундаментальными концепциями UX:

  • Что такое UX — data-driven подход к UX стал возможен благодаря реляционным базам данных. Без структурированного хранения и быстрого извлечения данных невозможны аналитика поведения, A/B-тестирование и персонализация.
  • Что такое юзабилити — SQL воплотил принцип «опиши что, а не как» — ту же идею, которая лежит в основе юзабилити: система должна позволять пользователю достигать цели, а не заставлять его понимать механизм.
  • Закон Фиттса — LCD-технология сделала возможными мобильные устройства, на которых закон Фиттса работает иначе: палец вместо мыши, маленький экран, новые паттерны взаимодействия.
  • Эвристики Нильсена — «Соответствие между системой и реальным миром» (вторая эвристика): SQL спроектирован как язык, читаемый человеком, — SELECT, FROM, WHERE понятны без обучения.

Из других статей серии «История UX»:

  • Первые ЭВМ — от ABC до ENIAC (1939–1945) — первые компьютеры решали вычислительные задачи. Реляционные базы данных превратили компьютер в хранилище знаний — принципиально иной тип взаимодействия с информацией.
  • IBM System/360 и PDP-8 (1964–1965) — иерархическая база IMS была создана для System/360. Реляционная модель Кодда — ответ на ограничения IMS и шаг к гибкости, которой требовал бизнес.

Вопросы и ответы

Что такое реляционная модель данных и кто её придумал?

Реляционная модель данных — способ организации информации в виде связанных таблиц, предложенный математиком Эдгаром Коддом (Edgar F. Codd) из IBM в 1970 году. До Кодда данные хранились в иерархических или сетевых структурах, напоминающих перевёрнутое дерево. Кодд предложил представлять данные как таблицы (отношения — relations), в которых строки — это записи, а столбцы — атрибуты. Связи между таблицами задаются через общие поля, а не через физические указатели. Это позволило отделить логическую структуру данных от физического хранения и сделало базы данных понятными для людей без инженерного образования.

Когда появился язык SQL и зачем он нужен?

SQL (Structured Query Language) был разработан в IBM в 1970-х годах под названием SEQUEL, а в 1979 году компания Relational Software (будущая Oracle) выпустила первую коммерческую реляционную СУБД с поддержкой SQL. SQL позволяет формулировать запросы к базе данных на языке, близком к английскому: SELECT name FROM customers WHERE city = 'Moscow'. Пользователь описывает, какие данные нужны, а не как их найти — это принципиальное отличие от предыдущих подходов, требовавших программирования.

Как реляционные базы данных и LCD-дисплеи связаны с UX?

Реляционные базы данных сделали возможным data-driven подход к UX: A/B-тестирование, аналитика поведения, персонализация — всё это требует структурированного хранения и быстрого извлечения данных. Без SQL не было бы ни Google Analytics, ни CRM-систем, ни рекомендательных алгоритмов. LCD-дисплеи, изобретённые в 1971 году, открыли путь от громоздких ЭЛТ-мониторов к плоским экранам, ноутбукам, планшетам и смартфонам — устройствам, которые определили современный мобильный UX.