Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Объекты и навигация.
|
|||
|---|---|---|---|
|
#18+
Предлагаю перенести дискуссию по сабж из соседних топиков сюда, ибо и они интересны сами по себе, и сабж видимо волнует. Для начала навигацию я бы определил как перемещение, обход по ребрам ориентированного графа данных. Если в некоей модели данных определен какой-либо орграф данных и навигационные операции, как в CODASYL , то модель поддерживает навигацию. Типичные навигационные операции: Перейти к родителю по связи X, Перейти к первой дочке по связи X, Добавить дочку в конец/начало набора дочек и т.д. Естественно, поддержка навигации требует автоматического обновления кучи указателей, чем и занимется СУБД. В РМД некое подобие ориентированности данным придают внешние ключи. Однако они не являются обязательными, и никак не учитываются в DML. Поэтому можно сказать, что навигация для РМД абсолютно не характерна. Во всяком случае никаких указателей РМД поддерживать не требует. Лично мне хотелось бы знать, какими средствами автоматического обновления указателей и навигации обладают ООСУБД? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2005, 15:00 |
|
||
|
Объекты и навигация.
|
|||
|---|---|---|---|
|
#18+
ModelR Лично мне хотелось бы знать, какими средствами автоматического обновления указателей и навигации обладают ООСУБД? А давайте разберемся, зачем вообще нужны средства автоматического обновления указателей. Ведь логика построения известных мне ООСУБД строится в первую очередь на том, чтобы не портить существующие указатели и, соответственно, избегать необходимости их автоматического обновления. Хотя, разумеется, избежать таких ситуаций в принципе не возможно и ООСУБД обеспечиваются необходимыми средствами, но их типовое применение лежит в области задач администрирования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2005, 15:51 |
|
||
|
Объекты и навигация.
|
|||
|---|---|---|---|
|
#18+
ModelRЛично мне хотелось бы знать, какими средствами автоматического обновления указателей и навигации обладают ООСУБД? ИМХО основное отличие РБД от ОБД - в первой данные хранятся в таблицах, а во второй - в графе. Причем как таблицы, так и граф можно реализовать по разному, соответсвенно как разные реализации РБД так и ОБД могут иметь различные возможности. Пользователя ИМХО в первую очередь будут интересовать возможности модели представления данных. Во вторую очередь - скорость, надежность и прочие технические характеристики. Их можно вытягивать оптимизацией и различными реализациями одной и той же модели данных. Еще важен вопрос стандартизации. В области РБД она уже практически завершилась. А в ОБД все еще царит хаос первооткрывателей ))) Что касается моей версии ООСУБД, то в ней обновление указателей отсутвует по определению, так как все объектные (в БД) указатели являются мягкими. А все указатели времени жизни экземпляра процесса живут в месте с кучей и никогда не сохраняются в БД. Это однако приводит к некоторой потере эффективности (по сравнению с идеальным случаем) так как так же как и РБД мне приходится вести деревья индексов и проводить JOIN по этим деревьям при поиске объектов по их мягким указателям. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2005, 17:09 |
|
||
|
Объекты и навигация.
|
|||
|---|---|---|---|
|
#18+
shuklin Пользователя ИМХО в первую очередь будут интересовать возможности модели представления данных. Во вторую очередь - скорость, надежность и прочие технические характеристики. Ну, нет! Это разработчика интересуют возможности модели , а вот пользователю как-раз это все до лампочки (другое дело, что пользователь, как заказчик, не может не думать о трудоемкости и стоимости разработки). Пользователю важна именно скорость, надежность и прочие технические характеристики . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2005, 18:03 |
|
||
|
Объекты и навигация.
|
|||
|---|---|---|---|
|
#18+
«Навигация» по Толковому словарю В.И. Даля издания 1914 года: «…знание определять точку, место корабля на карте и придя оттуда лучшим путем в назначенное место» ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2005, 18:06 |
|
||
|
Объекты и навигация.
|
|||
|---|---|---|---|
|
#18+
В контексте БД приходилось встречать такие термины как "навигация по подполю" и "навигация по связи". Вряд ли можно говорить о навигации вообще. Нужно именно уточнять способ навигации. При таком подходе, думаю, станет очевидным и смысл, вкладываемый в эти понятия на практике. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2005, 18:12 |
|
||
|
Объекты и навигация.
|
|||
|---|---|---|---|
|
#18+
shuklinИМХО основное отличие РБД от ОБД - в первой данные хранятся в таблицах, а во второй - в графе.Просьба в сугубо теоретическом разговоре быть построже и попонятнее в терминологии. В частности, здесь я не понял о каком именно уровне "хранения" данных вы говорите: логическом или физическом (если вы понимаете разницу). Что касается РМД, на физическом уровне данные вовсе не хранятся в таблицах. Поэтому речь, видимо, идет о логическом уровне, т.е. о модели данных. Забудем пока о том, что строго говоря нет такой вещи как общепризнанная ОМД, допустим она есть. Тогда по вашему в ОМД базовыми понятиями являются: граф, вершина графа, дуга графа (рискну также предположить, что в вершинах хранятся объекты). Конечно же, в таком случае навигация в ОСУБД неизбежна, поскольку набор операция над графами, известный в математике, весьма специфичен и мало пригоден для задач управления данными. Это вынуждает довольно часто вместо декларативных указаний "ЧТО СДЕЛАТЬ", характерных для РСУБД, писать фактически инструкции для ОСУБД "КАК СДЕЛАТЬ". Это по сути и есть главный признак навигационного подхода. В РСУБД мы обычно говорим "приведи корабль туда-то" и все, а навигация выполняется автоматически. В ОСУБД мы довольно часто (для сколько-нибудь нетривиальных случаев) вынуждены "брать штурвал в руки" и вести корабль по извилистым каналам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2005, 10:23 |
|
||
|
Объекты и навигация.
|
|||
|---|---|---|---|
|
#18+
mir shuklinИМХО основное отличие РБД от ОБД - в первой данные хранятся в таблицах, а во второй - в графе.Просьба в сугубо теоретическом разговоре быть построже и попонятнее в терминологии. В частности, здесь я не понял о каком именно уровне "хранения" данных вы говорите: логическом или физическом (если вы понимаете разницу). Что касается РМД, на физическом уровне данные вовсе не хранятся в таблицах. Поэтому речь, видимо, идет о логическом уровне, т.е. о модели данных. Забудем пока о том, что строго говоря нет такой вещи как общепризнанная ОМД, допустим она есть. Тогда по вашему в ОМД базовыми понятиями являются: граф, вершина графа, дуга графа (рискну также предположить, что в вершинах хранятся объекты). Конечно же, в таком случае навигация в ОСУБД неизбежна, поскольку набор операция над графами, известный в математике, весьма специфичен и мало пригоден для задач управления данными. Это вынуждает довольно часто вместо декларативных указаний "ЧТО СДЕЛАТЬ", характерных для РСУБД, писать фактически инструкции для ОСУБД "КАК СДЕЛАТЬ". Это по сути и есть главный признак навигационного подхода. В РСУБД мы обычно говорим "приведи корабль туда-то" и все, а навигация выполняется автоматически. В ОСУБД мы довольно часто (для сколько-нибудь нетривиальных случаев) вынуждены "брать штурвал в руки" и вести корабль по извилистым каналам. рискну вмешаться : хорошее сравнение ! давно работаем на CACHE (MSM) - лет 15 там деревья(графы) и навигация "со штурвалом в крепких руках" поэтому быстро-точно, попутно можно выполнять много чего еще. видимо на автомате (автоматическая коробка передач, автопилот, PCУБД ) расход горючего на 10 % больше а жизнь скучнее (хотя иногда залетает не туда :) ------------- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2005, 10:44 |
|
||
|
Объекты и навигация.
|
|||
|---|---|---|---|
|
#18+
mir... вместо декларативных указаний "ЧТО СДЕЛАТЬ", характерных для РСУБД, писать фактически инструкции для ОСУБД "КАК СДЕЛАТЬ". Это по сути и есть главный признак навигационного подхода. В РСУБД мы обычно говорим "приведи корабль туда-то" и все, а навигация выполняется автоматически. В ОСУБД мы довольно часто (для сколько-нибудь нетривиальных случаев) вынуждены "брать штурвал в руки" и вести корабль по извилистым каналам. А вам не кажется, что под "автоматической навигацией" в случае РСУБД понимается банальный перебор всех возможных положений корабля вплоть до того момента пока мы не обнаруживаем совпадение его текущего положения с точкой назначения. Т.е. "навигации" как таковой и нет - есть систематическое прочесывание моря. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2005, 10:55 |
|
||
|
Объекты и навигация.
|
|||
|---|---|---|---|
|
#18+
Alexey RovdoА вам не кажется, что под "автоматической навигацией" в случае РСУБД понимается банальный перебор всех возможных положений корабля вплоть до того момента пока мы не обнаруживаем совпадение его текущего положения с точкой назначения. Т.е. "навигации" как таковой и нет - есть систематическое прочесывание моря.Нет, ну нельзя же НАСТОЛЬКО подставляться... Уже даже не смешно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2005, 12:25 |
|
||
|
Объекты и навигация.
|
|||
|---|---|---|---|
|
#18+
mir Конечно же, в таком случае навигация в ОСУБД неизбежна, поскольку набор операция над графами, известный в математике, весьма специфичен и мало пригоден для задач управления данными. Это вынуждает довольно часто вместо декларативных указаний "ЧТО СДЕЛАТЬ", характерных для РСУБД, писать фактически инструкции для ОСУБД "КАК СДЕЛАТЬ". Это по сути и есть главный признак навигационного подхода. В РСУБД мы обычно говорим "приведи корабль туда-то" и все, а навигация выполняется автоматически. Ваш тезис верен только в лабораторных условиях. В реальной жизни же в запросе приходится соединять десятки таблиц для получения результата. А JOIN является прямой аналогией навигации. И в этом случае РМД проигрывает ОБД из за наличия ограничений в модели данных и как следсвие - из за возростания колличества этих JOIN. Тоесть "автоматическая" навигация в РБД фактически приводит к усложнению запросов. mirВ ОСУБД мы довольно часто (для сколько-нибудь нетривиальных случаев) вынуждены "брать штурвал в руки" и вести корабль по извилистым каналам. В нетривиальных случаях в РСУБД приходится выруливать из лабиринтов JOIN между сотнями таблиц, наличие которых оправданно исключительно ограничениями реляционной модели. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2005, 12:38 |
|
||
|
Объекты и навигация.
|
|||
|---|---|---|---|
|
#18+
Вот ведь интересный вопрос: является ли на самом деле JOIN аналогом навигации? Смею утверждать, что ставить здесь знак эквивалентности не верно. Действительно, существуют частные случаи использования JOIN, которые во многом похожи на использование навигации, но в общем случае - JOIN не эквивалентен навигации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2005, 12:52 |
|
||
|
Объекты и навигация.
|
|||
|---|---|---|---|
|
#18+
Alexey RovdoА давайте разберемся, зачем вообще нужны средства автоматического обновления указателей. Указатели в сетевых системах поддерживали связи. Типичный узел мог иметь например указатели на: -родителя, -первую дочку, -соседа слева, -соседа справа. При запросе пользователем операции "Добавить дочку Z в начало набора дочек родителя X" СУБД брала на себя все необходимые вычисления указателей в т.ч. перестроение цепочки уже имеющихся дочек. Правильно ли я понимаю, что те ОО системы, о которых вы говорите, оставляют все эти заботы за пользователем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2005, 13:05 |
|
||
|
Объекты и навигация.
|
|||
|---|---|---|---|
|
#18+
shuklin В реальной жизни же в запросе приходится соединять десятки таблиц для получения результата. А JOIN является прямой аналогией навигации. И в этом случае РМД проигрывает ОБД из за наличия ограничений в модели данных и как следсвие - из за возростания колличества этих JOIN. Тоесть "автоматическая" навигация в РБД фактически приводит к усложнению запросов. В нетривиальных случаях в РСУБД приходится выруливать из лабиринтов JOIN между сотнями таблиц, наличие которых оправданно исключительно ограничениями реляционной модели. В случае эквисоединений действительно - навигационная система быстрее отработает указатель чем реляционная найдет запись даже через индексы. Однако возможности JOIN неизмеримо шире. Более того, мы оставляем за системой даже вопрос а с какой таблицы начать поиск. Так что аналогией и то не совсем прямой, является только один вид JOINов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2005, 13:19 |
|
||
|
Объекты и навигация.
|
|||
|---|---|---|---|
|
#18+
Alexey RovdoВот ведь интересный вопрос: является ли на самом деле JOIN аналогом навигации? Смею утверждать, что ставить здесь знак эквивалентности не верно. Действительно, существуют частные случаи использования JOIN, которые во многом похожи на использование навигации, но в общем случае - JOIN не эквивалентен навигации. Согласен, что формальной эквивалентности нет. Однако в общесмысловом плане прямая навигация очень близка к outer join причем если взять ОБД с мягкими указателями, то близка не только по функции но и по реализации - и там и там будет аналог поиска ключа в индексе, хэш таблице или в другой структуре позволяющей провести поиск за время, не зависимое от колличества записей/объектов в БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2005, 19:04 |
|
||
|
Объекты и навигация.
|
|||
|---|---|---|---|
|
#18+
ModelRПравильно ли я понимаю, что те ОО системы, о которых вы говорите, оставляют все эти заботы за пользователем? Буду говорить за свою ООБД. Разумеется у пользователя забот с этим нет. В апи входят средства по поддержке работы с деревьями, связями, узлами и прочим. Так как база объектная, и объекты реализуются на C# для платформы .NET то деревья на основе parent-child связей пользователь может создовать из объектов собственных классов в том виде, который необходим для решения данной задачи. Каждый объект имеет свой ID. После присвоения этого ID объекту этот ID не изменяется на протяжении жизни объекта. При этом запуск и остановка приложения или ядра БД на этот ID уже не влияет. Этот ID нужно считать указателем на объект, хотя на самом деле это не указатель а номер узла в дереве индексов. Дерево 3х уровневое, и поиск реального указателя на объект по его ID проводится за 3 операции выборки узла индекса. При необходимости обратится к объекту напрямую, придется восспользоваться АПИ системы и получить указатель на конкретный экземпляр объекта по его ID. Сохранять же настоящие указатели в процессе десериализации объекта нельзя. Нужно сохранять его ID. Например Код: plaintext 1. В связи с этим, в моей реализации для .NET разработчик будет иметь некоторое неудобство. В место или дополнительно к реальным указателям на .NET объекты в Fields придется хранить и эти ID. Если пользоваться АПИ для поддержки раскрашенного орграфа, то сериализация-десериализация объектов производится автоматически и разработчику обращать внимание на нее нет необходимости. Однако в этом случае будет нельзя иметь в классе поля которые сереализуются/десерелезуются в БД. В место полей в .NET классе будет необходимо хранить значения пропертей в аттрибутах узла дерева объектов (тот же апи AttachConnector(attributeID); Итак, учитывая, что ID объекта не меняется все время жизни этого объекта, то СУБД нет необходимости модифицировать или корректировать указатели на другие объекты хранящиеся в экземплярах объектов. Граф объектов управляется посредсвом АПИ. Рядовому разработчику лезть в детали реализации индексов, деревьев и узлов графа вовсе не обязательно. Тем более что вся низкоуровневая механика сделана на C а пользовательские объекты реализуются на C# ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2005, 19:39 |
|
||
|
Объекты и навигация.
|
|||
|---|---|---|---|
|
#18+
shuklinВаш тезис верен только в лабораторных условиях. В реальной жизни же в запросе приходится соединять десятки таблиц для получения результата. А JOIN является прямой аналогией навигации. И в этом случае РМД проигрывает ОБД из за наличия ограничений в модели данных и как следсвие - из за возростания колличества этих JOIN. Тоесть "автоматическая" навигация в РБД фактически приводит к усложнению запросов. [quot shuklin]Родной мой, я-то как раз практик, что позволяет мне усомниться именно в вашем практическом опыте. Во-первых, соединения десятков таблиц крайне редки. Во-вторых, JOIN не является аналогией навигации, ни прямой, ни непрямой. Вы уже не впервые какие-то высказывания делаете, которые раз за разом выдают ваше невежество. [quot shuklin]В нетривиальных случаях в РСУБД приходится выруливать из лабиринтов JOIN между сотнями таблиц, наличие которых оправданно исключительно ограничениями реляционной модели.Очередной набор из безосновательных и невежественных утверждений. Во-первых, JOIN между сотнями таблиц встречается только в воспаленном сознании. Либо при банальном неумении работать, что опять же характерно для воспаленного сознания. Во-вторых, наличие таблиц в реляционной модели -- это ее имманентное свойство, а не ее "ограничение". Ваша последняя фраза по отсутствию смысла просто бьет все рекорды. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2005, 07:51 |
|
||
|
Объекты и навигация.
|
|||
|---|---|---|---|
|
#18+
Парадон, перепосылаю. shuklinВаш тезис верен только в лабораторных условиях. В реальной жизни же в запросе приходится соединять десятки таблиц для получения результата. А JOIN является прямой аналогией навигации. И в этом случае РМД проигрывает ОБД из за наличия ограничений в модели данных и как следсвие - из за возростания колличества этих JOIN. Тоесть "автоматическая" навигация в РБД фактически приводит к усложнению запросов. Родной мой, я-то как раз практик, что позволяет мне усомниться именно в вашем практическом опыте. Во-первых, соединения десятков таблиц крайне редки. Во-вторых, JOIN не является аналогией навигации, ни прямой, ни непрямой. Вы уже не впервые какие-то высказывания делаете, которые раз за разом выдают ваше невежество. Далее, наличие "ограничений в РМД" само по себе ничего не значит. Что за ограничения? Есть ли они? Вредны ли они или полезны? Прекратите постулировать, начните доказывать. Ну, и фраза ""автоматическая" навигация в РБД фактически приводит к усложнению запросов" опять выдает, что вы этих запросов не писали, с реальными системами не работали. shuklinВ нетривиальных случаях в РСУБД приходится выруливать из лабиринтов JOIN между сотнями таблиц, наличие которых оправданно исключительно ограничениями реляционной модели.Очередной набор из безосновательных и невежественных утверждений. Во-первых, JOIN между сотнями таблиц встречается только в воспаленном сознании. Либо при банальном неумении работать, что опять же характерно для воспаленного сознания. Во-вторых, наличие таблиц в реляционной модели -- это ее имманентное свойство, а не ее "ограничение". Ваша последняя фраза по отсутствию смысла просто бьет все рекорды. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2005, 07:56 |
|
||
|
Объекты и навигация.
|
|||
|---|---|---|---|
|
#18+
К сожалению, г-н shuklin, занявшись разработкой ООСУБД не посчитал нужным детально изучить историю развития и практику использования этих систем в мире. Поэтому раз за разом наступает на те же грабли, на которые наступали разработчики ООСУБД последние 15 лет. Но эти грабли не прошли для них даром, а вот у Cerebrum все еще впереди. Неверно отождествлять навигацию с JOIN и неверно сопоставлять запросы на декларативных языках SQL и OQL (или OQL-подобных). На мой взгляд нужно понять одну простую вещь - есть доступ к данным по значению, а есть доступ по ссылке. И вот в РСУБД существует только доступ по значению. Т.е. мы ищем данные, на значения которых наложены определенные условия (и операция JOIN ON в этом смысле ничем не отличается от SELECT WHERE). В ООСУБД существует и вторая возможность - доступ по ссылке. Вот его то и принято называть навигацией. Но чтобы осуществлять навигацию нам нужна "точка входа", т.е. мы должны найти некий корневой объект и далее следовать по ссылкам. Чтобы найти корневой объект в ООСУБД может использоваться либо именование объектов, либо поиск по значению (т.е. мы сначала ищем этот корневой объект, а потом занимаемся навигацией). Особенности РСУБД однозначно стимулируют разработчиков к минимизации (в пределах разумного) числа таблиц в базе данных и всяческого избежания ситуаций с сотнями связанных таблиц и большим числом JOIN в запросах. Именно поэтому правы те, кто говорит, что ситуация с сотней JOIN практически нереальна в жизни. Такая база окажется просто не работоспособной, а разработчика надо гнать в шею. Но ведь нужно понимать, что это все не от хорошей жизни. Именно с использованием ООСУБД можно забыть о проблеме упрощения модели данных и создавать системы с сотнями, тысячами и более классов и связанных объектов. Просто это другая идеология и другие принципы работы (преимущественно пресловутая "навигация"), которые, разумеется, применимы только в системах определенных видов и оказываются неудобны в других системах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2005, 10:24 |
|
||
|
Объекты и навигация.
|
|||
|---|---|---|---|
|
#18+
Ага, серебрянная пуля [с пониманием] Черт, какой смайлик выбрать, чтобы изобразить Пинноккио ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2005, 10:42 |
|
||
|
Объекты и навигация.
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan)Ага, серебрянная пуля [с пониманием] Черт, какой смайлик выбрать, чтобы изобразить Пинноккио ? Друх не писал на объектных языках ) Код внизу - начальный, примерно независит от того какая база: Сonnection conn = ...; ResultSet result = conn.executeQuery("SELECT FROM Orders o WHERE o.suppyDate < '2005-11-03'") ; Пусть надо получить, ( одна из ДЕСЯТКА последующих операций с Ордером), список уникальных товаров в заказе. В моем понимании навигация это следуещее (в Java формате например): HashSet set = new HashSet(); while(result.next()) { Order o = (Order)result.nextObject(); for (int i = 0; i < o.getOrderLines().length; i++ ) { set.add(o.getOrderLines() .getCommodity()); } } Т.е. взятие дочерних обектов "просто так" - o.getOrderLines(), getCommodity() На чистом SQL надо было бы сделать следуещее: ResultSet result = conn.executeQuery("SELECT DISTINCT c.* FROM Orders o LEFT JOIN OrderLines l ON l.orderId = o.id LEFT JOIN Commodity c ON l.commodityId = c.id WHERE o.suppyDate < '2005-11-03'") ; HashSet set = new HashSet(); while(result.next()) { Commodity c = (Order)result.nextObject(); set.add( c ); } т.е. любые объекты (ну, наборы полей..) надо брать из базы запросами. С точки зрения программистов, слишком много неудобств. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2005, 12:07 |
|
||
|
Объекты и навигация.
|
|||
|---|---|---|---|
|
#18+
Гмм не вижу неудобств. И что есть объектные языки ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2005, 12:13 |
|
||
|
Объекты и навигация.
|
|||
|---|---|---|---|
|
#18+
To Dimonische А кто мешает запихнуть этот селект в метод getCommodity? Или Вы думаете, что этот метод просто так, как фокусник из рукава, достаёт требуемую информацию? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2005, 12:49 |
|
||
|
Объекты и навигация.
|
|||
|---|---|---|---|
|
#18+
DimonischeСonnection conn = ...; ResultSet result = conn.executeQuery("SELECT FROM Orders o WHERE o.suppyDate < '2005-11-03'") ; Пусть надо получить, ( одна из ДЕСЯТКА последующих операций с Ордером), список уникальных товаров в заказе. В моем понимании навигация это следуещее (в Java формате например): HashSet set = new HashSet(); while(result.next()) { Order o = (Order)result.nextObject(); for (int i = 0; i < o.getOrderLines().length; i++ ) { set.add(o.getOrderLines() .getCommodity()); } } Это навигация уже после получения данных из базы. Коренное отличие этого стиля - перераспределение нагрузки с сервера БД на приложение, неважно написанно на java или Коболе. Иногда это кстати полезно. Вопрос же касался именно навигационных запросов к БД. Типа Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2005, 13:22 |
|
||
|
Объекты и навигация.
|
|||
|---|---|---|---|
|
#18+
Павел Воронцов To Dimonische А кто мешает запихнуть этот селект в метод getCommodity? Или Вы думаете, что этот метод просто так, как фокусник из рукава, достаёт требуемую информацию? Э, Павел, вы издеваетесь наверное? Можно запихнуть селект. Только таких классов у меня в программе ~ 500. И методов по 5 на класс. Ту факинг экспенсив. Я уже не говорю о том, что выполнять такие запросы в цикле - за это я лично уволил человека 2 года назад. Не за конкретно это конечно, но просто это стало последней каплей. Этот же метод реализованный базон данных, именно делает ПРЯМУЮ навигацию. По моему так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2005, 13:24 |
|
||
|
|

start [/forum/topic.php?fid=35&msg=33243186&tid=1553784]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
70ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
77ms |
get tp. blocked users: |
1ms |
| others: | 241ms |
| total: | 439ms |

| 0 / 0 |
