1、二元关系体现的是第一元素与第二元素的某种内在联系。,回顾Def 二元关系:设A和B是集合,称AB的子集为从A到B的二元关系。,现在,我们将这种内在联系扩展到n个集合!,5.2 n元关系及其应用,5.2 n元关系及其应用,5.2.1引言,引例R1=(a,b)|学生a的专业为b,R2=(a,c)|学生a的平均学分绩为c,如何将这两个关系合并为一个关系?R= (a,b,c)|学生a的专业为b、平均学分绩为c那么,航空公司对应的航班号、出发地、目的地、起飞时间之间的关系如何表示?如何查询航班相关信息?,Def n元关系:设A1,A2,An是集合,称A1A2An的子集为这些集合上的n元关系。这些集合称为
2、关系的域,n称为关系的阶。,5.2.2 n元关系,Eg 航空公司对应的航班号、出发地、目的地、起飞时间之间的关系若A、N、S、D、T分别表示航空公司、航班号、出发地、目的地、起飞时间的集合,则此关系表示为R=(a,n,s,d,t)|航空公司a有航班号n的飞机在t时刻从s飞往d为5阶关系,若事实上有Nadir直达航空公司有航班963在15:00从Newark飞往Bangor,则(Nadir,963,Newark, Bangor,15:00) R,5.2.2 n元关系,More Example 如何表示两个整数a、b之间有模m的关系?R=(a,b,m)|ab(mod m),其中a、b、m的域分别为
3、Z、Z、Z+,即R ZZZ+,以下哪些三元有序对属于上述3阶关系?(8,2,3),(7,2,3),(-1,9,5),(14,0,7),5.2 n元关系及其应用,数据库中存储的是什么信息?如何在数据库中进行插入、删除、更新、检索记录?如何从一个重叠的数据库中组合记录?,5.2.3 数据库和关系,为了准确地表示这些数据库操作,我们用基于关系的方法,建立关系数据模型。,5.2.3 数据库和关系,数据库由记录组成,每个记录又由n个字段构成。例:学生记录的数据库可以由包含学生的姓名、学号、专业、平均学分绩点(GPA)4个字段构成。,每个记录可以看成4元有序对,组成的数据库可以看作一个4元关系。,(Ack
4、ermann,231455,计算机科学,3.88)(Adams, 888323,物理学, 3.45)(Chou, 102147,计算机科学,3.49)(Goodfriend,453876,数学, 3.45)(Rao, 678543,数学, 3.90)(Stevens, 786576,哲学, 2.99),表示数据库的关系叫做表,用表表示,5.2.3 数据库和关系,5.2.3 数据库和关系,关系中,没有两个n元组在这个域有相同的值时,这个域称为主关键字。 应选择那种无论数据库怎么改变都能继续存在的字段。 另外,也可以从n元关系中选择若干域的组合来唯一地标识n元组,称为复合关键字。,5.2 n元关系
5、及其应用,5.2.4 n元关系的运算,选择: 将满足特定条件的记录选择出来,投影: 保留指定字段后的记录,连接: 将共享某些字段的两个表合成一个表,5.2.4 n元关系的运算,Def 设R是n元关系,C是R中元素可能满足的一个条件。则选择算子SC将n元关系R映射到R中满足条件C的所有n元组构成的n元关系。,Eg C1为条件(专业=“计算机科学”)作用于下表时?,5.2.4 n元关系的运算,Def 设R是n元关系,C是R中元素可能满足的一个条件。则选择算子SC将n元关系R映射到R中满足条件C的所有n元组构成的n元关系。,Eg C1为条件(专业=“计算机科学”)作用于下表时? C2为条件(专业=“
6、计算机科学” GPA3.5),5.2.4 n元关系的运算,Def 投影运算Pi1,i2,im 将n元组(a1,a2,an) 映到m元组(ai1,ai2,aim)。,Eg P2,4作用于下表后得到的是?,5.2.4 n元关系的运算,Def 投影运算Pi1,i2,im 将n元组(a1,a2,an) 映到m元组(ai1,ai2,aim)。,注意:投影可能使记录数目变少,例如P2,4作用于下表,5.2.4 n元关系的运算,Def 设R是m元关系,S是n元关系,连接运算Jp(R,S)是m+n-p元关系,其包含的m+n-p元组格式为(a1,am-p,c1,cp,b1,bn-p),Eg 教学课程表和教师安排
7、表的连接运算J2,其中(a1,am-p,c1,cp)R,且(c1,cp,b1,bn-p)S,5.2.4 n元关系的运算,教学课程,教室安排,5.2.4 n元关系的运算,可看成是二元关系的合成运算的一种推广,还有更多的运算,这里不再详举!,5.2 n元关系及其应用,5.2.5 SQL,Structured Query Language结构化查询语言,只描述几种刚才涉及到的运算:FROM 指定一个表或多个表的连接表WHERE选择SELECT投影,5.2.5 SQL,学生,Eg SELECT 学生姓名,GPA FROM 学生 WHERE GPA3.8,输出( Ackermann ,3.88)( Rao , 3.90),5.2.5 SQL,教学课程,Eg SELECT 教授,时间 FROM 教学课程,教室安排 WHERE 系=“数学”,教室安排,输出(Rosen,3pm),掌握n元关系的相关基本概念熟悉n元关系的3种运算了解关系数据模型及其在数据库中的应用作业,5.2 n元关系及其应用本节要求,