DBMS 中的 2 层架构与 3 层架构

news2024/12/20 18:01:31

有多种方法可以获取存储在数据库管理系统中的数据。根据其结构对 DBMS 的体系结构进行了分类。 

DBMS 架构概述

理解 2-tier 和 3-tier 架构是一个相当重要的话题,不仅对于学术或寻找好工作,而且对于与技术相关的一般意识也是如此。

2-tier simple表示两层;在这里,层意味着简单的层。有2层,一层是客户端层,存储数据的一层,即数据库服务器。另一个是客户端层,它基本上是一台机器,它在数据库服务器上运行查询并获取所需的数据。客户端机器具有向用户显示所需数据的界面。

可以使用客户端计算机中的API从数据库服务器获取数据。此外,API 代表应用程序编程接口。 

API 的目的是在预定义的时间间隔内从数据库服务器获取数据,并将其用于各种目的。例如,有各种应用程序可以显示火车的实时位置,或者在使用 出租车服务时,他们使用百度地图 API,为此他们肯定会向百度支付一些费用。他们使用该 API 跟踪送货员或出租车并将其展示给我们。在这里还可以观察到,使用 API 获取数据之间的时间间隔非常短,因为我们想要获取出租车的确切位置。尽管如此,在定位火车时,我们不需要这么高的精度,这样我们就可以减少使用 API 获取数据的频率。

API先建立连接,然后在接口上写查询;一个简单的查询意味着,我想获取特定的数据,然后查询将转到数据库服务器,该服务器将处理该查询,这意味着我们编写了一个应用程序,一个应用程序意味着我要获取特定的数据,并且该程序可以使用任何语言,例如简单示例,如果我用Java编写,那么该应用程序将到达数据库服务器,在那里它将首先转换为低级语言,因为该应用程序可以使用任何其他语言,在高级语言中,我们将在这里进行转换,意味着服务器将对其进行转换,处理它,并且该查询中需要任何数据,该数据将返回给客户端。这就是 2 层架构的实际工作方式。

我们已经在日常生活中看到了 2 层架构的使用,例如当我们在铁路上订票时,而不是通过网络和其他应用程序。但是如果我去车站填写表格并预订车票,那么坐在窗口那边的人,有一台客户端机器,在那台客户端机器上,他们会填写信息。他们将从数据库服务器调用该列车的详细信息,了解有多少座位可用;据此,无论流程是什么,他们都会处理并开票。

这种架构的优点是非常简单,因为只有 2 层;维护非常容易,因为只有有限的授权银行员工,以及有限的数据库。

DBMS 中的三层架构  

但是今天,每家银行和其他组织都希望发展并拥有更多用户,用更少的资源管理他们,并提供 24 X 7 的服务。它们允许用户使用 Web 或移动应用程序执行所有查询。数据库服务器处理从高级语言到低级语言的所有用户的查询是相当复杂的,并且在以这种安全性授权它们之后进一步执行所有查询是另一个主要问题,因为用户可以直接访问数据库。

为了解决所有这些问题,我们使用了第3层架构。在第 3 层架构中,在客户端和服务器之间引入了另一层。3 层架构意味着 3 层到达。首先是应用层,我们直接称之为客户端层;第二个是业务层,第三个是数据库或数据层。

首先客户端层是一样的,也就是说这里都是我的用户,都是普通用户,我们也是普通用户;我们所有人,通过打开铁路的网站或应用程序,我们的机器,被称为客户端机器。现在有一个接口正在运行,可以帮助我们与数据库建立连接;接口是可以是Java、Python、PHP等的应用程序。为了支持该语言或应用程序,有业务层,这意味着来自客户端机器的查询在业务层处理。这减少了数据服务器上的负载。

我们,即客户端机器发出的请求首先到达应用层。该应用程序层对其进行验证并将其从高级语言处理为低级语言,然后将简化的查询传递给数据库服务器。然后服务器只是将数据返回给应用层,将数据从低级语言转换为高级语言后返回给客户端机器。 

应用层也避免了客户端机器与数据库服务器的直接交互,增加了数据库服务器的安全性。

在引入了第三层,即应用层之后,DBMS的架构变得有点复杂,但是高效且安全。3层架构的维护对我们来说有点困难。尽管如此,当我们为这个用户群提供服务时,我们希望有良好的维护资源,因为它比第 2 层架构成本更高,但仍然值得这些资源。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1602.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【每日渗透笔记】覆盖漏洞+修改隐藏数据实战尝试

目录 一、特点: 1.1、特征: 1.2、知识: 1.3、注册的功能点: 目前: 问题: 二、分析数据包 2.1、修改数据处 三、换思路 一、特点: 1.1、特征: 存在注册的功能点 1.2、知识&a…

资本狂欢过后 Aptos如何顶住旧日光环?

10月27日,Aptos Autumn主网上线一周后,其浏览器数据显示,该Layer1网络的交易总量为1432万笔,TPS为10.65,原生Token APT总供应量约为10.02亿,质押数量约为8.23亿枚,活跃节点数量102个。 低TPS、高…

AIR780E使用AT连接TCP收发数据

最近各种技术群都被合宙9.9的开发板刷屏了,笔者成功的第一时间拼团成功,已经作为前两百人收到开发板了,因为官方的二次开发固件还没出,就先玩一下传统的AT开发。 文中各种文档和资料均可以在air780e.cn网站找到。 本文将介绍如何…

99208-90-9_炔基-棕榈酸_Alkynyl Palmitic Acid 可进行定制

一、产品简介----Product introduction: 货号:Y-CL-0063 CAS:99208-90-9 中文名: 15-十六碳炔酸,炔基-棕榈酸 英文名:Alkynyl Palmitic Acid/hexadec-15-ynoic acid 结构式(Structural&#xff…

深度学习:GoogLeNet核心思想详细讲解(原创)

深度学习:GoogLeNet核心思想详细讲解想法来源时代局限性稀疏运算特性稀疏矩阵稀疏运算并行计算结合稀疏与并行Inception blockGoogLeNetAverage pooling辅助分类器训练方法(Training Method)超参数设置模型集成训练阶段预测阶段基于GoogLeNet的服装分类(…

WordPress 6.1新功能 (特性和截图)

WordPress 6.1 Beta 于几天前发布,预计将于 2022 年 11 月 1 日发布。这将是 2022 年的最后一个主要版本,将带来许多新功能和改进。 我们一直在密切监视开发并在我们的测试站点上尝试新功能。 在本文中,我们将通过功能和屏幕截图让您先睹为快…

基于javaweb的医院管理系统(java+springboot+mybatis+vue+mysql)

基于javaweb的医院管理系统(javaspringbootmybatisvuemysql) 运行环境 Java≥8、MySQL≥5.7、Node.js≥10 开发工具 后端:eclipse/idea/myeclipse/sts等均可配置运行 前端:WebStorm/VSCode/HBuilderX等均可 适用 课程设计,大作业&…

对于一个即将上线的网站,如何测试

web应用:也叫做网站,相对于客户端应用来说,web应用无需单独安装,在浏览器上即可使用其功能。 web应用的主要开发流程如下: 在网站开发的整个流程中,测试验收是上线发布前的最后一个环节,测试是…

Linux环境下安装Jenkins

首先安装Jenkins之前,linux中必须安装好了JDK和Maven,如果还没有安装过,下面准备好安装教程 Linux环境安装JDK: https://www.cnblogs.com/xuliangxing/p/7066913.html Linux环境安装Maven: https://blog.csdn.net/qq_35868412/article/detail…

【数据库04】中级开发需要掌握哪些SQL进阶玩法

前 言 🍉 作者简介:半旧518,长跑型选手,立志坚持写10年博客,专注于java后端 ☕专栏简介:相当硬核,黑皮书《数据库系统概念》读书笔记,讲解: 1.数据库系统的基本概念(数据…

Unicode云对象对接代码Demo

实现点击按钮,获取云对象返回内容,例下图 新建云对象-co1 index.obj.js代码 // 云对象教程: https://uniapp.dcloud.net.cn/uniCloud/cloud-obj // jsdoc语法提示教程:https://ask.dcloud.net.cn/docs/#//ask.dcloud.net.cn/article/129 mo…

深入理解计算机系统:内存越界引用和缓冲区溢出

注:最后有面试挑战,看看自己掌握了吗 文章目录原因造成后果缓冲区溢出执行攻击代码exploit code蠕虫和病毒的区别原因 C对数组引用不进行任何边界检查,而且局部变量和状态信息(寄存器值,返回地址)都放在栈…

2.1 Python 解释器

1. 什么是 Python 解释器 Python 解释器是解释 Python 脚本执行的程序. 开发者在编写 Python 代码保存后, 就会得到一个以.py为扩展名的文本文件, 若要运行此文件, 就需要Python解释器去执行.2. Python 解释器的种类 Python 有好几种版本的解释器:CPython: 官方版本的解释器,…

猿创征文|技术成长之各进制之间的转换

目录 一.非十进制转十进制 方法: 示例 解释 二进制转十进制 八进制转十进制 十六进制转十进制 二.十进制转非十进制 整数部分 方法 示例 十进制整数转二进制 十进制整数转八进制 十进制整数转十六进制 小数部分 方法 十进制小数转二进制 十进制小数转…

反应性叠氮化物N3-PEG-NH2,Azide-PEG-Amine,叠氮-聚二乙醇-胺

一:产品描述 1、名称 英文:N3-PEG-NH2,Azide-PEG-Amine 中文:叠氮-聚二乙醇-胺 2、CAS编号:N/A 3、所属分类:Amine PEG Azide PEG 4、分子量:可定制,叠氮-聚二乙醇-胺10k、叠氮…

Allegro DFM Ravel Rule检查工具介绍

Allegro DFM Ravel Rule检查工具介绍 Allegro任何一个版本都支持DFM Ravel Rule检查,即便是166的版本 打开后的界面如下所示 可以检查项目 测试点,阻焊,走线,丝印,过孔,milling,装配,outline相关的DFM检查 可以让违反规则的设计处以DRC的形式报出来 避免加工问题 首…

Spring+SpringMVC+Mybatis SSM框架详解

一、JDBC编程 1、JDBC 简介 JDBC其实就是 Java 官方提供的一套规范(接口),用于帮助开发人员快速实现不同关系型数据库的连接。 程序运行的时候,数据都是在内存中的。当程序终止的时候,通常都需要将数据保存到磁盘上…

VScode 官网下载太慢解决方法

用惯了HBuilder 和 WebStorm,发现身边很多人也在用 VSCode,就像尝试下。 但是,官网下载太慢了。https://code.visualstudio.com/ 我可是 500M 的宽带啊~!!! 有小道消息说,VSCode 对中国大陆用…

【Linux】软件包管理器 --- yum

目录🌈前言Linux 软件包管理器 yum🚁1、什么是软件包🚂2、yum指令🚃3、关于 rzsz🌈前言 本篇文章进行开发工具的学习!!! Linux 软件包管理器 yum 🚁1、什么是软件包 源…

heapdump 攻击面利用

点击上方蓝字关注我们 一、heapdump案例 1.1 项目中的分析 这个是项目中遇到的一个例子,发现了heapdump泄露,但没有找到可用session,当时就想着内存中应该是有账号密码的,于是就开始找了起来。 用OQL进行搜索,先找…