Научная статья на тему 'Выбор способа хранения отношений в информационных системах'

Выбор способа хранения отношений в информационных системах Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
242
31
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
КОРТЕЖ / ДОМЕН / СТРУКТУРА ДАННЫХ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Копейкин М.В., Спиридонов В.В., Шумова Е.О.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Копейкин М.В., Спиридонов В.В., Шумова Е.О.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Выбор способа хранения отношений в информационных системах»

УДК 519.8

М.В.КОПЕЙКИН, канд. техн. наук, доцент, ord@yandex.ru В.В.СПИРИДОНОВ, канд. техн. наук, доцент, vt1rp2@yahoo.com Е.О.ШУМОВА, ст. преподаватель, shumovaeo@yandex.ru

Национальный минерально-сырьевой университет «Горный», Санкт-Петербург

M.V.KOPEIKIN, PhD in eng. sc., associate professor, ord@yandex.ru V.V.SPIRIDONOV, PhD in eng. sc., associate professor, vt1rp2@yahoo.com E.O.SHUMOVA, senior lecturer, shumovaeo@yandex.ru National Mineral Resources University (Mining University), Saint Petersburg

ВЫБОР СПОСОБА ХРАНЕНИЯ ОТНОШЕНИЙ В ИНФОРМАЦИОННЫХ СИСТЕМАХ

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

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

Статья посвящена анализу кортежного (традиционного) и доменного (транспонированного) способа хранения отношений.

Ключевые слова: кортеж, домен, структура данных

THE CHOICE OF DATA RELATIONS STORING IN INFORMATIONAL SYSTEMS

Storing and processing data of mineral resources usually imply large amounts of data. So increasing data search operation speed is the subject of a notable interest.

User of any relational data base, as a rule, imagines it as a set of normalized relations (tables). These tables, at the physical level, can be represented in the different ways.

The paper is dedicated to the analysis and comparison of cortege (traditional) and domain (transposed) ways of storing data relations.

Key words: cortege, domain, data structure.

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

Для сравнения кортежного и доменного способа хранения отношений базы данных (БД) на диске рассмотрим характеристики запросов к БД. Пусть в системе хранится только одно отношение R с числом корте-

жей m и числом полей в каждом кортеже п. Отношение R упорядочено по значению первичного ключа (номер служащего), определенного на одном атрибуте.

Пусть отношение R задано кортежами {С1, 01, П1}, {С2, 02, П2}, {С3, 03, П3}, {С4, 04, П4}, где С1, С2, С3, С4 - номера служащих; 01, 02, 03, 04 - номера отделов; П1, П2, П3, П4 - номера проектов.

Разобьем все запросы к R на три класса: 1-й класс - считывание в оперативную память (ОП) всего файла; 2-й класс - опреде-

ление значений к полей записи, не принадлежащих ключу отношения Я; 3-й класс -считывание / выборочных записей по ключу отношения Я. Тогда количество запросов первого и второго классов соответственно

1 9 "

X1 = 1; X2 = I

7=2

I cm

i=1

j-1

(1)

Запросы класса X2 учитывают все сочетания значений элементов доменов, входящих в отношение R. Поисковым образом служит (n -1)-е поле отношения R со всевозможным сочетанием элементов, входящих в (n -1)-й домен по одному из предикатов И, ИЛИ, НЕ или их сочетанию. Формула (1) определена для предиката И.

Упростив (1) с использованием бинома Ньютона, получим

,2 (2m)n - n2m + n -1 X —-.

2m -1

В классе 2 для отношения R, упорядоченного по ключу «Номер служащего», примером может служить запрос «Найти номера служащих, работающих в отделе О1 над проектами П1 и П2»:

SELECT № служ FROM R

WHERE № отдела = О1 AND (№ проекта = П1 AND № проекта = П2).

Для ответа на запрос типа X2 файл необходимо считывать поочередно по записям, так как анализу подлежат все m записей. Математическое ожидание числа обрабатываемых полей (числа доменов) в одном запросе

М0А2

= n/2.

(2)

Число запросов третьего класса

А3 =

n — 1 m—1 i

1 cn—1 ' 1 Cm

j=1

или после упрощения

л3 — [(2n-1 - 1)(2m - 2)] — 2'

i=1

m+n—1

-2m -2n + 2.

При этом математическое ожидание числа обращений к жесткому диску

250 _

МО 3 = т/2 = /, а математическое ожи-

X3 ж.д

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

n

МО +1.

А 2

Примером запроса, относящегося к классу 3, для отношения R может служить запрос «Найти номера отделов, в которых работает служащий С1 или (и) С2»:

SELECT DISTINCT № отдела FROM R WHERE (№ служ = С1 OR № служ = С2).

Нетрудно заметить, что число запросов

л 2 л 3

класса Л превосходит число запросов Л даже по одному предикату И на величину

2mn - n2m + n -1

(2m - 1)(2m+n-1 - 2m - 2n + 2)

= 2m

mn-2m-n+1

что позволяет сделать вывод, что для Я запросы типа X2 являются определяющими.

Определим среднее время ответа на запрос каждого класса с учетом кортежного и доменного способов хранения отношения Я.

Кортежная организация. В связи с оценочной характеристикой среднего времени ответа на запросы, время, связанное с особенностями организаций отношений на диске (прямая, индексная и т.д.) и программами методов доступа, не учитывается. При ответе на запрос класса X1 временные затраты

K m т size(rec)

tK = I ti +-^

А ._. t

i=1 1пер

(3)

где - время поиска т-й записи на диске; ¿пер - время передачи данных между диском и оперативной памятью; з12е(гее) - длина в байтах записи (кортежа) отношения Я, з12е(гее) = 1п; I - длина /-го поля кортежа; т - количество кортежей в Я.

Пусть необходимо определить значение к полей кортежа, не принадлежащих ключу отношения Я (запрос класса X2). При этом

k m msize(rec) , 5m + 3

£ = Ii +—T^ + * —

(4)

i=1

пер

ISSN 0135-3500. Записки Горного института. Т.208

реднее быстродействие ЭВМ; ло поисковых операций [2]. ета на вопрос класса А2 необхо-все записи файла (первая со-формулы), передать их в опера-ять для обработки (вторая сои найти в неупорядоченных чения элементов домена, удов-поисковому запросу. Последе определяет время для поиска еупорядоченном векторе. еобходимо проанализировать / записей (кортежей) отношения юсов А3). Тогда

х

_/^е(гес) ,.18 log2 / +13

и

+ /

пер

V

(5)

оставляющая формулы (5) учи-я поиска в упорядоченном век-

ая организация. Рассмотрим гния отношения R по доменам,

записей в файле R 1 равно п, а юлей в записи т. Пусть необхо-> весь файл в ОП. Тогда

_ ^ + да^е^ош)

г _1

и

(6)

пер

- длина в байтах домена от-.^(ёош) _ 1т.

обходимо определить значения ежа отношения R (класс 2), то

к^е^ош) , 5т + 3 А +---- + . (7)

и

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

пер

V

, что в отличие от подобной ри кортежной организации в ае передаются в ОП и обраба-! все п полей, а только те к из е непосредственно входят в

им среднее время ответа на за-ласса при доменной организа-ия R:

да^е^ош) 5т + 3

а +—^—^+п——. (в)

1 'пер '

Далее попарно сравним времена из (3)-Нетрудно видеть что _ ^ . Учитывая

А А

(4) и (7) запишем

А 2 _ <2 - £ +

Л Л Л . ,

г_1

п 8^е(ёош) /г- ,

2 п I 5т + 3

Сер + 21 V

пер

т т8^е(гес) п (5т + 3

- г_/г ^ 21

Для реальных файлов т >> п, поэтому

2 т п.

I < IЧ и 2

г _1 г_1 I

-1т

т1п

<-

пер

пер

из (9) получим

АА2 _1 'г -I гг < 0.

(

(

г _1

г _1

Следовательно, доменная организа предпочтительнее кортежной.

Аналогичным образом оценим разно

О К

А 3 _' 3 -' 3. При этом, учитывая соот

А А А

шения (5) и (8), найдем

п+1 2

— +1 Ь^е^ош) , „

т т . . ч 2 2 х ' т

-1 - - т

г_1

пер

т

l8log2 т+13

V

V Л

Знак величины А 3 определяется значения

А

-+1

т

2'~ ~2 I 'г и I ^.

г_1 г_1

Так как вторые составляющие в (5 (8) равноценны, а третьи составляющие порядок меньше, чем первые, то приб женно можно записать

п , т —+1 — 22

АА3 _ I и -1 гг .

А г _1 г _1

п

п

1

Тогда

n n , m

— —+1 —

2 m 2 2

a = A.2 -Д.3 = Zti -Zti - Z ^ + Z , A A i=i i=i i=i i=i

учитывая, что m >> n запишем

m

2~

A = -Zti, откуда Д< 0.

i=1

Отрицательный знак A указывает, что среднее время ответа на запрос при доменной организации меньше, чем при кортежной организации отношения R.

Учитывая изложенное, можно сделать вывод, что доменная организация при условии, что m >> n, более эффективна. Однако при малых значениях f и использовании методов вторичного индексирования вопрос о предпочтительности доменной организации остается открытым. Полученные уравнения для времени поиска записей при доменной и кортежной организации файла сведем в таблицу, учитывая, что формулы, записанные для AI,1, А\,2 и AI,3, эквивалентны формулам в ячейке Ац,ь AII2, и AII3 соответственно, т.е. выполняются эквивалентные операции, и рассмотрим влияние способа доступа и организации файла на временные характеристики. Здесь индексы I и II - соответствуют кортежной и доменной организациям, индексы 1, 2 и 3 - последовательной, индексной и прямой организациям.

Заметим, что время ti для каждой из формул зависит от способа доступа и способа организации файла. Получим время ответа на запросы (для однозначности считаем, что задан индексно-последовательный файл) с числом записей m; для удобства примем, что поля записи (всего полей n) имеют равную длину (в байтах).

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

Действие всех запросов ограничено на некотором интервале времени. Определим суммарное время Т для ответа на запрос для файла с кортежной организацией

T = X1 A11 + X2 A12 + X3 A13,

где X - количество запросов /-го типа.

Определим время ответа на запросы для каждого типа запросов. При последовательном способе доступа[3 ]

^посл =1,25( Л ц ^ + тоб ^

где Лц - число цилиндров, занимаемых файлом, N = Ыд / ё; ё - количество дорожек в цилиндре; Лд - число дорожек, занимаемых файлом,

N д =

m

l -1

1 + д.т *з

l0 + kl3

/дт - длина трека; 1з - длина логической записи (блока); /0 - длина служебной информации; к - коэффициент, учитывающий расположение записей на дорожке; -время перемещения механизма доступа на один цилиндр; т - число записей (блоков) в файле; tоб - время полного оборота диска.

Время поиска записей при доменном и кортежном способах хранения файла

Способ хранения

Организация файла

последовательная

индексная

прямая

Кортежный Доменный

m mcard(m)

t = Х ti +——^

Щ ncard(a)

t = X ti + w

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

m mcard(m) k 5card(n,) + 3 t = X tt +-— + X-j-

j=1

V

F Fcard(m) F 18log2 card(mj) +13

t = X ti +-— + X-j—

ki kcard(a) ,5m + 3

X^ + + ^-TT-

i=1 tnep V

tnep j=1

"i ncard(a)

t = X ti +-— + n

V

5m + 3

V

i=1

i=1

i=1

пер

пер

t

=1

i =1

пер

пер

252 _

ISSN 0135-3500. Записки Горного института. Т.208

I т - /з

Здесь выражение 1 + ——-

¡о + к1з

учитывает

количество записей (блоков), помещающейся на одной дорожке; сумма Nц+ т'об -

время для считываний последовательного набора данных; коэффициент 1,25 - последовательную обработку индексного файла. Данная формула учитывает также и время передачи между оперативной памятью и магнитным диском (МД).

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

Время на считывание записи данных равно полному обороту диска [1], а время на поиск и чтение индекса дорожки цилиндра -половине оборота, т. е. должно быть учтено время на передачу одной записи между МД и ОП, поэтому

Тпр _ 2(ис + 'об)т

(23)

где ип - среднее время перемещения механизма доступа; 'об - время полного оборота диска; тг - количество считываемых записей.

Тогда время для файла с кортежной организацией

Т1 _ А11 [1,25(//ц+ тг1 об )] +

г _1

I А2, Г£ [1,25(( ц + тг'об )]-

к _1 V г _1

+ (п - Ф'испт +

( т

(п - 1))5сагё(/7) + 3

\\

+

А3 3 + !А3к к_1

т,

2Ж + 'об )тг- + :2 'исп г _1 2

(п — +1

V 2 у

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

Тип запроса А2, кортежная организация файла. Массив R задан кортежами С1, О1, П1; С2, О2, П2; С3, О3, П3; С4, О4, П4. Тогда время поиска местоположения поля записи

'з _ А + 'з2,

где - поиск местоположения записи,

_ tИcИmг; - поиск местоположения поля

записи, _ tИcИm ; - время для формирования адреса записи тг .

Адрес записи тг

Аг _ А + (г - 1)/з где А1 - базовый адрес массива, равный адресу 1-й записи; ¡\ - длина записи, т.е. количество ячеек ОП для хранения записи ¡з.

Время 'исп зависит от характеристик ЭВМ: от времени цикла обращения к ОП, времени выборки (разрядности процессора) и времени выполнения операций, формирующих исполнительный адрес.

Тогда общее время 'з _ 2'испт .

Время для ответа на запросы типа А2

п 2

!А2к

к=1

I [1,25(( 'п + тг'об )]+(п - 1)2'и

г=1

т

+

(п -1)

5сагё(п)+ 3

V

Тип запроса А, кортежная организация файла. Для ответа на запросы типа А3 необходимо считывание в среднем т/2 записей, среднее число полей, подлежащих анализу п /2 +1. После считывания прямым методом доступа т , записи (всего их т/2) производится анализ (п /2 +1) полей, т.е. время для поиска (п /2 +1) полей 'з _ 'исп (п /2 +1). Тогда время для ответа на запросы типа А3

А' 3 I А3, к _1

I 2 (п

г _1

+ '

об

\ тг (п / )тг + -у*исп I ^ + 1

т

i n-1 .

X3 = X сn-1 = 2n-1 -1. i=1

Время для ответа на запросы для файла с доменной организацией

Т11 = X1 ¿[((V ц ^ + п^)]+

i=1

X X2 х[1,25(( ц tn + nto6 )] +

+

h=1 i=1

+ ni tHcn + n

5card (n ) + 3

+

+

X X3h ¡2у((( + to6 )]-

h=1

2

+ X

i=1

V

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

m 18log2 m +13 2 V

mn

+

2 i('Л + 'об )ni + 'исп —

где у - коэффициент, учитывающий переходящие записи.

Заметим, что, используя индексную организацию для файла с доменным способом хранения, необходимо применять средства, позволяющие использовать кластерные файлы или, например, прицепы, или другие способы списковой организации данных. Сделанное замечание не влияет на расчетные формулы.

Тип запроса X2, доменная организация файла. В ОП массив Я располагается в форме С1, С2, С3, С4; О1, О2, О3, О4; П1, П2, П3, П4. В этом случае ^ = t гисп, а время поиска (п - 1) полей записи отношения Я получим в виде tз = (т - 1)^сп . Время для ответа на запросы X2 при доменной организации

T11 = XX2h h=1

nXh ф,25((ц'П + n^tоб)]-

i=1

+ "Лсл + n

5card (n ) + 3Ч

V

где пХА учитывает число необходимых доменов при выполнении запросов X2 . 254 _

Так как среднее число пХА = п -1, то для подсчета среднего времени Т 2 принимаем, что файл считывается последовательно. Необходимо заметить, что файл может обслуживаться и прямым методом доступа

при условии ТХ2 = ТХ2 .

Тип запроса X3, доменная организация файла. Запрос типа X требует считывания (п/2 + 1) записей (полей) Я, причем будем считать, что одна запись содержит ключи отношения Я и упорядочена. При ответе на запросы X3 требуется в среднем исследовать т/2 полей. Для ответа на запрос типа X3 необходимо считать в ОП запись пг, содержащую значение ключей Я. В считанной записи необходимо определить местоположение поисковых полей (т/2), т.е. произвести поиск в упорядоченной таблице. Время для поиска одного поля (18 ^2т + 13)/V, а для поиска т/2 полей (т /2)(18 т + 13)/Г .

Затем в оставшихся (п /2 +1 -1) записях необходимо определить местоположение т/2 полей, считывая записи прямым методом доступа, т. е.

m f n 1 , I f m ] n

'-л 712+1 - 'H 'И™ 7 J 7

Тогда время для ответа на запросы X3

T11 = XX3h

h=1

+ 'обh

m 18 log2 m + 13 2 V

+

n'X,

m n

+ X (2'Л + 'об К + 'исп - -i=1 2 2

Величина пХА учитывает число обращений при выполнении запросов типа X3:

ч3 n n

nXh = — +1 -1 = —.

2

2

Составляющие в формулах (18 log2 х + + 13)/V и (5 card (х) + 3)/V определяют мак-

ISSN 0135-3500. Записки Горного института. Т.208

n

3

симальное время для соответствующих операций. В реальности составляющие могут быть уменьшены как за счет применения наиболее эффективных алгоритмов [1, 2], так и из-за того, что для этих формул в среднем х = х /2.

ЛИТЕРАТУРА

1. Алгоритмы: Построение и анализ: Пер. с англ. / Томас Х.Кормен, Чарльз И.Лейзерсон, Рональд Л.Ривест, Клиффорд Штайн. М., 2007.

2. Кнут Д. Искусство программирования для ЭВМ. Сортировка и поиск. М., 2000. Т.3.

3. Конноли Т. Базы данных: проектирование, реализация и сопровождение. Теория и практика / Т.Конноли, К.Бегг, А.Страчан. М., 2000.

REFERENCES

1. Cormen Thomas H, Leiserson Charles E, Rivest Donald L., Stein Clifford: Introduction to Algorithms, Moscow, 2007.

2. Knuth Donald E. The Art of Computer Programming. Sorting and Searching. Moscow, 2000. Vol.3.

3. Connolly T., Begg C., Strachan A. Database systems: a practical approach to design, implementation and management. Moscow, 2000.

i Надоели баннеры? Вы всегда можете отключить рекламу.