【数据库学习日记】——关系模型与关系代数

1.为什么需要空值null?

答:引入空值,可以方便于数据库的维护和建立,数字和字符有时并不能达到理想的解决问题结果。空值null是所有可能的域的一个取值,表明值未知或者值不存在。

2.关系模型的完整性规则有哪些?

答:关系模型中有三类完整性约束:实体完整性、参照完整性和用户自定义完整性。

①关系的实体完整性规则是:若属性A是基本关系R的主属性,则属性A的值不能为空值。

②关系的参照完整性规则为:若属性(或属性集)F是基本关系r的外码,它与基本关系s的主码Ks相对应(基本关系r和s不一定是不同的关系),则对于关系r中的每一个元组在属性F上的取值要么为空值null,要么等于关系s中某个元组的主码值。

③用户定义的完整性就是针对某一具体应用要求来定义的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。

3.试写出如下查询的关系代数表达式。

(1)查找籍贯为“上海”的全体学生。

σnative=上海(Student)

(2)查找2000年元旦以后出生的全体男同学。

σyear(birthday)>=2000sex=’男’(Student) 

(3)查找信息学院非汉族同学的学号、姓名、性别及民族。

∏studentNo,studentName,sex(σnation!=’汉族’⋀institute=’信息学院’(Student⨝Class))

(4)查找2016-2017学年第二学期(16172)开出课程的编号、名称和学分。

∏courseNo,courseName,creditHour(σterm=’16172’(Course⨝Score))

(5)查找选修了“操作系统”的学生学号、成绩及姓名。

∏studentNo,score,studentName(σcourseName=’操作系统’(Student⨝Course⨝Score))

(6)查找班级名称为“会计学15(3)班”的学生在2015-2016学年第一学期(15161)选课情况,要求显示学生姓名、课程号、课程名称和成绩。

studentName,courseNo,courseName,score(σclassName=’会计学15(3)班term=’15161’(ClassStudentScoreCourse))

(7)查找至少选修了一门其直接先修课编号CS012的课程的学生学号和姓名。

studentNo,studentName(σpriorCourse=CS012(StudentScoreCourse))

(8)查找选修了2016-2017学年第一学期(16171)开出的全部课程的学生学号和姓名。

studentNo,studentName((StudentScore)÷courseNo(σterm=16171(Score)))

(9)查找至少选修了学号为1503010的学生所选课程的学生学号和姓名。

studentNo,studentName((StudentScore)÷courseNo(σstudentNo=1503010(Score)))

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值