编辑: 飞鸟 | 2017-09-18 |
F.Codd1970年提出关系数据模型E.F.Codd, A Relational Model of Data for Large Shared Data Banks , 《Communication of the ACM》,1970之后,提出了关系代数和关系演算的概念1972年提出了关系的第
一、第
二、第三范式1974年提出了关系的BC范式 An Introduction to Database System 关系数据库简介 关系数据库应用数学方法来处理数据库中的数据80年代后,关系数据库系统成为最重要、最流行的数据库系统 An Introduction to Database System 关系数据库简介 典型商用系统(DBMS)SQL SERVER ORACLEACCESSMYSQL(开源)SYBASEINFORMIXDB2PostgreSQL (开源) An Introduction to Database System 第二讲 关系数据库 2.1 关系数据结构及其形式化定义2.2 关系操作2.3 关系的完整性2.4 关系代数2.5 关系演算(略)2.6 小结 An Introduction to Database System 2.1 关系数据结构及其形式化定义 2.1.1 关系2.1.2 关系模式2.1.3 关系数据库 An Introduction to Database System 2.1.1 关系 ⒈ 域(Domain) 2. 笛卡尔积(Cartesian Product) 3. 关系(Relation) An Introduction to Database System ⒈ 域(Domain) 域是一组具有相同数据类型的值的集合.例:整数实数介于某个取值范围的整数指定长度的字符串集合{'
男'
,'
女'
}介于某个取值范围的日期 An Introduction to Database System 2. 笛卡尔积(Cartesian Product) 1) 笛卡尔积给定一组域D1,D2,…,Dn,这些域中可以有相同的.D1,D2,…,Dn的笛卡尔积为:D1*D2*…*Dn={(d1,d2,…,dn)|di?Di,i=1,2,…,n}所有域的所有取值的一个组合不能重复 An Introduction to Database System 笛卡尔积(续) 例 给出三个域: D1=SUPERVISOR ={ 张清玫,刘逸 } D2=SPECIALITY={计算机专业,信息专业} D3=POSTGRADUATE={李勇,刘晨,王敏}则D1,D2,D3的笛卡尔积为:D1*D2*D3 ={(张清玫,计算机专业,李勇),(张清玫,计算机专业,刘晨), (张清玫,计算机专业,王敏),(张清玫,信息专业,李勇), (张清玫,信息专业,刘晨),(张清玫,信息专业,王敏), (刘逸,计算机专业,李勇),(刘逸,计算机专业,刘晨), (刘逸,计算机专业,王敏),(刘逸,信息专业,李勇)刘逸,信息专业,刘晨),(刘逸,信息专业,王敏) } An Introduction to Database System 笛卡尔积(续) 2) 元组(Tuple)笛卡尔积中每一个元素(d1,d2,…,dn)叫作一个n元组(n-tuple)或简称元组. 3) 分量(Component)笛卡尔积元素(d1,d2,…,dn)中的每一个值di叫作一个分量. An Introduction to Database System 笛卡尔积(续) 4) 基数(Cardinal number)若Di(i=1,2,…,n)为有限集,其基数为mi(i=1,2,…,n),则D1*D2*…*Dn的基数M为:在上例中,基数:2*2*3=12,即D1*D2*D3共有2*2*3=12个元组 An Introduction to Database System 笛卡尔积(续) 5)笛卡尔积的表示方法笛卡尔积可表示为一个二维表.表中的每行对应一个元组,表中的每列对应一个域.在上例中,12个元组可列成一张二维表 An Introduction to Database System An Introduction to Database System 3. 关系(Relation) 1) 关系D1*D2*…*Dn的子集叫作在域D1,D2,…,Dn上的关系,表示为 R(D1,D2,…,Dn)R:关系名 n:关系的目或度(Degree) An Introduction to Database System 关系(续) 注意:关系是笛卡尔积的有限子集.无限关系在数据库系统中是无意义的.由于笛卡尔积不满足交换律,即(d1,d2,…,dn )≠(d2,d1,…,dn ) 但关系满足交换律,即(d1,d2 ,…,di ,dj ,…,dn)=(d1,d2 ,…,dj,di ,…,dn) (i,j = 1,2,…,n) 解决方法:为关系的每个列附加一个属性名以取消关系元组的有序性 An Introduction to Database System 关系(续) 例 在表2.1 的笛卡尔积中取出有实际意义的元组 来构造关系关系:SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE)关系名,属性名假设:导师与专业:1:n,导师与研究生:1:n于是:SAP关系可以包含三个元组 { (张清玫,信息专业,李勇)张清玫,信息专业,刘晨)刘逸,信息专业,王敏) } An Introduction to Database System 关系(续) 2) 元组关系中的每个元素是关系中的元组,通常用t表示.3) 单元关系与二元关系当n=1时,称该关系为单元关系(Unary relation).当n=2时,称该关系为二元关系(Binary relation). An Introduction to Database System 关系(续) 4) 关系的表示关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域. An Introduction to Database System 关系(续) 5) 属性关系中不同列可以对应相同的域,为了加以区分,必须对每列起一个名字,称为属性(Attribute).n目关系必有n个属性. An Introduction to Database System 关系(续) 6) 码候选码(Candidate key)若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码在最简单的情况下,候选码只包含一个属性.在最极端的情况下,关系模式的所有属性组是这个关系模式的候选码,称为全码(All-key) An Introduction to Database System 关系(续) 码(续)主码若一个关系有多个候选码,则选定其中一个为主码(Primary key)候选码的诸属性称为主属性(Prime attribute).不包含在任何侯选码中的属性称为非主属性(Non-key attribute) An Introduction to Database System 关系(续) 7) 三类关系基本关系(基本表或基表)实际存在的表,是实际存储数据的逻辑表示查询表查询结果对应的表视