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

Откуда: PNZ
Сообщений: 7008
softwarer
А ещё в оракле есть даже третья очень правильная и логичная фишка - ограничение unique может быть наложено на nullable колонку и допускает наличие null более чем в одной записи.

вообще-то, это поведение декларируется стандартом. Хотя, видимо, логичность тут неочевидная даже для ANSI-комитета, ведь, насколько я помню, старые версии стандарта трактовали этот нюанс иначе.
7 июл 10, 09:39    [9061831]     Ответить | Цитировать Сообщить модератору
 Re: Все таки Oracle впереди планеты всей!  [new]
StalkerS
Member

Откуда: Melbourne
Сообщений: 1345
Gluk (Kazan)
Да плевать куда катится твоя логика. Тебе же сказали, фишка не логичная, не значит неудобная.
И лично я предпочитаю, чтобы удобство перевешивало логику (там где они конфликтуют).

ага, видимо такие-же как и ты родили похожую фишку в vb.net, который позволяет скомпилить вот такое:
Dim i As Integer
i = Nothing
MessageBox.Show(i.ToString())
по сути всем value типам можно присвоить nothing и они получают default значение. Я-то раньше ломал голову откуда у этого бреда ноги растут, а это похоже эквиваленты Gluk'а в Майкрософт экспериментируют с отношением логика/удобство..
7 июл 10, 10:03    [9062013]     Ответить | Цитировать Сообщить модератору
 Re: Все таки Oracle впереди планеты всей!  [new]
vadiminfo
Member

Откуда: Обнинск
Сообщений: 4802
StalkerS
в оракле говорят есть другая очень правильная и логичная фишка - NULL и пустая строка неразличимы

SQL> create table NULL_Empty_Str
  2  (
  3    EXM NUMBER,
  4    TECT_NULL varchar2(10)
  5  );
 
Table created
SQL> INSERT INTO NULL_Empty_Str VALUES (1, NULL);
 
1 row inserted
SQL> COMMIT;
 
Commit complete
SQL> SELECT * FROM NULL_Empty_Str WHERE TECT_NULL IS NULL;
 
       EXM TECT_NULL
---------- ----------
         1 
SQL> SELECT * FROM NULL_Empty_Str WHERE TECT_NULL = NULL;
 
       EXM TECT_NULL
---------- ----------
SQL> SELECT * FROM NULL_Empty_Str WHERE TECT_NULL = '';
 
       EXM TECT_NULL
---------- ----------
SQL> DELETE FROM NULL_Empty_Str;
 
1 row deleted
SQL> COMMIT;
 
Commit complete
SQL> INSERT INTO NULL_Empty_Str VALUES (1, '');
 
1 row inserted
SQL> COMMIT;
 
Commit complete
SQL> SELECT * FROM NULL_Empty_Str WHERE TECT_NULL IS NULL;
 
       EXM TECT_NULL
---------- ----------
         1 
SQL> SELECT * FROM NULL_Empty_Str WHERE TECT_NULL = NULL;
 
       EXM TECT_NULL
---------- ----------
SQL> SELECT * FROM NULL_Empty_Str WHERE TECT_NULL = '';
 
       EXM TECT_NULL
---------- ----------
SQL> DELETE FROM NULL_Empty_Str;
 
1 row deleted
 
SQL> 
При вставке принимает пустую строку( '' ) за NULL, т.е. присваивает не '', а NULL. При выборке вроде различает не принимает пустую за NULL. В Оракле трехзначная логика: Истинно, Ложно и Не известно. Приравнивание к NULL вседа дает UNKNOWN, а к '' могут быть ЛОЖНО или ИСТИННО.
NULL трактуется как неизвестно что а не как какое-то известное значение, тада как '' известное значение.

Т.е. тут скорее всего речь не о том что не различает, а о том что при добавлении вместо '' добавляется NULL.
Поскоку смысл '' до конца не ясен. Но его моно трактовать как, например, "свойство отсутсвует". Однако, тада возможно нужна четырехзначная логика. И типа специальный знак а не ''. Ну, вроде, Кодд был сторонником четырехзначной.
7 июл 10, 10:04    [9062019]     Ответить | Цитировать Сообщить модератору
 Re: Все таки Oracle впереди планеты всей!  [new]
StalkerS
Member

Откуда: Melbourne
Сообщений: 1345
vadiminfo
Т.е. тут скорее всего речь не о том что не различает, а о том что при добавлении вместо '' добавляется NULL.

если вместо "пусто" в БД идет null, то наличие пустых строк в базе ведь невозможно получается?

vadiminfo

Поскоку смысл '' до конца не ясен.

ну здрасте
vadiminfo

Но его моно трактовать как, например, "свойство отсутсвует"

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

Откуда:
Сообщений: 9365
StalkerS
Gluk (Kazan)
Да плевать куда катится твоя логика. Тебе же сказали, фишка не логичная, не значит неудобная.
И лично я предпочитаю, чтобы удобство перевешивало логику (там где они конфликтуют).

ага, видимо такие-же как и ты родили похожую фишку в vb.net, который позволяет скомпилить вот такое:
Dim i As Integer
i = Nothing
MessageBox.Show(i.ToString())
по сути всем value типам можно присвоить nothing и они получают default значение. Я-то раньше ломал голову откуда у этого бреда ноги растут, а это похоже эквиваленты Gluk'а в Майкрософт экспериментируют с отношением логика/удобство..


вот тут ты меня задел :) я очень не люблю Бейсик и хамов (не знаю почему)
отправляйся ка ты в игнор
7 июл 10, 10:18    [9062159]     Ответить | Цитировать Сообщить модератору
 Re: Все таки Oracle впереди планеты всей!  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67534
Блог
StalkerS
я пожалуй тоже тогда начну очень ценить фишку mssql где null не рассматривается как пустая строка

Не смею мешать. Правда, мне даже стало интересно: может быть, именно Вы наконец-то первым на этом свете сумеете рассказать какой-либо конкретный пример из практики, когда эта фишка удобна, приятна, облегчает жизнь и не вызывает острого желания выкинуть её нафиг? Я вот за всю свою жизнь столкнулся только с одним таким случаем.... причём, сколько людей я ни спрашивал, ни этого, ни другого мне никто так и не рассказал.... из чего я делаю вывод, что они не сталкивались даже с одним.

StalkerS
это вы типа к тому, что имеем одну нелогичную вещь, но уравновешиваем ее наличием другой логичной?

Это к тому, что имеем две логичных и удобных фишки.

StalkerS
Кстати это-же означает что в unique столбец мы можем сложить несколько пустых строк...

Именно.

StalkerS
даже не знаю как тут с логичностью...

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

StalkerS
Предлагаю тогда пойти дальше и приравнять в оракле значения null и 0 для integer столбцов, так сказать для окончательной победы логики над здравым смыслом.

Вы, похоже, путаете понятия. Здравый смысл - это соответствие '' и null. "Логика, основанная на здравом смысле" - соответственно то же самое. "Логика, основанная на формальном подходе" - требует их различать. Таким образом, "победа логики над здравым смыслом" возможна только в варианте "различать '' и null".
7 июл 10, 10:30    [9062293]     Ответить | Цитировать Сообщить модератору
 Re: Все таки Oracle впереди планеты всей!  [new]
_мод
Guest
StalkerS
я его обычно трактую как "пустая строка" ) Вполне себе значение

Строка - набор символов. Нет символов - нет строки, т.е. null
а 0 - это значение
7 июл 10, 10:33    [9062322]     Ответить | Цитировать Сообщить модератору
 Re: Все таки Oracle впереди планеты всей!  [new]
SergSuper
Member

Откуда: SPb
Сообщений: 5488
vadiminfo
Поскоку смысл '' до конца не ясен. Но его моно трактовать как, например, "свойство отсутсвует". Однако, тада возможно нужна четырехзначная логика. И типа специальный знак а не ''. Ну, вроде, Кодд был сторонником четырехзначной.
Вот реальный пример. Для платежки формируется назначение платежа. Причем формирование как бы многоуровневое - сначала определяется на самом нижнем уровне, потом если там не определилось на более высоком и т.д. Логично было бы если не определилось возвращать null. Но дело в том что строка назначения платежа может быть пустая и это нормально, т.е. тогда надо возвращать '' и оно должно отличаться от null. Как вышли из положения: решили вместо пустой строки передавать один пробел.
Привыкнуть конечно можно, у кого оракл родной так вообще считают что так и должно быть, но я вот каждый раз ностальгирую :)
7 июл 10, 10:35    [9062340]     Ответить | Цитировать Сообщить модератору
 Re: Все таки Oracle впереди планеты всей!  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
_мод
Строка - набор символов. Нет символов - нет строки, т.е. null


Да щаз...
7 июл 10, 10:35    [9062347]     Ответить | Цитировать Сообщить модератору
 Re: Все таки Oracle впереди планеты всей!  [new]
vadiminfo
Member

Откуда: Обнинск
Сообщений: 4802
StalkerS
если вместо "пусто" в БД идет null, то наличие пустых строк в базе ведь невозможно получается?

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

StalkerS

vadiminfo

Поскоку смысл '' до конца не ясен.

ну здрасте
vadiminfo

Но его моно трактовать как, например, "свойство отсутсвует"

я его обычно трактую как "пустая строка" ) Вполне себе значение


Хорошо. Как, например, понимать пустую строку в поле ФИО?
Вот в Аксцесс есть и пустая строка и NULLS. Так или иначе, если я исчу не пустые значения в общем случае я должен проверять и '' и NULLS. Правда там в Аксцеесе вроде есть возможность различать '' и NULL, типа оно буит что-то выводить. Но на практике мало кто это все заполняет, и при написании запроса часто хотелось бы шобы там были тока NULL.
7 июл 10, 10:40    [9062393]     Ответить | Цитировать Сообщить модератору
 Re: Все таки Oracle впереди планеты всей!  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67534
Блог
dimitr
softwarer
А ещё в оракле есть даже третья очень правильная и логичная фишка - ограничение unique может быть наложено на nullable колонку и допускает наличие null более чем в одной записи.

вообще-то, это поведение декларируется стандартом.

Спасибо, я в курсе. Фишка в том, что не все сервера поддерживают это поведение.

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

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

vadiminfo
При выборке вроде различает не принимает пустую за NULL.

Ээ.... если это действительно писал Вадим, то я глубоко озадачен.

StalkerS
если вместо "пусто" в БД идет null, то наличие пустых строк в базе ведь невозможно получается?

А что именно Вы называете "наличие пустых строк в базе"? С практической точки зрения - в базе лежит значение, которое в ряде случаев (когда удобно) ведёт себя как пустая строка, в ряде случаев (когда удобно) - как null. Единственный минус заключается в том, что эти случаи - когда как - надо знать и понимать; это несколько осложняет жизнь начинающим разработчикам, зато облегчает освоившим.

StalkerS
ага, видимо такие-же как и ты родили похожую фишку в vb.net, который позволяет скомпилить вот такое:

Dim i As Integer
i = Nothing
MessageBox.Show(i.ToString())

Полагаю, это родили те, кого достало из-за идиотизмов Java получать на каждом шагу NullPointerException и постоянно писать нечто типа

if (str == null || str.equals ("")) ...
7 июл 10, 10:47    [9062459]     Ответить | Цитировать Сообщить модератору
 Re: Все таки Oracle впереди планеты всей!  [new]
vadiminfo
Member

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

vadiminfo
При выборке вроде различает не принимает пустую за NULL.

Ээ.... если это действительно писал Вадим, то я глубоко озадачен.


Ну я считал, что если не различала, то запросы

SELECT * FROM NULL_Empty_Str WHERE TECT_NULL IS NULL;

и

SELECT * FROM NULL_Empty_Str WHERE TECT_NULL = '';
вернули бы одно и то же.

Но все выглядит менно так что в табле нет '', а есть NULL.
И при трехзначной логике, мне кажется, это честным.
7 июл 10, 10:57    [9062542]     Ответить | Цитировать Сообщить модератору
 Re: Все таки Oracle впереди планеты всей!  [new]
Зайцев Фёдор
Member

Откуда: Лужки
Сообщений: 5308
Gluk (Kazan)
И лично я предпочитаю, чтобы удобство перевешивало логику (там где они конфликтуют).
Да плевать на твои личные предпочтения, ты скажи лучше -
Gluk (Kazan)
Тебе же сказали, фишка не логичная, не значит неудобная.

где именно "сказали" ? В каком посте, кто сказал?
7 июл 10, 11:02    [9062590]     Ответить | Цитировать Сообщить модератору
 Re: Все таки Oracle впереди планеты всей!  [new]
StalkerS
Member

Откуда: Melbourne
Сообщений: 1345
softwarer
Не смею мешать. Правда, мне даже стало интересно: может быть, именно Вы наконец-то первым на этом свете сумеете рассказать какой-либо конкретный пример из практики, когда эта фишка удобна, приятна, облегчает жизнь и не вызывает острого желания выкинуть её нафиг? Я вот за всю свою жизнь столкнулся только с одним таким случаем.... причём, сколько людей я ни спрашивал, ни этого, ни другого мне никто так и не рассказал.... из чего я делаю вывод, что они не сталкивались даже с одним.

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

Вы, похоже, путаете понятия. Здравый смысл - это соответствие '' и null.

тут моя сильно несогласная. Не надо смешивать принципиально разные вещи в одну кучи из-за каких-то абстрактных удобств. Мне например, тождественность null и "пусто" совсем не кажется удобным. Как я уже приводил пример сверху, кому-то показалось удобным присваивать дефолтные значения value типам в бейсике, а мне это кажется жутко неудобным и путающим стройную логику системы.
Лично для меня удобно - это когда логично. Неужели в конце концов так трудно написать isnull() ?
vadiminfo

Хорошо. Как, например, понимать пустую строку в поле ФИО?

как пустую строку. Если нехочется иметь пустую строку - добавляем check. Почему мы должны отождествлять ее с null?
softwarer

А что именно Вы называете "наличие пустых строк в базе"? С практической точки зрения - в базе лежит значение, которое в ряде случаев (когда удобно) ведёт себя как пустая строка, в ряде случаев (когда удобно) - как null.

это что за хитрая дуальность такая, значение само определяет, что и когда мне удобно? :)
Не понятно на самом деле, Вадим вон пишет что is null и = '' возвращают разные значения.
Имхо, выглядит как усложнение на ровном месте (да еще и несоответствует стандарту)
7 июл 10, 11:31    [9062869]     Ответить | Цитировать Сообщить модератору
 Re: Все таки Oracle впереди планеты всей!  [new]
StalkerS
Member

Откуда: Melbourne
Сообщений: 1345
softwarer
Полагаю, это родили те, кого достало из-за идиотизмов Java получать на каждом шагу NullPointerException и постоянно писать нечто типа

if (str == null || str.equals ("")) ...

не знаю как там в яве, но в дотнет исключение о попытке поступа к null обьекту говорит о серьезных промахах в структуре программе. Идиот здесь программист, а не компилятор
7 июл 10, 11:35    [9062898]     Ответить | Цитировать Сообщить модератору
 Re: Все таки Oracle впереди планеты всей!  [new]
Yo.!
Guest
StalkerS

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

в упор не вижу разницы. пароль он или задан или нет. вопрос или есть или нет.
а в век веб приложений, где бровсеры принципиально неразличают нулл и пустую строку какое либо другое поведение становиться совершенно бессмысленным ...
7 июл 10, 11:49    [9063019]     Ответить | Цитировать Сообщить модератору
 Re: Все таки Oracle впереди планеты всей!  [new]
SergSuper
Member

Откуда: SPb
Сообщений: 5488
softwarer
Правда, мне даже стало интересно: может быть, именно Вы наконец-то первым на этом свете сумеете рассказать какой-либо конкретный пример из практики, когда эта фишка удобна, приятна, облегчает жизнь и не вызывает острого желания выкинуть её нафиг?
вот простой пример
допустим есть какая-то выплата, она может быть привязана к какому-то договору, может нет
если привязана надо писать "выплата 100 руб согласно договору №100", если нет - просто "выплата 100 руб"
если бы null не был бы пустой строкой, можно было бы просто написать
'выплата 100 руб '||nvl('согласно договору №'||dog_num, '')
мелочь, но удобно, приятно, облегчает жизнь и не вызывает острого желания выкинуть её нафиг

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

Откуда:
Сообщений: 11578
pkarklin
hvlad
На мой персональный взгляд, "честный" лог может быть полезен в Firebird только с точки зрения производительности при записи - за счёт последовательного IO. Правда этот IO лишний, так что с ним не всё так хорошо, как некоторые считают. Ну и я не слышал, чтобы лог тр-ций в IB применяли именно для увеличения производительности.


Уже не маловажный фактор, позволяющий, поместив лог на более шустрый диск (массив), увеличить быстродействие операций модификации, за счет отдельного ассинхронного процесса применения транзакция из лога к файлу бд.
Я это всё понимаю. Но - см выше про IB и его лог, живой пример.
Может они конечно что-то не доделали, но об этом мы узнаем только если исходники IB опять откроют

pkarklin
hvlad
Напомню только, что в Firebird используется стратегия записи careful writes, благодаря которой файл БД защищён от поломок из-за краха движка.


Согласитесь, что кроме поломок движка, существует еще множество других типов поломок (программных и аппаратных), которые могут привести к повреждению файла бд. и очень бы хотелось иметь возможность восстановления на момент сбоя.
Ну так она есть. Бекапы. Инкрементные в том числе.
На всякий случай - в Firebird инкрементный бекап многоуровневый, где содержимое уровня N + 1 есть разница по отношению к уровню N. Уровень 0 - полная копия БД.
В MSSQL в этом смысле инкрементный бекап 1-уровневый, т.е. всегда содержит разницу по отношению к последнему полному бекапу, iirc.
Кладём дельту на отдельный диск, обеспечиваем постоянный режим работы в режиме бекапа, и получаем почти полный аналог журналирования.
И - да, дельта будет нормально использоваться движком даже после аварийного рестарта.

pkarklin
hvlad
Если речь о зеркалировании на другой сервер, то накат дельт инкрементного бекапа (а он многоуровневый, в отличие от MSSQL) с успехом заменит накат журналов тр-ций.


Отквоченное соответствует Log Shippingу в MS SQL, и это совсем не зеркалирование, которое позволяет менять "на лету" роли серверов (principal\mirror), причем с автоматическим переподключеним клиента на зеркало в случае выхода из строя основного сервера.
И при чём тут наличие\отсутствие журнала тр-ций ? Mirror обеспечивается вышеуказанным накатом дельт. Переключение ролей серверов и клиентов - задача не для движка БД и от наличия лога не зависит.
7 июл 10, 11:51    [9063053]     Ответить | Цитировать Сообщить модератору
 Re: Все таки Oracle впереди планеты всей!  [new]
vadiminfo
Member

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

vadiminfo

Хорошо. Как, например, понимать пустую строку в поле ФИО?

как пустую строку. Если нехочется иметь пустую строку - добавляем check. Почему мы должны отождествлять ее с null?

Т.е. у чела ФИО пустая строка? Шо это значит? Я как раз не говорил об отождествлении пустой строки с NULL. Я предлагал Вам отказаться от пустой строки, до выяснения ея смысла. Вот NULL - означает, например, не известно значение. Т.е. у чела есть ФИО, но оно не известно. А что тада означает пустая строка?
Другое дело что свойство может отсутствовать. Например, у чела нет крыльев, поэтому длина крыла ротсутствует. Получается, что у Оракла NULL в общем случае использовать и как свойство отсутсвует. А пустую строку моно было бы трактовать как свойство отсутсвует. Но я все еще думаю, что для свойства отсутствует нуно спец знак и четырехзначная логика. Иначе все равно полумеры, путаница.
7 июл 10, 11:53    [9063070]     Ответить | Цитировать Сообщить модератору
 Re: Все таки Oracle впереди планеты всей!  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 30290
pkarklin
Необходимым условием возможности восстановления на момент сбоя (к примеру, поврежден файл бд) является наличие непрерывной цепочки бэкапов (разных типов) и полная модель восстановления. На реальном примере...

разумеется, полностью согласен.

pkarklin
1. Полный бэкап в воскресенье в 0:00;
2. Дифференциальный бэкап каждый день, кроме воскресенья, в 0:00;
3. Бэкап лога транзакций - каждый час.

в FB 2.x без логов это легко и непринужденно реализуется входящей в комплект утилитой nbackup. За исключением того, что при сбое в 17:45 информация, измененная и записанная за 45 минут (с 17:00), в FB все-таки будет потеряна. Потому что есть только "дифференциальные" (инкрементные) бэкапы.
Для восстановления надо будет всего-лишь "склеить" nbackup-ом
- фуллбэкап от воскресенья
- инкремент от четверга
- инкремент от 17:00
по скорости это равно скорости копирования обычных файлов.

pkarklin
Да, но даже Экспресс редакция MS SQL имеет описанный выше функционал.

FB 2.x имеет описанный выше функционал, с упомянутым исключением. В InterBase чуть не так, там это похоже на снапшоты баз, плюс журнал (страниц), но принцип тот же самый. Возможно что в ФБ не хватает журнала как в IB для исключения потерь вот этих 45 минут.
Кстати, в Interbase point in time recovery есть.
7 июл 10, 11:56    [9063106]     Ответить | Цитировать Сообщить модератору
 Re: Все таки Oracle впереди планеты всей!  [new]
Зайцев Фёдор
Member

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

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

У человека есть адрес. Адрес известен - он пустой, т.к. этот человек - бомж.
7 июл 10, 12:00    [9063153]     Ответить | Цитировать Сообщить модератору
 Re: Все таки Oracle впереди планеты всей!  [new]
Dimitry Sibiryakov
Member

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

hvlad

Зеркалирование - в IB испокон века есть shadow для зеркалирования файла
БД (эдакий raid1).
Если речь о зеркалировании на другой сервер

....то тень нормально живёт и на NFS.

Posted via ActualForum NNTP Server 1.4

7 июл 10, 12:00    [9063158]     Ответить | Цитировать Сообщить модератору
 Re: Все таки Oracle впереди планеты всей!  [new]
ОКТОГЕН
Member

Откуда:
Сообщений: 2498
StalkerS, по той логике, можно было бы отождествить FALSE и NULL.
Аргументировать можно как "TRUE - есть, FALSE - нет, NULL - тоже нет".
А потом прикрутить движки таблиц, убрать лишний функционал,
добавить немного глюков, горсточку тормозов и мы получим... MySQL
7 июл 10, 12:23    [9063374]     Ответить | Цитировать Сообщить модератору
 Re: Все таки Oracle впереди планеты всей!  [new]
Dimitry Sibiryakov
Member

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

kdv

в FB 2.x без логов это легко и непринужденно реализуется входящей в
комплект утилитой nbackup. За исключением того, что при сбое в 17:45
информация, измененная и записанная за 45 минут (с 17:00), в FB все-таки
будет потеряна.

Если потери данных допустимы, то standby делается асинхронной
репликацией вплоть до real-time репликации, которая сводит возможные
потери к данным одной транзакции. Если потери данных даже теоретически
не допустимы, то требуется синхронная репликация, делаемая с помощью
shadow или средствами Jaybird/IBO/TPC. Это голая реальность, такая же
как ЗСЭ. Его можно ненавидеть, можно пытаться обойти, но действительно
обойти - не получится. Точка.
"Это я тебе, голуба, говорю как краевед." (с)

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

Posted via ActualForum NNTP Server 1.4

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

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

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

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

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