数据库作业:关系数据库及相关概念

1.定义并理解下列术语,并说明它们之间的联系和区别。
(1)域,笛卡尔积,关系,元组,属性;

域: 一组具有相同数据类型的值的集合。
例如自然数,整数,大于0小于10的整数,{2,3}等都是域。

笛卡尔积: 域上的一种集合运算,给定一组域D1,D2,…,Dn,允许其中某些域是相同的。则D1,D2,…,Dn的笛卡尔积为:D1×D2×…×Dn = {(d1,d2,…,dn)|di属于Di,i=1,2,…,n}是所有域所有取值的一个组合。
例如 A = {a,b},B = {1,2,3},A × B = {(a,1),(a,2),(a,3),(b,1),(b,2),(b,3)}。

关系: D1×D2×…×Dn的 子集 叫作在域D1,D2,…,Dn上的
关系,表示为R(D1,D2,…,Dn), R:关系名,n:关系的目或度。
关系对应一个二维表,每行代表一个元组,而列对应一个域。

元组: 笛卡尔积中每一个元素(d1,d2,…,dn)叫作一个n元组或简称元组。
如笛卡尔积概念中A x B 里都是二元组,如(a,1)。

属性: 关系对应一个二维表,表的列对应一个域,由于域可以相同,所以对每列起名字,则称为属性,n目关系则有n个属性。

联系和区别: 笛卡尔积是在域上进行运算的,元组是笛卡尔积中的元素,关系是笛卡尔积的子集,属性是关系对应二维表的列。

(2)主码,候选码,外码;
主码: 一个关系有多个候选码,则选定其中一个为主码。
若一个班级所有学生的名字不重复,则名字也是候选码,课任选名字或学号其中之一为主码。

候选码: 若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码。
元组属性组的值是唯一的,没有重复的,则这个属性组是候选码。学号,身份证号。

外码: 设F是基本关系R的一个或一组属性,但不是关系R的码。如果F与基本关系S的主码Ks相对应,则称F是R的外码。 基本关系R称为参照关系,基本关系S称为被参照关系。
学生(名字,专业名),专业(专业名,专业号),专业号是学生关系的非候选码,又是专业关系的主码,所以专业号属性是学生关系的外码。

联系和区别: 候选码只有一个时,主码就是候选码,候选码有多个时,主码是其中之一。一个关系的外码不是本关系的候选码,但它是其他关系的主码。

(3)关系模式,关系,关系数据库。
**关系模式:**关系模式是对关系的描述,可以形式化地表示为R(U,D,DOM,F)。R为关系名,U组成该关系的属性名集合,D为U中属性所来自的域,DOM为属性向域的映象的集合,F为属性间数据的依赖关系的集合。简记为R(U)。
学生的域是人,则DOM(学生) = 人。

关系: 关系模式在某一时刻的状态或内容。

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

联系和区别: 关系模式是对关系的描述。关系数据库是关系的集合。
关系模式是静态稳定的,关系是动态,随时间不断变化的,因为关系操作总是更新着数据。

2.试述关系模型的完整性规则。在参照完整性中,什么情况下外码属性的值可以为空值?
1 实体完整性: 若属性A是基本关系R的主属性,则属性A不能取空值。
主属性是候选码的属性,用来唯一表示元组的属性组,肯定不能为空。

2 参照完整性: 若属性(或属性组)F是基本关系R的外码它与基本关系S的主码Ks相对应,则对于R中每个元组在F上的值必须为:1、取空值(F的每个属性值均为空值);2、等于S中某个元组的主码值。
外码它是被参照关系的主码,它的取值要么是被参照关系的主码值,要么就什么都不取。

3 用户定义的完整性: 针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。

什么情况下外码属性为空?
当它没有这个属性的值。学生(学号,姓名,班长),当学生所在班级没有选出班长时,班长就为空。

3.设有一个SPJ数据库,包括S、P、J及SPJ4个关系模式:
S(SNO,SBAME,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)组成。
工程项目表(JNO),工程项目名(JNAME),工程项目所在城市(CITY)组成。
供应情况表SPJ由供应商代码(SNO),供应商姓名(SNAME),供应商状态(STATUS),供应数量(QTY),表示某供应商供应某种零件给某工程项目的数量为QTY。
今有若干数据:

在这里插入图片描述
(1)求供应课程J1零件的供应商号码SNO;
Π S N O ( σ J N O = J 1 ( S P J ) ) \Pi_{SNO}(\sigma_{JNO = ‘J1’}(SPJ))

(2)求供应课程J1零件P1的供应商号码SNO;
Π 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)求供应课程J1零件为红色的供应商号码SNO;
Π S N O ( σ J N O = J 1 ( S P J ) Π S N O ( σ C O L O R = ( J ) ) \Pi_{SNO}(\sigma_{JNO = ‘J1’}(SPJ) \Join \Pi_{SNO}(\sigma_{COLOR = ‘红’}(J) )

(4)求没有使用天津供应商生产的红色零件的工程号JNO;
Π J N O ( Π P N O ( σ C O L O R = ( P ) ) S P J Π J N O ( σ C I T Y = ( J ) ) \Pi_{JNO}(\Pi_{PNO}(\sigma_{COLOR='红'}(P)) \Join SPJ - \Pi_{JNO}(\sigma_{CITY = '天津'}(J)) ;

(5)求至少用了供应商S1所供应的全部零件的工程号JNO。
Π 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)) ;

在这里插入图片描述

4.关系代数的基本运算有哪些?如何用这些基本运算来表示其他运算
基本运算有∪(并);-(差);×(笛卡尔积);σ(选择);π(投影);
∩(交):A∩B = A-(A-B) = B-(B-A);
⋈(连接):?
÷(除):?

发布了5 篇原创文章 · 获赞 5 · 访问量 2636

猜你喜欢

转载自blog.csdn.net/karive/article/details/104620975
今日推荐