前言:
从建库到SQL基本操作,我们现在来到了数据库的最后一个章节——数据库的设计。往往设计总是高大上,充满各种基础的操作,这里我们就从文字逻辑开始。
数据库设计的一般定义:数据库设计是指一个给定的应用环境,构造(设计)优化的数据库逻辑模型和物理结构,并据此建立数据库及其应用系统,使之能够有效的存储和管理数据,满足各种用户需求,包括信息管理要求和数据操作要求。
信息管理要求是指在数据库中应该存储和管理哪些数据对象;数据操作要求是指对数据对象需要进行哪些操作,如查询、增、删、改、统计等操作。
接下来将会从6个步骤解释:需求分析阶段、概念设计阶段、逻辑结构设计阶段、物理设计阶段、数据库实施阶段、数据库运行和维护阶段。当然,我们很多时候对于文档,基本知识到了数据库实施阶段或者物理设计阶段。
一、需求分析
对于需求分析,写文档,参加各种比赛的同学在熟悉不过了。还记得我们在软件工程导论里面提到的数据字典吗?它在这里就显得很重要。
数据字典是进行详细的数据收集和数据分析所获得的主要成果。它是关于数据库中数据的描述,即元数据,而不是数据本身。数据字典是在需求分析阶段建立,在数据设计过程中不断修改、充实、完善的。
1、数据项
数据项是不可再分的数据单位,通常包括一下内容:数据项描述={数据项名,数据项含义说明,别名,数据类型,长度,取值范围,取值含义,与其他数据项的逻辑关系,数据项之间的联系}
2、数据结构
数据结构反应了数据之间的组合关系。对数据结构的描述通常包括一下内容:数据结构描述={数据结构名,含义说明,组成:{数据项或数据结构}
3、数据流
数据流描述={数据流名,书名,数据流来源,数据流去向,组成:{数据结构},平均流量,高峰期流量}
4、数据存储
数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之一。包括:数据存储描述={数据存储名,说明,编号,输入的数据流,输出的数据流,组成:{数据结构},数据量,存取频度,存取方式}
5、处理过程
处理过程的具体处理逻辑一般用判定表或判定树来描述。包括以下内容:处理过程描述={处理过程名,说明,输入:{数据流},输出:{数据流},处理:{简要说明}}
二、概念结构设计
概念结构设计这里重点的就是E-R模型,E-R图提供了表示实体型、属性和联系的方法。
(1)实体型用矩形来表示,矩形框写明实体名。
(2)属性用椭圆形表示,并用无向边将其与相应的实体型连接起来。
(3)关系用菱形来表示,菱形框内写明联系名,并用无向边分别与有关实体型连接起来,同时在无向边旁标上联系的类型(1:1、1:n或m:n)。
当然,我们也可以用UML来建立概念模型(即E-R图)。其中,实体型可以用类表示,矩形框中实体名放在上部,下面列出属性名。实体的码可以在属性后面加“PK”来表示。联系可以用类图之间的关联表示。
三、逻辑结构设计
逻辑结构设计的任务就是把概念结构设计好的基本E-R图转换为与选用数据库管理系统产品所支持的数据模型相符和的逻辑结构。其实我们大多是也就是将E-R图转换为关系模型。
四、物理结构设计、数据库的实施和维护
为一个给定的逻辑数据模型选取一个最适合应用要求的物理结构的过程,就是数据库的物理设计。至于后面的实施和维护,也就是字面上的意思。
五、数据库编程
当然,我们设计了之后肯定是需要实现的,比如一个图书销售系统或者车票管理系统。在应用系统中使用SQL编程来访问和管理数据库中数据的方式主要有:嵌入式SQL、过程化SQL、存储过程和自定义函数、开放数据库互连、OLEDB(Object Linking and Embedding DB)、java数据库连接(JDBC)等。会在后面的文章中发表JDBC的编程,来实现图书管理系统、图书销售系统等简单的系统实现。
总结:
其实在知道设计的过程之后,很好做的事情是写报告,我们将报告写好之后,大致要实现的系统其实已经在脑海里面了。之后我们需要做的就是去实现它,我们有C/S模式的,不过现在更多的是B/S模式的设计。不管是用C++还是java或者是其它的语言,都是可以的,但最重要的就是动手去做。希望本篇文章在数据库设计方面有一点帮助,那么这个系列就完结了~~~如有误,请指出,谢谢。