Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Создание основы структуры таблиц




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

° Какие данные будут храниться в каждой из таблиц?

° Какие колонки будут созданы для хранения данных и какие у них будут имена?

° Какие будут требования к диапазону данных, хранящихся в колонках (какие данные разрешено в них хранить), и какие типы данных Microsoft SQL Server 2000 должны применяться для каждой из колонок?

° Будут ли иметься колонки, которые могут содержать null-значения, или же вместо этого могут применяться значения по умолчанию? (Если разрешить null-значения, то, по сравнению с использованием значений по умолчанию, увеличится нагрузка на процессор.)

° Какие колонки станут первичными ключами, а какие внешними ключами?

° Какие типы ограничений должны использоваться?

° Какие типы индексов (кластеризованные или некластеризованные) должны иметься в таблице и для какой колонки или колонок они должны быть определены?

° Какие пользователи должны иметь доступ к тем или иным таблицам?

Постарайтесь найти ответы на как можно большее количество этих вопросов о проектировании системы.

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

Как правильно выбрать тип данных

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

Подходит ли этот тип данных для вашей разновидности данных?

Какой тип данных следует использовать – с фиксированной либо с переменной длиной?

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

Тип данных Допустимые значения
  Числовые значения
Bigint Целые числа от -2^63 до 2^63-1.
Int Целые числа от -2^31 до 2^31-1.
Smallint Целые числа от -2^15 до 2^15-1.
Tinyint Целые числа от 0 до 255.
Bit Целые числа, принимающие значения 0 или 1.
Decimal Десятичные числа с фиксированным количеством знаков до и после запятой в диапазоне от -10^38+1 до 10^38-1. (Десятичные числа decimal также могут быть описаны как "numeric"; диапазон значений при этом одинаковый.)
Money Числа в денежном формате в диапазоне от -2^63 до 2^63-1. (Значения в денежном формате имеют точность, равную одной десятитысячной (.0001) от денежной единицы.)
Smallmoney Числа в денежном формате в диапазоне от -214748,3648 до 214748,3647.(Точность этих чисел также равна одной десятитысячной (.0001) от денежной единицы.)
Float Числа с плавающей запятой в диапазоне от -1.79Е+308 до 1.79Е+308. (Значения являются лишь приблизительными.)
real Числа с плавающей запятой в диапазоне от -3.40Е+38 до 3.40Е+38. (Значения являются лишь приблизительными.)
Значения даты и времени
datetime Значения даты и времени начиная с 1 января 1753 г. до 31 декабря 9999 г. (Значения даты и времени имеют точность, равную трем сотым секунды или 3,33 миллисекунды.)
smalldatetime Значения даты и времени начиная с 1 января 1900 г. до 6 июня 2079 г. (Точность значений составляет одну минуту.)
Символьные значения
char Символьные значения (не Unicode) фиксированной длины, максимально 8000 символов.
varchar Символьные значения (не Unicode) переменной длины, максимальная длина составляет 8000 символов.
Text Данные (не Unicode) переменной длины, максимальная длина составляет 2^31-1 (2147483647) символов.
Nchar Данные (Unicode) фиксированной длины, максимальная длина составляет 4000 символов.
nvarchar Данные (Unicode) переменной длины, максимальная длина составляет 4000 символов.
ntext Данные (Unicode) переменной длины, максимальная длина составляет 2^30-1 (1073741823) символов.
Двоичные (бинарные) значения
binary Двоичные данные фиксированной длины, максимальная длина составляет 8000 байт.
Varbinary Двоичные данные переменной длины, максимальная длина составляет 8000 байт.
image Двоичные данные переменной длины, максимальная длина составляет 2^31-1 (2147483647)

Применение null-значений

Null-значение(null value) – это неизвестное значение, для которого применяется обозначение NULL. Null-значение в колонке обычно означает, что для данной строки этой колонки нет данных, потому что значение неизвестно, либо не имеет смысла, либо не задано или будет задано в будущем.

Колонки, способные хранить null-значения, могут оказаться полезными в случаях, когда необходимая информация пока что недоступна для вас.

Прекрасной альтернативой применению null-значений в колонке является задание значения по умолчанию (default value) для этой колонки. Если значение не было задано при вводе строки, то в колонку записывается значение по умолчанию.

Создание таблиц

Теперь давайте разберем пример создания таблицы при помощи Enterprise Manager. Однако прежде чем начать этот процесс, вы обязательно должны помнить, что проектирование всех ваших таблиц баз данных и их взаимоотношений должно производиться до того, как вы приступите к их фактическому созданию. Для создания таблицы базы данных с помощью SQL Server выполните следующие действия.

1.Находясь в Enterprise Manager, раскройте группу SQL Server, а затем раскройте сервер.

2.Раскройте папку Databases, чтобы стали видны имеющиеся базы данных.

3.Раскройте базу данных, в которой вы хотите работать (в нашем примере – MY DB).

4.Нажмите правой кнопкой мыши на папку Tables (Таблицы) и в появившемся контекстном меню выберите New Table (Новая таблица). Появится окно New Table.

Каждая строка таблицы в окне New Table обозначает одну колонку таблицы базы данных. Каждая колонка таблицы в окне New Table обозначает какой-либо атрибут колонки таблицы – тип данных, длину или способность хранить null-значения.

Задайте каждую из колонок вашей таблицы базы данных, заполняя поочередно строки таблицы окна: введите имена таблиц в колонке Column Name, выберите тип данных в выпадающих меню в колонке Data Type и выберите длину типа данных (если это допустимо, например, можно выбрать длину для символьных типов данных). Для переключения флажков в колонке Allow Nulls (Разрешаются null-значения) пользуйтесь клавишей Shift или нажимайте там мышью. В результате будет разрешаться или запрещаться применение null-значений.

Данные в строках таблицы базы данных будут физически храниться в порядке, в котором вы задали колонки. Если вы пожелаете вставить в окно New Table строчку с определением колонки между двух уже имеющихся определений, то нажмите правой кнопкой мыши на строчку окна, под которой вы хотите вставить новую строчку, и в появившемся контекстном меню выберите команду Insert Column (Вставить колонку). Чтобы удалить строчку, нажмите правой кнопкой мыши на эту строчку и выберите Delete Column (Удалить колонку) в контекстном меню. В нашем примере с таблицей Table1 мы зададим колонку Фамилия как колонку первичного ключа, нажав на ее имя правой кнопкой мыши и выбрав Set Primary Key (Задать первичный ключ) в контекстном меню. Рядом с именем колонки появится изображение ключа (рис. 1.4).

В нижней части окна New Table имеется вкладка с названием Columns, при помощи которой можно менять некоторые атрибуты колонки, выбранной в верхней части окна. Например, мы выбрали колонку Зарплата, а затем во вкладке Columns задали ее назначение и значение по умолчанию, равное 0 (рис. 1.4).

 

Рис. 1.4. Созданная таблица с первичным ключом

Вы можете создавать другие ограничения и индексы для таблицы, нажимая на имена колонок правой кнопкой мыши и выбирая в контекстном меню Indexes/Keys (Индексы/Ключи), Relationships (Взаимоотношения), Constraints (Ограничения) или Properties (Свойства), либо нажав на значок-иконку Table and Index Properties (Свойства таблиц и индексов) рядом со значком-иконкой Save (Сохранить) в панели инструментов. Независимо от выбранного способа, появится окно свойств таблиц и индексов (рис. 1.5). Имя вашей таблицы будет обозначаться как Table1 или Table2 и т.д. Наша таблица получила имя Table2. При сохранении таблицы это имя можно изменить.

 

Рис. 1.5. Окно свойств таблиц и индексов

Чтобы дать имя этой новой таблице, нажмите на значок-иконку Save. Появится диалоговое окно, в котором вы можете задать имя таблицы. Введите с клавиатуры нужное имя и нажмите на OK, и тогда спроектированная вами таблица будет создана, а заданная информация сохранится. Теперь вы можете закрыть окно New Table, и имя вашей таблицы появится в правой панели Enterprise Manager.

Если необходимо переименовать таблицу, то щелкните правой кнопкой мыши на таблице в рабочей панели Details Pane и выберите Rename (Переименовать). Введите Новый имя и нажмите Enter. SQL Server отобразит диалоговое окно Rename (Переименование), предупреждающее, что изменение имени таблицы сделает невозможными все ссылки на нее из других объектов.

Нажмите кнопку View Dependencies (Просмотр зависимостей), чтобы отобразить все объекты, которые может затронуть изменение. SQL Server откроет диалоговое окно Dependencies (Зависимости).

Нажмите Close (Закрыть), чтобы закрыть диалоговое окно.

Нажмите Yes (Да) в диалоговом окне Rename (Переименование). SQL Server отобразит сообщение. Подтверждающее успешное выполнение изменения имени.

Индексирование

Вы можете использовать мастер создания индекса Create Index Wizard для создания кластеризованного или некластеризованного индекса по таблице с помощью следующих шагов:

Откройте Enterprise MАnager и щелкните на кнопке Wizards (Мастера) в меню Tools. Появится диалоговое окно Select Wizard (Выбор мастера)

(рис. 1.1).

Раскройте папку Database (База данных), выберите Create Index Wizard и затем щелкните на кнопке OK.

Появится начальное окно мастера Create Index Wizard. Отметим, что выбранные вами имя сервера и имя базы данных появятся в линейке заголовка.

Щелкните на кнопке Далее, чтобы появилось окно Select Database аnd Table (Выбор базы данных и таблицы). Здесь вы можете указать базу данных и таблицу, по которой хотите создать индекс.

Щелкните на кнопке Далее, чтобы перейти к окну Current Index Information (Информация о текущих индексах). Вы можете создать только один кластеризованный индекс по таблице, что делает ее кластеризованной таблицей.

Щелкните на кнопке Далее, чтобы появилось окно Select Columns (Выбор колонок). Это окно позволяет вам выбирать колонки для включения в данный индекс.

Задайте колонки, которые хотите включить в данный индекс, путем установки флажков справа от имен колонок(выберем Фамилию и Имя). Щелкните на кнопке Далее, чтобы появилось окно Specify Index Options (Задание параметров индекса). В этом окне вы можете задать несколько важных параметров, которые определяют, как будет создаваться индекс. Вы можете установить флажок Make this a clustered index (Сделать этот индекс кластеризованным), чтобы это был кластеризованный индекс. В нашем примере флажок, используемый для создания кластеризованного индекса, недоступен, поскольку кластеризованный индекс по таблице Customers уже создан.

Вы можете установить флажок Make this a unique index (Сделать этот индекс уникальным), если хотите, чтобы он был уникальным. Вы можете также задать коэффициент заполнения (Fill fАсtor) как оптимальный (Optimal) или фиксированный (Fixed). Поскольку строки индекса хранятся в отсортированном порядке, системе SQL Server может потребоваться перемещение данных для поддержания этого порядка. Коэффициент заполнения указывает, насколько плотно должны размещаться данные в новом индексе, чтобы оставалось место для будущих вставок. Принятый по умолчанию коэффициент заполнения (который вы получаете, если щелкнуть на кнопке выбора Optimal) равен 0, что означает плотное заполнение узлов-листьев, но свободное пространство в вышележащих узлах индекса.

Выберите ваши параметры индекса и затем щелкните на кнопке Далее, чтобы появилось окно Completing the Create Index Wizard (Завершение работы мастера создания индекса). В этом окне вы можете изменить порядок колонок, образующих индекс. Просто выделите колонку, которую хотите переместить, и щелкайте на кнопке Move Up (Вверх) или Move Down (Вниз), пока данная колонка не окажется в нужном месте. Вы можете также задать в этом окне имя индекса.

Порядок колонок в составном индексе имеет важное значение. Оператор SQL может использовать преимущества индекса, только если в предложении WHERE этого оператора указана ведущая часть индекса.

Если Имя будет выбрано первым, а Фамилия ниже, то при таком порядке будет использоваться преимущества индекса, поскольку Имя – это ведущая колонка. Конечно, оператор может содержать в своем предложении WHERE Имя и Фамилию. Используя в предложении WHERE все два значения, вы получаете наилучшую производительность, поскольку будет выполнено минимальное количество операций ввода-вывода. И тогда уже не имеет значения, в каком порядке имена колонок указаны в предложении WHERE.

Если вас удовлетворяет порядок колонок, щелкните на кнопке Готово, после чего будет создан индекс. Этот процесс может занять от нескольких секунд до нескольких часов в зависимости от количества данных, производительности системы, производительности дисководов и памяти системы. Для создания индекса по таблице SQL Server должен прочитать все данные таблицы, поэтому время варьируется в таких широких пределах.

Создание индекса с помощью мастера Create Index Wizard происходит просто, но этот процесс имеет некоторые недостатки. В частности, поскольку мастер Create Index Wizard не поддерживает информацию о задачах, которые выполняются с его помощью, вам приходится проходить через процесс, описанный в этом разделе, каждый раз, как вы создаете новый индекс. Если вы создаете индекс с помощью файла сценария, то можете использовать этот файл снова и снова. Кроме того, если вы хотите повторно создать базу данных, то должны снова пройти через все шаги мастера Create Index Wizard для каждого индекса базы данных.

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...