2012-06-10 2 views
-1

Привет всем Я работал над упражнением по базам данных и наткнулся на следующее упражнение, где мне нужно создать набор таблиц данных из данного сценария. Но у меня возникли трудности с разработкой выделенных жирным шрифтом:Упражнения для данных

База данных предназначена для университета, чтобы контролировать прогресс студентов на протяжении всего учебного курса. Студенты учатся на получение степени (например, BSc, MSc и т. Д.) В рамках модульной системы. Университет предоставляет ряд модулей, каждый из которых характеризуется своим кодом, названием, кредитным значением, лидером модуля, академическим персоналом и отделом, из которого они пришли. Модуль координируется руководителем модуля, который делится преподавательскими обязанностями с одним или несколькими преподавателями . Лектор может преподавать (и быть лидером модуля) более одного модуля. Студенты могут свободно выбирать любой модуль, который они пожелают, но должны соблюдаться следующие правила: : для некоторых модулей требуются предварительные модули, а в некоторых программах - обязательные модули. База данных также должна содержать информацию о студентах, включая номера учеников, имена, адреса, степеней, за которые они учатся, и их прошлую работу (т. Е. Взятые модули и результатов экзаменов).

До сих пор таблицы у меня есть:

университет

ModuleCode, ModuleTitle, CreditValue, Департамент

Модуль

ModuleCode, ModuleTitle, LecturerID

преподаватель

LecturerID, ModuleCode, ModuleTitle

Student

StudentID, имя, адрес, DegreeCode

Степень

DegreeCode, DegreeType, DegreeTitle

Performance

ModuleCode, ModuleTitle, StudentID, Результат

Есть ли что-нибудь, что я пропускаю или может улучшить?

+1

@ Downvoter - пожалуйста, уточните в OP, почему вы ниспровергаете. – StuartLC

ответ

1

Несколько мыслей (в произвольном порядке):

  • Я предположил бы, существует связь один-к-одному между ModuleId и ModuleTitle. То есть, что ModuleId однозначно идентифицирует ModuleTitle. В этом случае вы не должны использовать как ModuleId, так и ModuleTitle везде, где вы идентифицируете модуль, но используете только уникальное значение. (За исключением таблицы, в которой определено соотношение между ModuleId и ModuleTitle.)
  • Лекторы могут преподавать несколько модулей. Тем не менее, вы включили ModuleId в качестве части таблицы «Лекторы». См. Проблему здесь?
  • Является ли LecturerId в таблице модулей, предназначенной для работы с модулем? Если да, скажите это. Иностранный ключ не всегда должен быть тем же именем, что и основной, - в общем, это хорошая идея, но вы хотите уточнить, что это специальный лектор. Или, возможно, вы хотите добавить таблицу, которая конкретно определяет, какие лекторы являются лидерами модулей.
  • Я ничего здесь не вижу, что реализует «некоторые модули», требующие наличия необходимых модулей, а некоторые программы имеют обязательные модули.
  • In интерпретирует «отдел, из которого они происходят», как относящийся к академическому персоналу, а не к самому модулю. Непонятно, что модуль может преподавать только люди из одного академического факультета.
  • В реальном мире адреса намного сложнее, чем просто говорят address как поле.

Последний пункт несколько ничтожный, но остальное следует решать. Думаю, у вас еще есть какая-то значительная работа, чтобы сгладить эти проблемы.

В общем, я думаю, что вы собираетесь нужно разбить на это в несколько таблиц, для представления каждого из отдельных подразделений (модули, преподавателей, кафедр, а затем построить таблицы для определения отношений между ними.

1

на первом проходе, я прочитал описание, как это. (Возможные таблицы полужирным шрифтом, некоторые жирным шрифтом более чем один раз.)

база данных должна быть разработана для университета, чтобы контролировать студентов " прогресс всей их курс обучения. Студенты изучают для степень (например, BSc, MSc и т. Д.) В рамках модульной системы . Университет предоставляет ряд модулей, каждый из которых характеризуется по его коду, названию, стоимости кредита, лидера модуля, преподавательский состав и отдел они приходят с. Модуль , координируемый руководителем модуля, который делится преподавательских обязанностей с одним или Подробнее преподаватели. Лектор может преподавать (и быть лидером модуля) более , чем один модуль.Студенты могут выбрать любой модуль они хотят, но необходимо соблюдать следующие правила: некоторые модули требуют предварительно необходимых модули и некоторые программы степени имеет обязательные модулей. База данных также содержит некоторую информацию о студентов включая их числа студентов, фамилии, адреса, градусы они изучают для, и их прошлой деятельности (т.е. модули взяты и результаты экспертиза).

Поскольку это для одного университета, я, вероятно, не создавал бы таблицу университетов, хотя я мог бы сделать хороший случай в любом случае.

Смежные вопросы