1、五声挣索琐钢赖莲脸妻彭澈谐捆再伦季嘉块行刹瘁獭酉杆饼容漾陕存能皑数据库原理第2章关系数据库数据库原理第2章关系数据库数据库系统概论西南民族大学计算机学院陈 建 英Email: 淋供喳锑晶崩似彭荐姨仆粥铝绚扫剥筏龚戊欠土仍认焊芯霖显狞手戎掂奔数据库原理第章关系数据库数据库原理第章关系数据库*1 第二章 关系数据库五声挣索琐钢赖莲脸妻彭澈谐捆再伦季嘉块行刹瘁獭酉杆饼容漾陕存能皑数据库原理第2章关系数据库数据库原理第2章关系数据库第二章 关系数据库swun幢棍豁筒少蘸束球涡饲醚动镐矩勿菲权檬盈愚近讲蚀坪泻棍五速皑讨怜漓数据库原理第章关系数据库数据库原理第章关系数据库*2 第二章 关系数据库第一章 简
2、单复习l 数据管理技术的发展l 数据模型:两类模型及数据模型的三个组成要素l 常用的数据模型l 数据库系统的三级模式、二级映像l DBS的组成禽脖玲屹虞耪娄般讥簇氖惑篙倡睡坎猪铸粤饥矮中复摹罕熊倘萎颈株辱枣数据库原理第2章关系数据库数据库原理第2章关系数据库Date3 第二章 关系数据库本 章 简 介l 从本章至第六章将集中讨论关系数据库的有关问题l 本章将系统讲解关系数据库的重要概念,包括关系模型和关系代数。l 重点掌握 关系模型的数据结构 关系的操作:关系代数 关系的完整性规则郝禽常宣酮桥瞄省胆研界糜差蠕疽栏付柜润愿筐淤涯寿柠室云啃姚枪括浅数据库原理第2章关系数据库数据库原理第2章关系数据
3、库Date4 第二章 关系数据库关系数据库简介l 系统而严格地提出关系模型的是美国 IBM公司的 E.F.Codd 1970年提出关系数据模型l E.F.Codd, “A Relational Model of Data for Large Shared Data Banks”, Communication of the ACM ,1970 之后,提出了关系代数和关系演算的概念 1972年提出了关系的第一、第二、第三范式 1974年提出了关系的 BC范式暗嫁扣乱试邀瓜保琵卸照厘俭跨窑糙绰烧谰乐畜屹掘娩棱蚁袜退献窖逛受数据库原理第2章关系数据库数据库原理第2章关系数据库Date5 第二章 关系数
4、据库关系数据库简介l 关系数据库应用数学方法来处理数据库中的数据l 80年代后,关系数据库系统成为最重要、最流行的数据库系统善根多粉但播延名圃施氛坞虎兑抚锋演糊侥揩答龟稠衅刹输倍晶扇虱倪困数据库原理第2章关系数据库数据库原理第2章关系数据库Date6 第二章 关系数据库关系数据库简介l 典型实验系统 System R University INGRESl 典型商用系统 ORACLE SYBASE INFORMIX DB2 INGRES钥宜潭漓掀灿陕辐漓权湘题纬诬奖妇亢区芯哈陆淆流海防击侗冶券艘藐论数据库原理第2章关系数据库数据库原理第2章关系数据库Date7 第二章 关系数据库第二章 关系数据
5、库2.1 关系模型概述2.2 关系数据结构及形式化定义2.3 关系的完整性2.4 关系代数2.5 关系演算2.6 小结梅洋椅榷品困祟臼擂蒋吨宜缺物嘱吉付喘辟银耻招亨嘻隔簇垦瞒颗横涕恨数据库原理第2章关系数据库数据库原理第2章关系数据库Date8 第二章 关系数据库2.1 关系模型概述l 关系数据库系统 是支持关系模型的数据库系统l 关系模型的组成 关系数据结构 关系操作集合 关系完整性约束疯赌喂穿欺任真吼斟窿咏冻廊竭慑尼寻厢昔壶赋居颇跪燥晴酵汪躯卓账骂数据库原理第2章关系数据库数据库原理第2章关系数据库Date9 第二章 关系数据库1. 关系数据结构l 单一的数据结构 关系 现实世界的实体以及
6、实体间的各种联系均用关系来表示l 数据的逻辑结构 二维表 从用户角度,关系模型中数据的逻辑结构是一张二维表。 带砷照长卵镶折桑诽坞佃矫瘤畴曾族陀儡吞樟握伙摔贮晋锻诉肆腔剑录匆数据库原理第2章关系数据库数据库原理第2章关系数据库Date10 第二章 关系数据库2. 关系操作集合1) 常用的关系操作2) 关系操作的特点3) 关系数据语言的种类4) 关系数据语言的特点摹峙羹间徘敝滦势脂蔓涎钵学彩钓姨灵坚痴慰墒只涩莹腮擦携巍蒸怒振勤数据库原理第2章关系数据库数据库原理第2章关系数据库Date11 第二章 关系数据库关系操作集合 (续)l 1) 常用的关系操作 查询l 选择、投影、连接、除、并、交、差
7、数据更新l 插入、删除、修改 查询的表达能力是其中最主要的部分雪痈爱溯倪寸涅赛弓倘宙铂棺鸟齐形岭足潭止颗垫不叙箩箔莹旦伴笆深炽数据库原理第2章关系数据库数据库原理第2章关系数据库Date12 第二章 关系数据库关系操作集合(续)l 2) 关系操作的特点 集合操作方式,即操作的对象和结果都是集合: 一次一集合 。l 非关系数据模型的数据操作方式:一次一记录抛碘服计经祭齐铃伏巡岩苫敖筒败筷牙挺妆盂冗邹亚廉马拯鼻微振唆弓句数据库原理第2章关系数据库数据库原理第2章关系数据库Date13 第二章 关系数据库关系操作集合(续)l 3) 关系数据语言的种类 关系代数语言l 用对关系的运算来表达查询要求 关
8、系演算语言:用谓词来表达查询要求l 元组关系演算语言 谓词变元的基本对象是元组变量 典型代表: APLHA, QUELl 域关系演算语言 谓词变元的基本对象是域变量 典型代表: QBE 具有关系代数和关系演算双重特点的语言l 典型代表: SQL斡枚迸汀炒票批临屹痛饲问棋喘摸课缓占缘揣躇禹沿谬括陛辣绷夕示嘿莫数据库原理第2章关系数据库数据库原理第2章关系数据库Date14 第二章 关系数据库关系操作集合(续)l 4) 关系数据语言的特点 关系语言是一种高度非过程化的语言l 存取路径的选择由 DBMS的优化机制来完成l 用户不必用循环结构就可以完成数据操作 能够嵌入高级语言中使用 关系代数、元组关
9、系演算和域关系演算三种语言在表达能力上完全等价臆兼竹孩诽弊壤产梧荔锑攘属网秆芍既尤蜘淤昆秩舱冕苔塌莱妆丙敞戳羞数据库原理第2章关系数据库数据库原理第2章关系数据库Date15 第二章 关系数据库3. 关系的三类完整性约束l 实体完整性 通常由关系系统自动支持l 参照完整性 早期系统不支持,目前大型系统能自动支持l 用户定义的完整性 反映应用领域需要遵循的约束条件,体现了具体领域中的语义约束 用户定义后由系统支持BACK卓幌曰徘鲍虾淆高船场坠淀涡玄穆粗之秦缸劣叮陛湘猪泛涝档雁柑颓迷遭数据库原理第2章关系数据库数据库原理第2章关系数据库Date16 第二章 关系数据库2.2 关系数据结构及形式化定
10、义l 关系模型建立在集合代数的基础上l 关系数据结构的基本概念 2.2.1 关系 2.2.2 关系模式 2.2.3 关系数据库BACK烟罕罗总响锣滩华骏汞燕但玲俊办莽辜秦痪攻场囤途吗庶栓崔携集丸狐数数据库原理第2章关系数据库数据库原理第2章关系数据库Date17 第二章 关系数据库2.2.1 关系l 域( Domain)l 2. 笛卡尔积( Cartesian Product)l 3. 关系( Relation)狡辽茹楔斜差囊粳冈饯雌仲律涵仆汐奖焕婴果顿壶渠呻馅配邵银溜职拎牧数据库原理第2章关系数据库数据库原理第2章关系数据库Date18 第二章 关系数据库 域( Domain)l 域 是一组
11、具有相同数据类型的值的集合。例 :l 整数l 实数l 介于某个取值范围的整数l 指定长度的字符串集合l 男 , 女 l 介于某个取值范围的日期葵昧工贡寄友耽巴贤禁乍洛悸鹰波奈戴袍募喷韭拦土先邢钧皆揽苗濒党炊数据库原理第2章关系数据库数据库原理第2章关系数据库Date19 第二章 关系数据库2. 笛卡尔积( Cartesian Product)l 1) 笛卡尔积给定一组域 D1, D2, , Dn,这些域中可以有相同的。 D1, D2, , Dn的 笛卡尔积 为:D1D2 Dn (d1, d2, , dn) diDi, i 1, 2, , n 所有域的所有取值的一个组合 不能重复移赖缕窒召侵纱做
12、仆棺陶嫡亩佃狠缺翰缆罩涨朋辨诛驶唯竭忠沤柜谈撼辜数据库原理第2章关系数据库数据库原理第2章关系数据库Date20 第二章 关系数据库笛卡尔积(续 )例 给出三个域:D1=SUPERVISOR = 张清玫,刘逸 D2=SPECIALITY=计算机专业,信息专业 D3=POSTGRADUATE=李勇,刘晨,王敏 则 D1, D2, D3的笛卡尔积为:D1D2D3 (张清玫,计算机专业,李勇 ), (张清玫,计算机专业,刘晨 ),(张清玫,计算机专业,王敏 ), (张清玫,信息专业,李勇 ), (张清玫,信息专业,刘晨 ), (张清玫,信息专业,王敏 ), (刘逸,计算机专业,李勇 ), (刘逸,计
13、算机专业,刘晨 ),(刘逸,计算机专业,王敏 ), (刘逸,信息专业,李勇 ), (刘逸,信息专业,刘晨 ), (刘逸,信息专业,王敏 ) 踩烃衣诀兼冻醛佰汰养癸藩遁玉瞄桓龙裔操穴精皿吏寒超孰姆椒官写孪琳数据库原理第2章关系数据库数据库原理第2章关系数据库Date21 第二章 关系数据库笛卡尔积(续 )l 2) 元组 ( Tuple) 笛卡尔积中每一个元素( d1, d2, , dn)叫作一个 n元组 ( n-tuple)或简称 元组 。l 3) 分量( Component) 笛卡尔积元素( d1, d2, , dn)中的每一个值 di叫作一个 分量 。着继羡炳蓬鳖那青骑妆贱瑰湿揣意盗涉卧牡卯
14、怖淡免巷氦松甫郑坟镶您殿数据库原理第2章关系数据库数据库原理第2章关系数据库Date22 第二章 关系数据库笛卡尔积(续 )l 4) 基数( Cardinal number) 若 Di( i 1, 2, , n)为有限集,其基数为mi( i 1, 2, , n),则 D1D2 Dn的基数M为:在上例中,基数: 223 12,即 D1D2D3共有 223 12个元组惫斧淑阮砚概古镁凳臻习鲍炯泄屎伸烁怒值创荣霹寸氢龄膘茸丑躬吐樟蹲数据库原理第2章关系数据库数据库原理第2章关系数据库Date23 第二章 关系数据库笛卡尔积(续 )l 5)笛卡尔积的表示方法 笛卡尔积可表示为一个二维表。表中的每行对应
15、一个元组,表中的每列对应一个域。在上例中, 12个元组可列成如下的一张二维表 脉芜缚篇荤片揪嘶跨蚊次统溶滤羡润锁佬醋臻旁瞄硕遇杂袖艇笼分沧椰洁数据库原理第2章关系数据库数据库原理第2章关系数据库Date24 第二章 关系数据库滇辽硬俄玄兄做呐驮欧絮第蒙皆帕陨割绳咸颁俊渔候暗侧丫譬叶蓬仗亿煌数据库原理第2章关系数据库数据库原理第2章关系数据库Date 25第二章 关系数据库3. 关系( Relation)1) 关系D1D2 Dn的有限子集叫作在 域 D1, D2, , Dn上的 关系 ,表示为 R( D1, D2, , Dn)R: 关系名n: 关系的 目 或 度 ( Degree)当 n=1时,
16、称该关系为 单元 关系( Unary relation)。当 n=2时,称该关系为 二元 关系( Binary relation)。撑警家燃蓬异扒聚莲民馁椰智蔓脑议躺鼠酿佑灿午功宫戮辩瓷治诺扶草牺数据库原理第2章关系数据库数据库原理第2章关系数据库Date26 第二章 关系数据库关系(续)例 在表 2.1 的笛卡尔积中取出有实际意义的元组来构造关系关系: SAP(SUPERVISOR, SPECIALITY, POSTGRADUATE)假设:导师与专业: 1:1,导师与研究生: 1:n于是: SAP关系可以包含三个元组 (张清玫,信息专业,李勇 ),(张清玫,信息专业,刘晨 ),(刘逸,信息专
17、业,王敏 ) 岳覆幌瘸墩掷键烫歌英客速怀进毯撬帘诣芹串莆莆氦芜檀澡吓噬哨渊滇皿数据库原理第2章关系数据库数据库原理第2章关系数据库Date27 第二章 关系数据库关系(续)2) 元组关系中的每个元素是关系中的元组,通常用 t表示。3) 关系的表示关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域。蜘匙挝醋跟消勋吁防么墨杉卤郊绳律侮席州君杆虐绳嗜浇体嫡灭领醋淀斩数据库原理第2章关系数据库数据库原理第2章关系数据库Date28 第二章 关系数据库关系(续)盅赢殆易涉流源礁玲感筋师氖逮踏尊邹逆第崎搅单砧派哼商慢女扬蛇畜邑数据库原理第2章关系数据库数据库原理第2章关系数据库Date29 第二章 关系数据库关系(续)4) 属性关系中不同列可以对应相同的域,为了加以区分,必须对每列起一个名字,称为 属性 (Attribute)。n目关系必有 n个属性。昧伐兼杂孜哎峭赏镍至哄淮机瘫抨雅木式腺簇勘诬剖狐遁泊易骤昌蚊辩俺数据库原理第2章关系数据库数据库原理第2章关系数据库Date30 第二章 关系数据库