Справочник от Автор24
Найди эксперта для помощи в учебе
Найти эксперта
+2

Методы поиска по дереву в базе данных

Основные понятия

Определение 1

Деревом называется конечное множество, которое состоит из элементов, называемых узлами, для которых выполняются следующие правила:

  1. Узлы связаны отношением «исходный-порожденный».
  2. Порожденный узел не может стать исходным для своего предка, то есть отношение действует в одну сторону.
  3. Только один узел может не иметь исходного. Он называется корневым.
  4. Все узлы, кроме корневого, имеют один и только один исходный.
  5. Каждый узел может иметь неограниченное количество порожденных узлов.
Определение 2

Количество порожденных узлов данного узла называется его степенью.

Статья: Методы поиска по дереву в базе данных
Найди решение своей задачи среди 1 000 000 ответов
Определение 3

Узел с нулевой степенью (не имеющий порожденных) называют листом или концевым узлом.

Определение 4

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

Определение 5

Если в некотором дереве существенен порядок следования для узлов, имеющих общий исходный узел, то такое дерево называется упорядоченным.

Определение 6

Упорядоченное дерево, имеющее степень не больше, чем 2, называют бинарным деревом или двоичным деревом.

Поиск по бинарному дереву

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

«Методы поиска по дереву в базе данных» 👇
Помощь эксперта по теме работы
Найти эксперта
Решение задач от ИИ за 2 минуты
Решить задачу
Помощь с рефератом от нейросети
Написать ИИ
Пример 1

Рассмотрим следующую задачу. Дана таблица, где указаны фамилии абитуриентов и средние баллы аттестатов. Нужно найти средний балл абитуриента с фамилией Петров.

Методы поиска по дереву в базе данных. Автор24 — интернет-биржа заказчиков и авторов

Ключом поиска в данном случае будет поле familia. При построении дерева список сначала делится пополам и корневым узлом становится ключ «Искандеров». Далее пополам делится список фамилий слева от корневого узла (ключ «Атаманова» )и справа от корневого узла (ключ «Овезова»). Узлы «Атаманова» и «Овезова» становятся порожденными для корневого узла. Далее пополам делятся списки фамилий, находящиеся слева и справа от ключей «Атаманова» и «Овезова» и т.д.

Методы поиска по дереву в базе данных. Автор24 — интернет-биржа заказчиков и авторов

Поиск по построенному дереву осуществляется следующим образом:

  1. Проверяется равенство «Федоров»= «Искандеров». Оно ложно.
  2. Проверяется неравенство «Федоров» > «Искандеров». Оно истино, значит поиск переносится в правое поддерево корневого узла.
  3. Проверяется равенство «Овезова»= «Федоров». Оно ложно.
  4. Проверяется неравенство «Федоров»> «Овезова». Оно истино, значит поиск переносится в правое поддерево узла «Овезова».
  5. Проверяется равенство «Федоров»= «Федоров». Оно истинно, значит, поиск окончен.

Данные о среднем балле определяются в соответствии с найденным ключом.

Таким образом , при каждом переходе в новое поддерево, существенно сокращается область поиска. При прямом переборе фамилия Федоров была бы найдена за 9 шагов. При использовании поиска по дереву – за пять.

Поиск по В-дереву

Кроме поиска по бинарным деревьям часто применяется поиск по В-деревьям.

Определение 7

В-деревом n-го порядка называется дерево, обладающее следующими свойствами:

  1. Каждый узел содержит не более 2n ключей;
  2. Каждый узел, кроме корневого, содержит не менее n ключей;
  3. Если внутренний узел (не являющийся листом) содержит m ключей, то у него имеется m+1 порожденных узлов.
  4. Все листья находятся на одном уровне.

Поиск по такому дереву осуществляется следующим образом. Пусть нужно найти ключ К. Имеется узел c ключами k1,k2,…km и порожденные им узлы p0, p1,…pm

Методы поиска по дереву в базе данных. Автор24 — интернет-биржа заказчиков и авторов

  1. Сначала происходит поиск ключа в корневом узле. Если ключ там обнаруживается, то поиск завершается.
  2. Если ключ К не обнаруживается в корневом узле, то происходит последовательное сравнение ключа К с ключами данного узла.
  3. Если найдутся такие ключи ki и ki+1, что ki , то поиск переносится в узел pi
  4. Если К>km, то поиск переносится в узел pm.
  5. Если K , то поиск переносится в узел p0.
  6. Алгоритм повторяется сначала для выбранного узла.
Пример 2

На рисунке приведен пример В-дерева второго порядка.

Методы поиска по дереву в базе данных. Автор24 — интернет-биржа заказчиков и авторов

Чтобы найти в этом дереве ключ 56 нужно выполнить следующий алгоритм:

  1. Проверить утверждение 40=56. Оно ложно, поэтому поиск продолжается.
  2. Проверить утверждение 40
  3. Последовательно проверить утверждения 50=56 и 60=56. Оба утверждения ложны, поэтому нужно искать следующий порожденный узел для поиска.
  4. Найти ключи, между которыми находится искомый: 50
  5. Последовательным сравнением найти ключ 56 в выбранном узле.
Воспользуйся нейросетью от Автор24
Не понимаешь, как писать работу?
Попробовать ИИ
Дата написания статьи: 11.09.2016
Найди решение своей задачи среди 1 000 000 ответов
Крупнейшая русскоязычная библиотека студенческих решенных задач
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot