首页 > 数据库 >数据库与服务端

数据库与服务端

时间:2023-09-04 13:55:05浏览次数:43  
标签:存储 数据库 用户 服务器 数据 服务端

啥是数据库?

​ 数据库是存储数据的地方,我们平时使用电脑或者手机,接触到的都是图形化界面,不能直接接触到数据库,其实,数据库无处不在,我们使用的绝大多数需要记录的数据都存储在数据库中,可以说,现如今的便捷生活,就是建立在数据库的基础上的。登录网站时,用户的账号和密码都存储在服务器的数据库中。

1)服务器

​ 数据库本身是存储数据的软件,既然是软件,就要在硬件中运行,这个硬件就是服务器,中小型企业使用一台服务器就可以存储所有的数据,对大公司而言,数据较多,一台服务器不能存储所有的数据,通常多台数据库服务器共同来存储。

2)数据库

​ 数据库服务器可以有多个数据库,比如,对电商平台而言,会建立用户数据库、商品数据库、卖家数据库等,不同的数据库之间可以相互独立,也可以存在数据上的联系。

image-20230825145553090

3)数据表

​ 每个数据库又可以有很多个数据表。比如用户数据库,可以有多张数据表,不同数据表用来存储用户的不同数据,用户的账号、密码存储在用户数据表中,用户的购买记录存储在购买记录数据表中,用户操作数据存储在操作记录数据表中。

​ 下面的表格就是个简单的数据表,跟我们经常使用的Excel很像,包括行和列,每一列代表一个属性,每一行代表一条记录。这个用户数据表,有5列,分别是id、name、password、gender、birthday,分别代表编号、姓名、密码、性别、出生时间,有3行,分别表示小明、小红、小军的个人等信息。

image-20230825145652439

SQL、NoSQL数据库

​ 数据库大致可以分为两大类,SQL数据库和NoSQL数据库。SQL (Structured Query Language) 数据库,指关系型数据库,主要代表有SQL Server,Oracle,MySQL。NoSQL(Not Only SQL)指非关系型数据库,主要代表有MongoDB,Redis。

​ SQL、NoSQL在存储数据类型和存储方式上有较大的不同。

  • 第一,储存数据类型不同。
  1. 关系型数据库适合存储结构化数据,如用户的帐号、地址等。这些数据通常需要做结构化查询,比如选出所有的90后用户,使用SQL查询就非常方便,这时候,关系型数据库就要胜出一筹。
  2. NoSQL适合存储非结构化数据,如发微博、文章、评论等。一方面,这些数据通常是海量的,增长的速度难以预期,NoSQL数据库通常可以存储这些无限增长的数据。另一方面,这些数据类型比较复杂,可能同时包括文字、图片、音频、视频等,使用SQL无法直接存储,只能借助NoSQL。
  • 第二,储存方式不同。

数据类型不同,造成存储的方式也不同:

  1. SQL数据存在特定结构的表中,而NoSQL则更加灵活和可扩展,存储方式可以是JSON文档或者其他方式。比如,储存用户账号、密码、性别、出生日期,使用SQL存储的数据表如下。
image-20230825145924837
  1. NoSQL存储方式比较灵活,比如使用类JSON文件存储上表中的个人信息。

image-20230825150015540

SQL和NoSQL存储的数据类型、存储方式有较大不同,在某种程度上是互补关系,因此许多大型互联网项目都会采用SQL+NoSQL的组合存储方案。

服务端是干啥的?

  • 服务端是与前端对应的概念。前端包括Web网页、Android客户端、iOS客户端等,负责与用户交互,服务端则为前端提供支持。

​ 比如,用户注册登录的时候,前端会显示对话框,用户输入账号、密码之后,数据会被传递到服务端,由服务端实现账号、密码的验证。再比如,用户使用新闻客户端查看新闻的时候,手机APP显示新闻列表,每条新闻还有对应的标题、正文、图片,这些数据都存储在服务器上,手机APP从服务端获取这些数据并显示在手机屏幕上。

  • 服务器端的开发通常使用Java、PHP、Python语言,数据库通常使用MySQL、Oracle数据库。
image-20230825150132421

更具体地,服务端实现下列功能。

第一,储存和传递信息。

数据存储在服务器中,当我们访问网页时,服务器可以返回HTML网页数据,也可以返回PDF、图片、视频等类型的文件。服务器同样可以实现数据转发,比如,我们使用的微信、QQ等,发送的消息都是先传递到腾讯的服务器中,接收方再从服务器中接收。

将数据放在服务器中,可以实现客户端之间的切换,比如用户使用浏览器看电影时,服务器会存储播放记录,当用户切换到手机端观看时,可以接着看。

第二,控制访问内容。

服务器允许站点限制对用户的访问,并仅提供允许用户查看的信息,这就保证了数据的安全。除此之外,将数据集中存放,比分开放在不同的地方,维护起来更简单,也更能避免出现数据泄露等风险。

第三,数据分析。

服务器还可以对存储的数据进行分析,比如个性推荐,服务器会收集用户搜索、购买、点击、停留时间等数据,这些数据都存储在数据库中,服务端的软件可以实现数据挖掘、个性推荐。

常见的服务器架构

(1)最简单的服务器架构
image-20230825150353344

最初,服务器的架构非常简单,应用程序、数据库、文件等所有的资源都在一台服务器上。比如使用Linux作为操作系统、Apache作为服务器软件、MySQL作为数据库、PHP作为服务端编程语言,这个组合被称为LAMP。简单、成本低,可以满足日常的需求,个人网站和小公司网站通常就使用这种服务器架构,但是对于更大的公司,这种方式就不能满足对速度、存储容量的需求了。

(2)应用服务和数据服务分离
image-20230825150439334

随着系统访问量的增加,服务器的带宽和响应速度成为系统的瓶颈,特别是访问图片、视频等较大的文件时,下载速度会特别慢。

为了提高相应速度,通常会将应用程序、数据库、文件分别放置在不同的服务器中,提供处理能力,即使用应用服务器、文件服务器、数据服务器,分别实现相应的功能。

(3)使用缓存改善性能
image-20230825150538732

从数据库中读取数据要花费较长的时间,为了提高响应速度,会将一些经常访问的内容拿出来,放在缓存中,提高响应速度。比如,微博热搜的访问量非常大,通常都有几千万甚至上亿的访问量,如果把热搜数据保存在数据库中,每次都需要从数据库中读取,会花费大量的时间,但是如果把热搜的数据直接保存在缓存中,就不需要每次都从数据库读取,响应速度会大大提高。有时候,为了提高缓存的容量,还会建一个缓存服务器。

(4)使用应用服务器集群和分布式数据库
image-20230825150626491

​ 随着用户、数据量的进一步增加,原有的系统已经不能满足响应速度和存储容量需求,服务器集群和分布式数据库应运而生。

​ 服务器集群主要解决服务器响应速度问题。举个例子,有1万个用户同时访问服务器,应用服务器的访问量只有1万,服务器可以实现在短时间内响应。但如果有1000万个用户同时访问服务器,单个应用服务器端服务器的访问量就有1000万,此时系统根本无法响应,就需要多个服务器同时工作,比如有1000个服务器,平均每台服务器只有1万个用户。

​ 为了分配访问流量,通常还需要负载均衡。比如1000万个用户,1000个服务器,如果没有负载均衡,在1000万个用户可能会访问1000个服务器中的某些服务器,造成局部过载,添加了负载均衡,可以是1000万个用户较为均匀分配在这1000台服务中。

​ 单个数据库服务器、文件服务器无法满足系统对存储容量和响应速度的要求,同样要使用多个数据服务器和文件服务器,也就是采用分布式数据库和分布式文件系统,据统计,Google的数据中心有7万台服务器同时工作!

服务端与客户端的数据交互

​ 服务端与客户端通过网络进行数据传输,那又是如何传输数据的呢?比如用户使用账号、密码登录,但这些数据并不能直接传递,而是需要编码之后才能传递,否则在传输的过程中很容易出现错误,密码等敏感信息通常还会加密。

常见的有两种编码方式,分别是XML编码和JSON编码。

  • 扩展标记语言 (Extensible Markup Language, XML) ,用于标记数据使其具有结构性,是一种允许用户对自己的标记语言进行定义的源语言。 XML格式统一,跨平台和语言,早已成为业界公认的标准。概念有些拗口,我们举个例子,比如中国部分省市。
image-20230825150740497

使用XML表示这些数据。

image-20230825150821076

  • JSON(JavaScript Object Notation)一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性,可在不同平台之间进行数据交换,使用JSON表示上面的表格:

    image-20230825150931689

从编码效率上看,XML包含很多重复的标记字符,长度也要长很多,相比之下JSON要短不少,因此JSON的通信效率更高。因为上面的这些原因,JSON的使用范围比XML使用范围要更广。

标签:存储,数据库,用户,服务器,数据,服务端
From: https://www.cnblogs.com/DQ-MINE/p/17676818.html

相关文章

  • [达梦]达梦数据库查看锁以及解锁问题
    [达梦]达梦数据库查看锁以及解锁问题1、查看锁为了方便用户查看当前系统中锁的状态,DM数据库专门提供了一个V$LOCK动态视图。通过该视图,用户可以查看到系统当前所有锁的详细信息,如锁的内存地址、所属事务ID、锁类型、锁模式等。用户可以通过执行如下语句查看锁信息:SELECT......
  • MYSQL数据库 索引、事务
    索引定义:索引是对数据库表中一列或多列的值进行排序的一种结构(类似书的目录)。MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度索引的优点:通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。可以大大加快数据的检索速度,这也是创建索引......
  • 1数据库模式
    数据库分三级模式外模式:用户试图应用程序(外模式与概念模式映射),数据库展示内容,用户视图概念模式:基本表,逻辑模式,核心,外模式数据是从概念模式来的内模式:物理存储文件(基本表存在内模式:概念模式与内模式映射) 关系有3中类型基本关系查询表试图表:从基本表和其他视图导出来的表,虚......
  • LightDB数据库支持datetime类型
    在MySQL中datetime存储包含日期和时间的值。当从datetime列查询数据时,MySQL会以以下格式显示datetime值:YYYY-MM-DDHH:MM:SS。默认情况下,datetime的值范围为1000-01-0100:00:00至9999-12-3123:59:59。当前在LightDB数据库(包括LightDB-X和LightDB-A)已经支持了datetime类型,其实......
  • 数据库的基本操作
    1.数据库的操作1.打开数据库-uroot:root为账号-p123456:123456为密码-h127.0.0.1:为地址mysql-uroot-p123456-h127.0.0.12.退出数据库exit\qquit3.注释符#/***/--4.数据库的增删改查增:createdatabasemydata;删:dropdatabasemydata;改:alterdata......
  • 智慧养老系统健康监护系统服务端程序设计-计算机毕业设计源码+LW文档
    一、研究的背景意义当前,随着我国老龄化程度加急,各地纷纷构建高品质的养老院来适应城市的发展,养老院品质的上升并不等于养老院服务质量的上升,这就对养老院管理提出更高的要求。在传统的养老院管理中,许多工作都是依靠人力去解决。比如老人管理、水电费管理需要通过工人进行记录,往往......
  • fastadmin数据库改动后手工修改相关文件
    在项目开发过程中了,或二次开发时,项目的MVC文件已经做了大量的修改,不能直接使用后台的一键生成CURD来重新生成相关的文件了。需要我们手工去改相关的文件了。比如:数据库状态字段的值做了修改,去掉了其中一项。1、控制器->C检查关联查询/数据限制有没有配置,这个涉及关联数据能不能......
  • 现在的数据库的设计是越来越霸道了
    对现在数据库的设计方式慢慢的理解了,尤其是MySQL这样的容器化数据库在很多应用场景被应用后,某些互联网场景是应用的是得心应手,而到了一些传统行业MySQL并不是一个好的选择开始,理解了其他新老数据库都开始了霸道的设计,数据库的风向标变了。从老说起,商业看Oracle ,SQLServer,......
  • 力扣数据库mysql 简单题
    1.组合两张表表: Person+-------------+---------+|列名|类型|+-------------+---------+|PersonId|int||FirstName|varchar||LastName|varchar|+-------------+---------+表: Address+-------------+---------+|列名......
  • springboot的管理系统连接虚拟机数据库
    1、在配置文件里面进行更改原来的localhost更改为:虚拟机的IP地址:3306用户名密码更改为:Linux系统MYSQL的帐号密码2、有时因为权限不够,就需要进行权限的授予GRANTALLPRIVILEGESON*.*TO'root'@'%'IDENTIFIEDBY'wingkin45';然后就可能会出现这样的问题:我们可能需......