Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ЛР №7

.docx
Скачиваний:
2
Добавлен:
28.06.2022
Размер:
499.28 Кб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

«Национальный исследовательский университет «МИЭТ»

Факультет «Микроприборы и системы управления» (МПСУ)

Кафедра «Вычислительная техника» (ВТ)

Лабораторная работа №7 по дисциплине

«Базы данных»

Тема: «Ознакомление с утилитой SSMS и создание базы данных в СУБД MS SQL Server»

Цель работы: получить навыки создания баз данных с использованием утилиты SQL Server Management Studio (SSMS), работы с представлениями, хранимыми процедурами, функциями и триггерами в MS SQL Server.

Продолжительность работы: 4 часа.

Выполнила студентка группы «ИВТ-44»: Никитина София Геннадьевна

Преподаватель: Немченко Дмитрий Игоревич

2021 г.

Содержание

  1. Выполнение работы 3

    1. Таблица «Студент» 3

    2. Таблица «Льгота» 4

    3. Таблица «Родственник студента» 5

    4. Таблица «Вид родственника» 6

    5. Таблица «Факультет» 7

    6. Таблица «Группа» 7

    7. Создание схемы данных 8

    8. Работоспособность установленных ограничений 10

  1. Вывод 13

  1. Выполнение работы

Для начала создадим новую Database в SSMS по лабнику и назовём её БД№7.

    1. Таблица «Студент»

CREATE TABLE Студент (

НомерСтуденческого smallint NOT NULL,

Фамилия varchar(50) NOT NULL,

Имя varchar(50) NOT NULL,

Отчество varchar(50),

Адрес varchar(255) NOT NULL,

ДатаРождения date NOT NULL,

Пол varchar(7) NOT NULL,

НомерГруппы smallint NOT NULL

);

INSERT INTO Студент VALUES

(1032, 'Литвинков', 'Никита', 'Александрович', 'ул. Юности, к. 7', '05.06.1998', 'мужской', 1),

(1101, 'Гордон', 'Дмитрий', 'Ильич', 'ул. Ульяновская, д.20', '09.07.2001', 'мужской', 2),

(2301, 'Намазов', 'Абу', 'Нариманович', 'м-н 8, к831', '03.04.1999', 'мужской', 3),

(4021, 'Андреева', 'Елена', 'Ивановна', 'ул. Юности, к. 9', '23.09.2000', 'женский', 4),

(5017, 'Шчепан', 'Гжегож', 'Бженчишчикевич', 'пр-т Мира, д. 32', '30.12.2001', 'мужской', 5);

ALTER TABLE Студент

ADD PRIMARY KEY CLUSTERED (НомерСтуденческого);

Создадим ее сразу с проверочными ограничениями на формат и на заполнение, а также добавим первичный ключ к столбцу «НомерСтуденческого». Проверим:

Рисунок 1. Ограничения таблицы «Студент».

Ограничения успешно созданы.

Рисунок 2. Вид таблицы «Студент».

    1. Таблица «Льгота»

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

CREATE TABLE Льгота (

НомерСтуденческого smallint NOT NULL,

ВидЛьготы varchar(50) NOT NULL,

Документ image,

ДатаВыдачи date NOT NULL

);

INSERT INTO Льгота VALUES

(1032, 'Потеря кормильца', NULL, '12.05.2013'),

(1101, 'Потеря кормильца', NULL, '02.08.2005'),

(2301, 'Инвалидность', NULL, '09.07.2011'),

(4021, 'Инвалидность', NULL, '05.10.2015'),

(5017, 'Дети сироты', NULL, '02.02.2002');

ALTER TABLE Льгота

ADD ИД smallint NOT NULL DEFAULT 0;

UPDATE Льгота SET ИД = 1 WHERE ВидЛьготы = 'Потеря кормильца'

UPDATE Льгота SET ИД = 2 WHERE ВидЛьготы = 'Инвалидность'

UPDATE Льгота SET ИД = 3 WHERE ВидЛьготы = 'Дети сироты'

UPDATE Льгота SET ИД = 4 WHERE ВидЛьготы = 'Молодая семья'

ALTER TABLE Льгота

ADD PRIMARY KEY CLUSTERED (НомерСтуденческого, ИД);

Сформировали составной первичный ключ как в ЛР№2.

Рисунок 3. Ограничения таблицы «Льгота».

Рисунок 4. Вид таблицы «Льгота».

Последующее создание таблиц аналогично, комментарии опущены.

    1. Таблица «Родственник студента»

CREATE TABLE Родственник (

ИДРодственника tinyint NOT NULL,

НомерСтуденческого smallint NOT NULL,

Фамилия varchar(50) NOT NULL,

Имя varchar(50) NOT NULL,

Отчество varchar(50),

Адрес varchar(255) NOT NULL,

ДатаРождения date NOT NULL

);

INSERT INTO Родственник VALUES

(1, 2301, 'Ивашкина', 'Мария', 'Елисеевна', 'ул. Заречная д.22', '06.06.1977'),

(1, 4021, 'Бытина', 'Ольга', 'Николаевна', 'ул. Вишневская д.10', '03.02.1968'),

(1, 5017, 'Митина', 'Жанна', 'Валерьевна', 'ул. Мира д.3', '02.04.1965'),

(3, 1101, 'Жмышенко', 'Валерий', 'Альбертович', 'ул. Пушкина д.4', '02.06.1967'),

(5, 1032, 'Аврин', 'Андрей', 'Сергеевич', 'пр. Смирягина д.23', '10.09.1973');

ALTER TABLE Родственник

ADD PRIMARY KEY CLUSTERED (ИДРодственника, НомерСтуденческого);

Рисунок 5. Ограничения таблицы «Родственник».

Рисунок 6. Вид таблицы «Родственник».

    1. Таблица «Вид родственника»

Так как ИД вида в ЛР№2 имеет формат счётчика, воспользуемся IDENTITY и заполним только название вида.

CREATE TABLE ВидРодственника (

ИДВида tinyint IDENTITY(1,1) NOT NULL,

НазваниеВида varchar(50) NOT NULL

);

INSERT INTO ВидРодственника VALUES

('Мать'),

('Отец'),

('Опекун'),

('Опекунша'),

('Попечитель');

ALTER TABLE ВидРодственника

ADD PRIMARY KEY CLUSTERED (ИДВида);

Рисунок 7. Ограничения таблицы «Вид родственника».

Рисунок 8. Вид таблицы «Вид родственника».

    1. Таблица «Факультет»

CREATE TABLE Факультет (

ИДФакультета tinyint IDENTITY(1,1) NOT NULL,

НазваниеФакультета varchar(50) NOT NULL,

Деканат smallint NOT NULL,

Декан varchar(50) NOT NULL

);

INSERT INTO Факультет VALUES

('БМС', 4121, 'Селищев С.В.'),

('МПСУ', 4327, 'Переверзев А.Л.'),

('ПМТ', 4348, 'Гаврилов С.А.'),

('НМСТ', 4238, 'Тимошенков С.П.'),

('ФПМ', 3331, 'Боргардт Н.И.'),

('СПИНТех', 4335, 'Гагарина Л.Г.'),

('ЛПО', 3239, 'Евдокимова М.Г.'),

('ВУЦ', 3314, 'Ковалев С.А.'),

('ИМО', 1119, 'Лупин С.А.');

ALTER TABLE Факультет

ADD PRIMARY KEY CLUSTERED (ИДФакультета);

Рисунок 9. Ограничения таблицы «Факультет».

Рисунок 10. Вид таблицы «Факультет».

    1. Таблица «Группа»

CREATE TABLE Группа (

ИДГруппы smallint NOT NULL,

НомерГруппы tinyint NOT NULL,

КоличествоСтудентов tinyint NOT NULL,

ИДФакультета tinyint NOT NULL

);

INSERT INTO Группа VALUES

(1, 11, 21, 1),

(2, 11, 19, 4),

(3, 13, 21, 9),

(4, 14, 20, 3),

(5, 21, 23, 8);

ALTER TABLE Группа

ADD PRIMARY KEY CLUSTERED (ИДГруппы);

Рисунок 11. Ограничения таблицы «Группа».

Рисунок 12. Вид таблицы «Группа».

    1. Создание схемы данных

Осталось установить связи, построив схему данных:

Рисунок 13. Схема данных.

Завершим создание нашей базы данных.

Рисунок 14. Создание базы данных.

Для удаления базы данных воспользуемся

DROP DATABASE [БД№7];

Чтобы создать базу данных снова, повторим все действия выше.

    1. Работоспособность установленных ограничений

В таблице «Студент» колонке «Пол» возможно написание не более 7 символов. Попробуем добавить большее количество.

Рисунок 15. Проверка на ограничение по символам.

Итак, проверка на ограничение по символам прошла успешно.

Изменим дату рождения студента, сохраняя численный формат.

Рисунок 16. Проверка на ограничение по распознаванию даты.

Проверка на ограничение по распознаванию – успешна.

В этой же таблице попробуем удалить значение первичного ключа.

Рисунок 17. Проверка на ограничение NOT NULL.

Проверка на ограничение NOT NULL (первичный ключ также не может быть NULL) – успешна.

Можно заметить, что значения счётчика выставляются автоматически и его значение не подлежит изменению.

Рисунок 18. Проверка на ограничение счетчика.

Проверка на ограничение счётчика – успешна.

Изменим кабинет деканата на буквенное значение.

Рисунок 19. Проверка на ограничение по формату.

Проверка на ограничение по формату – успешна.

Создадим резервную копию базы данных.

Рисунок 20. Создание резервной копии.

Рисунок 21. Расположение резервной копии.

Теперь возможно восстановить БД со всеми параметрами на другом сервере.

Изменение ролей в БД влияет на доступ к изменениям данных, удаление и добавление. Подробнее см. в документации.

  1. Вывод

Получили навыки создания баз данных с использованием утилиты SQL Server Management Studio (SSMS), работы с представлениями, хранимыми процедурами, функциями и триггерами в MS SQL Server.

Соседние файлы в предмете Базы данных