數據庫--數據庫基礎(一)

目錄

第一章? 緒論

一.數據庫的基本概念

1. 數據庫的4個基本概念

2、數據庫系統的特點

二.數據庫和文件

三.數據模型

1.概念模型

2.邏輯模型(物理模型)

2.1關系模型

四.數據庫系統的三級模式結構:

五數據庫的二級映像功能與數據獨立性

第二章? 關系數據庫

一.關系的基本概念

二.關系的類型

1.關系類型的概念

2.基本關系的6個性質

三.關系模式

1.關系模式的表示

2.關系數據庫

四.關系的完整性

1.實體完整性

2.參照完整性

3.用戶定義的完整性

五.關系運算

1.傳統的集合運算

2.專門的關系運算

第三章? 關系數據庫標準語言

一.模式的定義和刪除

1.定義模式

2.刪除模式

二.基本表的定義,刪除和修改

?1.定義基本表

2.修改基本表

3.刪除基本表

三.索引的建立和刪除

?1.建立索引

2.修改索引

3.刪除索引

四.數據查詢?

? ? ? ? ? ? ? ? ? ??

第四章? 數據庫安全性

1.不安全因素

2、數據庫安全性控制

3、為什么要授權

4、如何授權:

5、收回授權: 收回 REVOKEREVOKE

6、創建數據庫模式的權限

7、數據庫角色

8、視圖機制

9、審計

10、數據加密

第五章? 數據庫完整性

1、數據庫的完整性是指數據的正確性和相容性

2、維護完整性需要實現的功能

3、三大完整性

1.屬性上的約束條件

第六章? 關系數據理論

?編輯一.第一范式

二.第二范式

三.第三范式

四.BCNF

五.數據依賴、

1.函數依賴

2.多值依賴?

六.第四范式

七.數據依賴的公理系統

1.蘊涵

2.算法(含覆蓋知識點)?

第七章? 數據庫設計


第一章? 緒論

一.數據庫的基本概念

1. 數據庫的4個基本概念

數據:描述事物的符號,數據庫中存儲的基本對象

?數據庫 :長期存儲在計算機內的、有組織的、可共享的大量數據的集合

?數據庫管理系統?DBMS: 位于用戶與操作系統之間的一層數據管理軟件

?數據庫系統 : 由數據庫、數據庫管理系統、應用程序和數據庫管理員 (DBA) 組成

2、數據庫系統的特點

① 數據結構化

② 數據的共享性高,冗余度低而且容易擴充③ 數據獨立性高:物理獨立性 (應用程序與物理存儲相互獨立,數據的物理存儲改變,應用程序不改變),邏輯獨立性 (應用程序與邏輯結構相互獨立,數據的邏輯結構改變,應用程序不改變)

④ 數據由數據庫管理系統統一管理和控制

二.數據庫和文件

在日常生活中,我們會使用很多的軟件,那么,大家思考一下,這些軟件中最主要的是什么呢?是數據。這些軟件中的數據的存儲需要數據庫,但是,我們之前學過的文件的知識點中提到,文件也可以存儲數據,那么為什么不用文件來存儲呢?

一般的文件確實提供了數據的存儲功能,但是文件沒有提供非常好的數據(內容)管理能力(用戶角度),文件只是把數據存儲起來,如果要增加,查找數據,那么在文件中操作會很不方便

文件保存數據的缺點

1.文件的安全性問題

2.文件不利于數據查詢和管理

3.文件不利于存儲海量數據

4.文件在程序中控制不方便

數據庫本質:對數據內容存儲的一套解決方案,你給我(數據庫/mysqld)字段或者要求,我給你結果就行

0e1f2fba40a140e4b3eab9e617bd5f65.png

數據庫定義的某一種提供數據存儲能力的一種文件,有自己內部的格式

數據庫存儲介質:磁盤,內存

三.數據模型

數據模型是對現實世界的模擬,是數據庫系統的核心和基礎

數據模型的組成要素:數據結構、數據操作、數據的完整性約束條件數據模型是嚴格定義的一組概念的集合,需要精確描述系統的靜態特性、動態特性和完整性約束條件因此數據模型由以下三個部分組成:

數據結構:描述系統的靜態特性→描述數據庫的組成對象以及對象之間的聯系

數據操作:描述系統的動態特性→是對數據庫中各種對象的實例所允許的操作的集合,其類型有查詢和更新(增刪改)

數據的完整性約束條件:用以限定符合數據模型的數據庫狀態以及狀態的變化,以保證數據的正確、有效與相容,完整性約束條件是一組完整性規則的集合

數據模型

***數據模型包括概念模型 (信息模型)和邏輯模型/物理模型

1.概念模型

按用戶的觀點建模,用于數據庫設計,表示方法有 E-R模型邏輯模型按計算機的觀點建模

2.邏輯模型(物理模型)

描述數據在系統內部(或磁盤或磁帶)的表示方式和存取方式

2.1關系模型

二維表

學號姓名年齡性別系名年級
2013004小明19社會學2013
2013006大華20法學2013

關系:一個關系對應通常說的是一張表。如上圖的學生登記表

元組:表里的一行是一個元組。

屬性:表里的一列是一個屬性,給每一個屬性起一個名稱就是屬性名。上圖有六個屬性

域:一組具有相同數據類型的值的集合。上圖的性別的域是(男,女)

分量:元組中的一個屬性值

關系模式:關系名(屬性1,屬性2,屬性3...)? ? ?學生(學號,姓名,年齡,性別,系名,年級)

四.數據庫系統的三級模式結構:

1.型和值的區別:

舉個例子,

記錄型:學生(學號,姓名,性別,系別,年齡,籍貫)

記錄值:(2013006,小明,男,計算機系,19,江蘇南京)

2.外模式、模式 (邏輯模式)、內模式

外模式(子模式/用戶模式):數據庫用戶能夠看見和使用的局部數據的邏輯結構和特征的描述,數據庫用戶的數據視圖,是與某應用有關的數據的邏輯表示,不同的應用程序有時可以共用同一個外模式,外模式是模式的子集

模式 (邏輯模式):數據庫中全體數據的邏輯結構和特征的描述,是所有用戶的公共數據視圖,只涉及型而與值無關,一個數據庫只有一個模式

內模式 (存儲模式):數據物理結構和存儲方法的描述,是數據在數據庫內部的組織方式,一個數據庫只有一個內模式

五數據庫的二級映像功能與數據獨立性

數據庫系統的三級模式是對數據進行抽象的三個級別

外模式/模式映像

保證了數據的邏輯獨立性當模式改變時,對外模式/模式的映像做出改變,保證外模式不變,應用程序由外模式編寫,從而應用程序不變

模式/內模式映像(唯一的)

保證了數據的物理獨立性當數據庫的存儲結構改變時,對模式/內模式映像做出改變,使模式不變,進而應用程序不變

第二章? 關系數據庫

關系模式是對關系的描述,關系模式是型,關系是值?

一.關系的基本概念

笛卡爾積:D={() ()},一個記錄叫做一個元組,元組中的每一個屬性值叫一個分量

基數:域的元素個數

A={a,b}? B={0,1,2}? ?兩個集合的笛卡爾積為{(a,0)(a,1)(a,2)(b,0)(b,1)(b,2)}

候選碼:某一屬性組的值能唯一標識一個元組,而它的子集不能,這個屬性組為候選碼

在學生關系中,學號可以唯一標識一個學生,班級+姓名也可以,那么就說學號(班級+姓名)都是后選碼

主碼:簡單來說就是從候選碼中選出一個最具有代表性的

全碼:關系模式的所有屬性都是這個關系模式的候選碼

外碼:關系R1,R2,其中屬性集X是R1的非主屬性,而是R2的主碼,就說X的、是R1的外碼,R1為參照關系,R2為被參照關系(外碼只是不是主碼,不代表外碼不是主屬性)

主屬性:包含在任何一個候選碼的各個屬性,也就是說,之前提到的(班級+姓名)中,班級和姓名都是主屬性

非主屬性:不包含在任何候選碼的屬性

元組:關系中的每個元素是關系中的元組

二.關系的類型

1.關系類型的概念

基本關系(基本表):實際存在的表

查詢表:查詢結果對應的表

視圖表:由基本表或其他視圖表導出的表,是虛表,不對應實際存儲的數據

2.基本關系的6個性質

(1)列是同質的。(同一數據類型)

(2)不同的列可以出自同一個域,不同的屬性要有不同的屬性名

(3)列的順序無所

(4)任意兩個元組的候選碼不能取相同的值

(5)行的順序無所謂
(6)分量必須取原子值,每一個分量都不可分的數據項?

三.關系模式

1.關系模式的表示

R(U,D,DOM,F)

U:關系名

D:組成該關系的屬性名的集合

DOM:屬性向域的映像集合

F:屬性見數據的依賴關系集合

2.關系數據庫

?關系數據庫的型稱為關系數據庫模式

關系數據庫的值就是關系數據庫模式在某一時刻對應的關系的集合

四.關系的完整性

關系模型的三類完整性約束:實體完整性,參照完整性(關系的兩個不變性),用戶定義的完整性

1.實體完整性

如果屬性A(一個或一組)是? ? ? ? 基本關系R的主屬性,那么A不能取空值

學生(學號,姓名,班級)中,學號是主碼,則學號不能取空值

2.參照完整性

3.用戶定義的完整性

五.關系運算

基本運算:并,差,笛卡爾積,投影,選擇?

1.傳統的集合運算

并?

R∪S
R∪S={t∣t∈R∨t∈S}


R - S
R?S={t∣t∈R∧t∈S}


R∩S={t∣t∈R∧t∈S}
R∩S=R–(R?S)

笛卡爾積
嚴格地講應該是廣義的笛卡爾積

2.專門的關系運算

選擇(行的角度)

投影(列的角度)?

除運算

第三章? 關系數據庫標準語言

?

?

一.模式的定義和刪除

1.定義模式

CREATE SCHEMA <模式名>AUTHORIZATION<用戶名>

例1

為用戶WANG定義一個S-T模式

CREATE SCHEMA"S-T" AUTHORIZATION WANG

例2

為用戶ZHANG創建一個模式TEST,并且在其中定義一個表TABL

CREATE SCHEMA TEST AUTHORIZATION ZHANG

CREATE TABLE TABL(COL1

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?COL2

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? );

2.刪除模式

DROP SCHEMA<模式名><CASCADE | RESTRICT>;

CASCADE和RESTRICT兩個選一個

DROP SCHEMA ZHANG CASCADE;刪除模式ZHANG ,里面的TABL表也被刪除

二.基本表的定義,刪除和修改

?1.定義基本表

CREATE TABLE<表名>(<列名><數據類型>[列級完整性約束條件]

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?<列名><數據類型>[列級完整性約束條件]);

例子

建立一個學生表Student

CREATE TABLE Student

(Sno CHAR(5)

?Sname CHAR(9)

);

2.修改基本表

?ALTER TABLE<表名>

[ADD [COLUMN] <新列名><數據類型>[完整性約束]]

[ADD <表級完整性約束>]

[DROP [COLUMN] <列名><數據類型>[CASCADE | RESTRICT]]

[DROP CONSTRAINT <完整性約束名>[CASCADE | RESTRICT]]

[ALTER COLUMN<列名><數據類型>];

ADD--增加

DROP COLUMN--刪除列

DROP CONSTRAINT--刪除指定的完整性約束條件

ALTER COLUMN--修改原有的列定義

例子

向Student中加入入學時間

ALTER COLUMN Student ADD S_entrance DATE;

將年齡數據由字符型改成整型

ALTER COLUMN Student?ALTER COLUMN Sage INT;

3.刪除基本表

DROP TABLE <表名>[CASCADE | RESTRICT] ;

三.索引的建立和刪除

?1.建立索引

?CREATE [UNIQUE][CLUSTER]INDEX<索引名>

ON<表名>();

2.修改索引

?ALTER INDEX<舊索引名>RENAME TO <新索引名>;

3.刪除索引

DROP INDEX<索引名>;

四.數據查詢?

?

? ? ? ? ? ? ? ? ? ??

第四章? 數據庫安全性

1.不安全因素

① 非授權用戶對數據庫的惡意存取和破壞

② 數據庫中重要數據的泄露

③ 安全環境的脆弱性

2、數據庫安全性控制

① 用戶身份鑒別:靜態口令鑒別、動態口令鑒別、生物特征鑒別、智能卡鑒別

② 存取控制

③ 自主存取控制方法

3、為什么要授權

授權是指授予和收回,是數據庫安全性控制中的自主存取控制方法。是為了保護數據庫,防止不合法使用所造成的數據泄露、更改或破壞

4、如何授權:

發出如下語句的可以是數據庫管理員、也可以是數據庫對象創建者、也可以是已經擁有該權限的用戶

GRANT 權限

ON 對象類型 對象名

TO 用戶名 [WITH GRANT OPTION];

權限: 查詢權限 SELECT, 全部操作權限 ALL PRIVILEGES

對象類型&對象名:對象類型可以是TABLE 也可以是 VIEW,對象名為對應的表名或者視圖名

用戶名:可以是指定用戶,也可以是全體用戶 PUBLIC

如果沒有指定 WITH GRANT OPTION 子句,則獲得某種權限的用戶只能使用該權限,不能傳播該權限注意:SQL 不允許循環授權,即被授權者不能把權限再授回給授權者或其祖先

eg. 把查詢權限授給用戶 U1GRANT SELECT ON TABLE Student TO U1;

5、收回授權: 收回 REVOKEREVOKE

權限 ON 對象類型 對象名 FROM 用戶名 [CASCADE|RESTRICT];

CASCADE:級聯回收。將用戶傳播出去的權限一并收回

RESTRICT:受限回收。若用戶傳播過該權限,回收將會失敗

eg.把用戶 U4 修改學生學號的權限收回

REVOKE UPDATE(Sno) ON TABLE Student FROM U4;

6、創建數據庫模式的權限

對創建數據庫模式一類的數據庫對象的授權再數據庫管理員創建用戶時實現:

CREATE USER username[WITH DBA|RESOURCE|CONNECT];

只有系統的超級用戶才有權創建一個新的數據庫用戶,新創建的數據庫用戶有三種權限:DBA、RESOURCE、CONNECT (此為默認)

DBA:可以創建新用戶、創建模式、創建基本表和視圖等,擁有對所有數據庫對象的存取權限,還可以把這些權限授予一般用戶

RESOURCE:可以創建基本表和視圖,但不能創建模式和新用戶。數據庫對象的屬主可以用GRANT語句把該對象上的存取權限授予其他用戶

CONNECT:只能登陸數據庫,根據其他用戶或者數據庫管理員授予的權限的情況對數據庫對象進行權限范圍內的操作

7、數據庫角色

角色是權限的集合。可以為一組具有相同權限的用戶創建一個角色,使用角色來管理數據庫權限可以簡化授權的過程

創建角色: CREATE ROLE 角色名;

在一個角色中添加角色或者用戶: GRANT 角色 TO 某角色/某用戶 [WITH ADMIN OPTION];

????????指定 WITH ADMIN OPTION 子句,則獲得某種權限的角色或者用戶還可以把這種權限再授予其他角色

給角色授權: GRANT 權限 ON 對象類型 對象名 TO 角色;角色權限收回: REVOKE 權限 ON 對象類型 對象名 FROM 角色;

8、視圖機制

為不同的用戶定義不同的視圖,把不需要的數據隱藏,這樣用戶就不會誤操作

9、審計

把對數據庫的所有操作都記錄到審計日志中,然后就可以通過日志審查這個里面是否有一些非法的行為

10、數據加密

通過一些加密算法,把明文變成密文。這樣別人就無法查看

例子

把查詢Student表的權限授給用戶U1

GRANT SELECT
ON TABLE Student
TO U1;

把對表SC的查詢權限授予所有用戶

GRANT SELECT
ON TABLE SC
TO PUBLIC;

把查詢Student表和修改學生學號的權限授給用戶U4

GRANT UPDATE(Sno),SELECT
ON TABLE Student
TO U4;

把對表SC的NSERT權限授予U5用戶,并允許將此權限再授予其他用戶。

GRANT INSERT
ON TABLE SC
TO U5
WITH GRANT OPTION;

把對Student表和Course表的全部操作權限授予用戶U2和U3.

GRANT ALL PRIVILEGES
ON TABLE Student, Course
TO U2,U3;

把用戶U4修改學生學號的權限收回

REVOKE UPDATE(Sno)

ON TABLE Student
FROM U4:
收回所有用戶對表SC的查詢權限。
REVOKE SELECT
ON TABLE SC
FROM PUBLIC;
把用戶US對SC表的INSERT權限收回。
REVOKE INSERT
ON TABLE SC
FROM US CASCADE;

第五章? 數據庫完整性

1、數據庫的完整性是指數據的正確性和相容性

正確性:符合現實世界語義

相容性:同一對象在不同表中的數據符合邏輯

2、維護完整性需要實現的功能

① 提供定義完整性約束條件的機制

② 提供完整性檢查的方法

③ 進行違約處理

3、三大完整性

① 實體完整性:主碼唯一且非空檢查與違約處理:檢查主碼是否唯一,如果不唯一則拒絕插入或修改;檢查主碼各個屬性是否為空,只要有一個為空就拒絕插入或修改

② 參照完整性:外碼的約束檢查:對被參照表和參照表進行增刪改操作時可能會破壞參照完整性,必須檢查以保證兩個表的相容性違約處理:外碼約束可以在創建參照表時說明不同的違約策略可能破壞參照完整性的情況及違約處理

③ 用戶定義完整性:屬性上約束條件的定義

1.屬性上的約束條件

非空 NOT NULL

列值唯一 UNIQUE

檢查列值是否滿足一個表達式CHECK

檢查和違約處理:當向表中插入元組或者修改屬性值時,關系數據庫管理系統將檢查屬性上的約束條件是否被滿足,如果不滿足則操作被拒絕

2.元組上的約束條件在CREATE TABLE語句中可以用CHECK 短語定義元組上的約束條件,元組級的限制可以設置不同屬性之間的取值的相互約束條件

檢查和違約處理:當向表中插入元組或者修改屬性值時,關系數據庫管理系統將檢查元組上的約束條件是否被滿足,如果不滿足則操作被拒絕

第六章? 關系數據理論

一.第一范式

?1.概念

二維表,每一個分量必須是不可分的數據項

二.第二范式

?若R屬于INF,且每一個非主屬性完全函數依賴于任何一個候選碼,則R屬于2NF

三.第三范式

?關系模式R 中若不存在這樣的碼X、屬性組Y及非主屬性Z(Z (強制依賴)Y),使得X→Y,Y→Z,成立,Y→X不成立,則稱R ∈ 3NF

四.BCNF

?設關系模式R<U,F>∈1NF,如果對于R的每個函數依賴X→Y,若Y不屬于X,則X必含有超碼,那么R∈BCNF。滿足BCNF條件有:所有非主屬性對每一個候選鍵都是完全函數依賴; 所有的主屬性對每一個不包含它的候選鍵,也是完全函數依賴;沒有任何屬性完全函數依賴于非候選鍵的任何一組屬性。

五.數據依賴、

1.函數依賴

設R(U)是屬性集U上的關系模式,X,Y是U的子集·若對于R(U))的任事數依賴一個可能的關系r,r中不可能存在兩個元組在X上的屬性值相等,而在Y上的屬性值不等定則稱X函數確定Y或Y函數依賴于X,記作X->Y
函數依賴和別的數據依賴一樣是語義范疇的概念,只能根據語義來確定一個函數

2.多值依賴?

?

對稱性

傳遞性

函數依賴可以看作是多值依賴的特殊情況

六.第四范式

?設關系R(X,Y,Z),其中X,Y,Z是成對的、不相交屬性的集合。若存在非平凡多值依賴,則意味著對R中的每個屬性

七.數據依賴的公理系統

1.蘊涵

?對于滿足一組數依胸F的關系模式R<U,F>,其中任何一個關系r,若函數依賴X->Y都成立,則稱F邏輯蘊涵X->Y

2.算法(含覆蓋知識點)?

第七章? 數據庫設計

一.數據庫設計概念

1. 信息管理要求:在數據庫中應該存儲和管理哪些數據對象

2.數據操作要求:對數據對象進行查詢,增,刪,查,統計等操作

3.數據庫設計步驟:

需求分析;
概念結構設計;
邏輯結構設計;
物理結構設計;
數據庫實施;
數據庫運行和維護

4.數據字典

內容:數據項,數據結構,數據流,數據存儲和處理

二.概念結構設計

1.E-R模型

2,E-R圖

實體型--矩形

屬性--橢圓形

聯系--菱形

1、需求分析調查機構情況與熟悉業務活動,明確用戶的需求,確定系統的邊界,生成數據字典和用戶需求規格說明書

2、概念結構設計將需求分析得到的用戶需求抽象為概念模型,繪制E-R圖

3、邏輯結構設計將E-R圖轉換為與DBMS相符合的邏輯結構 (包括數據庫模式和外模式),例如E-R圖向關系模型轉換,再根據規范化理論對數據模型進行優化,設計用戶子模式

4、物理結構設計通常關系數據庫物理設計的內容包括關系模式選擇存取方法、以及設計關系、索引等數據庫文件的物理存儲結構

5、數據庫實施建立實際數據庫結構、試運行、裝入數據

? ?6、數據庫運行和維護維護數據庫的安全性、完整性控制以及系統的轉儲和恢復;性能的監督、分析和改進;增加新功能;發現錯誤和修改錯誤

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/15673.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/15673.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/15673.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

WEBPACK開發|生產環境配置(抽離公共部分)

這是webpack4演示&#xff0c;webpack5有些插件不在推薦&#xff0c; 1. webpack.base.config.js文件的配置說明 const path require(path); const webpack require(webpack); const ExtractTextPlugin require(extract-text-webpack-plugin); // 該插件的主要是為了抽離c…

【LeetCode面試經典150題】100. 相同的樹

一、題目 100. 相同的樹 - 力扣&#xff08;LeetCode&#xff09; 給你兩棵二叉樹的根節點 p 和 q &#xff0c;編寫一個函數來檢驗這兩棵樹是否相同。 如果兩個樹在結構上相同&#xff0c;并且節點具有相同的值&#xff0c;則認為它們是相同的。 二、思路 二叉樹的題&#…

C++的lambda函數、bind函數、類函數綁定參數,學習測試用例

在C中&#xff0c;Lambda函數、std::bind 和類函數綁定參數提供了靈活的方式來處理函數調用。 Lambda函數是一種匿名函數&#xff0c;可以捕獲外部變量并在函數體內使用。它們提供了簡潔而強大的方式來定義內聯函數。std::bind 用于創建一個新的函數對象&#xff0c;其中部分參…

2024電工杯數學建模B題高質量成品論文,包括代碼數據

2024電工杯數學建模B題高質量成品論文&#xff0c;包括代碼數據 完整內容見文末名片 摘要 大學時期是學生們知識學習和身體成長的重要階段&#xff0c;良好的飲食習慣對于促進生長發育和保證身體健康具有重要意義。針對當前大學生中存在的飲食結構不合理及不良飲食習慣的問題…

為了性能,放棄tft_eSPI,選擇arduino_gfx吧

本來對于tft_espi和arduino_gfx沒啥特別的感覺&#xff0c;都是tft屏幕驅動,arduino_gfx的好處就是除了支持tft外還支持一些oled屏幕。 誰知道在探尋我那個在單片機項目上顯示中文方案 https://github.com/StarCompute/tftziku 時候&#xff0c;尋求極致性能測了一些東西。 t…

23種設計模式之一————工廠模式詳細講解

工廠模式介紹 定義分類工廠模式核心角色&#xff1a;簡單工廠模式定義特點優點缺點應用場景代碼實現 工廠方法模式&#xff08;別名&#xff1a;虛擬構造&#xff09;定義特點優點缺點應用場景代碼實現 抽象工廠模式定義特點優點缺點應用場景代碼實現工廠模式小結 定義 工廠模…

算法之背包問題

可分的背包問題是可以用貪心法來解決&#xff0c;而0-1背包問題通常使用動態規劃方法來解決。 可分背包問題&#xff1a; 在可分背包問題中&#xff0c;物品可以被分割&#xff0c;您可以取走物品的一部分以適應背包的容量。這里的關鍵是物品的價值密度&#xff0c;即單…

最小產品價格差值

題目描述 給定某產品多少天的價格&#xff0c;記錄于prices中&#xff0c;請找出任意兩天之間的最小價格差&#xff08;即abs(prices[i] - prices[j])&#xff09;的最小值&#xff0c;i!j&#xff09;并計算最小介個差組合的個數 樣例1 輸入 [1,3,7,5,12] 輸出 3 樣例2…

VTK9.2.0+QT5.14.0繪制三維顯示背景

背景 上一篇繪制點云的博文中&#xff0c;使用的vtkCameraOrientationWidget來繪制的坐標軸&#xff0c;最近又學習到兩種新的坐標軸繪制形式。 vtkOrientationMarkerWidget vtkAxesActor 單獨使用vtkAxesActor能夠繪制出坐標軸&#xff0c;但是會隨著鼠標操作旋轉和平移時…

微服務中使用Maven BOM來管理你的版本依賴

摘要: 原創出處 sf.gg/a/1190000021198564 「飄渺Jam」歡迎轉載&#xff0c;保留摘要&#xff0c;謝謝&#xff01; 為什么要使用BOM? 如何定義BOM? 項目使用方法? BOM&#xff08;Bill of Materials&#xff09;是由Maven提供的功能,它通過定義一整套相互兼容的jar包版…

通過 NIO + 多線程 提升硬件設備與系統的數據傳輸性能

一、項目展示 下圖&#xff08;模擬的數據可視化大屏&#xff09;中數據是動態顯示的 二、項目簡介 描述&#xff1a;使用Client模擬了硬件設備&#xff0c;比如可燃氣體濃度檢測器。Client通過Socket與Server建立連接&#xff0c;Server保存數據到txt文件&#xff0c;并使用W…

結構體(位段)內存分配

結構體由多個數據類型的成員組成。那編譯器分配的內存是不是所有成員的字節數總和呢&#xff1f; 首先&#xff0c;stu的內存大小并不為29個字節&#xff0c;即證明結構體內存不是所有成員的字節數和。 ??其次&#xff0c;stu成員中sex的內存位置不在21&#xff0c;即可推測…

Swift 請求用戶授權以跟蹤其跨應用或網站的活動

步驟1:導入框架 首先,需要在Swift文件中導入AppTrackingTransparency框架。 import AppTrackingTransparency import AdSupport步驟2:請求跟蹤許可 在適當的地方請求用戶的跟蹤許可。通常,這個請求會在應用啟動時或者在用戶執行某些操作(例如,訪問應用中的廣告相關功能…

Linux服務器安裝docker,基于Linux(openEuler、CentOS8)

本實驗環境為openEuler系統(以server方式安裝)&#xff08;CentOS8基本一致&#xff0c;可參考本文) 目錄 知識點實驗 知識點 Docker 是一個開源的應用容器引擎。它允許開發者將應用及其所有依賴項打包到一個可移植的容器中&#xff0c;并發布到任何支持Docker的流行Linux或Wi…

基于python flask的web服務

基本例子 from flask import Flask app Flask(__name__) app.route(/)#檢查訪問的網址&#xff0c;根路徑走這里 def hello_world():return hello world#返回hello worldif __name__ __main__:# 綁定到指定的IP地址和端口app.run(host0.0.0.0, port1000, debugTrue)##綁定端…

設計一個完美的用戶角色權限表

設計一個完美的用戶角色權限表需要考慮系統的安全性、靈活性和可擴展性。以下是一個詳細的用戶角色權限管理表設計方案&#xff0c;包含多個表結構和字段描述。 目錄 1. 用戶表&#xff08;Users Table&#xff09;2. 角色表&#xff08;Roles Table&#xff09;3. 權限表&…

【數據結構與算法 | 基礎篇】環形數組模擬隊列

1. 前言 上文我們用環形單向鏈表實現了隊列.接下來我們用環形數組來模擬隊列.并實現了isFull()&#xff0c;isEmpty()等方法. 2. 環形數組模擬隊列 (1). Queue接口 : public interface Queue<E> {//向隊伍插入值, 插入成功返回true, 否則返回falseboolean offer(E v…

【Linux】TCP協議【上】{協議段屬性:源端口號/目的端口號/序號/確認序號/窗口大小/緊急指針/標記位}

文章目錄 1.引入2.協議段格式4位首部長度16位窗口大小32位序號思考三個問題【demo】標記位URG: 緊急指針是否有效提升某報文被處理優先級【0表示不設置1表示設置】ACK: 確認號是否有效PSH: 提示接收端應用程序立刻從TCP緩沖區把數據讀走RST: 對方要求重新建立連接; 我們把攜帶R…

windows 設置系統字體 (win11 win10)

由于微軟的字體是有版權的&#xff0c;所以我打算替換掉 1.下載替換工具 github的項目&#xff0c;看起來很多人對微軟默認字體帶版權深惡痛絕。 項目地址&#xff1a;nomeiryoUi地址 這里選取最新的版本即可 2.打開軟件 這里顯示標題欄不能改&#xff0c;確認&#xff0c;其…

蓋雅技能發展云,助力制造企業人效合一

制造行業盡管經歷多次變革&#xff0c;但企業對人的管理始終是一項高度依賴經驗和耗費人力的工作。隨著供應鏈管理和生產設備的自動化、數字化升級&#xff0c;如何將第一生產要素——人&#xff0c;通過數字化的工具融入制造過程的閉環&#xff0c;對企業實現自動化工廠和智能…