阐述数据库课程设计设计是否合理

中国科学院
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
中科院架构师培训讲义(很好的论述了软件开发全过程,包括面向对象分析与设计、数据库设计、架构设计等)
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口数据库建模_百度百科
关闭特色百科用户权威合作手机百科
收藏 查看&数据库建模本词条缺少信息栏、名片图,补充相关内容使词条更完整,还能快速升级,赶紧来吧!
在设计数据库时,对现实世界进行分析、抽象、并从中找出内在联系,进而确定数据库的结构,这一过程就称为数据库建模。它主要包括两部分内容:确定最基本的数据结构;对约束建模。
 数据库设计(Database Design)是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储,满足各种用户的应用需求(信息要求和处理要求)。
在数据库领域内,常常把使用数据库的各类系统统称为。
一、数据库和信息系统
(1)数据库是信息系统的核心和基础,把信息系统中大量的数据按一定的模型组织起来,提供存储、维护、检索数据的功能,使信息系统可以方便、及时、准
确地从数据库中获得所需的信息。
(2)数据库是的各个部分能否紧密地结合在一起以及如何结合的关键所在。
(3)是信息系统开发和建设的重要组成部分。
(4)人员应该具备的技术和知识:
数据库的基本知识和数据库设计技术
计算机科学的基础知识和程序设计的方法和技巧
软件工程的原理和方法
应用领域的知识
二、的特点
数据库建设是硬件、软件和干件的结合
三分技术,七分管理,十二分基础数据
技术与管理的界面称之为“干件”
数据库设计应该与应用系统设计相结合
结构(数据)设计:设计数据库框架或数据库结构
行为(处理)设计:设计应用程序、处理等
结构和行为分离的设计
传统的忽视对应用中数据语义的分析和抽象,只要有可能就尽量推迟数据结构设计的决策。早期的致力于数据模型和建模方法研究,忽视了对行为的设计。
三、方法简述
手工试凑法
设计质量与设计人员的经验和水平有直接关系
缺乏科学理论和工程方法的支持,工程的质量难以保证
数据库运行一段时间后常常又不同程度地发现各种问题,增加了维护代价
规范设计法
手工设计方法
过程迭代和逐步求精
规范设计法(续)
典型方法:
(1)新奥尔良(New Orleans)方法:将分为四个阶段
S.B.Yao方法:将分为五个步骤
I.R.Palmer方法:把当成一步接一步的过程
(2)计算机辅助设计
ORACLE Designer 2000
SYBASE PowerDesigner
四、的基本步骤
的过程(六个阶段)
准确了解与分析用户需求(包括数据与处理)
是整个设计过程的基础,是最困难、最耗费时间的一步
2.概念结构设计阶段
是整个数据库设计的关键
通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型
3.逻辑结构设计阶段
将概念结构转换为某个DBMS所支持的数据模型
对其进行优化
为逻辑数据模型选取一个最适合应用环境的(包括和存取方法)
5.数据库实施阶段
运用DBMS提供的数据语言、工具及,根据和物理设计的结果
建立数据库,编制与调试应用程序,组织数据入库,并进行试运行
6.数据库运行和维护阶段
经过试运行后即可投入正式运行。
在运行过程中必须不断地对其进行评价、调整与修改
设计特点:
在设计过程中把数据库的设计和对数据库中的设计紧密结合起来将这两个方面的、抽象、设计、实现在各个阶段同时进行,相互参照,相互补充,以完善两方面的设计
设计过程各个阶段的设计描述:
五、数据库各级模式的形成过程
1.阶段:综合各个用户的应用需求
2.概念设计阶段:形成独立于机器特点,独立于各个DBMS产品的概念模式(E-R图)
3.阶段:首先将E-R图转换成具体的数据库产品支持的数据模型,如关系模型,形成数据库逻辑模式;然后根据用户处理的要求、安全性的考虑,在基本表的基础上再建立必要的视图(View),形成数据的外模式
4.物理设计阶段:根据DBMS特点和处理的需要,进行物理存储安排,建立索引,形成数据库内模式
1. 设计数据库之前(阶段)
1) 理解客户需求,询问用户如何看待未来需求变化。让客户解释其需求,而且随着开发的继续,还要经常询问客户保证其需求仍然在开发的目的之中。
2) 了解企业业务可以在以后的开发阶段节约大量的时间。
3) 重视输入输出。
在定义数据库表和字段需求(输入)时,首先应检查现有的或者已经设计出的报表、查询和视图(输出)以决定为了支持这些输出哪些是必要的表和字段。
举例:假如客户需要一个报表按照邮政编码排序、分段和求和,你要保证其中包括了单独的邮政编码字段而不要把邮政编码糅进地址字段里。
4) 创建和ER 图表
ER 图表和可以让任何了解数据库的人都明确如何从数据库中获得数据。ER图对表明表之间关系很有用,而则说明了每个字段的用途以及任何可能存在的别名。对SQL 的文档化来说这是完全必要的。
5) 定义标准的对象命名规范
数据库各种对象的命名必须规范。
2. 表和字段的设计()
表设计原则
1) 标准化和规范化
数据的标准化有助于消除数据库中的数据冗余。标准化有好几种形式,但Third Normal Form(3NF)通常被认为在性能、扩展性和方面达到了最好平衡。简单来说,遵守3NF 标准的数据库的表设计原则是:“One Fact in One Place”即某个表只包括其本身基本的属性,当不是它们本身所具有的属性时需进行分解。表之间的关系通过相连接。它具有以下特点:有一组表专门存放通过键连接起来的关联数据。
举例:某个存放客户及其有关定单的3NF 数据库就可能有两个表:Customer 和Order。Order 表不包含定单关联客户的任何信息,但表内会存放一个键值,该键指向Customer 表里包含该客户信息的那一行。
事实上,为了效率的缘故,对表不进行标准化有时也是必要的。
2) 数据驱动
采用数据驱动而非硬编码的方式,许多策略变更和维护都会方便得多,大大增强系统的灵活性和扩展性。
举例,假如用户界面要访问(文件、XML 文档、其他数据库等),不妨把相应的连接和路径信息存储在用户界面支持表里。还有,如果用户界面执行之类的任务(发送邮件、打印信笺、修改记录状态等),那么产生工作流的数据也可以存放在数据库里。角色权限管理也可以通过数据驱动来完成。事实上,如果过程是数据驱动的,你就可以把相当大的责任推给用户,由用户来维护自己的过程。
3) 考虑各种变化
在设计数据库的时候考虑到哪些数据字段将来可能会发生变更。
举例,姓氏就是如此(注意是西方人的姓氏,比如女性结婚后从夫姓等)。所以,在建立系统存储客户信息时,在单独的一个数据表里存储姓氏字段,而且还附加起始日和终止日等字段,这样就可以跟踪这一数据条目的变化。
字段设计原则
4) 每个表中都应该添加的3 个有用的字段
dRecordCreationDate,在VB 下默认是Now(),而在SQL Server  · 下默认为GETDATE()
sRecordCreator,在SQL Server 下默认为NOT NULL DEFAULT  · USER
nRecordVersion,记录的版本标记;有助于准确说明记录中出现null 数据或者丢失数据的原因  ·
5) 对地址和电话采用多个字段
描述街道地址就短短一行记录是不够的。Address_Line1、Address_Line2 和Address_Line3 可以提供更大的灵活性。还有,电话号码和邮件地址最好拥有自己的数据表,其间具有自身的类型和标记类别。
6) 使用角色实体定义属于某类别的列
在需要对属于特定类别或者具有特定角色的事物做定义时,可以用角色实体来创建特定的时间关联关系,从而可以实现自我文档化。
举例:用PERSON 实体和PERSON_TYPE 实体来描述人员。比方说,当John Smith,Engineer 提升为John Smith,Director 乃至最后爬到John Smith,CIO 的高位,而所有你要做的不过是改变两个表PERSON 和PERSON_TYPE 之间关系的键值,同时增加一个日期/时间字段来知道变化是何时发生的。这样,你的PERSON_TYPE 表就包含了所有PERSON 的可能类型,比如Associate、Engineer、Director、CIO 或者CEO 等。还有个替代办法就是改变PERSON 记录来反映新头衔的变化,不过这样一来在时间上无法跟踪个人所处位置的具体时间。
7) 选择数字类型和文本类型尽量充足
在SQL 中使用smallint 和tinyint 类型要特别小心。比如,假如想看看月销售总额,总额字段类型是smallint,那么,如果总额超过了$32,767 就不能进行计算操作了。
而ID 类型的文本字段,比如客户ID 或定单号等等都应该设置得比一般想象更大。假设客户ID 为10 位数长。那你应该把数据库表字段的长度设为12 或者13 个字符长。但这额外占据的空间却无需将来重构整个数据库就可以实现数据库规模的增长了。
8) 增加删除标记字段
在表中包含一个“删除标记”字段,这样就可以把行标记为删除。在关系数据库里不要单独删除某一行;最好采用清除数据程序而且要仔细维护索引整体性。
3. 选择键和索引()
键选择原则:
1) 键设计4 原则
为关联字段创建。 
所有的键都必须唯一。 
避免使用复合键。 
总是关联唯一的键字段。 
2) 使用系统生成的主键
设计数据库的时候采用系统生成的键作为主键,那么实际控制了数据库的索引完整性。这样,数据库和非人工机制就有效地控制了对存储数据中每一行的访问。采用系统生成键作为主键还有一个优点:当拥有一致的键结构时,找到逻辑缺陷很容易。
3) 不要用用户的键(不让主键具有可更新性)
在确定采用什么字段作为表的键的时候,可一定要小心用户将要编辑的字段。通常的情况下不要选择用户可编辑的字段作为键。
4) 可选键有时可做主键
把可选键进一步用做主键,可以拥有建立强大索引的能力。
索引使用原则:
索引是从数据库中获取数据的最高效方式之一。95%的数据库性能问题都可以采用索引技术得到解决。
1) 逻辑主键使用唯一的成组索引,对系统键(作为)采用唯一的非成组索引,对任何列采用非成组索引。考虑数据库的空间有多大,表如何进行访问,还有这些访问是否主要用作读写。
2) 大多数数据库都索引自动创建的主键字段,但是可别忘了索引,它们也是经常使用的键,比如运行查询显示主表和所有关联表的某条记录就用得上。
3) 不要索引/note 字段,不要索引大型字段(有很多字符),这样作会让索引占用太多的。
4) 不要索引常用的小型表
不要为小型数据表设置任何键,假如它们经常有插入和删除操作就更别这样作了。对这些插入和删除操作的索引维护可能比扫描消耗更多的时间。
4. 设计()
1) 完整性实现机制:
实体完整性:主键
参照完整性:
父表中删除数据:;受限删除;置
父表中插入数据:受限插入;递归插入
父表中更新数据:;受限更新;置空值
DBMS对参照完整性可以有两种方法实现:实现机制(约束规则)和实现机制
用户定义完整性:
NOT NULL;CHECK;
2) 用约束而非商务规则强制
采用数据的完整性。这不但包括通过标准化实现的完整性而且还包括数据的功能性。在写数据的时候还可以增加来保证数据的正确性。不要依赖于商务层保证;它不能保证表之间()的完整性所以不能强加于其他完整性规则之上。
3) 强制指示完整性
在有害数据进入数据库之前将其剔除。激活的指示完整性特性。这样可以保持数据的清洁而能迫使开发人员投入更多的时间处理错误条件。
4) 使用查找控制
控制的最佳方式就是限制用户的选择。只要有可能都应该提供给用户一个清晰的价值列表供其选择。这样将减少键入代码的错误和误解同时提供数据的一致性。某些公共数据特别适合查找:国家代码、等。
5) 采用视图
为了在数据库和应用程序代码之间提供另一层抽象,可以为应用程序建立专门的视图而不必非要应用程序直接访问数据表。这样做还等于在处理数据库变更时给你提供了更多的自由。
5. 其他设计技巧
1) 避免使用
触发器的功能通常可以用其他方式实现。在时触发器可能成为干扰。假如你确实需要采用,你最好集中对它文档化。
2) 使用常用英语(或者其他任何语言)而不要使用编码
在创建、列表、报表时最好按照英语名排序。假如需要编码,可以在编码旁附上用户知道的英语。
3) 保存常用信息
让一个表专门存放一般数据库信息非常有用。在这个表里存放数据库当前版本、最近检查/修复(对Access)、关联设计文档的名称、客户等信息。这样可以实现一种简单机制跟踪数据库,当客户抱怨他们的数据库没有达到希望的要求而与你联系时,这样做对非客户机/服务器环境特别有用。
4) 包含版本机制
在数据库中引入机制来确定使用中的数据库的版本。时间一长,用户的需求总是会改变的。最终可能会要求修改数据库结构。把版本信息直接存放到数据库中更为方便。
5) 编制文档
对所有的快捷方式、命名规范、限制和函数都要编制文档。
采用给表、列、触发器等加注释的数据库工具。对开发、支持和跟踪修改非常有用。
对数据库文档化,或者在数据库自身的内部或者单独建立文档。这样,当过了一年多时间后再回过头来做第2 个版本,犯错的机会将大大减少。
6) 测试、测试、反复测试
建立或者修订数据库之后,必须用用户新输入的数据字段。最重要的是,让用户进行测试并且同用户一道保证选择的数据类型满足商业要求。测试需要在把新数据库投入实际服务之前完成。
7) 检查设计
在开发期间检查的常用技术是通过其所支持的应用程序原型检查数据库。换句话说,针对每一种最终表达数据的原型应用,保证你检查了数据模型并且查看如何取出数据。
新手上路我有疑问投诉建议参考资料 查看简述在教师教学工作量管理系统中数据库设计的重要性--《科技信息》2011年08期
简述在教师教学工作量管理系统中数据库设计的重要性
【摘要】:本文在教师教学工作量管理系统设计与开发的基础上,论述了在教师教学工作量管理系统建设中数据库设计的重要性及其设计过程,并对于数据库设计中重要数据的安全性和完整性机制作了说明。
【作者单位】:
【关键词】:
【分类号】:TP311.52【正文快照】:
1.引言目前,国内外对教务管理系统的研究主要集中在教务系统方案的设计和实现,侧重点在整个学校教务管理的信息化建设和网络化的实现方式上,对教务管理系统的某一特定领域(如教师工作量统计),进行深入研究的较少。随着学校办学规模的扩大,教师的不断扩充,并且教师的类别越来
欢迎:、、)
支持CAJ、PDF文件格式,仅支持PDF格式
【参考文献】
中国期刊全文数据库
王承文;[J];电脑知识与技术;2002年03期
陈军霞;[J];河北工业科技;2003年02期
【共引文献】
中国期刊全文数据库
王强;;[J];电脑知识与技术;2010年10期
郑广成;林庆;;[J];河北工业科技;2006年06期
柳荫塘;;[J];河北工业科技;2007年02期
高鲁;宋辉;陈致明;;[J];河北科技大学学报;2006年01期
林元乖;林明才;;[J];海南广播电视大学学报;2006年02期
程鑫;;[J];黑龙江科技信息;2008年21期
郑广成;林庆;朱翠苗;贾洪艳;吴旻;;[J];科技广场;2007年03期
贾洪艳;林庆;郑广成;朱翠苗;吴旻;;[J];科技广场;2007年03期
熊杰,张予川,齐小宁;[J];物流科技;2004年02期
陈军霞,佟志臣;[J];煤矿机械;2005年10期
中国硕士学位论文全文数据库
王金田;[D];电子科技大学;2010年
杨斌;[D];华北电力大学(河北);2010年
姜春晖;[D];郑州大学;2010年
于龙;[D];江苏大学;2009年
陈龙;[D];哈尔滨理工大学;2009年
兰雄;[D];重庆大学;2008年
崔鹏;[D];哈尔滨理工大学;2004年
汪全莉;[D];湘潭大学;2004年
何梅;[D];重庆大学;2004年
杨红杰;[D];湖南大学;2005年
【相似文献】
中国期刊全文数据库
许国良;邓鲁;;[J];中国有线电视;2010年01期
李鑫;李凡;边杏宾;刘启和;;[J];计算机研究与发展;2010年01期
殷敏;王式太;徐丹丹;;[J];山西建筑;2010年04期
张静;董伟;张书梅;段利英;;[J];福建电脑;2010年01期
沙琳娜;;[J];大众科技;2010年02期
吴春庆;;[J];硅谷;2010年03期
唐爱平;;[J];电脑开发与应用;2010年02期
曹健;李国忠;黄金华;徐效波;孙晓茹;;[J];城市勘测;2010年01期
范德辉;;[J];吉林师范大学学报(自然科学版);2010年01期
王志毅;陈宁;;[J];商业时代;2010年05期
中国重要会议论文全文数据库
江建辉;区钜照;;[A];全国测绘科技信息网中南分网第二十四次学术信息交流会论文集[C];2010年
王春晓;熊小青;陈晓芬;;[A];全国测绘科技信息网中南分网第二十四次学术信息交流会论文集[C];2010年
黄迎;冯樑;解丽娜;凌敏;陈碧玲;姚建华;;[A];中国化学会第27届学术年会第02分会场摘要集[C];2010年
张涛;董洋;杨隆;;[A];第27届中国气象学会年会雷达技术开发与应用分会场论文集[C];2010年
卢俞;;[A];第27届中国气象学会年会重大天气气候事件与应急气象服务分会场论文集[C];2010年
王晓芳;丁静;秦晓燕;;[A];2010国际信息技术与应用论坛论文集[C];2010年
魏青建;吕云峰;马仁智;金宁;楼喜中;;[A];2010国际信息技术与应用论坛论文集[C];2010年
黄学辉;魏振钢;孟凡勇;;[A];2010国际信息技术与应用论坛论文集[C];2010年
唐俊;傅希德;张俊;陈正洪;成驰;;[A];第27届中国气象学会年会气候资源应用研究分会场论文集[C];2010年
张戈;;[A];探索的脚步——“十一五”北京高等教育教材建设论文集[C];2010年
中国重要报纸全文数据库
许晓岚 刘志贤;[N];内蒙古日报(汉);2011年
江慧 实习生
徐红武;[N];九江日报;2010年
张虎林 通讯员
王玮;[N];泰州日报;2010年
文信;[N];中国文物报;2010年
“文物调查及数据库管理系统建设”项目工作组;[N];中国文物报;2010年
文物调查及数据库管理系统建设项目工作组;[N];中国文物报;2010年
张玲 徐家成;[N];中国测绘报;2010年
本报记者 邹大斌;[N];计算机世界;2010年
张蔷 记者
陈程;[N];哈尔滨日报;2010年
林学军 丁波;[N];人民武警报;2010年
中国博士学位论文全文数据库
于洋;[D];第二军医大学;2009年
吴卫兵;[D];上海体育学院;2009年
游俊;[D];华中科技大学;2007年
蔡宏伟;[D];第四军医大学;2006年
杨博辉;[D];甘肃农业大学;2006年
史纪安;[D];西北农林科技大学;2006年
黄茂军;[D];武汉大学;2005年
张忠平;[D];复旦大学;2004年
曹秀英;[D];哈尔滨工程大学;2003年
李智慧;[D];四川大学;2002年
中国硕士学位论文全文数据库
刘波;[D];电子科技大学;2011年
周善洪;[D];上海交通大学;2011年
唐铭一;[D];北京服装学院;2010年
闵燕莉;[D];华东师范大学;2010年
程春花;[D];中国地质大学(北京);2010年
杨佳楠;[D];沈阳工业大学;2010年
田洁;[D];燕山大学;2010年
陈淑平;[D];山东大学;2010年
冯粮城;[D];浙江大学;2010年
张文;[D];沈阳工业大学;2010年
&快捷付款方式
&订购知网充值卡
400-819-9993
《中国学术期刊(光盘版)》电子杂志社有限公司
同方知网数字出版技术股份有限公司
地址:北京清华大学 84-48信箱 知识超市公司
出版物经营许可证 新出发京批字第直0595号
订购热线:400-819-82499
服务热线:010--
在线咨询:
传真:010-
京公网安备74号数据库设计指南(2),技术阐述,电脑学堂,阿赛工作室,郭言赛,阿赛企业网站系统,企业建站,EESai
当前位置: &&
&& 查看知识
数据库设计指南(2)发布时间:日0时0分0秒 最近更新:5-1 来自:biancheng 编辑:eesai
第3部分& 选择键和索引1.数据采掘要预先计划我所在的市场部门一度要处理8 万多份联系方式,同时填写每个客户的必要数据(这绝对不是小活)。我从中还要确定出一组客户作为市场目标。当我从最开始设计表和字段的时候,我试图不在主索引里增加太多的字段以便加快数据库的运行速度。然后我意识到特定的组查询和信息采掘既不准确速度也不快。结果只好在主索引中重建而且合并了数据字段。我发现有一个指示计划相当关键&&当我想创建系统类型查找时为什么要采用号码作为主索引字段呢?我可以用传真号码进行检索,但是它几乎就象系统类型一样对我来说并不重要。采用后者作为主字段,数据库更新后重新索引和检索就快多了。可操作数据仓库(ODS)和数据仓库(DW)这两种环境下的数据索引是有差别的。在DW 环境下,你要考虑销售部门是如何组织销售活动的。他们并不是数据库管理员,但是他们确定表内的键信息。这里设计人员或者数据库工作人员应该分析数据库结构从而确定出性能和正确输出之间的最佳条件。2.使用系统生成的主键这一天类同技巧1,但我觉得有必要在这里重复提醒大家。假如你总是在设计数据库的时候采用系统生成的键作为主键,那么你实际控制了数据库的索引完整性。这样,数据库和非人工机制就有效地控制了对存储数据中每一行的访问。采用系统生成键作为主键还有一个优点:当你拥有一致的键结构时,找到逻辑缺陷很容易。3.分解字段用于索引为了分离命名字段和包含字段以支持用户定义的报表,请考虑分解其他字段(甚至主键)为其组成要素以便用户可以对其进行索引。索引将加快SQL 和报表生成器脚本的执行速度。比方说,我通常在必须使用SQL LIKE 表达式的情况下创建报表,因为case number 字段无法分解为year、serial number、case type 和defendant code 等要素。性能也会变坏。假如年度和类型字段可以分解为索引字段那么这些报表运行起来就会快多了。4.键设计4 原则&为关联字段创建外键。&所有的键都必须唯一。&避免使用复合键。&外键总是关联唯一的键字段。5.别忘了索引索引是从数据库中获取数据的最高效方式之一。95%的数据库性能问题都可以采用索引技术得到解决。作为一条规则,我通常对逻辑主键使用唯一的成组索引,对系统键(作为存储过程)采用唯一的非成组索引,对任何外键列采用非成组索引。不过,索引就象是盐,太多了菜就篌了。你得考虑数据库的空间有多大,表如何进行访问,还有这些访问是否主要用作读写。大多数数据库都索引自动创建的主键字段,但是可别忘了索引外键,它们也是经常使用的键,比如运行查询显示主表和所有关联表的某条记录就用得上。还有,不要索引memo/note 字段,不要索引大型字段(有很多字符),这样作会让索引占用太多的存储空间。6.不要索引常用的小型表不要为小型数据表设置任何键,假如它们经常有插入和删除操作就更别这样作了。对这些插入和删除操作的索引维护可能比扫描表空间消耗更多的时间。7.不要把社会保障号码(SSN)选作键永远都不要使用SSN 作为数据库的键。除了隐私原因以外,须知政府越来越趋向于不准许把SSN 用作除收入相关以外的其他目的,SSN 需要手工输入。永远不要使用手工输入的键作为主键,因为一旦你输入错误,你唯一能做的就是删除整个记录然后从头开始。上个世纪70 年代我还在读大学的时候,我记得那时SSN 还曾被用做学号,当然尽管这么做是非法的。而且人们也都知道这是非法的,但他们已经习惯了。后来,随着盗取身份犯罪案件的增加,我现在的大学校园正痛苦地从一大摊子数据中把SSN 删除。8.不要用用户的键在确定采用什么字段作为表的键的时候,可一定要小心用户将要编辑的字段。通常的情况下不要选择用户可编辑的字段作为键。这样做会迫使你采取以下两个措施:&在创建记录之后对用户编辑字段的行为施加限制。假如你这么做了,你可能会发现你的应用程序在商务需求突然发生变化,而用户需要编辑那些不可编辑的字段时缺乏足够的灵活性。当用户在输入数据之后直到保存记录才发现系统出了问题他们该怎么想?删除重建?假如记录不可重建是否让用户走开?&提出一些检测和纠正键冲突的方法。通常,费点精力也就搞定了,但是从性能上来看这样做的代价就比较大了。还有,键的纠正可能会迫使你突破你的数据和商业/用户界面层之间的隔离。所以还是重提一句老话:你的设计要适应用户而不是让用户来适应你的设计。不让主键具有可更新性的原因是在关系模式下,主键实现了不同表之间的关联。比如,Customer 表有一个主键CustomerID,而客户的定单则存放在另一个表里。Order 表的主键可能是OrderNo 或者OrderNo、CustomerID 和日期的组合。不管你选择哪种键设置,你都需要在Order 表中存放CustomerID 来保证你可以给下定单的用户找到其定单记录。假如你在Customer 表里修改了CustomerID,那么你必须找出Order 表中的所有相关记录对其进行修改。否则,有些定单就会不属于任何客户&&数据库的完整性就算完蛋了。如果索引完整性规则施加到表一级,那么在不编写大量代码和附加删除记录的情况下几乎不可能改变某一条记录的键和数据库内所有关联的记录。而这一过程往往错误丛生所以应该尽量避免。
1530175101816151523
Powered by &&& 2002 - 2015&
All Rights Reserved
提供技术支持.&&备案号:工程数据库设计与应用-UML软件工程组织-火龙果软件
&&UML软件工程组织
工程数据库设计与应用
◆第四章 工程数据库设计
◇ 课前索引
内容简介:
工程数据库系统设计和传统数据库系统设计一样,包括工程数据库管理系统和工程数据库设计两方面的内容.在前面章节我们已经介绍了工程数据库管理系统的设计。本章主要讲解面向应用的工程数据库设计。工程数据库设计的主要任务是在工程数据库管理系统的支持下,按照应用的要求,为某一类或某个工程项目设计一个结构合理、使用方便、效率较高的工程数据库及其应用系统.工程数据库设计得好,可以使整个应用系统效率高、维护简单、使用容易。即使是最佳的应用程序,也无法弥补数据库设计时的某些缺陷。有关这数据库设计的研究包括工程数据库设计方法和辅助设计工具两个方面。本章就工程数据库设计中的一些问题进行讨论,阐述了工程数据库设计的基本概念和内容,结合某个工程应用领域中数据库设计,讨论分析工程数据库设计的过程、相关的方法与工具。
学习目标:
工程数据库设计在本课程中处于核心位置。一个工程数据库设计人员必须具备专业领域方面的知识(便于与客户沟通,进行需求分析),又必须具备计算机领域方面的知识(引导用户按规范化的方法表达他们的需求,并进行设计)。工程设计的对象和过程很复杂,基于手工的分析和设计方法已不能满足现代工程数据库应用的要求,需要掌握一些方法并运用一些工具才能解决这些复杂的应用。所以,本章需要学生掌握以下内容:
 1、 工程数据库设计的基本步骤与内容。
 2、 需求分析方法,包括IDEF0分析方法和数据流图分析方法,结合销售业务管理我们分别通过对数据和功能具体的分析掌握这两种工具。另外,课后同学们还应该看看面向对象的分析方法,课堂上不讲解这些内容。
 3、 工程数据库设计方法:主要掌握实体-关系图分析方法。理解数据流图分析方法和实体-关系图设计方法之间的联系与区别。当然,也希望课后同学们看看在工程界认可的IDEF1X和新型的面向对象的数据库设计方法。
 4、 数据库逻辑模式的设计:即如何的将实体-关系概念模型转化为DBMS的关系数据模型,并运用关系代数对其进行优化,设计数据库的外模式等。
 5、 工程应用的功能设计,包括界面的设计、功能逻辑的设计、业务逻辑的划分、实现方法的选择等。
 6、 数据库系统的实施、运行和维护。
学生要求:
1、 学生必须学完传统的数据模型(层次、网状、关系、对象)
 2、 掌握SQL语言、数据库管理系统。
 3、 对销售管理有基本的背景知识。
学习要求:
通过本章的学习,学生要掌握工程数据库应用系统的开发过程、相关的方法及工具。
学习安排:
总共九学时。
◇ 第一节 引言
通过前面工程应用、数据模型、数据库管理系统等章节的介绍,我们已经掌握了工程数据库系统的基本概念。但如何的运用这些概念去设计分析某个工程应用,采用什么方法与工具、遵循什么步骤,是数据库设计的问题。
数据库设计的基本任务与第三章的数据库管理系统的设计不同:它根据某个单位的信息需求、处理需求和数据库的支撑环境(包括DBMS、操作系统和硬件),设计出满足该单位应用需求的数据模式(包括外模式、逻辑(概念)模式和内模式)以及典型的应用程序。所以数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求。数据库模式的设计是数据库在应用领域的主要研究课题。因此数据库设计的成果以两种方法表示:一是满足应用需求的数据模式,二是在此数据模式并在某个DBMS的支持下开发的应用程序。
例如在企业信息化中,销售业务管理是一个很重要的模块。某企业想借助于计算机工具实现销售业务信息化管理,有关销售系统信息化的需求描述如下:
通过对经营销售活动各个环节产生数据的处理,为企业领导和生产经营各部门提供有关的销售目标、资源情况、订货情况、合同执行情况、销售成果、用户拖欠款、成品库存等动态信息。通过对这些信息的统计分析,准确及时地掌握市场情况,及早发现企业销售管理、订货服务、产品发运、回款等各环节发生的问题。跟踪市场的变化情况,使销售部门根据所发现的问题,采取相应的措施,最终使企业在市场竞争中获得最大的经济效益。
根据用户的需求,数据库设计人员就要从销售部门的组织结构、管理流程和相关业务出发,分析企业目前的销售经营情况,并运用营销的一些理论,设计一个销售管理系统应该具备的功能模块(目前的及以后可能需要的)及相应的数据库结构,并开发相应的应用程序。
目前数据库设计可有两种不同的方法:一种是以信息需求为主,兼顾处理需求,这种称为面向数据的设计方法;另一种是以处理需求为主,兼顾信息需求,这种方法称为面向过程的设计方法。第一章我们介绍的从工程界发展起来的数据库应用设计方法IDEF0功能分析设计方法属于第二种方法。本章我们主要介绍另一种从信息领域发展的以信息为主的数据库分析设计方法:数据流图和实体-关系图分析设计方法。
从数据库设计的过程来看,数据库设计也是一个软件开发,是一个把用户需要通过需求分析转化为软件需求(包括需求规格说明书、初步用户手册、确认测试计划等),把软件需求转化为软件设计(包括概要设计说明、数据库设计说明书、详细设计说明书、组装测试计划等),根据设计文档选择某个数据库管理系统和数据库开发工具来实现软件设计(包括用户界面、程序框图、事务处理等),对软件代码进行测试,并签署确认它可以投入运行使用的过程(如图4-1)。
图4-1软件开发的迭代模型
在实际开发过程中,软件开发并不是从第一步进行到最后一步,而是在任何阶段,在进入下一阶段前一般都有一步或几步的回溯。在软件开发中,重复经常出现。
例如,在测试过程中的问题可能要求修改设计,在使用过程重,根据系统的实施情况用户可能会提出一些需要修改需求说明书的新要求,等等。
软件开发的方法很多。当前在工程数据库设计中主要采用的软件开发方法有结构化方法、面向对象方法。结构化方法是一种围绕应用的功能来组织软件系统的方法。在这种方法中,系统的基本构成要素是模块,它是一种实现系统某一功能的程序单元。模块具有输入、输出、内部数据和过程等基本特性。输入和输出分别是模块需要的和产生的数据,内部数据是仅供模块本身引用的数据,过程则是对模块具体处理细节的描述和表示。输入和输出是模块的外部特性,内部数据和过程是模块的内部特性。因此结构化方法是通过按功能将问题分解抽象成模块、建立模块和模块之间的调用关系来进行软件开发的。
面向对象方法是一种围绕真实世界中的事物来组织软件系统的全新方法。在这种方法中,系统的基本构成要素是对象。从软件开发人员的角度来看,对象是一种将数据和处理这些数据的操作合并在一起的程序单元;从用户的角度来看,对象是一种具有某些属性和行为的事物。因此面向对象方法是通过将存在于现实世界中(问题空间范围内)的事物抽象成对象、建立对象和对象之间的通讯联系来进行软件开发的。
本章我们主要使用结构化的方法,并结合上面的应用介绍数据库设计的主要流程,相关的方法及其工具。
有关对象分析方法以及在软件开发方法中使用的专家系统的方法,感兴趣的同学请参看相关的资料。
◇ 第二节 数据库设计方法简述
设计方法和理论是指使用什么方法来设计数据库。为了使数据库设计的方法走向完备,人们研究了各种方法及其数据库的规范化理论,指导我们设计规范的数据库。
选择设计方法时应该考虑如下一些问题:
  - 那些工具有助于设计?
  - 开发时间的紧迫性?
  - 开发人员的技术背景?
  - 项目是否需要额外条件?
  - 项目现有资源状况等。
另外大型数据库的设计和开发是一项庞大的工程,是涉及多学科的综合性技术。其开发周期长,耗资多、失败的风险也大。必需把软件工程的原理和方法应用到数据库建设中来。对于从事数据库设计的专业人员来讲,应该具备应用领域、数据库、系统分析与设计等多方面的技术和知识。
由于信息结构复杂,应用环境多样,在相当长的一段时期内数据库设计主要采用手工试凑法。使用这种方法与设计人员的经验和水平有直接关系,数据库设计成为一种技艺而不是工程技术,缺乏科学理论和工程方法的支持,工程的质量难以保证,常常是数据库运行一段时间后又不同程度地发现各种问题,增加了系统维护的代价。八十年代后期,随着关系数据库数据库产品的成熟和软件工程技术的支持,人们努力探索,提出了各种数据库设计方法,这些方法运用软件工程的思想和方法,提出了各种满足软件工程技术的数据库设计准则和规程,都属于规范设计法。
在数据库规范设计法中比较著名的有新奥尔良(New Orleans)方法。他将数据库设计分为四个阶段:需求分析(分析用户要求)、概念设计(信息分析和定义)、逻辑设计(设计实现)和物理设计(物理数据库设计)。其后,S.B.Yao等又对此方法进行扩充,将数据库设计分为五个步骤。另外,I.R.Palmer等认为应当把数据库设计当成一步接一步的过程,并在每一步需要采用一些辅助手段实现每一过程。所以规范设计法从本质上看仍然是遵循手工设计方法的步骤,所不同的是在一定的理论和方法指导下和计算机辅助工具的支持下,通过过程迭代和逐步求精逐步得到规划化的数据模式和应用系统的功能。
早期的数据库设计方法,如基于E-R模型的数据库设计方法,基于3NF(第三范式)的设计方法,基于抽象语法规范的设计方法等,都是致力于数据模型和建模方法的研究,研究在数据库设计的不同阶段上支持实现的具体技术和方法,而忽略了对行为的设计。也就说比较注重在给定的应用环境下,采用什么原则、方法来构造数据库的结构,而没有考虑应用环境要求和数据库结构的关系,因此结构设计和行为设计是分离的(如图4-2)。
图4-2 结构和行为分离的设计
随着面向对象技术的成熟、对象数据库和对象关系数据库管理系统的出现,如何将应用系统的结构特性(数据模型)和行为特性(功能模型)结合起来,在设计数据库结构的同时完成系统功能的设计。面向对象的分析和设计提供了很好的方法。本章主要介绍传统的数据库设计方法、过程及其工具。
数据库工作者和数据库厂商一直在研究和开发数据库设计工具。经过十多年的努力,数据库设计工具已经实用化和产品化。例如ORACLE公司推出的Design
2000、SYBASE公司推出的Power-Designer、Rational公司推出的ROSE、Microsoft 公司推出的Visio等都是数据库分析设计工具软件。这些工具软件可以自动的或辅助设计人员完成数据库设计过程中的很多任务。人们已经越来越认识到自动数据库设计工具的重要性。特别是大型数据库的设计需要自动设计工具的支持。人们也日益认识到数据库设计和应用设计应该同时进行,目前许多计算机辅助软件工程(Computer
Aided Software Engineering,简称CASE)工具都强调这两个方面。
目前市场上有各种各样的数据库辅助设计工具,提供的厂商既包括数据库管理系统厂商,也包括程序设计语言厂商,还有各种各样的CASE工具提供商等。但综合分析这些CASE的功能,它们主要分为以下几个功能:
  - IDEF分析与建模工具
  - 数据流图建模与分析工具
  - 实体-关系图建模与设计工具
  - 对象分析与建模工具等。
IDEF分析与建模方法我们在第一章已经讨论。面向对象的建模与分析方法我们在第三章工程数据模型中也简单介绍过。本章的后续章节主要介绍另外两种方法和工具。
◇ 第三节 数据库设计的基本步骤
按照规范设计的方法,考虑数据库及其应用系统开发全过程,将数据库设计分为以下六个阶段(如图4-3所示):
  1. 需求分析阶段
  进行数据库设计首先必须准确了解与分析用户需求(包括数据与处理)。需求分析是整个设计过程的基础,是最困难、最耗费时间的一步。作为基础的需求分析是否做的充分与准确,决定了在其上构建数据库大厦的速度与质量。需求分析做得不好,甚至会导致整个数据库设计返工重做。
  2. 概念结构设计阶段
  概念结构设计是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的数据库应用概念模型。
  3. 逻辑结构设计阶段
  逻辑结构设计是将概念结构转换为某个DBMS所支持的数据模型,并对其进行优化。
  4.数据库物理设计阶段
  数据库物理设计是为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。
  5.数据库实施阶段
  在数据库实施阶段,设计人员运用DBMS提供的数据语言及其开发工具,根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。
  6.数据库运行和维护阶段
  数据库应用系统经过试运行后即可投入正式运行。在数据库系统运行过程中必须不断地对其进行评价、调整与修改。
在这六个阶段之前,有时还加入&规划阶段&以进行系统的必要性和可行性分析,确定本子系统在整个应用中的地位。
数据库设计开始之前,首先必须选定参加设计的人员,包括系统分析人员、数据库设计人员和程序员、用户和数据库管理员。系统分析和数据库设计人员是数据库设计的核心人员,他们将自始至终参与数据库设计,他们的水平决定了数据库系统的质量。用户和数据库管理员在数据库设计中也是举足轻重的,他们主要参加需求分析和数据库的运行维护,他们的积极参与不但能加速数据库设计,而且也是决定数据库设计的质量的重要因素。程序员则在系统实施阶段参与进来,分别负责编制程序和准备软硬件环境。
4-3数据库设计步骤
如果所设计的数据库应用系统比较复杂,还应该考虑是否需要使用数据库设计工具和CASE工具以提高数据库设计质量并减少设计工作量,以及选用何种工具。
设计一个完善的数据库应用系统是不可能一蹴而就的,它往往是上述六个阶段的不断反复。
需要指出的是,上述设计步骤既是数据库设计的过程,也包括了数据库应用系统的设计过程。在设计过程中把数据库的设计和对数据库中数据处理的设计紧密结合起来,将这两个方面的需求分析、抽象、设计、实现在各个阶段同时进行,相互参照,相互补充,以完善两方面的设计。事实上,如果不了解应用环境对数据的处理要求,或没有考虑如何去实现这些处理要求,是不可能设计一个良好的数据库结构的。按照这个原则,设计过程各个阶段的设计描述,可用图4-4概括的给出。
图4-4 数据库结构设计阶段
按照这样的设计过程,数据库结构设计的不同阶段形成数据库的各级模式。需求分析阶段,综合各个用户的应用需求,并以某种模型如IDEF0图或数据流图表示出来;在概念设计阶段形成独立于机器特点,独立于各个DBMS产品的概念模式(如实体-关系图);在逻辑设计阶段将E-R图转换成具体的数据库产品支持的数据模型,如关系模型,形成数据库逻辑模式;然后根据用户处理的要求、安全性的考虑,在基本表的基础上在建立必要的视图(View),形成数据的外模式;在物理设计阶段,根据DBMS特点和处理的需要,进行物理存储安排,建立索引,形成数据库内模式;在系统实施阶段主要包括应用程序的设计和数据库数据的装入与功能测试,在这个阶段需要运用数据库开发工具、遵循通用的程序设计规则等;系统的运行维护是数据库应用的一个重要方面,是检验数据库设计好坏的一个重要阶段。
本章以销售管理业务系统的设计为例,详细的说明在这几个不同的数据库设计阶段的内容,所用的设计方法及相关工具。
◇ 第九节 系统的实现(功能设计)
完成数据库的物理设计之后,设计人员就要用RDBMS提供的数据定义语言和其他实用程序将数据库逻辑设计和物理设计结果严格描述出来,在此基础上我们就可进行应用系统的功能设计与实现。这就是数据库功能设计。
所以功能设计主要指在设计好的数据库模式上面建立的应用程序结构设计。程序结构描述了整个程序或软件的模块划分,以及模块间的相互关系,反映出了程序控制的层次关系,但没有反映出程序控制的顺序和选择等关系,也没有考虑如何具体实现模块功能。
程序过程则是对程序结构中模块的具体处理细节的描述,包括执行顺序,选择判断点,重复操作等等。简单地说,程序过程是对程序结构的细化。图4-37和图4-38分别说明了程序过程和模块、程序过程和程序结构之间的关系。
  1.程序设计过程的基本控制
  2.程序过程表示方法
  3.程序过程设计
  4.用户界面的设计
图4-37 在一个模块内的程序过程
图4-38 程序过程和程序结构的关系
1.程序设计过程的基本控制
程序过程基本控制结构分为三种基本类型:
 1) 顺序型
 2) 赋值语句、读语句、写语句,含有多个连续的加工步骤。
 3)选择型
  条件块、选择块,由某个逻辑条件式的取值决定选择两个或多个加工中的一个。
 4)迭代型
  循环块,在控制条件满足的情况下,重复执行特定的加工。
2.程序过程表示方法
程序过程设计是软件详细设计中的重要内容,程序流程图是我们大家熟悉的过程表示工具。除此之外,还有N-S图、PAD图、PDL语言、HIPO图等程序过程表达工具。根据应用的特点可选择不同的表示方法。例如问题分析图(Problem
Analysis Diagram, 简称PAD) 是从程序流程图演化而来的,它针对程序流程图的某些特点,进行了适当的改进。它把程序过程控制结构表示成二维树的图形(如图4-39)。
图4-39 用问题分析图表示的程序过程基本控制结构
3.程序过程设计
1)结构化程序过程及其设计原则
 结构化程序过程是一种只使用单入口和单出口控制结构的程序过程,在设计过程中它主要要求 :
  (1)只使用顺序型、条件型、当循环型、直到循环型和选择型等五种基本控制结构,避免使用可能降低程序结构性的GOTO语句。已经有人证明,任何程序过程都可以用上述几种基
本控制结构构造出来;
  (2)采用自顶向下和逐步细化的方法和原则进行。
结构化程序过程设计的目标,是提供一种严格定义的,简明的程序过程设计方法,这种方法应比那些随意设计的方法更容易理解,评价和修改。
 2)结构化程序过程设计技术
 结构化程序过程设计的主要技术是自顶向下逐步细化方法。该方法把整个程序过程设计的过程分出层次来,逐步加以解决。每一步是在前一步的基础上进行的,是前一步设计的细化和具体化。一般细化到可以立刻进行程序代码编写设计就可以了。
 3)结构化程序过程设计的优缺点
 程序设计的主要费用和困难在于问题的复杂性,以及向其他人解释设计思想的工作。而结构化程序过程设计最重要的优点就是它的清晰性,它明确地提出了程序过程的控制结构,同时采用了自顶向下逐步细化的程序过程设计技术。清晰性增加的直接效果,就是使程序过程设计的生产率有较大的提高,同时使设计和维护费用减少。
 结构化程序过程设计限制了程序设计人员的风格,有人视为缺点,认为不应当对此加以限制。但是使一种工程技术标准化却是一项巨大的成就。目前世界上对标准化越来越重视,什么东西都要标准化,这样生产率、维护性都将得到提高。在程序过程设计中增加符合工程要求的份量,是人们所追求的。所以限定风格是有益的。
4.用户界面的设计
用户界面的设计是程序设计的一个重要模块。在图形化的用户界面设计程序语言中提供了了很多方法来设计用户界面。用户界面的设计应遵循下列原则
 1) 用户需求原则:友好、实用、简单等;
 2) 系统开发规则:遵循Windows图形用户界面设计规则、开发工具提供的控件等;
 3) 用户界面的定制:通过对图形用户界面控件和业务逻辑的封装让用户自己定义合适的用户界面。这是比较成熟的用户界面的设计。
当然用户界面的设计也是一种艺术。例如在销售系统中,客户管理界面初始设计,如根据用户的需求,往往希望以下列卡片的形式输入、修改客户信息:
图4-40 客户信息卡片管理界面
但为了管理方面,用户往往在客户卡片上面加装目录,以卡片形式管理这些页面(不同的企业有不同的管理模式,对话框左下角用户用户定制自己的卡片目录管理模式):
图4-41 客户信息页面管理界面一
客户信息的卡片管理模式虽然很多,但对某个企业常用的只有一种模式,所以,我们可以将卡片的管理模式放到系统参数设置模块,这样,经过程序设计的优化,我们可以将客户管理用户界面简化成:
图4-42 客户信息页面管理界面二
客户信息的输出可采用微软的Office工具,结合Office的模版管理和VB编程实现用户自定义的打印输出功能。
从上面的例子可以看出,用户界面的设计必须利用Windows图形界面的一些技术,根据用户的需求,遵循一定的规则,与用户交互完成。另外还要考虑系统的可扩展性。例如,上面的用户界面是固定的。如我们支持定制的用户界面,那么,我们必须建立用户界面定制数据库,用于描述客户数据项在用户界面的那个页面,什么地方,以什么方式(编辑、列表、选择等)方式显示。
用户界面设计的另外一个重要模块是用户界面控制功能和数据库交互等的设计。例如对于下列的合同管理界面:
图4-43 客户合同管理界面
在控制控制方面需要包括以下的功能:
图4-44 客户合同管理界面要包括的功能
而对于合同录入功能,我们又需要细化,它可能包括下列流程:
图4-45 客户合同管理界面录入功能与流程
如果用户界面操纵功能设计得比较详细,我们还可以对上面的用户界面功能进行细化,例如系统显示相关客户档案信息功能细化后如下图所示:
图4-46 客户合同管理界面客户信息录入功能
从上面的功能程序设计和用户界面设计可以看出,数据库模式的设计可能还需要修改才能满足要求。所以一个好的数据库应用设计必须有效的将功能和数据库模式结合起来。例如数据库物理模式的确定需要充分考虑系统的查询与统计报表的功能(数据的使用频率)
◇ 本章小结
本章主要讨论了数据库设计的过程,设计过程中使用的各种方法,并结合销售业务数据库应用系统的设计解释了这些方法。
需求分析是数据库设计的第一个阶段。任务是收集和分析用户对数据库应用系统的使用要求,是数据库设计的基础。用户的要求包括:
 (1)对数据对象种类和类型的要求,数据之间关系的要求。
 (2)对数据操纵的要求,数据操纵方式的要求。
 (3)对数据对象的限定要求和数据完整性要求。需求分析就是要了解用户需要什么样的数据库,干什么用的数据库。
 (4)对系统功能及其权限的控制与管理等。
需求分析阶段有三项工作:
 (1)理解和表达用户需求,明确未来软件&做什么&。对于工程应用软件来说,就是详细定义未来软件的功能、性能、外部接口、有关属性、设计限制和数据库需求的过程,并确认支持性的硬件、软件环境和辅助软件。
 (2)使用自顶向下逐层分解的系统分析方法,把整个软件系统分解成若干个子系统或软件成分,把整个软件的外部需求,分别赋予软件的各个功能成分,详细地定义每个成分的外部功能,并严格标定它们之间的接口。
 (3)编写软件&需求分析说明&。它是测试验收阶段对软件进行确认和验收的基准,是以后软件开发的基础。
在数据库应用的需求分析中使用最多的是数据流图。数据流图描绘系统的逻辑模型,图中没有任何具体的物理元素,只是描绘信息在系统中流动和处理的情况。因为数据流图是逻辑系统的图形表示,即使不是专业的计算机技术人员也容易理解,所以是极好的通信工具。此外,设计数据流图只需考虑系统必须完成的基本逻辑功能,完全不需要考虑如何具体地实现这些功能,所以它也是数据库设计的很好的出发点。
画数据流图的基本目的是利用它作为交流信息的工具。分析员把他对现有系统的认识或对目标系统的设想用数据流图描绘出来,供有关人员审查确认。
数据流图的另一个主要用途是作为分析和设计的工具。分析员在研究现有的系统时常用系统流程图表达他对这个系统的认识,这种描绘方法形象具体,比较容易验证它的正确性;但是,开发工程的目标往往不是完全复制现有的系统,而是创造一个能够完成相同的或类似的功能的新系统。用系统流程图描绘一个系统时,系统的功能和实现每个功能的具体方案是混在一起的。因此,分析员希望以另一种方式进一步总结现有的系统,这种方式应该着重描绘系统所完成的功能而不是系统的物理实现方案。数据流图是实现这个目标的极好手段。
在完成了用户的需求分析后就开始数据库的概念设计。在数据库设计中最常用的表示概念性数据模型的方法,是实体一联系方法(ER图)。这种方法用ER图描述现实世界中的实体,而不涉及这些实体在系统中的实现方法。用这种方法表示的概念性数据模型又称为ER模型。ER模型比较接近人的习惯思维方式。此外,ER模型使用简单的图形符号表达系统分析员对问题域的理解,不熟悉计算机技术的用户也能理解它,因此,ER模型可以作为用户与分析员之间有效的交流工具。
那么,数据流图和实体-关系图之间有什么关系?如何的将数据流图转化为实体-关系图呢?作为系统设计的开始,要分析系统有哪些数据需求,分析的结果将得到数据流程图(DFD)和数据字典(DD);在此基础上就可以开始作ER图了,其过程简介如下:
1).作初步的ER图
首先要构造实体。可以有3条获得实体的途径:
 (1)根据DFD和DD中提供的情况,将一些对应于客观存在的事物(可以是具体的或者是抽象的事物、概念、事物联系或某一事件等)的数据项汇集成一个实体,数据项构成该实体的属性(或特性);
 (2)将剩下的数据项用1对多的分析方法再确定出一批实体。某数据项苦与其它多个数据项之间存在1:N的对应关系,那么这个数据项就可以作为一个实体,而其它多个数据项作为它的属性;
 (3)采用数据元素图法分析最后一些数据项之间的紧密程度,又可以确定一批实体。如果某些数据项完全函数依赖于另一些数据项,那么所有这些数据项可以作为一个实体,而后者数据项可以作为此实体的键。
经过上面三步,如果在DFD和DD中还有剩余的数据项,那么这些数据项一般是实体间联系的属性,在分析实体问联系时要把它们考虑进去。得到实体后,要确定实体间的联系。通过确定联系,就得到了初步的ER图。
2).求得基本ER图
在上面得到的多个子ER图基础上,对它们进行合并,便得到全局的ER固。由初步ER图求基本ER图的过程,主要是消除冗余数据和冗余联系的过程。首先实施消除冗余数据,可能在这一步,有些联系也将消失;而冗余联系的消除是基于关系理论中Armstron8公理的演绎算法。
在得到了系统完整的概念模型后就可设计数据库系统的逻辑模式及相应的数据库结构,开始应用程序的编程、调试,系统的实施与运行维护等。数据库应用系统的实现部分本章没有讨论,这就是下章我们将要讨论的应用程序的开发内容。
◇ 课后习题
什么是数据库设计?
什么是软件开发?它包括那些步骤?
数据库设计的成果是什么?
概述数据库设计方法和数据库设计方法的分类。
举例说明你熟悉的某种数据库设计工具的特点和功能。
简述数据库设计的几个阶段及其内容。
简述数据库设计过程中涉及的几个术语。
什么是数据库应用的规划?它包括那些功能?
销售业务系统的主要功能有哪些?它与营销有什么关系?
简述你对销售业务流程的理解。
需求分析的基本任务是什么?
需求分析有那些步骤?需要采用那些方法?
试述结构化分析的工作内容和步骤。
什么是数据流图?它包括那些元素?各元素的功能是什么?
画数据流图时应注意那些事项?
什么是数据字典?它包括那些内容?
简述销售业务流程的数据流程?
简述概念模型的特点、概念模型设计的方法和步骤。
简述实体-关系模型的基本概念及其组成。
实体之间有哪些关系?在实体-关系模型中怎么表示?
简述销售业务系统中的实体及其属性。
仿照企业销售管理系统的实体-关系方法,画出采购合同的实体-关系模型。
简述逻辑结构设计的内容和步骤。
简述实体-关系概念模型向逻辑数据库模型(关系模式)转化的方法。
什么叫数据模型的优化?简述相关的方法?
简述用户模式的特点和设计的理由。
设计销售业务中发票管理的数据库模式。
简述物理结构设计的主要问题。
简述销售订单的物理结构设计
简述你熟悉的数据库管理系统提供的物理结构设计的功能。
什么是系统的功能设计?功能设计和数据库模式设计之间有什么关系?
简述客户销售合同评审的功能及程序设计内容。
简述数据库的实施与维护内容。
为什么数据库的运行维护很重要?
| & Copyright 2002 &&
UML软件工程组织
京公海网安备号}

我要回帖

更多关于 数据库概念设计 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信