1. Составить реляционные отношения для различных П...

Создано: 21 сентября 2026 г.

Отвечено с использованием GPT-5.6 Thinking от Chat01

Вопрос

  1. Составить реляционные отношения для различных ПрО ("Отдел кадров": список должностей, список сотрудников, список под-разделений; "Магазин": список товаров, список поставщиков, список поставок;
    "Проектная организация": список отделов,
    список сотрудников, список проектов).
  2. Определить первичные ключи для созданных отношений.
  3. Определить внешние ключи для созданных отношений.

Мысль

Worked for 4s

Ответ

Ниже — вариант реляционной модели для трёх предметных областей. Обозначения: PK — первичный ключ, FK — внешний ключ.

1. Предметная область «Отдел кадров»

ДОЛЖНОСТИ

  • Код_должностиPK
  • Название_должности
  • Оклад

ПОДРАЗДЕЛЕНИЯ

  • Код_подразделенияPK
  • Название_подразделения
  • Телефон

СОТРУДНИКИ

  • Табельный_номерPK
  • Фамилия
  • Имя
  • Отчество
  • Дата_рождения
  • Код_должностиFKДОЛЖНОСТИ.Код_должности
  • Код_подразделенияFKПОДРАЗДЕЛЕНИЯ.Код_подразделения
  • Дата_приема

Связи:

  • одна должность может соответствовать многим сотрудникам: ДОЛЖНОСТИ 1 : M СОТРУДНИКИ;
  • в одном подразделении может работать много сотрудников: ПОДРАЗДЕЛЕНИЯ 1 : M СОТРУДНИКИ.

2. Предметная область «Магазин»

ТОВАРЫ

  • Код_товараPK
  • Название_товара
  • Единица_измерения
  • Цена

ПОСТАВЩИКИ

  • Код_поставщикаPK
  • Название_поставщика
  • Адрес
  • Телефон

ПОСТАВКИ

  • Код_поставкиPK
  • Код_товараFKТОВАРЫ.Код_товара
  • Код_поставщикаFKПОСТАВЩИКИ.Код_поставщика
  • Дата_поставки
  • Количество
  • Цена_поставки

Связи:

  • один товар может входить во множество поставок;
  • один поставщик может выполнять множество поставок;
  • таблица ПОСТАВКИ связывает товары и поставщиков.

То есть:

ТОВАРЫ 1 : M ПОСТАВКИ M : 1 ПОСТАВЩИКИ


3. Предметная область «Проектная организация»

ОТДЕЛЫ

  • Код_отделаPK
  • Название_отдела
  • Телефон

СОТРУДНИКИ

  • Табельный_номерPK
  • Фамилия
  • Имя
  • Отчество
  • Должность
  • Код_отделаFKОТДЕЛЫ.Код_отдела

ПРОЕКТЫ

  • Код_проектаPK
  • Название_проекта
  • Дата_начала
  • Дата_окончания
  • Бюджет

Поскольку один сотрудник может участвовать в нескольких проектах, а в одном проекте может работать несколько сотрудников, необходима дополнительная таблица:

УЧАСТИЕ_В_ПРОЕКТАХ

  • Табельный_номерPK, FKСОТРУДНИКИ.Табельный_номер
  • Код_проектаPK, FKПРОЕКТЫ.Код_проекта
  • Роль_в_проекте

Здесь используется составной первичный ключ:

PK (Табельный_номер, Код_проекта).

Связи:

ОТДЕЛЫ 1 : M СОТРУДНИКИ

СОТРУДНИКИ M : N ПРОЕКТЫ

Связь M:N реализована через отношение УЧАСТИЕ_В_ПРОЕКТАХ.

Итог по ключам

Предметная областьОтношениеПервичный ключВнешние ключи
Отдел кадровДОЛЖНОСТИКод_должности
ПОДРАЗДЕЛЕНИЯКод_подразделения
СОТРУДНИКИТабельный_номерКод_должности, Код_подразделения
МагазинТОВАРЫКод_товара
ПОСТАВЩИКИКод_поставщика
ПОСТАВКИКод_поставкиКод_товара, Код_поставщика
Проектная организацияОТДЕЛЫКод_отдела
СОТРУДНИКИТабельный_номерКод_отдела
ПРОЕКТЫКод_проекта
УЧАСТИЕ_В_ПРОЕКТАХ(Табельный_номер, Код_проекта)Табельный_номер, Код_проекта

В сокращённой реляционной записи, например для «Отдела кадров», это можно записать так:

ДОЛЖНОСТИ (Код_должности, Название_должности, Оклад)
ПОДРАЗДЕЛЕНИЯ (Код_подразделения, Название_подразделения, Телефон)
СОТРУДНИКИ (Табельный_номер, Фамилия, Имя, Отчество, Дата_рождения, Код_должности, Код_подразделения, Дата_приема).

Поделиться этим Q&A