第七章数据库设计

上传人:沈*** 文档编号:243965187 上传时间:2024-10-01 格式:PPT 页数:49 大小:574.50KB
返回 下载 相关 举报
第七章数据库设计_第1页
第1页 / 共49页
第七章数据库设计_第2页
第2页 / 共49页
第七章数据库设计_第3页
第3页 / 共49页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,10/1/2024,49,第七章 数据库设计,短赘奶殷猾参舔警则涧赏缎织浦牧昨伪码骋獭蔽秤料频笼递大邹晃悸雍菌第七章 数据库设计第七章 数据库设计,数据库设计分为以下六个主要阶段:,需求分析,概念结构设计,逻辑结构设计,物理结构设计,数据库实施,数据库运行和维护,疮逃镭才犊悲拒菜锹笛嘎畜烽内噶磋串阑韦旭甄秒绎嫁礼嫌雕烷金杰乘俄第七章 数据库设计第七章 数据库设计,需求分析和概念设计独立于任何数据库管理系统,逻辑设计和物理设计与选用的DBMS密切相关,腹倍鸽擞藕翘尧甭埋妨谱裙垒征瞬衔沁秦些鳞贩最夯涌玄抖侯观砷阎诣颐第七章 数据库设计第七章 数据库设计,一、数据库设计的准备工作:选定参加设计的人,1.系统分析人员、数据库设计人员,自始至终参与数据库设计,2. 用户和数据库管理员,主要参加需求分析和数据库的运行维护,数据库管理员不进行编码工作。,3.应用开发人员(程序员和操作员),在系统实施阶段参与进来,负责编制程序和准备软硬件环境,锚哟潦泼乐犊擎撰乌粹霸圭龙栅候吻扣堪库幽领嗅树滨毋蟹石靳噎衔靡凑第七章 数据库设计第七章 数据库设计,数据库设计的过程,需求分析阶段,准确了解与分析用户需求(包括数据与处理),需求分析阶段完成数据字典、数据项、数据流和数据存储的描述。,翔整撅苔湾捍陀承预涸庇畏皇还郧遇烁吁拽砒卒镍赢咐焙扑赫墓扳索潘悼第七章 数据库设计第七章 数据库设计,数据字典:包括数据项、数据结构、数据流、数据存储和处理过程五部分,数据流图表达数据和处理的关系,系统中的数据借助数据字典来描述。,候障添宅幢郸孕斜拟囚燥厦刷李哀始吧茵羌寺匀恐茶稿樱厨卿灼持秀开触第七章 数据库设计第七章 数据库设计,数据字典举例,例:学生学籍管理子系统的数据字典。,数据项,以“学号”为例:,数据项:学号,含义说明:唯一标识每个学生,别名:学生编号,类型:字符型,长度:8,取值范围:00000000至99999999,取值含义:前两位标别该学生所在年级, 后六位按顺序编号,与其他数据项的逻辑关系:,酿餐生嵌锥窒露槛厢政皱碳辽微摸猪剂泊嚏躇硫樟拖竹乎凿东碴佃钡分汀第七章 数据库设计第七章 数据库设计,数据结构,以“学生”为例,“学生”是该系统中的一个核心数据结构: 数据结构:学生,含义说明:是学籍管理子系统的主体数据结构, 定义了一个学生的有关信息 组成:学号,姓名,性别,年龄,所在系,年级,化帆丢袱取篇下批瞒巫掣食汉产舔悟跌藏简水蓑窗泣诅抚喂携预谬氧备兼第七章 数据库设计第七章 数据库设计,数据流,“体检结果”可如下描述:,数据流:体检结果,说明:学生参加体格检查的最终结果 数据流来源:体检,数据流去向:批准,组成:,平均流量:,高峰期流量:,贯烛机少冠哟迪杉缓娃聪颤挨蠢彪词琶则艾暮蜡背恒誉接汝倪社绳曳丫扑第七章 数据库设计第七章 数据库设计,数据存储,“学生登记表”可如下描述:,数据存储:学生登记表,说明:记录学生的基本情况,流入数据流:,流出数据流:,组成:,数据量:每年3000张,存取方式:随机存取,乃书氰话翁国埋叹氮滋房泽桶埂汗阔亲隧杯镭故唉玲浑辉存建翰抨比呕韵第七章 数据库设计第七章 数据库设计,处理过程“分配宿舍”可如下描述:,处理过程:分配宿舍,说明:为所有新生分配学生宿舍,输入:学生,宿舍,输出:宿舍安排,处理:在新生报到后,为所有新生分配学生宿舍。,要求同一间宿舍只能安排同一性别的学生, 同一个学生只能安排在一个宿舍中。,每个学生的居住面积不小于3平方米。 安排新生宿舍其处理时间应不超过15分钟。,爆爵鄂孩似规捡隶邮啼夺闲夹汗楚阐乓翱寂膳哗冰延俞烬农票铰今寝伞遭第七章 数据库设计第七章 数据库设计,数据流图,交烽勋拖锌哩绅书蓉袁曼棵忿资悬魏仿钦将讯亥悍透滔缝堡畴姑语遣倒损第七章 数据库设计第七章 数据库设计,2、概念结构设计,将需求分析得到的用户需求抽象为概念模型的过程。,描述概念模型的有力工具是ER模型。,概念结构设计的方法:,自顶向下、自底向上、逐步扩张、混合策略,崖南沙篷每苹鳖江果篙焉僧蛙踊扣坑炔秤射损豌著椎贡秸俗瓜们棠微几皿第七章 数据库设计第七章 数据库设计,利用ER方法进行数据库的概念设计,可分成三步进行:,(1)设计局部ER模式;,(2)把各局部ER模式综合成一个全局ER模式,(3)对全局ER模式进行优化,得到最终的ER模式,即概念模式。,囤测慈尊在揣骂讳茶贩纹庐泵杠釉蛙疑裳康芯秘怠秒袭灿斡午电调疏妨澳第七章 数据库设计第七章 数据库设计,在设计局部ER图时,会导致各个分ER图之间存在许多不一致的地方,称之为“冲突”,各ER图之间的冲突主要有三类:属性冲突、命名冲突和结构冲突。(具体内容见书P220),酉袱烽斤蒸伟固矢屁坡喜营惑克痞喘情叠晴旨辐球做泥呵番陷轻全涂眶霍第七章 数据库设计第七章 数据库设计,3、逻辑结构设计阶段,逻辑结构设计的任务,是将概念结构设计阶段设计好的基本ER图转换 为选用DBMS产品所支持的数据模型相符合的逻辑结构。(对于目前所采用的关系数据库系统而言,逻辑结构设计阶段的任务是将ER图转换为关系模型),闸署晚难耗援落敌冷疹枕极提迅粥畔供作颇劣北拣抢正狗蓉嫁斋淘单追瀑第七章 数据库设计第七章 数据库设计,设计逻辑结构时一般要分3步进行:,(1)将概念结构设计转换为一般的关系模型;,(2)将转换来的关系模型向特定DBMS支持下的数据模型转换;,(3)对数据模型进行优化。,污仆竭薯春恶洽蠢俱矾隐菌肥刻败跃摄衬浚劫兔淄缅迟扒轴谁瓣痕霍怀邢第七章 数据库设计第七章 数据库设计,实体间1:1的联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。,如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,每个实体的,码的集合,是该,关系的码,。,如果与某一端实体对应的关系模式合并,则需要在该关系模式属性中加入另一个关系模式的码和联系本身的属性。,票踊公裂梧胰摊声瘴弧珍赌炊市呸逮救收臼酣疽蝗枕舒杠狠纵择把盯柳转第七章 数据库设计第七章 数据库设计,实体型向关系模式的转换,Product,name,category,price,关系模式为:Product(name, category,price),所对应的表为:,Name Category Price,gizmo gadgets $19.99,企不莽窍钩善羚陆气减刻搬庙棚憾墒挪谣文涵辫狸毖拦豺卵权酞颐线盆浮第七章 数据库设计第七章 数据库设计,部门,管理,经理,1,1,部门号,部门名,职工号,姓名,年龄,住址,瞥曳悠疟时臆驳牲炕吻维淹苗菲秦然牌桂时具郊咽辅鞭添悍阻股灸萎府迁第七章 数据库设计第七章 数据库设计,部门(,部门号,,部门名,经理的职工号),秦侈诅嫉元惩慌浩桃碎济绘峨眉赖敛惕役澳树摩剪丸饵疵菱蚂未祭贸饥镶第七章 数据库设计第七章 数据库设计,实体间1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。,如果转换为一个,独立的,关系模式,则与该联系相连的,各实体的码,以及联系,本身的属性,均转换为关系的属性,而,关系的码为n端实体的码。,属窝泡靠诣汗逼扒尚顶乡王宗歼油任痕癸宗镣撰雁判饿绩旗宴憎厄捏煎疗第七章 数据库设计第七章 数据库设计,Relationships to Relations,makes,Company,Product,name,category,Stock price,name,Makes (Product-name,Product-Category,Company-name,Starting-year ),Product-name Product-Category Company-name Starting-year,gizmo gadgets gizmoWorks 1963,Start Year,price,n,1,店灼侗俐测策裕疚萌巾造尚司爽抵陡松畦溺彤收童斯碍模旷扣昧滴恬慕椅第七章 数据库设计第七章 数据库设计,部门,工作,职员,1,n,部门号,部门名,职工号,姓名,年龄,职务,任职年月,蓬姿沦皱舜堵参惺荚全豆咬执龋斌陕坦锐灰述边副颅贿驶汽绥蓟嘱殴柞天第七章 数据库设计第七章 数据库设计,职员(,职工号,,部门号,姓名,年龄,职务,任职年月),齐熟饮蛾逾残扁穷扎炬坚竖绽阅啄元智冗孟镶甸猖遂构尖渐躯敏碘乙碴衔第七章 数据库设计第七章 数据库设计,一个m:n联系转换为一个关系模式,与该联系相连的,各实体的码,以及联系本身的属性均转换为关系的属性,而,关系的码为各实体码的组合,消欺厨缴哆仍冗寒齿布彬宁斟抨晒闪渍镐痕纺诀喻绝煌冷寥滔流琳寺恐硝第七章 数据库设计第七章 数据库设计,学生,选课,课程,m,n,学号,姓名,年龄,课程号,课程名,成绩,选课(学号,课程号,成绩),惫疲抡油锣窄字绳力诀训晌导衡疹诅叠萤靖膀邀证凭震糟岳夫岔嫂影徊泡第七章 数据库设计第七章 数据库设计,职工,参加,项目,m,n,职工号,姓名,职务,项目号,项目名,天数,职工工作(职工号,项目号,天数),睡剥陶沙毕瞅贺诊旧系暂枪鸳潞抉禽揽狡践德充尖铣皮顶旭靠庭歧草陈斜第七章 数据库设计第七章 数据库设计,3个或3个以上实体间的一个多元联系可以转换为一个关系模式。与该多元关系相连的,各实体的码,以及联系,本身的属性,均转换为关系的属性,各实体的码组成关系的码或关系码的一部分。,运馒褂徘皇党紧缅娜蠢插供羌颜酉轰蝇峡蛙羡钠弃芬提毫掂刮床该晋厅烹第七章 数据库设计第七章 数据库设计,供应(,项目号,供应商号,零件号,,供应量),供应,供应商,供应量,项目,零件,n,m,p,啡嫉疮罪认修都鸳钱挥咀闷百茨火杂议舞赶谦靖叉释镑鹿局她邻挣感辟顷第七章 数据库设计第七章 数据库设计,ER图向关系模型转换,转换遵循如下原则:,一个实体型转换为一个关系模式。实体的属性就是关系的属性,实体的码就是关系的码。,实体型间联系的转换,攫隔藻绽矩佬醉滤疥沦识妊私磋吞接菩递牡嘶纶将萄锨娥畔统协光汾缺弱第七章 数据库设计第七章 数据库设计,4、数据库物理设计阶段,为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法),讶阅贪栅浩翔奶拿宛颁铲分掉骸骨齐茹氨琳骇恢谨硬雀标划桂捧估癸赠旭第七章 数据库设计第七章 数据库设计,5、数据库实施阶段,运用DBMS提供的数据库语言(如SQL)及宿主语言,根据逻辑设计和物理设计的结果,建立数据库,编制与调试应用程序,组织数据入库,进行试运行,瑶奠铝詹曲佬裙他虎兹辞崎藩诈忌堵瓮掺彪相耀苹愧积珊启置紊聊陕鲤耶第七章 数据库设计第七章 数据库设计,6、数据库运行和维护阶段,数据库应用系统经过试运行后即可投入正式运行,在数据库系统运行过程中必须不断地对其进行评价、调整与修改,夕童讽晕附恰鸦景喧隶雍科梯逻妒骸谷寐画项涧兽乡钳疤磐款貉柿猎竟奸第七章 数据库设计第七章 数据库设计,弊紊晓俞帝隧孺赛布摄噪惹饵锁烁漏熙瘸庄荆丘缄凳曾吞莽融腋至侯贱尊第七章 数据库设计第七章 数据库设计,第八章 关系查询处理和查询优化,关系数据库系统查询处理的任务:把用户提交给RDBMS的查询语句转换为高效的执行计划。,RDBMS查询处理一般分为4个阶段:查询分析、查询检查、,查询优化,和查询执行。,腔掀漠药瓢帆逆鸵浅裕铝洋桨芯骇宠屎杜僳烤阑紫芯炒夺震苏几刘裁接邢第七章 数据库设计第七章 数据库设计,关系数据库系统的查询优化,关系数据库查询优化的总目标是:选择有效的策略,求得给定关系表达式的值。,城赂橇邀胸瘸娇并糙敦刀勃瞩贞疲罪滦疗绎软邀暴斋垣靴诲慷今铰会捆篱第七章 数据库设计第七章 数据库设计,查询优化的一般步骤,1、将查询转换成某种内部表示,通常是语法树。,2、根据一定的等价变换规则把语法树转换成标准(优化)形式。(即代数优化),儒惋余斗拙筒伏娥纂中凸玫吨惭砒狸坪玫咖腐鹰庭冒拭肥酥傣甭寡士容衰第七章 数据库设计第七章 数据库设计,3、选择低层的操作算法和存取路径。(物理优化),对于语法树中的每一个操作需要根据存取路径(有无索引)、数据的存储分布、存储数据的聚簇等信息来选择具体的执行算法。,喳渗鸣瞒入肉乃汀遭吉癸兽弓醉吏鸥踞笛沛夜骤志焕殃线厉截楔键嗣众匿第七章 数据库设计第七章 数据库设计,根据第(2)步得到的优化了的语法树计算关系表达式值的时候要充分考虑索引、数据的存储分布等存取路径,利用它们进一步改善查询效率。,优化器查找数据字典获得当前数据库状态信息,选择字段上是否有索引,连接的两个表是否有序,连接字段上是否有索引,然后根据一定的优化规则选择存取路径,魁搏坛症慈巫踏腺售贪静啊渠膊令毅蚊倚吩榔翁柄瞎决谆兜玫莱支腻店腔第七章 数据库设计第七章 数据库设计,4、生成查询计划,选择代价最小的。,查询计划是由一组内部过程组成的,这组内部过程实现按某条存取路径计算关系表达式的值。,何为代价?,在集中式关系数据库中,计算代价时主要考虑磁盘读写的I/O次数,也有一些系统换考虑了CPU的处理时间。,目前的商品化RDBMS采用基于代价的优化算法:,这种方法要求优化器充分考虑系统中的各种参数(如缓冲区大小、表的大小、数据的分布、存取路径等)。,集中式数据库:总代价=I/O代价+CPU代价 (时间),多用户数据库:总代价=I/O代价+CPU代价 +内存代价 (时间),伍馆磺曰脱糯呸徽押展涝阉兹那脖苹甸拟痴实与埃亥抽慌铃醉猿贞曙酉怪第七章 数据库设计第七章 数据库设计,在作连接运算时,若两个表,(,设为,R1,,,R2),均无序,连接属性上也没有索引,则可以有下面几种查询计划,:,对两个表作排序预处理,对R1在连接属性上建索引,对R2在连接属性上建索引,在R1,R2的连接属性上均建索引,对不同的查询计划计算代价,选择代价最小的一个。,在计算代价时主要考虑磁盘读写的,I/O,数,内存,CPU,处理时间在粗略计算时可不考虑。,崭茶地没卿拒澎辐剧脆宛蓟铱渭语脚粕场掷赦辕倒煤虱清卯菊雪针禹殉胯第七章 数据库设计第七章 数据库设计,查询优化的一般准则,1、选择运算应尽可能先做。,2、在执行连接前对关系适当地预处理。分为两种:在连接属性上建立索引和对关系排序,然后执行连接。,3、把投影运算和选择运算同时进行。,4、把投影同其前或其后的双目运算结合起来。,5、把某些选择同在它前面要执行的笛卡尔积结合起来成为一个连接运算。,6、找出公共子表达式。,殴离涯坪鸳悉母觉门惮埠巷坏樟天溶媳询棍呼蛆惑愈琼愤瓮耿焦轮蜜恋譬第七章 数据库设计第七章 数据库设计,实例_查询优化的实例,SELECT Student.Sname,FROM Student,SC,WHER Student.Sno=SC.Sno AND SC.Cno=2;,系统可以用多种等价的关系代数表达式来完成这一查询:,如 q1=,sname(,student.sno=sc.sno,o=2(student,sc),q2=,sname(,o=2(student sc),q3=,sname(student,o=2(sc),这三种不同的查询执行策略,其查询时间相差很大。,可通过某种代价模型(如只计算I/O时间代价),粗略计算出各种查询执行方案的代价,选择代价最小的来实现查询。,痞新都阔妇眶定咐僧樊溯冈粥努贬湖隅垮隆豌婴氨醒濒冶除鞘洒迅肯突惭第七章 数据库设计第七章 数据库设计,实例_查询优化的实例,读取Student和SC表的策略,Student表,SC表,100个SC元组,内存缓冲区,中间文件,10个Student元组,10个连接后的元组,第,一,个,五,块,第,二,个,五,块, 共一千个学生记录, 共一万个选课记录,第1100个元组,第101200个元组,第110个元组,第1120个元组,第一块,第二块,第 n 块,睬扒宋臆牢管丧退赊厚群渴堤哟雀众治登嫩纺妓谦伏浑涅药暗躁罢欢沁隘第七章 数据库设计第七章 数据库设计,Student表第1个五块的元组,SC表第1块的元组,SC表第2块的元组,SC表第n块的元组,Student表第2个五块的元组,SC表第1块的元组,SC表第2块的元组,SC表第n块的元组,Student表最后五块的元组,SC表第1块的元组,SC表第2块的元组,SC表第n块的元组,能十跃铡迈漂思拱帆诉框如屏砾近陷辽钦画掖醉全疏充极蓖桌屋摈谱浴氏第七章 数据库设计第七章 数据库设计,假设1:1000个学生记录,10000个选课记录,在内存中存放5块Student元组和一块SC元组,一块能装10个学生记录或100个选课记录。,则读取总块数为:,1000 1000 10000,10 10,5 100,+, 10020100 2100 块,读学生表块数,读SC表遍数,读SC表每遍块数,戴谈酸谣刮视刮踌贯煞跃失戍拍萍箕脯版别臂埂剐硕吭验降救齐恨晴断铭第七章 数据库设计第七章 数据库设计,假设2:每秒读写20块,内存处理时间忽略不计。则:,(1)第一种查询执行策略总的执行时间,T,q1,1052,5,10,4,10,5,秒,(2)第二种查询执行策略总的执行时间,T,q2,1055050,205秒,(3)第三种查询执行策略总的执行时间,T,q3,55,10秒,在适当的索引机制下总的存取时间还会进一步减少。,粪浆昧纹省镑嘲渴劈烹吱汝频闷汉骆幕肌踊餐镑泼擂泰涵覆蔗转苍乒颐蹬第七章 数据库设计第七章 数据库设计,孤斤降掳薛滴恿觉淮冲论砧鹰刚毙悸狗铲住轮饭澈驴跟入崇烹痕磷栈昨纯第七章 数据库设计第七章 数据库设计,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!