Второе дыхание SQL. Техническое ессе.

zVlad
Уже с Приветом
Posts: 15410
Joined: 30 Apr 2003 16:43

Post by zVlad »

tengiz wrote:.....
SQL, к сожалению, в этой компании формально чистых вещей и строгих теорем оказался по чистому недоразумению. SQL - это такая ж те теорема Пифагора, как и Вижуал Бейзик - язык программирования. Реляционная алгебра, котрая является намного более формальным языком манипулирования множествами строк, не так, к сожелению удобна для не очень подготовленных пользователей. .......



Я не знаю, Tengiz, откуда у Вас такие ассоциации взялись, лично мне кажется сравнение SQL и RDB с Пифагоровской теоремой вполне уместным - не зря же Кодд был удостоен наград, достойных Пифагора! Сравнение же с Вижуал Бейсик вообще не уместно.
Tengiz, поглядите непредвзято вокруг себя - много ли НАСТОЯЩИХ ТЕХНОЛОГИЙ создано в программировании? Ну хотя бы за последние 20-ть лет? Да, названий много, но ведь все это не более чем bait - приманка . Грустно от всего этого, не так ли?
User avatar
tengiz
Уже с Приветом
Posts: 4468
Joined: 21 Sep 2000 09:01
Location: Sammamish, WA

Post by tengiz »

zVlad wrote:Я не знаю, Tengiz, откуда у Вас такие ассоциации взялись, лично мне кажется сравнение SQL и RDB с Пифагоровской теоремой вполне уместным - не зря же Кодд был удостоен наград, достойных Пифагора!Сравнение же с Вижуал Бейсик вообще не уместно.

Кодд не имеет никакого отношения к SQL, насколько я понимаю. Реляционная теория и реляционная алгебра так же далеки от SQL, как латынь от фени, если позволите мне такую гиберполу. Специально подчёркиваю - реляционная теория и реляционная алгебра Пифагору возможно понравились бы. От SQL бы ему стало плохо.
Cheers
User avatar
tengiz
Уже с Приветом
Posts: 4468
Joined: 21 Sep 2000 09:01
Location: Sammamish, WA

Post by tengiz »

Для хохмы набрал в гугле два слова - codd sql: http://www.google.com/search?hl=en&ie=U ... q=codd+sql Первая же ссылка выдаёт
Google wrote:Codd thought sql was an abomination, Date still thinks so.

Не откажу себе в удовольствии предложить свой перевод:
tengiz wrote:Кодд считал, что sql - это позор, Дейт до сих пор продолжает так считать.
Cheers
Merle
Уже с Приветом
Posts: 109
Joined: 26 Sep 2002 12:24

Post by Merle »

The biggest and most important difference between RDB and all other models (hierarchical, networking, and XML – which I am not familiar with, maybe it is not database model at all) is that RDB has theoretical background and SQL – language for mathematics’ method to manipulate with data organized as relationships.

Ну.. по поводу теоретического бакграунда тоже не совсем верно. Сама по себе теория графов, которая и лижит в основе сетевых, иерархических и даже объектных БД, по старше реляционной алгебры будет.
Проблема с этими базами в другом. У реляционных данных гораздо меньшая связь между семантикой и способом хранения. Данные имеют свойство храниться, а вот интерпретация их со временем меняется и чем жестче связь между значением данных и способом их хранения, тем сложнее последующая нестандартная интерпретация.
На мой взгляд, это и есть одна из основных причин популярности реляционных хранилищ, на фоне победного шествия объектного, а сейчас уже и аспектного программирования во всех остальных сферах разработки ПО.
User avatar
flip_flop
Уже с Приветом
Posts: 4379
Joined: 20 Jun 2001 09:01

Re: Второе дыхание SQL. Техническое ессе.

Post by flip_flop »

Dmitry67 wrote:Действительно, законы природы не дадут сделать процессор быстрее 10Ghz.

8O :nono#:
User avatar
Dmitry67
Уже с Приветом
Posts: 28294
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Re: Второе дыхание SQL. Техническое ессе.

Post by Dmitry67 »

flip_flop wrote:
Dmitry67 wrote:Действительно, законы природы не дадут сделать процессор быстрее 10Ghz.

8O :nono#:


А чаво ?
Елехтроны так быстро бегать не умеють :)
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
zVlad
Уже с Приветом
Posts: 15410
Joined: 30 Apr 2003 16:43

Post by zVlad »

tengiz wrote:Для хохмы набрал в гугле два слова - codd sql: http://www.google.com/search?hl=en&ie=U ... q=codd+sql ......


Ссылка так сказать из разряда ОБС.
Так или иначе SQL - весьма логичный и естественный язык. В нем нет надуманных конструкций. Он универсален и расширяем. Это залог его долгого существование и конкуретноспособности.
zVlad
Уже с Приветом
Posts: 15410
Joined: 30 Apr 2003 16:43

Post by zVlad »

tengiz wrote:.......... Конечно, великая и могучая IBM, а затем и ANSI/ISO комитет титаническими усилиями придали его современному варианту более-менее удобоваримый вид. Но Пифагор бы отравился ядом от такого сравнения.


Самое время потолковать об альтернативах. Мне например известен лишь QBE как альтернатива. В горячо любимом мною QMF есть третий способ написания запросов - Prompted-SQL, но его нельзя называть языком как таковым.
Кто может поведать больше?
User avatar
tengiz
Уже с Приветом
Posts: 4468
Joined: 21 Sep 2000 09:01
Location: Sammamish, WA

Post by tengiz »

zVlad wrote:Так или иначе SQL - весьма логичный и естественный язык. В нем нет надуманных конструкций. Он универсален и расширяем. Это залог его долгого существование и конкуретноспособности.

Точно - как и вижуал бейзика, который живуч как чёрт. Насчёт ОБС ссылки - вот названия статей самого Кодда:

E. F. Codd: Fatal Flaws in SQL - Part ONE. CMG Transactions 1(1): 29-33 (1989)
E. F. Codd: Fatal Flaws in SQL - Part Two. CMG Transactions 1(1): 35-37 (1989)

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

Причина по которой SQL не пользуется большим почётом у специалистов - резкий контраст между формальной строгостью реляционной терории и тем, что получилось из SQL.
Cheers
User avatar
tengiz
Уже с Приветом
Posts: 4468
Joined: 21 Sep 2000 09:01
Location: Sammamish, WA

Post by tengiz »

zVlad wrote:Кто может поведать больше?

Смотри в корень - реляционная алгебра или реляционное исчисление.
Cheers
zVlad
Уже с Приветом
Posts: 15410
Joined: 30 Apr 2003 16:43

Post by zVlad »

tengiz wrote:...... Если Вам интересно - дайте знать, могу переслать копию.

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


Это на самом деле очень интересно. Я впервые услышал о каком-то нетрадиционном отношении "отцов-основателей" к SQL. бегло пробежал по имеющейся у меня книге Дейта "ДВ2. Руководство по реляционной базе данных". Не нашел ничего чтобы намекало на критику SQL. Такое впечатление что принято за данность.
Без посылки копии тех статей Кодда не могли бы Вы, Tengiz, кратко изложить, для всех, чем Кодд аргументирует свою неприязнь к SQL?
Вот Вы говорите: "...Причина по которой SQL не пользуется большим почётом у специалистов - резкий контраст между формальной строгостью реляционной терории и тем, что получилось из SQL".

А я читаю у Дейта:

" ... Первоначально Кодд определил восемь таких операций (манипулирования реляционными данными. zVlad), две группы по четыре операции в каждой:...."
Нет смысла их перечислять - все знают. Примеры даны на SQL. Далее читаем:
".... из восьми ... операций только пять являются примитивами...эти три другие операции (пересечение, естественное соединение и деление. zVlad), особенно соединение, оказываются настолько полезными на практике, что хорошо бы поддерживать их непосредственно, несмотря на то что они не являются примитивами."

Напрашивается мысль о критическом отношении к современному Дейту и Кодду состоянии SQL (1984) когда еще не было утверждения JOIN и других конструкций (рекурсивного SELECT-а например. Common expression в ДВ2). Но не понятно что сегодня можно сегодня отнести к "...резкий контраст между формальной строгостью реляционной терории и тем, что получилось из SQL"

В принципе это всегда проблема как воплотить математические конструкции в реальную прикладную деятельность. Численные методы, с точки зрения теории, тоже нонсенс. Но ведь иначе математика вообще не применима и нужна только для самой себя. И SQL, на мой взгляд, далеко не самый худший пример такой трансформации.
Ваше сравнение SQL с Визуал Бэйсик критики не выдерживает. Да ВБ популярен и широко применим, на этом его сходство с SQL заканчивается, и это скорее пример неудачного (я бы крепче сказал) воплощения теории ООП.
zVlad
Уже с Приветом
Posts: 15410
Joined: 30 Apr 2003 16:43

Post by zVlad »

Merle wrote:...........
Ну.. по поводу теоретического бакграунда тоже не совсем верно. Сама по себе теория графов, которая и лижит в основе сетевых, иерархических и даже объектных БД, по старше реляционной алгебры будет.
Проблема с этими базами в другом. У реляционных данных гораздо меньшая связь между семантикой и способом хранения. Данные имеют свойство храниться, а вот интерпретация их со временем меняется и чем жестче связь между значением данных и способом их хранения, тем сложнее последующая нестандартная интерпретация.
На мой взгляд, это и есть одна из основных причин популярности реляционных хранилищ, на фоне победного шествия объектного, а сейчас уже и аспектного программирования во всех остальных сферах разработки ПО.


Absolutely. Хочу добавить.
Теория реляционных структур более удачный, чем другие модели данных, компромис между тем что есть в реальном мире (информацию о чем собственно и хранят в базах данных) и тем что требуют имеющиеся технические средства.
Поэтому эта теория и ее программное воплощение успешно конкурирует с новомодными течениями типа ООБД.
ООБД, на мой взгляд, неудачная попытка (если вообще это можно назвать попыткой, поскольку на дне ООБД мы как правил находим традиционную RBD, или какую-нибудь другую) применить мощную методологию программирования в области хранения данных. Так сказать "головокружение от успехов". Об этом Дейт писал уже много лет назад.
User avatar
tengiz
Уже с Приветом
Posts: 4468
Joined: 21 Sep 2000 09:01
Location: Sammamish, WA

Post by tengiz »

zVlad wrote:Без посылки копии тех статей Кодда не могли бы Вы, Tengiz, кратко изложить, для всех, чем Кодд аргументирует свою неприязнь к SQL? Вот Вы говорите: "...Причина по которой SQL не пользуется большим почётом у специалистов - резкий контраст между формальной строгостью реляционной терории и тем, что получилось из SQL".

Самая главная претензия - операции языка SQL не является замкнутыми, т.е. производя манипуляции над множествами строк вы необязательно на выходе получите множество строк когда результатом операции не является скаляр. Самый яркие примеры, на мой взгляд, - необходимость иметь ключевое слово DISTINCT и наличие UNION ALL. Да, имейте в виду - я ничего не имею против SQL как языка практичекого программирования доступа к реляционным базам данных (как впрочем и против Вижуал Бейзика), но не нужно путать практическую полезность и удобство (которым наплевать на индукцию с дедукцией) с формальной чистотой. Именно поэтому упоминание теоремы Пифагора и неуместно.
Ваше сравнение SQL с Визуал Бэйсик критики не выдерживает. Да ВБ популярен и широко применим, на этом его сходство с SQL заканчивается, и это скорее пример неудачного (я бы крепче сказал) воплощения теории ООП.

Вы, я полагаю, плохо себе представляете, что такое Вижуал Бейзик. Претензии к нему как к языку программирования начались намного раньше, чем в нём появились элементы объектно-ориентированного языка. Главная претензия - невозможность сделать чёткую классификацию базовых конструкций, как это более-менее сделано, например, в другом сугубо практическом и очень популярном языке - C.
Cheers
zVlad
Уже с Приветом
Posts: 15410
Joined: 30 Apr 2003 16:43

Post by zVlad »

tengiz wrote:......... но не нужно путать практическую полезность и удобство (которым наплевать на индукцию с дедукцией) с формальной чистотой. Именно поэтому упоминание теоремы Пифагора и неуместно.

..............Претензии к нему как к языку программирования начались намного раньше, чем в нём появились элементы объектно-ориентированного языка. Главная претензия - невозможность сделать чёткую классификацию базовых конструкций, как это более-менее сделано, например, в другом сугубо практическом и очень популярном языке - C.


.... А есть ли альтернатива SQL? Пусть хоть в нераспространенной форме.

..... Я об ВБ сужу по его уровню на эдак 1997-98 год. Тогда он был весьма псевдо-объектноориентированным хотя утверждалось конечно иное. Может что сильно изменилось с тех пор? Я не знаю.
User avatar
tengiz
Уже с Приветом
Posts: 4468
Joined: 21 Sep 2000 09:01
Location: Sammamish, WA

Post by tengiz »

zVlad wrote: .... А есть ли альтернатива SQL? Пусть хоть в нераспространенной форме.

Relational algebra/relational calculus. В некоторых СУБД внутреннее представление куда трансформируется текст SQL запроса, введённого пользователем программистом перед оптимизацией - выражения реляционной алгебры. Но для практического использования в повседневном программировании в том виде в котором они существуют они непригодны. Вот для доказательства теорем или как формально строгая и компактная форма для обмена идеями и для прочей непроизводственной деятельности они отлично подходят.

Я об ВБ сужу по его уровню на эдак 1997-98 год. Тогда он был весьма псевдо-объектноориентированным хотя утверждалось конечно иное. Может что сильно изменилось с тех пор? Я не знаю.

Проблемы вижуал бейзика о которых я говорю начались намного раньше, чем он стал мерять объектно-ориетнированные одёжки и они намного хуже, чем псевдо-ООП, в котором его теперь обвиняют.
Cheers

Return to “Вопросы и новости IT”