数据库第二章.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《数据库第二章.ppt》由用户(saw518)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 第二
- 资源描述:
-
1、l关系模型的基本概念l关系模型的数据结构l关系操作l关系的完整性 l 关系数据库的数学理论基础:l 集合论、l 关系代数(信息代数),l 用数学的方法来处理数据。数学方法集合论关系代数l关系数据库的发展历程 u1962年,CODASYL “信息代数信息代数”。u1968年,David Child 在7090机上实现的实现的集集合论数据结构合论数据结构。u1970年,E.F.Codd 发表多篇论,严格地、系统地提出关系模型提出关系模型。u20世纪70年代末,IBM 的San Jose实验室研研制出制出关系数据库实验模型System R(原型原型)u1981年,IBM研制出研制出SQL/DS。DB
2、2、Oracle ingres Sysbase Informix 前面讲过,关系数据库系统是支持关系模型的数据库系统,同样地由关系数据结构、关系操作集合和完整性约束条件三部分组成。一、单一的数据结构-关系关系(P46)实体以及实体间的联系均由关系关系来表示。关系模型的数据结构非常单一。在关系模型中,现实世界的实体以及实体间的各种联系均用关系来表示。在用户看来,关系模型中数据的逻辑结构是一张二维表。二、关系操作(P46)关系模型给出了关系操作的能力,但不对具体RDBMS语言给出具体的语法要求。常用的关系操作关系操作包括两大部分:l 选择(Select)、l 投影(Project)、l 连接(jo
3、in)、l 除(Divide)、l 并(Union)、l 交(Intersection)、l 差(Difference)等查询操作查询操作和 l 增加(Insert)、l 删除(Delete)、l 修改(Update)操作。三、关系操作的特点:集合操作方式,即操作的对象和结果都是集合,这种方式一次一集合一次一集合(set-at-a-time)。非关系数据模型数据操作方式:一次一记录一次一记录(record-at a-time)。实现关系操作关系操作:关系代数和关系演算(元组关系演算、域关系演算)。这是一种抽象的查询语言抽象的查询语言。RDBMSRelational Database Manag
4、ement System,关系数据库管理系统。关系语言关系语言是一种高度非过程化语言。SQL:Structured Query Language,结构化查询语言。SQL构成:集DDL、DML和DCL于一体。三类:关系代数语言、关系演算语言和具有关系代数和关系演算双重特点的语言关系数据语言1关系代数语言例如ISBL2关系演算语言1.元组关系演算语言例如APLHA,QUEL2.域关系演算语言例如QBE3具有关系代数和关系演算双重特点的语言例如SQL(1)关系代数关系代数是用对关系的运算来表达查询要求的方式。是用对关系的运算来表达查询要求的方式。(2)关系演算关系演算是用谓词来表达查询要求的方式。按
5、是用谓词来表达查询要求的方式。按谓词变元的基本对象谓词变元的基本对象是元组变量还是元组变量还是域变量分为元组关系演算和域关系演算。是域变量分为元组关系演算和域关系演算。关系代数、元组关系演算和域关系演算三种语言在表达能力上是完全等价的。关系代数、元组关系演算和域关系演算三种语言在表达能力上是完全等价的。(3)介于关系代数和关系演算之间的语言介于关系代数和关系演算之间的语言SQL(Standard Query Language):):SQL不不仅具有丰富的查询功能,而且具有数据定义和数据控制功能,是集查询、仅具有丰富的查询功能,而且具有数据定义和数据控制功能,是集查询、DDL、DML和和DCL于
6、一体的关系数据语言。它充分体现了关系数据语言的特点和优点,于一体的关系数据语言。它充分体现了关系数据语言的特点和优点,是关系数据库的标准语言。是关系数据库的标准语言。特点特点:完备的表达能力、非过程化的集合操作、功能强、能嵌入高级语言使用。:完备的表达能力、非过程化的集合操作、功能强、能嵌入高级语言使用。关系的三类完整性约束:关系的三类完整性约束:关系模型提供了丰富的完整性控制机制,允许定义三类完整性:关系模型提供了丰富的完整性控制机制,允许定义三类完整性:实体完整性实体完整性 参照完整性参照完整性 用户定义的完整性用户定义的完整性关系模型必须满足的完整性约束关系模型必须满足的完整性约束条件,
7、应该由关系系统自动支持条件,应该由关系系统自动支持是应用领域需要遵循的约束条件,是应用领域需要遵循的约束条件,体现了具体领域中的语义约束体现了具体领域中的语义约束从集合论角度,给出关系数据结构形式化定义。2.2.1 关系2.2.2 关系模式 2.2.3 关系数据库1.域(域(Domain)2.笛卡尔积(笛卡尔积(Cartesian ProductCartesian Product)3.关系关系:(笛卡尔积的有效组合)4.码:码:(P49)5.关系的类型与性质关系的类型与性质:(P50)l域是一组具有相同数据类型的值的集合,又称为值域。(用D表示)例如整数、实数、字符串的集合。l域中所包含的值的
8、个数称为域的基数(用m表示)。l关系中用域表示属性的取值范围。例如:D1=李力,王平,刘伟 m1=3D2=男,女 m2=2D3=47,28,30 m3=3其中,D1,D2,D3为域名,分别表示教师关系中姓名、性别、年龄的集合。l域中的值无排列次序,如D2=男,女=女,男l给定一组域D1,D2,Dn(它们可以包含相同的元素元素,即可以完全不同,也可以部分或全部相同)。D1,D2,Dn的笛卡尔积为D1D2Dn=(d1,d2,dn)|diDi,i=1,2,n。l由定义可以看出,笛卡尔积也是一个集合。其中:1)元素中的每一个di叫做一个分量分量(Component),来自相应的域(diDi)2)每一个
9、元素(元素(d1,d2,d3,dn)叫做一个n元组元组(n-tuple),简称元组元组(Tuple)。但元组不是元组不是di的集合的集合,元组的每个分量分量(di)是按序排列的。如:(1,2,3)(2,3,1)(1,3,2);而集合中的元素是没有排序次序的,如1,2,3=2,3,1=1,3,2。3)若Di(i1,2,n)为有限集有限集,其基数基数(Cardinal number)为mi(i1,2,n),则D1D2Dn的基数M(即元素(d1,d2,dn)的个数)为所有域的基数的累乘之积,即:例例1:D1=男人的集合(Man)王兵、李平、张强 D2=女人的集合(Woman)丁梅、吴芳 D3=儿童的
10、集合(Child)王一、李一、李二niimM1笛卡尔积笛卡尔积是是一个二维表二维表,表中每行行对应一个元组元组,每列列对应一个域域。则这三个集合的笛卡尔积笛卡尔积为:D1D2D3(王兵、丁梅、王一),(王兵、丁梅、李一),(王兵、丁梅、李二),(王兵、吴芳、王一),(王兵、吴芳、李一),(王兵、吴芳、李二),(张强、吴芳、李二)共有18个元素:笛卡尔基数基数32318每小括号的组合,是一个元组元组。每一个元组中的每一个元素(如王兵、丁梅等)就叫分量分量。例例2:上述表示教师关系中姓名D1=李力,王平,刘伟、性别D2=男,女两个域的笛卡尔积为:D1D2=(李力,男),(李力,女),(王平,男),
11、(王平,女),(刘伟,男),(刘伟,女)其中:l李力、王平、刘伟、男、女都是分量l(李力,男),(李力,女)等是元组l其基数M=m1m2=3*2=6l元组的个数为6例如,上述的6个元组可表示成表2.1。姓名姓名性别性别李力男李力女王平男王平女刘伟男刘伟女表表2.1 D1和和D2的笛卡尔积的笛卡尔积-由上例可以看出,由上例可以看出,笛卡尔积笛卡尔积实际实际是是一个一个二维表二维表,表的框架由域构成表的框架由域构成,表表的任意一的任意一行行就就是是一个一个元组元组,表表中的每一中的每一列列来自同一来自同一域域(例如:(例如:第一个分量来自第一个分量来自D1,第二个分量来自,第二个分量来自D2)。)
12、。定义定义:笛卡尔积D1D2Dn的任一子集称为定义在域D1,D2,Dn上的n元关系关系(Relation),可用R(D1,D2,Dn)表示如上例D1D2笛卡尔积的子集可以构成教师关系T1,如下表:姓名姓名性别性别李力男王平女刘伟男元组属性若有一个家庭成员集合:R(父亲,母亲,孩子)Man Woman Child 王兵 丁梅 王一 李平 吴芳 李一 李平 吴芳 李二 这个集合才是有效集合有效集合,在现实生活中才有实现的意义,是ManWomanChild之子集。1.R为关系名,n称为关系的目或度(Degree)。当n=1时,称为单元关系。当n=2时,称为二元关系。当n=n时,称为n元关系。如上例为
13、二元关系,关系名为T。2.关系是笛卡尔积的有限子集,即是一个二维表。行对应一个元组;列对应一个域;每列的名称成为属性。3.n目关系必有n个属性候选键与关键字l能唯一标识关系中元组的属性或属性集,则称该属性或属性集为候选键(Candidate Key),也称候选关键字或候选码。如:“学生关系”中的学号能唯一标识每一个学生,则属性学号是学生关系的候选键。在“选课关系”中,只有属性的组合“学号+课程号”才能唯一地区分每一条选课记录,则属性集“学号+课程号”是选课关系的候选键。l如果一个关系中有多个候选码候选码,可以从中选择一个作为查询、插入或删除元组的操作变量,被选用的候选键称为主关系键主关系键(P
14、rimary Key),或简称为主键主键、主码主码、关系键关系键、关键字关键字。例如例如,假设在学生关系中没有重名的学生,则“学号”和“姓名”都可作为学生关系的候选键。如果选定“学号”作为数据操作的依据,则“学号”为主关系键。l主关系键是关系模型中的一个重要概念。每个关系必需选择一个主关系键,选定以后,不能随意改变。l每个关系必定有且仅有一个主关系键,因为关系的元组无重复,至少关系的所有属性的组合可作为主关系键,通常用较小的属性组合作为主关系键。主属性主属性与与非码属性非码属性l码属性(Prime Attribute):包含在任何一个候选码中的的各属性称为码属性。l主属性(Prime Attr
15、ibute):包含在主码中的各属性称为主属性。l非码属性(Non-Prime Attribute):不包含在任何候选码中的属性称为非码属性,或非主属性(Non-key Attribute)。l在最简单的情况下,一个候选码只包含一个属性,如学生关系中的“学号”,教师关系中的“教师号”。l在最极终端的情况下,所有属性的组合是关系的候选码,这时称为全码(all-key)。l下面是一个全码全码的例子例子:假设有教师、课程、参考书关系TCB,分别有三个属性教师号(T)、课程号(C)和参考书号(B)。一个教师可以讲授多门课程;一门课程可以为多个教师讲授,他们使用相同的一套参考书;同样每种参考书可以供多门课
16、程使用。在这种情况下,T,C,B三者之间是多对多关系,(T,C,B)三个属性的组合是关系TCB的候选码,称为全码全码,T,C,B都是主属性。外部码外部码(Foreign Key):如果关系中某一个属性(不论该属性在此关系中起什么作用),在另一个关系中是主码,则称该属性为外部码或外部键。例如例如:学生:S(*SNO,SNAME,SEX,DPNO)系部:D(*DPNO,DNAME,TEL,LEADER)lDPNO在S表中就是一个属性;l而DPNO在D表中则是主码。1)关系的类型2)基本关系的性质关系可以有三种类型,具体如下-l基本关系基本关系(通常又称为基本表基本表或基表基表):基本表是实际存在的
17、表,它是实际存储数据的逻辑表示。l查询表查询表:查询查询结果对应的表。l视图表视图表:视图表是由基本表或其他视图表导出的表,是虚表虚表,不对应实际存储的数据。u 列是同质的列是同质的,即每一列的分量是同一类型的数据,来自同一个域。u 不同的列可出自同一个域不同的列可出自同一个域,称其中的每一个列为一个属性,不同的属性要给予不同的属性名。u 列的顺序无所谓列的顺序无所谓,即列的次序可以任意交换。u 任意两个元组不能完全相同任意两个元组不能完全相同。u 行的次序无所谓行的次序无所谓,即行的次序可以任意交换。u 分量必须取原子值分量必须取原子值,即每一个分量都必须是不可分的数据项。l尽管关系关系与二
18、维表格二维表格、传统的数据文件数据文件是非常类似的,但它们之间又有重要的区别。l严格地说,关系关系是种规范化了的二维表中行的集合二维表中行的集合,为了使相应的数据操作简化,在关系模型中,对关系作了种种限制限制,关系具有如下特性:(1)关系中不允许出现相同的元组。关系中不允许出现相同的元组。因为数学上集合中没有相同的元素,而关系是元组的集合,所以作为集合元素的元组应该是唯一的。(2)关系中元组的顺序(即行序)是无关紧要的,在一个关系中关系中元组的顺序(即行序)是无关紧要的,在一个关系中可以任意交换两行的次序。可以任意交换两行的次序。因为集合中的元素是无序的,所以作为集合元素的元组也是无序的。根据
19、关系的这个性质,可以改变元组的顺序使其具有某种排序,然后按照顺序查询数据,可以提高查询速度。(3)关系中属性的顺序是无关紧要的,即列关系中属性的顺序是无关紧要的,即列的顺序可以任意交换。的顺序可以任意交换。交换时,应连同属性名一起交换,否则将得到不同的关系。例如:关系T1作如下交换时,无任何影响,如下表所示:性别性别姓名姓名男李力女王平男刘伟 而作如下交换时,不交换属性名,只交换属性列中的值,则得到不同的关系,如下表:姓名姓名性别性别男李力女王平男刘伟(4)同一属性名下的各个属性值必须来自同一个域,同一属性名下的各个属性值必须来自同一个域,是同一类型的数据。是同一类型的数据。(5)关系中各个属
20、性必须有不同的名字,不同的属关系中各个属性必须有不同的名字,不同的属性可来自同一个域,即它们的分量可以取自同一个性可来自同一个域,即它们的分量可以取自同一个域。域。例如例如,有如下表中关系,职业与兼职是两个不同的属性,但它们取自同一个域职业教师,工人,辅导员。姓名姓名职业职业兼职兼职张强教师辅导员王丽工人教师刘宁教师辅导员 (6)关系中每一分量必须是不可分的数据项关系中每一分量必须是不可分的数据项,或者说所,或者说所有属性值都是原子的,即是一个确定的值,而不是值的集有属性值都是原子的,即是一个确定的值,而不是值的集合。属性值可以为空值,表示合。属性值可以为空值,表示“未知未知”或或“不可使用不
21、可使用”,即不可即不可“表中有表表中有表”。满足此条件的关系称为。满足此条件的关系称为规范化关系规范化关系,否则称为否则称为非规范化关系非规范化关系。例如例如:在表:在表2.8中,籍贯含有省、市县两项,出现了中,籍贯含有省、市县两项,出现了“表中有表表中有表”的现象,则为非规范化关系,而把籍贯分成省、市县两列,将的现象,则为非规范化关系,而把籍贯分成省、市县两列,将其规范化,如表其规范化,如表2.9所示。所示。姓名姓名籍贯籍贯省省市市/县县张强张强吉林吉林长春长春王丽王丽山西山西大同大同姓名姓名省省市市/县县张强张强吉林吉林长春长春王丽王丽山西山西大同大同表表2.8表表2.9数据库中要区分数据
22、库中要区分型型、值值。在关系数据库中,在关系数据库中,关系模式关系模式是是型型,关系关系是是值值。关系模式关系模式:对关系的描述。是关系的框架,或称为表框架。它应该:对关系的描述。是关系的框架,或称为表框架。它应该:指出关系由哪些属性构成,这些属性来自哪些域,以及属性与域之指出关系由哪些属性构成,这些属性来自哪些域,以及属性与域之间的映象关系间的映象关系刻画关系必须满足的完整性约束条件刻画关系必须满足的完整性约束条件怎样描述怎样描述关系关系:形式化描述形式化描述为:为:R(u,D,dom,F)其中:其中:R:关系名关系名u:组成该关系的属性名集合组成该关系的属性名集合D:为属性组为属性组u中属
23、性所来自的域中属性所来自的域dom:为属性向域的映象集合为属性向域的映象集合F:为属性间数据的依赖关系为属性间数据的依赖关系一般地,一般地,关系模式关系模式可简记为可简记为 R(u)或或 R(A1,A2,An)而而域名域名及及属性属性向向域域的的映象映象常常直接说明为属性的常常直接说明为属性的类型类型、长度长度。关系名属性名关系模式关系模式关系模式通常可以简记为:R(A1,A2,An)。其中R为关系名,A1,A2,An为属性名。而域名及属性向域的映象常常直接说明为属性的类型、长度。关系模式是静态的、稳定的;关系是关系模式在某一时刻的状态或内容,动态的、随时间不断变化的。关系数据库模式关系数据库
24、模式一组关系模式的集合叫做关系数据库模式关系数据库模式(在一个给定的(在一个给定的应用领域应用领域中,所有中,所有实体及实体间实体及实体间联系的关系的集合联系的关系的集合构成构成一个一个关系数据库关系数据库)关系模式关系模式=关系数据库的描述关系数据库的描述=关系数据库的关系数据库的型型也也可可称称为数据库的为数据库的内含内含(Intention),包括),包括关系关系各属性定义各属性定义及及在相应域中的映象在相应域中的映象。关系的关系的“型型”是是稳定不变的稳定不变的。关系数据库关系数据库的的“值值”(或叫数据库的(或叫数据库的外延外延Extention)是关系模式在某一时刻对应的关系是关系
25、模式在某一时刻对应的关系的集合的集合。(通常称为。(通常称为-关系数据库关系数据库)随时间而变化随时间而变化元组的插入、更新、删除元组的插入、更新、删除 关系数据库模式关系数据库模式是对关系数据库结构的描述,或是对关系数据库结构的描述,或者说是对关系数据库框架的描述。者说是对关系数据库框架的描述。与关系数据库模式对应的数据库中的当前值就是与关系数据库模式对应的数据库中的当前值就是关系数据库的内容,称为关系数据库的内容,称为关系数据库关系数据库的的实例实例,可以看作是可以看作是关系的值关系的值。例如例如,在教学数据库中,共有五个关系,其关系,在教学数据库中,共有五个关系,其关系模式分别为:模式分
展开阅读全文