Введение в программирование SQL Server. Создание и управление базой данных. Инструменты целостности данных, страница 19

PhotoPath nvarchar (255) NULL

) ON [PRIMARY]

GO

/* Display results */

SELECT table_name

FROM information_schema.tables

WHERE table_name = 'Employees'

GO

Следующий скрипт создаёт ещё одну таблицу, которую мы используем в будущем:

USE ClassNorthwind

IF OBJECT_ID('dbo.Suppliers') IS NOT NULL

DROP TABLE dbo.Suppliers

GO

CREATE TABLE dbo.Suppliers (

SupplierID int IDENTITY (1, 1) NOT NULL ,

CompanyName nvarchar (40) NOT NULL ,

ContactName nvarchar (30) NULL ,

ContactTitle nvarchar (30) NULL ,

Address nvarchar (60) NULL ,

City city ,

Region region ,

PostalCode postalcode ,

Country country ,

Phone nvarchar (24) NULL ,

Fax nvarchar (24) NULL ,

HomePage ntext NULL

) ON [PRIMARY]

GO

/* Display results */

SELECT table_name

FROM information_schema.tables

WHERE table_name = 'Suppliers'

GO

Скрипт Script\L04\Creatab3.sql создаёт все необходимые таблицы в базе данных, которые мы будем в дальнейшем использовать, включая уже описанные.

Добавление и удаление колонок

Для добавления колонки выполним следующий скрипт:

USE ClassNorthwind

ALTER TABLE Employees

ADD Age tinyint NULL

go

/* Display results */

exec sp_help Employees

GO

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

USE ClassNorthwind

ALTER TABLE Employees

DROP COLUMN Age

go

/* Display results */

exec sp_help Employees

GO

Генерация скрипта

Здесь мы будем использовать SQL Enterprise Manager для генерации Transact-SQL скрипта, для всех объектов базы данных ClassNorthwind.

*  Запустите SQL Server Enterprise Manager

*  Щёлкните правой кнопкой по базе данных ClassNorthwind и в появившемся меню выберете All Tasks -> Generate SQL Script.

*  На закладке General щёлкните по кнопке Show All.

*  Выберете All Tables и All user-defined data types. Все объекты из левого списка должны переместиться в правый.

*  Щёлкните ОК и сохраните скрипт под именем l4.sql

*  Откройте и просмотрите сгенерированный скрипт.

Загрузка базы данных с данными

Выполните скрипт Loaddata.sql из директории Script\L04. Выполнение этого скрипта займёт несколько минут, после чего таблицы базы данных ClassNorthwind будут заполнены данными.

Инструменты целостности данных

5.1 Введение

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

Типы целостности данных

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

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

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

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

Обеспечение целостности данных

Вы можете обеспечить целостность данных двумя способами: описанная целостность данных и предшествующая целостность данных.

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