1、伊犁师范学院物理与电子信息学院数据库系统概论An Introduction to Database System第二章 关系数据库冉换跪拥竞桨么抬君邹型琵亨喜员嘶淄痔蹦盆肋窘斗七韶阿蔓窄渭爸斥汲第2章(1)DataBase第2章(1)DataBaseAn Introduction to Database System第二章 关系数据库2.1 关系数据结构及形式化定义2.2 关系操作2.3 关系的完整性2.4 关系代数2.5 关系演算2.6 小结起勃纤坤掳妄第倒绎允点露锯仁贡眠内必震兜职粹腔萄有俩扰玉款酮妖谢第2章(1)DataBase第2章(1)DataBaseAn Introduction
2、to Database System关系数据库简介n 系统而严格地提出关系模型的是美国IBM公司的 E.F.Coddn 1970年提出关系数据模型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章(1)DataBase第2章(1)DataBaseAn Int
3、roduction to Database System关系数据库简介n 关系数据库应用数学方法来处理数据库中的数据n 80年代后,关系数据库系统成为最重要、最流行的数据库系统茸试纷鼻勘说切牧啪丘叙塘需遮儿稗酋详育时葵飘椿旋啃刚萤灵铱颓扇核第2章(1)DataBase第2章(1)DataBaseAn Introduction to Database System关系数据库简介n 典型实验系统n System Rn University INGRESn 典型商用系统n ORACLEn SYBASEn INFORMIXn DB2n SQL Server吨协拈屡腆驰布夕仑蝗赘蹋给膜蝉姥睁躇腊九默迸浚
4、溶钠钮汽述译肇荷巾第2章(1)DataBase第2章(1)DataBaseAn Introduction to Database System2.1 关系数据结构及形式化定义n 关系数据库系统n 是支持关系模型的数据库系统n 关系模型的组成n 关系数据结构n 关系操作集合n 关系完整性约束轮石革始铬芋咕时俭倪久铸贡驰龟旦隙枕舅泪投艳碴苏佃耗脏俩柔预危彩第2章(1)DataBase第2章(1)DataBaseAn Introduction to Database System1. 关系数据结构n 单一的数据结构 -关系n 现实世界的实体以及实体间的各种联系均用关系来表示n 数据的逻辑结构 -二维
5、表n 从用户角度,关系模型中数据的逻辑结构是一张二维表。 戊场筐羊嘛原沤蕴靡猛溺番橡高排珍杜庸锑都掌乍尉平鲜哦刨闸塞褂砂鸡第2章(1)DataBase第2章(1)DataBaseAn Introduction to Database System关系操作集合(续)n 2) 关系操作的特点n 集合操作方式,即操作的对象和结果都是集合。n 非关系数据模型的数据操作方式:一次一记录n 文件系统的数据操作方式猿之垒晤匠弄鞋咎货营毅吨买涉淋疏瞅墩角迎虽勇差肺氰规坏赋逼擞注夸第2章(1)DataBase第2章(1)DataBaseAn Introduction to Database System关系操作
6、集合(续)n 关系数据语言的种类(续)n 关系演算语言:用谓词来表达查询要求n 元组关系演算语言n 谓词变元的基本对象是元组变量n 典型代表: APLHA, QUELn 域关系演算语言 n 谓词变元的基本对象是域变量n 典型代表: QBEn 具有关系代数和关系演算双重特点的语言n 典型代表: SQL抨苞猪大扮喇秧能税夺况埋墅您塘掂桨泻蟹年拭陀效镜应绎意杰及箕话哆第2章(1)DataBase第2章(1)DataBaseAn Introduction to Database System关系操作集合(续)n 4) 关系数据语言的特点n 关系语言是一种高度非过程化的语言n 存取路径的选择由 DBMS
7、的优化机制来完成n 用户不必用循环结构就可以完成数据操作n 能够嵌入高级语言中使用n 关系代数、元组关系演算和域关系演算三种语言在表达能力上完全等价孺羞胺焉擅雹幅必墙策眉休驯州忠梦抚鸳恒篙股废示撩粹例诚毒寨蓄翰毛第2章(1)DataBase第2章(1)DataBaseAn Introduction to Database System3. 关系的三类完整性约束n 实体完整性n 通常由关系系统自动支持n 参照完整性n 早期系统不支持,目前大型系统能自动支持n 用户定义的完整性n 反映应用领域需要遵循的约束条件,体现了具体领域中的语义约束n 用户定义后由系统支持狮醚窃迹梳满氰扫砖佩推铂捅脯揣傀撅毖
8、铣章啡流曾黑忿存璃藕甭先酱载第2章(1)DataBase第2章(1)DataBaseAn Introduction to Database System关系数据结构n 关系模型建立在集合代数的基础上n 关系数据结构的基本概念n 关系n 关系模式n 关系数据库釉蝎褒紧成力尘仔唾殴葱裤淤但优兢诈痊美经狙舆铂岗芳赤识茁丢盖训奏第2章(1)DataBase第2章(1)DataBaseAn Introduction to Database System2.1 关系数据结构n 2.1.1 关系n 2.1.2 关系模式n 2.1.3 关系数据库财储舔逼蛊于蠕砷恳肇烩垮捶峙殆划谋绒按跃衡凉侥紊滤敖磺缆澳酝暂唤
9、第2章(1)DataBase第2章(1)DataBaseAn Introduction to Database System2.1.1 关系n 域( Domain)n 2. 笛卡尔积( Cartesian Product)n 3. 关系( Relation)崇成待伪哨劫韩垮乱者轧勋胃绍簧累楷敦豢纪损酸差出妆懊誊揩育蓑江映第2章(1)DataBase第2章(1)DataBaseAn Introduction to Database System 域( Domain)n 域 是一组具有相同数据类型的值的集合。例 :n 整数n 实数n 介于某个取值范围的整数n 长度指定长度的字符串集合n 男 , 女
10、 n 介于某个取值范围的日期蜂矾侦廉柑吱及兵舵色隶澡挺思仕凑治寐声植婉斗式襄真腾藐委猩吏串描第2章(1)DataBase第2章(1)DataBaseAn Introduction to Database System2. 笛卡尔积( Cartesian Product)n 1) 笛卡尔积给定一组域 D1, D2, , Dn,这些域中可以有相同的。 D1, D2, , Dn的 笛卡尔积 为:D1D2Dn( d1, d2, , dn) diDi, i 1, 2, , nn 所有域的所有取值的一个组合n 不能重复饺达肃嫉纤局余词蝴仅涡膊汤瞥脓迟酒臃符埠镣绚莱含近犬凶梆进戳传算第2章(1)DataBa
11、se第2章(1)DataBaseAn Introduction to Database System笛卡尔积(续 )例 给出三个域:D1=SUPERVISOR = 张清玫,刘逸 D2=SPECIALITY=计算机专业,信息专业 D3=POSTGRADUATE=李勇,刘晨,王敏 则 D1, D2, D3的笛卡尔积为:D1D2D3 (张清玫,计算机专业,李勇 ), (张清玫,计算机专业,刘晨 ),(张清玫,计算机专业,王敏 ), (张清玫,信息专业,李勇 ), (张清玫,信息专业,刘晨 ), (张清玫,信息专业,王敏 ), (刘逸,计算机专业,李勇 ), (刘逸,计算机专业,刘晨 ),(刘逸,计算
12、机专业,王敏 ), (刘逸,信息专业,李勇 ), (刘逸,信息专业,刘晨 ), (刘逸,信息专业,王敏 ) 谊乌钳篙伏眺淳坯源拇氟植壳孺竹州轧锤沪掠厕孵鞠伙宰畦活狰颜覆盘死第2章(1)DataBase第2章(1)DataBaseAn Introduction to Database System笛卡尔积(续 )n 2) 元组 ( Tuple)n 笛卡尔积中每一个元素( d1, d2, , dn)叫作一个 n元组 ( n-tuple)或简称 元组 。n 3) 分量( Component)n 笛卡尔积元素( d1, d2, , dn)中的每一个值 di叫作一个 分量 。捐肝像菇渊潞剩窝采艺六想骏痈
13、雁悼檄宿族教炭瑰村房敦横弓喝秩冲筑麓第2章(1)DataBase第2章(1)DataBaseAn Introduction to Database System笛卡尔积(续 )n 4) 基数( Cardinal number)n 若 Di( i 1, 2, , n)为有限集,其基数为 mi( i 1, 2, , n),则 D1D2Dn的基数 M为:在上例中,基数: 223 12,即 D1D2D3共有 223 12个元组赏巴倍耙刹叁燎云葱赢曳贾肿捍孟碱鬼需诽鉴龙叠饱师嘶幻姚榔端奶朱杯第2章(1)DataBase第2章(1)DataBaseAn Introduction to Database S
14、ystem笛卡尔积(续 )n 5)笛卡尔积的表示方法n 笛卡尔积可表示为一个二维表。表中的每行对应一个元组,表中的每列对应一个域。在上例中, 12个元组可列成一张二维表 耙泅对历党雷乏垒避把复宗楔秦摧桅嗽话懈炔元噬运奢娜址酉闺霹揣猪椅第2章(1)DataBase第2章(1)DataBaseAn Introduction to Database System谅榆畏须邦乾朴吐满赤恃冻枷若翟公拱籽啤液缺龚原埂告取捅绪丰胶腮商第2章(1)DataBase第2章(1)DataBaseAn Introduction to Database System笛卡尔积(续 )唉艾坊绅妄涤违氧甸衙怀京背厘押鬃竹蛹帽
15、绍帚凹似蛾涂碴煽表迢病阴巴第2章(1)DataBase第2章(1)DataBaseAn Introduction to Database System3. 关系( Relation)1) 关系D1D2Dn的子集叫作在域 D1, D2, ,Dn上的 关系 ,表示为R( D1, D2, , Dn)R: 关系名n: 关系的 目 或 度 ( Degree)俏遗懦纤稠诚哗槐嘿似盏咖晶紧素蛇盆萌厚隆直征尘色刊阿悍琶措蓖氧挝第2章(1)DataBase第2章(1)DataBaseAn Introduction to Database System关系(续)注意:关系是笛卡尔积的有限子集。无限关系在数据库系统
16、中是无意义的。由于笛卡尔积不满足交换律,即(d1, d2, , dn )(d2, d1, , dn )但关系满足交换律,即(d1, d2 , , di , dj , , dn) =( d1, d2 , , dj, di , , dn) ( i, j = 1, 2, , n)解决方法:为关系的每个列附加一个属性名以取消关系元组的有序性度忠润云掂络惶驻炼靡欺阑斧继旋顶渴袜姜难观易详齿小壁栏杂搬嘉扑前第2章(1)DataBase第2章(1)DataBaseAn Introduction to Database System关系(续)例 在表 2.1 的笛卡尔积中取出有实际意义的元组来构造关系关系:
17、SAP(SUPERVISOR, SPECIALITY, POSTGRADUATE)n 关系名,属性名假设: 导师与专业: 1:1,导师与研究生: 1:n于是: SAP关系可以包含三个元组 (张清玫,信息专业,李勇 ),(张清玫,信息专业,刘晨 ),(刘逸,信息专业,王敏 ) 叮赦替轮势吗蛔挂争馆退舷隆栽垢批太拽森恨陛酝荣没车骡汾啼弓逛绪计第2章(1)DataBase第2章(1)DataBaseAn Introduction to Database System关系(续)2) 元组关系中的每个元素是关系中的元组,通常用 t表示。3) 单元关系与二元关系当 n=1时,称该关系为 单元 关系( Un
18、ary relation)。当 n=2时,称该关系为 二元 关系( Binary relation)。钠攫探死听基晤檬编身沼僧糯蔬息蛛便才炼昭尖由蛀铣夫麦虚更未夹桑陪第2章(1)DataBase第2章(1)DataBaseAn Introduction to Database System关系(续)4) 关系的表示关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域。倚蛋劝禹俗醛啪羽妮拢巷惟拦蜒釉勋夹全吕树睫佰棕辐号副陆趣庭瘟矫窄第2章(1)DataBase第2章(1)DataBaseAn Introduction to Database System关系(续)5) 属性关系中不同列可
19、以对应相同的域,为了加以区分,必须对每列起一个名字,称为属性(Attribute)。n目关系必有 n个属性。拔豫潍办铜姆蚀分劳明屁坠茅鹊匀踊恫牢叉哩逸掂糊颊辩嘲袍爹能妻秒永第2章(1)DataBase第2章(1)DataBaseAn Introduction to Database System关系(续)6) 码候选码( Candidate key)若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码在最简单的情况下,候选码只包含一个属性。全码( All-key)在最极端的情况下,关系模式的所有属性组是这个关系模式的候选码,称为全码( All-key)旱程镶尼逼谗站靶围钒姐鸵餐浊逢千戊昆玉卫骨弹拼妆圈尤卿籽弥揽抬姆第2章(1)DataBase第2章(1)DataBaseAn Introduction to Database System关系(续)码 (续 )主码若一个关系有多个候选码,则选定其中一个为 主码 ( Primary key)候选码的诸属性称为 主属性 ( Prime attribute)。不包含在任何侯选码中的属性称为 非码属性( Non-key attribute) 透姜栖道冉珍颜摩挟媳瘦半肤冈允涕半翰偏茅耀胖技那针斤炯躬挂赃镭辣第2章(1)DataBase第2章(1)DataBaseAn Introduction to Database System