Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лаб_19 Головков И.Е. 12002108 УД

.docx
Скачиваний:
0
Добавлен:
26.06.2024
Размер:
212.22 Кб
Скачать

ФЕДЕРАЛЬНОЕ Государственное АВТОНОМНОЕ образовательное УЧРЕЖДЕНИЕ ВЫСШЕГО образования

«БЕЛГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ НАЦИОНАЛЬНЫЙ

ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ»

(НИУ «БелГУ»)

ИНСТИТУТ ИНЖЕНЕРНЫХ И ЦИФРОВЫХ ТЕХНОЛОГИЙ

Кафедра прикладной информатики и информационных технологий

Отчет по лабораторной работе № 19

Тема работы «Разработка таблиц удаленной базы данных с использованием клиент-серверной технологии»

по дисциплине «Управление данными»

студента очного отделения

2 курса 12002108 группы

Головкова Игоря Евгеньевича

Проверил:

Ассистент кафедры прикладной информатики и информационных технологий Сухарев М. А.

БЕЛГОРОД, 2023

Рисунок 1 – Логическая и физическая модели БД

  1. Атрибуты таблиц БД, первичные и внешние ключи

Название таблицы (сущность)

Название столбца

(атрибут)

Может быть Null

Тип данных

Первичный / внешний ключ

families

id

Нет

integer

Первичный ключ

families

family_latin

Нет

text

families

family

Нет

text

life_forms

id

Нет

integer

Первичный ключ

life_forms

life_form

Нет

text

physical_parameters

planting_date

Да

date

physical_parameters

health_assessment

Да

integer

physical_parameters

plant_id

Нет

integer

Первичный ключ

physical_parameters

height_cm

Да

integer

plant_information

id

Нет

integer

Первичный ключ, Внешний ключ

plant_information

family_id

Да

integer

Внешний ключ

plant_information

name_latin

Да

text

plant_information

toxicity_id

Да

integer

Внешний ключ

plant_information

life_form_id

Да

integer

Внешний ключ

plant_information

name

Да

text

toxicity

id

Нет

integer

Первичный ключ

toxicity

toxicity

Нет

text

Рисунок 2 – Таблицы БД с названиями столбцов и типами данных

  1. Создание индекса

CREATE INDEX plant_information_all_data

ON plant_information(family_id, life_form_id, toxicity_id);

  1. Генераторы автоинкрементных полей

nextval('families_id_seq'::regclass)

nextval('life_forms_id_seq'::regclass)

nextval('physical_parameters_plant_id_seq'::regclass)

nextval('plant_information_id_seq'::regclass)

nextval('toxicity_id_seq'::regclass)

  1. Создание триггера и его функции

CREATE TRIGGER adding_plant_to_physical_parameters AFTER INSERT ON plant_information FOR EACH STATEMENT EXECUTE PROCEDURE add_plant_to_physical_parameters(); CREATE OR REPLACE FUNCTION add_plant_to_physical_parameters() RETURNS TRIGGER AS $$ DECLARE maximum integer; BEGIN maximum = MAX(id) FROM plant_information; INSERT INTO physical_parameters(plant_id) VALUES (maximum); RETURN NEW; END $$ LANGUAGE plpgsql;

Пример работы триггера и генератора:

Рисунок 3 – Изначальная таблица

Вставка значения запросом, значение id генерируется автоматически:

INSERT INTO plant_information(name, name_latin, family_id, life_form_id, toxicity_id) VALUES ('Замиокулькас', 'Zamioculcas', 7, 3, 3)

Рисунок 4 – Таблица plant_information после вставки значения

Рисунок 5 – После срабатывания триггера в physical_parameters внесена строка с соответствующим plant_information id для описания физических параметров нового растения

  1. Таблицы БД с заполненной информацией

Рисунок 6 – Таблица families

Рисунок 7 – Таблица life_foms

Рисунок 8 – Таблица physical_parameters

Рисунок 9 – Таблица plant_information

Рисунок 10 – Таблица toxicity