开发数据库系统
① 如何设计开发数据库应用系统
第13章 数据库应用系统设计概述
13.1 数据库设计概述
13.1.1 数据库系统设计内容
数据库设计包含两方面的内容。
1. 结构特性设计
结构特性设计通常是指数据库模式或数据库结构设计,它应该具有最小冗余的、能满足不同用户数据需求的、能实现数据共享的系统。数据库结构特性是静态的,应留有扩充余地,使系统容易改变。
2. 行为特性设计
行为特性设计是指应用程序、事物处理的设计。
13.1.2 数据库设计特点
数据库设计是一项综合性技术。“三分技术,七分管理,十二分基础数据”是数据库建设的基本规律。数据库设计的特点是:
硬件、软件和管理界面相结合。
结构设计和行为设计相结合。
13.2 数据库设计步骤
见图。
13.3 数据库结构设计
13.3.1 需求分析
需求分析的目标是准确了解系统的应用环境,了解并分析用户对数据及数据处理的需求。
1. 收集需求信息
一般来讲,用户对数据库的要求如下:
(1)信息需求
(2)处理需求
(3)安全性与完整性要求
2. 分析整理
分析的过程是对所收集到的数据进行抽象的过程。下面是“高校收费管理系统”的用户需求分析:
每年新生入学时学费基本信息的输入
每年老生离校时学生基本信息的删除
查询、打印学生的交费情况
查询、打印降级生的交费情况
进入学费管理系统的安全性条件设计
3. 数据流图
数据库设计中采用数据流图(DFD:Data Flow Diagram)来描述系统的功能。DFD一般由下面图素构成。
:数据及其流动方向,直线上方标明数据流名称
:数据处理,圆圈内标明处理名称
:数据流的终点和源点,方框内标明相应的名称
:文件和数据存储,在其内标明相应名称
例如:高校收费管理系统
4.数据字典
数据字典(DD:Data Dictionary)用于记载系统中的各种数据、数据元素以及它们的名字、性质、意义及各类约束条件,记录系统中用到的常量、变量、数组及其他数据单位,是系统开发与维护中不可缺少的重要文件。数据字典是关于数据库中数据的一种描述,而不是数据本身。数据字典是在需求分析阶段建立,在数据库设计过程中不断修改、充实、完善的。
数据字典产生于数据流图,是对数据流图中的四个成分(数据流、数据项、文件和处理)描述的结果。其中:
数据流描述:定义数据流的组成,一般包含若干数据项,通常在数据流图的下方通过“说明”定义。
文件描述:定义文件的组成以及文件的组织方式,如学生交费数据可用下面方法描述:
交费数据=学号+姓名+收费标准+应交学费+待交学费+本次交款
数据项描述:定义数据项,一般包括名称、类型长度、允许范围等。如学生交费数据文件中的数据项。
数据项名称 类型 长度(字节) 范围
学号 字符 8 H、G和数字
姓名 字符 8 任何字母
收费标准 正整数 5 0-99999
应交学费 正整数 5 0-99999
待交学费 正整数 5 0-99999
本次交款 正整数 5 0-99999
数据处理的描述:说明数据处理的逻辑关系,即输入与输出之间的逻辑关系。同时,也要说明数据处理的触发条件、错误处理等问题。
13.3.2 概念结构设计
概念结构的目标是将需求分析得到的用户需求抽象为数据库的概念结构,即概念模式。概念结构设计形成一个独立于具体DBMS的概念模型。描述概念模式的是E―R图。
1. 局部E-R模型设计
局部E―R模型设计是从数据流图出发确定实体和属性,并根据数据流图中表示的对数据的处理、确定实体之间的联系。
2. 总体E-R模型设计
将各个局部E―R图加以综合,使同一个实体只出现一次,便可产生总体E―R图。
13.3.3 逻辑结构设计
数据库的逻辑结构设计的目标就是将概念结构转换成特定的DBMS所支持的数据模型,并对其优化的过程。逻辑设计阶段一般分三个过程进行:
将概念结构转换为一般的关系、网状、层次模型;
将由概念结构转换来的模型向所选用DBMS支持的数据模型转换;
对数据模型进行优化
13.3.4 物理设计
数据库的物理设计目标是在选定的DBMS上建立起逻辑设计结构确立的数据库的结构。这项工作一般由系统程序员完成。数据库的物理设计通常分为两步进行。
1. 确定数据库的物理结构
在关系数据库中,确定数据库的物理结构主要指确定数据存放位置和存储结构,包括确定关系、索引、日志、备份等数据的存储分配合存储结构,确定系统配置等工作。
2. 对所确定的物理结构进行评价
13.4 应用程序设计
数据库的应用程序设计和一般的应用程序设计方法基本相同。
应用程序的设计方法可以采用一般的程序设计方法。
13.5 运行和维护
13.5.1 数据载入数据库
13.5.2 数据库系统试运行
在试运行阶段应当注意:
1. 数据的加载过程应先输入小部分数据进行试运行
2. 应注意数据库的转储和恢复工作
13.5.3 数据库系统的运行和维护
在数据库系统正式运行阶段,对数据库的经常性维护工作是由DBA来实施的,他的工作主要包括:
1. 数据库的转储和恢复
2. 数据库的安全性和完整性控制
3. 数据库性能的监督、分析和改造
4. 数据库的重组与重构
(1)数据库的重组
(2)数据库的重构
13.6 小结
本章通过高校收费管理系统数据库的构建与设计过程的详细描述,学习了数据库设计的基本方法,数据库设计的基本流程,E-R图的建立和到关系模式的转换,学习了软件工程的基本思想,为后续课程数据库开发技术打好基础。
② 简述数据库应用系统的设计步骤
数据库设计的基本步骤:
1、系统需求分析与设计。
2、概念结构分析与设计。
3、逻辑结构分析与设计。
4、物理结构分析与设计。
5、系统实施。
6、系统维护。
(2)开发数据库系统扩展阅读:
数据库设计技巧:
1、原始文件与实体的关系
它可以是一对一,一对多,多对多的关系。一般来说,它们是一对一的关系:一个原始文档只对应于一个实体。在特殊情况下,它们可以是一对多或多对一关系,即一个原始文档对应于多个实体,或者多个原始文档对应于一个实体。
这里的实体可以理解为基本表。在对应关系明确后,对输入接口的设计非常有利。
2、主键和外键
一般来说,实体不能既没有主键也没有外键。在E-R图中,叶中的实体可以定义主键或不定义主键(因为它没有子代),但它必须有外键(因为它有父项)。
主键和外键的设计在全局数据库的设计中起着重要的作用。当全球数据库的设计完成后,一位美国数据库设计专家说:“钥匙无处不在,只有钥匙。”。这是他数据库设计的经验,也体现了他对信息系统核心(数据模型)高度抽象的理念。
因为:主键是一个高度抽象的实体。主键和外键的配对表示实体之间的连接。
3、基本表的属性
基本表不同于中间表和临时表,因为它具有以下四个特点:
原子性。基本表中的字段不可分解。
原始主义。基本表中的记录是原始数据(基本数据)的记录。
演绎的。所有输出数据都可以从基本表和代码表中的数据导出。
稳定。基本表的结构比较稳定,表中的记录要长期保存。
在了解基本表的性质之后,在设计数据库时,可以将基本表与中间表和临时表区分开来。
③ 数据库系统的开发过程不包括哪个阶段
摘要 您好,我们正在查询相关问题的信息,五分钟时间回复您!
④ 数据库的开发流程是什么
这是一个非常复杂的问题。建议这位网友去看看有关软件工程的书籍。当然,看书是一件非常烦闷的事情,在这,尽管试试将我的经验写一点吧。
首先,要明确你要做一个什么系统。想达到什么目的。想怎样去使用。有了明确的目标后,便要开始计划整个数据库系统该怎样去做。
第二,是选择数据库后台。数据库是保存数据的工具,可以理解为保存数据的一个大仓库,它把你所需要的数据全部保存起来。但要怎样使用这些数据,使之可以根据你的需要显示出来,那就不是数据库的责任了,这就需要程序来实现了。不同的数据库后台各有优点缺点,不可一概而论哪个好哪个差,要看系统实际来斟酌。即是说,确定目标后就需要选择数据库。
第三,确定后台数据库的内容,即确定数据结构。既然整个数据库等于一个大仓库,此时就要把仓库划分成一个个区域,用于保存不同类别的东西。这就是确定数据表及每个表的字段及各字段的数据类型。这是非常巨大的工作,你需要把有可能使用到的内容都设计到你的数据表中,以便以后可以保存及调用数据。还要想到表与表的关系,字段与字段的关系。好的数据结构会使到整个程序设计方便、科学、全面。这些内容,必须去查看相关书籍,同时不断积累经验,并非三言两语可以说得清楚了。
第四,选择合适的前台开发工具。对于后台数据库的操作,目前常用的前台开发工具基本都可以与之相连并对之操作,但是不同的开发语言有各自的长处。选择哪一种语言并不太重要,最重要是看你是否愿意一心一意钻研下去。对于初学者,什么语言都是一样的,就如小孩子学语言,学中英意日其实都一样容易,也一样难。
第五,当清楚数据库后台和开发前台的特性与功能后,就可以开始规划系统的流程了。一般可以根据系统功能先将其划分为几大功能模块,然后再细分为各个细功能模块,然后对于各个功能模块进行设计。一般流程可以是这样的:
1、设计流程图。把整个功能用流程的方式显示出来,让自己的思路清楚地记录在流程图上,这样可以轻易地模拟模块的运算过程,查找出不合理的地方进行修改。
2、编写程序。确定流程合理无误后,便可以开发进行程序的编写。由于现时硬件的强大,对语句的要求已经不再强调。只要可以达到目的,就可以了。
第六,试运行程序。完成一个功能后,可以试运行,输入数据进行测试,不断修改,最后达到完全无误。
第七,测试。完成程序后,就要进行全面的测试。一般来说,自己是找不到自己的错误的。明知是错就不会写进去,所以我喜欢找别人来为我测试。让别人去用,而且是让别人随便地用,不一定按自己所说的操作方法去用。这样最容易找到程序中的错误。
第八,不断地修改。不断修改程序,使其所有的漏洞都改正过来。
第九,编译。程序确认无误后,就可以进行编译。
第十,投入使用。
其实我所写的并不能回答这个问题,完全解答这个问题,最后还是去学习一下软件工程。不看书总是不行的。希望可以为你带来一点点帮助吧。
⑤ 开发一个完整的数据库系统具体的流程是什么
一:表中应该避免可为空的列; 二:表不应该有重复的值或者列; 三: 表中记录应该有一个唯一的标识符 在数据库表设计的时候,数据库管理员应该养成一个好习惯,用一个ID号来 唯一的标识行记录,而不要通过名字、编号等字段来对纪录进行区分。每个表都应该有一个ID列,任何两个记录都不可以共享同一个ID值。另外,这个ID值最 好有数据库来进行自动管理,而不要把这个任务给前台应用程序。否则的话,很容易产生ID值不统一的情况。 另外,在数据库设计的时候,最好还能 够加入行号。如在销售订单管理中,ID号是用户不能够维护的。但是,行号用户就可以维护。如在销售订单的行中,用户可以通过调整行号的大小来对订单行进行 排序。通常情况下,ID列是以1为单位递进的。但是,行号就要以10为单位累进。如此,正常情况下,行号就以10、20、30依次扩展下去。若此时用户需 要把行号为30的纪录调到第一行显示。此时,用户在不能够更改ID列的情况下,可以更改行号来实现。如可以把行号改为1,在排序时就可以按行号来进行排 序。如此的话,原来行号为30的纪录现在行号变为了1,就可以在第一行中显示。这是在实际应用程序设计中对ID列的一个有效补充。这个内容在教科书上是没 有的。需要在实际应用程序设计中,才会掌握到这个技巧。 四:数据库对象要有统一的前缀名 一个比较复杂的应用系统,其对应的数据库表往往以千计。若让数据库管理员看到对象名就了解这个数据库对象所起的作用,恐怕会比较困难。而且在数据库对象引用的时候,数据库管理员也会为不能迅速找到所需要的数据库对象而头疼。 为此,笔者建立,在开发数据库之前,最好能够花一定的时间,去制定一个数据库对象的前缀命名规范。如笔者在数据库设计时,喜欢跟前台应用程序协商,确定 合理的命名规范。笔者最常用的是根据前台应用程序的模块来定义后台数据库对象前缀名。如跟物料管理模块相关的表可以用M为前缀;而以订单管理相关的,则可 以利用C作为前缀。具体采用什么前缀可以以用户的爱好而定义。但是,需要注意的是,这个命名规范应该在数据库管理员与前台应用程序开发者之间达成共识,并 且严格按照这个命名规范来定义对象名。 其次,表、视图、函数等最好也有统一的前缀。如视图可以用V为前缀,而函数则可以利用F为前缀。如此数据库管理员无论是在日常管理还是对象引用的时候,都能够在最短的时间内找到自己所需要的对象。 五:尽量只存储单一实体类型的数据 这里将的实体类型跟数据类型不是一回事,要注意区分。这里讲的实体类型 是指所需要描述对象的本身。笔者举一个例子,估计大家就可以明白其中的内容了。如现在有一个图书馆里系统,有图书基本信息、作者信息两个实体对象。若用户 要把这两个实体对象信息放在同一张表中也是可以的。如可以把表设计成图书名字、图书作者等等。可是如此设计的话,会给后续的维护带来不少的麻烦。 如当后续有图书出版时,则需要为每次出版的图书增加作者信息,这无疑会增加额外的存储空间,也会增加记录的长度。而且若作者的情况有所改变,如住址改变 了以后,则还需要去更改每本书的记录。若这个作者的图书从数据库中全部删除之后,这个作者的信息也就荡然无存了。很明显,这不符合数据库设计规范化的需 求。 遇到这种情况时,笔者建议可以把上面这张表分解成三种独立的表,分别为图书基本信息表、作者基本信息表、图书与作者对应表等等。如此设计以后,以上遇到的所有问题就都引刃而解了。
⑥ 数据库系统开发,用什么编程语言最好
目前cs的编程语言早就淘汰了,现在主流是bs架构的系统,做bs的一般安全性高点用java,比如银行这类就是用的java开发,还是就是.net,这个用得也比较多,做网站用php的比较多,就看你的用途选择了
⑦ 数据库开发是什么
数据库开发是数据库管理系统(DBMS)和数据库应用软件设计研发的总称,数据运维、参与数据库生产环境的问题优化和解决等方面的事宜。
一般数据库开发要经过设计、开发数据库系统和数据库应用软件,因此与软件研发的过程一样,会覆盖需求、设计、编程和测试四个阶段:
需求:深入调研用户市场需求,认清项目的应用场景,解决的问题,性能指标等,需要与数据库系统使用方反复沟通,确定具体的需求。
设计:根据收集整理的需求文档设计数据库系统软件的模型和架构,划分模块分别进行概要和详细设计。
编程:按照模块分工和设计文档,进行编码和调试。
测试:将开发完成的数据库系统交给测试人员进行测试,主要使用的测试方法有黑盒测试、白盒测试、压力测试、性能测试等,测试全部通过后即可等待发布。
⑧ 数据库应用系统开发要经过那些步骤
数据库应用系统的开发是一项软件工程。一般可分为以下几个阶段:
1.规划。
2.需求分析。
3.概念模型设计。
4.
逻辑设计。
5.物理设计。
6.程序编制及调试。
7.运行及维护。
详细参照:
http://tech.ccidnet.com/art/11217/20070919/1217275_1.html
---
以上,希望对你有所帮助。