当前位置: 首页 > news >正文

数据库系统概述选择简答概念复习

目录

一、组成数据库的三要素

二、关系数据库特点

三、三级模式、二级映像

四、视图和审计提供的安全性

审计(Auditing)

视图(Views)

五、grant、revoke

GRANT

REVOKE

六、三种完整性

实体完整性

参照完整性

自定义完整性

七、事务的特性ACDI

原子性(Atomicity)

一致性(Consistency)

持续性(Durability)

隔离性(Isolation)

八、故障的种类

事务内部的故障(Transaction Failures)

系统故障(System Failures)

介质故障(Media Failures)

计算机病毒(Computer Viruses)

九、恢复技术

1. 日志记录(Logging)

2. 检查点(Checkpoint)

3. 备份与还原

4.海量存储

5.增量存储

十、活锁与死锁

死锁(Deadlock)

活锁(Livelock)

十一、封锁(Locking)

十二、共享锁、排他锁 

共享锁(S锁,Shared Lock)

排他锁(X锁,Exclusive Lock)

十三、并发操作带来的数据不一致性体现

丢失修改(Lost Update)

不可重复读(Non-repeatable Read)

读“脏”数据(Dirty Read)


一、组成数据库的三要素

    1. 数据结构,数据结构描述数据库的组成对象以及对象之间的联系
    2. 数据操纵,数据操纵是指对数据库中的各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则。数据库主要有查询和更新(包括插入、删除、修改)两大类操作
    3. 完整性约束,完整性约束是一组完整性的规则。完整性规则是给定数据模型中的数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效和相容

二、关系数据库特点

    数据以二维表形式存储,关系数据库中的数据以表格形式存储,每个表格被称为一个“关系”。

    列和行:行列可交换,表格由列(属性或字段)和行(记录或元组)组成。每列包含了相同类型的数据,而每行则代表一个数据项。

三、三级模式、二级映像

    (1)外模式:外模式描述的是数据的局部逻辑结构,对于同一个模式,可以有任意多个外模式对于每一个外模式,数据库系统都有一个 外模式/模式映像 来定义该外模式与模式之间的对应关系

    (2)模式映像:当模式改变时(如增加新的关系、新的属性,改变属性的数据类型等),由数据库管理员对各个 外模式/模式 的映像做相应改变,可以使外模式保持不变。应用程序是依据数据的外模式编写的,因而应用程序不必修改一个数据库中只有一个模式映像,保证了数据与程序之间的逻辑独立性,简称数据的逻辑独立。

    (3)模式:模式定义了数据库全局逻辑结构与存储结构之间的对应关系,数据库只有一个模式,也只有一个内模式,所以 模式/内模式映像 是唯一的。 

    (4)内模式映像:当数据库的存储结构改变时,由数据库管理员对 模式/内模式映像 做相应改变,可以使模式保持不变,因而应用程序也不必改变,保证了数据与程序的物理独立性

四、视图和审计提供的安全性

审计(Auditing)

    审计是一个过程,用于记录和监控数据库中发生的所有操作,包括谁、何时、对哪些数据进行了何种操作。这不仅帮助确保数据的安全性和合规性,还能在发生安全事件时提供重要的信息,用于问题的调查和解决。

视图(Views)

    视图是基于SQL查询的虚拟表。它们提供了一种机制,允许用户查询特定的数据集,而无需直接访问底层的物理表。视图可以用来简化复杂的查询,限制对敏感数据的访问,并提供定制的数据表示。

五、grant、revoke

GRANT

    grant 命令用于向用户或角色授予数据库对象的访问权限。这些权限可以包括读取(SELECT)、修改(INSERT、UPDATE、DELETE)等操作权限。grant命令还可以用来授予用户执行存储过程的权限,或者赋予用户管理其他用户权限的能力。

基本语法:

GRANT 权限列表 ON 对象 TO 用户或角色 [WITH GRANT OPTION];

权限列表:希望授予的权限,如SELECT、INSERT、UPDATE等。
对象:权限将应用于的数据库对象,如表或视图。
用户或角色:将获得权限的数据库用户或角色。
WITH GRANT OPTION:(可选)允许被授权者将其所获得的权限再授权给其他用户。

例如:

GRANT SELECT, INSERT ON Employees TO UserA WITH GRANT OPTION;

这个命令给UserA授予了对Employees表的SELECT和INSERT权限,并且UserA可以把自己获得的的权限授权给其他用户。

REVOKE

    revoke 命令用于撤销之前通过GRANT命令授予的权限。如果用户或角色不再需要访问某个数据库对象,或者不应该有权限执行某些操作时,应使用REVOKE命令。

基本语法:

REVOKE 权限列表 ON 对象 FROM 用户或角色;

权限列表:希望撤销的权限。
对象:权限应用的数据库对象。
用户或角色:将失去权限的数据库用户或角色。 

示例:

REVOKE INSERT ON Employees FROM UserA;

这个命令撤销了UserA对Employees表的INSTER权限。

六、三种完整性

实体完整性

    实体完整性是关于数据库表主键的约束。它确保主键的每个值都是唯一的,且非空(即,不允许重复和空值)。这个约束保证了表中的每一行都可以被唯一地识别,从而防止了数据的不一致性。实体完整性是数据库中最基本的完整性约束之一,通常在创建表时通过定义主键来实现。

    简单来说,实体完整性通过主码实现。

参照完整性

    参照完整性,又称为外键完整性,确保了数据库中两个表之间的关系的逻辑一致性。当一个表的字段(称为外键)引用另一个表的主键时,参照完整性约束确保了外键的每个值都必须在被引用的表的主键中存在(或者是空值,如果允许的话)。这种约束防止了悬空引用和孤立记录的出现,确保了数据之间的关联性和准确性。

    简单来说,参照完整性通过外码实现。

自定义完整性

    自定义完整性,又称为域完整性或用户定义的完整性,是指根据业务规则对数据库表中的数据进行的额外限制。这些规则可以包括数据类型约束、值范围约束(例如,年龄字段必须在0到120之间)、唯一性约束(除了主键之外的其他字段的唯一性)、以及更复杂的业务逻辑约束(如复杂的校验规则)。自定义完整性约束确保了数据满足特定的业务需求和规则,从而提高了数据的质量和可用性。

    简答来说,自定义完整性通过check实现。

CREATE TABLE Persons (ID int NOT NULL,LastName varchar(255) NOT NULL,FirstName varchar(255),Age int,CHECK (Age>=18 AND Age<=65)/*CHECK约束保证Persons表中的Age列的值必须在18到65之间。*/
);CREATE TABLE Employees (EmpID int NOT NULL,Name varchar(255) NOT NULL,Salary decimal NOT NULL,CHECK (Salary > 3000)/*CHECK约束确保Employees表中的Salary列的值必须大于3000。*/
);

七、事务的特性ACDI

原子性(Atomicity)

    原子性意味着事务中的所有操作要么全部完成,要么全部不完成。如果事务中的某个操作失败,整个事务将被回滚(撤销),数据库状态回到事务开始之前的状态。这保证了事务是不可分割的单元。

一致性(Consistency)

    一致性确保事务从一个一致的状态转移到另一个一致的状态。在事务开始和完成时,数据库的完整性约束不被破坏。 

持续性(Durability)

    持续性意味着一旦事务被提交,它对数据库的修改就是永久性的,即使发生系统故障也不会丢失。数据库系统通过将事务日志记录到非易失存储介质来保证事务的持续性。

隔离性(Isolation)

    隔离性保证了并发执行的事务是彼此隔离的,事务的执行不会被其他事务的操作干扰。

八、故障的种类

事务内部的故障(Transaction Failures)

    事务内部的故障指的是事务在执行过程中遇到的问题,导致事务不能继续进行。这类故障可能是由于逻辑错误、数据不一致、违反完整性约束或资源限制(如死锁)等原因造成的。数据库管理系统通常通过事务回滚机制来处理这种故障,以确保数据的一致性和系统的稳定性。

系统故障(System Failures)

    系统故障通常指的是操作系统、硬件或软件组件的故障,这会导致正在运行的事务丢失或系统停止工作。例如,电源故障、系统崩溃或网络中断都属于系统故障。为了应对系统故障,数据库系统通常会使用日志文件和检查点(checkpoint)技术来恢复到最近一次一致的状态。

介质故障(Media Failures)

    介质故障指的是存储介质(如硬盘驱动器)的物理损坏,这可能会导致存储在介质上的数据部分或全部丢失。对于介质故障,恢复数据通常需要使用备份文件和/或磁盘镜像技术,以复制丢失的数据。

计算机病毒(Computer Viruses)

    计算机病毒是一种恶意软件,它可以复制自身并感染其他计算机文件,可能会损坏数据、窃取信息、破坏系统功能或者使系统资源消耗殆尽。

九、恢复技术

1. 日志记录(Logging)

    这是最常用的恢复技术之一。通过在事务执行过程中记录所有更改的日志,如果系统崩溃,可以使用这些日志来重做(Redo)或撤销(Undo)事务,从而恢复数据库到一致状态。日志通常包括事务的开始、每个操作(如修改数据)、以及事务的结束(提交或回滚)。

2. 检查点(Checkpoint)

    检查点是在数据库中定期设置的恢复点,用于减少恢复时间。当设置检查点时,系统会确保所有在该点之前提交的事务都已经将它们的改动写入到物理数据库中,而所有的缓存(未提交的事务)则被写入到日志。在发生故障时,系统只需要从最近的检查点开始恢复,而不是从头开始。

3. 备份与还原

    定期备份数据库是防止数据丢失的重要策略。在发生灾难性故障时,如硬盘损坏或数据中心损毁,可以使用最近的备份来恢复数据库。备份可以是完全备份、增量备份或差异备份,根据备份的频率和范围有所不同。

(海量存储和增量存储本身不直接属于恢复技术,但它们与数据恢复和数据管理密切相关,各有其作用和应用场景。)

4.海量存储

    海量存储是指能够存储和管理大规模数据集的系统或技术。随着数据量的快速增长,尤其是在大数据和云计算的背景下,对于能够有效存储、处理和检索海量数据的技术需求日益增加。海量存储系统通常需要有高效的数据组织和管理机制,包括数据压缩、分布式文件系统、数据库分片、数据索引和查询优化等技术,以支持快速的数据访问和处理。

5.增量存储

    增量存储是一种数据备份策略,只备份自上一次备份之后发生变化(新增或修改)的数据。与全量备份相比,增量备份能够节省存储空间和缩短备份时间,因为它不需要重复备份未发生变化的数据。增量存储通常用于定期备份,以减少数据丢失的风险,并提高备份效率。

十、活锁与死锁

死锁(Deadlock)

    死锁是指两个或多个进程在执行过程中,因争夺资源而造成的一种僵局。在这种情况下,每个进程都持有一些资源同时等待其他进程释放它们所需的资源。如果没有外部干预,这些进程将无法向前推进,因为它们互相等待对方释放资源,形成了一个闭环。

例如,进程A持有资源1并请求资源2,同时进程B持有资源2并请求资源1,这就形成了一个死锁。

活锁(Livelock)

    活锁与死锁类似,但区别在于处于活锁状态的进程实际上是在不断地改变状态,尝试解决冲突,但这些尝试始终无法推进整个系统的状态。简而言之,尽管进程在运行,但是系统作为一个整体却没有任何进展。

    一个典型的活锁例子是两个进程互相“礼让”,比如进程A在持有资源1的同时需要资源2,进程B持有资源2的同时需要资源1。当进程A意识到与进程B的冲突时,它释放资源1并稍后重新尝试,同时进程B也采取了相同的行为。结果是,两个进程都在不断尝试解决冲突,但都无法成功,因为它们的行为是对称的。

十一、封锁(Locking)

    封锁就是事务T在对某个数据对象操作之前先向系统发出请求,对其加锁。加锁后事务T就对该数据对象有了一定的控制,在事务T释放它的锁之前,其它的事务不能更新此数据对象。

十二、共享锁、排他锁 

共享锁(S锁,Shared Lock)

    共享锁是指当一个事务想要读取数据库中的数据时,它会在这些数据上设置共享锁。共享锁允许多个读事务同时访问同一资源,因为读操作不会改变数据,所以多个事务可以安全地同时进行读取。然而,如果一个事务对数据加了共享锁,其他事务就不能对这些数据加排他锁(即不能写入),直到所有的共享锁都被释放。
    也就是说,如果事务T对数据加了共享锁,那么所有事务(包括第一个对该数据加锁的事务)对于该数据可读不可写,而且所有事务不能对该数据加排它锁(因为加共享锁的作用就是让所有事务可读不可写,再加排他锁就破坏了共享锁的功能,无实际意义),但所有事务都可以对数据加共享锁。

排他锁(X锁,Exclusive Lock)

    排他锁是指当一个事务想要更新或删除数据库中的数据时,它会在这些数据上设置排他锁。排他锁确保没有其他事务可以同时读取或写入被锁定的数据。如果一个数据项被加上排他锁,其他任何事务都不能对其加任何类型的锁。排他锁保证了事务可以安全地更改数据,不会产生丢失修改、不可重复读或脏读等问题。注意的是加排他锁的事务可以对数据进行读取和写入,但其他事务则不行,更不能加锁。

十三、并发操作带来的数据不一致性体现

丢失修改(Lost Update)

    丢失修改发生在两个或更多的事务读取同一数据后,其中一个事务的写操作被另一个事务的写操作覆盖,导致第一个事务的更改丢失。这通常发生在没有适当锁机制或并发控制机制的情况下。

    示例:假设两个事务T1和T2同时读取了一个账户余额为100。T1将余额更新为150,而T2将余额更新为200。如果T2的更新在T1之后发生,那么T1的修改就会丢失,结果只反映了T2的更新。

不可重复读(Non-repeatable Read)

    不可重复读是指一个事务中的两次相同的查询返回了不同的结果集,这是因为另一个并发事务在两次查询间更新了数据。这种现象说明一个事务无法两次读取到同样的数据。

    示例:事务T1读取了一个账户的余额为100。在T1没有完成之前,另一个事务T2将该账户的余额更新为200并提交了事务。如果T1再次读取该账户余额,它将会读到200,与它第一次读到的100不一致。

读“脏”数据(Dirty Read)

    读“脏”数据是指一个事务读取了另一个事务未提交的数据。如果那个事务失败回滚,读到的数据将是无效的,这可能导致错误的决策和计算。

    示例:事务T1修改了一个账户余额为200,但还没有提交事务。这时,事务T2读取了这个账户的余额,结果是200。如果T1因为某些原因回滚了修改,T2读到的200就是一个“脏”数据。

十四、数据字典、数据流图

数据字典(Data Dictionary, DD)

    数据字典是关于数据库中数据的详细描述和信息的集合。它是数据库管理的一个重要组成部分,用于存储关于数据库结构的元数据,例如表格名称、列(字段)名称、数据类型、约束条件等。数据字典有助于标准化数据的定义和使用,确保数据的一致性和准确性。

主要内容包括:

数据元素的定义:如列(字段)名、数据类型、是否允许为空等。
数据结构的描述:如表格、视图的结构描述。
关系和约束:包括主键、外键、索引等信息。
使用信息:数据的使用说明和访问权限等。

    数据字典通常由数据库管理系统(DBMS)自动维护,为数据库设计者、开发者和维护者提供重要的参考信息。

数据流图(Data Flow Diagram, DFD)

    数据流图是一种图形化的工具,用于表示信息系统中数据的流动和处理过程。通过DFD,可以展示系统中各个组件之间的数据流向和数据处理的逻辑关系,帮助分析和设计系统的功能和数据处理过程。

DFD主要组成元素:

外部实体(External Entity):系统外部的数据源或目的地,例如用户或其他系统。
数据流(Data Flow):表示数据在系统中的移动方向。
处理过程(Process):数据处理的活动或功能模块。
数据存储(Data Store):系统中存储数据的地方,可以是数据库或文件。

    DFD通过不同级别的分解,帮助开发者理解系统的整体结构和细节,是系统分析和设计的重要工具。

相关文章:

数据库系统概述选择简答概念复习

目录 一、组成数据库的三要素 二、关系数据库特点 三、三级模式、二级映像 四、视图和审计提供的安全性 审计(Auditing) 视图(Views) 五、grant、revoke GRANT REVOKE 六、三种完整性 实体完整性 参照完整性 自定义完整性 七、事务的特性ACDI 原子性(Atomicity)…...

template标签

在HTML中&#xff0c;<template> 标签是一个用于封装可重用内容的非显式元素。它不直接显示在网页上&#xff0c;而是作为一个模板&#xff0c;用来定义一组HTML结构和样式&#xff0c;可以在JavaScript中实例化多次&#xff0c;动态地插入到文档的不同位置。这在创建复杂…...

WPF 程序 分布式 自动更新 登录 打包

服务器server端 core api 客户端WPF // 检查应用更新 //1、获取最新文件列表 // var files fileService.GetUpgradeFiles(); // 2、文件判断&#xff0c;新增的直接下载&#xff1b;更新的直接下载&#xff1b;删除的直接删除 // 客户端本地需要一个记录…...

视频汇聚安防综合管理平台EasyCVR支持GA/T 1400视图库标准及设备接入配置

一、概述 视频汇聚安防综合管理平台EasyCVR视频监控系统已经与公安部GA/T 1400视图库标准协议实现了对接&#xff0c;即《公安视频图像信息应用系统》。 安防监控系统EasyCVR支持采用GA/T 1400进行对接&#xff0c;可实现人脸数据使用的标准化、合规化。其采用统一接口对接雪…...

pgsql给单独数据库制定账号权限

登录到PostgreSQL: 使用psql或其他PostgreSQL客户端&#xff0c;以具有足够权限的账号&#xff08;如postgres或superuser&#xff09;登录。 2. 创建新账号: sql复制代码 CREATE USER new_user WITH PASSWORD your_secure_password; 注意&#xff1a;将your_secure_passwor…...

【Docker安装】Ubuntu系统下部署Docker环境

【Docker安装】Ubuntu系统下部署Docker环境 前言一、本次实践介绍1.1 本次实践规划1.2 本次实践简介二、检查本地环境2.1 检查操作系统版本2.2 检查内核版本2.3 更新软件源三、卸载Docker四、部署Docker环境4.1 安装Docker4.2 检查Docker版本4.3 配置Docker镜像加速4.4 启动Doc…...

Flink Kafka获取数据写入到MongoDB中 样例

简述 Apache Flink 是一个流处理和批处理的开源框架&#xff0c;它允许从各种数据源&#xff08;如 Kafka&#xff09;读取数据&#xff0c;处理数据&#xff0c;然后将数据写入到不同的目标系统&#xff08;如 MongoDB&#xff09;。以下是一个简化的流程&#xff0c;描述如何…...

Android Jetpack Compose入门教程(二)

一、列表和动画 列表和动画在应用内随处可见。在本课中&#xff0c;您将学习如何利用 Compose 轻松创建列表并添加有趣的动画效果。 1、创建消息列表 只包含一条消息的聊天略显孤单&#xff0c;因此我们将更改对话&#xff0c;使其包含多条消息。您需要创建一个可显示多条消…...

如何避免接口重复请求(axios推荐使用AbortController)

前言&#xff1a; 我们日常开发中&#xff0c;经常会遇到点击一个按钮或者进行搜索时&#xff0c;请求接口的需求。 如果我们不做优化&#xff0c;连续点击按钮或者进行搜索&#xff0c;接口会重复请求。 以axios为例&#xff0c;我们一般以以下几种方法为主&#xff1a; 1…...

算法设计与分析:网络流求解棒球赛淘汰问题C++

目录 一、实验目的 二、问题描述 三、实验要求 四、算法思想 1、明显的:win[i]+remain[i][j]<> 2、不明显的:最大流 3、操作 3.1 先读入相关信息(邻接矩阵**k),进行一遍“明显的”判断。 3.2 对剩下的“不明显的”的每个球队构建流网络(邻接表vector< ve…...

Linux Ubuntu 24.04 C语言gcc编译过程详解

下面是Hello World程序源代码文件hello.c的内容&#xff0c;我们将以它为例来说明源文件到可执行文件的形成过程&#xff0c;主要分4步&#xff1a;预处理、汇编、机器码、链接。 #include <stdio.h> int main () {printf ( "hello, world \n " );return 0; }…...

Python自动化办公篇—pandas操作Excel:读取+查看+选择+清洗+排序+筛选+函数+写入

目录 专栏导读库的介绍库的安装1、读取数据2、查看数据3、选择数据4、数据清洗5、数据排序6、数据筛选7、数据操作8、数据写入总结 专栏导读 文章名称链接Python自动化办公—pyautogui图像定位\点击功能,实现自动截取当前屏幕并检索点击(可制作为游戏点击脚本)点我进行跳转Pyt…...

数据库大作业——音乐平台数据库管理系统

W...Y的主页&#x1f60a; 代码仓库分享&#x1f495; 《数据库系统》课程设计 &#xff1a;流行音乐管理平台数据库系统&#xff08;本数据库大作业使用软件sql server、dreamweaver、power designer&#xff09; 目录 系统需求设计 数据库概念结构设计 实体分析 属性分…...

【DBA早下班系列】—— 并行SQL/慢SQL 问题该如何高效收集诊断信息

1. 前言 OceanBase论坛问答区或者提交工单支持的时候大部分时间都浪费在了诊断信息的获取交互上&#xff0c;今天我就其中大家比较头疼的SQL问题&#xff0c;给大家讲解一下如何一键收集并行SQL/慢SQL所需要的诊断信息&#xff0c;减少沟通成本&#xff0c;让大家早下班。 2. …...

用python实现多文件多文本替换功能

用python实现多文件多文本替换功能 今天修改单位项目代码时由于改变了一个数据结构名称&#xff0c;结果有几十个文件都要修改&#xff0c;一个个改实在太麻烦&#xff0c;又没有搜到比较靠谱的工具软件&#xff0c;于是干脆用python手撸了一个小工具&#xff0c;发现python在…...

【DevOps】深入探索Ubuntu操作系统:全面了解

引言 在开源软件的世界里&#xff0c;Ubuntu是一个闪耀的明星。它不仅是一个操作系统&#xff0c;更是一种社区精神、一种共享和协作的文化。Ubuntu操作系统基于强大的Linux内核&#xff0c;由世界各地的开发者共同维护和改进。在这篇博文中&#xff0c;我们将深入探索Ubuntu操…...

【Linux】—MySQL安装

文章目录 前言一、下载官方MySQL包二、下载完成后&#xff0c;通过xftp6上传到Linux服务器上三、解压MySQL安装包四、在安装目录下执行rpm安装&#xff0c;请按顺序依次执行。五、配置MySQL六、启动MySQL数据库七、退出&#xff0c;重新登录数据库 前言 本文主要介绍在Linux环境…...

【vue】form表单提交validate验证不进valid原因

目录 1. 原因 1. 原因 1.<el-form>是否写了ref“form”。2.是否有其它标签写了ref“form”。3.<el-form>中要写成:model&#xff0c;不能使用v-model。4.自定义的validate要各个路径均能返回callback()。 const validatePass (rule, value, callback) > {if (…...

如何用 Google Chrome 浏览器浏览经过 XSLT 渲染的 XML 文件

对于经过XSLT渲染的XML文件&#xff0c;本来&#xff0c;可以直接用 IE (Internet Explorer) 打开&#xff0c;就能看到渲染之后的样子&#xff0c;很方便。但是后来&#xff0c;微软把 IE 换成了 Microsoft Edge&#xff0c;按理说这是比 IE 更先进的浏览器&#xff0c;可是偏…...

Python学习笔记12:进阶篇(二),类的继承与组合

类的继承 我们在编写一系列的类的时候&#xff0c;会发现这些类很相似&#xff0c;但是又有各自的特点和行为。在编写这些类的时候&#xff0c;我们可以把相同的部分抽象成一个基类&#xff0c;然后根据其他不同的特点和行为&#xff0c;抽象出子类&#xff0c;继承这个基类。…...

npm install cnpm -g 报错4048

npm install cnpm -g 报错4048 设置淘宝镜像&#xff1a; 报错如下&#xff1a; 其他博主提供的方法都尝试了&#xff0c;比如管理员权限打开终端&#xff0c;删除.npmrc文件&#xff0c;清除缓存npm cache clean -f等都试了无效&#xff0c;最后怀疑是npm和cnpm版本不对应&…...

本地快速部署 SuperSonic

本地快速部署 SuperSonic 0. 引言1. 本地快速部署 supersonic2. 访问 supersonic3. 支持的数据库4. github 地址 0. 引言 SuperSonic融合Chat BI&#xff08;powered by LLM&#xff09;和Headless BI&#xff08;powered by 语义层&#xff09;打造新一代的BI平台。这种融合确…...

如何给vue开发的网站做seo?

最近公司有个需求&#xff0c;需要给公司的官网sqlynx做seo&#xff0c;但因为各种历史原因吧&#xff0c;原来的网站是用vue开发的。没办法&#xff0c;只能尝试尽量做一些seo&#xff0c;让网站能更好一些。 目录 1. 服务器端渲染&#xff08;SSR&#xff09; 2. 预渲染&am…...

算法训练营第六十天(延长12天添加图论) | LeetCode 647 回文子串、LeetCode 516 最长回文子序列

LeetCode 67 回文子串 思路很简单&#xff0c;每一个dp[i]等于dp[i-1]加上当前字符向前直到0各个长度字符串回文串个数即可 代码如下&#xff1a; class Solution {public boolean isValid(String s) {int l 0, r s.length() - 1;while (l < r) {if (s.charAt(l) ! s.ch…...

TikTok账号养号的流程分享

对于很多刚开始运营TikTok的新手小白来说&#xff0c;都会有一个同样的疑问&#xff0c;那就是&#xff1a;TikTok到底需不需要养号&#xff1f;这里明确告诉大家是需要养号的&#xff0c;今天就把我自己实操过的养号经验和策略总结出来&#xff0c;分享给大家。 一、什么是Ti…...

C++初学者指南第一步---6.枚举和枚举类

C初学者指南第一步—6.枚举和枚举类 文章目录 C初学者指南第一步---6.枚举和枚举类1.作用域的枚举(enum class类型&#xff09;&#xff08;C11&#xff09;2.无作用域的枚举(enum类型)3.枚举类的基础类型4.自定义枚举类映射5.和基础类型的互相转换 1.作用域的枚举(enum class类…...

【js判断机型】

var isIOS /(iPhone|iPad|iPod)/i.test(navigator.userAgent) var isiPad navigator.userAgent.match(/(iPad)/) || (navigator.platform ‘MacIntel’ && navigator.maxTouchPoints > 1) 上面这个不行的话&#xff0c;再试下这个 var isiPad (navigator.userAg…...

google chrome浏览器安装crx插件Jam

先上一张图&#xff1a; Jam是bug报告生成插件 1、在地址栏中输入chrome://extensions/&#xff0c;然后回车。 2、将下载好的crx插件&#xff0c;直接拖到里面就可以完成安装工作了。 3、测试了一下jam插件&#xff0c;发现直接没有响应。 4、点击【移除】直接可以删除插件…...

【Java面试】二十、JVM篇(上):JVM结构

文章目录 1、JVM2、程序计数器3、堆4、栈4.1 垃圾回收是否涉及栈内存4.2 栈内存分配越大越好吗4.3 方法内的局部变量是否线程安全吗4.4 栈内存溢出的情况4.5 堆和栈的区别是什么 5、方法区5.1 常量池5.2 运行时常量池 6、直接内存 1、JVM Java源码编译成class字节码后&#xf…...

【Python教程】压缩PDF文件大小

压缩 PDF 文件能有效减小文件大小并提高文件传输的效率&#xff0c;同时还能节省计算机存储空间。除了使用一些专业工具对PDF文件进行压缩&#xff0c;我们还可以通过 Python 来执行该操作&#xff0c;实现自动化、批量处理PDF文件。 本文将分享一个简单有效的使用 Python 压缩…...

nginx wordpress 404/短视频营销方式有哪些

1、环境&#xff1a;redhat linux企业版4。ftp为vsftp。被限制用户名为aaa。被限制路径为/bbb。2、建用户&#xff1a;在root用户下&#xff0c;相继进行如下操作 adduser aaa //增加用户aaa&#xff0c;useraddadduser&#xff1b; userdel aaa //删除用户…...

简述网站开发的主要阶段/下载优化大师安装桌面

HTML事件 HTML事件 直接在HTML元素标签内添加事件&#xff0c;执行脚本 语法&#xff1a;<tag 事件"执行脚本"></tag>功能&#xff1a;在HTML元素上绑定事件说明&#xff1a;执行脚本可以是一个函数的调用鼠标事件 onload&#xff1a;页面加载时触发on…...

做网站还能挣钱吗/2023年6月份疫情严重吗

打开internet选项&#xff0c;按照图中指示进行设置 QT Tabbar不能使用的原因是被禁用了&#xff0c;右击启用它即可恢复到其原始模样。 转自&#xff1a;https://jingyan.baidu.com/article/5225f26b5c4326e6fa0908cd.html PS: QTTabBar是一款可以让你在Windows资源管理器中…...

珠海企业网站建站/检测网站是否安全

1. ngrok配置ssh端口转发 工具&#xff1a;小米球(ngrok二次开发版)配置过程&#xff1a; 下载几个文件 http://ngrok.ciqiuwl.cn/ ( linux64: ngrok ngrok.cfg)注意&#xff1a;下载完ngrok之后&#xff0c;如果是linux64&#xff0c;还需要执行 chmod x ngrok让ngrok成为可执…...

娄底高端网站建设/交换友情链接推广法

python中通过pip安装库文件时出现“EnvironmentError: [WinError 5] 拒绝访问”的问题及解决方案,原因,报错,已经有了,解决方法,试了 python中通过pip安装库文件时出现“EnvironmentError: [WinError 5] 拒绝访问”的问题及解决方案 易采站长站&#xff0c;站长之家为您整理了p…...

做宣传的视频网站有哪些/苏州seo关键词优化价格

要使用Uniapp来编写微信登录小程序&#xff0c;你需要按照以下步骤进行操作&#xff1a; 在微信公众平台上注册开发者账号&#xff0c;创建小程序应用&#xff0c;并获得小程序的AppID。 在Uniapp的开发环境中创建一个新项目&#xff0c;并选择微信小程序作为编译目标。 在Unia…...