1.定义并理解下列术语,并说明它们之间的联系和区别。
(1)域,笛卡尔积,关系,元组,属性;
域: 一组具有相同的数据类型的值的集合,例如建立了一个地区居民信息表,其中含有身份证号这个属性,域就是这个地区的身份证号的集合。
笛卡尔积: 域上的一种集合运算,给定一组域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 用户定义的完整性: 针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。
为什么外部码属性的值也可以为空?
实体完整性规则是指若属性A是基本关系R的主属性 ,则属性A不能取空值。若外键不是主属性,则可以取空值,反之不可以取空值。
什么情况下外码属性为空?
当它没有这个属性的值或者值无意义。
学生(学号,姓名,班长),当学生所在班级没有选出班长时,班长就为空。
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。
今有若干数据:
关系代数的基本运算有哪些?如何用这些基本运算来表示其他运算?
关系代数的基本运算有5种,分别为并、差、笛卡尔积、投影和选择。
其他3种运算,即交、连接和除,均可以用这5种基本运算来表达。
交运算R∩S=R-(R-S) 或 R∩S=S-(S-R)
连接运算R∞S = AθB(R×S) = A=B(R×S) R∞S=∏ ( R.B=S.B(R×S))
除运算 R÷S =∏X®-∏X(∏X®×∏Y(S)-R)