《第二章关系数据模型精选文档.ppt》由会员分享,可在线阅读,更多相关《第二章关系数据模型精选文档.ppt(133页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第二章关系数据模型本讲稿第一页,共一百三十三页22.1非关系模型DBMS支持四种数据模型:n层次模型:70年代,占据商用市场n网状模型:70年代,占据商用市场n关系模型:80年代开始,现在完全取代了上两种n面向对象模型:最近有所发展本讲稿第二页,共一百三十三页32.1非关系模型2.1.1层次模型(HierarchicalModel)2.1.2网状数据模型(NetworkModel)层次、网状模型统称为格式化模型 本讲稿第三页,共一百三十三页42.1.1层次模型n是数据库系统中最早出现的数据模型。n用树形结构表示各类实体间联系。n代表产品:IBM的IMS(informationmanagemen
2、tsystems)本讲稿第四页,共一百三十三页52.1.1层次模型1.数据结构2.存储结构3.数据操纵与完整性约束4.优缺点本讲稿第五页,共一百三十三页62.1.1层次模型1.1.数据结构数据结构用树型结构描述实体、属性及关系例.数据模型定义如图D#DNDLR#RNS#SNSST#TNTD系D教研室R教师T学生S本讲稿第六页,共一百三十三页72.1.1层次模型例.数据模型对应值如图:D02CSOBR01DBR02IMSR03AIS63871LJAS63874CYCS63876WBAE2101WSDBTE1709LBDBSE3501LJJDBSE1101CPHRE3162ZPES本讲稿第七页,共
3、一百三十三页82.1.1层次模型n层次模型满足下面两个条件的基本层次联系的集合为层次模型。满足下面两个条件的基本层次联系的集合为层次模型。1.有且只有一个结点没有双亲结点,这个结点称为根有且只有一个结点没有双亲结点,这个结点称为根结点结点2.根以外的其它结点有且只有一个双亲结点根以外的其它结点有且只有一个双亲结点n层次模型中的几个术语n根结点,双亲结点,兄弟结点,叶结点根结点,双亲结点,兄弟结点,叶结点本讲稿第八页,共一百三十三页92.1.1层次模型 1根结点根结点 2兄弟结点兄弟结点 3叶结点叶结点4兄弟结点兄弟结点5叶结点叶结点叶结点叶结点本讲稿第九页,共一百三十三页102.1.1层次模型
4、2层次数据模型的存储结构 不仅存储数据本身,还要反映出层次关系n邻接法按照层次树前序遍历的顺序把所有记录值依次邻接存按照层次树前序遍历的顺序把所有记录值依次邻接存放,即通过物理空间的位置相邻来实现层次顺序放,即通过物理空间的位置相邻来实现层次顺序n链接法用指引元来反映数据之间的层次联系用指引元来反映数据之间的层次联系本讲稿第十页,共一百三十三页112.1.1层次模型3.数据操纵与完整性约束n数据操纵:查询、插入、删除和修改n完整性约束:如:n无相应的双亲结点值就不能插入子女结点值无相应的双亲结点值就不能插入子女结点值n如果删除双亲结点值,则相应的子女结点值也如果删除双亲结点值,则相应的子女结点
5、值也被同时删除被同时删除n更新操作时,应更新所有相应记录,以保证数更新操作时,应更新所有相应记录,以保证数据的一致性据的一致性本讲稿第十一页,共一百三十三页122.1.1层次模型4优缺点优缺点优点:1)简单,易用2)对于预先定义不变的系统,以及具有一对多的层次关系,性能优于关系模型3)良好的完整性缺点:1)表示多对多困难2)插入,删除限制多本讲稿第十二页,共一百三十三页132.1非关系模型2.1.1层次模型(HierarchicalModel)2.1.2网状数据模型(NetworkModel)本讲稿第十三页,共一百三十三页142.1.2网状数据模型n70年代推出年代推出n由由DBTG提出的一个
6、系统方案提出的一个系统方案n奠定了数据库系统的基本概念、方法和技术奠定了数据库系统的基本概念、方法和技术n实际系统nCullinetSoftwareInc.公司的公司的IDMSnUnivac公司的公司的DMS1100nHoneywell公司的公司的IDS/2nHP公司的公司的IMAGE本讲稿第十四页,共一百三十三页152.1.2网状数据模型1.数据结构数据结构n用网状结构表示实体及其间联系,特点:n允许多个结点没有双亲结点n允许结点有多个双亲结点,层次模型是网状的一个特例。本讲稿第十五页,共一百三十三页162.1.2网状数据模型学生宿舍学生宿舍学生学生教研室教研室系系教师教师本讲稿第十六页,共
7、一百三十三页172.1.2网状数据模型父母父母人人子女子女树树种种植植砍砍伐伐养养育育赡赡养养本讲稿第十七页,共一百三十三页182.1.2网状数据模型1 2 R3L1L2 R1 R1 R2R2 L3 L3 L1 L2 L1 L2 R3R3 L4 L4 R4 R4 R5R5 本讲稿第十八页,共一百三十三页192.1.2网状数据模型2.存储结构存储结构关键n实现记录之间的联系实现记录之间的联系n常用方法n单向链接单向链接n双向链接双向链接n环状链接环状链接n向首链接向首链接本讲稿第十九页,共一百三十三页202.1.2网状数据模型3.数据操纵与完整性约束n数据操纵:查询、插入、删除和修改n完整性约束
8、:n允许插入尚未确定双亲结点值的子女结点值允许插入尚未确定双亲结点值的子女结点值n允许只删除双亲结点值允许只删除双亲结点值本讲稿第二十页,共一百三十三页212.1.2网状数据模型4.优缺点优缺点优点:n更直接描述现实世界n良好性能,存取效率高缺点:n数据描述语言(DDL)复杂n数据独立性较差本讲稿第二十一页,共一百三十三页22第二章关系数据模型n2.1非关系模型n2.2关系数据模型n2.3关系的完整性n2.4关系代数n2.5关系演算n2.6关系数据库管理系统n2.7例子:建立关系模式本讲稿第二十二页,共一百三十三页232.2关系数据模型n针对层次模型和网状模型的这些缺陷,70年代初出现了关系模
9、型。计算机数据管理的历史上,出现过两次飞跃n第一次是数据库技术的出现数据库技术的出现n第二次是关系数据模型的诞生关系数据模型的诞生DB走向成熟走向成熟n最重要的一种数据模型n是目前数据库技术主要采用的数据模型n1970年由美国IBM公司SanJose研究室的研究员E.F.Codd提出本讲稿第二十三页,共一百三十三页242.2关系数据模型2.2.1关系数据模型的要素2.2.2关系模型的特点2.2.3关系的性质及数学描述本讲稿第二十四页,共一百三十三页252.2.1关系数据模型的要素n关系模型n关系数据结构n关系操作集合n完整性约束n关系模型的数据结构非常单一,用户看来即一张二维表,但能表达丰富的
10、语义n关系操作采用集合操作方式,即操作对象和结果都是集合。n完整性约束提供了三类完整性。本讲稿第二十五页,共一百三十三页26221关系数据模型的要素1.1.关系数据模型的数据结构(关系术语)关系数据模型的数据结构(关系术语)n关系(Relation)n就是一个二维表(用二维表的形式来表示实体和实体间的联系的数据模型)n元组元组(Tuple)n表中的行叫一个元组或一个记录n属性(Attribute)n表中的列称为属性;每列一个属性名本讲稿第二十六页,共一百三十三页27221关系数据模型的要素n域(Domain)n属性的取值范围(一组具有相同数据类型的值的集合)n关键字/主码(Key)n表中的某个
11、属性组,其值能唯一标识一个元组n关系模式(Schema)n对关系的描述,格式:关系名关系名(属性名1,属性名2,属性名n)n元数(目元数(目/度)度)n关系模式中属性的数目本讲稿第二十七页,共一百三十三页221关系数据模型的要素28本讲稿第二十八页,共一百三十三页29221关系数据模型的要素用术语定义关系:n关系是元组的集合n关系模式是命名的属性集合n元组是属性值的集合n一个具体的关系模型是若干个关系模式的集合n在关系模型中,基本数据结构就是二维表。本讲稿第二十九页,共一百三十三页30221关系数据模型的要素2.关系数据模型的操纵与完整性约束关系数据模型的操纵与完整性约束n操纵:查询、插入、删
12、除、修改n完整性约束:实体完整性、参照完整性、用户定义的完整性3.存储结构存储结构n实体及实体间的联系用表表示n物理组织中,表以文件形式存储,每一个表对应一种文件结构本讲稿第三十页,共一百三十三页31221关系数据模型的要素4.关系模型优缺点优点:n建立在严格的数学概念的基础上n结构简单、清晰,用户易学易用n存取路径透明,使数据独立性高,安全保密性好缺点:n路径透明,查询效率不如非关系数据模型本讲稿第三十一页,共一百三十三页322.2关系数据模型2.2.1 关系数据模型的要素 2.2.2 关系模型的特点 2.2.3 关系的性质及数学描述 2.2.4 关系模式本讲稿第三十二页,共一百三十三页33
13、2.2.2关系模型的特点1.1.关系必须规范化关系必须规范化n每个关系模式必须满足一定要求,6NF基本要求。n最基本的规范条件:关系的每一个分量必须是一个不可最基本的规范条件:关系的每一个分量必须是一个不可分的数据项。分的数据项。本讲稿第三十三页,共一百三十三页342.2.2关系模型的特点2.数数据据结结构构简简单单:实体和实体间的联系都用关系表示3.3.数数据据独独立立性性高高:用户不必顾及数据的物理存放,只与数据本身发生关系。4.4.可可以以直直接接处处理理多多对对多多关关系系:在层次与网状关系模型中,需引入中间记录表示M:N关系,关系模型中通过一个关系就能表达。5.5.有坚实的理论基础有
14、坚实的理论基础:以数学的集合论为基础本讲稿第三十四页,共一百三十三页352.2.2关系模型的特点例:例:表示学生与课程之间多对多联系的关系表示学生与课程之间多对多联系的关系学号学号课程号课程号成绩成绩S1C180S1C287S2C190S2C288S2C395S3C175本讲稿第三十五页,共一百三十三页362.2关系数据模型2.2.1 关系数据模型的要素 2.2.2 关系模型的特点 2.2.3 关系的性质及数学描述 2.2.4 关系模式本讲稿第三十六页,共一百三十三页372.2.3关系的性质及数学描述1.1.关系性质关系性质1)列是同质的:关系的每一列的数据来自同一域2)关系的不同的列应给以不
15、同的名以示区别3)关系的列的次序的交换不影响关系的实际含义。4)关系的行的次序交换不影响关系的实际含义5)在同一个关系中不允许有相同的元组,它保证了关系中元组的唯一性6)关系的每个属性必须是不可再分的(分量取原子值)7)由于对关系操作的结果(增,删,改),关系会随者时间的推移而变化 本讲稿第三十七页,共一百三十三页382.2.3关系的性质及数学描述2.2.关系的数学描述(笛卡儿积)关系的数学描述(笛卡儿积):n所有域的所有取值的一个组合n不能重复n笛笛卡卡儿儿积积定定义义:给定一组域D1,D2,.Dn,这些域可以有相同的域,定义D1,D2,.Dn的笛卡儿积为:D1XD2XD3X.XDn=(d1
16、,d2,dn)diDi,i=1,2,3.n本讲稿第三十八页,共一百三十三页392.2.3关系的性质及数学描述n关系是笛卡尔积的有限子集。无限关系在数据库系统中是无意义的。n关关系系定定义义:D1XD2XD3X.XDn的子集称为在域D1D2.Dn上的关系。用R(D1,D2.Dn)表示。本讲稿第三十九页,共一百三十三页402.2.3关系的性质及数学描述例如:给出两个域D1姓名集合张三,李四D2工资集合984,640,587D1XD2笛卡儿积的二维表形式:D1D2张张984张张647张张587李李984李李640李李587从上例的笛卡儿积D1XD2取一个子集构成工资关系姓名姓名工资工资张三张三640
17、李四李四587本讲稿第四十页,共一百三十三页412.2关系数据模型2.2.1 关系数据模型的要素 2.2.2 关系模型的特点 2.2.3 关系的性质及数学描述 2.2.4 关系模式本讲稿第四十一页,共一百三十三页422.2.4关系模式n关系模式是对关系的描述,可以形式化地表示为R(U,D,DOM,F)R:关系名U:组成该关系的属性名集合D:属性组U中属性所来自的域DOM:属性向域的映象集合F:属性间数据的依赖关系本讲稿第四十二页,共一百三十三页432.2.4关系模式n关系模式(RelationSchema)是型n对关系的描述n静态的、稳定的n关系是值n关系模式在某一时刻的状态或内容n动态的、随
18、时间不断变化的n关系模式是对关系的描述n关系模式和关系往往统称为关系,通过上下文加以区别本讲稿第四十三页,共一百三十三页44第二章关系数据模型n2.1非关系模型n2.2关系数据模型n2.3关系的完整性n2.4关系代数n2.5关系演算n2.6关系数据库管理系统n2.7例子:建立关系模式本讲稿第四十四页,共一百三十三页452.3关系的完整性n关系的完整性就是指存储在数据库中数据的一致性和正确性n可通过各种默认,规则,触发器等保证数据完整性。n关系模型中有三类完整性约束 本讲稿第四十五页,共一百三十三页462.3关系的完整性2.3.1实体完整性2.3.2参照完整性2.3.3用户定义的完整性本讲稿第四
19、十六页,共一百三十三页472.3.1实体完整性(entityintegrity)n实体完整性规则:若属性A是基本关系R的关键字(KEY),则属性A不能取空值.。若关键字为属性集,则其每个属性均不能为空值。n如:选修(学号,课号,成绩)学号,课号是KEY,则其均不能为空。本讲稿第四十七页,共一百三十三页482.3.1实体完整性(entityintegrity)说明:1.实体完整性是针对基本关系而言的。一个基本关系通常对应现实世界的一个实体集。例:学生关系学生集合2.现实世界中的实体是可区分的,具有唯一标识 3.关系模型中以主码作为唯一标识。4.主码主码中的属性不能取空。本讲稿第四十八页,共一百三
20、十三页492.3关系的完整性2.3.1实体完整性2.3.2参照完整性2.3.3用户定义的完整性本讲稿第四十九页,共一百三十三页502.3.2参照完整性(referencialintegrity)n现实世界中实体间存在联系,自然存在关系与关系间的引用。例1:学生(学号,姓名,性别,专业号,年龄)专业(专业号,专业名)这两个关系间存在属性引用,即学生关系应用了专业关系的KEY(专业号)n学生关系中的专业号值必须是确实存在的专业的专业号n学生关系中某个属性取值要参照专业关系的属性取值本讲稿第五十页,共一百三十三页512.3.2参照完整性(referencialintegrity)例2:学生(学号,姓
21、名,性别,专业号,年龄)课程(课号,课名,学分)选修(学号,课号,成绩)这三个关系间也存在属性引用,选修关系中引用的学号课号必须存在例3:学生(学号,姓名,性别,专业号,年龄,班长)同一关系内部属性间也可引用本讲稿第五十一页,共一百三十三页522.3.2参照完整性(referencialintegrity)n定义(外码):定义(外码):设F是基本关系R的一个或一组属性但不是R的关键字,如果F与基本关系S的主关键字Ks相对应,则n称F是基本关系R的外码(FOREIGNKEY)n并称基本关系R为参照关系(REFERENCINGRELATION)n基本关系S为被参照关系REFRENCEDRELATI
22、ON或目标关系(TARGETRELATION)。n关系R和S不一定是不同的关系。本讲稿第五十二页,共一百三十三页532.3.2参照完整性(referencialintegrity)n显然,S的KEY与R的外码F必须在同一个域上。如:专业号专业号学号班长号定单关系.货号库存关系.货号-不一定同名,但取值域相同n可用图表示本讲稿第五十三页,共一百三十三页542.3.2参照完整性(referencialintegrity)学生关系学生关系专业关系专业关系学生关系学生关系选修关系选修关系课程关系课程关系本讲稿第五十四页,共一百三十三页552.3.2参照完整性(referencialintegrity)
23、n参照完整性规则就是定义外键与主键之间的引用规则。n参参照照完完整整性性规规则则:若属性(或属性组)F是基本关系R的外键,它与基本关系S的主键Ks相对应,则对于R中,每个元组在F上的值必须为:n或者取空值(F的每个属性值均为空值)n或者等于S中某个元组的主键值本讲稿第五十五页,共一百三十三页562.3.2参照完整性(referencialintegrity)例如:例1中,学生关系中每个元组的专业号属性值本讲稿第五十六页,共一百三十三页572.3.2参照完整性(referencialintegrity)实施参照完整性,由DBMS管理:1)控制输入:如在JOB中不能输入Customer_ID,只能
24、选择或可输入,但若在Customer中无此ID,则不能接收2)连锁更新、删除:如在Customer中改Customer_ID,则JOB中也改;在Customer中删Customer_ID,则JOB中也删;例:删除国籍自动删具有此国籍者或更改国籍遭禁止本讲稿第五十七页,共一百三十三页58SQLServer关系图企业管理器所选库关系图新建数据库关系图本讲稿第五十八页,共一百三十三页592.3.2参照完整性(referencialintegrity)本讲稿第五十九页,共一百三十三页60本讲稿第六十页,共一百三十三页612.3关系的完整性2.3.1实体完整性2.3.2参照完整性2.3.3用户定义的完整
25、性本讲稿第六十一页,共一百三十三页622.3.3用户定义的完整性n实体完整性和参照完整性适用于任何关系数据库系统。除此之外,不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件n用户定义的完整性:反映应用领域需要遵循的约束条件,体现了具体领域中的语义约束n用户定义后由系统支持n如:年龄0120等本讲稿第六十二页,共一百三十三页632.3.3用户定义的完整性ACCESS中,定义表时在设计视图中“有效性规则”定义列的用户定义完整性本讲稿第六十三页,共一百三十三页实验作业1.安装一个数据库管理系统,建立一个数据库,至少3个表,完成对关系的关键字建立,并完成:1)表中不建立含有语义的
26、关键字,建立自动计数类型数据作为关键字,输入重复数据,给出结果;2)建立含有语义的关键字,输入重复数据,给出结果;3)对含有语义的关键字字段不输入值,观察结果4)写出总结(命名、目标、设计过程、验证数据、结论)64本讲稿第六十四页,共一百三十三页实验作业2.参照完整性实验1)设计实验表(至少2个),画出表间参照关系图;2)给出实验过程设计(数据、建联系等),测试DBMS对具有参照关系的表的如下控制:n控制输入n级联更新n级联删除3)写出实验报告65本讲稿第六十五页,共一百三十三页66第二章关系数据模型n2.1非关系模型n2.2关系数据模型n2.3关系的完整性n2.4关系代数n2.5关系演算n2
27、.6关系数据库管理系统n2.7例子:建立关系模式本讲稿第六十六页,共一百三十三页67关系模型操作n关系模型给出了关系操作能力,但不对RDBMS语言给出具体的语法要求n关系模型操作表达方式有:n关系代数n关系演算n元组关系演算n域关系演算本讲稿第六十七页,共一百三十三页682.4关系代数n关系代数是一种抽象的查询语言,是关系数据操纵语言的一种传统表达方式,它是用对关系的运算来表达查询的。n关系代数的运算对象是关系,运算结果也是关系。本讲稿第六十八页,共一百三十三页692.4关系代数2.4.1传统的集合运算2.4.2专门的关系运算2.4.3 关系代数运算表示方法本讲稿第六十九页,共一百三十三页70
28、2.4.1传统的集合运算传统的集合运算是二目运算并(并(union)两个度为n的关系R1和R2的并记为R1UR2,结果是度为n的关系。该关系由属于R1的元组和属于R2的元组共同组成nR和Sn具有相同的目n(即两个关系都有n个属性)n相应的属性取自同一个域nRSn仍为n目关系,由属于R或属于S的元组组成 RS=t|t Rt S 本讲稿第七十页,共一百三十三页712.4.1传统的集合运算ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1a1b2c2a1b3c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSRS本讲稿第七十一页,共一百三十三页722.4.1传统的集合运算交交(i
29、ntersection)两个度为n的关系R1和R2的交记为R1R2,结果是度为n的关系,由既属于R1又属于R2的元组组成。nR和Sn具有相同的目nn相应的属性取自同一个域nRSn仍为n目关系,由既属于R又属于S的元组组成 RS=t|t Rt S RS=R(R-S)本讲稿第七十二页,共一百三十三页732.4.1传统的集合运算ABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR S本讲稿第七十三页,共一百三十三页742.4.1传统的集合运算差(差(difference)两个度n的R1和R2的差记为R1-R2结果是度为n的关系,由属
30、于R1同时不属于R2的元组组成。nR和Sn具有相同的目nn相应的属性取自同一个域nR-Sn仍为n目关系,由属于R而不属于S的所有元组组成R-S=t|tRtS本讲稿第七十四页,共一百三十三页752.4.1传统的集合运算ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1ABCa1b2c2a1b3c2a2b2c1RSR-S本讲稿第七十五页,共一百三十三页762.4.1传统的集合运算R1张张640王王622李李587R2赵赵452李李587R2张张640王王622李李587赵赵452R1R1R2李李587R1-R2张张640王王622本讲稿第七十六页,共一百三十三页772.4.1传统的集合运
31、算笛卡尔积笛卡尔积nRnn目关系,k1个元组nSnm目关系,k2个元组nRSn列:(n+m)列的元组的集合n元组的前n列是关系R的一个元组n后m列是关系S的一个元组n行:k1k2个元组nRS=trts|trRtsS本讲稿第七十七页,共一百三十三页782.4.1传统的集合运算ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1a1b1c1a1b1c1a1b2c2a1b2c2a1b2c2a2b2c1a2b2c1a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR SABCa1b2c2a1b3c2a2b2c1a1b2c2a1b3c2a2b2c1a1b2c2a1b3c2a2b2c1本讲
32、稿第七十八页,共一百三十三页792.4关系代数2.4.1传统的集合运算2.4.2专门的关系运算2.4.3 关系代数运算表示方法本讲稿第七十九页,共一百三十三页802.4.2专门的关系运算1选择:选择:n从关系中找出满足给定条件的诸元组称为选择,是原关系的子集,它是水平抽取二维表中满足条件的行n选择运算是从行的角度进行的运算n例:从图书中找出书名是“数据库导论”的书目本讲稿第八十页,共一百三十三页812.4.2专门的关系运算2投影运算:投影运算:n从关系模式中挑选若干属性组成新的关系称为投影,直观上是垂直抽取二维表。n投影操作主要是从列的角度进行运算例:原关系(工号,姓名,性别,生日,工资,部门
33、)投影(工号,姓名,工资)本讲稿第八十一页,共一百三十三页822.4.2专门的关系运算3连接运算连接运算:n上两个运算是单目运算,操作对象只是一个关系n联接运算是二目运算,需要两个关系作为操作对象n从两个关系的笛卡尔积中选取属性间满足一定条件的元组本讲稿第八十二页,共一百三十三页832.4.2专门的关系运算 ABRS本讲稿第八十三页,共一百三十三页842.4.2专门的关系运算n联接是将两个关系模式的属性名拼接成一个更宽的关系模式,生成的新关系中包括满足联接条件的元组,运算过程是通过联接条件来控制的,联接条件中将出现不同关系中的公共属性名,或者具有相同含义,可比的属性。n联接是对象关系的结合。本
34、讲稿第八十四页,共一百三十三页852.4.2专门的关系运算例:现有二关系:定单(定单号,货号,定货单位,售价,订购量,送货地点)库存(货号,品名,库存量,仓库地点,单价)1)查看库存量大于订购量的商品详情2)查看库存地点是和运货地点同在一个城市的详情。本讲稿第八十五页,共一百三十三页862.4.2专门的关系运算解:联接结果:(定单号,货号,定货单位,售价,订购量,送货地点,品名,库存量,仓库地点,单价)JOINANDWHEREJOIN定单AND库存WHERE定单(货号)=库存(货号)AND库存量=订购量或:select*from定单,库存where定单.货号=库存.货号AND库存量=定购量本讲
35、稿第八十六页,共一百三十三页872.4.2专门的关系运算n联接运算比较费时间,尤其是在包括许多元组的关系之间联接更是如此。n设关系R和S分别有m和n元组,R与S的联接过程要访问m*n个元组:n先从R关系中的第一个元组开始,依次与S关系的各元组比较,符合条件的两元组首尾相连纳入新关系,一轮共进行n次比较;n再用R关系的第二个元组对S关系的各元组扫描,共需进行m轮扫描。n若m=500,n=50,则R,S联接要进行25000次存取n所以查询是要考虑优化,若有可能,先进行选择运算,能先投影则先投影.本讲稿第八十七页,共一百三十三页882.4.2专门的关系运算n两类常用连接运算n等值连接(equijoi
36、n):连接条件为“”n自然连接:是一种特殊的等值连接n两个关系中进行比较的分量必须是相同的属性组n在结果中把重复的属性列去掉本讲稿第八十八页,共一百三十三页892.4关系代数2.4.1传统的集合运算2.4.2专门的关系运算2.4.3 关系代数运算表示方法本讲稿第八十九页,共一百三十三页902.4.3 关系代数运算表示方法集合运算符-并差交广义笛卡尔积比较运算符大于大于等于小于小于等于等于不等于运算符含义运算符含义本讲稿第九十页,共一百三十三页912.4.3 关系代数运算表示方法专门的关系运算符选择投影连接除逻辑运算符非与或运算符含义运算符含义本讲稿第九十一页,共一百三十三页922.4.3 关系
37、代数运算表示方法表示记号(1)R,tR,tAi设关系模式为R(A1,A2,An)它的一个关系设为R。tR表示t是R的一个元组tAi则表示元组t中相应于属性Ai的一个分量本讲稿第九十二页,共一百三十三页932.4.3 关系代数运算表示方法(2)A,tA,A若A=Ai1,Ai2,Aik,其中Ai1,Ai2,Aik是A1,A2,An中的一部分,则A称为属性列或域列。tA=(tAi1,tAi2,tAik)表示元组t在属性列A上诸分量的集合。A则表示A1,A2,An中去掉Ai1,Ai2,Aik后剩余的属性组。本讲稿第九十三页,共一百三十三页942.4.3 关系代数运算表示方法(3)trts R为n目关系
38、,S为m目关系。trR,tsS,trts称为元组的连接。它是一个n+m列的元组,前n个分量为R中的一个n元组,后m个分量为S中的一个m元组。本讲稿第九十四页,共一百三十三页952.4.3 关系代数运算表示方法n典型关系代数语言nISBL(InformationSystemBaseLanguage)n由IBMUnitedKingdom研究中心研制n用于PRTV(PeterleeRelationalTestVehicle)实验系统本讲稿第九十五页,共一百三十三页96第二章关系数据模型n2.1非关系模型n2.2关系数据模型n2.3关系的完整性n2.4关系代数n2.5关系演算n2.6关系数据库管理系统
39、n2.7例子:建立关系模式本讲稿第九十六页,共一百三十三页972.5关系演算n以数理逻辑中的谓词演算为基础的。n按谓词变元的不同,关系演算可分为n元组关系演算:以元组变量作为谓词变元的基本对象n域关系演算:以域变量作为谓词变元的基本对象本讲稿第九十七页,共一百三十三页982.5关系演算2.5.1元组关系演算语言ALPHA2.5.2域关系演算语言QBE本讲稿第九十八页,共一百三十三页992.5.1元组关系演算语言ALPHAn语句检索语句nGET更新语句nPUT,HOLD,UPDATE,DELETE,DROPn语句格式:GET工作空间名(定额)(表达式1):操作条件DOWN/UP表达式2本讲稿第九
40、十九页,共一百三十三页1002.5.1元组关系演算语言ALPHA例1查询所有被选修的课程号码。GETW(SC.Cno)例2查询所有学生的数据。GETW(Student)例3查询信息系(IS)中年龄小于20岁的学生的学号和年龄。GET W (Student.Sno,Student.Sage):Student.Sdept=ISStudent.Sage60)AND(dbo.sc.gradeA)和(fname指定数据列的附加搜索条件表达式,并用逻辑OR链接到先前的表达式。可以在最右边的或?/B列中按列中按TAB键,以键,以添加更多的添加更多的或或?/B网格列。网格列。本讲稿第一百一十六页,共一百三十三
41、页117第二章关系数据模型n2.1非关系模型n2.2关系数据模型n2.3关系的完整性n2.4关系代数n2.5关系演算n2.6关系数据库管理系统n2.7例子:建立关系模式本讲稿第一百一十七页,共一百三十三页1182.6关系数据库管理系统n关系数据库系统是支持关系模型的数据库系统n关系数据库中,关系模式是型,关系是值n关系数据库的型也称关系数据库模式,是对关系数据库的描述n关系数据库的值是关系模型在某一时刻对应的关系的集合,通常就称为关系数据库本讲稿第一百一十八页,共一百三十三页1192.6关系数据库管理系统当且仅当它支持:从用户角度,库由表组成,且只有表这种结构支持选择、投影、联接运算,对这些运
42、算不要求用户定义任何物理存储路径。本讲稿第一百一十九页,共一百三十三页120第二章关系数据模型n2.1非关系模型n2.2关系数据模型n2.3关系的完整性n2.4关系代数n2.5关系演算n2.6关系数据库管理系统n2.7例子:建立关系模式本讲稿第一百二十页,共一百三十三页1212.7例子:建立关系模式n271模式n272创建表n273表示关系本讲稿第一百二十一页,共一百三十三页122271模式HighLine大学是一个中西部的小型的自由艺术大学,学生活动部发起内部的体育联盟,但是它在跟踪各个不同队的队长租借的体育设备时,遇到了问题。需求:1.记录体育设备;2.记录各队队长;3.记录租借情况;本讲
43、稿第一百二十二页,共一百三十三页123271模式1.表captain(captainName,phone,street,city,state,zip)item(itemName,quantity,Date_out,Date_in)问题问题:captainName,itemName不唯一解决:增加字段,captain_ID,item_IDcaptain(captain_ID,captainName,phone,street,city,state,zip)item(item_ID,itemName,quantity,Date_out,Date_in)本讲稿第一百二十三页,共一百三十三页124271
44、模式2.表联系n含义上:captain一行对应item多行(1:N);item一行对应且只对应captain一行(1:1)n二者目前未关联上,无法说明谁借的足球,应在item表中加字段captain-ID:captain(captain_ID,captainName,phone,street,city,state,zip)被参照item(item_ID ,itemName,quantity,Date_out,Date_in,captain_ID)参照本讲稿第一百二十四页,共一百三十三页125271模式3.域(简化)n域是“列”可能拥有的值的集合。ncaptain_ID:字符(4)关键字ncap
45、tainName:字符(20)nitem_ID:字符(4)关键字nitemName:字符(25)nquantity:数字nDate_out,Date_in:日期本讲稿第一百二十五页,共一百三十三页126271模式4.商业规则n数据库模式的最后一个要素是商业规则,它是对需要反映在数据库和数据库应用中的事物活动的约束。如:1)要想借任何设备,队长必须有本地电话号码;2)任何队长不能一次租借7个以上英式足球3)本讲稿第一百二十六页,共一百三十三页127272创建表同第一章本讲稿第一百二十七页,共一百三十三页128273建表间联系n在使用ACCESS时,若库中模型有多个表,并想使用QBE作查询,则建立
46、表后,应马上建立表间关系。以使DBMS维护参照完整性。本讲稿第一百二十八页,共一百三十三页129273建表间联系1.进入ACCESS设定表关系(工具关系)如果初始时未显示“显示表”界面,则单击鼠标右键,选中显示表即可。本讲稿第一百二十九页,共一百三十三页130273建表间联系2.添加要联系的表3.将有联系的域名从“1”拖到“N”处,弹出编辑关系框本讲稿第一百三十页,共一百三十三页131273建表间联系4.选择实施参照完整性及相应特性,按创建钮后,二域间出现连线。本讲稿第一百三十一页,共一百三十三页132273建表间联系5.修改联系特性:双击连线,即弹出编辑关系框;6.删除联系:在连线上单击鼠标右键,选中删除即可。7.此例中建立二表中captain_ID联系,本讲稿第一百三十二页,共一百三十三页133274查询1.查询队长“王五”所借设备名称、日期;2.查询是否有1999年9月1日前借出而至今未还的设备,如果有,显示该队长的姓名、电话、租借设备的数量及名称。3.输入一个captain表中没有的captain-ID,看看DBMS如何维护参照完整性。4.更改或删除一个captain-ID,看看DBMS如何维护参照完整性。5.不建表间联系,做1、2查询,看看结果如何。本讲稿第一百三十三页,共一百三十三页