русский
Germany.ruForen → Архив Досок→ Programmierung

Вопрос по SQL Server 2000 и foreign key

210  1 2 alle
Murr коренной житель21.01.07 01:30
Murr
NEW 21.01.07 01:30 
in Antwort scorpi_ 21.01.07 01:13
Это обычно дерево, чаще всего B-Tree.
-----
В данном случае - наполовину вырожденное.
Во-вторых вовсе не факт, что некая конкретная имплементация
индекса вообще сохраняет нулевые значения в индексе.
-------
Это подразумевает анализ _значения_ данных - маловероятно, тем более, что данные могут быть (практически) любого типа... (Но как тер.возможность - принимается).
#21 
  scorpi_ коренной житель21.01.07 03:56
21.01.07 03:56 
in Antwort Murr 21.01.07 01:30
В ответ на:
В данном случае - наполовину вырожденное.

Тебе объяснить, что значит B? Balanced - оно не может быть вырожденным.
В ответ на:
Это подразумевает анализ _значения_ данных - маловероятно, тем более, что данные могут быть (практически) любого типа...

Ни фига не понял.
#22 
Murr коренной житель21.01.07 13:07
Murr
NEW 21.01.07 13:07 
in Antwort scorpi_ 21.01.07 03:56
Тебе объяснить, что значит B? Balanced - оно не может быть вырожденным.
------
Ну попробуй. Правда перед этим рекомендую порыться в Кнутте. Если помню правильно - том 3-й по изданию 71-го года.
Ни фига не понял.
------
Ты говоришь, что какие-то записи могут быть неиндексированными (не включенными в индекс), при )_условии_, что _значения_ индексируемых (ключевых) полей - NULL.
#23 
  scorpi_ коренной житель21.01.07 15:19
NEW 21.01.07 15:19 
in Antwort Murr 21.01.07 13:07
В ответ на:
Ну попробуй. Правда перед этим рекомендую порыться в Кнутте. Если помню правильно - том 3-й по изданию 71-го года.

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

Какое значение? NULL это отсутствие значение, и если ты включаешь NULL в индекс, то тебе при каждом сравнении приходится делать лишние телодвижения. Кстати Oracle на самом деле не включает NULL в индекс -
В ответ на:
One problem with all relational databases is having the optional ability to index on a NULL column. By default, relational databases ignore NULL values (because the relational model says that NULL means "not present"). Hence, Oracle indexes will not include NULL values. http://www.dba-oracle.com/oracle_tips_null_idx.htm

#24 
Murr коренной житель21.01.07 18:25
Murr
NEW 21.01.07 18:25 
in Antwort scorpi_ 21.01.07 15:19
если ты хочешь что-либо доказать мне, то приводи конкретные цитаты.
------
Для этого надо искать Кнута - под руками его нет. Да и не требуется - Деревья, двоичные, сбалансированные предполагают что их можно сбалансировать. При одинаковых значениях балансировка не получается и придумываются различные расширения... Вообщем - посмотри у Кнута условия применимости...
Hence, Oracle indexes will not include NULL values.
------
Хммм... буду знать, что под Ораклом возможны проблемы с non-enforced реляциями...
#25 
  scorpi_ коренной житель21.01.07 18:57
NEW 21.01.07 18:57 
in Antwort Murr 21.01.07 18:25
В ответ на:
Да и не требуется - Деревья, двоичные, сбалансированные предполагают что их можно сбалансировать. При одинаковых значениях балансировка не получается и придумываются различные расширения...

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

Я уже сказал - без конкретных возражений или цитат я и дальше буду считать тебя просто болтуном.
#26 
Murr коренной житель21.01.07 21:13
Murr
NEW 21.01.07 21:13 
in Antwort scorpi_ 21.01.07 18:57
они гарантируют сбалансированность после каждой операции.
-------
Дерево балансируется после определения положения нового элемента. И именно *предполагается* что положение элемента можно определить однозначно, что, однако, достижимо не всегда.
Заданные ключи:
1. аааааа
2. аааааа
3. аааааа
Приведи дерево и обоснуй почему оно такое. Детали найдешь именно там где было указано - Кунут, т3, 6.2.3. Сбалансированные деревья.
#27 
  scorpi_ коренной житель21.01.07 21:32
21.01.07 21:32 
in Antwort Murr 21.01.07 21:13, Zuletzt geändert 21.01.07 21:36 (scorpi_)
В ответ на:
И именно *предполагается* что положение элемента можно определить однозначно, что, однако, достижимо не всегда.

При чём тут однозначность? B-дерево всегда полностью сбалансировано. Как будут расположены одинаковые ключи абсолютно никого не волнует. Вообще мне кажется, что ты путаешь B-tree и binary search tree.
#28 
Murr коренной житель21.01.07 22:41
Murr
NEW 21.01.07 22:41 
in Antwort scorpi_ 21.01.07 21:32
B-дерево всегда полностью сбалансировано.
------
В свое время я "переводил" кнутовское описание в сишный код. Там есть вполне определенное условие сохранения сбалансированности дерева. Нарушение этого условия непозволяет иметь сбалансированное дерево. Любой вариант обхода этого ограничения предполагает какую-либо специализированную обработку "листьев", содержащих более одного элемента.
Вообще мне кажется, что ты путаешь B-tree и binary search tree.
------
В смысле - организованную хранимую структуру и аналогичный метод? - это врядли, я еще не настолько пьян...
#29 
  scorpi_ коренной житель22.01.07 00:49
NEW 22.01.07 00:49 
in Antwort Murr 21.01.07 22:41
В ответ на:
В свое время я "переводил" кнутовское описание в сишный код. Там есть вполне определенное условие сохранения сбалансированности дерева. Нарушение этого условия непозволяет иметь сбалансированное дерево. Любой вариант обхода этого ограничения предполагает какую-либо специализированную обработку "листьев", содержащих более одного элемента.

Вот для BST как раз и возможны случаи с линейной зависимостью. Для B-дерева - нет.
В ответ на:
В смысле - организованную хранимую структуру и аналогичный метод?

ОК, я уже понял, что ты не знаешь, что такое B-дерево. Сравни - http://en.wikipedia.org/wiki/B-tree и http://en.wikipedia.org/wiki/Binary_search_tree
#30 
1 2 alle