∏CNO,CNAME(C ∞(∏SNO,CNO(SC)÷∏SNO(S)))
(8) 检索选修课程包括刘老师所教授课程的学生姓名 ∏SNAME(SC∞σTNAME=‘刘’(C)) 2.13
(1)刘老师所教授课程的课程号、课程名
{t|(?u)(C(u)?t[1]=u[1]? t[2]=u[2]? C[3]=‘刘’)} (2)检索年龄大于23的男学生的学号和姓名
{t|(?u)(S(u)?t[1]=u[1]? t[2]=u[2]? u[3]> 23 ? u[4]= ‘男’)} (3)检索学号为‘090111’学生所学课程的课程名与任课教师名
{t|(?u)(?v)(C(v)?SC(u)?v[1]=u[2]?t[1]=v[2] ?t[2]=v[3]?v[1]= ‘090111’)} (4)检索至少选修刘老师所教授课程中一门课的女学生姓名
{t|(?u)(?v)(?w)(S(u)?SC(v)?C(w)? u[4]= ‘女’?v[1]=u[1] ? v[2]=w[1] ?w[3]=‘刘’?t[1]=u[2])}
(5)检索‘王一宁’同学不学课程的课程号
{t|(?u)(?v)C(u)?SC(v)?(u[1]?v[2]?(?w)(s(w)?w[1]?v[1]?w[2]?'王一宁'))?t[1]?u[1])} (6)检索至少选了两门课的学生学号
(7)检索全部学生都选修的课程的课程号和课程名
{t|(?u)(?v)(?w)(S(u)?SC(v)?C(w)?u[1]?v[1]?v[2]?w[1]?t[1]?v[1]?t[2]?v[2]}
(8)检索选修课程包括刘老师所教授课程的学生姓名
{t|(?u)(?v)(SC(u)?C(v)?u[2]?v[1]?v[3]?'刘老师'?t[1]?u[1]}
2.15
(1)πCNO,TNAME (σSDEPT=‘计算机’ (S) ∞SC∞σCDEPT=‘自动化’ (C) ) (2) πCNO,TNAME (σSDEPT=‘计算机’ ∧ σCDEPT=‘自动化’ ∧ S.SNO=SC.SNO∧SC.CNO=C.CNO (S× SC × C)) (3)
ΠCNO,TNAME σSDEPT=‘计算机’∧ σCDEPT=‘自动化’ ∧S.SNO=SC.SNO∧SC.CNO=C.CNO × × SC C S
11
ΠCNO,TNAME σSC.CNO=C.CNO × σS.SNO=SC.SNO σCDEPT=‘自动化’ × C SDEPT=‘计算机’ SC S ΠCNO,TNAME σSC.CNO=C.CNO ΠC.CNO,TNAME,SC.CNO × σS.SNO=SC.SNO σCDEPT=‘自动化’ × C σSDEPT=‘计算机’ SC S
12
σ
ΠCNO,TNAME σSC.CNO=C.CNO × Π SC.CNO Π CNO,TNAME σS.SNO=SC.SNO σCDEPT=‘自动化’ C C σSDEPT=‘计算机’ SC S ΠCNO,TNAME σSC.CNO=C.CNO × Π SC.CNO Π CNO,TNAME σS.SNO=SC.SNO σCDEPT=‘自动化’ × C ΠSNO ΠSNO, CNO σSDEPT=‘计算机’ C S
13
2.16
在关系代数运算中,各个运算所费时间和空间是不一样的,如何安排若干关系的运算操作步骤,直接影响到整个操作所需要的时间和空间。对关系代数表达式进行优化,可以提高系统的操作效率,达到执行过程既省时间又省空间的目的。
14
第三章
3-1解释下列术语:
基本表 视图 单表查询 连接查询 嵌套查询 交互式SQL 嵌入式SQL 宿主语言 答:
(1)基本表:简称基表。是数据库中实际存在的表,在SQL中一个关系对应于一个表。 (2)视图:SQL用视图概念支持非标准的外模式概念。视图是从一个或几个基表导出的表,虽然它也是关系形式,但它本身不实际存储在数据库中,只存放对视图的定义信息(没有对应的数据)。因此,视图是一个虚表(Virtual Table)或虚关系,而基表是一种实关系(Practical Relation)。
(3)单表查询:只涉及到一个关系的查询。 (4)连接查询:同时涉及两个以上的表的查询。 (5)嵌套查询:将一个查询块嵌套在另一个查询块的WHERE子句或HAVING条件中的查询。 (6)交互式SQL:做为独立语言由用户在交互环境下使用的SQL语言。
(7)嵌入式SQL:将SQL语言嵌入到某种高级语言中使用,利用高级语言的过程性结构来
弥补SQL语言在实现复杂应用方面的不足的SQL语言。
(8)宿主语言:嵌入SQL的高级语言称为主语言或宿主语言。
3-2试述SQL语言的特点 答:1.综合统一
2.高度非过程化 3.面向集合的操作方式
4.以同一种语法结构提供两种使用方式
`
3-3试述SQL体系结构和关系数据库模式之间的关系 答:
SQL语言支持关系数据库体系结构,即外模式、模式和内模式,利用SQL语言可以实现对三级模式的定义、修改和数据的操纵功能,在此基础上形成了SQL体系结构;在SQL体系结构中的视图对应了关系数据模式的外模式,基本表对应了关系数据模式的模式,存储文件对应了关系数据模式的内模式。
3-4 SQL是如何实现实体完整性、参照完整性和用户定义完整性的? 答:
实体完整性简单的说,就是将表中的每一行看作一个实体。实体完整性要求表的标示符列或主键的完整性。可以通过建立唯一索引、PRIMARY KEY约束、UNIQUE约束,以及列的IDENTITY属性来实施实体完整性。
参照完整性维持被参照表和参照表之间的数据一致性,他通过主键(PRIMARY KEY)约束和外键(FOREIGN KEY)约束来实现。引用完整性确保键值在所有表中一致。这样的一致性要求不能引用不存在的值,如果键值更改了,那么在整个数据库中,对该键值的所有引用要进行一致的更改。在被参照表中,当其主键值被其他表所参照时,该行不能被删除也不允许改变。在参照表中,不允许参照不存在的主键值。
用户定义完整性使得可以定义不属于其它任何完整性分类的特定业务规则。所有的完整性类型都支持用户定义完整性。
15