
(转载自国家计算机标准和文件模板)
1 引言
1.1编写目的
说明编写这份数据库设计说明书的目的,指出预期的读者。
1.2背景
说明:
a.说明待开发的数据库的名称和使用此数据库的软件系统的名称;
b.列出该软件系统开发项目的任务提出者、用户以及将安装该软件和这个数据库的计算站(中心)。
1.3定义
列出本文件中用到的专门术语的定义、外文首字母组词的原词组。
1.4参考资料
列出有关的
参考资料:
a.本项目的经核准的计划任务书或合同、上级机关批文;
b.属于本项目的其他已发表的文件;
c.本文件中各处引用到的文件资料,包括所要用到的软件开发标准。
列出这些文件的标题、文件编号、发表日期和出版单位,说明能够取得这些文件的来源。
2 外部设计
2.1标识符和状态
联系用途,详细说明用于唯一地标识该数据库的代码、名称或标识符,附加的描述性信息亦要给出。如果该数据库属于尚在实验中、尚在测试中或是暂时使用的,则要说明这一特点及其有效时间范围。
2.2使用它的程序
列出将要使用或访问此数据库的所有应用程序,对于这些应用程序的每一个,给出它的名称和版本号。
2.3约定
陈述一个程序员或一个系统分析员为了能使用此数据库而需要了解的建立标号、标识的约定,例如 用于标识数据库的不同版本的约定和用于标识库内各个文卷、、记录、数据项的命名约定等。
2.4专门指导
向准备从事此数据库的生成、从事此数据库的测试、维护人员提供专门的指导,例如将被送入数据 库的数据的格式和标准、送入数据库的 *** 作规程和步骤,用于产生、修改、更新或使用这些数据文卷的 *** 作指导。 如果这些指导的内容篇幅很长,列出可参阅的文件资料的名称和章条。
2.5支持软件
简单介绍同此数据库直接有关的支持软件,如数据库管理系统、存储定位程序和用于装入、生成、修 改、更新数据库的程序等。说明这些软件的名称、版本号和主要功能特性,如所用数据模型的类型、允许 的数据容量等。列出这些支持软件的技术文件的标题、编号及来源。
3 结构设计
3.1概念结构设计
说明本数据库将反映的现实世界中的实体、属性和它们之间的关系等的原始数据形式,包括各数据项、记录、系、文卷的标识符、定义、类型、度量单位和值域,建立本数据库的每一幅用户视图。
3.2逻辑结构设计
说明把上述原始数据进行分解、合并后重新组织起来的数据库全局逻辑结构,包括所确定的关键字和属性、重新确定的记录结构和文卷结构、所建立的各个文卷之间的相互关系,形成本数据库的数据库管理员视图。
3.3物理结构设计
建立系统程序员视图,包括:
a.数据在内存中的安排,包括对索引区、缓冲区的设计;
b.所使用的外存设备及外存空间的组织,包括索引区、数据块的组织与划分;
c.访问数据的方式方法。
4 运用设计
4.1数据字典设计
对数据库设计中涉及到的各种项目,如数据项、记录、系、文卷、模式、子模式等一般要建立起数据字典,以说明它们的标识符、同义名及有关信息。在本节中要说明对此数据字典设计的基本考虑。
4.2安全保密设计
说明在数据库的设计中,将如何通过区分不同的访问者、不同的访问类型和不同的数据对象,进行分别对待而获得的数据库安全保密的设计考虑。
自增长primary key
采用自增长primary key主要是性能 早期的数据库系统 经常采用某种编号 比如身份z号码 公司编号等等作为数据库表的primary key 然而 很快 大家就发现其中的不利之处
比如早期的医院管理系统 用身份z号码作为病人表的primary key 然而 第一 不是每个人都有身份z;第二 对于国外来的病人 不同国家的病人的证件号码并不见得没有重复 因此 用身份z号码作为病人表的primary key是一个非常糟糕的设计 考虑到没有医生或者护士会刻意去记这些号码 使用自增长primary key是更好的设计
公司编号采用某种特定的编码方法 这也是早期的数据库系统常见的做法 它的缺点也显而易见 很容易出现像千年虫的软件问题 因为当初设计数据库表的时候设计的位数太短 导致系统使用几年后不能满足要求 只有修改程序才能继续使用 问题在于 任何人设计系统的时候 在预计某某编号多少位可以够用的时候 都存在预计不准的风险 而采用自增长primary key 则不存在这种问题 同样的道理 没有人可以去记这些号码
使用自增长primary key另外一个原因是性能问题 略有编程常识的人都知道 数字大小比较比字符串大小比较要快得多 使用自增长primary key可以大大地提高数据查找速度
避免用复合主键 (pound primary key)
这主要还是因为性能问题 数据检索是要用到大量的 primary key 值比较 只比较一个字段比比较多个字段快很多 使用单个primary key 从编程的角度也很有好处 sql 语句中 where 条件可以写更少的代码 这意味着出错的机会大大减少
双主键
双主键是指数据库表有两个字段 这两个字段独立成为主键 但又同时存在 数据库系统的双主键最早用在用户管理模块 最早的来源可能是参照 *** 作系统的用户管理模块
*** 作系统的用户管理有两个独立的主键 *** 作系统自己自动生成的随机 ID (Linux windows 的 SID) login id 这两个 ID 都必须是唯一的 不同的是 删除用户 test 然后增加一个用户 test SID 不同 login id 相同 采用双主键主要目的是为了防止删除后增加同样的 login id 造成的混乱 比如销售经理 hellen 本机共享文件给总经理 peter 一年后总经理离开公司 进来一个普通员工 peter 两个peter 用同样的 login id 如果只用 login id 作 *** 作系统的用户管理主键 则存在漏洞 普通员工 peter 可以访问原来只有总经理才能看的文件 *** 作系统自己自动生成的随机 ID 一般情况下面用户是看不到的
双主键现在已经广泛用在各种数据库系统中 不限于用户管理系统
以固定的数据库 表应付变化的客户需求
这主要基于以下几个因素的考虑
大型EPR系统的正常使用 维护需要软件厂商及其众多的合作伙伴共同给客户提供技术服务 包括大量的二次开发
如果用户在软件正常使用过程中需要增加新的表或者数据库 将给软件厂商及其众多的合作伙伴带来难题
软件升级的需要
没有一个软件能够让客户使用几十上百年不用升级的 软件升级往往涉及数据库表结构的改变 软件厂商会做额外的程序将早期版本软件的数据库数据升级到新的版本 但是对于用户使用过程中生成的表进行处理就比较为难
软件开发的需要
使用固定的数据库库表从开发 二次开发来说 更加容易 对于用户使用过程中生成的表 每次查找数据时都要先查表名 再找数据 比较麻烦
举例来说 早期的用友财务软件用Access作数据库 每年建立一个新的数据库 很快 用户和用友公司都发现 跨年度数据分析很难做 因此这是一个不好的设计 在 ERP 中 很少有不同的年度数据单独分开 一般来说 所有年份的数据都在同一个表中 对于跨国公司甚至整个集团公司都用同一个 ERP 系统的时候 所有公司的数据都在一起 这样的好处是数据分析比较容易做
现在大多数数据库系统都能做到在常数时间内返回一定量的数据 比如 Oracle 数据库中 根据 primary key 在 万条数据中取 条数据 与在 亿条数据中取 条数据 时间相差并不多
避免一次取数据库大量数据 取大量数据一定要用分页
这基本上是现在很多数据库系统设计的基本守则 ERP 系统中超过 万条数据的表很多 对于很多表中的任何一个 一次取所有的会导致数据库服务器长时间处于停滞状态 并且影响其它在线用户的系统响应速度
一般来说 日常 *** 作 在分页显示的情况下面 每次取得数据在 之间 系统响应速度足够快 客户端基本没有特别长的停顿 这是比较理想的设计 这也是大型数据库系统往往用 ODBC ADO 等等通用的数据库联接组件而不用特定的速度较快的专用数据库联接组件的原因 因为系统瓶颈在于数据库( Database) 方面(数据量大) 而不在于客户端(客户端每次只取少量数据)
在 B/S 数据库系统中 分页非常普遍 早期的数据库系统经常有客户端程序中一次性取大量数据做缓冲 现在已经不是特别需要了 主要原因有
数据库本身的缓冲技术大大提高
大部分数据库都会自动将常用的数据自动放在内存中缓冲 以提高性能
数据库联接组件的缓冲技术也在提高
包括 ADO 在内的一些数据库联接组件都会自动对数据结果集(result set)进行缓冲 并且效果不错 比较新颖的数据库联接组件 比如 Hibernate 也加入了一些数据结果集缓冲功能
当然 也有一些数据库联接组件没有对数据结果集进行缓冲 比如 JDBC Driver 不过几年之内情况应该有所改观 也有些不太成功的数据缓冲 比如 EJB 中的实体Bean 性能就不尽如人意 实体Bean数据也是放在内存中 可能是因为占用内存过多的缘故
lishixinzhi/Article/program/SQL/201311/16157
设计软件系统的模块层次结构,设计数据库的结构以及设计模块的控制流程。 1、层次结构(hierarchy)是一种 *** 作系统的组织结构,其提供了一种隔离 *** 作系统各层功能的模型。其包括归属层次结构 dissonance-attribution hierarchy维度层次结构 dimension hierarchy层次结构数据库 hierarchical database等。 2、数据库结构是指在计算机的存储设备上合理存放的相关联的有结构的数据集合的结构。一个数据库结构含有各种成分,包括数据库、数据表、字段、过滤器等。 3、控制流程(也称为流程控制)是计算机运算领域的用语,意指在程序运行时,个别的指令(或是陈述、子程序)运行或求值的顺序。不论是在声明式编程语言或是函数编程语言中,都有类似的概念。在声明式的编程语言中,流程控制指令是指会改变程序运行顺序的指令,可能是运行不同位置的指令,或是在二段(或多段)程序中选择一个运行。
扩展资料:
数据库的设计过程与结构化方法中,软件开发过程是有的区别的。数据库的设计过程主要是通过数据的积累以及数据库的形成,形成一个数据库,供人们去查阅和使用。而结构化方法中,软件的开发指的是要开发一种新的软件来使用数据库数据的应用。
第13章 数据库应用系统设计概述
131 数据库设计概述
1311 数据库系统设计内容
数据库设计包含两方面的内容。
1 结构特性设计
结构特性设计通常是指数据库模式或数据库结构设计,它应该具有最小冗余的、能满足不同用户数据需求的、能实现数据共享的系统。数据库结构特性是静态的,应留有扩充余地,使系统容易改变。
2 行为特性设计
行为特性设计是指应用程序、事物处理的设计。
1312 数据库设计特点
数据库设计是一项综合性技术。“三分技术,七分管理,十二分基础数据”是数据库建设的基本规律。数据库设计的特点是:
硬件、软件和管理界面相结合。
结构设计和行为设计相结合。
132 数据库设计步骤
见图。
133 数据库结构设计
1331 需求分析
需求分析的目标是准确了解系统的应用环境,了解并分析用户对数据及数据处理的需求。
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
数据处理的描述:说明数据处理的逻辑关系,即输入与输出之间的逻辑关系。同时,也要说明数据处理的触发条件、错误处理等问题。
1332 概念结构设计
概念结构的目标是将需求分析得到的用户需求抽象为数据库的概念结构,即概念模式。概念结构设计形成一个独立于具体DBMS的概念模型。描述概念模式的是E―R图。
1 局部E-R模型设计
局部E―R模型设计是从数据流图出发确定实体和属性,并根据数据流图中表示的对数据的处理、确定实体之间的联系。
2 总体E-R模型设计
将各个局部E―R图加以综合,使同一个实体只出现一次,便可产生总体E―R图。
1333 逻辑结构设计
数据库的逻辑结构设计的目标就是将概念结构转换成特定的DBMS所支持的数据模型,并对其优化的过程。逻辑设计阶段一般分三个过程进行:
将概念结构转换为一般的关系、网状、层次模型;
将由概念结构转换来的模型向所选用DBMS支持的数据模型转换;
对数据模型进行优化
1334 物理设计
数据库的物理设计目标是在选定的DBMS上建立起逻辑设计结构确立的数据库的结构。这项工作一般由系统程序员完成。数据库的物理设计通常分为两步进行。
1 确定数据库的物理结构
在关系数据库中,确定数据库的物理结构主要指确定数据存放位置和存储结构,包括确定关系、索引、日志、备份等数据的存储分配合存储结构,确定系统配置等工作。
2 对所确定的物理结构进行评价
134 应用程序设计
数据库的应用程序设计和一般的应用程序设计方法基本相同。
应用程序的设计方法可以采用一般的程序设计方法。
135 运行和维护
1351 数据载入数据库
1352 数据库系统试运行
在试运行阶段应当注意:
1 数据的加载过程应先输入小部分数据进行试运行
2 应注意数据库的转储和恢复工作
1353 数据库系统的运行和维护
在数据库系统正式运行阶段,对数据库的经常性维护工作是由DBA来实施的,他的工作主要包括:
1 数据库的转储和恢复
2 数据库的安全性和完整性控制
3 数据库性能的监督、分析和改造
4 数据库的重组与重构
(1)数据库的重组
(2)数据库的重构
136 小结
本章通过高校收费管理系统数据库的构建与设计过程的详细描述,学习了数据库设计的基本方法,数据库设计的基本流程,E-R图的建立和到关系模式的转换,学习了软件工程的基本思想,为后续课程数据库开发技术打好基础。
以上就是关于听说国家对于软件开发的数据库设计有一套标准全部的内容,包括:听说国家对于软件开发的数据库设计有一套标准、数据库进阶:ERP管理软件数据库系统的几种设计方法、系统结构设计采用的主要工具和产生的成果是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)