Реализация операции селекции с использованием индексов

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



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

Помещение записи на место. Естественно, что вся работа производится в буферах оперативной памяти. Листовая страница, в которую требуется занести запись, считывается в буфер, и в нем выполняется операция вставки. Размер буфера должен превышать размер страницы внешней памяти.

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

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

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

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

4. Реализация селекции

Для выполнения операции селекции необходимо задать интервал выборки, в диапазоне которого будут выбраны необходимые записи.

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

Блок-схема процедуры обработки события нажатия клавиши "Выбрать записи" представлена на рисунке 2.

индекс программа селекция операция

Рисунок 2 - Блок-схема обработки события нажатия клавиши "Выбрать записи"

Блок-схема процедуры селекции представлена на рисунке 3.

Рисунок 3 - Блок-схема алгоритма селекции

5. Примеры работы приложения

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

С помощью пункта меню "открыть" можно просматривать данные, хранящиеся в файле.

Пример работы приложения представлен на рисунке 4.

Рисунок 4 - Пример работы приложения

Пример выполненной селекции представлен на рисунке 5.

Рисунок 5 - Пример выполненной операции селекции

Заключение

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

)Во всех случаях полезное использование пространства вторичной памяти занимает свыше 50%. С ростом степени полезного использования памяти не происходит снижения качества обслуживания.

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

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

)Неизменная упорядоченность по ключу обеспечивает возможность эффективной пакетной обработки.

Задача, поставленная в курсовой работе выполнена, цель достигнута.

Список литературы

1.Конноли Т., Бегг К. Базы данных. Проектирование, реализация и сопровождение. Теория и практика. [Текст]: Пер. с. англ. - М.: Издательство Вильямс, 2003. - 296 с.

2.Рыженков, Д.В. Курс лекций по диiиплине "Базы данных", 2009.

.Швецов, В.И., Визгунов, А.Н., Мееров, И.Б. Базы данных [Текст]. - Учебное пособие. - Нижний Новгород: Издательство ННГУ, 2004. - 217 с.

Приложение А

Листинг программы

{$O-}Unit1;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, Menus;= 'datafile. dat';= 'indexfile. dat';= 'rootfile. dat';= 0;= 2;= record: Integer;: string [100];;= record, Adr: Integer;;= record: Integer;: Boolean;: array [1.2*MD-1] of TKeyAdr;: array [1.2*MD] of Integer;;= class (TForm): TGroupBox;: TEdit;: TEdit;: TLabel;: TLabel;: TButton;: TMemo;: TLabel;: TLabel;: TGroupBox;: TButton;: TLabel;: TEdit;: TEdit;: TMainMenu;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TLabel;: TLabel;FormCreate (Sender: TObject);Button1Click (Sender: TObject);FormDestroy (Sender: TObject);Button6Click (Sender: TObject);N2Click (Sender: TObject);N6Click (Sender: TObject);N7Click (Sender: TObject);N8Click (Sender: TObject);N4Click (Sender: TObject);FormClose (Sender: TObject; var Action: TCloseAction);

{ Private declarations }

{ Public declarations };, CountWrite,ListSize: Integer;: TForm1;, IndexFile, RootFile: file;: Integer;: array [1.1000] of Integer