Индексы базы данных

Структура таблиц базы данных

Реляционная модель базы данных

Форма хранения информации

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

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

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

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

Таблицы программы MS Excel служат в основном для автоматизации вычислений.

Основное же назначение таблиц базы данных – это обеспечение эффективного и автоматизированного поиска необходимых данных среди большого их объема и многообразия.

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

Каждая таблица базы данных содержит информацию о группе однородных объектов. Пример такой таблицы представлен рис.22.1.

 

Электродвигатели
Код Тип Мощность, кВт Напряжение, В Ток, А Частота вращения, Об/мин
П31 67,5
П42 97,5
П58 112,5
Строка состояния

Рис.21.1 Общий вид таблицы базы данных

 

Как видно из таблицы, в ней содержаться однородные объекты – электродвигатели. Все они имеют один и тот же перечень параметров (атрибутов).

Табличную форму размещения и хранения данных предложил в 1970 г. Э.Ф. Кодд. Он показал, что набор двухмерных таблиц, при соблюдении определенных ограничений, позволяет хранить информацию об объектах и моделировать связи между ними. В терминологии Кодда связанные между собой таблицы называются

отношениями (англ. relation). Отсюда и название модели – реляционная.

Среди многообразия разработанных СУБД наибольшее распространение получила система управления базами данных, корпорации Microsoft – MS Access.

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

Запись представляет собой набор значений всех атрибутов информационной модели рассматриваемой сущности. Проще говоря, запись – это совокупность сведений об объекте. В одной таблице все записи состоят из одних и тех же полей, поскольку таблица формируется из однородных объектов. Каждый объект имеет свой набор значений в этих полях. В некоторых полях значения могут отсутствовать или как принято считать – иметь значение Null. Название каждого поля в таблице уникальное. То есть одна таблица не может иметь в своем составе два или более полей с одинаковым названием.

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

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

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

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

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

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

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