国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

數(shù)據(jù)庫(kù)面試常問(wèn)——for考研復(fù)試面試

這篇具有很好參考價(jià)值的文章主要介紹了數(shù)據(jù)庫(kù)面試常問(wèn)——for考研復(fù)試面試。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

關(guān)于數(shù)據(jù)庫(kù)的一些面試常問(wèn)問(wèn)題

前言:

本人22考研黨,已上岸,發(fā)一些復(fù)試準(zhǔn)備整理的資料作為對(duì)考研準(zhǔn)備的一個(gè)收尾。由于近幾年基本都是線上復(fù)試,線上的話會(huì)更加注重概念的考察,本人在復(fù)試準(zhǔn)備期間搜集了面試題,整理了很多資料。本文主要概括了數(shù)據(jù)庫(kù)在復(fù)試面試中可能會(huì)考察的一些問(wèn)題,僅供大家參考,如果對(duì)大家有幫助,希望大家點(diǎn)贊哦~
本文目前僅針對(duì)的是考研復(fù)試環(huán)節(jié),不涵蓋數(shù)據(jù)庫(kù)全部的知識(shí),祝大家復(fù)試順利。由于作者本人水平有限,若本文有任何不對(duì)歡迎大家留言指正!上岸不易,希望大家都能去到想去的地方,加油。

1. 關(guān)于鍵的概念

超鍵:在關(guān)系中能唯一標(biāo)識(shí)元組的屬性或?qū)傩约?。一個(gè)屬性可以為作為一個(gè)超鍵,多個(gè)屬性組合在一起也可以作為一個(gè)超鍵。超鍵包含候選鍵和主鍵。
候選鍵:是最小超鍵,即沒有冗余元素的超鍵。
主鍵:數(shù)據(jù)庫(kù)表中對(duì)儲(chǔ)存數(shù)據(jù)對(duì)象予以唯一和完整標(biāo)識(shí)的數(shù)據(jù)列或?qū)傩缘慕M合。一個(gè)數(shù)據(jù)列只能有一個(gè)主鍵,且主鍵的取值不能缺失,即不能為空值(Null)??蓮暮蜻x鍵中選擇一個(gè)作為主鍵
外鍵:在一個(gè)表中存在的另一個(gè)表的主鍵稱此表的外鍵。
主屬性:候選鍵中的所有屬性
非主屬性

2. 必須知道的基礎(chǔ)概念

(一)DB、DBMS、DBS、DBA
DB(數(shù)據(jù)庫(kù)):長(zhǎng)期存儲(chǔ)在計(jì)算機(jī)內(nèi)、有組織的、統(tǒng)一管理的相關(guān)數(shù)據(jù)的集合。
DBMS(數(shù)據(jù)庫(kù)管理系統(tǒng)):數(shù)據(jù)庫(kù)管理系統(tǒng)是位于用戶與OS之間的一層數(shù)據(jù)管理軟件,它為用戶或應(yīng)用程序提供了訪問(wèn)DB的方法。
DBS(數(shù)據(jù)庫(kù)系統(tǒng)):數(shù)據(jù)庫(kù)系統(tǒng)DBS是實(shí)現(xiàn)有組織動(dòng)態(tài)地存儲(chǔ)大量關(guān)聯(lián)數(shù)據(jù),方便多用戶訪問(wèn)的計(jì)算機(jī)硬件、軟件和數(shù)據(jù)資源組成的系統(tǒng),即采用數(shù)據(jù)庫(kù)技術(shù)的計(jì)算機(jī)系統(tǒng)。
DBA(數(shù)據(jù)庫(kù)管理員)
(二)數(shù)據(jù)庫(kù)的表 —— 相當(dāng)于一個(gè)類
實(shí)體 數(shù)據(jù)庫(kù)中的一行,也稱為一條記錄,一個(gè)元組
屬性 數(shù)據(jù)庫(kù)中的一列,一個(gè)字段
數(shù)據(jù)庫(kù)面試常問(wèn)——for考研復(fù)試面試

3. 文件系統(tǒng)和數(shù)據(jù)庫(kù)管理系統(tǒng)的區(qū)別

文件系統(tǒng) 共享性差,冗余度大,獨(dú)立性差
數(shù)據(jù)庫(kù)管理系統(tǒng) 共享性高,可以使多個(gè)用戶同時(shí)訪問(wèn)數(shù)據(jù)庫(kù),減少了數(shù)據(jù)冗余度,具有較高的物理獨(dú)立性和邏輯獨(dú)立性,整體結(jié)構(gòu)化,用數(shù)據(jù)模型描述

4. 三級(jí)模式?

三級(jí)模式包括外模式、模式、內(nèi)模式;
模式描述了數(shù)據(jù)庫(kù)中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征;
外模式描述了用戶可見的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征;
內(nèi)模式描述了數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)和存儲(chǔ)方式。
外模式/模式映像保證了數(shù)據(jù)的邏輯獨(dú)立性(應(yīng)用程序和數(shù)據(jù)庫(kù)的物理存儲(chǔ)是相互獨(dú)立的);
內(nèi)模式/模式映像的優(yōu)點(diǎn)保證了數(shù)據(jù)的物理獨(dú)立性(應(yīng)用程序和數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)是相互獨(dú)立的)。

5. 模型

概念模型:現(xiàn)實(shí)世界到信息世界的第一層抽象,是數(shù)據(jù)庫(kù)設(shè)計(jì)人員進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì)的有力工具,也是設(shè)計(jì)人員和用戶進(jìn)行交流的語(yǔ)言。用ER圖描述概念模型。
邏輯模型:表達(dá)計(jì)算機(jī)實(shí)現(xiàn)觀點(diǎn)的DB全局邏輯結(jié)構(gòu)的模型。邏輯模型主要有層次、網(wǎng)狀、關(guān)系和對(duì)象模型4種。
關(guān)系模型:關(guān)系模型建立在嚴(yán)格的數(shù)學(xué)概念基礎(chǔ)上;關(guān)系模型的概念單一,無(wú)論實(shí)體還是實(shí)體間的聯(lián)系,都用關(guān)系表示,對(duì)數(shù)據(jù)的檢索和更新也是關(guān)系;關(guān)系模型的存取路徑對(duì)用戶透明,有更高的數(shù)據(jù)獨(dú)立性和安全性,同時(shí)也簡(jiǎn)化了程序員的工作和數(shù)據(jù)庫(kù)開發(fā)

6. 關(guān)系模型中的完整性約束

約束是執(zhí)行數(shù)據(jù)校驗(yàn)的規(guī)則,用于保證數(shù)據(jù)完整性的規(guī)則
實(shí)體完整性:關(guān)系模式中的主碼不能為空值;
參照完整是:關(guān)系模式中的外碼只能是空值或者另一關(guān)系模式的主碼;
用戶定義完整性:針對(duì)某一屬性的約束。

7. MYSQL架構(gòu)

MySQL主要分為Server層和存儲(chǔ)引擎層:
Server層:主要包括連接器、查詢緩存、分析器、優(yōu)化器、執(zhí)行器等,所有跨存儲(chǔ)引擎的功能都在這一層實(shí)現(xiàn),比如存儲(chǔ)過(guò)程、觸發(fā)器、視圖,函數(shù)等,還有一個(gè)通用的日志模塊binglog日志模塊。
存儲(chǔ)引擎:主要負(fù)責(zé)數(shù)據(jù)的存儲(chǔ)和讀取。server層通過(guò)api與存儲(chǔ)引擎進(jìn)行通信。

8. SQL特點(diǎn)

**綜合統(tǒng)一。**集DCL,DML,DDL于一體;
**高度非過(guò)程化。**使用SQL進(jìn)行數(shù)據(jù)操作時(shí),是需要提出“做什么”,而不需要指明怎么做;
**面向集合的操作方式。**操作的對(duì)象、查找結(jié)果都可以是元組的集合;
同一種語(yǔ)法結(jié)構(gòu)提供多種使用方式。既可以作為獨(dú)立的語(yǔ)言進(jìn)行交互,又可以作為嵌入式語(yǔ)言嵌入到更高級(jí)的語(yǔ)言程序中;

9. DDL,DML,DCL

DDL(數(shù)據(jù)庫(kù)定義語(yǔ)言):create、alter、drop等,定義DB三級(jí)結(jié)構(gòu)的語(yǔ)言
DML(數(shù)據(jù)庫(kù)操縱語(yǔ)言):對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)操作的語(yǔ)言,insert、update、delete等
DCL(數(shù)據(jù)庫(kù)控制語(yǔ)言):包含grant、 revoke等

10. 數(shù)據(jù)字典DD

數(shù)據(jù)字典是系統(tǒng)內(nèi)部的一組系統(tǒng)表,他記錄了數(shù)據(jù)庫(kù)所有的定義信息,包括關(guān)系模式定義,視圖定義,索引定義完整性約束定義等,是在需求分析階段建立的。
它包括數(shù)據(jù)項(xiàng),數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)流,數(shù)據(jù)存儲(chǔ)和處理過(guò)程。

11. 外連接

外連接是指兩個(gè)表在進(jìn)行操作時(shí),不僅返回符合連接和查詢條件的元組,還返回不符合條件的一些元組;
左外連接(left join on): 包含左邊表的全部行(不管右邊的表中是否存在與它們匹配的行),以及右邊表中全部匹配的行
右外連接: 包含右邊表的全部行(不管左邊的表中是否存在與它們匹配的行),以及左邊表中全部匹配的行
全外連接(full outer join on 并集): 包含左、右兩個(gè)表的全部行,不管另外一邊的表中是否存在與它們匹配的行。

12. 交叉連接

生成笛卡爾積-它不使用任何匹配或者選取條件,直接將一個(gè)數(shù)據(jù)源中的每個(gè)行與另一個(gè)數(shù)據(jù)源的每個(gè)行都一一匹配。

13. 關(guān)于索引

索引相當(dāng)于目錄,用于提高數(shù)據(jù)表的訪問(wèn)速度的一種數(shù)據(jù)結(jié)構(gòu)。
作用:數(shù)據(jù)存儲(chǔ)在磁盤上,查詢數(shù)據(jù)時(shí),如果沒有索引,會(huì)加載所有的數(shù)據(jù)到內(nèi)存然后依次檢索,有了索引不需要加載所有的數(shù)據(jù)
優(yōu)點(diǎn):
減少磁盤I/O次數(shù),降低數(shù)據(jù)庫(kù)IO成本;提高查詢速度,當(dāng)用分組和排序子句進(jìn)行查詢時(shí),可以顯著減少分組和排序的時(shí)間,降低CPU的消耗;加快表之間的連接。
缺點(diǎn):
索引存在磁盤上,占用一定的物理空間;當(dāng)對(duì)表中的數(shù)據(jù)進(jìn)行增刪改時(shí),需要對(duì)索引進(jìn)行動(dòng)態(tài)的維護(hù),降低了數(shù)據(jù)維護(hù)的速度。且隨著數(shù)據(jù)量的增加,耗費(fèi)的時(shí)間也會(huì)增加。

索引分類:
聚簇索引 一般推薦用自增主鍵,保證空間利用率,減少頁(yè)分裂
非聚簇索引(二級(jí)索引) 用二級(jí)索引查需要回表操作(根據(jù)二級(jí)索引查到主鍵,再根據(jù)主鍵去主鍵索引查)
聚簇索引和非聚簇索引的區(qū)別:
聚簇索引葉子結(jié)點(diǎn)存儲(chǔ)數(shù)據(jù)記錄,非聚簇索引葉子結(jié)點(diǎn)存儲(chǔ)數(shù)據(jù)位置,不會(huì)影響數(shù)據(jù)表的物理存儲(chǔ)順序;一個(gè)表只能有一個(gè)聚簇,但可以多個(gè)非聚簇;使用聚簇查詢效率高,但增刪改操作效率比非聚簇低。
覆蓋索引:索引字段覆蓋了查詢語(yǔ)句涉及的字段,直接通過(guò)索引文件就可以返回查詢所需的數(shù)據(jù),不必通過(guò)回表操作。
回表:通過(guò)索引找到主鍵,再根據(jù)主鍵id去主鍵索引查。
索引下推:在根據(jù)索引查詢過(guò)程中就根據(jù)查詢條件過(guò)濾掉一些記錄,減少最后的回表操作。

索引設(shè)計(jì)原則
需要的時(shí)候:
經(jīng)常用于查詢的字段
經(jīng)常用于連接的字段
經(jīng)常需要排序的字段
不需要的時(shí)候:
基數(shù)小的表沒必要
區(qū)分度不高的字段不適合,比如性別
更新頻繁的不適合

為何用B+樹?
B+樹只在葉子結(jié)點(diǎn)儲(chǔ)存數(shù)據(jù),非葉子結(jié)點(diǎn)存索引,而一個(gè)結(jié)點(diǎn)就是磁盤一個(gè)內(nèi)存頁(yè),內(nèi)存頁(yè)大小固定,相比B樹這些可以存更多的索引結(jié)點(diǎn), 出度更大,樹高矮,查詢次數(shù)少,磁盤IO少。

14. 視圖

視圖是虛擬的表,本身并不存儲(chǔ)數(shù)據(jù),本質(zhì)可以看作是存儲(chǔ)起來(lái)的select語(yǔ)句
對(duì)視圖中的數(shù)據(jù)進(jìn)行增刪改,數(shù)據(jù)表中的數(shù)據(jù)會(huì)相應(yīng)地發(fā)生變化
視圖本身的刪除并不影響基表中的數(shù)據(jù)
視圖可以簡(jiǎn)化查詢,實(shí)現(xiàn)數(shù)據(jù)的安全

15. 存儲(chǔ)過(guò)程

預(yù)編譯的SQL語(yǔ)句,允許模塊化的設(shè)計(jì),創(chuàng)建一次可以多次調(diào)用
原理:存儲(chǔ)過(guò)程預(yù)先存儲(chǔ)在SQL服務(wù)器上,需要執(zhí)行時(shí),客戶端給服務(wù)器發(fā)送調(diào)用存儲(chǔ)過(guò)程的命令,服務(wù)端就可以把預(yù)先存儲(chǔ)好的一系列語(yǔ)句全部執(zhí)行
優(yōu)點(diǎn):簡(jiǎn)化操作,提高SQL語(yǔ)句的重用性,可以建立非常復(fù)雜的查詢,且比執(zhí)行單純的SQL語(yǔ)句要快

16. 觸發(fā)器

通過(guò)事件觸發(fā)執(zhí)行的特殊存儲(chǔ)過(guò)程,相當(dāng)于事件監(jiān)聽器,例如對(duì)一個(gè)表的數(shù)據(jù)操作會(huì)觸發(fā)另一個(gè)表的數(shù)據(jù)操作。是保證數(shù)據(jù)庫(kù)完整性的一種方法。任何用戶對(duì)表進(jìn)行增刪改操作都會(huì)有數(shù)據(jù)庫(kù)服務(wù)器自動(dòng)激活相應(yīng)的觸發(fā)器,對(duì)數(shù)據(jù)庫(kù)進(jìn)行相應(yīng)的檢查和操作。

17. 數(shù)據(jù)庫(kù)的范式

1NF 要求數(shù)據(jù)庫(kù)每一列都是不可再分的原子值
2NF 消除了非主屬性對(duì)主屬性的部分函數(shù)依賴,所有非主鍵字段必須完全依賴于主鍵字段,不能只依賴主鍵的一部分。
3NF 消除了非主屬性對(duì)主屬性的傳遞函數(shù)依賴,每一列數(shù)據(jù)必須和主鍵直接相關(guān),不能間接相關(guān),也就是說(shuō),所有非主鍵字段不能依賴于其他非主鍵字段
BCNF 基本排除了所有屬性對(duì)碼的部分函數(shù)依賴和傳遞函數(shù)依賴

18. 函數(shù)依賴

是指關(guān)系中一個(gè)或一組屬性的值可以決定其它屬性的值
如果屬性集合X中每個(gè)屬性的值構(gòu)成的集合唯一地決定了屬性集合Y中每個(gè)屬性的值構(gòu)成的集合,則屬性集合Y函數(shù)依賴于屬性集合X,計(jì)為:X→Y
例:身份證號(hào)→姓名或者一個(gè)學(xué)生實(shí)體中有學(xué)號(hào),性別,姓名。給了學(xué)號(hào)就唯一確定了其他屬性。
非平凡函數(shù)依賴: 如果X→Y,但是Y不屬于X集合,則X→Y是非平凡函數(shù)依賴。
完全函數(shù)依賴:在一個(gè)屬性集合U中,如果X→Y,并且對(duì)于X的真子集X’都不能確定Y,只有X才能確定Y,那么成Y對(duì)X完全函數(shù)依賴。否則稱之為部分函數(shù)依賴。

19. Armstrong公理

包含三個(gè)推理規(guī)則:自反律,增廣律和傳遞律
在關(guān)系模式中,F(xiàn)所邏輯蘊(yùn)含的函數(shù)依賴的全體稱之為F的閉包F+
有效性指的是:由數(shù)據(jù)依賴F出發(fā)根據(jù)Armstrong公理推導(dǎo)除了的每一個(gè)函數(shù)依賴都一定在F+中。
完備性指的是:F閉包中的每一個(gè)函數(shù)依賴,必定可以有F出發(fā)根據(jù)Armstrong公理推導(dǎo)出來(lái)。

20. 概念模型與E-R圖

**概念:**用于信息世界的建模,是現(xiàn)實(shí)世界到信息世界的第一層抽象,是數(shù)據(jù)庫(kù)設(shè)計(jì)人員進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì)的有力工具,也是數(shù)據(jù)庫(kù)設(shè)計(jì)人員和用戶之間進(jìn)行交流的語(yǔ)言,通常用E-R圖描述
三要素:
實(shí)體:現(xiàn)實(shí)世界的個(gè)體,可以獨(dú)立存在,矩形表示
屬性:實(shí)體的特性,不可再分,橢圓形表示
關(guān)系:實(shí)體之間的聯(lián)系,菱形表示
轉(zhuǎn)換關(guān)系:
一個(gè)實(shí)體通常轉(zhuǎn)換成-一個(gè) 數(shù)據(jù)表;
一個(gè)多對(duì)多的關(guān)系,通常也轉(zhuǎn)換成一個(gè)數(shù)據(jù)表;
一個(gè)1對(duì)1,或者1對(duì)多的關(guān)系,往往通過(guò)表的外鍵來(lái)表達(dá),而不是設(shè)計(jì)一個(gè)新的數(shù)據(jù)表;
屬性轉(zhuǎn)換成表的字段。
合并沖突:
屬性沖突。不同的實(shí)體對(duì)同一屬性的定義不同;
命名沖突。同名異義、異名同義;
結(jié)構(gòu)沖突。同一實(shí)體在不同的局部E-R圖中有不同的抽象。

21. 數(shù)據(jù)庫(kù)設(shè)計(jì)的基本步驟(了解每個(gè)步驟的大致內(nèi)容)

需求分析(功能分析)
概念結(jié)構(gòu)設(shè)計(jì)(ER圖)
邏輯結(jié)構(gòu)設(shè)計(jì)(ER圖到表)
物理結(jié)構(gòu)設(shè)計(jì)(存儲(chǔ)結(jié)構(gòu))
數(shù)據(jù)庫(kù)實(shí)施(測(cè)試、試運(yùn)行)
數(shù)據(jù)庫(kù)運(yùn)行和維護(hù)

22. 事務(wù)及其特性

數(shù)據(jù)庫(kù)進(jìn)行操作的基本單位
原子性:事務(wù)是一個(gè)不可分割的單位,要么全做,要么全不做;
一致性:事務(wù)執(zhí)行的結(jié)果必須使數(shù)據(jù)庫(kù)從一個(gè)一致性狀態(tài)變到另一個(gè)一致性狀態(tài);
隔離性:一個(gè)事務(wù)的執(zhí)行不能被其他事務(wù)所干擾;
永久性:一旦事務(wù)被提交,它對(duì)數(shù)據(jù)庫(kù)的改變就是永久的。

23. 數(shù)據(jù)庫(kù)的安全性和安全性技術(shù)

安全性是指防止數(shù)據(jù)庫(kù)被惡意破壞和非法存取
實(shí)現(xiàn)數(shù)據(jù)庫(kù)安全性控制的常用方法和技術(shù)有:
(1)用戶標(biāo)識(shí)和鑒別:該方法由系統(tǒng)提供一定的方式讓用戶標(biāo)識(shí)自己咱勺名字或身份。每次用戶要求進(jìn)入系統(tǒng)時(shí),由系統(tǒng)進(jìn)行核對(duì),通過(guò)鑒定后才提供系統(tǒng)的使用權(quán)。
(2)存取控制:通過(guò)用戶權(quán)限定義和合法權(quán)檢查確保只有合法權(quán)限的用戶訪問(wèn)數(shù)據(jù)庫(kù),所有未被授權(quán)的人員無(wú)法存取數(shù)據(jù)。
存取控制兩種方法
自主存取控制(DAC):用戶對(duì)不同的數(shù)據(jù)庫(kù)對(duì)象有不同的存取權(quán)限,不同的用戶對(duì)同一對(duì)象也有不同的權(quán)限
強(qiáng)制存取控制(MAC):每一個(gè)數(shù)據(jù)庫(kù)對(duì)象被標(biāo)以一定的密級(jí),每一個(gè)用戶也被授予一定級(jí)別的許可證,只有具有合法許可證的用戶才可以進(jìn)行存取。
(3)視圖機(jī)制:為不同的用戶定義視圖,通過(guò)視圖機(jī)制把要保密的數(shù)據(jù)對(duì)無(wú)權(quán)存取的用戶隱藏起來(lái),從而自動(dòng)地對(duì)數(shù)據(jù)提供一定程度的安全保護(hù)。
(4)審計(jì):建立審計(jì)日志,把用戶對(duì)數(shù)據(jù)庫(kù)的所有操作自動(dòng)記錄下來(lái)放人審計(jì)日志中,DBA可以利用審計(jì)跟蹤的信息,重現(xiàn)導(dǎo)致數(shù)據(jù)庫(kù)現(xiàn)有狀況的一系列事件,找出非法存取數(shù)據(jù)的人、時(shí)間和內(nèi)容等。
(5)數(shù)據(jù)加密:對(duì)存儲(chǔ)和傳輸?shù)臄?shù)據(jù)進(jìn)行加密處理,從而使得不知道解密算法的人無(wú)法獲知數(shù)據(jù)的內(nèi)容。

24. 完整性、安全性的區(qū)分

數(shù)據(jù)庫(kù)的完整性是指為了防止數(shù)據(jù)庫(kù)中存在不符合語(yǔ)義的數(shù)據(jù),防止錯(cuò)誤信息的輸入和輸出。
數(shù)據(jù)庫(kù)的安全性是保護(hù)數(shù)據(jù)庫(kù)防止惡意的破壞和非法的存取。
總結(jié)來(lái)說(shuō),數(shù)據(jù)庫(kù)安全性措施的防范對(duì)象是非法用戶和非法操作,數(shù)據(jù)庫(kù)的完整性措施的防范對(duì)象是不合語(yǔ)義的數(shù)據(jù)

25. 數(shù)據(jù)冗余?怎么避免?

數(shù)據(jù)冗余最容易出現(xiàn)的就是:當(dāng)同一條數(shù)據(jù)存儲(chǔ)在兩個(gè)或多個(gè)單獨(dú)的位置時(shí),特別容易產(chǎn)生數(shù)據(jù)冗余。備份數(shù)據(jù)也會(huì)產(chǎn)生數(shù)據(jù)冗余,錯(cuò)誤的數(shù)據(jù)也會(huì)發(fā)生數(shù)據(jù)冗余。
怎么避免:對(duì)數(shù)據(jù)進(jìn)行規(guī)范化管理,采取更為嚴(yán)格的數(shù)據(jù)庫(kù)范式,比如BCNF范式或者第四范式。逐步消除數(shù)據(jù)依賴中不合理的地方,設(shè)計(jì)更為高效的數(shù)據(jù)庫(kù)。還可以組織數(shù)據(jù)庫(kù)的序列,對(duì)數(shù)據(jù)進(jìn)行分類存儲(chǔ)。

26. 數(shù)據(jù)庫(kù)恢復(fù)技術(shù)

數(shù)據(jù)轉(zhuǎn)儲(chǔ):DBA定期將數(shù)據(jù)庫(kù)復(fù)制到其他介質(zhì)上進(jìn)行保存,這些備份的數(shù)據(jù)叫做后備副本;
登記日志文件,日志文件是用來(lái)記錄事物對(duì)數(shù)據(jù)庫(kù)進(jìn)行更新操作的文件。
利用后備副本和日志文件,可以將數(shù)據(jù)庫(kù)恢復(fù)到某個(gè)一致性狀態(tài)。
登記日志文件時(shí)為什么必須先寫日志文件,后寫數(shù)據(jù)庫(kù)?
如果先寫了數(shù)據(jù)庫(kù)修改,而在運(yùn)行記錄中沒有登記這個(gè)修改,則以后就無(wú)法恢復(fù)這個(gè)修改了。
如果先寫日志,但沒有修改數(shù)據(jù)庫(kù),在恢復(fù)時(shí)并不會(huì)影響數(shù)據(jù)庫(kù)的正確性。

27. 數(shù)據(jù)庫(kù)故障種類

事務(wù)故障、系統(tǒng)故障、介質(zhì)故障;
事務(wù)故障是指事務(wù)在運(yùn)行至終點(diǎn)前被中止;事務(wù)故障恢復(fù)是由系統(tǒng)自動(dòng)完成,利用日志文件撤銷此事務(wù)已對(duì)數(shù)據(jù)庫(kù)進(jìn)行的修改;
系統(tǒng)故障是指造成系統(tǒng)停止運(yùn)轉(zhuǎn)的任何事件,使得系統(tǒng)要重新啟動(dòng);系統(tǒng)故障的恢復(fù)是在重新啟動(dòng)后系統(tǒng)自動(dòng)完成,為了防止系統(tǒng)故障造成的數(shù)據(jù)不一致性,必須撤銷故障時(shí)未完成的事物,重做已完成的事物;
介質(zhì)故障是指磁盤上的物理數(shù)據(jù)和日志文件被破壞;介質(zhì)故障的恢復(fù)方法就是重裝數(shù)據(jù)庫(kù),重做已經(jīng)完成的事物。

28. 日志

bin log記錄對(duì)MySQL數(shù)據(jù)庫(kù)執(zhí)行修改的所有操作,不會(huì)記錄select和show語(yǔ)句,主要用于恢復(fù)數(shù)據(jù)庫(kù)和同步數(shù)據(jù)庫(kù)。

redo log用來(lái)記錄innodb存儲(chǔ)引擎的事務(wù)日志,不管事務(wù)是否提交都會(huì)記錄下來(lái),用于數(shù)據(jù)恢復(fù)。當(dāng)數(shù)據(jù)庫(kù)發(fā)生故障,innoDB存儲(chǔ)引擎會(huì)使用redo log恢復(fù)到發(fā)生故障前的時(shí)刻,以此來(lái)保證數(shù)據(jù)的完整性。

進(jìn)行數(shù)據(jù)修改時(shí)還會(huì)記錄undo log,undo log用于數(shù)據(jù)的撤回操作,它保留了記錄修改前的內(nèi)容。通過(guò)undo log可以實(shí)現(xiàn)事務(wù)回滾,并且可以根據(jù)undo log回溯到某個(gè)特定的版本的數(shù)據(jù)。

29. 并發(fā)造成的數(shù)據(jù)不一致

丟失修改:A、B兩個(gè)事物同時(shí)對(duì)一個(gè)數(shù)據(jù)進(jìn)行操作,A的修改破壞了B的修改,導(dǎo)致B的修改丟失;
不可重復(fù)讀:兩次讀到數(shù)據(jù)不一致。A讀取了數(shù)據(jù)后,B對(duì)數(shù)據(jù)進(jìn)行了修改,導(dǎo)致A無(wú)法再現(xiàn)前一次的讀取結(jié)果;
臟讀:讀到了未提交的數(shù)據(jù)。A對(duì)數(shù)據(jù)進(jìn)行了修改之后,B讀入該數(shù)據(jù),然后A又因?yàn)槟骋辉虺蜂N了該修改,導(dǎo)致數(shù)據(jù)恢復(fù)原值,此時(shí)B讀取的數(shù)據(jù)就成了臟數(shù)據(jù)。

30. 排他鎖、共享鎖

鎖是防止其他事務(wù)訪問(wèn)指定資源,實(shí)現(xiàn)并發(fā)控制的一種手段。
排他鎖(X寫鎖):當(dāng)數(shù)據(jù)被加上排他鎖,其他事務(wù)不能對(duì)該數(shù)據(jù)進(jìn)行讀和寫;
共享鎖(S讀鎖):當(dāng)數(shù)據(jù)被加上共享鎖,允許其他事務(wù)對(duì)該數(shù)據(jù)進(jìn)行讀,不允許寫。

31. 樂(lè)觀鎖、悲觀鎖

悲觀鎖:假定會(huì)發(fā)生并發(fā)沖突,在查詢完數(shù)據(jù)的時(shí)候就把事務(wù)鎖起來(lái),直到提交事務(wù)。實(shí)現(xiàn)方式:使用數(shù)據(jù)庫(kù)中的鎖機(jī)制。
樂(lè)觀鎖:假設(shè)不會(huì)發(fā)生并發(fā)沖突,只在提交操作時(shí)檢查數(shù)據(jù)是否被修改過(guò)。給表增加version字段,在修改提交之前檢查version與原來(lái)取到的version值是否相等,若相等,表示數(shù)據(jù)沒有被修改,可以更新,否則,數(shù)據(jù)為臟數(shù)據(jù),不能更新。實(shí)現(xiàn)方式:樂(lè)觀鎖一般使用版本號(hào)機(jī)制或CAS算法實(shí)現(xiàn)。

32. 三級(jí)封鎖協(xié)議

一級(jí)封鎖協(xié)議:事務(wù)在修改數(shù)據(jù)之前加寫鎖,直到事務(wù)結(jié)束才釋放。該協(xié)議可以防止丟失修改;
二級(jí)封鎖協(xié)議:在一級(jí)封鎖協(xié)議的基礎(chǔ)上,加上了事務(wù)在讀取數(shù)據(jù)之前對(duì)其加讀鎖,讀完后即可釋放讀鎖。該協(xié)議避免了讀臟數(shù)據(jù);
三級(jí)封鎖協(xié)議:在一級(jí)封鎖協(xié)議的基礎(chǔ)上,加上了事務(wù)在讀取數(shù)據(jù)之前必須加上讀鎖,直到事務(wù)結(jié)束才釋放。該協(xié)議解決了不可重復(fù)讀問(wèn)題。

33. SQL操作語(yǔ)句(可跟據(jù)復(fù)試內(nèi)容的傾向選擇是否復(fù)習(xí),當(dāng)然都是一些比較基礎(chǔ)的數(shù)據(jù)庫(kù)操作語(yǔ)句,在實(shí)操中是必不可少的)

數(shù)據(jù)庫(kù)基本操作
#查看數(shù)據(jù)庫(kù)
show databases
#創(chuàng)建數(shù)據(jù)庫(kù)
create database db DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
#使用數(shù)據(jù)庫(kù)
use db;

用戶
#創(chuàng)建用戶
create user ‘用戶名’@‘IP地址’ identified by ‘密碼’;

#刪除用戶
drop user ‘用戶名’@‘IP地址’;

#修改用戶
rename user ‘用戶名’@‘IP地址’; to ‘新用戶名’@‘IP地址’;;

#修改密碼
set password for ‘用戶名’@‘IP地址’ = Password(‘新密碼’)
創(chuàng)建用戶時(shí):
用戶名:創(chuàng)建的用戶名稱
IP地址:指定用戶可以從哪個(gè)服務(wù)器登陸,本地用戶localhost,任意遠(yuǎn)程機(jī)用“%”
密碼:該用戶登陸的密碼

權(quán)限
#查看權(quán)限:
show grants for ‘用戶’@‘IP地址’

#授權(quán):
grant 權(quán)限 on 數(shù)據(jù)庫(kù).表 to ‘用戶’@‘IP地址’

#取消授權(quán):
revoke 權(quán)限 on 數(shù)據(jù)庫(kù).表 from ‘用戶’@‘IP地址’
權(quán)限:用戶的操作權(quán)限,如SELECT,INSERT,UPDATE等,如果要授予所的權(quán)限則使用ALL,例如:
GRANT SELECT, INSERT ON student.user TO ‘javayz’@‘%’;
通過(guò)下面的命令讓指定用戶可以給其他用戶授權(quán)
GRANT privileges ON databasename.tablename TO ‘username’@‘host’ WITH GRANT OPTION;

對(duì)表的操作
#查詢所有的表
show tables;

#創(chuàng)建表
CREATE TABLE user (
id int(11) NOT NULL auto_increment, # not null表示不能為空,auto_increment表示自增
name varchar(255) DEFAULT ‘javayz’, # default 表示默認(rèn)值
PRIMARY KEY (id) # 把id列設(shè)置成主鍵
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

#查看表信息
DESC 表名
#清空表
truncate table 表名

#刪除表
drop table 表名

#添加列
alter table 表名 add 列名 類型

#刪除列
alter table 表名 drop column 列名

#修改列類型
alter table 表名 modify column 列名 類型;

#修改列名、列類型
alter table 表名 change 原列名 新列名 類型;

#添加主鍵
alter table 表名 add primary key(列名);

#刪除主鍵
alter table 表名 drop primary key;

#添加外鍵
alter table 從表 add constraint 外鍵名稱(形如:FK_從表_主表) foreign key 從表(外鍵字段) references 主表(主鍵字段);

#刪除外鍵
alter table 表名 drop foreign key 外鍵名稱

#修改默認(rèn)值
ALTER TABLE user ALTER name SET DEFAULT ‘javayz2’;

#刪除默認(rèn)值
ALTER TABLE user ALTER name DROP DEFAULT;

對(duì)數(shù)據(jù)的操作
基礎(chǔ)增刪改查:
#增
insert into 表 (列名,列名…) values (值,值,…)
#刪
delete from 表 where 條件
#改
update 表 set 字段=‘值’ where 條件
#查
select 值 from 表 where 條件
其他條件:
#通配符like %匹配多個(gè)字符,匹配單個(gè)字符
select * from 表 where name like '%java

#limit 限制輸出行數(shù)
select * from 表 limit 3 #前3行
select * from 表 limit 3,5; #從第3行開始的5行

#order by 排序
select * from 表 order by 列 asc #asc正序,desc逆序
#group by分組(group by 必須在where之后,order by之前)
select name from 表 group by name文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-422751.html

到了這里,關(guān)于數(shù)據(jù)庫(kù)面試常問(wèn)——for考研復(fù)試面試的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 考研復(fù)試問(wèn)題/面試問(wèn)題——機(jī)器學(xué)習(xí)(1)(入門系列)

    若非需要,勿增實(shí)體,當(dāng)所有的理論都能解釋現(xiàn)象,那么就選擇最簡(jiǎn)單的。 不好比較哪個(gè)算法好、如果a算法在某方面比B算法表現(xiàn)良好的話,必存在其他問(wèn)題使B比A的表現(xiàn)好。 我們?nèi)粘V械某绦蚓拖衩钜粯又笇?dǎo)計(jì)算機(jī)去做什么,而機(jī)器學(xué)習(xí)是以數(shù)據(jù)而非命令為基礎(chǔ)的非顯示

    2024年04月09日
    瀏覽(22)
  • 計(jì)算機(jī)網(wǎng)絡(luò)面試常問(wèn)問(wèn)題--保研及考研復(fù)試

    計(jì)算機(jī)網(wǎng)絡(luò)面試常問(wèn)問(wèn)題--保研及考研復(fù)試

    前言: Hello大家好,我是Dream。今年保研上岸山東大學(xué)人工智能專業(yè) (經(jīng)驗(yàn)貼) ,現(xiàn)在將我自己的專業(yè)課備考知識(shí)點(diǎn)整理出來(lái),分享給大家,希望可以幫助到大家!這是重點(diǎn)知識(shí)總結(jié),如果你想看全部的內(nèi)容的話,這里我給大家都已經(jīng)打包好了,需要自?。?保研復(fù)試全套材

    2024年02月07日
    瀏覽(16)
  • 【數(shù)據(jù)庫(kù)技術(shù)課程設(shè)計(jì)】 電信學(xué)院考研信息管理系統(tǒng) +【Visual FoxPro】

    【數(shù)據(jù)庫(kù)技術(shù)課程設(shè)計(jì)】 電信學(xué)院考研信息管理系統(tǒng) +【Visual FoxPro】

    一 、系統(tǒng)設(shè)計(jì)背景? ? ? ? 二、系統(tǒng)可行性分析 2.1?經(jīng)濟(jì)可行性 2.2?技術(shù)可行性 2.3?操作可行性 2.4?可行性分析總結(jié) 三、軟件選擇與編程環(huán)境 3.1 軟件選擇 3.2 編程環(huán)境 四、系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì) 五、數(shù)據(jù)庫(kù)設(shè)計(jì)及表鏈接 5.1 表設(shè)計(jì) 5.2 表連接 六、信息瀏覽的實(shí)現(xiàn) 6.1?表單設(shè)計(jì)

    2024年02月04日
    瀏覽(22)
  • 關(guān)于數(shù)據(jù)庫(kù)

    目錄 一 什么是數(shù)據(jù)庫(kù)(DB) 二 什么是數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS) 三 數(shù)據(jù)庫(kù)的作用/好處 簡(jiǎn)單理解,數(shù)據(jù)庫(kù)是存放數(shù)據(jù)的地方,就像冰箱是存放冷鮮食品的地方。 數(shù)據(jù)是數(shù)據(jù)存儲(chǔ)的基本對(duì)象,而數(shù)據(jù)分為多種形式,常見的是數(shù)字和文字,此外還有圖形和聲音。比如學(xué)校的數(shù)據(jù)庫(kù)里,

    2024年02月19日
    瀏覽(14)
  • 關(guān)于數(shù)據(jù)庫(kù)SQL優(yōu)化

    關(guān)于數(shù)據(jù)庫(kù)SQL優(yōu)化

    ? 在項(xiàng)目上線初期,業(yè)務(wù)數(shù)據(jù)量相對(duì)較少,SQL的執(zhí)行效率對(duì)程序運(yùn)行效率的影響可能不太明顯,因此開發(fā)和運(yùn)維人員可能無(wú)法判斷SQL對(duì)程序的運(yùn)行效率有多大。但隨著時(shí)間的積累,業(yè)務(wù)數(shù)據(jù)量的增多,SQL的執(zhí)行效率對(duì)程序的運(yùn)行效率的影響逐漸增大,此時(shí)對(duì)SQL的優(yōu)化就很有必

    2024年02月08日
    瀏覽(86)
  • 關(guān)于兩個(gè)不同數(shù)據(jù)庫(kù)的兩張表建立數(shù)據(jù)庫(kù)鏈接,關(guān)聯(lián)查詢數(shù)據(jù)

    關(guān)于兩個(gè)不同數(shù)據(jù)庫(kù)的兩張表建立數(shù)據(jù)庫(kù)鏈接,關(guān)聯(lián)查詢數(shù)據(jù)

    數(shù)據(jù)庫(kù)鏈接(database link)是用于跨不同數(shù)據(jù)庫(kù)之間進(jìn)行連接和數(shù)據(jù)傳輸?shù)墓ぞ呋蚍椒?。它允許在一個(gè)數(shù)據(jù)庫(kù)中訪問(wèn)另一個(gè)數(shù)據(jù)庫(kù)中的對(duì)象和數(shù)據(jù)。 --1.建立鏈接tjpt 上述示例中的? pt_user 、 pt_password ?和? 10.70.231.130/orcl 需要替換為實(shí)際的用戶、密碼和數(shù)據(jù)庫(kù)信息。 創(chuàng)建鏈接后

    2024年02月10日
    瀏覽(23)
  • java八股文面試[數(shù)據(jù)庫(kù)]——數(shù)據(jù)庫(kù)三范式

    java八股文面試[數(shù)據(jù)庫(kù)]——數(shù)據(jù)庫(kù)三范式

    什么是范式? 范式是數(shù)據(jù)庫(kù)設(shè)計(jì)時(shí)遵循的 一種規(guī)范 ,不同的規(guī)范要求遵循不同的范式。 最常用的三大范式 第一范式(1NF): 屬性不可分割 ,即每個(gè)屬性都是不可分割的原子項(xiàng)。(實(shí)體的屬性即表中的列) 理解:一個(gè)列不能包含兩個(gè)數(shù)據(jù) 第二范式(2NF):滿足第一范式;且不存在

    2024年02月10日
    瀏覽(22)
  • 數(shù)據(jù)庫(kù)面試題整理

    數(shù)據(jù)庫(kù)面試題整理

    MySQL支持 4 種事務(wù)隔離級(jí)別,這些隔離級(jí)別定義了事務(wù)之間的可見性和并發(fā)控制方式。 READ UNCOMMITTED(讀未提交) :這是最低的隔離級(jí)別。在該級(jí)別下,事務(wù)可以讀取未提交事務(wù)的數(shù)據(jù),可能會(huì)導(dǎo)致臟讀、不可重復(fù)讀和幻像讀問(wèn)題。一般情況下不建議使用此級(jí)別。 READ COMMITT

    2024年02月06日
    瀏覽(19)
  • 數(shù)據(jù)庫(kù)相關(guān)面試題

    數(shù)據(jù)庫(kù)相關(guān)面試題

    鞏固基礎(chǔ),砥礪前行 。 只有不斷重復(fù),才能做到超越自己。 能堅(jiān)持把簡(jiǎn)單的事情做到極致,也是不容易的。 mysql怎么優(yōu)化 : MySQL的優(yōu)化可以從以下幾個(gè)方面入手: 數(shù)據(jù)庫(kù)設(shè)計(jì)優(yōu)化:合理設(shè)計(jì)表結(jié)構(gòu),選擇合適的數(shù)據(jù)類型,規(guī)范化表結(jié)構(gòu),避免冗余數(shù)據(jù)等。 索引優(yōu)化:為經(jīng)常

    2024年02月12日
    瀏覽(18)
  • 數(shù)據(jù)庫(kù)面試題題

    -- 子查詢 CREATE TABLE emp( ?? ?empno?? ??? ?INT, ?? ?ename?? ??? ?VARCHAR(50), ?? ?job?? ??? ?VARCHAR(50), ?? ?mgr?? ??? ?INT, ?? ?hiredate?? ?DATE, ?? ?sal?? ??? ?DECIMAL(7,2), ?? ?comm?? ??? ?DECIMAL(7,2), ?? ?deptno?? ??? ?INT ) ; INSERT INTO emp VALUES(7369,\\\'SMITH\\\',\\\'CLERK\\\',7902,\\\'198

    2024年02月15日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包