一、了解关系的概念之前,先熟悉几个相关定义
1、域:域是一组具有相同数据类型的值的集合。例如,整数,实数,规定大小的整型集合。
2、笛卡尔积:给定一组域D1,D2,…,Dn,允许其中某些域是相同的。
D1,D2,…,Dn的笛卡尔积为:
D1×D2×…×Dn = {(d1,d2,…,dn)|di属于Di,i=1,2,…,n}所有域的所有取值的一个组合并且不能重复。
3、元组:笛卡尔积中每一个元素(d1,d2,…,dn)叫作一个n元组,或简称元组。具体名称还要根据笛卡尔积中每个元素内的个数确定。
4、关系:D1×D2×…×Dn的 子集 叫作在域D1,D2,…,Dn上的
关系,表示为
R(D1,D2,…,Dn) R:关系名,n:关系的目或度。例如,学生(学号,成绩,姓名),R为学生,n=3.
5、属性:实体所具有的某一特性称为属性。一个实体可以由若干个属性来刻画。比如,零件有自己的型号和产地。
6、 候选码:若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码。候选码的多少要根据实际情况确定。
7、主码:若一个关系有多个候选码,则选定其中一个为主码。主码对于识别一个关系具有重要作用。
8、外码:设F是基本关系R的一个或一组属性,但不是关系R的码。如果F与基本关系S的主码Ks相对应,则称F是R的外码。简单地说,就是一个属性在该基本关系中不是码,但在另一个基本关系中是主码,该属性为该关系的外码。
9、关系模式:关系模式是对关系的描述,可以形式化地表示为:R(U,D,DOM,F),通常可以记为R (U) 或 R (A1,A2,…,An),关系模式是静态的、稳定的。
10、关系:关系模式在某一时刻的状态或内容,是动态的、不断变化的,这一点和关系模式正好相反。
11、关系数据库:在一个给定的应用领域中,所有关系的集合构成一个关系数据库。
二、试述关系模型的完整性规则。在参照完整性中,什么情况下外码属性的值可以为空值?
参照完整性:
若属性(或属性组)F是基本关系R的外码它与基本关系S的主码Ks相对应,则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值)或者等于S中某个元组的主码值。
实体完整性:属性A是基本关系R的主属性,则属性A不能取空值。
例如:选修(学号,课程号,成绩),如果学号为空,则表示没有这个人,那么这门课也没有意义。
当外码属性的值为空的时候,相当于事物还处于初始化的状态,例如新购进一台电脑,谁都可以使用它,可是如果对电脑进行加密,只有拥有者能够操控这台电脑。
三、相关例题解答
(1)、求供应工程J1零件的供应商号码SNO
π Sno(σ Sno=‘J1’(SPJ))
(2)、求供应工程J1零件P1的供应商号码SNO:
π Sno(σ Sno=‘J1’∧Pno=‘P1‘ (SPJ))
(3)、求供应工程J1零件为红色的供应商号码SNO:
π Sno(σ Pno=‘P1‘ (σ COLOR=’红‘ (P)∞SPJ))
(4)、求没有使用天津供应商生产的红色零件的工程号JNO:(已经使用的除掉没有使用的)
π Jno(SPJ)-
π JNO(σ city=‘天津’∧Color=‘红‘ (S∞SPJ∞P)
(5)、求至少使用了供应商S1所供应的全部零件的工程号JNO:
π Jno,Pno(SPJ)÷ π Pno(σ Sno=‘S1‘ (SPJ))
四、关系代数的基本运算?如何来用这些基本运算来表示其他运算?
基本的关系代数运算:选择、投影、并、差、笛卡尔积。
连接可以用选择和并集来表示。
交集可以用笛卡尔积来表示。
除,介于除的表示比较复杂详细请看https://blog.csdn.net/buaa1406/article/details/52614461?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task