Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 5 [6] 7 8 9 10 .. 17   вперед  Ctrl
 Re: Все таки Oracle впереди планеты всей!  [new]
SergSuper
Member

Откуда: SPb
Сообщений: 5488
vadiminfo
Зайцев Фёдор
vadiminfo

Т.е. у чела ФИО пустая строка? Шо это значит?

У человека есть адрес. Адрес известен - он пустой, т.к. этот человек - бомж.

Ну я писал про длину крыл у человека. Это примерно то же. Свойство отсутсвует.
Свойство присутствует - и это пустая строка. Т.е. оно было заведено операционистом, в отличии от NULL, где еще ничего не известно.

PS. А не могли бы Вы по-русски писать? Ей богу читать тяжело, да и неприятно.
Если можете, конечно
7 июл 10, 12:46    [9063603]     Ответить | Цитировать Сообщить модератору
 Re: Все таки Oracle впереди планеты всей!  [new]
Yo.!
Guest
Зайцев Фёдор

У человека есть адрес. Адрес известен - он пустой, т.к. этот человек - бомж.


поубивал бы таких проектировщиков. в прошлом году отгадывал - вместо адреса есть пробел, пустая строка, # и @ - вот %$@ть что эта хрень означает ?
7 июл 10, 12:52    [9063655]     Ответить | Цитировать Сообщить модератору
 Re: Все таки Oracle впереди планеты всей!  [new]
dimitr
Member

Откуда: PNZ
Сообщений: 7008
softwarer
Спасибо, я в курсе. Фишка в том, что не все сервера поддерживают это поведение.

я сильно подозреваю, что большинство. Так что не совсем понятно, зачем это считать "логичной фишкой" именно оракла.

softwarer
Старые - это какие? В SQL92 уже было именно так.

в SQL89 было иначе
7 июл 10, 12:58    [9063709]     Ответить | Цитировать Сообщить модератору
 Re: Все таки Oracle впереди планеты всей!  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
hvlad
Кладём дельту на отдельный диск, обеспечиваем постоянный режим работы в режиме бекапа, и получаем почти полный аналог журналирования.


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

hvlad
Переключение ролей серверов и клиентов - задача не для движка БД и от наличия лога не зависит
.

За переподключение клиентов, естевенно, отвечает клиентский механизм доступа к данным, ориентируясь на роль сервера, но вот переключение ролей - это именно задача движка, причем двух "связанных" движков и без той или иной реализации лога, само зеркалирование, переключение ролей и т.п. реализовать практически невозможно.
7 июл 10, 12:59    [9063713]     Ответить | Цитировать Сообщить модератору
 Re: Все таки Oracle впереди планеты всей!  [new]
vadiminfo
Member

Откуда: Обнинск
Сообщений: 4802
SergSuper
vadiminfo
Зайцев Фёдор
vadiminfo

Т.е. у чела ФИО пустая строка? Шо это значит?

У человека есть адрес. Адрес известен - он пустой, т.к. этот человек - бомж.

Ну я писал про длину крыл у человека. Это примерно то же. Свойство отсутсвует.
Свойство присутствует - и это пустая строка. Т.е. оно было заведено операционистом, в отличии от NULL, где еще ничего не известно.

PS. А не могли бы Вы по-русски писать? Ей богу читать тяжело, да и неприятно.
Если можете, конечно

Я стараюсь по-русски, но не вседа же получается делать то что мы стараемся.

ФИО - пустая строка не бывает. Ну нет таких ФИО. А то о чем Вы говорите, это типа инициализация. NULL не инициализировано, а пустая инициализировано, но не заполнено - это все програмисткие какие-то манипуляции. Ну если данные не структурированы, без прогерства никак, то да. Ну Оракла не структурированные данные LOBы. Ну там есть такое.
Но что до РМД, то тут данные не нуждаются в таком прогерстве. В этом то все и дело (иначе зачем все это придумывали?). И операционист завел ошибочные данные - пустую строку. А мне теперь делать отчет. Я проверил на NULL, и думал что все хорошо. Распечатали а там половина не заполнено.
7 июл 10, 13:01    [9063733]     Ответить | Цитировать Сообщить модератору
 Re: Все таки Oracle впереди планеты всей!  [new]
Зайцев Фёдор
Member

Откуда: Лужки
Сообщений: 5308
Yo.!

поубивал бы таких проектировщиков. в прошлом году отгадывал - вместо адреса есть пробел, пустая строка, # и @ - вот %$@ть что эта хрень означает ?

а что она вообще может означать? а что означает "москва пирогова 12-1 50" ?
отвечать не обязательно, ибо адреса - отличная тема для битвы на 100500 страниц )
7 июл 10, 13:02    [9063740]     Ответить | Цитировать Сообщить модератору
 Re: Все таки Oracle впереди планеты всей!  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Dimitry Sibiryakov
Если потери данных..., то ... делается...

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


Согласитесь, что использовать только встроенные возможности движка куда проще, чем реализовывать все то, что я поскипал в цитировании?!
7 июл 10, 13:02    [9063744]     Ответить | Цитировать Сообщить модератору
 Re: Все таки Oracle впереди планеты всей!  [new]
hvlad
Member

Откуда:
Сообщений: 11578
pkarklin
hvlad
Кладём дельту на отдельный диск, обеспечиваем постоянный режим работы в режиме бекапа, и получаем почти полный аналог журналирования.


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

pkarklin
hvlad
Переключение ролей серверов и клиентов - задача не для движка БД и от наличия лога не зависит
.

За переподключение клиентов, естевенно, отвечает клиентский механизм доступа к данным, ориентируясь на роль сервера, но вот переключение ролей - это именно задача движка, причем двух "связанных" движков
Движок БД этим не занимается, уверяю вас. Там есть ещё много других движков.
Уберите возможность переключения ролей - и ничего не сломается с точки зрения работы экземляра БД.

pkarklin
и без той или иной реализации лога, само зеркалирование, переключение ролей и т.п. реализовать практически невозможно.
Дык "та или иная реализации лога" есть :)
7 июл 10, 13:08    [9063803]     Ответить | Цитировать Сообщить модератору
 Re: Все таки Oracle впереди планеты всей!  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
hvlad
kdv не говорил о постоянный режиме работы в режиме бекапа.


Видимо мы не совсем понимаем друг друга. :) Каков бы не был режим дискретного бэкапирования возможность восстановления (при отсутствии возможности сделать бэкап того, чего после сбоя не оказалось в бд) существует с дискретностью бэкапов.

hvlad
Движок БД этим не занимается, уверяю вас. Там есть ещё много других движков.


Под "движком БД" я понимаю "весь" SQL Server, не разделяя его в данном контексте на Relation Engine, Storage Engine и т.п.

hvlad
Дык "та или иная реализации лога" есть :)


Я с этим и не спорил. :)
7 июл 10, 13:25    [9064008]     Ответить | Цитировать Сообщить модератору
 Re: Все таки Oracle впереди планеты всей!  [new]
hvlad
Member

Откуда:
Сообщений: 11578
pkarklin
hvlad
kdv не говорил о постоянный режиме работы в режиме бекапа.


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

pkarklin
hvlad
Движок БД этим не занимается, уверяю вас. Там есть ещё много других движков.


Под "движком БД" я понимаю "весь" SQL Server, не разделяя его в данном контексте на Relation Engine, Storage Engine и т.п.
А я - разделяю, и это важно в контексте нашего обсуждения.
Ибо само переключение мастеров при зеркалировании никак не зависит от способа ведения логов.

pkarklin
hvlad
Дык "та или иная реализации лога" есть :)


Я с этим и не спорил. :)
Вот и славно :)
7 июл 10, 13:38    [9064180]     Ответить | Цитировать Сообщить модератору
 Re: Все таки Oracle впереди планеты всей!  [new]
SergSuper
Member

Откуда: SPb
Сообщений: 5488
vadiminfo
Но что до РМД, то тут данные не нуждаются в таком прогерстве. В этом то все и дело (иначе зачем все это придумывали?). И операционист завел ошибочные данные - пустую строку. А мне теперь делать отчет. Я проверил на NULL, и думал что все хорошо. Распечатали а там половина не заполнено.
Согласитесь что когда можно проверить и на NULL и на пустую строку - возможностей то больше? Я могу еще узнать делал ли чего операционист и может он осознанно ввел пустую строку. Лучше разве есть он # и @ вместо этого будет ставить?
Вообще странно что надо доказывать что когда больше возможностей это лучше.
7 июл 10, 13:50    [9064313]     Ответить | Цитировать Сообщить модератору
 Re: Все таки Oracle впереди планеты всей!  [new]
iscrafm
Member [заблокирован]

Откуда:
Сообщений: 35345
vadiminfo
операционист завел ошибочные данные - пустую строку. А мне теперь делать отчет. Я проверил на NULL, и думал что все хорошо. Распечатали а там половина не заполнено.

where isnull(FLD,'') <> ''
where coalesce(FLD,'') <> ''
7 июл 10, 14:00    [9064382]     Ответить | Цитировать Сообщить модератору
 Re: Все таки Oracle впереди планеты всей!  [new]
Saller
Member

Откуда: exUSSR
Сообщений: 1141
SergSuper
Вообще странно что надо доказывать что когда больше возможностей это лучше.

Как уже тут кто-то писал: "если я этим не пользуюсь то это никому не нужно".
7 июл 10, 14:01    [9064390]     Ответить | Цитировать Сообщить модератору
 Re: Все таки Oracle впереди планеты всей!  [new]
StalkerS
Member

Откуда: Melbourne
Сообщений: 1345
Yo.!
в упор не вижу разницы. пароль он или задан или нет. вопрос или есть или нет.

пароль задан и это - пустая строка

vadiminfo

Т.е. у чела ФИО пустая строка? Шо это значит? Я как раз не говорил об отождествлении пустой строки с NULL. Я предлагал Вам отказаться от пустой строки, до выяснения ея смысла. Вот NULL - означает, например, не известно значение. Т.е. у чела есть ФИО, но оно не известно. А что тада означает пустая строка?
Другое дело что свойство может отсутствовать. Например, у чела нет крыльев, поэтому длина крыла ротсутствует. Получается, что у Оракла NULL в общем случае использовать и как свойство отсутсвует. А пустую строку моно было бы трактовать как свойство отсутсвует. Но я все еще думаю, что для свойства отсутствует нуно спец знак и четырехзначная логика. Иначе все равно полумеры, путаница.

NULL означает отсутствующее значение аттрибута (и не важно, будет-ли оно внесено позже или принципиально отсутствует). Пустая строка означает что аттрибут существует и значение его задано пустой строкой. И почему это все полумеры и путаница? Имхо логичнее просто некуда.
ОКТОГЕН

Аргументировать можно как "TRUE - есть, FALSE - нет, NULL - отсутствует или неизвестно".

поправил
vadiminfo

Ну я писал про длину крыл у человека. Это примерно то же. Свойство отсутсвует.
У Оракла NULL и для не известного, а для свойства отсутсвует как получится. Ну, чаще это декомпозиция. Адреса в другой табле и у бомжей запис в ней отсутсвуют.

т.е. хотите сказать, что в Оракле для отсутствующих свойств необходимо полную декомпозицию что-ли делать, либо делать "как получиться" ? :) Делать реализацию подтипов путем полного разнесения свойств в разные таблицы далеко не всегда хорошо.
7 июл 10, 14:03    [9064406]     Ответить | Цитировать Сообщить модератору
 Re: Все таки Oracle впереди планеты всей!  [new]
Dimitry Sibiryakov
Member

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

pkarklin

Согласитесь, что использовать только встроенные возможности движка куда
проще, чем реализовывать все то, что я поскипал в цитировании?!

Соглашусь, если а) эти возможности существуют и б) стабильно работают.
За MS не скажу, а вот Оракул хотя и имеет а, но с б у него проблемы,
судя по регулярно появляющимся темам в соответствующем разделе этого форума.

Posted via ActualForum NNTP Server 1.4

7 июл 10, 14:05    [9064416]     Ответить | Цитировать Сообщить модератору
 Re: Все таки Oracle впереди планеты всей!  [new]
Yo.!
Guest
SergSuper
Согласитесь что когда можно проверить и на NULL и на пустую строку - возможностей то больше? Я могу еще узнать делал ли чего операционист и может он осознанно ввел пустую строку. Лучше разве есть он # и @ вместо этого будет ставить?
Вообще странно что надо доказывать что когда больше возможностей это лучше.


перл - предоставляет непомерно больше возможностей, но люди предпочитают строготипизованные языки ограничивающие возможности. и это правильно, потому как угадывать, кто чего подразумевал под пустой строкой глупо.
вообще странно, что нужно доказывать то, что давно победило и является стандартом в вебе ...
7 июл 10, 14:28    [9064605]     Ответить | Цитировать Сообщить модератору
 Re: Все таки Oracle впереди планеты всей!  [new]
Yo.!
Guest
Dimitry Sibiryakov

судя по регулярно появляющимся темам в соответствующем разделе этого форума.


только нужно учитывать, что там в оракле он будет иметь проблему с зависимостями, в firebird он будет иметь практически неразрешимую жопу ...
7 июл 10, 14:31    [9064629]     Ответить | Цитировать Сообщить модератору
 Re: Все таки Oracle впереди планеты всей!  [new]
vadiminfo
Member

Откуда: Обнинск
Сообщений: 4802
SergSuper
Согласитесь что когда можно проверить и на NULL и на пустую строку - возможностей то больше?

Ну тада можно еще понавводить всяких возможностей: отрицательная строка, Лябда строка и т.д.
И проверять их на здоровье. Но ведь, возможно, что МД придумывали не для того, скорее всего, чтобы обременять разработчика провераками чего-го выходящего за предметную область. Скорее все же для того, чтобы в БД была инфа о предметной области, которую можно извлекть не отвлекаясь на какие-то неожиданные особонности.

SergSuper

Я могу еще узнать делал ли чего операционист и может он осознанно ввел пустую строку.

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

SergSuper

Лучше разве есть он # и @ вместо этого будет ставить?

Какая разница? Все равно инфы стоящей там извлечь нельзя и в том и другом случае. Если же речь идет о рассуждениях в условиях неопределенности, то для этого есть всякие там датамайнинги. Т.е. возможностей у Оракла хватит.

SergSuper

Вообще странно что надо доказывать что когда больше возможностей это лучше.

Ну не знаю. У мобилы с камерой больше возможностей чем у камеры: последние звонить не могут. Но некоторые покупают только камкеры, а некоторые мобилы без камер.
В данном же случае рациональное от такой типа возможности ставится под сомнение, а гемор от контроля того что же в БД записалось NULL или '', и что это значит может вызывать озабоченность временами. Особенно напрягает вместо а IS NULL писть а IS NULL or a = ''. Это и читается плоховато и вообще.
Я тоже за возможности. Потому Оракл выбрал. Но этой возможность предпочел бы не пользоваться до выяснения чего-то рационального в ней.
7 июл 10, 14:32    [9064636]     Ответить | Цитировать Сообщить модератору
 Re: Все таки Oracle впереди планеты всей!  [new]
Bogdanov Andrey
Member

Откуда: Да уже и сам не знаю...
Сообщений: 2203
SergSuper
Вообще странно что надо доказывать что когда больше возможностей это лучше.
Странно, что надо доказывать, что снижение удобства использования это плохо.
7 июл 10, 14:42    [9064721]     Ответить | Цитировать Сообщить модератору
 Re: Все таки Oracle впереди планеты всей!  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67534
Блог
StalkerS
пароль, или секретный ответ на вопрос. Есть принципиальная разница в пустом пароле и отсутствии пароля.

Замечательно. Тот самый единственный пример. Наконец-то кто-то вспомнил про ситуацию "пустой пароль мы сохраняем и не запрашиваем повторно, а при отсутствии пароля - запрашиваем его у пользователя". Правда, для СУБД это очень редкая задача :)

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

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

StalkerS
Мне например, тождественность null и "пусто" совсем не кажется удобным.

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

StalkerS
Как я уже приводил пример сверху, кому-то показалось удобным присваивать дефолтные значения value типам в бейсике,

Кстати, я не увидел в приведённом примере дефолтных значений. Может быть, конечно, и такая реализация, но увидел я всего лишь умное поведение для случая obj = null, сродни классическому дельфовому

procedure TObject.Free;
begin
  if Self <> nil then
    Destroy;
end;

StalkerS
Неужели в конце концов так трудно написать isnull() ?

О, это один из тех вопросов, который отличает "теоретиков" от "практиков". Первые уверены, что нетрудно. Вторые, написав этот isnull() несколько десятков, несколько сотен или несколько тысяч раз, начинают любить теории других теоретиков, где не нужно заниматься подобной тупизной.

StalkerS
Не понятно на самом деле, Вадим вон пишет что is null и = '' возвращают разные значения.

Они действительно возвращают разные значения. Тем не менее я.. изрядно не согласен с формулировками Вадима и не готов за них отвечать.

StalkerS
Имхо, выглядит как усложнение на ровном месте

"Не то, к чему я привык" - вовсе не всегда "усложнение", часто наоборот.

StalkerS
допустим есть какая-то выплата, она может быть привязана к какому-то договору, может нет ... если бы null не был бы пустой строкой, можно было бы просто написать ...

А в чём разница, если null - пустая строка? Заменить nvl на nvl2 - и всего делов-то. С другой стороны, когда null - не пустая строка, простейшее выражение вида name || patronymic || surname превращаются в нечто нечитаемое.
7 июл 10, 14:48    [9064785]     Ответить | Цитировать Сообщить модератору
 Re: Все таки Oracle впереди планеты всей!  [new]
SergSuper
Member

Откуда: SPb
Сообщений: 5488
Bogdanov Andrey
SergSuper
Вообще странно что надо доказывать что когда больше возможностей это лучше.
Странно, что надо доказывать, что снижение удобства использования это плохо.
да, я неудачно выразился
я имел в виду больше информации
7 июл 10, 14:57    [9064889]     Ответить | Цитировать Сообщить модератору
 Re: Все таки Oracle впереди планеты всей!  [new]
vadiminfo
Member

Откуда: Обнинск
Сообщений: 4802
StalkerS
NULL означает отсутствующее значение аттрибута (и не важно, будет-ли оно внесено позже или принципиально отсутствует). Пустая строка означает что аттрибут существует и значение его задано пустой строкой. И почему это все полумеры и путаница? Имхо логичнее просто некуда.

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

StalkerS

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

Я имел в виду что не только в Оракле декомпозиция чаcто применяется для отсутсвующих свойст. Ну действительно, табла со свойствами, которых заведомо нет у сущностей, выглядит как некоея искажение отображения реальности в БД. И констатировал, что это ближе к NULL чем '', если декомпозицию не делать.
Если нет четырехзначной логики, то и использование пустых строк для таких свойт, чтобы отличать их от не известно (которые толкуются в этом случае NULL) - полумера, которая не на много улучшает картину, но все так же чревато путанницей.
7 июл 10, 14:59    [9064901]     Ответить | Цитировать Сообщить модератору
 Re: Все таки Oracle впереди планеты всей!  [new]
Dimitry Sibiryakov
Member

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

Yo.!

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

Поскольку мне в техподдержку таковых жалоб не поступало, могу
авторитетно заявить, что "неразрешимая жопа" существует исключительно в
твоём воображении.

Posted via ActualForum NNTP Server 1.4

7 июл 10, 15:05    [9064960]     Ответить | Цитировать Сообщить модератору
 Re: Все таки Oracle впереди планеты всей!  [new]
Sgt.Pepper
Member

Откуда: spb
Сообщений: 1166
vadiminfo
В данном же случае рациональное от такой типа возможности ставится под сомнение, а гемор от контроля того что же в БД записалось NULL или '', и что это значит может вызывать озабоченность временами. Особенно напрягает вместо а IS NULL писть а IS NULL or a = ''. Это и читается плоховато и вообще.

Можно, как уже говорилось, isnull(str_attr, '') = '', символов не намного больше, чем str_attr is null.
А может пойти еще дальше, и строку, состоящую ТОЛЬКО из n пробелов также заненять на null, ведь временами и это вызывает озабоченность не меньшую, чем '' - пустая строка?

vadiminfo
Я тоже за возможности. Потому Оракл выбрал. Но этой возможность предпочел бы не пользоваться до выяснения чего-то рационального в ней.

Давний пример в свете дилеммы "правильно" - "удобно" - использование from dual. Вы бы предпочли этим пользоваться или нет, если бы oracle позволял просто "select 1"?
7 июл 10, 15:07    [9064977]     Ответить | Цитировать Сообщить модератору
 Re: Все таки Oracle впереди планеты всей!  [new]
Yo.!
Guest
Dimitry Sibiryakov

Поскольку мне в техподдержку таковых жалоб не поступало, могу
авторитетно заявить, что "неразрешимая жопа" существует исключительно в
твоём воображении.

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

хочешь что-то доказать, давай ссылку на проблему в оракле, а мы прикинем через какой ад пришлось пройти в firebird в той же ситуации
7 июл 10, 15:14    [9065049]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 5 [6] 7 8 9 10 .. 17   вперед  Ctrl
Все форумы / Сравнение СУБД Ответить