Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 8 9 10 11 12 13 14 15 16 [17]
 Re: А зачем нужен этот монстр....... MS SQL?  [new]
vadiminfo
Member

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

Нет. Это значит, что я продекларировал ограничение. А уж сервер выберет, какими операциями его реализовывать.

Если Вы в лоб пишете: "выполнить алгебраическую операцию из реляционной алгебры - соединение", то Вы находитесь в пределах модели. Это дальше от копм структур, алгоритмов. Это просто математика. До алгоритмов еще далеко. А ограничения продекларированные это больше связано с констрэйнами. Кортезиан и выборка это из той же рел алгебры. Другие операции. Т.е. соединение = кортезиан * выборка. Последовательное выполнение алгебраич операций. Ближе к алгоритмам - уже два шага. Мне так кажется)



softwarer

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


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



softwarer

Хм. Скажем так, для опытного разработчика, безусловно, лучше наличие обеих фич и возможность выбора. Но при гипотетическом выборе между диалектом, поддерживающим только LEFT|RIGHT JOIN и диалектом, поддерживающим только (+), лично я бы предпочел второй.



Ну, лучше обе фитчи раз есть разные мнения - вкусы, как Вы сказали.
Я естественно, выбрал бы явные FULL|LEFT|RIGHT JOIN, CROSS JOIN, NATURAL JOIN только из-за того, чтобы явно было написано какие именно оп6ерации рел алгебры должны быть использованы чтобы получить результат. Это просто улучшает стиль, читаемость. Проще потом сопровождать. Это не говоря уже о тех недостатках (+), что Оракл прописал, ну из литератры по БД.


Вот мысли Оракла:
Oracle Corporation recommends that you use the FROM clause OUTER JOIN syntax rather than the Oracle join operator. Outer join queries that use the Oracle join operator (+) are subject to the following rules and restrictions, which do not apply to the FROM clause join syntax:

You cannot specify the (+) operator in a query block that also contains FROM clause join syntax.
The (+) operator can appear only in the WHERE clause or, in the context of left-correlation (that is, when specifying the TABLE clause) in the FROM clause, and can be applied only to a column of a table or view.
If A and B are joined by multiple join conditions, then you must use the (+) operator in all of these conditions. If you do not, then Oracle will return only the rows resulting from a simple join, but without a warning or error to advise you that you do not have the results of an outer join.
The (+) operator does not produce an outer join if you specify one table in the outer query and the other table in an inner query.
You cannot use the (+) operator to outer-join a table to itself, although self joins are valid.

Вот я Вам рекомендую их пробовать. Я теперь на (+) и смотреть даже не могу. Это как с 98 на 2000 винды перейти.
4 ноя 04, 18:34    [1084698]     Ответить | Цитировать Сообщить модератору
 Re: А зачем нужен этот монстр....... MS SQL?  [new]
Alex.Czech
Guest
Запросы с *= в MS SQL в некоторых (нечастых, но встречающихся в жизни) ситуациях выдают непредсказуемые результаты - причем это не ошибка оптимизатора, а именно неоднозначность описания порядка джойнов.

Лично мне одного такого случая хватило, чтобы эту штукень больше никогда в жизни не юзать. Есть ли такое в Оракле, нет ли - не знаю, не пробовал :)
6 ноя 04, 00:37    [1088036]     Ответить | Цитировать Сообщить модератору
 Re: А зачем нужен этот монстр....... MS SQL?  [new]
Shweik
Member

Откуда:
Сообщений: 1744
Alex.Czech
Запросы с *= в MS SQL в некоторых (нечастых, но встречающихся в жизни) ситуациях выдают непредсказуемые результаты - причем это не ошибка оптимизатора, а именно неоднозначность описания порядка джойнов.

Лично мне одного такого случая хватило, чтобы эту штукень больше никогда в жизни не юзать. Есть ли такое в Оракле, нет ли - не знаю, не пробовал :)

Если не сильно влом - кинь плиз примерчик. Интересно
что ты теперь юзаешь.
8 ноя 04, 13:16    [1089683]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 8 9 10 11 12 13 14 15 16 [17]
Все форумы / Сравнение СУБД Ответить