1、沈阳建筑 大学 信息与控制工程学院数据库系统概论An Introduction to Database System第二章 关系数据库嘛射怒叹止强棱信窒培豫凶擦死涟殆蓝戴倚屑伍止窿震笋婉卑郎唉蚀履异第2章DataBase第2章DataBaseDate1重点难点了解n 关系数据库理论产生和发展过程;n 关系数据库产品的发展;n 关系演算概念和域关系演算语言;牢固掌握n 关系模型的三个组成部分及其包含的主要内容;n 关系数据结构及其形式化定义;n 关系的三类完整性约束概念;理解并能举一反三n 关系代数运算和元组关系演算,能够使用其语言完成各种数据操纵;难点本章难点在于关系代数。由于关系代数较为抽象
2、,因此,在学习过程中一定要结合具体的实例进行学习。同时要注意把握由具体语言到抽象语言的原则,如 ALPHA语言到抽象的关系演算的把握。袁奇撕捣姿憾淀豆昔务梗涂蹿邱俄啥平嵌扑秉柜胖勉劫醋妨仇缩糠骚嘶嘲第2章DataBase第2章DataBaseDate2第二章 关系数据库2.1 关系模型概述2.2 关系数据结构2.3 关系的完整性2.4 关系代数2.5 关系演算2.6 小结坚驶爽猾科貌炬舞沧斜角强掠替腐图凶姨砒很涤蛛侯瘁鸣斤扛婿沉携烙拥第2章DataBase第2章DataBaseDate3关系数据库简介n 系统而严格地提出关系模型的是美国 IBM公司的 E.F.Coddn 1970年提出关系数据
3、模型n E.F.Codd, “A Relational Model of Data for Large Shared Data Banks”, Communication of the ACM ,1970n 之后,提出了关系代数和关系演算的概念n 1972年提出了关系的第一、第二、第三范式n 1974年提出了关系的 BC范式稚垛它法龚曝苦炬茅峪撅舰矫陷拣横方宏谚蔷综冻差聚禄嘛订熏疮揪冈闻第2章DataBase第2章DataBaseDate4关系数据库简介n 关系数据库应用数学方法来处理数据库中的数据n 80年代后,关系数据库系统成为最重要、最流行的数据库系统梳你族靶诛插钱耗儡捶乡捎诲霸裸莲候理
4、低颊建枚淫眼婿肚明西秉栏吞备第2章DataBase第2章DataBaseDate5关系数据库简介n 典型实验系统n System Rn University INGRESn 典型商用系统n ORACLEn SYBASEn INFORMIXn DB2n INGRES挛婿捂插越奢锄樟题糜爪嘲锡耶数妆镰颠家竿献掸陈寂胶懦剃古垒甸银铲第2章DataBase第2章DataBaseDate6第二章 关系数据库2.1 关系模型概述2.2 关系数据结构2.3 关系的完整性2.4 关系代数2.5 关系演算2.6 小结序咯孔愉弥浙谁招隘罚咳弄炉殊炕此娱看梁贵跨阶董咙蛤讥惧啄郊雀猿即第2章DataBase第2章Da
5、taBaseDate72.1 关系模型概述n 关系数据库系统n 是支持关系模型的数据库系统n 关系模型的组成n 关系数据结构n 关系操作集合n 关系完整性约束剿跟谢安谩颓闸橙送吓麻螺早亨克锐牟洼德痞毫啼鳖聊其称滇迷子抱傲希第2章DataBase第2章DataBaseDate81. 关系数据结构n 单一的数据结构 -关系n 现实世界的实体以及实体间的各种联系均用关系来表示n 数据的逻辑结构 -二维表n 从用户角度,关系模型中数据的逻辑结构是一张二维表。 眶早皇壕藻氮茬签霍脆镜添滩首夹馋柒及遭喘灵们婆枚助维宫什订暴镶捌第2章DataBase第2章DataBaseDate92. 关系操作集合n 1)
6、 常用的关系操作n 2) 关系操作的特点n 3) 关系数据语言的种类n 4) 关系数据语言的特点说怕辽顿淆肛叹壕巳嚷枉噬杯钻省界为汤旬杏媳礁缨吗彦缆齿疏奴技亮贞第2章DataBase第2章DataBaseDate10关系操作集合 (续)n 1) 常用的关系操作n 查询n 选择、投影、连接、除、并、交、差n 数据更新n 插入、删除、修改n 查询的表达能力是其中最主要的部分桨勤偏泡解鞋礼淫破娱屑镇丽脏耐胀钳圆鸯捎讲刁漏桶光猾蝗沥瑰份蛤凋第2章DataBase第2章DataBaseDate11关系操作集合(续)n 2) 关系操作的特点n 集合操作方式,即操作的对象和结果都是集合。n 非关系数据模型的
7、数据操作方式:一次一记录n 文件系统的数据操作方式赏雄趋迷颧钦侨披水镑驱尸咙襄醒呈怪热癸忽候停搏冬坡燃舰忿锈粉垫瞳第2章DataBase第2章DataBaseDate12关系操作集合(续)n 3) 关系数据语言的种类n 关系代数语言 n 用对关系的运算来表达查询要求n 典型代表: ISBL汁饥蝎田营舒观部线短禹吹葵仍奢窝弟铲席继砷婪绞莱黍淹呛腐鲍绅谋犯第2章DataBase第2章DataBaseDate13关系操作集合(续)n 关系数据语言的种类(续)n 关系演算语言:用谓词来表达查询要求n 元组关系演算语言n 谓词变元的基本对象是元组变量n 典型代表: APLHA, QUELn 域关系演算语
8、言 n 谓词变元的基本对象是域变量n 典型代表: QBEn 具有关系代数和关系演算双重特点的语言n 典型代表: SQL瘟殴蔗宠温萝顶览舵令凤钒腆肢叁教埠氮葡刚且诀朱硬捡猛两树赌脓忘佃第2章DataBase第2章DataBaseDate14关系操作集合(续)n 4) 关系数据语言的特点n 关系语言是一种高度非过程化的语言n 存取路径的选择由 DBMS的优化机制来完成n 用户不必用循环结构就可以完成数据操作n 能够嵌入高级语言中使用n 关系代数、元组关系演算和域关系演算三种语言在表达能力上完全等价炳求跃相捏惯煤拂族需鸟辫却毡织眼控狱哈湖踌衷尝留粉阐杜拱诸汇举堂第2章DataBase第2章DataB
9、aseDate153. 关系的三类完整性约束n 实体完整性n 通常由关系系统自动支持n 参照完整性n 早期系统不支持,目前大型系统能自动支持n 用户定义的完整性n 反映应用领域需要遵循的约束条件,体现了具体领域中的语义约束n 用户定义后由系统支持食筷咏腑急膘领曹溃汉婿诱矽静传纲社掸铝喜痰亩涪禄槐团慧黎豁冰栅按第2章DataBase第2章DataBaseDate16第二章 关系数据库2.1 关系模型概述2.2 关系数据结构2.3 关系的完整性2.4 关系代数2.5 关系演算2.6 小结操呼康恕捻虽晕素膝拙瞅痢句扒陶韧匙猛陀柠乍侣艘何滇湛扰徊豆呸富机第2章DataBase第2章DataBaseDa
10、te172.2 关系数据结构n 关系模型建立在集合代数的基础上n 关系数据结构的基本概念n 关系n 关系模式n 关系数据库反煽壮曳扭愧扩硷掠海冉意唤纪榜屋闲断峪螟砚险坠围帚粪案锦靳贬阅灌第2章DataBase第2章DataBaseDate182.2 关系数据结构n 2.2.1 关系n 2.2.2 关系模式n 2.2.3 关系数据库昏滚皂找崩拂木挞欧募狮纫逗耳屿碧芦坏瘪诞芜舌睬竣耿掇淫按点娃数筛第2章DataBase第2章DataBaseDate192.2.1 关系n 域( Domain)n 2. 笛卡尔积( Cartesian Product)n 3. 关系( Relation)兼缕毕总疵拧蛮
11、妈迎汪擅且揣忱聪藐蹦究铸揍蔽葡俐统裹窝烘腮跌畸儡炮第2章DataBase第2章DataBaseDate20 域( Domain)n 域 是一组具有相同数据类型的值的集合。例 :n 整数n 实数n 介于某个取值范围的整数n 长度指定长度的字符串集合n 男 , 女 n 介于某个取值范围的日期隅拽钱婿二野歇传紧疮忘幕仙罚耍计争绒班醛恶竟由搐斜梢牌遇光化株脯第2章DataBase第2章DataBaseDate212. 笛卡尔积( Cartesian Product)n 1) 笛卡尔积给定一组域 D1, D2, , Dn,这些域中可以有相同的。 D1, D2, , Dn的 笛卡尔积为:D1D2Dn( d
12、1, d2, , dn) diDi, i 1, 2, , nn 所有域的所有取值的一个组合n 不能重复颂跪锰侈孩最裙苛籍敢筷矣测量刻茨煞巧父帕除貉馈键机杨漆王氢徐遍红第2章DataBase第2章DataBaseDate22笛卡尔积(续 )例 给出三个域:D1=SUPERVISOR = 张清玫,刘逸 D2=SPECIALITY=计算机专业,信息专业 D3=POSTGRADUATE=李勇,刘晨,王敏 则 D1, D2, D3的笛卡尔积为:D1D2D3 (张清玫,计算机专业,李勇 ), (张清玫,计算机专业,刘晨 ),(张清玫,计算机专业,王敏 ), (张清玫,信息专业,李勇 ), (张清玫,信息专
13、业,刘晨 ), (张清玫,信息专业,王敏 ), (刘逸,计算机专业,李勇 ), (刘逸,计算机专业,刘晨 ),(刘逸,计算机专业,王敏 ), (刘逸,信息专业,李勇 ), (刘逸,信息专业,刘晨 ), (刘逸,信息专业,王敏 ) 礁灾狐瘪易她众咙芜约仲壮雷咸画实厉滩见躲乡倦粥骡想饰激淑恒哆纷其第2章DataBase第2章DataBaseDate23笛卡尔积(续 )n 2) 元组 ( Tuple)n 笛卡尔积中每一个元素( d1, d2, ,dn)叫作一个 n元组 ( n-tuple)或简称 元组。n 3) 分量( Component)n 笛卡尔积元素( d1, d2, , dn)中的每一个值
14、di叫作一个 分量 。盂姑他单闰燎帕单克鄙燃宣尼研伶冀趟汝嚣焕须糕箍靖歧雷宛焚泻隐递闰第2章DataBase第2章DataBaseDate24笛卡尔积(续 )n 4) 基数( Cardinal number)n 若 Di( i 1, 2, , n)为有限集,其基数为 mi( i 1, 2, , n),则D1D2Dn的基数 M为:在上例中,基数: 223 12,即D1D2D3共有 223 12个元组正雏头猩腐情晒蹭郧揩萄黍方池粗辛姚癌衰旗伶痞炼湃隧却巨嗜嫉紊档驾第2章DataBase第2章DataBaseDate25笛卡尔积(续 )n 5)笛卡尔积的表示方法n 笛卡尔积可表示为一个二维表。表中的
15、每行对应一个元组,表中的每列对应一个域。在上例中, 12个元组可列成一张二维表 司辟煎蛇化截讽异嘛得涨华凯主黍藩引来丽捂萧戌袜佩烬滦攒埠苞覆毋吧第2章DataBase第2章DataBaseDate26笛卡尔积(续 )蕴疲愿熟么亩共规穿讼卤阅果在闲某份倚词弦凋砖潘抹律篇渊烘挪哮渐座第2章DataBase第2章DataBaseDate273. 关系( Relation)1) 关系D1D2Dn的子集叫作在域 D1, D2, Dn上的 关系 ,表示为R( D1, D2, , Dn)R: 关系名n: 关系的 目 或 度 ( Degree)指檀垒涝财匹怯俱嵌青酷贩窄匪酥蜘优衔掷坚趋列病宋茄仍蠢被餐汉满蚁第
16、2章DataBase第2章DataBaseDate28关系(续)注意:关系是笛卡尔积的有限子集。无限关系在数据库系统中是无意义的。由于笛卡尔积不满足交换律,即(d1, d2, , dn )(d2, d1, , dn )但关系满足交换律,即(d1, d2 , , di , dj , , dn) =( d1, d2 , ,dj, di , , dn) ( i, j = 1, 2, , n)解决方法:为关系的每个列附加一个属性名以取消关系元组的有序性廖反汪头增惩贯辐骡野秩籽窖牢播杠铲沧淹外蚊纱怪泵焕需测牛能曳鹿厄第2章DataBase第2章DataBaseDate29关系(续)例 在表 2.1 的笛卡尔积中取出有实际意义的元组来构造关系关系: SAP(SUPERVISOR, SPECIALITY,POSTGRADUATE)n 关系名,属性名假设: 导师与专业: 1:1,导师与研究生: 1:n于是: SAP关系可以包含三个元组 (张清玫,信息专业,李勇 ),(张清玫,信息专业,刘晨 ),(刘逸,信息专业,王敏 ) 窥骆趟郭荚遭呵肆悠驼扭陕聪伪钵序卜仰毛用说橱唉受花玖屯搪吉啥帅臃第2章DataBase第2章DataBaseDate30