«Осень 2026»

Создание базы данных в среде разработки MS SQL Server 2019

Пошаговый алгоритм создания реляционной БД в MS SQL Server 2019

Олимпиады: Информатика 1 - 11 классы

Содержимое разработки

ПР№7 Создание базы данных в среде разработки

1. Откройте через Пуск SQL Server Management Studio 19. У вас откроется окно:

2. Нажмите на кнопку Connect. После подключения слева в окне Object Explorer вы сможете увидеть все свои проекты в ветке Databases

3. Для создания новой БД нажмите ПКМ в Object Explorer на Databases и выберите пункт New Databases… В открывшемся окне введите название новой базы данных FurnitureStore. Нажмите ОК.

4. В Object Explorer найдите новую БД и раскройте дерево объектов:

5. Для того чтобы создать таблицу вручную необходимо нажать ПКМ на Tables выбрать New - Table… Создайте таблицу Категории товаров (Categories) вручную:

Атрибут

Тип данных

Описание

id

INT PRIMARY KEY

Уникальный идентификатор

name

VARCHAR(100)

Название категории (Кухни, Гостиные, Спальни)

parent_id

INT NULL

ID родительской категории (для иерархии)

description

TEXT

Описание категории

image_url

VARCHAR(255)

URL изображения категории

created_at

TIMESTAMP

Дата создания

Чтобы поле сделать ключевым выполните следующее действие:

Для того, чтобы по умолчанию сделать поле нулевым поставьте галочку в Allow Nulls и в свойствах столбца (Column Properties) в поле Default Value or Binding: null.

Сохраните таблицу под именем Categories. Проверьте наличие таблицы в дереве объектов

Для того чтобы просмотреть таблицу нажмите на нее ПКМ и выберите пункт Edit Top 200 Rows:

У вас откроется:

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

6. Все остальные таблицы создайте с помощью языка SQL. Для этого нажмите ПКМ на название БД (FurnitureStore) и выберите пункт New Query. В Открывшемся окне введите код для создания таблиц на языке SQL.

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

Таблица Товары (Products)

Примечания:

1) Используйте ключевое слово IDENTITY для автоматической генерации уникального номера для каждой новой строки во всех таблицах в ключевом поле.

2) Для поля is_active используйте тип данных вместо Boolean – Bit (может принимать значения 0, 1 или Null), так как в sql server нет отдельного типа данных для булевых значений.

3) Используйте значения по умолчанию (ключевое слово Default) для атрибутов: warranty_months – Default 12, is_active - Default 1, created_at - DEFAULT CURRENT_TIMESTAMP.

4) Напишите ключевое слово NOT NULL при задании атрибутов: sku, name, category_id, price, cost_price.

Атрибут

Тип данных

Описание

id

INT PRIMARY KEY IDENTITY

Уникальный идентификатор

sku

VARCHAR(50) UNIQUE

Артикул товара

name

VARCHAR(200)

Название товара

category_id

INT FOREIGN KEY

Ссылка на категорию

description

TEXT

Подробное описание

material

VARCHAR(100)

Материал изготовления

color

VARCHAR(50)

Цвет

dimensions

VARCHAR(100)

Габариты (ШхВхГ)

weight

DECIMAL(10,2)

Вес (кг)

price

DECIMAL(10,2)

Цена

cost_price

DECIMAL(10,2)

Себестоимость

warranty_months

INT

Гарантия (месяцев)

is_active

BOOLEAN

Активен ли товар

created_at

TIMESTAMP

Дата добавления

Таблица Изображения товаров (Product_Images)

Атрибут

Тип данных

Описание

id

INT PRIMARY KEY IDENTITY

Уникальный идентификатор

product_id

INT FOREIGN KEY

Ссылка на товар

image_url

VARCHAR(255)

URL изображения

sort_order

INT

Порядок сортировки

is_main

BOOLEAN

Основное изображение

Таблица Склад (Warehouse)

Атрибут

Тип данных

Описание

id

INT PRIMARY KEY

Уникальный идентификатор

product_id

INT FOREIGN KEY

Ссылка на товар

quantity

INT

Количество на складе

location

VARCHAR(50)

Место на складе (стеллаж, ячейка)

min_stock_level

INT

Минимальный остаток

last_restock_date

DATE

Дата последнего пополнения

Таблица Клиенты (Customers)

Атрибут

Тип данных

Описание

id

INT PRIMARY KEY

Уникальный идентификатор

first_name

VARCHAR(100)

Имя

last_name

VARCHAR(100)

Фамилия

email

VARCHAR(100) UNIQUE

Email

phone

VARCHAR(20)

Телефон

address

TEXT

Адрес доставки

registration_date

DATE

Дата регистрации

loyalty_points

INT

Баллы лояльности

Таблица Заказы (Orders)

Атрибут

Тип данных

Описание

id

INT PRIMARY KEY

Уникальный идентификатор

order_number

VARCHAR(20) UNIQUE

Номер заказа

customer_id

INT FOREIGN KEY

Ссылка на клиента

order_date

TIMESTAMP

Дата оформления

delivery_address

TEXT

Адрес доставки

delivery_date

DATE

Планируемая дата доставки

status

ENUM

Статус (новый, подтвержден, собран, в доставке, доставлен, отменен)

total_amount

DECIMAL(10,2)

Общая сумма

payment_method

ENUM

Способ оплаты (карта, наличные, рассрочка)

payment_status

ENUM

Статус оплаты (не оплачен, частично, оплачен)

notes

TEXT

Комментарии к заказу

Таблица Состав заказа (Order_Items)

Атрибут

Тип данных

Описание

id

INT PRIMARY KEY

Уникальный идентификатор

order_id

INT FOREIGN KEY

Ссылка на заказ

product_id

INT FOREIGN KEY

Ссылка на товар

quantity

INT

Количество

unit_price

DECIMAL(10,2)

Цена на момент заказа

discount_percent

DECIMAL(5,2)

Скидка (%)

total_price

DECIMAL(10,2)

Итоговая цена позиции

Таблица Поставщики (Suppliers)

Атрибут

Тип данных

Описание

id

INT PRIMARY KEY

Уникальный идентификатор

name

VARCHAR(200)

Название компании

contact_person

VARCHAR(100)

Контактное лицо

phone

VARCHAR(20)

Телефон

email

VARCHAR(100)

Email

address

TEXT

Юридический адрес

inn

VARCHAR(20)

ИНН

Таблица Поставки (Shipments)

Атрибут

Тип данных

Описание

id

INT PRIMARY KEY

Уникальный идентификатор

supplier_id

INT FOREIGN KEY

Ссылка на поставщика

shipment_number

VARCHAR(20) UNIQUE

Номер поставки

shipment_date

DATE

Дата поставки

expected_date

DATE

Ожидаемая дата

status

ENUM

Статус (ожидается, получена, частично)

total_cost

DECIMAL(10,2)

Общая стоимость поставки

Таблица Состав поставки (Shipment_Items)

Атрибут

Тип данных

Описание

id

INT PRIMARY KEY

Уникальный идентификатор

shipment_id

INT FOREIGN KEY

Ссылка на поставку

product_id

INT FOREIGN KEY

Ссылка на товар

quantity

INT

Количество

unit_cost

DECIMAL(10,2)

Закупочная цена

total_cost

DECIMAL(10,2)

Сумма по позиции

Таблица Сотрудники (Employees)

Атрибут

Тип данных

Описание

id

INT PRIMARY KEY

Уникальный идентификатор

first_name

VARCHAR(100)

Имя

last_name

VARCHAR(100)

Фамилия

position

VARCHAR(100)

Должность (менеджер, кладовщик, курьер)

phone

VARCHAR(20)

Телефон

email

VARCHAR(100)

Email

hire_date

DATE

Дата приема

salary

DECIMAL(10,2)

Оклад

user_id

INT FOREIGN KEY

Ссылка на учетную запись

Таблица Пользователи (Users)

Атрибут

Тип данных

Описание

id

INT PRIMARY KEY

Уникальный идентификатор

username

VARCHAR(50) UNIQUE

Логин

password_hash

VARCHAR(255)

Хеш пароля

role

ENUM

Роль (admin, manager, warehouse, courier)

is_active

BOOLEAN

Активен ли пользователь

last_login

TIMESTAMP

Последний вход

Таблица Доставка (Deliveries)

Атрибут

Тип данных

Описание

id

INT PRIMARY KEY

Уникальный идентификатор

order_id

INT FOREIGN KEY

Ссылка на заказ

courier_id

INT FOREIGN KEY

Ссылка на курьера

planned_date

DATE

Плановая дата доставки

actual_date

DATE NULL

Фактическая дата доставки

status

ENUM

Статус (запланирована, в пути, доставлена)

tracking_number

VARCHAR(50)

Трек-номер

delivery_cost

DECIMAL(10,2)

Стоимость доставки

Таблица Отзывы (Reviews)

Атрибут

Тип данных

Описание

id

INT PRIMARY KEY

Уникальный идентификатор

product_id

INT FOREIGN KEY

Ссылка на товар

customer_id

INT FOREIGN KEY

Ссылка на клиента

rating

INT CHECK (1-5)

Оценка (1-5)

comment

TEXT

Текст отзыва

review_date

TIMESTAMP

Дата отзыва

is_approved

BOOLEAN

Опубликован

Таблица Акции и скидки (Promotions)

Атрибут

Тип данных

Описание

id

INT PRIMARY KEY

Уникальный идентификатор

name

VARCHAR(200)

Название акции

description

TEXT

Описание

discount_percent

DECIMAL(5,2)

Процент скидки

fixed_discount

DECIMAL(10,2)

Фиксированная скидка

start_date

DATE

Начало акции

end_date

DATE

Окончание акции

is_active

BOOLEAN

Активна

Таблица Связь акций с товарами (Promotion_Products)

Атрибут

Тип данных

Описание

promotion_id

INT PRIMARY KEY

Ссылка на акцию

product_id

INT PRIMARY KEY

Ссылка на товар

Примечание. После написания всего скрипта – сохраните его. Нажмите на кнопку Execute и выполните запросы. Если возникли ошибки – исправьте их.



7. Создайте схему БД. Для этого в дереве объектов нажмите ПКМ на пункт Database Diagrams и создайте New Database Diagram

В появившемся окне выберите все созданные таблицы (16 шт) и надмите Add. Если у вас отобразились не все таблицы, то нажмите кнопку Refresh, затем выделите и добавьте все таблицы с помощью кнопки Add.

В итоге выполнения практической работы вы получите БД вида:



Контрольные вопросы (ответить письменно в тетради):

1) Для чего используется CHECK?

2) Для чего используется IDENTITY?

3) Для чего используется UNIQUE?

4) Для чего используется DEFAULT?

5) Почему не использовался тип данных ENUM?

6) Почему не использовался тип данных BOOLEAN?

7) Что хранится с помощью типа данных TIMESTAMP?

8) Что хранится с помощью типа данных DECIMAL(10,2)?



Получите свидетельство о публикации сразу после загрузки работы



Получите бесплатно свидетельство о публикации сразу после добавления разработки


Серия олимпиад «Осень 2026»



Комплекты учителю



Качественные видеоуроки, тесты и практикумы для вашей удобной работы

Подробнее

Вебинары для учителей



Бесплатное участие и возможность получить свидетельство об участии в вебинаре.


Подробнее