БД. Касьяненко_БД_1. Лабораторная работа по Информационным системам и базам данных 1 Вариант 297537 Работу Касьяненко В. М. Группа P3120
Скачать 184.11 Kb.
|
Национальный исследовательский университет ИТМО Факультет ПИиКТ Лабораторная работа по Информационным системам и базам данных №1 Вариант 297537 Работу выполнил: Касьяненко В.М. Группа: P3120 Преподаватель: Королёва Ю.А. Санкт-Петербург, 2023 Текст задания Описание предметной области Да, бессмысленно ожидать чего-либо иного. Что ж... Он увидел воочию столько чудес - за такую возможность многие отдали бы жизнь. Он вспомнил о своих погибших товарищах... Нет, ему грешно сетовать на судьбу. Список сущностей Стержневые: Товарищ – id, имя; возраст; количество увиденных чудес; судьба; тип товарища; жалобы, жив ли. Чудо – id, название; местоположение; опасность. Судьба – id, описание; длительность жизни. Характеристические: Жалобы – id; описание. Опасность – id; описание. Тип товарища – id; название, миссия. Местоположение – id; название. Инфологическая модель Даталогическая модель Реализация даталогической модели на SQL CREATE TABLE danger ( id BIGSERIAL PRIMARY KEY, description TEXT NOT NULL UNIQUE ); CREATE TABLE location ( id BIGSERIAL PRIMARY KEY, name TEXT NOT NULL UNIQUE ); CREATE TABLE miracle ( id BIGSERIAL PRIMARY KEY, name TEXT NOT NULL UNIQUE, danger BIGINT REFERENCES danger(id) NOT NULL, location BIGINT REFERENCES location(id) ON DELETE CASCADE NOT NULL UNIQUE ); CREATE TABLE destiny ( id BIGSERIAL PRIMARY KEY, description TEXT NOT NULL UNIQUE ); CREATE TABLE complaint ( id BIGSERIAL PRIMARY KEY, description TEXT NOT NULL UNIQUE ); CREATE TABLE comrade ( id BIGSERIAL PRIMARY KEY, name TEXT NOT NULL UNIQUE, birth_date DATE NOT NULL, death_date DATE, destiny BIGINT REFERENCES destiny(id) NOT NULL, complaint BIGINT REFERENCES complaint(id) ON DELETE SET NULL ); CREATE TABLE miracle_seen ( miracle BIGINT REFERENCES miracle(id) ON DELETE CASCADE NOT NULL, comrade BIGINT REFERENCES comrade(id) ON DELETE CASCADE NOT NULL, seeing_date DATE NOT NULL, PRIMARY KEY (miracle, comrade, seeing_date) ); INSERT INTO danger (description) VALUES ('Можно сорваться со скалы'), ('Можно столкнуться с астероидом'), ('Можно сгореть в лаве'); INSERT INTO location (name) VALUES ('Горы'), ('Космос'), ('Вулкан'); INSERT INTO miracle (name, danger, location) VALUES ('Гора Афон', 1, 1), ('Астероид Апофис', 2, 2), ('Пещера смерти', 3, 3); INSERT INTO destiny (description) VALUES ('Сорваться со скалы'), ('Упасть в лаву'), ('Врезаться в астероид'), ('Умереть в старости'); INSERT INTO complaint (description) VALUES ('Мне слишком жарко'), ('Я боюсь высоты'), ('Я скучаю по своим товарищам'), ('Хочу увидеть хоть одно чудо!'); INSERT INTO comrade (name, birth_date, death_date, destiny, complaint) VALUES ('Чарли', '1998-01-01', null, 4, null), ('Томас', '1988-01-01', null, 2, 3), ('Вильям', '1978-01-01', '2020-01-01', 1, 2), ('Джеймс', '1963-01-01', null, 4, null), ('Дэниел', '1998-01-01', null, 3, 4), ('Оливер', '1998-01-01', null, 2, 1), ('Джек', '1943-01-01', null, 4, 3); INSERT INTO miracle_seen (miracle, comrade, seeing_date) VALUES (1, 1, '2001-01-01'), (1, 2, '2010-01-01'), (1, 4, '2015-01-01'), (2, 4, '2003-02-04'), (2, 6, '2006-06-13'), (2, 7, '2007-01-01'), (3, 7, '2008-01-01'), (3, 4, '2010-01-01'), (1, 7, '2006-06-13'); Вывод При выполнении данной лабораторной работы я поэтапно провёла анализ предметной области, сущностей; создала ER-диаграмму и даталогическую модель. |