数据库第二章课后作业

一、定义并理解下列术语,说明他们之间的联系与区别:
(1)域,笛卡尔积,关系,元组,属性;
(2)主码,候选码,外码;
(3)关系模式,关系,关系数据库。
答:(1):是一组具有相同数据类型的值的集合。
例如整数、实数、指定长度的字符串集合、{‘男’,‘女’}等,集合中都为同一种数据类型。

笛卡尔积:给定一组域D1,D2,…,Dn,允许其中某些域是相同的。D1,D2,…,Dn的笛卡尔积为: D1×D2×…×Dn = {(d1,d2,…,dn)|di \in Di,i=1,2,…,n}。是所有域的所有取值的一个组合,其中不能有重复
笛卡尔积的基数为所有集合基数的乘积,基数可以简单表述为集合中元素的个数。
例如:假设集合A={a, b},集合B={0, 1, 2},则两个集合的笛卡尔积:A×B={(a, 0), (a, 1), (a, 2), (b, 0), (b, 1), (b, 2)}。

关系:D1×D2×…×Dn的 子集 叫作在域D1,D2,…,Dn上的关系,表示为R(D1,D2,…,Dn) R:关系名,n:关系的目或度。关系是一张二维表。

元组:笛卡尔积中每一个元素(d1,d2,…,dn)叫作一个n元组(n-tuple)或简称元组。
例如:在A×B={(a, 0), (a, 1), (a, 2), (b, 0), (b, 1), (b, 2)}中, (a, 0), (a, 1) 等都是2元组 。

属性:表的每列对应一个属性。

笛卡尔积是所有域的所有取值的一个组合,关系是一张二维表,是笛卡尔积的有意义部分的子集(把不符合逻辑的去掉),表的每行对应一个元组,表的每列对应一个属性。

(2)候选码:若关系中的某一属性组的值能唯一地标识一个元组,而其子集不能,则称该属性组为候选码。
候选码的诸属性称为主属性,注意不是主码的诸属性。

主码:若一个关系有多个候选码,则选定其中一个为主码。在一个关系(表)中,主码不一定只有一个,但是一定要有的。

外码:设F是基本关系R的一个或一组属性,但不是关系R的码。如果F与基本关系S的主码Ks相对应,则称F是R的外码。
基本关系R称为参照关系, 基本关系S称为被参照关系。
如果一个关系中的一个属性是另外一个关系中的主码则这个属性为外码。外码的值要么为空,要么要为其对应的主码中的一个值。
例如:学生实体、专业实体
学生(学号,姓名,性别,专业号,年龄)
专业(专业号,专业名)
“专业号”属性F是学生关系的外码
专业关系S是被参照关系,学生关系R为参照关系
注意:关系R和S不一定是不同的关系;目标关系S的主码Ks 和参照关系的外码F必须定义在同一个(或一组)域上;外码并不一定要与相应的主码同名。

(3)关系模式:关系的描述称为关系模式,是静态的、稳定的。
它可以形式化地表示为R(U,D,DOM,F),(其中,R为关系名,U为组成该关系的属性名的集合,D为U中追星所来自的域,DOM为属性向域的映像集合,F为属性间数据的依赖关系集合。)
通常可以简记为R(U)或R( A 1 , A 2 , A n A_1,A_2…,A_n )。(其中R:关系名, A 1 , A 2 , , A n A_1,A_2,…,A_n :属性名)

关系:关系是关系模式在某一时刻的状态或内容,是动态的、不断变化的。

关系数据库:在一个给定的应用领域中,所有关系的集合构成一个关系数据库。
关系数据库的:关系数据库模式,是对关系数据库的描述。----抽象
关系数据库的: 关系模式在某一时刻对应的关系的集合,通常称为关系数据库。----具体

关系模式------型-----抽象
关系------------值-----具体

二、试述关系模型的完整型规则。在参照完整性中,什么情况下外码属性的值可以为空值?
(1)实体完整性:若属性A是基本关系R的主属性,则属性A不能取空值。空值就是“不知道”或“不存在”或“无意义”的值。可以简记为:主属性不能为空
主属性是候选码的诸属性,可以唯一确定一个元组。
例如:选修(学号,课程号,成绩),”学号、课程号“为主码,这两个属性都不能为空值。若学号为空,则不知道是谁的该课程的成绩;若课程号为空,则不知道该学生那门课程是这个成绩。
(2)参照完整性:若属性(或属性组)F是基本关系R的外码它与基本关系S的主码Ks相对应,则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值),或者等于S中某个元组的主码值。简单记为:外码要么为空,要么源自于被参照关系的主码。
例如:学生关系中的”专业号“属性为空值时,表示还未分配专业,不为空时,该值必定是专业关系中某个元组的专业号值,一定存在。
(3)用户定义的完整性:针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。

当属性F不是主属性时,外码属性的值可以为空。

三、设有一个SPJ数据库,包括S、P、J及SPJ4个关系模式:
S(SNO,SNAME,STATUS,CITY);
P(PNO,PNAME,COLOR,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。
今有若干数据如下:
在这里插入图片描述
试用关系代数(1)求供应工程J1零件的供应商号码SNO;
(2)求供应工程J1零件P1 的供应商号码SNO;
(3)求供应工程J1零件为红色的供应商号码SNO;
(4)求没有使用天津供应商生产的红色零件的工程号JNO;
(5)求至少用了供应商S1所供应的全部零件的工程号JNO。

(1) Π S N O ( σ J N O = J 1 ( S P J ) ) \Pi_{SNO}(\sigma _{JNO='J1'}(SPJ))
(2) Π S N O ( σ J N O = J 1 P N O = P 1 ( S P J ) ) \Pi_{SNO}(\sigma_{JNO='J1' \wedge PNO='P1'}(SPJ))
(3) Π S N O ( σ C O L O R = ( P ) σ J N O = J 1 ( S P J ) ) \Pi_{SNO}(\sigma _{COLOR='红'}(P) \bowtie \sigma_{JNO='J1'}(SPJ))
(4) Π J N O ( S P J ) Π J N O ( σ C I T Y = C O L O R = ( S P S P J ) ) \Pi_{JNO}(SPJ)-\Pi_{JNO}(\sigma_{CITY='天津'\wedge COLOR='红'}(S\bowtie P \bowtie SPJ))
(5) Π J N O , P N O ( S P J ) ÷ Π P N O ( σ S N O = S 1 ( S P J ) ) \Pi_{JNO,PNO}(SPJ) \div\Pi_{PNO}(\sigma _{SNO='S1'}(SPJ))
在这里插入图片描述

四、关系代数的基本运算有哪些?如何用这些基本运算来表示其他运算?
关系代数的基本运算是并、差、笛卡尔积、选择、投影。其他运算包括交、连接、除。

选择运算符:在关系R中选择满足给定条件的诸元组 σ F ( R ) \sigma_F (R ) = { t | t \in R ∧ F ( t ) = ‘真’},F:选择条件,是一个逻辑表达式,取值为“真”或“假”,是从行的角度进行的运算。选出符合条件的一行。
在这里插入图片描述
例如:查询信息系(IS系)全体学生
σ S d e p t = I S ( S t u d e n t ) \sigma_{Sdept='IS'}(Student)
在这里插入图片描述
投影:从R中选择出若干属性列组成新的关系: Π A ( R ) \Pi_A (R) = { t [A] | t \in R } A:R中的属性列
是从列的角度进行运算,投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免重复行)
在这里插入图片描述
例如:查询学生的姓名和所在系
Π S n a m e , S d e p t ( S t u d e n t ) \Pi_{Sname,Sdept}(Student)
结果:
在这里插入图片描述
连接:从两个关系的笛卡尔积中选取属性间满足一定条件的元组
R A θ B S = { t r t s ^ t r R t s S t r [ A ] θ t s [ B ] R \underset{AθB}\Join S=\{ { \widehat {t_r t_s}| t_r\in R \wedge t_s\in S \wedge t_r[A]}θt_s[B] },其中A和B分别为R和S上度数相等且可比的属性组,θ为比较运算符。
连接运算是:在R和S的广义笛卡尔积R×S中,选取R在A属性组上的值与S在B属性组上的值满足比较关系θ的元组 。
等值连接:θ为=,从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元组,即等值连接为:
R A = B S = { t r t s ^ t r R t s S t r [ A ] = t s [ B ] R \underset{A=B}\Join S=\{ { \widehat {t_r t_s}| t_r\in R \wedge t_s\in S \wedge t_r[A]}=t_s[B] }。
自然连接:自然连接是一种特殊的等值连接,两个关系中进行比较的分量**必须是相同的属性组B **,在结果中把重复的属性列去掉。 R S = { t r t s ^ [ U B ] t r R t s S t r [ B ] = t s [ B ] R \Join S=\{ { \widehat {t_r t_s}[U-B]| t_r\in R \wedge t_s\in S \wedge t_r[B]}=t_s[B] }。
一般的连接是从行的角度进行运算,但是自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。 在这里插入图片描述
象集
在这里插入图片描述
:给定关系R (X,Y) 和S (Y,Z),其中X,Y,Z为属性组。元组在X上分量值x的象集Yx包含S在Y上投影的集合,记作:
R ÷ S = { t r [ X ] t r R Π Y ( S ) Y X R \div S=\{t_r[X]|t_r\in R\wedge\Pi_Y(S)\subseteq Y_X }
Y X Y_X :x在R中的象集,x = t r [ X ] t_r[X] .
除操作是同时从行和列角度进行运算.
在这里插入图片描述
求关系R中X各个取值的象集,关系S在Y上的投影,哪个象集包含投影,即为除的结果。

发布了3 篇原创文章 · 获赞 10 · 访问量 2265

猜你喜欢

转载自blog.csdn.net/weixin_45871977/article/details/104658440