java数据库关系型数据库设计(上)

目录

1.数据库设计的重要性及定义

1.数据库设计的重要性

1.失败的数据库设计造成的后果

2.优秀的数据库设计带来的好处

2.数据库设计的定义

2.数据库需求分析

1.需求分析的步骤

1.收集信息

2.标识实体

3.标识每个实体详细信息

4.标识实体之间的联系


1.数据库设计的重要性及定义

1.数据库设计的重要性

在实际的项目开发过程中,如果系统存储的数据量较大,表的数量较多,数据间的关系就会比较复杂。此时要优先考虑规范的数据库的数据库设计,并通过数据库的三大范式检验设计的合理性,然后进行建库、建表等工作。

1.失败的数据库设计造成的后果

失败数据库设计造成的后包括但不限于以下几种。

  • 在程序运行阶段就会出现数据操作异常。修改复杂。数据冗余等问题。
  • 影响程序的性能,甚至会导致程序崩溃。

2.优秀的数据库设计带来的好处

优秀的数据库设计有以下表现。

  • 降低应用程序的开发难度。
  • 具备高效的查询效率。
  • 具备良好的扩展性(应对因业务扩展而给程序带来的变化)。

通过规范化的数据库存设计,可以消除不必要的数据冗余,使数据库存设计更加合理,从而达到提高程序性能的目标。

2.数据库设计的定义

数据库设计就是对数据库中的实体,以及这些实体之间的关系进行规划和结构化的过程。数据库设计最终的结果是数据库模型。

2.数据库需求分析

软件项目的开发要经历需求分析、概要设计、详细设计、代码实现、软件测试、安装部署等阶段。数据库作为软件项目最重要的组成部分,数据库设计开发在整个软件项目周期中有体现。

在项目的需求分析阶段,最重要的工作就是完成数据库的需求分析。在与客户的沟通中,需要完成对项目目标的调查,收集并分析客户的业务数据需求、处理需求,以及对数据安全性和完整性的需求。

1.需求分析的步骤

需求分析的主要方法是召集相关人员开会了解需求,对业务人员进行访谈,最终使开发人员对项目要解决的业务有详细完整的了解。在数据库需求分析中,无论需要的数据库的大小和复杂程序如何,都可按照如下步骤完成系统分析。

  • 收集信息。
  • 标识实体。
  • 标识每个实体的详细信息。
  • 标识实体之间的联系。
1.收集信息

在收集信息阶段,需要通过对业务人员的访谈等方法了解数据库需要存储哪些业务信息(数据),这些信息上数据库来保存,并支撑哪些功能需求。

  • 需要在系统中保存病人信息。
  • 需要在系统中保存科室信息。
  • 需要在系统中保存检查项目信息
  • 需要在系统中记录每个科室可以开具的检查项目。
  • 病人在科室看病后,主治大夫给病人开具的检查处方中需要记录病人的信息、检查项目信息、科室信息、时间信息及检查结果等。
2.标识实体

在收集信息阶段,获得的是关于业务需求的描述。在学习了把实中存在的事物通过抽象的方法转换成程序的方法。在本阶段我们需要从收集的信息中标识医院管理系统中的实体。实体通常是一个名词,且只描述一件事情,因此医院管理系统的实体如下。

  • 病人:到医院看病
  • 科室:在医院中设置的科室,如内科、外科等。
  • 检查项目:医院可以做的检查项目,如血常规、尿常规等。
3.标识每个实体详细信息

从收集的信息中标识实体后,下一步的工作是围绕这些实体开始补充每个实体所需要存储的详细信息,也就是实体的属性。在医院管理系统数据库中,病人、科室、检查项目。

4.标识实体之间的联系

在系统中,各实体不是孤立存在的。在使用系统完业务功能的过程中,各实体间的数据会相互关联。例如,在医院管理系统中,处方是由科室开具给指定病人的,因此处方是由科室开具给指定病人的,因此处属性联系,同时这个联系还拥有自己的属性,因此,在数据库需求分析中还要理各实体间的联系。

相关推荐
时差95314 分钟前
【面试题】Hive 查询:如何查找用户连续三天登录的记录
大数据·数据库·hive·sql·面试·database
让学习成为一种生活方式16 分钟前
R包下载太慢安装中止的解决策略-R语言003
java·数据库·r语言
秋意钟42 分钟前
MySQL日期类型选择建议
数据库·mysql
Dxy12393102161 小时前
python下载pdf
数据库·python·pdf
桀桀桀桀桀桀2 小时前
数据库中的用户管理和权限管理
数据库·mysql
superman超哥3 小时前
04 深入 Oracle 并发世界:MVCC、锁、闩锁、事务隔离与并发性能优化的探索
数据库·oracle·性能优化·dba
用户8007165452003 小时前
HTAP数据库国产化改造技术可行性方案分析
数据库
engchina4 小时前
Neo4j 和 Python 初学者指南:如何使用可选关系匹配优化 Cypher 查询
数据库·python·neo4j
engchina4 小时前
使用 Cypher 查询语言在 Neo4j 中查找最短路径
数据库·neo4j
尘浮生4 小时前
Java项目实战II基于Spring Boot的光影视频平台(开发文档+数据库+源码)
java·开发语言·数据库·spring boot·后端·maven·intellij-idea