upd lab 1.2

This commit is contained in:
nik
2025-10-11 20:02:43 +03:00
parent 82bd974557
commit 93d31f9da7
51 changed files with 223 additions and 1 deletions

View File

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 40 KiB

View File

Before

Width:  |  Height:  |  Size: 334 KiB

After

Width:  |  Height:  |  Size: 334 KiB

View File

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 35 KiB

View File

Before

Width:  |  Height:  |  Size: 75 KiB

After

Width:  |  Height:  |  Size: 75 KiB

View File

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

View File

Before

Width:  |  Height:  |  Size: 327 KiB

After

Width:  |  Height:  |  Size: 327 KiB

View File

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 27 KiB

View File

Before

Width:  |  Height:  |  Size: 161 KiB

After

Width:  |  Height:  |  Size: 161 KiB

View File

Before

Width:  |  Height:  |  Size: 152 KiB

After

Width:  |  Height:  |  Size: 152 KiB

View File

Before

Width:  |  Height:  |  Size: 55 KiB

After

Width:  |  Height:  |  Size: 55 KiB

View File

Before

Width:  |  Height:  |  Size: 146 KiB

After

Width:  |  Height:  |  Size: 146 KiB

View File

Before

Width:  |  Height:  |  Size: 106 KiB

After

Width:  |  Height:  |  Size: 106 KiB

View File

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 29 KiB

View File

Before

Width:  |  Height:  |  Size: 393 KiB

After

Width:  |  Height:  |  Size: 393 KiB

View File

Before

Width:  |  Height:  |  Size: 397 KiB

After

Width:  |  Height:  |  Size: 397 KiB

View File

Before

Width:  |  Height:  |  Size: 394 KiB

After

Width:  |  Height:  |  Size: 394 KiB

View File

Before

Width:  |  Height:  |  Size: 378 KiB

After

Width:  |  Height:  |  Size: 378 KiB

View File

Before

Width:  |  Height:  |  Size: 459 KiB

After

Width:  |  Height:  |  Size: 459 KiB

View File

Before

Width:  |  Height:  |  Size: 469 KiB

After

Width:  |  Height:  |  Size: 469 KiB

View File

Before

Width:  |  Height:  |  Size: 145 KiB

After

Width:  |  Height:  |  Size: 145 KiB

View File

Before

Width:  |  Height:  |  Size: 177 KiB

After

Width:  |  Height:  |  Size: 177 KiB

View File

Before

Width:  |  Height:  |  Size: 47 KiB

After

Width:  |  Height:  |  Size: 47 KiB

View File

Before

Width:  |  Height:  |  Size: 150 KiB

After

Width:  |  Height:  |  Size: 150 KiB

View File

@@ -32,7 +32,7 @@
#align(center)[Направление подготовки 11.03.02]
\
\
#align(center)[Практическая работа №1]
#align(center)[Практическая работа №1.1]
#align(center)[Установка и первоначальная настройка субд postgresql.]
\
\

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 267 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 257 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 294 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 286 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 206 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 303 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 260 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 264 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 265 KiB

BIN
labs/lab1/part2/report.pdf Normal file

Binary file not shown.

222
labs/lab1/part2/report.typ Normal file
View File

@@ -0,0 +1,222 @@
#set text(size: 1.3em)
#show link: underline
#set page(footer: context {
if counter(page).get().first() > 1 [
#align(center)[
#counter(page).display("1")
]
]
})
#show raw.where(block: false): box.with(
fill: luma(240),
inset: (x: 3pt, y: 0pt),
outset: (y: 3pt),
radius: 2pt,
)
#show raw.where(block: true): block.with(
fill: luma(240),
inset: 10pt,
radius: 4pt,
)
// title
#align(center)[Санкт-Петербургский национальный исследовательский университет информационных технологий, механики и оптики]
\
\
\
#align(center)[Факультет инфокоммуникационных технологий]
#align(center)[Направление подготовки 11.03.02]
\
\
#align(center)[Практическая работа №1.2]
#align(center)[Установка и первоначальная настройка субд postgresql.]
\
\
\ //#align(center)[Вариант 19]
\
\
\
\
\
\
\
#align(right)[Выполнил:]
#align(right)[Дощенников Никита Андреевич]
#align(right)[Группа: К3221]
#align(right)[Проверила:]
#align(right)[Татьяна Евгеньевна Войтюк]
\
\
#align(center)[Санкт-Петербург]
#align(center)[2025]
#pagebreak()
=== Цель работы:
Изучение принципов проектирования и администрирования реляционных баз данных в среде postgresql с использованием графического интерфейса pgadmin и языка sql. Освоение создания, изменения и связи таблиц, настройки ограничений целостности, индексов и построения ER-диаграмм. Формирование практических навыков работы с объектами базы данных, добавления и проверки данных, а также документирования структуры базы данных.
=== Задачи, решаемые при выполнении работы.
- Освоить создание таблиц в базе данных с использованием графического интерфейса pgadmin и sql запросов.
- Научиться задавать ключевые параметры таблиц: первичные ключи, автоинкрементные поля, значения по умолчанию и ограничения `NOT NULL`.
- Изучить применение команды `ALTER TABLE` для изменения структуры таблицы без потери данных.
- Создать связи между таблицами (внешние ключи) как через интерфейс pgadmin, так и с помощью sql кода.
- Научиться создавать индексы для оптимизации поиска и сортировки данных.
- Освоить построение и редактирование er диаграмм для визуализации структуры базы данных.
- Научиться добавлять, изменять и проверять данные в таблицах с помощью интерфейса pgadmin и dml запросов.
- Изучить назначение и реализацию ограничений целостности.
- Научиться очищать таблицы с помощью команды `TRUNCATE` и выполнять внешние sql скрипты для заполнения и модификации базы.
- Сформировать целостное представление о создании и сопровождении базы данных на примере модели hr.
=== Исходные данные.
- субд postgresql и графическая оболочка pgadmin.
- бд hr, содержащая схемы и объекты для работы.
- схема employeesDepartments, созданная на предыдущем этапе.
- sql-скрипты, предоставленные в методических материалах:
- набор заданий, предполагающих создание таблиц employees, departments, locations и других таблиц базы данных hr.
- примерные структуры таблиц и параметры столбцов.
- методические указания по выполнению лабораторных работ и пошаговые инструкции с примерами sql команд и интерфейсных действий.
=== Выполнение работы.
===== Задание 1. Создание таблицы в графической среде pgadmin.
Я раскрыл базу hr до узла tables и выбрал опцию create:
#align(center)[#image("assets/1.png")]
И создал таблицу `EMPLOYEES`:
#align(center)[#image("assets/2.png")]
Затем я заполнил вкладку `columns` как показано на рисунке в условии:
#align(center)[#image("assets/3.png")]
Для поля `employee_id`, я выставил следующие параметры:
#align(center)[#image("assets/4.png")]
Для столбца `hire_date` я поставил значение по умолчанию `current_date`.
#align(center)[#image("assets/5.png")]
После этого, я сохранил таблицу.
===== Задание 2. Создание таблицы в Query Editor.
Я открыл query tool для hr и вписал туда следующий скрипт:
```sql
CREATE TABLE "EmployeesDepartments"."DEPARTMENTS" (
DEPARTMENT_ID integer GENERATED ALWAYS AS IDENTITY (INCREMENT 1 START 1) PRIMARY KEY NOT NULL,
DEPARTMENT_NAME character varying(30)[] NOT NULL,
MANAGER_ID bigint NULL,
LOCATION_ID integer NULL
);
```
#align(center)[#image("assets/6.png")]
Таблица появилась в object explorer:
#align(center)[#image("assets/7.png")]
Затем я создал еще одну таблицу скриптом:
```sql
CREATE TABLE "EmployeesDepartments"."LOCATIONS"
(LOCATION_ID smallint GENERATED ALWAYS AS IDENTITY NOT NULL,
STREET_ADDRESS character varying(40),
POSTAL_CODE character varying(12),
CITY character varying(30),
COUNTRY_ID CHAR(2)
);
```
#align(center)[#image("assets/9.png")]
Как можно видеть, таблица была создана:
#align(center)[#image("assets/10.png")]
===== Задание 3. Изменение таблицы.
В querry tool я ввел следующее:
```
ALTER TABLE "EmployeesDepartments"."LOCATIONS"
ADD STATE_PROVINCE character varying(25) NULL;
```
#align(center)[#image("assets/11.png")]
Изменил столбец CITY следующим кодом:
```
ALTER TABLE "EmployeesDepartments"."LOCATIONS"
ADD CONSTRAINT "PK_LokationId" PRIMARY KEY (LOCATION_ID);
```
#align(center)[#image("assets/12.png")]
Таблица locations:
#align(center)[#image("assets/13.png")]
Затем я прописал текст скрипта `script1_create.sql`:
#align(center)[#image("assets/14.png")]
#align(center)[#image("assets/15.png")]
===== Задание 4. Создание отношения графическим интерфейсом pgadmin.
Я нажал ПКМ по таблице EmployeesDepartments.LOCATIONS и выбрал меню создания внешнего ключа:
#align(center)[#image("assets/16.png")]
Затем я ввел задание название отношения:
#align(center)[#image("assets/17.png")]
После, я добавил столбец кнопкой add:
#align(center)[#image("assets/18.png")]
Вкладка sql:
#align(center)[#image("assets/19.png")]
Ограничения locations:
#align(center)[#image("assets/20.png")]
Затем я создал отношение с помощью ddl оператора alter table:
```sql
ALTER TABLE "Countries"."COUNTRIES"
ADD CONSTRAINT "COUNTR_REG_ID_FK1" FOREIGN KEY ("REGION_ID")
REFERENCES "Countries"."REGIONS" ("REGION_ID");
```
#align(center)[#image("assets/21.png")]
===== Задание 5. Создания индекса с помощью графического интерфейса pgadmin.
===== Задание 6. Построение диаграмм базы данных.
===== Задание 7. Добавление данных в таблицу.
===== Задание 8. Ограничения для столбцов.
===== Задание 9. Очистка таблиц и завершение создания БД HR.
=== Выводы.

BIN
labs/lab1/part2/task.pdf Normal file

Binary file not shown.