Гость
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Btree значения / 14 сообщений из 14, страница 1 из 1
19.05.2019, 22:08
    #39815134
sergq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Btree значения
Здравствуйте.

Возможно ответ на вопрос прост как три копейки. Пните)
Перечитал про деревья в индексах.
Везде написано, что во всех типах нод хранятся ключи . Что логично.
Но везде же вроде как написано , что значения хранятся только в листьях.
Применительно к базам данных значение это rowid. И их может быть много.

А как же те ключи , которые находятся не в листовых нодах? Как быть в данном случае со значениями ?

И такого момента применительно к хранению индексов в базах данных недопонимают .

Практически везде принято, что одна нода дерева равна одной странице. За пределы страницы нода не выходит. Количество ключей уровня дерева равно максимальному количеству , которое влезет на страницу с учётом служебной информации. Тогда слегка непонятно где ж в данной схеме хранятся значения ключей . Те самые rowid
...
Рейтинг: 0 / 0
20.05.2019, 08:49
    #39815211
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Btree значения
sergq, судя по терминологии (rowid) это вопрос по Ораклу. Имеет смысл его перенести в профильный форум.
...
Рейтинг: 0 / 0
20.05.2019, 11:13
    #39815262
OoCc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Btree значения
sergqЗдравствуйте.

Возможно ответ на вопрос прост как три копейки. Пните)
Перечитал про деревья в индексах.
Везде написано, что во всех типах нод хранятся ключи . Что логично.
Но везде же вроде как написано , что значения хранятся только в листьях.
Применительно к базам данных значение это rowid. И их может быть много.

А как же те ключи , которые находятся не в листовых нодах? Как быть в данном случае со значениями ?

И такого момента применительно к хранению индексов в базах данных недопонимают .

Практически везде принято, что одна нода дерева равна одной странице. За пределы страницы нода не выходит. Количество ключей уровня дерева равно максимальному количеству , которое влезет на страницу с учётом служебной информации. Тогда слегка непонятно где ж в данной схеме хранятся значения ключей . Те самые rowid
Я думаю тебе стоит почитать про btree .
...
Рейтинг: 0 / 0
20.05.2019, 11:14
    #39815263
alex55555
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Btree значения
sergqА как же те ключи , которые находятся не в листовых нодах? Как быть в данном случае со значениями ?
Гугли про двоичные деревья, для начала.

В узлах производится сравнение на больше/меньше, и в результате получается направление "углубления в дерево", поэтому в узлах не ключи, а информация для принятия решения при поиске.
...
Рейтинг: 0 / 0
20.05.2019, 13:50
    #39815342
sergq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Btree значения
alex55555sergqА как же те ключи , которые находятся не в листовых нодах? Как быть в данном случае со значениями ?
Гугли про двоичные деревья, для начала.

В узлах производится сравнение на больше/меньше, и в результате получается направление "углубления в дерево", поэтому в узлах не ключи, а информация для принятия решения при поиске.

Это то я понимаю . Непонимаю одного.
Допустим страница вмещает 500 ключей . А у одного из ключей допустим 20 тысяч значений. Ключ то поместится на странице. Но куда значения складываются в самой базе. Надо ж куда то положить 20 тысяч значений rowid по данному ключу )
Вот соответственно и хочется понять где что postgre что другие базы будут хранить эти 20 тысяч значений ключа .
Вопрос да, не по программированию как таковому. Вопрос скорее по либо postgre либо по fb
...
Рейтинг: 0 / 0
20.05.2019, 14:01
    #39815346
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Btree значения
Значения хранятся в таблице.

В индексе (оно-же B+Tree) хранятся только пары (key,rowid).

Для Оракла существует дополнительная опция т.н. Index Organized Table (IOT), там в листовых вершинах
лежат значения но подобная реализация накладывает сходу ограничания на макс. длину строки такой
таблицы. Технически точно я не помню надо смотреть доки.

Как в Postgres - я не знаю т.к. не специалист но 99% что индексная структура будет подобной.
Она вообще почти во всех DBMS не сильно отличается.
...
Рейтинг: 0 / 0
20.05.2019, 14:05
    #39815349
OoCc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Btree значения
sergqalex55555пропущено...

Гугли про двоичные деревья, для начала.

В узлах производится сравнение на больше/меньше, и в результате получается направление "углубления в дерево", поэтому в узлах не ключи, а информация для принятия решения при поиске.

Это то я понимаю . Непонимаю одного.
Допустим страница вмещает 500 ключей . А у одного из ключей допустим 20 тысяч значений. Ключ то поместится на странице. Но куда значения складываются в самой базе. Надо ж куда то положить 20 тысяч значений rowid по данному ключу )
Вот соответственно и хочется понять где что postgre что другие базы будут хранить эти 20 тысяч значений ключа .
Вопрос да, не по программированию как таковому. Вопрос скорее по либо postgre либо по fb
цепочка страничек. так же как и если бы одно значение не помешалось на страничку.
...
Рейтинг: 0 / 0
21.05.2019, 13:48
    #39815794
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Btree значения
sergqДопустим страница вмещает 500 ключей
Если всё множество rowid для одного ключа не умещается на одну страницу - его хвост выпихнут на другие страницы с этим же ключом.
...
Рейтинг: 0 / 0
21.05.2019, 15:17
    #39815859
Partisan M
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Btree значения
alex55555Гугли про двоичные деревья, для начала.

btree не является двоичным деревом. Неохота комментировать всё, что тут понаписали. Но автору вопроса действительно быстрее было бы найти описание структуры btree поиском в google.
...
Рейтинг: 0 / 0
21.05.2019, 15:20
    #39815862
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Btree значения
Кнут
Том 3. Сортировка и поиск
https://www.ozon.ru/context/detail/id/2527036/
...
Рейтинг: 0 / 0
21.05.2019, 15:54
    #39815884
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Btree значения
Вы оба правы. В данном случае автор спрашивает по блочно-организованной структуре данных
https://en.wikipedia.org/wiki/B _tree которая используется в БД. В качестве пруфа, он указывает rowid.
Это чисто базячная терминология.

Но бинарное дерево https://en.wikipedia.org/wiki/Binary_tree это теоретический прародитель Дерева с плюсом+ N-го
порядка если соптимизировать хранение бинарных нод в блок но при этом сохранить исходящие связи.
...
Рейтинг: 0 / 0
22.05.2019, 15:55
    #39816611
alex55555
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Btree значения
Partisan Mbtree не является двоичным деревом.
Двоичное есть частный случай b. Ну и принцип идентичный.
...
Рейтинг: 0 / 0
22.05.2019, 16:04
    #39816623
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Btree значения
Мне кажется идея смешивать в одну кучу бинарные деревьев и b-tree - не из лучших
Больше путаницы, чем смысла
Дополнительную и большую путаницу вносить сокрашение. Т.к. предполагаешь, что b-tree это сокрашение от binary, а на самом деле, это _отдельная_ структура.

Т.ч. проще считать, что B-Tree это - B-Tree, а бинарное дерево - это бинарное дерево. А совпадение в первой буквы - это происки врагов человечества, что бы всех запутать.

IMHO & AFAIK
...
Рейтинг: 0 / 0
23.05.2019, 08:30
    #39816878
kealon(Ruslan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Btree значения
Leonid Kudryavtsev,

обычно говорят что
авторA red/black tree is more or less equivalent to a 2-3-4 tree, which is just a type of B-tree
и не будет никакой путаницы
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Btree значения / 14 сообщений из 14, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]