第三章作业:关系数据库

第三章作业:关系数据库

在这里插入图片描述

选择题

  1. 同一个关系模型的任意两个元组值(C )

    A 必须全同
    B 可全同
    C 不能全同
    D 以上都不是

  2. 设W=R∞S,且W,R,S的元组个数分别为p,m,n,那么三者之间满足 D。

    A. p<(m+n)

    B. p≤(m+n)

    C. p<(m×n)

    D. p≤(m×n)

  3. σF1(σF2(E))与 A 等价。

    A. σF1∧F2(E)

    B. σF1(E)

    C. σF2(E)

    D. σF1∨F2(E)

  4. 设关系R和S的属性个数分别为2和3,那么

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OhqmPXUJ-1682341338232)(image/image_sVv5PcEJ4k.png)]

等价于 B

A. σ1<2(R×S)

B. σ1<4(R×S)

C. σ1<2(R∞S)

D. σ1<4(R∞S)

  1. 同一个关系模型的任意两个元组值 A

    A 不能全同

    B 可全同

    C 必须全同

    D 以上都不是

  2. 假设存在一张职工表,包含“性别”属性,要求这个属性的值只能取“男”或“女”,这属于( A )。

    A 用户定义的完整性

    B 参照完整性

    C 实体完整性

    D 关系不变性

  3. 在关系R ( R # , RN , S # )和S ( S # , SN , SD )中, R 的主码是R # , S 的主码是S #,则S#在R 中称为 A

    A 外码

    B 候选码

    C 主码

    D 超码

  4. 下面关于关系的叙述,(B )是不正确的。

    A 二维表的任何两行可以全同

    B 二维表的任何两列不能全同

    C 直观上说,关系就是二维表

    D 二维表允许有些分量取空值

  5. 关系R 和关系S 只有一个公共属性,T1是R 与S 等值联接的结果,T2 是R 和S 自然联接的结果,则( D )。

    A T1 的属性个数大于或等于T2的属性个数

    B T1 的属性个数小于T2的属性个数

    C T1 的属性个数等于T2的属性个数

    D T1 的属性个数大于T2的属性个数

  6. 两个关系在没有公共属性时,其自然联接操作表现为( B )。

    A 等值联接操作

    B 笛卡儿积操作

    C 结果为空关系

    D 无意义的操作

简答题

1、关系代数:产生学生成绩表,包括学号、姓名、课程名、学分和成绩。

题目

设有四个关系:学生关系S(SNO,SNAME,SSEX,SAGE,SDEPT,SSPECIAL);课程关系C(CNO,CNAME,CCREDIT,CDEPT,CPRECNO,TNO);教师关系T(TNO,TNAME,TSEX,TSPECIAL);学习关系SC(SNO,CNO,GRADE)。

其中各属性和含义是:学号(SNO),姓名(SNAME),性别(SSEX),年龄(SAGE),所在系(SDEPT),所在专业(SSPECIAL),课程号(CNO),课程名(CNAME),学分(CCREDIT),开课系(CDEPT),先修课程号(CPRECNO),教师编号(TNO),教师姓名(TNAME),教师性别(TSEX),从事专业(TSPECIAL),成绩(GRADE)。

试用关系代数表达式表示查询任务:产生学生成绩表,包括学号、姓名、课程名、学分和成绩。

代码

σ DISTINCT(Π SNO, SNAME, CNAME, CCREDIT, GRADE (S ⨝ SC ⨝ C))

2、关系代数:检索选择了课程号为“C2"的学生学号和姓名。

题目

设有四个关系:学生关系S(SNO,SNAME,SSEX,SAGE,SDEPT,SSPECIAL);课程关系C(CNO,CNAME,CCREDIT,CDEPT,CPRECNO,TNO);教师关系T(TNO,TNAME,TSEX,TSPECIAL);学习关系SC(SNO,CNO,GRADE);

其中各属性和含义是:学号(SNO),姓名(SNAME),性别(SSEX),年龄(SAGE),所在系(SDEPT),所在专业(SSPECIAL),课程号(CNO),课程名(CNAME),学分(CCREDIT),开课系(CDEPT),先修课程号(CPRECNO),教师编号(TNO),教师姓名(TNAME),教师性别(TSEX),从事专业(TSPECIAL),成绩(GRADE)。

请用关系代数表达式表示查询任务:检索选择了课程号为“C2”的学生学号和姓名。

代码

 π SNO,SNAME(σ CNO='C2' (SC) ⨝ S)

3、关系代数:检索所有参加了“数据库原理”课程考试的学生学号成绩

题目

设有四个关系:学生关系S(SNO,SNAME,SSEX,SAGE,SDEPT,SSPECIAL);课程关系C(CNO,CNAME,CCREDIT,CDEPT,CPRECNO,TNO);教师关系T(TNO,TNAME,TSEX,TSPECIAL);学习关系SC(SNO,CNO,GRADE);

其中各属性和含义是:学号(SNO),姓名(SNAME),性别(SSEX),年龄(SAGE),所在系(SDEPT),所在专业(SSPECIAL),课程号(CNO),课程名(CNAME),学分(CCREDIT),开课系(CDEPT),先修课程号(CPRECNO),教师编号(TNO),教师姓名(TNAME),教师性别(TSEX),从事专业(TSPECIAL),成绩(GRADE)。

请用关系代数表达式表示查询任务:检索所有参加了“数据库原理”课程考试的学生学号和姓名。

代码

π SNO, SNAME (σ CNAME='数据库原理' (SC ⨝ C) ⨝ S)

4、关系代数:检索选修了计算机系开设的全部课程的学生学号和姓名

题目

设有四个关系:

学生关系:S(SNO,SNAME,SSEX,SAGE,SDEPT,SSPECIAL);

课程关系:C(CNO,CNAME,CCREDIT,CDEPT,CPRECNO,TNO);

教师关系:T(TNO,TNAME,TSEX,TSPECIAL);

学习关系:SC(SNO,CNO,GRADE);

其中各属性和含义是:

学号(SNO),姓名(SNAME),性别(SSEX),年龄(SAGE),所在系(SDEPT),所在专业(SSPECIAL)

课程号(CNO),课程名(CNAME),学分(CCREDIT),开课系(CDEPT),先修课程号(CPRECNO)

教师编号(TNO),教师姓名(TNAME),教师性别(TSEX),从事专业(TSPECIAL),成绩(GRADE)

请用关系代数表达式表示查询任务:检索选修了计算机系开设的全部课程的学生学号和姓名

代码

πSNO, SNAME (S ⨝ C ⨝ T ÷ πCNO (σ CDEPT='计算机系' (C)))

题解

  1. 首先,将学生关系 S 与课程关系 C 进行自然连接(S ⨝ C),得到每个学生选修的课程信息。
  2. 然后,将上一步得到的结果与教师关系 T 进行自然连接(S ⨝ C ⨝ T),得到每个学生选修的课程及其授课教师的信息。
  3. 接着,使用选择操作(σ CDEPT=‘计算机系’ ©)选择开课系为“计算机系”的课程。
  4. 对上一步得到的结果进行投影操作(πCNO),仅保留课程编号属性。
  5. 将上一步得到的结果与学生关系 S 进行除法操作(S ÷ πCNO (σ CDEPT=‘计算机系’ ©)),得到选修了所有计算机系开设的课程的学生信息。
  6. 最后,对上一步得到的结果进行投影操作(πSNO, SNAME),仅保留学号和姓名两个属性。

5、关系代数:检索选修了“王林”老师所上的全部课程的学生学号。

题目

设有四个关系:学生关系S(SNO,SNAME,SSEX,SAGE,SDEPT,SSPECIAL);课程关系C(CNO,CNAME,CCREDIT,CDEPT,CPRECNO,TNO);教师关系T(TNO,TNAME,TSEX,TSPECIAL);学习关系SC(SNO,CNO,GRADE);

其中各属性和含义是:学号(SNO),姓名(SNAME),性别(SSEX),年龄(SAGE),所在系(SDEPT),所在专业(SSPECIAL),课程号(CNO),课程名(CNAME),学分(CCREDIT),开课系(CDEPT),先修课程号(CPRECNO),教师编号(TNO),教师姓名(TNAME),教师性别(TSEX),从事专业(TSPECIAL),成绩(GRADE)。

请用关系代数表达式表示查询任务:检索选修了“王林”老师所上的全部课程的学生学号。

代码

πSNO (S ⨝ SC ⨝ C ⨝ (σ TNAME='王林' (T))) ÷ πCNO (σ TNAME='王林' (T))

题解

  1. 首先,将学生关系 S 与学习关系 SC 进行自然连接(S ⨝ SC),得到每个学生选修的课程编号信息。
  2. 然后,将上一步得到的结果与课程关系 C 进行自然连接(S ⨝ SC ⨝ C),得到每个学生选修的课程信息。
  3. 接着,将上一步得到的结果与教师关系 T 进行自然连接(S ⨝ SC ⨝ C ⨝ T),得到每个选修了王林老师教授的课程的学生的信息。
  4. 使用选择操作(σ TNAME=‘王林’ (T))选择教师姓名为“王林”的教师信息。
  5. 对上一步得到的结果进行投影操作(πCNO),仅保留课程编号属性。
  6. 将上一步得到的结果与学生关系 S 进行除法操作(S ÷ πCNO (σ TNAME=‘王林’ (T))),得到选修了王林老师教授的课程的学生的学号。
  7. 最后,对上一步得到的结果进行投影操作(πSNO),仅保留学号属性。

6、关系代数:检索至少选修两门课程的学生学号和姓名

题目

设有四个关系:

学生关系:S(SNO,SNAME,SSEX,SAGE,SDEPT,SSPECIAL);

课程关系:C(CNO,CNAME,CCREDIT,CDEPT,CPRECNO,TNO);

教师关系:T(TNO,TNAME,TSEX,TSPECIAL);

学习关系:SC(SNO,CNO,GRADE);

其中各属性和含义是:

学号(SNO),姓名(SNAME),性别(SSEX),年龄(SAGE),所在系(SDEPT),所在专业(SSPECIAL)

课程号(CNO),课程名(CNAME),学分(CCREDIT),开课系(CDEPT),先修课程号(CPRECNO)

教师编号(TNO),教师姓名(TNAME),教师性别(TSEX),从事专业(TSPECIAL),成绩(GRADE)

请用关系代数表达式表示查询任务:检索至少选修两门课程的学生学号和姓名

代码

πSNO, SNAME (σ COUNT()>=2 (S ⨝ SC ⌊ π SNO, COUNT() (S ⨝ SC)) ⨝ S)

题解

  1. 首先,将学生关系 S 与学习关系 SC 进行自然连接(S ⨝ SC),得到每个学生选修的课程编号和成绩信息。
  2. 然后,对上一步得到的结果进行投影操作(πSNO, COUNT()),仅保留学号和选修课程数量两个属性。这里使用 COUNT() 函数统计每个学生选修的课程数量。
  3. 对上一步得到的结果进行再次自然连接(S ⨝ SC ⌊ πSNO, COUNT()(S ⨝ SC) ⌋),连接条件为学生关系中的学号和选修课程数量与上一步得到的结果中的对应属性相等。
  4. 最后,对上一步得到的结果进行投影操作(πSNO, SNAME),仅保留学号和姓名两个属性

7、关系代数表:查询自控和计算机专业学生的学号、姓名

题目

设有四个关系:学生关系S(SNO,SNAME,SSEX,SAGE,SDEPT,SSPECIAL);课程关系C(CNO,CNAME,CCREDIT,CDEPT,CPRECNO,TNO);教师关系T(TNO,TNAME,TSEX,TSPECIAL);学习关系SC(SNO,CNO,GRADE);

其中各属性和含义是:学号(SNO),姓名(SNAME),性别(SSEX),年龄(SAGE),所在系(SDEPT),所在专业(SSPECIAL),课程号(CNO),课程名(CNAME),学分(CCREDIT),开课系(CDEPT),先修课程号(CPRECNO),教师编号(TNO),教师姓名(TNAME),教师性别(TSEX),从事专业(TSPECIAL),成绩(GRADE)。

请用关系代数表达式表示查询任务:查询自控和计算机专业学生的学号、姓名。

代码

πSNO, SNAME (σ SDEPT='自控' ∨ SDEPT='计算机' (S))

题解

查询自控和计算机专业学生的学号和姓名,可以使用关系代数的选择和投影操作进行查询。假设学生关系为 S,需要查询自控和计算机专业学生的学号和姓名,则可以使用以下表达式:

πSNO,SNAME(σSDEPT='自控’∨SDEPT=‘计算机’(S))

其中,σSDEPT='自控’∨SDEPT=‘计算机’(S) 表示在学生关系 S 中选择所在系为“自控”或“计算机”的学生;πSNO,SNAME(σSDEPT='自控’∨SDEPT=‘计算机’(S)) 表示在上一步得到的结果中,仅选择学号和姓名属性。

8、关系代数:检索李强同学不学的课程编号

题目

设有四个关系:学生关系S(SNO,SNAME,SSEX,SAGE,SDEPT,SSPECIAL);课程关系C(CNO,CNAME,CCREDIT,CDEPT,CPRECNO,TNO);教师关系T(TNO,TNAME,TSEX,TSPECIAL);学习关系SC(SNO,CNO,GRADE);

其中各属性和含义是:学号(SNO),姓名(SNAME),性别(SSEX),年龄(SAGE),所在系(SDEPT),所在专业(SSPECIAL),课程号(CNO),课程名(CNAME),学分(CCREDIT),开课系(CDEPT),先修课程号(CPRECNO),教师编号(TNO),教师姓名(TNAME),教师性别(TSEX),从事专业(TSPECIAL),成绩(GRADE)。

请用关系代数表达式表示查询任务:检索李强同学不学的课程编号。

代码

CNO - πCNO(SC ⋈ (σSNAME='李强'(S)))

题解

查询李强同学不学的课程编号,可以使用关系代数的差集操作进行查询。假设学生关系为 S,学习关系为 SC,需要检索李强同学不学的课程编号,则可以使用以下表达式:

CNO - πCNO(SC ⋈ (σSNAME=‘李强’(S)) )

其中,σSNAME=‘李强’(S) 表示在学生关系 S 中选择姓名为“李强”的学生;SC ⋈ (σSNAME=‘李强’(S)) 表示将选择的学生与学习关系 SC 进行自然连接,得到李强同学所学的所有课程;πCNO(SC ⋈ (σSNAME=‘李强’(S))) 表示在上一步得到的结果中,仅选择课程编号属性;CNO - πCNO(SC ⋈ (σSNAME=‘李强’(S))) 表示在所有课程编号中,去掉李强同学所学的课程编号,得到李强同学不学的课程编号。

猜你喜欢

转载自blog.csdn.net/m0_60496161/article/details/130352121