Язык программирования для управления и использования реляционных баз данных.
Язык структурированных запросов ( SQL ) ( SQL, иногда «продолжение» по историческим причинам)[4][5]—предметно-ориентированный язык,используемый для управления данными, особенно всистеме управления реляционными базами данных(СУБД). Это особенно полезно при работе соструктурированными данными, т. е. данными, включающими отношения между сущностями и переменными.
Представленный в 1970-х годах, SQL предлагал два основных преимущества по сравнению со старыми API -интерфейсами чтения и записи , такими как ISAM или VSAM . Во-первых, он представил концепцию доступа ко многим записям с помощью одной команды. Во-вторых, это устраняет необходимость указывать, как добраться до записи, т. е. с индексом или без него .
Первоначально основанный на реляционной алгебре и кортежном реляционном исчислении , SQL состоит из множества типов операторов, [6] которые можно неофициально классифицировать как подъязыки , обычно: язык запроса данных (DQL), [a] язык определения данных (DDL), [b] язык управления данными (DCL) и язык манипулирования данными (DML). [c] [7] Область применения SQL включает запрос данных, манипулирование данными (вставка, обновление и удаление), определение данных ( создание и изменение схемы ) и управление доступом к данным. Хотя SQL по сути является декларативным языком ( 4GL ), он также включает в себя процедурные элементы.
SQL был одним из первых коммерческих языков, использовавших реляционную модель Эдгара Ф. Кодда . Модель была описана в его влиятельной статье 1970 года «Реляционная модель данных для больших общих банков данных». [8] Несмотря на то, что SQL не полностью придерживался реляционной модели, описанной Коддом , он стал наиболее широко используемым языком баз данных. [9] [10]
SQL стал стандартом Американского национального института стандартов (ANSI) в 1986 году и Международной организации по стандартизации (ISO) в 1987 году. [11] С тех пор стандарт несколько раз пересматривался, чтобы включить больший набор функций и включить общие расширения. Несмотря на существование стандартов, практически ни одна из существующих реализаций не соответствует им полностью, и большая часть кода SQL требует хотя бы некоторых изменений перед переносом в другие системы баз данных .
История
SQL был первоначально разработан в IBM Дональдом Д. Чемберлином и Рэймондом Ф. Бойсом после изучения реляционной модели от Эдгара Ф. Кодда [12] в начале 1970-х годов. [13] Эта версия, первоначально называвшаяся SEQUEL ( структурированный английский язык запросов ), была разработана для манипулирования и извлечения данных, хранящихся в оригинальной квазиреляционной системе управления базами данных IBM, System R , которую разработала группа из исследовательской лаборатории IBM в Сан-Хосе. в течение 1970-х годов. [13]
Первой попыткой Чемберлина и Бойса создать язык реляционных баз данных был SQUARE (определение запросов в реляционной среде), но его было трудно использовать из-за нотации индексов и надстрочных индексов. Переехав в Исследовательскую лабораторию Сан-Хосе в 1973 году, они начали работу над продолжением SQUARE. [12] Первоначальное название SEQUEL, которое широко рассматривается как игра слов на QUEL , языке запросов Ingres , [14] позже было изменено на SQL (опущены гласные), поскольку «SEQUEL» было товарным знаком британской компании Hawker . Компания «Сиддели Дайнемикс Инжиниринг Лимитед». [15] Метка SQL позже стала аббревиатурой языка структурированных запросов.
После тестирования SQL на испытательных площадках клиентов, чтобы определить полезность и практичность системы, IBM начала разработку коммерческих продуктов на основе своего прототипа System R, включая System/38 , SQL/DS и IBM Db2 , которые были коммерчески доступны в 1979, 1981 годах. и 1983 год соответственно. [16]
В конце 1970-х годов компания Relational Software, Inc. (ныне Oracle Corporation ) увидела потенциал концепций, описанных Коддом, Чемберлином и Бойсом, и разработала собственную СУБД на основе SQL с намерением продать ее ВМС США и Центральной разведке . Агентство и другие правительственные учреждения США . В июне 1979 года компания Relational Software представила одну из первых коммерчески доступных реализаций SQL — Oracle V2 (Версия 2) для компьютеров VAX .
К 1986 году группы стандартов ANSI и ISO официально приняли стандартное определение языка «Язык баз данных SQL». Новые версии стандарта были опубликованы в 1989, 1992, 1996, 1999, 2003, 2006, 2008, 2011, [12] 2016 и совсем недавно в 2023 году. [17]
Синтаксис
![{\displaystyle \underbrace {\left.{\begin{array}{rl}\textstyle {\mathtt {UPDATE~clause{\mathtt {:}}}}&\{{\mathtt {UPDATE\ \overbrace {\mathtt {countries}} ^{\mathtt {table}}}}\}\\\textstyle {\mathtt {SET~clause:}}&\{{{\mathtt {SET\ \overbrace {\mathtt {population}} ^ {\mathtt {column}}=~}}\overbrace {\mathtt {{population}+\underbrace {\mathtt {1}} _ {\mathtt {literal}}}} ^{\mathtt {expression}}}\ }\\\textstyle {\mathtt {WHERE~clause:}}&\{{{\mathtt {WHERE\ \underbrace {\overbrace {\mathtt {name}} ^{\mathtt {column}}{\mathtt {= }}\overbrace {\overbrace {\mathtt {'США'}} ^{\mathtt {литерал}}} ^{\mathtt {выражение}}} _{\mathtt {предикат}}}}\}{\texttt { ;}}}\end{array}}\right\}{\textstyle {\texttt {statement}}}} _{\textstyle {\mathtt {SQL~query}}}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
Диаграмма, показывающая несколько элементов языка SQL, составляющих один оператор.
Язык SQL подразделяется на несколько языковых элементов, в том числе:
- Предложения , являющиеся составными компонентами операторов и запросов. (В некоторых случаях это необязательно.) [18]
- Выражения , которые могут создавать либо скалярные значения, либо таблицы , состоящие из столбцов и строк данных.
- Предикаты , которые определяют условия, которые могут быть оценены с помощью трехзначной логики SQL (3VL) (истина/ложь/неизвестно) или логических значений истинности и используются для ограничения эффектов операторов и запросов или для изменения хода программы.
- Запросы , которые извлекают данные на основе определенных критериев. Это важный элемент SQL .
- Операторы , которые могут оказывать постоянное влияние на схемы и данные или могут управлять транзакциями , потоком программы, соединениями, сеансами или диагностикой.
- Операторы SQL также включают в себя точку с запятой (";"). Хотя он не требуется на каждой платформе, он определяется как стандартная часть грамматики SQL.
- Незначительные пробелы обычно игнорируются в операторах и запросах SQL, что упрощает форматирование кода SQL для удобства чтения.
Процедурные расширения
SQL создан для конкретной цели: для запроса данных , содержащихся в реляционной базе данных . SQL — это декларативный язык программирования , основанный на множествах , а не императивный язык программирования, такой как C или BASIC . Однако расширения стандартного SQL добавляют функциональные возможности процедурного языка программирования , такие как конструкции управления потоком.
Помимо стандартных расширений SQL/PSM и собственных расширений SQL, на многих платформах SQL доступно процедурное и объектно-ориентированное программирование посредством интеграции СУБД с другими языками. Стандарт SQL определяет расширения SQL/JRT (подпрограммы и типы SQL для языка программирования Java) для поддержки кода Java в базах данных SQL. Microsoft SQL Server 2005 использует SQLCLR (SQL Server Common Language Runtime) для размещения управляемых сборок .NET в базе данных , в то время как предыдущие версии SQL Server были ограничены неуправляемыми расширенными хранимыми процедурами, написанными в основном на C. PostgreSQL позволяет пользователям писать функции в широком множество языков, включая Perl , Python , Tcl , JavaScript (PL/V8) и C. [19]
Функциональная совместимость и стандартизация
Обзор
Реализации SQL несовместимы между поставщиками и не обязательно полностью соответствуют стандартам. В частности, синтаксис даты и времени, конкатенация строк, NULL
s и чувствительность к регистру при сравнении различаются от поставщика к поставщику. PostgreSQL [20] и Mimer SQL [21] стремятся соответствовать стандартам, хотя PostgreSQL не придерживается стандартов во всех случаях. Например, преобразование имен без кавычек в нижний регистр в PostgreSQL несовместимо со стандартом SQL [22] , который гласит, что имена без кавычек следует переводить в верхний регистр. [23] Таким образом, Foo
должно быть эквивалентно FOO
несоответствию foo
стандарту.
Популярные реализации SQL обычно не поддерживают основные функции стандартного SQL, такие как типы данных DATE
или TIME
. Наиболее очевидными такими примерами и, между прочим, наиболее популярными коммерческими и частными СУБД SQL являются Oracle (которая DATE
ведет себя как DATETIME
, [24] [25] и не имеет TIME
типа) [26] и MS SQL Server (до версии 2008 года). В результате код SQL редко можно переносить между системами баз данных без изменений.
Причины несовместимости
Несколько причин отсутствия переносимости между системами баз данных включают в себя:
- Сложность и размер стандарта SQL означают, что большинство разработчиков не поддерживают весь стандарт.
- Стандарт SQL не определяет поведение базы данных в некоторых важных областях (например, индексы , хранилище файлов), оставляя реализации самим решать, как себя вести.
- Стандарт SQL откладывает некоторые решения на отдельные реализации, например, как назвать столбец результатов, который не был назван явно. [27] : 207
- Стандарт SQL точно определяет синтаксис, который должна реализовать соответствующая система баз данных. Однако спецификация стандарта семантики языковых конструкций менее четко определена, что приводит к двусмысленности.
- Многие поставщики баз данных имеют большие клиентские базы; Если более новая версия стандарта SQL конфликтует с предыдущим поведением базы данных поставщика, поставщик может не захотеть нарушать обратную совместимость .
- У поставщиков мало коммерческих стимулов упрощать смену поставщиков баз данных (см. привязку к поставщику ).
- Пользователи, оценивающие программное обеспечение баз данных, склонны отдавать другим факторам, таким как производительность, более высокий приоритет, чем соответствие стандартам.
История стандартизации
SQL был принят в качестве стандарта ANSI в 1986 году как SQL-86 [28] и ISO в 1987 году. [11] Он поддерживается ISO/IEC JTC 1, Информационные технологии, Подкомитет SC 32, Управление данными и обмен ими .
До 1996 года программа стандартов управления данными Национального института стандартов и технологий (NIST) сертифицировала соответствие СУБД SQL стандарту SQL. Теперь поставщики самостоятельно сертифицируют соответствие своей продукции. [29]
Исходный стандарт декларировал, что официальное произношение слова «SQL» представляет собой инициализм : («ess cue el»). [9] Несмотря на это, многие англоязычные специалисты по базам данных (включая самого Дональда Чемберлина [30] ) используют похожее на аббревиатуру произношение («продолжение»), [31] отражающее название предварительной разработки языка. , «ПРОДОЛЖЕНИЕ». [13] [15] [30]
Стандарт SQL претерпел ряд изменений:
Текущий стандарт
Стандарт обычно обозначается шаблоном: ISO/IEC 9075-n:yyyy Part n: title или, сокращенно, ISO/IEC 9075 . Заинтересованные стороны могут приобрести документы по стандартам в ISO, [36] IEC или ANSI. Некоторые старые проекты находятся в свободном доступе. [37] [38] [39]
ISO/IEC 9075 дополняется ISO/IEC 13249: Пакеты мультимедиа и приложений SQL и некоторыми техническими отчетами .
Альтернативы
Следует проводить различие между альтернативами SQL как языку и альтернативами самой реляционной модели. Ниже предлагаются реляционные альтернативы языку SQL. См. навигационную базу данных и NoSQL для альтернатив реляционной модели.
- .QL : объектно-ориентированный журнал данных
- Язык 4D-запросов (4D QL)
- Datalog : критики предполагают, что Datalog имеет два преимущества перед SQL: он имеет более чистую семантику, что облегчает понимание и обслуживание программ, и он более выразителен, особенно для рекурсивных запросов. [40]
- HTSQL : метод запроса на основе URL-адреса.
- IBM Business System 12 (IBM BS12): одна из первых полностью реляционных систем управления базами данных, представленная в 1982 году.
- ИСБЛ
- jOOQ : SQL реализован на Java как внутренний предметно-ориентированный язык.
- Язык запросов Java Persistence (JPQL): язык запросов, используемый Java Persistence API и библиотекой персистентности Hibernate .
- JavaScript : MongoDB реализует свой язык запросов в API JavaScript.
- LINQ : запускает операторы SQL, написанные как языковые конструкции, для запроса коллекций непосредственно из кода .Net .
- Язык объектных запросов
- QBE ( запрос по примеру ), созданный Моше Злуфом, IBM, 1977 г.
- QUEL , представленный в 1974 году проектом Калифорнийского университета в Беркли Ingres, ближе к кортежному реляционному исчислению , чем SQL.
- XQuery
Распределенная обработка SQL
Архитектура распределенной реляционной базы данных (DRDA) была разработана рабочей группой внутри IBM с 1988 по 1994 год. DRDA позволяет реляционным базам данных, подключенным к сети, взаимодействовать при выполнении запросов SQL. [41] [42]
Интерактивный пользователь или программа может отправлять операторы SQL в локальную RDB и получать в ответ таблицы данных и индикаторы состояния от удаленных RDB. Операторы SQL также можно скомпилировать и сохранить в удаленных RDB в виде пакетов, а затем вызывать по имени пакета. Это важно для эффективной работы прикладных программ, выдающих сложные высокочастотные запросы. Это особенно важно, когда таблицы, к которым осуществляется доступ, расположены в удаленных системах.
Сообщения, протоколы и структурные компоненты DRDA определяются архитектурой управления распределенными данными . Распределенная обработка SQL, известная как DRDA, отличается от современных распределенных баз данных SQL.
Критика
Дизайн
SQL во многом отклоняется от своей теоретической основы — реляционной модели и кортежного исчисления. В этой модели таблица представляет собой набор кортежей, тогда как в SQL таблицы и результаты запроса представляют собой списки строк; одна и та же строка может встречаться несколько раз, а порядок строк можно использовать в запросах (например, в предложении LIMIT). Критики утверждают, что SQL следует заменить языком, который строго возвращается к исходной основе: например, см. « Третий манифест» Хью Дарвена и Си Джей Дейта (2006, ISBN 0-321-39942-0 ).
Ортогональность и полнота
Ранние спецификации не поддерживали основные функции, такие как первичные ключи. Наборы результатов не могли быть названы, а подзапросы не были определены. Они были добавлены в 1992 году. [12]
Отсутствие типов сумм было описано как препятствие на пути полного использования пользовательских типов SQL. Например, поддержку JSON необходимо было добавить в новом стандарте в 2016 году. [43]
Нулевой
Концепция Null является предметом некоторых дискуссий . Маркер Null указывает на отсутствие значения и отличается от значения 0 для целочисленного столбца или пустой строки для текстового столбца. Концепция Nulls обеспечивает 3-значную логику в SQL , которая является конкретной реализацией общей 3-значной логики . [12]
Дубликаты
Другая популярная критика заключается в том, что он допускает дублирование строк, что затрудняет интеграцию с такими языками, как Python , чьи типы данных могут затруднить точное представление данных [12] с точки зрения синтаксического анализа и отсутствия модульности. Обычно этого можно избежать, объявляя первичный ключ или ограничение уникальности с одним или несколькими столбцами, которые однозначно идентифицируют строку в таблице.
Несоответствие импеданса
В смысле, аналогичном несоответствию объектно-реляционного импеданса , несоответствие возникает между декларативным языком SQL и процедурными языками, в которые обычно встроен SQL. [ нужна цитата ]
Типы данных SQL
Стандарт SQL определяет три типа типов данных (глава 4.1.1 SQL/Foundation):
- предопределенные типы данных
- сконструированные типы
- определяемые пользователем типы.
К составным типам относятся ARRAY, MULTISET, REF(erence) или ROW. Пользовательские типы сравнимы с классами объектно-ориентированного языка со своими собственными конструкторами, наблюдателями, мутаторами, методами, наследованием, перегрузкой, перезаписью, интерфейсами и т. д. Предопределенные типы данных внутренне поддерживаются реализацией.
Предопределенные типы данных
- Персонаж (СИМВОЛ)
- Изменение символов (VARCHAR)
- Большой символьный объект (CLOB)
- Национальные типы характера
- Национальный характер (НЧАР)
- Национальный характер варьируется (NCHAR VARYING)
- Большой объект национального характера (NCLOB)
- Двоичный (БИНАРНЫЙ)
- Двоичная переменная (VARBINARY)
- Большой двоичный объект (BLOB)
- Точные числовые типы (NUMERIC, DECIMAL, SMALLINT, INTEGER, BIGINT)
- Приблизительные числовые типы (FLOAT, REAL, DOUBLE PRECISION)
- Десятичный тип с плавающей запятой (DECFLOAT)
- Типы даты и времени (DATE, TIME, TIMESTAMP)
- Тип интервала (ИНТЕРВАЛ)
- логическое значение
- XML
- JSON
Смотрите также
Примечания
- ^ Формально операторы «SQL-данных», за исключением операторов «изменения SQL-данных»; это прежде всего оператор Select .
- ^ Формально, операторы «SQL-схемы».
- ^ Формально операторы «изменения SQL-данных»
Рекомендации
- ↑ Пол, Райан (24 октября 2005 г.). «Экскурсия по Microsoft Command Shell». Арс Техника . Проверено 10 апреля 2011 г.
- ^ «Регистрация типа носителя для приложения/sql» . Управление по присвоению номеров в Интернете . 10 апреля 2013 года . Проверено 10 апреля 2013 г.
- ^ Шафранович Ю. (апрель 2013 г.). «Тип носителя приложения/sql, RFC 6922». Рабочая группа по интернет-инжинирингу . п. 3. дои : 10.17487/RFC6922 . Проверено 10 апреля 2013 г.
- ^ Болье, Алан (апрель 2009 г.). Мэри Э. Треселер (ред.). Изучение SQL (2-е изд.). Севастополь, Калифорния, США: О'Рейли. ISBN 978-0-596-52083-0.
- ^ Чемберлин, Дональд Д.; Франа, Филип Л. (3 октября 2001 г.). «Устное историческое интервью с Дональдом Д. Чемберлином». Университетская цифровая консервация . Проверено 14 января 2020 г.
Мы изменили первоначальное название «SEQUEL» на SQL, потому что получили письмо от чьего-то адвоката, в котором говорилось, что имя «SEQUEL» принадлежит им.
Мы сократили его до SQL (язык структурированных запросов), и этот продукт стал известен как SQL/DS.
- ^ SQL-92 , 4.22 SQL-операторы, 4.22.1 Классы SQL-операторов «Существует как минимум пять способов классификации SQL-операторов:», 4.22.2, SQL-операторы, классифицированные по функциям «Ниже приведены основные классы SQL-операторов: SQL-операторы:"; SQL:2003 4.11 SQL-операторы и более поздние версии.
- ^ Чатем, Марк (2012). Язык структурированных запросов на примере - Том I: Язык запросов к данным. Лулу.com. п. 8. ISBN 9781291199512.
- ^ Кодд, Эдгар Ф. (июнь 1970 г.). «Реляционная модель данных для больших общих банков данных». Коммуникации АКМ . 13 (6): 377–87. CiteSeerX 10.1.1.88.646 . дои : 10.1145/362384.362685. S2CID 207549016.
- ^ аб Чаппл, Майк. «Основы SQL». Базы данных . О сайте.com . Проверено 28 января 2009 г.
- ^ «Язык структурированных запросов (SQL)» . Международные Бизнес Машины. 27 октября 2006 года . Проверено 10 июня 2007 г.
- ^ ab «ISO 9075:1987: Информационные технологии. Языки баз данных. SQL. Часть 1. Структура (SQL/Framework)». 1 июня 1987 г.
- ^ abcdef Чемберлин, Дональд (2012). «Ранняя история SQL». IEEE Анналы истории вычислений . 34 (4): 78–82. дои : 10.1109/MAHC.2012.61. S2CID 1322572.
- ^ abc Чемберлин, Дональд Д.; Бойс, Раймонд Ф. (1974). «ПРОДОЛЖЕНИЕ: структурированный английский язык запросов» (PDF) . Материалы семинара ACM SIGFIDET 1974 года по описанию, доступу и контролю данных . Ассоциация вычислительной техники: 249–64. Архивировано из оригинала (PDF) 26 сентября 2007 г. Проверено 9 июня 2007 г.
- ^ Старки, Джим. «Динамический SQL, сантехника и внутренний API». www.ibphoenix.com . Проверено 19 января 2023 г.
- ^ аб Оппель, Энди (27 февраля 2004 г.). Базы данных демистифицированы. Сан-Франциско, Калифорния : McGraw-Hill Osborne Media. стр. 90–1. ISBN 978-0-07-146960-9.
- ^ «История IBM, 1978». Архивы IBM . ИБМ. 23 января 2003 года . Проверено 9 июня 2007 г.
- ^ «ISO - ISO/IEC JTC 1/SC 32 - Управление данными и обмен» . www.iso.org . Проверено 2 января 2021 г.
- ^ Международный стандарт ANSI/ISO/IEC (IS). Язык базы данных SQL. Часть 2. Основа (SQL/Foundation). 1999.
- ^ «Программирование сервера PostgreSQL» . Официальная документация PostgreSQL 9.1 . postgresql.org. 2011 . Проверено 9 марта 2012 г.
- ^ «О PostgreSQL». Официальный сайт PostgreSQL 9.1 . Группа глобального развития PostgreSQL. 2012 . Проверено 9 марта 2012 г.
PostgreSQL гордится соответствием стандартам.
Его реализация SQL строго соответствует стандарту ANSI-SQL:2008.
- ^ «Mimer SQL, построенный на стандартах» . Официальный сайт Mimer SQL . Мимер Информационные технологии. 2009.
- ^ «4.1. Лексическая структура». Документация PostgreSQL . 2018.
- ^ «(Второй неофициальный обзорный проект) ISO/IEC 9075:1992, Язык баз данных SQL, Раздел 5.2, правило синтаксиса 11» . 30 июля 1992 года.
- ^ Лоренц, Диана; Розер, Мэри Бет; Авраам, Сандип; Амор, Анджела; Арора, Гита; Арора, Викас; Эшдаун, Лэнс; Баер, Герман; Белламконда, Шрикант (октябрь 2010 г.) [1996]. «Основные элементы Oracle SQL: типы данных». Справочник по языку SQL базы данных Oracle 11g, выпуск 2 (11.2) . Библиотека документации базы данных Oracle. Редвуд-Сити, Калифорния: Oracle USA, Inc. Проверено 29 декабря 2010 г.
Для каждого
значения Oracle хранит следующую информацию: век, год, месяц, число, час, минута и секунда.
DATE
- ^ Лоренц, Диана; Розер, Мэри Бет; Авраам, Сандип; Амор, Анджела; Арора, Гита; Арора, Викас; Эшдаун, Лэнс; Баер, Герман; Белламконда, Шрикант (октябрь 2010 г.) [1996]. «Основные элементы Oracle SQL: типы данных». Справочник по языку SQL базы данных Oracle 11g, выпуск 2 (11.2) . Библиотека документации базы данных Oracle. Редвуд-Сити, Калифорния: Oracle USA, Inc. Проверено 29 декабря 2010 г.
Типы данных datetime
...
DATE
- ^ Лоренц, Диана; Розер, Мэри Бет; Авраам, Сандип; Амор, Анджела; Арора, Гита; Арора, Викас; Эшдаун, Лэнс; Баер, Герман; Белламконда, Шрикант (октябрь 2010 г.) [1996]. «Основные элементы Oracle SQL: типы данных». Справочник по языку SQL базы данных Oracle 11g, выпуск 2 (11.2) . Библиотека документации базы данных Oracle. Редвуд-Сити, Калифорния: Oracle USA, Inc. Проверено 29 декабря 2010 г.
Не определяйте столбцы со следующими типами данных SQL/DS и DB2, поскольку они не имеют соответствующего типа данных Oracle:...
TIME
- ^ Дата, Крис Дж. (2013). Реляционная теория для компьютерных специалистов: что на самом деле представляют собой реляционные базы данных (1-е изд.). Севастополь, Калифорния: O'Reilly Media. ISBN 978-1-449-36943-9.
- ^ «В поисках помощи». X3H2 Records, 1978–95 . Американский национальный институт стандартов.
- ↑ Кукла, Шелли (19 июня 2002 г.). «Является ли SQL больше стандартом?». Builder.com компании TechRepublic . TechRepublic. Архивировано из оригинала 5 июля 2012 г. Проверено 12 апреля 2016 г.
- ^ аб Гиллеспи, Патрик. «Произнесение SQL: SQL или продолжение?» . Проверено 12 февраля 2012 г.
- ^ Мелтон, Джим; Алан Р. Саймон (1993). «1.2. Что такое SQL?» . Понимание нового SQL: полное руководство. Морган Кауфманн. п. 536. ИСБН 978-1-55860-245-8.
SQL (правильно произносится «ess cue ell» вместо довольно распространенного «продолжения»)…
- ^ Вагнер, Майкл (2010). SQL/XML:2006 — Оценка соответствия стандартам ausgewählter Datenbanksysteme . Дипломика Верлаг. п. 100. ИСБН 978-3-8366-9609-8.
- ^ «SQL:2008 теперь утвержденный международный стандарт ISO» . Сибаза. Июль 2008 г. Архивировано из оригинала 28 июня 2011 г.
- ^ Кришна Кулкарни, Ян-Эйке Михелс (сентябрь 2012 г.). «Временные функции в SQL:2011» (PDF) . SIGMOD Запись . 41 (3).
- ^ Фред Земке (2012). «Что нового в SQL:2011» (PDF) . Корпорация Оракл.
- ^ «ИСО/МЭК 9075».
- ^ SQL: проект 1992 г. (текст)
- ^ SQL: проект 2008 г. (zip) , Whitemarsh Information Systems Corporation
- ^ SQL: проект 2011 г. (zip) , Whitemarsh Information Systems Corporation
- ^ Фернандо Саенс-Перес. «Внешние соединения в дедуктивной системе баз данных» (PDF) . Lbd.udc.es. _ Проверено 16 января 2017 г.
- ^ Рейнш, Р. (1988). «Распределенная база данных для SAA». IBM Systems Journal . 27 (3): 362–389. дои : 10.1147/sj.273.0362.
- ^ Справочник по архитектуре распределенных реляционных баз данных . Корпорация IBM SC26-4651-0. 1990.
- ^ Брэндон, Джейми (июль 2021 г.). «Против SQL» . Проверено 2 августа 2021 г.
Источники
- Кодд, Эдгар Ф. (июнь 1970 г.). «Реляционная модель данных для больших общих банков данных». Коммуникации АКМ . 13 (6): 377–87. дои : 10.1145/362384.362685 . S2CID 207549016.
- Обсуждение предполагаемых недостатков SQL (вики C2)
- CJ Date с Хью Дарвеном : Руководство по стандарту SQL: руководство для пользователей по стандартному языку баз данных SQL, 4-е изд. , Аддисон Уэсли, США, 1997 г., ISBN 978-0-201-96426-4 .
Внешние ссылки
- «Воссоединение SQL: люди, проекты и политика», 1995 г., Пол МакДжонс (редактор): стенограмма встречи воссоединения, посвященной личной истории реляционных баз данных и SQL.
- Американский национальный институт стандартов. X3H2 Records, 1978–1995. Коллекция Института Чарльза Бэббиджа документирует разработку комитетом H2 стандартов NDL и SQL.
- Интервью по устной истории с Дональдом Д. Чемберлином Институт Чарльза Бэббиджа В этой устной истории Чемберлин рассказывает о своей молодости, своем образовании в колледже Харви Мадда и Стэнфордском университете , а также о своей работе над технологией реляционных баз данных. Чемберлин был членом исследовательской группы System R и вместе с Рэймондом Ф. Бойсом разработал язык базы данных SQL. Чемберлин также кратко обсуждает свои недавние исследования языков запросов XML.