1.试述关系模型的三个组成部分。
关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。
2.简述关系数据语言的特点和分类。
特点:
集合操作方式:操作对象 / 结果是关系(集合),而非单个记录;
非过程化(或低过程化):只需说明 “做什么”,无需详细说明 “怎么做”(SQL 等语言);
一体化:查询、插入、删除、修改等操作统一在同一语言框架中;
用户友好:语法接近自然语言,易理解和使用。
分类:
关系代数:用 “运算” 表达查询(如选择、投影、连接),是过程化的。
关系演算::元组关系演算语言和域关系演算语言。
结构化查询语言(SQL):介于关系代数和关系演算之间,是实际应用的主流语言。
3.定义并理解下列术语,说明它们之间的联系与区别:
1)域,笛卡儿积,关系,元组,属性;
2)主码,全码,候选码,外码,主属、非主属性;
3)关系模式,关系,关系数据库。
域:一组具有相同数据类型的值的集合;
笛卡儿积:多个域的所有可能取值组合构成的元组集合;
关系:笛卡尔积的有限子集(有实际意义的元组集合,对应二维表);
元组:关系中的一行(对应表中的一条记录);
属性:关系中的一列(对应表中的一个字段)。
联系:域是笛卡尔积的基础,笛卡尔积生成元组集合,关系是笛卡尔积的子集;元组是关系的行,属性是关系的列。
区别:域是 “值的集合”,笛卡尔积是 “所有可能组合”,关系是 “有意义的组合子集”;元组是个体记录,属性是列的定义。
主码:从候选码中选定的、作为元组唯一标识的属性组(仅一个);
全码:关系的所有属性共同构成的候选码;候选码:能唯一标识关系中任意元组的属性组(可以有多个);
外码:关系 R 中的属性组,是另一个关系 S 的主码,用于建立关系间的参照关系。
主属性:包含在任意候选码中的属性;
非主属性:不包含在任何候选码中的属性。
联系:候选码包含主码、全码;外码参照其他关系的主码;主属性是候选码的组成部分,非主属性反之。
区别:主码是 “选定的候选码”,全码是 “所有属性的候选码”;外码是跨关系的参照属性;主 / 非主属性是是否属于候选码的区分。
关系模式:关系模式是对关系的描述;
关系:关系模式对应的具体数据,是元组的集合;
关系数据库:在一个给定的应用领域中,所有关系的集合构成一个关系数据库。
联系:关系模式是关系的结构模板,关系是关系模式的实例;关系数据库是关系模式和关系的整体。
区别:关系模式是 “结构描述”(稳定),关系是 “数据实例”(随时间变化),关系数据库是 “模式 + 数据” 的集合。
4.举例说明关系模式和关系的区别。
关系模式是静态的 “型”:描述关系的结构(属性名、域等),是稳定不变的(如S(SNO,SNAME,STATUS,CITY))。
关系是动态的 “值”:是关系模式对应的具体数据(如 S 表中 S1、S2 等元组),随插入、删除、修改操作变化。
5.试述关系模型的完整性约束。在参照完整性中,什么情况下外码属性的值可以为空值?
当外码不是本关系的主属性时,其值可以为空。空值的含义是 “该属性对应的实体暂时未确定 / 不存在”(若外码是主属性,则因实体完整性要求主属性非空,故外码不能取空)。
①关系代数:πSNO(σJNO=‘J1’(SPJ))
②关系代数:πSNO(σJNO=‘J1’∧PNO=‘P1‘(SPJ))
③关系代数:πSNO(πSNO,PNO(σJNO=‘J1‘ (SPJ))⋈πPNO(σCOLOR=’红‘ (P)))
④关系代数:πJno(SPJ)- πJNO(σcity=‘天津’∧Color=‘红‘ (S⋈SPJ⋈P)
⑤关系代数:πJno,Pno(SPJ)÷ πPno(σSno=‘S1‘ (SPJ))
7.试述等值连接与自然连接的区别和联系。
联系:自然连接是特殊的等值连接,需满足 “连接属性是同名同域的属性组”。
区别:
等值连接:只需 “属性值相等”,不要求属性名相同;结果保留重复的属性列。
自然连接:要求 “属性名相同且域相同”;结果会去掉重复的属性列。
示例:关系 R (A,B)、S (B,C),等值连接(R.B=S.B)结果是 (A,B,B,C);自然连接结果是 (A,B,C)。
8.关系代数的基本运算有哪些 ? 如何用这些基本运算来表示其他运算?
基本运算:
关系代数的基本运算包括:并(∪)、差(−)、笛卡尔积(×)、投影(π)、选择(σ)。
派生运算的表示(用基本运算):
交(∩):R∩S=R−(R−S)
等值连接:R⋈A=BS=σA=B(R×S)(A、B 是 R、S 的属性)
自然连接:属性集(A 是同名属性,属性集去掉重复列)
除(÷):R÷S=πX(R)−πX((πX(R)×S)−R)(X 是 R 的属性集减去 S 的属性集)