- BrainTools - https://www.braintools.ru -

SQL: история создания и патенты

SQL: история создания и патенты - 1

Ряд аналитиков середины 2010-х отмечали, что язык SQL — один из самых важных и нужных для программистов. Ведь он распространен максимально широко: им пользуется бизнес, государственные учреждения, вузы, финансовые структуры и так далее. В нашей статье — о том, как этот язык появился и какие патенты на него были получены.

История SQL

SQL — один из старых языков запросов к базам данных. Первое упоминание о нем приходится на 70-е годы [1].

Идеологическая основа языка — научная работа доктора Эдгара Кодда «Реляционная модель данных для больших общих банков данных», вышедшая в 1970 году. Кодд предлагал моделировать данные с помощью математического понятия отношений (они представлены чаще всего в виде таблиц). Концепция ученого позволяла более гибко реагировать [2] на возникающие ситуации: например, новые отношения можно было добавлять даже без изменения уже существующих.

Эта научная позиция понравилась Дональду Чемберлену и Рэймонду Бойсу. Позже Чемберлен вспоминал [3]: «Для Рэя и меня знакомство с реляционной моделью данных на исследовательском симпозиуме Кодда стало откровением. Впервые мы увидели, как запрос, требующий сложной программы на языке DBTG, может быть сведен к нескольким простым строкам с использованием одного из реляционных языков Кодда. Для нас двоих это стало игрой — придумывать запросы и соревноваться друг с другом в их выражении на различных языках запросов».

Используя концепцию Кодда, сотрудники IBM Чемберлен и Бойс придумали SQUARE (который был сложным и многоаспектным), затем появился SEQUEL (Structured English Query Language), который трансформировался в известный всем SQL.

Созданное инноваторами работало неплохо [4]. Поэтому в 1979 году была представлена первая коммерческая реализация SQL под названием Oracle V2. В 1980-м — SQL начал масштабно внедряться в бизнес-секторе.

Что было дальше?

Раз язык охватывал все большее количество секторов, то требовалась его унификация. Это было сделано в 1986 году, когда опубликовали ANSI SQL-86 (или SQL1). Он установил базовые принципы языка (семантику и синтаксис). Через год SQL-86 стал международным.

На этом развитие не остановилось. Через три года, в 1989-м, приняли стандарт SQL-89. В 1992-м появился SQL-92.

Дальше — стандарты разрабатывались по мере необходимости: язык же эволюционировал и требовал отдельных модификаций.

Что с патентами?

Для того, чтобы понять происходящее с патентами, обратимся к профильному поисковому ресурсу [5]. В выдаче — более 100 тысяч наименований защитных документов, касающихся инноваций, связанных с обработкой SQL, базами данных, оптимизацией запросов. При этом ТОП-5 компаний, которым принадлежат эти патенты, выглядит так: на первой позиции — Oracle International Corporation, на второй — International Business Machines Corporation, третье место занимает Microsoft Corporation, на четвертой позиции — Ping An Technology, на пятой — Sap Se.

Поняв расстановку по фирмам, акцентируем внимание [6] на тех патентах, которые в некоторой части характеризуют развитие языка.

В целом патенты можно условно разделить на несколько больших групп.

Первая — период до искусственного интеллекта [7]. Здесь можно выделить, например, патент «Система баз данных на основе SQL с улучшенной методологией индексирования» [8]. Автор соединяет концепцию колоночного хранения данных и словарного кодирования, это позволяет сократить затраты памяти [9], улучшить запросы аналитики, ускорить фильтрацию, группировку и подсчет статистики.

Схема из патента US5918225A

Схема из патента US5918225A

Вторая — постепенное «включение» ИИ. Обратите внимание на патент «Однократное обучение для преобразования текста в SQL» [10]. О чем он? Представим себе, что пользователь просит систему показать всех клиентов из города, которые сделали заказ за прошлый месяц. Система строит в автоматическом режиме SQL, основываясь на тысячах примеров. Однако если пользователь формулирует свой запрос иначе или здесь нужен иной (новый) шаблон, с которым система не сталкивалась в обучении [11], то качество резко падает. Патент помогает не придумывать велосипед с нуля, а использовать уже имеющиеся (готовые) шаблоны.

Схема из патента US20230097443A1

Схема из патента US20230097443A1

Третья — акцент на генеративном искусственном интеллекте. Вот и пример патента — «Преобразование естественного языка в SQL для специализированного корпоративного хранилища данных на основе генеративного искусственного интеллекта» [12]. Предположим, что пользователь просит составить список клиентов по определенным показателям. Система извлекает основные позиции (сущности и атрибуты) из запроса, определяет бизнес-домен, ищет сведения в нужной части каталога, используя сразу несколько механизмов. Полученные сведения сопоставляются с таблицами и колонками базы данных и ранжируются по релевантности. Далее происходит генерация SQL, ее проверка и объяснение пользователю того, почему были выбраны именно эти таблицы. Новизна указанного патента, конечно, не такая масштабная, как это было в самом начале пути. Однако здесь происходит объединение разных технических элементов в одну корпоративную архитектуру.

Что-то мало патентов. Можно еще примеры?

Конечно.

Расскажем также о нескольких охранных документах.

«Обработка полуструктурированных и неструктурированных данных в сегментированной базе данных» [13]. Этот патент помогает решать проблему: как хранить, искать «нестандартные» данные в огромной распределенной базе данных.

«Метод оптимизации запроса, содержащего подзапрос с условием “существует” и подзапрос с условием “не существует”» [14]. Здесь — база автоматически переписывает заданный запрос в более эффективную форму. Для пользователя разницы особой нет, но сервер в такой ситуации делает меньше работы.

«Метод оптимизации SQL-запросов, в которых предикат соответствует операндам, допускающим значение NULL» [15]. Система анализирует условия, содержащие проверки на значение NULL, а потом переписывает полученное в более эффективную форму.

Примеры программ. Источник: Онлайн Патент

Примеры программ. Источник: Онлайн Патент

Также язык популярен в российских компаниях и организациях. Свидетельство тому — сотни свидетельств на программы для ЭВМ, полученные в Роспатенте.

О сервисе Онлайн Патент:

Онлайн Патент — цифровая система № 1 в рейтинге Роспатента. С 2013 года мы создаем уникальные LegalTech‑решения для защиты и управления интеллектуальной собственностью. Зарегистрируйтесь в сервисе [16] Онлайн Патент и получите доступ к следующим услугам:

Автор: letsweb

Источник [21]


Сайт-источник BrainTools: https://www.braintools.ru

Путь до страницы источника: https://www.braintools.ru/article/32855

URLs in this post:

[1] 70-е годы: https://habr.com/ru/articles/311288/

[2] реагировать: http://www.braintools.ru/article/1549

[3] вспоминал: https://learnsql.com/blog/history-of-sql/

[4] работало неплохо: https://sky.pro/wiki/sql/istoriya-i-razvitie-sql/

[5] профильному поисковому ресурсу: https://patents.google.com/?q=(SQL)&before=priority:20250101&after=priority:20000101

[6] внимание: http://www.braintools.ru/article/7595

[7] интеллекта: http://www.braintools.ru/article/7605

[8] «Система баз данных на основе SQL с улучшенной методологией индексирования»: https://patents.google.com/patent/US5918225A/en

[9] памяти: http://www.braintools.ru/article/4140

[10] «Однократное обучение для преобразования текста в SQL»: https://patents.google.com/patent/US20230097443A1/en

[11] обучении: http://www.braintools.ru/article/5125

[12] «Преобразование естественного языка в SQL для специализированного корпоративного хранилища данных на основе генеративного искусственного интеллекта»: https://patents.justia.com/patent/12321343

[13] «Обработка полуструктурированных и неструктурированных данных в сегментированной базе данных»: https://patents.google.com/patent/US11397768B2/en?q=(SQL)&before=priority:20250101&after=priority:20000101

[14] «Метод оптимизации запроса, содержащего подзапрос с условием “существует” и подзапрос с условием “не существует”»: https://patents.google.com/patent/US6529896B1/en?q=(SQL)&before=priority:20250101&after=priority:20000101

[15] «Метод оптимизации SQL-запросов, в которых предикат соответствует операндам, допускающим значение NULL»: https://patents.google.com/patent/US6996557B1/en?q=(SQL)&before=priority:20250101&after=priority:20000101

[16] сервисе: https://my.onlinepatent.ru/client/registration?context=Claim&type=TradeMark&utm%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C_source=habr&utm%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C_medium=smm&utm%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C_campaign=habr%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C_smm%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C_postpodval260709

[17] Подача заявки на внесение в реестр отечественного ПО: https://onlinepatent.ru/uslugi/reestr/?utm%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C_source=habr&utm%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C_medium=smm&utm%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C_campaign=habr%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C_smm%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C_postpodval2512%5C260709

[18] Поиск по программам: https://onlinepatent.ru/software/?utm%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C_source=habr&utm%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C_medium=smm&utm%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C_campaign=habr%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C_smm%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C_postpodval260709

[19] Регистрация программы в Роспатенте: https://onlinepatent.ru/uslugi/registraciya-programmy-dlya-evm/?utm%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C_source=habr&utm%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C_medium=smm&utm%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C_campaign=habr%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C_smm%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C_postpodval260709

[20] Регистрация товарных знаков: https://onlinepatent.ru/uslugi/registraciya-tovarnogo-znaka/?utm%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C_source=habr&utm%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C_medium=smm&utm%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C_campaign=habr%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C_smm%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C_postpodval260709

[21] Источник: https://habr.com/ru/companies/onlinepatent/articles/1057272/?utm_source=habrahabr&utm_medium=rss&utm_campaign=1057272

www.BrainTools.ru

Rambler's Top100