《access数据库设计案例.ppt》由会员分享,可在线阅读,更多相关《access数据库设计案例.ppt(82页珍藏版)》请在三一办公上搜索。
1、数据库设计,第七章,数据库设计,7.1 数据库设计过程与设计实例7.2 需求分析7.3 概念结构设计7.4 逻辑结构设计7.5 关系模式的规范化7.6 设计实例期刊采编系统,7.1 数据库设计过程与设计实例,前面章节介绍的内容只解决了系统的实现过程,即如何建立各种对象,但并没有解释为什么创建这些对象。数据库设计是根据一个给定的应用环境,构造最优的数据模型,利用DBMS,建立数据库应用系统。如何建立一个高效适用的数据库应用系统,是数据库应用领域中的一个重要课题。数据库设计是一项软件工程,具有自身的特点,已逐步形成了数据库设计方法学。简单地讲,数据库设计包括结构设计和行为设计。结构设计是指按照应用
2、要求,确定一个合理的数据模型。数据模型是用来反映和显示事物及其关系的。结构设计的结果就是得到数据库中表的结构。行为设计是指应用程序的设计,将设计的结果物理化,实施数据库,如完成查询、修改、添加、删除、统计数据,制作报表等。行为设计要求满足数据的完整性、安全性、并发控制和数据库的恢复。,数据库设计要经历6个阶段:需求分析概念结构设计逻辑结构设计物理结构设计数据库实施数据库运行与维护,需求分析数据流程图,需求分析数据流,需求分析数据字典,概念结构设计,逻辑结构设计,“教学管理系统”的数据模型表示为:系(系号,系名,系主任,电话)教师(教师号,姓名,专业,职称,性别,年龄,系号)学生(学号,姓名,性
3、别,出生日期,专业,照片,系号)课程(课程号,课程名,学时,类别)课程评价(教师号,课程号,评价)选修(学号,课程号,分数),物理设计,进行物理结构设计是根据使用的计算机软硬件环境和数据库管理系统,确定数据库表的结构,并进行优化,为数据模型选择合理的存储结构和存取方法,决定存取路径和分配存取空间等。,建立索引的基本原则,1)如果一个属性(或一组属性)经常在查询条件或在连接操作的联接条件中出现,则考虑在这个属性(或这组属性)上建立索引(或组合索引)2)如果一个属性经常作为最大值或最小值等聚合函数的参数,则考虑在这个属性上建立索引,数据库实施,数据库实施是运用DBMS建立数据库,创建各种对象(表、
4、窗体、查询),编制与调试应用程序,录入数据,进行试运行,数据库运行与维护,数据库系统正式投入使用后,还应不断进行评价、修改与调整。这一时期的工作就是数据库的运行和维护。,数据库设计流程,7.2 需求分析,需求分析是数据库设计的起点和基础需求分析阶段的工作是详细准确地了解数据库应用系统的运行环境和用户要求开发的目的是什么用户需要从数据库中得到的数据信息是什么输出这些信息采用何种方式或格式,需求分析的方法-调查,步骤调查各部门的组成和业务活动帮助用户进一步明确系统最终要求把结果以标准化的文档表示出来,如使用数据流程图、数据字典和需求说明等方式发调查表请专业人员介绍询问跟班作业查阅资料,数据流程图的
5、基本画法,数据流程图要表述出数据来源、数据处理、数据输出以及数据存储,它主要反映了数据和处理的关系。,7.3 概念结构设计,任务将需求分析结果抽象为概念模型方法建立E-R模型(Entity-Relationship model)E-R模型的表示方法为E-R图E-R图实质表示了实体、属性和实体间的联系,7.3.1 E-R图的表示方法,实体用矩形表示,矩形框内写明实体名属性用椭圆表示,椭圆内写明属性名,并且将椭圆用线与相应的实体连接。联系用菱形表示,菱形框内写明联系名,并用线分别与有关的实体连接起来,同时在线上注明联系类型。(1:1,1:n或m:n),学生实体、课程实体的属性及其联系的E-R图表示
6、,系、教师、学生和课程间的联系,确定出实体与实体间联系,教学管理的E-R模型,填全实体属性,7.3.2 建立E-R模型中的几个问题,相对原则对于同一对象抽象的结果可能不同简单原则现实世界的事物能作为属性的尽量归为属性设计过程设计局部E-R模型集成全局E-R模型解决三种冲突命名冲突属性冲突结构冲突,简单原则举例,不考虑宿舍的进一步信息时,宿舍应作为属性,建立E-R模型举例,例7-1 一个企业应用包括人员管理、生产管理、设备管理等功能模块。其中:人员管理需要记录职工编号、职工姓名、职务(干部/工人)、年龄、性别等。一个职工工作于一个部门,一个部门有若干职工。对于部门应记录各部门的编号、部门名称、负
7、责人、电话等信息。,设计局部E-R模型人员管理的E-R图,设计局部E-R模型设备管理的E-R图,设计局部E-R模型生产管理的E-R图,将局部E-R模型集成全局E-R模型,7.4 逻辑结构设计,任务将概念设计结果转换为DBMS支持的数据模型步骤将概念结构转换为数据模型将转换来的模型向特定DBMS支持的数据模型转换(这里使用关系数据库模型)对数据模型进行优化,7.4.1 E-R模型转换为关系模型的方法,实体的转换一个实体转换为一个关系模式实体间联系的转换一对一联系一对多联系多对多联系主键的定义,实体的转换,一个实体转换为一个关系模式实体的属性就是关系模式的属性实体的键就是关系的主键例如教学管理系统
8、中共有教师、系、学生和课程四个实体,它们转换为关系模式后分别为教师(教师号,姓名,专业,职称,性别,年龄)系(系号,系名,系主任,电话)学生(学号,姓名,性别,出生日期,专业,照片)课程(课程号,课程名,学时,类别),一对一联系的转换,方法一联系转换为独立的关系模式模式的属性由联系本身的属性及两个实体的键构成主键由两个实体中的任意一个键构成方法二将联系与一端的实体的关系模式合并,即将联系的属性加入到实体的关系模式内主键不变,一对一联系的转换建立独立的关系模式,实体对应关系模式分别为:班级(班号,专业,人数)班长(学号,姓名,专长)联系管理(班号,学号),关系模式“管理”的主键也可以选择学号,一
9、对一联系的转换合并到实体关系模式,原实体对应关系模式分别为:班级(班号,专业,人数)班长(学号,姓名,专长),将联系“管理”合并到实体“班级”对应的模式后为:班级(班号,专业,人数,学号)班长(学号,姓名,专长),联系“管理”也可以合并到实体“班长”对应的模式,一对多联系的转换,方法一联系转换为独立的关系模式模式的属性由联系本身的属性及两个实体的键构成主键由n端实体的键组成方法二将联系与n端的实体的关系模式合并,即将联系的属性加入到实体的关系模式内主键不变,一对多联系的转换建立独立的关系模式,实体对应的关系模式 系(系号,系名,系主任,电话)教师(教师号,姓名,专业,职称,性别,年龄)联系对应
10、的关系模式 管理(教师号,系号),一对多联系的转换合并到实体关系模式,实体对应的关系模式 系(系号,系名,系主任,电话)教师(教师号,姓名,专业,职称,性别,年龄)合并到实体“教师”后 教师(教师号,姓名,专业,职称,性别,年龄,系号),只能合并到“多”的一端,多对多联系的转换,联系只能转换为独立模式模式的属性由联系本身的属性及两个实体的键构成主键由两端实体的键组合而成,多对多联系的转换建立独立的关系模式,课程(课程号,课程名,学时,类别)学生(学号,姓名,性别,专业,出生日期,照片)选修(学号,课程号,分数),7.4.2 E-R模型转换为关系模型举例,根据教学管理E-R模型建立教学管理系统的
11、关系模型根据例7-1的E-R模型建立企业应用系统的关系模型,系(系号,系名,系主任,电话),学生(学号,姓名,性别,出生日期,专业,照片),课程(课程号,课程名,学时,类别),教师(教师号,姓名,专业,职称,性别,年龄),选修(学号,课程号,分数),课程评价(教师号,课程号,评价),管理(教师号,系号),注册(学号,系号),系(系号,系名,系主任,电话)课程(课程号,课程名,学时,类别)教师(教师号,姓名,专业,职称,性别,年龄,系号)学生(学号,姓名,性别,出生日期,专业,照片,系号)选修(学号,课程号,分数)课程评价(教师号,课程号,评价),教学管理的关系模型,设备(设备编号,设备名称,价
12、格),零件(零件编号,零件名称,规格),人员(职工编号,姓名,性别,年龄,职务),部门(部门编号,部门名称,负责人,电话),生产(零件编号,部门编号,生产日期,生产数量),装配(设备编号,零件编号,装配日期,装配数量),包含(职工编号,部门编号),人员(职工编号,姓名,性别,年龄,职务,部门编号),管理(部门编号,设备编号),合并,合并,设备(设备编号,设备名称,价格,部门编号),企业应用的关系模型,人员(职工编号,姓名,性别,年龄,职务,部门编号)部门(部门编号,部门名称,负责人,电话)设备(设备编号,设备名称,价格,部门编号)零件(零件编号,零件名称,规格)生产(零件编号,部门编号,生产日
13、期,生产数量)装配(设备编号,零件编号,装配日期,装配数量),7.4.3 数据完整性设计,实体完整性参照完整性用户自定义完整性,7.5 关系模式的规范化,7.5.1 问题的提出7.5.2 函数依赖与键7.5.3 关系模式的范式与规范化,例如针对供应商建立了如下关系模式:供货(供应商编号,供应商名称,联系方式,商品名称,商品价格),数据冗余大数据不一致性操作异常,这个模式存在如下问题,函数依赖,函数依赖的概念函数依赖的表示方法函数依赖的类型完全依赖部分依赖传递依赖,学生关系的函数依赖关系,学生(学号,姓名,性别,出生日期,专业),该关系的函数依赖集表示为:学号姓名学号性别学号出生日期学号专业,函
14、数依赖的定义,给定一关系R,若当且仅当对应于R中属性X的每一个值,在任一时刻必有一个确定的属性Y值,则称Y是函数依赖于X,也可称为X函数决定Y,记为X-Y。,成绩(学号,姓名,课程号,课程名,分数),成绩关系的函数依赖集:学号姓名课程号课程名(学号,课程号)分数,完全函数依赖和部分函数依赖,完全依赖若称关系R中的属性Y是完全依赖于属性X,则应满足以下两个条件:属性Y函数依赖于属性X属性Y不函数依赖于属性X的任一真子集X部分依赖如果属性Y只函数依赖于属性X的某一真子集X,则称属性Y部分函数依赖于属性X。,传递依赖,定义:在关系R中,如果属性X、Y、Z之间满足:XY,Y Z,则称Z对X传递依赖。例
15、如关系模式:辅导(学号,班级,辅导员)函数依赖集:学号班级班级辅导员,键,定义:设K是关系R模式中的属性,当K的值确定后,关系中其它属性值也就唯一确定,且K的任何一个真子集不再具有这样的性质,则称K为R的键或候选键。注意:通常选择其中一个作主键K可以是单个属性或属性组合,主属性与非主属性,主属性包含在任何一个候选键中的属性称为主属性非主属性不包含在候选键中的属性称为非主属性或非键属性,关系中主键是单属性的,则非键属性对主键肯定是完全函数依赖的。而当主键是复合属性时,则非键属性对主键的函数依赖就有完全依赖和部分依赖两种可能。,外部键,设X是关系模式R中的属性或属性组,X并非R的键,而是另一关系模
16、式的键,则称X是R的外键。如:系(部门编号,系名,系主任,电话)教师(教师号,姓名,专业,职称,性别,年龄,部门编号),范式与规范化,范式关系满足不同层次的要求就称为不同的范式范式由低到高依次为1NF,2NF,3NF,4NF,5NF规范化将一个低一级范式的关系模式分解为若干个满足高一级范式关系模式的集合的过程,1NF、2NF、3NF,1NF:如果关系模式R的每一个属性只包含单一的值,则关系模式R满足1NF2NF:如果关系R满足第一范式,而且它的所有非主关键字属性完全依赖于整个主属性(也就是说,不存在部分依赖),则R满足第二范式3NF:如果某关系满足第二范式,而且他的任何一个非主属性都不传递函数
17、依赖于任何非主属性,则R满足第三范式,规范化至1NF,每一个属性只包含单一的值,由1NF规范化至2NF,消除部分依赖,名单(学号,姓名),成绩(学号,姓名,课程号,课程名,分数),成绩(学号,课程号,分数),由2NF规范化至3NF,辅导(学号,班级,辅导员),班级(学号,班级),辅导(班级,辅导员),消除传递依赖,数据库规范化应用实例,分析关系模式供货(供应商编号,供应商名称,联系方式,商品名称,商品价格)的函数依赖集,并将其规范到第三范式。函数依赖集表示为供应商编号供应商名称供应商编号联系方式(供应商编号,商品名称)商品价格该关系模式存在部分依赖,因此只满足1NF规范化至3NF为供应商(供应
18、商编号,供应商名称,联系方式)供货信息(供应商编号,商品名称,商品价格),7.6 设计实例期刊采编系统,期刊采编的主要任务是由编辑部的编辑人员对稿件进行编辑,决定稿件收录的期刊的刊次和栏目;设计排版部的设计人员,负责期刊的设计排版工作。,需求分析,期刊采编系统包括:人员管理稿件生产管理期刊设计排版管理等功能模块,需求分析人员管理模块,人员管理需要记录职工编号、职工姓名、职务、年龄、性别等。一个职工工作于一个部门,一个部门有若干职工。对于部门应记录各部门的编号、部门名称、负责人、电话等信息。,需求分析稿件生产管理模块,稿件生产管理模块管理若干编辑部的若干人员和进行稿件的生产;对于各编辑部需记录各
19、编辑部编号、负责人、电话;而编辑部的人员同样记录人员编号、姓名、职务、年龄、性别、负责的具体工作等;对于稿件需要记录稿件的编号、标题、作者、字数、正文等;每一个编辑部编辑多篇稿件,而一篇稿件只有一个编辑部编辑,要记录编辑的姓名和编辑完成的时间。,需求分析期刊设计排版模块,期刊设计排版模块管理设计排版部的若干人员和若干期刊。对于期刊需要记录期刊的名称、刊出年月等;同样对于稿件需要记录稿件的编号、标题、作者、字数、正文等;对于设计排版部需记录单位编号、负责人、电话;设计排版部的人员同样记录职工编号、姓名、职务、年龄、性别、负责的具体工作等。每一本期刊由多篇稿件编排而成,要记录编排者的姓名和设计完成
20、的时间。,需求分析数据流程图,需求分析数据字典,期刊采编系统的数据流稿件,期刊采编系统的数据流编辑信息,需求分析数据字典,期刊采编系统的数据流期刊,期刊采编系统的数据流编辑后稿件,需求分析数据字典,期刊采编系统的数据流排版信息,期刊采编系统的数据流排版后稿件,需求分析数据字典,概念结构设计局部E-R模型,人员管理E-R模型,概念结构设计局部E-R模型,稿件生产管理的E-R图,概念结构设计局部E-R模型,期刊设计排版的E-R图,合成全局E-R图,逻辑结构设计,由E-R图转换为关系模式设计数据完整性数据模型的规范化,关系模式,部门(部门编号,部门名称,负责人,电话)人员(职工编号,姓名,性别,年龄
21、,职务,权限,部门编号)期刊(期刊编号,期刊名称,出版日期,部门编号,设计者,完成日期)稿件(稿件编号,标题,作者,字数,正文,部门编号,编辑者,编辑日期,期刊编号,所属栏目),数据完整性设计,实体完整性通过确定主键已完成参照完整性模式“人员”中的属性“部门编号”来源于模式“部门”中的属性“部门编号”模式“期刊”中的属性“部门编号”来源于模式“部门”中的属性“部门编号”模式“稿件”中的属性“部门编号”来源于模式“部门”中的属性“部门编号”模式“稿件”中的属性“期刊编号”来源于模式“期刊”中的属性“期刊编号”用户定义完整性包括:模式“人员”中的属性“性别”的值只能为男或女;模式“人员”中的属性“年龄”的值只能为1-100间;模式“部门”中的属性“职务”的默认值为编辑;模式“期刊”中的属性“完成日期”的值应早于(小于)属性“出版日期”的值;模式“期刊”中的属性“期刊编号”固定为9位,前三位由字母,后六位由数字构成。,数据模型的规范化,4个模式都只存在完全依赖,不存在部分依赖和传递依赖,因此该数据模型满足第三范式。,