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

目录

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

1.数据库设计的重要性

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

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

2.数据库设计的定义

2.数据库需求分析

1.需求分析的步骤

1.收集信息

2.标识实体

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

4.标识实体之间的联系


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

1.数据库设计的重要性

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

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

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

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

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

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

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

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

2.数据库设计的定义

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

2.数据库需求分析

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

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

1.需求分析的步骤

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

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

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

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

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

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

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

4.标识实体之间的联系

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

相关推荐
YOU OU3 小时前
Redis基础常识与命令
数据库·redis·缓存
Database_Cool_5 小时前
OLTP 和 OLAP 区别详解:分析型数据库和事务型数据库怎么选(附阿里云 AnalyticDB MySQL 选型指南)
数据库·mysql·阿里云
爱写代码的阿森5 小时前
鸿蒙三方库 | harmony-utils之KvUtil键值型数据库操作详解
数据库·华为·harmonyos·鸿蒙·huawei
Database_Cool_6 小时前
单机 MySQL 迁移到分布式数据库方便吗?阿里云 PolarDB-X 100% MySQL 协议兼容零改造平滑迁移
数据库·分布式·mysql
姜太小白7 小时前
【MySQL】 索引优化实战:解决 WHERE 等值 + IS NULL 查询,TEXT 字段报错 1167 的完整指南
数据库·mysql
窝子面7 小时前
手搓最简前后端协作-node
javascript·数据库
吳所畏惧7 小时前
宝塔面板Redis密码修改指南:SSH命令修改 vs 面板UI界面修改,哪个更靠谱?
运维·服务器·数据库·redis·缓存·ssh
DFT计算杂谈7 小时前
无 Root 权限在 Tesla K80 零门槛部署 DeepSeek 大模型
linux·服务器·网络·数据库·机器学习
HPFBoy7 小时前
log4net 数据库存日志正确配置
数据库