Почему никакая база данных полностью не поддерживает ANSI или ISO стандарты SQL?

В конце этого комментария есть непревзойденные круглые скобки, но в остальном это просто отрицательный прогноз (поэтому он не начинается с «!»), За которым следует любое количество символов в классе символов. Они включают в себя «A» и «#», поэтому любые последовательности этих символов будут приняты. Я не знаю, что вы действительно хотите сопоставить, но это объяснение, почему A # A # A # делает.

46
задан Deduplicator 24 February 2015 в 01:53
поделиться

11 ответов

In the software industry you have some standards that are really standards, i.e., products that don't comply with them just don't work. File specifications fall into that category. But then you also have "standards" that are more like guidelines: they may defined as standards with point-by-point definitions, but routinely implemented only partially or with significant differences. Web development is full of such "standards", like HTML, CSS and "ECMAScript" where different vendors (i.e. web browsers) implement the standards differently.

The variation causes headaches, but the standardization still provides benefits. Imagine if there were no HTML standard at all and each browser used its own markup language. Likewise, imagine if there were no SQL standard and each database vendor used its own completely proprietary querying language. There would be much more vendor lock-in, and developers would have a much harder time working with more than one product.

So, no, ANSI SQL doesn't serve the same purpose as ANSI standards do in other industries. But it does serve a useful purpose nonetheless.

18
ответ дан 26 November 2019 в 20:33
поделиться

Большинство из них довольно совместимы. Но вот плохие новости, ИМО - стандарты порождают посредственность. Продавцы хотят, чтобы вы были заперты в их расширениях, и часто есть веские причины делать нестандартные вещи. Реально, насколько вероятно, что вы сбросите Oracle для SQL Server или наоборот? Если вы не создадите продукт, который ваши клиенты могут использовать для других баз данных, вы, как предприятие, вряд ли будете обмениваться БД. Слишком больно.

0
ответ дан 26 November 2019 в 20:33
поделиться

The real reason: most "developers" are client-centric coders, and therefore neither understand nor care about Dr. Codd's 12 rules. This is also why MySql, which isn't a relational database in any significant manner, is frequently seen in webKiddie development. Such developers only want rudimentary SELECT, UPDATE, DELETE parsing. They eschew constraints of any kind, preferring to "do it in the application". Reactionary 1960's applications are what you get.

1
ответ дан 26 November 2019 в 20:33
поделиться

ИМХО, поставщики БД продвигают стандарты ANSI SQL для включения новых функций и конструкций в свою область гораздо больше, чем ANSI, говоря поставщикам БД «единственно верный путь».

БД Рынок определяется возможностями, масштабируемостью и стоимостью. Это не коммерческий приоритет - отказываться от технических преимуществ (например, разбиение, сводка, UPSERT, репликация) и задерживать их, ожидая, пока ANSI ратифицирует синтаксис. К тому времени, когда это было сделано, уже существует значительная установка проприетарного синтаксиса.

При этом большинство поставщиков БД значительно улучшили поддержку своего ядра «ANSI SQL» за последние несколько лет. (SQL Server с соединениями SELECT FROM INFORMATION_SCHEMA и ANSI Oracle фактически работает так же, как и нативные объединения в CBO)

2
ответ дан 26 November 2019 в 20:33
поделиться

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

11 сентября полиция и пожарные имели частные беспроводные сети для общения между людьми. Но угадайте что? Эти две системы не были взаимно совместимы. Таким образом, были бесполезные задержки в передаче информации от одного сотрудника службы общественной безопасности другому.

Если вы вернетесь достаточно далеко, вы можете найти время в Нью-Йорке, где около половины электрической сети было постоянным током, одобренное Эдисоном, и другая половина была AC, одобренным Вестингаузом.

Стандарты иногда появляются сами по себе и называются стандартами де-факто. Чаще всего стандарты должны быть установлены органом, специально уполномоченным для этого. Что касается стандартов SQL, то некоторые из крупнейших поставщиков уже выпускают этот стандарт. Для того, чтобы соответствовать стандарту, они должны были бы вложить инженерные расходы, которые не приносят пользу их существующей клиентской базе. Хуже того, они могут оказаться несовместимыми с их предыдущим продуктом.

Полное соответствие стандарту SQL еще может произойти, но это маловероятно. Даже если это произойдет, существует задержка между развитием нового стандарта SQL и его соблюдением.

стандарты должны быть установлены органом, специально уполномоченным для этого. Что касается стандартов SQL, то некоторые из крупнейших поставщиков уже выпускают этот стандарт. Для того, чтобы соответствовать стандарту, они должны были бы вложить инженерные расходы, которые не приносят пользу их существующей клиентской базе. Хуже того, они могут оказаться несовместимыми с их предыдущим продуктом.

Полное соответствие стандарту SQL еще может произойти, но это маловероятно. Даже если это произойдет, существует задержка между развитием нового стандарта SQL и его соблюдением.

стандарты должны быть установлены органом, специально уполномоченным для этого. Что касается стандартов SQL, то некоторые из крупнейших поставщиков уже выпускают этот стандарт. Для того, чтобы соответствовать стандарту, они должны были бы вложить инженерные расходы, которые не приносят пользу их существующей клиентской базе. Хуже того, они могут оказаться несовместимыми с их предыдущим продуктом.

Полное соответствие стандарту SQL еще может произойти, но это маловероятно. Даже если это произойдет, существует задержка между развитием нового стандарта SQL и его соблюдением.

они могут оказаться несовместимыми с их предыдущим продуктом.

Полное соответствие стандарту SQL еще может произойти, но это маловероятно. Даже если это произойдет, существует задержка между развитием нового стандарта SQL и его соблюдением.

они могут оказаться несовместимыми с их предыдущим продуктом.

Полное соответствие стандарту SQL еще может произойти, но это маловероятно. Даже если это произойдет, существует задержка между развитием нового стандарта SQL и его соблюдением.

3
ответ дан 26 November 2019 в 20:33
поделиться

I don't know the history of ANSI SQL specifically. But it seems that many times in software development, standards are written after the major players have already implemented their own proprietary versions of things. Once a company is invested in its own way of doing things, it's really hard to justify changing or removing features people have come to rely on just to adhere to a standard. Web standards are a primary example of this phenomenon.

5
ответ дан 26 November 2019 в 20:33
поделиться

Probably because standards conformance is of a low priority to database system purchasers. They are more interested in:

  • compatibility with what they've already got
  • performance
  • price
  • OS support

to name but a few factors.

The same is true of programming languages - very few (if any) compilers support every single feature of the current ANSI C and C++ standards.

As to why bother with standard, well most vendors do eventually bring standard support on board. For example, most vendors support more or less all of SQL89. This allows the vendor to tick a (relatively unimportant) check-box on their spec sheet and also allow people like me who are interested in writing portable code to do so, albeit having to forgo lots of bells and whistles.

14
ответ дан 26 November 2019 в 20:33
поделиться

Действительно, стандарт ANSI SQL не часто соблюдается. Просто прочитайте SO: большинство потоков SQL никогда не ссылаются на стандарт, в то время как, например, обсуждения сетевых протоколов часто включают в себя фактическую цитату, главу и стих соответствующего RFC.

Я всегда подозревал, что одной из причин является тот факт, что стандарт SQL не распространяется свободно. Просто получить это не тривиально. Различные неофициальные копии плавают вокруг.)

Другая причина в том, что это очень сложный текст и плохо организованный. Он использует странный словарь (например, «authID» вместо «user»). Вам нужны книги только для того, чтобы понять стандарт («Руководство по стандарту SQL», CJ Date, Хью Дарвен - Addison-Wesley).

6
ответ дан 26 November 2019 в 20:33
поделиться

Mimer SQL имеет большую поддержку стандартов, но довольно неизвестен. Он используется в нескольких крупных сайтах, в основном в Швеции. Но я думаю, что многие сайты переходят на другие.

Подробные заявления о поддержке:

  • SQL-99
  • SQL-2003
  • PSM
  • Триггеры и функции базы данных согласно SQL:1999
  • Поддержка двоичных и символьных больших объектов (BLOB/CLOB/NCLOB) согласно SQL:1999
  • Транзакции с несколькими базами данных (двухфазная фиксация) согласно XA-стандарту Open Group
  • Поддержка Java ME CDC Foundation Profile и Java ME CLDC/MIDP
5
ответ дан 26 November 2019 в 20:33
поделиться

См. Статью « ЯВЛЯЕТСЯ ли SQL ЕЩЕ НАСТОЯЩИМ СТАНДАРТОМ?» для обсуждения текущих (2005 г.) проблем стандарта SQL.

13
ответ дан 26 November 2019 в 20:33
поделиться

Компании обычно склонны использовать одного поставщика, чтобы избежать множества различных и, возможно, несовместимых систем для поддержки. Также намного дешевле обучить ваших разработчиков/системных инженеров использованию инструментов одного поставщика баз данных, чем трем различным наборам инструментов. Позже эта компания может стать достаточно крупной, чтобы купить некоторых своих конкурентов. Это означало бы еще один совершенно другой набор инструментов, которыми вам пришлось бы управлять, интегрировать и т. д.

Это большая работа.

Представьте, что вместо этого у вас есть уровень переносимости, так что вам действительно все равно, что находится под ним. Это было бы намного лучше.

0
ответ дан 26 November 2019 в 20:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: