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

目录

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

1.数据库设计的重要性

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

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

2.数据库设计的定义

2.数据库需求分析

1.需求分析的步骤

1.收集信息

2.标识实体

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

4.标识实体之间的联系


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

1.数据库设计的重要性

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

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

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

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

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

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

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

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

2.数据库设计的定义

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

2.数据库需求分析

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

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

1.需求分析的步骤

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

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

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

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

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

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

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

4.标识实体之间的联系

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

相关推荐
ZFSS13 小时前
Localization Translate API 集成与使用指南
java·服务器·数据库·人工智能·mysql·ai编程
东风破13714 小时前
达梦DMDRS搭建、以及DMDRS双向同步
数据库·oracle·dm达梦数据库
KaMeidebaby15 小时前
卡梅德生物技术快报|抗独特型抗体开发:半抗原检测技术瓶颈拆解,抗独特型抗体开发工程化实践
前端·数据库·人工智能·其他·百度·新浪微博
NiceCloud喜云15 小时前
Claude Files API 深入:从上传、复用到配额管理的工程化指南
android·java·数据库·人工智能·python·json·飞书
A XMan.16 小时前
域名Whois信息查询V2版API接入指南
数据库
heimeiyingwang16 小时前
【架构实战】可观测性体系:从监控到全链路追踪
网络·数据库·架构
网管NO.116 小时前
SQL 日期函数全套精讲!时间格式化、日期加减、年月日提取,做日报周报直接套用
数据库·sql
杨云龙UP16 小时前
Linux 根分区被日志吃满?一次 58G Broker 日志清理实战_2026-05-20
linux·运维·服务器·数据库·hdfs·apache
sdk大全16 小时前
Studio 3T for MongoDB 2025.13.0
数据库·mongodb
码农阿豪16 小时前
平替MongoDB:金仓多模数据库助力电子证照国产化实践
数据库·mongodb