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

目录

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

1.数据库设计的重要性

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

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

2.数据库设计的定义

2.数据库需求分析

1.需求分析的步骤

1.收集信息

2.标识实体

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

4.标识实体之间的联系


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

1.数据库设计的重要性

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

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

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

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

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

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

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

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

2.数据库设计的定义

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

2.数据库需求分析

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

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

1.需求分析的步骤

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

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

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

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

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

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

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

4.标识实体之间的联系

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

相关推荐
倔强的石头_6 小时前
kingbase备份与恢复实战(二)—— sys_dump库级逻辑备份与恢复(Windows详细步骤)
数据库
jiayou641 天前
KingbaseES 实战:深度解析数据库对象访问权限管理
数据库
李广坤2 天前
MySQL 大表字段变更实践(改名 + 改类型 + 改长度)
数据库
爱可生开源社区3 天前
2026 年,优秀的 DBA 需要具备哪些素质?
数据库·人工智能·dba
随逸1774 天前
《从零搭建NestJS项目》
数据库·typescript
加号34 天前
windows系统下mysql多源数据库同步部署
数据库·windows·mysql
シ風箏4 天前
MySQL【部署 04】Docker部署 MySQL8.0.32 版本(网盘镜像及启动命令分享)
数据库·mysql·docker
李慕婉学姐4 天前
Springboot智慧社区系统设计与开发6n99s526(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·spring boot·后端
百锦再4 天前
Django实现接口token检测的实现方案
数据库·python·django·sqlite·flask·fastapi·pip
tryCbest4 天前
数据库SQL学习
数据库·sql