@dba_ru

Страница 381 из 718
Alexey
11.01.2018
14:09:15
Не он один
шо, и MSSQL не понимает?

Ilia
11.01.2018
14:09:44
шо, и MSSQL не понимает?
95% СУБД не дают это делать

Google
Михаил
11.01.2018
14:10:14
хотя я вот от ораклоидов часто слышу байку про "НАДО ВСЕГДА УКАЗЫВАТЬ". я так понимаю, Oracle функциональные зависимости вообще не понимает?
несомненно, любопытная фича, и - да, в оракле такое не сработает, однако, и минус налицо - поглядев на код совершенно не понятно - он написан криворуким дебилом или там в таблицах есть "функциональные зависимости" и разработчик их учел

Alexey
11.01.2018
14:10:28
Мускульщиков?
и примкнувших к ним постгресистов!

Vladislav
11.01.2018
14:10:43
но это неверно, начиная с SQL:99
Смотрю на него, нет тут такого

Не надо специфику одной (не лучшей БД) применять на весь стандарт

Alexey
11.01.2018
14:11:32
Смотрю на него, нет тут такого
по второй ссылке есть указатель на стандарт. это "optional behavior" начиная с SQL:99

Anton
11.01.2018
14:12:08
@SLASH_CyberPunk А есть лучшая в принципе?

Расскажи))))

Vladislav
11.01.2018
14:12:17
Anton
11.01.2018
14:12:32
Субъективненько

Михаил
11.01.2018
14:12:37
Anton
11.01.2018
14:12:39
Причём ООООООЧЕНЬ

Serge
11.01.2018
14:12:48
Oracle Compliance To Core SQL:2008 https://docs.oracle.com/cd/E11882_01/server.112/e41084/ap_standard_sql003.htm#r5c1-t2 щас поглядим, что там есть в E051, потому что тут не написано, что именно не поддерживается

Google
Vladislav
11.01.2018
14:13:18
Alexey
11.01.2018
14:13:21
несомненно, любопытная фича, и - да, в оракле такое не сработает, однако, и минус налицо - поглядев на код совершенно не понятно - он написан криворуким дебилом или там в таблицах есть "функциональные зависимости" и разработчик их учел
но у этой фичи есть вполне себе валидные области применения. действительно есть схемы и запросы, где перечислять всё на свете в GROUP BY — излишество. и оптимизитору не повредит быть достаточно умным, чтобы такие вещи определять

Anton
11.01.2018
14:14:22
Вот есть заджойненный к строке, по которой агрегация, справочник, который лень выносить в подзапрос выше. Зачем мне брать агрегат, если я знаю, что там всегда одно и то же значение будет?

Anton
11.01.2018
14:14:49
Просто потому что "так надо"?

Чем-то попахивает на "наши предки так делали, и ты делай, традиция же"

А читабельности агрегат по справочному значению вряд ли прибавит. Наоборот, сразу видно, что тут всё норм

Alexey
11.01.2018
14:16:18
это не умаляет важности читабельного кода
а с читабельностью всё просто — "неправильные" запросы с GROUP BY просто не будут выполнятся. по крайней мере в mysql и postgresql

Alexey
11.01.2018
14:17:16
но postgresql туповат в этом плане. он функциональные зависимости только в пределах одной таблицы умел определять. а с джойнами там была беда, по крайней мере в 9.6. более поздние не тестировал

Ilia
11.01.2018
14:18:03
Не надо специфику одной (не лучшей БД) применять на весь стандарт
Да к чему этот пустой трёп вообще? Парень спросил, что у него не так. Ему был дан нужный совет. Парень довольный, отвалил. Всё.

Serge
11.01.2018
14:18:15
ну тут же чятик

Alexey
11.01.2018
14:18:56
я про code review глазом, а не компилятором.
я себе плохо представляю code review запросов в отрыве от схемы. это какой-то очень специальный code review

Vladislav
11.01.2018
14:19:29
наверно аппликейшены пишите в орме?

Serge
11.01.2018
14:20:33
Да неважно, но постановка вопроса действительно странная. Очевидно же, что ревьюер должен разбираться в схеме.

Alexey
11.01.2018
14:20:35
Функциональные зависимости даже теоретически в РСУБД в рамках БД не описываются никак. Нет средств.
primary/unique key — вполне себе функциональные зависимости. джойны по таким полям тоже.

Vladislav
11.01.2018
14:21:11
вот вообще не показатель

Google
Alexey
11.01.2018
14:21:35
да ясен красен

Vladislav
11.01.2018
14:21:38
тем более, мне прям стало интересно, как вы по PK найдете все зависимости?

для этих целей есть констрейты

вот только их использование - это редкость

Alexey
11.01.2018
14:22:48
ну там же по ссылочкам примеры, прямо вот в картинках, не?

Vladislav
11.01.2018
14:23:05
поэтому ваш пример из двух ссылок, это полный ахтунг, ибо по факту в таблице может лежать что угодно и никак это не отконтролить и подобному запросу грош цена

Alexey
11.01.2018
14:23:25
вот же bombanoolo то

Vladislav
11.01.2018
14:24:10


Vladislav
11.01.2018
14:24:54
вот же bombanoolo то
да, бомбануло, потому что вот из-за таких советов потом, при сборе данных в хранилище начинается ахтунг и траханья и начинают задаваться вопросом, а почему целостность данных нарушена

Vladislav
11.01.2018
14:25:26
без констрейтов БД не знает ничего

Ilia
11.01.2018
14:25:39
для этих целей есть констрейты
Нет таких констрейнтов, которые бы ФЗ описывали...

Vladislav
11.01.2018
14:25:52
ФЗ?

Serge
11.01.2018
14:25:59
функциональную зависимость

Ilia
11.01.2018
14:26:04
ФУНКЦИОНАЛЬНАЯ ЗАВИСИМОСТЬ

Serge
11.01.2018
14:26:21
а PK -> row — это же именно оно?

Ilia
11.01.2018
14:26:43
Vladislav
11.01.2018
14:26:50
здрасьте приехали

Google
Serge
11.01.2018
14:27:07
тогда я запутался %)

Vladislav
11.01.2018
14:27:14
совокупность PK-FK и констрейта как раз целиком описывает

Ilia
11.01.2018
14:27:19
а PK -> row — это же именно оно?
Это было бы именно оно, если бы таблица находилась в 3-5 НФ.

Vladislav
11.01.2018
14:27:25
без констрейта вот как раз не описывается

Ilia
11.01.2018
14:27:44
А находится оно или нет — не знает никто, кроме проектировщика БД.

Так что не трахайте мне и себе мозги, и пишите GROUP BY. На этом всё.

Vladislav
11.01.2018
14:28:36
ну как бы да, стандарт говорит писать все

Alexey
11.01.2018
14:28:50
все строки таблицы функционально зависимы от PK/UK, просто по определению. хватит пургу нести

Михаил
11.01.2018
14:29:46
Да неважно, но постановка вопроса действительно странная. Очевидно же, что ревьюер должен разбираться в схеме.
именно, но если сейчас такой запрос в коммите от джуниора явно говорит об ошибке/опечатке, то в случае нечетких условий постановки group by потребует уже явно перепроверять еще и схему (которую в серьезных разработках и архитектор наизусть не помнит, естественно), тратится лишнее время

Admin
ERROR: S client not available

Ilia
11.01.2018
14:30:50
все строки таблицы функционально зависимы от PK/UK, просто по определению. хватит пургу нести
ЭТо ты путаешь причину и следствие. Они В ТЕОРИИ должны быть зависимы. Да. А вот на практике они зависимы или нет — да хрен их знает...

Alexey
11.01.2018
14:31:04
оооокей

Ilia
11.01.2018
14:32:48
все строки таблицы функционально зависимы от PK/UK, просто по определению. хватит пургу нести
Представь себе самый распростанённый случай — PK в виде SERIAL/IDENTITY. Т.е. идентификатор строки в таблице. И расскажи пожалуйста, ЧТО ЖЕ ОТ НЕГО БУДЕТ ФУНКЦИОНАЛЬНО ЗАВИСИТЬ?

Serge
11.01.2018
14:33:53
Однозначно — все остальные (неключевые) поля строки.

Anton
11.01.2018
14:33:56
@alexey_kopytov Ты короче ничего не понимаешь в системах, в разработке которых сам же и учавствовал?

Alexey
11.01.2018
14:34:11
да вообще беда :)

Serge
11.01.2018
14:35:04
Так мы договоримся до того, что наличие ключей вообще является слишком сильным условием, и лучше бы на это в размышлениях не полагаться ;)

Ilia
11.01.2018
14:35:44
Однозначно — все остальные (неключевые) поля строки.
С какого? ФЗ определяется в рамках предметной области. PK в виде INENTITY очевидно в рамках предметной области не значит вообще ничего.

Google
Vladislav
11.01.2018
14:39:00
а то я часто вижу непонимание разработчиков ?

Serge
11.01.2018
14:45:38
С какого? ФЗ определяется в рамках предметной области. PK в виде INENTITY очевидно в рамках предметной области не значит вообще ничего.
Вообще это хороший вопрос. А действительно ли для определения наличия/отсутствия ФЗ нужно подниматься до семантики предметной области (читай: включать голову)? Или всё-таки мы можем сделать такой вывод на основании имеющихся данных?

Ilia
11.01.2018
15:33:33
ну вот оптимизатор-то как-то справляется, значит, в тех СУБД, где эта фича с group by работает.
Где эта фича (возможность частично НЕ УКАЗЫВАТЬ НЕАГРЕГИРУЕМЫЕ ПОЛЯ В GROUP BY) сервер просто выдаёт (может выдавать) любые левые данные в результирующем запросе, а ты их потом МОЛЧА хаваешь...

lost
11.01.2018
15:37:37
обычно кто такое пишет - знает об этом

а для остальных есть only full group by

Anton
11.01.2018
15:39:31
А если я не хочу напрягать сервак аггрегацией заранее известных данных?

Al
11.01.2018
15:41:47
А то возможны всякие нежданчики

А если я не хочу напрягать сервак аггрегацией заранее известных данных?
Ну тогда не напрягай. Получишь в ответе все как попало.

Обычно оно и не имеет смысла проводить групировку

Только если тебе нужно это потом каким то замысловатым образом обрабатывать или выводить

Group by это по сути сортировка

И при больших объемах запроса может отьедать кучу времени

Вопрос. Если я опишу структуру файла для обработки. И можно будет их закидывать через бота в телеге. Типа подготовишь сет и зашлешь. Потом тесты/задания шлешь и получаешь ответы. Такой бот-аналитик. Кому нибудь интересно?

Al
11.01.2018
19:42:57
На какую тему?
На любую. Исключая фото/видео.

aster
11.01.2018
19:43:32
Хм. Если я начну логи из системы мониторинга слать - чему он обучится?

Al
11.01.2018
19:44:30
Хм. Если я начну логи из системы мониторинга слать - чему он обучится?
Тому на что ты ему укажешь. Ты же знаешь как происходит обучение.

aster
11.01.2018
19:46:58
Давай его просто в какую-нибудь флудильню добавим

Страница 381 из 718