1

你能帮我在关系代数中解决这个问题吗?我有这个数据库(论文答辩);

  • 教师(Teacher_ID、姓名、专业)
  • 项目(Project_ID、职称、专业)
  • 论文(Thesis_ID、Project_ID、Jury_ID、Decision)
  • 陪审团(Jury_ID、Supervisor_ID、First_Member_ID、Second_Member_ID)

我想找到代数查询来获得监督他们专业论文的老师(ID,姓名);

我已经在 SQL 中完成了,它应该是这样的:

Select Teacher_ID, Name  
From Teachers T  
Where Teacher_ID IN
      (Select Supervisor_ID  
       From Juries  
       Where Jury_ID IN
             (Select Jury_ID  
              From Thesis  
              Where Project_ID IN 
                    (Select Project_ID  
                     From Projects P  
                     Where T.Specialty = P.Specialty)))  

谢谢你的帮助!

4

2 回答 2

2

Are you trying to do this?

select Te.Teacher_ID,Te.Name from thesis t
join project P on (T.Speciality =P.Speciality)
join Juries J on ( J.jury_ID = T.Jury_id)
join Teacher Te on (Te.Teacher_ID = J.Supervisor_ID)
于 2011-01-29T09:57:01.747 回答
1

多亏了 Mulki 的帮助,我想我已经找到了问题的答案:

R1 <- Thesis ⋈ (Project_ID) Projects
R2 <- Teachers ⋈ (Teacher_ID=Supervisor_ID) Juries
R3 <- π Teacher_ID, Name (R2 ⋈ (Specialty ^ Jury_ID) R1)

因此,首先在 R1 中,我们得到了论文的专业(这就是 Mulki 的答案有帮助的地方)
然后在 R2 中,我们得到了作为主管的教师
最后我们加入 R2 和 R1,条件是他们具有相同的 Jury_ID 和专业
并投射他们的仅限 ID 和名称

于 2011-01-30T13:20:58.383 回答