Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 3 4 5 6 7 [8] 9 10 11 12 .. 106   вперед  Ctrl
 Re: CACHE и MSSQL  [new]
c127
Guest
Rus000
c127, спасибо за коменты, по большому счету мне и возражать особо не на что :)

По примеру СКЛ кода. Обсуждавшаяся тут задача с авиабилетами гораздо более удачный пример. Во-первых она вполне жизненная, а во-вторых сформулирована полностью, и код запросов приведен полностью, поэтому примеры лучше смотреть там.

Rus000

это если делать перенос рел.структуры в лоб, а на деле часто оказывается, что сущности более понятно представимы в виде достаточно ветвистого многоуровнего дерева. В частности, например такая сущность как "человек" может быть совершенно прозрачно декомпозирован в дереве на "работник", "пенсионер", "льготник", "получатель медуслуг", "вкладчик" и т.п., каждый из таких категорий может быть уточнена еще более подробным способом путем ветвления нижних уровней. В итоге получается, вообще говоря, логически несбалансированное разреженное дерево, которое определяет ВСЮ совокупность реквизитов и подсущностей для человека.

Да, правильно, более того, много деревьев всегда можно объединить в одно, добавив одну вершину - корень. Но это ничего не меняет: за исключением малого числа случаев, Вам потребуются дополнительные связи между вершинами, т.е. дерево перестанет быть деревом, а с таким графом в иерархических БД работать уже сложно. Я об этом и говорил.

А как Вы объедините своего декомпозированного человека в одну сущность? У вас получается что он независимо входит в одно поддерево как пенсионер, а в другое как получатель услуг. А Вам вдруг понадобилось получить информацию о пенсионере и получателе услуг Васе Пупкине. Это объединение и есть та связь, которая присутствует неявно и портит всю красоту.

Еще можно дублировать вершины и строить на них другие деревья, грубо говоря для каждого запроса свое дерево, что М программисты и делали в задаче с билетами. Тогда код получается компактный, но появляются проблемы с поддержкой целостности. Это обсуждалось.


Rus000
Деревянный подход очень похож на объектный.

Знаю, поэтому объектный подход не люблю. Но у деревьев хоть какая-то математика есть, а у объектов полный мрак, никто не знает что оно такое.

Rus000
Я допускаю, что проектировать можно и в другом наборе сущностей и связей, но вопрос какая модель все-таки более интуитивно понятна.

Не знаю. Для обычного человека наверное дерево, поэтому ИМХО иерархические БД появлилиь раньше. Но для математика реляционный подход более естественный, поэтому математика уже тысячи 2 лет работает с множествами, даже формализм уже существует больше ста лет, дерево в множествах всего лишь частный случай.
26 окт 06, 00:09    [3311609]     Ответить | Цитировать Сообщить модератору
 Re: CACHE и MSSQL  [new]
ЛП
Guest
MX -- ALEX
1000pуб. 102 коп ---> 1000

Только Вы не заметили, что в буквосочетании "pуб" - первая буква латиницей.
1000, говорите?
26 окт 06, 00:42    [3311656]     Ответить | Цитировать Сообщить модератору
 Re: CACHE и MSSQL  [new]
Sergei Obrastsov
Member

Откуда: Магадан
Сообщений: 584
c127
Да, правильно, более того, много деревьев всегда можно объединить в одно, добавив одну вершину - корень. Но это ничего не меняет: за исключением малого числа случаев, Вам потребуются дополнительные связи между вершинами, т.е. дерево перестанет быть деревом, а с таким графом в иерархических БД работать уже сложно.

Что меня всегда поражало в этом форуме, так это умение некоторых участников делать совершенно нелогичные выводы.
Простите, а во что же превратится тогда "дерево" и почему с ним работать будет сложно?
26 окт 06, 01:26    [3311720]     Ответить | Цитировать Сообщить модератору
 Re: CACHE и MSSQL  [new]
Sergei Obrastsov
Member

Откуда: Магадан
Сообщений: 584
ЛП
Только что ж говорили, что дескать как удобно когда не надо писать кода, а мудрая система сама всё отконвертит, превратит строки в числа, и просуммирует.
И даже примеры приводили.
Чуть ранее - "...например set a="12.30 руб.цена "*"3 штуки" установит в переменной "a" значение 36.9"
Совсем недавно - "...поле в базе имеет значения '1 штука', '2 штуки', 'ни одной штуки', ну и например просуммировать по этому полю"

Вот вам совершенно аналогичный пример - "...поле в базе имеет значения '1. Яблоки 3.5килограмма', '2. Конфеты 200грамм', '3. Молоко 1,5литра', '4. Гвоздички 5штук', ну и например просуммировать по этому полю"
И вдруг почему-то "Каше само ничего не выдаст"?
У неё там чаво, искуственный интелект внутре, что оно само решает, когда ей чаво-та надо выдавать, а когда не надо?

Зачем весь этот бред? Просто постебаться? Тогда можно продолжить.
Например "Малако палтара л.". Складывайте в SQL. Правда здорово получается?

P.S. 2andrey_anonymous
Ну и зачем понадобился "ЛП"? Чтобы создать впечатление толпы? Или чтоб не
портить о себе впечатление?
26 окт 06, 01:50    [3311734]     Ответить | Цитировать Сообщить модератору
 Re: CACHE и MSSQL  [new]
ЛП
Guest
2 Sergei Obrastsov
Зачем весь этот бред? Просто постебаться?

Вах, малшык, ты миня разгадал. Типерь мине придеццо тибя убить

Тогда можно продолжить.
Например "Малако палтара л.". Складывайте в SQL. Правда здорово получается?

Так ведь никто не утверждал, что в SQL звуковые файлы, представляющие из себя произношение чисел - должны складываться. И уж тем более никто не оправдывал это самовыдуманным бредом "человек воспринимает эту информацию четко и однозначно почему комп-программа не обязана так же легко читать" (с) MX--ALEX

P.S. 2andrey_anonymous
Ну и зачем понадобился "ЛП"? Чтобы создать впечатление толпы? Или чтоб не
портить о себе впечатление?

Фиговая из тебя мисс Марпл
Сиськи отрасти, пообвисни ими, тогда и поговорим :)
26 окт 06, 02:40    [3311759]     Ответить | Цитировать Сообщить модератору
 Re: CACHE и MSSQL  [new]
Sergei Obrastsov
Member

Откуда: Магадан
Сообщений: 584
ЛП
2 Sergei Obrastsov
Зачем весь этот бред? Просто постебаться?

Вах, малшык, ты миня разгадал. Типерь мине придеццо тибя убить

Давай-давай. Порази меня безграмотностью!

ЛП

Тогда можно продолжить.
Например "Малако палтара л.". Складывайте в SQL. Правда здорово получается?

Так ведь никто не утверждал, что в SQL звуковые файлы, представляющие из себя произношение чисел - должны складываться. И уж тем более никто не оправдывал это самовыдуманным бредом "человек воспринимает эту информацию четко и однозначно почему комп-программа не обязана так же легко читать" (с) MX--ALEX

Я очень сомневаюсь, что он имел в виду использование именно таких вот
данных для ввода информации.

ЛП

Только что ж говорили, что дескать как удобно когда не надо писать кода, а мудрая система сама всё отконвертит, превратит строки в числа, и просуммирует.

А вот этого никто не говорил, не стоит передергивать. Особенно про "просуммирует" и "не надо писать кода". Еще разложит в БД, распечатает и перевяжет ленточкой, ага.

ЛП

P.S. 2andrey_anonymous
Ну и зачем понадобился "ЛП"? Чтобы создать впечатление толпы? Или чтоб не
портить о себе впечатление?

Фиговая из тебя мисс Марпл

И не пытался ей стать. Меня Холмс как прототип больше устраивает.
26 окт 06, 04:05    [3311791]     Ответить | Цитировать Сообщить модератору
 Re: CACHE и MSSQL  [new]
ЛП
Guest
2 Sergei Obrastsov
А вот этого никто не говорил, не стоит передергивать. Особенно про "просуммирует" и "не надо писать кода".

Читай топег с самого начала, мисс.

Меня Холмс как прототип больше устраивает.

Дык ведь и Холмс из тебя плохой.
Сначала трубкой в жопе научись ковырять с задумчивым видом, потом и приходи, прототип ты наш.
26 окт 06, 04:11    [3311792]     Ответить | Цитировать Сообщить модератору
 Re: CACHE и MSSQL  [new]
c127
Guest
Sergei Obrastsov
c127
Да, правильно, более того, много деревьев всегда можно объединить в одно, добавив одну вершину - корень. Но это ничего не меняет: за исключением малого числа случаев, Вам потребуются дополнительные связи между вершинами, т.е. дерево перестанет быть деревом, а с таким графом в иерархических БД работать уже сложно.

Что меня всегда поражало в этом форуме, так это умение некоторых участников делать совершенно нелогичные выводы.

Меня тоже иногда поражает невероятная математическая необразованность некоторых постящих на программитские форумы.

Логика такая. Дерево есть связный граф без циклов, это одно из определений, по-моему там еще выделяется коренная вершина, но это сейчас не важно. Как следствие число ребер у дерева на еденицу меньше чем число вершин. Это необходимое условие, если оно не выполняется то это не дерево. При добавлении ребра между любыми вершинами это условие перестает выполняться, число ребер возрастает, чисо вершин не меняется, следовательно то что мы получаем в результате деревом не является. Доказательство соотношения между числом ребер и вершин в дереве можно найти наверное в любой книге по теории графов.

Sergei Obrastsov

Простите, а во что же превратится тогда "дерево" и почему с ним работать будет сложно?

Превратится в граф общего вида, с циклами. По сложностям смотрите топик где обсуждается задача с авиабилетами, там есть наглядные примеры в виде кусков кода.
26 окт 06, 04:42    [3311800]     Ответить | Цитировать Сообщить модератору
 Re: CACHE и MSSQL  [new]
Sergei Obrastsov
Member

Откуда: Магадан
Сообщений: 584
ЛП
2 Sergei Obrastsov
А вот этого никто не говорил, не стоит передергивать. Особенно про "просуммирует" и "не надо писать кода".

Читай топег с самого начала, мисс.

Читал. Наверно тяжело быть таким больным? :)

ЛП
2 Sergei Obrastsov
Меня Холмс как прототип больше устраивает.

Дык ведь и Холмс из тебя плохой.
Сначала трубкой в жопе научись ковырять с задумчивым видом, потом и приходи, прототип ты наш.

Да, опыт, ничего не скажешь. Я и не знал, что это необходимо. :)
26 окт 06, 07:14    [3311876]     Ответить | Цитировать Сообщить модератору
 Re: CACHE и MSSQL  [new]
Sergei Obrastsov
Member

Откуда: Магадан
Сообщений: 584
c127
Sergei Obrastsov
c127
Да, правильно, более того, много деревьев всегда можно объединить в одно, добавив одну вершину - корень. Но это ничего не меняет: за исключением малого числа случаев, Вам потребуются дополнительные связи между вершинами, т.е. дерево перестанет быть деревом, а с таким графом в иерархических БД работать уже сложно.

Что меня всегда поражало в этом форуме, так это умение некоторых участников делать совершенно нелогичные выводы.

Меня тоже иногда поражает невероятная математическая необразованность некоторых постящих на программитские форумы.

Одно другому не мешает. Почему-то дети и в 3 года прекрасно говорят, не
имея специального лингвистического образования.

c127

Логика такая. Дерево есть связный граф без циклов, это одно из определений, по-моему там еще выделяется коренная вершина, но это сейчас не важно. Как следствие число ребер у дерева на еденицу меньше чем число вершин. Это необходимое условие, если оно не выполняется то это не дерево. При добавлении ребра между любыми вершинами это условие перестает выполняться, число ребер возрастает, чисо вершин не меняется, следовательно то что мы получаем в результате деревом не является. Доказательство соотношения между числом ребер и вершин в дереве можно найти наверное в любой книге по теории графов.

Я верю. Мне просто интересно, где Вы нашли добавление ребра между вершинами? Это кто-то предложил или Вам просто так кажется?
По-моему, это просто физически невозможно сделать в M.
26 окт 06, 08:16    [3311945]     Ответить | Цитировать Сообщить модератору
 Re: CACHE и MSSQL  [new]
MX -- ALEX
Guest
ЛП
MX -- ALEX
1000pуб. 102 коп ---> 1000

Только Вы не заметили, что в буквосочетании "pуб" - первая буква латиницей.
1000, говорите?


1000
какая разница что там приписано еще ?

при выполнениии м-команды
set S=+S
все лишнее автоматически отваливается
остается 1000

но перед этим команда
set VALUTA=$s(S["u":"USD",S["$":"USD",S["USD":"USD",1:"RUR")
установит вид валюты
26 окт 06, 09:50    [3312263]     Ответить | Цитировать Сообщить модератору
 Re: CACHE и MSSQL  [new]
Joker_Ya
Member

Откуда:
Сообщений: 186
andrey_anonymous
LittleCat
Хорошо, я тоже не удержусь, замените плиз
5  from dual union all select '5. Печенье 8штук',
на
5  from dual union all select 'Печенье 8штук'
(В моем примере не опечатка)

Ок, но Вы в том же примере не меняя текста посчитаете пшено :)
SQL> -- Имитируем таблицу
SQL> with tab as( select '1. Яблоки 3.5килограмма' s
  2  from dual union all select '2. Конфеты 200грамм'
  3  from dual union all select '3. Молоко 1,5литра'
  4  from dual union all select '4. Гвоздички 5штук'
  5  from dual union all select 'Печенье 8штук'
  6  from dual union all select '6. Цианид +35грамм'
  7  from dual union all select '7. Пшено -3,5e4единиц'
  8  from dual)
  9  -- считаем по таблице tab
 10  select sum(translate(regexp_substr(regexp_replace(s,'\D+$',''),'[+-]?\d+([.,]\d+)?(e[+-]?\d+)?$'),'.,','..')) S
 11       , regexp_substr(s,'\D+$') M
 12  from tab
 13  group by regexp_substr(s,'\D+$');

         S M
---------- ---------------
       3.5 килограмма
       235 грамм
        13 штук
       1.5 литра
    -35000 единиц



Да уж урыли Cashe - истов на их же поле. Одним SQL запросом решили задачу на которую в Cashe пришлось писать целую прогу. :)
26 окт 06, 10:41    [3312635]     Ответить | Цитировать Сообщить модератору
 Re: CACHE и MSSQL  [new]
MX -- ALEX
Guest
Joker_Ya

Да уж урыли Cashe - истов на их же поле. Одним SQL запросом решили задачу на которую в Cashe пришлось писать целую прогу. :)


назовите CACHE-прогу CACHE-запросом
какая разница ?
в обоих случаях будет сначала интерпретироваться в
машинный код - и затем выполнятся

оба варианта по обьему примерно одинаковые

текст именно этого SQL-запроса конечно более понятен
неподготовленному пользователю
с этим не поспоришь
26 окт 06, 10:58    [3312792]     Ответить | Цитировать Сообщить модератору
 Re: CACHE и MSSQL  [new]
LittleCat
Member

Откуда: СПб
Сообщений: 435
Joker_Ya

Да уж урыли Cashe - истов на их же поле. Одним SQL запросом решили задачу на которую в Cashe пришлось писать целую прогу. :)

Ну-ну, если бы еще не regexp_substr да regexp_replace... Так и я умею, $ZF(-3,....). И кстати, не Cashe, а Caché.
26 окт 06, 11:09    [3312885]     Ответить | Цитировать Сообщить модератору
 Re: CACHE и MSSQL  [new]
Joker_Ya
Member

Откуда:
Сообщений: 186
MX -- ALEX
Joker_Ya

Да уж урыли Cashe - истов на их же поле. Одним SQL запросом решили задачу на которую в Cashe пришлось писать целую прогу. :)


назовите CACHE-прогу CACHE-запросом
какая разница ?
в обоих случаях будет сначала интерпретироваться в
машинный код - и затем выполнятся

оба варианта по обьему примерно одинаковые

текст именно этого SQL-запроса конечно более понятен
неподготовленному пользователю
с этим не поспоришь


Test ; ; Дальше обработаем
k rez
s tara=$lb("килограмм","грамм","литр","штук")
s in="" f s in=$O(^A(in)) q:in="" f j=1:1:$ll(tara) i ^A(in)[$li(tara,j) s rez(j)=$g(rez(j))+$re($p($re(^A(in))," ")) q
;Выведем результат
f j=1:1:$ll(tara) w !,$li(tara,j),"=",+$g(rez(j))

Убираем ввод данных. Сравниваем

select sum(translate(regexp_substr(regexp_replace(s,'\D+$',''),'[+-]?\d+([.,]\d+)?(e[+-]?\d+)?$'),'.,','..')) S
11 , regexp_substr(s,'\D+$') M
12 from tab
13 group by regexp_substr(s,'\D+$');
В SQL это 1 запрос. В Каше это набор команд, Причем список ед. измерения надо задать руками. В SQL он формируется сам из исходных данных. Так что если там появиться еще одна строка типа '10. Цианид +35коробок' SQL запрос переделывать не прийдется и он выдаст правильный результат а вот вашу программу прейдется переделать и так при каждой новой единице измерения.
26 окт 06, 11:10    [3312906]     Ответить | Цитировать Сообщить модератору
 Re: CACHE и MSSQL  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 19912
Sergei Obrastsov
P.S. 2andrey_anonymous
Ну и зачем понадобился "ЛП"? Чтобы создать впечатление толпы? Или чтоб не
портить о себе впечатление?

Меня иногда подозревают в клонировании, но в данном случае у меня твердое алиби - с моих ip гестов не пускают.
26 окт 06, 11:33    [3313150]     Ответить | Цитировать Сообщить модератору
 Re: CACHE и MSSQL  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 19912
Joker_Ya
Да уж урыли Cashe - истов на их же поле. Одним SQL запросом решили задачу на которую в Cashe пришлось писать целую прогу. :)

Мне кажется Вы неправы.
Я не ставил перед собой цели кого бы то ни было "урыть" и не считаю приведенный SQL пригодным к практическому использованию.

Однако если мы говорили о сравнении кода для реализации одной и той же функциональности, то данный SQL-запрос в oracle вернет еще и консистентый результат в многопользовательском окружении, что в случае M-систем, насколько я понял, потребует специального кодирования.
26 окт 06, 11:42    [3313232]     Ответить | Цитировать Сообщить модератору
 Re: CACHE и MSSQL  [new]
MX -- ALEX
Guest
andrey_anonymous
Joker_Ya
Да уж урыли Cashe - истов на их же поле. Одним SQL запросом решили задачу на которую в Cashe пришлось писать целую прогу. :)

Мне кажется Вы неправы.
Я не ставил перед собой цели кого бы то ни было "урыть" и не считаю приведенный SQL пригодным к практическому использованию.

Однако если мы говорили о сравнении кода для реализации одной и той же функциональности, то данный SQL-запрос в oracle вернет еще и консистентый результат в многопользовательском окружении, что в случае M-систем, насколько я понял, потребует специального кодирования.


консистентый результат в многопользовательском окружении

- а что за зверь ?
ща закодируем :)
26 окт 06, 12:12    [3313527]     Ответить | Цитировать Сообщить модератору
 Re: CACHE и MSSQL  [new]
LittleCat
Member

Откуда: СПб
Сообщений: 435
Joker_Ya

В SQL это 1 запрос. В Каше это набор команд, Причем список ед. измерения надо задать руками. В SQL он формируется сам из исходных данных. Так что если там появиться еще одна строка типа '10. Цианид +35коробок' SQL запрос переделывать не прийдется и он выдаст правильный результат а вот вашу программу прейдется переделать и так при каждой новой единице измерения.

Я хотел бы подчеркнуть другое. Приведенный SQL код годится только для Oracle, и только для тех версий, в которых появились функции REGEXP_SUBSTR, REGEXP_LIKE и пр. Скажем в MS SQL тоже есть что-то подобное, но данный запрос придется переписать. Если в приведенном мной примере перейти от использования функции $list (специфичной для Cache) к использованию $pice (что несложно), то этот код без изменений можно будет перенести на любую М-систему, и он там будет работать. Скажу больше, несложно также один раз написать на М полный аналог REGEXP функций и дальше пользоваться ими. В SQL-системах приходится ждать, когда разработчики БД по просьбам трудящихся добавят нужную функциональность.
26 окт 06, 12:13    [3313533]     Ответить | Цитировать Сообщить модератору
 Re: CACHE и MSSQL  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 19912
LittleCat
Скажу больше, несложно также один раз написать на М полный аналог REGEXP функций и дальше пользоваться ими. В SQL-системах приходится ждать, когда разработчики БД по просьбам трудящихся добавят нужную функциональность.

Вы неправы. Показывать или просто поверите? =)
26 окт 06, 12:17    [3313557]     Ответить | Цитировать Сообщить модератору
 Re: CACHE и MSSQL  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 19912
MX -- ALEX

консистентый результат в многопользовательском окружении
- а что за зверь ?
ща закодируем :)

Тут немного раньше обсуждались уровни изоляции транзакций :)
Скажем так, данный запрос вернет непротиворечивый результат в условиях конкурирующих вставок и обновлений (например, конкурирующая транзакция разделяет 1.5 литра молока на .5-литровые пакеты т.е. удаляет или обновляет существующую запись и вставляет пару новых. Молока не становися ни больше, ни меньше, но приведенная М-программа способна вернуть несколько неожиданный результат :).
26 окт 06, 12:21    [3313588]     Ответить | Цитировать Сообщить модератору
 Re: CACHE и MSSQL  [new]
LittleCat
Member

Откуда: СПб
Сообщений: 435
andrey_anonymous

Вы неправы. Показывать или просто поверите? =)

Про что неправ ? Если про что-то в SQL, так поверю, а если про М, то пободаемся :-)
26 окт 06, 12:23    [3313604]     Ответить | Цитировать Сообщить модератору
 Re: CACHE и MSSQL  [new]
LittleCat
Member

Откуда: СПб
Сообщений: 435
andrey_anonymous

Тут немного раньше обсуждались уровни изоляции транзакций :)
Скажем так, данный запрос вернет непротиворечивый результат в условиях конкурирующих вставок и обновлений (например, конкурирующая транзакция разделяет 1.5 литра молока на .5-литровые пакеты т.е. удаляет или обновляет существующую запись и вставляет пару новых. Молока не становися ни больше, ни меньше, но приведенная М-программа способна вернуть несколько неожиданный результат :).

Ну вот, вы к примеру добавляете новую сущность, транзакции. Приведенный ранее пример показывал всего лишь одно из множества решений задачи обработки нетипизированной информации, не более того :-)
26 окт 06, 12:29    [3313660]     Ответить | Цитировать Сообщить модератору
 Re: CACHE и MSSQL  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 19912
LittleCat
andrey_anonymous

Вы неправы. Показывать или просто поверите? =)

Про что неправ ? Если про что-то в SQL, так поверю

Именно.
Не знаю как в MSSQL, а в оракеле можно и пользовательские функции в запросах, и пользовательский оператор создать, и агрегатную функцию, и очень удобную в ряде применений pipelined, включаемую непосредственно в конвейер sql-машины.
26 окт 06, 12:34    [3313706]     Ответить | Цитировать Сообщить модератору
 Re: CACHE и MSSQL  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 19912
LittleCat
Ну вот, вы к примеру добавляете новую сущность, транзакции. Приведенный ранее пример показывал всего лишь одно из множества решений задачи обработки нетипизированной информации, не более того :-)

Я не добавляю сущностей, но просто уточняю, что помимо собственно логики решения этот запрос реализует еще и логику многопользовательского доступа к данным довольно прозрачным с точки зрения разработки/поддержки образом без дополнительного кодирования, как любят отмечать адепты MUMPS :).
26 окт 06, 12:41    [3313773]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 3 4 5 6 7 [8] 9 10 11 12 .. 106   вперед  Ctrl
Все форумы / Сравнение СУБД Ответить