一个项目中说系统分为表现层、控制层、逻辑层、DAO层和最终数据库五层架构 这具体是什么意思啊

说实话,当我看到这个层次图时,我的第一反应是“哇,这个结构很清晰”。
我曾经在一个外包项目中看到过类似的设计,团队明确表示前端负责鼠标点击和屏幕上出现的内容,后端负责计算和数据库查找。

有趣的是,控制层和逻辑层经常被混淆。
我的一个朋友在编写代码时总是将业务规则直接插入到表示层中。
结果,调试变得就像解魔方一样。
他后来告诉我:“当时,我们认为更少的代码行会让速度更快,但整个系统就像一张蜘蛛网。
”这就是为什么现在许多规范都强调逻辑层独立的必要性。
就像做饭的时候,蔬菜洗干净之后就不能往锅里倒入调味料了。

DAO 层在处理文件操作时最令人印象深刻。
以前,团队有直接操作 JSON 的代码,但后来需求发生了变化,他们不得不更改为 XML。
结果,我不得不重写文件的整个读/写部分。
改用DAO封装后,接口调用改变了三行,但其余代码保持不变。
这让我想起了老师的话。
“抽象层不是一张图片,它是一个保险杠,可以让你在未来免去无数的头痛和夜晚。

数据库层其实还蛮有趣的。
我们去年接管了个旧系统。
数据库本身很好,但是 SQL 写得像圣经一样。
每次修复一个bug,我就得背一半的数据库手册。
然后,新团队强制实施了 DAO 层。
一开始有点慢,但三个月后,整体维护效率提升了一倍。
说实话,数据库厂商可能会提供一些“优化建议”,但大多数情况下还是要由 DAO 层来像人类语言一样编写 SQL。

但是,这种分层也有其怪癖。
我见过太多的项目,各层之间的接口没有明确约定,结果如果要调整逻辑层的功能,就得在前端改十几个甚至更多的文件。
而最糟糕的是,追求“高内聚”让逻辑层变得太重,导致代码看起来像一个饺子,没人愿意拆开来看。
我记得将一个 5 000 行逻辑层重构为三个模块。
整个团队连夜加班,第二天效率暴涨。

这种层次结构就像积木一样。
如果构建正确,1 更换一个部件不会影响其他部件。
如果建得不好,一个小小的改动就可能导致整个建筑倒塌。
我在杭州做项目的时候,客户特别要求所有层都写成公共组件。
结果,虽然开发速度很快,但系统却表现得很慢。
然后我们提出分层分级,关键业务采用独立模块,公共功能采用通用层。
现在问题已经解决了。

数据库系统有哪几部分组成?

我们来谈谈数据库。
当我刚进入这个行业时,我对数据库系统一无所知。
后来,随着我们逐渐接触,我也大致了解了这些零件是由什么构成的。

假设我正在一家小公司从事一个项目,他们刚刚推出了一个新的管理系统。
当时,系统分析师每天都和我开会,告诉我数据库系统需要由四个部分来支持。

第一部分是数据库本身(DB)。
说白了,就是存放东西的地方。
我们的系统存储客户信息、订单等。
数据应该是有组织的,而不是杂乱的,并且易于以后查看。
我记得这个数据库设计得很好,数据重复很少,检索速度很快。
由于这是我的计算机上已经存在很长时间的东西,因此我需要共享它,并且如果有人向其中添加东西,系统也不会崩溃。

第二部分是硬件。
不用说,只是计算机专家。
硬盘、内存、服务器等。
我们的系统是服务器,所以我们需要有足够的硬盘。
否则数据太多就会崩溃。
当时服务器价格还比较贵,所以店主只好咬牙买了。

第三部分是软件。
这包括操作系统、数据库管理系统 (DBMS) 以及我们编写的各种应用程序。
DBMS 是关键,我们正在使用 MySQL,我当时认为 MySQL 非常容易使用。
负责数据管理,执行数据插入、数据修改、数据验证。
我们编写的应用程序旨在使管理人员和员工能够使用该数据库,例如验证客户订单、管理库存等。
当时,我仍然负责编写代码和处理 DBMS,这是我又爱又恨的。

第四块是问候。
这是一个重要的部分。
当时,系统分析师、数据库架构师、应用程序程序员和最终用户是总裁和员工。
当然,还有核心数据库管理员(DBA)。
我们公司没有全职DBA,所以系统分析师兼职。
他或她负责监督数据库操作、确保数据安全并定期备份数据。
他担心有一天他的数据会丢失,他的老板会被敲竹杠。

后来我去了另一家公司,那家公司聘请了一名全职DBA。
他是一位专家,我们程序员应该听听他关于数据库安全和性能优化的知识。
因此,人力也非常重要。
您需要知识渊博的人员来管理您的数据库。

一般来说,一个数据库系统由这四部分组成,每一部分都是必不可少的。
硬件是基础,软件是核心,数据库是数据仓库,人力资源是灵魂。
想一想。
如果出现问题,整个系统就会崩溃。

数据库系统的三种模型是什么

分层模型:1 9 7 0年IBM IMS,树形结构,根节点没有父节点,其他节点有唯一的父节点。
这是一个陷阱,其应用受到限制。
网格模型:2 0 世纪 6 0 年代的 Burroughs B5 000,多个父级,复杂的连接。
不信,你会逐渐被淘汰。

关系模型:2 0世纪7 0年代CODASYL SQL,表结构,广泛使用。
对于 SQL,不要这样做。