| Филосовский вопрос | |
|---|---|
|
alex; Автор Сообщений: 4070 Откуда: Москва Дата регистрации: 23.11.2004 |
Является ли SQL-запрос алгоритмом?
|
| Re: Филосовский вопрос | |
|---|---|
|
PaulWist Сообщений: 14814 Дата регистрации: 01.04.2004 |
Нет.
Это просто декларация, а-ля хочу получить то-то и то-то из этого и этого. А вот план запроса уже является алгоритмом, те как, с помощью каких методов-инструкций получить искомое. ------------------ Есть многое на свете, друг Горацио... Что и не снилось нашим мудрецам. (В.Шекспир Гамлет) |
| Re: Филосовский вопрос | |
|---|---|
|
_vit Сообщений: 5259 Дата регистрации: 29.07.2002 |
Однако сложные запросы могут содержать алгоритмы.
|
| Re: Филосовский вопрос | |
|---|---|
|
PaulWist Сообщений: 14814 Дата регистрации: 01.04.2004 |
Например? Если имеются в виду хинты, то это уже диалект конкретной реализации SQL, к самому языку запросов не относящийся. ------------------ Есть многое на свете, друг Горацио... Что и не снилось нашим мудрецам. (В.Шекспир Гамлет) Исправлено 1 раз(а). Последнее : PaulWist, 26.05.24 18:09 |
| Re: Филосовский вопрос | |
|---|---|
|
sphinx Сообщений: 32782 Откуда: Екатеринбург Дата регистрации: 22.11.2006 |
Наверное, подразумевался вызов UDF в SELECTe...
![]() ------------------ "Veni, vidi, vici!"(с) |
| Re: Филосовский вопрос | |
|---|---|
|
alex; Автор Сообщений: 4070 Откуда: Москва Дата регистрации: 23.11.2004 |
Наверно, ключём к ответу будет фраза
"алгоритм вычисления арифметического выражения". Т.е. арифметическое выражение не является алгоритмом. Видимо, так же и SQL запрос. |
| Re: Филосовский вопрос | |
|---|---|
|
sphinx Сообщений: 32782 Откуда: Екатеринбург Дата регистрации: 22.11.2006 |
Наверное точнее так сказать - на SQL нельзя написать полноценную программу (а программа и есть реализованный алгоритм), он предназначен только для взаимодействия с базами данных.
------------------ "Veni, vidi, vici!"(с) |
| Re: Филосовский вопрос | |
|---|---|
|
alex; Автор Сообщений: 4070 Откуда: Москва Дата регистрации: 23.11.2004 |
SQL-запрос - это полноценная программа. На том же фоксе можно скомпилировать и выполнить. Алгоритм - это последовательность действий, направленных на получение определённого результата за конечное число шагов. "Вылонить запрос 'select 1'" - алгоритм. P.S. Все равно select - выбрать - действие Вопрос остается открытым. P.S.2 В тоже время на языке арифметики, арифметическое выражение, однозначно, описывает последовательность действий. Исправлено 4 раз(а). Последнее : alex;, 26.05.24 23:28 |
| Re: Филосовский вопрос | |
|---|---|
|
sphinx Сообщений: 32782 Откуда: Екатеринбург Дата регистрации: 22.11.2006 |
Напиши программу на SQL по, например, оптимизации расчета раскроя листа. Без вызова процедур/циклов/ветвления. Только чистым SQL.
------------------ "Veni, vidi, vici!"(с) |
| Re: Филосовский вопрос | |
|---|---|
|
alex; Автор Сообщений: 4070 Откуда: Москва Дата регистрации: 23.11.2004 |
В тоже время на языке арифметики, арифметическое выражение, однозначно, описывает последовательность действий, т.е. алгоритм. Напиши программу по оптимизации расчета раскроя листа на языке арифметики. Нет. SQL-запрос не алгоритм. Поскольку описывает желаемый результат, а не последовательность действий. Исправлено 1 раз(а). Последнее : alex;, 27.05.24 00:06 |
| Re: Филосовский вопрос | |
|---|---|
|
pasha_usue Сообщений: 3768 Откуда: Е-бург Дата регистрации: 06.10.2006 |
Если по определению алгоритма следовать, то это такой набор запросов, который содержит "последовательность действий". Например, сложить что-то во временную таблицу, а потом из неё уже что-то получить это как-раз последовательность. |
| Re: Филосовский вопрос | |
|---|---|
|
alex; Автор Сообщений: 4070 Откуда: Москва Дата регистрации: 23.11.2004 |
И в конечном итоге, желаемый результат можно получить, используя разные алгоритмы. |
| Re: Филосовский вопрос | |
|---|---|
|
PaulWist Сообщений: 14814 Дата регистрации: 01.04.2004 |
Это уже не запрос, это batch/скрипт/программа, а программа - это чистяк алгоритм. ------------------ Есть многое на свете, друг Горацио... Что и не снилось нашим мудрецам. (В.Шекспир Гамлет) Исправлено 1 раз(а). Последнее : PaulWist, 27.05.24 14:40 |
| Re: Филосовский вопрос | |
|---|---|
|
_vit Сообщений: 5259 Дата регистрации: 29.07.2002 |
Вообще - запрос не однозначное понятие.
Его используют имея в виду как комманду (элемент языка) так и скрипт. Но даже если иметь в виду запрос как элемент языка то как тогда с WHILE, IF...ELSE и подзапросами? |
| Re: Филосовский вопрос | |
|---|---|
|
leonid Сообщений: 3230 Откуда: Рига Дата регистрации: 03.02.2006 |
|
| Re: Филосовский вопрос | |
|---|---|
|
alex; Автор Сообщений: 4070 Откуда: Москва Дата регистрации: 23.11.2004 |
|
| Re: Филосовский вопрос | |
|---|---|
|
_vit Сообщений: 5259 Дата регистрации: 29.07.2002 |
Ок. Я принял ваши аргументы.
Ради интереса я помучал Copilot на эту тему. Он долго сопротивлялся но в итоге согласился на ничью.
Цитата: |
| Re: Филосовский вопрос | |
|---|---|
|
alex; Автор Сообщений: 4070 Откуда: Москва Дата регистрации: 23.11.2004 |
Vit,
а что на фэйсбуке в форуме VFP обсуждают, не следишь? А то у нас недоступен вредный сайт. |
| Re: Филосовский вопрос | |
|---|---|
|
_vit Сообщений: 5259 Дата регистрации: 29.07.2002 |
Не пользуюсь фейсбуком. Хотя видимо придется.
|
| Re: Филосовский вопрос | |
|---|---|
|
alex; Автор Сообщений: 4070 Откуда: Москва Дата регистрации: 23.11.2004 |
Помучал DeepSeek R1
Рассуждения DeepSeek
Хорошо, пользователь указал на ошибку в моих рассуждениях, приведя пример алгоритма приготовления яиц. Мне нужно понять, где я ошибся. Ранее я утверждал, что для того, чтобы последовательность действий считалась алгоритмом, требуется детальное описание каждого шага, включая управление потоком и контроль ошибок. Однако пример пользователя прост и не содержит таких деталей, но всё же считается алгоритмом.
Надо вспомнить определение алгоритма. Алгоритм — это последовательность шагов для решения задачи, которая должна быть детерминированной, конечной и эффективной. В примере пользователя шаги ясны: взять яйцо, разбить, жарить, выложить. Хотя нет подробностей о том, как именно разбить яйцо или как жарить, эти шаги подразумевают общие знания. То есть алгоритм может быть абстрактным, не требуя детализации каждого действия, если шаги понятны в контексте. Значит, моя ошибка была в том, что я слишком строго подходил к необходимости детализации и управления потоком. Алгоритм может быть простым и не требовать явного описания каждого подшага, если он понятен исполнителю. Нужно уточнить, что уровень детализации зависит от аудитории и контекста. Например, алгоритм приготовления яиц рассчитан на человека, который знает, как выполнять базовые действия, поэтому не требует пояснений. Теперь нужно пересмотреть свой предыдущий ответ и признать, что даже простые последовательности действий, без детального описания каждого шага, могут считаться алгоритмами, если они удовлетворяют основным критериям: чёткость, конечность, результативность.
Исправлено 4 раз(а). Последнее : alex;, 29.01.25 17:09 |
| © 2000-2025 Fox Club  |