Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3] 4 5   вперед  Ctrl      все
 Re: ОРБД. сравнение объектных расширений реляционных СУБД.  [new]
-------------
Guest
okdoky
vadiminfo
okdoky

Не забывайте, что Zigzag – ОРСУБД.

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


okdoky, сам-то понял, на какую х#$ню ссылка?
9 апр 06, 13:48    [2540264]     Ответить | Цитировать Сообщить модератору
 Re: ОРБД. сравнение объектных расширений реляционных СУБД.  [new]
vadiminfo
Member

Откуда: Обнинск
Сообщений: 4802
okdoky

На счет Оракла и Клиппера не знаю, но взгляните на сайт Most Popular in Database. Sav ZAPI (старая версия Sav Zigzag) тягается с MySQL, PostgreSQL и SQL Server . Согласен, это произошло недавно, но такие темпы меня настораживают самого.

На сайт взглянул. Там какие то левые дешевые тулсы в основном, а не сами ОРСУБД. Оттого Вашей настороженности нет никаких причин. Скорее наоборот, надо было настораживаться када сделали такую ошибку как купилсь на использование Зигзага. Вас так могут развести и на бесплатные утюги и прочее на улице. Надо быть все-таки немножечко осмотрительнее. Сами знаете в какое время и где живем.
9 апр 06, 16:13    [2540471]     Ответить | Цитировать Сообщить модератору
 Re: ОРБД. сравнение объектных расширений реляционных СУБД.  [new]
mir
Member

Откуда: Томск
Сообщений: 1027
Тов. 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, просто укажите источники, где я могу прочитать о верном положении дел.
10 апр 06, 07:43    [2541631]     Ответить | Цитировать Сообщить модератору
 Re: ОРБД. сравнение объектных расширений реляционных СУБД.  [new]
okdoky
Member

Откуда:
Сообщений: 349
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 существуют не сами по себе в системных таблицах, а тесно связаны с самими данными (например со значениями атрибутов) и могут выводится из них. Здесь обобщение действительно играет важную роль.
10 апр 06, 19:21    [2545168]     Ответить | Цитировать Сообщить модератору
 Re: ОРБД. сравнение объектных расширений реляционных СУБД.  [new]
###
Guest
okdoky
mir
На сколько я понимаю, бла-бла-бла...

Блин, и ни слова по делу... Любопытно, он (okdoky) кроме себя кого-нибудь слышит?
10 апр 06, 20:25    [2545325]     Ответить | Цитировать Сообщить модератору
 Re: ОРБД. сравнение объектных расширений реляционных СУБД.  [new]
No comments
Guest
автор
авторы не ставили перед собой цель дать какие-либо определения используемым терминам


No comments
10 апр 06, 20:30    [2545332]     Ответить | Цитировать Сообщить модератору
 Re: ОРБД. сравнение объектных расширений реляционных СУБД.  [new]
vadiminfo
Member

Откуда: Обнинск
Сообщений: 4802
okdoky

CREATE TABLE, где имена колонок и таблиц задаются через запросы или переменные. Можно ли это сделать в SQL?

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

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

Мож все-таки изучите SQL? Преимущества от этого:
1) не будет такого смешного хвастовства тем что, Зигзаг может перелетать с забора на забор.
2) Поймете что Зигзагу до SQL как до луны, и не будете время тратить на напрсную пропаганду этого Герболайфа.
10 апр 06, 21:32    [2545452]     Ответить | Цитировать Сообщить модератору
 Re: ОРБД. сравнение объектных расширений реляционных СУБД.  [new]
ModelR
Member

Откуда: Нижний Новгород
Сообщений: 1798
Как говорится, Зигзаг не читал, но скажу:).
видимо, это означает, что выражения второго порядка непосредственно входят в язык, т.е. можно без использования динамического SQL писать типа
Select $(select x from table_columns where tableName ='x' and col_ISPK =1) ...

где $ указывает, что результат следует понимать как имя, а не значение.
По русски - выдать значения колонок, объявленных как PK.
11 апр 06, 09:48    [2546405]     Ответить | Цитировать Сообщить модератору
 Re: ОРБД. сравнение объектных расширений реляционных СУБД.  [new]
mir
Member

Откуда: Томск
Сообщений: 1027
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 никаких технических аргументов.
11 апр 06, 14:39    [2548015]     Ответить | Цитировать Сообщить модератору
 Re: ОРБД. сравнение объектных расширений реляционных СУБД.  [new]
okdoky
Member

Откуда:
Сообщений: 349
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.

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

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

ОТДЕЛ    ЧИСЛЕННОСТЬ
20         2
30        1
На Java/Zigzag программа будет выглядеть так:
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”));
}

На основе ее можно сделать универсальную процедуру и вызывать подставляя соответствующие параметры.
11 апр 06, 16:17    [2548623]     Ответить | Цитировать Сообщить модератору
 Re: ОРБД. сравнение объектных расширений реляционных СУБД.  [new]
mir
Member

Откуда: Томск
Сообщений: 1027
2 okdoky

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

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

Кстати, по поводу группировки. На SQL я группировку могу воткнуть внутрь сложного запроса как подвыражение, короче, алгебра в действии. А куда я воткну внутрь запроса вашу хитромудрую подпрограмму? Насколько я вижу, она просто результат куды-то печатает, а это совсем не то же самое. И еще: когда я применяю группировку в SQL, оптимизатор РСУБД может этот запрос оптимизировать, используя ежли надо индексы. А вашем примере никакой оптимизации не наблюдается, тупой перебор.
11 апр 06, 17:19    [2549041]     Ответить | Цитировать Сообщить модератору
 Re: ОРБД. сравнение объектных расширений реляционных СУБД.  [new]
okdoky
Member

Откуда:
Сообщений: 349
ModelR
Как говорится, Зигзаг не читал, но скажу:).
видимо, это означает, что выражения второго порядка непосредственно входят в язык, т.е. можно без использования динамического SQL писать типа
Select $(select x from table_columns where tableName ='x' and col_ISPK =1) ...

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

Не думаю, что перечисленные выше действия легко запрограммировать на PL/SQL. Некоторые (последний пример, где используется значение атрибута - /Иванов) вообще не поддаются SQL. А вот последовательные итерации, как группирование, программируются в цикле Java/Zigzag элементарно. Возможно поэтому разработчики Zigzag такую возможность предоставили прикладным программистам. Последовательный перебор обычно не поддается оптимизации.
11 апр 06, 19:23    [2549741]     Ответить | Цитировать Сообщить модератору
 Re: ОРБД. сравнение объектных расширений реляционных СУБД.  [new]
Критикан
Guest
okdoky

Когда на месте имени таблицы стоит множество имен или неопределенное имя, может быть выдано несколько таблиц. Например
$printTable($x, /Иванов);
Здесь, об объектах $x будут выданы таблицы точно такие же, в каких имеется информация об Иванове.

2 вопроса.
1. В какой прикладной задаче может потребоваться такой маразм - искать по произвольному кол-ву таблиц-колонок в БД.
2. Если например заместо строки "Иванов" нарисовать число "15". Отработает ?
А если у меня в базе есть 2 таблицы с миллионами записей каждая - сколько мне результата ждать ? До пенсии ?
okdoky

Последовательный перебор обычно не поддается оптимизации.

У разработчиков зигзага - вполне возможно. Даже охотно верю.
А вообще, вы фразу "двоичный поиск" или слово "сортировка" когда нибудь слышали ? Вы в курсах что 3-й том "Искусства программирования" Кнута называется "Сортировка и поиск"?
Резюме.
Аффтар выпей йаду и упей сибя ап стену.
11 апр 06, 19:55    [2549864]     Ответить | Цитировать Сообщить модератору
 Re: ОРБД. сравнение объектных расширений реляционных СУБД.  [new]
Nikolay Kulikov
Member

Откуда: Москва
Сообщений: 607
ZZ - это поделие для написания коротеньких скриптиков, это мы уже поняли.
Уважаемый ты через 2-3 года поймешь, что означает эти перловые (язык такой)
конструкции. Ты неверное ни разе не писал систем в которых больше 500.000 строк кода, что не не так уж и много...

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

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

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

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

Просто интересно посмотреть...
11 апр 06, 20:13    [2549922]     Ответить | Цитировать Сообщить модератору
 Re: ОРБД. сравнение объектных расширений реляционных СУБД.  [new]
okdoky
Member

Откуда:
Сообщений: 349
Nikolay Kulikov
ZZ - это поделие для написания коротеньких скриптиков, это мы уже поняли.
Уважаемый ты через 2-3 года поймешь, что означает эти перловые (язык такой)
конструкции. Ты неверное ни разе не писал систем в которых больше 500.000 строк кода, что не не так уж и много...

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

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

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

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

Просто интересно посмотреть...
Важно, что все SQL-задачи на Zigzag решаются. А вот обратное, как выяснилось, не всегда. Кстати сортировка выполняется Зигзагом автоматически. На счет ORDER BY как-то не приходилось заботится . Вы бы выразили свой запрос на SQL. Боюсь, что сами не поймете теперь.
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 можно было не создавать. А выводить суммарные результаты сразу для каждого магазина.
11 апр 06, 23:30    [2550302]     Ответить | Цитировать Сообщить модератору
 Re: ОРБД. сравнение объектных расширений реляционных СУБД.  [new]
dvm
Guest
okdoky
Важно, что все SQL-задачи на Zigzag решаются.


Решаться то решается,но сколько кода ради group by.Ужас.Тащим досовскую систему на clippere. От cliper-а плююсь постоянно, ну нету там select from. Цикл блин писать надоть.
12 апр 06, 00:21    [2550349]     Ответить | Цитировать Сообщить модератору
 Re: ОРБД. сравнение объектных расширений реляционных СУБД.  [new]
ASCRUS
Member

Откуда: МО Электросталь
Сообщений: 5994
dvm
okdoky
Важно, что все SQL-задачи на Zigzag решаются.


Решаться то решается,но сколько кода ради group by.Ужас.Тащим досовскую систему на clippere. От cliper-а плююсь постоянно, ну нету там select from. Цикл блин писать надоть.

Вот вот - я тоже примерно так на клиппере-89 в 91-ом писал - очень даже похоже, что тут okdoky на коде ваяет. Вот только ностальжи не пробивает - нет как то желания вернуться к "счастливому детству без SQL".
12 апр 06, 06:51    [2550535]     Ответить | Цитировать Сообщить модератору
 Re: ОРБД. сравнение объектных расширений реляционных СУБД.  [new]
mir
Member

Откуда: Томск
Сообщений: 1027
okdoky
Важно, что все SQL-задачи на Zigzag решаются.
Скажу больше: все SQL-задачи и на ассемблере решаются. Только кто же их так решает. Тонкий намек понятен?
okdoky
А вот обратное, как выяснилось, не всегда.
Где ж это выяснилось?
okdoky
Кстати сортировка выполняется Зигзагом автоматически. На счет ORDER BY как-то не приходилось заботится .
Тогда поясните, как задать многокритеральную сортировку (сначала по столбцу B, потом по A, потом по С...) и как задать направление сортировки (убывание/возрастание).

Впрочем, вы все неудобные вопросы просто игнорируете. Я их уже множество сформулировал, а ответа все нет.
12 апр 06, 07:06    [2550542]     Ответить | Цитировать Сообщить модератору
 Re: ОРБД. сравнение объектных расширений реляционных СУБД.  [new]
Критикан
Guest
okdoky
Кстати сортировка выполняется Зигзагом автоматически. На счет ORDER BY как-то не приходилось заботится .

Сортировки только для ORDER BY нужны ?
Жжошь....
12 апр 06, 11:32    [2551638]     Ответить | Цитировать Сообщить модератору
 Re: ОРБД. сравнение объектных расширений реляционных СУБД.  [new]
okdoky
Member

Откуда:
Сообщений: 349
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() для обратного упорядочивания.
12 апр 06, 19:27    [2555267]     Ответить | Цитировать Сообщить модератору
 Re: ОРБД. сравнение объектных расширений реляционных СУБД.  [new]
Nikolay Kulikov
Member

Откуда: Москва
Сообщений: 607
Сравни свою процедуру которую придется переделывать достаточно часто с запросом

Количество сумма продаж за 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. Лучше. Лучше не увидел увидел короче и непонятней...
12 апр 06, 20:05    [2555415]     Ответить | Цитировать Сообщить модератору
 Re: ОРБД. сравнение объектных расширений реляционных СУБД.  [new]
iliker
Member

Откуда:
Сообщений: 21
еще раз повторюсь
Я человек ленивый.Ради сортировки в любом порядке по любым полям вместо order by городить отдельную таблицу к терапевту,
группировка циклом - прошлый век.
Про join ничего не скажу не видел.
Ну и напомню :
ОРБД. сравнение объектных расширений реляционных СУБД.

Мне М-систы и zigzag -ники напоминают одного чела который не мог изучить sql и решил написать собственную СУБД на циклах(где-то пробегало)
12 апр 06, 20:08    [2555424]     Ответить | Цитировать Сообщить модератору
 Re: ОРБД. сравнение объектных расширений реляционных СУБД.  [new]
Ц4
Guest
okdoky
У Zigzag-таблиц записи автоматически упорядочиваются по первому ключевому полю


А если нужно не по ключевому и в обратном порядке?
12 апр 06, 20:45    [2555568]     Ответить | Цитировать Сообщить модератору
 Re: ОРБД. сравнение объектных расширений реляционных СУБД.  [new]
vadiminfo
Member

Откуда: Обнинск
Сообщений: 4802
okdoky

Сколько ни показывал и ни выяснял, все напрасно.

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

okdoky

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

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

okdoky

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

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

okdoky

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

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

okdoky

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

Просто вершина в ИТ технологиях. Не любой школьник это сумеет.
12 апр 06, 21:44    [2555705]     Ответить | Цитировать Сообщить модератору
 Re: ОРБД. сравнение объектных расширений реляционных СУБД.  [new]
SergSuper
Member

Откуда: SPb
Сообщений: 5488
okdoky
У Zigzag-таблиц записи автоматически упорядочиваются по первому ключевому полю.

А их(ключевых полей) что - может быть несколько?
13 апр 06, 00:46    [2556083]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3] 4 5   вперед  Ctrl      все
Все форумы / Сравнение СУБД Ответить