Ⅰ 评价数据库设计结果的好坏准则是什么
就是看所给的属性之间所组成的关系模式有没有冗余等多余的搭配方式,用一二三bcnf等范式去考证,理论上范式的等级越高,效果越好,优化的越成功,但是还是要按实际来看,来观察那个更好!!
Ⅱ 评价数据库设计优劣的标准是什么
我用sql2000,五年。
我的感觉第一是稳定,第二是占用资源。
Ⅲ 怎样设计一个好的数据库
数据库设计(Database Design)是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。
在数据库领域内,常常把使用数据库的各类系统统称为数据库应用系统。
一、数据库和信息系统
(1)数据库是信息系统的核心和基础,把信息系统中大量的数据按一定的模型组织起来,提供存储、维护、检索数据的
功能,使信息系统可以方便、及时、准确地从数据库中获得所需的信息。
(2)数据库是信息系统的各个部分能否紧密地结合在一起以及如何结合的关键所在。
(3)数据库设计是信息系统开发和建设的重要组成部分。
(4)数据库设计人员应该具备的技术和知识:
数据库的基本知识和数据库设计技术
计算机科学的基础知识和程序设计的方法和技巧
软件工程的原理和方法
应用领域的知识
二、数据库设计的特点
数据库建设是硬件、软件和干件的结合
三分技术,七分管理,十二分基础数据
技术与管理的界面称之为“干件”
数据库设计应该与应用系统设计相结合
结构(数据)设计:设计数据库框架或数据库结构
行为(处理)设计:设计应用程序、事务处理等
结构和行为分离的设计
传统的软件工程忽视对应用中数据语义的分析和抽象,只要有可能就尽量推迟数据结构设计的决策早期的数据库设计致力于数据模型和建模方法研究,忽视了对行为的设计
如图:
三、数据库设计方法简述
手工试凑法
设计质量与设计人员的经验和水平有直接关系
缺乏科学理论和工程方法的支持,工程的质量难以保证
数据库运行一段时间后常常又不同程度地发现各种问题,增加了维护代价
规范设计法
手工设计方
基本思想
过程迭代和逐步求精
规范设计法(续)
典型方法:
(1)新奥尔良(New Orleans)方法:将数据库设计分为四个阶段
S.B.Yao方法:将数据库设计分为五个步骤
I.R.Palmer方法:把数据库设计当成一步接一步的过程
(2)计算机辅助设计
ORACLE Designer 2000
SYBASE PowerDesigner
四、数据库设计的基本步骤
数据库设计的过程(六个阶段)
1.需求分析阶段
准确了解与分析用户需求(包括数据与处理)
是整个设计过程的基础,是最困难、最耗费时间的一步
2.概念结构设计阶段
是整个数据库设计的关键
通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型
3.逻辑结构设计阶段
将概念结构转换为某个DBMS所支持的数据模型
对其进行优化
4.数据库物理设计阶段
为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)
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) 不要索引memo/note 字段,不要索引大型字段(有很多字符),这样作会让索引占用太多的存储空间。
4) 不要索引常用的小型表
不要为小型数据表设置任何键,假如它们经常有插入和删除操作就更别这样作了。对这些插入和删除操作的索引维护可能比扫描表空间消耗更多的时间。
4. 数据完整性设计(数据库逻辑设计)
1) 完整性实现机制:
实体完整性:主键
参照完整性:
父表中删除数据:级联删除;受限删除;置空值
父表中插入数据:受限插入;递归插入
父表中更新数据:级联更新;受限更新;置空值
DBMS对参照完整性可以有两种方法实现:外键实现机制(约束规则)和触发器实现机制
用户定义完整性:
NOT NULL;CHECK;触发器
2) 用约束而非商务规则强制数据完整性
采用数据库系统实现数据的完整性。这不但包括通过标准化实现的完整性而且还包括数据的功能性。在写数据的时候还可以增加触发器来保证数据的正确性。不要依赖于商务层保证数据完整性;它不能保证表之间(外键)的完整性所以不能强加于其他完整性规则之上。
3) 强制指示完整性
在有害数据进入数据库之前将其剔除。激活数据库系统的指示完整性特性。这样可以保持数据的清洁而能迫使开发人员投入更多的时间处理错误条件。
4) 使用查找控制数据完整性
控制数据完整性的最佳方式就是限制用户的选择。只要有可能都应该提供给用户一个清晰的价值列表供其选择。这样将减少键入代码的错误和误解同时提供数据的一致性。某些公共数据特别适合查找:国家代码、状态代码等。
5) 采用视图
为了在数据库和应用程序代码之间提供另一层抽象,可以为应用程序建立专门的视图而不必非要应用程序直接访问数据表。这样做还等于在处理数据库变更时给你提供了更多的自由。
5. 其他设计技巧
1) 避免使用触发器
触发器的功能通常可以用其他方式实现。在调试程序时触发器可能成为干扰。假如你确实需要采用触发器,你最好集中对它文档化。
2) 使用常用英语(或者其他任何语言)而不要使用编码
在创建下拉菜单、列表、报表时最好按照英语名排序。假如需要编码,可以在编码旁附上用户知道的英语。
3) 保存常用信息
让一个表专门存放一般数据库信息非常有用。在这个表里存放数据库当前版本、最近检查/修复(对Access)、关联设计文档的名称、客户等信息。这样可以实现一种简单机制跟踪数据库,当客户抱怨他们的数据库没有达到希望的要求而与你联系时,这样做对非客户机/服务器环境特别有用。
4) 包含版本机制
在数据库中引入版本控制机制来确定使用中的数据库的版本。时间一长,用户的需求总是会改变的。最终可能会要求修改数据库结构。把版本信息直接存放到数据库中更为方便。
5) 编制文档
对所有的快捷方式、命名规范、限制和函数都要编制文档。
采用给表、列、触发器等加注释的数据库工具。对开发、支持和跟踪修改非常有用。
对数据库文档化,或者在数据库自身的内部或者单独建立文档。这样,当过了一年多时间后再回过头来做第2 个版本,犯错的机会将大大减少。
6) 测试、测试、反复测试
建立或者修订数据库之后,必须用用户新输入的数据测试数据字段。最重要的是,让用户进行测试并且同用户一道保证选择的数据类型满足商业要求。测试需要在把新数据库投入实际服务之前完成。
7) 检查设计
在开发期间检查数据库设计的常用技术是通过其所支持的应用程序原型检查数据库。换句话说,针对每一种最终表达数据的原型应用,保证你检查了数据模型并且查看如何取出数据。
Ⅳ 数据库设计
一、数据库设计的生存期
按照规范设计的方法,考虑到数据库及其应用系统开发的全过程,将数据库设计分为六个阶段。如下图。
① 需求分析
需求收集和分析,得到用数据字典描述的数据需求,用数据流图描述的处理需求。
② 概念结构设计
对需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型(用E-R图表示)。 ③ 逻辑结构设计
将概念结构转换为某个DBMS所支持的数据模型(例如关系模型),并对其进行优化。
④ 物理结构设计
为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。
⑤ 数据库实施
运用DBMS提供的数据语言(例如SQL)及其宿主语言(例如C),根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。
⑥ 数据库运行和维护
数据库应用系统经过试运行后即可投入正式运行。在数据库系统运行过程中必须不断地对其进行评价、调整与修改。
说明:设计一个完善的数据库应用系统是不可能一蹴而就的,它往往是上述六个阶段的不断反复。
3
三、数据库设计阶段的模式
数据库结构设计的不同阶段形成数据库的各级模式,如下图。 需求分析阶段:综合各个用户的应用需求;
概念设计阶段:形成独立于机器特点,独立于各个DBMS产品的概念模式,即E-R图;
逻辑设计阶段:将E-R图转换成具体的数据库产品支持的数据模型,如关系模型,形成数据库逻辑模式;然后根据用户处理的要求、安全性的考虑,在基本表的基础上再建立必要的视图,形成数据的外模式;
物理设计阶段:根据DBMS特点和处理的需要,进行物理存储安排,建立索引,形成数据库内模式。
Ⅳ 什么是数据库设计试述数据库设计的步骤
答:(1)需求分析阶段:需求收集和分析,得到数据字典和数据流图。 (2)概念结构设计阶段:对用户需求综合、归纳与抽象,形成概念模型,用E-R图表示。(3)逻辑结构设计阶段:将概念结构转换为某个DBMS所支持的数据模型。(4)数据库物理设计阶段:为逻辑数据模型选取一个最适合应用环境的物理结构。(5)数据库实施阶段:建立数据库,编制与调试应用程序,组织数据入库,程序试运行。(6)数据库运行和维护阶段:对数据库系统进行评价、调整与修改。
Ⅵ 数据库设计的基本步骤是什么
(1)需求分析阶段:需求收集和分析,得到数据字典和数据流图。
(2)概念结构设计阶段:对用户需求综合、归纳与抽象,形成概念模型,用E-R图表示。
(3)逻辑结构设计阶段:将概念结构转换为某个DBMS所支持的数据模型。
(4)数据库物理设计阶段:为逻辑数据模型选取一个最适合应用环境的物理结构。
(5)数据库实施阶段:建立数据库,编制与调试应用程序,组织数据入库,程序试运行。
(6)数据库运行和维护阶段:对数据库系统进行评价、调整与修改。
Ⅶ 简述数据库应用系统的设计步骤
数据库设计的基本步骤:
1、系统需求分析与设计。
2、概念结构分析与设计。
3、逻辑结构分析与设计。
4、物理结构分析与设计。
5、系统实施。
6、系统维护。
(7)评价数据库设计扩展阅读:
数据库设计技巧:
1、原始文件与实体的关系
它可以是一对一,一对多,多对多的关系。一般来说,它们是一对一的关系:一个原始文档只对应于一个实体。在特殊情况下,它们可以是一对多或多对一关系,即一个原始文档对应于多个实体,或者多个原始文档对应于一个实体。
这里的实体可以理解为基本表。在对应关系明确后,对输入接口的设计非常有利。
2、主键和外键
一般来说,实体不能既没有主键也没有外键。在E-R图中,叶中的实体可以定义主键或不定义主键(因为它没有子代),但它必须有外键(因为它有父项)。
主键和外键的设计在全局数据库的设计中起着重要的作用。当全球数据库的设计完成后,一位美国数据库设计专家说:“钥匙无处不在,只有钥匙。”。这是他数据库设计的经验,也体现了他对信息系统核心(数据模型)高度抽象的理念。
因为:主键是一个高度抽象的实体。主键和外键的配对表示实体之间的连接。
3、基本表的属性
基本表不同于中间表和临时表,因为它具有以下四个特点:
原子性。基本表中的字段不可分解。
原始主义。基本表中的记录是原始数据(基本数据)的记录。
演绎的。所有输出数据都可以从基本表和代码表中的数据导出。
稳定。基本表的结构比较稳定,表中的记录要长期保存。
在了解基本表的性质之后,在设计数据库时,可以将基本表与中间表和临时表区分开来。
Ⅷ 数据库如何设计
数据库设计的基本步骤
按照规范设计的方法,考虑数据库及其应用系统开发全过程,将数据库设计分为以下6个阶段
1.需求分析
2.概念结构设计
3.逻辑结构设计
4.物理结构设计
5.数据库实施
6.数据库的运行和维护
数据库设计通常分为6个阶段1分析用户的需求,包括数据、功能和性能需求;2概念结构设计:主要采用E-R模型进行设计,包括画E-R图;3逻辑结构设计:通过将转换成表,实现从E-R模型到关系模型的转换;4:主要是为所设计的数据库选择合适的和存取路径;5数据库的实施:包括编程、测试和试运行;6数据库运行与维护:系统的运行与数据库的日常维护。),主要讨论其中的第3个阶段,即逻辑设计。
在数据库设计过程中,需求分析和概念设计可以独立于任何数据库管理系统进行,逻辑设计和物理设计与选用的DAMS密切相关。
1.需求分析阶段(常用自顶向下)
进行数据库设计首先必须准确了解和分析用户需求(包括数据与处理)。需求分析是整个设计过程的基础,也是最困难,最耗时的一步。需求分析是否做得充分和准确,决定了在其上构建数据库大厦的速度与质量。需求分析做的不好,会导致整个数据库设计返工重做。
需求分析的任务,是通过详细调查现实世界要处理的对象,充分了解原系统工作概况,明确用户的各种需求,然后在此基础上确定新的系统功能,新系统还得充分考虑今后可能的扩充与改变,不仅仅能够按当前应用需求来设计。
调查的重点是,数据与处理。达到信息要求,处理要求,安全性和完整性要求。
分析方法常用SA(Structured Analysis) 结构化分析方法,SA方法从最上层的系统组织结构入手,采用自顶向下,逐层分解的方式分析系统。
数据流图表达了数据和处理过程的关系,在SA方法中,处理过程的处理逻辑常常借助判定表或判定树来描述。在处理功能逐步分解的同事,系统中的数据也逐级分解,形成若干层次的数据流图。系统中的数据则借助数据字典(data dictionary,DD)来描述。数据字典是系统中各类数据描述的集合,数据字典通常包括数据项,数据结构,数据流,数据存储,和处理过程5个阶段。
2.概念结构设计阶段(常用自底向上)
概念结构设计是整个数据库设计的关键,它通过对用户需求进行综合,归纳与抽象,形成了一个独立于具体DBMS的概念模型。
设计概念结构通常有四类方法:
自顶向下。即首先定义全局概念结构的框架,再逐步细化。
自底向上。即首先定义各局部应用的概念结构,然后再将他们集成起来,得到全局概念结构。
逐步扩张。首先定义最重要的核心概念结构,然后向外扩张,以滚雪球的方式逐步生成其他的概念结构,直至总体概念结构。
混合策略。即自顶向下和自底向上相结合。
- 需要注意:
- ● 在确定支持数据时,请一定要参考你之前所确定的宏观行为,以清楚如何利用这些数据。
- ● 比如,如果你知道你需要所有员工的按姓氏排序的列表,确保你将支持数据分解为名字与姓氏,这比简单地提供一个名字会更好。
- ● 你所选择的名称最好保持一致性。这将更易于维护数据库,也更易于阅读所输出的报表。
- ● 比如,如果你在某些地方用了一个缩写名称Emp_status,你就不应该在另外一个地方使用全名(Empolyee_ID)。相反,这些名称应当是Emp_status及Emp_id。
- ● 数据是否与正确的table相对应无关紧要,你可以根据自己的喜好来定。在下节中,你会通过测试对此作出判断。
3.逻辑结构设计阶段(E-R图)
逻辑结构设计是将概念结构转换为某个DBMS所支持的数据模型,并将进行优化。
在这阶段,E-R图显得异常重要。大家要学会各个实体定义的属性来画出总体的E-R图。
各分E-R图之间的冲突主要有三类:属性冲突,命名冲突,和结构冲突。
E-R图向关系模型的转换,要解决的问题是如何将实体性和实体间的联系转换为关系模式,如何确定这些关系模式的属性和码。
4.物理设计阶段
物理设计是为逻辑数据结构模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。
首先要对运行的事务详细分析,获得选择物理数据库设计所需要的参数,其次,要充分了解所用的RDBMS的内部特征,特别是系统提供的存取方法和存储结构。
常用的存取方法有三类:1.索引方法,目前主要是B+树索引方法。2.聚簇方法(Clustering)方法。3.是HASH方法。
5.数据库实施阶段
数据库实施阶段,设计人员运营DBMS提供的数据库语言(如sql)及其宿主语言,根据逻辑设计和物理设计的结果建立数据库,编制和调试应用程序,组织数据入库,并进行试运行。
6.数据库运行和维护阶段
数据库应用系统经过试运行后,即可投入正式运行,在数据库系统运行过程中必须不断地对其进行评价,调整,修改。
数据库设计5步骤
Five Steps to design the Database
1.确定entities及relationships
a)明确宏观行为。数据库是用来做什么的?比如,管理雇员的信息。
b)确定entities。对于一系列的行为,确定所管理信息所涉及到的主题范围。这将变成table。比如,雇用员工,指定具体部门,确定技能等级。
c)确定relationships。分析行为,确定tables之间有何种关系。比如,部门与雇员之间存在一种关系。给这种关系命名。
d)细化行为。从宏观行为开始,现在仔细检查这些行为,看有哪些行为能转为微观行为。比如,管理雇员的信息可细化为:
· 增加新员工
· 修改存在员工信息
· 删除调走的员工
e)确定业务规则。分析业务规则,确定你要采取哪种。比如,可能有这样一种规则,一个部门有且只能有一个部门领导。这些规则将被设计到数据库的结构中。
====================================================================
范例:
ACME是一个小公司,在5个地方都设有办事处。当前,有75名员工。公司准备快速扩大规模,划分了9个部门,每个部门都有其领导。
为有助于寻求新的员工,人事部门规划了68种技能,为将来人事管理作好准备。员工被招进时,每一种技能的专业等级都被确定。
定义宏观行为
一些ACME公司的宏观行为包括:
● 招聘员工
● 解雇员工
● 管理员工个人信息
● 管理公司所需的技能信息
● 管理哪位员工有哪些技能
● 管理部门信息
● 管理办事处信息
确定entities及relationships
我们可以确定要存放信息的主题领域(表)及其关系,并创建一个基于宏观行为及描述的图表。
我们用方框来代表table,用菱形代表relationship。我们可以确定哪些relationship是一对多,一对一,及多对多。
这是一个E-R草图,以后会细化。
细化宏观行为
以下微观行为基于上面宏观行为而形成:
● 增加或删除一个员工
● 增加或删除一个办事处
● 列出一个部门中的所有员工
● 增加一项技能
● 增加一个员工的一项技能
● 确定一个员工的技能
● 确定一个员工每项技能的等级
● 确定所有拥有相同等级的某项技能的员工
● 修改员工的技能等级
这些微观行为可用来确定需要哪些table或relationship。
确定业务规则
业务规则常用于确定一对多,一对一,及多对多关系。
相关的业务规则可能有:
● 现在有5个办事处;最多允许扩展到10个。
● 员工可以改变部门或办事处
● 每个部门有一个部门领导
● 每个办事处至多有3个电话号码
● 每个电话号码有一个或多个扩展
● 员工被招进时,每一种技能的专业等级都被确定。
● 每位员工拥有3到20个技能
● 某位员工可能被安排在一个办事处,也可能不安排办事处。
2.确定所需数据
要确定所需数据:
a)确定支持数据
b)列出所要跟踪的所有数据。描述table(主题)的数据回答这些问题:谁,什么,哪里,何时,以及为什么
c)为每个table建立数据
d)列出每个table目前看起来合适的可用数据
e)为每个relationship设置数据
f)如果有,为每个relationship列出适用的数据
确定支持数据
你所确定的支持数据将会成为table中的字段名。比如,下列数据将适用于表Employee,表Skill,表Expert In。
Employee
Skill
Expert In
ID
ID
Level
Last Name
Name
Date acquired
First Name
Description
Department
Office
Address
如果将这些数据画成图表,就像:
3.标准化数据
标准化是你用以消除数据冗余及确保数据与正确的table或relationship相关联的一系列测试。共有5个测试。本节中,我们将讨论经常使用的3个。
关于标准化测试的更多信息,请参考有关数据库设计的书籍。
标准化格式
标准化格式是标准化数据的常用测试方式。你的数据通过第一遍测试后,就被认为是达到第一标准化格式;通过第二遍测试,达到第二标准化格式;通过第三遍测试,达到第三标准化格式。
如何标准格式:
1. 列出数据
2. 为每个表确定至少一个键。每个表必须有一个主键。
3. 确定relationships的键。relationships的键是连接两个表的键。
4. 检查支持数据列表中的计算数据。计算数据通常不保存在数据库中。
5. 将数据放在第一遍的标准化格式中:
6. 从tables及relationships除去重复的数据。
7. 以你所除去数据创建一个或更多的tables及relationships。
8. 将数据放在第二遍的标准化格式中:
9. 用多于一个以上的键确定tables及relationships。
10. 除去只依赖于键一部分的数据。
11. 以你所除去数据创建一个或更多的tables及relationships。
12. 将数据放在第三遍的标准化格式中:
13. 除去那些依赖于tables或relationships中其他数据,并且不是键的数据。
14. 以你所除去数据创建一个或更多的tables及relationships。
数据与键
在你开始标准化(测试数据)前,简单地列出数据,并为每张表确定一个唯一的主键。这个键可以由一个字段或几个字段(连锁键)组成。
主键是一张表中唯一区分各行的一组字段。Employee表的主键是Employee ID字段。Works In relationship中的主键包括Office Code及Employee ID字段。给数据库中每一relationship给出一个键,从其所连接的每一个table中抽取其键产生。
RelationShip
Key
Office
*Office code
Office address
Phone number
Works in
*Office code
*Employee ID
Department
*Department ID
Department name
Heads
*Department ID
*Employee ID
Assoc with
*Department ID
*EmployeeID
Skill
*Skill ID
Skill name
Skill description
Expert In
*Skill ID
*Employee ID
Skill level
Date acquired
Employee
*Employee ID
Last Name
First Name
Social security number
Employee street
Employee city
Employee state
Employee phone
Date of birth
将数据放在第一遍的标准化格式中
● 除去重复的组
● 要测试第一遍标准化格式,除去重复的组,并将它们放进他们各自的一张表中。
● 在下面的例子中,Phone Number可以重复。(一个工作人员可以有多于一个的电话号码。)将重复的组除去,创建一个名为Telephone的新表。在Telephone与Office创建一个名为Associated With的relationship。
将数据放在第二遍的标准化格式中
● 除去那些不依赖于整个键的数据。
● 只看那些有一个以上键的tables及relationships。要测试第二遍标准化格式,除去那些不依赖于整个键的任何数据(组成键的所有字段)。
● 在此例中,原Employee表有一个由两个字段组成的键。一些数据不依赖于整个键;例如,department name只依赖于其中一个键(Department ID)。因此,Department ID,其他Employee数据并不依赖于它,应移至一个名为Department的新表中,并为Employee及Department建立一个名为Assigned To的relationship。
将数据放在第三遍的标准化格式中
● 除去那些不直接依赖于键的数据。
● 要测试第三遍标准化格式,除去那些不是直接依赖于键,而是依赖于其他数据的数据。
● 在此例中,原Employee表有依赖于其键(Employee ID)的数据。然而,office location及office phone依赖于其他字段,即Office Code。它们不直接依赖于Employee ID键。将这组数据,包括Office Code,移至一个名为Office的新表中,并为Employee及Office建立一个名为Works In的relationship。
4.考量关系
当你完成标准化进程后,你的设计已经差不多完成了。你所需要做的,就是考量关系。
考量带有数据的关系
你的一些relationship可能集含有数据。这经常发生在多对多的关系中。
遇到这种情况,将relationship转化为一个table。relationship的键依旧成为table中的键。
考量没有数据的关系
要实现没有数据的关系,你需要定义外部键。外部键是含有另外一个表中主键的一个或多个字段。外部键使你能同时连接多表数据。
有一些基本原则能帮助你决定将这些键放在哪里:
一对多在一对多关系中,“一”中的主键放在“多”中。此例中,外部键放在Employee表中。
一对一在一对一关系中,外部键可以放进任一表中。如果必须要放在某一边,而不能放在另一边,应该放在必须的一边。此例中,外部键(Head ID)在Department表中,因为这是必需的。
多对多在多对多关系中,用两个外部键来创建一个新表。已存的旧表通过这个新表来发生联系。
5.检验设计
在你完成设计之前,你需要确保它满足你的需要。检查你在一开始时所定义的行为,确认你可以获取行为所需要的所有数据:
● 你能找到一个路径来等到你所需要的所有信息吗?
● 设计是否满足了你的需要?
● 所有需要的数据都可用吗?
如果你对以上的问题都回答是,你已经差不多完成设计了。
最终设计
最终设计看起来就像这样:
设计数据库的表属性
数据库设计需要确定有什么表,每张表有什么字段。此节讨论如何指定各字段的属性。
对于每一字段,你必须决定字段名,数据类型及大小,是否允许NULL值,以及你是否希望数据库限制字段中所允许的值。
选择字段名
字段名可以是字母、数字或符号的任意组合。然而,如果字段名包括了字母、数字或下划线、或并不以字母打头,或者它是个关键字(详见关键字表),那么当使用字段名称时,必须用双引号括起来。
为字段选择数据类型
SQL Anywhere支持的数据类型包括:
整数(int, integer, smallint)
小数(decimal, numeric)
浮点数(float, double)
字符型(char, varchar, long varchar)
二进制数据类型(binary, long binary)
日期/时间类型(date, time, timestamp)
用户自定义类型
关于数据类型的内容,请参见“SQL Anywhere数据类型”一节。字段的数据类型影响字段的最大尺寸。例如,如果你指定SMALLINT,此字段可以容纳32,767的整数。INTEGER可以容纳2,147,483,647的整数。对CHAR来讲,字段的最大值必须指定。
长二进制的数据类型可用来在数据库中保存例如图像(如位图)或者文字编辑文档。这些类型的信息通常被称为二进制大型对象,或者BLOBS。
关于每一数据类型的完整描述,见“SQL Anywhere数据类型”。
Ⅸ 海洋油气资源调查与评价数据库系统的设计与实现
王刚龙李绍荣陈泓君曾繁彩
(广州海洋地质调查局,广州,510760)
第一作者简介:王刚龙,男,1971年生,物探工程师,1995年毕业于长春地质学院电子仪器系电子仪器与测量专业,主要从事信息管理及信息研究工作。
摘要“海洋油气资源调查与评价数据库”是以海洋油气资源调查工作为基础,汇集大量海洋地质调查和油气资源评价成果资料,综合利用计算机、地理信息系统(GIS)、数据库及网上发布等技术建设而成的,是一个为国家海洋矿产资源战略决策、为海洋经济建设、为今后的海洋地质调查和科研项目及可持续发展提供全面、准确基础资料和决策依据的专业化信息管理系统。文中重点介绍了系统数据库的建设及系统功能的开发的思路。
关键词油气资源GIS海洋勘查数据库网上发布
1意义
我国海域蕴藏着丰富的油气资源。数十年来,我国在海域油气资源调查方面,取得了大量的海洋地质调查成果资料和油气资源评价资料,这些资料凝结着广大科技工作者的劳动结晶。以寻找海洋油气资源为目的的海洋地质调查工作投入高昂,从海上资料和数据采集到陆上资料处理、解释、研究,直至编写成果报告、编制成果图件,各个环节都要投入大量人力、物力、设备和资金。应用先进的信息技术建立海上油气地质调查资料与资源评价数据库系统,将会提高我国的海洋地质调查资料管理和服务水平,使海洋地质调查和资源评价资料更好地为国家海洋矿产资源战略决策、为国家经济建设、为今后的海洋地质调查和科研项目服务。
2系统设计
本系统的目标是应用数据库技术、网络技术、地理信息系统技术开发一套技术上较先进的数据库应用系统,将油气资源及评价相关的数据和调查资料进行管理,综合应用多项技术,实现资料全文、电子图件、各种媒体资料的网上浏览、查询和统计分析。满足海洋油气地质调查资料和资源评价数据管理的需要和从事海洋油气地质调查和科研人员利用资料的需要。
2.1数据库设计及建设
针对海洋油气地质调查成果的资料形式,建立一个适用于海洋地质资料管理和利用的数据库系统。建库工作包括数据库设计、资料档案目录数据、成果报告全文电子文件、成果报告附图扫描图片电子文件、资源评价数据的整理、录入。
2.2应用软件开发
要实现的系统基本功能包括:资料目录数据和全文内容电子文件的录入、编辑修改、资料归档管理、资料借阅管理、资料目录报表输出、目录输出、图像显示和输出、电子版图件和文字资料下载、远程资料查询和传送、网络环境下客户端浏览器的电子地图、全文、声像文件的显示/播放和操作、数据库文件备份等。
软件开发工作包括三套应用软件:①“地质资料管理系统”,使用者为资料管理人员;②“资源评价数据管理系统”,使用者为油气资源评价数据收集和录入人员;③“地质资料查询系统”,供普通科技人员通过Intranet/Internet网浏览查询资料全文、电子图件和目录数据内容。以上三个应用系统均使用同一个数据库系统,前二者对数据维护,后者从数据库读取数据。
2.3系统集成工作
实现服务器和客户机的连接和组网;后台数据库服务器与客户端的连接;原有资料目录数据导入处理;新数据录入加载;WEB站点的建立;MapGis-IMS互联网地图服务器的安装建立和矢量图形数据的整理加载,信息系统开发的三个应用软件与上述各系统的整合。
3系统总体结构
从逻辑上看,整个系统由“地质资料管理系统”、“资源评价数据管理系统”、“地质资料查询系统”三个应用系统和后台的数据库系统4个部分组成(图1),其中“地质资料查询系统”又由WEB服务器、MapGis-IMS互联网地图服务服务器、服务器端脚本程序以及0040数据库接口、ODBC数据库接口、MapGis数据库引擎等多个软件部件组成。
3.1C/S结构应用软件
“地质资料管理系统”和“资源评价数据管理系统”,仅限于资料管理员和数据维护人员使用,为提高系统安全,采用C/S结构。选用Power Builder集成开发环境作为C/S应用软件的开发工具。Power Builder是专用于开发数据库应用软件的工具,具备支持ORACLE等大型数据库平台的接口,提供特色的数据窗口控件,把常用的数据库操作封装在数据窗口控件中,提供开发语言Power Script,是开发数据库应用软件的高产开发工具。
3.2B/S结构应用软件
“地质资料查询系统”面向所有普通用户,要求不需要学习就能让用户使用,因此该应用软件结构采用B/S结构。“地质资料查询系统”涉及几项工作,分别选用的如下:
(1)微软公司的IIS5.0(Internet Information Server),在WEB服务器上建立网站。
(2)WEB应用软件,由于WEB应用软件的开发工具非常多,在应用软件开发中使用了多种技术和方法,包括:①语言:HTML、ASP、VB Script、Jscript、Action Script等;②数据接口:()DBC接口,004()接口;③开发工具:InterDev、Flash等。
(3)我国中地公司的MapGis-IMS互联网地图服务器实现电子地图浏览。
图1系统总体结构
Fig.1System construction chart
4系统数据库设计
本系统的数据主要是地质资料,包括地勘项目或科研项目完成后以成果报告和图件形式提交的资料,及在项目进行中产生的各种文件材料以及与资料或档案材料内容一致的电子文件。
4.1从应用系统的数据管理来看,三个应用系统分别管理三类数据
(1)地质资料数据
由“地质资料管理系统”维护的资料目录、报告全文以及各种多媒体的电子文件数据。
1)目录数据:成果报告、档案、图件等实体的目录数据,是描述这些实体属性特征的数据。例如成果报告的名称、编者、提交单位等。
2)文字材料的全文:成果报告、审核类文字材料(如评审意见书)的内容,在计算机中以电子文件形式存储,按照“国土资源部成果地质资料电子文件汇交格式(SZ1999002-2001)”的规定,要以WORD软件的.DOC文件格式存储。
3)多媒体资料的电子文件:包括声音、图像、视频、动画、幻灯片等电子文件。
(2)油气资源评价数据
与油气资源评价相关事物的属性数据,包括调查活动、构造、油气田、油气探井等。
(3)电子图件数据
由MapGis-IMS软件维护的矢量型图形数据,分别属于“成果地质资料电子文件汇交格式(SZ1999002-2001)”标准规定的第一类附图和第二类附图的电子文件格式,可由“地质资料查询系统”读取显示在浏览器中的数据。其在数据库中存储结构是MapGis-IMS开发者设计的。
4.2地质资料各实体关系
本信息系统工作重点是地质资料的管理和查询服务,主要是对地质资料数据库设计和数据库集成和应用开发。
地质资料各实体关系如图2。
图2地质资料数据E-R模型
Fig.2Geological data structure E-R model chart
需要说明的是,一份成果报告,有多个全文电子文件。一份报告的全文按照报告章节分成多个电子文件,是一对多的关系,而不是一对一。这是考虑避免用户在网上阅读报告全文时,每次都要从数据库取出整个报告的全文内容传送到本地浏览器中,从而增加网络数据传输量和数据库服务器的负担,造成等待而使用户感觉应用软件运行速度过慢。
根据资料数据模型、现行的资料管理办法和资料着录标准,确定各数据库结构及定义,共设计了3类17个数据表组成系统的数据库。电子地图数据表则由商品化软件设计管理。
(1)地质资料数据库表
包括报告基本信息表、报告附图信息表、档案总目录信息表、档案明细信息表、图件资料信息表、资料电子文件信息表等。
(2)资料管理事务库表
包括成果资料移交信息表、成果资料报送信息表、资料借还信息表、资料访问日志信息表、用户基本信息表等。
(3)油气评价数据库表
包括局部构造信息表、圈闭信息表、调查工作量信息表、油气田信息表、油气资源评价信息表、油气探井信息表等。
在数据库管理系统服务器端,用PL/SQL语言编写建立库数据表、表空间、序列、触发器等的命令代码文件,可在ORACLE的SQL-PLUS环境下自动执行完成相应对象的建立。
4.3服务器端的后台数据库系统
采用ORACLE数据库管理系统,用PL/SQL语言编写命令文件,在SQL-PLUS环境中执行,完成各种建库和维护操作,使建库、建立序列、建立触发器、数据导入程序化执行。直接利用DBA STUDIO可视化数据库管理工具,进行数据库表、用户账号密码、各种权限、序列、触发器等的维护和管理。用ORACLE提供的BLOB二进制大对象数据块字段类型,实现成果报告全文、图件资料的缩略图等电子文件的入库管理。
5系统功能实现
“地质资料管理系统”(GDMS)和“资源评价数据管理系统”,开发采用Power Builder软件的Power Script语言开发,与后台数据库连接采用Power Builder提供的ORACLE专用接口实现。软件结构采用客户机/服务器(C/S)结构。
5.1地质资料管理系统
根据用户对地质资料档案管理过程的需求,该系统需基本具备对数据的输入、维护、查询、统计、借阅、输出、备份等模块。为了保证数据的安全性,增加了凭密码、账号登录功能及用户管理,设置了系统管理员、资料管理员和普通用户三种权限,防止非法用户访问资料。普通用户只能对资料进行查询,不能对资料进行添加或修改等操作,资料管理员有权对资料进行添加、修改、查询等操作,而系统管理员则权限最大,增加了对用户管理表和系统日志信息表进行维护的权限。为了使用户更好地掌握本系统,还必须建立联机帮助模块。本系统各个主要模块之间的关系如图3所示。
图3地质资料管理系统主要模块关系示意图
Fig.3Geological data management system mole chart
5.2资源评价数据管理系统
“资源评价数据管理系统”管理对象是与油气资源评价有关的构造、油气资源、油气田、油气探井、资源评价数据的信息,功能上主要侧重于油气评价数据的维护。如录入新数据、数据查询与修改、数据备份/恢复和在线帮助。数据的安全性采用与地质资料管理系统相同的安全机制。考虑到PowerBuilder程序编制的特点,采用如图4所示的系统功能模块图。
5.3地质资料查询系统
“地质资料查询系统”实际是一个WEB应用软件系统,由网页组成的,这与传统的结构化应用程序不同,也与可视化集成环境下开发的窗体应用软件结构不同。传统的应用程序,结构明显,由各模块组成,模块之间通过参数传递实现模块间的联系,模块通过调用执行。可视化集成环境下开发的窗体应用软件,是由各种窗体、表单、模块、各种对象组成,代码执行是通过消息和事件驱动的。“地质资料查询系统”则由许多网页组成,网页中嵌入了可执行的脚本程序、Java小程序、控件等,必须在WEB服务器上建立网站运行,与WEB服务器上的各种应用服务一起实现特定的应用功能。
图4系统功能模块图
Fig.4Evaluation data management System mole chart
WEB服务器采用的是微软公司的IIS5.0(Internet Information Server),实现网站建立和管理。图件资料电子地图的发布查询浏览功能采用中地公司的MapGis-IMS互联网地图服务器,电子地图的图形数据文件存放在服务器上的数据库中或磁盘上,应用程序可通过数据库引擎读取图形数据,电子地图的目录数据则放在ORACLE数据库中。对ORACLE数据库中的以BLOB二进制大对象数据块存储的成果报告全文和图件缩略图等电子文件的读取,是通过ORACLE提供的0040数据接口实现。应用程序编程语言包括ASP、HTML、VB Script、Jscript、Action Script等,在Visual InterDev6.0集成开发平台完成开发工作。
图5的系统结构图中列出了地质资料查询系统的菜单和网页功能及其调用顺序。
6结束语
项目开发的系统是一个网络化的信息系统,分成前台应用软件和后台数据库系统两部分。本系统采取的技术路线是:采用商用大型数据库管理系统软件在后台对数据管理和维护,前台应用软件采用针对数据库应用软件开发的可视化集成开发环境(工具)进行开发工作。这样,数据库的物理结构设计及实现、数据维护管理、数据库网络连接接口等问题交由后台的商用数据库管理系统去完成,减少了系统开发难度,提高系统的稳定性和可靠性。
本系统的数据库应用实例已完成开发和在工作中运行,建成的系统具有如下特点:①实用性强;②系统的用户群体广;③系统功能满足了日常工作中的资料管理和资料查阅的需求,系统建成后能够继续得到日常维护;④系统提供的资料内容多样化,有全文资料和电子地图;⑤实现Intranet/Internet网络化服务,系统易使用和操作,适用于地质资料的社会化服务;⑥与当前国家关于地质资料信息化要求及相关标准相吻合。
图5地质资料查询系统功能结构图
Fig.5Geological data retrieval system mole chart
参考文献及资料
地矿部北京计算中心和石油地质研究所,1990.油气资源普查勘探数据库系统研制报告(地矿部科技发展项目86166)
胡存生.2001.Powerbuilder 7.0高级开发实例与技巧.北京:电子工业出版社
王庆瑞.1998.数据结构,北京出版社
武汉中地信息工程有限公司.MAPGIS Internet Map Server开发手册
张文新.1999.Internet程序设计java&HTML.哈尔滨:哈尔滨工程大学出版社
Kevin Loney.2000.Oracle 8i DBA Handbook.北京:机械工业出版社
Designing and Implememtation of Petroleum and Gas Resources Survey&Evaluation DBMS of Ocean
Wang Ganglong Li Shaorong Chen Hongjun Zeng Fancai
(Guangzhou Marine Geology Survey,Guangzhou,510760)
Abstract:Based on the data from petroleum and gas resources survey,as well as from marine geological survey,evaluation and material,petroleum and gas resources survey&evalu-ation DBMS(Pgrs&eDBMS)is formed by using computer,GIS,database and WEB development technology.Pgrs&eDBMS is a professional information management system for providing comprehensive and actual data as well as dicision-making basis for marine mineral resources survey,marine economic construction,science research and sustainable marine development.This paper focuses on introcing the establishment of database of Pgrs&eDBMS and the development of its function.
Key Word:Petroleum resourcesGISMarine surveyDatabaseOnline distribution.