diff --git a/DB/DBLab1/create.sql b/DB/DBLab1/create.sql new file mode 100644 index 0000000..64a7535 --- /dev/null +++ b/DB/DBLab1/create.sql @@ -0,0 +1,9 @@ +CREATE TYPE star_colors AS ENUM ('коричневый', 'красный', 'оранжевый', 'жёлтый', 'жёлто-белый', 'белый', 'бело-голубой', 'голубой', 'звезда Вольфа-Райе'); +CREATE TYPE star_types AS ENUM ('карлик', 'гигант', 'сверхгигант', 'сверхновая'); +CREATE TABLE human (passport_id CHAR(6) PRIMARY KEY, name VARCHAR(50) NOT NULL, surname VARCHAR(50) NOT NULL, last_name VARCHAR(50), birth_date TIMESTAMP NOT NULL); +CREATE TABLE galaxy (galaxy_name VARCHAR(50) PRIMARY KEY, galaxy_size VARCHAR(10) NOT NULL); +CREATE TABLE nebula (nebula_name VARCHAR(50) PRIMARY KEY, galaxy_name VARCHAR(50) REFERENCES galaxy(galaxy_name), nebula_size VARCHAR(10) NOT NULL); +CREATE TABLE star (star_name VARCHAR(50) PRIMARY KEY, nebula_name VARCHAR(50) REFERENCES nebula(nebula_name), star_type star_types NOT NULL DEFAULT 'карлик', star_color star_colors NOT NULL DEFAULT 'красный'); +CREATE TABLE planet (planet_name VARCHAR(50) PRIMARY KEY, star_name VARCHAR(50) REFERENCES star(star_name), planet_size REAL NOT NULL, planet_atmosphere BOOL, planet_life BOOL); +CREATE TABLE star_collision (id SERIAL PRIMARY KEY, star_name VARCHAR(50) REFERENCES star(star_name), human CHAR(6) REFERENCES human(passport_id), collision_time TIMESTAMP NOT NULL); +CREATE TABLE frame (frame_id SERIAL PRIMARY KEY, human CHAR(6) REFERENCES human(passport_id), galaxy_name VARCHAR(50) REFERENCES galaxy(galaxy_name), creation_time DATE NOT NULL); diff --git a/DB/DBLab1/delete.sql b/DB/DBLab1/delete.sql new file mode 100644 index 0000000..d011a40 --- /dev/null +++ b/DB/DBLab1/delete.sql @@ -0,0 +1,9 @@ +DROP TABLE IF EXISTS frame; +DROP TABLE IF EXISTS star_collision; +DROP TABLE IF EXISTS planet; +DROP TABLE IF EXISTS star; +DROP TABLE IF EXISTS nebula; +DROP TABLE IF EXISTS galaxy; +DROP TABLE IF EXISTS human; +DROP TYPE IF EXISTS star_colors; +DROP TYPE IF EXISTS star_types; diff --git a/DB/DBLab1/insert.sql b/DB/DBLab1/insert.sql new file mode 100644 index 0000000..26fd4c4 --- /dev/null +++ b/DB/DBLab1/insert.sql @@ -0,0 +1,33 @@ +INSERT INTO human VALUES (574212, 'Петр', 'Иванов', 'Сергеевич', TIMESTAMP '1988-04-10 16:49:21'); +INSERT INTO human(passport_id, name, surname, birth_date) VALUES (962459, 'Иван', 'Иванов', TIMESTAMP '1994-10-26 04:01:51'); +INSERT INTO human VALUES (147012, 'Алексей', 'Закруткин', 'Иванович', TIMESTAMP '2002-07-08 21:16:14'); +INSERT INTO human VALUES (012325, 'Илья', 'Трипаев', 'Олегович', TIMESTAMP '2014-01-02 01:23:58'); +INSERT INTO galaxy VALUES ('Большое Магелланово Облако', '9.9 кпк'); +INSERT INTO galaxy VALUES ('Млечный Путь', '16 кпк'); +INSERT INTO nebula VALUES ('Туманность Тарантул', 'Большое Магелланово Облако', '30’ x 20’'); +INSERT INTO nebula VALUES ('Туманность Ориона', 'Млечный Путь', '12 пк'); +INSERT INTO star VALUES ('R136a1', 'Туманность Тарантул', 'сверхгигант', 'звезда Вольфа-Райе'); +INSERT INTO star VALUES ('R136c', 'Туманность Тарантул', 'сверхгигант', 'звезда Вольфа-Райе'); +INSERT INTO star VALUES ('Orionis A', 'Туманность Ориона', 'карлик', 'бело-голубой'); +INSERT INTO star VALUES ('Orionis C', 'Туманность Ориона', 'карлик', 'голубой'); +INSERT INTO star VALUES ('2MASS J05352184–0546085', 'Туманность Ориона', 'карлик', 'коричневый'); +INSERT INTO planet(planet_name, star_name, planet_size) VALUES ('Proplyd 133-353', '2MASS J05352184–0546085', 7.4); +INSERT INTO frame(human, galaxy_name, creation_time) VALUES (574212, 'Большое Магелланово Облако', TIMESTAMP '2001-10-12 14:15:47'); +INSERT INTO frame(human, galaxy_name, creation_time) VALUES (012325, 'Млечный Путь', TIMESTAMP '2020-12-27 03:00:14'); +INSERT INTO star_collision(human, star_name, collision_time) VALUES (574212, 'R136a1', TIMESTAMP '2001-10-12 14:16:49'); +INSERT INTO star_collision(human, star_name, collision_time) VALUES (012325, 'R136c', TIMESTAMP '2020-12-27 04:02:18'); +INSERT INTO star_collision(human, star_name, collision_time) VALUES (147012, 'Orionis C', TIMESTAMP '2012-07-08 21:16:14'); +INSERT INTO star_collision(human, star_name, collision_time) VALUES (962459, 'Orionis A', TIMESTAMP '2007-05-10 16:47:29'); +INSERT INTO star_collision(human, star_name, collision_time) VALUES (574212, 'R136a1', TIMESTAMP '2001-10-13 01:27:28'); +INSERT INTO star_collision(human, star_name, collision_time) VALUES (962459, 'R136a1', TIMESTAMP '2007-05-10 18:49:31'); +INSERT INTO star_collision(human, star_name, collision_time) VALUES (012325, 'Orionis C', TIMESTAMP '2020-12-28 17:46:09'); +INSERT INTO star_collision(human, star_name, collision_time) VALUES (147012, 'Orionis C', TIMESTAMP '2014-07-08 21:16:14'); +INSERT INTO star_collision(human, star_name, collision_time) VALUES (574212, 'Orionis C', TIMESTAMP '2001-10-17 15:16:37'); +INSERT INTO star_collision(human, star_name, collision_time) VALUES (574212, '2MASS J05352184–0546085', TIMESTAMP '2001-10-18 03:17:30'); +INSERT INTO star_collision(human, star_name, collision_time) VALUES (012325, 'Orionis A', TIMESTAMP '2020-12-28 23:11:32'); +INSERT INTO star_collision(human, star_name, collision_time) VALUES (962459, 'R136c', TIMESTAMP '2007-05-10 20:51:33'); +INSERT INTO star_collision(human, star_name, collision_time) VALUES (147012, 'Orionis C', TIMESTAMP '2016-07-08 21:16:14'); +INSERT INTO star_collision(human, star_name, collision_time) VALUES (574212, 'R136a1', TIMESTAMP '2001-10-18 22:09:29'); +INSERT INTO star_collision(human, star_name, collision_time) VALUES (962459, 'R136c', TIMESTAMP '2007-05-10 22:53:35'); +INSERT INTO star_collision(human, star_name, collision_time) VALUES (012325, 'Orionis C', TIMESTAMP '2020-12-29 00:00:14'); +INSERT INTO star_collision(human, star_name, collision_time) VALUES (574212, 'R136a1', TIMESTAMP '2001-10-19 00:00:00'); diff --git a/DB/DBLab1/report.pdf b/DB/DBLab1/report.pdf new file mode 100644 index 0000000..31c14e8 Binary files /dev/null and b/DB/DBLab1/report.pdf differ