1.试述关系模型的三个组成部分。
答:
关系模型由关系数据结构、(关系操作集合)和(关系完整性约束)三部分组成。
2. 简述关系数据语言的特点和分类。
答:特点:1)集合操作方式;
2)高度非过程化;
3)集查询、DDL、DML、DCL于一体
分类:关系数据语言可以分为三类:关系代数语言、关系演算语言、SQL;其中关系演算语言又可分为:元组关系演算语言和域关系演算语言。
3.定义并理解下列术语,说明它们之间的联系和区别:
(1)域,笛卡尔积,关系,元组,属性
(2)主码,候选码,外码
(3)关系模式,关系,关系数据库
答:
名称 | 定义 |
域 | 域是一组具有相同数据类型的值的集合 |
笛卡尔积 | 域上面的一种集合运算,就是集合相乘 |
关系 | 一个关系对应通常说的一张表 |
元组 | 表中的一行即为一个元组 |
属性 | 表中的一列即为一个属性,给,每个属性起一个名称即为属性名 |
候选码 | 某一属性组的值能唯一的标识一个元组,而其子集不能,则称改属性为候选码 |
主码 | 若一个关系由多个候选码,则选定其中一个作为主码 |
关系模式 | 关系的描述称为关系模式 |
关系数据库 | 关系数据库的值是这些关系模式在某一时刻对应的关系的集合,通常就被称为关系数据库 |
笛卡尔积:
(1)联系和区别:
1.属性的取值来自某个域
2.笛卡尔积是所有域的所有取值的一个组合
3.笛卡尔积中的每个元素是一个元组
4.关系是一张二维表,表的每行对应着一个元组,表中的每一列对应一个属性
(2)联系和区别:
候选码的值可以唯一的标识一个元组,如果一个关系里面有多个候选码,那么其中的一个定为主码,外码是一个与候选码相关的属性 。
(3)联系和区别:
关系模式是对关系的描述,关系是关系模式在某一个时刻的状态或内容,关系数据库是所有关系的集合,关系模式在某一时刻对应的关系的集合是关系数据库。
关系模式是对关系的描述,是静态,稳定的;关系是关系模式在某一个时刻的状态或内容,是动态的,不断变化的
4.举例说明关系模式和关系的区别。
答:关系模式是静态的,关系是动态的。对于常见的二维表,关系模式通常指的是二维表的表头,即有哪些列构成,每个列的名称、类型、长度等。关系通常指的是一张表的具体内容,因为表经常进行插入、删除、修改等操作,关系可能不一样。在关系数据库中,关系模式是型,关系是值。
5.试述关系模型的完整性规则。在参考完整性中,什么情况下外码属性能为空值?
6.设有一个SPJ数据库,包括s、P、J、SPJ四个关系模式: S(SNO,SNAME,STATUS,CITY); P(PNO,PNAME,COLDR,WEIGHT); J(JNO,JNAME,CITY); SPJ(SNO,PNO,JNO,QTY); 供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成; 零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、质量(WEIGHT)组成; 工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成; 供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,表示某供应商供应某种零件给某工程项目的数量为QTY。 今有若干数据如下: 试分别用关系代数、ALPHA语言、QBE语言完成下列操作:
(1)求供应工程J1零件的供应商号码SNO;
(2)求供应工程J1零件P1的供应商号码SNO;
(3)求供应工程J1零件为红色的供应商号码SNO;
(4)求没有使用天津供应商生产的红色零件的工程号JNO;
(5)求至少用了供应商Sl所供应的全部零件的工程号JNO。
答:
关系代数 :
(1)∏SNO(σSNO='J1'(SPJ))
(2)∏σSNO='J1' ∧ 'P1'(SPJ)
(3)ΠSNO(σCOLOR=′红′(P)⋈σJNO=′J1′(SPJ))
(4)ΠJNO(SPJ)−ΠJNO(σCITY=′天津′∧COLOR=′红′(S⋈P⋈SPJ))
(5)JNO,PNO(SPJ)÷ΠPNO(σSNO=′S1′(SPJ))
ALPHA语言:
(1)GET W(SPJ.SNO):SPJ.JNO=‘J1’
(2)GET W(SPJ.SNO):SPJ.JNO=‘J1’∧ SPJ.PNO=‘P1’
(3)RANGE P PX GET W(SPJ.SNO): SPJ.JNO=‘J1’∧∃PX(PX.COLOR=‘红’∧PX.PNO=SPJ.PNO)
(4)RANGE SPJ SPJX P PXS SX
GET W(J.JNO):┐∃SPJX(SPJX.JNO=J.JNO∧
∃SX(SX.SNO=SPJX.SNO∧SX.CITY=’天津’∧
∃PX(PX.PNO-SPJX.PNO∧PX.COLOR=’红’))
(5)RANGE SPJ SPJX SPJ SPJY P PX
GET W(J.JNO): ∀PX(∃SPJX(SPJX.PNO=PX.PNO∧SPJX.SNO=’S1’)
∃SPJY(SPJY.JNO=J.JNO∧SPJY.PNO=PX.PNO))
QBE语言:
(1)GET W(SPJ.SNO):SPJ.JNO=‘J1’
(2)
(3)
(4)
(5)
7.试述等值连接与自然连接的区别和联系 。
答:
从两个关系的广义笛卡儿积中选取给定属性间满足一定条件的元组,称为θ连接;当连接符θ为等号时,称为等值连接。
从两个关系的广义笛卡儿积中选取在相同属性列上取值相等的元组,并去掉重复的列,称为自然连接。
自然连接与等值连接的区别:自然连接中相等的分量必须是相同的属性组,并且要在结果中去掉重复的属性,而等值连接则不必。
自然连接与等值连接的联系:自然连接是等值连接的特殊处理,当R与S无相同属性时,R∞S = R×S。
简言之,把等值连接的相同属性列去掉一个就是自然连接。
8.关系代数的基本运算有哪些?如何用这些基本运算来表示其他运算?