powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Причины ненависти к языку SQL?
25 сообщений из 306, страница 10 из 13
Причины ненависти к языку SQL?
    #39730365
Ivan Durak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОзверинIvan Durakдавайте на примере.

было
table
TRANSACTION
( id,
datetime,
account_deb_id,
account_cred_id.
amount
)
--------------------
Стало:
+ table
BALANCE
(
account_id,
date,
balance_amount
)

которая заполняется на каждый день как сумма по всем транзакциям.

Ну а теперь раскажате мне на сколько нормальных форм уменьшилась структура базы после
такой агрегации?????

нормализация показывает, как убирать тразитивные зависимости между атрибутами в отношении, но как с ними бороться(и надо ли?) между отношениями?
не надо бороться, надо просто знать, что и зачем. Где денормализация, а где агрегация
...
Рейтинг: 0 / 0
Причины ненависти к языку SQL?
    #39730370
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan Durak, в зависимости от бизнеса, баланс - не такая уж и "абстракция" ;)
...
Рейтинг: 0 / 0
Причины ненависти к языку SQL?
    #39730371
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan Durak,

Агрегация , или агрегирование (лат. aggregatio «присоединение») - объединениt элементов в одну систему, в одно целое.
...
Рейтинг: 0 / 0
Причины ненависти к языку SQL?
    #39730374
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Композиция - более строгий вариант агрегирования, когда включаемый объект может существовать только как часть контейнера. Если контейнер будет уничтожен, то и включённый объект тоже будет уничтожен.
...
Рейтинг: 0 / 0
Причины ненависти к языку SQL?
    #39730398
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий Мух,

ну и че ты все это пишешь? тут почти все русские :)
...
Рейтинг: 0 / 0
Причины ненависти к языку SQL?
    #39730423
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosДмитрий Мух,

ну и че ты все это пишешь? тут почти все русские :)чтобы понимали то, что я имею в виду.
и не представляли себе, что я про SUM пишу
...
Рейтинг: 0 / 0
Причины ненависти к языку SQL?
    #39730438
Addx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий Мух,

Мы все же говорим о разработке, а не о лингвистике.
И не будем утверждать, что корректное действие для метода Execute - уничтожить объект, поскольку execute - это казнить, а не выполнить. )
Ладно, отвлечемся от реляционок, где "агрегаты" имеют вполне определенный смысл.
Например в C# ;) понимается так:

Код: c#
1.
2.
3.
4.
public static U Aggregate<T, U> ( 
     this IEnumerable<T> source, 
     U seed,
     Func<U, T, U> func);



с классическим функционалом перевода последовательности в объект.
...
Рейтинг: 0 / 0
Причины ненависти к языку SQL?
    #39730452
Addx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosДык вед этот BALANCE 100пудово избыточные данные, при этом все нормализовано

Вовсе не факт, кстати, что они избыточные.
Например старые транзакции могут быть сархивированы/потеряться/быть стертыми шоб налоговая не догадалась.
В этом случае баланс совсем не избыточен.
...
Рейтинг: 0 / 0
Причины ненависти к языку SQL?
    #39730458
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AddxViPRosДык вед этот BALANCE 100пудово избыточные данные, при этом все нормализовано

Вовсе не факт, кстати, что они избыточные.
Например старые транзакции могут быть сархивированы/потеряться/быть стертыми шоб налоговая не догадалась.
В этом случае баланс совсем не избыточен.

в прямом понимании смысла этого слова в рамках нормализации - это данные никак избыточными быть не могут. Но аномалии, связанные с такой структурой - могут возникать.
...
Рейтинг: 0 / 0
Причины ненависти к языку SQL?
    #39730630
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Короче мы уже обсуждаем терминологию, а не проблематику. Не интересно.
...
Рейтинг: 0 / 0
Причины ненависти к языку SQL?
    #39730698
Addx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий Мух,

skyANAРасскажите, если не сложно. Интересно понять, о чём Вы конкретно.

Я собственно и пояснил)
...
Рейтинг: 0 / 0
Причины ненависти к языку SQL?
    #39730791
казинак
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зачем нормализация?
чтоп значение хранилось один раз
например, вместо названия счета в каждой транзакции - айди счета,
потому что, если название поменяется, то во всех проводках надо поменять.

зачем денормализация?
чтоп селекты быстрей работали, вместо джойнов и групировок на лету, просто выбираем из одной таблицы.

т.е потребность в этих штуках чисто практическая
а то, что вы тут из себя умников строите, споря о названиях, это нужно только вам,
для самоутверждения наверно....
...
Рейтинг: 0 / 0
Причины ненависти к языку SQL?
    #39730865
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
казинак,

именно вместо сложных селектов с кучей джоинов и группировок на лету предлагается очевидное решение - во время записи писать все необходимые данные в денормализованные таблицы, называемые регистрами
это прекрасно работает на практике: АИС ТПС НК "ЮКОС", потом "Роснефть"...
...
Рейтинг: 0 / 0
Причины ненависти к языку SQL?
    #39730935
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
молодцы, пацаны - все вокруг эникейщики, одни вы хапнули жизни )
...
Рейтинг: 0 / 0
Причины ненависти к языку SQL?
    #39730960
казинак
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий Мухказинак,

именно вместо сложных селектов с кучей джоинов и группировок на лету предлагается очевидное решение - во время записи писать все необходимые данные в денормализованные таблицы, называемые регистрами
это прекрасно работает на практике: АИС ТПС НК "ЮКОС", потом "Роснефть"...
работает, значит норм

но не самое масштабируемое решение
например,
обновление суммы оборотов или остатка, при каждой операции..
все сессии одновременно будут пытаться проапдейтить одно поле, в одной записи.
и будут висеть на блокировке
...
Рейтинг: 0 / 0
Причины ненависти к языку SQL?
    #39730986
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
казинакДмитрий Мухказинак,

именно вместо сложных селектов с кучей джоинов и группировок на лету предлагается очевидное решение - во время записи писать все необходимые данные в денормализованные таблицы, называемые регистрами
это прекрасно работает на практике: АИС ТПС НК "ЮКОС", потом "Роснефть"...
работает, значит нормНе просто работает, а отлично работает

Стали бы про эту денормализацию статьи писать, если бы она не работала.

казинакно не самое масштабируемое решение
например,
обновление суммы оборотов или остатка, при каждой операции..
все сессии одновременно будут пытаться проапдейтить одно поле, в одной записи.
и будут висеть на блокировке
На блокировке чего? Зачем и Вы выдумываете какие-то суммы?

В нормализованном виде полные данные по кажой операции хранятся в N таблицах.
Запрашиваются в нескольких местах.

То есть факт свершился один раз, а используется потом много раз.

С ростом системы растёт как количество данных, так и сложность запросов к ним, и мест, откуда эти запросы выполняются. Время отклика падает.
И возникает простая идея: раз у нас много чтения и относительно мало записи, и чтение страдает, то давайте использовать денормализованные таблицы (регистры).
Избавляемся как от сложных запросов на чтение, так и от множества блокировок. И всё начинает летать.
...
Рейтинг: 0 / 0
Причины ненависти к языку SQL?
    #39730987
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И это решение отлично работало как 15 лет назад, так и сейчас в рамках одной базы.

А можно пойти ещё дальше: разнести чтение и запись по разным нодам калстера, или вообще по разным СУБД.
Что повсеместно и делают.

Но если это уже слишком для вас, то используйте проверенную денормализацию.
...
Рейтинг: 0 / 0
Причины ненависти к языку SQL?
    #39731058
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий Мух,

чудес не бывает, все зависит от частоты чтения-записи, и обычно лучшая денормализация - sql view
...
Рейтинг: 0 / 0
Причины ненависти к языку SQL?
    #39731066
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosДмитрий Мух,

чудес не бывает, все зависит от частоты чтения-записи
я про это и пишу:
Дмитрий МухИ возникает простая идея: раз у нас много чтения и относительно мало записи, и чтение страдает , то давайте использовать денормализованные таблицы (регистры).
...
Рейтинг: 0 / 0
Причины ненависти к языку SQL?
    #39731069
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosобычно лучшая денормализация - sql view
И с каких это пор sql view стало намеренным приведением структуры базы данных в состояние, не соответствующее критериям нормализации?

Я конечно понимаю, о чём ты, но давай не будем мешать мух с котлетами.
...
Рейтинг: 0 / 0
Причины ненависти к языку SQL?
    #39731096
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий Мухэто прекрасно работает на практике: АИС ТПС НК "ЮКОС", потом "Роснефть"
можно всё-таки узнать какие-то характеристики этой системы?
не знаю, возможно многие на 1С делали и посложнее системы
...
Рейтинг: 0 / 0
Причины ненависти к языку SQL?
    #39731107
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergSuperДмитрий Мухэто прекрасно работает на практике: АИС ТПС НК "ЮКОС", потом "Роснефть"
можно всё-таки узнать какие-то характеристики этой системы?
не знаю, возможно многие на 1С делали и посложнее системы
На 1C? Отгрузка нефти?

ЮКОС являлась одной из крупнейших компаний России по объёмам реализации.
В период с 1995 по 2005 год неизменно входила в число 10 крупнейших компаний России по версии журнала «Эксперт» (лучший результат - 4 место в 2001—2003 годах).

Роснефть в 2013 году стала крупнейшей в мире компанией-производителем нефти.

Как Вам такие характеристики?
...
Рейтинг: 0 / 0
Причины ненависти к языку SQL?
    #39731109
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя что-то сделали и на 1C: "1C:Предприятие 8": автоматизация отгрузки нефтепродуктов на нефтеперерабатывающем заводе .

Вот только у ЮКОСА, а в дальнейшем у Роснефти не один, а сотня НПЗ по всей России.
...
Рейтинг: 0 / 0
Причины ненависти к языку SQL?
    #39731133
казинак
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий МухИ возникает простая идея: раз у нас много чтения и относительно мало записи, и чтение страдает, то давайте использовать денормализованные таблицы (регистры).матвью и репликации оч давно известны
очередной велосипед (гениальная идея) может и не хуже, но точно не лучше

Дмитрий МухИзбавляемся как от сложных запросов на чтение, так и от множества блокировок. И всё начинает летать.
сложные запросы и блокировки - это параллельные понятия
блокировки порождаются изменениями
а не чтениями

а у вас
Дмитрий Мух... относительно мало записи.
...
Рейтинг: 0 / 0
Причины ненависти к языку SQL?
    #39731137
казинак
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosДмитрий Мух,

чудес не бывает, все зависит от частоты чтения-записи, и обычно лучшая денормализация - sql view
да ну на...
запрос с кучей джойнов,
который одновременно несколько сотен юзеров запускает - это лучшая денормализация?
...
Рейтинг: 0 / 0
25 сообщений из 306, страница 10 из 13
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Причины ненависти к языку SQL?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]