This commit is contained in:
nik
2025-10-22 09:05:23 +03:00
parent 41039b8d5a
commit 41250452b8
2 changed files with 287 additions and 60 deletions

Binary file not shown.

View File

@@ -599,99 +599,224 @@ REFERENCES "Countries"."REGIONS" ("REGION_ID");
===== Задание 5. Создания индекса с помощью графического интерфейса pgadmin.
В таблице EmployeesDepartments.LOCATIONS, я выбрал раздел меню для создания индекса:
В таблице EmployeesDepartments.LOCATIONS, я выбрал раздел меню для создания индекса (Рис. 41):
#align(center)[#image("part2/assets/22.png")]
#align(center)[
#figure(
image("part2/assets/22.png"),
caption: [Меню для создания индекса.],
supplement: [Рис]
)
]
Я в диалоге создания индекса я передал следующие параметры:
Я в диалоге создания индекса я передал следующие параметры (Рис. 42, 43, 44):
#align(center)[#image("part2/assets/23.png")]
#align(center)[
#figure(
image("part2/assets/23.png"),
caption: [Параметры создания индекса. Вкладка General.],
supplement: [Рис]
)
]
#align(center)[#image("part2/assets/24.png")]
#align(center)[
#figure(
image("part2/assets/24.png"),
caption: [Параметры создания индекса. Вкладка Definition.],
supplement: [Рис]
)
]
#align(center)[#image("part2/assets/25.png")]
#align(center)[
#figure(
image("part2/assets/25.png"),
caption: [Параметры создания индекса. Вкладка Columns.],
supplement: [Рис]
)
]
sql:
#align(center)[#image("part2/assets/26.png")]
#align(center)[
#figure(
image("part2/assets/26.png"),
caption: [SQL скрипт создания индекса.],
supplement: [Рис]
)
]
===== Задание 6. Построение диаграмм базы данных.
Для создания диаграммы я нажал ПКМ на узел базы данных и выбрал параметр "ERD For Database":
Для создания диаграммы я нажал ПКМ на узел базы данных и выбрал параметр "ERD For Database" (Рис. 46):
#align(center)[#image("part2/assets/27.png")]
#align(center)[
#figure(
image("part2/assets/27.png"),
caption: [Меню создание ERD-диаграммы.],
supplement: [Рис]
)
]
Затем я скорректировал вид своей диаграммы в соответствии с условием:
#align(center)[#image("part2/assets/28.png")]
Затем я скорректировал вид своей диаграммы в соответствии с условием (Рис. 47):
Я экспортировал снимок диаграммы, нажав на соответствующую кнопку. Результат:
#align(center)[
#figure(
image("part2/assets/28.png"),
caption: [Вид ERD-диаграммы.],
supplement: [Рис]
)
]
#align(center)[#image("part2/assets/29.png")]
Я экспортировал снимок диаграммы, нажав на соответствующую кнопку. Результат (Рис. 48):
Сохранил проект диаграммы:
#align(center)[
#figure(
image("part2/assets/29.png"),
caption: [Рисунок диаграммы.],
supplement: [Рис]
)
]
#align(center)[#image("part2/assets/30.png")]
Сохранил проект диаграммы (Рис. 49):
#align(center)[
#figure(
image("part2/assets/30.png"),
caption: [Сохраненный проект диаграммы.],
supplement: [Рис]
)
]
===== Задание 7. Добавление данных в таблицу.
Я раскрыл меню для генерирования скрипта по вставке данных в таблицу Countries.CURRENCIES:
Я раскрыл меню для генерирования скрипта по вставке данных в таблицу Countries.CURRENCIES (Рис. 50):
#align(center)[#image("part2/assets/31.png")]
#align(center)[
#figure(
image("part2/assets/31.png"),
caption: [Меню для генерирования скрита.],
supplement: [Рис]
)
]
Затем я добавил следующий код в скрипт:
Затем я добавил следующий код в скрипт (Рис. 51):
```sql
INSERT INTO "Countries"."CURRENCIES"("COMMENTS", "CURRENCY_NAME", "CURRENCY_CODE")
VALUES('EuroZone', 'Euro', 'EUR');
```
#align(center)[#image("part2/assets/32.png")]
#align(center)[
#figure(
image("part2/assets/32.png"),
caption: [Скрипт в query tool.],
supplement: [Рис]
)
]
После запуска скрипта проверил при помощи:
После запуска скрипта проверил при помощи (Рис. 52):
```sql
select * from "Countries"."CURRENCIES";
```
#align(center)[#image("part2/assets/33.png")]
#align(center)[
#figure(
image("part2/assets/33.png"),
caption: [Скрипт в query tool.],
supplement: [Рис]
)
]
В столбце EMPLOYEE_ID я заменил identity с always на by default.
В столбце EMPLOYEE_ID я заменил identity с always на by default (Рис. 53).
#align(center)[#image("part2/assets/34.png")]
#align(center)[
#figure(
image("part2/assets/34.png"),
caption: [Изменение параметра identity.],
supplement: [Рис]
)
]
Затем при помощи графического интерфейса pgadmin, я добавил запись в таблицу "EmployeesDepartments"."EMPLOYEES":
#align(center)[#image("part2/assets/35.png")]
Затем при помощи графического интерфейса pgadmin, я добавил запись в таблицу "EmployeesDepartments"."EMPLOYEES" (Рис. 54, 55):
#align(center)[#image("part2/assets/36.png")]
#align(center)[
#figure(
image("part2/assets/35.png"),
caption: [Просмотр строк таблицы.],
supplement: [Рис]
)
]
Затем я добавил строку и сохранил данные:
#align(center)[
#figure(
image("part2/assets/36.png"),
caption: [Пустые строки таблицы.],
supplement: [Рис]
)
]
#align(center)[#image("part2/assets/37.png")]
#align(center)[#image("part2/assets/38.png")]
#align(center)[#image("part2/assets/39.png")]
Затем, в query tool я ввел следующий код:
Затем я добавил строку и сохранил данные (Рис. 56, 57, 58):
#align(center)[
#figure(
image("part2/assets/37.png"),
caption: [Добавление строки.],
supplement: [Рис]
)
]
#align(center)[
#figure(
image("part2/assets/38.png"),
caption: [Добавление строки.],
supplement: [Рис]
)
]
#align(center)[
#figure(
image("part2/assets/39.png"),
caption: [Новая строка сохранена.],
supplement: [Рис]
)
]
Затем, в query tool я ввел следующий код (Рис. 59):
```sql
INSERT INTO "EmployeesDepartments"."EMPLOYEES"("FIRST_NAME", "LAST_NAME", "EMAIL", "PHONE_NUMBER", "JOB_ID", "SALARY", "COMMISSION_PCT", "MANAGER_ID", "DEPARTMENT_ID")
VALUES(2, 'Steven', 'King', 'SKING', '515.123.4567', 'AD_PRES', 24000, null, null, 90);
```
#align(center)[#image("part2/assets/40.png")]
#align(center)[
#figure(
image("part2/assets/40.png"),
caption: [Код в query tool.],
supplement: [Рис]
)
]
Проверим:
Проверим (Рис. 60):
```sql
SELECT * FROM "EmployeesDepartments"."EMPLOYEES";
```
#align(center)[#image("part2/assets/41.png")]
#align(center)[
#figure(
image("part2/assets/41.png"),
caption: [Скрипт в query tool.],
supplement: [Рис]
)
]
===== Задание 8. Ограничения для столбцов.
Я добавил ограничения к таблицам "Countries"."SPOKEN_LANGUAGES" и "EmployeesDepartments"."EMPLOYEES" при помощи следующего кода:
Я добавил ограничения к таблицам "Countries"."SPOKEN_LANGUAGES" и "EmployeesDepartments"."EMPLOYEES" при помощи следующего кода (Рис. 61, 62):
```sql
ALTER TABLE "Countries"."SPOKEN_LANGUAGES"
@@ -699,10 +824,23 @@ ADD CONSTRAINT "CTRY_NUM_FK1" FOREIGN KEY ("COUNTRY_ID")
REFERENCES "Countries"."COUNTRIES" ("COUNTRY_ID");
```
#align(center)[#image("part2/assets/42.png")]
#align(center)[#image("part2/assets/43.png")]
#align(center)[
#figure(
image("part2/assets/42.png"),
caption: [Добавления ограничений через query tool.],
supplement: [Рис]
)
]
и
#align(center)[
#figure(
image("part2/assets/43.png"),
caption: [Ограничения таблицы SPOKEN_LANGUAGES.],
supplement: [Рис]
)
]
и (Рис. 63, 64)
```sql
ALTER TABLE "EmployeesDepartments"."EMPLOYEES"
@@ -710,20 +848,60 @@ ADD CONSTRAINT "EMP_SALARY_MIN"
CHECK ("SALARY" > 0);
```
#align(center)[#image("part2/assets/44.png")]
#align(center)[#image("part2/assets/45.png")]
#align(center)[
#figure(
image("part2/assets/44.png"),
caption: [Добавление ограничения через query tool.],
supplement: [Рис]
)
]
Затем я добавил еще одно ограничение для таблицы JOB_HISTORY. Для этого в свойствах таблицы в разделе constraints добавил check c условием, что "END_DATE" > "START_DATE":
#align(center)[
#figure(
image("part2/assets/45.png"),
caption: [Добавленное ограничение.],
supplement: [Рис]
)
]
#align(center)[#image("part2/assets/46.png")]
#align(center)[#image("part2/assets/47.png")]
Я включил это ограничение выключив соответствующую опцию:
Затем я добавил еще одно ограничение для таблицы JOB_HISTORY. Для этого в свойствах таблицы в разделе constraints добавил check c условием, что "END_DATE" > "START_DATE" (Рис. 65, 66):
#align(center)[#image("part2/assets/48.png")]
#align(center)[#image("part2/assets/49.png")]
#align(center)[
#figure(
image("part2/assets/46.png"),
caption: [Добавление ограничения для JOB_HISTORY.],
supplement: [Рис]
)
]
Также я проверил работоспособность ограничения:
#align(center)[
#figure(
image("part2/assets/47.png"),
caption: [Добавленное ограничение.],
supplement: [Рис]
)
]
Я включил это ограничение выключив соответствующую опцию (Рис. 67, 68):
#align(center)[
#figure(
image("part2/assets/48.png"),
caption: [Выключенная функция "Don't validate?".],
supplement: [Рис]
)
]
#align(center)[
#figure(
image("part2/assets/49.png"),
caption: [Включенное ограничение.],
supplement: [Рис]
)
]
Также я проверил работоспособность ограничения (Рис. 69, 70):
```sql
INSERT INTO "EmployeesDepartments"."JOB_HISTORY"
@@ -731,7 +909,13 @@ INSERT INTO "EmployeesDepartments"."JOB_HISTORY"
VALUES(200, '06-17-1993', '09-17-1987', 'AD_ASST', 90);
```
#align(center)[#image("part2/assets/50.png")]
#align(center)[
#figure(
image("part2/assets/50.png"),
caption: [Ошибка. Скрипт не отрабатывает.],
supplement: [Рис]
)
]
и
@@ -741,25 +925,44 @@ INSERT INTO "EmployeesDepartments"."JOB_HISTORY"
VALUES(200, '06-17-1981', '06-17-1993', 'AD_ASST', 90);
```
#align(center)[#image("part2/assets/51.png")]
#align(center)[
#figure(
image("part2/assets/51.png"),
caption: [Скрипт отрабатывает без ошибки.],
supplement: [Рис]
)
]
===== Задание 9. Очистка таблиц и завершение создания БД HR.
Я произвел очистку таблицы EMPLOYEES с помощью DDL команды `TRUNCATE`:
Я произвел очистку таблицы EMPLOYEES с помощью DDL команды `TRUNCATE` (Рис. 71):
```sql
TRUNCATE "EmployeesDepartments"."EMPLOYEES";
```
#align(center)[#image("part2/assets/52.png")]
#align(center)[
#figure(
image("part2/assets/52.png"),
caption: [Выполнение команды `TRUNCATE`.],
supplement: [Рис]
)
]
Также я очистил JOB_HISTORY и CURRENCIES:
Также я очистил JOB_HISTORY и CURRENCIES (Рис. 72, 73):
```sql
TRUNCATE "EmployeesDepartments"."JOB_HISTORY";
```
#align(center)[#image("part2/assets/53.png")]
#align(center)[
#figure(
image("part2/assets/53.png"),
caption: [Выполнение команды `TRUNCATE`.],
supplement: [Рис]
)
]
и
@@ -767,19 +970,43 @@ TRUNCATE "EmployeesDepartments"."JOB_HISTORY";
TRUNCATE "Countries"."CURRENCIES";
```
#align(center)[#image("part2/assets/54.png")]
#align(center)[
#figure(
image("part2/assets/54.png"),
caption: [Исполнение команды `TRUNCATE`.],
supplement: [Рис]
)
]
После очистки я выполнил код из файла `script2_alter.sql`:
После очистки я выполнил код из файла `script2_alter.sql` (Рис. 74):
#align(center)[#image("part2/assets/55.png")]
#align(center)[
#figure(
image("part2/assets/55.png"),
caption: [Исполнение скрипта `script2_alter.sql`.],
supplement: [Рис]
)
]
И для добавления данных, я выполнил скрипт `script3_insert.sql`:
И для добавления данных, я выполнил скрипт `script3_insert.sql` (Рис. 75):
#align(center)[#image("part2/assets/56.png")]
#align(center)[
#figure(
image("part2/assets/56.png"),
caption: [Исполнение скрипта `script3_insert.sql`.],
supplement: [Рис]
)
]
Результат:
Результат (Рис. 76):
#align(center)[#image("part2/assets/57.png")]
#align(center)[
#figure(
image("part2/assets/57.png"),
caption: [Получившаяся ERD-диаграмма.],
supplement: [Рис]
)
]
=== Выводы.