Welcome!          Run-Time Systems

 на главную


           ДНК - технология физической организации данных в СУРБД ( RDBMS )

 

    Системы управления Реляционными ( и не только ) базами данных должны удовлетворять двум основным

критериям: быть компактными и быстродейстующими.  Самое компактное хранение данных - это последовательный

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

Для повышения скорости доступа ввели дополнительные структуры - индексы, тем самым увеличив объемы

хранимых данных и дополнительные затраты времени на сортировку.

 

   Предлагается совершенно иной подход к физической организации данных – без индексов с разбивкой на блоки и

уровни. На уровне 0 хранятся непосредственно данные, на уровнях 1 и выше, данные, характеризующие данные на

более низком уровне. Как добиться такой однозначности? Все очень просто. Достаточно всего двух записей

в блоках 1 и выше. Одна запись отображает минимальные ( min ) значения по всем колонкам записей блока,

вторая максимальные ( max )  значения по всем колонкам записей блока. Таким образом избавляемся от ненужных

индексов и нет необходимости заниматься их сортировкой. Каждая колонка таблицы является ключевой. Тем самым

увеличивается скорость выборки данных. Чем сложнее запрос, тем быстрее будет происходить выборка.

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

записей в блоке и одинаковый размер блока, т.е. улучшить компактность и секретность ( при шифровании )

хранения данных.

 

   Принципиально важно следующее: в каждой таблице должна быть служебная колонка в которую операционная

система вносит дату и время создания ( изменения ) записи, что в конечном счете приводит к тому, что в базе никогда

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

 

   Таблица ниже поясняет то, о чем сказано выше.

Уровень 0

Уровень 1 

Уровень 2

Уровень 3

Запись 1

 

Блок 1-1

Запись  1-1min

 

Запись 1-1max

 

 

 

Блок 2-1

 

 

Запись 2-1min

 

Запись 2-1max

 

 

 

 

 

 

 

 

Блок  3-1

 

 

 

 

 

 

 

Запись 3-1min

 

Запись 3-1max

Запись 2N

Запись 1

 

Блок 1-N

Запись 1-Nmin

 

Запись 1-Nmax

Запись 2N

Запись 1

 

Блок 1-1

Запись   1-1min

 

Запись 1-1max

 

 

 

Блок  2-N

 

 

Запись 2-Nmin

 

Запись 2-Nmax

Запись 2N

Запись 1

 

Блок 1-N

Запись 1-Nmin

 

Запись 1-Nmax

Запись 2N

 

    Базы могут быть одно ( для представлений) и многотабличными, а таблицы во многотабличных базах

многомерными при использовании данных типа TABLE ( таблица в таблице ).

 

   Не составляет труда организации хранения  массивов в колонках таблиц.

 

   Очень просто становится работа с распределенными базами, размещенными на разных компъютерах с разными

операционными  системами – достаточно иметь доступ к файлу с возможностью писать и читать файл.

 

   В связи с вышесказанным возникает два вопроса:

 1. Актуален ли SQL в существующем виде ( индексы то не нужны ) ?

2. Верны ли постулаты реляционной алгебры при такой организации данных ?

  

   Идеи, изложенные выше, практически реализованы на языке C в СУРБД Start-RTS+, кроссплатформенной системе

управления реляционными базами данных,предназначенной для использования в приложениях ( программах ) ,

работающих без каких-либо изменений кода для операционных 64разрядных системах MX-Linux и Windows.

 

   Это система, в которой использование индексов не требуется, и тем не менее скорость выборки информации

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

выборки только возрастает.

 

   Данные хранятся всегда в одном файле. Это может быть много таблиц - один файл - многотабличная база данных (1)

или  одна таблица ( внешняя )- один файл – однотабличная  база данных (2).  Таким образом постоянные данные

хранятся в базах типа (1),  производные,  получаемые  после выполнения реляционных операций можно хранить

в базах типа (2) как временных и в дальнейшем за ненадобностью просто эти базы удалять, не изменяя базы типа (1).

 

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

При задании компрессии, объем дискового пространства для хранения данных уменьшается во много раз

( как при использовании лучших архиваторов ). В этом случае конечно уменьшается незначительно скорость

выборки. Компрессия также позволяет засекретить данные.

 

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

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

 СУРБД Start-RTS+ работает одновременно с множеством баз данных разной структуры, что позволяет организовать

обмен данными между ними.  Возможна параллельная ( распределенная ) обработка баз данных идентичной

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

 

  В настоящее время в СУРБД Start-RTS+ реализованы следующие реляционные операции:

Create base …

Создает базу ( внешнюю таблицу ) данных заданной структуры

Connect base …

Подключает ранее созданную базу.

Disconnect base ..

Отключает ранее подключенную базу.

Connect table …

Подключает ранее созданную внешнюю таблицу.

Disconnect table …

Отключает ранее подключенную внешнюю таблицу.

Insert rows into base …

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

Update rows into base …

Заменяет записи в таблицах по заданным критериям.

Delete rows from base …

Удаляет записи из таблиц по заданным критериям.

Select rows from base …

Выбирает и сортирует записи таблиц по заданным критериям.

inex

Фраза языка для задания перечня выбираемых колонок.

where

Фраза языка для задания критериев выборки.

sorting

Фраза языка для задания критериев сортировки.

На базе Start-RTS+  разработана прикладная технологическая система Смета-RTS для расчета смет в области

строительства с нормативными базами регионов России.


e-mail:rts@rtsrts.com


Copyright (C)RTsRTs 2000-2024