Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 15 16 17 18 19 20 21 22 [23] 24   вперед  Ctrl
 Re: Покритикуйте Оракл 10г  [new]
dmidek
Member

Откуда: Киев - Дортмунд
Сообщений: 122060
drev

Может быть предупреждение "изменился смысл идентификатора" помогло бы?


Давайте подумаем, а ГДЕ его делать ?
Вот крутится софт, Вы добавили в таблицу новую колонку (патчем например).
Где же этому предупреждению произойти ?
И потом, второй вопрос а КАК это засечь ?

Автоматический разбор всего софта с
1. Вычленением переменных- "омонимов"
2. Определением их локальной принадлежности к колонкам измененной таблицы .

А если не дай Бог, динамический SQL со считыванием имени колонки / таблицы из
таблицы ? Да, как правило неважная практика, но ее нельзя сбрасывать со
счетов ...
27 июл 07, 14:49    [4446087]     Ответить | Цитировать Сообщить модератору
 Re: Покритикуйте Оракл 10г  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
locky

MElin wrote:
> Ну вот. Аргументы закончились, самое время переходить на личности. Очень
> хороший прием демагогов.
ну... Есть Oracle DBA/Oracle developer, а есть - Ораклисты :)
Первые - обычные нормальные люди, вторые - "необычные" и - далее по
тексту :).


Простите, а МЕНЯ вы лично к какой категории относите ?
27 июл 07, 14:51    [4446109]     Ответить | Цитировать Сообщить модератору
 Re: Покритикуйте Оракл 10г  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
drev
Проблема, которую мы сейчас обсуждаем, вызвана тем, что легко изменить смысл оператора, не меняя текст процедуры.

В любом нормальном ОО языке такой ситуации возникнуть бы не могло. Разработчик имеет права полагаться только на контракт метода.


Из Ваших слов можно сделать вывод, что C++ и (боже упаси) Perl НЕ относятся к категории "нормальных" ОО языков. Потрудитесь сформулировать (внятно) критерий нормальности или определите множество "нормальных" языков перечислением.
27 июл 07, 14:55    [4446136]     Ответить | Цитировать Сообщить модератору
 Re: Покритикуйте Оракл 10г  [new]
MElin
Member

Откуда: Йо-бург
Сообщений: 84
ЛП
Бред какой-то
Есть явная кривость - а фанаты оракла пытаются доказать, что это хорошо и правильно :)

Все равно что в ответ на слова "слабая типизация - плохо и багоопасно" какие-нибудь фанаты Perl начали бы утверждать, что дескать "а вы переменные именуйте с префиксами, с багами надо бороться корпоративными стандартами и организационными мероприятиями, отсутствие такой возможности есть скудость компилятора, и вообще многие люди не готовы к свободе"


Есть у тебя си-шарп. есть у тебя TSQL. Нравится - НАСЛАЖДАЙСЯ.
Нравиться на форуме развешивать ярлыки и заниматься демагогией.... ну в принцыпе для этого то форум и создан.

Только от не надо удивляцца, когда вдруг и на себе обнаружишь вполне заслуженный ярлык.
27 июл 07, 14:57    [4446147]     Ответить | Цитировать Сообщить модератору
 Re: Покритикуйте Оракл 10г  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
ЛП
Все равно что в ответ на слова "слабая типизация - плохо и багоопасно" какие-нибудь фанаты Perl начали бы утверждать, что дескать "а вы переменные именуйте с префиксами


Если бы ВЫ взяли на себя труд уделить время изучению Perl, то возможно поняли бы для чего в нем префиксы. Уверяю вас, это никак не связано с корпоративными стандартами или послаблениями для транслятора (как в случае с Фортраном)
27 июл 07, 14:58    [4446169]     Ответить | Цитировать Сообщить модератору
 Re: Покритикуйте Оракл 10г  [new]
dmidek
Member

Откуда: Киев - Дортмунд
Сообщений: 122060
ЛП
Бред какой-то
Есть явная кривость - а фанаты оракла пытаются доказать, что это хорошо и правильно :)

Все равно что в ответ на слова "слабая типизация - плохо и багоопасно" какие-нибудь фанаты Perl начали бы утверждать, что дескать "а вы переменные именуйте с префиксами, с багами надо бороться корпоративными стандартами и организационными мероприятиями, отсутствие такой возможности есть скудость компилятора, и вообще многие люди не готовы к свободе"


О, снова здоровО. "Бред", "фанаты оракла".
Немного зная Вас, понимаю, что было бы наивно ожидать и здесь извинений.

Но постарайтесь хотя бы иногда использовать и минимально возможные
аргументы. Пока что их нет.
27 июл 07, 15:02    [4446205]     Ответить | Цитировать Сообщить модератору
 Re: Покритикуйте Оракл 10г  [new]
drev
Member

Откуда: Одесса - Берег Красного Дерева - Красный мир
Сообщений: 564
dmidek
drev

Может быть предупреждение "изменился смысл идентификатора" помогло бы?


Давайте подумаем, а ГДЕ его делать ?
Вот крутится софт, Вы добавили в таблицу новую колонку (патчем например).
Где же этому предупреждению произойти ?
И потом, второй вопрос а КАК это засечь ?

Автоматический разбор всего софта с
1. Вычленением переменных- "омонимов"
2. Определением их локальной принадлежности к колонкам измененной таблицы .

А если не дай Бог, динамический SQL со считыванием имени колонки / таблицы из
таблицы ? Да, как правило неважная практика, но ее нельзя сбрасывать со
счетов ...


Вы правы. В общем случае предупреждения мало.

Я бы перевел это на уровень ошибки компиляции.
27 июл 07, 15:04    [4446223]     Ответить | Цитировать Сообщить модератору
 Re: Покритикуйте Оракл 10г  [new]
ЛП
Guest
2 MElin
Есть у тебя си-шарп. есть у тебя TSQL. Нравится - НАСЛАЖДАЙСЯ.

Так я и наслажаюсь :)

2 Gluk (Kazan)
Если бы ВЫ взяли на себя труд уделить время изучению Perl

К сожалению, пришлось в своё время взять на себя труд уделить время изучению этого ублюдства :(

то возможно поняли бы для чего в нем префиксы.

Для чего, если не секрет?
Просветите неграмотного.

2 dmidek
О, снова здоровО. "Бред", "фанаты оракла".

Разумеется. Если в ответ на указание явной кривости звучит "многие люди не готовы к свободе" - то это бред. А автор - фанат. И это есть фактический факт.

Немного зная Вас, понимаю, что было бы наивно ожидать и здесь извинений.

За что? За то, что назвал бред - бредом, а фаната - фанатом? На хер себе насыпь извинения.

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

Какие аргументы можно использовать против высказывания "многие люди не готовы к свободе"?
Дмидек, хватит уже чушь нести :)
27 июл 07, 15:06    [4446245]     Ответить | Цитировать Сообщить модератору
 Re: Покритикуйте Оракл 10г  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
ЛП
К сожалению, пришлось в своё время взять на себя труд уделить время изучению этого ублюдства :(


Видимо уделили недостаточно времени, в противном случае знали бы что такое списковый и скалярный контекст и для чего их можно использовать.
Кстати, почему Вас не бесят собаки в TSQL ??? там они несут гораздо меньше смысла чем в Perl
(с аргументацией drev в части их полезности согласен, но в Oracle отсутствие такой сверхценной фичи никогда не огорчало).

ЛП

то возможно поняли бы для чего в нем префиксы.

Для чего, если не секрет?
Просветите неграмотного.


Для реализации функционала исключительно удобного и востребованного пользователями (или фанатами если вам угодно) Perl.

В частности, как провести интерполяцию переменной в строке "blah blah $blah blah" без префикса ?
Как определить, что в случае:

$len = @array;

требуется размер массива ??? На этом весь язык построен
27 июл 07, 15:15    [4446328]     Ответить | Цитировать Сообщить модератору
 Re: Покритикуйте Оракл 10г  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
ЛП
"многие люди не готовы к свободе"?


Эта фраза весьма востребованна демагогами по всему миру
27 июл 07, 15:18    [4446347]     Ответить | Цитировать Сообщить модератору
 Re: Покритикуйте Оракл 10г  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Gluk (Kazan)
Кстати, почему Вас не бесят собаки в TSQL ??? там они несут гораздо меньше смысла чем в Perl


Судя по всему они Вас бесят? Интересно чем. Собака детерминирует локальную переменную и избавляет от ситуации, описанной drev.
27 июл 07, 15:20    [4446371]     Ответить | Цитировать Сообщить модератору
 Re: Покритикуйте Оракл 10г  [new]
ЛП
Guest
2 Gluk (Kazan)
Кстати, почему Вас не бесят собаки в TSQL ??? там они несут гораздо меньше смысла чем в Perl

Меня вообще не бесят собаки.
Ни в оракле, ни в T-SQL.
Говна в T-SQL не меньше. Так ведь я с этим и не спорю.
Если бы спорил, тем более утверждал бы, что "многие люди не готовы к свободе (поедания говна)" - то был бы фанатом. А так - увольте.
Модератор: просьба (пока просьба) помягче в выражениях

Для реализации функционала исключительно удобного и востребованного пользователями (или фанатами если вам угодно) Perl.

В частности, как провести интерполяцию переменной в строке "blah blah $blah blah" без префикса ?
Как определить, что в случае:

$len = @array;

требуется размер массива ???

Под "префиксами" я таки не имел в виду маловменяемые значочки $, @, &, ?, /, [, и т.п.
Попытайтесь еще раз рассказать зачем нужны префиксы :)

На этом весь язык построен

Так это фиговый язык. И он фигово построен.
Что ж теперь поделать.

Сообщение было отредактировано: 27 июл 07, 15:26
27 июл 07, 15:23    [4446396]     Ответить | Цитировать Сообщить модератору
 Re: Покритикуйте Оракл 10г  [new]
dmidek
Member

Откуда: Киев - Дортмунд
Сообщений: 122060
drev
dmidek
drev

Может быть предупреждение "изменился смысл идентификатора" помогло бы?


Давайте подумаем, а ГДЕ его делать ?
Вот крутится софт, Вы добавили в таблицу новую колонку (патчем например).
Где же этому предупреждению произойти ?
И потом, второй вопрос а КАК это засечь ?

Автоматический разбор всего софта с
1. Вычленением переменных- "омонимов"
2. Определением их локальной принадлежности к колонкам измененной таблицы .

А если не дай Бог, динамический SQL со считыванием имени колонки / таблицы из
таблицы ? Да, как правило неважная практика, но ее нельзя сбрасывать со
счетов ...


Вы правы. В общем случае предупреждения мало.

Я бы перевел это на уровень ошибки компиляции.


Я тут вижу большие технические сложности. Необходимо будет проверять ВСЕ поля
таблиц и представлений, задействованных в соответствующих SELECT/UPDATE/DELETE.,,

И уж совсем проблематичным это становится при добавлении новой/ изменении существующей
колонки. Нам в этом случае придется перешерстить всю базу в поисках возможных
коллизий ...
27 июл 07, 15:23    [4446399]     Ответить | Цитировать Сообщить модератору
 Re: Покритикуйте Оракл 10г  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
pkarklin
Gluk (Kazan)
Кстати, почему Вас не бесят собаки в TSQL ??? там они несут гораздо меньше смысла чем в Perl


Судя по всему они Вас бесят? Интересно чем. Собака детерминирует локальную переменную и избавляет от ситуации, описанной drev.


Вы внимательно читали СЛЕДУЮЩЕЕЕ за процитированным ВАМИ предложением (то которое в скобочках) ???
27 июл 07, 15:24    [4446406]     Ответить | Цитировать Сообщить модератору
 Re: Покритикуйте Оракл 10г  [new]
dmidek
Member

Откуда: Киев - Дортмунд
Сообщений: 122060
Gluk (Kazan)
ЛП
"многие люди не готовы к свободе"?


Эта фраза весьма востребованна демагогами по всему миру


Демагогами ... Понятно.
Мне показалось интересным взглянуть на затронутую проблему в более
широком контексте. Но это было ненужно. Аудитории неинтересно.
Забейте, не страшно ...
27 июл 07, 15:25    [4446413]     Ответить | Цитировать Сообщить модератору
 Re: Покритикуйте Оракл 10г  [new]
ЛП
Guest
Модератор: просьба (пока просьба) помягче в выражениях

Товарисч SergSuper, какое слово или выражение не понравилось?

Т.е. я конечно понимаю, что фанатам оракла может не нравиться, когда их называют фанатами. А авторам бреда не нравится, когда их высказывания называют бредом. Фанатам T-SQL не нравится, когда сиквельных собак называют говном, сравнимым с перловыми перлами.
Однако ж я не брал на себя обязательств писать только то, что в обязательном порядке понравится фанатам и бредогенераторам. В правилах форума такой пункт отсутствует.
27 июл 07, 15:37    [4446491]     Ответить | Цитировать Сообщить модератору
 Re: Покритикуйте Оракл 10г  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
ЛП
Под "префиксами" я таки не имел в виду маловменяемые значочки $, @, &, ?, /, [, и т.п.
Попытайтесь еще раз рассказать зачем нужны префиксы :)


Нуууу ... я конечно не Ларри (другой ;))
но так уж и быть, вот вам небольшая выжимка из Camel Book, которую я написал для своих студентов

А значочки оччччень даже вменяемые (если ПОНИМАТЬ что именно они вменяют)

К сообщению приложен файл (Perl.part1.rar - 97Kb) cкачать
27 июл 07, 15:38    [4446498]     Ответить | Цитировать Сообщить модератору
 Re: Покритикуйте Оракл 10г  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
часть 2

К сообщению приложен файл (Perl.part2.rar - 97Kb) cкачать
27 июл 07, 15:38    [4446503]     Ответить | Цитировать Сообщить модератору
 Re: Покритикуйте Оракл 10г  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
часть 3

К сообщению приложен файл (Perl.part3.rar - 44Kb) cкачать
27 июл 07, 15:39    [4446506]     Ответить | Цитировать Сообщить модератору
 Re: Покритикуйте Оракл 10г  [new]
Yo.!
Guest
drev

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

ага, ну давай теперь запретим view и тригеры, т.к. они тоже могут менять :) а в mssql alter вообще по такой логике нужно запретить т.к. любое изменение таблички - приведет к полной жопе, т.к. недоразвитый t-sql не способен отследить зависимости между табличками и кодом и позволяет запустить кривой код, который наполовину исполнится, а на второй натолкнется на несоответсвие типов и не факт, что сможет все отвернуть назад.

drev

В любом нормальном ОО языке такой ситуации возникнуть бы не могло. Разработчик имеет права полагаться только на контракт метода.

вранье.
27 июл 07, 15:40    [4446520]     Ответить | Цитировать Сообщить модератору
 Re: Покритикуйте Оракл 10г  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
ЛП
Так это фиговый язык. И он фигово построен.
Что ж теперь поделать.


Обоснуйте плиззз

Когда мне дали задание за две недели написать кроссплатформенный и расширяемый модуль виртуального хостинга к нашей биллинговой системе, он мне таковым не показался
27 июл 07, 15:40    [4446528]     Ответить | Цитировать Сообщить модератору
 Re: Покритикуйте Оракл 10г  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67383
Блог
drev
Существует очень простая проверка в терминах данного форума. Можно ли ветку сделать самостоятельным топиком?

Согласен.

drev
Представьте, что ветка начинается с отрывка кода, который я привёл. Затем Ваше высказывание про грубую ошибку. И пошло-поехало.

Представляю. Пошло-поехало нечто, вырванное из контекста. С пристрастной точки зрения - "можно сделать". Однако, вполне укладывается в классический пример (заранее прошу прощения за неточность цитирования, лень искать синодальный текст):

И сказал им Господь: плодитесь и размножайтесь .... в поте лица своего ....

Как видите, "ветка вполне может начинатся с отрывка".

drev
Далее, Вы уже не первый раз объединяете в один логический ряд сущности разного уровня абстракции. Рассмотрим пример с "реализациями" и "моделями".

Игорь, если так рассматривать, "не давать объединять" надо было в тот момент, когда Вы попытались обосновать минусы "нереализованной модели IUD" потребностями "реализации MSSQL200X". Как оно в тот момент срослось - дальше уже не разделяется.

Я не "понижал" ничего, я разъяснил, что Вы забыли о контексте. Вполне возможно, мои слова стоило лучше сформулировать - честно говоря, не готов их перечитывать, чтобы судить об этом - но в любом случае Вы не в первый раз видите отсутствующую универсальность и абстрактность в сказанном.
27 июл 07, 15:48    [4446592]     Ответить | Цитировать Сообщить модератору
 Re: Покритикуйте Оракл 10г  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
dmidek
Gluk (Kazan)
ЛП
"многие люди не готовы к свободе"?


Эта фраза весьма востребованна демагогами по всему миру


Демагогами ... Понятно.
Мне показалось интересным взглянуть на затронутую проблему в более
широком контексте. Но это было ненужно. Аудитории неинтересно.
Забейте, не страшно ...


На всякий случай: ВАС я демагогом не считаю
27 июл 07, 15:49    [4446603]     Ответить | Цитировать Сообщить модератору
 Re: Покритикуйте Оракл 10г  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67383
Блог
drev
Предположим, IDE ему поможет (нормальные IDE появились не так давно, ну ладно).

Да, кстати, Вы очень удачно попали в юбилей: нормальные IDE появились почти ровно десять лет назад.

drev
Вот такая страшная сказка.

И? Страшных сказок на тему "ламер криво написал" можно рассказать миллион для другого контекста.

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

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

drev
И всего этого не было бы, если бы Оракл поддерживал целостность бизнес-логики, а не разрешал конфликты имён динамически.

Странная, я бы сказал, бессмысленная фраза.

Впрочем, Вы сейчас набрели на вопрос, по которому у меня есть глобально особая точка зрения, не разделяемая большинством коллег. Мне не нравится идея inline sql, я бы предпочел компонентный подход, примерно так, как он реализован в явных курсорах Oracle. То есть - я бы предпочел видеть каждый запрос объектом (определенным и многократно используемым), а тело процедуры - сугубо алгоритмическим.

Сценарий, который Вы описали, безусловно, возможен. Причем, если постараться, возможен всегда и везде - скажем, если я пишу

select a.b from c

это может быть, например:

- функцией b из схемы a
- функцией b из пакета a текущей схемы
- атрибутом b объектного поля a таблицы c текущей схемы
- переменной b подпрограммы или программного блока a
- .....

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

Эта проблема присутствует в той или иной степени во всех современных языках. Например, если я в дельфе напишу A.B.C.D.E.F, это может означать примерно следующее: "свойство F результата вызова метода E объектного поля D результата вызова функции C модуля A.B" И принятые методы решения ее тоже вполне универсальны - "думать, что пишешь".
27 июл 07, 22:23    [4448445]     Ответить | Цитировать Сообщить модератору
 Re: Покритикуйте Оракл 10г  [new]
drev
Member

Откуда: Одесса - Берег Красного Дерева - Красный мир
Сообщений: 564
softwarer

drev
И всего этого не было бы, если бы Оракл поддерживал целостность бизнес-логики, а не разрешал конфликты имён динамически.

Странная, я бы сказал, бессмысленная фраза.



Постараюсь объяснить понятие "целостность бизнес-логики" в терминах целостности базы данных.

На конкретных примерах.

Представим себе, что на параметр "имя" у объекта колонка мы добавляем CONSTRAINT "Появление у данной таблицы колонки с данным именем не должно приводить к изменению смысла идентификатора ни в одном из DML statements ни одного из программных модулей".

Реализация такой проверки, как правильно заметил dmidek, вызовет "большие технические сложности".

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

Это необходимо при следующем приоритете разрешения конфликтов: колонка, локальная переменная, вызов функции без параметра.

Но и это действие, хоть и полезное, не даёт полной гарантии, так как динамический SQL нам будет сложно проверить.

Как-то всё не очень хорошо складывается.

Теперь представим, что приоритет разрешения конфликта другой: локальная переменная, колонка, вызов функции без параметра.

В этой ситуации проверка целостности бизнес-логики обеспечивается двумя CONSTRAINTS:

1. На программный модуль: "Проверить DML statements, которые содержат обращения к локальным переменным, на наличие у задействованных источников данных колонок с тем же именем"

2. На имя функции без параметра/колонки: "Проверить на наличие объекта с тем же именем, который может быть употреблён в том же контексте".

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

Но некоторая проблема с целостностью у нас всё равно осталась. Мы легко получаем ситуацию, когда
     select a from b

будет иметь разный смысл в разных программных модулях.

Результатом вызова второго CONSTRAINT будет предупреждение или сообщение об ошибке. Ошибка - если мы примем решение поддерживать уникальность в Namespace "возвращение значения в DML statements"


Выводы:

1. В текущей модели приоритета "колонка, локальная переменная, вызов функции без параметра" обеспечить целостность очень сложно.

2. В модели приоритета "локальная переменная, колонка, вызов функции без параметра" обеспечить целостность очень можно, но не полную.

3. В свете вышеизложенного синтаксическое разделение локальных переменных и объектов метабазы представляется достаточно мудрым.
28 июл 07, 10:02    [4448808]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 15 16 17 18 19 20 21 22 [23] 24   вперед  Ctrl
Все форумы / Сравнение СУБД Ответить