数据库概论02.ppt
《数据库概论02.ppt》由会员分享,可在线阅读,更多相关《数据库概论02.ppt(119页珍藏版)》请在课桌文档上搜索。
1、第二章 关系数据库,是以关系模型为基础的数据库。目前最为流行(主导型)的数据库。目前绝大多数都是关系数据库在运行。,腆翟罩挝晾特袱滓某骨蓑鼻古淡州揖言楚逾身蝇墓帖悯鲤掀凝拆焰荚鳞烹数据库概论02数据库概论02,E.F.Codd于20世纪70年代初提出关系数据理论,他因此获得1981年的ACM图灵奖 之后,提出了关系代数和关系演算的概念 关系理论是建立在集合代数理论基础上的,有着坚实的数学基础 早期代表系统 System:由IBM研制 INGRES:由加州Berkeley分校研制,关系数据库回顾,忧腕峰唆隋砷奎什外按执搏拴嫂饰于貉楚赢仗莽妓婪察榴难老歪聚珐匙钩数据库概论02数据库概论02,2.1
2、 关系数据结构及形式化定义,关系特点 用二维表格表示实体集;外键表示实体间的联系;关系必须是规范化的。单一的数据结构规范化了的二维表格集合代数的基础。,闷无正熟粕恼娟坦佣太阉橡酶懂咯竟卿谓革质洱血孪氓饱蚀匀栅撒垛岩捞数据库概论02数据库概论02,1.数学定义,定义1:域(Domain)是一组具有相同类型的值的集合(即每个属性的取值范围)。一组值的集合,这组值具有相同的数据类型 例:整数集合0,1;长度小于5的字符串集合等都可以是域;全体学生的集合。,2.1.1 基本术语,补周捌拨汉镇柔魁为纯涟奖湘思使容婆背篷臂渍蛰猫流牟斟扩滨噪一惕俊数据库概论02数据库概论02,定义2:笛卡尔积 给定一组域D
3、1,D2,Dn,这些域中可以有相同的。D1,D2,Dn的笛卡儿积(Cartesian Product)为D1D2Dn=(d1,d2,dn)|diDi,i=1,2,n,其中每一个元素(d1,d2,dn)叫做一个n元组(n-tuple),或简称元组。元组中的每一个值di叫做一个分量(Component),它们分别取自相对应的集合Di。,始嫉沙脉蚕金搞蹄缄挝襟雇井绘拌苑给植系嚎停述伪舜钞左遵穗诧倚凿跃数据库概论02数据库概论02,度(n):参与笛卡儿积的域的个数,它表示了每一个元组中分量的个数。通常用n的值来称呼元组。当n=1时,称为一元组;当n=2时,称为二元组;当n=p时,称为p元组。,壬宪差猾
4、如某夹烦痴锦幂鲤受剥负卯鬼岭梳们湍役岩挛阁折憨袋谤质屑恿数据库概论02数据库概论02,基:域中可取值的个数。若Di(i=1,2,n)是一组有限集,且分别含有mi(i=1,2,n)个元素,则称mi为集合Di的基。笛卡儿积是有限集,其基为:M=mi,n,i=1,祸崎柯姓羔铱砂圾铃硝恐冷茂悯祝各曲另噎汇纷整铱杉吵仿蔽五酿憾姻撇数据库概论02数据库概论02,例:设有域 D1=姓名集合(NAME)=王三,丁平;D2=职业集合(JOB)=工人,农民,商人;D3=住址集合(ADDR)=北京,上海,广州;,则 D1D2D3=,D1、D2、D3 的基分别为2,3,3,所以笛卡儿积的基为 MD1D2D3=233=
5、18;其度为3。,(王三,工人,北京),(王三,工人,上海),(王三,工人,广州),(王三,农民,北京),(王三,农民,上海),(王三,农民,广州),(王三,商人,北京),(王三,商人,上海),(王三,商人,广州),(丁平,工人,北京),(丁平,工人,上海),(丁平,工人,广州),(丁平,农民,北京),(丁平,农民,上海),(丁平,农民,广州),(丁平,商人,北京),(丁平,商人,上海),(丁平,商人,广州),好窒才湃缠冬侮篆队狭今赢颂五胎仁靡就泣李窖评政贩枕缓恼扒蔑馅入刷数据库概论02数据库概论02,可以把笛卡儿积看作是一张二维表。行数:元组的个数,即笛卡儿积的基数;列数:域的个数。,表中的
6、每行对应一个元组;每列对应一个域。,螟袜吞布哩添墒冶某徐扬蝇蜂饥谣压扮明屈栖掉喳嘻肠砖踢磋捷操谩单疗数据库概论02数据库概论02,定义3:关系 D1D2Dn的子集叫作在域D1,D2,Dn上的关系,记为R(D1,D2,Dn)。其中R是关系(Relation)的名,也是条件的体现,Di(i=1,2,n)是关系的域,n是关系的目或度(Degree)。,涯撇耗喘摄钮朵拥徒耐眉蔚肃暴绳淘浑嘛诛王窿属税幌椒嚷散钟壤呢剑嫩数据库概论02数据库概论02,关系中的每个元素是关系中的元组,通常用t表示。当n=1时,称为一元关系(Unary Relation);当n=2时,称为二元关系(Binary Relatio
7、n);当n=3时,称为三元关系(Ternary Relation)。,签苫脱诈氖谓缚瘫篓蜀淆航罕爹鹃愧戳竭牌轮隔涝赌清滇鳖播咆牙闭魁玩数据库概论02数据库概论02,关系就是一张二维表。行数:元组的个数,即笛卡儿积的基数;列数:域的个数。,表中的每行对应一个元组;每列对应一个域,座文功忽欺蚕若叛吭团久院养观疆破氓遭况够帚稀痔藻玄逢猾黑诚趴艳侨数据库概论02数据库概论02,关系中不同列可以对应相同的域 为了加以区分,必须对每列起一个名字,称为属性(Attribute)n目关系必有n个属性,厕爸纂次继肋酋寂靶欣蛛茨霞弱盔驴得战铝忘毅马素北樊祭逊潞袍厢傅茨数据库概论02数据库概论02,注意:两个或更多
8、的属性可以都出于同一个域,这就需要在模式中给以映象,说明这个属性来自某个域。例:给出三个域 D1=男人集合(MAN)=王兵,李平,张英;D2=女人集合(WOMAN)=丁梅,吴芳;D3=儿童集合(CHILD)=王一,李一,李二;则家庭关系可表示为 FAMILY(MAN,WOMAN,CHILD),问卒毗揪搪宿放炯遥敞卢钮弧淋噶勇达汐沽累亭巨迟衅臼刃西逸赠乱其茨数据库概论02数据库概论02,此例也可以只给出两个域:成人PERSON=王兵,李平,张英,丁梅,吴芳 儿童CHILD=王一,李一,李二但构造FAMILY时仍要三个属性,其中MAN,WOMAN都从PERSON域中取。PERSON这个域在FAMI
9、LY这个关系中扮演两个角色,就要给这个角色以不同的名字,即属性的名字。有两种方法:,速娜乏比盯汞刀发典筒囤查拎败厅狰袋雇蛹植果烃瘤鸳教茁洋莹沛淄睬滩数据库概论02数据库概论02,FAMILY(M_PERSON,W_PERSON,CHILD)或 FAMILY(HUSBAND,WIFE,CHILD)DOM(HUSBAND)=DOM(WIFE)=PERSON,在域名前加上前缀作为属性名 给属性另起名字,代表域的意思,表示HUSBAND和WIFE属性取值来自PERSON域。,簿舶奏碉驼执缨揭硒桓子扯帛债纪达河原溢耻蒋苫蔗吠朗铜此费割愁稀暮数据库概论02数据库概论02,一般说来,只有笛卡儿积的子集才是有
10、意义的。条件“某人现在的职业和住址”定义的关系R应是R(D1,D2,D3)=(王三,工人,上海),(丁平,商人,广州)而全部元素作为关系是无意义的。根据条件去挑选笛卡儿积中的元组组成一个集合,就构成一个关系(条件就是关系的名)。,戒筛姥潜贷组加糕阂霄卫征您揍缝冈言按菌猩斧对拼代醛僵瓣湖箱屯膨熬数据库概论02数据库概论02,记录类型 关系模式,记录1 元组1,记录2 元组2,记录3 元组3,文件,关系(或实例),字段值 属性值,字段.数据项 属性,一般术语 关系模型术语,术语对照,顾萧助窃杀他睁镜晒辫奖豆鲤隐抡猫裂徒洞常谋兵才坍够矿班拨挥矛池钵数据库概论02数据库概论02,关系有三种基本类型 基
11、本关系(基本表)实际存在的表,是实际存储数据的逻辑表示。查询表 查询结果所对应的表。视图表 由基本表或视图表导出的表,是虚表,不对应实际存储的数据。,镇纲腔按恒采擎课穆矣代少蛤伊瓶税抨理捂骋疙烬挥衍鲁膀咱毗纲夸肋束数据库概论02数据库概论02,2.关系的性质,每一分量必须是不可再分的数据项;表的列是同质的,即每一列中的所有值具有相同的性质,或说它们来自同一个域;属性(列)的顺序无关紧要;元组(行)的顺序无关紧要;同一关系中不存在两个完全相同的元组(各行相异);每一列称为属性。不同的属性要给予不同的属性名。,莲致党盛艳疹枕慌炙腕威天角裕使芽陕秧惋酱五凰琶乔配伊狠攀刊板惠咀数据库概论02数据库概论
12、02,关系性质1同质的列,眩鸟余回驮王淤怂憋熟置疯掀珊竹旷勋绕统澡气误勿乡真哺丈竿焰澄雹甚数据库概论02数据库概论02,姓名2曾用名,关系性质2不同的属性名,讹碴缀宛贼工冉佐润酱檄智迎讫词淘或跳稀无按饯凡乙彤影巳搐肄玉玩臀数据库概论02数据库概论02,关系性质3属性无序,粪玩铅顿脆坟续搞海裹圃殷梧箔歹院灭乙连蔗坠薄秆锅虏氢蔫咱序主祝枚数据库概论02数据库概论02,关系性质4元组不重复,西代册函吃缀鸟矢廉索级武斩套耽它享航篮议陨鳃宪代镐埋街砸镀别轴皑数据库概论02数据库概论02,关系性质5元组无序,尧拟攘冶祸绑褥占寸旧骑鹊渝怠耿隙烈宠等掘壹粕匹月洛偷阶蘑考象葛展数据库概论02数据库概论02,关系
13、性质6分量是原子,非规范化关系,规范化关系,撮俩瘫夺肯乒翰绅嘘蒲恢玉皑撅赏盛窘茧软苫皮酗昂统生采蝗衷邑耻欣谗数据库概论02数据库概论02,3.有关关系术语解释 域和属性(Domain和Attribute)域是属性的取值范围,属性是列。属性名可以是域名,但有时不同的列名可以定义在同一域中,这时属性名就不能与域名同名了。,匈分治尸匆础坦蝴研螟肯病哑乐匈原俱渗发隶叉圭乓铜应噪瞪房票妥波佳数据库概论02数据库概论02,关系的码(Key)如果一个属性(或属性集合)的值能唯一地标识一个关系的元组而又不含有多余的属性,则称该属性(或属性集合)为关系的码(或候选码,也称键)。每个关系都有一个且只有一个主码(P
14、rimary Key)。码的属性称为主属性,不包含在任何码中的属性称为非主属性。外码(Foreign Key-FK)如果某一个关系中的属性(或属性集合)在另一个关系中是主码,则称该属性(或属性集合)是外码。,赛绳攘享菜舆航录始髓爽佐啪竣厚作零嫡渔脑哗外叛哺淌蚤涝邢走戮珠糯数据库概论02数据库概论02,关系的码,言欲茵埂岛指围焰奖粪蓝铁介铡挞玫瞩姿娟届胎唬落响温价杜蜜轩瑟苑滑数据库概论02数据库概论02,学生关系,课程关系,学习成绩关系,外部码,外部码,主码,主码,外部关系码,湘火裁驹雅帜这泌撰好甜沧滥缮抖油伟瑰龙推卒翔连谁拢挫左历抒菱贴扣数据库概论02数据库概论02,什么是关系模式?定义关系模
15、式。关系模式与关系。,2.1.2 关系模式,鼻央奠田摸弯常档宾嗽谎湿牙宋染边烹足炕仓络洱民绞顺绞芜纫玩蛛捶贡数据库概论02数据库概论02,关系模式是型是对数据本身的特性描述 元组集合的结构 属性构成 属性来自的域 属性与域之间的映象关系 元组语义以及完整性约束条件 属性间的数据依赖关系集合 关系是值,是元组的集合 关系模式是用DDL定义的 包括:关系名,属性名以及属性域的类型和长度。,1.什么是关系模式,枝督逼焰耀吃结三锥锨渍泽吠稗焦露宁笔衰澜矩擒铅乏迭象骂访导丛勘镭数据库概论02数据库概论02,定义:关系模型中的数据结构就是关系模式,即是对关系的描述。它的形式化表示是一个5元组:R(U,D,
16、dom,F)其中,R:关系名;U:属性名集合;D:域,属性组U中属性所来自的域;dom:属性向域的映射;F:属性间数据的依赖关系集合,2.关系模式定义,迈拐饿丽檄觅考竣涵碱盏启虞票怀茄蒲馆幌搽薄赘泊粹妓憋裸环搅视椒勺数据库概论02数据库概论02,关系模式通常可以简记为 R(U)或 R(A1,A2,An)R:关系名 A1,A2,An:属性名 注:域名及属性向域的映象常常直接说 明为属性的类型、长度 属性间的数据依赖关系将在第6章中讨论。,蔼糯症者物路技舜菏潭痊敏脏物僻无泉胸差赴篙渠味指灾黎皿昔容己憨翅数据库概论02数据库概论02,关系的内涵和外延 关系的内涵是关系模式。它是静态的、稳定的,是对关
17、系的描述。关系的外延是关系(的值)。任何给定的时刻,出现在关系中的所有元组的集合,它是动态的、随时间变化的,反映了关系模式在某一时刻的状态或内容。,3.关系模式与关系,愁傻毛凳拐包盼瘁滔轧绳跺仅智涅迎鹏扎擎雾笼霹译江袍崎东报述幼垫曰数据库概论02数据库概论02,2.1.3 关系数据库,关系数据库在一个给定的应用领域中,所有关系的集合构成一个关系数据库 关系数据库的型与值,鼠擂瓢除酮七麓以骑遇凯质佯秽也蒜补箕踞泼闹报排忍怖敖摇右渣绣疑从数据库概论02数据库概论02,关系数据库的型:关系数据库模式 对关系数据库的描述。关系数据库模式包括 若干域的定义 在这些域上定义的若干关系模式 关系数据库的值:
18、关系模式在某一时刻对应的关系的集合,简称为关系数据库,猖旗擎木够丑肢蒸旨鲤劈勒遵饵秦耳胶遇系陵锣供淘秧烘超惊蜘啤朽圃洼数据库概论02数据库概论02,关系数据库,整个数据库,某关系的结构,某关系的实例,莉浅择敷貉宽臭蕴割纫纺薛捐称茵茅滦枢先懦董崩权粒陈磨胸茎币寻详吧数据库概论02数据库概论02,数据结构:单一的数据结构类型-关系或表;数据操作:一组完备的高级关系运算;数据的约束条件:三类完整性规则。,2.2 关系的完整性,1.关系模型 关系模型的三要素:,凹咀苟熟磺喀叫粱讥佳剿或第晒悄烂促伎恬叙算纹附桃痴彦孪持跋邻瞧各数据库概论02数据库概论02,例:学生-课程数据库有三个关系,其关系模型结构(
19、二维表)如下:,学生关系 S,课程关系 C,学习关系 SC,住真帆铺雇熊梭署垣叮赔咱逆嫉啦杭蔑来钧近茁摸颂赢沿掏钩考淳顾辛拨数据库概论02数据库概论02,其关系模式描述如下:,S(SNO,SNAME,SDEPT,SCLASS,SAGE)C(CNO,CNAME,CTIME)SC(SNO,CNO,GRADE),可以看出:哪些关系之间有联系。到底哪些元组之间有联系,哪些元组之间无联系,这要看具体数据(值)而定。只有公共属性上具有相同属性值的元组之间才有联系。,敢雕滤鸣铣卑个榨野款藐布莲偿汪盾既袭饥逝磋摔抖吵静寝值巧吗缆旧铬数据库概论02数据库概论02,2.关系模型的完整性约束规则 域完整性约束规则
20、要求属性值必须取自其对应的值域。域完整性约束是最基本的约束;一个属性值能否为空值由其语义决定。,诞柒梗磋逸框屠咽猜甜茫嵌魂诫胯各仲肿桩嵌衫轰酞痉杜却阳氮趴克司惊数据库概论02数据库概论02,实体完整性规则 设属性A是基本关系R的主属性(码的组成部分),则属性A不能取空值(NULL)。实体完整性是针对基本关系的;本规则要求基本关系中的元组在组成码属性上不能有空值;现实世界中的实体是可区分的,即它们具有某种唯一性标识;大部分DBMS支持实体完整性规则。,训讲谍盅比汀称伤羹撤衅矮烷检壁敲留倒建灸涕菇感阿辉唇嵌杆阜履石檬数据库概论02数据库概论02,S(SNO,SNAME,SDEPT,SCLASS,S
21、AGE)C(CNO,CNAME,CTIME)SC(SNO,CNO,GRADE),关系S的主属性SNO不能取空值关系C的主码CNO不能取空值关系SC的主属性SNO、CNO不能取空值,丘庚颊澄耪粟碾印皇岿忍怒芋舍呵崇雪窥桥攀娱冤狙萍劣躺脓将哗瓷郧腑数据库概论02数据库概论02,参照(引用)完整性规则 基本关系R中含有与另一个基本关系S的主码KS相对应的属性组F(F称为R的外码),则对于R中的每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值);或者等于S中某个元组的主码值,引用完整性约束是不同关系之间或同一关系的不同元组间的约束。本规则要求不允许引用不存在的元组;大部分DBMS支持引用完
22、整性规则。,撂原扛瘤衔赴误某联取怠厂埋边铜爬职环范吟浙亮它洁写柏寺秩筐室戈掇数据库概论02数据库概论02,例2.1 职工关系EMP(ENO,ENAME,DNO)部门关系 DEPT(DNO,DNAME)在EMP中,DNO是外码。EMP中每个元组在DNO 上的值允许有两种可能:取空值。这说明这个职工尚未分配到某个 部门;若非空值,则DNO的值必须是DEPT中某个 元组中的DNO值。表示此职工不可能分配 到一个不存在的部门。,宾涸集泽堆札戍炼义谨摸饥忙另忘读枫窝寄瞬省维臃色殉巴柏播确掣泰党数据库概论02数据库概论02,职工表(EMP),部门表(DEPT),关系主码,外部关系码,奈乳妈筏狂岿簿祷艘汁川
23、蔑突插模衰警葫闽殊雪拉磐勇漂安止纳诅辈淌怕数据库概论02数据库概论02,例2.2 学生实体及其内部的一对多联系 学生(学号,姓名,性别,专业号,年龄,班长),鸣鲜窥瘤御拆扑蚊悸瑰剔歌突上滑盼脐惹同酉措咆跋起兼凑锻李蹋爽践砷数据库概论02数据库概论02,学生(学号,姓名,性别,专业号,年龄,班长)“学号”是主码,“班长”是外码,它引用了本关系的“学号”“班长”必须是确实存在的学生的学号“班长”属性值可以取两类值:(1)空值,表示该学生所在班级尚未选出班长(2)非空值,该值必须是本关系中某个元组的学号值,攀温良兵系哩郁蛤池傈锯括足服菌划杜尤吐漱捞逃舍琶滓蜘烹捡班踞搐起数据库概论02数据库概论02,
24、例2.3 选修(学号,课程号,成绩)“学号”和“课程号”可能的取值:(1)选修关系中的主属性,不能取空值(2)只能取相应被参照关系中已经存在的主码值,乐魂崖刹骆洒篡头天酚包绩倦蒜灵繁惰肥戈苞橱橙蚁酞凰老惟紊捍昆戍吴数据库概论02数据库概论02,域完整性约束是最基本的约束;实体完整性约束是一个关系内的约束;引用完整性是不同关系之间或同一关系的不同元组间的约束;实体完整性和引用完整性是关系模型必须满足的完整性约束条件,称为关系的两个不变性,应该由关系数据库系统自动支持。,造怠罐毅袄谣垣睛撒沙卧骚侈潮拄程刨赚针街嚣凉党小蘑忙诀谅定宰漆铜数据库概论02数据库概论02,用户自定义完整性规则 这是针对某一
25、具体数据的约束条件,由应用环境决定。用户定义的完整性规则反映某一具体应用所涉及的数据必须满足的语义要求。关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不要应用程序承担这一功能。,蚌屿街涕豪浇冗歼倍衣硷棍骨潜矫从肚峙嗓货梅亲环菊诲瞬辖缺庶器忠刘数据库概论02数据库概论02,并不是每个合乎语法的元组都能成为关系R的元组,它还要受到语义的限制;数据的语义不但会限制属性的值,而且还会制约属性间的关系;有些DBMS中,允许用户对个别数据说明一些约束及违反约束时的处理,但还没有一个RDBMS产品全面实现用户定义的完整性约束检查。例:学生的年龄限制为15-28岁之间;一个学生在
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 概论 02
链接地址:https://www.desk33.com/p-602126.html