upd lab 1.2
|
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 40 KiB |
|
Before Width: | Height: | Size: 334 KiB After Width: | Height: | Size: 334 KiB |
|
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 35 KiB |
|
Before Width: | Height: | Size: 75 KiB After Width: | Height: | Size: 75 KiB |
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 327 KiB After Width: | Height: | Size: 327 KiB |
|
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 161 KiB After Width: | Height: | Size: 161 KiB |
|
Before Width: | Height: | Size: 152 KiB After Width: | Height: | Size: 152 KiB |
|
Before Width: | Height: | Size: 55 KiB After Width: | Height: | Size: 55 KiB |
|
Before Width: | Height: | Size: 146 KiB After Width: | Height: | Size: 146 KiB |
|
Before Width: | Height: | Size: 106 KiB After Width: | Height: | Size: 106 KiB |
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 393 KiB After Width: | Height: | Size: 393 KiB |
|
Before Width: | Height: | Size: 397 KiB After Width: | Height: | Size: 397 KiB |
|
Before Width: | Height: | Size: 394 KiB After Width: | Height: | Size: 394 KiB |
|
Before Width: | Height: | Size: 378 KiB After Width: | Height: | Size: 378 KiB |
|
Before Width: | Height: | Size: 459 KiB After Width: | Height: | Size: 459 KiB |
|
Before Width: | Height: | Size: 469 KiB After Width: | Height: | Size: 469 KiB |
|
Before Width: | Height: | Size: 145 KiB After Width: | Height: | Size: 145 KiB |
|
Before Width: | Height: | Size: 177 KiB After Width: | Height: | Size: 177 KiB |
|
Before Width: | Height: | Size: 47 KiB After Width: | Height: | Size: 47 KiB |
|
Before Width: | Height: | Size: 150 KiB After Width: | Height: | Size: 150 KiB |
@@ -32,7 +32,7 @@
|
||||
#align(center)[Направление подготовки 11.03.02]
|
||||
\
|
||||
\
|
||||
#align(center)[Практическая работа №1]
|
||||
#align(center)[Практическая работа №1.1]
|
||||
#align(center)[Установка и первоначальная настройка субд postgresql.]
|
||||
\
|
||||
\
|
||||
BIN
labs/lab1/part2/assets/1.png
Normal file
|
After Width: | Height: | Size: 106 KiB |
BIN
labs/lab1/part2/assets/10.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
labs/lab1/part2/assets/11.png
Normal file
|
After Width: | Height: | Size: 267 KiB |
BIN
labs/lab1/part2/assets/12.png
Normal file
|
After Width: | Height: | Size: 257 KiB |
BIN
labs/lab1/part2/assets/13.png
Normal file
|
After Width: | Height: | Size: 58 KiB |
BIN
labs/lab1/part2/assets/14.png
Normal file
|
After Width: | Height: | Size: 294 KiB |
BIN
labs/lab1/part2/assets/15.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
labs/lab1/part2/assets/16.png
Normal file
|
After Width: | Height: | Size: 73 KiB |
BIN
labs/lab1/part2/assets/17.png
Normal file
|
After Width: | Height: | Size: 85 KiB |
BIN
labs/lab1/part2/assets/18.png
Normal file
|
After Width: | Height: | Size: 98 KiB |
BIN
labs/lab1/part2/assets/19.png
Normal file
|
After Width: | Height: | Size: 286 KiB |
BIN
labs/lab1/part2/assets/2.png
Normal file
|
After Width: | Height: | Size: 206 KiB |
BIN
labs/lab1/part2/assets/20.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
labs/lab1/part2/assets/21.png
Normal file
|
After Width: | Height: | Size: 303 KiB |
BIN
labs/lab1/part2/assets/3.png
Normal file
|
After Width: | Height: | Size: 79 KiB |
BIN
labs/lab1/part2/assets/4.png
Normal file
|
After Width: | Height: | Size: 84 KiB |
BIN
labs/lab1/part2/assets/5.png
Normal file
|
After Width: | Height: | Size: 80 KiB |
BIN
labs/lab1/part2/assets/6.png
Normal file
|
After Width: | Height: | Size: 260 KiB |
BIN
labs/lab1/part2/assets/7.png
Normal file
|
After Width: | Height: | Size: 8.1 KiB |
BIN
labs/lab1/part2/assets/8.png
Normal file
|
After Width: | Height: | Size: 264 KiB |
BIN
labs/lab1/part2/assets/9.png
Normal file
|
After Width: | Height: | Size: 265 KiB |
BIN
labs/lab1/part2/report.pdf
Normal file
222
labs/lab1/part2/report.typ
Normal 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.
|
||||
|
||||
=== Выводы.
|
||||
|
||||