Инструменти за ускоряване на данните

Средства за ускоряване на достъпа до данни - раздел Електроника, Обработка на данни чрез електронни таблици Съвременните абонати трябва да управляват огромни масиви от информация, том.

Съвременните СУБД трябва да обработват огромни количества информация, чийто обем понякога достига десетки терабайта. Изпълнявайки заявки на хиляди потребители, те трябва да осигурят кратко време за реакция, не повече от няколко секунди. СУБД няма да може да работи ефективно при такива условия, без да използва методи за ускоряване на вземането на данни. Целта на тези
методи - за избягване на пълна итерация над редовете на таблиците на базата данни при извършване на релационни операции, например при присъединяване на релации или търсене на редове, които отговарят на условието.

Съвременните СУБД използват два основни метода за ускоряване на достъпа до данни: индексиране и хеширане. Тези методи осигуряват по-добро време за търсене и модифициране на таблици в базата данни от други.

Методът за индексиране се основава на използването на индекси. Индексът на връзката е много подобен на темата на книгата. Този индекс предоставя азбучен списък на термините, които се появяват в книгата. Всеки термин е свързан със страницата или страниците, където се среща. Обикновено предметният индекс отнема не повече от няколко страници.
Ако трябва да намерим място в книга, където даден термин е разкрит, го намираме в предметния индекс, лесно е да се направи - индексът е малък, освен това всички термини там са подредени по азбучен ред. След това четем номера на страницата, съответстващ на термина, отваряме книгата върху него и намираме абзаца, от който се нуждаем. Ако нямаше индекс, щяхме да прелистим всички страници, за да намерим интересуващото място, и щяхме да отделим значително повече време.

Индексът на базата данни не е лист хартия, а специална структура от данни, създадена автоматично или по искане на потребителя. Като цяло работата с него изглежда по същия начин, както с индекса на предмета. Единствената разлика е, че СУБД прави всичко автоматично, потребителят може дори да не знае, че използва индекса. Книгата предоставя тематичен индекс на думи; в базата данни всеки атрибут на връзка, включително съставна, може да се използва за формиране на индекс. В индекса стойностите на атрибутите се съхраняват в подреден (възходящ или низходящ ред), всяка стойност съответства на указател към релационния низ, който го съдържа (аналог на номера на страницата в индекса на темата). Индексът отнема много по-малко място от таблицата, така че дори пълното търсене на стойности в него ще отнеме по-малко време от четенето и търсенето на информация в релацията. Освен това стойностите в индекса се съхраняват по ред, което може драстично да ускори търсенето на желания ред. Индексите ви позволяват да изберете редове от релации, чиито стойности на индексирания атрибут принадлежат на определен определен интервал.

За една връзка могат да бъдат създадени множество индекси. Ако различните отношения съдържат едни и същи атрибути, тогава може да се генерира мулти-индекс за тях. В него всяка стойност на общ атрибут съответства на няколко връзки, всяка от които сочи към низ с такава стойност по един или друг начин. Използват се множество индекси за оптимизиране на ефективността на операцията по обединяване.

Друг интересен подход, използван за подобряване на ефективността на достъпа до данни, е хеширане (хеширане). За метода на хеширане, за съжаление, няма ежедневен аналог, така че едва ли ще е възможно да го обясним „на пръсти“. Основната идея на хеширането е да се организира асоциативна памет за съхраняване на редове на таблици с определяне на мястото на реда в таблицата по стойностите на един или повече от ключовите му атрибути. Местоположението на реда се изчислява от хеш функция, чиито аргументи са стойности на атрибутите и резултатът е цяло число в диапазона на номерата на редове в таблицата. Идеалната хеш функция ще даде различни стойности на номера на редове за различни ключови атрибути. Изграждането на такава хеш функция обаче е трудоемко и не винаги е възможно.

На практика като правило се използват прости хеш функции. За целочислени атрибути може да се използва хеш функцията, например остатъкът от делението с просто число:

Където е - хеш функция, к Е атрибут на цяло число и R - Просто число.

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

Достъпът до данни по време на хеширане се извършва по следния начин. В началото на работата с базата данни таблицата се състои от празни редове. Когато в таблица се въведе ред с данни, се изчислява стойността на хеш функцията за нейните атрибути и резултатът се интерпретира като номер на релационния ред, към който трябва да се запише.
Ако този ред вече е зает, тогава според някакъв алгоритъм се проверяват следващите редове на таблицата, докато се намери свободно място (в този случай по правило се приема, че таблицата има пръстенна структура). Тук е поставен редът за писане. Подобен алгоритъм се използва за търсене на данни. Първо, стойността на хеш се изчислява за необходимата стойност на ключовия атрибут и се проверява реда на таблицата, чийто номер се изчислява от хеш функцията. Ако стойността на достъпния атрибут съвпада със стойността на низовия ключ, тогава търсенето приключва. В противен случай следващите редове на таблицата се проверяват, докато не бъде намерен кортеж с желаната стойност или празен ред. Празен низ показва липсата на кортеж с необходимата ключова стойност в таблицата - процедурата за въвеждане на данни би го използвала, ако необходимият кортеж съществува.

Хеширането може да се използва за търсене на низове чрез точно съвпадение на стойност на атрибут на кортеж с желаната ключова стойност.