浅析关系型数据库设计的理论和实践

时间:2022-08-25 12:06:23

浅析关系型数据库设计的理论和实践

摘 要:作为一门应用性很强的学科,数据库技术在软件开发中的应用越来越广泛了。该文对关系型数据库设计的理论及实践进行了简单分析。首先,简单介绍了数据库设计的重要性;其次分析了关系型数据库设计步骤及原则;最后结合实例,分析了在软件开发中的数据库设计实践。

关键词:关系型 数据库 理论 实践

中图分类号:TP311 文献标识码:A 文章编号:1674-098X(2014)07(b)-0054-01

数据库设计(Database Design)是指根据用户的需求,在某一具体的数据库管理系统上,设计数据库的结构和建立数据库的过程。而关系型数据库则是创建在关系模型基础上的数据库,是借助于集合代数等数学概念和方法来处理数据,使之能够有效地存储数据,以满足用户的各种应用需求。

1 数据库的重要性

数据库设计是计算机软件设计的重要内容,同时也是支撑计算机软件系统运行的关键,是软件设计的起点,起着决定性的质变作用,必须对数据库的设计高度重视起来。

(1)数据库设计最起码要占用整个项目开发的40%以上的时间。数据库是用户需求的直观反应和表现,需求的要求和变化都要一一体现在数据库的设计中。

(2)数据库设计不仅仅停留在页面demo的表面,还有模块交互、表之间的联系、中转数据等所需要的字段。因此,在数据库设计中不仅包括基本的数据存储,还包括逻辑数据的存储。

(3)数据库设计完成后,项目80%的设计开发在脑海中已经完成了。在设计每一个字段时,已经考虑好这些字段的运用,在表中如何体现。当数据库设计完成后,程序中所有的实现思路和实现方式已经考虑清楚了,否则会造成一系列不可预测的问题。

由此可见,数据库设计在整个软件开发过程中起到了举足轻重的作用。

2 关系型数据库设计的基本步骤

关系型数据库设计的过程可大体分为四个时期七个阶段。

(1)用户需求分析时期,主要是了解和分析用户对数据的功能需求和应用需求,是整个设计过程的基础,事关整个数据库应用系统设计的成败。

(2)数据库设计时期,主要是将用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的数据模型,可用实体―联系模型来表示,然后将其转换为已选好的关系型数据库管理系统RDBMS所支持的一组关系模式并为其选取一个适合应用环境的物理结构,包括存储结构和存取方法。

(3)数据库实现时期,包括数据库结构创建阶段和应用行为设计与实现阶段,是根据数据库的物理模型创建数据库、创建表、创建索引、创建聚簇等。

(4)数据库运行与维护阶时期,最后一个阶段则是数据库应用系统经过试运行后即可投入正式运行。

3 关系型数据库设计的几个原则

在进行关系型数据库的设计过程中,要遵循以下几个原则,借此可以提高数据库的存储效率、数据完整性和可扩展性。

3.1 命名规范化

在概念模型设计中,对于出现的实体、属性及相关表的结构要统一。例如在数据库设计中,指定学生Sstudent,专指本科生,相关的属性有:学号、姓名、性别、出生年月等,及每个属性的类型、长度、取值范围等都要进行确定,这样就能保证在命名时不会出现同名异义或异名同义、属性特征及结构冲突等问题。

3.2 数据的一致性和完整性

在关系型数据库中可以采用域完整性、实体完整性和参照完整性等约束条件来满足其数据的一致性和完整性,用check、default、null、主键和外键约束来实现。

3.3 数据冗余

数据库中的数据应尽可能地减少冗余,这就意味着重复数据应该减少到最少。例如:若一个部门职员的电话存储在不同的表中,假设该职员的电话号码发生变化时,冗余数据的存在就要求对多个表进行更新操作,若某个表不幸被忽略了,那么就会造成数据不一致的情况。所以在数据库设计中一定要尽可能存在少地冗余。

3.4 范式理论

在关系数据库设计时,一般是通过设计满足某一范式来获得一个好的数据库模式,通常认为3NF在性能、扩展性和数据完整性方面达到了最好的平衡,因此,一般数据库设计要求达到3NF,消除数据依赖中不合理的部分,最终实现使一个关系仅描述一个实体或者实体间一种联系的目的。

4 以具体实例设计的关系型数据库设计的实践

以大学教学管理软件开发中的数据库设计为例进行分析。

(1)重视系统的总体设计。总体设计不仅与软件项目顺利开展的进度有关,还与是否可以达到预期的项目开发目标有关。下面以大学教学管理数据库开发为例进行说明。

(2)首先对大学教学管理软件所涉及的数据进行详细的分析。按照上述的设计思想,共设计了如下表,例如,学生关系表、专业关系表等,然后创建视图和存储过程。

①学生关系表S:S#(学号),SNAME(姓名),SSEX(性别),SBIRTHIN(出生年月)等字段,主键为S#(学号)。②专业关系表SS:SCODE#(专业代码),SSNAME(专业名称)等字段,主键为SCODE#(专业代码)。③课程关系表C:C#(课程号),CNAME(课程名称),CLASSH(学时)等字段,主键为C#(课程号)。④设置关系表CS:SCODE#(专业代码),C#(课程号)等字段,主键为SCODE#(专业代码),C#(课程号)。⑤学习关系表SC:S#(学号),C#(课程号),GRADE(分数)等字段,主键为S#(学号),C#(课程号)。⑥教师关系表T:T#(教工号),TNAME(姓名),TSEX(性别)等字段,主键为T#(教工号)。⑦讲授关系表TEACH:T#(教工号),C#(课程号)等字段,主键为TEACH:T#(教工号),C#(课程号)。

数据库中的每一个表都建立了主键,部分表为了满足查询和排序的需要,还需要建立索引。例如查询学生信息时,除了按学号查询,有时还会用到按照班级查询。因此,在学生表中除了对主键“学号”建立主索引外,也对“班级”建立了次索引。同时,在数据库中,数据按照主键和外键的关系,建立起了关系。另外,根据查询需要,还建立了教学安排视图、课程成绩视图和学生平均成绩视图及相关的存储过程。

5 结语

通过前面的分析和研究,数据库的设计是非常重要的,为之后整个系统的稳定可靠运行提供了稳固的后台保障。数据库必须与应用程序的业务需求相辅相成,在设计过程中要严格遵循关系数据库的设计步骤,并灵活运用上述原则。

参考文献

[1] 潘博.计算机软件数据库设计的重要性以及原则研究[J].计算机光盘软件与应用,2013(8).

[2] 王晓军.数据库设计的理论和实践在软件开发中的作用[J].科技与生活,2012 (8).

[3] 孟志伟.管理系统的数据库设计[J].信息与电脑,2009(7).

[4] 李长海,郭颖,董广辉.浅析数据库设计[J].数字技术与应用,2010(8).

[5] 李俊山,罗荣.数据库原理及应用[M].清华大学出版社,2012.

上一篇:浅谈遥感技术在地籍测绘中的应用 下一篇:浅谈风罩回转式空气预热器漏风问题