powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / ОРБД. сравнение объектных расширений реляционных СУБД.
25 сообщений из 108, страница 3 из 5
ОРБД. сравнение объектных расширений реляционных СУБД.
    #33654264
-------------
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
okdoky vadiminfo okdoky
Не забывайте, что Zigzag – ОРСУБД.

А вот тут извените. Это как раз можно таки и забыть - Зигзаг как ОРСУБД в литературе не прописан и врядли может реально сопоставляться с реальными ОРСУБД. Ему товарищь все-таки скорее Клиппер, а не Ораклы со Скулями, ДиБиДвами и Сибэйсами. Так шо пусть он пока (до выяснения каких-то новых обстоятельств) остается просто Зигзагом без всяких там приписок типа ОРСУБД.На счет Оракла и Клиппера не знаю, но взгляните на сайт Most Popular in Database . Sav ZAPI (старая версия Sav Zigzag) тягается с MySQL, PostgreSQL и SQL Server . Согласен, это произошло недавно, но такие темпы меня настораживают самого.

okdoky , сам-то понял, на какую х#$ню ссылка?
...
Рейтинг: 0 / 0
ОРБД. сравнение объектных расширений реляционных СУБД.
    #33654352
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
okdoky
На счет Оракла и Клиппера не знаю, но взгляните на сайт Most Popular in Database. Sav ZAPI (старая версия Sav Zigzag) тягается с MySQL, PostgreSQL и SQL Server . Согласен, это произошло недавно, но такие темпы меня настораживают самого.

На сайт взглянул. Там какие то левые дешевые тулсы в основном, а не сами ОРСУБД. Оттого Вашей настороженности нет никаких причин. Скорее наоборот, надо было настораживаться када сделали такую ошибку как купилсь на использование Зигзага. Вас так могут развести и на бесплатные утюги и прочее на улице. Надо быть все-таки немножечко осмотрительнее. Сами знаете в какое время и где живем.
...
Рейтинг: 0 / 0
ОРБД. сравнение объектных расширений реляционных СУБД.
    #33654824
mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тов. okdoky. Предлагаю подвести некие итоги состоявшегося обсуждения по ZigZag, которые я считаю вполне обоснованными. Итак:

1. Авторы ZigZag не понимают реляционную модель данных, поскольку они, в частности:

1.1. Называют отношением то, что отношением в принципе не является.

1.2. Используют термин «целостность» (integrity) в контексте работы с РБД, совершенно не понимая его смысл в РМД.

2. Авторы ZigZag не знакомы с возможностями современных СУБД, поскольку

2.1. Они полагают, что возможность работать с метаданными является уникальной отличительной чертой ZZ, и в SQL невозможна.

2.2. Они полагают, что отсутствие в СУБД триггеров является не недостатком, а достоинством, причем считают, что триггеры нужны только для «integrity control for a field of many tables».

Про ваши собственные ляпы я повторяться не хочу, это никому уже не интересно. А вот про еще некоторые аспекты ZZ хотел бы упомянуть. Мы обсудили, что авторы ZZ слабы в реляционной теории в аспектах структуры и целостности. Пару слов про аспект манипулирования.

1. Я нигде не нашел аналога операции JOIN (соединение) или хотя бы CROSS JOIN/TIMES (декартово произведение). Без одной из них система операций заведомо не полна.

2. Интерпретация реляционной операции RESTRICTION (WHERE), похоже, неверна (неполна), поскольку в WHERE по определению РМД в качестве условия может быть задан произвольный предикат, а в ZZ, судя по описанию, только несколько частных случаев равенства-неравенства вроде (A1 = a1 AND ...) или (A1 = a1 OR ...)

3. Вообще, отдельных операций — аналогов DELETE, INSERT, UPDATE нет (я не нашел), они записываются в форме присваивания. Само по себе это не является ошибкой, так как они теоретически выразимы через присваивание переменной отношения выражения, дающего отношение того же типа. На это указывал и Дейт. Но он же указывал, что это является недостатком , так как не позволяет обрабатывать некоторые важные виды событий: попытка удалить отсутствующие кортежи, попытка обновить несуществующие кортежи, попытка вставить существующие кортежи. Кроме того, если нет полноценной возможности записи произвольных R-выражений (см. выше пп. 1 и 2), то и операции модификации тоже заведомо неполноценны.

4. Нет крайне полезных реляционных операций группировки (GROUP BY/SUMMARIZE), расширения (EXTEND), переименования (RENAME), квотирования (QUOTA/TOP/FIRST). Не нашел и нереляционной, но полезной операции сортировки (ORDER BY).

5. Не нашел агрегатных функций COUNT, SUM, MIN, MAX, AVG. Вообще, полезной библиотеки функций нет.

6. Ничего подобного DCL я вообще не нашел. Как правами доступа-то управлять?

В целом, описание языка выполнено крайне убого и непрофессионально: практически полностью отсутствуют определения используемых понятий, абсолютно нет формального описания синтаксиса языка в BNF или хоть в какой-то формальной нотации (просьба раздел 3 "Language Reference" даже не пытаться за таковую выдать). Вместо этого используются примеры, которые не могут быть полноценной заменой определениям и формальной нотации, и которые мне лично показались зачастую просто непонятными и ничего толком не проясняющими.

Если я что-то просто упустил, okdoky, просто укажите источники, где я могу прочитать о верном положении дел.
...
Рейтинг: 0 / 0
ОРБД. сравнение объектных расширений реляционных СУБД.
    #33656900
okdoky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mir
На сколько я понимаю, авторы не ставили перед собой цель дать какие-либо определения используемым терминам. Почему Вы считаете, что они обязаны опираться на реляционную терминологию? Потому, что Вы знаете ее лучше? А знаете ли Вы сами точные определения из РМД? Даже Ваши ссылки на Дэйта, Википедию и пр., это сплошной винегрет, из которого Вы заключили, что домен и тип, это синонимы. Я не считаю, что терминологию РМД нужно использовать как догму. Тем более, как выяснилось согласно Вашей ссылке, Дэйт применил термин «тип» только в 8-м издании своего Введения в БД. Очевидно в первых изданиях понятие «тип» вообще не существовало? А что если в 9-м издании он (Дэйт) возьмет и заменит «тип», на «класс»? И скажет, ребята, чтобы Вам было понятнее, это тоже самое, что мы называли доменом в своих первых изданиях. Как Вы будете выкручиваться? Предложите очередной винегрет из ссылок? Я не хочу отвечать за авторов Zigzaga, но могу дать Вам свои собственные определения. Можете использовать их в дальнейшем за основу и даже ссылаться на них.
Домен – множество значений.
Тип – определение множества значений.
Класс – именованное множество значений.

Повторю то, что сказал ранее, из “A is B” вовсе не следует, что A есть синоним B. Конечно обобщение – полезная вещь, особенно для начинающих. Профессионалы должны чувствовать тонкости. Например, понятие класс по своему смыслу ближе к множеству, поэтому имя класса можете использовать во множественном числе: «mir относится к классу мужчин». С типом нужно быть осторожнее, советую использовать его обозначение в единственном числе, например «mir имеет тип мужчины». В любом случае, если возникнут вопросы или сомнения обращайтесь, обязательно помогу

На счет метаданных. Да “Moreover, attribute name (not only value) may be expressed via request in a description or another request” выглядит сжато и непонятно. Под description понимается возможность создавать новое отношение используя известные имена или значения атрибутов. То есть description понимайте как CREATE TABLE, где имена колонок и таблиц задаются через запросы или переменные. Можно ли это сделать в SQL? При этом в запросах могут указаны только значения атрибутов. Как я уже демонстрировал ранее, метаданные в Zigzag существуют не сами по себе в системных таблицах, а тесно связаны с самими данными (например со значениями атрибутов) и могут выводится из них. Здесь обобщение действительно играет важную роль.
...
Рейтинг: 0 / 0
ОРБД. сравнение объектных расширений реляционных СУБД.
    #33656994
###
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
okdoky mir
На сколько я понимаю, бла-бла-бла...
Блин, и ни слова по делу... Любопытно, он (okdoky) кроме себя кого-нибудь слышит?
...
Рейтинг: 0 / 0
ОРБД. сравнение объектных расширений реляционных СУБД.
    #33657000
Фотография NO COMMENTS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторавторы не ставили перед собой цель дать какие-либо определения используемым терминам

No comments
...
Рейтинг: 0 / 0
ОРБД. сравнение объектных расширений реляционных СУБД.
    #33657060
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
okdoky
CREATE TABLE, где имена колонок и таблиц задаются через запросы или переменные. Можно ли это сделать в SQL?

А Вы надетесь что не может? Или уверены? Типа где SQL до Зигзага? Ну еще бы хто придымувыл SQL и хто Зигзаг?
Ить не впервый раз облом Вашим таким наивным мечтам, а Вы все без предварительной проверки пытаетесь предполагать что на SQL нельзя и типа восхитить Зигзагом.

CREATE TABLE table_name AS SELECT .... - известнешая конструкция.

Мож все-таки изучите SQL? Преимущества от этого:
1) не будет такого смешного хвастовства тем что, Зигзаг может перелетать с забора на забор.
2) Поймете что Зигзагу до SQL как до луны, и не будете время тратить на напрсную пропаганду этого Герболайфа.
...
Рейтинг: 0 / 0
ОРБД. сравнение объектных расширений реляционных СУБД.
    #33657458
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как говорится, Зигзаг не читал, но скажу:).
видимо, это означает, что выражения второго порядка непосредственно входят в язык, т.е. можно без использования динамического SQL писать типа
Код: plaintext
Select $(select x from table_columns where tableName ='x' and col_ISPK = 1 ) ...

где $ указывает, что результат следует понимать как имя, а не значение.
По русски - выдать значения колонок, объявленных как PK.
...
Рейтинг: 0 / 0
ОРБД. сравнение объектных расширений реляционных СУБД.
    #33658489
mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 okdoky
Прежде, чем разобрать ваш «поток сознания», отмечу, что делаю это (отвечаю вам), похоже, последний раз, поскольку за все это время вы не привели ни одного заслуживающего внимания аргумента, ни одной завалящей цитаты или ссылки в подтверждение вашей позиции. Мне уже все ясно, окружающим, похоже, тоже все ясно, ничего нового или интересного в споре от вас ожидать, увы, не приходится. Теперь детали.
okdokyНа сколько я понимаю, авторы не ставили перед собой цель дать какие-либо определения используемым терминам. Почему Вы считаете, что они обязаны опираться на реляционную терминологию?Сколь жалко выглядят подобные заявления. Авторы ZZ сами заявили про то, что их язык позволяет работать с реляционными базами данных, причем лучше SQL. Кто написал на титульной странице сайта: “Sav Zigzag is an object relational DBMS (ORDBMS) supporting Zigzag language, more expressive than SQL ”. Никто их за язык не тянул. Зачем тогда писать “Zigzag algebraic expressions enable lightly to process not only tabular data, like in SQL , but also hierarchy, like XML.” И первым же разделом доки по ZZ они сами выбрали “ Relational Database Application”. И после этого вы смеете заявлять «Почему Вы считаете, что они обязаны опираться на реляционную терминологию?» У вас что-то с логикой, родной мой человек. Люди сами начали направо и налево использовать слова «реляционный» и “SQL”, разумеется они обязаны опираться на реляционную терминологию.
okdokyПотому, что Вы знаете ее лучше? Чем авторы ZZ? Да. Чем вы? Дважды да.
okdokyА знаете ли Вы сами точные определения из РМД? Да. По крайней мере стремлюсь к этому.
okdokyДаже Ваши ссылки на Дэйта, Википедию и пр., это сплошной винегретРодной, я-то эти ссылки нашел и привел (и могу еще десяток найти и привести), а вот лично вы ничего не нашли и не привели. Похоже, пытаетесь обвинить другого, что он плоховато бегает, а сами и ходить -то пока не можете. А по поводу винегрета, так он у вас в голове. Приведенные ссылки и цитаты друг другу не противоречат, а напротив, взаимно подтверждаются.
okdokyиз которого Вы заключили, что домен и тип, это синонимы. Родной, это не я так заключил, это там так и написано.
okdokyЯ не считаю, что терминологию РМД нужно использовать как догму. Чтобы решить, использовать или не использовать терминологию РМД, нужно ее хотя бы знать. По опыту этого форума, обычно обзывают стандартную терминологию «догмой» и «не хотят ее использовать» те, кто ее просто не знает.
okdokyТем более, как выяснилось согласно Вашей ссылке, Дэйт применил термин «тип» только в 8-м издании своего Введения в БД.Это просто дань исторической традиции: Кодд изначально использовал термин «домены». Но и традиции сходят на нет, просто термин «тип» известен и употребим шире. okdokyОчевидно в первых изданиях понятие «тип» вообще не существовало?.А что если в 9-м издании он (Дэйт) возьмет и заменит «тип», на «класс»? И скажет, ребята, чтобы Вам было понятнее, это тоже самое, что мы называли доменом в своих первых изданиях. Как Вы будете выкручиваться? Оставьте свои фантазии и домыслы при себе, они кроме вас мало кому интересны. Хотя понимаю, тогда вам и сказать будет нечего.
okdokyПредложите очередной винегрет из ссылок?Это мы уже обсудили. Научитесь ходить, потом критикуйте тех, кто бегает.
okdokyЯ не хочу отвечать за авторов Zigzaga, но могу дать Вам свои собственные определения. Можете использовать их в дальнейшем за основу и даже ссылаться на них.
[всякая ересь] Мания величия. Вы кто, простите, такой, чтобы кого-то интересовали ваши доморощенные определения? Эксперт с мировым уровнем? Для начала, приведите список ваших публикаций по данной тематике, а там видно будет. А пока будем пользоваться мнением более известных и авторитетных людей, уж простите.
okdoky[бла-бла-бла]. В любом случае, если возникнут вопросы или сомнения обращайтесь, обязательно помогу Вопросы я вам задавал, неоднократно. Про целостность, про реализацию аудита без триггеров, про конкретные недостатки ZZ. Вы их «замолчали». Ответить-то нечего. Поэтому сомнения у меня закономерно возникли. Сомнения в вашей профпригодности. И вы мне помогли . Помогли утвердиться в этом мнении.

Можете не трудиться отвечать, если у вас по прежнему не будет окромя эмоций и слепой любви к ZZ никаких технических аргументов.
...
Рейтинг: 0 / 0
ОРБД. сравнение объектных расширений реляционных СУБД.
    #33658919
okdoky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfo okdoky
CREATE TABLE, где имена колонок и таблиц задаются через запросы или переменные. Можно ли это сделать в SQL?

А Вы надетесь что не может? Или уверены? Типа где SQL до Зигзага? Ну еще бы хто придымувыл SQL и хто Зигзаг?
Ить не впервый раз облом Вашим таким наивным мечтам, а Вы все без предварительной проверки пытаетесь предполагать что на SQL нельзя и типа восхитить Зигзагом.

CREATE TABLE table_name AS SELECT .... - известнешая конструкция.

Мож все-таки изучите SQL? Преимущества от этого:
1) не будет такого смешного хвастовства тем что, Зигзаг может перелетать с забора на забор.
2) Поймете что Зигзагу до SQL как до луны, и не будете время тратить на напрсную пропаганду этого Герболайфа.CREATE TABLE A AS SELECT * FROM B на Zigzag выглядит как A = B:. То есть таблица А получает такую же структуру и содержание как B. Нет, конечно я спрашивал о другом. Впрочем, используя динамический SQL или формирование запроса из обычного языка программирования можно выйти из положения. Точно также можно преодолеть любые ограничения имеющиеся в Zigzag.

mir4. Нет крайне полезных реляционных операций группировки (GROUP BY/SUMMARIZE). Согласен, это недостатки Zigzag. Их можно преодолеть программируя на Java/Zigzag. Например создать какую-нибудь универсальную процедуру типа GROUPBY(файл результата, исх. множество, действие над элементами) и вызывать ее. Содержание ее будет простым.

Например, на основе таблицы СОТРУДНИК нужно распечатать таблицу ОТДЕЛ используя подсчет количества сотрудников для каждого отдела.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
СОТРУДНИК ОТДЕЛ
Иванов         20 
Петров         30  
Сидоров      20 

ОТДЕЛ    ЧИСЛЕННОСТЬ
 20           2 
 30          1 
На Java/Zigzag программа будет выглядеть так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Session ss = new Session();
Base b = ss.useBase(“КОМПАНИЯ”);
ss.z(“$x=ОТДЕЛ:”);
Variable vx = ss.var(“$x”);
System.out.println(“ОТДЕЛ    ЧИСЛЕННОСТЬ”);
for (String otd = vx.first(); otd != null; otd = vx.next()) {
  ss.z(“$y=$number(СОТРУДНИК:(“ + otd + “)”)));
  System.out.println(dep + “    ” + ss.get(“$y”));
}

На основе ее можно сделать универсальную процедуру и вызывать подставляя соответствующие параметры.
...
Рейтинг: 0 / 0
ОРБД. сравнение объектных расширений реляционных СУБД.
    #33659169
mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 okdoky

Ну вот, хоть что-то.

Гляжу на ваш последний пост, где вы сравнили с SQL на ZZ две задачи (вверху и внизу поста). Вывод напрашивается такой: на зигзуге в сравнении с SQL некоторые простые задачи решать чуть проще (точнее даже не проще а запись покороче), зато сложные --- гораздо сложней. Ежли так, я лучше выберу SQL.

Кстати, по поводу группировки. На SQL я группировку могу воткнуть внутрь сложного запроса как подвыражение, короче, алгебра в действии. А куда я воткну внутрь запроса вашу хитромудрую подпрограмму? Насколько я вижу, она просто результат куды-то печатает, а это совсем не то же самое. И еще: когда я применяю группировку в SQL, оптимизатор РСУБД может этот запрос оптимизировать, используя ежли надо индексы. А вашем примере никакой оптимизации не наблюдается, тупой перебор.
...
Рейтинг: 0 / 0
ОРБД. сравнение объектных расширений реляционных СУБД.
    #33659535
okdoky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ModelRКак говорится, Зигзаг не читал, но скажу:).
видимо, это означает, что выражения второго порядка непосредственно входят в язык, т.е. можно без использования динамического SQL писать типа
Код: plaintext
Select $(select x from table_columns where tableName ='x' and col_ISPK = 1 ) ...

где $ указывает, что результат следует понимать как имя, а не значение.
По русски - выдать значения колонок, объявленных как PK.Точно. Я уже говорил об этой возможности, только mir так ничего и не понял. Попробую разобрать еще один вполне реальный пример на Zigzag. Допустим, есть одна общая таблица о сотрудниках
СОТРУДНИК; ПОЛ; ЗАРПЛАТА; ОТДЕЛ
и есть более "узкая" таблица о программистах
ПРОГРАММИСТ; ОТДЕЛ
Нам нужно из общей таблицы СОТРУДНИК выдать информацию подобную таблице ПРОГРАММИСТ о вполне конкретных людях имеющихся в переменной $x. Оператор будет выглядеть компактно.
Код: plaintext
$printTable($x, СОТРУДНИК, (ПРОГРАММИСТ));
Если не уверен в точном имени атрибута или таблицы, можно использовать сокращения. Например:
Код: plaintext
$printTable($x, СОТР*, *З*Р*П*);
Когда на месте имени таблицы стоит множество имен или неопределенное имя, может быть выдано несколько таблиц. Например
Код: plaintext
$printTable($x, /Иванов);
Здесь, об объектах $x будут выданы таблицы точно такие же, в каких имеется информация об Иванове.

Не думаю, что перечисленные выше действия легко запрограммировать на PL/SQL. Некоторые (последний пример, где используется значение атрибута - /Иванов) вообще не поддаются SQL. А вот последовательные итерации, как группирование, программируются в цикле Java/Zigzag элементарно. Возможно поэтому разработчики Zigzag такую возможность предоставили прикладным программистам. Последовательный перебор обычно не поддается оптимизации.
...
Рейтинг: 0 / 0
ОРБД. сравнение объектных расширений реляционных СУБД.
    #33659581
Критикан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
okdoky
Когда на месте имени таблицы стоит множество имен или неопределенное имя, может быть выдано несколько таблиц. Например
Код: plaintext
$printTable($x, /Иванов);
Здесь, об объектах $x будут выданы таблицы точно такие же, в каких имеется информация об Иванове.

2 вопроса.
1. В какой прикладной задаче может потребоваться такой маразм - искать по произвольному кол-ву таблиц-колонок в БД.
2. Если например заместо строки "Иванов" нарисовать число "15". Отработает ?
А если у меня в базе есть 2 таблицы с миллионами записей каждая - сколько мне результата ждать ? До пенсии ?
okdoky
Последовательный перебор обычно не поддается оптимизации.
У разработчиков зигзага - вполне возможно. Даже охотно верю.
А вообще, вы фразу "двоичный поиск" или слово "сортировка" когда нибудь слышали ? Вы в курсах что 3-й том "Искусства программирования" Кнута называется "Сортировка и поиск"?
Резюме.
Аффтар выпей йаду и упей сибя ап стену.
...
Рейтинг: 0 / 0
ОРБД. сравнение объектных расширений реляционных СУБД.
    #33659605
Nikolay Kulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZZ - это поделие для написания коротеньких скриптиков, это мы уже поняли.
Уважаемый ты через 2-3 года поймешь, что означает эти перловые (язык такой)
конструкции. Ты неверное ни разе не писал систем в которых больше 500.000 строк кода, что не не так уж и много...

Про то как ты легко на напишешь группировку Пример в студию...

У меня есть классическая схема типа звездочка , продажи в магазине

Покажи мне как будет выглядеть твой простой java код для
решения следующей задачи

Количество сумма продаж за 1 неделю 2 квартала, продуктов в категории ZZZ
в магазинах находящихся в городах с количеством жителей от 100.000 до 300.000

Просто интересно посмотреть...
...
Рейтинг: 0 / 0
ОРБД. сравнение объектных расширений реляционных СУБД.
    #33659813
okdoky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nikolay KulikovZZ - это поделие для написания коротеньких скриптиков, это мы уже поняли.
Уважаемый ты через 2-3 года поймешь, что означает эти перловые (язык такой)
конструкции. Ты неверное ни разе не писал систем в которых больше 500.000 строк кода, что не не так уж и много...

Про то как ты легко на напишешь группировку Пример в студию...

У меня есть классическая схема типа звездочка , продажи в магазине

Покажи мне как будет выглядеть твой простой java код для
решения следующей задачи

Количество сумма продаж за 1 неделю 2 квартала, продуктов в категории ZZZ
в магазинах находящихся в городах с количеством жителей от 100.000 до 300.000

Просто интересно посмотреть...Важно, что все SQL-задачи на Zigzag решаются. А вот обратное, как выяснилось, не всегда. Кстати сортировка выполняется Зигзагом автоматически. На счет ORDER BY как-то не приходилось заботится . Вы бы выразили свой запрос на SQL. Боюсь, что сами не поймете теперь.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
Session ss = new Session();
Base bissue = ss.useBase("Issue");

String script = 
"$x = проданный товар:(категория:ZZZ,
магазин:(город:(количество жит*:100.000^300.000)),
дата:2005-04-01^2005-04-07);";
ss.z(script);

Base bresult = ss.newBase("Result");
Variable vx = ss.var("$x");
for (String tov = vx.first(); tov != null; vx.next()) {
  sum(tov);
}
ss.z("$printTable(ZZZ:)");


void sum(String tov) {
  String store = bissue.attrValue(tov, "магазин");
  String count = bissue.attrValue(tov, "количество");
  String price = bissue.attrValue(tov, "цена");
  String res = "ZZZ:" + store;
  int  sum_count = Integer.parseInt(count);
  float  sum_price = Float.parseFloat(price);
  if (bresult.contains(res)) {
    String count = bresult.attrValue(res, "количество");
    String price = bresult.attrValue(res, "цена");
    sum_count += Integer.parseInt(count);
    sum_price += Float.parseFloat(price);
  }
  ss.z(res + "~()");
  ss.z(res + " ( количество:" + sum_count + ")");
  ss.z(res + " ( цена:" + sum_price + ")");
}
Распечатана буден информация для ZZZ сгруппированная по магазинам. Здесь я сам усложнил задачу. Если бы просмотр осуществлялся последовательно по магазинам, временную таблицу ZZZ можно было не создавать. А выводить суммарные результаты сразу для каждого магазина.
...
Рейтинг: 0 / 0
ОРБД. сравнение объектных расширений реляционных СУБД.
    #33659836
dvm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
dvm
Гость
okdokyВажно, что все SQL-задачи на Zigzag решаются.

Решаться то решается,но сколько кода ради group by.Ужас.Тащим досовскую систему на clippere. От cliper-а плююсь постоянно, ну нету там select from. Цикл блин писать надоть.
...
Рейтинг: 0 / 0
ОРБД. сравнение объектных расширений реляционных СУБД.
    #33659920
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dvm okdokyВажно, что все SQL-задачи на Zigzag решаются.

Решаться то решается,но сколько кода ради group by.Ужас.Тащим досовскую систему на clippere. От cliper-а плююсь постоянно, ну нету там select from. Цикл блин писать надоть.
Вот вот - я тоже примерно так на клиппере-89 в 91-ом писал - очень даже похоже, что тут okdoky на коде ваяет. Вот только ностальжи не пробивает - нет как то желания вернуться к "счастливому детству без SQL".
...
Рейтинг: 0 / 0
ОРБД. сравнение объектных расширений реляционных СУБД.
    #33659927
mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
okdokyВажно, что все SQL-задачи на Zigzag решаются.Скажу больше: все SQL-задачи и на ассемблере решаются. Только кто же их так решает. Тонкий намек понятен?
okdokyА вот обратное, как выяснилось, не всегда.Где ж это выяснилось?
okdokyКстати сортировка выполняется Зигзагом автоматически. На счет ORDER BY как-то не приходилось заботится . Тогда поясните, как задать многокритеральную сортировку (сначала по столбцу B, потом по A, потом по С...) и как задать направление сортировки (убывание/возрастание).

Впрочем, вы все неудобные вопросы просто игнорируете. Я их уже множество сформулировал, а ответа все нет.
...
Рейтинг: 0 / 0
ОРБД. сравнение объектных расширений реляционных СУБД.
    #33660544
Критикан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
okdokyКстати сортировка выполняется Зигзагом автоматически. На счет ORDER BY как-то не приходилось заботится .
Сортировки только для ORDER BY нужны ?
Жжошь....
...
Рейтинг: 0 / 0
ОРБД. сравнение объектных расширений реляционных СУБД.
    #33662507
okdoky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mir okdokyВажно, что все SQL-задачи на Zigzag решаются.Скажу больше: все SQL-задачи и на ассемблере решаются. Только кто же их так решает. Тонкий намек понятен?
okdokyА вот обратное, как выяснилось, не всегда.Где ж это выяснилось?
okdokyКстати сортировка выполняется Зигзагом автоматически. На счет ORDER BY как-то не приходилось заботится . Тогда поясните, как задать многокритеральную сортировку (сначала по столбцу B, потом по A, потом по С...) и как задать направление сортировки (убывание/возрастание).

Впрочем, вы все неудобные вопросы просто игнорируете. Я их уже множество сформулировал, а ответа все нет.Разговор глухих и слепых. Сколько ни показывал и ни выяснял, все напрасно. И JOIN демонстрировал в каком-то топике и на счет целостности говорил. Понятно только то, что на SQL и в виде таблицы? Зигзаг оперирует не только таблицами, но и деревьями. У Zigzag-таблиц записи автоматически упорядочиваются по первому ключевому полю. Вершины на всех уровнях дерева также имеют упорядоченность. Например, на SQL есть таблица A; B; C; D. Я могу сразу создать иерархическую структуру B:A:C(A,B,C,D). Можно опять же в цикле для произвольной сортировки создавать промежуточные таблицы, у которых будет в качестве ключевого поля конкатенация произвольных полей. Распечатывать конечно можно только определенные колонки таблицы. Есть возможность обратного прохода опять же в цикле используя методы last() и back() для обратного упорядочивания.
...
Рейтинг: 0 / 0
ОРБД. сравнение объектных расширений реляционных СУБД.
    #33662607
Nikolay Kulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сравни свою процедуру которую придется переделывать достаточно часто с запросом

Количество сумма продаж за 1 неделю 2 квартала, продуктов в категории ZZZ
в магазинах находящихся в городах с количеством жителей от 100.000 до 300.000

select sh.shopname,pr.productname,Sum(sa.USD),count(sa.USD) from SALES
from shop sh ,sales sa, product pr
where
sh.shopid=sa.shopid and
pr.productid=psa.productid and
pr.category='ZZZ'
sh.citizens# between 100000 and 300000
group by sh.shop,pr.product


Самое удивитиельное, все параметры для группировки можно добавлять и удалять динамически, без написания нового класса на каждый запрос :)

И что мы будем делать если условий будет не 4 как я указал, а 20 в твоем zig-zage

Чем твои промежуточные таблицы отличаются от временных таблиц или Common Table Expression в SQL??? Там тоже иерархии можно делать. Ты из SQL знаешь только select * from и утверждаешь что какие-то возможности в zig-zag. Лучше. Лучше не увидел увидел короче и непонятней...
...
Рейтинг: 0 / 0
ОРБД. сравнение объектных расширений реляционных СУБД.
    #33662615
iliker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
еще раз повторюсь
Я человек ленивый.Ради сортировки в любом порядке по любым полям вместо order by городить отдельную таблицу к терапевту,
группировка циклом - прошлый век.
Про join ничего не скажу не видел.
Ну и напомню :
ОРБД. сравнение объектных расширений реляционных СУБД.

Мне М-систы и zigzag -ники напоминают одного чела который не мог изучить sql и решил написать собственную СУБД на циклах(где-то пробегало)
...
Рейтинг: 0 / 0
ОРБД. сравнение объектных расширений реляционных СУБД.
    #33662705
Ц4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ц4
Гость
okdokyУ Zigzag-таблиц записи автоматически упорядочиваются по первому ключевому полю

А если нужно не по ключевому и в обратном порядке?
...
Рейтинг: 0 / 0
ОРБД. сравнение объектных расширений реляционных СУБД.
    #33662796
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
okdoky
Сколько ни показывал и ни выяснял, все напрасно.

А что же Вы хотели? Зигзаг напрасен в силу природы вещей. Тем более что Вы еще в первых постах прокололись, када выяснилось, что SQL в легкую может то, что Вы надеялись он не может, и заодно признали, что Зигзаг не может (группировок нет, чего там динамического нет), но Зигзагу поможет Джава. После этого моно забыть про Зигзаг навсегда, потому шо Джава поможет кому угодно - ей все равно. Надо было хоть немного ознакомиться с SQL прежде, чем пытаться удивлять Зигзагом. А теперь поезд ушел.

okdoky
Зигзаг оперирует не только таблицами, но и деревьями.

Думаете это хорошо? Т.е. он помесь реляционной и иерархической, но как реляционная хуже реляционных (возможно не может быть вообще отнесен к реляционным), а как иерархическая хуже иерархических?

okdoky
У Zigzag-таблиц записи автоматически упорядочиваются по первому ключевому полю.

Это достижнение. Это так трудно и так нужно. Просто Нобелевскую премию за это давать в пору.

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

В цикле ваще можно что угодно. Для этого однако луче Джава без всякого там Зигзага.

okdoky
Распечатывать конечно можно только определенные колонки таблицы. Есть возможность обратного прохода опять же в цикле используя методы last() и back() для обратного упорядочивания.

Просто вершина в ИТ технологиях. Не любой школьник это сумеет.
...
Рейтинг: 0 / 0
ОРБД. сравнение объектных расширений реляционных СУБД.
    #33662958
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
okdoky У Zigzag-таблиц записи автоматически упорядочиваются по первому ключевому полю.
А их(ключевых полей) что - может быть несколько?
...
Рейтинг: 0 / 0
25 сообщений из 108, страница 3 из 5
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / ОРБД. сравнение объектных расширений реляционных СУБД.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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