beldmit: (Программизм)
[personal profile] beldmit
А почему бы не обучать основам программирования, начиная с SQL?

Записные книжки есть у всех, что такое таблица – более-менее понятно.

Часть обсуждения здесь.

Date: 2015-04-10 09:28 pm (UTC)
From: [identity profile] beldmit.livejournal.com
Это на уровне высокой теории не таблица. Но теорию с практикой лучше сочетать, давая примеры из практики.

Date: 2015-04-11 05:06 am (UTC)
From: [identity profile] besm6.livejournal.com
Да в том и дело, что и на практике там от таблицы только слово table в create table, alter table да drop table.

Date: 2015-04-11 06:40 pm (UTC)
From: [identity profile] beldmit.livejournal.com
Да не сказал бы. Хотя возможно, я слишком широко понимаю понятие таблицы.

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

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

Человек же, воспринимая таблицу, воспринимает только одну таблицу за раз. Отфильтровать строки (WHERE) и столбцы (список полей в SELECT), отсортировать по указанному критерию - это достаточно просто и понятно, хотя синтаксис уже представляется корявым (а в случае не вполне тривиального принципа сортировки - уже и невменяемым). А с первым JOIN - все, суши весла. На модель таблицы JOIN не ложится от слова "никак", потому что декартово произведение двух отношений, подмножество которого выдает JOIN - это уже не два, а три измерения (не четыре - наборы столбцов довольно естественно воспринимаются как одно измерение). А трехмерная таблица в человеческом восприятии с двумерной и рядом не лежала.

Date: 2015-04-13 08:31 am (UTC)
From: [identity profile] beldmit.livejournal.com
Я воспринимаю JOIN как отсылку к внешнему справочнику. Который тоже таблица.

Date: 2015-04-13 10:58 am (UTC)
From: [identity profile] besm6.livejournal.com
Отсылка к внешнему справочнику - это subselect. А join - это гораздо более толстый мех, и синтаксис у него существенно страшнее.

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. 9th, 2026 03:01 pm
Powered by Dreamwidth Studios