
Лаб. 4 СУБД
.docxЛабораторная работа 4
«Создание логической и физической модели базы данных»
create table professor_field(
professor_id integer not null references professor(professor_id) on delete cascade,
field_id uuid not null references field(field_id) on delete cascade,
primary key(professor_id, field_id)
);
insert into professor_field (professor_id, field_id)
select professor_id, field_id from field;
alter table field drop column professor_id
Alter table student_id
Add column status varchar(12) not null check (status = ANY (‘{Заблокирован, Активен}’::VARCHAR[])) default ‘Активен’
update student_id
set status = case
when expiration_date < current_date then 'Заблокирован'
else 'Активен'
end
create table coach (
coach_id integer,
surname varchar(30) not null,
name varchar(30) not null,
patronymic varchar(30) not null,
experience integer not null check (experience >= 0),
salary money not null,
primary key(coach_id)
);
create table section (
section_id uuid,
section_name varchar(100) not null,
coach_id integer not null references coach(coach_id) on delete cascade,
primary key(section_id)
);
create table student_section (
student_id integer not null references student(student_id) on delete cascade,
section_id uuid not null references section(section_id) on delete cascade,
primary key(student_id, section_id)
)
Контрольные вопросы
Для чего необходимо проектирование базы данных?
Для создания логичной и структурированной системы для хранения, управления и обработки данных.
Что такое ER-модель?
ER-модель (Entity-Relationship Model) — это метод, используемый для визуального представления структуры базы данных. Она помогает понять, как данные взаимосвязаны и как они будут организованы в базе данных.
Перечислите известные вам типы связи.
Существуют несколько типов связи – 1:1, 1: N, N:N.
Какие образом возможно физически реализовать связь «многие ко многим»?
Данный тип связи нереализуем в рамках физической модели, поэтому представляется в виде создания дополнительной таблицы, содержащей ключевые поля соединяемых отношений.
Какие команды для установки ограничения вам известны?