引论:我们为您整理了13篇数据库设计范文,供您借鉴以丰富您的创作。它们是您写作时的宝贵资源,期望它们能够激发您的创作灵感,让您的文章更具深度。
篇1
需求分析是在项目确定之后,用户和设计人员通过详细的调查研究,充分了解用户的组织机构、业务规则、数据需求等等。所谓需求是指用户对软件的功能和性能的要求,就是用户希望软件能做什么事情,完成什么样的功能,达到什么性能。需求分析是数据库设计最基础的工作,如果这个阶段的工作不准确或有误,那么后面几个阶段的任务就会有偏差,如果到测试阶段才发现错误再去更改必然会付出很大的代价,因此必须高度重视这个阶段的人任务。需求分析阶段的后期编写系统分析报告,主要包括:系统的概况、目标、范围、现状等;系统及子系统的结构说明;系统的功能划分;系统的组织机构联系图;数据流程图;功能模块图及数据字典等内容。然后将此需求分析报告提交给用户的决策部门讨论审查,通过审查以后的需求分析报告作为今后各阶段设计和工作的依据。
例如:公司职工人事档案资料繁多,查询、统计、更新等各方面工作都不能更快更好进行,急需一管理系统实现人事资料的录入、维护、统计、查询等工作,明确要求后将具体事项形成书面报告审查后作为今后设计的依据。
2.概念结构设计
概念结构设计的目标是产生出一个能反映组织信息需求的概念模型,其特点有简单明确表示用户业务数据需求、数据之间的联系、数据约束条件等。概念结构的策略有四种自顶向下、自底向上、逐步扩张、混合策略。概念结构设计的最著名、最常用的方法是实体-联系方法,简称E-R方法。它虽然只有几个基本元素(实体、属性、联系),但能够表达现实世界复杂的数据、数据之间的关系和约束条件。
E-R图设计是对需求分析阶段所得到的数据进行分类、聚集、概括,确定实体、属性和联系,具体步骤如下:
2.1选择局部应用
数据流图是对业务处理过程从高层到底层的一级级抽象,高层抽象流图一般反映系统的概貌,对数据的引用较为笼统,选择适当层次的数据流图,让这一层的每一部分对应一个局部应用,实现某一项功能。
2.2逐一设计局部E-R图
规划好各个局部应用之后,对每一个局部应用设计局部E-R图,按照局部应用的数据流图,从数据字典中提取数据,使用抽象机制,确定局部应用中的实体、实体的属性、实体标示符、实体间的联系和类型,但是许多实物是实体还是属性没有明确的界定,要根据具体情况判断,一般来说,属性不能再分,属性也不能和其他实体发生联系,因为联系是实体和实体间的联系。
2.3 E-R图合并
根据局部应用设计好的局部E-R图之后,就可以对各局部E-R图进行合并,合并的目的是在合并过程中解决局部E-R图之间存在的冲突,消除存在的信息冗余,使之成为供用户理解的统一的、精练的全局概念模型。对所有的局部E-R图合并之后,就形成了全局E-R图,从而完成了概念结构设计。
3.逻辑结构设计
逻辑结构设计是在概念结构设计的基础上进行的数据模型设计,一般有层次、网状模型和关系模型,现在绝大多数DBMS都是基于关系模型的,此阶段的主要任务有确定数据模型、将E-R图转换为指定的数据模型、确定完整性约束、确定用户视图。
例如:部门(1)————职工(M)。
4.物理结构设计
在实现数据库逻辑结构设计之后,就要确定数据库在计算机中的具体存储。数据库在计算机物理设备上的存储结构与存取方法称为数据库的物理结构。数据库的物理设计完全依赖于给定的数据库软件和硬件设备。层次和网状模型物理设计比较复杂,而关系DBMS对物理设计要求很少,由DBA来实现。物理结构设计需要确定数据分布、确定存储结构、确定存取方式。
5.数据库实施阶段
确定了数据库的逻辑结构和物理结构以后,可以利用DBMS提供的数据定义语言建立数据库的结构。
例如:CREATE TABLE 职工库。
(职工编号 CHAR(6) NOT NULL,
姓名 CHAR(8) NOT NULL,
性别 CHAR(2),
所属部门 CHAR(10),
PRIMARYKEY KEY (职工编号));
当数据库的结构建成之后,就可向数据库中加载数据,由于数据库中的数据量非常大,为了避免浪费大量人力财力时间等,通常专门设计一个录入子系统来提高效率,满足用户的要求。该子系统一般包括数据录入、录入过程的数据校验、代码转换、数据完整性约束、安全性检查等功能。
6.数据库的运行与维护
数据库设计与应用开发工作完成之后系统便进入运行与维护阶段。为保证数据库系统的安全稳定运行,需要综合考虑可能遇到的各种问题,指定详尽的运行计划和应对措施。任何因素导致系统初选问题,都可能给用户带来损失。
数据库的运行与维护阶段主要任务有:
6.1维护数据的安全性和数据完整性
为保障系统的稳定运行,必须制定运行策略。数据库的运行离不开用户的访问和操作,安全性策略包括网络安全、用户的权限管理、设备的安全及数据的安全等方面。按照设计阶段提供的安全和故障规范。实施授权和设定密码,并经常检查系统的安全性和可靠性,实施备份、恢复和数据重组的任务。
6.2监测并改变数据库性能
经常对数据库存储空间的状况和响应速度进行评价分析,确定优化和改善的措施,及时调整系统的运行状况。
6.3数据库的维护
在数据库系统的运行过程中,可能会由于某些原因需要修改数据库的结构,称为数据库的重构,重构包括表结构的修改和视图的修改。还要根据用户环境的扩大,适时的向数据库增加一些新的数据和功能。
篇2
4、数据库物理设计:为逻辑数据模型选取一个最适合应用环境的物理结构;
篇3
1 数据库概述
数据库是数据管理的最新技术。数据管理先后经过了人工管理阶段、文件系统阶段、数据库系统阶段。在数据库领域中最常用的数据模型有层次模型、网状模型、关系模型、面向对象模型等。关系型数据库系统是建立在关系模型基础上的。
关系数据库系统遵循严格的数学基础,它应用数学方法,主要是集合代数的概念和方法来处理数据库中的数据。关系数据库的数据结构简单,它的逻辑结构可以看做是一张二维表。
2 数据库设计方法及流程
大型数据库的设计是涉及多学科的综合性技术。数据库设计是指对于一个给定的应用环境,构造优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效地存储和管理数据,满足各种用户的应用需求。数据库的设计应符合“三分技术、七分管理、十二分基础数据”的基本原则。其基本设计步骤分为:需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施、数据库运行和维护六个阶段。
2.1 需求分析
需求分析是数据库设计的起点,简单地说就是分析用户的需求。该阶段的任务是通过详细调查现实世界要处理的对象,充分了解原系统工作状况,明确用户的各种需求(包括信息要求、安全性与完整性要求),然后在此基础上确定新系统的功能。注意新系统必须充分考虑今后可能的扩充和改变,以预留出足够的可扩展空间等。例如:对于一个教务管理系统的设计,设计之初首先应了解其工作需求,确定要实现哪些功能、应包含哪些属性以及未来可能的扩展需求等。
2.2 概念结构设计
概念结构设计是将需求分析阶段所得到的用户需求抽象为信息结构的过程,它是整个数据库设计的关键。概念结构的主要特点包括:能真实充分的反应现实世界,易于理解,易于改正,易于向关系、网状、层次等各种数据模型转换。
概念结构设计通常有自顶向下、自底向上、逐步扩张、混合策略四种方法。概念结构是对现实世界的一种抽象,一般包括分类、聚集和概括三种抽象。利用抽象机制对数据进行分类、聚集,形成实体、实体的属性,标识实体的码,确定实体之间的联系类型,设计分E-R图是概念结构设计的第一步。具体做法包括:选择局部应用,一般以中层数据流图作为设计分E-R图的依据;逐一设计分E-R图,即对每个局部应用设计分E-R图。最后,将得到的各分E-R图综合形成一个系统的总E-R图。在教务管理系统中有学生、教师、主任等实体,学生实体有包含姓名、学号、班级、成绩等属性,应对其逐一设计E-R图。
注意在形成总E-R图的过程中并不是将各个分E-R图进行简单的合并,因为在合并过程中分E-R图之间会因为各种原因导致许多不一致的地方,即会产生冲突现象。应先通过讨论、协商并根据应用的语义解决各类冲突。
2.3 逻辑结构设计
逻辑结构设计是指将概念结构设计阶段设计好的E-R图转换为与选用DBMS产品所支持的数据模型相符合的逻辑结构。设计逻辑结构首先将概念结构转换为关系、网状、层次模型。例如,设计关系模型就要根据E-R图设计二维表,二维表中包括字段名、数据类型、长度、描述等。最后设计符合用户习惯的外模式。
实现E-R图向关系模型的转换实际是就是将实体型、实体的属性和实体之间的联系转换为关系模式。实体的属性就是关系的属性,实体的码就是关系的码,实体之间的联系应注意它是一对一、一对多还是多对多的联系。形成初步的关系模型后,然后就是对模型的优化。关系数据模型的优化通常以规范化理论为指导。在对外模式的设计上,关系数据库管理系统一般都使用视图这一功能设计更符合局部用户需要的用户外模式。
2.4 物理设计
物理结构设计就是为逻辑结构设计阶段所得到的数据模型选取一个最适合应用要求的物理结构。在关系数据库中主要是先指定存取方法和存储结构,然后主要对时间和空间效率进行评价。
考虑到数据库系统是多用户的共享系统,所以应建立多条存取路径以满足多用户的多种应用要求。常用的存取方法有索引方法、聚簇方法、HASH方法。
2.5 数据库的实施和维护
在数据库实施阶段,设计人员要用RDBMS提供的数据定义语言和其他实用程序将数据库逻辑设计和物理设计结果严格描述出来,成为DBMS可以接受的源代码,再经过调试产生目标模式,最后就可以组织数据入库了。
在数据库试运行后,由于应用环境、物理存储等不断的变化,所以应对数据库进行长期的维护工作。对数据库的维护包括:数据库的转储和恢复,数据库的安全性、完整性控制,数据库性能的监督、分析和改造,数据库的重组织与重构造等。
3 数据库的规范化及约束条件
由于逻辑结构设计并不唯一,对于任何一种数据库应用系统如何构造出合适的逻辑结构,这就涉及到规范化问题。对于关系模式最基本的要求是应满足第一范式,即每一个分量必须是不可分割的数据项。此外,为了消除关系模式中存在的插入删除异常,修改复杂,数据冗余等毛病,应使关系模式逐步满足第二、第三范式、BC范式等。
关系的完整性规则是对关系的某种约束条件。它包括实体完整性、参照完整性和用户自定义的完整性三种完整性约束。其中,实体完整性要求关系中的主属性不能为空;参照完整性是用来描述实体与实体之间联系的完整性约束,这两个是必不可少的完整性约束条件。此外,数据库系统根据应用环境的不同可能会有某些特殊的约束条件,这就需要用户自定义完整性。
完整性约束和规范化是数据库系统设计中必不可少的约束条件。只有满足这些约束条件才能设计出完整、高效、可靠的数据库系统。
总之,在信息化社会,能充分有效地管理和利用各类信息资源,是进行科学研究和决策管理的前提条件。数据库技术是管理信息系统、办公自动化系统、决策支持系统等各类信息系统的核心部分。
高思,1993年9月,汉族,河北省石家庄,本科,学生,计算机科学与技术。
赵博,1992年6月,汉族,河北省张家口市,本科,学生,计算机科学与技术。
参考文献
[1] 王珊,萨师煊,《数据库系统概论》,高等教育出版社,2013.12.
[2] 王晴,《新编关系数据库与SQL Server 2008》,清华大学出版社2013.8.
[3] 胜,赵会东,《SQL Server入门经典》,机械工业出版社,2103.4.
[4] 李巧君,刘春茂,浅析数据库设计的一般流程和原则.技术与市场.2010.
篇4
1 现状
现在信息系统的开发中数据库的设计所在比重越来越大,防止数据库不被非法访问、破坏和提高数据库的性能是数据库设计非常重要的环节,数据库安全性设计和性能优化已被广大系统开发者所重视。
2 保护数据库安全的措施
2.1 用户标识与鉴别
在我们使用的计算机系统中,安全措施是分很多层次的,用户标识与鉴别是系统所能够提供的安全保护措施中最外面的一层。其方法是由系统为用户提供一定的方式和规则让用户标识自己的名字或身份,以便每次用户登陆系统时,对比数据库记录的合法用户信息,通过验证方能访问数据库。具体设计数据库时我们可以创建sys_user表,这些用户的标识和鉴别信息在sys_user表中保存,用户每次登录系统时应用程序都会对比用户所输入的用户名和密码与数据库这样就可以确定用户是否合法。
2.2 存取控制
数据库安全中最重要的一方面是确保只允许有一定资格的用户去访问数据库定的表或者数据,这主要是通过数据库系统的存取控制实现的。目的是将用户权限等级到数据字典中。用户只访问他有权访问的数据。每当用户进行某些数据的查询、插入、修改、删除等操作时,先对其进行一些检查,主要检查这些用户的操作权限,若用户的操作请求超出了或者不符合系统定义的权限,系统将拒绝用户执行此操作。
比如:管理人员可以被允许访问系统内全部的数据;单个部门只能访问本部门的在建以及历史数据。
2.3 定义视图
视图是从一个或者多个表(视图)中所导出的表,其结构的构成和数据确立是建立在查询这些表(视图)基础上的。视图并不是真是存在的表而是一张虚表,视图所对应的数据是在视图所引用的基础表中存储的。
在关系数据库中,可以根据实际的需求为特定的用户定义特定的视图。让表中的一部分数据只对一部分特定的用户可见。如果一些数据是保密的,就可以使用视图把这些数据隐藏起来,使没有获得授权的用户不能看到这些数据。对数据库提供安全保护。
比如某公司有A、B两个部门,A部门只能访问本部门的在建、历史项目数据;其他项目的数据对其是不可见的。可以为A项目建立“部门人力资源视图”,从数据库“部门人力资源信息表”查看A项目的人员情况。
2.4 使用存储过程
存储过程通过隔离的方法提高了数据库的安全性,通过授权可以让用户只能执行存储构成而不能直接访问数据库对象。建立一个存储过程是很灵活的,并且可以实现一定的逻辑处理。
2.5 充分利用系统全局区域SGA(System Global Area)
我们用Oracle设计数据库,当我们启动Oracle的数据库时,系统为了储存用户所需要数据及Oracle正常运行所必备系统信息,首先会在内存内规划出来一个固定的区域使用。这个区域我们称为系统全局区(System Global Area),简称SGA。数据库管理员可以依据数据库实际运行状况根据需要调整数据库系统全局区(SGA区)的数据库缓冲区、共享池和日志缓冲区的大小。只有合理设置这些内存缓冲区,才可很大加快数据的查询速度,只要所使用的内存区足够大就可以把绝大多数的数据都存储在内存中,只有那些不活跃的不经常使用的数据,才从磁盘中读取。这里有一点是需要注意的,SGA区并不是我们想象的越大越好,SGA区如果过大就会占用操作系统所使用的内存从而引起虚拟内存的页面交换,这样的话反而会降低系统运行性能, SGA的尺寸不大于物理内存的一半是我们所设计的原则。
在 Oracle8i 中,SGA 的大小不是手动设置而是由初始化参数文件内的一些参数所设定,这其中有不是很方便的地方是每次调整后必须等重新激活数据库这才能生效。从Oracle9i 以后,DBA 可以动态配置内存的大小;这样的数据库技术我们称为「dynamicSGA。有了dynamic SGA ,SGA的各组成区域都可以动态地进行规划与调整,而不需先关闭数据库。
3 结束语
数据库管理员只有认真分析Oracle在其运行使用过程中可能出现的各种安全性问题,综合运用上面介绍的规律,Oracle数据库才能高效、安全、可靠地运行。这里还需要指出的是,数据库的安全是一个系统工程,涉及到方方面面,我们设计的时候要考虑到各个方面综合分析,不能只根据一个特定时间点的安全情况就断定数据库安全运行的好与坏。
参考文献:
[1]聂军.论数据库安全性设计[J].中国现代教育装备,2009(01).
篇5
1.2虚拟数据库的实现虚拟数据库操作的底层接口是各种物理数据库提供的API,虚拟数据库需要将这些API集中地封装起来,并根据用户的需求选择使用。封装结构可以如下所示。示例中仅封装了几个常用的数据库API,也可以根据需求追加定义其他API进入封装结构,也可以根据用户需求随时将其他数据库API封装进来。
2数据下发过程
2.1数据正常下发过程(1)底层网元首先向上层网元上报数据资源审计请求,并将底层网元的数据标识(通常为MD5校验码)带给上层网元。(2)计算底层网元数据审计标识,判断底层数据是否与上层网元数据一致,如果一致,发送数据审计结果正确给底层网元,否则发送数据不一致给底层网元。(3)根据结果判断,如果无需同步,向上层网元发送数据审计流程结束,如果需要同步,向上层网元发送数据请求,数据请求中包含请求数据表,以及数据指针,用于标识上次请求到的数据位置。(4)按照请求数据,从数据库中取出数据,以及数据指针,封装进数据下发包。(5)数据循环向下层网元发送,直到底层网元不在请求数据为止,同时底层网元上报数据审计流程结束,完成数据下发过程。
2.2数据异常下发过程(1)底层网元在无法打开本地的数据库情况下,判断为本地数据库已经损坏,向上层网元发送数据库崩溃通知。(2)生成下层网元的数据库,根据网元类型,通过FTP向底层网元发送数据库文件或者数据文件。(3)底层网元接收完成数据库后,打开数据库,上报数据资源审计请求。
篇6
0 引 言
启动VS 2010集成开发环境[1],链接Excel电子表格,以程序方式将Excel电子表格中的数据读出,定义一个中间件Dataset数据集,将取到的数据缓存在内存中的一个临时存储区,链接各种数据库,构造插入数据记录的程序代码,打开数据库链接,将中间件Dataset数据集中暂存的数据永久插入数据库中,关闭数据库链接[2]。
1 导入Office模块
VS 2010加强了对Office的支持,给开发带来了极大的灵活性,增强了应用程序与Office的交互,并且能够在很大程度上精简代码。
2 链接数据源
数据源泛指各种不同位置上的数据库、各类数据文件,每种数据源都有自己不同的链接规范,VS 2010按这些不同规范都组织在一起,为编程人员提供了一个统一的操作接口,编程人员可根据自己应用程序所用不同数据源,而选取不同的链接方式和参数。
在这里把Excel表数据导入MySQL数据库,因此具体论述这种数据源的链接方式,其他数据库原理相同。
2.1 链接Excel电子表格文件
2.2 链接SQL Server数据库
VS 2010带有一个轻型的SQL 2008数据库系统[4],首先用这个系统建立一个SQL数据库abc.mdf,在数据库中建立一张二维数据表文件,取名为temp1。在VS 2010中的操作路径是:在项目上右击鼠标在快捷菜单中先“添加”菜单项在下一级级联菜单中选“新建项”菜单项打开添加新项对话框,选择“数据”选项卡在“数据”选项卡内选择“基于服务的数据库”项,填好自己的数据库名,本例用abc.mdf。
3 将数据永久存入数据库
下一步要把中间件DataSet中的临时数据永久存入数据库中[5]。根据2.2节所述内容,数据库已经连通,库结构也已经建好,并与Excel电子表格数据结构一致。为了使用SQL数据库,需要在本项目的名字空间之上加入引用语句:using System.Data.SqlClient,程序代码如下:
4 结 语
在科研工作中,常会遇到海量数据处理的问题。这些数据通常由采集卡保存在Excel中,如果能够方便地输入数据库中,可以帮助科研工作者完成很多重复性、规律性的工作,节约人力,提高效率,便于后续的数据处理和数据分析[7]。程序开发者也可以针对具体的应用,将Office开发做成一些类或组件,增强软件重用性,更加提高开发效率。
参考文献
[1] ROBINSON S.C#高级编程指南[M].北京:清华大学出版社,2009.
[2] 罗斌.Visual C#.NET精彩编程实例集锦[M].北京:中国水利水电出版社,2009.
[3] PETZOLD C.Microsoft C# Windows程序设计(上册)[M].北京:北京大学出版社,2009.
[4] 王晟.Visual C#.NET数据库开发经典案例解析[M].北京:清华大学出版社,2010.
[5] PETZOLD C. Microsoft C# Windows程序设计(下册)[M].北京:北京大学出版社,2009.
篇7
城市现有规划测绘数据资源存在以下六个方面的问题:一是数据资源分散、未能有效利用;二是数据内容单一;三是数据格式标准不统一;四是更新机制无法建立;五是组织管理机构不健全;六是投资渠道单一而不稳定,重复建设严重。龙岩市城乡规划局测绘服务站在城市信息化建设过程中,碰到以上一样的问题。为此,龙岩学院数学与计算机科学学院和龙岩市城乡规划局测绘服务站共同合作完成基于ArcGIS龙岩规划测绘数据库建设研究项目(福建省教育厅项目JB12209)。通过该项目建设,基本上解决了龙岩规划测绘数据统一格式采集、AutoCAD数据格式和ArcGIS平台数据库统一建库问题。
本文针对项目建设过程中规划测绘数据库设计问题进行研究,详细分析了规划测绘数据组成要素,把几何网络模型和逻辑网络模型相结合构建了数据库模型,基于ArcGIS平台和AutoCAD二次开发环境,对规划测绘数据库进行了设计。
本项目建设采用ArcSDE(ArcGIS的空间数据引擎)+MySQL(Oracle公司开放源代码数据库管理系统)存储空间及其属性数据,基于ArcGIS平台和AutoCAD2010二次开发,研究了规划测绘数据库设计的技术路线、模型设计方法和注意事项。[1]
2 规划测绘数据库设计的原则和分类
2.1 规划测绘数据库设计的原则
对城市建设各部门建立统一有效的管理制度,按统一的标准收集、整理和分析各部门在行政办公过程中产生的各种空间信息,建成一个内容涵盖从空中到地表,再到地下包括地形、地貌、地下综合管线、工程地质、建筑物纹理、道路纹理等全方位的,多比例尺、多分辨率、多时相、多种数据来源的城市三维立体空间数据库,并建立有效的数据更新机制。主要原则总结为以下六点:1)标准化原则,2)数据共享原则3)先进性原则,4)实用性原则,5)安全性原则,6)可扩展性原则。
2.2 规划测绘数据库设计的分类
规划测绘数据库和城市基础空间数据库一样,也分为基本空间数据库和外延空间数据库两个部分。[2]
1)基本空g数据库设计
基本空间数据库设计是规划测绘应用系统的空间定位参考基准,目标是建成一个多种表现形式、多数据源、多种比例尺、多分辨率、多时相、多种数据组织形式的综合数据库。其内容包括数字线划地形数据库、数字高程模型数据库、数字正射影像数据库和数字栅格数据库等。基本空间数据库的建设投资巨大,最佳方案分期逐步建设。
2)外延空间数据库设计
外延空间数据库是基本空间数据库的补充,如果说基本空间数据库是城市空间信息的骨架,外延空间数据库则是城市信息化建设的灵魂。以基本空间数据库为基础,从城市建设部门(特别是城市规划部门)的行政审批流程中收集和整理现状建筑、土地利用、房地产、地下综合管线和工程地质等空间信息,作为基本空间数据库的补充。外延空间数据库设计的主要内容包括现状建筑数据库、地名数据库、现状路网数据库、工程地质数据库和地下综合管网数据库等。
3 规划测绘数据基本要素和数据结构模型分析
3.1 规划测绘数据基本要素分析
基于AutoCAD平台DWG格式数据信息主要是通过矢量图来表示,其属性只能通过标注表示,不能够进行空间分析;基于ArcGIS平台SHP数据格式信息属性能够以属性表的形式存储,图形对应属性,能够通过空间数据库对规划测绘数据进行管理、操作和GIS空间分析等。
上述两种数据本质上的区别在于:DWG数据格式主要是以图面的形式表现规划测绘数据名称、层数、面积等属性数据,不利于对图形进行查询和分析,而SHP格式数据是把AutoCAD原图面上的规划测绘各属性数据转变为通过空间数据库管理和查询。AutoCAD支持的DWG格式数据信息主要用作规划测绘数据成果的表现,而规划测绘管理信息系统中数据不仅可以表现城市规划测绘成果,还可以支持叠加分析及统计分析等GIS功能分析 。因此,建设数据库之前需要对DWG格式支持的数据进行必要的取舍和处理。
3.2 规划测绘数据结构模型分析
规划测绘数据可以从地理角度和网络角度两个方面认识。从地理角度看,应能使规划测绘数据本身符合空间实体要素表现和数据库管理的需求;从网络角度看,则需要明确各数据之间的连通关系。若按原有AutoCAD格式中的表现方式,规划信息易产生逻辑上的混乱。
一个几何网络总是与一个逻辑网络相联系,在编辑几何网络要素的同时,相应的逻辑网络元素会自动更新。在几何网络中的网络要素和逻辑网络的元素间有一对一和一对多的关联关系。一个网络要素类是以下四种网络要素类型之一的集合:简单交汇点要素、复杂交汇点要素、简单边线要素、复杂边线要素。几何网络中的简单边线要素与逻辑网络中的一条边元素相联系,几何网络中的复杂边线要素与逻辑网络中多个边元素相对应,同时,这些边必须是一个链状结构。当对一个几何网络要素进行添加或删除时,系统也会自动添加或删除相应的网络元素。在进行网络分析时,系统会向逻辑网络传递分析方案,几何网络和逻辑网络是密不可分的。
4 规划测绘数据库设计的技术路线、模型设计方法
4.1 技术路线
基于ArcGIS平台设计规划测绘数据库同样也遵循普通数据库设计的三个阶段, 即概念模型、逻辑模型和物理模型的设计。
1) 概念模型设计阶段应根据规划测绘数据库的特点和ArcGIS平台的内部结构, 确定各地图要素所属的专题图层, 并对要素的类型、属性、相互之间的联系和约束行为进行简单描述[6]。可利用实体- 关系模型或添加了象形图的扩展E-R模型表示要素类的组织结构及其关联关系。
2) 逻辑模型设计应根据概念设计阶段定义的数据类型、属性及其关系和行为, 确定各地理要素的描述方式。①将离散的矢量数据组织到要素数据集、要素类或关系类中, 影像数据和表面数据组织到栅格数据集或栅格目录中, 地图说明信息组织到注记类中;②定义要素类和表格应包含属性字段, 并指定各字段的属性域、缺省值、精度和范围等特性;③根据地理要素编码标准恰当应用子类控制要素的行为, 设定要素间的关联规则以增强要素的空间一致性。在逻辑模型设计阶段, 可利用面向对象的工业化标准建模语言UML, 将E-R模型中的实体、属性和联系分别映射成UML的类、对象和关系, 组成UML静态结构图。
3) 物理模型设计可利用现有的软件工程技术,借助Case工具将数据库的逻辑模型直接转换成物理模型, 从而避免物理模型设计阶段手工建模的差错, 提高数据库的设计效率。
4.2 模型设计方法
1) 借助Microsoft Visio、Rational Rose或Oracle Designer 2000等Case工具设计UML类图。ArcGIS中要素数据集、要素类、表格、几何网络和关系等元素可用UMLCD中的包、类和关联来表示。最后将设计好的UMLCD输出到XMI文件或Microsoft Repository中。
2) 在Case工具中对生成的XMI文件或Repository进行语意上的差错处理, 在确保没有错误报告的情况下可利用ArcCatalog提供的Case子系统从XMI文件或Repository生成ArcGIS方案。
3) 因橄钟械Case工具还无法对ArcGIS方案定义空间参考和创建拓扑[7], 可利用ArcCatalog数据库管理工具对Case工具生成的ArcGIS方案定义空间参考并创建拓扑, 同时对Case工具定义的部分关联关系及整个数据库方案作进一步的提炼和扩展, 以适应规划测绘数据库的特殊需求。
4.3 主要成果展示
分为三部分,一是数据库系统启动界面,二是建筑楼层查询子系统,三是市区三维地形图查询。详细情况在此省略。
5 总结与展望
以规划部门对信息管理的需求,通过对规划测绘数据的基本要素和数据结构的模型的研究,基本完成了基于ArcGIS平台和AutoCAD二次开发环境对龙岩城乡规划测绘数据库的设计方案,该设计方案基本实现了规划部门所要求的功能和需求。但真要付之实践应用,至少还需满足以下三个条件:一是资金投入,不断完善基本空间数据库和外延空间数据库的建库工作;二是提升相关工作人员的技术水平;三是必须有强力部门牵头协调组织,制定相应技术标准和规范,协调各部门工作。
参考文献
[1] 邱建康. 基于AutoCAD的ArcGIS空间数据库互操作实现[J].湖北:城市勘测,2010(5):54-56.
[2] 熊勤芳,何一明.论城市建设基础空间数据库建设[J].北京:中国测绘,2007(3):80-83.
篇8
数据库是承载数据的载体,存放和提供数据的“库房”,为我们进行数据查询、修改、管理等操作提供便利。建立数据库可以帮我们提升工作效率,通常适合较为庞大的系统数据存储。
例如,国网新疆电力目前覆盖全疆14个地州(市),涉及用户达2000多万人口,管理40多个部门和下属单位。这么复杂的机构需要高效稳定的IT系统支撑国网新疆电力公司。国网新疆电力目前有多个IT系统,比较重要的系统有综合管理数据库、营销系统数据库、ODS系统、财务系统。这么多系统数据日增长量超过2TB,这需要有效的优化手段解决数据库的性能问题。
目前通用的方式为采用Oracle数据库来对这些数据进行存储管理,面对厂里人员的变动则需要进行数据更新,随着系统长期运行、用户数和数据量不断增大以及业务不断变化,系统运行期间就会涉及到数据库优化。本文就从Oracle数据库优化进行简单的讨论,针对在优化过程中的一些注意事项、优化事项进行分析,为我们在工作中能够熟练的掌握优化技术。
二、Oracle数据库介绍
Oracle数据库,英文全名为Oracle Data-base,又被称为Oracle RDBMS或者直接简称为Oracle。目前最流行的B/S和C/S架构的系统中均应用到了数据库,由于它们的架构设计中都具有自己的服务器,而数据存在这些服务器中,则需要数据库对其进行储存。目前对于数据库的使用越来越广泛,随着人们对于数据库的研究越来越深入,逐渐出现了数据库云,将计算机的云计算应用到了数据库之中,这样使得多个数据库联合组成了更加庞大的数据库网,它们之间实现了数据共享,因此对于知识、信息的涵盖将会变得更广。云计算的实现,带给计算机网络发展巨大的空间,使得将世界的计算机联合起来形成一层一层的网络,与此同时也将数据库采用云管理,为数据库的发展提供更加广阔的空间[1]。
三、数据库优化方案介绍
多数研究者在面对Oracle数据库优化课题时,都会存在这样的思想误区,即认为只有在系统出现运行问题时才需要进行系统性能调整。而事实上,对Oracle数据库的性能进行调整和优化是一个漫长而复杂的过程,是贯穿于整个系统运行周期的。因此,在进行系统性能优化时,应按照以下流程来进行:对系统各功能组件和硬件设备进行正确的配置对数据库结构进行调整对SQL语句进行优化调整参数进行磁盘I/O与服务器网络性能的调整。以上流程是一个密切联系的整体,只有保证严格按照这一流程进行Oracle数据库系统性能调整,才能确保系统的性能达到最佳状态,真正实现Oracle数据库的优化设计。
图1所示是进行数据库优化时需要考虑的内容。优化是数据库体系的延续,数据库的结构和运行的机制决定了数据库的优化模式,所以说数据库的体系结构是优化的基石。如果对数据库的体系结构有深刻的理解,优化便水到渠成。反过来,通过优化数据库,可以更深入的了解数据库体系结构。数据库各个方面都有优化的余地,主要的优化方向分为实例的优化、数据库的优化、SQL语句的优化。其中SQL优化是重中之重。
对Oracle数据库进行优化,应该遵循优化SQL查询语句――索引优化――合理分布数据库物理文件――分析及优化Oracle内存分配原则。具体如下:
(一)SQL查询优化
SQL查询,主要针对数据库的信息进行搜索,寻找自己的需求信息。数据库内的一切操作都是经由SQL语句进行执行,因此SQL语句的执行效率很大程度上决定了Oracle数据库的性能。进行SQL语句的优化,首先应该构建原始数据库BASICPROJECT,其中包含了与生产数据库基本一致的数据库对象;其次,应该充分的利用SQL Trace、awrsqrpt、sqlplus中的autotrace、explain等跟踪技术对语句进行优化重写 [4]。我们在建立SQL语句的时候要尽量的避免出现相关子查询,以及选择语句的使用,这样就能从数据建立的时候减轻查询的负担。针对联合查询连接遇到5张或者5张表单以上的选择时,建议采用优化器对SQL语句中所包含的表单进行物理大小排序,建立起一定的查询顺序,来提升查询的效率。
(二)索引优化分析
索引技术是提升检索速度和系统性能的主要技术,对于数据查询来说,合理使用索引可以极大的提高查询的命中率和效率。索引是将表中数据的逻辑值映射到rowid中,所以在查询时使用索引功能能够快速的定位出查询数据的物理地址,从而找出数据。
索引对数据库的性能影响是巨大的,但索引不是万能的,数据库对索引的使用是有选择的,我们可以强制使用索引,也可以强制不使用索引。一般的情况下数据库会自动的判断是否使用索引,除非你明确的在SQL语句中指定。
所有索引的原形都是树状结构,由根、枝干和叶子组成。根和枝干中存放键值范围的导引指针,叶子中存放的是条目,条目中存放的是索引的键值和该数据行ROWID。索引的叶子间通过指针横向的联系在一起,前一个叶子指向下一片叶子,这样的目的是数据库在找到一个叶子后就可以查找相临近的叶子,而不必再次去查找根和枝干的数据块。
有的DBA发现了索引并不能提高查询速度,反而对整个数据库的性能有较大的不良影响,出现该问题主要是和SGA数据管理方式有关。当Oracle进行数据高速缓存管理时,普通数据的驻留权限要比索引数据的权限要低,当两者在空间上竞争时,索引数据往往会驻留;如果是大型表建立索引时,索引数据占了大部分的缓存空间,使Oracle只能通过磁盘读写来获得数据,所以在大型表分区后,伴随索引也得进行相应分区,索引的使用应该有一个指定的合适路径[5]。
(三)分布表空间
在整个数据库工作过程中,各相关进程会将数据库中的事务分别写到联机日志文件、归档日志文件和数据文件当中,这会不可避免的造成这三类文件之间的I/O冲突;并且归档日志文件因其特殊性,无法同系统、业务和索引这些表空间共存,这就需要一个独立的磁盘来完成合理分布表空间的功能,对各项数据进行合理的分配,以避免文件之间的I/O冲突。
(四)数据缓冲区的调整分析
数据库的缓冲区是SGA不可缺少的组成部分,它的作用是对磁盘的读入数据进行存储,存储的数据为用户共享。如果需要修改数据时,首先要从数据文件中将数据读取出来存储在数据缓冲区;如果用户对数据缓冲区的设置太小,那么数据的操作性能将会受到很大的影响。用户越多,该问题越突出,该问题的出现使得很多人去关心如何判断数据缓冲区大小,如何确定缓冲区的效率,该类问题可以通过计算命中率来进行确认。
数据缓冲区V$sysstat中的consistent_gets、db_block_gets是consistent mode和current mode模式下的数据读取总量,physical reads是整个磁盘物理数据读取总量,这两个数据的读取总量的比值就是所谓的命中率,如果两个数据比值<90%,那么就需要对该缓冲区大小进行调整[2]。
(五)共享池调整分析
共享池同样也是SGA的重要组成部分,它主要包含了数据字典高速缓存与库高速缓存,这两者的作用是对整个SQL程序进行语法分析、编译以及执行。
库高速缓存中会将解析过的SQL语句、PL/SQL(存储过程、函数、包)进行缓存。如果为了工作的需要,将解析过的SQL信息重用会提高整个数据库的性能,可以将解析过的SQL信息存储在共享池中,这就需要共享池的设置要足够的大。通过对V$librarycache查询实例来观察整个库高速度缓存的活动情况,其中的reloads和pins,它们分别是库高速缓存执行阶段的未命中数目和库高速缓存中被执行的次数,如果库缓冲区的失败率超过的1%,那么就需要对其进行调整。除此之外,还有些情况也需要共享池的设置要大,字典数据高速缓存的总丢失数和总的存取数的比值应该接近零,当这个数值超过10%,那么就需要对其进行调整。如将表定义的详细信息长期的存储在共享池中,将其进行重用,提高数据库的整体性能[3]。
通过V$rowcache来对数据字典高速缓存活动进行详细查询,其中的get misses和gets分别代表的是字典数据读取的失败和成功次数,通常要求的比值小于10%,若超过则需要进行及时的调整。
(六)日志缓冲区优化方案
日志缓冲区主要是保存了对数据库修改信息,设置的大小一般为2兆以内的内存,最小为500K。日志缓冲区也不能过小,否则会增加日志的写盘次数,从而为I/O接口增加负担。日志缓冲区中的常见指令为:immediate gets表示成功立即得到日志缓冲区次数;immediate misses 则表示未成功立即获取日志缓冲区次数。V$latch中的gets和misses表示成功获得缓冲日志次数以及未成功获得日志缓冲区次数,其失败率要小于1%,如果超出则需要对数据库进行调整。
(七)合理的使用工具
有时候想直接在SQLPLUS中看ASH/ADDM/AWR报告,用下面方法比较方便,因为AWR数据在数据库中默认只保留7天,当我们进行性能对比分析需要保留时段之前的AWR时,可以采用脚本定时将AWR报告输出保存。
ASH (Active Session History)
ASH以V$SESSION为基础,每秒采样一次,记录活动会话等待的事件。不活动的会话不会采样,采样工作由新引入的后台进程MMNL来完成。
生成ASH报告:
SQLPLUS>@?/rdbms/ashrpt.sql
ASH内存记录数据始终是有限的,为了保存历史数据,引入了自动负载信息库(Autom-atic Workload Repository ,AWR) 由后台进程MMON完成。ASH信息同样被采集写出到AWR负载库中。由于内存不是足够的,所以MMNL进程在ASH写满后会将信息写出到AWR负载库中。ASH全部写出是不可接受的,所以一般只写入收集的10%的数据量,而且使用direct-path insert完成,尽量减少日志的生成,从而最小化数据库性能影响。
写出到AWR负载库的ASH信息记录在AWR的基础表wrh$active_session_hist中,wrh$active_session_hist是一个分区表,Oracle会自动进行数据清理。
AWR(Automatic Workload Repository)自动工作负载信息库
AWR是Oracle 10g中的一个新特性,类似于10g以前的statspack。不过在使用上要比statspack简单,提供的性能指标要比statspack多很多,能更好的帮助DBA来发现数据库的性能瓶颈。
AWR 是Oracle安装好后自动启动的,不需要特别的设置。收集的统计信息存储在SYSAUX表空间SYS模式下,以WRM$_*和WRH$_*的格式命名, 默认会保留最近7天收集的统计信息。每个小时将收集到的信息写到数据库中,这一系列操作是由一个叫MMON的进程来完成的。
AWR存储的数据分类:
WRM$表存储AWR的元数据(awrinfo.sql脚本)
WRH$表存储采样快照的历史数据(awrrpt.sql脚本)
WRI$表存储同数据库建议功能相关的数据(ADDM相关数据)
生成AWR报告:
SQL>@?/rdbms/admin/awrrpt
根据向导来完成AWR报告的生成。需要注意的是,在选择时间范围的时候,中间不能有停机(如果显示的中间有空白行,表示有停机情况)。在选择报告类型的时候一般使用默认的HTML,方便查看。
查看数据库的AWR的设置:
SQL> select snap_interval, retention from dba_hist_wr_control;
SNAP_INTERVAL
RETENTION
--------------------------------- ----------------------------------
+00000 01:00:00.0(每小时收集一次) +00007 00:00:00.0(保留7天)
修改默认设置:
begin
DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(interval => 20,
retention => 2*24*60);
end;
修改成每20分钟收集一次统计量,保留最近的2天统计量信息。
手动收集一次数据库的统计信息:
exec DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT;
我们还可以通过DBMS_WORKLOAD_REPOSITORY包完成对基线、默认设置的修改等操作。
ADDM (Automatic Database Diagnostic Monitor AWR)
是Oracle内部的一个顾问系统,能够自动的完成最数据库的一些优化的建议,给出SQL 的优化、索引的创建、统计量的收集等建议。
ADDM报告生成:
SQLPLUS>@?/rdbms/addmrpt.sql
Oracle 性能调整最重要的就是对最影响性能的SQL的调整。在一个应用中,能够影响到数据库的只有SQL,也只能是SQL。我们不能一味依靠增强硬件,修改系统、数据库参数来提高数据库的性能,更多的应该关注那些最影响性能的SQL语句。ASH报告、AWR报告、ADDM报告都是能够找出最影响性能的SQL语句的工具。 在分析ASH报告、AWR报告的时候,最重要的就是关注SQL Statistics,SQL Statistics中最应该关注的是SQL ordered by Gets和SQL ordered by Reads两个指标。大量的Gets(逻辑读)会占用大量的CPU时间,大量的Reads(物理读)会引起IO的瓶颈出现。一般情况下,大量的Gets会伴随着大量的Reads出现。当然,我们可以通过增大SGA的大小来减少Reads的量。通过这两个指标找到了最影响性能的SQL,这是首要的,也是必要的。下一步就可以通过创建索引,调整SQL来提高SQL单独执行的性能,减少SQL执行时出现的高Gets,Reads。当然整体的性能影响还和excutions有关,如果这条SQL执行的次数过多,累加起来的量很大,那么就可以考虑通过在应用上缓存等手段来减少SQL执行的次数。另外还有一个需要注意的问题就是在开发过程中SQL一定要使用绑定变量,来减少硬解析(大量的硬解析也会消耗大量的CPU时间,占用大量的Latch)。在开发过程中有个原则就是:小事务操作完成及时提交。
我们使用这么多种方式、报告只有一个目的:找出最影响系统性能的SQL语句。找到SQL下一步就是对它进行调整了。
我们在监控数据库时,如果是当前正在发生的问题,我们可以通过v$session+v$sqlarea来找出性能最差的SQL语句。如果在一个小时以内发生的我们可以通过生成ASH报告来找出SQL。如果是1小时以上或几天我们可以通过AWR报告来找出几小时,几天以来最影响系统的SQL语句。ADDM报告基于AWR库,默认可以保存30天的ADDM报告。
我们也可以直接查询试图:
v$session (当前正在发生)
v$session_wait (当前正在发生)
v$session_wait_history
(会话最近的10次等待事件)
v$active_session_history
(内存中的ASH采集信息,理论为1小时)
wrh$_active_session_history (写入AWR库中的ASH信息,理论为1小时以上)
dba_hist_active_sess_history (根据wrh$_active_session_history生成的视图)
四、总结语
企业中使用Orcale数据库来储存数据,有效的改善了以前对于企业信息数据处理的问题。有效的节约了信息处理资源,且采用Orcale数据库将所有的员工等信息进行备份,方便以后查询,若数据库的数据不丢失,那么则能够通过查询进行查询。本文主要针对Oracle数据库进行介绍,然后根据数据库中的内容进行优化,为以后企业在数据库的优化上提供借鉴。
参考文献
[1]温创新.电视广告商务平台中Oracle数据库的ADICI设计与优化研究[D].中南大学,2011.
[2]王斌.基于Oracle数据库技术的航行情报系统(CNMS)性能优化[D].电子科技大学,2010.
[3]张舒.超大型Oracle数据库的基础设计和优化设计[J].价值工程,2011,10:178.
篇9
1 引言
信息是信息化战争中的决定因素,而数据链的根本作用就是解决信息获取、信息处理和信息传输的结合问题,并从速度上进行优化,极大地增强部队的整体作战效能。
复杂电磁环境是信息化战场的重要特征,在未来信息化条件作战中,战场复杂电磁环境将对各类信息化武器装备将产生严重影响。
战场环境千变万化,参战平台也是多种多样,大规模作战应用条件下的数据链综合应用,是作战研究的关键,也是数据链推演系统研究的核心内容。而能够支撑大规模数据链平台接入模拟的数据库是推演的基础。本文在对Link-16数据链应用研究的基础上,提出了系统数据库的结构设计和应用流程,使之能够快速高效地支撑推演系统的运行。
2 数据链推演系统
Link-16数据链,又称战术数字信息链路-J(TADIL-J)是美国和北约部队广泛采用的一种战术数据链。Link-16数据链已经装备美国和北约全部的预警机和许多地面防空指挥所、战斗机、直升机、驱逐舰和航母等典型的作战平台。
数据链推演系统是针对美军及北约部队广泛应用的Link-16数据链而建立的仿真推演系统,通过加载想定和网络规划,在统一的推演控制下,在网络运行模拟设备、各参与平台和支撑平台的参与下,对任务规划和行动需求一致性、Link-16网络规划以及网络资源的合理性进行验证。
3 推演数据库组成
推演系统数据库组成如图1所示。
3.1 数据库管理系统
数据库管理系统是根据不同的需求对平台库、装备库、行为模型库以及复杂电磁环境库等进行管理、包括添加、删除和参数修改等工作,同时对数据库整体进行备份和存贮。
3.2 平台模型数据库
平台模型库主要建立平台模型各种参数信息,包含空中、水面、陆地和水下平台,为推演系统提供平台数据。
3.3 装备模型数据库
装备模型数据库主要建立平台数据链装备模型的各种参数信息,包含Link16数据链装备、雷达装备、电子战装备等,为推演系统提供数据链所需的各种装备数据。
3.4 行为模型数据库
行为模型库主要建立平台所参与的行为模型,包含平台的起飞、降落、到达指定高度、巡航、按照轨迹运动、按照轨迹前往等行为,为推演系统提供平台行动数据。
3.5 复杂电磁环境模型数据库
复杂电磁环境模型库主要建立战场复杂电磁环境干扰模型以及根据不同环境下的电磁环境参数库,为推演系统提供复杂电磁环境态势以及为装备受干扰状态下的干扰计算提供基础参数。
3.6 行动脚本数据库
行动脚本数据库主要建立推演剧情的各种数据信息的综合,包含推演平台组成、装备情况、推演平台行为、网络组织情况、数据链应用情况等,为推演提供全部数据以及推演剧情的保存。
4 数据库及应用流程设计
4.1 数据库设计
推演系统数据库包括:平台模型库,装备模型库,行为模型库,复杂电磁环境模型库,行动脚本数据库。模型是以参数的集合进行定义,即每种模型由一系列参数描述。例如,战斗机模型的平台类型为空中平台,油量为50000L,机翼为50m,机长200m等。Link-16数据链装备模型的链路类型为Link16,波道号为01,网络号为16等。每种模型库以树形结构进行组织管理。根模型拥有模型基本参数集,子模型在继承父模型的参数集的同时,拥有自己特有的参数集。如图2所示,假设某平台模型的树形结构图如下:
R表示根节点的参数集,A,B,C分别表示子节点独有的参数集,A1,A2;B1,B2;C1,C2表示叶子节点独有的参数集。
图2 参数继承图
最左侧叶子结点的所有参数的集合为:
(1)数据库管理系统。
数据库管理系统是对推演系统的模型库进行管理维护的系统。主要完成推演系统数据库的维护,包括模型的查询,添加,删除,编辑,保存,备份功能,如图3所示。推演数据库包括:平台模型库,装备模型库,行为模型库,复杂电磁环境模型库,行动脚本库。数据库管理系统启动之后,建立与各个模型库的连接。每个时刻只能由一个连接是活动状态,只有在活动状态下才能完成模型库的编辑。系统支持一键切换各个模型库连接的活动状态。系统以树形结构展示库中的各个模型及其参数数据。在进行了添加,删除,编辑参数等操作之后,通过保存将数据写入模型库。另外,系统支持数据库的备份。
图3 数据库管理流程图
1)模型库的添加。
执行模型添加功能时,系统自动建立该模型的基本参数集。用户可以为该模型添加特有参数,并为其设置参数值。基本参数集和特有参数共同构成该新增模型的参数集。
2)模型库的删除。
执行模型删除功能时,系统删除该模型库的参数集,假如该模型有子模型,系统首先删除其子模型,继而删除该模型。
模型的编辑主要包括模型的参数集的编辑,包括添加,删除,修改参数值等。
4)模型的保存。
保存功能主要完成对以修改模型的保存,将修改后数据存入平台模型数据库。
5)模型的备份。
系统将模型数据库按制定的文件类型另存为到制定的物理存储空间。存储文件类型包括:.sql,.txt,.xml等。
(2)平台模型库。
平台模型库为推演系统提供平台数据。平台模型库以树形结构进行组织管理。一级模型包括空中平台、陆地平台、水面平台、水下平台四种类型。二级空中平台模型包括:战斗机、加油机、预警机、无人机等。二级陆地平台模型包括:指挥所,装甲车,雷达站,坦克等。二级水面平台模型包括:航空母舰,舰船。二级水下平台模型包括:潜艇等。模型以参数的集合描述。子模型在继承了父模型的参数同时,拥有自己特有的参数。
下面说明空中平台模型,地面模型,以及空中模型的子模型――战斗机模型的参数集。其中战斗机模型参数表中说明了子模型和父模型之间的参数继承关系,见表1和表2所示。
表1 平台模型示例
表2 战斗机平台模型
(3)装备模型库。
装备模型数据库主要建立平台数据链装备模型的各种参数信息,包含Link16数据链装备、雷达装备、电子战装备等,为推演系统提供数据链所需的各种装备数据。该模型库只有一级,模型库中每个模型拥有自己的参数集,示例如表3所示。
表3 装备模型示例
(4)行为模型库。
行为模型库主要建立平台所参与的行为模型,包含平台的起飞、降落、到达指定高度、巡航、按照轨迹运动、按照轨迹前往等行为,为推演系统提供平台行动数据。该模型库只有一级,每个行为模型拥有自己的参数集,示例如表4所示。
表4 行为模型示例
(5)复杂电磁环境模型库。
复杂电磁环境模型库主要建立战场复杂电磁环境干扰模型以及根据不同环境下的电磁环境参数库,为推演系统提供复杂电磁环境态势以及为装备受干扰状态下的干扰计算提供基础参数,示例如表5所示。
表5 复杂电磁环境模型示例
(6)行动脚本库。
行动脚本数据库主要建立推演剧情的各种数据信息的综合,包含推演平台组成、装备情况、推演平台行为、网络组织情况、数据链应用情况等,为推演提供全部数据以及推演剧情的保存。
4.2 数据库应用流程
根据数据链推演要求,数据库系统应用流程如图4所示。
图4 数据库应用流程设计
数据库管理系统按照行动文件中描述的数据链应用场景和行动计划,分解提炼该次行动的平台组成、装备情况、行为状态、数据链网络应用情况以及复杂电磁环境状态。根据上述推演行动数据,系统在复杂电磁环境模型库、平台模型库、行动模型库、装备模型库中提取相关模型及数据,利用推演标绘生成行动脚本文件并存入行动脚本库。推演展现可以直接调用行动脚本库的行动预案进行推演,该行动脚本包含行动单位组织结构,行动网,行动轨迹等信息。推演系统可直接加载行动脚本,并在推演时展现整个行动脚本的推演态势。
5 结束语
21世纪的战争是高科技的战争,信息权是战争争夺的制高点,复杂电磁环境下的数据链综合应用关系到联合作战的整体作战效能,数据链推演系统是对Link-16数据链网络规划及资源进行模拟仿真验证,而数据库是推演的核心和基础,良好的数据库设计能够提升系统的计算能力和灵活性,为大规模数据链作战应用提供很好地支撑,对其它类似系统数据库设计提供一定的借鉴。
参考文献:
[1] 高斌,唐晓斌,彭益,等.复杂电磁环境下的数据链资源分配技术研究[J].中国电子科学研究院学报,2010,5(3):248-252.
[2] 魏立柱,彭益,高斌.Link 16数据链验证测试技术[J].电讯技术,2011,51(3):9-13.
[3] 彭益,魏立柱.基于HLA的Link-16推演支持系统设计[J].微处理机,2012,33(1):87-93.
[4] 孙义民,杨丽萍.信息化战争中的战术数据链[M].北京:北京邮电大学出版社,2005.
篇10
二、数据库简介
所谓数据库,就是一个长期存储在计算机内的、有组织的、可共享的、统一管理的数据集合。它是一个按一定的数据结构来存储和管理数据的计算机软件系统。不同的用户可以按各自的需求使用数据库中的数据,多个用户可以同时共享数据库中的数据。数据库系统立足于数据本身的管理,将所有数据保存在数据库中,进行科学的组织,并借助于数据库管理系统,以它为中介,与各种应用程序或应用系统接口,使之能方便地使用数据库中的数据。简单地说数据库就是一组经过计算机整理后的数据,存储在一个或多个文件中,而管理这个数据库的软件就称之为数据库管理系统。数据库系统一般是由数据库、数据库管理系统、数据库应用系统及计算机软硬件、系统人员和用户等组成。
三、数据库设计在二调中的应用
在全国第二次土地调查中,数据库建设就发挥了很大的作用,它将我们调查到的各种数据全部集中在数据库管理系统中,使我们以后能更方便、快捷地进行查询、管理等工作。
建立一个数据库管理系统,首先,我们都需要一个数据库平台,现在我们常用的数据库平台大概有几种:Access、SQL server、oracle等。而对于二次调查这种大型的项目,里面含有很多图形数据、图像数据、属性数据等资料的数据库,我们一般选择SQL server 和oracle这种功能较强的关系数据库作为我们建立数据库的平台。这样就需要我们能够了解数据库建设的相关原理和设计过程。
数据库的设计就是指根据用户的需求,在某一具体的数据库管理系统上,设计数据库的结构和建立数据库的过程。一般来说,数据库的设计过程大致分为需求分析、概念设计、逻辑设计、物理设计、概念设计、数据库运行和维护6 个步骤。
具体对于二次调查项目来说,需求分析就是指调查和分析全县各类土地利用情况,按照国家的分类要求和调查规范,对全县土地进行分类、划分,建立一套完整的土地利用管理数据库。
概念设计是指对用户要求描述的现实世界,通过对其中住处的分类、聚集和概括,建立抽象的概念数据模型。在二调中就是指土地各个分类之间的相互关系,权属关系,具体来说,就是“县―乡―村―图斑”,由相同权属性质(坐落权属代码)的图斑组成村,由村组成乡,由乡生成县。将属性信息和图形信息相互照应起来,就是数据库中常说的“E―R 模型”。
逻辑设计是指将现实世界的概念数据模型设计成数据库的一种逻辑模式,即适应于某种特定数据库管理系统所支持的逻辑数据模式。在二调中就是指将土地利用现状中的各种地类、属性转换成数据库管理系统能够识别的模式。并能让我们直观地查询出来。
物理设计是指数据库的存储结构和存储方法,数据库管理系统会根据具体的应用任务选定最合适的物理存储结构(包括文件类型、索引结构和数据的存放次序与位逻辑等)、存取方法和存取路径等。这一步设计的结果就是所谓“物理数据库”。在二调建库中,指定的管理系统会将我们的基础资料保存在适合的位置。
验证设计是指在上述设计的基础上,收集数据并具体建立一个数据库,运行一些典型的应用任务来验证数据库设计的正确性和合理性。在二调中,验证设计就是在将数据库中的所必须的数据,图形,属性全部附上,建立一个完整的数据库,并实现各种查询功能,统计功能等。
数据库运行和维护是指数据库系统正式运行,标志着数据库设计与应用开发工作的结束和维护阶段的开始。运行维护阶段的主要任务有四项:(1)维护数据库的安全性与完整性:检查系统安全性是否受到侵犯,及时调整授权和密码,实施系统转储与备份,发生故障后及时恢复。(2)监测并改善数据库运行性能:对数据库的存储空间状况及响应时间进行分析评价,结合用户反应确定改进措施。(3)根据用户要求对数据库现有功能进行扩充。(4)及时改正运行中发现的系统错误。而对于二调的项目,就是指数据库的维护阶段,把数据库中各种数据,如图斑,线状地物,地类界线等,把按照国家要求所需要的属性全部附在数据上。并且根据管理部门的要求,可以对数据库进行修改;另外实现数据库的备份,还原等功能。
这样,一个完整的数据库就建好了。其实在建设数据库的过程中,重要的内容在于前期数据的整理。对于二调来说,无论采用SQLserver 或者oracle 平台,数据库管理系统无论采用苍穹或者mapgis等,数据库的一个基本模式已经建立完整。我们只需要把我们的外业资料转化为数据库能够识别的数据就可以了。这就要让我们保证外业调查地图的正确性,完善性;内业矢量化工作的严谨性。在矢量化的过程中,同时将一些必须的属性同时附上。比如说地类图斑的地类代码,权属性质等。线状地物的宽度,线状地物代码,权属性质等。这些东西是需要我们手工赋值的。其他的一些必备属性,数据库管理系统会根据数据字典,根据国家要求设定好的程序对各种数据进行维护。
篇11
1.1数据库连接方案选择
RDO、DAO和ADO是比较常见的Web数据库访问技术。
DAO (Data Access Objects) 数据访问对象是第一个面向对象的接口,它含有 Microsoft Jet 数据库引擎(由 Microsoft Access 所使用),并允许 Visual Basic 开发者通过 ODBC 象连接到其他数据库一样,直接访问到 Access 表。DAO 最适用于单系统应用程序或小范围本地分布使用,对大范围的异地并行设计显得功能不够强大。
RDO (Remote Data Objects) 远程数据对象是一个到 ODBC 的、面向对象的数据访问接口,它同易于使用的 DAO style组合在一起,提供了一个接口,形式上展示出所有 ODBC 的底层功能和灵活性。RDO 在访问 Jet 或 ISAM 数据库方面有一定的限制,而且它只能通过现存的 ODBC 驱动程序来访问关系数据库。但是,RDO 已被证明是许多 SQL Server、Oracle
以及其他大型关系数据库开发者经常选用的最佳接口。RDO 提供了用来访问存储过程和复杂结果集的更多和更复杂的对象、属性,以及方法。对异地并行设计Web数据库来说也不是十分理想。
ADO(ActiveX Data Objects)为ActiveX组件中数据库访问组件,ASP就是通过它实现对数据库的访问。ADO 是 DAO、RDO 的后继产物。ADO 2.0在功能上与 RDO 更相似,而且一般来说,在这两种模型之间有一种相似的映射关系。ADO “扩展”了 DAO 和 RDO 所使用的对象模型,这意味着它包含较少的对象、更多的属性、方法(和参数),以及事件。例如,ADO 没有与 rdoEngine 和 rdoEnvironment 对象相等同的对象,可以包含 ODBC 驱动程序管理器和 hEnv 接口。尽管事实上接口可能是通过 ODBC OLE DB 服务提供程序实现的,但目前也不能从 ADO 中创建 ODBC 数据源。ADO 是为 Microsoft最新和最强大的数据访问范例 OLE DB 而设计的,是一个便于使用的应用程序层接口。OLE DB 为任何数据源提供了高性能的访问,这些数据源包括关系和非关系数据库、电子邮件和文件系统、文本和图形、自定义业务对象等等。ADO 在关键的 Internet 方案中使用最少的网络流量,并且在前端和数据源之间使用最少的层数,所有这些都是为了提供轻量、高性能的接口。同时 ADO 使用了与 DAO和 RDO相似的约定和特性,简化的语义使它更易于学习。
ADO最早是在IIS中引入的,主要用于ASP,用ADO可以使服务器端的脚本通过ODBC存取和操纵数据库服务器的数据。使用ADO的对象可以建立和管理数据库的连接,从数据库服务器请求和获取数据,执行更新、删除、添加数据、获取ODBC的错误信息等。ADO是ASP方案中最具吸引力的数据库连接控件,它为用户提供了连接任何兼容ODBC的数据库以及创建全功能数据库应用程序的能力。
ADO具有简单易用、高速、占用资源少等的优点。不同于DAO和RDO,ADO有着更高的执行效率。ADO 对象模型如图1a所示。每个 Connection、Command、Recordset 和 Field 对象都有 Properties 集合,如图1b所示。
a)
b)
图1 ADO对象模型及属性
应该说,ADO是微软的下一代数据库连接技术,用来全面取代RDO和DAO的数据访问工具。从发展趋势来看,ADO今后将逐步替代老的DAO特别是RDO数据访问接口,成为新的远程数据访问方法。所以,选择ADO作为产品异地并行设计的Web数据库接口技术是合适的。
1.2 ADO应用分析
ADO 并不是自动和现存的数据访问应用程序代码兼容的。当 ADO 封装 DAO 和 RDO 的功能性的时候,必须将许多语言要素转换为 ADO 语法。在某些情况下,这将意味着要对现存代码的某些功能做一个简单转换。在其他情况下,最佳的做法可能是用 ADO 的新功能重写该应用程序。
包含在 DAO 和 RDO 模型中的许多功能被合并为单个对象,这样就生成了一个简单得多的对象模型。然而,由于这个原因,起初可能会觉得找到合适的 ADO 对象、集合、属性、方法,或事件非常困难。与 DAO 和 RDO不同的是,尽管 ADO 对象是分层结构的,但在分层结构范围之外也是可以创建的。同时,也应当注意,ADO 当前并不支持 DAO 的所有功能。ADO 主要包括 RDO 风格的功能性,以便和 OLE DB 数据源交互,另外还包括远程和 DHTML 技术。
一般说来,在 ADO 的演化过程中,马上把大多数 DAO 应用程序(except possibly是那些使用 ODBCDirect 的应用程序)移植到 ADO 上为时太早,因为当前的 ADO 并不支持数据定义 (DDL)、用户、组等等。不过,如果只将 DAO 用于客户—服务器应用程序,并不依赖于 Jet 数据库引擎或不使用 DDL,那么就可能移植到 ADO。最终,Microsoft 将提供一个 ADO DDL 组件来帮助进行 DAO 到 ADO 的移植,并为 OLE DB 供应商提供一般的 DDL 支持。
在ASP中使用ADO技术来访问Web数据库,其应用前景是无可估量的。原理图如下:
图2 ADO在ASP程序中的应用
常见的数据库类型有面向对象的数据库(OODB)和关系型数据库。OODB对主流数据库应用开发来说是相当新颖的,使用OODB使应用程序中的数据对象与现实世界中的对象一一对应,面向对象数据库扩充了对象模型。一个常用的对象模型是由对象数据库管理组(ODMG)开发出来,具有比传统的关系数据库更优越的性能,但毕竟在目前还是一种探索阶段,暂时还未有相应的技术普及。
关系数据库已经是数据库体系的世界标准。当开发一个数据驱动应用程序时,大多数情况下用户需要访问网络(如Internet、Intranet等)上的数据信息,就RCDS就是建立在网络的信息通讯之上,是完全的客户机/服务器应用程序。
SQL Server是一个可缩放、高性能的关系型数据库管理系统(RDBMS),它的设计是为了满足分布式客户/服务器计算的需要,允许客户应用程序使用几个特定的工具和技术控制从服务器检索的数据。这些包括触发器、存储过程和规则的选项。因此,系统采用MS SQL Server7.0作为后台数据库。
数据模型通常有层次模型、网状模型、关系模型及OO(面向对象)模型等。其中关系模型是建立在数学概念基础之上的一种模型,由若干个关系框架组成的集合,它也是到目前为止最为成熟的一种数据库类型。本文RCDS采用MS SQL Server作为后台数据库,根据数据库工具和数据库特点,开发出一套可靠健壮的数据存储方案。
整个数据库共有AdminData、ChatNames、DesignUnits、Message、OnlineUnits、Products、RqtTasks、RqtTaskUnits、RqtDesignUnits、ShareData、Tasks、TaskUnits和UploadFiles等表格。在建立数据模型的时候首先考虑是要避免重复数据,也就是建立规范化数据库。规范化数据库可以通过被称为范式水平的指标来衡量,级别有第一范式、第二范式和第三范式,通常第三范式就是要达到的目标,因为它提供了数据冗余和开发简易性之间的最好折衷。
RCDS数据库正是按照第三范式标准来设计的,它保证了模型的精简和表格的紧凑性。而第三范式标准也最大发挥了关系数据库的优势,图3是部分表格的视图链接情况。
图3 关系表格视图 4.1 并发控制的处理 在多个用户同时访问一个数据库时就产生并发问题,特别是在其中一些用户对数据库有添加或删除修改等操作时,那么其他所获得的数据可能是一塌糊涂,甚至造成整个数据访问的冲突、终止,从而使系统发生混乱以至崩溃。RCDS采用的解决办法是锁定技术,总体上分为共享锁定和排它锁定两种类型(如图4)。前者是指同时有几个过程共享一个锁定,比如一个用户(或客户)正在读取一个数据,虽然在这之前他已经对该数据设置了锁(LOCK),但其他用户同样可以(也只能是)读取它。而排他锁定一般应用于对数据进行修改或更新(包括添加删除等)操作,即是用户在修改一个数据之前设置了锁定,在一定的时间里其他用户是不能访问到该数据的,只有等待锁定解除(UNLOCK)才能进行访问到它,当然在计算机处理的时候,其他的用户一般是感觉不到有这个等待时间的。通过这样的处理,就保证了数据的一致性。
a) 共享锁定
b) 排它锁定
图4 安全锁定类型
在ADO进行数据库操作时,它的锁定类型相对来说复杂一些。打开记录集时,可以指定锁定类型。锁定类型决定了当不止一个用户同时试图改变一个记录时,数据库应如何处理。ADO中的锁定主要有以下四种类型:
l AdLockReadOnly 指定你不能修改记录集中的记录
l AdLockPessimistic 指定在编辑一个记录时,立即锁定它
l AdLockOptimstic 指定只有调用记录集的Update方法时,才锁定记录
l AdLockBatchOptimstic 指定记录只能成批地更新
在缺省情况下,记录集使用只读锁定。要指定不同的锁定类型,可以在打开记录集时包含这些锁定常量之一。部分代码如下:
… …
Set MyConn=Sever.CreateObject(“ADODB.Connection”)
//定义数据库连接MyConn
Set RS=Sever.CreateObject(“ADODB.RecordSet”)
//定义返回数据记录集
MyConn.Open “ByktDB.dsn”//建立应用程序与数据源的连接
RS.Open “SELECT * FROM Mytable”, MyConn, adOpenDynamic, adLockPessimistic
//进行数据库操作,并且设置锁定
RS.Close
MyConn.Close
… …
数据的安全因素除了前面所提到的并行控制之外,还要考虑事务处理。网络数据库有其不同的地方,例如:假设某个时间有一个设计人员在你的站点上索取一些设计信息,有关的设计信息存储在两个表中。一个表用来保存该设计者的信息,另一个表包含了要索取的设计信息。该设计人员的信息已经输入了第一个表中。但是,就在这时,发生了意外情况,一道闪电击中了你的服务器,使第二个表没有被更新。在这种情况下,一个健壮的系统就必须保证最后的结果是两个表都没有被更新过。这时候事务处理就发挥了重要的功效。
使用事务处理,你可以防止第二个表没有被更新而第一个表被更新的情况出现:当一组语句构成一个事务处理时,如果一个语句没有执行成功,则所有的语句都不成功。不管是针对多个表,还是进行表内多个记录的操作,它们所需要的安全保证是一样的。事务处理的实现代码如下:
… …
Set MyConn=Sever.CreateObject(“ADODB.Connection”)
MyConn.Open “ByktDB.dsn”
MyConn.BeginTrans //事务处理开始
MyConn.Execute “INSERT DataTable(Num) Values(‘3628’)”
MyConn.Execute “INSERT Shipping (Address) VALUES(‘Paris,France’)”
MyConn.CommitTrans //事务处理结束
MyConn.Close
… …
在上面这段代码中,用BeginTrans方法和CommitTrans方法来标记事务处理的开始和结束。在BeginTrans方法被调用之后,CommitTRans方法被调用之前,不管出现什么错误,两个表都不会被更新,在这个过程中所有处理的数据都保持了完全可靠的一致性。
5 结论 ADO是由微软公司推出的以ActiveX技术为基础的数据存取方法。它的主要特点是使用更加容易,访问速度更快,支持建立各种客户/服务器模式与基于Web的应用程序。RCDS正是采用ADO 所基于的OLE DB技术,可以对电子邮件、文本文件、数据表格等各类数据通过统一的接口API接口进行存取,是远程数据存取的一个主要发展方向。
篇12
1 通用外挂式辅助数据库设计程序
1.1 概念
通用外挂式辅助数据库设计程序中的外挂式主要以用户界面为基本呈现形式,借助这种界面实现对数据库内容的灵活处理,并在相应软件系统开发的同时,实现软件和数据库设计的开发和自定义设计。
1.2 参数传递的含义
通用外挂式辅助数据库设计程序不仅需要应用辅数据库设计,而且还需要通过模块化参数信息的传递来实现对软件模块化的设计。这种设计一般需要应用函数的形式来充分展现模块的功能,并借助各种不同的参数代号信息实现各种不同的操作,进而满足不同程序模块的设计需求,具体的实现方式如下所示:
(1)Q代表另一个表字段的名称,能够将表的记录信息从一个字段传递到另一个字段上,且这种字段在新增窗体中显示为一种隐藏字段。
(2)B代表本字段的编辑可以省略掉最后一项的内容。基本含义为类型、读写字段、名称显示、Where条件、Order排序等。
(3)R代表取值为主表传入的字段值,基本含义为类型、本表字段名称和父表字段的名称。
(4)R含义为类型、表名、读写字段、显示名称、Select语句。
(5)S表示的是通用模块中用户自拟定义的字段。
(6)W表示不存在的表的字段。
1.3 通用外挂式辅助数据库设计程序的特点
(1)能够面向数据库的管理进行全方位详细设计。这种详细的设计包含视图和存储过程中数据库设计常应用的方法和技术。
(2)这种设计支持无代码的程序开发,具体的自定义设计能力很强,在模块化思想的支撑下能够以参数的形式将模块功能进行输入。
(3)能够进行流程化的处理。流程化的处理具体是指能够实现对已经建立好的数据库表格在外挂式的数据库设计程序中进行统一化的管理。
(4)开放式的数据管理。这种管理方式对数据库的格式不限制,能够对网络数据的设计和开发进行支持。
2 通用外挂式辅助数据库设计程序的实现方法
在DMES的系统管理中,数据库表越多、呈现的关系越复杂则是越难管理。在离散式制造业通用外挂式辅助数据库设计程序复杂的情况下,通用外挂式辅助数据库系统怎样实现对各种软硬件的管理是有关人员需要面临的问题。
2.1 程序框架结构的设计
通用外挂式辅助数据库设计程序系统主要由以下几部分组成:
2.1.1 管理程序
管理程序主要是对车间内部的生产和执行问题进行全面的负责和管理。
2.1.2 计划服务程序
计划服务程序能够对车间内部任务的布置和计划的调整进行全面的整合。
2.1.3 通信程序
通信程序主要是对施工现场作业的数据信息进行采集,并在信息采集的基础上有效实现软件系统和硬件系统数据信息的交互性应用。
2.1.4 接口程序
接口程序主要是实现DMES系统和其他系统进行有效整合的重要系统数据,能够为生产车间的上层系统提供一种全面化的服务,是各种数据进行交流和沟通的重要通道。程序框架结构的设计如图1所示。
2.2 DMES软件系统主要解决的问题
(1)在协助数据库资源系统进行有效管理的同时,辅助系统软件的开发。DMES软件系统在对数据库资源进行有效管理的同时,能够应用一种无代码的开发技术来实现对软件模块的开发,将软件系统的开发模式由原来单纯的代码开发转变为一种可配置的软件开发模式。
(2)利用可视化管理数据库表字段的方式进一步提升数据库表及其字段的可视化程度。
(3)利用通用性的输入条件函数,实现对数据库表格的关联性操作,并利用不同的字母代表不同的操作模块。
2.3 DMES软件系统程序的实现
DMES软件系统程序的实现应用Delphi6.0进行开发,并采用ini的方式来保存系统相应的配置,提升对数据库信息的灵活化应用,实现对各种数据库链接的统一化管理。
3 结束语
通过实践研究证明,这种设计程序的开发形式能够在最大限度上缩短软件程序的开发时间,减少软件开发中的成本错误问题,方便了开发人员的工作程序,提升了工作人员的工作效率。为此需要有关人员对通用外挂式辅助数据库设计程序进行更深一步的研究。
参考文献
[1]钟润阳,戴青云,周科,戴鑫波,王进.通用外挂式辅助数据库设计程序[J].计算机辅助工程,2009,01:83-86.
[2]钟润阳,戴青云,周科.基于外挂式通用数据库辅助设计程序的实现[A].广东省科学技术协会、香港理工大学、广东省机械工程学会.第十届粤港机电工程技术与应用研讨会暨梁天培教授纪念会文集[C].广东省科学技术协会、香港理工大学、广东省机械工程学会,2008(04).
作者简介
篇13
数据库设计其实就是根据需求要实现什么功能,需要存放什么数据,然后我们根据这个来设计最优的数据存储方式,以及如何提高读取数据,新增数据,更新删除数据的速度。数据库设计可分为需求分析阶段、概念设计阶段、逻辑设计阶段和物理设计阶段这四个阶段,这也是软件工程化的思想。需求分析阶段主要是和客户沟通,了解客户具体的需求,换句话说就是去了解要存放什么数据。概念设计是根据需求分析阶段得到的用户需求,然后针对需求对数据库做大体上的设计规划。逻辑设计阶段的主要任务是分析数据之间的相互关系,以及确定整体的设计框架。物理设计阶段则是对每个表做具体的设计,如定义字段、键主键等。
1 数据库分析和设计阶段
在数据库的需求分析阶段,需要开发人员深入到每一个需求客户中去挖掘以及分析,弄清楚用户的需求。绝大多数用户对相关数据库技术可能并不是很了解,开发人员尽量不要用专业词语跟客户沟通,其实很多时候用户可能都不知道自己的准确需求,因此这就需要调研人员从多种角度、多个方位去与用户沟通交流,最大程度的弄明白用户的各种需求。数据库设计的基础就是基础分析,这也是数据库设计环节里难度最高、也最难控制的一个阶段,一般都要经过无数次重复的调研以及反向调研,才最终确定。同时需求分析的好坏,整个数据库的设计都会受到影响,所以这一阶段至关重要。强调一点的是,这个阶段是伴随数据库设计整个周期的。在数据库的概念设计阶段,数据库开发设计人员要从需求分析阶段得出到的结果,从用户的眼光出发,勾勒出各种数据的处理细节,彼此之间的联系,最后让用户理解并能够操作设计出的数据模型。在这个阶段关系型数据库呈现的是一种设计好的用户需求E—R图。在此基础上,就算是在需求分析阶段没有全面充分考虑到或是遗漏的任务也可以做出及时的补救。实体关系图可以一目了然的看清数据间的联系与处理,并且还可以给数据库开发设计人员,下一个环节的设计提前做好准备,这也是数据库设计最核心、最关键的部分。
2 数据库逻辑与物理设计阶段
数据库逻辑设计阶段是指把上一阶段获得的,独立于其他数据库管理系统的E-R图,转换到另外一种具体的数据库管理系统中,并做设计开发。这个阶段需要考虑具体数据库系统的支持的关系模型转换,并根据已有的功能及结构来把实体模型转换为关系模型。设计数据库的细节也是数据库物理阶段的设计,类似于软件工程的详细设计,需要设计数据的存储类型、字段长度的多少,主键设置什么字段,索引设置在哪些字段上,索引数量的建立,以及从数据库整体结构出发考虑到数据的安全性、完整性和效率性。这一阶段说起来简单明了,其实是需要深厚的数据库设计功底和丰富的设计经验才能设计得出完美的数据库。一项索引就可以让人探索研究很久,在哪里建索引,何时建、建多少?这些都不单是理论就能得到最优的结果,需要长期的积累和尝试才能得到。
3 数据库SQL的优化
数据库设计当然不可缺少的是数据库SQL的优化,这里我们探讨下数据库SOL优化要注意的几点:
1)勤用WHERE语句。这是设计人员都知晓的,数据库查询效率的高低程度,是人们评判数据库设计的好与坏的一个重要标准,不可怀疑,采用Where条件语句查询数据库,可以提高数据库查询性能。如,在众多报表统计的时候,如果数据量是非常大的时候我们导出数据都是有时间段限制。
2)灵活使用函数。如COUNT函数,要合理放置COUNT函数的位置,在通过COUNT函数做统计记录的时候,空行的记录也是会考虑的因素,还有要灵活跟其它函数搭配使用,如与DISTINCT函数结合应用等等。
3)只查询必要显示字段,少用*号。数据库检索的速度跟数据量的大小息息相关,在查询的时候,只查询必要的数据及字段是必须要注意的,有时候,用户不同的查询需求可能大多数数据都是相同的,只有一少部分数据不同,为此,我们就得考虑这些内容是放在同一张表中还是不同的表呢,假如仅仅只考虑技术这方面,那两者的实现也不会有太大的难度。可是,要是考虑数据库的性能,那就需要利用不同的表满足的不同的需求。一种是安全性的考虑,可以通过设置不同的访问权限设计不同的表格。可以看到,数据库详尽化,在权限控制上则会更加的灵活。另一方面,数据的查询效率,跟数据内容的多少也有非常密切的关系。设计人员必须学会依据不同用户需求,设计出不同类型的表。也许可能这样在设计的时候花的时间更多,物理空间占的跟大,但确可以提高数据库的性能与安全性。这是非常划算的。
4)利用注释提高查询语句的可读性,这也是专家级的数据库设计人员必备的习惯之一。注释不会对数据库性能产生任何不良影响,充其量就是占一定的物理磁盘空间,跟程序开发一样,注释提高代码的可阅读性,让别人很轻易就看懂代码,便于后续的维护和二次开发。在我们写注释的时候,应该要注意一点。最好用英语写,因为众多数据库对中文的支持不好,在导入数据库文件的时候可能会出现乱码问题,或者干脆被忽略掉。注释的编写也有规范的,虽然没有那个数控公司提出这种规范,其实在业界已经形成了注释规范。如,写函数或觸发器的时候,第一要说明该函数或觸发器的功能作用。然后说明要传入参数,有几个参数,分别说明类型。然后有没有返回值及返回值的类型等等。最后一点值得关注的是注释所放的位置,通常都是放在函数和存储过程的开头。当然个个函数体内也是要写一点必要的注释,如太复杂的思维逻辑必须有注释。
4 创建视图