Средства поддержания целостности

Для реализации целостности необходимо создать таблицы со следующими параметрами:

1. Таблица: Покупатели.

Содержит поля:

· ID. Идентификатор покупателя, устанавливаем автогенерацию, без NULL значений. Тип данных – int,

· Фамилия. Строковые данные переменной длины c поддержкой NULL значений. Тип данных – nvarchar(20).

· Имя. Строковые данные переменной длины c поддержкой NULL значений. Тип данных – nvarchar(20).

· Отчество. Строковые данные переменной длины c поддержкой NULL значений. Тип данных – nvarchar(20).

· Адрес. Строковые данные переменной длины c поддержкой NULL значений. Тип данных – nvarchar(50).

· Город. Строковые данные переменной длины c поддержкой NULL значений. Тип данных – nvarchar(20).

· Телефон. Строковые данные длины из 12 символов c поддержкой NULL значений. Тип данных –char (12).

· Дата_регистрации. Укажем значения по умолчанию, т.е. дату на момент регистрации. Тип данных –date.

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

2. Таблица: Сотрудники.

Содержит поля:

· ID. Идентификатор сотрудника, устанавливаем автогенерацию, без NULL значений. Тип данных – int.

· Фамилия. Строковые данные переменной длины без поддержки NULL значений. Тип данных – nvarchar (20).

· Имя. Строковые данные переменной длины c поддержкой NULL значений. Тип данных – nvarchar (20).

· Отчество. Строковые данные переменной длины без поддержки NULL значений. Тип данных – nvarchar (20).

· Зарплата. Данные без поддержки NULL значений. Тип данных – money.

· ОтделID. Идентификатор отдела, без NULL значений. Тип данных – int.

· Премия. Данные с поддержкой NULL значений. Тип данных – money.

· Семейное положение. Строковые данные переменной длины без поддержки NULL значений. Тип данных – nvarchar (10).

· Дата рождения. Данные без поддержки NULL значений. Тип данных –date.

· Адрес. Строковые данные переменной длины c поддержкой NULL значений. Тип данных – nvarchar(50).

· Телефон. Строковые данные длины из 12 символов c поддержкой NULL значений. Тип данных –char (12).

Для поддержания целостности таблицы необходимо создать следующие ограничение:

· Ограничения согласно которому премия не может равняться и быть больше чем зарплата

· Ограничение на корректность ввода номера телефона и ограничение, согласно которому в интернет-магазин могут устраиваться кандидаты в возрасте от 18 до 50 лет.

· Ограничение на ввод данных в столбец "Семейное положение" (ввод: Женат, Не женат, Замужем, Не замужем)

3. Таблица: Отдел.

Содержит поля:

· ID. Идентификатор отдела, без NULL значений. Тип данных – int.

· Название отдела. Строковые данные переменной длины c поддержкой NULL значений. Тип данных – nvarchar (20).

4. Таблица: Товары.

Содержит поля:

· ID. Идентификатор продукта, без поддержки NULL значений. Тип данных – int.

· Название продукта. Строковые данные переменной длины без поддержки NULL значений. Тип данных – nvarchar(50).

5. Таблица: Детали товара.

Содержит поля:

· ID. Идентификатор продукта, без поддержки NULL значений. Тип данных – int.

· Цвет. Строковые данные фиксированной длины с поддержкой NULL значений. Тип данных – nchar(20).

· Материал. Строковые данные фиксированной длины с поддержкой NULL значений. Тип данных – nchar(20).

· Текстовое описание. Строковые данные максимальной длины с поддержкой NULL значений. Тип данных – nvarchar (max).

6. Таблица склад.

Содержит поля:

· ТоварID. Идентификатор продукта, без поддержки NULL значений. Тип данных – int.

· Остаток, данные без поддержки NULL значений. Тип данных – int.

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

7. Таблица Заказы.

Содержит поля:

· ID. Идентификатор заказа, устанавливаем автогенерацию, без NULL значений. Тип данных – int.

· СотрудникID. Идентификатор покупателя, с поддержкой NULL значений. Тип данных – int,

· ПокупательID. Идентификатор сотрудника, с поддержкой NULL значений. Тип данных – int,

· Дата оформления. Укажем значения по умолчанию, т.е. дату на момент оформления покупки. Тип данных – date.

8. Таблица Детали заказа.

Содержит поля:

· ЗаказID. Идентификатор заказа, данные без поддержки NULL значений. Тип данных – int.

· Количество позиций. Количество позиций, данные без поддержки NULL значений. Тип данных – int.

· ТоварID. Идентификатор продукта, с поддержкой NULL значений. Тип данных – int,

· Количество проданного, данные без поддержки NULL значений. Тип данных – int.

· Цена. Данные без поддержки NULL значений. Тип данных – money.

· Стоимость заказа. Вычислимое столбе по форуме (CONVERT([money],[Количество проданного]*[Цена])) Для подсчета общей суммы заказа.

После определения необходимых таблиц, свойств атрибутов мы получим модель базы данных интернет-магазина (см. рис. 2).

Средства поддержания целостности - student2.ru

Рис. 2. Физическая модель базы данных

Таким образом, в результате проведенного проектирования базы данных описаны все необходимые данные для построения БД: определена структура базы данных: таблицы, сущности, атрибуты и типы данных; выбор первичных ключей; назначение необходимых внешних ключей. Кроме проектирования структуры базы данных, была произведена ее нормализация до второй и третьей нормальной формы. После проектирования таблиц, их ключей и связей, необходимо приступить к созданию базы данных. Помимо базы, таблиц, и их связей, необходимо создать хранимые процедуры, триггеры и представления.


Наши рекомендации