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

【软考五】数据库(做题)

该文章不适合学习数据库,适合考证,遇到实际问题的,不要在这儿浪费时间。切记切记

软考之数据库

    • 一、概念数据模型(下午题常考)
    • 二、结构数据模型
      • 关系模型
        • 1、关系模型中基本术语
        • 2、关系模型中的关系完整性约束
        • 3、关系代数(重要)
            • (1)关系代数运算符
            • (2)集合运算符
            • (3)专门的关系运算符
            • (4)运算符转sql
    • 三、三级模式和两级映像
      • 1、三级模式
      • 2、两级映像
    • 四、SQL语言(重要)
      • 1、SQL语言分类
          • (1)数据定义语言(DDL)
          • (2)数据操作语言(DML)
          • (3)数据查询语言(DQL)
          • (4)内连接
          • (5)外连接
          • (6)子查询
          • (7)并交差
          • (8)数据控制语言(DDL)
          • (9)视图
          • (10)索引
    • 五、关系数据库的规范化
      • 1、函数依赖(重要)
        • (1)函数依赖分类
        • (2)属性闭包
      • 2、规范化(重要)
        • 多值依赖
        • 考点
        • 无损连接标准
    • 六、数据库设计
      • 1、数据库设计步骤
      • 2、需求分析
      • 3、概念设计
        • (1)E-R图(重要)
        • (2)概念设计
      • 4、逻辑设计【E-R图转关系模式】
      • 5、物理设计
      • 6、数据库的实施与维护
    • 七、数据库的控制管理
      • 1、事务管理
        • 原则
        • 特点
      • 2、数据库的备份与恢复
        • (1)故障类型
        • (2)备份方法
      • 3、并发控制
    • 八、分布式数据库
    • 九、奇怪的考过的点

数据与信息之间的关系可表示为:信息= 数据+数据处理。
模型是对现实世界的模拟和抽象。数据库技术中,表示实体类型和实体类型间关系的模型称为数据模型。分为概念数据模型、结构数据模型。

一、概念数据模型(下午题常考)

用于信息世界建模,一般用实体-联系方法(E-R图)表示。常用术语:

  • 实体:用矩形表示

  • 属性:一个实体有多个属性;用椭圆形表示

  • :唯一标识实体的属性集

  • :属性取值范围,比如性别(男,女)

  • 联系: 用菱形表示

    种类包含:实体与实体间的联系;实体内部的联系
    类型包含:一对一;一对多;多对多
    无向边将实体、属性、联系起来。

二、结构数据模型

结构数据模型是直接面向数据库的逻辑结构,主要包括:层次(树结构)、网状(图结构)、关系和面向对象模型。

关系模型

是一种用二维表格结构来表示实体以及实体之间联系的数据模型。每个二维表由行、列组成,也可称为关系,关系模式是对关系的描述,可以说关系模型是关系模式的集合。
关系模式
两个关系

1、关系模型中基本术语

  • 关系:一张表即为一个关系,表名就是关系名

  • 元组:一条数据就是一个元组,对应存储文件中的一个记录值

  • 属性:表中的每一列就是一个属性,列名即属性名,属性值相当于记录中的数据项或字段值

  • 域:属性的取值范围

  • 关系模式:对关系的描述,由关系名和属性名组成,格式如下:关系名(属性名1,属性名2…属性名n)

     常见的关系模式格式为 R(U,F)。R为关系名U为关系中的属性F为属性间的函数依赖,具体见【函数依赖】
    

通常一个关系模式对应一个关系文件的结构。五码

  • 候选码(或候选键):属性或者属性组合,可唯一标识某个元组
  • 主码(或主键):多个候选码中,选择一个作为主码,单个即可表示一个元组的属性
  • 主属性:包含在任何候选码中的属性称为主属性,否则称为非主属性。
  • 外码(或外键):如果一个关系中的属性或属性组并非该关系的码,而是另一个关系的码,称为该关系的外码。可指定到另一个表。
  • 全码(或全键):关系中的所有属性组成的属性组是这个关系模式的候选码,称为全码
  • 超码(或超键):一个包含码的属性集称为超码。

2、关系模型中的关系完整性约束

关系模型由关系数据结构、关系操作集合和关系完整性约束组成。

  • 实体完整性:主码不可为空或部分为空(对于主码组合来说)。
  • 参照完整性:关系R的外码X对应关系T的主码的话,外码X的每个值都要在关系T中的主码中找到或者外码X为空
  • 用户定义的完整性:指用户对某一具体数据指定的约束条件进行检验

3、关系代数(重要)

(1)关系代数运算符
  • 集合运算符:并(⋃\bigcup)、差(-)、交(⋂\bigcap)、笛卡尔积(×\times×
  • 专门的关系运算符:选择(σ\sigmaσ)、投影(π\piπ)、连接($$)、除(÷\div÷)
  • 逻辑运算符:非、与(⋀\bigwedge)、或(⋁\bigvee)
  • 比较运算符:大于(>)、大于等于(≥\geq)、小于(<)、小于等于(≤\leq)、等于(=)、不等于(≠\not==)
(2)集合运算符
  • 并:关系R与关系S所有元组合并,删除重复元组,组成的新关系,即为R⋃\bigcupS
  • 差:关系R中除去关系S中的元组,即为R-S
  • 交:既属于关系R,又属于关系S的元组,组成的新关系,即为R⋂\bigcapS。R⋂\bigcapS = R-(R-S)
    元组数:R有m个元组,S有n个元组,两者有k个元组相同
    R⋃\bigcupS: m+n-k
    R-S: m-k
    R⋂\bigcapS: k
  • 笛卡尔积:R中的每一元组与S的每一元组相乘。新关系的列数为n+m,行数为n*m。
    集合运算符
(3)专门的关系运算符

投影
从关系的垂直方向进行运算,在关系R中选出若干属性组成的新关系。
投影
选择
从关系的水平方向进行运算,在关系R中选出符合条件的元组组成的新关系。
选择
列也可用数字来表示,如果上面的5没带引号,表明是第5列。
举例
连接(这个地方,连接的符号是真没找到怎样表示,麻烦知道的授教,多谢)
连接又分为θ\thetaθ连接、等值连接、自然连接

  • θ\thetaθ连接:关系R和关系S的笛卡尔积中找到符合条件的元组形成的新关系
    theta连接

  • 等值连接:θ\thetaθ为等号时,找到关系R和关系S的笛卡尔积中的元组形成的新关系
    上方的例子中,当R.A = S.B时,就是等值连接了。

  • 自然连接:找到两关系的笛卡尔积中相同属性列相同的元组,且去除重复列形成的新关系,若有多个相同属性,条件之间的关系为“并且”.
    自然连接
    左连接、右连接、全连接(考的几率小)
    左连接:左侧关系元组全部保留,右侧关系无对应元组的属性,用Null代替。这会使右侧关系的无对应元组丢失。
    右连接:右侧关系元组全部保留,左侧关系无对应元组属性用null代替。这会使左侧关系中无对应元组丢失。
    全连接:左右侧关系元组全部保留,两侧无对应的元组属性都用Null代替。这个是为了不丢失两关系中的元组。
    (考的几率小)
    步骤:
    1、找到左侧关系A中与右侧关系B的相同属性,形成新元组C。
    2、找到关系C中与关系B值相同的元组,为A÷\div÷B的值

(4)运算符转sql

对于已工作的人就分分钟的事了,不详细写了哈,很容易
投影:即select语句的属性列
选择:即select语句的条件,where后面的
笛卡尔积:from表直接 R,S 即可
自然连接:自然连接可以转成投影、选择、笛卡尔积的式子,按上面的来就可以。自然连接要注意共同属性值相等这个条件欧

三、三级模式和两级映像

存在多种数据库语言,支持不同数据模型,数据的存储结构也不相同,但体系结构上基本都具有“三级模式、两级映像”的特征。

1、三级模式

  • 外模式(对应视图
  • 概念模式,常称模式(对应基本表
  • 内模式(对应存储文件

2、两级映像

  • 外模式/模式映像:保证了数据的逻辑独立性
  • 模式/内模式映像:保证了数据的物理独立性

四、SQL语言(重要)

1、SQL语言分类

(1)数据定义语言(DDL)

常见于create、alter、drop

// 建表
create table user (id integer,username string,
);
// 修改
alter table user add age integer;
alter table user alter username char(5); // 分数据库,有的是modify
alter table user drop username;
// 删除
drop table user;

完整性约束

  • 列完整性约束
create table user (id integer not null unique,username string not null default '数据库',
);
  • 表完整性约束
create table user (id integer not null unique,username string not null default '数据库',cid unique,primary key(id),    // 主键foreign key(cid) references class(id)
);
  • 自定义完整性约束
create table user (id integer not null unique,username string not null default '数据库',cid unique,primary key(id),    // 主键,实体完整性foreign key(cid) references class(id),// 参照完整性check (id >0 and cid >0)  // 用户定义的完整性
);
(2)数据操作语言(DML)

常见于insert 、delete、update
user(id,username,age)

// 插入
insert into user(username,age) values('生活',3728272);
insert into user values(112,'远方',728);
// 更新
update user set username = '诗' where age = 728;
update user set username = '诗',id = 273 where age = 728;
// 删除
delete from user where id = 728;
(3)数据查询语言(DQL)

常见于select

select * from user;
select username from user;
select distinct username from user;  // 去除重复元组
select username as '用户名' from user;select * from user where id in (112,121,113); // 112或是121或是113
select * from user where id not in (112,121,113);
select * from user where id between 30 and 40;
select * from user where username like '%生%';  // 百分号表示可补充任意长度字符
select * from user where username like '生_';  // 下划线表示可补充一个长度的字符
select * from user where username not like '生_';select * from user where username like '生_' and id = 112; 
select * from user where username like '生_' or id = 112; 
select * from user where id is null;
select * from user where id is not null;select * from user where id order by id asc;  // 默认,order by必须是select命令的最后一个子句
select * from user where id order by id desc;// 聚合函数
select AVG(id) from user;  // 平均值
select COUNT(*) from user; // 求数量
select MAX(id) from user; // 最大值
select MIN(id) from user; // 最小值
select SUM(id) from user;//总和// 数据分组,聚合函数在与其他字段同时查询时,会报错
select  user_id,SUM(成绩) from score group by user_id; // 按用户分组求每个用户id的成绩和
select  user_id,name,SUM(成绩) from score group by user_id,name; // 条件中要使用聚合函数时,用having
select 学号 from score where 分数 is not null group by 学号 having MIN(分数)>70 and MAX(分数) <90;
(4)内连接
select s.score from user u inner join score s on u.id = s.user_id where .....
// 等值连接
select u.user_name from user u,score s where u.id = s.user_id;
// 非等值连接
select u.user_name from user u,score s where s.score between AVG(s.score) and MAX(s.score);
// 自连接
select x.user_name,x.age,x.sex from user x,user y where x.number = '2222' and x.age > y.age
(5)外连接
// 左连接,会显示左侧表所有的数据,右侧表不匹配数据丢失
select u.* from user u left join score s on s.user_id = u.id;
// 右连接,会显示右侧表所有的数据,左侧表不匹配数据丢失
select s.* from user u right join score s on s.user_id = u.id;
// 全连接
select s.* from user u full join score s on s.user_id = u.id;
(6)子查询
select * from user u where u.id in (select s.user_id from score where score >90)// ANY,大于任何一个都显示
select * from user where age > ANY(select age from user where sex= 1);
// ALL,比最大的还大才显示
select * from user where age > ALL(select age from user where sex= 1);
// 相关子查询,一个字段既做条件也做结果值
select score,class from class a where score > (select AVG(score) from class b where a.class = b.class)
// exist
select * from user u where exist (select score from score s where u.is = s.user_id);
// not exist
select * from user u where not exist (select score from score s where u.is = s.user_id);
(7)并交差
// 并 UNION。两个sql语句中的数据都显示
select 姓名,年龄 from teacher
UNION
select 姓名,年龄 from student
// 交 INTERSECT。两个sql语句中相同的数据显示
select 姓名,年龄 from teacher
INTERSECT
select 姓名,年龄 from student
// 差 EXPECT。从第一个结果中去除第二个结果中的值
select 姓名,年龄 from teacher
EXPECT
select 姓名,年龄 from student
(8)数据控制语言(DDL)

指对权限的控制,权限又分为表和库
权限
后缀解释

// 授权
grant update(name) on table user to user1 with grant option;
grant select on table user,score to user1 ,user2;
grant all privileges on table user to user1;
grant createtab on database basename to user1;
// 收回权限
revoke createtab on database basename from user1;
revoke select on table user from public
(9)视图

视图其实就是虚拟表,根据条件选出另一表中符合的数据。同理视图生成之后,向视图中添加数据就是向对应的表中添加数据。可对应多个表

create view student
as select name,id from user where type = '学生';
// 此时不加 with check option ,可以随意向视图中添加数据。
create view student
as select name,id from user where type = '学生' with check option;
// 加上 with check option后,只有类型是学生的数据才可以被加进去,否则会报错。且这个限制只有存在where条件才生效。// 删除视图
drop view student;
(10)索引

创建索引修改的是内模式–存储文件。

// 唯一索引,单个值在表中只能有一条数据
create unique index indexName on user(user_id);  
// 聚簇索引,索引项顺序是与表中记录的物理顺序一致的索引组织。
create cluster index indexName on user(user_id);

五、关系数据库的规范化

1、函数依赖(重要)

(1)函数依赖分类

函数依赖
组合属性才存在完全、部分函数依赖区分,单个属性就是完全函数依赖
在这里插入图片描述

(2)属性闭包

常考候选关键字、主属性、非主属性。
常见题目
可以求出闭包来的属性或者属性组合被叫做候选关键字(候选码属性组合中的任一真子集不可求出闭包)。找关键字从箭头左侧的属性中找就可以,因为右侧的属性都是被决定的。
A->ABC->ABCD = U
这里A就是候选关键字。
如果说从AC开始求闭包,其实也可以求出来,但是AC中的A单独就可以求出来,所以AC不可以被称为候选关键字。其中候选关键字中的属性叫做主属性,未在候选关键字中的属性叫非主属性。若有多个候选码,可选择其中一个作为主码。
主键为全码就是所有属性为候选关键字。

2、规范化(重要)

检查符合第几范式的标准:
1NF:属性是否不可再分
2NF:非主属性是否全部完全函数依赖候选码
3NF: 非主属性是否全部非传递依赖于主属性
BFNF:主属性是否对于候选码有部分函数依赖或者传递依赖(不常考)
范式

多值依赖

表示方式:X->->Y
X多值决定Y,Y多值决定X
比如:一门课有多个讲师授课,需要用到多本辅导书。
对于关系R的每个非平凡多值依赖X->->Y,X都包含了R的一个候选码,则称R为第四范式。

考点

常考题:

  • 候选码
  • 可达到第几范式
  • 关系分解
  • 有损、无损连接,是否保持函数依赖

一般都符合第一范式,那么就要判断是否存在部分函数依赖(不存在,就是第二范式)和传递依赖(不存在,就是第三范式)。
传递依赖要注意有两种情况:

  1. X->Y,Y->Z
  2. X->Y, YZ -> W,就有XZ->W

无损连接标准

一般这种题,会将关系分解的结果给出来,我们需要将分解后的各关系使用自然连接,判断其结果是否等于关系的全集,若等于,为无损连接;若不等于,则是有损连接。
是否保持函数依赖,就要看新的关系中是否还能得到题目中给的依赖关系(包含传递)

六、数据库设计

数据库设计策略:自顶向下和自底向上

1、数据库设计步骤

  • 需求分析:获取用户需求,了解关系边界
  • 概念分析:E-R图表示
  • 逻辑设计:E-R图转关系模式,并进行规范化
  • 物理设计:在数据库中的具体实现

2、需求分析

  • 需求分析是逻辑设计以及物理设计的依据
  • 确认系统边界是需求分析的步骤
  • 需求分析最终要生成需求说明文档、数据流程图、数据字典

3、概念设计

(1)E-R图(重要)

实体-关系模型
(本文上方也有)

  • 实体 长方形表示,即元组
  • 关系 菱形表示
  • 属性 椭圆形表示
    三者用无向边联系起来,无向边上标注1或多

属性分类

  • 简单属性和复合属性:属性为原子级,不可再分为简单属性。可再分为复合属性,也就不符合第一范式
  • 单值属性和多值属性:一个实体只有一个值的属性叫做单值属性,反之为多值属性。比如一本书的名字只能是那一个;学生的爱好可以是学习(哈哈哈),也可以是篮球、跑步…
  • null属性:空值为null
  • 派生属性:可通过其他属性计算得到的。比如年龄可以通过出生年月与当前时间计算得到

不常见的

  • 弱实体:该实体依赖于另一个实体存在。比如职工家属,只有存在职工时,才会有。双层长方形表示
  • 弱关系:弱实体集联系的表示。双层菱形表示

(2)概念设计

冲突类型
E-R图设计好之后,需要经过选择应用-> 设计分E-R图->合并E-R图
可能会存在的冲突类型:

  1. 属性冲突:同一属性在不同的E-R图中都存在,但值的类型或者大小不同
  2. 命名冲突:同一属性在不同的E-R图中都存在,名称不同。异名同义、同名异义
  3. 结构冲突:有一字段,在A E-R图中是个属性,但在B中是实体

4、逻辑设计【E-R图转关系模式】

  1. 实体转关系模式
    实体名为关系名,属性为关系模式的属性
    在这里插入图片描述
    学生(学号,姓名,年龄)

  2. 一对一关系转关系模型
    厂长(姓名,性别,年龄)
    工厂(厂号,厂名,地点)
    方法一:关系名为关系模式的名称,与之有关的两实体的主键和关系的属性(如果有的话)为关系模式的属性
    管理(姓名,厂名,管理方式)
    方法二:将其中一实体的主码与关系的属性放入另一实体的属性中
    厂长(姓名,性别,年龄,厂名,管理方式)
    或者
    工厂(厂号,厂名,地点,姓名,管理方式)
    在这里插入图片描述

  3. 一对多关系转关系模型
    仓库(仓库号,地点,面积)
    商品(货号,商品名,价格)
    方法一:关系名为关系模式的名称,与之有关的两实体的主键和关系的属性(如果有的话)为关系模式的属性
    仓储(仓库号,货号,数量)
    方法二:将联系归并到实体的多方,给实体增加另一方的主码和关系的属性作为关系模式的属性。
    商品(货号,商品名,价格,仓库号,数量)
    在这里插入图片描述

  4. 多对多关系转关系模型
    关系名为关系模式的名称,与之有关的两实体的主键和关系的属性(如果有的话)为关系模式的属性
    选修(学号,课程号,成绩)
    在这里插入图片描述

5、物理设计

不考

6、数据库的实施与维护

不考

七、数据库的控制管理

1、事务管理

原则

要么不做,要么都做

特点

  • 原子性:原子的,要么都做,要么都不做
  • 一致性:事务执行的结果必须保证数据库从一个一致性状态到另一个一致性状态
  • 隔离性:事务相互隔离,当多个事务并行执行时,相互之间不可见
  • 持久性:即使数据库崩溃,事务对于数据库的更新也存在

2、数据库的备份与恢复

为应对数据库系统因软、硬件故障导致的数据丢失或损坏,需要做一些可恢复数据的措施。

(1)故障类型

  • 事务内部故障
  • 系统故障
  • 介质故障
  • 计算机病毒

(2)备份方法

恢复的基本原理是“建立数据冗余”,即进行数据转储和登记日志文件。

  • 静态转储和动态转储:静态转储在转储期间不允许对数据库进行任何操作;反之为动态转储。
  • 海量转储和增量转储:每次转储都是全量转储为海量转储;每次转储只转储上次转储后更新的内容为增量转储。
  • 日志文件:将对数据的每次操作都写入日志文件,DBMS可使用日志文件进行事务故障恢复和系统故障恢复、介质故障恢复。

为保证数据库中数据的安全可靠和正确有效,在进行事务处理时,对数据的插入、删除或修改的全部有关内容写入日志文件;当系统正常运行时,按一定时间间隔,将数据库缓冲区内容写入数据文件;发生故障时,根据现场数据内容及相关文件恢复系统状态。

3、并发控制

并发控制的主要技术是封锁。分为排它锁(X锁或读锁)和共享锁(S锁或写锁)
排它锁:某一事物对数据加了排它锁之后,可读取修改,其他事务不可再对数据加任何锁
共享锁:某一事物对数据加了共享锁之后,可读取,其他事物也对数据加共享锁

八、分布式数据库

都是概念性的题目,记住吧
分布式

九、奇怪的考过的点

  • 遗传算法采用模拟生物进化的三个基本过程“繁殖、交叉、变异”
  • 数据库逻辑设计中,若实体存在多值属性,那么将E-R图转成关系模式时,将实体的码分别和每个多值属性独立构成一个关系模式,可使得得到的关系模式属于4NF
  • JDBC是java技术中访问数据库的方式,也是目前用java技术实现的基于web的应用的数据库访问方式。com是一种组件技术,cgi是一种网络应用技术。
  • 函数依赖
    在这里插入图片描述
  • **OLAP(联机分析处理)**可为用户提供一个便利的多维度观点和方法,以有效的对数据进行复杂的查询动作
  • 数据库的安全机制中,通过提供存储过程供第三方开发人员调用进行数据更新,从而保证数据库的关系模式不会被第三方获取

相关文章:

【软考五】数据库(做题)

该文章不适合学习数据库&#xff0c;适合考证&#xff0c;遇到实际问题的&#xff0c;不要在这儿浪费时间。切记切记 软考之数据库一、概念数据模型&#xff08;下午题常考&#xff09;二、结构数据模型关系模型1、关系模型中基本术语2、关系模型中的关系完整性约束3、关系代数…...

【Java Web】012 -- SpringBootWeb综合案例(登录功能、登录校验、异常处理)

目录 一、登录功能 1、基础登录功能 ①、SQL语句 ②、接口参数 ③、实现思路 ④、实现步骤 2、联调Bug&#xff08;没有Cookie或Session&#xff09; 二、登录校验 1、登录校验的实现思路 2、会话技术 ①、会话与会话跟踪 ②、会话跟踪方案对比 Cookie Session …...

跨界智能手表:比亚迪向左,小鹏向右

如今&#xff0c;电动化、智能化是汽车行业转型的大方向&#xff0c;而由于目前国内汽车产业在电动化方面已经算是“小有成效”&#xff0c;因此&#xff0c;抢占智能化高地&#xff0c;打造一个多设备互融的生态系统&#xff0c;就成为了车企的共同愿景。在此背景下&#xff0…...

【c++初阶】第九篇:vector(常用接口的使用 + 模拟实现)

文章目录vector介绍vector的使用vector的定义vector iterator(迭代器) 的使用begin和endrbegin和rendvector 空间增长问题size和capacityreserve和resize&#xff08;重点&#xff09;测试vector的默认扩容机制emptyvector的增删查改push_back和pop_backinsert和erasefindswapo…...

Taro React组件使用(6) —— RuiSendCode 短信验证码【倒计时】

1. 需求分析 获取验证码按钮,点击后进入倒计时环节;默认采用 120s 后才允许再次发送短信验证码;发送后不能再次点击发送按钮,点击也不执行发送逻辑;最好将发送短信的业务逻辑请求接口写在组件中,封装为公用组件,可以多处使用。2. 实现效果 2.1 验证码发送前 2.2 验证码…...

把ChatGPT接入我的个人网站

效果图 详细内容和使用说明可以查看我的个人网站文章 把ChatGPT接入我的个人网站 献给有外网服务器的小伙伴 如果你本人已经有一台外网的服务器&#xff0c;并且页拥有一个OpenAI API Key&#xff0c;那么下面就可以参照我的教程来搭建一个自己的ChatGPT。 需要的环境 Cento…...

关于数字游民是未来年轻人工作趋势的一种思考

Q:我觉得未来&#xff0c;数字游民会是中国工作的一种主流方式&#xff0c;因为实体行业受到严重冲击&#xff0c;科技的发展是推导支持这样的远程工作形式&#xff0c;而且未来人的时间是越来越离散化、碎片化、原子化的&#xff0c;以订单交付的形式&#xff0c;P2P的形式会是…...

2022年 合肥市经开区信息学竞赛区赛 初中组

2022年 合肥市经开区信息学竞赛区赛 初中组T1.普通排序 题目描述 牛牛是一位编程爱好者,今天第一次参加初中组比赛,看到第一题,不要紧张,来一个简单的排序题做一做,牛牛学过了很多排序,一直想练个手,这回机会来了,给牛牛N个数(n<=100),每个数都在(0 ~ 1000)之间…...

【工作小札】自定义classloader实现热加载jar

文章目录楔子第一步&#xff1a;添加maven依赖第二步&#xff1a;创建jar包路径构造类第三步&#xff1a;定义需要被加载的jar的目录结构第四步&#xff1a;创建自定义类加载器1 继承ClassLoader并实现Closeable接口2 标记该加载器支持并行类加载机制3 私有化构造方法&#xff…...

spring—AOP

系列文章目录 Spring中AOP技术的学习 文章目录系列文章目录前言一、AOP核心概念二、AOP入门案例1.AOP入门案例思路分析2.AOP入门案例实现三、AOP工作流程四、AOP切入点表达式五、AOP通知类型六、案例&#xff1a;测量业务层接口万次执行效率1.项目结构2.实现类七、AOP获取通知…...

自己曾经的C++笔记【在c盘爆满的时候找到的回忆】

文章目录**C与C的区别** (二&#xff09;类和对象构造函数和析构函数C特殊成员C友元C类的继承C虚函数和多态C模板C可变参模板CSTL容器篇C迭代器C仿函数C函数适配器CSTL算法C智能指针C类型推断CIO流C正则表达式具有特殊意义的元字符量词元字符校验数字的表达式校验字符的表达式特…...

Nginx 实战-负载均衡

一、负载均衡今天学习一下Nginx的负载均衡。由于传统软件建构的局限性&#xff0c;加上一台服务器处理能里的有限性&#xff0c;在如今高并发、业务复杂的场景下很难达到咱们的要求。但是若将很多台这样的服务器通过某种方式组成一个整体&#xff0c;并且将所有的请求平均的分配…...

本周大新闻|128GB版Quest 2再降价,Mojo Vision完成“新A轮”融资

本周XR大新闻&#xff0c;AR方面&#xff0c;DigiLens推出SRG表面浮雕光栅衍射光波导&#xff1b;索尼成立Sony Research&#xff1b;NuEyes推出牙医场景AR眼镜NuLoupes&#xff1b;苹果EMG手环、AR/VR眼球追踪专利公布。 VR方面&#xff0c;128GB版Quest 2降至349美元&#x…...

【论文阅读】如何给模型加入先验知识

如何给模型加入先验知识 1. 基于pretain模型给模型加入先验 把预训练模型的参数导入模型中&#xff0c;这些预训练模型在另一个任务中已经p retrain好了模型的weight,往往具备了一些基本图片的能力 2. 基于输入给模型加入先验 比如说鸟类的头部是一个重要的区分部分&#x…...

arm系列交叉编译器各版本区别

目录交叉编译器命名规则具体编译器举例crosstool-ng交叉编译工具样本arm交叉编译器举例几个概念ABI与EABIgnueabi与gnueabihf参考交叉编译器命名规则 交叉编译器的命名规则&#xff1a;arch [-vendor] [-os] [-(gnu)eabi] [-language] arch - 体系架构&#xff0c; 如arm&…...

随笔记录工作日志

工作中遇到的问题随笔记录 1、将map集合中的key/value数据按照一定的需求过滤出来&#xff0c;并将过滤出来的map的key值存到list集合中 首先想到的是stream流&#xff0c;但是我对stream流的用法基本不熟&#xff0c;记不住方法&#xff0c;如果坚持用stream流去实现这个需求…...

LinkedHashMap源码分析以及LRU的应用

LinkedHashMap源码分析以及LRU的应用 LinkedHashMap简介 LinkedHashMap我们都知道是在HashMap的基础上&#xff0c;保证了元素添加时的顺序&#xff1b;除此之外&#xff0c;它还支持LRU可以当做缓存中心使用 源码分析目的 分析保持元素有序性是如何实现的 LRU是如何实现的…...

【每日一题Day166】LC1053交换一次的先前排列 | 贪心

交换一次的先前排列【LC1053】 给你一个正整数数组 arr&#xff08;可能存在重复的元素&#xff09;&#xff0c;请你返回可在 一次交换&#xff08;交换两数字 arr[i] 和 arr[j] 的位置&#xff09;后得到的、按字典序排列小于 arr 的最大排列。 如果无法这么操作&#xff0c;…...

Canal增量数据订阅和消费——原理详解

文章目录 简介工作原理MySQL主备复制原理canal 工作原理Canal-HA机制应用场景同步缓存 Redis /全文搜索 ES下发任务数据异构简介 canal 翻译为管道,主要用途是基于 MySQL 数据库的增量日志 Binlog 解析,提供增量数据订阅和消费。 早期阿里巴巴因为杭州和美国双机房部署,存…...

为什么要使用线程池

Java线程的创建非常昂贵&#xff0c;需要JVM和OS&#xff08;操作系统&#xff09;配合完成大量的工作&#xff1a; (1)必须为线程堆栈分配和初始化大量内存块&#xff0c;其中包含至少1MB的栈内存。 (2)需要进行系统调用&#xff0c;以便在OS&#xff08;操作系统&#xff09;…...

Flask RESTful 示例

目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题&#xff1a; 下面创建一个简单的Flask RESTful API示例。首先&#xff0c;我们需要创建环境&#xff0c;安装必要的依赖&#xff0c;然后…...

大话软工笔记—需求分析概述

需求分析&#xff0c;就是要对需求调研收集到的资料信息逐个地进行拆分、研究&#xff0c;从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要&#xff0c;后续设计的依据主要来自于需求分析的成果&#xff0c;包括: 项目的目的…...

IGP(Interior Gateway Protocol,内部网关协议)

IGP&#xff08;Interior Gateway Protocol&#xff0c;内部网关协议&#xff09; 是一种用于在一个自治系统&#xff08;AS&#xff09;内部传递路由信息的路由协议&#xff0c;主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...

家政维修平台实战20:权限设计

目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系&#xff0c;主要是分成几个表&#xff0c;用户表我们是记录用户的基础信息&#xff0c;包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题&#xff0c;不同的角色&#xf…...

有限自动机到正规文法转换器v1.0

1 项目简介 这是一个功能强大的有限自动机&#xff08;Finite Automaton, FA&#xff09;到正规文法&#xff08;Regular Grammar&#xff09;转换器&#xff0c;它配备了一个直观且完整的图形用户界面&#xff0c;使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...

AI,如何重构理解、匹配与决策?

AI 时代&#xff0c;我们如何理解消费&#xff1f; 作者&#xff5c;王彬 封面&#xff5c;Unplash 人们通过信息理解世界。 曾几何时&#xff0c;PC 与移动互联网重塑了人们的购物路径&#xff1a;信息变得唾手可得&#xff0c;商品决策变得高度依赖内容。 但 AI 时代的来…...

Android第十三次面试总结(四大 组件基础)

Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成&#xff0c;用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机&#xff1a; ​onCreate()​​ ​调用时机​&#xff1a;Activity 首次创建时调用。​…...

AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机

这个博客介绍了如何通过 settings.json 文件添加一个无人机外的 固定位置监控相机&#xff0c;因为在使用过程中发现 Airsim 对外部监控相机的描述模糊&#xff0c;而 Cosys-Airsim 在官方文档中没有提供外部监控相机设置&#xff0c;最后在源码示例中找到了&#xff0c;所以感…...

Mysql8 忘记密码重置,以及问题解决

1.使用免密登录 找到配置MySQL文件&#xff0c;我的文件路径是/etc/mysql/my.cnf&#xff0c;有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...

【Android】Android 开发 ADB 常用指令

查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...