Информационная система и реляционная СУБД
От: Владислав Чистяков Российская Империя www.nemerle.org
Дата: 14.06.03 16:01
Оценка: 100 (3)
Статья :
Информационная система и реляционная СУБД
Автор(ы): Владислав Чистяков


Авторы :
Владислав Чистяков

Аннотация :
Итак. "Каждая хозоперация подлежит отражению в одной и той же сумме одновременно по дебету одного счета и кредиту другого". Уберем из этого определения плохо детерминированное понятие "хозоперация" и введем понятие "проводка". Так всем будет понятнее. Получится: "Каждая проводка подлежит отражению в одной и той же сумме одновременно по дебету одного счета и кредиту другого".
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Информационная система и реляционная СУБД
От: Аноним  
Дата: 18.06.03 14:43
Оценка:
Из статьи я так и не понял как получить агрегрированные результаты по группировкам запроса. Можно поподробнее...
Re[2]: Информационная система и реляционная СУБД
От: VladD2 Российская Империя www.nemerle.org
Дата: 19.06.03 11:41
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Из статьи я так и не понял как получить агрегрированные результаты по группировкам запроса. Можно поподробнее...


Честно говоря, не очень понял вопрос. Попробую ответить, как понял...

В статье приведены общие принципы создания агрегатных (OLAP) таблиц для нормализованной структуры хранящей проводки (двойную запись) в полностью нормализованном виде. Собственно статья родилась в ходе одного бурного обсуждения на этом сайте. Не помню кто, но кто-то утверждал, что проводки невозможно эффективно хранить и обрабатывать в реляционных СУБД.

Важно понимать, что это не законченное решение. Я пытался донести сам принцип. Создание индексированных view содержащие агрегированную информацию для решения проблемы сложности расчетов. Причем эта информация должна быть заведомо более рыхлая, нежели конечный запрос. Таким образом, чтобы конечную информацию можно было вычислить путем повторной агрегации. Весь смысл в том, что расчет по индексированным view на несколько порядков более быстр чем по основной таблице, и в том, что информация преобразовывается, скажем так, в OLAP-вид.

PS

Кстати, в теме нет ссылки на статью. Вот на всякий случай Информационная система и реляционная СУБД
Автор(ы): Владислав Чистяков
.
... << RSDN@Home 1.1 alpha 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Информационная система и реляционная СУБД
От: valmond Россия http://blogs.technet.com/valmond/
Дата: 17.12.04 11:46
Оценка:
Здравствуйте, Владислав Чистяков
Если бы кто-то на пальцах объяснил мне, то я был бы очень благодарен.

Смотрим на схемку


У нас в Ref есть например "Поставщики"
В Z2Ref есть запись
Поставщики — Петек
Поставщики — Нюрка

"Предположим теперь, что нам нужно получить обороты для" Петек и Нюрка
т.е. переписываем из статьи запрос


SELECT Agr.Z, Ref.RefName AS Name, Agr.Db, Agr.Cr
   FROM (SELECT ISNULL(DbS.idRef, CrS.idRef) AS Z, 
                ISNULL(CrS.CrSum, 0) AS Db, 
                ISNULL(DbS.DbSum, 0) AS Cr
            FROM (SELECT Z2Ref.idRef, 
                         SUM(Oper.OperSum) AS DbSum
                     FROM Oper INNER JOIN
                          Z ON Oper.Db = Z.idZ
                        INNER JOIN
                          Z2Ref ON Z.idZ = Z2Ref.idZ
                     WHERE (Z2Ref.idRef IN (3,7))
                     GROUP BY Z2Ref.idRef
                 ) DbS
               FULL OUTER JOIN
                (SELECT Z2Ref.idRef, 
                        SUM(Oper.OperSum) AS CrSum
                     FROM Oper INNER JOIN
                          Z ON Oper.Cr = Z.idZ 
                        INNER JOIN
                          Z2Ref ON Z.idZ = Z2Ref.idZ
                     WHERE (Z2Ref.idRef IN (3,7))
                     GROUP BY Z2Ref.idRef
                ) CrS
               ON DbS.idRef = CrS.idRef
        ) Agr 
        INNER JOIN Ref ON Agr.Z = Ref.idRef



Но проводки по Z — Поставщики получается что учитываются суммарные для каждого из выбираемых представителя Ref
Т.е. по связи между Z и Oper нельзя никак сказать о том к какому именно RefId относится OperId


Заранее спаибо за разъяснения
Заметки — SharePoint & InfoPath
http://blogs.technet.com/valmond/
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.