数据架构设计思路,一篇就够用
lipiwang 2024-11-18 14:27 9 浏览 0 评论
数据架构设计是指设计和优化数据的逻辑和物理结构,从而有效的存储和管理数据,更好的满足应用的需求。
数据架构设计的基本思路大概是这样的,如图所示。
这个过程包括了需求分析,概念结构设计,逻辑结构设计,物理结构设计,数据库实施以及线上运行和维护,这六个阶段。
当然了,在开始之前,还可以做一些准备工作,比方说选定参加设计的人员,包括了系统分析人员、数据库设计人员,应用开发人员,数据库管理员以及用户代表等等。如果应用的功能比较复杂的话,还可以挑选好数据库设计的工具,从而提高数据库设计的质量,减少设计的工作量。数据设计工具推荐开源的PDMAN。当然了,如果项目比较简单的话,不用工具也是可以的。
准备工作完成后,下面再讲解下数据架构设计每一个阶段要做的工作。
需求分析阶段
需求分析阶段是整个设计过程的一个基础。需求分析做得是不是准确,是不是充分,决定了数据库设计的速度和质量。而且,在一些极端场景下,如果需求分析做得不好的话,可能会导致整个数据库设计的返工,甚至是重做。
需求分析阶段,是整个数据库设计里面最困难,也最耗时的一步。在互联网项目里面,我们的需求往往是非常不明确的,同时需求的变更又非常的快,这就导致需求分析更加困难了。所以可想而知,需求分析阶段的重要性。
为了更好地完成需求分析,一般可以分成四步进行,明确目标,调查需求,分析需求以及确认需求。
需求分析的目标是通过分析现实世界要处理的一个对象,比如组织机构(部门,企业等),并充分地了解原系统的工作情况,明确用户的各种需求,在此基础之上确定新系统的功能。通过调查我们应该会得到用户对数据的几点要求:
- 信息的要求,用户需要从数据库里面获得的信息的内容以及性质;
- 数据的要求,在数据库里面要存储哪些数据?
- 处理的要求,用户要完成数据处理的相关功能;
- 安全性要求
以上这是需求分析的目标,接下来再看一下如何调查用户需求。
- 调查组织机构的情况,包括了解这个组织的部门组成情况,各个部门的职责。了解这些是因为在进行数据库架构设计的时候,可能会涉及到多个部门的协作,因此,我们需要知道一次架构设计需要涉及到哪些部门?每个部门做什么的?
- 调查各个部门的业务活动,包括了解各个部门输入的是什么数据,输出的是什么数据,怎么样去加工数据的。输出数据的时候输出的格式是怎样的?这一步是调查的重点。
- 接着在熟悉业务活动的基础之上,协助用户明确对新系统的各种要求。包括信息要求,处理要求,安全性要求等。
- 确定新系统或者新业务的边界。但在这一步,会对前面调查的结果进行初步分析,确定哪些功能由计算机完成,哪些功能由人工去完成。那些计算机去完成的功能就是新系统应该去实现的功能了。在调查的过程中,我们可以根据不同的问题和条件去使用不同的调查方法。
常用的调查方法有以下几种:
- 开调查会,通过和用户座谈去了解业务活动的情况以及用户的需求;
- 跟班作业,通过亲身参加业务工作去了解业务的活动计划;
- 专人介绍,比方说请外部顾问,或者是询问熟悉这块业务的人;
- 调查问卷,设计调查表让用户去填写,如果调查表设计得比较合理的话,这种方式是非常有效的。而且成本很低;
- 查阅记录,就是查阅和原系统有关的一些数据记录,以此去了解用户的需求。
在调查业务需求的时候,我们需要同时采用多种方法,但是不管使用哪一种调查方法,都必须要有用户的积极参与和配合。用户的参与和配合是非常重要的,否则,很可能会偏离用户本身的需求。
在调查好用户的需求后,还需要进行进一步的分析,在众多的分析方法中,结构化分析方法(Structured Analysis,简称SA 法)是比较简单实用的,它采用自顶向下逐步分解的方式去分析系统,也就是先了解系统的整个情况是怎样的,然后再去逐步分析,逐步细化,了解系统的各方方面。当用户需求分析完成之后,我们还需要让用户确认需求,在这个阶段可以产生一个需求分析报告,并把这个报告提交给用户,从而获得用户的认可,再让用户慢慢去确认需求。在这里有一个比较规范的需求分析报告的模板,可以做一个参考(https://wenku.baidu.com/view/f120aff2487302768e9951e79b89680202d86b87)
当然了,企业内部一般都会有自己的需求分析报告模板,所以实际项目中会使用企业内部的模板,另外需求分析报告是不拘泥于一种形式的,没必须要按部就班地完成这么一个文档,有的公司往往还直接输出一个PPT,PPT也非常的简单,有的企业输出只有几百个字的word描述,只要要讲清楚用户的需求就可以了,然后拉上用户去确认,这样也是完成了。
在需求分析阶段,还会产生一个数据字典,所谓数据字典是指有关数据的描述,通常认为数据字典就是数据的元数据,这个数据字典一般会在需求分析阶段建立出来。并且在数据库设计的过程中,不断地去修改完善。有关数据字典在百度百科有非常详细的描述(https://baike.baidu.com/item/数据字典)。这里强烈建议大家去看一看,文中介绍了数据字典的数据项、数据结构,数据流程、数据存储以及处理过程这五个部分。其中数据项是数据的最小组成单位,若干个数据项就可以组成一个数据结构。数据流是数据结构在系统内部传输的路径。数据存储是指数据结构保存的地方,记录了数据流的来源或者是趋向的位置,最后,处理过程是数据的处理逻辑。
概念结构设计阶段
概念结构设计阶段是整个数据库设计的关键,它通过对用户的需求进行综合归纳和抽象,从而形成一个独立于具体数据库管理系统的概念模型,更加通俗一点的描述,就是把需求分析阶段得到的应用需求,抽象出一个概念模型。
逻辑结构设计阶段
逻辑结构设计是把概念结构转换为某个数据库管理系统所支持的数据模型,同时会做一些优化。
物理结构设计阶段
物理结构设计阶段,会为逻辑数据模型选择一个最合适的物理结构。
实施阶段
在实施阶段,研发人员可以根据逻辑设计和物理设计的结果,建立数据库,编写应用,组织数据入库并调试运行。
运行与维护阶段
最后是运行与维护阶段,那当应用调试成功之后,应用就可以发布到线上了。发布到线上,其实并不是终点,在数据库系统运行的过程中必须不断地进行评估,调整和修改,比方说当发现表结构设计不合理的时候,需要调整一下表结构。当发生性能瓶颈的时候,需要去建立合适的索引,这些都是运行与维护阶段要做的事情。
以上就是数据库架构设计的基本思路。在整个过程中,相对重要也是有难度的工作是概念结构设计,逻辑结构设计以及物理结构设计,都需要运用数据库的设计原则来完成。
下一篇《数据库设计原则》,敬请期待。
相关推荐
- Nat. Synthesis: 重大突破,电化学形成C-S键
-
第一作者:JunnanLi,HasanAl-Mahayni通讯作者:AliSeifitokaldani,NikolayKornienko通讯单位:蒙特利尔大学,麦吉尔大学【研究亮点】形成C-...
- 网络安全与应用(二)(网络安全理论与应用)
-
1、应用层安全协议SHTTP和HTTPS:SHTTP:SecHTTP,安全超文本传输协议,是HTTP扩展,使用TCP的80端口。HTTPS:HTTP+SSL,使用TCP的443端口。大部分web应用...
- TN-C、TN-S、TT、IT供电系统详解及对比
-
TN-C、TN-S、TT、IT供电系统是低压配电系统中常见的四种接地方式,它们各自有不同的特点和适用场景。一、系统介绍TN-C供电系统①定义:整个系统中,工作零线(N线)与保护零线(PE线)是合一的,...
- 网络应用服务器(三)(网络应用程序服务器)
-
#头条创作挑战赛#1、DNS协议:域名解析协议,用于把主机域名解析为对应的IP地址。是一个分布式数据库,C/S工作方式。主要基于UDP协议,少数使用TCP,端口号都是53。常用域名如下2、DNS协议...
- 腾讯发布混元Turbo S:业界首次无损应用Mamba架构
-
21世纪经济报道记者白杨北京报道2月27日,腾讯正式发布新一代基座模型——混元TurboS。据腾讯混元团队介绍,混元TurboS在架构方面创新性地采用了Hybrid-Mamba-Transfor...
- 【收藏】低压配电系统中TT IT TN-S/TN-C/TN-C-S 的区别?
-
低压配电系统的接地型式选择是电气安全设计的核心环节,TT、IT、TN-S、TN-C、TN-C-S这五种主要接地型式因其结构、保护原理和故障特性的显著差异,在工程应用中有不同的适用范围和限制条件。如若发...
- 金万维公有云平台如何实现C/S架构软件快速SaaS化
-
金万维作为国内领先的企业信息化垂直B2B平台运营商,拥有超过5000家管理软件合作伙伴,掌握管理软件一线的发展动态,因此深知传统管理软件近年来面对的困境和问题。而SaaS却在软件行业内发展迅猛势如燎原...
- 随时随地做翻译:B/S架构的传奇时代到来
-
随着新兴技术的发展和大数据时代的到来,翻译作为连接各国语言和文化的工具,更是具有前所未有的拓展空间。传统的在计算机辅助翻译软件(CAT)上进行翻译的模式,受到时间和空间的限制,导致翻译过程中面临层层障...
- BS和CS 架构的介绍(一篇就够了)(cs和bs架构的含义)
-
简介C/S又称Client/Server或客户/服务器模式。服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、Informix或SQLServer。...
- 物管王(包租婆)软件架构与B/S和C/S架构的优点和缺点比较
-
一、B/S系统架构的优点和缺点优点:1)客户端无需安装,有Web浏览器即可。2)BS架构可以直接放在广域网上,通过一定的权限控制实现多客户访问的目的,交互性较强。3)BS架构无需升级多个客户端,升级服...
- 监听器入门看这篇就够了(怎么检查车上有没有被别人安装监听器)
-
什么是监听器监听器就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java对象的方法调用或属性改变,当被监听对象发生上述事件后,监听器某个方法将立即被执行。。为什么我们要使用监听器?...
- 购物车【JavaWeb项目、简单版】(java购物车的实现原理)
-
①构建开发环境免费学习资料获取方式导入需要用到的开发包建立程序开发包②设计实体书籍实体publicclassBook{privateStringid;privat...
- 基础篇-SpringBoot监听器Listener的使用
-
1.监听器Listener简介1.1监听器Listener介绍Listener是JavaWeb的三大组件(Servlet、Filter、Listener)之一,JavaWeb中的监听器主要用...
- 你在 Spring Boot3 整合 JWT 实现 RESTful 接口鉴权时是否遇到难题?
-
各位后端开发小伙伴们!在日常使用SpringBoot3搭建项目时,RESTful接口的鉴权至关重要。而JWT技术,作为一种简洁且高效的鉴权方式,被广泛应用。但大家是不是在整合过程中遇到过各...
- javaWeb RSA加密使用(rsa加密java代码)
-
加密算法在各个网站运用很平常,今天整理代码的时候看到了我们项目中运用了RSA加密,就了解了一下。先简单说一下RSA加密算法原理,RSA算法基于一个十分简单的数论事实:将两个大质数相乘十分容易,但是想要...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- maven镜像 (69)
- undefined reference to (60)
- zip格式 (63)
- oracle over (62)
- date_format函数用法 (67)
- 在线代理服务器 (60)
- shell 字符串比较 (74)
- x509证书 (61)
- localhost (65)
- java.awt.headless (66)
- syn_sent (64)
- settings.xml (59)
- 弹出窗口 (56)
- applicationcontextaware (72)
- my.cnf (73)
- httpsession (62)
- pkcs7 (62)
- session cookie (63)
- java 生成uuid (58)
- could not initialize class (58)
- beanpropertyrowmapper (58)
- word空格下划线不显示 (73)
- jar文件 (60)
- jsp内置对象 (58)
- makefile编写规则 (58)