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

目录

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

1.数据库设计的重要性

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

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

2.数据库设计的定义

2.数据库需求分析

1.需求分析的步骤

1.收集信息

2.标识实体

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

4.标识实体之间的联系


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

1.数据库设计的重要性

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

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

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

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

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

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

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

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

2.数据库设计的定义

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

2.数据库需求分析

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

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

1.需求分析的步骤

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

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

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

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

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

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

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

4.标识实体之间的联系

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

相关推荐
后端小张1 小时前
Redis 执行 Lua,能保证原子性吗?
数据库·redis·缓存
离开地球表面_991 小时前
索引失效?查询结果不正确?原来都是隐式转换惹的祸
数据库·后端·mysql
lipviolet1 小时前
Redis系列---Redission分布式锁
数据库·redis·分布式
Zhen (Evan) Wang1 小时前
.NET 6 API + Dapper + SQL Server 2014
数据库·c#·.net
毕设木哥2 小时前
25届计算机专业毕设选题推荐-基于python+Django协调过滤的新闻推荐系统
大数据·服务器·数据库·python·django·毕业设计·课程设计
洛阳泰山2 小时前
Llamaindex 使用过程中的常见问题 (FAQ)
java·服务器·数据库·python·llm·rag·llamaindex
没有名字的小羊2 小时前
Linux基础命令——账户简单管理
linux·运维·服务器·网络·数据库
单字叶2 小时前
MySQL数据库管理
数据库·mysql
ID_云泽2 小时前
MVCC机制解析:提升数据库并发性能的关键
数据库·mvcc
小灰灰是码农...2 小时前
MySQL的数据库课程设计的基本步骤和考虑因素
数据库