Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Плещёв БД 2013-06-02.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
26.54 Mб
Скачать

4.3.2. Создание и настройка таблицы базы данных

Порядок создания базы данных с помощью SQL Server Enterprise покажем на примере создания таблицы Сотрудники с полями (колонками): tn (табельный номер), fam (фамилия), dr (дата рождения), pol (пол), dp (дата поступления), dn (дата назначения на должность или нового оклада), kp (код подразделения), kd (код должности), ks (код специальности), oklad (оклад), koldet (число детей), foto (фотография) (рисунок 4.3.2.1).

  1. Выделим группу Tables и нажмем кнопку New.

  2. В окне свойств определим поля таблицы (рисунок 4.3.2.1).

Рисунок 4.3.2.1. Окно конструктора таблиц

Для каждого поля нужно указать следующую информацию:

Column Name ‑ имя поля (можно использовать ки­рил­лицу и пробелы);

Datatype ‑ тип данных (список стандартных и пользовательских типов):

Char/Nchar/Text/Ntext ‑ строка символов длиной до 8000/4000/214 783 647/1 073 741 823 символов (для Ntext символы в формате Unicode);

Varchar/Nvarchar ‑ строка символов с переменной длиной (пробелы в конце строки не хранятся в таблице) до 8000/4000 (Unicode) символов;

Int - целые числа в диапазоне от -2 147 483 648 до +2 147 483 647; Smallint - целые числа в диапазоне от -32 768 до +32 767;

Tinyint - целые числа в диапазоне от 0 до 255;

Real/Float ‑ вещественные числа с точностью 7/15 цифр после запятой в диапазоне от -3,4E-38/-1,7E-308 до +3,4E+38/+1,7E+308;

Decimal, Numeric - вещественные числа с указанными мак­си­маль­ными числами всех цифр (колонка Precision) до и после десятичной точки и цифр (колонка Scale) после десятичной точки;

Money/Smallmoney - денежные значения в диапазонах от -922 337 203 685 477.5808/-214 748.3648 до +922 337 203 685 477.5807/214 748.3647;

Bit ‑ два значения (0 или 1), и в памяти они занимают 1 бит;

Binary/Varbinary - строка битов с постоянной/переменной (нулевые биты в конце строки не хранятся в таблице) длиной до 8000 бит;

Timestamp - счетчик, автоматически увеличивающий свое значение при вставке или корректировке записи (номер версии изменения строки);

Uniqueidentifier ‑ уникальный идентификатор строки, генерируемый ко­ман­дой Newid() и используемый для поддержания целостности данных;

Datetime/Smalldatetime ‑ даты и время в диапазонах от 01.01.1753/01.01.1900 до 31.12.9999/06.06.2079 (пример записи датной константы: ’12.31.04’) ;

Новые типы данных SQL Server 2000

Bigint - целые числа в диапазоне от -9 223 372 036 854 775 808 до +9 223 372 036 854 775 807.

Sql_variant - значения любого типа, кроме text, ntext (символы Unicode), image, timestamp.

Table - набор строк таблицы.

Можно создать собственный пользовательский тип кнопкой New группы User De­fined Data Types.

Length ‑ число байтов, отводимых для хранения одного значения колонки. Доступно только для типов char, nchar, varchar, nvarchar, binary.

Precision/Scale ‑ мак­си­маль­ное число всех/ после десятичной точки цифр в поле типов Decimal или Numeric.

Allow Nulls - значение поля не обязательно нужно задавать в таблице.

Default Value ‑ значение по умолчанию.

Identity, Identity Seed, Identity Increment ‑ поле играет роль счетчика, а в колонках Identity Seed и Identity Increment указываются начальное значение и шаг приращения соответственно.

IsRowGuid - поле типа Uniqueidentifier используется для глобальных иден­ти­фикационных номеров.

Новые параметры SQL Server 2000

Formula - формула, задающая значения вычисляемого поля таблицы.

Description - словесное наименование поля.

Collation - правила сопоставления при сравнении и сортировке значений.

Поле TN объявим первичным ключом кнопкой Set primary key.

Создание индексов таблицы. После формирования полей соз­­дадим индексы по полям KP, KD и KS. Для этого, не выходя из кон­ст­рук­тора таблицы, нажмем кнопку Table and Index Properties и перейдем на ст­ра­ницу Indexes/Keys, наж­мем кнопку New и создадим индекс (рисунок 4.3.2.2). Аналогично создадим и другие индексы. Их можно создать и после выхода из конструктора таблиц командой Action/All Tasks/Manager Indexes/New.

Рассмотрим параметры индекса (рисунок 4.3.2.3).

Index name - имя индекса.

Column name - имя поля (помеченное галочкой), входящего в индекс.

Unique values - уникальность значений индекса.

Clustered index - кластерное индексирование с физической сортировкой таблицы. Такой индекс может быть только один для таблицы.

Ignore dublicate values - игнорирование повторяющихся значений.

Do not recompute statistics - автоматическое обновление статистики для таблицы (не рекомендуется).

File group - файловая группа, в которой будет находиться индекс.

Pad index, Fill factor - число (от 1 до 100) определяет заполнение прост­ран­ства индекса (чем чаще изменяется таблица, тем меньше это число).

Drop existing - повторное создание кластерного индекса.

Рисунок 4.3.2.2. Страница индексов Рисунок 4.3.2.3. Окно создания индекса

С оздание ограничений на значения полей

Из конструктора таблицы вызовем окно свойств таблицы кнопкой Table and Index Properties, перейдем на страницу Tables или Check Constraints (SQL Server 2000), нажмем кнопку New и укажем следующие параметры для ограничения (например, для поля Tn (рисунок 4.3.2.4)).

Рисунок 4.3.2.4. Страница ограничений Рисунок 4.3.2.5. Страница связей

Параметры ограничения: Constraint expression (выражение огра­ни­че­ния), Constraint name (текст с сообщением об ошибке), Check exis­ting (проверять существующие данные при создании ог­ра­ниче­ния), Enable/En­force relationship for replication (включить связи для реп­ли­ка­ций), Enable/Enforce relatioship for INSERT and UPDATE (включить огра­ни­че­ние для команд Insert и Update).

Создание связей между таблицами

Из конструктора таблицы вызовем окно свойств кнопкой Tab­le and Index Properties, перейдем на страницу Relationships (рисунок 4.3.2.5). Кноп­кой New (SQL Server 2000) можно создать новую связь.

Параметры связи: Check exis­ting data on creation (проверять существующие данные при создании связи), Enable/En­force constraint for replication (включить ограниче­ния для реп­ли­ка­ций), Enable/Enforce replication for INSERT and UPDATE (включить огра­ни­че­ние для команд Insert и Updata), Cascade Updata/Delete Related Fields (каскадное обнов­ле­ние/удаление связанных строк из дочерних таблиц для SQL Server 2000).

В нашем примере связи определим при создании диаграмм.

Аналогичным образом создадим остальные таблицы нашей базы Должности, Подразделения и Специальности с кодами (поля KD, KP, KS) и наименованиями (поля ND, NP, NS) должностей, подразделений и специаль­нос­тей соответственно.