Date: 2015-04-11 08:21 pm (UTC)
Я попробую пояснить. SQL - это, на самом деле линеаризованная в текст, причем далеко не самым удачным образом, довольно простая, но алгебраическая конструкция. В "алгебраическая" в данном случае существенна возможность неограниченного усложения выражения, составленного из простых элементов. Ситуация, очень удобная для вычислений с помощью компьютера (малыми усилиями по программированию можно обработать сложную задачу), но с большим трудом воспринимаемая человеческим мозгом (поэтому оказывается сложно выразить реально стоящую задачу в терминах этой модели).

В попытке донести эту конструкцию до людей, которые видели и кое-как понимали табличное представление данных, под эту структуру кто-то подложил модель таблицы. Легла она туда хреново - во-первых, таблиц оказывается существенно не одна, а во-вторых, связи между ними в той же модели оказываются настолько запутанным графом, что больше двух связей в одном предложении с трудом осиливает даже весьма опытный программист, чего уж говорить об изначальной ЦА этой модели. "Родная" алгебраическая структура отношений позволяет все же удержать в голове на пару двоичных порядков больше. Но не всякому, а тому, кому сумели наработать хотя бы какую-то интуицию на алгебраический подход.

Человек же, воспринимая таблицу, воспринимает только одну таблицу за раз. Отфильтровать строки (WHERE) и столбцы (список полей в SELECT), отсортировать по указанному критерию - это достаточно просто и понятно, хотя синтаксис уже представляется корявым (а в случае не вполне тривиального принципа сортировки - уже и невменяемым). А с первым JOIN - все, суши весла. На модель таблицы JOIN не ложится от слова "никак", потому что декартово произведение двух отношений, подмножество которого выдает JOIN - это уже не два, а три измерения (не четыре - наборы столбцов довольно естественно воспринимаются как одно измерение). А трехмерная таблица в человеческом восприятии с двумерной и рядом не лежала.
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

Profile

beldmit: (Default)
Dmitry Belyavskiy

December 2025

S M T W T F S
 123456
78910111213
14151617181920
2122 2324252627
28 29 3031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 10th, 2026 08:21 am
Powered by Dreamwidth Studios