资源描述:
《数据库原理与SQL》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、数据库原理与SQLSever2000第3章关系数据库理论基础(第一部分)3.1关系的数学定义3.1.1引例男性的集合:M={王强,张伟,陈海}女性的集合:W={李丽,刘英}M与W的全部配对组合如表3-1所示,称为笛卡尔积(即各集合各元素间一切可能的组合)表(a)没有意义,表(b)为笛卡尔集的子集有意义,称为它为笛卡尔积的二元关系.笛卡尔积、关系均是从域出发定义的。3.1.2定义域:(Domain)域是一组具有相同数据类型的值的集合,需命名。域中数据的个数叫域的基数(Cardinalnumber)。如D1={
2、张三,李四}D1的基数为3D2={男,女}D2的基数为23.1关系的数学定义笛卡尔积(CartesianProduct)给定一组域D1,D2,…,Dn(这些域中可以有相同的)。D1,D2,…,Dn的笛卡尔积为:D1×D2×…×Dn={(d1,d2,…,dn)|di∈Dj,j=1,2,…,n}其中每个(d1,d2,…,dn)叫作元组(Tuple)。元素组中的每一个di叫作一个分量(Component)。若Di(i=1,2,…,n)为有限集,其基数为Mi(i=1,2,…,n),则D1×D2×…×Dn的基数为:n
3、M=∏Mii=1笛卡尔积可表示为一个二维表。表中的每行对应一个元组,表中的每列对应一个域。3.1关系的数学定义关系(Relation)D1×D2×…×Dn的子集叫作在域D1、D2、…、Dn上的关系,用R(D1,D2,…,Dn)表示。这里R表示关系的名字,n是关系的目或度(Degree)。N=2时,关系中含有两个域,称为二元关系,n度关系必有n个域不同领域不同术语对应的关系可以图3-1中看出。3.1关系的数学定义不同领域不同术语对应关系关系具有以下六条性质:列是同质的,即每一列中的分量是同一类型的数据,来自同
4、一个域。不同的列可出自同一个域,称其中的每一列为一个属性,不同的属性要给予不同的属性名。(参见实例)列的顺序无所谓,即列的次序可以任意交换。任意两个元组不能完全相同。行的顺序无所谓,即行的次序可以任意交换。分量必须取原子值,即每一个分量都必须是不可分的数据项,“表中不套表”。参见P36表3-33.2关系的性质干部(姓名,年龄,本职,兼职)对应的二维表如下姓名年龄本职兼职陈刚40工程师教师王芳20技术员打字员来自于以下三个域姓名={陈刚,王芳}年龄={40,20}职业={工程师,技术员,教师,打字员}“本职”
5、和“兼职”两个属性来自同一个域“职业”3.3关系数据库描述(略)3.4关系数据库操作语言DML3.4.1关系DML特点(P39)操作对象与结果均为关系非过程性强语言一体化有严密的数学工具3.4.2关系代数关系代数是一种抽象的查询语言,用对关系的运算来表达查询,作为研究关系数据语言的数学工具。关系代数用到的运算符包括四类:集运算合符:∪(并)、-(差)、∩(交)、专门的关系运算关符:σ(选择)、Π(投影)、(连接)、÷(除)、×(笛卡尔积)比较运算符:>、≥、<、≤、=、≠逻运算辑符:フ(非)、∧(与)、∨(
6、或)3.4关系数据库操作语言DML传统的集合运算(参见表3-6)并(Union)设关系R和关系S具有相同的目n(即两个关系都有n个属性),且相应的属性取自同一个域,则关系R与关系S的并由属于R或属于S的元组组成。其结果关系仍为n目关系。记作:R∪S={t
7、t∈R∨t∈S}差(Difference)设关系R和关系S具有相同的目n,且相应的属性取自同一个域,则关系R与关系S的差由属于R而不属于S的所有元组组成。其结果关系仍为n目关系。记作:R-S={t
8、t∈R∧フt∈S}3.4关系数据库操作语言DML交(Int
9、ersectionReferentialintegrity)设关系R和关系S具有相同的目n,且相应的属性取自同一个域,则关系R与关系S&127;的交由既属于R又属于S的元组组成。其结果关系仍为n目关系。记作:R∩S={t
10、t∈R∧t∈S}笛卡尔积(Extendedcartesianproduct)两个分别为n目和m目的关系R和S的广义笛卡尔积是一个(n+m)列的元组的集合。元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有k1个元组,S有k2个元组,则关系R和关系S的广义笛卡尔积有k1×k2个
11、元组。记作:3.4关系数据库操作语言DML3.4关系数据库操作语言DML[例3-2]并、差、交3.4关系数据库操作语言DML[例3-5]笛卡尔集2.专门的关系运算投影从现有关系中选取某些属性(列),可对选取的属性重新排序,并删除重复的行(元组),组成新的关系。R是一个K元关系,其元组变量为tk=;那么关系R在其分量tj1,tj2,…,tjn(n<=k;j1,j2,┅,jn为1到K之间互不相