数据库设计实用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

目前,产品化的数据库管理系统是以关系型数据库为主流,技术相对成熟。面向对象的数据库管理系统尽管技术上处于先进,数据库易于研发、维护,但至今为止,还没有成熟的产品。占主导位置的关系型数据库管理系统包括ORACLE、SYBASE、SQL Server、INFORMIX与INGRES,这些产品都支持UNIX、VMS、WINDOWS等不同平台,但支持的程度不一样。

通常系统的设计与研发阶段,设计人员、研发人员与测试人员仅会把工作重点放在系统的功能实现上,而此时因为测试数据较小,难以衡量系统的运行性能的优劣,然而如果系统进入实际运行阶段,大量的业务数据通常会使系统的性能逐步降低,此时再来考虑怎样提升性能则会花费更多的人力及财力。所以,设计出高质量的数据库结构就变得特别关键。

2 数据库服务器选择

对于占主导位置的SQL Server、Oracle、SYBASE、DB2和INFORMIX数据库,分别从性能、运用风险、开放性、易维护性与价格等方面来分析比较。

2.1 性能

SQL Server老版本服务器多用户时性能较差,新版本的性能有了显著的提升,各项处理能力都有了显著的提升,占有数项TPC-C(事务处理性能委员会)纪录,并支持集群。Oracle数据库性能最佳,占有Windows NT平台下的TPC-D(基准测试,衡量联机事务处理系统的一个测试指标)及TPC-C的世界纪录。SYBASE数据库性能较好,满足Sun、IBM、HP、Compaq及Veritas集群设施的性能,达到高可用性;性能比SQL Server稍差,然而在UNIX平台下的并发性要高于SQL Server,适用于安全性要求较高的应用系统。DB2适合于数据仓库与在线事务处理,性能较好,支持胖客户端和应用模式。INFORMIX性能较好,支持集群,达到高可用性,适用于安全性要求极高的应用系统,特别是在金融业、证券行业的应用。

2.2 运用风险

SQL Server属于完全重写的代码,性能及版本兼容性有了较大的改善,同Oracle、DB2的性能差距显著减小。该产品的产生经历了大量用户长期的测试,对产品的安全及稳定进行了全面的检测,安全稳定性有了显著的改善。Oracle长时期的研发经验,完全向下版本兼容,基本没有风险。能够安全的进行系列产品的升级,在企业、政府中获得普遍应用。而且假如在WINNT平台上不能满足数据的要求,能够安全的将数据转移到UNIX平台上来。SYBASE向下版本兼容,然而ct-library程序不易移植。研发周期较长,升级较为复杂,稳定性较佳,数据安全有保障,风险较小。在安全要求极高的金融、证券领域获得了普遍应用。DB2在巨型企业获得普遍的应用,向下版本兼容性较好,应用风险较小。INFORMIX研发周期较长,升级较为复杂,稳定性较佳,数据安全有较高保障,应用风险较小。在安全要求极高的金融、证券领域中获得了普遍应用。

2.3 开放性

SQL Server仅能在Windows平台上部署、运行,C/S结构,操作系统的稳定对数据库是非常关键的。仅支持Windows平台,能够用ADO、DAO、OLEDB、ODBC、JDBC等网络数据库连接技术沟通。Windows平台的可靠性和安全性通过了最高级别的C2认证,在处理大数据量的重要业务时具备较好的性能。Oracle能在所有主流平台上部署、运行(包含 Windows),完全支持目前所有的工业标准。利用完全开放策略,可以进行多层次网络计算,对多种工业规范提供支持,能够用ODBC、JDBC、OCI等网络数据库连接技术沟通。能够使客户选用最适合的解决方案,对开发商完全支持。SYBASE能在所有主流平台上部署、运行,C/S结构,能够用ODBC、JDBC、Jconnect、Ct-library等网络数据库连接技术沟通,在金融业中获得了普遍的应用。但因为早期Sybase同OS集成度不高,所以VERSION11.9.2以下版本需要较多OS及DB级补丁,在多平台的混合环境下会产生一定问题。DB2能在所有主流平台上部署、运行(包含windows)。有较佳的开放性,最适于海量数据。支持跨平台能力和多层结构,支持ODBC、JDBC等类型应用系统,在大型的国际企业中获得最为普遍的应用。IINFORMIX仅运行于UNIX平台,包括SUNOS(Sun的操作系统最初称呼)和HPUX(Hewlett C Packard UNIX的缩写,属于惠普公司的UNIX操作系统),在金融业获得普遍的应用。

2.4 易维护性与价格

SQL Server从易维护性与价格上SQL Server占有较大优势。基于Microsoft产品的一贯风格,SQL Server的图形管理界面导致了显著的易用性,微软的数据库管理员培训工作相对充分,能够轻松的找到技术较好的数据库管理员,数据库管理费用相对低,SQL Server的价格也是较低的。Oracle从易维护性与价格体来说,Oracle的价格是相对高的,管理相对复杂,因为Oracle的应用相当普遍,经验丰富的Oracle数据库管理员能够相对容易的找到,因而实现Oracle的良好管理。所以,Oracle的性价比在商用数据库中是最佳的。SYBASE的价格是相对低的,然而SYBASE的在企业及政府中的应用较少,较难找到经验丰富的管理员,运行管理费用偏高。DB2价格较高,管理员较少,在中国的应用相对少,只在金融业获得一定应用,运行管理费用都非常高,比较适用于大型企业的数据仓库应用。INFORMIX价格在这些数据库服务器中居于中间,同SYBASE类似,在企业及政府中应用相对较少,只在金融业获得了普遍的应用。经验丰富的管理人员偏少,运行管理费用偏高。

3 数据库设计

数据库结构设计在该数据库管理系统研发过程中占据非常关键的地位,下面从数据库设计原则、数据库设计方法与步骤、逻辑数据模型设计等三方面简述该数据库管理系统数据库设计。

3.1 数据库设计原则

该数据库管理系统的数据库参照以下设计原则:

(1)数据库设计要达到标准化与规范化。数据结构的标准化与数据关系的规范化有助于消除冗余数据。

(2)表中数据类型的合理化。合理的数据类型有助于提升该数据库管理系统数据库的运行性能。

(3)数据表命名的规范化。每个关系型数据库对数据表的命名都有一定要求,在对数据表命名时利用大小写敏感的形式,而且数据表命名长度不应过长,这样能够使该数据库管理系统可以应用在多个不同的数据库平台。

(4)数据库性能的完善。在运行环境已经固定的因素下,数据库的性能成为影响该人事数据库管理系统运行性能的主要条件。可以利用两个步骤开展数据库设计:先是进行逻辑设计,而后进行物理设计。逻辑设计要求消除所有的冗余字段,可以完整地说明数据库表之间的关系。然而对于多表之间关联的查询,去除所有冗余会损耗系统性能,也会增大系统研发难度。因此,找到一个平衡点成为数据库设计的关键,在物理设计中开发人员要分析关联数据表的数据量大小与访问频率,并对数据表中用来关联查询的关键字段留存适当的冗余,以提升数据库的性能。

3.2 数据库设计方法与步骤

数据库的建设分成概念数据模型设计、逻辑数据模型设计与物理数据结构设计等三个阶段,其目的是达到合理的数据表结构,使数据的存取操作更为有序,数据的编辑、查询更为方便,从而实现该数据库管理系统数据库的建设。

(1)概念数据模型设计。概念数据模型反映的是系统最终用户对于数据存储的观点,代表了系统用户综合性的信息需求,它用数据类的方式表达企业级的数据需求,数据类描述了在业务环境中聚集起来的几个重要的类别数据。概念数据模型包括主要的实体和实体之间的关系。描述概念数据模型最常用的是“实体-关系”图(即E-R图),E-R图主要是由实体、属性及关系等三个要素组成的。

(2)逻辑数据模型设计。逻辑数据模型是指系统分析师、设计师对数据存储的见解、看法,是对前一阶段概念数据模型的分解与细化。逻辑数据模型是按照业务规则决定的,是业务对象、业务对象的数据项以及业务对象之间关系的描述。逻辑数据模型包括所有的实体与关系,决定每个实体的属性,指明每个实体的主键和外键。

(3)物理数据模型设计。物理数据模型是对真实数据库的表达。数据库对象包括表,视图、字段、数据类型、长度、主键、外键、索引以及是否可为空,还有默认值。概念数据模型到物理数据模型的转换是将概念模型中的对象转换为物理模型的对象。

4 总结

开发数据库管理系统时,一个优秀的数据库服务器的选择和好的数据库结构设计起到举足轻重的地位。SQL Server属于微软公司研发的大型关系型数据库系统,功能相对全面,效率较高,管理与操作比较简单、方便,整个系统的安全及稳定也较高,并且性能价格比最好,节约企业资金,降低研发成本,是开发人员理想的选择,能够作为中型企业或单位的数据库平台。数据库结构设计在数据库管理系统研发过程中同样占据非常关键的地位,一个好的数据库结构是该数据库管理系统的基础,数据结构设计的优劣将直接影响到该系统的效率以及所要达到的效果。

数据库设计篇3

二、数据库简介

所谓数据库,就是一个长期存储在计算机内的、有组织的、可共享的、统一管理的数据集合。它是一个按一定的数据结构来存储和管理数据的计算机软件系统。不同的用户可以按各自的需求使用数据库中的数据,多个用户可以同时共享数据库中的数据。数据库系统立足于数据本身的管理,将所有数据保存在数据库中,进行科学的组织,并借助于数据库管理系统,以它为中介,与各种应用程序或应用系统接口,使之能方便地使用数据库中的数据。简单地说数据库就是一组经过计算机整理后的数据,存储在一个或多个文件中,而管理这个数据库的软件就称之为数据库管理系统。数据库系统一般是由数据库、数据库管理系统、数据库应用系统及计算机软硬件、系统人员和用户等组成。

三、数据库设计在二调中的应用

在全国第二次土地调查中,数据库建设就发挥了很大的作用,它将我们调查到的各种数据全部集中在数据库管理系统中,使我们以后能更方便、快捷地进行查询、管理等工作。

建立一个数据库管理系统,首先,我们都需要一个数据库平台,现在我们常用的数据库平台大概有几种:Access、SQL server、oracle等。而对于二次调查这种大型的项目,里面含有很多图形数据、图像数据、属性数据等资料的数据库,我们一般选择SQL server 和oracle这种功能较强的关系数据库作为我们建立数据库的平台。这样就需要我们能够了解数据库建设的相关原理和设计过程。

数据库的设计就是指根据用户的需求,在某一具体的数据库管理系统上,设计数据库的结构和建立数据库的过程。一般来说,数据库的设计过程大致分为需求分析、概念设计、逻辑设计、物理设计、概念设计、数据库运行和维护6 个步骤。

具体对于二次调查项目来说,需求分析就是指调查和分析全县各类土地利用情况,按照国家的分类要求和调查规范,对全县土地进行分类、划分,建立一套完整的土地利用管理数据库。

概念设计是指对用户要求描述的现实世界,通过对其中住处的分类、聚集和概括,建立抽象的概念数据模型。在二调中就是指土地各个分类之间的相互关系,权属关系,具体来说,就是“县―乡―村―图斑”,由相同权属性质(坐落权属代码)的图斑组成村,由村组成乡,由乡生成县。将属性信息和图形信息相互照应起来,就是数据库中常说的“E―R 模型”。

逻辑设计是指将现实世界的概念数据模型设计成数据库的一种逻辑模式,即适应于某种特定数据库管理系统所支持的逻辑数据模式。在二调中就是指将土地利用现状中的各种地类、属性转换成数据库管理系统能够识别的模式。并能让我们直观地查询出来。

物理设计是指数据库的存储结构和存储方法,数据库管理系统会根据具体的应用任务选定最合适的物理存储结构(包括文件类型、索引结构和数据的存放次序与位逻辑等)、存取方法和存取路径等。这一步设计的结果就是所谓“物理数据库”。在二调建库中,指定的管理系统会将我们的基础资料保存在适合的位置。

验证设计是指在上述设计的基础上,收集数据并具体建立一个数据库,运行一些典型的应用任务来验证数据库设计的正确性和合理性。在二调中,验证设计就是在将数据库中的所必须的数据,图形,属性全部附上,建立一个完整的数据库,并实现各种查询功能,统计功能等。

数据库运行和维护是指数据库系统正式运行,标志着数据库设计与应用开发工作的结束和维护阶段的开始。运行维护阶段的主要任务有四项:(1)维护数据库的安全性与完整性:检查系统安全性是否受到侵犯,及时调整授权和密码,实施系统转储与备份,发生故障后及时恢复。(2)监测并改善数据库运行性能:对数据库的存储空间状况及响应时间进行分析评价,结合用户反应确定改进措施。(3)根据用户要求对数据库现有功能进行扩充。(4)及时改正运行中发现的系统错误。而对于二调的项目,就是指数据库的维护阶段,把数据库中各种数据,如图斑,线状地物,地类界线等,把按照国家要求所需要的属性全部附在数据上。并且根据管理部门的要求,可以对数据库进行修改;另外实现数据库的备份,还原等功能。

这样,一个完整的数据库就建好了。其实在建设数据库的过程中,重要的内容在于前期数据的整理。对于二调来说,无论采用SQLserver 或者oracle 平台,数据库管理系统无论采用苍穹或者mapgis等,数据库的一个基本模式已经建立完整。我们只需要把我们的外业资料转化为数据库能够识别的数据就可以了。这就要让我们保证外业调查地图的正确性,完善性;内业矢量化工作的严谨性。在矢量化的过程中,同时将一些必须的属性同时附上。比如说地类图斑的地类代码,权属性质等。线状地物的宽度,线状地物代码,权属性质等。这些东西是需要我们手工赋值的。其他的一些必备属性,数据库管理系统会根据数据字典,根据国家要求设定好的程序对各种数据进行维护。

数据库设计篇4

利用Delphi 可视化开发工具开发数据库时,通常应用程序不能直接操作数据源,而要通过“数据库驱动程序”的中介来对数据库进行操作,设计数据库应用程序的体系结构如图1所示。

可以把数据库设计程序分为三部分,它们是窗体设计、数据模块设计和数据库设计,我们主要讲述数据模块设计这一部分(图中虚线所标注的部分)。数据模块设计主要包括:

数据库引擎设计

数据库访问设计

数据库连接设计

数据库引擎设计部分完成应用程序与数据库的连接时驱动程序的设置; 数据库访问设计完成在窗体中实现对数据库的操作; 应用程序设计完成后,通过数据库连接的设计实现与数据库的相连,这样应用程序才能使用数据库中的数据。

3 数据模块的设计

3.1 数据库引擎

利用Delphi 7 可视化开发工具开发数据库时,通常不能直接操作数据源,而是通过“数据库驱动程序”作为中介。一般一种数据库至少需要一种数据库驱动程序,随着数据库种类的增加,也逐步生成了多种数据库驱动程序,数据库引擎的作用就是管理这些数据库驱动程序。开发数据库时用同一种模式操作数据库引擎,由数据库引擎自动启动具体的数据库驱动程序。Delphi 7中包括以下数据库引擎:

BDE 数据库引擎

ADO 数据库引擎

dbExpress 数据库引擎

Interbase 数据库引擎

数据库系统设计时,在窗体中添加相关的组件,即启动了数据库引擎,建立了窗体与数据库的连接。

3.1.1 BDE 数据库引擎

BDE数据库引擎(Borland Database Engine),是Borland 公司推出的产品。BDE中封装了各种数据库驱动程序,可以访问本地数据库,通过SQL server 和DB2 驱动程序访问远程数据库,还可以通过ODBC适配器访问数据库。BDE 和数据库的配置是通过BDE Administrator 工具管理的。

3.1.2 ADO 数据库引擎

ADO(ActiveX Data Objects)是微软公司推出的一套数据库访问规范。它使应用程序能够通过一种叫OLE DB提供者的驱动程序(即向应用程序提供基于COM的数据访问规则和API函数的集合)访问和操作数据库。ADO 是以ActiveX 组件的形式封装了OLE DB, 以提供一个更方便的使用方式 。

3.1.3 dbExpress 数据库引擎

dbExpress 是Delphi 6 中新增加的数据库连接模式,它适用于快速而轻量级的SQL数据库连接访问。它为不同的引擎提供了统一的交互界面,由于dbExpress 直接使用了厂商自己开发的数据库驱动(一般是dll 文件),所以数据库的访问操作性能有了很大的提高。它用于返回数据的数据机都是单向的,不会把查询的数据返回到本地内存中,这使得其灵活性大打折扣。

3.1.4 Interbase 数据库引擎

Interbase是一种关系数据管理系统,Delphi 7 通过对组件的封装提供了对Interbase 数据库的访问能力。

3.2 数据库连接方式

开发的数据库程序只有和数据库建立连接,才能存取数据库中的数据,Delphi 7 提供了4种连接数据库的方法:

BDE 方式连接数据库

ADO 方式连接数据库

ODBC 方式连接数据库

平面文件访问数据库

3.2.1 BDE 方式连接数据库

BDE 是Delphi 7 内置的数据库引擎,通过它连接数据库比较简单,首先用BDE Administrator 为数据库建立别名,例如:当连接Access数据库时只需指定数据库驱动程序名为Microsoft Access Drive 即可。

3.2.2 ADO方式连接数据库

Delphi 7 提供了ADO 组件来实现ADO功能,大部分的ADO组件都相类似地基于BDE的连接和数据集组件的,所以操作起来比较容易。

3.2.3 ODBC 方式连接数据库

ODBC(Open Database Connectivity,开放数据库互连)是Microsoft 公司开放服务结构中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。

由微软提供的驱动程序管理器是带有输入库的动态连接ODBC.DLL,其主要目的是装入驱动程序,此外还执行处理几个ODBC初始化调用;为每一个驱动程序提供ODBC函数入口点;为ODBC调用提供参数和次序验证的工作。

当应用程序调用SQL Connect或者SQLDriver Connect函数时,ODBC驱动程序管理器装入相应的驱动程序,它对来自应用程序的ODBC函数调用进行应答,按照其要求执行以下任务:

建立与数据源的连接;

向数据源提交请求;

在应用程序需求时,转换数据格式;

返回结果给应用程序;

将运行错误格式化为标准代码返回;

在需要时说明和处理光标。

ODBC配置驱动程序分为单层次(single-tier)配置和多层次(multiple-tier)配置。单层次配置驱动程序要处理ODBC调用SQL语句,并直接操纵数据库,具有数据存取功能。这种配置最常见的是同一台微机之上异种数据库通过ODBC存取 ; 多层次配置驱动程序仅仅处理ODBC调用,而将SQL语句交给服务器执行,然后返回结果。这种情况往往是应用程序、驱动程序管理器、驱动程序驻留在客户机端,而数据源和数据存取功能放在服务器端。比如:用Foxpro或Excel存取SQL Server或Oracle上的数据; 有时在单层次和多层次之间加上网关以解决通信协议的转换等问题,这时驱动程序要将请求先传送给网关,如访问DEC RDB和IBM AS/400时的配置。

3.2.4 平面文件访问数据库

Delphi 7 在程序中访问文本文件的支持非常有限,数据库中必须包含两个文件:一个是数据文件,扩展名必须是.txt,另一个是概要文件,扩展名为.sch,并且这两个文件的名称必须相同。数据库访问时不支持索引、不能使用TQuery组件、不能删除、插入记录等诸多限制,所以在引用文本数据库时,最好将文本数据库转换成Paradox,再进一步地设计。

4 结束语

到目前为止,计算机软件的开发分为两个不同的体系,一个体系是使用传统的程序设计语言开发数值控制、数据运算等软件,另一个体系是通用的数据库管理软件领域,但两者之间并没出现混合渗透现象,而Delphi 7结合了两个体系的优点,它结合了传统的编程语言和数据库语言的强大功能,既可以用于传统的算术编程又可以用于数据库编程,它是面向对象的,可以用同一个开发工具设计自动控制程序,并将数据进行网络管理,给程序设计带来极大的方便。

参考文献

数据库设计篇5

《数据库开发》是计算机专业的一门核心课程,通过本课程的学习,学生将能够进行初步的需求分析,根据分析结果设计数据库的概念结构模型和逻辑结构模型,并能够根据物理结构模型进行数据库实施和简单数据库应用系统的开发。本课程实践性非常强,注重培养学生的动手能力。所以,设计课程过程中,应该更加注重课程本身的实用性,更加注重课程内容本身与企业岗位的相结合。

《数据库开发》课程设计主要经历了企业调研、课程标准开发、课程方案设计等几个阶段。下面就分别说明一下课程设计的每个阶段。

1 《数据库开发》课程企业调研

进行企业调研是课程建设要进行的第一步,只有进行了充分的企业调研才能培养出满足社会和企业需求的合格人才。才能根据需求进行课程的设计,这样才能使学校的课程更加适合企业,更加适合社会。为此,我们的项目团队到企业进行了实地调研,我们获取到了企业对于学生的需求和对于课程设置方面的建议。

本门课程在进行企业调研之前已经根据之前的教学经验设置了本门课程的任务,具体任务设置如下:

任务1 数据库分析与设计

任务2 系统前台页面设计

任务3 数据库实现

任务4 系统后台实现

任务5 数据库维护

通过与企业专家进行研讨,最终获取来自企业关于《数据库开发》课程设计的建议。具体建议如下:

任务1 教学要求及建议:

①数据库基本概念和知识简单带过,达到了解的程度即可。

②需求分析难度较高,不建议让学生进行整个系统的需求分析,可以编写需求规格说明书的部分内容。

③进行数据库概念结构设计时,可以先画出系统的各个部分的E_R图,最后在将整个系统的E_R图画出来。

④可以使用PowerDesigner软件进行数据库的概念结构设计和物理结构设计。

⑤这部分内容比较难,需要多练习,可以适当多加一些课时。

任务2 教学要求及建议:

①本部分内容是对于之前所学网页设计和JSP的内容进行熟悉,可以以学生做为主。

②进行分小组教学,小组内进行角色划分,充分发挥团队的力量。

③因为是之前的知识可以适当减少课时。

任务3教学要求及建议:

①对于数据库管理软件可以选择相对比较容易上手的,如SQL Server、MySQL等。

②数据库管理软件图形界面操作时,应该注意多做练习培养学生的动手能力,选择是实例可以由浅入深,逐步较大难度和工作量。

③应该重点讲解SQL语句,因为SQL语句的大部分语法都是可以在不同数据库通用的。

④实现所用项目的数据库时,也应该将尽量让学生自己进行SQL语言的编写,这样可以更好的使掌握SQL语句的应用。

任务4教学要求及建议:

①讲解Spring的基本原理和用法时,应通过简单的实例学习Spring的应用。

②学生应该进行分小组不同模块的开发练习,小组规模不要太大,3个人为一组比较适宜。

③不应占用太多课时。

任务5教学要求及建议:

①数据库维护的内容应该以视图和索引为主,进行重点讲解。

②数据库的用户和权限的应该多做实例。

③触发器的使用可以简单讲解。

课程总体建议:

①课程讲解内容较多,且内容难度较高,需要课时较多。

②应重点讲解任务一和任务三的内容,其次是任务四和任务五的内容。

③学生多做练习,注意培养他们的团队合作能力和沟通能力,注意锻炼学生的自学能力。

有了企业调研结果作为课程设计的依据,就可以进行课程标准的制定。

2 《数据库开发》课程标准的设计

课程标准是一门课程进行教学的根本依据,在课程标准中要包含课程的设计思路、能力目标和课程内容框架等内容。制定课程标准一定要详细描述课程各方面的内容,制定完整准确的课程标准是进行课程设计重要环节。

2.1 课程设计思路 本课程主要以企业实际项目为主线,通过五个典型的工作任务,使学生掌握数据库开发的相关知识和技能;学生在学习本课程过程中,主要学习的内容包括:数据库需求分析、数据库模型设计方法、使用数据库管理软件对数据库模型进行实施、使用数据库管理软件管理数据库,对已有的数据库开发数据库应用系统对数据进行增删改查的基本操作。将该课程的整个教学任务按照项目分为5个典型的工作任务,具体描述如下:

①数据库需求分析:对所选用的项目的需求使用需求分析方法进行分析,并编写需求规格说明书。

②数据库模型设计:根据上一个任务中编写的需求规格说明书,进行数据库的概念结构设计、逻辑结构设计和物理结构设计。

③数据库模型实施:选择数据库管理软件对上一个任务中设计的数据库模型进行实施,并介绍SQL语句的基本应用。

④数据库查询操作及视图、索引等数据库对象应用:对于已有数据库使用SQL语句进行查询的操作,并介绍视图、索引等主要数据库对象的应用。

⑤数据库应用系统开发:开发一个基于Web的数据库应用系统,对已有数据库实现数据的增删改查的功能。

以上的典型工作任务,与企业调研之前的工作任务对比情况,如下表所示:

2.2 能力目标

①能够进行初步的需求分析

②能够根据需求分析的结果设计数据库的概念模型

③能够将数据库概念模型转换为逻辑模型,并生成物理模型

④能够使用SQL语句实施数据库模型

⑤能够使用SQL语句进行简单数据查询

⑥能够使用Spring+Hibernate开发基于Web数据库应用系统

在课程标准中,还包含其他的一些内容,比如课程内容、课程的考核方式等内容,这里不再赘述。制定完课程标准后,就要依据课程标准进行课程方案设计。

3 《数据库开发》课程方案设计

根据课程标准,进行课程方案的设计,课程方案设计一般包含课程总体方案设计、课程任务方案设计和课程活动方案设计。

3.1 课程总体方案设计 课程总体方案设计是对于本课程的总体的介绍,其中包含课程的课时、适用专业、学习内容、能力目标、学习成果和考核方案等内容。

3.2 课程任务方案设计 课程任务设计方案是对于课程中涉及的典型工作任务的描述,它具体说明了课程中每个任务的学习内容、能力目标、学习环境、教学方法、学习成果和评价标准等内容。

3.3 课程活动方案设计 课程活动方案设计是对于每个典型工作任务中具体活动的描述,它具体说明了在典型工作任务中每个学习活动,介绍学习活动的内容、目标、活动具体设计、课程用到的参考资料等内容。

在完成课程的方案设计后,就可以根据方案进行数据库的实施了,在实施过程中还会遇到各种问题,实施完成后,要根据实施的情况,对课程的课程标准、课程设计方案等内容进行修订,从而使得课程的设计方案更加完善。

4 结论

由上面的内容不难看出,《数据库开发》课程的设计或者是其他技术类课程的设计,都应该注重实践,减少课程理论知识的讲解,将课程的理论知识融入到学生完成的典型工作任务中,真正要做到“做中学”,要重视课程本身与企业的关联,要做到课程为企业服务,另外,课程本身中的内容还要与时俱进,跟得上社会发展。

数据库设计篇6

Research on Database Programming Based on Delphi

CHEN Bin-ru, LI Xiao-jing, LIU Jin

(Computer Office, Aviation University of Air Force, Chuanchun 130022, China)

Abstract: The paper discussed the I/O of database, presented the components of Delphi database, concluded the method and process of database programming based on Delphi.

Key words: Database; Delphi; Programming

1 概述

在Delphi众多的优势当中,它在数据库方面的特长显得尤为突出:适应于多种数据库结构,从客户机/服务机模式到多层数据结构模式;高效率的数据库管理系统和新一代更先进的数据库引擎;最新的数据分析手段和提供大量的企业组件。

2 存取数据库

Delphi对数据库的操作主要是利用BDE(数据库引擎,Borland Database Engine的缩写)来进行。当然,通过其他方式直接访问数据库,在Delphi中也都是可以实现的。不过,对于本地数据库来说,通过BDE存取数据效率很高。

BDE是负责用户和数据库交流的中间媒介。事实上,应用程序是通过数据访问组件和BDE连接,再由BDE去访问数据库,完成对数据库的操作,而并非直接操作BDE。这样用户只需关心Delphi中的数据组件即可,不用直接和BDE打交道。数据库组件主要分为两类:“数据访问组件”和“数据控制组件”,它们和数据库的关系可用关系图1来示意。

图1 数据库的关系

3 Delphi常用数据库组件

3.1 数据访问组件(Data Access Component)

数据访问组件在Delphi组件面板的Data Access组件页上可以找到。这里我们应当注意:Table、Query和Storedproc三个控件,它们称为“数据集组件”,用于和数据库连接。学习者可以将这些控件视为“虚拟”的数据库,对它们的操作就可以认为是对数据库的操作。

1)DataSource控件是数据集组件和数据控制组件的连接媒介。数据控制组件是用户操作数据库中数据的界面,只有通过DataSource控件才能和数据集组件连接,从而对数据进行显示、修改、维护等操作。

2)Table控件是通过数据库引擎――BDE来存取数据库中的数据的。通过BDE将用户对数据库的操作(如添加、删除、修改等)传递给数据库。

3)Query控件是利用SQL(Structured Query Language,结构化查询语言)通过BDE来操作数据库的,和Table控件完成的功能相似,它只是采用了SQL来实现。

4)Storedproc控件是通过BDE对服务器数据库进行操作的,常用于客户/服务器(C/S)结构的数据库应用程序。

5)DataBase控件一般用于建立远程的数据库服务器――客户/服务器结构的数据库应用程序和数据库之间的连接。

6)Session控件是用于控制数据库应用程序和数据库连接的,主要用于复杂功能的实现,例如:多线程数据库程序设计。

3.2 数据控制组件(Data Control Component)

数据控制组件也可以称为数据显示组件或数据浏览组件。它们的主要功能是与数据访问组件相配合,提供给用户一个对数据进行浏览、编辑等操作的界面。数据控制组件在组件板上的DataControl页上。它们主要有:DBGrid控件、DBNavigator控件、DBText控件、DBEdit控件、DBMemo控件、DBImage控件、DBListbox控件、DBComboBox控件、DBCheckBox控件、DBRadioGroup控件、DBLookupListBox控件、DBLookupComboBox控件、DBRichEdit控件、DBCtrlGrid控件、DBChart控件等等。

此外,还有一些组件与数据库有关。例如,Decision Cube是一组主要用于数据统计工作的控件,以表格或图形等直观的方式表达统计结果。QReport是用来输出报表的控件,但是,根据经验来看,此控件不太适合中国人报表的习惯。此组件是Borland公司购买而来,性能不是太好,所以现在使用的不是很多。

4 Delphi平台开发数据库程序方法和步骤

4.1 设计方案

该设计方案也可以说是一个计划、大纲之类,在方案中首先要根据自己或用户的需要把程序应具备的主要功能详细列出,这是很最关键的(在软件工程中叫做“系统分析”),否则在设计完成后发现有些功能由于事先没有考虑周全,导致设计工作的重复和人力、物力资源。其次,列出程序中相关的辅助功能和一些通用功能。例如,一些用户可能对数据库软件提出数据库传输、整理、压缩之类的功能要求,所以我们在程序设计中就必须考虑这些功能;通用的一些功能如帮助文件、关于本程序等等,这些都是标准软件开发所必需的。最后,建立数据结构。根据需要实现的功能,选择相应的数据库、数据表格,以及每个数据表格应该具备多少字段、字段的类型、长度、空值的取舍,是否建立索引等。

4.2 设计初步程序流程

根据第一步的设计方案,将大致的程序流程设计出来,每个功能模块都要写出基本流程,这些主要是为以后程序的编写起到一个指导作用。当然,在实际写程序的过程中可能会有很多改动,但这个基本的程序流程会指导你在写程序时不会出现大的偏差。

4.3 准备所需编程资源

根据设计方案需要完成的功能,分析可能需要的编程资源。当然,对非专职程序员来说,这一经验不一定很多,那么就要在编写程序的时候,把经常需要参考的资料或以前编写的程序代码整理、收藏,放在一个专用文件夹中(电子版)或放在案头(纸介质类),以便于在需要时能及时查阅。如果客户提供的资料需要在编程中使用,当然更要准备好。

4.4 设计程序整体界面

根据要完成的功能,设计一个大致的界面,考虑可能用到的菜单、工具栏、状态条,采用独立的窗口还是MID窗口介面以及所有的文字等。这里无需很细致地设计界面,因为在实际写程序中介面常常根据情况进行调整,设计一个轮廓足以。

4.5 系统分析及方案解决

即使是一个编程高手,写一个程序时也会碰到这样那样的困难。为了能比较顺利完成程序设计,最好根据所需功能和程序流程来对整个程序进行框架分析(软件工程是专门研究这一问题的学科)。根据自己掌握的知识、技能分析难点问题,并找到解决方法。比如,对于一个比较复杂的查询,可能用一条SQL(Structured Query Language)语句查询不能得到所需的结果,这就需要分析一下是否有其他方法来完成这个功能:是否需要采用临时数据表格来实现,如果需要使用临时数据表格,那么如何将数据导出到临时数据表格中,这样的SQL语句如果还不会写,那么马上查找资料看看如何实现,最好找一个临时数据库来写几句代码验证一下看能否解决,如果解决了,可将代码作为资料保存备用。

数据库设计篇7

Web服务中大多是以文件传输的形式来进行管理和运营的,但是随着社会发展信息量的加大,系统的反应速度受到很大影响,并且Web的应用领域逐渐扩大,已经不能够满足人们对于信息实时性的要求;另外,数据库近几年的发展十分迅猛且数据库的功能强大,能够快速检索查询大批量的数据,达到高效运行的目标。所以Web数据库就将Web技术与数据库技术相结合,这不仅能够将二者的优势相互结合,最重要的是可以将数据库的重要资源放到网络平台进行检索和浏览,使用户能够在浏览器轻松跨平台实现多媒体的服务。Web数据库作为研究设计的方向,与传统的数据库有明显的不同,比如体系结构以及访问方式等等。

1 Web数据库系统的体系结构

数据库系统的体系结构是涵盖了系统硬件、软件以及语言和算法的综合性概念,具体指的就是组成计算机系统的各部分之间的相互关系。对Web数据库系统结构的研究主要就是对其硬件分布及软件功能分配方面的内容。一个逻辑性清晰、开发容易和便于维护的数据库系统的建立必然是以一个统一的体系结构为指导,同时还要对系统的软件功能分配及硬件分布进行科学的规划。

数据库系统体系结构是随着计算机模式的改变而不断的改变,与计算机体系结构有着紧密的联系。伴着计算体系的集中模式和C/S模式以及三层C/S模式的演变,数据库体系结构也历经了集中式的主机结构和C/S结构以及多层的C/S结构演变。

2 Web数据库应用编程模型

Web数据库经过两种技术的结合,需要解决的就是各个模块之间复杂的信息传输交换方式以及对于数据库的管理和运行,另外还有在设计应用编程中模块和层次间的衔接和整合中存在的问题。

2.1 MVC模型

不管是什么样的应用程序都需要对相关的流程进行控制,根据这些就能够总结出常用的设计模型,在MVC模型中应用程序由三部分组成:模型:是程序的核心逻辑,面对应用领域的抽象对象,对其传输的信息要求进行检索和浏览,实现完成业务的目的。视图:这部分主要是面向用户的应用程序,负责用户与数据库应用程序的链接作用。一方面,视图能够为用户提供所需要的信息输入方式,并能够将需求以最快的速度传输给逻辑应用领域;另一方面,在传出形式上,将逻辑结果以一定的方式呈现给用户。控制:就是将逻辑程序与视图之间进行模式切换,方便两者的信息数据接收和传出。一方面,能够将视图传来的信息进行解读,以一种系统能够接受理解的方式传送出去;另一方面,将逻辑结果和模型的转变的执行进行处理,反馈给用户。

针对MVC模型应用程序的优化设计,包括对用户界面、流程控制以及逻辑方面的设计,将各部分进行分离,然后设计开发出个部分之间的接口,根据不同部分的主要功能,选择最合适的接口技术进行开发设计,最终形成完美结合,突出模型的技术细节和重要功能。

2.2 Web数据库应用系统设计开发中存在的问题

Web数据库的设计开发主要包括三个方面,分别是网页的设计、业务逻辑的设计以及数据库的管理设计。这些实际都是由多个开发人员应用不同的技术来结合成一个完整的程序的,所以编程技术很多,对应的客户的主机也要进行不断地升级才能够接受高功能的程序逻辑。在开发Web数据库的应用程序时,要考虑到运行速度、效率以及逻辑功能等多方面问题,同时各种技术自身都存在一定的不足,如果只采用一种技术来连接Web数据库各部分之间的接口会带来很大的运行困难,所以需要采用多种技术共同设计开发,保证Web数据库的高效率运行。

目前的Web数据库存在的种种问题,主要是编程模型的开发问题,从而造成的网页、逻辑和数据库之间的交流不顺畅。在设计开发的过程中引用系统、合理有效的编辑模型,要求设计和开发人员务必按照一定程序来对各部分接口进行独立的设计和开发维护,并保证不影响整体之间的交流和链接。

3 Web数据库的安全性设计分析

在对Web数据库进行设计的过程中首先需要对其工作环境进行最优化的系统安全配置,进而有效避免非法人员对Web站点的攻击,其具体包括了对操作系统、相关服务器的安全配置,只有将相关工作有效的结合起来,才能为Web数据库的建立提供一个安全的工作环境。3.1服务器的安全配置

对系统不同层次的运行环境要提供出具有较强针对性的安全机制。(1)操作系统的安全设置及措施。在用户进行使用系统之前首先需要做的就是登录,对于一些不能成功登录的用户,系统禁止其使用服务器的一切资源;对系统所有的默认账号和密码进行删除,同时限制用户尝试登录系统的次数;将系统磁盘设置为只读模式;对于系统中一些重要的目录要进行及时的备份,避免丢失;对用户的硬盘使用空间进行限制;对于允许访问系统的用户,对该用户资源访问权限进行设置。(2)数据库的安全设置。Oracle的安全模式设置为标准的安全模式,设置用户只能通过登录ID号以及相关口令进行数据库服务器的访问;对不同的用户在数据库的管理系统中给予不用的用户名设置;同时赋予不同的用户不同的权限;对系统中的用户名和对应口令进行定时的更改;定期的对应用程序中的用户进行审计。

3.2数据库应用程序的安全性设计及实现

对于服务端的应用程序采取了以下几种安全性措施,如下所述:(1)程序连接数据库的应用,Oracle中对数据库的连接用户进行用户名的设置,并赋予其相应的访问权限。同时在应用程序中设置了用户的登录名和登录口令。在应用程序进行数据库链接时,利用系统赋予的用户名和口令方能进行数据库的访问,随后实现Oracle原有的全部用户以及管理权限才能得以实现。具体实施方案:对于每一个数据库的应用程序设置一个相应的数据库账号,该账号对所有的数据信息都具备了操作的所有权限。另外,这对于系统的操作人员还需要创建一个系统账号。这样一来,当用户在访问数据库时,必然会以真正的数据库账号进行登录,然后是相关登录程序的执行过程。这一安全体系直接造成的结果就是整个应用系统成为了数据库的直接用户,而系统的所有操作人员却成为了数据库的间接用户。也就是应用系统在完成了相应的逻辑基础之上,还彻底的分割开了数据库和系统用户,为数据的安全提供了一道坚固的“防火墙”。(2)有效的增强用户的授权机制。在系统中不仅对Oracle的数据用户采用了授权机制,对系统账号也采用了手段机制,在上述的安全体系中,应用程序有效的为数据库和用户之间提供了一道安全防火墙,这对应用程序本身的要求就需要具备足够的安全特性。由于用户授权管理机制的严密性将对整个系统的安全将产生直接的影响,所以强化用户授权机制就显得尤为重要。本文研究的系统中将整个系统根据其功能特性将其划分为了多个最小的权限单元,这些单元同时都具备了可分配的特性,单元权限主要也就表现在了对数据库相应表格属性以及视图文件的操作等内容的划分上,然后再有效的结合相关系统操作人员的工作性质,运用工作组或角色的概念,完成了应用系统账号基本等级的创建工作,如根据等级的不同可将用户分为普通游客、初级会员、高级会员等,同时赋予了不同等级的用户群不同的使用权限,由此以来使得系统权限管理工作得到了有效的简化。为了使系统安全管理的灵活性有效提高,对系统某一等级的用户的权限,授权管理模块需要做进一步的限制工作,以实现所有权限均能达到任意组合的应用效果。除此之外,为了保证相关管理工作人员工作效率的有效提高,对所有的系统权限和每一种等级的用户群体以及不同用户所对应的不同组合权限,建立一部完善的数据词典,为的就是能够保证在任何一种工作环境下,工作人员都能够方便的对用户等级进行添加或者对不同等级的用户权限进行修改等操作;为了能够有效的限制某一系统应用账号的继续使用,该系统还需要设置相应的账号封锁或解冻的功能。(3)系统的审计和检测。系统的检测和审计工作对整个系统的安全稳定具有重要的意义。系统中的日志系统具有良好的数据库操作数据的采集以及记录功能。日志系统能够有效的记录某一用户在登录系统直到退出系统这一访问时间段内的所有操作,包括了用户在登录过程中的失败操作以及在成功登录系统后所执行的增、删、查、改等一系列的操作行为。日志记录的内容还包括了用户的IP地址以及名称、操作类型及操作对象等多项内容。为充分保证系统的安全性和稳定性,系统管理工作人员就需要对日志记录的文件内容进行必要的审计和检测工作,及时的找出系统中存在的不安全因素,并做出及时的处理。

4结语

近几年来,随着网络信息铺天盖地的传播,人们对信息的及时性和有效性的要求越来越高,Web技术的静态网页内容已经远远满足不了人们对于信息的追求。本文将数据库技术与Web技术完美设计结合,实现了全球信息资源的交流和共享,促进了各行业的迅猛发展。同时Web数据库的设计成功,也激励了企业单位的创新精神,建立自己的Web数据库系统以积极适应信息的快速发展。

参考文献

数据库设计篇8

数据库是关于某一类特定内容的集合体,海量资源、注重检索是数据库的两大特征,适用于专业内容,尤其是科学、技术和医学内容。数据库产品参考性强、具有工具性特征,是设计产品时要考量的核心要素。数据库产品的销售以机构用户为主,个人用户是未来发展的潜在市场。

二、数据库产品的结构

数据库产品的结构主要包括支撑层(搜索引擎、电子商务、版权保护、管理系统等)、资源层(资源描述、加工标引、词库分类)、功能层(内容浏览、分类导航、精准检索、知识关联)和用户层(知识服务、个性化服务)。

设计产品的最终目的是满足用户需求、提供良好用户体验。对于数据库产品而言,以上四层结构的设计保障了最终目标的实现。在海量内容的基础上,依靠有序的资源组织,借助专业词库、搜索引擎、内容挖掘等基础支撑,快速查找出用户需求的内容,满足查询参考的需要,在实现用户价值的同时实现产品价值。图1为数据库产品的结构图:

三、数据库产品的出版流程

数据库产品的出版,从设计到实现一般需经历6个核心环节:需求调研、资源调研、功能设计、资源加工、产品研发和运营管理。随着用户需求变化、资源增加和技术升级不断螺旋上升、迭展,从而形成一个循环发展的过程。

下面以人卫社的西医图书数据库为例,简述数据库产品的出版过程。

在需求调研阶段,从用户对医学图书的需求特征入手,明确用户的核心需求,即解决临床实际问题、准确定位查询内容。

在资源方面,人卫社出版的医学图书品种多、专业覆盖全面、内容权威,基本可以满足临床工作需求,具备构建医学数据库的基础条件。

在功能设计上,西医图书数据库在产品设计时明确了功能需求,有明晰的内容组织架构,能提供用户所熟悉的导航浏览路径;能够快速精准的检索;从简单的图书内容服务向知识服务转变;针对不同用户实现个性化服务。

在资源加工方面,所有功能的实现都要从资源加工做起,精准检索和知识服务离不开资源的深度标引。

在关键的产品开发阶段,为了解决开发人员与产品设计人员的知识背景壁垒,建立相应项目组共同工作,定期召开例会,反复沟通详细设计。尤其是一些核心功能的开发,产品设计人员提前介入,及时测试,做到问题早发现早纠正。数据库产品的开发,工作量大、功能点多,从底层架构到前端UI设计都需要切实到位,才能保证质量和开发进度。

最后是产品运营管理阶段,需要以产品设计人员为核心,协调市场销售人员、客户服务人员和技术开发人员,及时响应用户需求,形成产品迭展的机制。

四、以内容资源为基础的产品布局

数据库设计篇9

1.2虚拟数据库的实现虚拟数据库操作的底层接口是各种物理数据库提供的API,虚拟数据库需要将这些API集中地封装起来,并根据用户的需求选择使用。封装结构可以如下所示。示例中仅封装了几个常用的数据库API,也可以根据需求追加定义其他API进入封装结构,也可以根据用户需求随时将其他数据库API封装进来。

2数据下发过程

2.1数据正常下发过程(1)底层网元首先向上层网元上报数据资源审计请求,并将底层网元的数据标识(通常为MD5校验码)带给上层网元。(2)计算底层网元数据审计标识,判断底层数据是否与上层网元数据一致,如果一致,发送数据审计结果正确给底层网元,否则发送数据不一致给底层网元。(3)根据结果判断,如果无需同步,向上层网元发送数据审计流程结束,如果需要同步,向上层网元发送数据请求,数据请求中包含请求数据表,以及数据指针,用于标识上次请求到的数据位置。(4)按照请求数据,从数据库中取出数据,以及数据指针,封装进数据下发包。(5)数据循环向下层网元发送,直到底层网元不在请求数据为止,同时底层网元上报数据审计流程结束,完成数据下发过程。

2.2数据异常下发过程(1)底层网元在无法打开本地的数据库情况下,判断为本地数据库已经损坏,向上层网元发送数据库崩溃通知。(2)生成下层网元的数据库,根据网元类型,通过FTP向底层网元发送数据库文件或者数据文件。(3)底层网元接收完成数据库后,打开数据库,上报数据资源审计请求。

数据库设计篇10

概念结构也称为概念模型,是对用户所提供的原始数据进行综合,抽象出数据库系统所要研究的数据,将现实世界中的事物及其联系,转换成信息世界中的实体及其联系。概念结构设计必须将需求分析得到的用户数据和需求抽象为反映用户观点的概念模型,是用户与数据库人员之间进行交流的工具,其主要表现形式为E-R模型图。图中矩形框表示实体集;菱形框表示实体集之间的联系。

3、逻辑结构设计

逻辑结构设计主要任务是综合考虑关系型DBMS的性能和所设计模拟系统的功能复杂程度,将概念结构转换为逻辑模式,即各个关系模式的结构设计,包括各关系模式的名称、每一关系模式中各属性的名称、数据类型和取值范围等内容。将E-R模型转换成初始的关系模型,然后分析每一个关系模式的合理性,通过关系模式的规范化消除其中不合理模式。E-R模型中的实体和联系经过规范化处理转换为关系模式如下:(1)学员(学号、姓名、担任角色、性别、企业代码),学员通过学号标识。(2)门店(门店编码、容积、最低购买价、最低租赁价、等级、信息化程度、企业代码、获取时间、获取方式、金额),门店通过门店编码标识。(3)模拟企业(企业代码、登录密码、名称、人数),模拟企业通过企业代码标识。(4)商品(商品代码、名称、采购价、容积需求、采购提前期),商品通过商品代码标识。(5)客户订单(订单编码、需求商品、数量、账期、企业代码、市场代码、签约时间、售价、其他要求),客户订单通过订单编码标识。(6)市场(市场代码、类别、开发时间、开发资金),市场通过市场代码标识。(7)现金流量表(编号、时间、收支类别、项目名称、金额),现金流量表通过编号标识。(8)市场开发(市场代码、企业代码、时间、金额),市场开发通过市场代码和企业代码组合标识。(9)采购(企业代码、商品代码、时间、数量),采购通过商品代码和企业代码组合标识。(10)配货(企业代码、商品代码、门店编码、时间、数量、定价),配货通过商品代码、门店编码和企业代码组合标识。

4、数据库实现

4.1建立存储过程由于使用的是关系型数据库,数据处理都是通过SQL语言完成的,其中有大量数据的插入、更新与删除,甚至还需要进行大量的运算,所以直接提交SQL语句并让DBMS进行编译再执行的话,处理的效率较低,而建立存储过程是一种有效解决手段。存储过程是一种存储在数据库服务器上的SQL操作[3],这样很多数据处理流程都在后台以存储过程的方式来实现,即有利于提高系统的运行效率,又可提高系统的可维护性和可扩展性。

4.2设计索引在模拟经营中各模拟企业经常性的要查询公共信息,而且这种查询的时间性非常明显,所以设计索引可以显而易见的优化系统性能,对所有用于时间排序的列创建索引,可以避免整表扫描或访问。在不改变表物理结构的情况下,直接访问特定的数据列以减少数据存取时间;把数据分散到不同的页面上,可以分散插入的数据;主键自动建立了唯一索引,能确保数据的唯一性。

数据库设计篇11

1.2灾情的协同通报信息结构

数据库的建立不仅仅用于记录,还应该具有联网通报的功能,通过该功能可以实现信息的联网分析和总结,提高灾情通报的实时性和系统使用效率,减少或者避免重复工作所带来的人力资源浪费。该部分数据库架构为,在灾情协同录入界面,辅助录入人员可以将灾情数据进行及时收集整理后进行录入,然后利用协同通报系统将信息上传到数据库端并将该部分数据标记为待审核数据。经过工作人员的审核和评定后,若该数据录入准确且具有唯一性,则取消待审核状态,转为灾情详细信息数据,为后续上报或者灾情分析评估等提供数据支持。该部分的信息需要进行单独存放,以免与灾情信息表产生混淆。

1.3灾情评估信息数据结构

灾情根据灾害特点和灾害原因可以分为多种类别,如自然灾害和人为灾害、地质灾害和天气灾害等。不同的灾害收集方式和评估方式均有所不同,因此在数据库架构中如何合理制定灾害信息采集分析表对应用灾害数据进行灾情评估具有重要作用。该部分数据库应该按照如下方式进行构建。首先建立灾情分类数据库,不同灾情与对应灾情描述之间进行特征关联,同类型灾害进行细分和归类。然后根据灾情特征建立对应的数据模型,便于数据录入和灾害评估。

1.4辅助数据表结构

为提高系统的应用性能,可以增设部分辅助数据表作为灾情数据库的补充。利用该表可以进行新灾情的自定义等,增强数据库的可扩展性。同样辅助表还具有区域记录功能,通过对受灾区域进行记录,可以提高灾情地理分布的精确度,增强局部预警能力。

2基于灾情数据库的灾害评估技术分析

在建立气象灾情信息数据库的基础上结合使用GIS技术、数据分析技术、WEB技术等,可以保证对数据库的充分利用,实现灾情的精确评估,减少灾害带来的经济损失。

2.1灾情统计分析技术

对灾情进行记录的主要目的在于利用这些数据进行统计分析,并对分析结果进行总结,生成统计报表,根据报表制定防灾决策,或者指导今后的灾情预警等。该技术生成的统计报表可以用于存储或检索。其中,检索功能可以进行要素关联检索、条件检索、影响检索等。通过进行细分检索和信息对比,可以方便的实现灾害评估。

2.2可视化分布图显示技术

在对灾害数据库进行限定检索后,可以获得相关灾情信息和气象数据。结合使用可视化技术等,可以根据数据统计量生成要素分布图。如灾情分布图、灾害损失分布图等。这些分布图可以直观、便捷的实现天气和灾情的关联,突出灾害易发点,为不同天气下的灾害预防工作提供理论依据。

2.3灾害防御对策技术

灾害防御对策技术主要是指对数据库内的灾害数据进行分析,根据各要素的影响程度调用对应的防御对策信息以供气象工作人员参考。该技术的实现需要对现有的应对策略进行收集、整理和归类,并根据灾害程度制作成相应的数据库文件,进而将该数据库与灾害信息库进行关联。

数据库设计篇12

Key words: SQLite;home gateway;embedded Linux;memory database

中图分类号:TP311.1 文献标识码:A 文章编号:1006-4311(2015)26-0069-03

0 引言

在信息家电系统中,要用遥控器对各类信息家电主动控制,并随家庭环境的变化对信息家电进行自动控制,整个系统中存在着大量实时数据的采集和处理需求。目前对数据的处理通常采用基于数据库的方式,所以构建具有实时性能的嵌入式数据库系统是家庭网关设计环节必须要解决的问题。

结合国内外家庭网关研究的现状和进展,如何改进嵌入式实时数据库对信息家电状态信息的采集处理效率;如何优化数据库系统的资源占用,成为家庭网关系统设计的重要环节。

1 家庭网关的发展与演进

作为智能家居的大脑,家庭网关的作用至关重要。本文主要针对家庭网关数据库平台进行研究,选择合适的数据库架构,改进、移植相关软件,搭建网关的软件系统,设计网关系统中心主模块和web服务程序,实现嵌入式web 服务器的基本功能。

2 嵌入式开发环境的选择

要想保证系统能够真正地发挥自身功能,选择合适的操作系统至关重要。现阶段比较成熟的嵌入式系统主要有:Windows CE、Unix、Linux、QNX等。从家庭网关平台日后的系统升级、维护和功能扩展这些角度出发,本文中的家庭网关平台采用Linux2.6版本作为软件开发平台。

Linux2.6内核拥有更多的新特性:性能方面,采用了新的内核抢占式算法和新的I/O调度算法;稳定性方面,改进了内核加载和导出机制,提高了平台的稳定性和可靠性。设备支持方面,系统内核取消了对大型系统的限制,支持更多的控制器和设备;文件系统方面,扩展了文件的属性,保证了系统的信息安全,增强了PCI总线支持,对USB、蓝牙等外设总线进行功能扩展,满足多种短距离无线传输,方便家庭网关的内部组网。[1]

3 嵌入式网关系统的模块化设计

家庭网关软件系统采用模块化设计,包括系统定制、系统服务、设备模块、控制模块、显示模块、软件开发控制等。其中系统定制模块包括系统移植、内核定制、驱动开发等部分;系统服务模块由系统中心、可移植层、设备管理器、维护管理器、存储系统组成,如图1所示;设备模块主要包括视频模块、Zigbee模块、网络模块等;控制模块主要由web 服务器和各种应用服务器组成[2]。

4 SQLite数据库的改进与移植

4.1 数据库的选型

家庭网关中的嵌入式实时数据库是为了完成家电状态信息的管理而设计的小型数据库。应具备如下功能:支持多种数据类型;支持创建和删除多个表;支持对记录进行插入删除修改和查询操作;支持表的索引操作;支持触发操作,以满足信息家电之间的统一协作。

基于嵌入式linux系统的数据库非常多,常用的有以下几种:

Oracle Database Lite;DB2 Everyplace;Berkeley DB;Firebird;MySQL;SQLite。本文选取的SQLite数据库系统是一个简单易用、开放源码的轻量级嵌入式数据库管理系统。它具有以下优势:支持ACID事务;不需要安装配置、支持大部分SQL92;数据存储在单一的磁盘文件中;最大支持数据库到2TB;内核精小;数据操作速度快等。

4.2 SQLite的应用系统设计

SQLite系统的体系结构包括8个主要模块,如图2所示。

应用程序接口是SQLite的公共接口,通过main.c,table.c,legaey.c,vdbeapi.c程序来实现。词法分析器负责将原始的SQL语句按顺序传送到语法分析器里。语法分析器是一个基于上下文环境的输入语法解释器,采用非终结符析构器的概念,大大降低了出错的几率。通过调用代码生成器,可生成SQL查询所需的虚拟机代码。虚拟机是使用堆栈存储指令来实现处理代码生成器产生代码的虚拟引擎。B-树驱动器通过表和索引中的B-tree创建相应的数据库实例。B-tree模块在磁盘建立1024字节大小的页面缓存,进行读写缓冲,管理数据库文件的读/写锁定的权限。SQLite通过Linux系统的操作系统接口来打开和关闭、删除和创建文件,释放磁盘的缓冲。[3]

SQLite系统与Linux的外部接口的具体应用集成在一起,由程序调用相应的核心API函数去实现对数据的存取操作。Sqlite3_open()可以打开数据库文件,建立SQLite引擎;sqlite3_exec()对查询结果进行处理;sqlite3_close()用来关闭数据库文件,释放SQLite引擎。

4.3 对SQLite存储结构及索引机制的改进

由于SQLite所有数据都保存在设备的Flash中,为了减少FO操作,延长Flash的寿命,对数据的操作都设计为在内存中完成,只在设备启动和修改保存数据时才进行FO操作。将SQLite改进为基于内存的嵌入式关系型数据库,提高数据操作效率,增强实时性能。

4.4 优化SQL数据在内存中的存储结构

在内存中采用区段式结构进行内存数据的组织管理,将存储空间逻辑地划分为多个分区。每个分区存储一个关系。区段式数据组织管理机制如图3所示。

为保证数据结构的紧凑性,内存数据库中的关系表按编号登记在分区表中。当有新数据段插入时,在分区表或段表中找到插入点,插入点后的所有表项都往后移动一项;而删除一个表项时,则删除点之后的所有表项都往前移动一项。

为节省内存占用,分区表和段表均采用动态数组结构,具体操作是:创建时都先申请适当大小的表项空间,数据的增加使得区段表不断增长,当表项空间不够时,再申请一定数量的空间。相反,数据的删除操作使得区段表不断缩短,当其尾部出现大量的空表项时,回收空表项占用的内存。[4]

4.5 优化内存数据库的索引机制

为适应智能家居中对实时数据频繁的查找和更新需求,进一步改进高效的索引机制加速操作的执行速度,需优化内存数据库的索引机制。SQLite系统采用是基于改进的Hybrid-HT的H-T索引机制,本文通过优化H-T机制中的哈希函数,通过对哈希表长的控制,分散了键值对记录指针和哈希地址的操作范围,从而高效率利用内存空间,提高查询、修改的操作速度。[5]

5 家庭网关数据库系统的设计

本文构造的嵌入式家庭网关,是以S3C440系列嵌入式微处理器为中心,uCLinux嵌入式操作系统作为家庭网关的底层,移植部分功能模块作为家庭网关硬件平台。信息家电通过IAIDL接口向家庭网关注册,每个家电的注册信息、参数和状态信息都存放在SQLite数据库中,如图4所示。

信息家电接口定义语言(IAIDL)是一种用来定义智能家居网络中信息家电的说明性语言,是对设备资源信息的描述。

以某公司生产的某信息空调为例,其IAIDL描述如下:

IAIDL定义了家庭网络中设备之间的互操作,详细描述信息家电的属性和功能。家庭网关利用编译器提取设备所发送的IAIDL描述内容进行解析,利用API函数将相关信息存储在SQLite数据表中。SQLite库中的信息表包含设备类型表、设备列表、设备属性表、设备接口表、事件通道表五种表格。由系统将设备类型号作为关键字,作为每类设备的唯一标识,如图5所示。[6]

编译器对设备IAIDL完成分析扫描后,通过API函数接口生成数据库文件。信息家电启动时,系统会在内存区域生成设备状态表的副本作为设备运行状态表。这些文件不会随着时间的变化而发生改变,真正实时变化是处于运行状态的设备状态信息。

实时监控系统按一定的扫描频率对内存中的设备运行状态表进行扫描,数据采集模块按照设定的频率对外部信号进行采集,经数据处理模块将数据存入内存中的设备运行状态表,获取最新的状态数据,完成对设备状态的实时更新和控制。

信息家电中的黑色家电是供人们娱乐休闲用的,如电视机、VCD、音响等。黑色家电的状态绝大多数情况下不会发生改变,所以设定所有的黑色家电都没有实时状态信息,在内存中不生成设备运行状态表,需要查询时可以从flash中读取。

而白色家电的状态会随着时间的变化而不断变化,数据的实时性要求很高,如空调、电冰箱等,是改善生活环境提高物质生活水平的。白色家电启动后在内存中生成设备运行状态表,可以随时监视到设备状态。

在系统中构建主动规则库对设备的实时状态进行监控,当设备状态变化时对家电进行自动控制,或设备状态异常进行报警,由ECA规则来实现。一旦信息家电出现异常情况,就要进行报警操作。信息家电在满足这些设定的事件时,系统能自动执行规定好的动作。[7]

在设备运行过程中,数据随着各种设备的运行不断产生,系统将新的状态数据写入内存,实时数据会转储为历史数据。为保证系统的稳定性,系统中的实时数据备份模块负责周期性将内存中设备状态表数据保存到Flash中。当设备运行故障时,可以从历史数据库中进行恢复。

6 家庭网关WEB服务器的设计

家庭网关中各种动态信息需要服务器实时创建,服务器程序与客户端浏览器有较强的交互能力。本文采用BOA+CGI应用程序构建WEB服务器。CGI是外部扩展应用程序与Web服务器交互的一个标准接口。Web服务器通过调用CGI程序实现和Web浏览器的交互,处理来自客户端浏览器输入的数据,从而完成客户端与服务器的交互,实现动态Web技术。[8]

WEB服务器从SQL查询结果中读取信息,同时把这些信息返回给客户端。CGI应用程序可以使用printf()函数将查询结果以HTML的形式输出到客户端,向客户端返回动态页面,实现用户WEB服务器与数据库SQLite的交互。

总之,整个家庭网关程序设计都以嵌入式数据库实时SQLite为核心,可有效满足家庭网关对信息家电实时数据管理要求。

7 结论

本文针对嵌入式设备的实时性特点,结合家庭网关的实际应用需求,对SQLite数据库系统的体系结构、内部函数、外部接口、索引算法等方面进行了改进与优化。提高了系统整体实时性能;完善了数据库的安全性;降低了系统资源占用,良好的匹配了现有ARM架构的家庭网关硬件体系,完全能满足家庭网关对信息家电实时数据管理的要求。

由于自身水平、设备条件有限,本文还有很多需进一步改进的地方,如事务处理的调度和执行策略方面;身份验证、数据加密等安全性研究方面,对报警库,CA库,ECA库的详细设计方面还有待于进一步的充实和完善。

参考文献:

[1]宋安,习勇,魏急波.基于μCLinux的NAT设备的设计与开发[J].电子工程师,2005-05-15.

[2]徐叶,袁敏,李国军.嵌入式Web服务器远程监控系统的设计与实现[J].计算机与现代化,2013-02-27.

[3]王俊,郭书军.嵌入式Web服务器的实现及其CGI应用[J]. 电子设计工程,2011-11-05.

[4]高建国,崔业勤.ARTs-EDB的内存数据存储管理[J].微计算机信息,2010-01-25.

[5]陈嘉.嵌入式主存数据库索引机制的研究与改进[D].湖南师范大学,2006:278-282.

数据库设计篇13

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.

在线咨询