数据库原理(含思维导图)

数据库原理笔记,html与md笔记已上传

1.绪论

发展历程

  • 记住数据怎么保存,谁保存数据,共享性如何,独立性如何

人工管理阶段

  1. 数据不保存
  2. 应用程序管理数据
  3. 数据不共享
  4. 数据不具有独立性

文件系统阶段

  1. 数据可以长期保存
  2. 文件系统管理数据
  3. 数据共享性差冗余度大
  4. 数据独立性差

数据库系统阶段

  1. 数据结构化
  2. DBMS统一管理系统
  3. 数据共享性高,冗余度低,易扩充
  4. 数据独立性高

数据模型

  • 数据模型的 三要素数据结构(静态特性),数据操作(动态特性),数据的完整性约束
  • 数据模型是对现实世界 数据特征的抽象,

概念模型(E-R图)

  • 按照 用户的观点来对数据和信息建模,不依赖于具体的计算机系统,不是某一个DBMS支持的数据模型,主要用于 数据库设计

逻辑模型

  • 按照 计算机系统的观点对数据建模,主要用于 数据库管理系统的实现。
  • 层次模型
  • 网状模型
  • 关系模型
  • 面向对象模型
  • 对象关系模型

数据库系统概念

1.数据

  • 描述事物的 符号记录,如数字,图像,文本等,经过数字化处理后存入计算机。

2.数据库

  • 长期存储在计算机内,有组织,可共享的大量数据的集合。数据库中的数据按照一定的 数据模型 组织,描述,存储,具有较小的 冗余度,较高的 数据独立性,易扩展性

3.数据库管理系统

  • 位于 用户操作系统 之间的一层 数据管理软件。用于科学地组织和存储数据,高效地获取和维护数据。DBMS的主要功能包括: 1. 数据定义2. 数据操纵3. 数据库的运行管理功能4. 数据库建立与维护功能

4.数据库系统

  • DBS是指在计算机系统中 引入数据库后的系统构成。数据库系统由 数据库,数据库管理系统,应用系统,数据库管理员构成。

三级模式

外模式

  • 外模式也称为用户模式。外模式是数据库 用户 能够看见和使用的 局部数据的逻辑结构特征的描述,是 数据库用户数据视图,是与某一应用有关的数据的逻辑表示。

模式

  • 模式也称为逻辑模式,是数据库中 全体数据的逻辑结构和特性的描述,是 全体用户的公共数据视图。(外模式是模式的 子集

内模式

  • 内模式也称为存储模式,是数据在数据库系统内部的表示,对数据的 物理结构存储方式 的描述

优点

  • 数据有较高的逻辑独立性和物理独立性
  • 简化了用户窗口
  • 有利于数据共享
  • 数据的安全保密
  • 数据存储由DBMS管理(用户无需考虑存储细节)

数据与程序的独立性

  • 主要包括两个方面—— 逻辑独立性物理独立性

逻辑独立性

  • 模式 改变时(增加新的属性列),由数据库管理员对 各个 外模式/模式映像作相应的改变,可以使得 外模式不变,从而应用程序不必修改,保证了 数据与程序的逻辑独立性

物理独立性

  • 当数据的 存储结构发生改变时,由 数据库管理员对 模式/内模式映像作出相应改变,可以使 模式保持不变,从而应用程序不必改变,从而保证了 数据与程序的物理独立性

并发控制

并发方式

交叉并发方式

单处理机系统中,并行事务的并行操作 轮流执行

同时并发方式

多处理机系统中,每个处理机可以运行一个事务,多个处理机可以同时运行多个事务,实现多个事务 并发执行

实现并发的重要方式

  • 封锁

数据不一致性

丢失修改(T1事务修改了数据,T2也修改了,T2结果让T1修改丢失了)

不可重复读(T1读,T2改,T1再读,两次读的结果不一致/T1读,T2删,T1再读,发现读不到数据/T1读,T2增加,T1再读,发现读多了结果)

读脏数据(T1修改,并且写入磁盘。T2读取数据,而T1撤销,T2读到的数据和数据库中的不一致)

排他锁(写锁)

事务T对 对象施加 X锁,只允许T修改和修改,其他任何事务 都不能施加其他锁

共享锁(读锁)

事务T对数据对象施加 S锁,T可以读但不能写,其他事务只能对A施加 S锁不能修改X锁

活锁与死锁

活锁

一个事务T可能永远等待其他锁,一直得不到锁
解决方法: 采用先来先服务策略

死锁

两个或多个以上的事务循环等待对方的锁的释放,事务永远不能结束。
死锁的预防
一次封锁法:每个事务必须一次将所有使用的数据 全部加锁,否则不能执行
顺序封锁法:预先对数据对象 规定一个 封锁顺序,所有事务都按照这个顺序实行封锁。
死锁的诊断和解除
超时法:如果一个事务的 等待时间超出了规定的时限,就认为发生了死锁
等待图法:事务等待图动态地反映了 所有事务的等待情况。如果发现图中存在 回路,则表示系统中出现了 死锁

并发调度的可串行性

可串行化调度

多个事务的并发执行是 正确的,当且仅当结果和串行执行时相同,称这种调度策略是 可串行化的调度。
可串行性是并发事务正确调度的准则。

两段锁协议

两段锁协议是指所有事务必须分 两个阶段对数据项加锁解锁
对任何数据进行读写前,首先要申请并获得数据的 封锁
在释放一个封锁之后,事务不再申请和获得任何其他封锁
事务遵守的两段锁协议是 可串行化调度充分条件,不是必要条件。(两段锁必然是可串行化协议,反过来不能说是)

封锁的粒度

多粒度封锁

在一个系统中同时支持多种封锁粒度供不同的事务选择
多粒度树
根节点是 数据库,然后是 关系(表),元组
对一个节点 加锁,意味着对改节点的所有 后裔节点也施加同样的锁。
显示封锁:应事务的要求 直接加到数据对象上的锁
隐式封锁:该数据对象没有 独立加锁,而是由于上级节点要求 加锁而被加锁

意向锁

如果对一个结点加 意向锁,说明该节点的下层节点正在被加锁
对任意节点加锁前,必须对上层节点添加意向锁
申请封锁自上而下
1.意向共享锁(IS锁,Intent Shared Lock)
如果对一个对象添加 IS锁,说明它的 后裔节点正在添加S锁
2.意向排他锁(IX锁,Intent Exclusive Lock)
如果对一个对象节点添加 IX锁,说明它的 后裔节点正在添加X锁
3.共享意向排他锁(SIX锁,Share Intent Exclusive Lock)
SIX锁:先加 S锁,再加 IX锁,标识该事务要 整个表,而且会 更新元组

锁的粒度

  • S锁可共享的:(S,IS)
  • X锁可共享:(无)
  • IS锁可共享:(S,IS,IX,SIX)
  • IX锁可共享:(IS,IX)
  • SIX锁可共享:(IS)

数据库恢复技术

事务

原子性

事务是数据库的 逻辑工作单位,事务的操作要么都做,要么都不做

一致性

事务的执行结果必须是使数据库从一个一致性状态转变到另一个一致性状态

隔离性

一个事务的执行不能被其他事务干扰

持续性

一个事务一旦提交,它对数据库中的数据改变就是 永久性的。

故障种类

事务内部的故障

事务内部的故障(预期的/非预期的)

系统故障

系统停止运行的事件让系统需要重新启动

介质故障

系统故障称为 软故障,介质故障称之为 硬故障。举例:磁盘损坏,磁头碰撞,磁场干扰

计算机病毒

恢复的技术

恢复的基本原理是: 冗余

数据转储

DBA定期将 整个数据库复制到磁带/另一个磁盘上,备用的数据称为 后备副本
数据库被破坏后,可以装入后备副本,但是只能恢复到转储前,要想完全恢复,还要重新运行之后所有的更新事务
静态转储
在系统中没有运行事务才能进行。转储过程中不允许执行事务,新的事务必须等待转储结束才能进行
动态转储
转储期间允许对数据库进行存取或修改,即 转储用户事务可以并发执行。
为了保证一致性,需要把转储期间的各个事务记录下来,建立 日志文件
海量转储
  • 每次转储 全部数据库
增量转储
  • 每次只转储 上一次转储后更新的数据

登记日志文件

  • 主要分为以记录为单位的日志文件,以数据块为单位的日志文件。
  • 登记的 次序严格按照 并发事务的执行顺序
  • 先写日志文件,后写数据库
以记录为单位
  • 各个事务的 开始,结束标记,事务的 更新操作。这三种都是日志文件中的一个 日志记录
以数据块为单位
  • 事务标识
  • 被更新的数据块

日志文件的使用

  1. 事务故障恢复和系统故障恢复 必须使用日志文件
  2. 动态转储中必须建立日志文件,后备副本和日志文件结合起来才能有效地恢复数据库
  3. 静态转储中也可以建立日志文件。

恢复策略

  • 系统运行过程中根据 故障的种类,恢复使用的 策略会不同

查询优化

查询过程

  1. 查询分析:判断是否符合sql语法
  2. 查询检查:根据 数据字典查询数据库对象是否存在,是否有权限访问。使用 查询树/语法分析树SQL语句转换成等价的 关系代数表达式
  3. 查询优化:按照 代数优化物理优化来进行优化。
  4. 查询执行:根据优化器得到的执行策略生成查询计划, 由 代码生成器执行查询计划

启发式规则

  1. 选择运算尽可能先做
  2. 投影和选择同时运行
  3. 投影和双目操作要结合
  4. 连接代替笛卡尔积
  5. 公共子表达式

画树的技巧

  1. 先画最初的语法树(select,project,join)
  2. 转换成语法树(join = x + σ \sigma σ select = σ \sigma σ ,project = π \pi π )
  3. 优化语法树(根据启发式规则,选择提早做,笛卡尔积换连接)

数据库设计

规范设计方法

  • 基本思想: 过程迭代逐步求精
  • 新奥尔良方法:把数据库设计分为若干阶段和步骤,逐步实施
  • 基于 E-R模型的数据库设计方法
  • 3NF设计方法
  • ODL(面向对象)设计方法
  • 统一建模语言(UML)方法

数据库设计阶段

  1. 需求分析阶段:了解并且分析 客户需求,是最困难,最耗费时间的一步
    • 数据字典的内容:数据项,数据结构,数据流,数据存储,处理过程五个部分)
    • 分析方法: 结构化分析方法(SA):从 最上层出发,采用自顶向下,逐层分解的方法分析系统。调查组织机构情况-熟悉业务活动-明确用户需求-确定系统边界
  2. 概念结构设计阶段:对用户需求进行 综合,归纳,抽象,形成一个独立于具体DBMS的 概念模型 (根据数据字典设计成E-R图)
    • 概念模型的特点 :1.真实反应现实世界2.易于理解3.易于更改4.向关系,网状,层次等数据模型结构转化
    • E-R图: 实体型 使用 矩形 ,用 椭圆 表示 属性,用 菱形表示 联系
    • 设计概念的 方法:1.自顶向下2.自底向上3.逐步扩张4.混合策略
    • 抽象的三种方法:1.分类2.聚集3.概括
  3. 逻辑结构设计阶段:把 概念结构转换为某个DBMS所支持的数据模型,并且对它进行优化(根据ER图设计成数据库表)
  4. 物理设计阶段 :为 逻辑数据模型选择一个适合应用环境的物理结构(存储安排,存取方法选择,存取路径建立)
  5. 数据库实施阶段:设计人员运用DBMS提供的语言和宿主语言,根据逻辑设计与物理设计建立数据库,调试并且运行(创建数据库模式,装入数据,数据库试运行)
  6. 数据库运行和维护阶段:(性能检测,转储/修复,数据库重组和重构)
  • 参与数据库设计的人员
    1. 系统分析人员和数据库设计人员
    2. 数据库管理员和用户代表
    3. 应用开发人员

E-R图的集成

  1. 合并:解决各分E-R图的冲突
    • 属性冲突:属性值的类型,取值范围,取值集合,属性取值单位不同
    • 命名冲突:同名异义,异名同义。
    • 结构冲突:同一对象在不同应用中 具有 不同抽象(解决方法:把属性变为实体)或者实体在不同子系统的 属性个数和排列次序不同(解决方法:属性值取 并集,并且适当调整属性的次序)
  2. 修改和重构:消除不必要的冗余(冗余数据和冗余联系),生成 基本E-R图
    • 冗余数据:可以由基本数据导出的数据
    • 冗余联系:可以由其他联系导出的联系
    • 求函数依赖集 F L F_L FL 的最小覆盖 G L G_L GL ,令差集 D = F L − G L D=F_L - G_L D=FLGL 。冗余的联系 一定 在差集D中,但D中的联系 不一定是冗余的。

关系数据库理论

函数依赖

定义: 对于关系R中 任意的关系r,r中不可能存在任意的两个元组在 X上相等,而在 Y上的属性值不等,则称函数 X确定Y,或Y依赖于X,记作 X → Y X\to Y XY

范式

满足最低要求的是第一范式,要求越高,范式级数越高 5 N F ⊂ 4 N F ⊂ B C N F ⊂ 3 N F ⊂ 2 N F ⊂ 1 N F 5NF \subset 4NF \subset BCNF \subset 3NF \subset 2NF \subset 1NF 5NF4NFBCNF3NF2NF1NF
把一个 低一级范式的关系模式,通过 模式分解转化未一个更高级的范式,该过程称为规范化

2NF

定义:若关系模式R ⊂ \subset 1NF,并且每一个非主属性都 完全函数依赖于任何一个候选码,则 R ∈ 2 N F R\in 2NF R2NF
举例:SLC表(Sno,Sdept,Sloc,Cno,Grade) Sloc是学生住所,规定所有系的学生住在同一个地方

3NF

定义:若关系模式R ∈ \in 1NF,若R中 不存在这样的码X,属性组Y,非主属性Z,使得 X → Y , Y → Z , Y ↛ X X\to Y,Y\to Z,Y \not\to X XY,YZ,YX ,则称R是3NF的。
性质:每一个 非主属性既不部分依赖,也不传递依赖子码
举例: S n o → S d e p t , S n o → S l o c , 而 S d e p t → S l o c Sno\to Sdept,Sno\to Sloc,而Sdept\to Sloc SnoSdept,SnoSloc,SdeptSloc ,此处X就是Sno,Y是Sdept,如果是3NF范式,Sdept不允许推出Sloc.

BCNF

定义:第三范式的修正, R ∈ 1 N F , 若 X → Y , 且 Y ⊄ X 时, X 必含有码 , 则 R ⊂ B C N F R\in 1NF,若X \to Y,且Y\not\subset X时,X必含有码,则R\subset BCNF R1NF,XY,YX时,X必含有码,RBCNF,(所有的依赖左边必含有码)
所有 主属性 都完全函数依赖于每个不含它的码
没有任何属性完全函数依赖于非码的任何一组属性
如果一个数据库是BCNF范式,实现了模式的 行为分解,消除了 插入删除异常

4NF:

R ∈ 1 N F R\in 1NF R1NF,对于R的 每个非平凡多值依赖 X → → Y X\to\to Y X→→Y , X都含有码,则 R ∈ 4 N F R\in 4NF R4NF

多值依赖

定义: X , Y , Z 是 U 的子集,并且 Z = U − X − Y X,Y,Z是U的子集,并且Z=U-X-Y X,Y,ZU的子集,并且Z=UXY ,当且仅当一组值(x,z),有一组Y的值,这组值仅仅决定于x值而与z值无关。(类似于一对多)

平凡的多值依赖,就是指Z中的值为空。

性质

多值依赖与函数依赖的区别

1. 多值依赖的有效性与 属性集的范围 有关
2. 若 函数依赖在 X → Y X\to Y XY在R(U)上成立,则对于任何 Y ′ ⊂ Y 均有 X → Y ′ Y^{'}\subset Y均有 X\to Y^{'} YY均有XY ,而多值依赖不行

公理系统

逻辑蕴含

1. 定义:对于任意一个关系模式R<U,F>,其任何一个关系r,若[[#函数依赖]] X → Y X \to Y XY 都成立,则称 F逻辑蕴含 X → Y X \to Y XY

ArmStrong公理系统

目的:求给定关系模式的 ,从一组函数依赖球的蕴含的函数依赖
阐述: 设U是属性集总体,F是U上的一组 [[#函数依赖]] ,有以下规则
推广规则:

求解(闭包) X F + X_F^+ XF+ 的步骤如下:

1. 初始化 X ( 0 ) X^{(0)} X(0)
2. 寻找 X i X_{i} Xi 能推出的新元素(根据函数依赖),并且并到新的集合 X i + 1 X_{i+1} Xi+1
3. 若 X i = = X i + 1 / U X_i == X_{i+1}/U Xi==Xi+1/U ,说明没有新的元素了,此时 X i X_i Xi 就是闭包

闭包的 覆盖 : 如果 G + = F + 如果G^+ = F^+ 如果G+=F+ ,就说F是G的覆盖,或者G是F的覆盖,或F与G是等价的

最小依赖集/最小覆盖/极小函数依赖集求法

口号: ①右切②除本求包,右部在包要除③左部最小化,分别考察了左部右部传递的冗余性
1. 检查 X → A ,若 X → A 1 A 2 A 3 . . , 依次拆分成 X → A 1 , X → A 2 , X → A 3 X\to A,若X\to A_1A_2A_3..,依次拆分成X\to A_1,X\to A_2,X \to A_3 XA,若XA1A2A3..,依次拆分成XA1,XA2,XA3
2. 检查依赖 X → A X\to A XA,若 G = F − { X → A } G = F-\{X\to A \} G=F{XA} , A ∈ X G + A\in X_G^+ AXG+ ,那么从集合中去掉该依赖 X → A X\to A XA
3. 检查依赖 X → A X\to A XA ,设 X = B 1 B 2 . . . B m X=B_1 B_2 ...B_m X=B1B2...Bm ,需要逐个 考察左部X单个元素 B i B_i Bi ,若 A ∈ ( X − B i ) F + A \in (X - B_i)_F^+ A(XBi)F+ ,就用 X − B i X-B_i XBi取代 X

候选键求法

  1. 分类:把属性分为L(仅在左部),R(仅在右部),LR(左右都有),N(两边都没有)
  2. X = L ∪ N X = L \cup N X=LN ,若X的 闭包=U ,则X一定是R的唯一候选键
  3. LR 中选择 一个属性Y,若( Y ‘ = ( Y ∪ X ) = U Y^`=(Y \cup X )=U Y=(YX)=U )则( Y ‘ Y^` Y是候选键)
  4. L , R L,R L,R中选择 2 , 3 , . . . 个属性 2,3,...个属性 2,3,...个属性,执行第三步步骤。 请注意:候选键对于 相同长度的要全部求闭包

3NF求法

  1. 求最小依赖集
  2. 合并左部相同,构成模式
  3. 模式中若 都不包含R的候选键要单独加入R的候选键(多个候选键只放一个)

数据库完整性

维护完整性,DBMS提供的功能

1.提供定义完整性约束条件的机制

2.提供完整性检查的方法

3.违约处理

实体完整性

# 把Student表中的Sno定义为码
Create table student (
Sno char(9) primary key,
Sname char(20) ,...
)
# 把(Sno,Cno)定义为码
Sno char(9) not null,
Cno char(4) not null,
Primary Key (Sno,Cno)

参照完整性

  • 在定义表的时候加 Foreign key (属性列) references Student(别的表的主码)
Sno char(9) not null,
Cno char(4) not null,
Foreign key (Sno) references Student(Sno)
Foregin key (Cno) references Course(Cno)

用户定义的完整性

数据库安全性

数据保护的功能

  • 数据的 安全性保护
  • 数据的 完整性保护
  • 并发控制
  • 数据的恢复

实现数据库安全性的方法(五种)

用户标识与鉴别

存取控制

自主存取控制方法(DAC)
  • 定义 存取权限称为授权
  • 使用grant进行授权
grant <权限>update,insert,delete)
on 对象类型
to 用户
  • 使用revoke

视图

审计

数据加密

数据库的安全性

  • 数据库的安全性是指 保护数据库以防止 不合法的使用 以造成的 数据泄露更改或破坏

关系数据库标准语言SQL

数据定义(DDL)

Create

CREATE TABLE <表名>
(
列名1,属性值,约束
);

Alter(修改)

Alter table <表名>
[add 列名, 数据类型]

Drop(删除)

修改功能

update 表名
set 列名 = 列的值
where 条件
# 把计算机学生的成绩全部置零
update sc
set Grade = 0
where Sdept = 'CS'

删除功能

# 删除学号为213的学生记录
delete from Student where Sno = 213

SQL查询的转化

全程量词转化

由于SQL中没有全称量词,所以对于 全部字样的查询,要进行否定的转化
例题:查询选修了全部课程的学生姓名。之前的逻辑是,查询学生p,对于所有的课x它都选修了。

现在是,查询学生p,没有一门课是该学生 不选修的

select sname from Student Where not exists (
select * from Course where not exists (
select * from sc where Cno = Course.Cno and student.Cno = cno
)
)

SQL的特点

1. 综合统一:SQL集数据定义语言 DDL,数据操纵语言DML,数据控制语言DCL,数据查询语言DQL功能于一体

2. 高度非过程化:用SQL进行数据操纵,只用提出 做什么,无需指出 怎么做,因此无需了解存取路径,存取路径的选择和SQL语句的执行过程由系统完成。

3. 面向集合的操作方式:SQL采用 集合操作方式,操作对象,查找结果可以是元组的集合。

4. 以同一种语法结构提供两种使用方式:SQL既是 自含式语言,又是 嵌入式语言

5. 语言简洁易学易用

视图

视图是一张 虚表,只存放 定义不会存放数据,数据仍然存放在原本的表中
视图一经定义,就可以被删除查询,但视图的更新(增,删,改)有一定限制

建立视图

CREATE VIEW <视图名> 
AS <子查询>
[WITH CHECK OPTION]
其中,若有 WITH CHECK OPTION表示进行update,insert,delete操作时要保证操作的行 满足视图定义
视图不仅可以建立在一个或多个 基本表中,也可以建立在一个或多个 视图

删除视图

DROP VIEW <视图名> CASCADE
# CASCADE指明级联删除视图

查询视图

1. 首先进行 有效性检查,检查查询中的表,视图是否存在
2. 从数据字典中取出视图的定义,把定义的 子查询用户的查询结合,转换成等价的 基本表查询。这一转换过程称为: 视图消解

更新视图

由于视图是不实际存储数据的 虚表,因此对视图的更新,最终要转换为对基本表的更新,对视图的更新操作也是通过对视图的消解,转换为对基本表的更新操作。

视图的作用

1. 视图能简化用户的操作:通过定义视图,让数据库看起来更加清晰,简化用户的查询工作
2. 视图使用户能以多种角度看待同一数据
3. 视图对重构数据库提供了一定程度的逻辑独立性
4. 视图能够对机密数据提供安全保护:通过限制每个用户看到的视图,可以限制用户仅修改子集定义的视图
5. 适当利用视图可以进行更加清晰的表达

关系数据库

关系的属性

  • 候选码:若关系中的某一个 属性组能唯一地标识某一个元组,则称该属性组为 候选码
  • 主码:一个关系中可以从 候选码中选择一个成为主码
  • 主属性:候选码的诸属性称为 主属性,不包含在任何候选码的属性称为 非主属性
  • 全码:关系模式所有的属性是这个关系模式的码

关系系统

  • 支持 选择,投影,连接

分类

  1. 表示系统
  2. 最小关系系统
  3. 关系上完备的系统
  4. 全关系系统

关系的完整性

实体完整性

  • 若属性是 主属性,则不能为空

参照完整性

  • 若属性 F 是基本关系R的 外码,与关系 S的主码对应,则R中每个元组在F上必须为:1.空值(F的每个属性都是空值) 2. 或者等于S中某个元组的主码

用户参照完整性

  • 某一具体应用所涉及的数据必须满足语义需求

关系运算

选择( σ 选择条件 ( 表的名字 ) \sigma_{选择条件}(表的名字) σ选择条件(表的名字))

  • 实际上是查询满足条件的行(元组)
  • 查询信息系全体学生: σ S d e p t = ′ I S ′ ( S t u d e n t ) \sigma_{Sdept = 'IS'}(Student) σSdept=IS(Student)
  • 查询年龄小于20岁的学生: σ S a g e < 20 ( S t u d e n t ) \sigma_{Sage<20}(Student) σSage<20(Student)

投影( π 属性列 ( 表的名字 ) \pi_{属性列}(表的名字) π属性列(表的名字))

  • 实际上是查询新的 关系的子集
  • 查询学生关系中都有哪些系: π S d e p t ( S t u d e n t ) \pi_{Sdept}(Student) πSdept(Student)

连接

  • 自然连接(要求连接的两个属性组有相同的分量)

除法

  • 关系X,Y,X÷Y=(X中拥有Y列的属性列)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Elasticsearch:语义搜索即服务处于卓越搜索的中心

作者&#xff1a;来自 Elastic Sherry Ger, Stephen Brown 对于许多企业来说&#xff0c;搜索卓越中心&#xff08;center of excellence - COE&#xff09;向其用户提供搜索服务&#xff0c;从不同的数据源中整理知识&#xff0c;并将搜索功能集成到其内部和外部应用程序中。…

Tensorflow2.0笔记 - metrics做损失和准确度信息度量

本笔记主要记录metrics相关的内容&#xff0c;详细内容请参考代码注释&#xff0c;代码本身只使用了Accuracy和Mean。本节的代码基于上篇笔记FashionMnist的代码经过简单修改而来&#xff0c;上篇笔记链接如下&#xff1a; Tensorflow2.0笔记 - FashionMnist数据集训练-CSDN博…

AI 异构计算机设计方案:902-基于6U VPX 高带宽PCIe的GPU AI 异构计算机

基于6U VPX 高带宽PCIe的GPU AI 异构计算机 一、产品概述 基于6U 6槽 VPX 高带宽PCIe的GPU AI 异构计算机以PCIe总线为架构&#xff0c;通过高带宽的PCIe互联&#xff0c;实现主控计算板、GPU AI板卡&#xff0c;FPGA接口板&#xff0c;存储板的PCIe高带宽互联访问&…

揭秘百度百科审核内幕,百科词条审核究竟需要多久?

百度百科作为国内最大的网络百科全书平台之一&#xff0c;致力于提供全面、准确的知识服务&#xff0c;同时也承担着审核百科词条的工作。在互联网时代&#xff0c;人们对信息的需求日益增长&#xff0c;因此百度百科的审核工作显得尤为重要。那么&#xff0c;百度百科词条审核…

152 Linux C++ 通讯架构实战7 ,makefile编写改成for cpp,读配置文件,内存泄漏查找,设置标题实战

读写配置文件代码实战。nginx.conf 一个项目要启动&#xff0c;需要配置很多信息&#xff0c;第一项就是学习如何配置一个项目 nginx.conf的内容 #是注释行&#xff0c; #每个有效配置项用 等号 处理&#xff0c;等号前不超过40个字符&#xff0c;等号后不超过400个字符&#…

虚幻引擎资源加密方案解析

前段时间&#xff0c;全球游戏开发者大会(Game Developers Conference&#xff0c;简称GDC)在旧金山圆满落幕&#xff0c;会议提供了多份值得参考的数据报告。根据 GDC 调研数据&#xff0c;当下游戏市场中&#xff0c;Unreal Engine (下文简称虚幻)和 Unity 是使用最多的游戏引…

Qlib-Server:量化库数据服务器

Qlib-Server:量化库数据服务器 介绍 Qlib-Server 是 Qlib 的配套服务器系统,它利用 Qlib 进行基本计算,并提供广泛的服务器系统和缓存机制。通过 Qlib-Server,可以以集中的方式管理 Qlib 提供的数据。 框架 Qlib 的客户端/服务器框架基于 WebSocket 构建,这是因为 WebS…

js动态设置页面高度

准备一个div <div class"card-edit"><!-- 业务需求 --> </div>开始操作 // 获取页面的中需要设置高度的元素 如&#xff1a;card-editconst autoStyle document.getElementsByClassName(card-edit)[0]// 根据业务需求做判断// 此处设定&#…

DC电源模块的设计与制造流程

BOSHIDA DC电源模块的设计与制造流程 DC电源模块是一种用于将交流电转换为直流电的设备。它广泛应用于各种电子设备中&#xff0c;如电子产品、工业仪器、电视等。下面是DC电源模块的设计与制造流程的简要描述&#xff1a; 1. 需求分析&#xff1a;在设计DC电源模块之前&#…

sql——对于行列转换相关的操作

目录 一、lead、lag 函数 二、wm_concat 函数 三、pivot 函数 四、判断函数 遇到需要进行行列转换的数据处理需求&#xff0c;以 oracle 自带的表作为例子复习一下&#xff1a; 一、lead、lag 函数 需要行列转换的表&#xff1a; select deptno,count(empno) emp_num from…

R语言赋值符号<-、=、->、<<-、->>的使用与区别

R语言的赋值符号有&#xff1c;-、、-&#xff1e;、&#xff1c;&#xff1c;-、-&#xff1e;&#xff1e;六种&#xff0c;它们的使用与区别如下: <-’&#xff1a;最常用的赋值符号。它将右侧表达式的值赋给左侧的变量&#xff0c;像一个向左的箭头。例如&#xff0c;x …

Python-VBA编程500例-024(入门级)

字符串写入的行数(Line Count For String Writing)在实际应用中有着广泛的应用场景。常见的应用场景有&#xff1a; 1、文本编辑及处理&#xff1a;在编写或编辑文本文件时&#xff0c;如使用文本编辑器或文本处理器&#xff0c;经常需要处理字符串并确定其在文件中的行数。这…

【数据结构 | 图论】如何用链式前向星存图(保姆级教程,详细图解+完整代码)

一、概述 链式前向星是一种用于存储图的数据结构&#xff0c;特别适合于存储稀疏图&#xff0c;它可以有效地存储图的边和节点信息&#xff0c;以及边的权重。 它的主要思想是将每个节点的所有出边存储在一起&#xff0c;通过数组的方式连接&#xff08;类似静态数组实现链表…

基于Springboot+Vue的酒店管理系统!新鲜出炉,可商用,带源码

新年了给大家分享一套基于SpringbootVue的酒店管理系统源码&#xff0c;在实际项目中可以直接复用。(免费提供&#xff0c;文末自取) 一、系统运行图&#xff08;管理端和用户端&#xff09; 1、管理登陆 2、房间管理 3、订单管理 4、用户登陆 5、房间预定 二、系统搭建视频教…

JavaEE—— HTTP协议和与Tomcat (末篇)

本篇文章&#xff0c;承接前面两篇文章&#xff1a; 在前面的两篇文章中&#xff0c;简单介绍了 什么是 HTTP 协议&#xff0c;介绍了抓包工具&#xff0c;如何构造 HTTP 请求&#xff0c;以及&#xff0c;如何使用第三方工具来简化构造请求的过程。 如果需要了解前面的知识可…

算法---动态规划练习-6(地下城游戏)

地下城游戏 1. 题目解析2. 讲解算法原理3. 编写代码 1. 题目解析 题目地址&#xff1a;点这里 2. 讲解算法原理 首先&#xff0c;定义一个二维数组 dp&#xff0c;其中 dp[i][j] 表示从位置 (i, j) 开始到达终点时的最低健康点数。 初始化数组 dp 的边界条件&#xff1a; 对…

AI赋能微服务:Spring Boot与机器学习驱动的未来应用开发

&#x1f9d1; 作者简介&#xff1a;阿里巴巴嵌入式技术专家&#xff0c;深耕嵌入式人工智能领域&#xff0c;具备多年的嵌入式硬件产品研发管理经验。 &#x1f4d2; 博客介绍&#xff1a;分享嵌入式开发领域的相关知识、经验、思考和感悟。提供嵌入式方向的学习指导、简历面…

实践笔记-harbor搭建(版本:2.9.0)

harbor搭建 1.下载安装包&#xff08;版本&#xff1a;2.9.0&#xff09;2.修改配置文件3.安装4.访问harbor5.可能用得上的命令: 环境&#xff1a;centos7 1.下载安装包&#xff08;版本&#xff1a;2.9.0&#xff09; 网盘资源&#xff1a;https://pan.baidu.com/s/1fcoJIa4x…

Vue中的一些指令与计算方法

语法 插值语法 HTML的双标签内容中使用&#xff0c;在{{}}之内书写JS代码 属性语法 1.v-bind或: 2.:属性名"值"或v-bind"值" 事件语法 v-on或 v-on:事件名"方法名"或事件名"方法名" 选项 选项&#xff1a;可选的配置项——官方…

vue3封装Element动态表单组件

1. 封装组件DymanicForm.vue 使用component实现动态组件组件不能直接使用字符串传入&#xff0c;所以根据传入的组件名称找到对应的组件校验规则&#xff0c;可使用rule传入自定义规则&#xff0c;也可以使用封装好的基本规则 示例中使用了checkRequired暴露重置方法和校验方法…
最新文章