ПКС / ПКС. Лабораторная 1
.docxМИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ,
СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА» (СПбГУТ)
Кафедра информационных управляющих систем
Лабораторная работа № 1
по Б1.О.12 «ПРОГРАММИРОВАНИЕ КРИТИЧЕСКИХ СЕРВИСОВ»
Студент гр. ИСТ-111_____________________________ П.П. Иванов
(подпись)
Проверил ___________________________ А. В. Параничев
(оценка и подпись)
Санкт-Петербург
2023 год
Создание таблиц с соотношением «один-ко-многим» с помощью скрипта MySQL для построения IDEF1X-диаграммы
[Выделенное зеленым прочитать и перед отправкой отчета удалить; выделенное желтым — подставить свои данные; исходные данные взять из процесса или подпроцесса из отчета по практической работе 1]
Создание таблиц и заполнение значений представлено с помощью скрипта MySQL (рис. 1 и рис. 2) в онлайн-редакторе dbfiddle.uk (https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=c65ff2d533de9fb30bb9ffe93cf4526c или paiza.io https://paiza.io/projects/jy4DZgyrm0ilGsFV-XXQcA?language=mysql) [следует для определения данных сервиса сделать 1 основную таблицу, отобразив данные с помощью INNER JOIN (см. VR_Dashcam) из 5-6 записей («строк») для определения 3 (или более) входных данных в виде параметров («столбцов») сервиса; сделать 2 вспомогательные таблицы индексов (см. пример VR_Brand), каждую вспомогательную составить из 2-5 записей, отобразив также с помощью INNER JOIN].
SET FOREIGN_KEY_CHECKS = 0;
DROP TABLE IF EXISTS VR_Brand;
DROP TABLE IF EXISTS VR_Corner;
DROP TABLE IF EXISTS VR_Dashcam;
SET FOREIGN_KEY_CHECKS = 1;
CREATE TABLE VR_Brand (
VR_Brand_id INT(5),
VR_Brand_name VARCHAR(20),
PRIMARY KEY (VR_Brand_id)
);
CREATE TABLE VR_Corner (
VR_Corner_id INT(5),
VR_Corner_name VARCHAR(5),
PRIMARY KEY (VR_Corner_id)
);
CREATE TABLE VR_Dashcam (
VR_D_name VARCHAR(100),
VR_D_brand INT(5),
VR_D_corner INT(5),
INDEX(VR_D_name),
PRIMARY KEY (VR_D_name),
FOREIGN KEY (VR_D_brand) REFERENCES VR_Brand (VR_Brand_id),
FOREIGN KEY (VR_D_corner) REFERENCES VR_Corner (VR_Corner_id)
);
INSERT INTO VR_Brand (VR_Brand_id, VR_Brand_name)
VALUES (0, 'Citizen'),
(1, 'Digma'),
(2, 'Navitel'),
(3, 'Prology'),
(4, 'Xiaomi');
INSERT INTO VR_Corner (VR_Corner_id, VR_Corner_name)
VALUES (0, '120°'),
(1, '130°'),
(2, '135°'),
(3, '140°'),
(4, '150°'),
(5, '160°'),
(6, '170°');
INSERT INTO VR_Dashcam (VR_D_name, VR_D_brand, VR_D_corner)
VALUES ('Digma FreeDrive 104', 1, 3),
('Citizen Z255', 0, 0),
('Xiaomi Mi Dash Cam 1S (QDJ4032GL)', 4, 3),
('NAVITEL R200', 2, 3),
('Xiaomi 70mai Dash Cam Midrive D01', 4, 1),
('Digma FreeDrive 108 DUAL', 1, 3),
('NAVITEL R400', 2, 0),
('Citizen Z350', 0, 0),
('Digma FreeDrive 330', 1, 3),
('Prology VX-200', 3, 0),
('Xiaomi MiJia Car Driving Recorder Camera', 4, 5),
('Xiaomi MiJia Smart Rearview Mirror', 4, 0),
('Prology VX-D450', 3, 2),
('NAVITEL MSR900', 2, 4),
('Digma FreeDrive 600-GW DUAL 4K', 1, 4),
('Prology iReg-7270SHD', 3, 2);
SELECT * FROM VR_Dashcam;
SELECT * FROM VR_Brand;
SELECT * FROM VR_Corner;
SELECT VR_D_name AS 'Наименование',
brand.VR_Brand_name AS 'Бренд',
corner.VR_Corner_name AS 'Угол обзора'
FROM VR_Dashcam AS dashcam
INNER JOIN VR_Brand AS brand ON
brand.VR_Brand_id = dashcam.VR_D_brand
INNER JOIN VR_Corner AS corner ON
corner.VR_Corner_id = dashcam.VR_D_corner;
Рис. 1. Результат отображения таблицы "Навигаторы"
Рис. 2. Результат отображения таблицы "Комплектующие к навигаторам"
Рис.3. Результат отображения таблицы "..."
Вывод: о созданных таблицах, чтобы проиндексировать основную и вспомогательную таблицу: 5-7 строк объяснений.