新的一周啦,同样此篇博客作为作业同时也作为自己对所学知识理解的记录,这一周确实涉及到了更多的概念,可能有些地方的语言真的不够严谨或者出现混淆QAQ,希望路过的大佬们能给予斧正。
定义并理解下列术语,说明它们之间的联系和区别
①域 笛卡尔积 关系 元组 属性
域:
域是一种具有相同类型数据的值的集合。
例如:
- 整数
- 实数
- 介于某个范围取值的整数
- 指定长度的字符串集合
- {‘男’,‘女’}
笛卡尔积:
给定一组域D1,D2,D3,……,Dn 允许其中某些域是相同的,那么D1,D2,D3,……,Dn的笛卡尔积是
D1×D2×D3×……×Dn={(d1,d2,d3,……,dn)|di∈Di,i,2,3,……,n}
- 所有域的取值的集合
- 不能重复
例如:
A={a,b},B={1,2}
A×B={(a,1),(a,2),(b,1),(b,2)}
通俗理解,几个域的笛卡尔积就是从每个域中任取一个数据,进行排列组合,所有排列组合的结果的集合就是笛卡尔积。
元组:
元组即笛卡尔积中的元素,像上述例子中的(a,1)(a,2)……都是元组,是2元组。
补充:分量和基数
分量是元组中的每一个值,上述例子中a,b,1,2,都是分量。
基数,如果Di是有限,那么他的基数就是这个域中元素的个数,D1×D2×……×Dn的基数就是每个域的基数的积。
关系:
D1×D2×D3×……×Dn的子集称作是在域D1,D2,……,Dn上的关系。
关系的表示:
关系的表示是一个二元表,每行是一个元组,每列是一个属性。
②主码 候选码 外码
候选码:
若关系中的某一属性组能唯一地标识一个元组,那么就称这个属性组为候选码。
最简单的情况:候选码属性组中只有一个属性,即只有一个属性即可定位到特定的元组。就好比学号对学生的对应,学号就可以直接作为学生信息这一关系的候选码。
最极端的情况:所有的属性加在一起组成候选码,也成为全码。
主码:
若一个关系有多个候选码,那么选定其中一个为主码。
主属性:
候选码的诸属性为主属性。
不包含在任何候选码的属性成为非主属性或非码属性。
外码:
设F是基本关系R中的一个或一组属性,但不是关系R的码。如果F与基本关系S的主码Ks相对应,则程F是R的外码。
基本关系R称为参照关系。
基本关系S称为被参照关系
如上图所示,“专业号”属性F是学生关系的外码。
专业关系S是被参照关系,学生关系为参照关系。
外码被称作码,但是在它所在关系里面,并不是作为码的属性(如果参照关系和被参照关系不是同一个),而是和所在关系的被参照关系的主码有联系,才被称作“码”。
③关系模式 关系 关系数据库
关系模式:
关系:
上面已经介绍过,关系即涉及到的域的笛卡尔积的子集。
关系数据库:
在一个给定的应用领域中,所有的关系的集合构成一个关系数据库。
- 关系数据库的型:关系数据库的模式,是对关系数据库的描述。
- 关系数据库的值:关系模式在某一时刻对应的关系的集合,通常称为关系数据库。
试述关系模型的关系完整性规则。在参照完整性中,什么情况下外码属性的值可以为空值?
关系运算的练习
试用关系代数
(1)求供应工程J1零件的供应商号码SNO;
(
)
(2)求供应工程J1零件P1 的供应商号码SNO;
(
)
(3)求供应工程J1零件为红色的供应商号码SNO;
(4)求没有使用天津供应商生产的红色零件的工程号JNO;
(5)求至少用了供应商S1所供应的全部零件的工程号JNO。
关系代数的基本运算都有哪些?如何用这些基本运算表示其他运算?
关系代数的基本运算包括传统的集合运算和专门的关系运算。
- 传统的集合运算
∩,∪,-,×(笛卡尔积) - 专门的关系运算
选择( ),投影( ),连接( ),除( )
并、差、笛卡尔积、投影和选择5种运算为基本的运算。其他三种运算,即交、连接和除,均可以用这5种运算来表达。