Запрос к объектно-ориентированной базе данных - PullRequest
0 голосов
/ 19 октября 2011

Ниже приведено scheme для базы данных в объектно-ориентированной настройке. Каждое отношение становится коллекцией объектов. Студент - это человек, а факультет - это тоже человек. Они показаны в виде направленных ребер, помеченных как «isa». Все остальные направленные ребра показывают ссылочные атрибуты. Обратите внимание, что атрибут PreReq в Course - это набор ссылок.

enter image description here

Вот запрос, который я не могу понять, как написать:

Реорганизовать сбор заявок по StudentID. Для каждого учащегося найдите его идентификатор и оценку. Оценка должна быть отношением, состоящим из CourseCode и LetterGrade атрибутов.

При реорганизации я почти уверен, что это просто означает получение информации в указанном порядке, а НЕ обновление данных базы данных.

1 Ответ

1 голос
/ 19 октября 2011

Поскольку не все поля имеют правильные ссылки и инструкции немного ... ну, в общем, я собираюсь сделать несколько предположений. А именно:

  1. В таблице учеников есть поле с именем «StudentID», которое является отношением 1 к 1 с полем ID в таблице Person.

  2. «Реорганизовать» означает «выбрать» .. Нечетное выражение этого слова.

  3. За исключением таблицы Person, все остальные идентификаторы соответствуют обычным соглашениям об именах. Значение <TableName>Id. Например, основным идентификатором в таблице студентов является StudentID

  4. «LetterGrade» в вопросе фактически относится к полю «Оценка» в таблице регистрации.

  5. Все поля, заканчивающиеся словом «Info», являются внешними ключами эквивалентного поля, оканчивающегося на «Id». Например: Enrollment.StudentInfo сопоставляется с Student.StudentId

Что-то вроде

SELECT S.StudentID, E.Grade, C.CourseCode
FROM Student S
  INNER JOIN Enrollment E on (E.StudentInfo = S.StudentId)
  INNER JOIN Offering O on (O.OfferingId = E.OfferingInfo)
  INNER JOIN Course C on (C.CourseId = O.CourseInfo)
ORDER BY S.StudentId
...