Главная страница
Навигация по странице:

  • Последовательная обработка области БД

  • Доступ по ключу базы данных

  • Доступ по ключу (в частности, первичному).

  • Примечание

  • ID EDATE CODE

  • Лекции и практики (1). Курс лекций и материалы для практических занятий


    Скачать 1.01 Mb.
    НазваниеКурс лекций и материалы для практических занятий
    Дата17.03.2023
    Размер1.01 Mb.
    Формат файлаdocx
    Имя файлаЛекции и практики (1).docx
    ТипКурс лекций
    #996812
    страница24 из 75
    1   ...   20   21   22   23   24   25   26   27   ...   75

    Способы размещения данных и доступа к данным в РБД


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

    Хеширование заключается в том, что специально подобранная хеш- функция преобразует значение ключа записи в адрес блока (страницы) памяти, в котором эта запись будет размещаться. Под ключом записи здесь подразуме- вается поле или набор полей, позволяющие классифицировать запись. Напри- мер, для таблицы СОТРУДНИКИв качестве ключа записи может выступать поле Номерпаспортаили набор полей (Фамилия, Имя, Дата рождения).

    Кластеризация – это способ хранения в одной области памяти таблиц, связанных внешними ключами (одна родительская таблица, одна или несколько подчинённых таблиц). Для размещения записей используется значение внешне- го ключа таким образом, чтобы все данные, имеющие одинаковое значение внешнего ключа, размещались в одном блоке данных. Например, для таблиц СОТРУДНИКИ, ДЕТИСОТРУДНИКОВ, ТРУДОВАЯКНИЖКА, ОТПУСКАв

    качестве внешнего ключа подчинённых таблиц выступает первичный ключ Идентификатор сотрудникатаблицы СОТРУДНИКИ, и тогда при кластериза- ции все данные о каждом сотруднике будут храниться в одном блоке данных.

        1. Способы доступа к данным

    Рассмотрим основные способы доступа к данным:

    • Последовательная обработка области БД. Областью БД может быть файл или другое множество страниц (блоков) памяти. Последовательная обработ- ка предполагает, что система последовательно просматривает страницы,

    пропускает пустые участки и выдаёт записи в физической последовательно- сти их хранения.

    • Доступ по ключу базы данных (КБД). КБД определяет местоположение записи в памяти ЭВМ. Зная его, система может извлечь нужную запись за одно обращение к памяти.

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

    Примечание: в иерархических и сетевых СУБД есть ещё доступ по структуре. Эта разно- видность доступа применяется для групповых отношений и позволяет перейти к предыдущему или следующему экземпляру группового отношения, к экземпляру- владельцу группового отношения или к списку подчинённых экземпляров.


        1. Индексирование данных

    Определим индексирование как способ доступа к данным в реляционной таблице с помощью специальной структуры – индекса.

    Индекс – это структура, которая определяет соответствие значения клю- ча записи (атрибута или группы атрибутов) и местоположения этой записи – КБД (рис. 5.3). Каждый индекс связан с определённой таблицей, но является внешним по отношению к таблице и обычно хранится отдельно от неё.

    Индекс Пространство памяти


    Значениеатрибута

    КБД

    Белова

    FA:00

    Волков

    F6:1E

    Волкова

    F6:00

    Осипов

    FA:2B

    Поспелов

    F6:31

    Фридман

    FA:1D




    Волкова



    Волков



    Поспелов





    F6:00 F6:1E F6:31


    Белова



    Фридман



    Осипов







    FA:00 FA:1D FA:2B

    Рис. 5.3. Пример индекса

    Индекс обычно хранится в отдельном файле или отдельной области па- мяти. Пустые значения атрибутов (NULL) не индексируются.

    Индексирование используется для ускорения доступа к записям по значе- нию ключа и не влияет на размещение данных этой таблицы. Ускорение поиска данных через индекс обеспечивается за счёт:

    1. упорядочивания значений индексируемого атрибута. Это позволяет про- сматривать в среднем половину индекса при линейном поиске;

    2. индекс занимает меньше страниц памяти, чем сама таблица, поэтому систе- ма тратит меньше времени на чтение индекса, чем на чтение таблицы.

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

    • индекс приводится в соответствие с последней версией данных таблицы. Об-

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

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

    Обращение к записи таблицы через индексы осуществляется в два этапа: сначала СУБД считывает индекс в оперативную память (ОП) и находит в нём требуемое значение атрибута и соответствующий адрес записи (КБД), затем по этому адресу происходит обращение к внешнему запоминающему устройству. Индекс загружается в ОП целиком или хранится в ней постоянно во время ра- боты с таблицей БД, если хватает объёма ОП.

    Индекс называется первичным, если каждому значению индекса соответ- ствует уникальное значение ключа. Индекс по ключу, допускающему дублика- ты значений, называется вторичным. Большинство СУБД автоматически стро- ят индекс по первичному ключу и по уникальным столбцам. Эти индексы ис- пользуются для проверки ограничения целостности unique(уникальность).

    Для каждой таблицы можно одновременно иметь несколько первичных и вторичных индексов, что также относится к достоинствам индексирования.

    Различают индексы по одному полю и по нескольким (составные). Со- ставной индекс включает два или более столбца одной таблицы (рис. 5.4). По- следовательность вхождения столбцов в индекс определяется при его создании. Из примера на рис. 5.4 видно, что данные в индексе отсортированы по первому столбцу (ID), внутри группы с одинаковыми значениями ID – отсортированы по второму столбцу (EDATE), а внутри группы с одинаковыми значениями ID и EDATE – по третьему столбцу (CODE).





    Таблица










    Индекс




    ID EDATE

    CODE

    FIRM

    PRICE

    ID

    EDATE

    CODE



    Рис. 5.4. Пример составного индекса

          1. 1   ...   20   21   22   23   24   25   26   27   ...   75


    написать администратору сайта