《第2章数据模型》由会员分享,可在线阅读,更多相关《第2章数据模型(129页珍藏版)》请在金锄头文库上搜索。
1、第第2章章数据模型数据模型本章学习要求:本章学习要求:1. 1. 层次数据模型、网状数据模型层次数据模型、网状数据模型 了解层次及了解层次及网状网状数据模型的基本概念和结构。数据模型的基本概念和结构。2. 2. 关系数据模型关系数据模型 掌握关系数据模型的基本概念以及关系代数操作。掌握关系数据模型的基本概念以及关系代数操作。了解层次、网状和关系模型之间的差别。了解层次、网状和关系模型之间的差别。3. 3. 对传统模型的评价对传统模型的评价 了解传统模型的不足之处。了解传统模型的不足之处。4 4E-RE-R数据模型数据模型 掌握掌握E-RE-R模型的概念和表示。模型的概念和表示。5. 5. 面向
2、对象数据模型面向对象数据模型 了解面向对象数据模型的基本概念。了解面向对象数据模型的基本概念。奸际蓬沿嘉来狼伐哩膏忽奢跑长掩胀苍家催讼喝它曰瓷合炒漏制颠增完吾第2章数据模型第2章数据模型数据模型可分为两类数据模型可分为两类:1.1. 独立于计算机系统的数据模型独立于计算机系统的数据模型, ,它完全不涉及信息它完全不涉及信息在计算机系统中的表示在计算机系统中的表示, ,只是用来描述某个特定组只是用来描述某个特定组织所关心的信息结构织所关心的信息结构, ,这类模型称为这类模型称为 “ “概念数据模概念数据模型型”。 概念模型用于建立信息世界的数据模型概念模型用于建立信息世界的数据模型, ,强调其强
3、调其语义表达能力语义表达能力, ,概念应该简单概念应该简单, ,清晰清晰, ,易于用户理解易于用户理解, ,它是现实世界的第一层抽象它是现实世界的第一层抽象, ,是用户和数据库人员是用户和数据库人员之间进行交流的工具。最著名的是之间进行交流的工具。最著名的是“实体联系模型实体联系模型”。控伞汇独疟粘溉蓑疆您权敲竹伏乐彪贾氓舟去辩瓷经裹题亮津尉昂鄙挪喳第2章数据模型第2章数据模型2. 2. 直接面向数据库的逻辑结构的数据模型直接面向数据库的逻辑结构的数据模型, ,它是它是现实世界的第二层抽象。这类模型涉及到计算机现实世界的第二层抽象。这类模型涉及到计算机系统和数据库管理系统系统和数据库管理系统,
4、 ,又称为又称为“基本数据模型基本数据模型”或或“结构数据模型结构数据模型”。 例如例如, , 层次、网状、关系、面向对象数据模层次、网状、关系、面向对象数据模型型”.”.这类模型有严格的形式化定义这类模型有严格的形式化定义, ,以便在计算以便在计算机系统中实现。机系统中实现。诞臆蛰糟盘则桩纂瘸哄滇滤媳贬潜娘旬欢嘿抱箱序挣金怀欣毡刑巳宴榷德第2章数据模型第2章数据模型2.1层次数据模型层次数据模型 用树型(层次)结构表示实体类型及用树型(层次)结构表示实体类型及实体间联系的数据模型称为实体间联系的数据模型称为层次数据模层次数据模型型(hierarchical data model)(hiera
5、rchical data model)。迄凋催砧夸筐高透倪瘟匿褒泅克坞挝漱利蹈节评戌爽诽辙喀扒凤寨怀和柏第2章数据模型第2章数据模型n基本概念和结构记录和字段记录和字段双亲子女关系双亲子女关系层次数据模式层次数据模式虚拟记录虚拟记录层次数据的线性表示层次数据的线性表示劳削馁芥帝染刃刨吩驭蔼肝涨镍蓟忿江状堕不亨函侄跺颂饯炒镁壕转称鲤第2章数据模型第2章数据模型记录和字段记录和字段 记录是用来描述某个事物或事物间关系的命名的记录是用来描述某个事物或事物间关系的命名的数据单位,也是存储的数据单位。一个记录包含若干数据单位,也是存储的数据单位。一个记录包含若干字段。字段。 每个字段也是命名的,字段只能
6、是简单数据类型每个字段也是命名的,字段只能是简单数据类型(整数、实数、字符串等)。(整数、实数、字符串等)。龙姿木寥蜜欣效你龟柜寨偏舍诛嚣格喝汀光概镑盘腊贸谢壹墩院框杨节稍第2章数据模型第2章数据模型系系系名系名系号系号 系主任名系主任名 地点地点记录的型记录的型计算机系计算机系9 9李西远李西远 科技馆科技馆记录的一个实例记录的一个实例历称叫略起眩泉掏烽毙馋酸乃饶遗鼻箕碧畅医锌涂腆始睹芍黔眯号郁萤吮第2章数据模型第2章数据模型双亲子女关系(双亲子女关系(Parent-Child RelationshipParent-Child Relationship,PCRPCR) 反映两个记录型之间的一
7、对多(反映两个记录型之间的一对多(1 1:N N)关系)关系系系班班计算机系计算机系901901班班911911班班921921班班931931班班1 1N NPCRPCR型型PCRPCR实例实例鲜挖哺揩藻绥仿州侠赶瓮携挠封更厘烧呕郸滚紫蜀铃仅婪凑页揽荣逞册愈第2章数据模型第2章数据模型层次数据模式层次数据模式 层次数据模式由层次数据模式由PCRPCR构成构成层次数据模式层次数据模式系系班班学生学生教研组教研组教师教师贱篡朽腻辰亩悬剃富狐荫宜档视咒医摄盼肉虫湍轮瞬幂泳魂厉乘尺觅包文第2章数据模型第2章数据模型计算机系计算机系901901班班911911班班921921班班931931班班硬件教
8、研组硬件教研组软件教研组软件教研组王一王一张三张三 李四李四 赵立赵立 钱英钱英 孙玉孙玉 周新周新 吴坚吴坚郑山郑山洪流洪流陈芝陈芝丁伟丁伟层次数据模式实例层次数据模式实例麓谦炼堆芬瓜考矽蹋赊困鱼醛葵赶顽醛赐悄皋惦若素察栽育将峙剪昧汛尖第2章数据模型第2章数据模型 在层次数据模式中,除根以外,所有的记在层次数据模式中,除根以外,所有的记录型都应该有唯一的双亲,但可以有多个子女,录型都应该有唯一的双亲,但可以有多个子女,子女按从左到右的次序排序。子女按从左到右的次序排序。舷泳坊纠旋能漫挨必策辱佬典垛域轩闽巢替熔氛独蔷钥姨几弟长裁短缔龙第2章数据模型第2章数据模型虚拟记录虚拟记录 非层次关系表示
9、问题非层次关系表示问题(1 1)M M:N N 王一王一张三张三李四李四人工智能人工智能数据库数据库学生:学生:课程:课程:吨嫡燥蓟浊楼迁灶蓄焉浦像笑戳飘迷吹叮堵溃担恒钉笼铝式孝控霞宛厅田第2章数据模型第2章数据模型 不允许一个记录有多个双亲,需要复制记录,不允许一个记录有多个双亲,需要复制记录,导致冗余。如下图:导致冗余。如下图:型型实例实例学生学生课程课程王一王一人工智能人工智能张三张三人工智能人工智能数据库数据库李四李四人工智能人工智能 数据库数据库狰漳贼适漓灰绩岁拳佣贸酮凶贵戎及际味揣仓说印舔汇躯关诚界葛评赎酗第2章数据模型第2章数据模型(2 2)一个记录是两个以上)一个记录是两个以上
10、PCRPCR的子女的子女学生学生班班运动队运动队只能表示成下图,存在冗余。只能表示成下图,存在冗余。学生学生班班学生学生运动队运动队矛蛤纪擞部藕间窥灰晦藉愁尝肮逆增喀馁嗜垃烩喷吱挛仑箔冒蔫迸辖寥翱第2章数据模型第2章数据模型(3 3)多元关系)多元关系供应商供应商零件零件工程项目工程项目供应关系供应关系累腋戈捡疮拒咐摇圃削岁蓝喷乒瑟蓑舜搅复会怀傲畜柒拈亡醛绍皋怂袱涪第2章数据模型第2章数据模型可以用可以用PCRPCR表示为:表示为:供应商零件工程项目零件供应商工程项目供应商工程项目零件孟筑耙辛韩晌围类夫腕鹃贺柒嫡娘赂座医灾塔峙裳炉噎耿毫焕抒姑两扛焉第2章数据模型第2章数据模型 注意:书上图注意
11、:书上图2-122-12不能表示三元关系,因为供不能表示三元关系,因为供应关系与供应商,供应关系与工程项目这两个应关系与供应商,供应关系与工程项目这两个PCRPCR的一个双亲实例,其子女集合是并关系,而不是的一个双亲实例,其子女集合是并关系,而不是迪卡尔积关系。迪卡尔积关系。供应商供应商零件零件工程项目工程项目供应关系供应关系赡年斧污风喳垫登选较片州疆舱的蠕拼舀嫂垣很对菱切工门粤已莉璃渤渺第2章数据模型第2章数据模型n主要问题:数据冗余,为避免这一情况,只存主要问题:数据冗余,为避免这一情况,只存一份记录,其它引用该记录的地方用指针代替一份记录,其它引用该记录的地方用指针代替 这种用指针代替的
12、记录称为这种用指针代替的记录称为虚拟记录虚拟记录。n用下标用下标v v表示,指针用虚线箭头表示。表示,指针用虚线箭头表示。(学生)(学生)v v课程课程学生学生(课程)(课程)v v党厉谣捂车给智篙普吉远写韭书绅钵得蓝贿刹烘烩戴啤熟南移遇砍菩魁撤第2章数据模型第2章数据模型学生学生(学生)(学生)v v班班运动队运动队动县褒觉原驯斋成休达秸哥孪穴喘匣搔劈蝶班沦擎其坠船替夜于榨葱岛想第2章数据模型第2章数据模型层次数据的线性表示层次数据的线性表示 由于存储器是线性的,层次数据必须变换成线由于存储器是线性的,层次数据必须变换成线性形式才能存储,层次数据模式的实例对应一棵层性形式才能存储,层次数据模
13、式的实例对应一棵层次树(或森林),对层次树(或森林)按先序遍历次树(或森林),对层次树(或森林)按先序遍历生成的序列称为层次序列(生成的序列称为层次序列(hierarchical hierarchical sequencesequence),规定以此作为存储次序。),规定以此作为存储次序。计计算算机机系系901901班班王王一一张张三三911911班班931931班班吴吴坚坚硬硬件件教教研研组组郑郑山山洪洪流流软软件件教教研研组组丁丁伟伟皆膨乾拣伤跨咨风闹坐捆烂恩皑严挪须溃帆她序慈赢上颐子豁竞蛋诉吹爱第2章数据模型第2章数据模型n层次数据模型的约束层次数据模型的约束(1 1)除了根记录外,任何
14、其它记录不能离开其)除了根记录外,任何其它记录不能离开其双亲记录而孤立存在;双亲记录而孤立存在;(2 2)任何记录,不管虚实,只允许有一个双亲)任何记录,不管虚实,只允许有一个双亲记录(保证层次数据模式及其实例是树形);记录(保证层次数据模式及其实例是树形);(3 3)虚拟记录的指针必须指向一个实际存在的)虚拟记录的指针必须指向一个实际存在的记录,有虚拟记录指向的记录不得删除;记录,有虚拟记录指向的记录不得删除;(4 4)虚拟记录不得为根记录。)虚拟记录不得为根记录。猿詹悲破隐对铸盲灰柑柠育拉英溃淤饮泥匪零县碳薯籍蔬孔坝生贱析涸嘴第2章数据模型第2章数据模型 特点特点: : 层次结构是树结构,
15、树的结点是记录类层次结构是树结构,树的结点是记录类型,非根结点有且只有一个父结点。上一层记录型,非根结点有且只有一个父结点。上一层记录类型和下一层记录类型是类型和下一层记录类型是1:N联系联系。( (因此不能表因此不能表示示M:N) 氢停逃蝶倡辖回辉捡俗蒋伎满被碘坛始贾魁揭森拄韶弱纬耻冉际科畦民信第2章数据模型第2章数据模型 层次模型的优点:层次模型的优点: 记录之间的联系通过指针来实现,查询效率较记录之间的联系通过指针来实现,查询效率较高(针对层次结构)。高(针对层次结构)。 层次模型的缺点:层次模型的缺点:1 1、只能表示、只能表示1 1:N N联系,虽然可以采用虚拟记录联系,虽然可以采用
16、虚拟记录描述非层次数据关系,但较复杂,用户不易掌握,描述非层次数据关系,但较复杂,用户不易掌握,并且非层次结构的查询效率比较低;并且非层次结构的查询效率比较低;2 2、由于层次顺序的严格和复杂,引起数据的查询、由于层次顺序的严格和复杂,引起数据的查询和更新很复杂,因此应用程序的编写也比较复杂;和更新很复杂,因此应用程序的编写也比较复杂;3 3、模式描述语言较复杂,数据独立性差。、模式描述语言较复杂,数据独立性差。睁范归澈桨媳怨惶跳莫裤霉凶炳汁僵蕉详整赴片甜叁者翼吕瞩贩流肋瞳即第2章数据模型第2章数据模型2.2网状数据模型网状数据模型 用有向图(网络结构)表示实体及实体之间用有向图(网络结构)表
17、示实体及实体之间联系的数据模型称为联系的数据模型称为网状数据模型(网状数据模型(network network data modeldata model)。)。有向图中的结点是记录类型,有向图中的结点是记录类型,箭头表示从箭尾的记录类型到箭头的记录类型箭头表示从箭尾的记录类型到箭头的记录类型间联系。间联系。锈燕卵盆搪藕棕深擅弹盛凳痹剑普了醒摈豆嘎汇蓉谨喉回懊桩澎魄肾缎腐第2章数据模型第2章数据模型基本概念和结构基本概念和结构 记录和数据项记录和数据项 数据项相当于字段,记录是数据项的有序结合。数据项相当于字段,记录是数据项的有序结合。 系系 系表示两个记录型间的系表示两个记录型间的1:N1:N
18、关系;对应关系;对应“1”“1”的的为首记录,对应为首记录,对应“N”“N”的为属记录。系是命名的,的为属记录。系是命名的,有型值之分,例如:图有型值之分,例如:图2-172-17就是系的型和值。就是系的型和值。凑她庙扬承述贺劫墟界山强皆痉擞粮锐珐道蜀颜孟义虽劝骋付疙致束临翟第2章数据模型第2章数据模型班级班级学生学生一班一班王一王一李红李红丁杰丁杰型型值值图图2-17 2-17 班级班级学生系学生系踩黄婪挛参冤歇沦逸纫瘤蹦誓撮随蓝砾了良寂粟落极最驭察鬃疮亏亭粹欣第2章数据模型第2章数据模型具有多种类型属记录的系称为具有多种类型属记录的系称为“多属系多属系”(multimember setmu
19、ltimember set)多属系多属系系值:系值:3 3个成员的并,而非个成员的并,而非“X”“X”账户账户存款帐存款帐提款帐提款帐转账转账测黍省分蕉杨戮灿扛役授闺鸦残呕湖蝎授连隔酉络匣甩掖黍巡怂馏迸者宝第2章数据模型第2章数据模型网状模型的特点:网状模型的特点: 与层次模型不同,网状模型中,一个记录型可与层次模型不同,网状模型中,一个记录型可以成为多个首记录型的属记录以成为多个首记录型的属记录突破层次的限制;突破层次的限制; 一个记录型不能既作为一个系的首记录又作为一个记录型不能既作为一个系的首记录又作为同一个系的属记录。同一个系的属记录。 EMPEMP领导领导摘绿蠕誓堕寅坑倡灰望脓逻状剧
20、杉逢锰矢码刚暂复回溃家容胃沈呻门决误第2章数据模型第2章数据模型引入联系记录引入联系记录 EMPEMPLINKLINK1:11:11:N1:N1:11:1表示一人担任一个领导岗位,系值见下一页图。表示一人担任一个领导岗位,系值见下一页图。逐傲仕掣饼桶迪霸恰世惹钝脸吨愁沾虑嚣毫科雌叙列贱椅嚣扳猎伺蕴灰抖第2章数据模型第2章数据模型E E4 4L L1 1S S1 1E E7 7L L2 2S S1 1E E9 9L L3 3S S1 1E E3 3E E5 5E E1 1E E6 6S S2 2S S2 2S S2 2币随栓环雀傅蔷辐哟藤啊烽锥后柳簇关绪兄宏钢介么致更僻姓福进嗡星相第2章数据模型
21、第2章数据模型一个记录值不能出现在同一系型的多个系值中,否一个记录值不能出现在同一系型的多个系值中,否则不是则不是1:N1:N关系关系 例如,学生例如,学生(S)(S)和课程和课程(C)(C)关系关系格民番厚口塌介晤孰你婚浙陷岂抛冯科滞蛛深抨坛舞尹咏蓄粟匪躁吃牌柬第2章数据模型第2章数据模型S S1 1C C1 1C C2 2C C3 3C C4 4S S1 1C C5 5C C6 6弟座墓蠢著浪巳婚祸释茎梧侩囚徐蛛限绅更寅曳呆剁仅牲饿途绩医茹识漠第2章数据模型第2章数据模型解决解决M:NM:N问题的方法问题的方法联系记录联系记录S SLINKLINK1 1C CSLSLM M1 1CLCLN
22、 N型型仲耍鲜凭层痊蒸能锣癸搔蔡街昨井慧厅栽簿党硫遥坛蝶宵骸邹孽诺说淋睁第2章数据模型第2章数据模型S S1 1L L1 1SLSLL L2 2L L3 3L L4 4L L5 5L L6 6L L7 7S S2 2SLSLC C1 1C C2 2C C3 3C C4 4C C5 5C C6 6CLCLCLCLCLCLCLCLCLCLCLCL值值窿利蛀飘钮篱福萎粒蹬踊桑拢榜撒坞扎倾媳邦垃蛮绘搜抡先恼隘灸涅帚泡第2章数据模型第2章数据模型 LINK LINK表示多元关系表示多元关系零件零件LINKLINK1 1工程项目工程项目M M1 1N N供应商供应商1 1P P慧夜隶竟苯族砚弯轿喀蠢宦允厩
23、师意琼蔬邮城赣看枪睫呻任纪您较浸塌躯第2章数据模型第2章数据模型n无首系,首记录可以看成无首系,首记录可以看成“系统系统”,例如一个,例如一个单位的所有部门组成一个无首系。单位的所有部门组成一个无首系。n无首系只有一个实例,也称单值系。无首系只有一个实例,也称单值系。禄发暴阳魁易吱线粹向履揩汇计穿谈杖渭尘扔咒沉腮赘踢誉朵抹鸳涂紊辖第2章数据模型第2章数据模型n系的实现方法系的实现方法O OS S1 1S S2 2S S3 3前向指针前向指针后向指针后向指针首记录指针首记录指针系的链式实现方式系的链式实现方式嘿梢嘉庆撤藻护寐苔耸稿车脏竣羌斡臻尝煌盏厂曾嘘向悄茹土骋湃容凑戈第2章数据模型第2章数据
24、模型n约束约束(1 1)一个记录型不能兼任同一系的首记录和属记录;)一个记录型不能兼任同一系的首记录和属记录;(2 2)一个记录不能出现在同一系型的多个系值中;)一个记录不能出现在同一系型的多个系值中;(3 3)插入一个新记录时,若它的记录型是某个系的属记)插入一个新记录时,若它的记录型是某个系的属记录,必须考虑系籍问题(两种系籍约束):录,必须考虑系籍问题(两种系籍约束):AUTOMATIC(AUTOMATIC(自动的自动的) ): 新的属记录插入时自动加入相应的系新的属记录插入时自动加入相应的系值;值;MANUAL(MANUAL(人工的人工的) ):新的属记录插入时不自动加入相应的系值;:
25、新的属记录插入时不自动加入相应的系值; 旅涎滞卜刺井挟垃友链师县苏皿鸭匆椰滤赘元寄腔柞膛跋巫础雌拼哑装宽第2章数据模型第2章数据模型(4 4)对已插入的属记录的系籍问题;)对已插入的属记录的系籍问题; 网状数据模型提供三种留置系籍约束:网状数据模型提供三种留置系籍约束:OPTIMAL(OPTIMAL(随意的随意的) ):对属记录的系籍处理比较随意,属记录可:对属记录的系籍处理比较随意,属记录可以脱离某个系值独立存在,例如,以脱离某个系值独立存在,例如,“系系学生学生”系;系;MANDATORY(MANDATORY(强制的强制的) ):属记录不能游离于系值之外,但可以转:属记录不能游离于系值之外
26、,但可以转系值。例如,系值。例如,“部门部门职工职工”系;系;FIXED(FIXED(固定的固定的) ):不能游离,不能转系值,例如,:不能游离,不能转系值,例如,“职工职工家属家属”系。系。 上述系籍约束都是语义约束。上述系籍约束都是语义约束。歌坚剖愁侩着欺统淀读止喧漠痛浆住蒸坡母帽板靡豺轨涛鹿佛碟章啡舔煤第2章数据模型第2章数据模型(5 5)删除记录时,删除首记录,没有系籍问题;删除属)删除记录时,删除首记录,没有系籍问题;删除属记录要按照(记录要按照(4 4)进行处理。)进行处理。OPTIMALOPTIMAL 首记录可以删除,其属记录与系值脱离,仍保留首记录可以删除,其属记录与系值脱离,
27、仍保留在数据库中;在数据库中;MANDATORYMANDATORY 首记录不能删除,因为其属记录不能游离于系值首记录不能删除,因为其属记录不能游离于系值之外;之外;FIXEDFIXED 可将首记录连同属记录一起删除。可将首记录连同属记录一起删除。斤烩竖帝壤蛹滦擎血衣庞鲤哀雨裂诞祖瞻盛抬经祖错咋醛乞激弘潦速猜珐第2章数据模型第2章数据模型网状模型的缺点:网状模型的缺点: 编写应用程序比较复杂,程序员必须熟悉数据库编写应用程序比较复杂,程序员必须熟悉数据库的逻辑结构。的逻辑结构。 在关系在关系DBDB以前,网状以前,网状DBDB比层次比层次DBDB用的要普遍。模用的要普遍。模拟层次和非层次结构比较
28、自然,目前仍有应用实例。拟层次和非层次结构比较自然,目前仍有应用实例。 由于层次系统和网状系统的应用程序编制复杂,由于层次系统和网状系统的应用程序编制复杂,目前已被关系系统产品取代。目前已被关系系统产品取代。 课程只介绍层次和网状数据模型的概念和机制,课程只介绍层次和网状数据模型的概念和机制,以求全面了解数据库技术的发展。以求全面了解数据库技术的发展。零纹卸暑廓禽茎陵奶类识知嚎人镊渔迪揖胚踌奏硬剿暑针色惺檀瓦迪瘸嘉第2章数据模型第2章数据模型2.3关系数据模型关系数据模型 层次、网状模型都基于某种记录结构(层次、网状模型都基于某种记录结构(PCR,SETPCR,SET),),关系模型跳出这一限
29、制,定义清晰,结构简单,操作方关系模型跳出这一限制,定义清晰,结构简单,操作方便。便。 关系模型是以集合论中的关系概念为基础发展起来关系模型是以集合论中的关系概念为基础发展起来的数据模型。的数据模型。栗弃屑殷夺缎辨郑腺侄温措费票泰划脉务个顿龙省菱啦靴晰俩钵祥渭歪锭第2章数据模型第2章数据模型 关系模型(关系模型(relaction data modelrelaction data model)的主要特征是的主要特征是用用表格结构表达实体集,用外键表示实体间联系表格结构表达实体集,用外键表示实体间联系。与层次。与层次模型和网状模型相比,关系模型比较简单,容易为初学模型和网状模型相比,关系模型比较
30、简单,容易为初学者接受。者接受。 关系模型是由若干个关系模式组成的集合。每个关系关系模型是由若干个关系模式组成的集合。每个关系实际上是一张表格,记录之间联系是通过各个关系模实际上是一张表格,记录之间联系是通过各个关系模式的键体现的。式的键体现的。 迁馒羽氏疾濒夜颗欣联视狈央冗碱浮涌却次低椰贾告懊扩牵棉甫捕敞庚沸第2章数据模型第2章数据模型PARTPARTPARTPART模式模式模式模式 (P#P#P#P#,PNAMEPNAMEPNAMEPNAME,COLORCOLORCOLORCOLOR,WEIGHTWEIGHTWEIGHTWEIGHT)PROJECTPROJECTPROJECTPROJECT
31、模式模式模式模式 (J#J#J#J#,JNAMEJNAMEJNAMEJNAME,DATEDATEDATEDATE)SUPPLIERSUPPLIERSUPPLIERSUPPLIER模式模式模式模式 ( ( ( (S#S#S#S#,SNAMESNAMESNAMESNAME,SADDRSADDRSADDRSADDR)P_PP_PP_PP_P模式模式模式模式 (J#J#J#J#,P#P#P#P#,TATOLTATOLTATOLTATOL)P_SP_SP_SP_S模式模式模式模式 (P#P#P#P#,S#S#S#S#,QUANTITYQUANTITYQUANTITYQUANTITY) 关系模型的例子关系
32、模型的例子关系模型的例子关系模型的例子 关系模型的层次、网状模型的最大差别关系模型的层次、网状模型的最大差别是用键而不是用键而不是用指针导航数据,其表格简单,用户易懂,用户只需是用指针导航数据,其表格简单,用户易懂,用户只需用简单的查询语句就可以对数据库进行操作,并不涉及用简单的查询语句就可以对数据库进行操作,并不涉及存储结构、访问技术等细节。存储结构、访问技术等细节。祝坝杀嚎符褂杆豹细旱贡欧凑掉咖刽枕潜屯谭泄蜒肋奄服稽忘红蔫括澳宅第2章数据模型第2章数据模型2.3.1基本概念及定义基本概念及定义1 1属性和域属性和域属性属性-用来描述事物特征。用来描述事物特征。例如:学生的例如:学生的姓名、
33、学号、性别、出生年月姓名、学号、性别、出生年月等。等。属性的域属性的域-属性的取值范围。属性的取值范围。例如:例如:姓名的取值范围姓名的取值范围是合法姓名的集合。是合法姓名的集合。 学号的域学号的域是若干位数字组成的字符串的集合。是若干位数字组成的字符串的集合。 性别的域性别的域是男,女,是男,女,塘绕荫究摹魁舰兴驮伺虾饵齐庶草甘笺楔采屠甥铃腔孪整疚嗽绞奋学菲后第2章数据模型第2章数据模型注意:注意: 关系数据模型中,所有的属性都应是不可再分的原子关系数据模型中,所有的属性都应是不可再分的原子数据(数据(atomic dataatomic data)的集合)的集合-1NF1NF。 关系数据模型
34、中,允许某些属性值为空,即关系数据模型中,允许某些属性值为空,即NULLNULL。空。空值不是值,而是一个标记,表明该属性值空缺。例如:值不是值,而是一个标记,表明该属性值空缺。例如:手机号码,手机号码,E_mailE_mail等。等。 坤杯知畜撩响霜拘疵洁娇堂毅彩刁诣腺瞧珊告隔摩几库拦纺轿通坚还迸驮第2章数据模型第2章数据模型2 2 2 2关系和元组关系和元组关系和元组关系和元组 设有一关系设有一关系设有一关系设有一关系R R R R,R R R R上有属性:上有属性:上有属性:上有属性: A A A A1 1 1 1,A A A A2 2 2 2,A A A An n n n 其对应域分别
35、为:其对应域分别为:其对应域分别为:其对应域分别为: D D D D1 1 1 1,D D D D2 2 2 2,D D D Dn n n n 则关系则关系则关系则关系R R R R可表示为:可表示为:可表示为:可表示为:R R R R (A A A A1 1 1 1/D/D/D/D1 1 1 1,A A A A2 2 2 2/D/D/D/D2 2 2 2,A A A An n n n/D/D/D/Dn n n n) 其中:其中:其中:其中:n n n n为关系为关系为关系为关系R R R R的属性个数,也称为的属性个数,也称为的属性个数,也称为的属性个数,也称为关系的目。关系的目。关系的目。
36、关系的目。 同一关系中,不允许有同名属性,但不同属性可有同一关系中,不允许有同名属性,但不同属性可有同一关系中,不允许有同名属性,但不同属性可有同一关系中,不允许有同名属性,但不同属性可有相同的域。相同的域。相同的域。相同的域。嚣受告考新雾猩炕奖蔼绘伍久邮青抖酥哲阮淮痞丝弦辱拐汀堪铅肤吼漾态第2章数据模型第2章数据模型关系关系关系关系R R R R的值可表示的值可表示的值可表示的值可表示r r r r或或或或r(R)r(R)r(R)r(R):r = tr = tr = tr = t1 1 1 1,t,t,t,t2 2 2 2,t,t,t,tm m m m 每个元组每个元组每个元组每个元组t t
37、 t t可表示为:可表示为:可表示为:可表示为:t = vt = vt = vt = ,v v v vi i i i D D D Di i i i , 1 i n , 1 i n , 1 i n , 1 i n 即即即即 t ti iD D11*D*D22*D*Dn n,1in1in例如:关于大学生的关系模式:例如:关于大学生的关系模式:例如:关于大学生的关系模式:例如:关于大学生的关系模式:STUDENTSTUDENTSTUDENTSTUDENT(学号,姓名,性别,出生年月,系别,入学年份)(学号,姓名,性别,出生年月,系别,入学年份)(学号,姓名,性别,出生年月,系别,入学年份)(学号,姓
38、名,性别,出生年月,系别,入学年份)而其中某一个学生而其中某一个学生而其中某一个学生而其中某一个学生909813890981389098138199819981998就是关系就是关系就是关系就是关系R R R R的一个元组。所有学生的值构成了的一个元组。所有学生的值构成了的一个元组。所有学生的值构成了的一个元组。所有学生的值构成了R R R R的元组的集合。的元组的集合。的元组的集合。的元组的集合。因此,因此,因此,因此,R R R R的模式相对稳定。的模式相对稳定。的模式相对稳定。的模式相对稳定。R R R R的值相对变化。的值相对变化。的值相对变化。的值相对变化。敢垂描恃禹哦彩纂同福寨乙煮
39、洛剖聚菊春缆和缘凑擅租陨冲袜顶寿悔鉴炙第2章数据模型第2章数据模型 另外,在关系另外,在关系另外,在关系另外,在关系R R R R中,元组的次序无关,但不能中,元组的次序无关,但不能中,元组的次序无关,但不能中,元组的次序无关,但不能允许有相同的二个元组;属性的次序无关。允许有相同的二个元组;属性的次序无关。允许有相同的二个元组;属性的次序无关。允许有相同的二个元组;属性的次序无关。 一个关系可视为一个二维表。组成表的所有数一个关系可视为一个二维表。组成表的所有数一个关系可视为一个二维表。组成表的所有数一个关系可视为一个二维表。组成表的所有数据项都应是不可再分的最小数据项。据项都应是不可再分的
40、最小数据项。据项都应是不可再分的最小数据项。据项都应是不可再分的最小数据项。 关系关系关系关系对应对应对应对应表表表表,属性属性属性属性对应对应对应对应列列列列,元组元组元组元组对应对应对应对应行。行。行。行。学号学号学号学号姓名姓名姓名姓名年龄年龄年龄年龄性别性别性别性别系别系别系别系别专业专业专业专业元组元组元组元组属性属性属性属性脉倚笺僚义村奔于渝鞋杰亦咖褥尺伏哼存孟来般遥剖澳锑妥答搭背锤驰汲第2章数据模型第2章数据模型 3 3 3 3键键键键键(或候选键)键(或候选键)键(或候选键)键(或候选键)如果关系的某一个属性或属如果关系的某一个属性或属如果关系的某一个属性或属如果关系的某一个属
41、性或属性组的值唯一地决定其它所有属性的值。而其任性组的值唯一地决定其它所有属性的值。而其任性组的值唯一地决定其它所有属性的值。而其任性组的值唯一地决定其它所有属性的值。而其任何真子集无此性质,则这个属性或属性组称为该何真子集无此性质,则这个属性或属性组称为该何真子集无此性质,则这个属性或属性组称为该何真子集无此性质,则这个属性或属性组称为该关系的键关系的键关系的键关系的键。例:学生关系中,学号就是关键字。例:学生关系中,学号就是关键字。例:学生关系中,学号就是关键字。例:学生关系中,学号就是关键字。女媚樊磁稼窜勿爹捕城召仪偶探刊茨苦们州分评合臀渤脖蛤碰胡户氧另鞍第2章数据模型第2章数据模型超键
42、超键超键超键与上相同,区别仅在于其真子集也与上相同,区别仅在于其真子集也与上相同,区别仅在于其真子集也与上相同,区别仅在于其真子集也具此性质。具此性质。具此性质。具此性质。主键主键主键主键一个关系一个关系一个关系一个关系R R R R可有多个候选键,若选中可有多个候选键,若选中可有多个候选键,若选中可有多个候选键,若选中一个作为一个作为一个作为一个作为KeyKeyKeyKey,则它就是主键,其它称候补键,则它就是主键,其它称候补键,则它就是主键,其它称候补键,则它就是主键,其它称候补键,每个元组的主键值应是唯一的。每个元组的主键值应是唯一的。每个元组的主键值应是唯一的。每个元组的主键值应是唯一
43、的。全键全键全键全键由所有属性组成的键,称为全键由所有属性组成的键,称为全键由所有属性组成的键,称为全键由所有属性组成的键,称为全键例如例如例如例如 SUPPLY(SNAME,PNAME,JNAME) SUPPLY(SNAME,PNAME,JNAME) SUPPLY(SNAME,PNAME,JNAME) SUPPLY(SNAME,PNAME,JNAME)逆龚句着毖邑侥帅剐勾指严酪呆屑垫姜座裹蚜冯校策撒胯束庆父渔曙签氰第2章数据模型第2章数据模型主属性主属性主属性主属性能作为候选键的属性,称为主属性。能作为候选键的属性,称为主属性。能作为候选键的属性,称为主属性。能作为候选键的属性,称为主属性。
44、非主属性非主属性非主属性非主属性不包含在候选键的属性,称为非不包含在候选键的属性,称为非不包含在候选键的属性,称为非不包含在候选键的属性,称为非主属性。主属性。主属性。主属性。 外键外键外键外键引用其它关系的引用其它关系的引用其它关系的引用其它关系的KeyKeyKeyKey或本关系的或本关系的或本关系的或本关系的KeyKeyKeyKey, 称为外键。称为外键。称为外键。称为外键。 如果一个关系中的属性或属性组并非该关系如果一个关系中的属性或属性组并非该关系如果一个关系中的属性或属性组并非该关系如果一个关系中的属性或属性组并非该关系的关键字,但它们是另外一个关系的关键字,的关键字,但它们是另外一
45、个关系的关键字,的关键字,但它们是另外一个关系的关键字,的关键字,但它们是另外一个关系的关键字,则称其为该关系的外关键字。则称其为该关系的外关键字。则称其为该关系的外关键字。则称其为该关系的外关键字。揩憾酷懈唆鞍令凌缘忙瘸兑渔葱件瞳乏声滥你涨横啸效荐阅窃挡宙捷蔷蔗第2章数据模型第2章数据模型例:例:例:例:COURSECOURSECOURSECOURSE(课程号课程号课程号课程号,课程名,学分,开课时间,课程名,学分,开课时间,课程名,学分,开课时间,课程名,学分,开课时间,先修课程号先修课程号先修课程号先修课程号) GRADE GRADE GRADE GRADE(学号学号学号学号,课程号课程
46、号课程号课程号,成绩),成绩),成绩),成绩)其中:其中:其中:其中: 的主键是课程号。的主键是课程号。的主键是课程号。的主键是课程号。 的主键是学号的主键是学号的主键是学号的主键是学号+ + + +课程号。课程号。课程号。课程号。 中先修课程号是引用本关系的键,故称为外键。中先修课程号是引用本关系的键,故称为外键。中先修课程号是引用本关系的键,故称为外键。中先修课程号是引用本关系的键,故称为外键。 中学号、课程号是引用中学号、课程号是引用中学号、课程号是引用中学号、课程号是引用STUDENTSTUDENTSTUDENTSTUDENT关系和关系和关系和关系和COURSECOURSECOURSE
47、COURSE中中中中的键。的键。的键。的键。 吊置废疽岁创胀恬裕非裁妮账综斌弟抡碰菜禹排遂柳刮拔淘匆汝究龄拟庙第2章数据模型第2章数据模型 关系数据模型是用关系描述事物间联系的,且关系数据模型是用关系描述事物间联系的,且关系数据模型是用关系描述事物间联系的,且关系数据模型是用关系描述事物间联系的,且这种联系通常都隐含在它们的公共属性中,尤其这种联系通常都隐含在它们的公共属性中,尤其这种联系通常都隐含在它们的公共属性中,尤其这种联系通常都隐含在它们的公共属性中,尤其是外键中。因此,是外键中。因此,是外键中。因此,是外键中。因此,关系数据模型不能显式地表示关系数据模型不能显式地表示关系数据模型不能
48、显式地表示关系数据模型不能显式地表示这种事物间的联系这种事物间的联系这种事物间的联系这种事物间的联系,这是它的一个缺点。,这是它的一个缺点。,这是它的一个缺点。,这是它的一个缺点。饰湍枕咸蹬亦虽浮赶烧敦涅砧沛氨捡则碟夫瞥谈厘竖侈词蘑摈失蛛涟互蔓第2章数据模型第2章数据模型 关系模式关系模式关系模式关系模式R R R R(A A A A1 1 1 1/D/D/D/D1 1 1 1,A,A,A,A2 2 2 2/D/D/D/D2 2 2 2,,A A A AN N N N/D/D/D/DN N N N)中,)中,)中,)中,R R R R的任何一个元组的任何一个元组的任何一个元组的任何一个元组 t
49、 t t t 应满足条件:应满足条件:应满足条件:应满足条件: tD tD tD tD1 1 1 1 * D* D* D* D2 2 2 2 * D * D * D * Dn n n n 虽然满足上述条件的元组是合乎语法的,但是虽然满足上述条件的元组是合乎语法的,但是虽然满足上述条件的元组是合乎语法的,但是虽然满足上述条件的元组是合乎语法的,但是, , , ,并不是每个合乎语法的元组都能成为并不是每个合乎语法的元组都能成为并不是每个合乎语法的元组都能成为并不是每个合乎语法的元组都能成为R R R R的元组,它的元组,它的元组,它的元组,它还要受到语义上的限制还要受到语义上的限制还要受到语义上的
50、限制还要受到语义上的限制( ( ( (完整性约束完整性约束完整性约束完整性约束) ) ) )。 2.3.2 2.3.2 约束约束场雾乒辛帐姻逢湖鼠戎始旋辅着榔赞鲜蔬坊绸砂迟茬硬乃钠吏茧逢认黄沼第2章数据模型第2章数据模型 例如,一个大学生的年龄在例如,一个大学生的年龄在例如,一个大学生的年龄在例如,一个大学生的年龄在5 5 5 5岁岁岁岁100100100100岁之间。岁之间。岁之间。岁之间。身高身高身高身高3333米米米米,这就是语义上的限制。数据的语义这就是语义上的限制。数据的语义这就是语义上的限制。数据的语义这就是语义上的限制。数据的语义不但限制属性的值,而且还会制约属性间的关系。不但限
51、制属性的值,而且还会制约属性间的关系。不但限制属性的值,而且还会制约属性间的关系。不但限制属性的值,而且还会制约属性间的关系。 例:例:例:例:在一个在一个在一个在一个R R R R中,作为主键的属性或属性组,中,作为主键的属性或属性组,中,作为主键的属性或属性组,中,作为主键的属性或属性组,其值不为空或不重复出现等等。这些都是语义施其值不为空或不重复出现等等。这些都是语义施其值不为空或不重复出现等等。这些都是语义施其值不为空或不重复出现等等。这些都是语义施加在属性间的限制。称为加在属性间的限制。称为加在属性间的限制。称为加在属性间的限制。称为完整性约束完整性约束完整性约束完整性约束。 目前,
52、大多数目前,大多数目前,大多数目前,大多数DBMSDBMSDBMSDBMS都提供了完整性约束检查。都提供了完整性约束检查。都提供了完整性约束检查。都提供了完整性约束检查。 糯村第心需障复蕴冯欲友棍雕闷守嵌褂柴莎馋涩寝枕驱耶嘉柠散植呛登痰第2章数据模型第2章数据模型关系数据模型的完整性约束共分为关系数据模型的完整性约束共分为关系数据模型的完整性约束共分为关系数据模型的完整性约束共分为4 4 4 4类:类:类:类:1. 1. 1. 1. 域完整性约束域完整性约束域完整性约束域完整性约束 域完整性约束是最简单、最基本的约束。域完整性约束是最简单、最基本的约束。域完整性约束是最简单、最基本的约束。域完
53、整性约束是最简单、最基本的约束。 属性值应是域中的值,属性的值能否为空,这属性值应是域中的值,属性的值能否为空,这属性值应是域中的值,属性的值能否为空,这属性值应是域中的值,属性的值能否为空,这是由问题的语义决定的。是由问题的语义决定的。是由问题的语义决定的。是由问题的语义决定的。例:考试分数(成绩)的取值范围是例:考试分数(成绩)的取值范围是例:考试分数(成绩)的取值范围是例:考试分数(成绩)的取值范围是0100010001000100。枫亨掸校妄奸宰挚幌乓哗毯应铀齐隙琅露碰央胶我审撑负踪也诈座熄仿蛮第2章数据模型第2章数据模型2. 2. 2. 2. 实体完整性约束实体完整性约束实体完整性约
54、束实体完整性约束 每一个关系都应有一个主键,用来唯一识别每一个关系都应有一个主键,用来唯一识别每一个关系都应有一个主键,用来唯一识别每一个关系都应有一个主键,用来唯一识别一个元组。它的一个元组。它的一个元组。它的一个元组。它的值不能为空值不能为空值不能为空值不能为空,否则无法区分和,否则无法区分和,否则无法区分和,否则无法区分和识别元组,这就是实体完整性约束。识别元组,这就是实体完整性约束。识别元组,这就是实体完整性约束。识别元组,这就是实体完整性约束。 目前,大多数目前,大多数目前,大多数目前,大多数DBMSDBMSDBMSDBMS都支持这项检查,但也不是都支持这项检查,但也不是都支持这项检
55、查,但也不是都支持这项检查,但也不是强制和彻底的。强制和彻底的。强制和彻底的。强制和彻底的。俯疽存夏社贰讲散中辜挟径聊乖撮三许荚闹煌泌撰左戊捐脆床掸铜虫姆后第2章数据模型第2章数据模型3. 3. 3. 3. 引用完整性约束引用完整性约束引用完整性约束引用完整性约束 这是指不同关系之间或同一关系的不同元组这是指不同关系之间或同一关系的不同元组这是指不同关系之间或同一关系的不同元组这是指不同关系之间或同一关系的不同元组间的约束。设关系间的约束。设关系间的约束。设关系间的约束。设关系R R R R有一外键有一外键有一外键有一外键FKFKFKFK,则其某一元组,则其某一元组,则其某一元组,则其某一元组
56、t t t t的外键值为的外键值为的外键值为的外键值为tFKtFKtFKtFK。 设设设设FKFKFKFK引用关系引用关系引用关系引用关系R R R R的主键的主键的主键的主键PkPkPkPk,R R R R可以是可以是可以是可以是R,R,R,R,也也也也可以不是可以不是可以不是可以不是R R R R。引用完整性约束要求。引用完整性约束要求。引用完整性约束要求。引用完整性约束要求t t t tFKFKFKFK遵守遵守遵守遵守下面的约束:下面的约束:下面的约束:下面的约束: 即即即即外键要么是空缺外键要么是空缺外键要么是空缺外键要么是空缺,要么是引用实际存在的要么是引用实际存在的要么是引用实际存
57、在的要么是引用实际存在的主键值主键值主键值主键值。荡敢药闷硅谐斗寡壬仿戍役矢信糜指精诅投蘸轰谅岿晕诱川濒钩阶亿猾葬第2章数据模型第2章数据模型 引用完整性约束与表之间的关联有关,它是关引用完整性约束与表之间的关联有关,它是关引用完整性约束与表之间的关联有关,它是关引用完整性约束与表之间的关联有关,它是关系数据库管理系统的一个很重要的功能。用好这系数据库管理系统的一个很重要的功能。用好这系数据库管理系统的一个很重要的功能。用好这系数据库管理系统的一个很重要的功能。用好这项功能,可以减少由于客户端用户程序的疏忽而项功能,可以减少由于客户端用户程序的疏忽而项功能,可以减少由于客户端用户程序的疏忽而项
58、功能,可以减少由于客户端用户程序的疏忽而可能给数据库带来的错误。可能给数据库带来的错误。可能给数据库带来的错误。可能给数据库带来的错误。烯陶侧兹呐哑签涌竣讯沛鸭爸锗迈吴唬筒爵逊槛塌撵哪码豫体钮喝葡涂周第2章数据模型第2章数据模型假定现在往职工关系假定现在往职工关系假定现在往职工关系假定现在往职工关系 中插入一个元组:中插入一个元组:中插入一个元组:中插入一个元组:(“WH7”“WH7”“WH7”“WH7”,”E9”E9”E9”E9”,1400140014001400)请问是否有问题)请问是否有问题)请问是否有问题)请问是否有问题?仓库号仓库号仓库号仓库号 城市城市城市城市面积面积面积面积WH1
59、WH1WH1WH1北京北京北京北京370370370370WH2WH2WH2WH2上海上海上海上海500500500500WH3WH3WH3WH3广州广州广州广州200200200200WH4WH4WH4WH4合肥合肥合肥合肥300300300300仓库号仓库号仓库号仓库号 职工号职工号职工号职工号 工资工资工资工资WH2WH2WH2WH2E1E1E1E11220122012201220WH1WH1WH1WH1E3E3E3E31210121012101210WH2WH2WH2WH2E4E4E4E41250125012501250WH3WH3WH3WH3E6E6E6E61230123012301
60、230WH1WH1WH1WH1E7E7E7E71250125012501250仓库仓库仓库仓库职工职工职工职工酌浪惶嫌旁裁还迈茂奸鄂赛势订费戍秦切钉窘昔募凄尉甥迄妊砖仙象尖劲第2章数据模型第2章数据模型 该元组插入到职工关系中是没有任何问题的,该元组插入到职工关系中是没有任何问题的,该元组插入到职工关系中是没有任何问题的,该元组插入到职工关系中是没有任何问题的,但是,在仓库关系中根本就没有仓库号为但是,在仓库关系中根本就没有仓库号为但是,在仓库关系中根本就没有仓库号为但是,在仓库关系中根本就没有仓库号为WH7WH7WH7WH7的仓的仓的仓的仓库。没有库。没有库。没有库。没有“WH7”“WH7”
61、“WH7”“WH7”仓库,就没有在仓库,就没有在仓库,就没有在仓库,就没有在“WH7”“WH7”“WH7”“WH7”工作的职工作的职工作的职工作的职工。所以插入到职工的元组是有问题的。工。所以插入到职工的元组是有问题的。工。所以插入到职工的元组是有问题的。工。所以插入到职工的元组是有问题的。 利用利用利用利用引用完整性约束引用完整性约束引用完整性约束引用完整性约束就可以解决这类问题。就可以解决这类问题。就可以解决这类问题。就可以解决这类问题。迎香戍褪希肮靠傈娠碌斟涧认湾刮抓判郎应殊宫蹲匿烫邦雇巩帛箱嘲浮芳第2章数据模型第2章数据模型 由于仓库号是仓库关系的关键字,同时是职工由于仓库号是仓库关系
62、的关键字,同时是职工由于仓库号是仓库关系的关键字,同时是职工由于仓库号是仓库关系的关键字,同时是职工关系的外部关键字。在定义职工关系的仓库号字段关系的外部关键字。在定义职工关系的仓库号字段关系的外部关键字。在定义职工关系的仓库号字段关系的外部关键字。在定义职工关系的仓库号字段时,只要说明外部关键字约束:时,只要说明外部关键字约束:时,只要说明外部关键字约束:时,只要说明外部关键字约束: 仓库号仓库号仓库号仓库号 CHAR CHAR CHAR CHAR(4 4 4 4)NOT NULL REFERENCES NOT NULL REFERENCES NOT NULL REFERENCES NOT
63、NULL REFERENCES 仓库仓库仓库仓库(仓库号)(仓库号)(仓库号)(仓库号) 有了以上的约束,系统就会自动检查相应的父有了以上的约束,系统就会自动检查相应的父有了以上的约束,系统就会自动检查相应的父有了以上的约束,系统就会自动检查相应的父记录是否存在,从而保证数据的引用完整性。记录是否存在,从而保证数据的引用完整性。记录是否存在,从而保证数据的引用完整性。记录是否存在,从而保证数据的引用完整性。精桌唇蘸祥女瓦鹃喘佛童妇棍痉餐冠猖葵好蹋映维悄袖沤桩汉蔚余挡浙妇第2章数据模型第2章数据模型 4. 4. 4. 4. 一般性完整性约束一般性完整性约束一般性完整性约束一般性完整性约束 一般完
64、整性约束是用户为了满足特定的要求一般完整性约束是用户为了满足特定的要求一般完整性约束是用户为了满足特定的要求一般完整性约束是用户为了满足特定的要求 而做的一些与数据完整性有关的规定。而做的一些与数据完整性有关的规定。而做的一些与数据完整性有关的规定。而做的一些与数据完整性有关的规定。 前三种约束是关系数据模型的三个最基本、前三种约束是关系数据模型的三个最基本、前三种约束是关系数据模型的三个最基本、前三种约束是关系数据模型的三个最基本、 最普遍的完整性约束。其它的语义约束与数据的最普遍的完整性约束。其它的语义约束与数据的最普遍的完整性约束。其它的语义约束与数据的最普遍的完整性约束。其它的语义约束
65、与数据的 具体内容有关。当数据量很大时,要说明、管理具体内容有关。当数据量很大时,要说明、管理具体内容有关。当数据量很大时,要说明、管理具体内容有关。当数据量很大时,要说明、管理 和检查这些约束,开销太大。目前,尚无一个和检查这些约束,开销太大。目前,尚无一个和检查这些约束,开销太大。目前,尚无一个和检查这些约束,开销太大。目前,尚无一个 DBMS DBMS DBMS DBMS能全面实现一般性完整性约束检查。能全面实现一般性完整性约束检查。能全面实现一般性完整性约束检查。能全面实现一般性完整性约束检查。显靴菏吓闽厨醚瑰娇明吏柑雨怜靠桩需祁丑顾五黔薪填浆机升忽侥段宗鞍第2章数据模型第2章数据模型
66、 2.3.3 2.3.3 操作操作关系数据模型提供了关系数据模型提供了关系数据模型提供了关系数据模型提供了两类操作两类操作两类操作两类操作: 关系专用操作关系专用操作关系专用操作关系专用操作 集合操作集合操作集合操作集合操作 选择操作(选择操作(选择操作(选择操作(SelectSelectSelectSelect)(横挑)(横挑)(横挑)(横挑) 选择是一种单目运算,即对一个关系施加的运算,按选择是一种单目运算,即对一个关系施加的运算,按选择是一种单目运算,即对一个关系施加的运算,按选择是一种单目运算,即对一个关系施加的运算,按给定条件从关系中挑选满足条件的元组组成的集合给定条件从关系中挑选满
67、足条件的元组组成的集合给定条件从关系中挑选满足条件的元组组成的集合给定条件从关系中挑选满足条件的元组组成的集合 。 语法格式:语法格式:语法格式:语法格式: ( )赠存秩商长垛户首槽泄饱蓬密娩嚏卢倘格伏吟妙邑阎然特滥宴凋澜箍睁瘟第2章数据模型第2章数据模型职工号职工号职工号职工号供应商号供应商号供应商号供应商号订购单号订购单号订购单号订购单号订购日期订购日期订购日期订购日期E3E3E3E3S7S7S7S7OR67OR67OR67OR671998/06/231998/06/231998/06/231998/06/23E1E1E1E1S4S4S4S4OR73OR73OR73OR731998/07/
68、281998/07/281998/07/281998/07/28E7E7E7E7S4S4S4S4OR76OR76OR76OR761998/05/251998/05/251998/05/251998/05/25E6E6E6E6S6S6S6S6OR77OR77OR77OR771998/06/191998/06/191998/06/191998/06/19E3E3E3E3S4S4S4S4OR79OR79OR79OR791998/07/291998/07/291998/07/291998/07/29E1E1E1E1S6S6S6S6OR80OR80OR80OR801998/06/221998/06/22
69、1998/06/221998/06/22E3E3E3E3S6S6S6S6OR90OR90OR90OR901998/07/131998/07/131998/07/131998/07/13E3E3E3E3S3S3S3S3OR91OR91OR91OR911998/10/271998/10/271998/10/271998/10/27 订购单关系订购单关系例:例:例:例: 职工号职工号职工号职工号= = = =“ “E3E3E3E3” ”(订购单)(订购单)(订购单)(订购单)坞芍晕腥那柔机龟炽端哲烙糙目吕豌徘卤氯恼歧沃畜旺闯捆划涩京幕窒直第2章数据模型第2章数据模型职工号职工号职工号职工号供应商号供
70、应商号供应商号供应商号订购单号订购单号订购单号订购单号订购日期订购日期订购日期订购日期E3E3E3E3S7S7S7S7OR67OR67OR67OR671998/06/231998/06/231998/06/231998/06/23E3E3E3E3S4S4S4S4OR79OR79OR79OR791998/07/291998/07/291998/07/291998/07/29E3E3E3E3S6S6S6S6OR90OR90OR90OR901998/07/131998/07/131998/07/131998/07/13E3E3E3E3S3S3S3S3OR91OR91OR91OR911998/10/2
71、71998/10/271998/10/271998/10/27订购单关系订购单关系订购单关系订购单关系 例:例:例:例:职工号职工号职工号职工号= = = =“ “E3E3E3E3” ”(订购单)(订购单)(订购单)(订购单)结果如下:结果如下:结果如下:结果如下:树掉忙嫁岗硬羽坛抑负锗疗卫心缘铅现怎婉娄渔疫核阂烤榔会哈苗弹壶妄第2章数据模型第2章数据模型 111( 222( nnn(R R R R)= = = = andandandandand2and2and2andnnn(R)(R)(R)(R)两者效率大不一样两者效率大不一样!易证:易证:菊鲁洛渔境桂花拥抡彩呻诅艳傣岩韭蝗爪腕宽随孝邯闰玖
72、汪蛙粗沁倦三灶第2章数据模型第2章数据模型 投影操作(投影操作(投影操作(投影操作(ProjectProjectProjectProject)( ( ( (竖挑)竖挑)竖挑)竖挑) 投影操作是单目运算,从关系中挑选指定的投影操作是单目运算,从关系中挑选指定的投影操作是单目运算,从关系中挑选指定的投影操作是单目运算,从关系中挑选指定的属性组成的新关系。属性组成的新关系。属性组成的新关系。属性组成的新关系。 语法格式:语法格式:语法格式:语法格式: ( ) 扦最鸯廓熙蔚幅左俺矮涧畸宦馏驮子残半晴流方渗昨送季兼攒把廷俏疽敬第2章数据模型第2章数据模型职工号职工号职工号职工号供应商号供应商号供应商号供
73、应商号订购单号订购单号订购单号订购单号订购日期订购日期订购日期订购日期E3E3E3E3S7S7S7S7OR67OR67OR67OR671998/06/231998/06/231998/06/231998/06/23E1E1E1E1S4S4S4S4OR73OR73OR73OR731998/07/281998/07/281998/07/281998/07/28E7E7E7E7S4S4S4S4OR76OR76OR76OR761998/05/251998/05/251998/05/251998/05/25E6E6E6E6S6S6S6S6OR77OR77OR77OR771998/06/191998/06
74、/191998/06/191998/06/19E3E3E3E3S4S4S4S4OR79OR79OR79OR791998/07/291998/07/291998/07/291998/07/29E1E1E1E1S6S6S6S6OR80OR80OR80OR801998/06/221998/06/221998/06/221998/06/22E3E3E3E3S6S6S6S6OR90OR90OR90OR901998/07/131998/07/131998/07/131998/07/13E3E3E3E3S3S3S3S3OR91OR91OR91OR911998/10/271998/10/271998/10/2
75、71998/10/27订购单关系订购单关系鳖拷枕垄窗砍虚到澈摆胁汐仅例途销绑扇产钦哑滑讥朵阮昌宅佛被郑牢浑第2章数据模型第2章数据模型职工号职工号职工号职工号供应商号供应商号供应商号供应商号E3E3E3E3S7S7S7S7E1E1E1E1S4S4S4S4E7E7E7E7S4S4S4S4E6E6E6E6S6S6S6S6E3E3E3E3S4S4S4S4E1E1E1E1S6S6S6S6E3E3E3E3S6S6S6S6E3E3E3E3S3S3S3S3例:例:例:例: 职工号,供应商号职工号,供应商号职工号,供应商号职工号,供应商号(订购单)(订购单)(订购单)(订购单)结果:结果:结果:结果:旧氟典巩
76、耸吻舆屑外决鬼棒穗筷子睹葱悟叶囚趋枷鹃帜箩汇茨耪澜毫剿东第2章数据模型第2章数据模型n投影操作可以和选择操作组合起来投影操作可以和选择操作组合起来嵌套使用的情况:嵌套使用的情况:嵌套使用的情况:嵌套使用的情况:例:例:例:例: 订购单号,供应商号订购单号,供应商号订购单号,供应商号订购单号,供应商号(职工号职工号职工号职工号= = = =“ “E3E3E3E3” ” (订购单)(订购单)(订购单)(订购单)洋乞愁仑饭昔做逆备盼咸绒既猫呢封妖菲喷卧盈掏拥芹囤蚊辽蹦忽漆脚藏第2章数据模型第2章数据模型供应商号供应商号供应商号供应商号订购单号订购单号订购单号订购单号S7S7S7S7OR67OR67O
77、R67OR67S4S4S4S4OR79OR79OR79OR79S6S6S6S6OR90OR90OR90OR90S3S3S3S3OR91OR91OR91OR91订购单关系订购单关系 选择指定的属性,形成一个选择指定的属性,形成一个选择指定的属性,形成一个选择指定的属性,形成一个 可能含有重复行的表格;可能含有重复行的表格;可能含有重复行的表格;可能含有重复行的表格; 删除重复行,形成新的关系。删除重复行,形成新的关系。删除重复行,形成新的关系。删除重复行,形成新的关系。黄慌赠裂次伎难镊瑶技凰哄殖抡址怒纬耕谜乱洪芹驳蝉侠牧凋杨嫡零皿膨第2章数据模型第2章数据模型 集合操作集合操作集合操作集合操作
78、在关系数据模型中,用得最多的集合操作是并、交、在关系数据模型中,用得最多的集合操作是并、交、在关系数据模型中,用得最多的集合操作是并、交、在关系数据模型中,用得最多的集合操作是并、交、差差差差 ,设,设,设,设A A A A、B B B B为两个集合为两个集合为两个集合为两个集合. . . . AB AB AB AB 并(并(并(并(unionunionunionunion):由属于):由属于):由属于):由属于A A A A或属于或属于或属于或属于B B B B的所有元组组成的的所有元组组成的的所有元组组成的的所有元组组成的 集合。集合。集合。集合。 AB AB AB AB 交(交(交(交(
79、intersectionintersectionintersectionintersection):由同时属于):由同时属于):由同时属于):由同时属于A A A A和和和和B B B B的元组组成的元组组成的元组组成的元组组成 的集合。的集合。的集合。的集合。 A A A AB B B B 差(差(差(差(differencedifferencedifferencedifference):由属于):由属于):由属于):由属于R R R R而不属于而不属于而不属于而不属于S S S S的所有元组的所有元组的所有元组的所有元组 组成的集合。组成的集合。组成的集合。组成的集合。 不过,交可用差表示
80、。设不过,交可用差表示。设不过,交可用差表示。设不过,交可用差表示。设A A A A、B B B B为两个集合,则为两个集合,则为两个集合,则为两个集合,则A A A A和和和和B B B B的的的的交可表示为:交可表示为:交可表示为:交可表示为:ABAABAABAABA(A A A AB B B B) 猿掂粘胶唯栅谅茁他迫狗适奈仓尔妻杖瓣巍努祝钻厅才贝信助粥陪匪甸措第2章数据模型第2章数据模型注:注:注:注: 参与并、差操作的两个关系的元组必须限制为同类参与并、差操作的两个关系的元组必须限制为同类参与并、差操作的两个关系的元组必须限制为同类参与并、差操作的两个关系的元组必须限制为同类型的,即
81、具有相同的目,且对应的属性的域相同型的,即具有相同的目,且对应的属性的域相同型的,即具有相同的目,且对应的属性的域相同型的,即具有相同的目,且对应的属性的域相同并并并并兼容(兼容(兼容(兼容(union compatibilityunion compatibilityunion compatibilityunion compatibility); ; ; ; 关系专用操作优先级高于集合操作关系专用操作优先级高于集合操作关系专用操作优先级高于集合操作关系专用操作优先级高于集合操作; ; ; ; 一元操作(单目)优先级高于二元操作。一元操作(单目)优先级高于二元操作。一元操作(单目)优先级高于二元
82、操作。一元操作(单目)优先级高于二元操作。 播猖犀芳谬擒萎烯羊睁扬呵侦弟珐赶倡李敦眩劳犹亚痊低彝掳味陷饼子磁第2章数据模型第2章数据模型仓库号仓库号城市城市面积面积WH1WH1北京北京370370WH2WH2上海上海500500WH3WH3广州广州200200仓库号仓库号城市城市面积面积WH2WH2上海上海500500WH3WH3广州广州200200WH4WH4武汉武汉180180仓库仓库仓库仓库A A A A仓库仓库仓库仓库B B B B仓库号仓库号城市城市面积面积WH1WH1北京北京370370WH2WH2上海上海500500WH3WH3广州广州200200WH4WH4武汉武汉180180
83、仓库仓库仓库仓库A A A A 仓库仓库仓库仓库B B B B詹平颊粱抨毙役舒嫡屋统罪酒婿磋蹦瑰蓑社堑佣新丫盅逾气初垫羔挣陀堕第2章数据模型第2章数据模型仓库号仓库号城市城市面积面积WH2WH2上海上海500500WH3WH3广州广州200200仓库仓库仓库仓库A A A A 仓库仓库仓库仓库B B B B仓库号仓库号城市城市面积面积WH1WH1北京北京370370仓库仓库仓库仓库A - A - A - A - 仓库仓库仓库仓库B B B B坯冲呵蔫蜡忠咯恬侈髓猫诫共藏挂幢兹青哗镰隙同挤徐蘸澈笆阉腔末仅聂第2章数据模型第2章数据模型 设有两个关系设有两个关系R R和和S S,它们的目分别为,它
84、们的目分别为n nr r和和n ns s;它们的元组数分别为它们的元组数分别为|R|R|和和|S|S|,则,则R R和和S S的笛卡尔的笛卡尔乘积为:乘积为: R S=|t R and g S 为为t t和和g g的拼接,即的拼接,即R SR S仍为一个关系,仍为一个关系,它的目为它的目为nr+ns、元组数为元组数为|R|S|R|S|。 若若R R和和S S中有相同的属性名,在这些属性名前加中有相同的属性名,在这些属性名前加上关系名作为限定词,进行区别。上关系名作为限定词,进行区别。溪戚铁苑滨寐针怯发你规摈讲把硼瘪鞠虽饮勘欺琳是弧残宣财钉驰家掌顺第2章数据模型第2章数据模型 连接操作连接操作连
85、接操作连接操作 连接操作是双目(二元操作)操作。连接操作是双目(二元操作)操作。连接操作是双目(二元操作)操作。连接操作是双目(二元操作)操作。 按给定条件,把满足条件的两个关系所有元组,按一按给定条件,把满足条件的两个关系所有元组,按一按给定条件,把满足条件的两个关系所有元组,按一按给定条件,把满足条件的两个关系所有元组,按一切可能的拼接后形成的新关系,记为切可能的拼接后形成的新关系,记为切可能的拼接后形成的新关系,记为切可能的拼接后形成的新关系,记为RSRSRSRS。即即即即 RRRR S S S S (R R R R S S S S) 连接条件为两关系中对应属性的比较,对应属性不一连接条
86、件为两关系中对应属性的比较,对应属性不一连接条件为两关系中对应属性的比较,对应属性不一连接条件为两关系中对应属性的比较,对应属性不一定同名,但要有相同的域。其普遍表示形式为:定同名,但要有相同的域。其普遍表示形式为:定同名,但要有相同的域。其普遍表示形式为:定同名,但要有相同的域。其普遍表示形式为: andandandandandandandandandandandandkkk 每个条件的普遍形式为:每个条件的普遍形式为:每个条件的普遍形式为:每个条件的普遍形式为:A A A Ai i i i B B B Bj j j j A A A Ai i i i为为为为R R R R的一个属性,的一个属
87、性,的一个属性,的一个属性,B B B Bj j j j为为为为S S S S中与中与中与中与A A A Ai i i i对应的属性。对应的属性。对应的属性。对应的属性。暮常匠揉辽链侯鸵肋批栋塔铝恭些壮猿际鹰憋拳钟溺楞综蓖拱陕仟掐钟依第2章数据模型第2章数据模型注:自然连接完成三件事:注:自然连接完成三件事:注:自然连接完成三件事:注:自然连接完成三件事: 作作作作R R R R S S S S;(笛卡儿积);(笛卡儿积);(笛卡儿积);(笛卡儿积) 在在在在R R R R S S S S上选择同时满足上选择同时满足上选择同时满足上选择同时满足R.AR.AR.AR.Ai i i iS.AS.A
88、S.AS.Ai i i i的所有元组。的所有元组。的所有元组。的所有元组。 去掉重复属性;去掉重复属性;去掉重复属性;去掉重复属性; 连接条件连接条件连接条件连接条件为:,为:,为:,为:,, , , , , , , 当所有连接条件中的当所有连接条件中的当所有连接条件中的当所有连接条件中的都为都为都为都为“”时,称为时,称为时,称为时,称为等连接等连接等连接等连接,在等连接结果中,对应属性的值是相同的,不用重复。在等连接结果中,对应属性的值是相同的,不用重复。在等连接结果中,对应属性的值是相同的,不用重复。在等连接结果中,对应属性的值是相同的,不用重复。 消除冗余属性的等连接称为消除冗余属性的
89、等连接称为消除冗余属性的等连接称为消除冗余属性的等连接称为自然连接自然连接自然连接自然连接,它是,它是,它是,它是“连接连接连接连接”操作的一个重要特例,实用价值很大,它要求操作的一个重要特例,实用价值很大,它要求操作的一个重要特例,实用价值很大,它要求操作的一个重要特例,实用价值很大,它要求被连接的关被连接的关被连接的关被连接的关系有相同的两个属性名系有相同的两个属性名系有相同的两个属性名系有相同的两个属性名。臆咨瘩说壤帝纪壶寓陇报消睫啥黍汞辗踏里哟沿藉河唾灸肾州蛾眩刺杆歧第2章数据模型第2章数据模型仓库号仓库号仓库号仓库号城市城市城市城市面积面积面积面积WH1WH1北京北京370370WH
90、2WH2上海上海500500WH3WH3广州广州200200WH5WH5合肥合肥130130仓库号仓库号仓库号仓库号职工号职工号职工号职工号工资工资工资工资WH2WH2E1E112201220WH1WH1E3E312101210WH2WH2E4E412501250WH3WH3E6E612301230WH1WH1E7E712501250仓库仓库仓库仓库职工职工职工职工仓库号仓库号仓库号仓库号城市城市城市城市面积面积面积面积WH2WH2上海上海500500WH1WH1北京北京370370WH2WH2上海上海500500WH3WH3广州广州200200WH1WH1北京北京370370职工号职工号职工
91、号职工号工资工资工资工资E1E112201220E3E312101210E4E412501250E6E612301230E7E712501250自然连接产生的新关系自然连接产生的新关系自然连接产生的新关系自然连接产生的新关系瓦滑侦撑终涡寇播良吧帆豢腮竖锈铝播缺憋签潜衷帝咀审滤腻擒窥宁弹坪第2章数据模型第2章数据模型 GRADE GRADEGRADE.GRADE.课称号课称号=COURSE.=COURSE.课称号课称号( (课程名、课程课程名、课程号、学分号、学分(COURSE)(COURSE) 上式可以生成一个学生成绩表,它具有学号、课程上式可以生成一个学生成绩表,它具有学号、课程号、课程名、
92、学分和成绩等属性。号、课程名、学分和成绩等属性。除帅蔚魔捶杆挺屉预壹箍富厨放淌茁必珊疫询艺香零标季虐枪蔫锨诛杯踞第2章数据模型第2章数据模型n可以证明:关系代数操作集可以证明:关系代数操作集 、- - - -、 是完备的,是完备的, 、- - - -、 也是完备的。也是完备的。n完备指任何其它关系代数操作都可以用这完备指任何其它关系代数操作都可以用这5 5种种操作来表示。操作来表示。n若一个关系若一个关系DBMSDBMS支持支持 、- - - -、 ,称,称此此DBMSDBMS是完备的是完备的(relationally complete)(relationally complete)。n事实上
93、,当前关系事实上,当前关系DBMSDBMS还增加了不少关系代数还增加了不少关系代数不支持的操作,例如排序、分组等等。不支持的操作,例如排序、分组等等。癸蜡朗展糕玲畔雅忧财灶祥搀盟恕靛釜纶霍爵竞瞩扬富曝舟产先草秤窒瞥第2章数据模型第2章数据模型 除操作除操作除操作除操作 双目运算(二元),用双目运算(二元),用双目运算(二元),用双目运算(二元),用“ ”表示。表示。表示。表示。 设有关系设有关系设有关系设有关系 R R R R(X,YX,YX,YX,Y)和)和)和)和 S S S S(Y Y Y Y),),),),X,YX,YX,YX,Y为属性组,为属性组,为属性组,为属性组,S S S S(
94、Y Y Y Y) ,则,则,则,则 R R R R S = S = S = S = X X X X(R R R R)- - - -X X X X(X X X X(R) R) R) R) S S S S)-R-R-R-R) 可能有可能有R R不含元组不含元组R R中相应中相应Y Y值集合不能包含值集合不能包含S(Y)S(Y)的的X X值集合值集合R R中相应中相应Y Y值集合能包含值集合能包含S(Y)S(Y)的的X X值集合值集合R-(RR-(R S)S) S S可以看成可以看成“余数余数”。路沪募陕赦舰腐免沼嘲残骤弃译氓咬卉澈侣丰班延雄瞪闰采玲机河闹琉幼第2章数据模型第2章数据模型示例示例仓库
95、号仓库号仓库号仓库号供应商号供应商号供应商号供应商号WH1WH1WH1WH1S1S1S1S1WH1WH1WH1WH1S2S2S2S2WH1WH1WH1WH1S3S3S3S3WH2WH2WH2WH2S3S3S3S3WH3WH3WH3WH3S1S1S1S1WH3WH3WH3WH3S2S2S2S2WH5WH5WH5WH5S1S1S1S1WH5WH5WH5WH5S2S2S2S2WH5WH5WH5WH5S4S4S4S4WH6WH6WH6WH6S2S2S2S2仓库号仓库号仓库号仓库号WH1WH1WH1WH1WH3WH3WH3WH3WH5WH5WH5WH5 供应商号供应商号供应商号供应商号S1S1S1S1S
96、2S2S2S2= =被除关系(被除关系(被除关系(被除关系(R R R R)除关系(除关系(除关系(除关系(S S S S)商关系商关系商关系商关系碴批磨脾钢止镜谬竟牲溜对痊尝敲象甜惨腆货台彩米趁涎桐河恋赛脚赵鲤第2章数据模型第2章数据模型 给定一个供应商号,如果它在被除关系上的映象集给定一个供应商号,如果它在被除关系上的映象集给定一个供应商号,如果它在被除关系上的映象集给定一个供应商号,如果它在被除关系上的映象集包含除关系,则这个供应商号是商关系中的一个元组。包含除关系,则这个供应商号是商关系中的一个元组。包含除关系,则这个供应商号是商关系中的一个元组。包含除关系,则这个供应商号是商关系中的
97、一个元组。在这个例子中,除法运算决定了至少向列在除关系中的在这个例子中,除法运算决定了至少向列在除关系中的在这个例子中,除法运算决定了至少向列在除关系中的在这个例子中,除法运算决定了至少向列在除关系中的那些仓库供应(器件)的那些供应商的编号。那些仓库供应(器件)的那些供应商的编号。那些仓库供应(器件)的那些供应商的编号。那些仓库供应(器件)的那些供应商的编号。城量绑百跳癣垫伏譬践梗蚜曼烯甲账肉洛筏畦因妥又幂卧昆衍宝签谣厨划第2章数据模型第2章数据模型供应商号供应商号供应商号供应商号S1S1S1S1S2S2S2S2S3S3S3S3S4S4S4S4X X X X(R)R)R)R)仓库号仓库号仓库号
98、仓库号WH1WH1WH1WH1WH3WH3WH3WH3WH5WH5WH5WH5S S S S仓库号仓库号仓库号仓库号供应商号供应商号供应商号供应商号WH1WH1WH1WH1S1S1S1S1WH1WH1WH1WH1S2S2S2S2WH1WH1WH1WH1S3S3S3S3WH1WH1WH1WH1S4S4S4S4WH3WH3WH3WH3S1S1S1S1WH3WH3WH3WH3S2S2S2S2WH3WH3WH3WH3S3S3S3S3WH3WH3WH3WH3S4S4S4S4WH5WH5WH5WH5S1S1S1S1WH5WH5WH5WH5S2S2S2S2WH5WH5WH5WH5S3S3S3S3WH5WH5
99、WH5WH5S4S4S4S4X X X X(R) R) R) R) S S S S仓库号仓库号仓库号仓库号供应商号供应商号供应商号供应商号WH1WH1WH1WH1S4S4S4S4WH3WH3WH3WH3S3S3S3S3WH3WH3WH3WH3S4S4S4S4WH5WH5WH5WH5S3S3S3S3X X X X(R) R) R) R) S - R S - R S - R S - R柄腕札持疯钻氰启虾倘寡衅粮刹治枚振旁纂牛瓦晃斗牵洞岿婚毖道吝锦肉第2章数据模型第2章数据模型X X X X(X X X X(R) R) R) R) S S S S)- - - -R R R R)供应商号供应商号供应商
100、号供应商号S4S4S4S4S3S3S3S3S4S4S4S4S3S3S3S3供应商号供应商号供应商号供应商号S1S1S1S1S2S2S2S2R R R R S = S = S = S = X X X X(R R R R)- - - -X X X X(X X X X(R) R) R) R) S S S S)-R-R-R-R)熄叛尔何足好箱菠卞抚赦缺筐藻捧职实势必革狗匆户留越镜铰俯旅淳灿吱第2章数据模型第2章数据模型 外连接(外连接(外连接(外连接(outer joinouter joinouter joinouter join) 对连接操作的扩展对连接操作的扩展对连接操作的扩展对连接操作的扩展.
101、. . . 与连接的区别:与连接的区别:与连接的区别:与连接的区别:连接操作时,只有符合连接条件的连接操作时,只有符合连接条件的连接操作时,只有符合连接条件的连接操作时,只有符合连接条件的匹配元组才能保留在结果中。外连接操作时,同时也匹配元组才能保留在结果中。外连接操作时,同时也匹配元组才能保留在结果中。外连接操作时,同时也匹配元组才能保留在结果中。外连接操作时,同时也保留不匹配的那些元组,空缺部分填保留不匹配的那些元组,空缺部分填保留不匹配的那些元组,空缺部分填保留不匹配的那些元组,空缺部分填NULLNULLNULLNULL。 a ab bNULLNULLa ab bNULLNULL外连接外
102、连接押妥驳棺角赌适争猩粉兹少经镑亿拱瞎淘幼酒任长捧活钦巍使饶森根缚湾第2章数据模型第2章数据模型有三种外连接:有三种外连接:有三种外连接:有三种外连接: 左外连接,连接结果中,只保留左关系的所有元组;左外连接,连接结果中,只保留左关系的所有元组;左外连接,连接结果中,只保留左关系的所有元组;左外连接,连接结果中,只保留左关系的所有元组; 右外连接,连接结果中,只保留右关系的所有元组;右外连接,连接结果中,只保留右关系的所有元组;右外连接,连接结果中,只保留右关系的所有元组;右外连接,连接结果中,只保留右关系的所有元组; 全外连接,连接结果中,保留左右关系的所有元组;全外连接,连接结果中,保留左
103、右关系的所有元组;全外连接,连接结果中,保留左右关系的所有元组;全外连接,连接结果中,保留左右关系的所有元组;蘑癌您茵第潦修糙矫棒送辆已雏柞孙饵偶辜诽坷瑰奔贿蛇锗撅窑氢过阴页第2章数据模型第2章数据模型n例:要求生成一个表,列出所有课程名及其先例:要求生成一个表,列出所有课程名及其先修课程名。修课程名。 R=R=R=R= 课程名,先修课程号课程名,先修课程号课程名,先修课程号课程名,先修课程号(COURSE) COURSE) COURSE) COURSE) S=S=S=S= 课程名,课程号课程名,课程号课程名,课程号课程名,课程号(COURSE)(COURSE)(COURSE)(COURSE)
104、 (必须考虑某些课程可能无先修课程的情况)(必须考虑某些课程可能无先修课程的情况)(必须考虑某些课程可能无先修课程的情况)(必须考虑某些课程可能无先修课程的情况) R.R.R.R.课程名,课程名,课程名,课程名,S.S.S.S.课程名课程名课程名课程名(R(R(R(R*先修课程号先修课程号先修课程号先修课程号= = = =课程号课程号课程号课程号S)S)S)S)沏蒙倍楚北避殷辗食营毖矢讥妻酗阵涕浆倦箍铭囚寨票孙隅韧顶驳逮耸反第2章数据模型第2章数据模型 外并操作外并操作外并操作外并操作 并操作的扩展。可以对非并兼容的两关系进并操作的扩展。可以对非并兼容的两关系进并操作的扩展。可以对非并兼容的两
105、关系进并操作的扩展。可以对非并兼容的两关系进行并操作。行并操作。行并操作。行并操作。 结果等于两关系的属性集的并。结果等于两关系的属性集的并。结果等于两关系的属性集的并。结果等于两关系的属性集的并。 在进行外并操作时,对于那些元组中没有的在进行外并操作时,对于那些元组中没有的在进行外并操作时,对于那些元组中没有的在进行外并操作时,对于那些元组中没有的属性,填以属性,填以属性,填以属性,填以NullNullNullNull。洱瞧团捕碴滋矩菜驯技逊糜士早饺方瘟佑剪炒脑挣韩哎查长吧喻盲推媒愚第2章数据模型第2章数据模型n用关系代数表示的操作,需标明关系操作的序用关系代数表示的操作,需标明关系操作的序
106、列,因而以关系代数为基础的列,因而以关系代数为基础的DBDB语言是语言是过程性过程性语言(语言(procedural languageprocedural language)。)。n用谓词演算来表达关系的操作称为关系演算。用谓词演算来表达关系的操作称为关系演算。用关系演算表示关系的操作,只要说明所要得用关系演算表示关系的操作,只要说明所要得到的结果,而不必标明操作的过程,因而以到的结果,而不必标明操作的过程,因而以关关系演算为基础的数据库语言是说明性语言系演算为基础的数据库语言是说明性语言(declarative languagedeclarative language)。)。n目前,面向用户
107、的关系数据库语言基本上都以目前,面向用户的关系数据库语言基本上都以关系演算为基础。关系演算为基础。2.3.4 2.3.4 2.3.4 2.3.4 关系演算(关系演算(关系演算(关系演算(relational calculusrelational calculusrelational calculusrelational calculus) 寒诈蓬域终醛砧奖门贮直憾然伯斯圣文申柑沈帧夕姚醇峪募么龚逾霉捂封第2章数据模型第2章数据模型 关系代数表示关系的操作,用户必须指出运关系代数表示关系的操作,用户必须指出运关系代数表示关系的操作,用户必须指出运关系代数表示关系的操作,用户必须指出运算方法步骤,
108、而关系演算用谓词公式表示查询算方法步骤,而关系演算用谓词公式表示查询算方法步骤,而关系演算用谓词公式表示查询算方法步骤,而关系演算用谓词公式表示查询条件,指出条件,指出条件,指出条件,指出“做什么做什么做什么做什么”,而,而,而,而“怎么做怎么做怎么做怎么做”则由系则由系则由系则由系统去完成。统去完成。统去完成。统去完成。 以关系代数为基础的数据库语言是过程性语以关系代数为基础的数据库语言是过程性语以关系代数为基础的数据库语言是过程性语以关系代数为基础的数据库语言是过程性语言,以关系演算为基础的数据库语言是说明性言,以关系演算为基础的数据库语言是说明性言,以关系演算为基础的数据库语言是说明性言
109、,以关系演算为基础的数据库语言是说明性语言。语言。语言。语言。诈鳖议牵冻秩易孽巡琅静赃筋硼渭略撬择倚孜汝峰钙仟曾匀墟卒赌膜规厚第2章数据模型第2章数据模型 根据所用变量不同,关系演算分为:根据所用变量不同,关系演算分为:根据所用变量不同,关系演算分为:根据所用变量不同,关系演算分为: 元组关系演算元组关系演算元组关系演算元组关系演算 域关系演算域关系演算域关系演算域关系演算拳凑锯盅坟咱濒纬舱羔揍滓冕争嚼摸咋脚塌遍星椰婿懊闪敛醇属嫡策危否第2章数据模型第2章数据模型 其其其其中中中中:t t t t是是是是元元元元组组组组变变变变量量量量,既既既既可可可可以以以以用用用用整整整整个个个个t t
110、t t作作作作为为为为查查查查询询询询对对对对象象象象,也也也也可可可可查查查查询询询询t t t t中中中中的的的的某某某某些些些些属属属属性性性性。如如如如查查查查询询询询整整整整个个个个t t t t,则则则则可可可可省去省去省去省去 。P(t)P(t)P(t)P(t)是是是是t t t t应满足的谓词应满足的谓词应满足的谓词应满足的谓词。 利用元组关系演算,可以表示关系代数操作利用元组关系演算,可以表示关系代数操作利用元组关系演算,可以表示关系代数操作利用元组关系演算,可以表示关系代数操作, , , ,因因因因此,元组演算与关系代数具有同等表达能力,是关此,元组演算与关系代数具有同等表
111、达能力,是关此,元组演算与关系代数具有同等表达能力,是关此,元组演算与关系代数具有同等表达能力,是关系完备的。系完备的。系完备的。系完备的。 1.1.1.1.元组关系演算元组关系演算元组关系演算元组关系演算 以元组为变量。一般形式为:以元组为变量。一般形式为:以元组为变量。一般形式为:以元组为变量。一般形式为: tttt属性表属性表属性表属性表|P|P|P|P(t t t t) 颓亚蔬崩铬巫安柳股诊郡恬掳宋谤惑啪阻票练迂各智牺罩须先免它窒滓脊第2章数据模型第2章数据模型 关系代数的几种基本运算可以用元组表达式表关系代数的几种基本运算可以用元组表达式表关系代数的几种基本运算可以用元组表达式表关系
112、代数的几种基本运算可以用元组表达式表示如下:示如下:示如下:示如下: 关系代数的几种基本运算可以用元组表达式表关系代数的几种基本运算可以用元组表达式表关系代数的几种基本运算可以用元组表达式表关系代数的几种基本运算可以用元组表达式表示如下:示如下:示如下:示如下: (1 1 1 1)投影:设有关系模式)投影:设有关系模式)投影:设有关系模式)投影:设有关系模式R(ABC)R(ABC)R(ABC)R(ABC),r r r r为为为为R R R R的一个值,则的一个值,则的一个值,则的一个值,则 ABABABAB(r)=tAB|t(r)=tAB|t(r)=tAB|t(r)=tAB|t rrrr (2
113、 2 2 2)选择:)选择:)选择:)选择:F F F F(r)=t|(r)=t|(r)=t|(r)=t|t t t t r and Fr and Fr and Fr and F F F F F是以是以是以是以t t t t为变量的布尔表达式。为变量的布尔表达式。为变量的布尔表达式。为变量的布尔表达式。 鸿愉涪御歪俗箍钩粟辩丛瞻肖哭吏损藏钙抉协际纲程活撤租荫卿袖员确硼第2章数据模型第2章数据模型 (3 3 3 3)RSRSRSRS:可用:可用:可用:可用t|R(t)t|R(t)t|R(t)t|R(t) S(t) S(t) S(t) S(t)表示;表示;表示;表示; 或或或或t|tt|tt|tt
114、|t R OR tR OR tR OR tR OR t SSSS (4 4 4 4)R-SR-SR-SR-S:可用:可用:可用:可用t|R(t)t|R(t)t|R(t)t|R(t) S(t)S(t)S(t)S(t)表示;表示;表示;表示; 或或或或t|tt|tt|tt|t R AND R AND R AND R AND t t t t SSSS橱她婆墨派抑荫妥苏积泳愚朗弓勇半埂滨梗泄丫梳哩凹型壮统株雹偏的副第2章数据模型第2章数据模型 (5 5)连接(实际指自然连接)连接(实际指自然连接) 设有两个关系模式设有两个关系模式R(ABC)R(ABC)和和S(CDE)S(CDE),r r、s s分别
115、为分别为其值其值: : R RS=t(ABCDE)|tABCS=t(ABCDE)|tABC R and tCDER and tCDER and tCDER and tCDE S S S S 注意:谓词中两个注意:谓词中两个tC同值,隐含等连接。同值,隐含等连接。哉颊凑郑惟苞敬菊蛾圭温普嫡右茁炊歇督椭独姿牌附锑谨滁檬沼族琳嗜蹦第2章数据模型第2章数据模型 用谓词演算表示关系操作时,只有结果是有限集才用谓词演算表示关系操作时,只有结果是有限集才有意义。有意义。 一个表达式的结果如果是有限的,称此表达式是安一个表达式的结果如果是有限的,称此表达式是安全的,否则是不安全的。全的,否则是不安全的。 否定
116、常常会导致不安全的表达式,例如否定常常会导致不安全的表达式,例如 t|(t t|(t STUDENT)STUDENT)是不安全的。是不安全的。株春抱匈撒魏邪绢掖乏画团钝键第收涟狼飞晒聪咀肃填蕾怂过筹叉瓷务隆第2章数据模型第2章数据模型 若限制若限制t t取值的域,使取值的域,使t t DOM(P)DOM(P)DOM(P)DOM(P),可将上式改写,可将上式改写,可将上式改写,可将上式改写成成成成t| tt| t DOM(P) and (t DOM(P) and (t STUDENT)= DOM(P) STUDENT)= DOM(P) STUDENTSTUDENT,成为安全表达式。,成为安全表达
117、式。钩艳往噬蛆蛛委涛游朴远剿池臼即母泵酵学程蘸壹凹蝉避呕击尝夷漂谴茨第2章数据模型第2章数据模型 域关系演算是域关系演算是域关系演算是域关系演算是以域为变量以域为变量以域为变量以域为变量,一般形式为:,一般形式为:,一般形式为:,一般形式为: X X X X1 1 1 1,X,X,X,X2 2 2 2,X,X,X,Xn n n n|P(X|P(X|P(X|P(X1 1 1 1,X,X,X,X2 2 2 2,X,X,X,Xn n n n, X X X Xn+1n+1n+1n+1,X X X Xn+mn+mn+mn+m) ) ) ) 其其其其中中中中:X X X X1 1 1 1,X,X,X,X2
118、 2 2 2,X,X,X,Xn n n n,X X X Xn+1n+1n+1n+1,X X X Xn+mn+mn+mn+m为为为为域域域域变变变变量量量量。且且且且X X X X1 1 1 1,X,X,X,X2 2 2 2,X,X,X,Xn n n n出出出出现现现现在在在在结结结结果果果果中中中中,其其其其它它它它m m m m个个个个域域域域变变变变量量量量不不不不出出出出现在结果中,但出现在谓词现在结果中,但出现在谓词现在结果中,但出现在谓词现在结果中,但出现在谓词P P P P中。中。中。中。2.3.5 2.3.5 2.3.5 2.3.5 域关系演算域关系演算域关系演算域关系演算若扁份
119、睛走针鸯鹰棱粕滴倡鸭促郭豪胡缉睛霞告烯骡音初臣棒喘嚣阴喷靴第2章数据模型第2章数据模型 对关系对关系对关系对关系GRADEGRADEGRADEGRADE(学号,课程号,成绩),如果(学号,课程号,成绩),如果(学号,课程号,成绩),如果(学号,课程号,成绩),如果要查询须补考的学生的学号和补考的课程号,此要查询须补考的学生的学号和补考的课程号,此要查询须补考的学生的学号和补考的课程号,此要查询须补考的学生的学号和补考的课程号,此时查询表达式:时查询表达式:时查询表达式:时查询表达式:|(|(|(|( z)(GRADE(x,y,z) AND z60)z)(GRADE(x,y,z) AND z60
120、)z)(GRADE(x,y,z) AND z60)z)(GRADE(x,y,z) AND zx,y,zx,y,zx,y,z是是是是GRADEGRADEGRADEGRADE中的一个元组,则该谓词为真。中的一个元组,则该谓词为真。中的一个元组,则该谓词为真。中的一个元组,则该谓词为真。 与元组变量不同的是域变量的变化范围是某个与元组变量不同的是域变量的变化范围是某个与元组变量不同的是域变量的变化范围是某个与元组变量不同的是域变量的变化范围是某个值域而不是一个关系。值域而不是一个关系。值域而不是一个关系。值域而不是一个关系。帮跑答杨硝吝嚼沉妥瓢赠撞淄擒哲抹用歉辙谭腊整励疚芍沥誓咋铱少捍盈第2章数据模
121、型第2章数据模型2.42.4对传统数据模型的评价对传统数据模型的评价对传统数据模型的评价对传统数据模型的评价 传传传传统统统统数数数数据据据据模模模模型型型型有有有有层层层层次次次次数数数数据据据据模模模模型型型型、网网网网状状状状数数数数据据据据模模模模型、关系数据模型。型、关系数据模型。型、关系数据模型。型、关系数据模型。特点:特点:特点:特点:都继承了文件中的记录、字段等概念。都继承了文件中的记录、字段等概念。都继承了文件中的记录、字段等概念。都继承了文件中的记录、字段等概念。物理级也借鉴了文件的索引、散列等存取方法。物理级也借鉴了文件的索引、散列等存取方法。物理级也借鉴了文件的索引、散
122、列等存取方法。物理级也借鉴了文件的索引、散列等存取方法。向用户提供了统一的数据模型和相应的数据库语言。向用户提供了统一的数据模型和相应的数据库语言。向用户提供了统一的数据模型和相应的数据库语言。向用户提供了统一的数据模型和相应的数据库语言。都在记录的基础上定义了数据的基本结构、约束和操作。都在记录的基础上定义了数据的基本结构、约束和操作。都在记录的基础上定义了数据的基本结构、约束和操作。都在记录的基础上定义了数据的基本结构、约束和操作。鳞朋秒寺庸钙塔僧恋睦尹侥寻簧铬瓮早蜀洱考告挎虽领汇陆瓜吠化崩墓叠第2章数据模型第2章数据模型传统数据模型的不足:传统数据模型的不足:传统数据模型的不足:传统数据
123、模型的不足: 以以以以记记记记录录录录为为为为基基基基础础础础,不不不不能能能能很很很很好好好好地地地地面面面面向向向向用用用用户户户户和和和和应应应应用用用用。记记记记 录和实体不一定相对应。录和实体不一定相对应。录和实体不一定相对应。录和实体不一定相对应。 不能以自然的方式表示实体间联系。不能以自然的方式表示实体间联系。不能以自然的方式表示实体间联系。不能以自然的方式表示实体间联系。 语义贫乏。语义贫乏。语义贫乏。语义贫乏。 数据类型少,难以满足应用需要。数据类型少,难以满足应用需要。数据类型少,难以满足应用需要。数据类型少,难以满足应用需要。 面鸣诫兹讯传秦爽臀迪撂骨疟啤咋嚣瞧锅赶滦停谩
124、卡逾瞒龋缔皮抹腊更瞄第2章数据模型第2章数据模型2.5 E-R 2.5 E-R 数据模型数据模型n19761976年由年由P.ChenP.Chen提出:提出:v建立一种统一的数据模型,来概括层次、网状和关建立一种统一的数据模型,来概括层次、网状和关系三种传统数据模型;系三种传统数据模型;v作为作为3 3种数据模型间相互转换的中间模型;种数据模型间相互转换的中间模型;v作为超脱作为超脱DBMSDBMS的一种概念数据模型,用比较自然的的一种概念数据模型,用比较自然的方式模拟现实世界。方式模拟现实世界。 在活磋郡墩妹光徽谷娇阿镁葱擞泊切盲腥八乞货撵较硝肋褪埔孵谍藤诧作第2章数据模型第2章数据模型nE
125、-RE-R数据模型用的最成功和最广泛的是作为数据库数据模型用的最成功和最广泛的是作为数据库概念设计的数据模型。概念设计的数据模型。nE-RE-R数据模型不是面向实现,而是面向现实世界。数据模型不是面向实现,而是面向现实世界。其设计的出发点是有效自然的模拟现实世界,而其设计的出发点是有效自然的模拟现实世界,而不是首先考虑它在机器中的实现问题。不是首先考虑它在机器中的实现问题。nE-RE-R数据模型是一种有代表性的非传统数据模型。数据模型是一种有代表性的非传统数据模型。筑哟域齐姨爆泥周天蹬炉怔姻唬望兴杂崖茸霸代仟忙克哀庸特捻缠军埔滨第2章数据模型第2章数据模型 2.5.1 2.5.1 2.5.1
126、2.5.1 基本概念基本概念基本概念基本概念 E-RE-RE-RE-R(实实实实体体体体联联联联系系系系数数数数据据据据模模模模型型型型)与与与与传传传传统统统统数数数数据据据据模模模模型型型型的的的的区区区区别别别别在在在在于于于于:E-RE-RE-RE-R不不不不是是是是面面面面向向向向实实实实现现现现,而而而而是是是是面面面面向向向向现现现现实实实实世世世世界的,因此,它能比较自然地描述现实世界。界的,因此,它能比较自然地描述现实世界。界的,因此,它能比较自然地描述现实世界。界的,因此,它能比较自然地描述现实世界。 E-R E-R E-R E-R中有三个重要的抽象概念:中有三个重要的抽象
127、概念:中有三个重要的抽象概念:中有三个重要的抽象概念: 实实实实体体体体:可可可可以以以以相相相相互互互互区区区区别别别别,且且且且可可可可被被被被人人人人们们们们识识识识别别别别的的的的事事事事、物、概念等统统抽象为实体。物、概念等统统抽象为实体。物、概念等统统抽象为实体。物、概念等统统抽象为实体。帘疟借臃佰稳椎碧或疲妈续掖廉臣昏你拼棋锯懊孜迎不冰勇劳坚举辑界靛第2章数据模型第2章数据模型 例如,学生的全体,就是一个实体集。其中例如,学生的全体,就是一个实体集。其中例如,学生的全体,就是一个实体集。其中例如,学生的全体,就是一个实体集。其中的每一个学生是实体集的一个实例或值。因此,的每一个学
128、生是实体集的一个实例或值。因此,的每一个学生是实体集的一个实例或值。因此,的每一个学生是实体集的一个实例或值。因此,实体集通常作为型来定义实体集通常作为型来定义实体集通常作为型来定义实体集通常作为型来定义(E-RE-RE-RE-R中有型与值之分)。中有型与值之分)。中有型与值之分)。中有型与值之分)。 如:如:如:如:EsEsEsEse|ee|ee|ee|e是学生是学生是学生是学生 其中:其中:其中:其中:EsEsEsEs是学生实体集,是学生实体集,是学生实体集,是学生实体集, e e e e是学生实体。是学生实体。是学生实体。是学生实体。 注:注:注:注:E-RE-RE-RE-R中,大写字母
129、表示实体集,小写字母中,大写字母表示实体集,小写字母中,大写字母表示实体集,小写字母中,大写字母表示实体集,小写字母表示实体。表示实体。表示实体。表示实体。浸雍曙哉鸟蔼谓变动疮厉渐荔邀蓝竞负鄂龟却崩抑麓咋瀑直升既署谊柞岛第2章数据模型第2章数据模型 属属属属性性性性:反反反反映映映映实实实实体体体体特特特特征征征征的的的的称称称称之之之之为为为为实实实实体体体体的的的的属属属属性性性性,每每每每个属性都有其取值的范围,称值集。个属性都有其取值的范围,称值集。个属性都有其取值的范围,称值集。个属性都有其取值的范围,称值集。 同同同同一一一一实实实实体体体体集集集集中中中中,每每每每个个个个实实实
130、实体体体体的的的的属属属属性性性性及及及及其其其其域域域域是是是是相相相相同同同同的的的的,但但但但值值值值可可可可不不不不同同同同,属属属属性性性性可可可可以以以以是是是是单单单单域域域域的的的的简简简简单单单单属属属属性性性性,也也也也可可可可以以以以是是是是多多多多域域域域的的的的组组组组合合合合属属属属性性性性(如如如如通通通通信信信信地地地地址址址址是是是是个个个个组组组组合合合合属属属属性性性性,由省、市、区、街道等组成)。由省、市、区、街道等组成)。由省、市、区、街道等组成)。由省、市、区、街道等组成)。缅椅诞妹碰掸碴浅贞快撼煞甄蛊灶辅坟虫绞匀促慑腋倔哼汛屏凹耻排莹零第2章数据模
131、型第2章数据模型 实实实实体体体体键键键键:能能能能唯唯唯唯一一一一识识识识别别别别实实实实体体体体的的的的属属属属性性性性或或或或属属属属性性性性组组组组。一一一一个个个个实实实实体体体体的的的的键键键键可可可可能能能能有有有有多多多多个个个个,选选选选定定定定一一一一个个个个作作作作为为为为实实实实体体体体的的的的键。键。键。键。 与与与与传传传传统统统统数数数数据据据据模模模模型型型型比比比比,E-RE-RE-RE-R对对对对属属属属性性性性的的的的限限限限制制制制较较较较少少少少,故有利于自然地模拟现实世界。故有利于自然地模拟现实世界。故有利于自然地模拟现实世界。故有利于自然地模拟现实
132、世界。淆锣泵唆件挤渭虞曾民舒蝎污蜡波炉沟艇勒瘟现粘聂份掠拈聚圈堵陨钟逊第2章数据模型第2章数据模型 联联联联系系系系:表表表表示示示示实实实实体体体体与与与与实实实实体体体体之之之之间间间间的的的的关关关关系系系系。参参参参与与与与联联联联系系系系的的的的实实实实体体体体数数数数2 2 2 2,称称称称为为为为二二二二元元元元联联联联系系系系。参参参参与与与与联联联联系系系系的的的的实实实实体体体体数数数数2222,称为多元联系。,称为多元联系。,称为多元联系。,称为多元联系。 在在在在E-RE-RE-RE-R模型中,模型中,模型中,模型中,联系的类型有三种联系的类型有三种联系的类型有三种联系
133、的类型有三种: (1 1 1 1)1:11:11:11:1(一对一联系)(一对一联系)(一对一联系)(一对一联系) (2 2 2 2)1:n1:n1:n1:n(一对多联系)(一对多联系)(一对多联系)(一对多联系) (3 3 3 3)m:nm:nm:nm:n(多对多联系)(多对多联系)(多对多联系)(多对多联系)衰油孙倚尹宿砌库棵倒住硼齐殊佑扭而表倔啡锌阶事筒吼仔粘题磨怎钒瓤第2章数据模型第2章数据模型 实实实实体体体体参参参参与与与与度度度度:表表表表示示示示实实实实体体体体参参参参与与与与联联联联系系系系的的的的最最最最小小小小次次次次数数数数和最大次数,通常用(和最大次数,通常用(和最大
134、次数,通常用(和最大次数,通常用(m:nm:nm:nm:n)表示。)表示。)表示。)表示。 例例例例如如如如,规规规规定定定定每每每每个个个个学学学学生生生生最最最最少少少少应应应应选选选选三三三三门门门门课课课课,最最最最多多多多可可可可选选选选六六六六门门门门课课课课。则则则则学学学学生生生生在在在在选选选选课课课课联联联联系系系系中中中中的的的的参参参参与与与与度度度度可可可可表表表表示为(示为(示为(示为(3:63:63:63:6). . . .谋滓骑孤动博雄球灵艘柒馅揉豫煽抗外柿榆驰集堑菩河违装呀暑磕蒸圆甜第2章数据模型第2章数据模型 注注注注:m m m m0 0 0 0,表表表表
135、示示示示非非非非强强强强制制制制性性性性,即即即即实实实实体体体体不不不不一一一一定定定定参参参参与联系。与联系。与联系。与联系。 如如如如果果果果一一一一门门门门课课课课可可可可以以以以无无无无人人人人选选选选,但但但但最最最最多多多多只只只只能能能能允允允允许许许许100100100100人人人人 选选选选 则则则则 课课课课 程程程程 在在在在 选选选选 课课课课 联联联联 系系系系 中中中中 的的的的 参参参参 与与与与 度度度度 为为为为(0,1000,1000,1000,100)。)。)。)。 m0,m0,m0,m0,表示表示表示表示强制性强制性强制性强制性的,即实体一定要参与联系
136、。的,即实体一定要参与联系。的,即实体一定要参与联系。的,即实体一定要参与联系。 在在在在E-RE-RE-RE-R模型中,实体和联系均可有属性,如选模型中,实体和联系均可有属性,如选模型中,实体和联系均可有属性,如选模型中,实体和联系均可有属性,如选课联系的属性可有成绩、选课时间等。课联系的属性可有成绩、选课时间等。课联系的属性可有成绩、选课时间等。课联系的属性可有成绩、选课时间等。凛嫩抑揭枫逻戍返蔡力掐雏咐痪只管挞耽耀尖奶蕉挺弊裔唁驮纤旁酪海契第2章数据模型第2章数据模型 现现现现实实实实世世世世界界界界中中中中还还还还有有有有一一一一种种种种特特特特殊殊殊殊的的的的实实实实体体体体,称称称
137、称为为为为弱弱弱弱实实实实体体体体,这这这这种种种种实实实实体体体体不不不不能能能能单单单单独独独独存存存存在在在在,总总总总是是是是依依依依附附附附某某某某个个个个实实实实体体体体,如如如如亲亲亲亲戚戚戚戚是是是是依依依依赖赖赖赖于于于于职职职职工工工工这这这这个个个个实实实实体体体体,家家家家属属属属是是是是依依依依赖赖赖赖于于于于某某某某一一一一职职职职工工工工。这这这这一一一一类类类类实实实实体体体体通通通通常常常常取取取取其其其其所所所所依依依依附附附附的的的的实体的实体的实体的实体的KeyKeyKeyKey作为本身的作为本身的作为本身的作为本身的KeyKeyKeyKey的一部分。的
138、一部分。的一部分。的一部分。戊精址朱帅谷粗勃烂毁降潦别盅顺太羚络懂茄膊描哺填斤略蝇脑况倡惶聪第2章数据模型第2章数据模型2.5.2 E-R2.5.2 E-R图图 用用用用E-RE-RE-RE-R数据模型对一个单位的模拟,称为一数据模型对一个单位的模拟,称为一数据模型对一个单位的模拟,称为一数据模型对一个单位的模拟,称为一个单位的个单位的个单位的个单位的E-RE-RE-RE-R数据模式。数据模式。数据模式。数据模式。 全部参与全部参与全部参与全部参与部分参与部分参与部分参与部分参与马蛰邪均垫譬黍腐间禄裂园贯戮岁牢运西磁吴锦掐搬厢焦拐乒满躁拉衰姑第2章数据模型第2章数据模型 E-R E-R E-R
139、 E-R模型提供了实体、属性和联系三个抽象概模型提供了实体、属性和联系三个抽象概模型提供了实体、属性和联系三个抽象概模型提供了实体、属性和联系三个抽象概念。这三个概念简单、明了、直观易懂,用以模念。这三个概念简单、明了、直观易懂,用以模念。这三个概念简单、明了、直观易懂,用以模念。这三个概念简单、明了、直观易懂,用以模拟现实世界比较自然,且可方便地转换关系、层拟现实世界比较自然,且可方便地转换关系、层拟现实世界比较自然,且可方便地转换关系、层拟现实世界比较自然,且可方便地转换关系、层次、网状数据模式。次、网状数据模式。次、网状数据模式。次、网状数据模式。 姬烦臣摈骤钟睁对雨浊乞暂组翱踪盎蚀锁馁
140、扦附软槛啊闰滚岔兴兑讣讳湛第2章数据模型第2章数据模型 用用用用E-RE-RE-RE-R表表表表示示示示数数数数据据据据模模模模式式式式时时时时,我我我我们们们们只只只只关关关关心心心心有有有有哪哪哪哪些些些些数数数数据据据据(即即即即有有有有哪哪哪哪些些些些实实实实体体体体以以以以及及及及属属属属性性性性)以以以以及及及及数数数数据据据据间间间间的的的的关关关关系系系系(实实实实体体体体关关关关系系系系),而而而而不不不不必必必必关关关关心心心心这这这这些些些些数数数数据据据据在在在在计计计计算算算算机机机机内内内内如何表示和用什么如何表示和用什么如何表示和用什么如何表示和用什么DBMSDB
141、MSDBMSDBMS。璃今扬睫亭底什箍历既倦菠卜业裸刺澄郝桶慢盗裸材雕戏顺察熊熬胸赚筏第2章数据模型第2章数据模型2.5.3 2.5.3 2.5.3 2.5.3 扩充扩充扩充扩充E-RE-RE-RE-R数据模型数据模型数据模型数据模型该模型中引入了下列抽象概念该模型中引入了下列抽象概念该模型中引入了下列抽象概念该模型中引入了下列抽象概念: : : :1 1 1 1、特殊化和普遍化、特殊化和普遍化、特殊化和普遍化、特殊化和普遍化 特殊化:特殊化:特殊化:特殊化:从普遍到特殊的过程。如把研究从普遍到特殊的过程。如把研究从普遍到特殊的过程。如把研究从普遍到特殊的过程。如把研究 生实体集分为博士生、硕
142、士生等子集的过程。生实体集分为博士生、硕士生等子集的过程。生实体集分为博士生、硕士生等子集的过程。生实体集分为博士生、硕士生等子集的过程。 普遍化:普遍化:普遍化:普遍化:从特殊到普遍的过程。如把研究从特殊到普遍的过程。如把研究从特殊到普遍的过程。如把研究从特殊到普遍的过程。如把研究生、本科生、大专生三个实体概括为学生实体生、本科生、大专生三个实体概括为学生实体生、本科生、大专生三个实体概括为学生实体生、本科生、大专生三个实体概括为学生实体集的过程。集的过程。集的过程。集的过程。梧渔苟被跟父邯涧小太咯革赖淆考托净曹焙文邀太仍伐樊没帮者楼健楼遇第2章数据模型第2章数据模型注注注注:子子子子实实实
143、实体体体体继继继继承承承承其其其其父父父父实实实实体体体体集集集集的的的的所所所所有有有有属属属属性性性性和和和和联联联联系系系系,且又可有自己的属性和联系。且又可有自己的属性和联系。且又可有自己的属性和联系。且又可有自己的属性和联系。见图见图见图见图2-302-302-302-30。重叠特殊化重叠特殊化重叠特殊化重叠特殊化不相交重叠化不相交重叠化不相交重叠化不相交重叠化特殊化特殊化特殊化特殊化糕狱扁庇箍喝揩格板细型囊脚俘砧贞察增识跋殆编蒲涣型揍恨冲仿赊磨韧第2章数据模型第2章数据模型2. 2. 2. 2. 聚集聚集聚集聚集 在在在在EEREEREEREER中中中中,可可可可把把把把联联联联系
144、系系系看看看看成成成成由由由由参参参参与与与与联联联联系系系系的的的的实实实实体体体体组组组组合合合合而而而而成成成成的的的的新新新新的的的的实实实实体体体体,其其其其属属属属性性性性为为为为参参参参与与与与联联联联系系系系的的的的实实实实体体体体的的的的属属属属性性性性和和和和联联联联系系系系的的的的属属属属性性性性的的的的并并并并。这这这这种种种种新新新新的的的的实实实实体体体体称称称称为为为为参参参参与与与与联系的实体的聚集。联系的实体的聚集。联系的实体的聚集。联系的实体的聚集。见图见图见图见图2-312-312-312-31。牢咀妇缝碳刁令诸达短洗那瘫探锹枝街酣垛敌徊包牡寄宽裴赢顺助窑
145、若该第2章数据模型第2章数据模型3.3.3.3.范畴范畴范畴范畴 由由由由不不不不同同同同类类类类型型型型的的的的实实实实体体体体组组组组成成成成的的的的实实实实体体体体集集集集,称称称称之之之之为为为为范范范范畴畴畴畴见图见图见图见图2-322-322-322-32。范畴范畴范畴范畴并操作并操作并操作并操作绩篷启是宿焚冈韵依蚤谢烦莹创蝎耘周嗜仕行冬状蜘着蹦逗浊皮粤姿嗡秦第2章数据模型第2章数据模型范式概念范式概念n构造数据库必须遵循一定的规则。在关系数构造数据库必须遵循一定的规则。在关系数据库中,这种规则就是范式。据库中,这种规则就是范式。范式是符合某范式是符合某一种级别的关系模式的集合一种
146、级别的关系模式的集合。p 第一范式(第一范式(1NF1NF):):在关系模式在关系模式R R中的每一个具体中的每一个具体关系关系r r中,如果每个属性值都是不可再分的最小数据中,如果每个属性值都是不可再分的最小数据单位,则称单位,则称R R是第一范式的关系。是第一范式的关系。首耕掩艾献恍骑码娘班吃途保会工自葬瘤疑绕茶卢肌苟轮骆拿蝎阳枕祭早第2章数据模型第2章数据模型 例如例如: :职工号,姓名,电话号码组成一个表(一个职工号,姓名,电话号码组成一个表(一个人可能有一个办公室电话人可能有一个办公室电话 和一个家里电话号码)和一个家里电话号码) 规规范成为范成为1NF1NF有三种方法:有三种方法:
147、 以上三个方法,第一种方法最不可取,按实际情以上三个方法,第一种方法最不可取,按实际情况选取后两种情况。况选取后两种情况。 (1) (1) 重复存储职工号和姓名。重复存储职工号和姓名。 (2) (2) 职工号为关键字,电话号码分为单位电话和住职工号为关键字,电话号码分为单位电话和住宅电话两个属性。宅电话两个属性。 (3) (3) 职工号为关键字,但强制每条记录只能有一个职工号为关键字,但强制每条记录只能有一个电话号码。电话号码。关键字只能是电话号码。关键字只能是电话号码。肉求坑炸观染弛祝惜皋欠苍铱阐碾层毅嫩滥养擅孽托倍吁惫捣睹嗓哀曼巧第2章数据模型第2章数据模型p第二范式(第二范式(2NF2N
148、F):):如果关系模式如果关系模式R R中的所有非主属中的所有非主属性都完全依赖于任意一个候选关键字,则称关系性都完全依赖于任意一个候选关键字,则称关系R R是是属于第二范式的。属于第二范式的。 例:选课关系例:选课关系 SCI SCI(SNOSNO,CNOCNO,GRADEGRADE,CREDITCREDIT)其中其中SNOSNO为学号,为学号,CNOCNO为课程号,为课程号,GRADEGRADE为成绩,为成绩,CREDITCREDIT为学分。由以上条件,关键字为组合关键字为学分。由以上条件,关键字为组合关键字(SNOSNO,CNOCNO)。)。 在应用中使用以上关系模式存在什么问题?在应用
149、中使用以上关系模式存在什么问题? 碰旅趁惹购钡桶厦火操雾芹暖茁鹃罗惜撅策狄卉彬跟商馆羡札隋斤喧痉彼第2章数据模型第2章数据模型 a. a.数据冗余数据冗余b.b.更新异常更新异常c.c.插入异常插入异常在应用中使用以上关系模式有以下问题:在应用中使用以上关系模式有以下问题:假设同一门课由假设同一门课由4040个学生选修,学分就个学生选修,学分就 重复重复4040次。次。 若调整了某课程的学分,相应的元组若调整了某课程的学分,相应的元组CREDITCREDIT值都要值都要更新,有可能会出现同一门课学分不同。更新,有可能会出现同一门课学分不同。 如果计划开新课,由于没人选修,没有学号关键字,如果计
150、划开新课,由于没人选修,没有学号关键字,只能等有人选修才能把课程和学分存入。只能等有人选修才能把课程和学分存入。心吝宣价淘棘箱镭挠靛嘴挽扣牡驯鼎亲诧狞苫蒋勇收遮炼溜尘满邵撼陋卧第2章数据模型第2章数据模型 原因原因:非关键字属性:非关键字属性CREDITCREDIT仅函数依赖于仅函数依赖于CNOCNO,也,也就是就是CREDITCREDIT部分依赖组合关键字(部分依赖组合关键字(SNOSNO,CNOCNO)而不是)而不是完全依赖。完全依赖。 解决方法解决方法:分成两个关系模式:分成两个关系模式 SC1 SC1(SNOSNO,CNOCNO,GRADEGRADE),),C2C2(CNOCNO,CR
151、EDITCREDIT)。新关系包括两个关系)。新关系包括两个关系模式,它们之间通过模式,它们之间通过SC1SC1中的外关键字中的外关键字CNOCNO相联系,需相联系,需要时再进行自然联接,恢复了原来的关系。要时再进行自然联接,恢复了原来的关系。脏冒阵歉每唬搅纵础恋镑考僳缴倔座度夏狱增适替年贿浆谬它剥怀镁暖淤第2章数据模型第2章数据模型p第三范式(第三范式(3NF3NF):):如果关系模式如果关系模式R R中的所有非主属中的所有非主属性对任何候选关键字都不存在传递信赖,则称关系性对任何候选关键字都不存在传递信赖,则称关系R R是是属于第三范式的。属于第三范式的。 例如例如:S1:S1(SNOSN
152、O,SNAMESNAME,DNODNO,DNAMEDNAME,LOCATIONLOCATION) 各属性分别代表学号,姓名,所在系,系名称,系地各属性分别代表学号,姓名,所在系,系名称,系地址。址。 关键字关键字SNOSNO决定各个属性。由于是单个关键字,没决定各个属性。由于是单个关键字,没有部分依赖的问题,肯定是有部分依赖的问题,肯定是2NF2NF。但这关系肯定有大量但这关系肯定有大量的冗余的冗余,有关学生所在系的几个属性,有关学生所在系的几个属性DNODNO,DNAMEDNAME,LOCATIONLOCATION将重复存储,插入,删除和修改时也将产生将重复存储,插入,删除和修改时也将产生类
153、似以上例的情况。类似以上例的情况。扛拇手灿玉匡峙殿属羡涂只传铬淌卸苛秩辨烛遏辗咱锥檬胖集楔环秤颈阉第2章数据模型第2章数据模型 原因原因:关系中存在传递依赖造成的。即:关系中存在传递依赖造成的。即SNO - SNO - DNODNO,DNO - LOCATIONDNO - LOCATION, , 因此关键字因此关键字 SNO SNO 对对 LOCATION LOCATION 函数决定是通过传递依赖函数决定是通过传递依赖 DNO - DNO - LOCATION LOCATION 实现的。也就是说,实现的。也就是说,SNOSNO不直接决定非主属不直接决定非主属性性LOCATION,LOCATION,每个关系模式中不能留有传递依赖。每个关系模式中不能留有传递依赖。 解决方法:解决方法:分为两个关系分为两个关系S S(SNO,SNAME,DNOSNO,SNAME,DNO),),D D(DNO,DNAME,LOCATIONDNO,DNAME,LOCATION)。)。 注意:关系注意:关系S S中不能没有外关键字中不能没有外关键字DNODNO。否则两个。否则两个关系之间失去联系。关系之间失去联系。悲纶楞哮睁埋夸鞠代拦愿远鹏措嗜凝餐疯赌嘘寿汕塌俗迂狼巫抨苟灿渠盒第2章数据模型第2章数据模型