Задание № 3565 по информатике: Реляционная база данных

Реляционная база данныхОдин ответ · сложное

В школьной базе данных есть таблицы Students (StudentID — первичный ключ, ФИО) и Clubs (ClubID — первичный ключ, название кружка). Ученик может посещать несколько кружков, а в одном кружке занимаются многие ученики. Для каждого ученика нужно хранить дату вступления в каждый его кружок (в один кружок ученик вступает один раз). Какое решение соответствует реляционной модели без избыточности и аномалий?

  1. AДобавить поле «Дата вступления» в таблицу Students и повторять строку ученика для каждого его кружка
  2. BСоздать третью таблицу с полями StudentID, ClubID, дата вступления; ключ — пара StudentID и ClubID
  3. CДобавить в таблицу Students одно поле, где через запятую записаны названия кружков и даты вступления
  4. DДобавить поле «Дата вступления» в таблицу Clubs и повторять строку кружка для каждого вступившего ученика
Показать ответ и разборСкрыть ответ и разбор

Верный ответ

  • BСоздать третью таблицу с полями StudentID, ClubID, дата вступления; ключ — пара StudentID и ClubID

Разбор

Связь между Students и Clubs — «многие-ко-многим», так как ученик посещает много кружков, а кружок объединяет многих учеников. В реляционной модели такая связь реализуется отдельной таблицей связи, в которой есть внешние ключи StudentID и ClubID. Дата вступления зависит от пары «ученик — кружок», а не от одного из них, поэтому она хранится именно в таблице связи, а составной первичный ключ (StudentID, ClubID) гарантирует, что ученик вступает в кружок один раз. Вариант с полем в Students дублирует ФИО и нарушает однозначность первичного ключа. Вариант с полем в Clubs дублирует название кружка и тоже делает ключ неуникальным. Вариант с записью через запятую нарушает атомарность значений (первая нормальная форма). Верно: «Создать третью таблицу с полями StudentID, ClubID, дата вступления; ключ — пара StudentID и ClubID».

Ошибка в задании

Опишите ошибку в условии, вариантах или разборе. Не больше 1000 знаков.

Похожие задания по теме «Реляционная база данных»

Все 18 заданий темы

Репетиторы по информатике

Тренажёр

Потренируйте тему «Реляционная база данных»

18 заданий по одному, с ответом и разбором сразу. Без лимита времени.

Свой пробник

Соберите пробник с таймером

Как на ЕНТ: 2 минуты на задание.

Из каких заданий
Сколько заданий