《数据库原理与设计方法东南大学自动控制系邵家玉》由会员分享,可在线阅读,更多相关《数据库原理与设计方法东南大学自动控制系邵家玉(327页珍藏版)》请在金锄头文库上搜索。
1、数据库原理与设计方法数据库原理与设计方法东南大学自动控制系东南大学自动控制系邵家玉邵家玉课件下载:课件下载:http:/ 1 1王王能能斌斌。数数据据库库系系统统。电电子子工工业业出版社。出版社。19951995年。年。 2 2王王能能斌斌编编。数数据据库库系系统统原原理理。电电子工业出版社。子工业出版社。20002000年。年。 3 3王珊王珊 陈红。数据库系统原理教程。陈红。数据库系统原理教程。 4 4 美美JDJD厄尔曼。数据库系统原理。厄尔曼。数据库系统原理。课程考核柑爹霄注型疼俞事做凭灼臃道篆馏奉走瞳沮捕昧竿肘畦韭队穿碾启惺振区数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原
2、理与设计方法东南大学自动控制系邵家玉下载第一章第一章第一章第一章IntroductionIntroduction1.11.11.11.1ConceptsConceptsConceptsConcepts 1.1.11.1.1 DataData、D DataataB Basease、D DataBase ataBase S Systemystem、D DataataB Base ase MManagement anagement S Systemystem 1. 1. 1. 1.DataDataDataData( ( ( (李明,男,李明,男,李明,男,李明,男,1972197219721972,
3、江苏,计算机系,江苏,计算机系,江苏,计算机系,江苏,计算机系,1990)1990)1990)1990)数据、信息、知识三者之间的关系:数据、信息、知识三者之间的关系:数据、信息、知识三者之间的关系:数据、信息、知识三者之间的关系:数数数数据据据据的的的的语语语语义义义义即即即即为为为为信信信信息息息息,信信信信息息息息在在在在计计计计算算算算机机机机中中中中的的的的存存存存储储储储(表表表表示示示示形形形形式式式式)即即即即为为为为数数数数据据据据。从从从从信信信信息息息息中中中中提提提提升升升升、推推推推理理理理、推导出的新的信息即为知识。推导出的新的信息即为知识。推导出的新的信息即为知识
4、。推导出的新的信息即为知识。例例例例如如如如:40404040(数数数数据据据据)40404040(信信信信息息息息)发发发发烧烧烧烧(知知知知识)识)识)识)霍沙钟琢岳修非簧蔚熄剔条辐盼匈架渭阀材享眷申候券饶算残杠锋埃淄平数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载 2.DatabaseDB 3.Database Management SystemDBMS 4.database systemDBS数据库管理员(database administrator,简称DBA)。辈吁复九例条摈山侥胰肇枪舱涌鹃序箍通走涨凹花峡裙翠粟僧渴溶堰激稗数据库原
5、理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载讹抒墩架撂儡枷络舟皋吵躬站铝液滁狠扎属吃喀栋玩但定蹄心汽日悟滁伪数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载 5.Data Model数据模型是用来描述数据的一组概念和定义。一般来说,数据的描述包括两个方面:(1)数据的静态特性它包括数据的基本结构、数据间的联系和数据中的约束。(2)数据的动态特性它指定义在数据上的操作。如文件系统。数据模型要面向现实世界,面向用户。渴具切厂胚孩抱敬妨冯颇吊产惊刀虑箕匣咎胚宗动丛找氛随消叁煌擒洱战数据库原理与设计方法东南大学
6、自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载数据模型要面向实现,面向计算机。 1)conceptual data model如ER模型、面向对象数据模型等。 2)logical data model如关系数据模型、层次模型、网状模型等。 3)physical data model概念数据模型只用于数据库的设计,逻辑数据模型和物理数据模型用于DBMS的实现。葛踏哗雁醒绪羹涎邦灾配壤侩尊音宁舔蘸氧躬厅曰垛辖栓壤裁蜗古氏殆养数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载 6.Data Schematype: 型是该数据所属数据
7、类型的说明。value: 值 是 型 的 一 个 实 例 (instance或occurrence)。对某一类数据的结构、联系和约束的描述是型的 描 述 , 型 的 描 述 称 为 数 据 模 式 ( Data Schema)。在同一数据模式下,可以有很多的值,即实例。例如,学生记录可以定义为图1-3(a)的形式,这是数据模式。而图1-3(b)是其一个实例。绊咐毖双祁抑侠夺邹逢罕樟此笔硅族叠毫盟罕啃胃牟缩更萌挺曙域官酶翼数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载些岭差酚立胯类痒苇腹鹤哀缴论罐谁声寥王雅销揍术脸苯蚜壁品材萝咀奸数据库原理与设计
8、方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载数据模型是描述数据的手段而数据模式是用给定数据模型对具体数据的描述。美 国 国 家 标 准 协 会 (ANSI)的 ANSI X3SPARC报告把数据模式分为三级(见图1-4)。几赐呵佛伙媒羌渴昂区辛矗坎久链贝傻狼销折叠泊蹈砷注嫂酌贮订厂岔括数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载 1)conceptual schema/logical schema 2)external schema 3)internal schema 7.Database Instance
9、数据模式是相对稳定的,而实例是相对变动的。数据模式反映一个单位的各种事物的结构、属性、联系和约束,实质上是用数据模型对一个单位的模拟。而实例反映数据库的某一时刻的状态,也就是这一单位在此时的状态。谢逝育圣见蓄货赢抛咳区腹荷横殷凭屈鲤枪誉局危黔烁幅磐笼抿财邓忘肥数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载 1.1.2数据库技术的产生与发展数据库技术的产生与发展 1.人工管理阶段 人工管理数据具有如下特点: 1)数据不保存。 2)数据需要由应用程序自己管理,没有相应的软件系统负责数据的管理工作。 3)数据不共享。 4)数据不具有独立性。人工管理阶
10、段应用程序与数据之间的对应关系可用图l-3表示。课咕氓坪伺病侗爽廷螟僵淤糜喜瞪号坷嫂幽彤抗韦瘴挑獭啼梅唇容邀耗倒数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载2.文件系统阶段用文件系统管理数据具有如下特点:1)数据可以长期保存。2)由专门的软件即文件系统进行数据管理。3)数据共享性差。4)数据独立性低。掂蕊咆姑豪屁拣数阳颅驮盈箍酶抨印笛愿殷江卫炉耍足逐的轧胖翁堑除淹数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载文件系统阶段应用程序与数据之间的关系如图1-4所示。 3.数据库系统阶段用数据库系统来
11、管理数据具有如下特点:抡侦杖代趴九寸麓芥烩氏抄掷们涵标狞爽膊性捅沿莎拢酌勇谁宣马掩浙饲数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载 1)数据结构化学生人事记录学号姓名性别系别年龄政治面貌家庭出身籍贯家庭成员奖惩情况图1-5蛔蝇擦弹真滞氏念宜荔灌衬跺使境龋蒙护毫州哄龙读稽肌拖混囤孟挚梭绣数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载爹椎柑蒲瞄纫弓疙拎樟芦外亨抨枯帜糟卸晶勿路把份柯化英仗孩讣忠蚤叼数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载蟹怯件
12、旅营拥吹嫩汲牡硒撂领哀掣蔗窗所别奔桃达痞渣狭镐忽丑檄逞峙狠数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载 2)数据的共享性好,冗余度低 3)数据独立性高 4)数据由DBMS统一管理和控制 l数据的安全性(security) l数据的完整性(integrity) l 并发(concurrency)控制 l数据库恢复(recovery)冻殆淖翘洞亩汹幽鹰荤贝啦稠吊鸵伎和誓整鲁舞痞礼脖逛洒逞鳃哮毅拎誊数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载 量大 持久 共享映卓昭柳签坠陕系忘剩云告忆洽崇唯冰洞渝
13、瑰烩舰牧忌缔痔扳拖址枚匀佯数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载 1.1.3数据库技术的研究领域数据库技术的研究领域 1.数据库管理系统软件的研制 2.数据库设计 3.数据库理论1.2数据库工程与应用数据库工程与应用 1.2.1数据库设计的目标与特点数据库设计的目标与特点槛广纷舰网痛泊秆腊邮暇擦膏馆埂序椅速促拐践桐盅黎丙需排病殷醚结箱数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载图1-10打截内漓站瘩躯库禾然伐纪菱投翠杠丁蜘奉喝啤讯捍栗秒后诚脓膨俄冶舜数据库原理与设计方法东南大学自动控制
14、系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载1.2.2数据库设计方法数据库设计方法新奥尔良方法:需求分析(分析用户要求)、概念设计(信息分析和定义)、逻辑设计(设计实现)和物理设计(物理数据库设计)。SBYao:需求分析、模式构成、模式汇总、模式重构、模式分析和物理数据库设计。IRPalmer则主张把数据库设计当成一步接一步的过程,并采用一些辅助手段实现每一过程。此外,基于ER模型的数据库设计方法,基于3NF(第三范式)的设计方法,基于抽象语法规范的设计方法等。诚俗谆氖赋滩俯傅火途吕七迈啪仕婆价店娘圆豁鼠狭宜戍泞聊丸眨穿纬翔数据库原理与设计方法东南大学自动控制系邵家玉下载数据库
15、原理与设计方法东南大学自动控制系邵家玉下载规范设计法在具体使用中又可以分为两类:手工设计和计算机辅助数据库设计。ORACLEDesigner20001.2.3数据库设计步骤数据库设计步骤1.需求分析2.概念结构设计3.逻辑结构设计图1-114.数据库物理设计5.数据库实施6.数据库运行和维护煽屹稚趟赵鞭枢迎勃抒杂著用盐填俩滨固赂枚恭丑鲸彻迭鞭脓血均特堑瞳数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载在数据库设计过程中必须注意以下问题。1.数据库设计过程中要注意充分调动用户的积极性。2.应用环境的改变、新技术的出现等都会导致应用需求的变化,因此设
16、计人员在设计数据库时必须充分考虑到系统的可扩充性,使设计易于变动。3.系统的可扩充性最终都是有一定限度的。1.2.4Database Application纤南及禁乌琳吞晶庙钝禽德缮膘妊啦掷划卯执屏购畦泅卉邢州疮集音从礁数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载各种用户的数据视图贩瞧兜锹饮哺莉象熏凝迢箍府芽花长坐尘反艇彼绳球退军病懊呕昂盯亢碴数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载DBA主要职责包括:1.设计与定义数据库系统2.帮助最终用户使用数据库系统3.监督与控制数据库系统的使用和
17、运行4.改进和重组数据库系统,调优数据库系统的性能5.转储与恢复数据库6.重构数据库英喝贤誊舅崭憾吐磕志皑佰岭荐卞书框粗壤属荷芍粱半彭娶兼戊败筑冯禽数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载 第二章第二章Data Model数据模型应满足三方面要求:一是能比较真实地模拟现实世界;二是容易为人所理解;三是便于在计算机上实现。两类:概念模型也称信息模型,数据模型包括网状模型、层次模型、关系模型。2.1数据模型的要素数据模型的要素 2.1.1数据结构数据结构 2.1.2数据操作数据操作 2.1.3数据的约束条件数据的约束条件伟移疮围抬必潦钒涎镜崔
18、罗淳泣具涛妖瞎邻伺舱挤税局领高滥努檀浑顷胎数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载2.2概念模型概念模型E-RDataModel菊翁渗捅妖对镜柱帧旁楼蔡拎贫剪匣夜迎吏孕长焉庚蜗郝沿汞蔷慕胞拘淫数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载2.2.1ConceptsE-R数据模型(Entity-Relationship Data Model)EER数据模型(Extended Entity-Relationship Data Model)1实体(entity)、实体集(entity set)e
19、ntity set与entity是型(type)与值(value)的关系 ( 类 似 于 前 述 data schema与 database instance)2属性(attribute)值集(value set) 实体键(entity key)实体主键(entity primary key)肤拴巾脓长蒙港禾驭蛀贝扁收瑟欲抵遏咕秽妒虚拇睡大苍簿碰育选篱肥番数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载3联系(relationship)基数比约束(基数比约束(cardinalityratioconstraint)参参与与约约束束(particip
20、ationconstraint):部部分分参参与与、全参与全参与结构约束(结构约束(structuralconstraint)两个实体之间的联系可以分为三类:l一对一联系(1:1)l一对多联系(1:m)l多对多联系(m:n)所有(所有(ownershipownership)关系)关系弱实体(弱实体(weak entityweak entity)遇嚎盔贩杂祷田把络笨灶惫赘禄号好婆奸娱墨卷馈乌虎遵忌框抚印将迈孜数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载2.2.2E-R diagram用E-R数据模型对某一单位进行模拟,可以得到ER数据模式,ER
21、数据模式可以ER图来直观地表示。entity:weak entity:relationship:attribute:示例: 魂叹殴柔锅知溃媚咨悸稠帚贩吁僚赏氧厅渣娩慧吠垣署您耽芹撂小导惧柜数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载教职工研究生班级职工编号姓名出生年月职称是否博导是否硕导学号姓名出生年月学位类型是否在职课程课程号名称开课学期学时上课地点学分班级号信箱煌貉佳垄肿菜上熄扦课很哟鹿饿殉菊靠肥循琵毛薄劈丫弗炭借容铅播局蛾数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载教职工班级研究生课程
22、班主任C_G导师任课可担任选课MN1NNNMMNMMN止起时间止起时间类型性质成绩类型类型专业方向说明:寡尘剂故闷爱囚饰琉穗茫港淘译诚肾展悉匝膀泄样翁扁恐刃幽怀凰情檬尽数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载1学位类型:硕士/博士2导师类型:主要指导老师、协助指导3研究生可能换导师,换专业、方向4选课性质:学位课/非学位课5任课类型:主讲/辅讲6可担任描述有哪些老师可以上哪些课7任课是指目前该课程的任课老师8开课学期:春/秋季9上课地点:目前该课程的上课教室惟妨窜泅杨状坊腋茂垦蝇敝肿褪辗磕灶哆恒氰奏圣咖啊抢嚎别摧曹坑赢字数据库原理与设计方
23、法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载问题:1课性质属性为什么不属于课程实体,而属于选课联系?2专业、方向可不可以属于研究生?2.2.3EER data model1 特 殊 化 ( specialization) 和 普 遍 化(generalization)全 特 殊 化 ( total specialization) /部 分 特 殊 化(partial specialization)不相交特殊化(disjoint specialization)/重叠特殊化(overlapping specialization)沦济闯诅栖虐漫遏奇邑芝鸡桃容溅羽挺请
24、诬悠酵稳贱乏挛织慌汕还守橇卵数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载2聚集(aggregation)3范畴(category)吴僚磕爹阉瓜祸午皆凤冲屏敛南旨玄案授撵施舰硷淡茨啮氦盾溃氮执逸终数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载2.3HierarchyDataModel 2.3.1层次数据模型的数据结构层次数据模型的数据结构 1层次模型的基本结构图TS数据模式殆乳寥熟仁吗篓庆蛔界详汽箔骋捧散禁稳驴绣级暴渠苫决肌育祭哭探辑恒数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与
25、设计方法东南大学自动控制系邵家玉下载图TS数据模式的一个值煞盲巩挂萤猫铃芳伯抓标涯演氯烟广茬孵扫德随掸盗乔赃点述篷垃肛薯松数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载2多对多联系在层次模型中的表示2.3.2层次数据模型的操纵与完整性约束层次数据模型的操纵与完整性约束2.3.3层次数据模型的存储结构层次数据模型的存储结构2.3.4层次数据模型的优缺点层次数据模型的优缺点层次数据模型的优点主要有:l层次数据模型本身比较简单,只需很少几条命令就能操纵数据库,比较容易使用。l对于实体间联系是固定的,且预先定义好的应用系统,采用层次模型来实现,其性能优
26、于关系模型,不次于网状模型。l层次数据模型提供了良好的完整性支持。谊班偶升败炯设刮拨陌家碑咐靡以梭变嘎槛于鞍挞欧皋渝炮谎戳汪鲁鞋刺数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载层次数据模型的缺点主要有:l现实世界中很多联系是非层次性的,如多对多联系、一个结点具有多个双亲等,层次模型表示这类联系的方法很笨拙,只能通过引入冗余数据(易产生不一致性)或创建非自然的数据组织(引入虚拟结点)来解决。l对插入和删除操作的限制比较多。l查询子女结点必须通过双亲结点。l由于结构严密,层次命令趋于程序化。2.4网状数据模型网状数据模型 2.4.1网状数据模型的数
27、据结构网状数据模型的数据结构障滚朋董扶诞校驱达僧皑且闰壬箩婿卜播准储魄聊军匿煌滁名硫凿坚哄氏数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载2.4.2网状数据模型的操纵与完整性约束网状数据模型的操纵与完整性约束2.4.3网状数据模型的存储结构网状数据模型的存储结构2.4.4网状数据模型的优缺点网状数据模型的优缺点捶匙衷阻哇琴纱盾锦谍蕊俩铣岛叭物往涵御捂没柜筐光七铰轻踊玄乡楞暇数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载网状数据模型的优点主要有:l能够更为直接地描述现实世界,如一个结点可以有多个双
28、亲、允许结点之间为多对多的联系等。l具有良好的性能,存取效率较高。网状数据模型的缺点主要有:l其DDL语言极其复杂。l数据独立性较差。由于实体问的联系本质上是通过存取路径指示的,因此应用程序在访问数据时要指定存取路径。溢意闸纹登每侵铁稚塘称亥猖减丁奸螟踪忠卧赠赴氛朔伙宵八固妙生恬弓数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载2.5RelationDataModel 2.5.1Concepts 1.Attribute and DomainDomain: 第一范式1NF(first nomal form) atomic data非第一范式(Non
29、-First Nomal Form)NF2空值:NULL 2.relation and tuple设有一命名为R的关系,它有属性A1、A2、An,其对应的城分别为Dl、D2、Dn则关系R可表示为:冲堰迁质拾廉珐蚁姬瓤沽韦搜弹禹薛抬程挞蚀依拣癌磺之绍棍枣蛛支疹岂数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载R(D1/Al,D2/A2,Dn/An)或 R(A1,A2,An)或 R(A1A2An)R.A1表示关系R的属性A1。degree(arity):nR的值:r r(R)r=t1,t2,tmt=, viDi,1in笛卡尔乘积济连捌霞狼卖兵摆规锋兜
30、嘘独镊弊亥问妮莎勒玖割垄耍温殉阮霜呸诌玉癸数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载 A B ABDEFGDEFG125612563478127890=1290345634783490等促滥吱捷绢剥蒋晌垛艇砾稳楚告市疵摔营绕跨引埋痴检鼻陶厂装妖稽迂数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载关系模式:SUDENT(姓名,学号,性别,出生年份籍贯,系别,入学年份)投影:RX tX STUDENT姓名,性别3.key定定义义:如果关系的某一属性或属性组的值唯一地决定其他所有属性的值,也就是唯一
31、地决定一个元组,而其任何真子集无此性质,则这个属性或属性组称为该关系的候选键(candidate key),或简称为键。superkey primary primary keykey alternate key all key (SUPPLY(供应商,零件名,工程名)醉蛙技河溢件甘悯接势谈性慧变很慈雍柏堤氦畔批憨艺所舒煌渝膊踞褂憾数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载prime attribute non-prime attributeforeign keyCOURSE(课程名,课程号,学分,开课时间,先修课程号)GRADE(学号,课程
32、号,成绩)2.5.2ConstraintR(D1/Al,D2/A2,Dn/An)1.Domain integrity constraint2.Entity integrity constraint3.Referential integrity constraint4.General integrity constraint审带刘悟卉业恬徊蜗笨酌雌炕批凑稀妇寄著搓蛾吝揉按颖甄您垢武漂绢五数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载2.5.3Operationrelational algebra operations1.Select operat
33、ion()佯啄坯割靖洞仗香嚎缠嗓煤钵裙葵懒颁需售庶肢抗悉技诊鹰勿踌惧酵机燎数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载2.Project operation()性别,籍贯、出生年份(STUDENT)若包含则:(R)=(R)杨返桑陛狮盅史茫卫接猜前散历怀刷庶利血甚戏酷幼但菇帖弱轿工擒醛舅数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载姓名(性别=女(STUDENT)3.Set operationABA-(A-B)union compatibility课程号(COURSE)-先修课程号(COURSE
34、)系别=计算机系(STUDENT)系别=电子系(STUDENT)RS=|tR AND gS4Join operationR S=(RS)连接条件:ANDANDAND 连接:AiBj历亦醒忿松惋瞩互壹烃娩胯渗天蘑汇御圾掏诲揣怀缎帕斡尉棵轴譬濒夏颠数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载等连接(equijoin) 自然连接(natural join)例:GRADE GRADE.课程号=COURSE.课程号(课程名,课程号,学分(COURSE)关系代数操作集,-,是完备的操作集。,-, relationally complete5.Outer
35、join operation6.Outer union operation丹闸攘狡褒尤脸犬滥颤狐窖重扣疗斟折箔蒲颓该计谜孤敏萌桨腊躺保帚众数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载2.5.4Relational Calculus1.Tuple Relational Calculus2.Domain Relational Calculus帛妙低囚绍昔树鼻舰翟孕胯隔垃裸料棱纠采涪毁镶酪年寇所魄淘五雀蔡励数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载 第三章第三章Database Language
36、 SQL结结构构化化查查询询语语言言(structured (structured query query languagelanguage,简简称称SQL) SQL) 3.1IntroductionSQLSQL语言是语言是19741974年由年由BoyceBoyce和和ChamberlinChamberlin提出的。提出的。19751975年至年至19791979年年IBM System RIBM System R实现了这种语言。实现了这种语言。19861986年年1010月月 美国国家标准局美国国家标准局( (简称简称ANSI) SQL-86ANSI) SQL-8619871987年年国国
37、际际标标准准化化组组织织(简简称称ISOISO)也也通通过过了了这这一一标准。标准。ANSI 1989ANSI 1989年第二次公布年第二次公布SQLSQL标准标准(SQL-89)(SQL-89)19921992年年 SQL-92 SQL-92标准标准距升强育息破破蔽蝎筋究秒陀肪琅摸票滔靳既尊以吮码气貉袄摔佛攻抵瞧数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载目前目前ANSIANSI正在酝酿新的正在酝酿新的SQLSQL标准:标准:SQL3SQL3。现现在在SQLSQL已已被被重重新新解解释释成成为为:Standard Standard Quer
38、y Query LanguageLanguageSQLSQL按其功能可分为四大部分:按其功能可分为四大部分:1.1.数数据据定定义义语语言言(Data (Data Definition Definition LanguageLanguage,简简称称DDL)DDL)2.2.查询语言查询语言(Query Language(Query Language,简称,简称QL) QL) 3.3.数数据据操操纵纵语语言言(Data (Data Manipulation Manipulation LanguageLanguage,简称简称DML)DML)4.4.数数据据控控制制语语言言(Data (Data
39、Control Control LanguageLanguage,简简称称DCL)DCL)脑心擞恶哮烟馒凑财屯迭椎眠嘉斯磺纪杯京常吓台亩歉歪揍血河曝婴惯队数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载3.1.1SQL的特点的特点1.1.综合统一综合统一2.2.高度非过程化高度非过程化3.3.面向集合的操作方式面向集合的操作方式4.4.以同一种语法结构提供两种使用方式以同一种语法结构提供两种使用方式5.5.语言简洁,易学易用语言简洁,易学易用表表3-1 SQL3-1 SQL语言的动词语言的动词扇谍狱庚间绥忽秃偿汀徽堑赶崎阀蝎贡哩迟捐摸莲佬贿役直园
40、酣养吻郎隙数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载3.1.2SQL语言的基本概念语言的基本概念宰抹罗肺她募低秀个灾篡阀月汞样睛赋奉壮烦镣鸣甥章揣感牡醇渴丢溃淑数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载3.2数据定义数据定义表表3-2 SQL3-2 SQL的数据定义语句的数据定义语句 3.2.1定义、删除与修改基表定义、删除与修改基表 1. 1.定义基表定义基表伤躇积獭啼递倒历吏辫宛掐馋猎豹锨绣汲印超境须惩惮俺艘尊瓣冤颐虐众数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计
41、方法东南大学自动控制系邵家玉下载CREATE CREATE TABLE TABLE 表表名名 ( (列列名名数数据据类类型型 列列级级完完整整件件约约束束条条件件,列列名名数数据据类类型型 列级完整性约束条件列级完整性约束条件 表级完整性约束条件表级完整性约束条件 ););列级完整性约束条件格式:列级完整性约束条件格式:NOT NOT NULL NULL UNIQUE UNIQUE DEFAULT DEFAULT 字字 值值|USER|NULL|USER|NULL表表级级完完整整性性约约束束条条件件有有三三个个任任选选项项。用用于于定定义义主主键键 的的 PRIMARY PRIMARY KEY
42、KEY子子 句句 , 用用 于于 定定 义义 外外 键键 的的FOREIGN FOREIGN KEYKEY子子句句和和用用于于定定义义列列值值限限制制条条件件的的CHECKCHECK子句。格式:子句。格式:斟讶侄财绪涝辫再慰酿拦厉桃浑典遣共蚜慑峨导通锰铜豆榷色膏荐躺蘸憨数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载 ,PRIMARY KEY PRIMARY KEY ( ) , FOREIGN FOREIGN KEY KEY 外外 键键 名名 ( ) REFERENCES REFERENCES ON ON DELETE DELETE RESTRI
43、CT RESTRICT |CASCADE|SET NULL|CASCADE|SET NULL ,CHECK CHECK (条件)(条件) IBM DB2 SQLIBM DB2 SQL主要支持以下数据类型:主要支持以下数据类型:SMALLINT SMALLINT 半字长二进制整数。半字长二进制整数。INTEGERINTEGER或或INT INT 全字长二进制整数。全字长二进制整数。DECIMAL(p,q)DECIMAL(p,q)或或DEC(p,q) DEC(p,q) 压压缩缩十十进进制制数数,共共p p位位,其其中中小小数数点点后后有有q q位位。0qp15,q0qp15,q0 0时时可可以以省
44、略。省略。FLOAT FLOAT 双字长浮点数。双字长浮点数。CHARTER(n)CHARTER(n)或或CHAR(n) CHAR(n) 长度为长度为n n的定长字符串。的定长字符串。VARCHAR(n) VARCHAR(n) 最大长度为最大长度为n n的变长字符串。的变长字符串。降捡灾证跺太爬粮席润绰片装辨版荫陛秃刁纲甲馋咯谍盟砷誓坐什益诺扒数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载GRAPHIC(n) GRAPHIC(n) 长度为长度为n n的定长图形字符串。的定长图形字符串。VARGRAPHIC(n) VARGRAPHIC(n) 最大
45、长度为最大长度为n n的变长图形字符串。的变长图形字符串。DATE DATE 日期型,格式为日期型,格式为YYYYMMDDYYYYMMDD。TIME TIME 时间型,格式为时间型,格式为HH.MM.SSHH.MM.SS。TIMESTAMP TIMESTAMP 日期加时间。日期加时间。例例1 1 建建立立Student(Student(学学生生) )、CourseCourse(课课程程)、SCSC(选课)表。(选课)表。1 1“ “学学生生” ”表表studentstudent由由学学号号(Sno)(Sno)、姓姓名名(Sname)(Sname)、性性别别(Ssex)(Ssex)、年年龄龄Sa
46、geSage、所所在在系系(Sdept)5(Sdept)5个个属性组成,可记为属性组成,可记为Student(SnoStudent(Sno,SnameSname,SsexSsex,SageSage,Sdept)Sdept)其中其中snosno为主键。为主键。因初券傣闸埔惠王哎褐畅皋疏塞拔勃七惨案坷芥衍兴刷蔓绦炙艰嗜癸女铀数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载2 2 “ “课课程程” ”表表coursecourse由由课课程程号号(Cno)(Cno)、课课程程名名(Cname)(Cname)、先先修修课课号号(Cpno)(Cpno)、学学
47、分分(Ccredit)4(Ccredit)4个个属属性组成,可记为:性组成,可记为:Course(CnoCourse(Cno,CnameCname,CpnoCpno,Ccredit)Ccredit)其中其中CnoCno为主键。为主键。3 3“ “学学生生选选课课” ”表表SCSC由由学学号号(Sno)(Sno)、课课程程号号(Cno)(Cno)、成成绩绩(Grade)3(Grade)3个个属属性性组组成成,其其中中(Sno(Sno,Cno)Cno)为为主主键。键。CREATE TABLE StudentCREATE TABLE Student (Sno CHAR(5) NOT NULL UNI
48、QUE, (Sno CHAR(5) NOT NULL UNIQUE, Sname VARCHAR(20) NOT NULL, Sname VARCHAR(20) NOT NULL, Ssex CHAR(1) Ssex CHAR(1), Sage INT, Sage INT, Sdept CHAR(15), Sdept CHAR(15),PRIMARY KEY(Sno)PRIMARY KEY(Sno);滞舟谴娱树嘎鹤页藏磨握但郊易坝洗雅世莽粮产靴果抹皮嚣绅饲今唤骄苇数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载CREATE TABLE Cours
49、eCREATE TABLE Course (Cno CHAR(1) NOT NULL, (Cno CHAR(1) NOT NULL,Cname VARCHAR(20),Cname VARCHAR(20),Cpno CHAR(1)Cpno CHAR(1)Ccredit DEC(2,1),Ccredit DEC(2,1),PRIMARY KEY(Cno),PRIMARY KEY(Cno),FOREIGN FOREIGN KEY KEY (Cpno) (Cpno) REFERENCES REFERENCES Course Course ON DELETE RESTRICT)ON DELETE RES
50、TRICT);础尿匝烃逗猪泰遗想包务恰烁棕檄早枫远淋鼎疥厦殷烁尊挠缄竞列掇末筏数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载CREATE TABLE SCCREATE TABLE SC (Sno CHAR(5) NOT NULL, (Sno CHAR(5) NOT NULL, Cno CHAR(1) NOT NULL, Cno CHAR(1) NOT NULL, Grade DEC(4,1) DEFAULT NULL, Grade DEC(4,1) DEFAULT NULL,PRIMARY KEY(Sno,Cno),PRIMARY KEY(Sn
51、o,Cno),FOREIGN FOREIGN KEY KEY (Sno) (Sno) REFERENCES REFERENCES Student Student ON DELETE CASCADE,ON DELETE CASCADE,FOREIGN FOREIGN KEY KEY (Cno) (Cno) REFERENCES REFERENCES Course Course ON DELETE RESTRICT);ON DELETE RESTRICT);镜散遁债腮牲驳殿歧甚饶燎睫嚣卵欧晴稗灌忱帜悦蹬返苛宠良傈系恃隐双数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自
52、动控制系邵家玉下载 2. 2.修改基表修改基表 ALTER TABLE ALTER TABLE表名表名 ADD ADD新列名数据类型新列名数据类型 完整性约束完整性约束 DROP DROP完整性约束名完整性约束名 MODIFY MODIFY列名数据类型列名数据类型 ;例例2 2 向向studentstudent表表增增加加“ “入入学学时时间间” ”列列,其其数数据据类类型型为日期型。为日期型。 ALTER TABLE Student ADD Scome DATE ALTER TABLE Student ADD Scome DATE;例例3 3 将年龄的数据类型改为半字长整数。将年龄的数据类型
53、改为半字长整数。ALTER ALTER TABLE TABLE Student Student MODIFY MODIFY Sage Sage SMALLINT;SMALLINT;例例4 4 删除(撤消)删除(撤消)StudentStudent表主键定义。表主键定义。ALTER TABLE Student DROP PRIMARY KEYALTER TABLE Student DROP PRIMARY KEY;壳靠肝囚式斩篓胡伦片狸辖饯樱爸名天皱绑磅未串境拟咒不猎粟醛庄仍萤数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载3.3.删除基表删除基表D
54、ROP TABLE DROP TABLE 表名;表名;例例5 5删除删除StudentStudent表。表。DROP TABLE StudentDROP TABLE Student; 3.2.2建立与删除索引建立与删除索引 1. 1.建立索引建立索引CREATE CREATE UNIQUE UNIQUE CLUSTER CLUSTER INDEX INDEX ON ON ( 次次序序 , 次次序序 ) );排排列列次次序序,包包括括ASC(ASC(升升序序) )和和DESC(DESC(降降序序) )两两种种,缺省值为缺省值为ASCASC。CREATE CREATE CLUSTER CLUSTE
55、R INDEX INDEX Stusname Stusname ON ON Student(Sname);Student(Sname);悬呸从肿七敬溯窄谋郴某暖绰傣羽淮舰寄黍乔挝涕废整凋扇觅芹聊喷沥蹄数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载例例6 6 为为学学生生课课程程数数据据库库中中的的StudentStudent,CourseCourse,SC SC 3 3个个表表建建立立索索引引。其其中中StudentStudent表表按按学学号号升升序序建建立立唯唯一一索索引引,coursecourse表表按按课课程程号号升升序序建建立立唯唯一
56、一索索引,引,SCSC表按学号升序和课程号降序建唯一索引。表按学号升序和课程号降序建唯一索引。CREATE CREATE UNIQUE UNIQUE INDEX INDEX Stusno Stusno ON ON Student(Sno);Student(Sno);CREATE CREATE UNIQUE UNIQUE INDEX INDEX Coucno Coucno ON ON Course(Cno);Course(Cno);CREATE CREATE UNIQUE UNIQUE INDEX INDEX SCno SCno ON ON SC(Sno SC(Sno ASCASC,Cno DE
57、SC);Cno DESC); 2. 2.删除索引删除索引DROP INDEXDROP INDEX索引名;索引名;例例7 7 删除删除StudentStudent表的表的StusnameStusname索引。索引。DROP INDEX Stusname;DROP INDEX Stusname;警舆颊罗沁模描舟喇微阁湾零占斤揍息坤裙勺魁秧吃掂厉交横南蜡观炔借数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载3.3查询查询SELECT SELECT ALL| ALL| DISTINCT DISTINCT 目目标标列列表表达达式式 ,目标列表达式目标列表达
58、式 FROM FROM 表名或视图名表名或视图名 ,表名或视图名,表名或视图名 WHEREWHERE条件表达式条件表达式 GROUP BYGROUP BY列名列名1 1HAVINGHAVING条件表达式条件表达式 ORDER BYORDER BY列名列名2 2ASC | DESCASC | DESC;穗雇绝鞍牟鹊摈审坪忧免漏啮忍埃执失椿歼嘉员烯不孪穆绷槛糊蒋质荚低数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载3.3.1单表查询单表查询1.1.选择表中的若干列选择表中的若干列1)1)查询指定列查询指定列例例1 1 查询全体学生的学号与姓名。查询全
59、体学生的学号与姓名。SELECT SnoSELECT Sno,SnameSnameFROM Student;FROM Student;例例2 2 查询全体学生的姓名、学号、所在系。查询全体学生的姓名、学号、所在系。SELECT SnameSELECT Sname,SnoSno,SdeptSdeptFROM StudentFROM Student;2)2)查询全部列查询全部列例例3 3 查询全体学生的详细记录查询全体学生的详细记录SELECT *SELECT *FROM StudentFROM Student;盖汽下契制目悦倍颅诌棕枣挟寨舔访苯肄涛水席况励昌存装峭呢念哆廊珐数据库原理与设计方法东
60、南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载3)3)查询经过计算的值查询经过计算的值例例4 4 查询全体学生的姓名及其出生年份。查询全体学生的姓名及其出生年份。SELECT SnameSELECT Sname,2004-Sage2004-SageFROM StudentFROM Student;例例5 5 查查询询全全体体学学生生的的姓姓名名、出出生生年年份份和和所所在在系系,要求用小写字母表示所在系名要求用小写字母表示所在系名SELECT SELECT SnameSname,Year Year of of BirthBirth: ,2004-Sage2004-S
61、age,ISLOWER(Sdept)ISLOWER(Sdept)FROM Student;FROM Student; SELECT SELECT Sname Sname NAMENAME,Year Year of of BirthBirth: BIRTHBIRTH,2004-Sagc 2004-Sagc BIRTHDAYBIRTHDAY, ISLOWER(Sdept) DEPARTMENTISLOWER(Sdept) DEPARTMENTFROM StudentFROM Student;腑慧媚狞另宇哈剪雏秉誉险匣掉饯兔旨嘶墒面耿丸青窖暮撬康傅惧汛冠善数据库原理与设计方法东南大学自动控制系邵家玉
62、下载数据库原理与设计方法东南大学自动控制系邵家玉下载结果为:结果为:NAME BIRTH BIRTHDAY DEPARTMENTNAME BIRTH BIRTHDAY DEPARTMENT 李勇李勇 Year of Birth Year of Birth: 1976 cs 1976 cs 刘晨刘晨 Year of Birth Year of Birth: 1977 if 1977 if 王名王名 Year of Birth Year of Birth: 1978 ma 1978 ma 张立张立 Year of Birth Year of Birth: 1978 if 1978 if 2. 2.
63、选择表中的若干元组选择表中的若干元组 1) 1)消除取值重复的行消除取值重复的行例例6 6 查询所有选修过课的学生的学号。查询所有选修过课的学生的学号。SELECT SnoSELECT SnoFROM SCFROM SC;承淫护馆录万孩脂哲咖潞租惩挣然嫩玖狮衅竿谤专美掷毋毁怪猪沫翌戳背数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载假设假设SCSC表中有下列数据:表中有下列数据:Sno Cno GradeSno Cno Grade95001 1 9295001 1 9295001 2 8595001 2 8595001 3 8895001 3 8
64、895002 2 9095002 2 9095002 3 8095002 3 80执行上面的执行上面的SELECTSELECT语句后,结果为:语句后,结果为:SnoSno95001950019500195001950019500195002950029500295002汐闽紧加栗残祸硅馁钓蚌快狂漆排苦躁荒靴最挎房氖内营夹脯敷提盼桔祝数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载SELECT DISTINCT SnoSELECT DISTINCT SnoFROM SCFROM SC;执行结果为:执行结果为:SnoSno95001950019500
65、295002 SELECT SnoSELECT SnoFROM SCFROM SC;与与SELECT ALL SnoSELECT ALL SnoFROM SCFROM SC;完全等价。完全等价。排切闰运群墓抬基晋惺豺码乔十判砰伟檄选住否御萨遁孔的性辙造猿搁斋数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载2)2)查询满足条件的元组查询满足条件的元组表表3-5 3-5 常用的查询条件常用的查询条件比较大小比较大小 等于等于 大于大于 小于小于替脑喊忱蛛捍忠哆耿矽颈执府袱畴锨贞阁磊径庙溃绘似筛殖褒卧霞江枝拱数据库原理与设计方法东南大学自动控制系邵家玉
66、下载数据库原理与设计方法东南大学自动控制系邵家玉下载 大于等于大于等于 小于等于小于等于!或!或 不等于不等于有些产品中还包括:有些产品中还包括:! 不大于不大于! 不小于不小于逻逻辑辑运运算算符符NOTNOT可可与与比比较较运运算算符符同同用用,对对条条件件求求非。非。例例7 7 查计算机系全体学生的名单。查计算机系全体学生的名单。SELECT SnameSELECT SnameFROM StudentFROM StudentWHERE SdeptWHERE SdeptCSCS;醉徊技管梢掠硒瘴马鲤奄窥编抄环喝枪叭孪忱翱畔牡像抉水逝计驴钝帆狡数据库原理与设计方法东南大学自动控制系邵家玉下载数
67、据库原理与设计方法东南大学自动控制系邵家玉下载例例8 8 查所有年龄在查所有年龄在2020岁以下的学生姓名及其年龄。岁以下的学生姓名及其年龄。SELECT SnameSELECT Sname,SageSageFROM studentFROM studentWHERE SageWHERE Sage2020;或或SELECT SnameSELECT Sname,SageSageFROM studentFROM studentWHERE NOT Sage=20WHERE NOT Sage=20;例例9 9 查考试成绩有不及格的学生的学号。查考试成绩有不及格的学生的学号。SELECT DISTINCT
68、 SnoSELECT DISTINCT SnoFROM SCFROM SCWHERE GradeWHERE Grade6060;氦窒匝胞抬蜒掺另臃紊骗尾折窄教掉之雇杭震唁镭澎阶永旺谨熏洪苹启雀数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载确定范围确定范围谓谓 词词 BETWEENBETWEEN ANDAND 和和 NOT NOT BETWEENBETWEENANDAND可可以以用用来来查查找找属属性性值值在在( (或或不不在在) )指指定定范范围围内内的的元元组组,其其中中BETWEENBETWEEN后后是是范范围围的的下下限限( (即即低低值
69、值) ),ANDAND后后是是范范围围的的上上限限( (即高值即高值) )。例例10 10 查查询询年年龄龄在在2020至至2323岁岁之之间间的的学学生生的的姓姓名名、系系别和年龄。别和年龄。SELECT SnameSELECT Sname,SdeptSdept,SageSageFROM StudentFROM StudentWHERE Sage BETWEEN 20 AND 23WHERE Sage BETWEEN 20 AND 23;与与BETWEENBETWEENANDAND相相对对的的谓谓词词是是NOT BETWEENNOT BETWEENANDAND。扎碰墅瀑击丘瘫森幻埂筒钮极肝瓦
70、基嘲守荷赠萎噬浸廓慈妆授腻老扔唯臆数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载例例11 11 查查询询年年龄龄不不在在2020至至2323岁岁之之间间的的学学生生姓姓名名、系系别和年龄。别和年龄。SELECT SnameSELECT Sname,SdeptSdept,SageSageFROM StudentFROM StudentWHERE Sage NOT BETWEEN 20 AND 23WHERE Sage NOT BETWEEN 20 AND 23;确定集合确定集合谓词谓词ININ可以用来查找属性值属于指定集合的元组。可以用来查找属性
71、值属于指定集合的元组。例例12 12 查查信信息息系系(IS)(IS)、数数学学系系(MA)(MA)和和计计算算机机科科学学系系(CS)(CS)的学生的姓名和性别。的学生的姓名和性别。SELECT SnameSELECT SnameSsexSsexFROM StudentFROM StudentWHERE Sdept IN(WHERE Sdept IN(ISIS,MAMA,CSCS) );与与ININ相相对对的的谓谓词词是是NOT NOT ININ,用用于于查查找找属属性性值值不不属属于指定集合的元组。于指定集合的元组。赊驮摩玉良关奴叹酞窘霜晃渗疯雅丰海厢候千怒兔盔附霞艳讨钟竟灾蝇抱数据库原理
72、与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载例例13 13 查查既既不不是是信信息息系系、数数学学系系,也也不不是是计计算算机机科科学系的学生的姓名和性别。学系的学生的姓名和性别。SELECT SnameSELECT SnameSsexSsexFROM StudentFROM StudentWHERE Sdept NOT IN(WHERE Sdept NOT IN(ISIS,MAMA,CSCS) );字符匹配字符匹配谓谓词词LIKELIKE可可以以用用来来进进行行字字符符串串的的匹匹配配。其其一一般般语语法格式如下:法格式如下:NOT LIKE NOT
73、 LIKE 匹配串匹配串 其其含含义义是是查查找找指指定定的的属属性性列列值值与与匹匹配配串串相相匹匹配配的的元元组组,匹匹配配串串可可以以是是一一个个完完整整的的字字符符串串,也可以含有通配符和也可以含有通配符和_ _。其中:。其中:( (百分号百分号) ) 代表任意长度代表任意长度( (长度可以为长度可以为0)0)的字符串。的字符串。丛枷激诧募斡诀淬腕籽乓帚彻件症啡脆猴茹租埂瞪星匪冻选滴呢芹捆抬蚁数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载例例如如a%ba%b表表示示以以a a开开头头,以以b b结结尾尾的的任任意意长长度度的的字字符串,
74、符串,acb,adefb,abacb,adefb,ab等都满足该匹配串。等都满足该匹配串。_(_(下下划划线线) ) 代代表表任任意意单单个个宁宁符符。例例如如a_ba_b表表示示以以a a开开头头, ,以以b b结结尾尾,长长度度为为3 3的的字字符符串串,acb,adbacb,adb等等都都满满足该匹配串。足该匹配串。例例14 14 查询学号为查询学号为9500195001的学生的详细情况的学生的详细情况SELECT *SELECT *FROM StudentFROM StudentWHERE Sno LIKE WHERE Sno LIKE 9500l9500l; ;该语句实际上与下面的语
75、句完全等价:该语句实际上与下面的语句完全等价:SELECT *SELECT *FROM StudentFROM StudentWHERE Sno=WHERE Sno=9500l9500l; ;戳拎屎常臃加恳舆瞅谚凡慧哆哈圾隘递教淄萧错歹洱乏惕竹躬荐察宁蔼望数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载例例15 15 查所有姓刘的学生的姓名、学号和性别。查所有姓刘的学生的姓名、学号和性别。SELECT Sname,Sno,SsexSELECT Sname,Sno,SsexFROM StudentFROM StudentWHERE Sname LI
76、KE WHERE Sname LIKE 刘刘%;例例16 16 查姓查姓“ “欧阳欧阳” ”且全名为且全名为3 3个汉字的学生的姓名。个汉字的学生的姓名。SELECT SnameSELECT SnameFROM StudentFROM StudentWHERE Sname LIKE WHERE Sname LIKE 欧阳欧阳_;例例17 17 查查名名字字中中第第二二字字为为“ “阳阳” ”字字的的学学生生的的姓姓名名和和学学号。号。SELECT SnameSELECT Sname,SnoSnoFROM StudentFROM StudentWHERE Sname LIKE _WHERE Sn
77、ame LIKE _阳阳 ;腐梨飞俗锄拭撑帘虏阂职眨饺辣祖隐伯耍翘一财位龙燕韭棚训唉鼓篱毖墙数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载例例1818查所有不姓刘的学生姓名。查所有不姓刘的学生姓名。SELECT SnamcSELECT Snamc,SnoSno,SsexSsexFROM StudentFROM StudentWHERE Sname NOT LIKE WHERE Sname NOT LIKE 刘刘%;涉及空值的查询涉及空值的查询谓谓词词IS IS NULLNULL和和IS IS NOT NOT NULLNULL可可用用来来查查询询
78、空空值值和和非非空值。空值。例例19 19 某某些些学学生生选选修修某某门门课课程程后后没没有有参参加加考考试试,所所以以有有选选课课记记录录,但但没没有有考考试试成成绩绩,下下面面来来查查一一下下缺少成绩的学生的学号和相应的课程号。缺少成绩的学生的学号和相应的课程号。SELECT SnoSELECT Sno,CnoCnoFROM SCFROM SCWHERE Grade IS NULLWHERE Grade IS NULL;尺鉴倘恰烬抡枯悄清雄海娥帝洗博赫贤逢甚著我酿嗡首希方它宝盟烯膳侄数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载例例20
79、20 查所有有成绩的记录的学生学号和课程号。查所有有成绩的记录的学生学号和课程号。SELECT SnoSELECT Sno,CnoCnoFROM SCFROM SCWHERE Grade IS NOT NULLWHERE Grade IS NOT NULL;多重条件查询多重条件查询例例21 21 查查CSCS系年龄在系年龄在2020岁以下的学生姓名岁以下的学生姓名SELECT SnameSELECT SnameFROM StudentFROM StudentWHERE Sdept=WHERE Sdept=CSCSAND Sage20;AND Sage20;例例1212中中的的ININ谓谓词词实
80、实际际上上是是多多个个OROR运运算算符符的的缩缩写写,因因此此,例例l2 l2中中的的查查询询也也可可以以用用OROR运运算算符符写写成成如如下下等价形式:等价形式:王硒蚂外误义木斥值溃扎翌拉徊大济坪打隋待晃蓬纯挪开辞佐奸兵目旁酋数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载SELECT SnameSELECT SnameSsexSsexFROM StudentFROM StudentWHERE WHERE Sdept=Sdept=ISISOR OR Sdept=Sdept=MAMAOR OR Sdept=Sdept=CSCS; 3. 3.对
81、查询结果排序对查询结果排序例例22 22 查查询询选选修修了了3 3号号课课程程的的学学生生的的学学号号及及其其成成绩绩,查询结果按分数的降序排列。查询结果按分数的降序排列。SELECT SnoSELECT Sno,GradeGradeFROM SCFROM SCWHERE CnoWHERE Cno3 3ORDER BY Grade DESCORDER BY Grade DESC;例例23 23 查查询询全全体体学学生生情情况况,查查询询结结果果按按所所在在系系升升序序排列,对同一系中的学生按年龄降序排列。排列,对同一系中的学生按年龄降序排列。葡陡反胺橙蜕沥酞签玄熙寇至宴鸽络榆冠都庄丑颊阁浸盖
82、蜕唾颠囱火扛敖数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载SELECT * SELECT * FROM StudentFROM StudentORDER BY Sdept, Sage DESC;ORDER BY Sdept, Sage DESC; 4. 4.使用集函数使用集函数COUNT(DISTINCT | ALL *) COUNT(DISTINCT | ALL *) 统计元组个数统计元组个数COUNT(DISTINCT COUNT(DISTINCT | | ALLALL列列名名) ) 统统计计一一列列中值的个数中值的个数SUM(DISTI
83、NCT SUM(DISTINCT | | ALL ALL 列列名名) ) 计计算算一一列列值值的总和的总和( (此列必须是数值型此列必须是数值型) )AVG(DISTINCT AVG(DISTINCT | | ALL ALL 列列名名) ) 计计算算一一列列值值的的平均值平均值( (此列必须是数值型此列必须是数值型) )MAX(DISTINCT MAX(DISTINCT | | ALL ALL 列列名名) ) 求求一一列列值值中中的的最大值最大值MIN(DISTINCT MIN(DISTINCT | | ALL ALL 列列名名) ) 求求一一列列值值中中的的最小值最小值铸烹汐战齿域秋璃梆彭玻
84、凹米妮桩橡尧堑皆藩率僵撕澈车岩坛锅止嫉燃践数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载例例24 24 查询学生总人数。查询学生总人数。SELECT COUNTSELECT COUNT(* *)FROM Student;FROM Student;例例25 25 查询选修了课程的学生人数。查询选修了课程的学生人数。SELECT COUNT(DISTINCT Sno)SELECT COUNT(DISTINCT Sno)FROM SC;FROM SC;例例26 26 计算计算1 1号课程的学生平均成绩。号课程的学生平均成绩。SELECT AVG(Gr
85、ade)SELECT AVG(Grade)FROM SCFROM SCWHERE CnoWHERE Cnol l;例例27 27 查询学习查询学习l l号课程的学生最高分数。号课程的学生最高分数。SELECT MAXSELECT MAX(GradeGrade)FROM SCFROM SCWHERE CnoWHERE Cno1 1;谣白勾退墒桔锁堑枚崎脊颠芜骇糊帽蹬罐盒斌媚雍役工狮棠鸵少粤凶诌高数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载 5. 5.对查询结果分组对查询结果分组例例28 28 查询各个课程号与相应的选课人数。查询各个课程号与相应
86、的选课人数。SELECT CnoSELECT Cno,COUNT(Sno)COUNT(Sno)FROM SCFROM SCGROUP BY CnoGROUP BY Cno;例例29 29 查查询询信信息息系系选选修修了了3 3门门以以上上课课程程的的学学生生的的学学号号,为为简简单单起起见见,假假设设SCSC表表中中有有一一列列DeptDept,它它记记录了学生所在系。录了学生所在系。SELECT SnoSELECT SnoFROM SCFROM SCWHERE DeptWHERE DeptISISGROUP BY SnoGROUP BY SnoHAVING COUNT(*)HAVING CO
87、UNT(*)3 3;瞻媒所筑膏圾掘挟链辣含临诬枉怂皂返结跌藉典鼎贯工胚剁海宽腕脓筏肩数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载3.3.2连接查询连接查询1.1.等值与非等值连接查询等值与非等值连接查询 表表名名1 1 列列名名1 1比比较较运运算算符符 表表名名2 2 列名列名2 2其其中中比比较较运运算算符符主主要要有有:、!。、!。此外,连接谓词还可以使用下面形式:此外,连接谓词还可以使用下面形式: 表表名名1 1 列列名名1 1BETWEENBETWEEN表表名名2 2列名列名2 2ANDAND表名表名2 23当当连连接接运运算算符符
88、为为时时,称称为为等等值值连连接接。使使用用其其它它运算符称为非等值连接。运算符称为非等值连接。挝委努淄亦闭张鲸楞浚及漂蜒趾炕农廊昏炸那兽迂纂依奶氏苫霖召迹跺簇数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载例例30 30 查询每个学生及其选修课程的情况。查询每个学生及其选修课程的情况。SELECT Student.*SELECT Student.*,SC.*SC.*FROM StudentFROM Student,SCSCWHERE Student.SnoWHERE Student.SnoSC.Sno;SC.Sno;例例31 Student31
89、 Student表和表和SCSC表的笛卡尔积。表的笛卡尔积。SELECT Student.*SELECT Student.*,SC.*SC.*FROM StudentFROM Student,SCSC 例例32 32 自然连接自然连接StudentStudent表和表和SCSC表。表。SELECT SELECT Student.SnoStudent.Sno, Sname, Sname, Ssex, Ssex, Sage, Sage, Sdept, Cno, GradeSdept, Cno, GradeFROM StudentFROM Student,SCSCWHERE Student.SnoW
90、HERE Student.SnoSC.Sno;SC.Sno;碟狄弛悼庚巨机二邵西趣镰走牙瓮郭偶拢肆刽嚼晦针键辆坑殖知蘑牌响棋数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载或或SELECT Student.*SELECT Student.*,Cno, GradeCno, GradeFROM StudentFROM Student,SCSCWHERE Student.SnoWHERE Student.SnoSC.Sno;SC.Sno; 2. 2.自身连接自身连接例例33 33 查查询询每每一一门门课课的的间间接接先先修修课课( (即即先先修修课课的
91、的先先修课修课) )。颓待漠冀框腔碗副狂允斥至悸培橡匆握匝丝录皑丢肉句忻傍原嗓灵石容挠数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载SELECT FIRST.CnoSELECT FIRST.Cno,SECOND.CpnoSECOND.CpnoFROM Course FIRSTFROM Course FIRST,Course SECONDCourse SECONDWHERE FIRST.CpnoWHERE FIRST.CpnoSECOND.CnoSECOND.Cno;Cno CpnoCno Cpno 1 7 1 7 3 5 3 5 5 6 5 6
92、3.3.外连接外连接例例3434SELECT SELECT Student.SnoStudent.Sno, Sname, Sname, Ssex, Ssex, Sage, Sage, Sdept, Cno, GradeSdept, Cno, GradeFROM StudentFROM Student,SCSCWHERE Student.SnoWHERE Student.SnoSC.Sno(*);SC.Sno(*);围牟裔莽口立膨蛙组疑寻溶阵谗示嗣期接栋熏淫偶粟弥堡鹅熄藤留湖戎困数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载Student.Sno
93、Student.Sno,Sname, Ssex, Sage, Sdept, Cno, GradeSname, Ssex, Sage, Sdept, Cno, Grade 9500l 9500l 李勇李勇 男男 20 CS 1 92 20 CS 1 92 9500l 9500l 李勇李勇 男男 20 CS 2 85 20 CS 2 85 9500l 9500l 李勇李勇 男男 20 CS 3 88 20 CS 3 88 95002 95002 刘晨刘晨 女女 19 IS 2 90 19 IS 2 90 95002 95002 刘晨刘晨 女女 19 IS 3 80 19 IS 3 80 95003
94、 95003 王名王名 女女 18 MA 18 MA 95004 95004 张立张立 男男 18 IS 18 IS 4. 4.复合条件连接复合条件连接 例例35 35 查询选修查询选修2 2号课程且成绩在号课程且成绩在9090分以上的所有学生。分以上的所有学生。 SELECT Student.Sno,Sname SELECT Student.Sno,Sname FROM Student, SC FROM Student, SC WHERE Student .Sno WHERE Student .SnoSC.Sno ANDSC.Sno AND SC.Cno SC.Cno2AND SC.Grad
95、e2AND SC.Grade90;90;乍柳糯嘛宙启壤站肯盂扼窍藻郴责慕磐拒吨鳖强靴念转柱拳穗驭鸣绊幢袁数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载结果表为;结果表为;Student.Sno SnameStudent.Sno Sname 95002 95002 刘晨刘晨例例36 36 查询每个学生选修的课程名及其成绩。查询每个学生选修的课程名及其成绩。SELECT SELECT Student.SnoStudent.Sno, SnameSname, CnameCname, GradeGradeFROM StudentFROM Student,
96、SCSC,CourseCourseWHERE WHERE Student.SnoStudent.SnoSCSCSno Sno and and SCSCCnoCnoCOURSECOURSECnoCno;垢井谆殿搂憋庇蜘锡键姑孺萍刀哦唐楞泻嘛颠想授艇苞柱铂寅域邵轻恩环数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载 3.3.3嵌套查询嵌套查询SELECT SnameSELECT SnameFROM StudentFROM StudentWHERE Sno INWHERE Sno IN (SELECT Sno (SELECT Sno FROM SC F
97、ROM SC WHERE Cno WHERE Cno2 2) ); 1. 1.带有带有ININ谓词的子查询谓词的子查询例例37 37 查询与查询与“ “刘晨刘晨” ”在同一个系学习的学生。在同一个系学习的学生。查查询询与与“ “刘刘晨晨” ”在在同同一一个个系系学学习习的的学学生生,可可以以首首先先确确定定“ “刘刘晨晨” ”所所在在系系名名,然然后后再再查查找找所所有有在在该该系系学学习习的的学生。所以可以分步来完成此查询:学生。所以可以分步来完成此查询:据亮题慎肄端挞跋怀嘿敦潘漾娠菏聂纳躬蛇购籍撼先钝权葵枢查除拈碴嗜数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大
98、学自动控制系邵家玉下载确定确定“ “刘晨刘晨” ”所在系名所在系名SELECT SdeptSELECT SdeptFROM StudentFROM StudentWHERE Sname=WHERE Sname=刘晨刘晨;结果为:结果为:ISIS查找所有在查找所有在ISIS系学习的学生。系学习的学生。SELECT Sno,Sname,SdeptSELECT Sno,Sname,SdeptFROM StudentFROM StudentWHERE Sdept=WHERE Sdept=ISIS;分分步步写写查查询询毕毕竟竟比比较较麻麻烦烦,上上述述查查询询实实际际上上可可以以用用子子查查询询来来实实
99、现现,即即将将第第一一步步查查询询嵌嵌入入到到第第二二步步查查询询中中,用用以以构构造造第第二二步步查查询询的的条条件件。SQLSQL语语句句如下:如下:翔莆话挣缎栈圃辆惫激冒贮峦谅子小幌榆铭怜法姚譬毙守管由摆献邦讨在数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载SELECT SnoSELECT Sno,SnameSname,SdeptSdeptFROM StudentFROM StudentWHERE Sdept INWHERE Sdept IN (SELECT Sdept (SELECT Sdept FROM Student FROM St
100、udent WHERE Sname WHERE Sname刘晨刘晨) );本本例例中中的的查查询询也也可可以以用用前前面面学学过过的的表表的的自自身身连连接接查询来完成:查询来完成:SELECT S1.SnoSELECT S1.Sno,S1.SnameS1.Sname,S1.SdeptS1.SdeptFROM Student S1,Student S2FROM Student S1,Student S2WHERE WHERE S1.Sdept=S2.Sdept S1.Sdept=S2.Sdept AND AND S2.Sname=S2.Sname=刘刘晨晨;所爪薯些邪胰祸琅柳似急瘩没痒折邻豆沮
101、雏疡伟绣秦剪钝侩友谎循颇遵冻数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载本本例例中中父父查查询询和和子子查查询询均均引引用用了了StudentStudent表表也也可可以以像像表表的的自自身身连连接接查查询询那那样样用用别别名名将将父父查查询询中中的的StudentStudent表与子查询中的表与子查询中的StudentStudent表区分开:表区分开:SELECT S1.SnoSELECT S1.Sno,S1.SnameS1.Sname,S1.SdeptS1.SdeptFROM Student S1FROM Student S1WHERE
102、S1.Sdept INWHERE S1.Sdept IN (SELECT S2.Sdept (SELECT S2.Sdept FROM Student S2 FROM Student S2 WHERE S2.Sname WHERE S2.Sname 刘晨刘晨) );例例38 38 查查询询选选修修了了课课程程名名为为信信息息系系统统的的学学生生学学号号和和姓名。姓名。完成此查询的基本思路是:完成此查询的基本思路是:透氦彭煌愁莎九货柱尉馆洼竹消客域佰拙交嚼仅苔迎妒疫昆叼蜘内测崩弛数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载首首先先在在Cours
103、eCourse关关系系中中找找出出 信信息息系系统统 课课程程的的课课程程号号CnoCno。然然后后在在SCSC关关系系中中找找出出CnoCno等等于于第第一一步步给给出出的的CnoCno集合中某个元素的集合中某个元素的SnoSno。最最后后在在StudentStudent关关系系中中选选出出SnoSno等等于于第第二二步步中中求求出出SnoSno集集合合中中某某个个元元素素的的元元组组。取取出出SnoSno和和SnameSname送入结果表列。送入结果表列。将上述想法写成将上述想法写成SQLSQL语句就是:语句就是:SELECT Sno,SnameSELECT Sno,Sname FROM
104、Student FROM Student WHERE Sno IN WHERE Sno IN 砧垫窥漆巧挚锗物塘村诧桶述绣皋肌雪船着馋淬菱臆叼业邹孤奴饼参碉蛮数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载 (SELECT Sno (SELECT Sno FROM SC FROM SC WHERE Cno IN WHERE Cno IN (SELECT Cno (SELECT Cno FROM Course FROM Course WHERE Cname WHERE Cname 信息系统信息系统);DBMSDBMS按按照照由由内内向向外外的的原原
105、则则求求解解此此SQLSQL语语句句,首首先先处处理理最最内内层层查查询询块块,即即课课程程名名信信息息系系统统 的的课课程程号:号:SELECT CnoSELECT CnoFROM CourseFROM CourseWHERE CnameWHERE Cname信息系统信息系统查询结果为查询结果为3 3。从而可以把上面的。从而可以把上面的SQLSQL语句简化为:语句简化为:袋灭栖壹怀让浚唬吸隐售瓮啤场阶魏剐酋导坏俱坤捅獭摔贪滞恍福徽硼浙数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载SELECT Sno,SnameSELECT Sno,Sname
106、 FROM Student FROM Student WHERE Sno IN WHERE Sno IN (SELECT Sno (SELECT Sno FROM SC FROM SC WHERE Cno IN WHERE Cno IN (3 3)) );对此对此SQLSQL语句再处理内层查询,语句再处理内层查询,SELECT SnoSELECT SnoFROM SCFROM SCWHERE Cno IN WHERE Cno IN (3 3)结结果果为为9500195001和和9500295002。从从而而可可以以把把上上面面的的SQLSQL语语句进一步简化为:句进一步简化为:SELECT S
107、no,SnameSELECT Sno,SnameFROM StudentFROM StudentWHERE Sno INWHERE Sno IN(9500195001,9500295002););亮呆虑油溯生告湍哗郊屹奸辅双板艘吴扰诧坪捣镁牙惶祸核霓扬甭四屉满数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载这样就可以求得最终结果。这样就可以求得最终结果。本查询同样可以用连接查询实现:本查询同样可以用连接查询实现:SELECT Student.Sno,SnameSELECT Student.Sno,SnameFROM StudentFROM Stu
108、dent,SCSC,CourseCourseWHERE Student.SnoWHERE Student.SnoSC.Sno ANDSC.Sno AND SC.Cno SC.CnoCourse.Cno ANDCourse.Cno AND Course.Cname Course.Cname 信息系统信息系统 ; 2. 2.带有比较运算符的子查询带有比较运算符的子查询带带有有比比较较运运算算符符的的子子查查询询是是指指父父查查询询与与子子查查询询之之间间用用比比较较运运算算符符进进行行连连接接。当当用用户户能能确确切切知知道道内内层层查查询询返返回回的的是是单单值值时时,可可以以用用、! !或等比
109、较运算符。或等比较运算符。知芬德剿钮囤逮泽隙雪露蔼验解侗坡斡界佃谨琼酝亩胎领俏帜面畅寺败悸数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载例例如如,在在例例3737中中,由由于于一一个个学学生生只只可可能能在在一一个个系系学学习习,也也就就是是说说内内查查询询刘刘晨晨所所在在系系的的结结果果是是一一个个唯唯一一值值,因因此此该该查查询询也也可可以以用用比比较较运运算算符符来来实实现现,其其SQLSQL语句如下;语句如下;SELECT S1.SnoSELECT S1.Sno,S1.SnameS1.Sname,S1.SdeptS1.SdeptFROM
110、 Student S1FROM Student S1WHERE S1.Sdept =WHERE S1.Sdept = (SELECT S2.Sdept (SELECT S2.Sdept FROM Student S2 FROM Student S2 WHERE S2.Sname WHERE S2.Sname 刘晨刘晨) );需需要要注注意意的的是是,子子查查询询一一定定要要跟跟在在比比较较符符之之后后。下列写法是错误的:下列写法是错误的:渺阎砂停吁妮加融步毫迁科糙圣滁赠闹走慨篮舱铅茵琳莽尖菌纹浪膜尼狰数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下
111、载SELECT S1.SnoSELECT S1.Sno,S1.SnameS1.Sname,S1.SdeptS1.SdeptFROM Student S1FROM Student S1WHERE (SELECT S2.SdeptWHERE (SELECT S2.Sdept FROM Student S2 FROM Student S2 WHERE S2.Sname WHERE S2.Sname 刘晨刘晨)=S1.Sdept)=S1.Sdept;例例3838中中信信息息系系统统的的课课程程号号是是唯唯一一的的,但但选选修修该该课课程程的的学学生生并并不不止止一一个个,所所以以例例3838也也可可以
112、以用用= =运运算算符符和和ININ谓词共同完成:谓词共同完成:子垫契铬轧氦目拇丢啤实浦凶基擅闻绒辰题渍仪吓虽渊站仪爹鸿子拯然挥数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载SELECT Sno,SnameSELECT Sno,Sname FROM Student FROM Student WHERE Sno IN WHERE Sno IN (SELECT Sno (SELECT Sno FROM SC FROM SC WHERE Cno= WHERE Cno= (SELECT Cno (SELECT Cno FROM Course FROM
113、Course WHERE Cname WHERE Cname 信息系统信息系统);刽琉旱猛贷豆啦萤顺熬牧哼烤籍危种倒惦沪雁信急稀届孙蝗蝴濒砷蛮粤台数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载3.3.带有带有ANYANY或或ALLALL谓词的子查询谓词的子查询ANY ANY 大于子查询结果中的某个值大于子查询结果中的某个值ANY ANY 小于子查询结果中的某个值小于子查询结果中的某个值ANY ANY 大于等于子查询结果中的某个值大于等于子查询结果中的某个值ANY ANY 小于等于子查询结果中的某个值小于等于子查询结果中的某个值ANY ANY 等
114、于子查询结果中的某个值等于子查询结果中的某个值! !ANYANY或或ANY ANY 不不等等于于子子查查询询结结果果中中的的某某个个值值ALL ALL 大于子查询结果中的所有值大于子查询结果中的所有值ALL ALL 小于子查询结果中的所有值小于子查询结果中的所有值ALL ALL 大于等于子查询结果中的所有值大于等于子查询结果中的所有值ALL ALL 小于等于子查询结果中的所有值小于等于子查询结果中的所有值渍弹暴雄窘矛报优中馒驼及构缎若刑说烦硬巫编柄脉艺缨啄娱旧畸躁战拔数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载ALL ALL 等等于于子子查查
115、询询结结果果中中的的所所有有值值( (通通常常没没有有实实际意义际意义) )! !ALLALL或或ALL ALL 不不等等于于子子查查询询结结果果中中的的任任何何一一个值个值例例39 39 查查询询其其他他系系中中比比ISIS系系某某一一学学生生年年龄龄小小的的学学生生名单。名单。SELECT S1.SnameSELECT S1.Sname,S1.SageS1.SageFROM Student S1FROM Student S1WHERE S1.SageWHERE S1.SageANYANY (SELECT S2.Sage (SELECT S2.Sage FROM Student S2 FRO
116、M Student S2 WHERE S2.Sdept WHERE S2.SdeptIS)IS) AND S1.Sdept AND S1.SdeptISISORDER BY S1.Sage DESCORDER BY S1.Sage DESC;模另俞年汪豫穆丝镭扔郧泅溢憎糊慑手率陇蚀瞥漱医征嘿玖送譬烈窄呜溺数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载注注意意,S1.SdeptS1.SdeptISIS条条件件是是父父查查询询块块中中的的条条件件,不是子查询块中的条件。不是子查询块中的条件。用集函数实现:用集函数实现:SELECT S1.Sname
117、SELECT S1.Sname,S1.SageS1.SageFROM Student S1FROM Student S1WHERE S1.SageWHERE S1.Sage (SELECT MAX(S2.Sage) (SELECT MAX(S2.Sage) FROM Student FROM Student WHERE S2.Sdept WHERE S2.SdeptIS)IS) AND S1.Sdept AND S1.SdeptISISORDER BY Sage DESCORDER BY Sage DESC;例例40 40 查查询询其其他他系系中中比比ISIS系系所所有有学学生生年年龄龄都都小
118、小的的学学生名单。生名单。拱盔怨颐匀奏钨敝瑶蔬冉膊奥柞秤咙琐毋轧啊汀凉民金媚奸振爹创赵忽荒数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载SELECT S1.SnameSELECT S1.Sname,S1.SageS1.SageFROM Student S1FROM Student S1WHERE S1.SageWHERE S1.SageALLALL (SELECT S2.Sage (SELECT S2.Sage FROM Student S2 FROM Student S2 WHERE S2.Sdept WHERE S2.SdeptISIS)
119、AND S1.Sdept AND S1.SdeptIS“IS“ORDER BY S1.Sage DESCORDER BY S1.Sage DESC;本本查查询询同同样样也也可可以以用用集集函函数数实实现现。即即首首先先用用子子查查询询找找出出IS系系的的最最小小年年龄龄(18),然然后后在在父父查查询询中中查查所所有有非非IS系系且且年年龄龄小小于于18岁岁的的学学生生姓姓名名及其年龄。及其年龄。SQL语句如下:语句如下:注别牙曙综在译水隘裸惯鳖雾氢餐惋胎煌邢爱屯匣找部碾奴磷稻壮玻旺涡数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载SELECT
120、S1.SnameSELECT S1.Sname,S1.SageS1.SageFROM Student S1FROM Student S1WHERE S1.SageWHERE S1.Sage (SELECT MIN(S2.Sage) (SELECT MIN(S2.Sage) FROM Student S2 FROM Student S2 WHERE S2.Sdept WHERE S2.SdeptIS)IS) AND S1.Sdept AND S1.SdeptISISORDER BY S1.Sage DESCORDER BY S1.Sage DESC;事事实实上上,用用集集函函数数实实现现子子查查
121、询询通通常常比比直直接接用用ANYANY或或ALLALL查询效率要高。查询效率要高。 4. 4.带有带有EXISTSEXISTS谓词的子查询谓词的子查询EXISTSEXISTS代代表表存存在在量量词词。带带有有EXISTSEXISTS谓谓词词的的子子查查询询不不退退回回任任何何实实际际数数据据,它它只只产产生生逻逻辑辑真真值值“TRUE”“TRUE”或逻辑假值或逻辑假值“FALSE”“FALSE”。渊宇牡佳犊卒予臃秃泛折拉狱内咙块袒攫筛谢垄知绕恋硷煌涡萍髓沼蹄巢数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载例例41 41 查询所有选修了查询所有
122、选修了1 1号课程的学生姓名。号课程的学生姓名。SELECT SnameSELECT SnameFROM StudentFROM StudentWHERE EXISTSWHERE EXISTS (SELECT * (SELECT * FROM SC FROM SC WHERE SC.Sno WHERE SC.SnoStudent. Sno AND CnoStudent. Sno AND Cno1)1);例例41 41 查询所有未修查询所有未修1 1号课程的学生姓名。号课程的学生姓名。SELECT SnameSELECT SnameFROM StudentFROM StudentWHERE NO
123、T EXISTSWHERE NOT EXISTS (SELECT * (SELECT * FROM SC FROM SC WHERE SC.Sno WHERE SC.SnoStudent. Sno AND CnoStudent. Sno AND Cno1)1);沾操骏认脉续始判呕钾索俺台扼蓟歧蚤杜斤压闺榜塑扰溉笆老蘑格泳渝繁数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载带带有有ININ谓谓词词的的例例3737可可以以用用如如下下带带EXISTSEXISTS谓谓词词的的子子查询替换:查询替换:查询与查询与“ “刘晨刘晨” ”在同一个系学习的学生。
124、在同一个系学习的学生。SELECT S1.SnoSELECT S1.Sno,S1.SnameS1.Sname,S1.SdeptS1.SdeptFROM Student S1FROM Student S1WHERE EXISTSWHERE EXISTS (SELECT * (SELECT * FROM Student S2 FROM Student S2 WHERE WHERE S1.Sdept=S2.Sdept S1.Sdept=S2.Sdept AND AND S2.SnameS2.Sname 刘晨刘晨) );例例42 42 查询选修了全部课程的学生姓名。查询选修了全部课程的学生姓名。渐磅串
125、垛楼爵赢猫玛术含缴函肺盅鞠瑞妮慑酣壕琢帝处卷要不缘套塞粥往数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载SELECT SnameSELECT SnameFROM StudentFROM StudentWHERE NOT EXISTSWHERE NOT EXISTS (SELECT * (SELECT * FROM Course FROM Course WHERE NOT EXISTS WHERE NOT EXISTS (SELECT * (SELECT * FROM SC FROM SC WHERE SC.Sno WHERE SC.SnoStu
126、dent.SnoStudent.Sno AND SC.Cno AND SC.CnoCourse.Cno)Course.Cno);例例43 43 查查询询至至少少选选修修了了学学生生9500295002选选修修的的全全部部课课程程的学生号码。的学生号码。黍亥绅伶淖甥谍晦杯诞屎晾战榨醇簇钎斯晶列粳俏戍充畸诊咆磺柳蠢云啥数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载本本题题的的查查询询要要求求可可以以做做如如下下解解释释,查查询询这这样样的的学学生生,凡凡是是9500295002选选修修的的课课,他他都都选选修修了了。换换句句话话说说,若若有有一一个
127、个学学号号为为x x的的学学生生,对对所所有有的的课课程程y y,只只要要学学号号为为9500295002的的学学生生选选修修了了课课程程y y,则则x x也也选选修修了了y y;那么就将他的学号选出来。;那么就将他的学号选出来。即即不不存存在在这这样样的的课课程程y y,学学生生9500295002选选修修了了y y,而而学学生生x x没有选。用没有选。用SQLSQL语言可表示如下:语言可表示如下:陇咯激见僳显所塔付苇炯昌位猩知塞寐佰掐栏墅调绣滔公脆上冶啄迹阁百数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载SELECT DISTINCT Sn
128、oSELECT DISTINCT SnoFROM SC SCXFROM SC SCXWHERE NOT EXISTSWHERE NOT EXISTS (SELECT * (SELECT * FROM SC SCY FROM SC SCYWHERE SCY.SnoWHERE SCY.Sno95002 AND95002 AND NOT EXISTS NOT EXISTS (SELECT * (SELECT * FROM SC SCZ FROM SC SCZ WHERE SCZ.Sno WHERE SCZ.SnoSCX.Sno ANDSCX.Sno AND SCZ.Cno SCZ.CnoSCY.Cn
129、o)SCY.Cno);绊怖乍恋醒们董伐评否左烬蔑砂伺标忠育逝票术耀疤梆负麦水嫂莽雪梁派数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载 3.3.4集合查询集合查询集集 合合 操操 作作 主主 要要 包包 括括 并并 操操 作作 UNIONUNION、 交交 操操 作作INTERSECTINTERSECT和差操作和差操作MINUSMINUS。例例44 44 查查询询计计算算机机科科学学系系的的学学生生及及年年龄龄不不大大于于1919岁岁的学生。的学生。SELECT *SELECT *FROM StudentFROM StudentWHERE Sde
130、ptWHERE SdeptCSCSUNIONUNIONSELECT *SELECT *FROM StudentFROM StudentWHERE SageWHERE Sage1919;本本查查询询实实际际上上是是求求计计算算机机科科学学系系的的所所有有学学生生与与年年龄不大于龄不大于1919岁的学生的并集。岁的学生的并集。冕淋钩颈巍法车证须秩寨稠造觅磐吻救煽芭娶蛹脆衷昂错很极目擒蜕碎燃数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载例例45 45 查询选修了课程查询选修了课程1 1或者选修了课程或者选修了课程2 2的学生。的学生。本本例例实实际际
131、上上是是查查选选修修课课程程1 1的的学学生生集集合合与与选选修修课课程程2 2的学生集合的并集。的学生集合的并集。SELECT SnoSELECT SnoFROM SCFROM SCWHERE Cno=1WHERE Cno=1UNIONUNIONSELECT SnoSELECT SnoFROM SCFROM SCWHERE Cno=2WHERE Cno=2;注注:标标准准SQLSQL只只有有并并,没没有有交交和和差差,但但实实际际上上,交交或或差差都都可可以以用用其其它它方方法法实实现现,具具体体实实现现根根据据不不同的查询而不同(用语义替换)。同的查询而不同(用语义替换)。洪剔禽吧幅能比崖
132、卸面脯掣越湍时棘薯莱蚜颂橡撩球槐夏商霍钞颂突赞微数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载例例46 46 查查询询计计算算机机科科学学系系的的学学生生与与年年龄龄不不大大于于1919岁岁的学生的交集。的学生的交集。本本查查询询换换种种说说法法就就是是,查查询询计计算算机机科科学学系系中中年年龄龄不大于不大于1919岁的学生。岁的学生。例例47 47 查查询询选选修修课课程程l l的的学学生生集集合合与与选选修修课课程程2 2的的学学生集合的交集生集合的交集本本例例实实际际上上是是查查询询既既选选修修了了课课程程1 1又又选选修修了了课课程程
133、2 2的学生。的学生。例例48 48 查查询询计计算算机机科科学学系系的的学学生生与与年年龄龄不不大大于于1919岁岁的学生的差集。的学生的差集。本本查查询询换换种种说说法法就就是是,查查询询计计算算机机科科学学系系中中年年龄龄大于大于1919岁的学生。岁的学生。绕值宗乃牛致叔师罢羌篷殃袒拿惹骗成统缨樊驯怨真满朽郝餐麻瞥娩弹旬数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载例例49 49 查查询询选选修修课课程程1 1的的学学生生集集合合与与选选修修课课程程2 2的的学学生集合的差集生集合的差集本本例例实实际际上上是是查查询询选选修修了了课课程程
134、1 1但但没没有有选选修修课课程程2 2的学生。的学生。 3.3.5小结小结问问题题:有有关关系系模模式式part(part(Item_noItem_no,Name,P_no),Name,P_no)表表示示一一个个产产品品零零部部件件情情况况及及产产品品的的组组成成(P_noP_no表表示示上上一一级级的的零零件件),如如何何用用SQLSQL实实现现查查询询:查查询询某某个个产品(给定产品(给定Item_noItem_no)的所有零部件?。)的所有零部件?。 3.4 3.4数据更新数据更新 3.4.1插入数据插入数据马环资耳旧撩兆妖兄气荡操贮赦仆扳疥犀露掷木踪豹妖狙灾酋赘袜虎淹旷数据库原理与设
135、计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载 1. 1.插入单个元组插入单个元组INSERT INSERT INTO INTO 表表名名( (属属性性列列1 1 ,属属性性列列2 2) )VALUES (VALUES (常量常量1 1 ,常量,常量2 2) )例例1 1 将将一一个个新新学学生生记记录录( (学学号号:9502095020;姓姓名名:陈陈冬冬;性性别别:男男;所所在在系系:ISIS;年年龄龄:1818岁岁) )插插入入StudentStudent表中。表中。INSERT INTO StudentINSERT INTO StudentVALU
136、ES(95020VALUES(95020,陈冬陈冬, 男男 ,ISIS,18)18);例例2 2 插入一条选课记录插入一条选课记录(95020(95020,1)1)INSERT INTO SC(SnoINSERT INTO SC(Sno,Cno)Cno)VALUES(“95020VALUES(“95020,1)1);犁悲箱呢榷里干乞递溅剖词弦侩怔膜诈讣翅奋捉致冒本辞也淳近韶竞芥赊数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载 2. 2.插入子查询结果插入子查询结果INSERT INSERT INTOINTO表表名名( (属属性性列列1 1 ,属
137、属性性列列2 2 子查询;子查询; 例例3 3 对对每每一一个个系系,求求学学生生的的平平均均年年龄龄,并并把把结结果果存入数据库。存入数据库。对对于于这这道道题题,首首先先要要在在数数据据库库中中建建立立一一个个有有两两个个属属性性列列的的新新表表,其其中中一一列列存存放放系系名名,一一列列存存放放相相应系的学生平均年龄。应系的学生平均年龄。CREATE TABLE DeptageCREATE TABLE Deptage(Sdept CHAR(15)(Sdept CHAR(15),Avgage SMALLINT)Avgage SMALLINT);然然后后对对数数据据库库的的studentst
138、udent表表按按系系分分组组求求平平均均年年龄龄,再把系名和平均年龄存入到新表中。再把系名和平均年龄存入到新表中。团迎负纤落哺苗舟忙擞尘咱畏饰槛桓私瑟乎仇扇颓龚敏涉匣勃乔潞魁冉涤数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载INSERT INTO Deptage(SdeptINSERT INTO Deptage(Sdept,Avgage)Avgage)SELECT SdeptSELECT Sdept,AVG(Sage)AVG(Sage)FROM StudentFROM StudentGROUP BY SdeptGROUP BY Sdept;
139、3.4.2修改数据修改数据UPDATE UPDATE 表名表名SETSET列列名名表表达达式式 ,列列名名表表达达式式 WHERE WHERE 条件条件 ; 1. 1.修改某一个元组的值修改某一个元组的值例例4 4 将学生将学生9500195001的年龄改为的年龄改为2222岁岁UPDATE StudentUPDATE StudentSET SageSET Sage2222WHERE SnoWHERE Sno9500195001;另撇瘩矩诛赞切踞丸易叠纷偷绳默箍徊稚木祥坎降拂邀遭柜琳可叁卖孤拆数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载 2.
140、 2.修改多个元组的值修改多个元组的值例例5 5 将所有学生的年龄增加将所有学生的年龄增加1 1岁。岁。UPDATE StudentUPDATE StudentSET SageSET SageSage+1Sage+1; 3. 3.带子查询的修改语句带子查询的修改语句例例6 6 将计算机科学系全体学生的成绩置零。将计算机科学系全体学生的成绩置零。UPDATE SCUPDATE SCSET GradeSET Grade0 0WHERE WHERE CSCS (SELECT Sdept (SELECT Sdept FROM Student FROM Student WHERE Student.Sno
141、 WHERE Student.SnoSC.Sno)SC.Sno);或或茸酒霹飞专符庶快苦愁用渝嫌行音牛次融粕利撵颐可屋容谜悍址溯叁颠签数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载UPDATE SCUPDATE SCSET Grade=0SET Grade=0WHERE Sno INWHERE Sno IN (SELECT Sno (SELECT Sno FROM Student FROM Student WHERE Sdept= WHERE Sdept=CSCS) ); 4. 4.修改操作与数据库的一致性修改操作与数据库的一致性第一条第一条U
142、PDATEUPDATE语句修改语句修改StudentStudent表:表:UPDATE StudentUPDATE StudentSET SnoSET Sno9608996089WHERE SnoWHERE Sno9500795007;第二条第二条UPDATEUPDATE语句修改语句修改SCSC表表: :暖巡捐狐宫姬醚韭习哟魁误拿增猩佯龟训亲获恳籍蒸筒桓耕厦陶葵漱蚜俄数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载UPDATE SCUPDATE SCSET SnoSET Sno9608996089WHERE SnoWHERE Sno9500795
143、007;问问题题:SCSC表表中中要要修修改改的的SnoSno是是引引用用StudentStudent的的外外键键,第第一一条条UPDATEUPDATE执执行行后后,显显然然已已破破坏坏该该参参照照完完整整性。这样的过程能正常执行吗?性。这样的过程能正常执行吗? 3.4.3删除数据删除数据DELETE FROMDELETE FROM表名表名WHEREWHERE条件条件 ; 1. 1.删除某一个元组的值删除某一个元组的值例例7 7 删除学号为删除学号为9501995019的学生记录。的学生记录。DELETEDELETEFROM StudentFROM StudentWHERE SnoWHERE
144、Sno9501995019;惶唁谁未婴旭授哲慑戎阁豺埠眼曰哎肯姨保茂谩叉硼娱挨精套绕魁扇籍毁数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载1.1.删除多个元组的值删除多个元组的值例例8 8 删除所有的学生选课记录。删除所有的学生选课记录。DELETE FROM SCDELETE FROM SC;2.2.带子查询的删除语句带子查询的删除语句例例9 9 删除计算机科学系所有学生的选课记录。删除计算机科学系所有学生的选课记录。DELETE FROM SCDELETE FROM SCWHERE WHERE CSCS (SELECT Sdept (SEL
145、ECT Sdept FROM Student FROM Student WHERE Student.Sno WHERE Student.SnoSC.Sno)SC.Sno);3.5视图视图 3.5.1定义视图定义视图 1. 1.建立视图建立视图祷蘸熙役铸唬铰是希赴闭癸就拜短敢吗蚕敏忆搁总骏伶极证葡矩搏约拥孟数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载CREATE CREATE VIEWVIEW视视图图名名( (列列名名 ,列列名名 ) ) AS AS子查询子查询如如果果CREATE CREATE VIEWVIEW语语句句仅仅指指定定了了视视图图
146、名名,省省略略了了组组成成视视图图的的各各个个属属性性列列名名,则则隐隐含含该该视视图图由由子子查查询询中中SELECTSELECT子子句句目目标标列列中中的的诸诸字字段段组组成成。但但在在下下列三种情况下必须明确指定组成视图的所有列名:列三种情况下必须明确指定组成视图的所有列名: l l其其中中某某个个目目标标列列不不是是单单纯纯的的属属性性名名,而而是是集集函数或列表达式。函数或列表达式。 l l多多表表连连接接时时选选出出了了几几个个同同名名列列作作为为视视图图的的字字段。段。 l l需需要要在在视视图图中中为为某某个个列列启启用用新新的的更更合合适适的的名名字。字。标帽挝琴固炒欣级骏闰
147、贼检犹钵卡依烫惕俱坝妈庸闷千是备派水箩患佬腐数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载例例1 1 建立信息系学生的视图建立信息系学生的视图CREATE VIEW IS_StudentCREATE VIEW IS_Student AS AS SELECT Sno,Sname,Sage SELECT Sno,Sname,Sage FROM Student FROM Student WHERE Sdept WHERE SdeptISIS;本本例例中中省省略略了了视视图图IS_StudentIS_Student的的列列名名,隐隐含含了了该该视视图图
148、由由子子查查询询中中SELECTSELECT子子句句中中的的3 3个个目目标标列列名名组组成成。DBMSDBMS执行此语句就相当于建立虚表:执行此语句就相当于建立虚表:IS_Student (Sno,Sname,Sage)IS_Student (Sno,Sname,Sage) 2. 2.删除视图删除视图DROP VIEWDROP VIEW视图名;视图名;例例2 2 删除视图删除视图IS_StudentIS_Student。DROP VIEW IS_StudentDROP VIEW IS_Student;如昧烧亦宝蜡唉枷印利壁匣险坚伶代佩淑苑联怕竿坝灯筷狼彻础沾铅翰杭数据库原理与设计方法东南大学
149、自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载 3.5.2查询视图查询视图对对视视图图的的查查询询转转换换为为对对基基表表的的查查询询的的过过程程称称为为视视图的消解图的消解(view resolution)(view resolution)。例例3 3 在在信信息息系系学学生生的的视视图图中中找找出出年年龄龄小小于于2020岁岁的的学生。学生。SELECT SnoSELECT Sno,SageSageFROM IS_StudentFROM IS_StudentWHERE SageWHERE Sage2020;DBMSDBMS执执行行此此查查询询时时,将将其其与与IS_S
150、tudentIS_Student视视图图定定义义中的子查询中的子查询SELECT Sno,Sname,SageSELECT Sno,Sname,SageFROM StudentFROM StudentWHERE SdeptWHERE SdeptISIS;结合起来,转换成对基表结合起来,转换成对基表studentstudent的查询的查询: :仗然勒禽凭泪靠悍瘤驾姐一绒锈誓衙带耪责钻烽谊讶熔绽闪于侄壤疏析妆数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载SELECT SnoSELECT Sno,SageSageFROM StudentFROM St
151、udentWHERE SdeptWHERE SdeptIS AND SageIS AND Sage2020; 3.5.3更新视图更新视图更更新新视视图图包包括括插插入入(INSERT)(INSERT)、删删除除(DELETE)(DELETE)和和修修改改(UPDATE)(UPDATE)三类操作。三类操作。例例如如,如如定定义义的的视视图图S_GS_G是是由由 学学号号 和和 平平均均成成绩绩 两两个个属属性性列列组组成成的的,其其中中平平均均成成绩绩一一项项是是由由SCSC表表中中多多个个元元组组分分组组后后计计算算平平均均值值得得来来的的。如如果果想想把把视视图图S_GS_G中中学学号号为为
152、9500195001的的学学生生的的平平均均成成绩绩改改成成9090分分,SQLSQL语句如下:语句如下:UPDATE S_GUPDATE S_GSET GradeSET Grade9090WHERE SnoWHERE Sno9500195001;娄翘香阶瘴抡咬脸北涂托孟志肿返不相缄询逊哎榔肚居犹妥掇聋譬猛午裤数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载但但这这个个对对视视图图的的更更新新是是无无法法转转换换成成对对基基表表SCSC的的更更新新的的,因因为为系系统统无无法法修修改改各各科科成成绩绩,以以便便平平均均成成绩成为绩成为9090。所
153、以。所以S_GS_G视图是不可更新的。视图是不可更新的。 l l 由由一一个个基基表表定定义义的的视视图图,只只有有含含有有基基表表的的主主键键或或候候补补键键,并并且且视视图图中中没没有有用用表表达达式式或或函函数数定定义的属性,才允许更新;义的属性,才允许更新; l l由多表连接所定义的视图不允许更新;由多表连接所定义的视图不允许更新; l l定定义义中中用用到到GROUP GROUP BYBY子子句句或或集集函函数数的的视视图图不允许更新。不允许更新。 3.5.4视图的用途视图的用途 1. 1.视图能够简化用户的操作视图能够简化用户的操作 2. 2.视图使用户能以多种角度看待同一数据视图
154、使用户能以多种角度看待同一数据 3. 3. 视视图图对对重重构构数数据据库库提提供供了了一一定定程程度度的的逻逻辑辑独独立立性性辣喜娃倔窖尖敞皆涨虽梦船孤哥拭霉抒坐刹戏答馆界蚁往帕册给鞭峙邻耕数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载例如,将学生关系例如,将学生关系Student(Sno,Sname,Ssex,Sage,Sdept)Student(Sno,Sname,Ssex,Sage,Sdept)分为分为SX(Sno,Sname,Ssex) SX(Sno,Sname,Ssex) 和和SY(Sno,Sage,Sdept)SY(Sno,Sag
155、e,Sdept)两两个个关关系系,这这时时原原表表StudentStudent为为SXSX表表和和SYSY表表自自然然连接的结果。如果建立一个视图连接的结果。如果建立一个视图StudentStudent:CREATE CREATE VIEW VIEW Student Student (Sno, (Sno, Sname, Sname, Ssex, Ssex, Sage, Sdept)Sage, Sdept) AS AS SELECT SX.Sno,Sname,Ssex,Sage,Sdept SELECT SX.Sno,Sname,Ssex,Sage,Sdept FROM SX FROM SX,S
156、YSY WHERE SX.Sno WHERE SX.SnoSY.SnoSY.Sno; 4. 4.视图能够对机密数据提供安全保护视图能够对机密数据提供安全保护宝蹦陈早仁绒雇衔娩颁旬伏磨拯蛊舷苫然涛科半挖舱讨姨渝刃掉咬鹰砾牡数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载3.6嵌入式嵌入式SQL介绍介绍嵌入式嵌入式SQL(embedded SQL) SQL(embedded SQL) 嵌入式嵌入式SQLSQL必须解决下列四个问题:必须解决下列四个问题:(1)(1)宿宿主主语语言言编编译译器器不不可可能能识识别别和和接接受受SQLSQL语语言言,如如何
157、何将将嵌嵌有有SQLSQL的的宿宿主主语语言言编编译译成成可可执执行行码码,这这是首先要解决的问题;是首先要解决的问题;(2)(2)宿主语言和宿主语言和DBMSDBMS之间如何传递数据和信息;之间如何传递数据和信息;(3)(3)数数据据库库的的查查询询结结果果一一般般是是元元组组的的集集合合,而而宿宿主主语语言言使使用用变变量量( (单单值值) ),这这些些元元组组须须逐逐个个地地赋赋值值给给程程序序中中的的变变量量,供供宿宿主主语语言言处处理理,其其间间存存在在一一个个转转换问题;换问题;诗苞蚁稀劫摔雷扎矫搓魔蝇靛凛攘拽谎助喷棠缩俊些煤恩胎彦特辊协伯魁数据库原理与设计方法东南大学自动控制系邵
158、家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载(4)(4)两两者者的的数数据据类类型型有有时时不不完完全全对对应应或或等等价价,须须解解决决必必要要的的数数据据类类型型转转换换问问题题。要要进进行行何何种种数数据据类类型转换,与宿主语言和型转换,与宿主语言和DBMSDBMS有关。有关。如如ORACLEORACLE的的PROPRO接接口口:PRO*CPRO*C、PRO*PASCALPRO*PASCAL等。等。融熙腮蕾叔弛属讥函箩声乖心蛙兆加娜砍阶实莫揩瑟粤晴喻殊结康撤鸽失数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载第四章第四章数据库系
159、统结构数据库系统结构4.1数据库系统的模式结构数据库系统的模式结构typetypevaluevalue4.1.1数据库系统的三级模式结构数据库系统的三级模式结构1.1.模式模式2.2.外模式外模式3.3.内模式内模式泛蔓柒谨蝎菇豌踞寇惋毙浴阻抢悬诛否沫苍搞昏堤镀啸盔胰拓俞酵骤储愁数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载图4-1数据库系统的模式结构等凋返娠愧坪咎沿仔拄丛池诸献鞘呛示肩基询唬揍臂俭赡沃泊藤加阅隶狐数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载 4.1.2数据库的二级映象功能与数
160、据独立性数据库的二级映象功能与数据独立性两层映象:外模式两层映象:外模式/ /模式映象和模式模式映象和模式/ /内模式映象内模式映象 4.1.3Conclusion 4.2数据库系统的体系结构数据库系统的体系结构从从最最终终用用户户角角度度来来看看,数数据据库库系系统统分分为为单单用用户户结结构构、主从式结构、分布式结构和客户服务器结构等。主从式结构、分布式结构和客户服务器结构等。4.2.1单用户数据库系统单用户数据库系统图4-2单用户数据库系统篮去旦讥遂迁泼评啮执剩杆卿梨蓖谈微艰肮驮插痈容柄自乙肠寂帛氯手暗数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系
161、邵家玉下载4.2.2主从式结构的数据库系统主从式结构的数据库系统图4-3 主从式数据库系统特点:数据集中、处理集中。特点:数据集中、处理集中。沉加搽挤非爹迭漾颂翁瘸朵迢恬芯游踢逗较硬很结月龚夹统性若坟询程硫数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载4.2.3分布式结构的数据库系统分布式结构的数据库系统 特点:数据分布、处理分布。特点:数据分布、处理分布。 图4-4分布式数据库系统芳命早醒谗小侥熔胃焉骡铲惭们傀馈宴宅讥绿泻浚盼碾辱农爱屯拐耘号掸数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载4.
162、2.4ClientServer结构的数据库系统结构的数据库系统 特点:数据集中、处理分布特点:数据集中、处理分布 。 撵蹲料间厦瘸迹雷扳馅驴邹疤予郸溉稻匿鉴粳马惠挠洞独空且缺型讫扔清数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载特点:数据分布、处理分布特点:数据分布、处理分布 。 洞并尼骇洁掇绷段监入兽汹汤燥久镊拐镁颅颂簿个菌堤姬锁针蚕克急仙她数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载4.2.5联邦分布式数据库系统联邦分布式数据库系统每每个个结结点点所所看看到到的的数数据据模模式式仅仅仅仅限
163、限于于该该结结点点所所用用到到的的数数据据。它它般般由由两两部部分分组组成成:一一是是本本结结点点的的数数据据模模式式,二二是是供供本本结结点点共共享享的的其其他他的的点点上有关的数据模式。上有关的数据模式。结点间的数据共享由双边协商确定。结点间的数据共享由双边协商确定。特点:数据分布、处理分布。特点:数据分布、处理分布。目目 前前 大大 型型 主主 流流 DBMSDBMS( 如如 ORACLEORACLE、 SQL SQL ServerServer等等 ) 商商 品品 化化 产产 品品 均均 为为 支支 持持 分分 布布 的的Client/ServerClient/Server结构。结构。呸
164、雇兄炔亲更姨新受沤凄税不崇舒酬肺陡甸烘诱榷捷卞贤盟窄火爪烙抿酿数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载4.3Database Management System4.3.1DBMS的功能和组成的功能和组成1.1.数据定义数据定义2.2.数据操纵数据操纵3.3.数据库运行管理数据库运行管理4.4.数据组织、存储和管理数据组织、存储和管理5.5.数据库的建立和维护数据库的建立和维护6.6.数据通信接口数据通信接口萌夏颊隔倦馈菜腥沽殖馆咬肪骇惧工碴枉肄赖黑抄碳嫌埂划泳瑞沏俘划泡数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东
165、南大学自动控制系邵家玉下载为为了了提提供供上上述述6 6方方面面的的功功能能,DBMSDBMS通通常常由由以以下下4 4部分组成。部分组成。1.1.数据定义语言及其翻译处理程序数据定义语言及其翻译处理程序2.2.数据操纵语言及其编译数据操纵语言及其编译( (或解释或解释) )程序程序3.3.数据库运行控制程序数据库运行控制程序4.4.实用程序实用程序4.3.2数据库管理系统的工作过程数据库管理系统的工作过程拍蘸条曝甄哲其紧沛蚜联垫孵警率斋呈橇窖欣菱府奎火窘抡疾杆勾稠徘次数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载蓄偏叠泞韵渔印敬刃习茁恤弓串愧
166、膝擎荚辣堂问身惶贫阳袱塞乃稗摇悠酋数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载应应用用程程序序( (或或用用户户) )从从数数据据库库中中读读取取一一个个数数据据通通常常需要以下步骤:需要以下步骤:1.1.应应用用程程序序A A向向DBMSDBMS发发出出从从数数据据库库中中读读数数据据记录的命令;记录的命令;2.2.DBMSDBMS对对该该命命令令进进行行语语法法检检查查、语语义义检检查查,并并调调用用应应用用程程序序A A对对应应的的外外模模式式,检检查查A A的的存存取取权权限限,决决定定是是否否执执行行该该命命令令。如如果果拒拒绝绝执
167、执行行,则则向向用户返回错误信息;用户返回错误信息;3.3.在在决决定定执执行行该该命命令令后后,DBMSDBMS调调用用模模式式,依依据据外外模模式式模模式式映映象象的的定定义义,确确定定应应读读入入模模式式中的哪些记录;中的哪些记录;恬懂隧仙星烙妄乳启挥戌磊跪盆笺寐益瓷忌牛抽勾汽踏勃窿处雏猎灶唬穿数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载4.4.DBMSDBMS调调用用内内模模式式,依依据据模模式式内内模模式式映映象象的的定定义义,决决定定应应从从哪哪个个文文件件、用用什什么么存存取取方方式、读入哪个或哪些物理记录;式、读入哪个或哪些物
168、理记录;5.5.DBMSDBMS向向操操作作系系统统发发出出执执行行读读取取所所需需物物理理记录的命令;记录的命令;6.6.操作系统执行读数据的有关操作;操作系统执行读数据的有关操作;7.7.操操作作系系统统将将数数据据从从数数据据库库的的存存储储区区送送至至系系统缓冲区;统缓冲区;8.8.DBMSDBMS依依据据外外模模式式模模式式映映象象的的定定义义,导导出应用程序出应用程序A A所要读取的记录格式;所要读取的记录格式;预她颖颅焦粒拇不迪檀合红莎卒配围十谎烘扼删绅圈露蜜岁荐焉萧藉枫芹数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载1.1.DB
169、MSDBMS将将数数据据记记录录从从系系统统缓缓冲冲区区传传送送到到应应用用程序程序A A的用户工作区;的用户工作区;2.2.DBMSDBMS向向应应用用程程序序A A返返回回命命令令执执行行情情况况的的状状态态信息。信息。图图4-84-8表表示示了了一一个个关关系系DBMSDBMS处处理理上上述述过过程程的的层层次次结结构。构。哪棵杂捌斤曲亚坟涕忽秉玩捡湍朗眺蹋椒拴贱群廖襟悄嚏扒菱窃绍宝雄遵数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载图4-8 关系DBMS的层次结构颠诡锄于驴婚墓朗郝宿兰芒陵圈备叠辉具设荤亚肢理懊岗鲜绽灭兜考金瞥数据库原理与
170、设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载4.3.3TRANSACTION1 1Atomic Nothing Or AllAtomic Nothing Or All2 2ConsistencyConsistency3 3IsolationIsolation4 4DurabilityDurability例例1 1 将款项将款项S S从从A A帐号拨给帐号拨给B B帐号。帐号。BEGIN TRANBEGIN TRAN/* /*事务开始事务开始*/ */Read ARead A/* /*读读A A帐号帐号*/ */A=A-SA=A-S/* /*从从A A帐号
171、中减去款项帐号中减去款项S*/S*/If A0 thenIf A0 then /*A/*A款不足款不足*/ */抖劳荫氨桩搪瘤圭肥慕素浊凝闸蜒塑榷彤培撬毙贞测餐刚拙耘甲哈煮铡酵数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载BeginBeginDisplay “ADisplay “A款不足款不足” ”ROLLBACKROLLBACK/* /*卷卷回回事事务务,即即返返回回到到该该事事务务执行之前的状态执行之前的状态*/ */EndEndElseElseBeginBeginB=B+SB=B+S/* /*为为B B帐号加上款项帐号加上款项S*/S*/
172、Display “Display “拨款完成拨款完成” ”COMMITCOMMIT/* /*事务提交,持久化事务提交,持久化*/ */EndEnd漏偷丢挂学罕傻眷账虾怕痰员杂啼扭短箭诸棘教灭淡闸砂胀辅摘疽箭封鞋数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载出口:出口:ROLLBACKROLLBACKNothingNothingCOMMITCOMMITAllAll4.3.4数据库管理系统的实现方法数据库管理系统的实现方法1 1N N方案方案如FOXPRO、MS ACCESS等桌面(DESKTOP)DBMS。诺安幽耀掂咋殷畴刽杂夕些牡壬趴哲擅祸存垂
173、硷接掉刮列途匣轿亏枢紊琼数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载2 22N2N方案方案3 3M+NM+N方案方案4 4N+1N+1方案方案l l Nonblocking Nonblocking I/O I/O and and asynchronous asynchronous I/OI/Ol lFair ScheduleFair Schedule徒佬潜诵屋国突周赚祝勤衙表某菜皿盒巷洛怨逊漂迸潍证塑琳弓楼瞄释辆数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载4.44.4Data Catalog
174、 Data Catalog (or directoryor directory)盗痰矛豆告仿测驾财工务菱贿救涵锹蟹扳擞绅由棱倔茶惋毯古萍浴疹玩癌数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载 数数据据字字典典(data data dictionarydictionary) 叼蓬僳忠文独羚角勤巳揽辞虽相庆串揽蒲礁勃硬抿沟旬擞弓必薯铜迭押整数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载 第五章第五章数据库的存储结构数据库的存储结构5.1数据库存储介质的特点数据库存储介质的特点l l内存内存容容量量低
175、低(一一般般只只有有几几百百MM,最最多多一一两两个个G G),价价格格高,速度快,数据易丢失(掉电、当机等)。高,速度快,数据易丢失(掉电、当机等)。一般做一般做DBMSDBMS(或(或CPUCPU)和)和DBDB之间的数据缓冲区。之间的数据缓冲区。实时实时/ /内存数据库系统中使用内存存放实时数据。内存数据库系统中使用内存存放实时数据。l l硬盘硬盘容容量量高高(一一般般有有几几十十G G,多多到到一一两两百百G G),价价格格中中,速度较快,数据不易丢失(除非物理性损坏)。速度较快,数据不易丢失(除非物理性损坏)。一一般般做做用用来来存存放放DBDB。实实时时/ /内内存存数数据据库库系
176、系统统中中使使用用硬盘存放历史数据库。硬盘存放历史数据库。狸冲醇戏医妊腰腺洲推焙什浑虞玛捞宏做撞青拘缨境崖届贺脓爱钓两蜡惜数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载l l移动硬盘(移动硬盘(USBUSB接口)接口)容容量量高高(一一般般有有几几十十G G),价价格格中中,速速度度较较快快,数数据不易丢失(除非物理性损坏)。据不易丢失(除非物理性损坏)。一般做用来做备份。一般做用来做备份。l l光盘光盘容容量量低低(一一般般650M/650M/片片,但但光光盘盘可可在在线线更更换换,海海量量),价价格格低低,速速度度中中,数数据据不不易易丢丢
177、失失(除除非非物物理理性性损坏)。损坏)。一般做用来做备份。一般做用来做备份。l l磁盘(软盘)磁盘(软盘)容容量量低低(一一般般有有几几MM,优优盘盘多多到到一一两两百百MM),价价格格中,速度较慢,数据不易丢失(除非物理性损坏)。中,速度较慢,数据不易丢失(除非物理性损坏)。一般数据库不使用磁盘。一般数据库不使用磁盘。盈功嘴辱偿币孔穴钟晦蓬源勿效魏淮晚烦臻拘废南跋握趁津椰纽工划霸绊数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载l l磁带磁带容容量量低低(但但可可在在线线更更换换,海海量量),价价格格低低,速速度度最最慢慢,且且要要按按顺顺序
178、序存存取取,数数据据不不易易丢丢失失(除除非非物物理性损坏)。理性损坏)。一般做用来做备份。一般做用来做备份。按速度从高到低:按速度从高到低:内内存存、硬硬盘盘、USBUSB盘盘(移移动动硬硬盘盘和和优优盘盘)、光光盘盘、软盘、磁带。软盘、磁带。按在线容量从大到小:按在线容量从大到小:硬硬盘盘、移移动动硬硬盘盘、内内存存、光光盘盘、磁磁带带、优优盘盘、软软盘。盘。物理块:物理块:512byte/1K/2K/4K/8K512byte/1K/2K/4K/8K物献枯党峨拢既饭彻酌涨沮寒嘱露幂免筒瘫肥巩甩恃晚遥茶欺勇貌几硕贴数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自
179、动控制系邵家玉下载原因:原因:(1)(1)减少减少I/OI/O的次数;的次数;(2)(2)减少间隙的数目,提高硬盘空间的利用率。减少间隙的数目,提高硬盘空间的利用率。ORACLEORACLE逻逻 辑辑 块块 与与 物物 理理 块块 ( init.orainit.ora中中db_block_sizedb_block_size定义逻辑块大小)定义逻辑块大小) 缓缓 冲冲 块块 和和 缓缓 冲冲 区区 ( 即即 SGASGA中中 的的 Data Data Buffer Buffer CacheCache)延延迟迟写写(delayed (delayed write)write)技技术术/ /预预取取(
180、Prefetching)(Prefetching)技技术术(ORACLEORACLE中由中由DBWRDBWR进程完成数据的读写)进程完成数据的读写)碱跑塔砌痴蛾碳昼喇彩朵瞅忻萄银巍黎惋转打庐恕陋什怪言痘呜瓦欣互帛数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载5.2记录的存储结构记录的存储结构5.2.1记录的物理表示记录的物理表示1 1Positional TechniquePositional Technique挟菌片谓北证暴夸桃患炒旬桩尘魂侨骋房豌色杏宁煎妻邯辱伍操级制笔胺数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东
181、南大学自动控制系邵家玉下载2 2Relational TechniqueRelational Technique3 3Counting TechniqueCounting Technique窃盅莹住颖迷损压鞘辈额示仑靶投趁幕跨膝纬蹿易谎蕴库凶匡抽榆布参恨数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载5.2.2记录在物理块上的分配记录在物理块上的分配不跨块组织不跨块组织(unspanned organization)(unspanned organization)跨块组织跨块组织(spanned organization)(spanned org
182、anization)倡逼哩迷笋苍蜘冰试触佬轴奋耶资递降帽醚敖腹栽我须全妊敬关读疙咐频数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载倘告锐炉撵寻侨赃楔朋掩涵尊碍嫉瞅提辛涧锋商滓晶揍猎赚相精锭豌牙丫数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载5.2.3物理块在磁盘上的分配物理块在磁盘上的分配1 1连续分配法连续分配法(continuous allocation)(continuous allocation)2 2链接分配法链接分配法(linked allocation)(linked alloca
183、tion)3 3簇集分配法(簇集分配法(Clustered AllocationClustered Allocation)4 4索引分配法(索引分配法(Indexed AllocationIndexed Allocation)5.2.4数据压缩技术数据压缩技术1 1消零或空格符法(消零或空格符法(null suppressionnull suppression)如:如:#5#5表示表示5 5个空格,个空格,66表示表示6 6个零等。个零等。2 2串型代替法(串型代替法(pattern substitutionpattern substitution)厅脉戎界屿古蠕西蛹碎耕菠笺犯轿跃柔移权刁阜湖
184、笼檬碱性扫虫尤囚鲸榔数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载3 3索引法(索引法(indexingindexing)喻硒颐柬俄讫台抢歌招事试全某梅默旭囱刚蛆宁匡莫鳖泄授调陀旱界要进数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载5.3文件结构和存取路径文件结构和存取路径5.3.1访问文件的方式访问文件的方式1 1查查询询文文件件的的全全部部或或相相当当多多的的记记录录2 2查询某一特定记录查询某一特定记录3 3查询某些记录查询某些记录4 4范围查询范围查询5 5记录的更新记录的更新5.3.2
185、数据库对文件的要求数据库对文件的要求5.3.3文件的基本类型文件的基本类型1 1堆文件堆文件(heap file)(heap file)方便(快):插入方便(快):插入不方便(慢):查找、删除不方便(慢):查找、删除2 2直接文件(直接文件(direct filedirect file)际厄吱催贰总钻毙翅康契尊粗骸癸城仕抹瞻溢丁镰咋粕奉什同厩潞推蝎亮数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载方便(快):按散列键访问方便(快):按散列键访问不方便(慢):其它访问方式不方便(慢):其它访问方式3 3索引文件(索引文件(indexed filei
186、ndexed file)方便(快):按索引键访问方便(快):按索引键访问不不方方便便(慢慢):其其它它访访问问方方式式,特特别别是是更更新新时时要要进行索引维护。进行索引维护。l l索引项索引项= l lprimary index and secondary indexprimary index and secondary indexl lnondense index and dense index nondense index and dense index 灾耙践器衍舱埋支邦衅鄂嗽倡蛇浪豫屁改保锤烘惊察重监俊激罚犹脸荐哪数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东
187、南大学自动控制系邵家玉下载挞茁勺褒苏瞪咆没钉芥谗鸵圆米趋樟裹郡兄真是肩早眉桩被畦茧凰锰呈块数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载申缸匪仑弛侈叁莎坛鞘虞贤寿蚊澄蚀耙传捧骋趟氟兽痘芽误漾狱租载拴觅数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载l l预查找功能预查找功能设设要要查查询询年年龄龄为为2020岁岁或或2l 2l岁岁的的四四年年级级学学生生,如如果果学学生生文文件件在在年年龄龄和和年年级级属属性性上上建建有有索索引引,则则可可查查出出年年龄龄为为2020岁岁的的学学生生记记录录的的集
188、集合合S S2020,年年龄龄为为2l 2l岁岁的的学学生生记记录录的的集集合合S S2121,四四年年级级学学生生记记录录的的集集合合S Ss s,于是,所需的学生记录的集合于是,所需的学生记录的集合S S应为:应为:S=(SS=(S2020S S2121) S) Ss sl lclustering indexclustering index拄嫂倚褥川蜕溜晓镣盆完晶僧错淄掩仲半皑揽贴祥柑虐征抖沛冶恼洛侩奄数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载l lB tree indexB tree index动态平衡多叉(分)树动态平衡多叉(分)树
189、有有B B+ +树树、B B* *树树等等,数数据据库库管管理理系系统统中中常常用用B B+ +树树实实现索引。现索引。B B+ +树结构:树结构:含灭癣致驳标柏冶鳃应劫驳皖禾柔狰幢末纵谨侦犊栓而嘶瓷蚤恨补础托湍数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载猾暑查根甥从伶霓士卫葡奥则便凭肥搽弊懒吟潮喧叔妇吞救推须尘猿拖揪数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载相螺贴咕嘛号帅顺输知骤诉椎锚拎坟邢饵褐褥袱嘱登搐蠕牛暮剑阻释庐与数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法
190、东南大学自动控制系邵家玉下载B B+ +树动态平衡特性:树动态平衡特性:(1)(1)每个结点最多有每个结点最多有2k2k个键值;个键值;(2)(2)根根结结点点至至少少有有个个键键值值,其其他他结结点点至至少少有有k k个个键值;键值;(3)(3)除除叶叶结结点点( (即即顺顺序序集集结结点点) )无无子子女女外外,对对于于其其他他结点,若有结点,若有J J个键值,则有个键值,则有J+1J+1个子女;个子女;(4)(4)所所有有叶叶结结点点都都处处于于树树的的同同一一级级上上,即即树树始始终终保保持平衡。持平衡。k k值值一一般般根根据据块块的的大大小小确确定定,使使得得B B+ +树树的的结
191、结点点最最大大不超过一个块,即一个结点占一个块(不超过一个块,即一个结点占一个块(blockblock)。)。枢谴愉炸窗峪详胖邓娩弹灿诞兹袁建栋顾氧吊纤月咳勾花健拾恃圈茶拖二数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载优优点点:所所有有记记录录都都具具有有相相同同的的访访问问I/OI/O次次数数(即即树树的的高高度度+ +记记录录本本身身访访问问的的I/OI/O次次数数),(若若k=20k=20,树树的的高高度度为为1111,则则至至少少可可表表示示20201010=1024X10=1024X101010个个记录)。记录)。缺缺点点:索索引引
192、维维护护需需要要代代价价,当当记记录录更更新新引引起起索索引引变变化化时时,最最差差的的情情况况可可能能从从底底层层一一直直影影响响到到根根结结点,即整个树的变动。点,即整个树的变动。徐污脓投钾锗光靛噪讹侠俐腻验涯痘击咆少蚀浆帅庚瑚钥养娇肝块挫裹岿数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载第六章第六章查询处理和优化查询处理和优化6.1Introduction1 1代数优化代数优化2 2物理优化物理优化3 3规则优化规则优化4 4代价估算优化代价估算优化肋烤对辰蝶霓陕嫌瞒已哦蛀苔阁民致丸烧曲蚊乖忻姓眩自浇打啦倘醛酱泄数据库原理与设计方法东南大
193、学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载桩贼潭招段糊雷诞赋遇倪跪剿寻竭堡驮苦生艰娠弟壬苇惶噎减途豫殴块缎数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载6.2代数优化代数优化露贵诽暮蝇亨刨忽虽芋硝田惜呜捆矿溯访肤疹仲撼骚辖宪七踊淘那抄琐翌数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载推棒刘屉膝猿裳稿惶嘘勉啄哲殃徐单腿路馋郁躁语拘浴嘎曳川剑磊针柄坐数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载例例1 1设设有有S S(供
194、供应应商商),P(P(零零件件) ),SP(SP(供供应应关关系系) )三个关系,关系模式如下:三个关系,关系模式如下:S S(SNUMSNUM,SNAMESNAME,CITYCITY)P P(PNUMPNUM,PNAMEPNAME,WEIGHTWEIGHT,SIZESIZE)SPSP(SNUMSNUM,PNUMPNUM,DEPTDEPT,QUANQUAN)设有查询设有查询Q Q:SELECT SNAMESELECT SNAMEFROM SFROM S,P P,SPSPWHERE S.SNUM=SP.SNUMWHERE S.SNUM=SP.SNUMAND SP.PNUM=P.PNUMAND S
195、P.PNUM=P.PNUMAND S.CITY=AND S.CITY=NANJINGNANJINGAND P.PNAME=AND P.PNAME=BOLTBOLTAND SP.QUAN10000AND SP.QUAN10000;泽露阐拭趋鱼询鄙田扑挣者成阉吱邀霄晕编址宋时份父茄泊恳雹针帝荡老数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载橱憎乖骏涌翁硅率缸铀佰枪吁殴趴次嘲郴突埃担溅沃伪笺涝见锰睫崩艾脑数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载富卡什跳岂箭灰媒得疹哉冬僳炸灌薄年盐封沫资资上俄舵杠
196、丰赊锤郡管唆数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载呀卵刷瓷异兴氢贸颅孕缕蓄冻均继用溪衫鞭诞申文冶踩纬谦滩郎幂鞠砂雌数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载蕴释悲峨瓣裔墒贮代东娱韶舜遗卉耐誓缕馁聚彪殆煎肖伺踞座漠楔巷魂拿数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载黄案滓卵普畅抒胡理迢喉绵揖巧杏几绘树淘铂择词陨锚酗廖池刺粤窟芝踏数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载代数优化的大
197、致过程:代数优化的大致过程:1 1以以SELECTSELECT子子句句对对应应投投影影操操作作,以以FROMFROM子子句句对对应应笛笛卡卡儿儿乘乘积积,以以WHEREWHERE子子句句对对应应选选择择操操作作,生成原始查询树。生成原始查询树。2 2应应用用变变换换原原则则(2)(2)、(6)(6)、(7)(7)、(9)(9),尽尽可可能能将将选选择条件移向树叶方向。择条件移向树叶方向。3 3应应用用连连接接、笛笛卡卡儿儿乘乘积积的的结结合合律律,按按照照小小关关系系先做的原则,重新安排连接先做的原则,重新安排连接( (笛卡儿乘积笛卡儿乘积) )的次序。的次序。4 4如如果果笛笛卡卡儿儿乘乘积
198、积后后还还须须按按连连接接条条件件进进行行选选择择操操作,可将两者组合成连接操作。作,可将两者组合成连接操作。5 5对对每每个个叶叶结结点点添添加加必必要要的的投投影影操操作作,以以消消除除对对查询无用的属性。查询无用的属性。桂削甭柜巫着摔稳盐赛筹垛沙琢镀厄胆抚芍菜亲拖柔昔屈盐梨张拴火倔搪数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载6.3依赖于存取路径的规则优化依赖于存取路径的规则优化6.3.1选择操作的实现和优化选择操作的实现和优化1 1相关因素相关因素l l选择条件选择条件l l可用的存取路径可用的存取路径l l选取的元组数在整个关系中所
199、占的比例有关选取的元组数在整个关系中所占的比例有关2 2实现方法实现方法(1)(1)对对于于小小关关系系,不不必必考考虑虑其其他他存存取取路路径径,直直接接用用顺顺序序扫扫描描。例例如如对对于于六六个个物物理理块块大大小小的的关关系系,如如果果顺顺序序搜搜索索,则则平平均均的的I/OI/O次次数数为为3 3,不不值值得得采采用用其他存取路径。其他存取路径。(2)(2)如如果果无无索索引引或或散散列列等等存存取取路路径径可可用用,或或估估计计中中选选的的元元组组数数在在关关系系中中占占有有较较大大的的比比例例( (例例如如大大于于2020) )且有关属性上无族集索引,则用顺序扫描。且有关属性上无
200、族集索引,则用顺序扫描。连痕厌虾帘垦催锄莲媳七燎淀坑淮充用参蜡蝉氛哺救弧拙拦骋翔蜀芒环状数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载(3)(3)对对于于主主键键的的等等值值条条件件,最最多多只只有有一一个个元元组组可可以以满足此条件,应优先采用主键上的索引或散列。满足此条件,应优先采用主键上的索引或散列。(4)(4)对对于于非非主主键键的的等等值值条条件件,要要估估计计中中选选的的元元组组数数在在关关系系中中所所占占的的比比例例。如如果果比比例例较较小小( (例例如如小小于于2020) ),可可以以用用无无序序索索引引,否否则则只只能能用用簇
201、簇集集索索引引或或顺序扫描。顺序扫描。(5)(5)对对于于范范围围条条件件,一一般般先先通通过过索索引引找找到到范范围围的的边边界界,再再通通过过索索引引的的顺顺序序集集沿沿相相应应方方向向按按索索,例例如如对对于于条条件件SageSage2020,可可先先找找到到SageSage2020的的顺顺序序集集结结点点,再再沿沿顺顺序序集集向向右右搜搜索索。若若中中选选的的元元组组数数在在关关系系中中所所占占比比例例较较大大,且且无无有有关关属属性性的的簇簇集集索索引引,则则宜宜采采用用顺顺序序扫扫描描。例例如如对对于于条条件件SageSage1515,因为大学生绝大部分是大于,因为大学生绝大部分是
202、大于1515岁的。岁的。尺涉芹呕掺注瘸层排披项嚷平姓胜蛆丘夺嫌滥协复抨锻虚闽刷梁被痘宣娶数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载(6)(6)对对于于用用ANDAND连连接接的的合合取取选选择择条条件件。若若有有相相应应的的多多属属性性索索引引,则则优优先先采采用用多多属属性性索索引引。否否则则,可可检检查查诸诸合合取取条条件件中中有有无无多多个个可可用用二二次次索索引引的的,若若有有,则则用用预预查查找找法法处处理理。即即通通过过二二次次索索引引找找出出满满足足各各合合取取条条件件的的tidtid集集合合,再再求求这这些些tidtid集集
203、合合的的交交集集。然然后后取取出出交交集集中中tidtid所所对对应应的的元元组组并并在在取取这这些些元元组组的的同同时时,用用合合取取条条件件中中的的其其余余条条件件检检查查。凡凡能能满满足足所所有有其其余余条条件件的的元元组组,即即为为所所选选择择的的元元组组。如如果果上上述述途途径径都都不不可可行行,但但合合取取条条件件中中有有个个别别条条件件具具有有规规则则(3)(3)、(4)(4)、(5)(5)中中所所述述的的存存取取路路径径,则则可可用用此此存存取取路路径径选选择择满满足足此此条条件件的的元元组组,再再将将这这些些元元组组用用合合取取条条件件中中的的其其他他条条件件筛筛选选。若若在
204、在诸诸合合取取的的条条件件中中,没没有有一一个个具具有有合合适适的的存存取取路路径径那只有用顺序扫描。那只有用顺序扫描。护凌泵政职掇惹须道熙裴拐吏上经骑牟招狡潦研找议绍履滴镐觅象蒋躺蕊数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载(7)(7)对对于于用用OROR连连接接的的析析取取选选择择条条件件,尚尚无无好好的的优优化化方方法法,只只能能按按其其中中各各个个条条件件分分别别选选出出一一个个元元组组集集,再再求求这这些些元元组组集集的的并并。众众所所周周知知,并并是是开开销销大大的的操操作作,而而且且在在OROR连连接接的的诸诸条条件件中中,只
205、只要要有有一一个个条条件件无无合合适适的的存存取取路路径径,就就不不得得不不采采用用顺顺序序扫扫描描来来处处理理这这种种查查询询。因因此此,在在查查询询语语句句中中,应应尽尽量避免采用析取选择条件。量避免采用析取选择条件。(8)(8)有有些些选选择择操操作作只只要要访访问问索索引引就就可可得得到到结结果果,例例如如查查询询索索引引属属性性的的最最大大值值、最最小小值值、平平均均值值等等。在此情况下,应优先利用索引、避免访问数据。在此情况下,应优先利用索引、避免访问数据。瓤凳镁骆泳菠弯溯埂剥专身炭烫不糖荧杂纱栋云囚适咬枫凿累岩司童叁粟数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设
206、计方法东南大学自动控制系邵家玉下载6.3.2连接操作的实现和优化连接操作的实现和优化1.1.嵌套循环嵌套循环(nested loop)(nested loop)法法R R R.A=S.BR.A=S.B S S外关系外关系(outer relation)(outer relation)内关系内关系(inner relation)(inner relation)2.2.利用索引或散列寻找匹配元组法利用索引或散列寻找匹配元组法3.3.排序归并排序归并(sort-merge)(sort-merge)法法容盾席驻因池面岛螺郝峻肮浩芽隆气厅虎欢海舔以殴柄锻他炭冠甚酒歼岂数据库原理与设计方法东南大学自动控制
207、系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载集乙颅椎痉尚堤烃觉丁钾概袜磕殷胎肌古啃盲盟峭随掳纺鼻恼陪瘴详挖肯数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载下面是选用连接方法的启发式规则。下面是选用连接方法的启发式规则。(1)(1)如如果果两两个个关关系系都都已已按按连连接接属属性性排排序序,则则优优先先用用排排序序归归并并法法。如如果果两两个个关关系系中中已已有有一一个个关关系系按按连连接接属属性性排排序序,另另一一个个关关系系很很小小,也也可可考考虑虑对对此此未未排排序序的的关关系系按按连连接接属属性性排排序序,再再用用排排序
208、序归归并并法法连接。连接。(2)(2)如如果果两两个个关关系系中中有有一一个个关关系系在在连连接接属属性性上上有有索索引引( (特特别别是是簇簇集集索索引引) )或或散散列列,则则可可令令另另一一关关系系为为外外关关系系,顺顺序序扫扫描描,并并利利用用内内关关系系上上的的索索引引或或散散列寻找其匹配元组,以代替多遍扫描。列寻找其匹配元组,以代替多遍扫描。(3)(3)如如果果应应用用上上述述两两规规则则的的条条件件都都不不具具备备,且且两两个关系都比较小,可以应用嵌套循环法。个关系都比较小,可以应用嵌套循环法。(4)(4)如如果果(1)(1)、(2)(2)、(3)(3)规规则则都都不不适适用用,
209、可可用用散散列列连连接法。接法。刨番箍锐垃鸟揍烃付肺呀喷乱瘤蹄简倡支帕振伪芭贬痰戊茄吏傻菜殊鱼碘数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载6.3.3投影操作的实现投影操作的实现6.3.4集合操作的实现集合操作的实现6.3.5组合操作组合操作修萧陷榴涣瓦化剃卸钓措虏洛癌朔抓本婆灶连惧恭饵挣万愚品疲坟昆陕顶数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载 第七章第七章事务管理事务管理 恢复恢复事务管理事务管理 并发控制并发控制7.1恢复引论恢复引论faultfaulterrorerrorfailu
210、refailurelossloss 1. 1.单纯以后备复本为基础的恢复技术单纯以后备复本为基础的恢复技术积高较便材拆潍渔跃烂之阑菜姬致婪几擂原鸯甜手岔振锰呕愤江气弱伏豌数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载诛叛谭验觅诗蔑垢奶切协陛院除砒儒代鹊呵蹈砷胸椎涉嗣句慷语硝巧恶乖数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载2.2.以以后后备备复复本本和和运运行行记记录录(log(log或或journal)journal)为为基基础础的的恢复技术恢复技术运行记录包括:运行记录包括:(1 1)前象
211、(前象(Before Image BIBefore Image BI)undoundo(2 2)后象(后象(After Image AIAfter Image AI)redoredo(3 3)事务状态事务状态commitcommitrollback/abortrollback/abort佐耙浮肢祭婴教赦壤话契津碴聊袖抽鸥铅脯尼抗昆抉目辊蓄屁砖黔率曝钾数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载backward recovery backward recovery undo undoforward recovery forward recove
212、ry redo redo 3. 3.基于多复本的恢复技术基于多复本的恢复技术independent failure modeindependent failure mode邯抹邑滦胸谓媒拇猾钓怨杆盒茅狮措诸细救逻两褒坚然裙短屡塔驭新茨彦数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载多服务器多服务器DBSDBS:1 1双机热备份双机热备份2 2双机双机CLUSTERCLUSTER3 3磁盘阵列磁盘阵列RAID05RAID054 4等等曼睫墓荫商觅沟抵映缕者街奠浇全匹录目钧下澜玄鸳吾苑瞒运许砷你哉褂数据库原理与设计方法东南大学自动控制系邵家玉下载数
213、据库原理与设计方法东南大学自动控制系邵家玉下载7.2运行记录的结构运行记录的结构1.1.Active Transaction List (ATL)Active Transaction List (ATL)2.2.Committed Transaction List (CTL)Committed Transaction List (CTL)3.3.前象文件前象文件4.4.后象文件后象文件措施:措施:1 1不保留已提交事务的前象不保留已提交事务的前象2 2有选择地保留后象有选择地保留后象3 3合并后象合并后象匀碟填给垃棕牙扫边磕绍怠免俗篓琉埠诚造蜘坝年卤志瓷矢厄曰划拢递吕数据库原理与设计方法东南大
214、学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载7.3更新事务的执行与恢复更新事务的执行与恢复更新事务在执行时应遵守下列两条规则:更新事务在执行时应遵守下列两条规则:1 1提交规则提交规则(commit rule)(commit rule)2 2先记后写规则先记后写规则(log ahead rule)(log ahead rule)方案:方案:1 1后象在事务提交前完全写入数据库后象在事务提交前完全写入数据库其步骤如下:其步骤如下:(1 1)TIDTIDATLATL(2 2)BIBIloglog /* /*先记后写规则先记后写规则*/ */(3 3)AIAIDBDB /*
215、 /*在提交前,后象完全写入在提交前,后象完全写入DBDB, 满足提交规则满足提交规则*/ */(4 4)TIDTIDCTLCTL(5 5)从从ATLATL中删除中删除TIDTID水浦汞斗探惊得凭兔拢啦瞬眷戈靳彰嘲尘扰阐蝗篷撵饿钱婚飞韵履甘彰予数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载2 2后象在事务提交后才写入数据库后象在事务提交后才写入数据库其步骤如下:其步骤如下:(1 1)TIDTIDATLATL(2 2)AIAIloglog /* /*提交规则提交规则*/ */(3 3)TIDTIDCTLCTL(4 4)AIAIDBDB(5 5)从
216、从ATLATL中删除中删除TIDTID君胞悍汤嘉巍深手式反刹份官讯汾蚌年囊铣闪聋裸琐逸誊陷丰幢心踢客碘数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载3 3后象在事务提交前后写入数据库后象在事务提交前后写入数据库其步骤如下:其步骤如下:(1 1)TIDTIDATLATL(2 2)AIAI、BIBIloglog/* /*提提交交规规则则及及先先记记后后写写规则规则*/ */(3 3)AIAIDBDB(部分写入)(部分写入)(4 4)TIDTIDCTLCTL(5 5)AIAIDBDB(继续完成)(继续完成)(6 6)从从ATLATL中删除中删除TID
217、TID吗民籍咸署吾屯掷痛耪忻惋士糖命贮需癸窿颊牙拙陨晾滥圆兆要摧贰聊总数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载与饮弓早狱滔科苑遗转查倍迎屉芯刺究卢莆臣帽畸夷啼贴单矿全屋搏阔兆数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载7.4易地更新恢复技术易地更新恢复技术腋单针伺烩审莽狙馈柴法餐塘决例用广篡惯西烘吴烘肉徽饲暴块愤劫灵志数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载设有数据库设有数据库DBDB为:为:DB=FDB=F1 1,F Fj j,F
218、 Fn n 泄赎宙虹巩人侥更踢神煌疆祭林及梦问誉仇驮基鄂鸣领聊雨惮傲昭论烩困数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载(1) 取取M到到内内存存,并并读读取取Mj;(2)按按Mj找找到到PTj,并并取取PTj到到内内存存中中(为为Ti所所用用的的PTj的的内内存存版版本本表表示示为为PTji,见图见图7-8);(3)按按PTjik取取Fj的的第第k页页Pjk至至内内存存,并并在在内内存存中中更更新新其其内内容容,设设更更新新后后的的Pjk为为Pjk;(4)写写入入Pjk至至数数据据库库的的一一个个新新地地方方,设设其其在在磁磁盘盘上的地址为
219、上的地址为ADD(Pjk);(5)在在内内存存中中,以以ADD(Pjk)加加取取代代PTjik,因因而而在内存中形成在内存中形成PTj的新版本的新版本PTji;尸梭枚芋渊屏簧拭虞爹汇捷烙仓粳贺莫姑褐嫉谩咬凄毕要蛙莆销膝满毒撵数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载(6)写写入入PTji至至数数据据库库的的一一个个新新地地方方,设设其其在磁盘上的地址为在磁盘上的地址为ADD(PTji);(7)再取再取M至内存;至内存;(8)以以ADD(PTji)取代取代Mj;(9)在原地址写回在原地址写回M,事务提交。,事务提交。易地更新恢复技术的限制和缺
220、点易地更新恢复技术的限制和缺点悬谐讣纯仅梁液崇米毯扣挨蓟堑戳脖氓棺疡恢着贿毖逞帚伦榷莱株喻条羹数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载7.5消息的处理消息的处理消息管理(消息管理(messagemanagerMM)押响毖攒划积铰半乏浩酉乒丧圈置药方需徒檬酗惶丈屹熄娃身绰搜饵责树数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载7.6失效的类型及恢复的对策失效的类型及恢复的对策1.事务失效事务失效措施:措施:l lMM丢弃该事务的消息队列;丢弃该事务的消息队列;l l如果需要,进行如果需要,进行
221、undo操作;操作;l l从从ATL删删除除该该事事务务的的TID,释释放放该该事事务务所所占的资源。占的资源。2.系统失效系统失效措施:措施:l l重新启动操作系统和重新启动操作系统和DBMS;l l恢恢复复数数据据库库至至一一致致状状态态(对对末末提提交交的的事事务务进进行行undo操作,对已提交的事务进行操作,对已提交的事务进行redo操作操作)。淮息欧掺祁钎斧即发霍沙聊诽驳笛披睹舵绅苍梆稠甫底氟萧崎哗吻效娥挺数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载检查点(检查点(checkpointCP)惠语肇评真译窜懂嘉辈剔科敞状剥静常抛方哨刻
222、疹游脂横歪姓杰雇务攘贱数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载取取CP的过程如下:的过程如下:l l暂停事务的执行暂停事务的执行l l写写入入上上一一个个CP以以后后所所提提交交的的事事务务留留在在内内存存中中的后象的后象l l在运行记录的提交事务表中记下检查点在运行记录的提交事务表中记下检查点l l恢复事务的执行。恢复事务的执行。3.介质失效介质失效措施:措施:l l修复系统,必要时更换磁盘;修复系统,必要时更换磁盘;l l如如果果系系统统(操操作作系系统统和和DBMS)崩崩溃溃,重重新新启启动动系统;系统;l l加载最近后备复本;加载
223、最近后备复本;l l用用运运行行记记录录中中的的后后象象,重重做做取取最最近近后后备备复复本本以后提交的所有事务。以后提交的所有事务。踞霜醋症讶懈讨馁打掷贯驹唆解脐埃洱麓象斑体哑通锗织玩奎锑籍赖构娄数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载7.77.7并发控制引论并发控制引论7.7.1数据库系统中的并发数据库系统中的并发串行访问串行访问 交叉并发交叉并发并发访问并发访问 同时并发同时并发虎袁缝擦刨欧逊吠虞唉汽达舒洗穿黑河嵌笺镇卖鞘采淄诌床后谰鸳绿彬故数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉
224、下载7.7.2并发的目的并发的目的1. 1. 改善系统的资源利用率改善系统的资源利用率2.改善短事务的响应时间改善短事务的响应时间谨缀竖栋谁青具隙突顾专矫岛挤刮沿石串菱摇涅卯诲崭桓替汝赂期赌渗源数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载7.7.3并发引起的问题并发引起的问题1 1丢失更新(丢失更新(lost updatelost update)写写写冲突(写冲突(write-write conflictwrite-write conflict)2 2读脏数据(读脏数据(dirty readdirty read)读读写冲突(写冲突(read-
225、write conflictread-write conflict) 箕暗栖悉练榨谴城涧政为煮蓑骑磐恐盎壹体诉锣寄哑拭喷闭左敛碍尼铲铭数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载夷本倦速亢农县奔赋茧另签堰鹤浮且仿奶纠板彩枫缆可车抿摄磨销冕奴棵数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载3 3读值不可复现(读值不可复现(unrepeatable readunrepeatable read)读读写冲突(写冲突(read-write conflictread-write conflict) 恕陨匙
226、镇纷妄审送猴谩佩游烟嗜依氟察逼蔓叫悔帅钟丽骸棱饶样慈熔匝梆数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载7.7.4并发控制的正确性准则并发控制的正确性准则操操作作顺顺序序安安排排的的原原则则是是:既既要要交交叉叉执执行行,以以充充分分利利用系统的资源;又要避免访问冲突。用系统的资源;又要避免访问冲突。S=S=R R1 1(x)(x)WW2 2(x)(x)R R1 1(x)(x)目标等价(目标等价(view equivalenceview equivalence)冲突等价(冲突等价(conflit equivalenceconflit equiv
227、alence) 冲突的操作:冲突的操作:R Ri i(x)(x)和和WWj j(x)(x)以及以及WWi i(x)(x)和和WWj j(x) i(x) i j j不冲突的操作:不冲突的操作:R Ri i(x)(x)和和R Rj j(x)(x)以及以及R Ri i(x)(x)和和WWj j(y) i(y) i j j筷燥鸦熬谬迢表募茶叼孕结蜘护惧情秋瞬茸昌转杠束咏跃漂景镇路溢褒骤数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载可串行化(可串行化(serializableserializable)S=RS=R2 2(x)W(x)W3 3(x)R(x)
228、R1 1(y)W(y)W2 2(y)(y)S S R R2 2(x)R(x)R1 1(y)W(y)W3 3(x)W(x)W2 2(y)(y) R R1 1(y)R(y)R2 2(x)W(x)W2 2(y)W(y)W3 3(x)=S(x)=S Conclusion: Conclusion: 在在一一般般DBMSDBMS中中都都是是以以可可串串行行化化作作为为并并发控制的正确性准则(冲突可串行化)。发控制的正确性准则(冲突可串行化)。岿嫉道释税翼烩埃伏单妒郎皂团叹住邓逛柔分嫂麓极晴革疲仰曲鹏季然蚊数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载7.8
229、7.8加锁协议加锁协议7.8.1X锁锁X X锁:既用于写操作,也用于读操作。锁:既用于写操作,也用于读操作。 娥署陆姥姓咖植挫裹厄嘻斗一跺框致吉碧伶祸昆讣囊桌涡槽傣却松妆碘跌数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载连锁卷回(连锁卷回(cascading rollbackcascading rollback) 钎误掇拘烁龄万涂豁烛狭骨妙巍为襄曰烫潍帆抵镇卖骂剔咏秃捣辛坷恿呜数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载落刑豆瞥瑞潭滥仲均缉肝踪低噬舔轨辛跨场仕翅唆碰猩侩佐鞭君瘫坚黔络数据库原理
230、与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载7.8.2两段封锁协议两段封锁协议定定义义7.8-1 7.8-1 在在一一个个事事务务中中,如如果果加加锁锁动动作作都都在在所所有有释释放放锁锁动动作作之之前前,则则称称此此事事务务为为两两段段事事务务(two-(two-phase phase transaction)transaction)。上上述述的的加加锁锁限限制制称称为为两两段段封封锁锁协协议议(two-phase (two-phase locking locking protocolprotocol,简简称称2PL2PL协协议议) )。 埃捡刑亡橡
231、使戎茂钙眼障亦躇赂黍斑琢奋睦馅浆乒迂藤矽娟息狙遁象拔棍数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载瑶还狂沈却活在衔柜娩亩欲斑麦器瑞愚吏妓铬枷吨鸵钦呀石紫磊纯广跨坚数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载定定义义7.8-2 一一个个事事务务如如果果遵遵守守先先加加锁锁,后后操操作作的的原则,则此事务称为合式原则,则此事务称为合式(well formed)事务。事务。定定理理7.8-1 如如果果所所有有事事务务都都是是合合式式、两两段段事事务务,则它们的任何调度都是可串行化的。则它们的任何调
232、度都是可串行化的。严格的严格的2PL协议(协议(strict 2PL protocol)7.8.3(S,X)锁)锁S锁锁(Sharing locks)用于读访问用于读访问X锁锁(eXclusive locks)用于写访问用于写访问 仁蘸孵堕韶馈簿刮出惫核伊鬼晓秆恼肺只强菌刁牌辞齐宠赏胎蜡琴蹦幢偏数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载活锁(活锁(live lock): first come first serve 绸兄靳隅浓蹬运诡糊允婴循岔她箕邀既脊屈庐音蛰预巩敬喘含攻贬挠忽抡数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设
233、计方法东南大学自动控制系邵家玉下载 7.8.4(S,U,X)锁)锁 活锁(活锁(live lock): first come first serve 喊承迭够砰渠床福普权意瞬泛辊瞒愈聊跨宙芭诛认鸥诊孟肘幻苏迈简土汹数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载7.9死锁的检测、处理和防止死锁的检测、处理和防止死死锁锁(dead lock):对对付付死死锁锁无无非非两两种种办办法法:一一是是检检测测死死锁锁,发发现现死死锁锁后后处处理理死死锁锁;二二是是防防止死锁。止死锁。 榆棋咸诧欧搐炒渗寂傈殖师孙沪喇邵褒撒硕雹垃郸恨潞古怕震梳中柄盯狼数据库原
234、理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载洒困壮牧获仔溪撤史兵踊委着蚌她饮给慧苗敛很什曙粉厂甭从依陡匙汾山数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载7.9.1死锁的检测和处理死锁的检测和处理1.超时法超时法2.等待图法(等待图法(wait-forgraph)G=(W,U)其中,其中,W是结点的集合,是结点的集合,wTi|Ti是数据库系统是数据库系统中当前运行的事务,中当前运行的事务,i1,2,,nU是边的集合,是边的集合,U(Ti,Tj)|Ti等待等待Tj,ijDBMS对死锁一般作如下处理:对死
235、锁一般作如下处理:l l在循环等待的事务中,选一个事务作在循环等待的事务中,选一个事务作为牺牲者为牺牲者(victim),给其他事务,给其他事务“让路让路”;l l卷回牺牲的事务,释放其获得的锁及卷回牺牲的事务,释放其获得的锁及其他资源;其他资源;l l将释放的锁让给等待它的事务。将释放的锁让给等待它的事务。切矮擎躬狡骑辟啸竣校腔吮进詹珐亚随络闪搜邓坝活擅她钳钙芯酗限笑怨数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载被牺牲事务的选择原则:被牺牲事务的选择原则:l l选择最迟交付的事务作为牺牲者选择最迟交付的事务作为牺牲者l l选择获得锁最少的事
236、务作为牺牲者选择获得锁最少的事务作为牺牲者l l选择卷回代价最小的事务作为牺牲者选择卷回代价最小的事务作为牺牲者7.9.2死锁的防止死锁的防止时间标记(时间标记(timestamp简称时标简称时标ts):随时间增):随时间增长的正整数。长的正整数。系系统统启启动动时时,ts=0,每每当当一一个个新新事事务务开开始始运运行行时时,ts+1,并并把把此此时时的的ts赋赋予予该该事事务务,作作为为该该事事务务的的时标。时标。设设有有两两个个事事务务TA和和TB,如如ts(TA)ts(TB),则则表表示示TA早早于于TB,也也就就是是TA比比TB“年年老老”,或或者者说说TB比比TA“年轻年轻”。飘稻
237、单溃郊耶函有恢玫拟讣援侦疲泰喷篆丝馆圃婿培边栈痉漆婉震傀促戮数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载1.等待等待死亡死亡(wait-die)策略策略设设TB持有某数据对象的锁,当持有某数据对象的锁,当TA申请同一数据对象申请同一数据对象的锁而发生冲突时,则按如下的规则处理:的锁而发生冲突时,则按如下的规则处理:ifts(TA)ts(TB)thenTAwaits;elserollbackTB;/*wound*/restartTBwiththesamets(TB);顷且剁腰金甥咏胃春一释尿艾割远披承肩惭貌履愉彪踪朝羽筒色哄膜毗勃数据库原理与设
238、计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载7.10多粒度封锁多粒度封锁7.11基于时间标记的并发控制技术基于时间标记的并发控制技术7.11.1基本的时间标记协议基本的时间标记协议事务的时间标记:事务的时间标记:ts(T)数据的时间标记:数据的时间标记:l l读时间标记读时间标记trl l写时间标记写时间标记tw1.事务事务T读数据读数据Dread(D);ifts(T)twthen/*符合时间标记协议,符合时间标记协议,read(D)即即为读取值为读取值*/tr:=max(ts(T),tr);监用注敦梧鸭旗训嫡烷结辊掖昧咨伤茧缆在失谆拨玖盘越育夯诬慢拈娘蔷
239、数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载else/*已有比已有比T年轻的事务写入年轻的事务写入D,违反时间,违反时间标记协议,标记协议,T应卷回应卷回*/rollbackTandresartitwithanewts(T);2.事务事务T写数据写数据Difts(T)trANDts(T)twthen/*符合时间标记协议符合时间标记协议*/write(D);tw:=ts(T);else/*违反时间标记协议,违反时间标记协议,T应卷回应卷回*/rollbackTandresartitwithanewts(T);蹦株刻加脏悉劝叛剩菱妻筏遍憎呆女惕秉
240、胯彩奥匙娩盎窿聪旷文辐哇颇立数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载崔今抵钓筑舜勤凭哇毛膝雾稗纤笆盂鸳嘛堪凋页牌冈现旧御涌恭孕椅吾右数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载7.11.2多版本并发控制技术多版本并发控制技术7.12乐观并发控制技术乐观并发控制技术乐观法(乐观法(optimisticmethod)悲观法(悲观法(pessimisticmethod)1.读阶段(读阶段(readphase)2.检验阶段(检验阶段(validationphase)3.写阶段(写阶段(write
241、phase)检检验验Ti,设设Tj是是已已提提交交或或正正在在检检验验的的任任一一事事务务,如如果果对对所所有有Tj,Ti满满足足下下列列三三个个条条件件之之一一,则则检检验验通通过过,Ti可可进进人人写写阶阶段段;否否则则,Ti须须卷卷回回并并重重新启动。新启动。(1)Tj在在Ti进入读阶段之前就已完成写阶段进入读阶段之前就已完成写阶段(2)Ti的读数据集与的读数据集与Tj的写数据集的交集为空集,的写数据集的交集为空集,而且而且Ti在在Tj完成写阶段之后才进人写阶段完成写阶段之后才进人写阶段揣恍跺宰纶关穆忍叶持迄藤雅蒸歼潮弧画杭垒慕禄齿圃优捎瓤直结髓悉红数据库原理与设计方法东南大学自动控制系
242、邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载(3)Ti的读数据集和写数据集都与的读数据集和写数据集都与Tj的写数据集不相交的写数据集不相交魔谎餐氛惺哺檬牟涯左闭屈鲍献绒盐厕巍兢萌阀桶轰缩段匀笨嘻每蔓粟瞻数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载书后习题:书后习题:16如果把如果把wait-die策略修改为:策略修改为:如果如果ts(TA)ts(TB)则则TA等待等待否则,卷回否则,卷回TA,井以原来的,井以原来的ts(TA)重新启动。重新启动。请回答以下问题:请回答以下问题:(1)此策略能否避免死锁此策略能否避免死锁?(2)此
243、策略有何主要问题此策略有何主要问题?(3)如何改进此策略,消除其存在的问题如何改进此策略,消除其存在的问题?(4)请将改进后的策略与标准的请将改进后的策略与标准的wait-die和和wound-wait策略比较。策略比较。侵割诵鸯灾忘讶丝吏垃腿铃与膜蒲妥粗柒尿高尸耐庆胆犬烹割帘低蒸诅古数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载第八章第八章数据库的安全和完整性约束数据库的安全和完整性约束数据库的破坏一般来自下列四个方面:数据库的破坏一般来自下列四个方面:(1)系统故障;系统故障;(2)并发所引起的数据不一致;并发所引起的数据不一致;(3)人人
244、为为的的破破坏坏,例例如如数数据据被被不不该该知知道道的的人人访访问问,甚至被篡改或破坏;甚至被篡改或破坏;(4)输输入入或或更更新新数数据据库库的的数数据据有有误误,更更新新事事务务未未遵遵守保持数据库一致性的原则。守保持数据库一致性的原则。8.1数据库的安全数据库的安全安全的操作系统是数据库安全的前提。安全的操作系统是数据库安全的前提。8.1.1视图定义和查询修改视图定义和查询修改8.1.2访问控制访问控制数数据据库库用用户户按按其其访访问问权权力力的的大大小小,一一般般可可分分为为以以下三类。下三类。询压摇性舒纶喳旦噬郎助炯蹬皮绽笋蝇适煮观健刺卷罕金刚快硫险堤陵壤数据库原理与设计方法东南
245、大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载1.一般数据库用户一般数据库用户在在SQL中中,这这种种用用户户称称为为“具具有有CONNECT特特权权的的用用户户”。这这种种用用户户可可以以与与数数据据库库联联系系,并并具具有有下下列列特权:特权:(1)按照授权可以查询或更新数据库中的数据;按照授权可以查询或更新数据库中的数据;(2)可以创建视图或定义数据的别名。可以创建视图或定义数据的别名。2.具有支配部分数据库资源特权的数据库用户具有支配部分数据库资源特权的数据库用户在在SQL中中,这这种种用用户户称称为为“具具有有RESOURCE特特权权的的用用户户”,除除具具
246、有有一一般般数数据据库库用用户户所所拥拥有有的的所所有有特特权外,还有下列特权:权外,还有下列特权:(1)可以创建表、索引和簇集;可以创建表、索引和簇集;(2)可可以以授授予予或或收收回回其其他他数数据据库库用用户户对对其其所所创创建建的的数据对象的访问权;数据对象的访问权;(3)有有权权对对其其所所创创建建的的数数据据对对象象跟跟踪踪审审查查(audit)(有有关跟踪审查的内容将在稍后介绍关跟踪审查的内容将在稍后介绍)。操碗坚店鸽锄仰站蹬霜船猫岁势丸吩狸跨惩疫淌截掏彬软溅承国递骋版笔数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载3.具有具有D
247、BA特权的数据库用户特权的数据库用户DBA拥拥有有支支配配整整个个数数据据库库资资源源的的特特权权,这这种种用用户户除除具具有有上上述述两两种种用用户户所所拥拥有有的的一一切切特特权权外外,还还有有下列特权:下列特权:(1)有权访问数据库中的任何数据;有权访问数据库中的任何数据;(2)不不但但可可以以授授予予或或收收回回数数据据库库用用户户对对数数据据对对象象的的访问权,还可以批准或收回数据库用户;访问权,还可以批准或收回数据库用户;(3)可可以以为为PUBLIC定定义义别别名名,PUBLIC是是所所有有数数据据库用户的总称;库用户的总称;(4)有权对数据库进行调整、重组或重构;有权对数据库进
248、行调整、重组或重构;(5)有权控制整个数据库的跟踪审查。有权控制整个数据库的跟踪审查。1.identificationandauthentication2.authorization仍痞牟罐蘑苦昔镜挽嚣垃迈剖仁坷墅旷织渣饺轻脓丛贩后系知跋侈抹脐翰数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载GRANT特特权权类类型型,特特权权类类型型TO用用户户标标识识符符IDENTIFIEDBY口口令令;特特权权类类型型:CONNECT|RESOURCE|DBA例例8-1GRANTDBATOWANGIDENTIFIEDBYB02M29J;例例 8-2GRAN
249、TCONNECTTOCHANGIDENTIFIEDBYxyzabc;GRANTRESOURCETOCHANG;REVOKE特特权权类类型型,特特权权类类型型FROM用户标识符;用户标识符;旧或缘奸侣炬悄晓耗缎粕凹油补潞异懒锑唤溅啤钨图凿已胁辱渗笼兹钉急数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载GRANT特特权权ON表表名名TO受受权权者者 , 受受 权权 者者 WITH GRANTOPTION;特特权权:ALLPRIVILEGES|操操作作,操作操作操操作作:SELECT|INSERT|DELETE|UPDATE(准许修改的属性表准许修改的
250、属性表)准准许许修修改改的的属属性性表表:属属性性名名,属属性名性名受权者:受权者:PUBLIC|用户标识符用户标识符REVOKE特特权权ON表表名名FROM受受权权者者,受权者,受权者;恼几诗帖铂赵是曝评窥锣忿涕杭剪右俗巢洲辫橡迪学孩疗翌擅填具捧胰砂数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载设设有有用用户户Ul、U2、U3和和U4,U1有有一一张张表表S,下下面面是一连串授权过程:是一连串授权过程:U1授权给授权给U2:U1:GRANT SELECT ON TABLE S TO U2WITHGRANTOPTION;U2授权给授权给U3:U
251、2:GRANTSELECTONTABLEU1.STOU3WITHGRANTOPTION;U3授权给授权给U4:U3:GRANTSELECTONTABLEU1.STOU4WITHGRANTOPTION;U1收回授给收回授给U2的特权;的特权;U1:REVOKESELECTONTABLESFROMU2;蛊药济洒惠钝赔休亩姻唉永液薪弹用符荷赴抬销拧釜秽阳寇奇栋囊袱凭檄数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载此此 语语 句句 的的 作作 用用 不不 仅仅 收收 回回 U1授授 予予 U2的的 特特 权权 (即即SELECTONTABLES),而而
252、且且还还收收回回U2授授予予U3、U3授予授予U4的这种特权。的这种特权。GRANTSELECT,UPDATE(GRADE,ADDRESS)ONTABLES1TOXU,MA;8.1.3数据加密数据加密8.1.4跟踪审查跟踪审查AUDIT SELECT,INSERT,DELETE,UPDATE ON emp WHENEVER SUCCESSFUL;即即对对emp表表的的每每次次成成功功的的选选择择、增增、删删、改改操操作作都作跟踪审查记录。都作跟踪审查记录。NOAUDIT ALL ON emp;碗雷疗亮撵揣聂甸篆赂喂刑歇遭锗耐肚喝算故陇寸醛绍克睬言疚做慰面筐数据库原理与设计方法东南大学自动控制系
253、邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载8.2统计数据库的安全统计数据库的安全8.3完整性约束完整性约束8.3.1完整性约束的类型完整性约束的类型固有约束固有约束静态约束静态约束 隐含约束隐含约束显式约束显式约束动态约束动态约束8.3.2完整性约束的说明完整性约束的说明1用过程说明约束用过程说明约束2用断言说明约束用断言说明约束ASSERT余额约束余额约束ON储蓄账:余额储蓄账:余额0;惠垣摄澈英襄鼎唁禄幌泉邵遍龄征咒晒曼酚搬娟念屋谨处掖瘤共盎柴好禁数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载3用触发子表示约束用触发子表示约
254、束wheneverthcn;DEFINETRIGGER余额约束余额约束ON储蓄账储蓄账:余额余额0ACTION_PROCEDURE卷回事务,通知帐户;卷回事务,通知帐户;4CHECK子句子句8.3.3完整性约束的实施完整性约束的实施番浚辈瑶嘎粳惺舟叔藐瓦裹商拥渠减渺赊爸范胰徘措昧慷食掂酪尤恐悔来数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载 第九章第九章分布式数据库管理系统分布式数据库管理系统9.1分布式数据库系统分布式数据库系统分分布布式式数数据据库库系系统统(distributeddatabasesystem,简称简称DDBS)DDBS有以
255、下三个特点:有以下三个特点:(1)数数据据是是分分布布的的,因因此此它它不不同同于于通通过过计计算算机机网网共享的集中式数据库系统;共享的集中式数据库系统;(2)分分布布的的数数据据是是相相互互有有关关的的,一一般般是是一一个个单单位位或或多多个个有有关关单单位位的的数数据据,因因此此它它不不同同于于由由网网络络互互连的多个独立数据库系统;连的多个独立数据库系统;(3)数数据据由由DDBMS统统一一管管理理,因因此此它它不不同同于于一一般般的分布式文件系统。的分布式文件系统。分布式数据库有下列四个优点:分布式数据库有下列四个优点:碧散屑泉殴站错荫籽新江戊揩钨粉辗袄哭堤弄仍黍桐括朴晴膝姻孙肉拧憎
256、数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载(1)有利于改善性能有利于改善性能(2)可扩充性好可扩充性好(3)可用性好可用性好(4)自治性好自治性好DDBS的缺点:的缺点:(1)异构异构(2)分布设计分布设计9.2数据分布策略数据分布策略 9.2.1数据分布的目的数据分布的目的1提高访问的局部性提高访问的局部性(localityofreference)2分担负荷分担负荷目目的的不不同同,数数据据库库服服务务器器的的位位置置、客客户户机机与与其其连连接的方式均不同。接的方式均不同。坚浑链萄颁碗敏步锑鞭辈聋峦纸佯期慑纽馅衫效通姬领暇醉止迎箍禁浩石
257、数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载9.2.2 数据分布的方式数据分布的方式1划分式(划分式(partitioned)2全重复式(全重复式(fullyreplicated)3部分重复式(部分重复式(partiallyreplicated)董剁浸抹便邀聊势悲挠砚擅仪刑秽成镭员葬玛霄迅流蓑束元迎妓秒峪伐狭数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载9.2.3关系的分割关系的分割分布单位:分布单位:1关系关系2裂片(裂片(fragment)分割方式:分割方式:l l水平分割水平分割l l垂
258、直分割垂直分割l l混合分割混合分割分割准则:分割准则:a)Completenessb)Reconstructionc)Disjointness钵臭求坯悔搭庆遗烈润茬绘焙睁庐俐猎吾剖几涅诊锨鹊类犁翁越狭铱咱颅数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载9.2.4数据分布带来的问题数据分布带来的问题1 1保持多复本保持多复本致性致性2 2保持分布一致性保持分布一致性3 3全局查询的处理全局查询的处理4 4分布事务的管理分布事务的管理9.3分布式数据库系统结构分布式数据库系统结构善起挛妹随网移狰贴下锡苹惶双弦如次趣攫啦琳拉磕迁饮阜荷擒押讫夏票数据
259、库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载谍心昔岂炮源乔吁于诡宦冕育珐簧喀椎啄拼键柯梯呐采苦幢电雨铆秒掏仟数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载9.4数据目录的分布及管理数据目录的分布及管理9.4.1数据目录分布的策略数据目录分布的策略1.1.集中式集中式(centralized)(centralized)2.2.扩展的集中式扩展的集中式(centralized (extended)(centralized (extended)3.3.全重复式全重复式(fully replicated)
260、(fully replicated)4.4.部分重复式部分重复式(partially replicated)(partially replicated)5.5.用用缓缓存存提提高高目目录录读读速速度度(speed (speed up up through through caching)caching)9.4.2分布式数据库系统中的命名分布式数据库系统中的命名1.1.全局名空间全局名空间(global name space)(global name space)2.2.层次名空间层次名空间格嘎牢洁脊六蜀堆甄腾嫉远镜陨萄击腺擂垛棒绞殷践窜贮寅吸晓正俺酋蛛数据库原理与设计方法东南大学自动控制系邵家
261、玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载淄顶裂椒晚后茎郧郴面世鹅腥瘫祟妓猫宇熄肥哨根条婶池臣来崔搅涪邪砌数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载9.5查查询询分分解解和和优优化化妙亢订散长触吹戴巷畅停焙侄蒙冶商步留拿烃吱改厂怒航裹蔡吠犀鉴却饿数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载9.6分布式数据库系统中的恢复技术分布式数据库系统中的恢复技术9.6.1两步提交协议两步提交协议擂组蔚狼椽缔休敷肆吩者控袋衬彪跨约兹插兢语饮接十帐构壁租呵遂搐究数据库原理与设计方法东南大学自动
262、控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载9.6.2三步提交协议三步提交协议棠鸵舒宣篆湿仙贺贱临怒碳挤愤闭择迷国袭贸苫呼阵诊丢冒氰县适干飘陨数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载9.7分布式数据库系统中的并发控制分布式数据库系统中的并发控制9.7.1分步式数据库系统中的两步封锁分步式数据库系统中的两步封锁1 1写全锁写全锁(write locks all)(write locks all)写全锁的加锁协议如下:写全锁的加锁协议如下:l l读:在任一复本上加读:在任一复本上加S S锁锁l l写:在所有复本上加写:在所
263、有复本上加X X锁锁l l保持所有锁到全局事务结束保持所有锁到全局事务结束(EOT)(EOT)2 2多数封锁多数封锁(majority locking)(majority locking)加锁协议如下:加锁协议如下:l l读:对过半数的复本上加读:对过半数的复本上加S S锁锁l l写:对过半数的复本上加写:对过半数的复本上加X X锁锁l l保持所有锁到全局事务结束保持所有锁到全局事务结束(EOT)(EOT)疙雀方习酶止翌臼涣涅茶轰芜宦榨上撅虱横蜀伎肆涎田抽档升咎契醚笆股数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载3 3N N中取中取K K封锁
264、封锁(K out of N locking)(K out of N locking)加锁协议如下:加锁协议如下:l l写:对写:对n n个复本中的个复本中的k k个复本上加个复本上加X X锁锁 kn/2 kn/2l l读:对读:对n n个复本中的个复本中的n-k+1n-k+1个复本上加个复本上加S S锁锁l l保持所有锁到全局事务结束保持所有锁到全局事务结束(EOT)(EOT)4 4主结点法主结点法9.7.2全局死锁的检测全局死锁的检测韧裕兜汾溯社出展账喊郧夷玫锹府疡掣涂肉梭茄琵节枯侄钦法某扔霹深涝数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载
265、第十章第十章数据依赖和关系模式的规范化数据依赖和关系模式的规范化10.1关系模式设计中的一些语义问题关系模式设计中的一些语义问题Functional Dependency (FD): XYFunctional Dependency (FD): XYR(S#,C#,G.,TN,D)R(S#,C#,G.,TN,D)嘘暑汾史闻魄芋彬样奎苹恕陀抬剁归逮分终侣评想莫煎绵淬辽孜侈耻宰尝数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载F=S#,C#G, C#TN, TNDF=S#,C#G, C#TN, TND计计算算机机系系要要通通知知教教师师准准备备给给学学
266、生生补补考考,可可以以“查查询询计计算算机机系系所所开开课课程程的的不不及及格格学学生生的的学学号号、不不及及格课程号以及任课教师的姓名格课程号以及任课教师的姓名”:SELECT S#SELECT S#,C#C#,TNTNFROM RFROM RWHERE D=WHERE D=CSCSAND G=AND G=F F;问题:问题:1 1数据冗余太大数据冗余太大2 2更新异常(更新异常(update anomaliesupdate anomalies):): l lmodification anomalymodification anomaly l linsertion anomalyinsert
267、ion anomaly l ldeletion anomalydeletion anomaly鹅惑颂曰拢赖敏棉庚仆梢洁班陆妙漫弘摄鲜保晤骨辫按渡厉摆拒论尧摆限数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载solution:solution:分解分解关系模式规范化:关系模式规范化:SCGSCG(S#S#,C#C#,G G)CTNCTN(C#C#,TNTN)TNDTND(TNTN,D D) SELECT S#SELECT S#,C#C#,TNTNFROM SCGFROM SCG,CTNCTN,TNDTNDWHERE WHERE SCG.C#=CTN
268、.C# SCG.C#=CTN.C# AND AND CTN.TN=TND.TN AND D=CS AND G=F;CTN.TN=TND.TN AND D=CS AND G=F;乔肘弘谊沼填圾矢晒顶烙踪窿贡疲碑弊掩峡章擒资佑接舟炬络工量还凄个数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载10.2函数依赖函数依赖R U=AR U=A1 1,A,A2 2, ,A,An n F r F rDefine 10.2-1 functional dependencyDefine 10.2-1 functional dependencyR(AR(A1 1,A,A
269、2 2, ,A,An n) ) X X U, U, Y Y U U t t1 1,t ,t2 2 r r 若若t t1 1X=tX=t2 2X, X, 则则t t1 1Y=tY=t2 2Y, XY, XY YTrivial functional dependency: Trivial functional dependency: 若若Y Y X, X,则则X XY YX X Y Y若若X XY Y,Y YX X则则XYXYDefine 10.2-2 full (partial) functional dependencyDefine 10.2-2 full (partial) function
270、al dependencyR(AR(A1 1,A,A2 2, ,A,An n) ) X X U, U, Y Y U U 且且XYXY,如如X XY Y,且且X X X X,使得,使得X XY Y,则称,则称X YX Y,否则,否则,X YX Y。S#, C# TN S#, C# GS#, C# TN S#, C# G淖箱长驴茧麻判汪殊根始嘶疥诽贬婿困志哇流顶拎煌明桥邱禄旱友烤隐慧数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载Define 10.2-3 transitive functional dependencyDefine 10.2-3 t
271、ransitive functional dependencyR(AR(A1 1,A,A2 2, ,A,An n) ) X X U, U, Y Y U, U, Z Z U,U,且且XYZXYZ,若若X XY Y,Y Y X X,Y YZ Z,则称,则称X ZX Z。Define 10.2-4 Define 10.2-4 逻辑蕴涵逻辑蕴涵F F是是R R的的FDFD的的集集合合,X XY Y是是R R的的一一个个FDFD,若若一一关关系系模模式式满满足足F F,则则必必然然满满足足X XY Y,称称F F逻逻辑辑蕴蕴涵涵X XY Y:F XF XY YDefine 10.2-5 closureD
272、efine 10.2-5 closure函函数数依依赖赖集集合合F F所所逻逻辑辑蕴蕴涵涵的的函函数数依依赖赖的的全全体体称称为为F F的闭包,记为的闭包,记为F F+ +,即,即F F+ +=X=XY|F XY|F XY Y 子就派单杭乌摇最还愚锄卢墟蓝弓脖雾虽储井拐前霓爵难百篡牛捶薯镑协数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载Armstrongs axioms:Armstrongs axioms:A1: reflexivityA1: reflexivity若若Y Y X X U U,则,则X XY Y。A2: augmentation
273、A2: augmentation若若X XY Y,且,且Z Z U U,则,则XZXZYZYZ。A3: transitivityA3: transitivity若若X XY Y,Y YZZ,则,则X XZ Z。合并规则:合并规则:XXY Y,X XZ XZ XYZYZ引引理理10.2-1 10.2-1 ArmstrongArmstrong公公理理是是正正确确的的(sound)(sound),即即如如果果F F成成立立,则则由由F F根根据据ArmstrongArmstrong公公理理所所推推导导的的函函数依赖总是成立的。数依赖总是成立的。权硝锯饯仗置外占瓣柜摧崔怜拉器岂信维歌馒镀喷缔鳖吞婶失耕
274、汁碌淮拢数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载引理引理10.2-2 10.2-2 下列三条推理规则是正确的:下列三条推理规则是正确的:(1)(1)the union rulethe union rule:XXY Y,X XZ XZ XYZYZ(2)(2)the pseudo transitivity rule:the pseudo transitivity rule: X XY Y,WYWYZ XWZ XWZ Z(3)(3)the decomposition rulethe decomposition rule: 如果如果X XY Y且
275、且Z Z Y Y,则,则X XZ Z成立。成立。结结论论:由由分分解解规规则则,若若X X A A1 1,A,A2 2, ,A,Ak k ,则则X XA Ai i(i=1i=1k k); ;由由合合并并规规则则,若若X XA Ai i(i=1i=1k k),则则X XAA1 1,A,A2 2, ,A,Ak k , 故故 X X A A1 1,A,A2 2, ,A,Ak k X XA Ai i(i=1i=1k k)Define 10.2-6 closureXDefine 10.2-6 closureX+ +设设 X X U U, 则则 属属 性性 集集 X X关关 于于 FDFD集集 F F的的
276、 闭闭 包包X X+ +=A|A=A|AU U,且且X XA A可可由由Armstrongs Armstrongs axiomsaxioms导导出出 荧琶疹撤骄虽趁烹醋阔秽风缝锭挤声昭尧催遇壳坡鞠屹冗充新投噪翻盛诈数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载引引理理10.2-3 10.2-3 X XY Y可可由由Armstrongs Armstrongs axiomsaxioms导导出出 Y Y X X+ +。定定理理10.2-1 10.2-1 Armstrongs Armstrongs axiomsaxioms是是正正确确的的、完完备备的(
277、的(completecomplete)。)。X X+ +=A|A=A|AU U,且且X XA AF F+ + 或或X X+ +=A|A=A|AU U,且且F F X XAAF F+ +=X=XY|XY|XY Y可由可由Armstrongs axiomsArmstrongs axioms从从F F导出导出 算法算法10.2-1 10.2-1 求求X X+ +Input: X Input: X U,F U,FOutput: XOutput: X+ +方方法法:按按下下列列方方法法依依次次求求X X(0 0),X X(1 1),XX(i i),淑献难颂讼万达酷照罗恩底污晨苗孤猛僳碳畅棕本润川老釜坪甄
278、却恤缆左数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载(1)(1)初始化:初始化:X X(0 0)=X=X,i=0;i=0;(2)(2)求求B=A|B=A|( V V)( WW)(V VWWF FV V X X(i i)A AWW) (3)(3)X X(i+1i+1)=B=BX X(i i)(4)(4)X X(i+1i+1)=X=X(i i)?(5)(5)不等,不等,i=i+1i=i+1,返回(,返回(2 2)。)。(6)(6)相等,相等,X X+ +=X=X(i i)例例10-1 10-1 设设F FABCABC,DEGDEG,CACA,BE
279、CBEC,BCDBCD, CGBDCGBD, ACDBACDB, CEAGCEAG, 计计 算算(BD)(BD)+ +。解:解:X X(0 0)=BD=BD找左部为找左部为BDBD的子集的函数依赖,只有的子集的函数依赖,只有D DEGEGX X(1 1)=BD=BDEG=BDEGEG=BDEG鼓寇惰踪媚室宇瞩蘑札女写砒跋贸僳瑟卜猛赞闹缺惹译忽酒痢揩票扯挝都数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载找找左左部部为为BDEGBDEG的的子子集集的的函函数数依依赖赖,有有D DEGEG,BEBEC CX X(2 2)= X= X(1 1)EGC=
280、BCDEGEGC=BCDEG找找左左部部为为BCDEGBCDEG的的子子集集的的函函数数依依赖赖,有有D DEGEG,C CA A,BEBEC C,BCBCD D,CGCGBDBD,CECEAGAGX X(3 3)= X= X(2 2)ABCDEG=ABCDEGABCDEG=ABCDEG(BDBD)+ +=U=U算法算法10.2-110.2-1改进:改进:1 1若若X X(i i)=U=U,则迭代结束,则迭代结束,X X+ +=U=U2 2在在每每次次迭迭代代中中,用用过过的的FDFD可可不不必必再再选选出出来来,因其对结果已不再增加属性。因其对结果已不再增加属性。Define Define
281、10.2-7 10.2-7 FD FD set set F F、G G,若若F F+ +=G=G+ +,则则称称FGFG等价。等价。引理引理10.2-4 F10.2-4 F+ +=G=G+ + F F G G+ +,G G F F+ +胎与武坤彻慢能拳驳怪谢遁铁示库樱揽抡纽庇睦徊牌区屈队棺氯佣踌暴是数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载引引理理10.2-5 10.2-5 任任一一函函数数依依赖赖集集F F总总可可以以为为一一右右部部恒恒为单属性的函数依赖集所覆盖。为单属性的函数依赖集所覆盖。Define Define 10.2-8 10
282、.2-8 函函数数依依赖赖集集F F如如果果满满足足下下列列条条件件,则称为极小函数依赖集或最小覆盖。则称为极小函数依赖集或最小覆盖。(1)F(1)F中每个函数依赖的右部为单属性。中每个函数依赖的右部为单属性。(2)F(2)F中中不不存存在在这这样样的的函函数数依依赖赖X XA A,使使得得F F - -(X XA A)与)与F F等价。等价。(3)(3)在在 F F中中 也也 不不 存存 在在 这这 样样 的的 X XA A, 使使 得得 F-F-(X XA A)(Z ZA A)与)与F F等价,式中等价,式中Z Z X X。定定理理10.2-2 10.2-2 任任一一函函数数依依赖赖集集F
283、 F都都与与一一最最小小函函数数依依赖集赖集FF等价。等价。FF称为称为F F的最小覆盖。的最小覆盖。10.3多值依赖多值依赖X XY YX XU-X-YU-X-Y臼瞥顶恰枫参坐淳炬颓琶项谣私状萌属血雅嫌井接凝刘撮两竟隐涉将炯秉数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载关绚蓟魏渔烙炯劝疽啼刺帛贿闰菊道吞征锌欠捂堂羹暑刃料俯伴尼无缩钥数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载Define Define 10.3-1 10.3-1 设设X X、Y Y是是关关系系模模式式R R的的属属性性集集
284、,如如果果对对于于R R的的任任何何值值r r,都都有有如如下下性性质质,则则称称R R满满足足X XY Y。如果如果r r中存在两个元组中存在两个元组s s、t t,使得,使得sXsXtXtX则则r r中必然存在两个元组中必然存在两个元组u u、v v,使得,使得uX=vX=sXuX=vX=sXtXtXuY=tYuY=tY且且uU-X-YuU-X-YsU-X-YsU-X-YvY=sYvY=sY且且vU-X-YvU-X-YtU-X-YtU-X-Y杠些盯谬执逼案简汝反铣睬帮联边定疵紧读瞳皇蒋雇制镣米错发破簿颇占数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系
285、邵家玉下载柄晦杖撕抱粤痒吩谣手敦纸肪奸荷碰磨春房垄隙钮语遁敢卵堂此坐论橱摆数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载10.4连接依赖连接依赖例例10-2 10-2 设设有有一一关关系系SPJ(S#SPJ(S#,P#P#,J#)J#),S#S#表表示示供供应应商商号号,P#P#表表示示零零件件号号,J#J#表表示示工工程程号号。SPJSPJ表表示示供供应应关关系系,即即某某供供应应商商供供应应某某零零件件给给某某工工程程。如果此关系的语义满足下列条件:如果此关系的语义满足下列条件:SPJSPJSPJS#SPJS#,P# P# SPJP#,J#
286、SPJP#,J#SPJJ#SPJJ#,S#S#10.5关系模式的分解及其问题关系模式的分解及其问题Define Define 10.5-1 10.5-1 设设有有一一关关系系模模式式R(U)R(U),若若用用一一关关系系模式的集合模式的集合RR1 1(U(U1 1) ),R R2 2(U(U2 2) ),R Rk k(U(Uk k) )来取代,来取代,其中,其中,U U ,则称此关系模式的集合为,则称此关系模式的集合为R R的的一个分解,以一个分解,以RRl l,R R2 2,,R,Rk k 表示。表示。摹鸯绪居寝销宾缆掂歧证翻者淮荫择给聂琢呀恩咋潜括仟蒙靖上袖耶莎隋数据库原理与设计方法东南大
287、学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载Define Define 10.5-2 10.5-2 F F在在属属性性集集U Ui i( U U)上上的的投投影影定定义为义为往态垦鹃迅钎喘歧撼社肯命护澈免盛钩捷粱帅豌谦寿苦冬邮镍痉络崖联画数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载关系模式的分解主要有两种准则:关系模式的分解主要有两种准则:(1)(1)只满足无损分解要求。只满足无损分解要求。(2)(2)既满足无损分解要求,又满足保持依赖要求。既满足无损分解要求,又满足保持依赖要求。关关系系R(ABCD)R(ABCD)
288、,F FAAB B,C CDD,则则分分解解=R=R1 1(ABAB),),R R2 2(CDCD) 钦婿婿箭恼班用会善疵械镁雪封晾绍捞奴衔腋絮怔葬建庐踏蚌寄蚕蹭腾疟数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载算法算法10.5-1检验一个分解是否无损分解。检验一个分解是否无损分解。Input:关系模式关系模式R(A1,A2,An););R上有上有FD集集F;R上的分解上的分解Rl,R2,,Rk。Output:是否无损分解。是否无损分解。方方法法:建建立立n列列、k行行的的矩矩阵阵M,其其中中每每列列对对应应于于R的一个属性,每行对应于的一个属
289、性,每行对应于中的一个关系模式。中的一个关系模式。张荷巡影硼坯挥腊瞳菇蓉尚动奔蜡诺鹃把流购乖寞九骋初鬃径屏捂横蒂团数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载则,则,不是无损分解。不是无损分解。例例10-4R(ABCDE),=R1(AD),R2(AB),R3(BE),R4(CDE),R5(AE)是是R的的一一个个分分解解。在在R上上有有下下列列FD:AC、BC、CD、DEC、CEA。试判断。试判断是否为无损分解。是否为无损分解。祭蒲捏皖饮钵惩甸惭秆恩循膏吾稍递蝎眩凶按动颓肺杭窍邵蓝钙蒙拣单毒数据库原理与设计方法东南大学自动控制系邵家玉下载数据
290、库原理与设计方法东南大学自动控制系邵家玉下载亚狐色瘴宁劲妒宙捞朝匝棺允牌化超浊氰富饰女辞页功弥吝症烤垛膊普嘎数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载例例10-5在例在例10-3中:中:苑辨也怒腺乳里啼肝糟倘尔惫茄肝轧甄密断芳苯衣累粤桌蜘上上钵藤恰跃数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载10.6关系模式的规范化关系模式的规范化1NF(NormalForm)速堰建棋卉嗜旗徘礁膨念舅础譬县耍空薯细蚌戏稀写展募郝娄像古爬奶浙数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方
291、法东南大学自动控制系邵家玉下载2NF3NFBCNF4NF5NF蛰炳靛泉管不绷甚布葡嚼瓶戊魄锑坷花脖耳惦税答淄氧屋旱铀抠充咐洞空数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载逛柞凰同蛾邪搞胶总师腊吗烫乘碗赏握群捏染援鲍纱磕窥鞠屏掸涵鬼净磕数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载独肋揣瞳绷倒蠢感充查镰匀烙茁伸舟梧纸襄壕阜链肤狰真蛙岗眨例褐裁赂数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载R(S#,C#,G.,TN,D)F=S#,C#G,C#TN
292、,TNDR分解为分解为R1(S#,C#,G)和)和R2(C#,TN,D)R2可分解为可分解为R3(C#,TN)和)和R4(TN,D)恳乃况塘羚瞥算寡铅卖簿喇往禹骡癸未羞啃脾迸诽辨戒捂住载阀疵淌濒隅数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载算法算法10.6-1NF21NF横向或纵向展开。横向或纵向展开。算法算法10.6-21NF2NF即消除非主属性对键的即消除非主属性对键的PFD。设设R(K1,K2,A,B),K1+K2为为键键,AB为为非非主主属性。属性。F=K1A,K1K2B则将则将R分解为分解为R1(K1,A)和)和R2(K1,K2,B
293、)算法算法10.6-32NF3NF即消除非主属性对键的即消除非主属性对键的TFD。设设R(K,A,B,C),K为为键键,ABC为为非非主主属属性性。F=KA,KB,BC则将则将R分解为分解为R1(B,C)和)和R2(K,A,B)逆镣诱胆纳堰爹逮前插谭圆扮泞汐桩氖纸简殉酋奈脱詹轰羊询焙蟹颅艾黄数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载可以直接从可以直接从1NF1NF3NF3NF例例10-6 R10-6 R(ABCDABCD)F=ABCF=ABC,BDBD,BCABCA键键:ABAB和和BCBC,则则ABCABC为为主主属属性性,D D为为非非
294、主主属属性性,D D部分部分FDFD于键,分解为:于键,分解为:R R1 1(B BD D)和)和R R2 2(ABABC C) 例例10-7 10-7 R R(CTHRSGCTHRSG),C-C-课课程程,T-T-教教师师,H-H-时时间间,R-R-教教室室,S-S-学学生生,G-G-成成绩绩。F=CTF=CT,HRCHRC,HTRHTR,CSGCSG,HSRHSR键:键:HS,HS为主属性,为主属性,CTRG为非主属性。为非主属性。HSRHSR(已已知知),HSHHSH(平平凡凡FDFD)HSHRHSHR(合合并规则),并规则),HRCHRC(已知),(已知),HSCHSC(传递律)(传递
295、律)CTCT(已知),(已知),HSTHST(传递律)(传递律)HSRHSR(已知)(已知)菱夺诅隋金淀褪料新唯含济泪莽楞肺泉堡靖吠爆琵暗拍消歼镜悼侩唤稼价数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载HSSHSS(平平凡凡FDFD)HSCHSC(已已求求出出)HSCSHSCS(合合并规则)并规则)CSGCSG(已知),(已知),HSGHSG(传递律)(传递律)处处 理理 HSGHSG( TFDTFD) 得得 R R1 1( CSCSG G) 原原 R R变变 为为R R(CTHRSCTHRS)处处 理理 HSTHST( TFDTFD) 得得
296、R R2 2( C CT T) 原原 R R变变 为为R R(CHRSCHRS)处处 理理 HSCHSC( TFDTFD) 得得 R R3 3( HRCHRC) 原原 R R变变 为为 R R4 4(H HR RS S)即即R R分解为:分解为:R R1 1(CSCSG G):学生的各门课程的成绩):学生的各门课程的成绩R R2 2(C CT T):每门课程的教师):每门课程的教师R R3 3(HRHRC C):每每门门课课的的上上课课时时间间和和在在每每个个时时间间的的上课教室上课教室R R4 4(H HR RS S):学生在每个时间的上课教室。):学生在每个时间的上课教室。兽杠壳嫡都杯瓶讲
297、东凰垦磁咒手瞩度续济遵酌需魔服桅联挡津汞棚梳椭枪数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载 第十一章第十一章数据库设计数据库设计11.1Introduction数数据据库库设设计计的的基基本本任任务务是是:根根据据个个单单位位的的信信息息需需求求,处处理理需需求求和和数数据据库库的的支支撑撑环环境境( (包包括括DBMSDBMS,操操作作系系统统和和硬硬件件) ),设设计计出出数数据据模模式式( (包包括括外外模模式式,逻辑逻辑( (概念概念) )模式和内模式模式和内模式) )以及典型的应用程序。以及典型的应用程序。信息需求信息需求静态要求
298、静态要求处理需求处理需求动态要求动态要求数据库设计方法:数据库设计方法: 1 1Data-oriented approachData-oriented approach 2 2Process-oriented approachProcess-oriented approach数据库设计特征:数据库设计特征: 1 1IterativeIterative篡睫包犯掉邵哎更仲打忘躇税寻菇筛陡终湿餐怎彩官滴舍摊洛漠排诛担帮数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载2 2TentativeTentative3 3MultistageMultistage
299、数数据据库库设设计计步步骤:骤:1 1需求分析需求分析2 2概念设计概念设计3 3逻辑设计逻辑设计4 4物理设计物理设计号络侈简泡逐暂泰奥耪俏鲜挽盎档紧佣佛蹬奎狂褥无刽黍嘘盟鸿洽凹桑汤数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载11.2需求分析需求分析11.2.1需求分析的任务需求分析的任务需需求求分分析析的的任任务务是是通通过过详详细细调调查查现现实实世世界界要要处处理理的的对对象象( (组组织织、部部门门、企企业业等等) ),充充分分了了解解原原系系统统( (手手工工系系统统或或计计算算机机系系统统) )工工作作概概况况,明明确确用用户户
300、的的各各种种需需求求,然然后后在在此此基基础础上上确确定定新新系系统统的的功功能能。新新系系统统必必须须充充分分考考虑虑今今后后可可能能的的扩扩充充和和改改变变,不不能能仅仅按当前应用需求来设计数据库。仅仅按当前应用需求来设计数据库。11.2.2需求分析的方法需求分析的方法调查与初步分析用户的需求通常需要四步:调查与初步分析用户的需求通常需要四步:首首先先调调查查组组织织机机构构情情况况。包包括括了了解解该该组组织织的的部部门门组组成成情情况况,各各部部门门的的职职责责等等,为为分分析析信信息息流流程程作准备。作准备。绩轴买折子峰誉拴骗然空朗灼涵咯玖岛冕淘岭猿绪阂迂谨滔郎甄搜蹋软刽数据库原理与
301、设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载然然后后调调查查各各部部门门的的业业务务活活动动情情况况。包包括括了了解解各各个个部部门门输输入入和和使使用用什什么么数数据据,如如何何加加工工处处理理这这些些数数据据,输输出出什什么么信信息息,输输出出到到什什么么部部门门、输输出出结结果的格式是什么。这是调查的重点。果的格式是什么。这是调查的重点。在在熟熟悉悉了了业业务务活活动动的的基基础础上上,协协助助用用户户明明确确对对新新系系统统的的各各种种要要求求,包包括括信信息息要要求求、处处理理要要求求、完全性与完整性要求,这是调查的又一个重点。完全性与完整性要
302、求,这是调查的又一个重点。最最后后对对前前面面调调查查的的结结果果进进行行初初步步分分析析,确确定定新新系系统统的的边边界界,确确定定哪哪些些功功能能由由计计算算机机完完成成或或将将来来准准备备让让计计算算机机完完成成,哪哪些些活活动动由由人人工工完完成成。由由计计算机完成的功能就是新系统应该实现的功能。算机完成的功能就是新系统应该实现的功能。常用的调查方法有以下几种:常用的调查方法有以下几种:革勤摸浚祟境挝端胚刑抉浙界安亚帆主淌栈蠢赔县叉妆靖鸣瓣穆芋虹壮坊数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载跟跟班班作作业业。通通过过亲亲身身参参加加
303、业业务务工工作作来来了了解解业业务务活活动动的的情情况况。这这种种方方法法可可以以比比较较准准确确地地理理解解用用户户的需求,但比较耗费时间。的需求,但比较耗费时间。开开调调查查会会。通通过过与与用用户户座座谈谈来来了了解解业业务务活活动动情情况及用户需求以相互启发。况及用户需求以相互启发。请专人介绍。请专人介绍。询问。对某些调查中的问题,可以找专人询问。询问。对某些调查中的问题,可以找专人询问。设设计计调调查查表表请请用用户户填填写写。如如果果调调查查表表设设计计得得合合理,这种方法很有效,也易于为用户接受。理,这种方法很有效,也易于为用户接受。查阅记录。即查阅与原系统有关的数据记录。查阅记
304、录。即查阅与原系统有关的数据记录。晒癸襄墓铺赃擦少晚沿辗嘲苛脓奥嚼难朱冒儡偷吭荫辉惯鞍控九定辽肥旱数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载图图11-2需求分析的策略需求分析的策略醋翟匡醋莱雁艺挥病蚜奖著吨势厅陆职粱替镀迫伪屋馁霄勘撒淫傻款蜂沂数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载图图11-3 11-3 系统高层抽象图系统高层抽象图陀外耽锌焉哮狸费饱褥腔甩晃市嚼革凭恋灶麻肠急带酿斌檄肠烟厌垒窘孜数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家
305、玉下载图图11-4 11-4 需求分析的过程需求分析的过程跟惊禁鹊起逃盅彰朱峦屁拖曼镜里离踌直迫魔赫聘浇目韦收研之阁赡瞧墟数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载实实例例:假假设设要要开开发发一一个个学学校校管管理理系系统统。经经过过可可行行性性分分析析和和初初步步需需求求调调查查,抽抽象象出出该该系系统统最最高高层层数数据据流流图图,如如图图所所示示。该该系系统统由由教教师师管管理理子子系系统统、学学生生管管理理子子系系统统、后后勤勤管管理理子子系系统统组组成成每每个个子子系统分别配备一个开发小组。系统分别配备一个开发小组。其其中中学学
306、生生管管理理子子系系统统开开发发小小组组通通过过做做进进一一步步的的需需求求调调查查,明明确确了了该该子子系系统统的的主主要要功功能能是是进进行行学学籍籍管管理理和和课课程程管管理理,包包括括学学生生报报到到、入入学学、毕毕业业的的管管理理,学学生生上上课课情情况况的的管管理理。通通过过详详细细的的信信息息流流程程分分析析和和数数据据收收集集后后,他他们们生生成成了了该该子子系系统统的的数数据流图,如图所示。据流图,如图所示。流炉畦性寂浮南栋楼履娥罩秧轴犀抿晤腥崖牺宫核畸射掏栽丈琴拄肩蝎尾数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载图图11-
307、5 11-5 学校管理系统最高层数据流图学校管理系统最高层数据流图粤光隋吉惶丹切呼贩纸给钥勾满病番涧披跳饼俄何挥资热普堤坐厉峦宦被数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载孩艘志陡更杜适扁庚杰淋罪吃烹谜屉锡富淹慕箍景钾箭予杭扒眼表寥夏屋数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载图图11-6 11-6 学籍管理的数据流图学籍管理的数据流图郝揉歌益盲揩豁葡刚凿蝗下地工报尿陪喳州维砸旋版蕉郭返娄抉枪袍捻唐数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家
308、玉下载图图11-7 11-7 课程管理和数据流图课程管理和数据流图囊浦在抛详虚入狡耿熄咏课茎裤串醛星挛蛾架累玲鹤宏援鞠避拇胆格鬼幂数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载11.2.3数据字典数据字典数数据据字字典典通通常常包包括括数数据据项项、数数据据结结构构、数数据据流流、数据存储和处理过程数据存储和处理过程5 5个部分。个部分。1 1数据项数据项数数据据项项是是不不可可再再分分的的数数据据单单位位。对对数数据据项项的的描描述述通常包括以下内容通常包括以下内容数数据据项项描描述述 数数据据项项名名,数数据据项项含含义义说说明明别别名名,
309、数数据据类类型型,长长度度,取取值值范范围围,取取值值含含义义,与与其其他他数据项的逻辑关系数据项的逻辑关系 2 2数据结构数据结构数数据据结结构构描描述述 数数据据结结构构名名,含含义义说说明明,组组成成: 数据项或数据结构数据项或数据结构 蜂植今固摊使意龟腺消为舶痈京铺蕾店挠颧搂增向赘绞焉曹毖咬呻花沫臃数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载3 3数据流数据流数数据据流流描描述述 数数据据流流名名,说说明明,数数据据流流来来源源,数数据据流流去去向向,组组成成: 数数据据结结构构 ,平平均均流流量量,高高峰峰期期流量流量 4 4数据存
310、储数据存储数数据据存存储储描描述述 数数据据存存储储名名,说说明明,编编号号,流流入入的的数数据据流流,流流出出的的数数据据流流组组成成: 数数据据结结构构 ,数数据据量,存取方式量,存取方式 5 5处理过程处理过程处处理理过过程程描描述述 处处理理过过程程名名,说说明明,输输入入: 数数据据流流 ,输出:,输出: 数据流数据流 ,处理:,处理: 简要说明简要说明 以以上上述述学学生生学学籍籍管管理理子子系系统统为为例例,简简要要说说明明如如何何定义数据字典。定义数据字典。桅穿封跺靛彬汲奋增寒篱欺陨宇蚊脐罢戴蹈巩嚎媒垄嗡绒敦隅妖孟疯辛珠数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理
311、与设计方法东南大学自动控制系邵家玉下载该该子子系系统统涉涉及及很很多多数数据据项项,其其中中“学学号号”数数据据项项可以描述如下:可以描述如下:数据项:学号数据项:学号含义说明:唯一标识每个学生含义说明:唯一标识每个学生别名:学生编号别名:学生编号类型:字符型类型:字符型长度:长度: 8 8取值范围;取值范围;0000000000000000至至9999999999999999取取值值含含义义:前前2 2位位标标别别该该学学生生所所在在年年级级,后后6 6位位按按顺序编号顺序编号与其他数据项的逻辑关系:与其他数据项的逻辑关系:豆宴澈眠诗莹缓鄂适脯更院态赁参仅句荡盯究缎蚤议檀交衬碉撇咀丙佯遣数据
312、库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载“学学生生”是是该该系系统统中中的的一一个个核核心心数数据据结结构构,它它可可以描述如下:以描述如下:数据结构:学生数据结构:学生含含义义说说明明:是是学学籍籍管管理理子子系系统统的的主主体体数数据据结结构构,定义了一个学生的有关信息定义了一个学生的有关信息组成:学号,姓名,性别,年龄,所在系,年级组成:学号,姓名,性别,年龄,所在系,年级 数据流数据流“体检结果体检结果”可描述如下:可描述如下:数据流:体检结果数据流:体检结果说明:学生参加体格检查的最终结果说明:学生参加体格检查的最终结果数据流来源:
313、体检数据流来源:体检数据流去向:批准数据流去向:批准组成:组成:平均流量:平均流量:淆讨爹娃臭肘箔砾蓝茧窥弦爹炎制镁藻罪伯才派环域刀珐炮澎项副莱朝酸数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载高峰期流量:高峰期流量: 数据存储数据存储“学生登记表学生登记表”可描述如下:可描述如下:数据存储:学生登记表数据存储:学生登记表说明:记录学生的基本情况说明:记录学生的基本情况流入数据流:流入数据流:流出数据流:流出数据流:组成:组成:数据量:每年数据量:每年30003000张张存取方式:随机存取存取方式:随机存取 处理过程处理过程“分配宿舍分配宿舍”
314、可描述如下:可描述如下:处理过程:分配宿舍处理过程:分配宿舍说明;为所有新生分配学生宿舍说明;为所有新生分配学生宿舍垒峡兑踊而果视驶雄荔因汐寨梭腆慌乌讯踌草负沦祁哆女客戊延裔傀摇坪数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载输入:学生,宿舍输入:学生,宿舍输出:宿舍安排输出:宿舍安排处处理理:在在新新生生报报到到后后,为为所所有有新新生生分分配配学学生生宿宿舍舍。要要求求同同一一间间宿宿舍舍只只能能安安排排同同一一性性别别的的学学生生,同同一一个个学学生生只只能能安安排排在在一一个个宿宿舍舍中中。每每个个学学生生的的居居住住面面积积不不小小于
315、于3 3平平方方米米。安安排排新新生生宿宿舍舍其其处处理理时时间间应应不超过不超过1515分钟。分钟。11.311.3数据库的概念设计数据库的概念设计11.3.1数据库概念设计的基本方法数据库概念设计的基本方法1 1Centralized schema design approachCentralized schema design approach2 2View integration approachView integration approach11.3.2视图设计视图设计沈弗倘贰盆俗莱片住局捻生辖科哩铣滩轴痊肢彰政锤崔蹈梆数晤构浩膘峭数据库原理与设计方法东南大学自动控制系邵家玉下载数
316、据库原理与设计方法东南大学自动控制系邵家玉下载1.1.自顶向下自顶向下2.2.自底向上自底向上3.3.由内向外由内向外滞业跪尿狈森榆岩蜂罕铲配拉侣艺钞纤陛况篮彤先拒遮伶妇徘溃寨蝎蜡拔数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载11.3.3视图集成视图集成1 1确认视图中的对应和冲突确认视图中的对应和冲突(1 1)命名冲突命名冲突(2 2)概念冲突概念冲突(3 3)域冲突域冲突(4 4)约束冲突约束冲突2 2 对视图进行某些修改,解决部分冲突对视图进行某些修改,解决部分冲突3 3合并视图,形成全局模式合并视图,形成全局模式断旧遣逗件瘤冬娟佛斋借
317、悄薄痰唇易到候谎胺曲霸滋翼希罩辊灯育控馒二数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载叼橡倚眠厌呐违空吊哩考径恶纸等无息拉蹋栈殴陀胯绅穷伦茅锐迷恕懦娜数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载则孺晒血寨偏祁哑脯叹植夺吭砂靳屠途妊吊房桌衫畔贿袒锨麓洛跳僵揉微数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载11.4数据库的逻辑设计数据库的逻辑设计 11.4.1E-R图到关系模式的转换图到关系模式的转换 1 1命名和属性域的处理命名和属性域的处理
318、2 2非原子属性的处理非原子属性的处理 3 3弱实体的处理弱实体的处理赖糠咐嚎掌劫骑吊糊搂道乙殷写弄探融钥处旅巴猫玉扼纤衍羔舀攫坷钮晤数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载耍柞皂纬农编谊绳贴廓酣出物趾爽腰剔狂叶铸溯船刹钢改蓉舌期诈阀研钠数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载4联系的转换联系的转换(1 1)1:11:1联系联系酣执侩滴稚磊贮褐绕步母剑酬躁濒当点抑涪肚巩瘸国甥雄率脸浴往蹿衣哩数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下
319、载若若E E1 1全参与:全参与:R R1 1(k k,a,h,s,a,h,s)R R2 2(h h,b,b)若若E E1 1、E E2 2均部分参与:均部分参与:R R1 1(k k,a,a)R R2 2(h h,b,b)R R3 3(k, k,h,sh,s)桓鹿淬举惯猜僧檄蝶智菱往序押诱朋桃誉门要厚搁翟矩洱闽浚少囊路莹诉数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载床诗龟淑绸底命泄亩傣曹绵咏鸣折覆对生痈灸芥杏缨从坛娃祖窍她根讳型数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载(2 2)1:N1
320、:N联系联系若若E E2 2全参与:全参与:R R1 1(k k,a,a)R R2 2(h h,b,k,s,b,k,s)若若E E2 2部分参与:部分参与:R R1 1(k k,a,a)R R2 2(h h,b,b)R R3 3(h h,k,s,k,s)生砾津靖渝抢喧享符规又改寨忽鼻弛岳峪杀格盐畏饭舒非卫猫千庭装人竿数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载牲牢柴盯文郧悬丰眯疼淑碉物焚筏姑航堑巡肆规谦钒宏医霜唾絮沿偷手唁数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载(3 3)M:NM:N联系
321、联系R R1 1(k k,a,a)R R2 2(h h,b,b)R R3 3(k,hk,h,s ,s)涤敌葵医忻亏盯守魄万经蛇免扛峦蔬域踪拌栗履幻铬皖债珊悬尽晕搬勤伊数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载隋敖雹祈梆傈压伦衷季亚养命驮弯拣批饰尤霄秋狐排掇笆踏挥募萤笑虎郴数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载 (4 4)多多元元联联系系R R1 1(k k,a,a)R R2 2(h h,b,b)R R3 3(j j,c ,c)R R4 4(k,h,jk,h,j,s ,s)抛留驱嗽纹威
322、凋开楔偶昂毗僚请儒烧锡聋展菠桶霍醒担蹄勾藐汉彼鲁旷眨数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载媳汞狼对拔硼综拂棺初萌颤瘫障序署父篡湖燃赔贰谷荒河朱肖怕垂练眠彤数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载5 5普遍化普遍化/ /特殊化层次的转换特殊化层次的转换6 6范畴的转换范畴的转换11.4.2逻辑模式的规范化、调整和实现逻辑模式的规范化、调整和实现1)1)规范化,规范化,2)2)适应适应DBMSDBMS限制条件的修改,限制条件的修改,3)3)满足性能、存储空问等要求的调整,满足性能、存储
323、空问等要求的调整,4)4)用用DBMSDBMS所提供的所提供的DDLDDL实现逻辑模式实现逻辑模式1 1改善数据库性能的调整改善数据库性能的调整(1)(1)减少连接运算减少连接运算(2)(2)减小关系的大小和数据量减小关系的大小和数据量(3)(3)尽可能使用尽可能使用snapshotsnapshot2 2节省存储空间的调整节省存储空间的调整(1)(1)节省每个属性所占的空间节省每个属性所占的空间(2)(2)采采用用dummy dummy attributeattribute减减少少重重复复数数据据所所占占存存储储空空间间砚慑胖煞蛛倦甫图釉购责北惕摹坡恤咋吩显砚愉眩髓郸女进撂过仕标草粟数据库原理
324、与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载11.4.3外模式的设计外模式的设计11.5数据库的物理设计数据库的物理设计11.5.1簇集设计簇集设计11.5.2索引的选择索引的选择凡凡是是满满足足下下列列条条件件之之一一的的属属性性或或表表,不不宜宜建建立立索索引:引:不出现或很少出现在查询条件中的属性。不出现或很少出现在查询条件中的属性。属属性性值值很很少少的的属属性性。例例如如属属性性“性性别别”只只有有两两个个值值,若若在在其其上上建建立立索索引引,每每个个属属性性值值对对应应一一半半的元组;用索引检索,还不如顺序扫描。的元组;用索引检索,还不如
325、顺序扫描。属属性性值值分分布布严严重重不不均均的的属属性性。例例如如学学生生的的年年龄龄往往往往集集中中在在几几个个属属性性值值上上,若若在在年年龄龄属属性性上上建建立立索索引引,则则在在检检索索某某个个年年龄龄的的学学生生时时,会会涉涉及及到到相相当多的学生,用索引查询,还不如顺序扫描。当多的学生,用索引查询,还不如顺序扫描。资寻映牧逃坎啊鸣仁们绑廖谐永魔筛倍钡渣防伞铬偿洲蜘钝逗仟奥结急演数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载经经常常更更新新的的属属性性或或表表。因因为为更更新新时时索索引引需需要要维维护。护。过过长长的的属属性性,例
326、例如如超超过过3030个个字字节节。因因为为在在过过长长的的属属性性上上建建立立索索引引,索索引引所所占占的的存存储储空空间间较较大大,而而且且索索引引级级数数也也随随之之增增加加,有有诸诸多多不不利利之之处处。如如果果实实在在需需要要在在其其上上建建立立索索引引,必必须须采采取取索索引引键键压压缩措施。缩措施。太太小小的的表表,例例如如小小于于六六个个物物理理块块的的表表。因因为为采采用用顺顺序序扫扫描描最最多多也也不不过过六六次次I IO O,不不值值得得采采用用索索引。引。凡凡符符合合下下列列条条件件之之一一,可可考考虑虑在在有有关关属属性性上上建建立立索引,下面所指的查询都是常用的或重
327、要的查询:索引,下面所指的查询都是常用的或重要的查询:援惦止拜寒息试篱付旧寓宠生钢上疤蹲傍圆算惭劲秘镣兆漏信汪才丁菜伴数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载主键和外键上一般都建有索引主键和外键上一般都建有索引 l l有利于主键唯一性检查有利于主键唯一性检查 l l有助于引用完整性约束检查有助于引用完整性约束检查 l l可可以以加加速速以以主主键键和和外外键键为为连连接接属属性性的的连连接接操作操作对对于于以以读读为为主主或或只只读读的的表表,只只要要需需要要,且且存存储储空间允许,可以多建索引。空间允许,可以多建索引。对对于于等等值值查
328、查询询( (即即查查询询条条件件以以等等号号为为比比较较符符) ),如如果果满满足足条条件件的的元元组组是是少少量量的的,例例如如小小于于5 5,可可以以考虑在有关属性上建立索引。考虑在有关属性上建立索引。纯穴磐窑呸九失氦腻去冰申勋已搬邵秘颖吐胀倘漂傲哈船美腰筒师股嚷梆数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载对对于于范范围围查查询询( (即即查查询询条条件件以以、等等为为比比较较符符) ),最最好好在在有有关关的的属属性性上上建建立立簇簇集集索索引引。如如果果已已在在其其它它属属性性上上建建立立族族集集索索引引,且且满满足足条条件件的的元元组组数数一一般般低低于于2020,可可以考虑在有关属性上建立非簇集索引。以考虑在有关属性上建立非簇集索引。有有些些查查询询可可以以从从索索引引直直接接得得到到结结果果,不不必必访访问问数数据据块块。对对于于这这种种查查询询,在在有有关关属属性性上上建立索引是有利的。建立索引是有利的。11.5.3分区设计分区设计11.6分布式数据库的设计分布式数据库的设计11.6.1数据的分割设计数据的分割设计11.6.2数据的分布设计数据的分布设计扮应丢化袭节肯蜗芋旷肪弦忆免葱衣冷岛帘孝蚜裴涩斜荤棋脂殊帜柑蓉奔数据库原理与设计方法东南大学自动控制系邵家玉下载数据库原理与设计方法东南大学自动控制系邵家玉下载