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

数据库系统概论

文章目录

  • 前言
  • 基础篇:1-5章
  • 第 1 章 绪论
    • 1.1 数据库系统概述
    • 1.2 数据模型
    • 1.3 数据库系统的结构
    • 1.4 数据库系统的组成
    • 1.5 小结
  • 第 2 章 关系数据库
    • 1.关系模型
      • 1.1 关系数据结构
      • 1.2 关系完整性约束
        • 实体完整性、参照完整性、用户定义完整性
    • 2.关系代数
      • 8种关系代数运算符
        • 并 ∪
        • 差 -
        • 交 ∩
        • 笛卡尔积 ×
        • 选择 σ
        • 投影 Π
        • 连接 ⋈
        • 除 ÷
    • 3.关系演算
      • 元组关系演算语言ALPHA、域关系演算语言QBE
  • 第 3 章 关系数据库标准语言SQL
    • 1.数据定义
    • 2.数据查询
      • SELECT
      • WHRER
    • 3.数据更新
      • 插入数据 INSERT
      • 修改/更新 UPDATE
      • 删除数据 DELETE
  • 第 4 章 数据库安全性
    • 4.1 数据库安全性概述
    • 4.2 数据库安全性控制
      • 授权GRANT、收回权限 REVOKE
      • 数据库角色 ROLE
      • 存取控制
        • 自主存取控制 DAC
        • 强制存取控制 MAC
    • 4.3 视图机制
    • 4.4 审计
      • AUDIT 审计
      • NOAUDIT 取消审计
    • 4.5 数据加密
  • 第 5 章 数据库完整性
    • 断言
    • 触发器
  • 高级篇:6-8章
  • 第 6 章 关系数据理论
    • 函数依赖
    • 范式
      • 第一范式:1NF
      • 第二范式:2NF
      • 第三范式:3NF
      • BC范式
    • 闭包 F^+^
  • 第 7 章 数据库设计
      • 小结
  • 第8章 数据库编程
    • 1.嵌入式SQL
      • 游标
    • 2.过程化SQL
    • 3.ODBC
  • 第9章 关系查询处理和查询优化
    • 查询处理过程
    • 查询优化
  • 事务处理(transaction processing)技术 10-11章
  • 第10章 数据库恢复技术
    • 1.事务(transaction)
    • 2.事务的ACID特性(ACID properties)
    • 3.故障的种类
    • 4.恢复的实现技术
        • (1)数据转储 (backup)
        • (2)登记日志文件 (logging)
    • 5.恢复策略
    • 6.具有检查点的恢复技术
    • 7.数据库镜像 (mirror)
  • 第11章 并发控制技术
    • 1.并发控制概述
      • 1.并发操作可能带来的3种数据不一致
      • 2.并发控制的主要技术
    • 2.封锁
    • 3.封锁协议
    • 4.活锁和死锁
    • 5.并发调度的可串行性
    • 6.两段锁协议
    • 7.封锁的粒度
      • 多粒度封锁
      • 意向锁
  • 新技术篇
  • 第13章 数据库技术发展概述
  • 第14章 大数据管理
  • 第15章 内存数据库系统

前言

本笔记主要来源于王珊老师的课程:https://www.bilibili.com/video/BV13J411J7Vu/?p=1&vd_source=887851cb00540298d60639080f3a1241,
及一位学霸同学的笔记。
我个人的笔记就尽量精简,只记录最为重要的部分。详细可跳转查询学霸的笔记。知识,最好记在脑子里而不是外在的纸质或电子笔记上。


基础篇:1-5章

第 1 章 绪论

1.1 数据库系统概述

1.四个概念:数据、数据库、数据库管理系统、数据库系统
2.三大系统:操作系统、数据库系统、编译系统

在这里插入图片描述


1.2 数据模型


1.3 数据库系统的结构


1.4 数据库系统的组成


1.5 小结

在这里插入图片描述



第 2 章 关系数据库

关系数据库,就是关系构成的集合。

1.关系模型

1.1 关系数据结构

1.笛卡尔积
A={a,b},B={0,1,2},则笛卡尔积A×B={a,0} {a,1} {a,2} {b,0} {b,1} {b,2}

2.元组

3.码

4.关系模式:R(U,D,DOM,F)


1.2 关系完整性约束

实体完整性、参照完整性、用户定义完整性

关系的两个不变性:实体完整性、参照完整性


2.关系代数

8种关系代数运算符

并 ∪

差 -

交 ∩

笛卡尔积 ×

选择 σ

投影 Π

连接 ⋈

除 ÷



3.关系演算

元组关系演算语言ALPHA、域关系演算语言QBE



第 3 章 关系数据库标准语言SQL

1.数据定义

2.数据查询

SELECT 内容
FROM 表名
WHERE 条件


GROUP BY
HAVING


ORDER BY


在这里插入图片描述


SELECT

并操作:UNION
交操作:INTERSECT
差操作:EXCEPT
去重:DISTINCT


WHRER

在这里插入图片描述
2.确定范围:BETWEEN (下限) AND (上限) 、NOT BETWEEN (下限) AND (上限)

4.字符匹配:LIKE
(1)通配符
%:任意长度
_:一个字符

(2).转义字符:ESCAPE


举例:查询DB_Design课程的课程号和学分

SELECT Cno,Credit
FROM Course
WHERE Cname LIKE 'DB\_Design' ESCAPE'\';



3.数据更新

插入数据 INSERT

INSERT
INTO <表名>(属性)
VALUES (属性值)

修改/更新 UPDATE

UPDATE <表名>
SET 列名=WHERE 条件

删除数据 DELETE

DELETE
FROM <表名>
WHERE 条件



第 4 章 数据库安全性

4.1 数据库安全性概述

1.数据库的不安全因素
①非授权用户对数据库的恶意存取和破坏
②数据库中重要或敏感的数据被泄露
③安全环境的脆弱性

2.安全标准简介
①TCSEC标准
②CC标准


4.2 数据库安全性控制

授权GRANT、收回权限 REVOKE

1.GRANT

GRANT 权限
ON 对象类型 对象名
TO 用户名

2.REVOKE

REVOKE 权限
ON 对象类型 对象名
FROM 用户 [CASCADE|RESTRICT]

CASCADE:级联回收
RESTRICT:受限回收


数据库角色 ROLE

1.角色的创建

CREATE ROLE 角色名

2.给角色授权

GRANT 权限
ON 对象类型 对象名
TO 角色

3.将一个角色授予其他的角色或用户

GRANT 角色
TO 
[WITH ADMIN OPTION]

4.角色权限的收回

REVOKE 权限
ON 对象类型 对象名
FROM 角色

5.角色权限的增加

GRANT 要增加的权限名
ON 对象类型 对象名
TO 角色名

6.角色权限的减少

REVOKE 要减少的权限名
ON 对象类型 对象名
FROM 角色名

存取控制

自主存取控制 DAC

强制存取控制 MAC


4.3 视图机制


4.4 审计

AUDIT 审计

AUDIT 权限
ON 对象名

NOAUDIT 取消审计

NOAUDIT 权限
ON 对象名

4.5 数据加密

明文(plain text)经加密算法变成密文(cipher text)

1.存储加密
①透明加密
②非透明加密

2.传输加密
①链路加密
②端到端加密


第 5 章 数据库完整性

1.数据的完整性是指数据的正确性相容性
在这里插入图片描述

断言

触发器



高级篇:6-8章

第 6 章 关系数据理论

函数依赖

数据依赖:①函数依赖 ②多值依赖 ③连接依赖


函数依赖的确定:根据语义


1.函数依赖(确定)
2.非平凡的函数依赖
平凡的函数依赖
3.完全函数依赖
部分函数依赖
4.传递函数依赖



1.候选码:
2.超码:
3.主码:
4.主属性:包含在任何一个候选码中的属性
5.全码:



范式

第一范式:1NF

第二范式:2NF

第三范式:3NF

BC范式



闭包 F+



第 7 章 数据库设计

在这里插入图片描述

在这里插入图片描述

小结



第8章 数据库编程

突破SQL语言局限性的三种技术方案:
1.利用高级语言的表达能力:嵌入式SQL
2.扩展SQL语言对于过程控制的表达能力:过程化SQL
3.在一个更大的视野上,将数据库看做是一类数据源:ODBC编程


1.嵌入式SQL

利用高级语言的表达能力:嵌入式SQL

EXEC SQL <SQL语句>

游标

游标是数据库系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果。
每个游标区都有一个名字,也可以理解为该数据区的指针可以用SQL语句逐一从游标中(指针所指示的位置)获取记录并赋给主变量,交由主语言进一步处理。


2.过程化SQL


3.ODBC



第9章 关系查询处理和查询优化

查询处理过程

1.查询分析
2.查询检查
3.查询优化
4.查询执行

查询优化

1.代数优化:启发式代数优化
2.物理优化:①基于规则的存取路径优化 ②基于代价的优化



事务处理(transaction processing)技术 10-11章

事务是一系列的数据库操作,是数据库应用程序的基本逻辑单元。事务处理技术主要包括数据库恢复技术和并发控制技术。

第10章 数据库恢复技术

1.事务(transaction)

1.定义:事务是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。

2.事务的ACID特性(ACID properties)

原子性 (Atomicity)
一致性 (Consistency)
隔离性 (Isolation)
持续性 (Durability) / 永久性(Permanence)

3.故障的种类

①事务内部故障
②系统故障
③介质故障
④计算机病毒

4.恢复的实现技术

在这里插入图片描述

(1)数据转储 (backup)

在这里插入图片描述

(2)登记日志文件 (logging)

①日志文件的格式和内容
②日志文件的作用
③登记日志文件

5.恢复策略

(1)事务故障的恢复:UNDO
(2)系统故障的恢复:UNDO+REDO
(3)介质故障的恢复:重装后援副本+REDO

6.具有检查点的恢复技术

在这里插入图片描述
在这里插入图片描述
T2从检查点开始REDO就行,不必全部重做。

7.数据库镜像 (mirror)

频繁复制数据导致系统效率低,一般只镜像关键数据日志文件



第11章 并发控制技术

1.串行执行 (单处理机)
2.交叉并发执行 (单处理机),提高了系统资源的利用率。
3.同时并发执行 (多处理机)

1.并发控制概述

1.并发操作可能带来的3种数据不一致

(1)丢失修改 (lost update) (修改-修改 冲突)
(2)不可重复读 (non-repeatable read) (读-更新 冲突)
①读-修改
②读-插入
③读-删除 (②③称为 幻影现象)
(3)读“脏”数据 (dirty read) (修改-读 冲突)

记号:
R(x):读数据x
W(x):写数据x


2.并发控制的主要技术

(1)封锁 (locking)
(2)时间戳 (timestamp)
(3)乐观控制法 (optimistic scheduler)
(4)多版本并发控制 (multi-version concurrency control,MVCC)


2.封锁

1.封锁的定义:对数据对象进行加锁,在其释放锁之前,其他事务不能更新此数据对象。

2.锁的类型
(1)排他锁:X锁 (exclusive locks)、写锁
若事务T对数据对象A加X锁,则只允许T读取和修改A,其他任何事务都不能再对A加任何类型的锁,直到T释放A上的锁为止。

(2)共享锁:S锁 (share locks)、读锁
若事务T对数据对象A加上S锁,则事务T可以读A但不能修改A,其他事务只能再对A加S锁,而不能加X锁,直至T释放A上的S锁为止。

3.封锁类型的相容矩阵
在这里插入图片描述


3.封锁协议

1.封锁协议的定义:何时申请锁、持锁时间、何时释放的约定规则。

2.封锁协议的类型
(1)一级封锁协议
①一级封锁协议的定义:事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放。事务结束包括 正常结束(COMMIT)、非正常结束(ROLLBACK)。
②功能:一级封锁协议可防止①丢失修改,并保证事务T是可恢复的。但不能防止 不可重复读读脏数据

(2)二级封锁协议
①二级封锁协议的定义:在一级封锁协议的基础上,增加事务T在读取数据R之前必须先对其加S锁,读完后立即释放S锁。(一级封锁协议 + 短读锁)
②功能:二级封锁协议可防止①丢失修改②读脏数据,但由于加的读锁是短锁,不能防止不可重复读

(3)三级封锁协议
①定义:一级封锁协议加事务T在读取数据R之前必须先对其加S锁,直到事务结束才释放。(一级封锁协议 + 长读锁)
②功能:可防止丢失修改、不可重复读、读脏数据

在这里插入图片描述
在这里插入图片描述


4.活锁和死锁

1.活锁
解决活锁的方法:先来先服务(FCFS)

2.死锁
(1)死锁预防
一次封锁法
i.定义:要求每个事务必须一次将所有要使用的数据全部加锁,否则就不能继续执行。
ii.缺点:1)过早加锁,降低系统并发度,降低了系统的效率 2)难以确定所有要加锁的对象

顺序封锁法
i.定义:预先对数据对象规定一个封锁顺序,所有事务都按这个顺序实施封锁。
ii.缺点:1)维护成本高 2)难以实现


(2)死锁的诊断和解除
超时法
1)定义:如果一个事务的等待时间超过了规定的时限,就认为发生了死锁。
2)优点:实现简单
缺点:i.可能误判死锁 ii.时限若设置得过长,死锁发生后不能及时发现

等待图法
1)死锁诊断:等待图中出现了回路,则说明产生了死锁。

(b)图中,T1等待T2,T2等待T3,T3等待T2和T4,T4等待T1。A→B意思为A等待B释放锁。
在这里插入图片描述

  1. 死锁解除
    撤销一个代价最小的事务,让破除等待环

5.并发调度的可串行性

1.串行调度:串行地调度
2.可串行性调度:执行效果和串行调度相同

3.冲突操作:读-写冲突、写-写冲突(对同一个数据对象进行操作,至少有一个写,才冲突)。读-读不冲突。
4.冲突可串行化的调度
(1)定义:一个调度Sc在保证冲突操作的次序不变的情况下,通过交换两个事务不冲突操作的次序得到另一个调度Sc’,如果Sc’是串行的,称调度Sc为冲突可串行化的调度。
(2)冲突可串行化调度→充分\xrightarrow{充分}充分可串行化调度


6.两段锁协议

1.两段锁:
(1)第一阶段,获得封锁 (扩展阶段,只获得锁)
(2)第二阶段,释放封锁 (收缩阶段,只释放锁)

2.遵守两段锁协议→充分\xrightarrow{充分}充分可串行化调度

3.遵守两段锁协议不能保证防止死锁,但一次封锁法遵守两段锁协议。

4.两段锁协议与三级封锁协议
两类不同目的的协议。
①两段锁协议:保证并发调度的正确性
②三级封锁协议:在不同程度上保证数据一致性
遵守三级封锁协议 → 必然遵守两段锁协议,→ 必然是可串行化调度。


7.封锁的粒度

1.定义:封锁对象的大小称为封锁粒度。封锁对象可以是逻辑单元,也可以是物理单元。

2.封锁力度与系统并发度和并发控制的开销密切相关:
①封锁的粒度越大,数据库所能够封锁的数据单元越少,并发度越小,系统开销越小。
②封锁的粒度越小,并发度越高,系统开销越大。


多粒度封锁

1.定义:在一个系统中支持对多种封锁粒度提供不同的事务选择

2.多粒度树:根结点是整个数据库,表示最大的数据粒度。叶结点表示最小的数据粒度。有n层就是n级粒度树

3.显式封锁:直接加到数据对象上的锁

4.隐式封锁:因上级结点加了(显式)锁,而使得该数据对象加了(隐式)锁


意向锁

1.定义:若要对任一结点加锁,必须先对它的上层结点加意向锁。

2.分类
(1)IS锁
若要对某结点加S锁,则要先从其根结点至父结点依次加IS锁,最后才能对该结点加S锁。

(2)IX锁
若要对某结点加X锁,则要先从其根结点至父结点依次加IX锁,最后才能对该结点加X锁。

(3)SIX锁
想读一个数据对象,并更新它的后代结点,加SIX锁 (SIX = S + IX,所有后代都加隐式S锁,某些后代加X锁)。
在这里插入图片描述


(4)加入3种意向锁后的相容矩阵,沿对角线对称
在这里插入图片描述


(5)锁的强度
1.锁的强度:它对其他锁的排斥程度。依次为 ①X②SIX③S /IX ④IS
2.一个事务在申请封锁时以强锁代替弱锁是安全的,以弱锁代替强锁是不安全的。

(6)含有意向锁的多粒度树
①申请锁时应该自上而下
②释放锁时应该自下而上



新技术篇

第13章 数据库技术发展概述

1.第一代数据库系统:
在这里插入图片描述

第二代数据库系统:
在这里插入图片描述

第三代数据库系统:
One Size Does Not Fit All
按照应用需求与系统功能分,可以有各种不同类型的系统


第14章 大数据管理


第15章 内存数据库系统

1.定义:使用内存作为常规数据存储设备的数据库系统,简称为IMDB(In-MemoryDatabase)或MMDB(Main-Memory Database)

相关文章:

数据库系统概论

文章目录前言基础篇&#xff1a;1-5章第 1 章 绪论1.1 数据库系统概述1.2 数据模型1.3 数据库系统的结构1.4 数据库系统的组成1.5 小结第 2 章 关系数据库1.关系模型1.1 关系数据结构1.2 关系完整性约束实体完整性、参照完整性、用户定义完整性2.关系代数8种关系代数运算符并 ∪…...

32位处理器AM6528BACDXEA、AM6548BACDXEAF基于Arm Cortex-A53内核【工业4.0嵌入式产品应用】

AM6528BACDXEA、AM6548BACDXEAF 处理器是专为满足工业4.0嵌入式产品对处理性能的复杂需求而设计的Arm应用处理器。AM654x和AM652x器件将四个或两个Arm Cortex-A53内核与一个双Arm Cortex-R5F MCU子系统结合在一起。这些包含的功能旨在帮助客户实现终端产品的功能安全目标。它还…...

多图片怎么转换成PDF?这招教你轻松转换

多图片怎么转换成PDF&#xff1f;我们经常会传输图片文件给同事或者朋友&#xff0c;但是多张图片的传输比较麻烦&#xff0c;有的时候传输比较慢&#xff0c;而且也不便于查看&#xff0c;所以我们就可以将需要传输的多张图片转换成一个PDF文件&#xff0c;这样查看文件时就可…...

kali双网卡

先单独开启一个网卡&#xff0c;配置/etc/network/interfaces 修改为如下配置 This file describes the network interfaces available on your system and how to activate them. For more information, see interfaces(5). source /etc/network/interfaces.d/* The loopb…...

【wed前端初级课程】第一章 什么是HTML

什么是WEB前端&#xff1f; 简单来说就是网页&#xff0c;只是这个网页它是由多种技术参与制作的&#xff0c;用来向用户展示的页面。 HTML(超文本标签语言)&#xff1a;它决定了网页的结构。 CSS&#xff1a;网页的装饰器。 JavaScript&#xff1a;JavaScrip最初是因为校验…...

sd卡格式化后数据恢复怎么操作

有时候我们需要清空SD卡数据文件&#xff0c;有时候则是因为需要修复SD卡所以需要格式化&#xff0c;但是却被提示无法格式化SD卡。这种情况往往是由于平时SD卡使用时的一些不良习惯或是SD卡中病毒&#xff0c;病毒在运行SD卡中的软件所造成的。那么sd卡格式化后数据恢复怎么操…...

论文阅读笔记|大规模多标签文本分类

多标签文本分类&#xff08;Extreme Multi Label Classification, MLTC&#xff09;是自然语言处理领域中一个十分重要的任务&#xff0c;其旨在从一个给定的标签集合中选取出与文本相关的若干个标签。MLTC可以广泛应用于网页标注&#xff0c;话题识别和情感分析等场景。大规模…...

国际化翻译navigator.language与语种对照表

代码(navigator.language) 语种 字段名 "zh-CN", 中文 Chinese "zh-SG" 马新简体 Chinese_SG "zh-TW","zh-HK", 繁体中文 Chinese_TW "en", "en-US"&#xff08;美国&#xff09;, "en-EG"…...

Matlab进阶绘图第6期—雷达图/蜘蛛图/星图

雷达图&#xff08;Radar Chart&#xff09;&#xff0c;又称星图、蜘蛛图、蜘蛛网图、网络图、Kiviat图等&#xff0c;是一种以从同一点开始的轴上表示的三个以上变量的二维图表的形式&#xff0c;来显示多变量数据的图形方法。 雷达图可以直观地对多维数据集目标对象的性能、…...

Javascript的ES6 class写法和ES5闭包写法性能对比

看到很多闭包写法的函数, 一直怀疑它对性能是否有影响. 还有就是备受推崇的React Hooks函数式写法中出现大量的闭包和临时函数, 我很担心这样会影响性能. 于是, 做了一个实验来做对比. 这个实验很简单, 用md5计算一百万次. 计算过程将结果再放回参数, 这样避免结果没被引用被…...

探秘MySQL——全面了解索引、索引优化规则

文章目录0.什么是索引1.常用索引分类逻辑维度底层数据结构维度物理维度&#xff08;InnoDB&#xff09;2.为什么底层是B树平衡二叉查找树红黑树B树&#xff08;多叉&#xff09;B树&#xff08;多叉&#xff09;3.MySQL索引优化SQL性能分析之explainQ.MySQL如何查看查询是否用到…...

战斗力最强排行榜:10-30人团队任务管理工具

工欲善其事&#xff0c;必先利其器。在高效的任务执行过程中&#xff0c;选择灵活轻便的项目管理工具来提升工作效率、适应快速多变的发展诉求&#xff0c;对团队来说&#xff0c;至关重要。但是如果团队不大&#xff0c;企业对这块的预算又有限&#xff0c;大型的团队任务管理…...

2023-03-09干活小计

强化学习&#xff1a; 强化学习用智能体&#xff08;agent&#xff09;这个概念来表示做决策的机器。 感知、决策和奖励 感知。智能体在…...

基数排序算法

目录&#xff1a;什么是基数排序&#xff1f;基本原理核心思想实现逻辑代码实现复杂度分析总结什么是基数排序&#xff1f; 基数排序&#xff1a;基数排序&#xff08;Radix sort&#xff09;是一种非比较型整数排序算法&#xff0c; 基本思想主要是通过关键字间的比较和移动记…...

项目实战典型案例24——xxljob控制台不打印日志排查

xxljob控制台不打印日志排查一&#xff1a;背景介绍问题截图问题解读二&#xff1a;思路&方案三&#xff1a;过程四&#xff1a;总结一&#xff1a;背景介绍 本篇博客是对xxljob控制台不打印日志排查进行的总结和进行的改进。 目的是将经历转变为自己的经验。通过博客的方…...

旋转框目标检测mmrotate v1.0.0rc1 之RTMDet训练DOTA的官方问题解析整理(四)

关于rotated_rtmdet_l-coco_pretrain-3x-dota_ms.py配置文件的batchsize和学习率设置问题&#xff1a;回答&#xff1a;如何在mmrotate中绘制特征图问题&#xff1a;回答&#xff1a;你好AllieLan&#xff0c;您可以尝试使用https://github.com/open-mmlab/mmyolo/blob/main/de…...

4个顶级的华为/小米/OPPO/Vivo手机屏幕解锁工具软件

有好几次用户发现自己被锁定在他们的华为/小米/OPPO/Vivo设备之外&#xff0c;我们知道这可能是一种非常可怕的体验。在这种情况下&#xff0c;找到安卓手机解锁软件&#xff0c;重新获得手机中重要数据和文件的访问权限。看看这篇文章&#xff0c;因为我们将与您分享什么是解锁…...

华为OD机试题 - 和最大子矩阵(JavaScript)| 机考必刷

更多题库,搜索引擎搜 梦想橡皮擦华为OD 👑👑👑 更多华为OD题库,搜 梦想橡皮擦 华为OD 👑👑👑 更多华为机考题库,搜 梦想橡皮擦华为OD 👑👑👑 华为OD机试题 最近更新的博客使用说明本篇题解:和最大子矩阵题目输入输出示例一输入输出说明Code思路版权说明华…...

企业电子招标采购系统源码之项目说明和开发类型

项目说明 随着公司的快速发展&#xff0c;企业人员和经营规模不断壮大&#xff0c;公司对内部招采管理的提升提出了更高的要求。在企业里建立一个公平、公开、公正的采购环境&#xff0c;最大限度控制采购成本至关重要。符合国家电子招投标法律法规及相关规范&#xff0c;以及…...

Python高频面试题——装饰器(带大家理解装饰器的本质)

装饰器概念装饰器本质上是一个python函数&#xff0c;它可以让其他函数在不需要做任何代码变动的前提下增加额外功能&#xff0c;装饰器的返回值也是一个函数对象。它经常用于有切面需求的场景&#xff0c;比如&#xff1a;插入日志、性能测试、事务处理、缓存、权限验证等场景…...

全方位解读智能中控屏发展趋势!亚马逊Alexa语音+Matter能力成必备

随着智能家居行业逐步从碎片化的智能单品阶段&#xff0c;迈向体验更完整的全屋互联阶段&#xff0c;智能中控屏作为智能家居最佳的入口之一&#xff0c;在年轻人青睐全屋智能装修的风潮下&#xff0c;市场潜力彻底被引爆。 一、为什么是智能中控屏&#xff1f; 在智能音箱增…...

JAVA练习74-括号生成

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 3月10日练习内容 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、题目-…...

Java ORM开发 更全面的应用场景

1. 一个web系统, 想支持多种数据库, 如同时要用mysql, oracle 需要动态切换数据源? 2. 读写分离, 但读库与写库是不同的类型, 如分别是: mysql, oracle 3. 智能化自动过滤null和空字符串&#xff0c;不再需要写判断非空的代码。 4.动态/任意组合查询条件,不需要提前准备da…...

SpringBoot【基础篇】---- 基础配置

SpringBoot【基础篇】---- 基础配置1. 属性配置2. 配置文件分类3. yaml 文件4. yaml 数据读取1. 读取单一数据2. 读取全部数据3. 读取对象数据yaml 文件中的数据引用1. 属性配置 SpringBoot 通过配置文件 application.properties 就可以修改默认的配置&#xff0c;那咱们就先找…...

手机磁吸背夹散热器制冷快速方案

手机散热器是什么&#xff1f;手机散热器分为几种类型&#xff1f;手机散热的方式都有哪些&#xff1f; 因为经常玩游戏&#xff0c;手机发热得厉害&#xff0c;都可以煎鸡蛋了&#xff0c;心想着要买个东西给手机散散热&#xff0c;没想到还真的有手机散热器。 不知道手机散…...

青岛OJ(QingdaoU/OnlineJudge)部署如何直连数据库批量修改

1.postgres数据库QingdaoU/OnlineJudge用的数据库是postgreSQL&#xff0c;一个关系型数据库。默认端口是5432&#xff0c;我们下载一个navcat 15以上的版本&#xff0c;用来连数据库。2.修改docker-compose.yml文件修改docker-compose.yml&#xff0c;手动添加一个端口&#x…...

渗透测试——信息收集(详细)

信息收集&#xff1a;前言&#xff1a;信息收集是渗透测试除了授权之外的第一步&#xff0c;也是关键的一步&#xff0c;尽量多的收集目标的信息会给后续的渗透事半功倍。收集信息的思路有很多&#xff0c;例如&#xff1a;页面信息收集、域名信息收集、敏感信息收集、子域名收…...

什么是谐波

什么是谐波 目录 1. 问题的提出 2. “谐”字在中英文中的原意 2.1 “谐”字在汉语中的原义 2.2 “谐”字对应的英语词的原义 3.“harmonics(谐波)”概念是谁引入物理学中的&#xff1f; 4.“harmonics(谐波)”的数学解释 1. 问题的提出 “谐波”这个术语用于各种学科&am…...

技术报告:程序员如何开发一个商城型购物网站

前言随着互联网的快速发展&#xff0c;电商行业正成为越来越多人的选择。而作为电商行业的主要参与者之一&#xff0c;商城型购物网站的开发则成为程序员不可避免的任务之一。本文将对商城型购物网站的开发进行详细阐述&#xff0c;包括需求分析、架构设计、技术选型、前后端开…...

DPDK系列之八虚拟化virtio

一、virtio的介绍 在一篇文章中对virtio进行了简单的说明。在早期的虚拟化的过程中&#xff0c;无论是KVM还是Vmware亦或是Xen&#xff0c;每个平台想当然的是自己搞自己的IO接口。这就和现在国内的互联各个平台都是大而全一样&#xff0c;怎么可能我用你的支付接口呢&#xf…...

直播间与2位优秀创作者分享经历

我是卢松松&#xff0c;点点上面的头像&#xff0c;欢迎关注我哦&#xff01; 昨天&#xff0c;卢松松的直播间好像又被推荐给了2.9万人观看&#xff0c;讲了一个小时后直播间的人数一直攀升&#xff0c;最终冲破了2万人大关。晚些时候&#xff0c;白杨SEO也来到了我的直播间&…...

linux上快速安装 Flarum 指南

一、安装Composer Composer是PHP的依赖管理器(类似于Node.js的npm或Python的 pip ),它可用于当前流行的PHP平台,例如Drupal、Magento等。那么如何安装PHP Composer呢?本文将为大家介绍下在Debian 10上安装PHP Composer的教程。 在安装 Composer 之前,请确保您的 Debian …...

数学不好,英语不行,非本专业,可以学IT吗?

看到很多想入行IT编程的小伙伴&#xff0c;都会问一些比较类似的问题。 比如&#xff1a; 不是计算机专业的&#xff0c;可以学编程吗&#xff1f; 数学一直就不好&#xff0c;可以转行学IT吗&#xff1f; 学编程开发&#xff0c;对英语的要求会不会很高&#xff1f; 01、…...

软件测试13

Linux命令 1.pwd&#xff1a;查看当前所在的路径位置 2.ls&#xff1a;查看当前路径下有哪些文件 3.cd&#xff1a;切换路径 4.touch&#xff1a;创建普通文件&#xff0c;可以创建单文件&#xff0c;也可以创建多文件&#xff08;touch a&#xff0c;touch b c&#xff09; 5…...

React(八):引出Hook、useState、useEffect的使用详解

React&#xff08;八&#xff09;一、类组件的优劣势1.类组件的优势2.类组件的劣势&#xff08;1&#xff09;复杂组件会难以理解&#xff08;2&#xff09;复杂的class&#xff08;3&#xff09;组件复用状态很难二、Hook初体验useState1.使用Hook的计数器案例2.详解useState&…...

32*4VKL128 LQFP44超低功耗/超低工作电流/抗干扰LCD液晶段码驱动IC/LCD驱动芯片(IC) 适用于激光/红外线测距仪

产品型号&#xff1a;VKL128产品品牌&#xff1a;永嘉微电/VINKA封装形式&#xff1a;LQFP44产品年份&#xff1a;新年份原厂&#xff0c;工程服务&#xff0c;技术支持&#xff01;VKL128概述:VKL128是一个点阵式存储映射的LCD驱动器&#xff0c;可支持最大128点&#xff08;3…...

自定义控件(?/N) - 事件分发

一、外部传递到ViewGroup中Activity会通过 getWindow( ) 获取PhoneWindow对象并调用它的superDispatchTouchEvent( )&#xff0c;该方法会调用它&#xff08;PhoneWindow&#xff09;的内部类 DecorView 的 superDispatchTouchEvent( )&#xff0c;而它&#xff08;DecorView&a…...

诗一样的代码命名规范

有文化&#xff1a;落霞与孤鹜齐飞&#xff0c;秋水共长天一色&#xff1b;没文化&#xff1a;太阳落山的时候&#xff0c;看见一只鸟在水上飞&#xff1b;日常编码中&#xff0c;代码的命名是个大的学问。能快速的看懂开源软件的代码结构和意图&#xff0c;也是一项必备的能力…...

L1-010 比较大小 L1-030 一帮一 L1-015 跟奥巴马一起画方块 L1-035 情人节

本题要求将输入的任意3个整数从小到大输出。 输入格式: 输入在一行中给出3个整数&#xff0c;其间以空格分隔。 输出格式: 在一行中将3个整数从小到大输出&#xff0c;其间以“->”相连。 输入样例: 4 2 8 输出样例: 2->4->8 // 题目链接 https://pintia.cn/prob…...

打怪升级之如何发送HEX进制的数据出去

Hex数据老大难 不少人都困扰于如何将电脑中读取到的string类型的数据变成整形发送出去。一半来说&#xff0c;不论你调用的通信方式是串口的还是网络的&#xff0c;亦或是PCIE的&#xff0c;其在电脑端的实际情况都是以系统API的形式呈现的。而系统API函数提供的接口&#xff…...

国产8K摄像机拍摄回顾与画面数据反馈

本文分析两款国产8K摄像机&#xff0c;一款是全画幅&#xff0c;一款是M43画幅。一、全新国产全画幅8K B1机器参数数据汇总&#xff1a;全画幅8K 60fps&#xff0c;受益于8K全画幅的优势与大幅升级的图像处理系统&#xff0c;BOSMA 8K摄像机系统提升到新的高度。拍摄支持&#…...

C++中拷贝构造和赋值重载的注意事项以及编译器的优化处理

C中拷贝构造和赋值重载的注意事项以及编译器的优化处理前言1. 拷贝构造和赋值重载的易混淆点和注意事项1.1 易混淆点1.2 注意事项2.编译器对拷贝构造和赋值重载的优化处理前言 本文可以帮助你对下面&#xff1a; &#xff08;1&#xff09;何时调用拷贝构造何时调用赋值重载 &a…...

Java设计模式_单例模式

Java设计模式_单例模式 亦称&#xff1a; 单件模式、Singleton 意图 单例模式是一种创建型设计模式&#xff0c; 让你能够保证一个类只有一个实例&#xff0c; 并提供一个访问该实例的全局节点。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-a…...

刚刚学完CSS :display float,flex flow 傻傻分不清了

目录 描述 示例&#xff1a; CSS 中的 display CSS 中的 float CSS 中的 flex 描述 刚刚学完CSS ,导致浮动&#xff08;float&#xff09;&#xff0c;弹性布局&#xff08;display:flex&#xff09;好几个字段配置属性已经分不清了。 display float 就同层级别&#xf…...

python建立图片索引数据库,根据一段文字,找到存放在电脑上最匹配的图片

python建立图片索引数据库&#xff0c;根据一段文字&#xff0c;找到存放在电脑上最匹配的图片 作者&#xff1a;虚坏叔叔 博客&#xff1a;https://xuhss.com 早餐店不会开到晚上&#xff0c;想吃的人早就来了&#xff01;&#x1f604; 一、程序的用处 一键视频 可以根据一…...

MySQL OCP888题解048-letter N in slow query log(慢查询日志里的字母N)

文章目录1、原题1.1、英文原题1.2、中文翻译1.3、答案2、题目解析2.1、题干解析2.2、选项解析3、知识点3.1、知识点1&#xff1a;mysqldumpslow - 总结缓慢的查询日志文件4、实验4.1、实验14.1.1、实验目的4.1.2、实验前准备4.1.3、实验步骤4.1.4、实验结论5、总结1、原题 1.1…...

数据采集 - 笔记 2

1快速实现西门子S7系列PLC数据采集 快速实现西门子S7系列PLC数据采集 - 知乎 2 什么是时序数据库&#xff1f; 时序数据库&#xff08;Time Series Database&#xff09;是一种特殊类型的数据库&#xff0c;用于存储和处理时间序列数据。时间序列数据是指按时间顺序排列的数…...

电子技术——数字IC技术,逻辑电路和设计方法

电子技术——数字IC技术&#xff0c;逻辑电路和设计方法 在我们之前的学习中&#xff0c;我们学习了CMOS技术&#xff0c;然而CMOS技术并不是唯一的数字逻辑技术&#xff0c;因此&#xff0c;本节系统的介绍当今使用的数字技术和逻辑电路族。 数字IC技术和逻辑电路族 逻辑电…...

[ROS2 知识] 包依赖关系和rosdep详述

一、说明 如果你建立一个工作空间,试图将所有包的依赖项搞明白,或者期望将包的依赖项全部安装到工作空间中,您看本文是正确选择。本文将解释如何使用 rosdep 管理外部依赖项。 二、介绍rosdep 2.1 rosdep是何物? rosdep 是 ROS 的依赖管理实用程序,可以与 ROS 包和外部库…...

mysql创建索引导致死锁,数据库崩溃,完美解决方案

文章目录写在前面一、短事务场景下&#xff0c;执行DDL语句场景分析1、短事务场景下&#xff0c;执行表字段添加操作2、短事务场景下&#xff0c;执行表字段修改操作3、短事务场景下&#xff0c;执行表字段删除操作&#xff08;1&#xff09;往里添加一条数据试试4、短事务场景…...