Опубликован: 13.07.2010 | Доступ: свободный | Студентов: 891 / 20 | Оценка: 4.40 / 4.20 | Длительность: 77:34:00
Самостоятельная работа 7:

Создание объектов базы данных SQL Server средствами оболочки VS.NET 2003

Создание индексов

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

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

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

  • В панели Server Explorer раскройте дерево зарегистрированных баз данных и вызовите контекстное меню для узла с созданной нами таблицей tblCustomers. Выполните команду Design Table


  • В открывшемся окне дизайнера структуры таблицы щелкните правой кнопкой мыши на первой строке (первом поле) и выполните команду контекстного меню Insert Column, чтобы вставить в таблицу новый столбец перед текущим (первым)


  • Укажите значения свойств нового поля такие
Значения свойств нового поля
Свойство Значение
Column Name CustomerID
Data Type int
Length 4
Allow Nulls Не отмечено
  • В нижней части окна установите дополнительное свойство для этого поля Identity=07_48, что означает, что вы хотите это поле использовать в качестве поля идентификатора. После этого откроется еще два свойства:
    • Identity Seed - указывает значение, с которого должен начинаться отсчет значений столбца.
    • Identity Increment - задает шаг изменения значения поля идентификатора при добавлении новой записи в таблицу
  • Оставьте значения этих двух дополнительных свойств по умолчанию равными единице.


  • Щелкните правой кнопкой мыши на поле CustomerID и выберите из контекстного меню команду Set Primary Key (назначить в качестве первичного ключа). После этого столбец CustomerID будет играть роль первичного ключа в таблице tblCustomers.


Как правило, первичный ключ должен быть предусмотрен в каждой таблице и его могут представлять сразу несколько полей. Обратите внимание, что каждое поле в окне дизайнера таблицы можно выделить, щелкнув по кнопке перед первым свойством этого поля. На текущем поле установлен маркер в виде треугольника. Можно, удерживая клавишу Shift, выделить сразу несколько полей по их кнопкам и через контекстное меню назначить эти поля как первичный ключ. Можно, также, цепляя мышкой кнопку, менять порядок следования полей в таблице. Но все эти действия лучше выполнить заранее при создании структуры таблицы, пока она еще не заполнена данными - чем мы с вами сейчас и занимаемся.

Итак, после назначения первичного ключа окно дизайнера таблиц должно выглядеть так


Проиндексируем поле LastName, чтобы удобно было искать клиента по его второму имени (у проклятых это фамилия). Для этого

  • Щелкните правой кнопкой мыши в любом месте основных свойств окна дизайнера таблиц и через контекстное меню выполните команду Indexes/Keys


Появится окно свойств Property Pages с вкладками, которое будет открыто на вкладке Indexes/Keys.

  • Щелкните на кнопку New, чтобы создать новый индекс, затем в выпадающем списке Column Name закрепите за созданным индексом с автоматически сгенерированным именем IX_tblCustomers поле LastName.


  • В поле редактирования Index name измените вручную автоматически сгенерированное имя IX_tblCustomers на новое IX_LastName

Можно закрепить за одним индексом сразу несколько полей, добавляя в список Index name для выбранного индекса их имена. Такой индекс называется составным.

Окончательно окно Property Pages должно выглядеть так