目录
数据库开发是一门非常强调实践的技术,学习中不要只死记硬背理论知识,而要将理论与实践相结合,在实践中提高自己解决问题的能力。
1.数据库设计的重要性及定义
使用SQL Server时,开发的数据库就好似便捷式简易住房,它由多块板材拼接组合而成,不需要做细致的设计。后续在企业中做项目,小型的信息系统就好似搭建平房,需要有简单的图纸规划房屋的结构,需要考虑房屋的承重等问题,在实际的软件开发过程中,对于淘宝、京东这类大型软件系统来说,设计就显得更加重要。这就像盖摩天大楼,不但要有设计,而且要对设计进行反复的计算和审核,否则,一旦在建筑过程中发现问题,将造成无法承受的损失。
1.1 数据库设计的重要性
在实际的项目开发过程中,如果系统存储的数据量较大,表的数量较多,数据间的关系就会比较复杂。此时要考虑规范的数据库设计,并通过数据库的三大范式检验设计的合理性,然后进行建库、建表等工作。
1.1.1 失败的数据库设计造成的后果
- 在程序运行阶段就会出现数据操作异常、修改复杂、数据冗余等问题
- 影响程序的性能,甚至会导致程序崩溃
1.1.2 优秀的数据库设计带来的好处
- 降低应用程序的开发难度
- 具备高效的查询效率
- 具备良好的扩展性(应对因业务扩展而给程序带来的变化)。
通过规范化的数据库设计,可以消除不必要的数据冗余,使数据库设计更加合理,从而达到提高程序性能的目标。
1.2 数据库设计的定义
数据库设计就是对数据库中的实体,以及这些实体之间的关系进行规划和结构化的过程。数据库设计最终的结果就是数据库模型。
2.数据库需求分析
软件项目的开发要经历需求分析、概要设计、详细设计、代码实现、软件测试、安装部署等阶段。
数据库作为软件项目最重要的组成部分,数据库设计开发在整个软件项目周期中都有体现。
2.1 需求分析的步骤
2.1.1 收集信息
在收集信息阶段,需要通过业务人员的访谈等方法了解数据库需要存储哪些业务信息(数据),这些信息需要支撑哪些业务功能。以医院管理系统为例,在收集信息阶段需要明确医院的哪些信息需要由数据库来保存。
2.1.2 标识实体
- 在收集信息阶段,获得的是关于业务需求的描述。
- 实体在数据库中就是表,在Java中就是实体。
- 在数据库设计中不能重复出现含义相同的实体。
2.1.3 标识每个实体的详细信息
从收集的信息中标识实体后,下一步的工作是围绕这些实体开始补充每个实体所需要存储的详细信息,也就是实体的属性。
2.1.4 标识实体之间的联系
在系统中,各实体不是孤立存在的。在使用系统完成业务功能的过程中,各实体间的数据会相互关联。
在数据库需求分析中还要理清各实体间的联系。
3.概念模型:E-R图
在数据库需求分析阶段,我们已经充分了解系统需要实现的业务功能,并完成实体标识及实体间关系的标识。此时需要进一步进行概要设计阶段。为了更加形象直观地体现数据库的设计意图,如同建筑行业的施工图纸,数据库设计也有类似的图形化展示工具——E-R图(Entity Relationship Diagram,实体-联系图),通过一些具有特定含义的图形符号提供图形化展示实体、属性和联系的方法。
3.1 E-R图中的标识
1.实体
在E-R图中,使用矩形表示实体。
2.属性
在E-R图中,椭圆形表示实体的属性。(字段)
3.联系
联系指在需求分析阶段标识的实体之间的关系,使用菱形表示。