常見資料庫管理系統面試問題
為了讓您熟悉在與資料庫管理系統相關的求職面試中可能被問到的問題型別,我們將在本文中探討最關鍵的 DBMS 面試問題 (DBMS)。
Q1) DBMS 的一些用途是什麼?
DBMS(資料庫管理系統)的首字母縮寫詞是指其主要功能圍繞資料的應用程式系統。此係統使使用者能夠設計、儲存、檢索和更新資料以及有關資料在資料庫中儲存方式的資訊。
Q2)“資料庫”一詞指的是什麼?
簡單地說,資料庫是已組織起來以便使用者可以輕鬆訪問、管理和提交資料的各種資料的集合。
Q3) 為什麼建議使用 DBMS?列出其一些主要優勢以進一步解釋。
以下是 DBMS 的一些主要優勢
控制冗餘 − DBMS 提供了一種方法來防止儲存重複資料,因為所有資料都儲存在單個數據庫中,從而消除了資料庫內的冗餘。
資料共享 − 由於所有使用者和各種應用程式程式將共享相同的資料庫,因此 DBMS 也允許同時在多個使用者之間共享資料。
備份和恢復功能 − 透過提供稱為“備份和恢復”的功能,該功能自動生成資料備份並在需要時恢復資料,DBMS 減少了反覆生成資料備份的痛苦。
應用完整性約束 − 必須將完整性約束應用於資料,以便將細化後的資料儲存在資料庫中並由 DBMS 處理。
資料獨立性 − 資料獨立性基本上意味著您可以修改資料的結構而無需更改任何底層應用程式的設計。
Q4) 為什麼在 DBMS 中使用規範化?
規範化是對基於其唯一函式依賴項和主鍵的關係模式進行分析,以滿足特定標準的過程。
屬性包括
以減少資料的冗餘。
為了減少插入、刪除和更新異常
Q5) DBMS 支援哪些不同類別的語言?
在 DBMS 中,基本上有三種不同的語言,如下所示
DDL − 資料定義語言 (DDL) 是 SQL 查詢的集合,例如 CREATE、ALTER、TRUNCATE、DROP 和 RENAME,用於描述資料庫和模式結構。
DCL − 資料控制語言 (DCL):DCL 是一系列 SQL 查詢,例如 GRANT 和 REVOKE,用於管理使用者對資料庫的訪問。
DML − 資料操縱語言 (DML) 用於執行資料庫操作,包括使用一系列 SQL 查詢(例如 select、insert、delete 和 update)插入、刪除和更新資料。
Q 6) 為什麼使用 SQL?
SQL 代表結構化查詢語言,它用於透過輸入、更新和/或更改資料來與關係資料庫互動。
Q 7) 解釋主鍵和外部索引鍵的概念。
在資料庫表中,主鍵用於唯一標識每條記錄,而外部索引鍵(一個表中的特定欄位或欄位集,充當另一個表的主鍵)主要用於將兩個或多個表連線在一起。
Q8) 唯一鍵和主鍵的主要區別是什麼?
下面顯示了一些差異
主鍵和唯一鍵的主要區別在於,主鍵永遠不能包含空值,而唯一鍵可以。
一個表中可以有多個唯一鍵,但每個表只能有一個主鍵。
Q9) 關於 SQL,“子查詢”是什麼意思?
答案 − 子查詢本質上是包含在另一個查詢中的查詢;它也稱為內部查詢,因為它包含在外層查詢中。
Q 10) DROP 命令有什麼作用?DROP、TRUNCATE 和 DELETE 命令之間有什麼區別?
可以使用 DDL 命令“DROP”從資料庫中刪除表、資料庫、索引或檢視。
DROP、TRUNCATE 和 DELETE 命令之間有三個主要區別
可以使用 DDL 命令 DROP 和 TRUNCATE 從資料庫中刪除表,並且一旦表被刪除,所有相關的許可權和索引也將被刪除。這兩個過程是不可撤消的,因此只有在絕對必要時才應使用它們。
另一方面,DELETE 命令是一個 DML 命令,也可以用來從表中刪除行。
建議將“WHERE”子句與 DELETE 命令一起使用,以防止整個表從資料庫中刪除。
Q 11) UNION 和 UNION ALL 的主要區別是什麼?
連線來自兩個或多個表的資料時,使用 UNION 和 UNION ALL;UNION 刪除重複行並在合併來自表的的資料後選擇不同的行;UNION ALL 不這樣做;它只選擇來自表的所有資料。
Q12)解釋 DBMS 中 ACID 特性的概念?
原子性、一致性、隔離性和永續性特徵的組合稱為 ACID 屬性。這些特性使多人能夠安全可靠地共享資料。
原子性 − 這基於“要麼全部要麼沒有”的概念,這基本上意味著如果發生資料庫更改,它應該要麼對除了使用者和應用程式程式之外的每個人都可用,要麼根本對除了他們之外的任何人都不可用。
一致性 − 這保證了在任何內部事務期間和之後都保持資料庫的一致性。
隔離性 − 正如名稱所示,此功能指定發生的每個事務都與其他事務隔離。例如,已啟動但尚未完成的事務應與其他事務隔離,以便其他事務不受其影響。
永續性 − 此功能指定資料應始終處於持久狀態,這意味著即使系統發生故障或重新啟動,任何已提交的資料也應在相同狀態下可用。
Q 13:DBMS 相關子查詢的作用是什麼?
子查詢有時也稱為巢狀查詢或寫在另一個查詢內的查詢。當子查詢是針對外層查詢的每一行執行時,該子查詢稱為相關子查詢。
非相關子查詢的示例為 −
SELECT * from EMP WHERE 'AJITESH' IN (SELECT Name from DEPT WHERE EMP.EMPID=DEPT.EMPID);
在這種情況下,不會針對外層查詢的每一行執行內部查詢。
Q 14) 解釋 DBMS 中實體、實體型別和實體集。
實體是現實中獨立存在的事物、地點或物件,其詳細資訊可以儲存在資料庫中。例如,任何個人、書籍等。
實體型別是一組具有相似屬性的實體。例如,STUDENT 表包含多行,每一行都是一個實體,儲存學生的名字、年齡和學生 ID。因此,STUDENT 是一種實體型別,其實體具有相同的屬性。
一組具有相同型別的實體是實體集。例如,一家公司的員工群體。
Q 15) DBMS 中有哪些不同的抽象級別?
在 DBMS 中,有三個資料抽象層。
它們包括
物理層 − 物理層描述資料如何在資料庫中儲存,並且是最低級別的資料抽象。
邏輯層 − 以下級別的資料抽象,稱為邏輯層,描述儲存在資料庫中的資料型別以及資料之間的關係。
檢視層 − 最高級別的資料抽象,稱為檢視層,只顯示或陳述資料庫的一部分。
Q16) DBMS 中有哪些完整性規則?
確切地說,DBMS 有兩個主要的完整性規則。
如下所示
實體完整性:宣告一個重要的原則,即主鍵的值永遠不能為 NULL
參照完整性:根據此規則,外部索引鍵的值必須為 NULL,或者必須作為每個其他關係的主鍵。
Q 17) DBMS 中的 E-R 模型是什麼?
在 DBMS 中,E-R 模型被稱為實體關係模型,因為它建立在實體及其之間關係的概念之上。
Q18) DBMS 的函式依賴性是什麼意思?
本質上,可以透過此約束來描述關係的各種屬性之間的關係。
例如,如果名為“R1”的關係包括屬性“Y”和“Z”,那麼這兩個屬性之間的函式依賴性可以表示為“Y->Z”,這表示 Z 依賴於 Y 才能執行。
Q19) DBMS 中的 1NF 代表什麼?
正確答案是第一正規化 (1NF)。
這種規範化中最簡單的一種,屬性的域應該只具有原子值。其目的是消除表中的任何重複列。
Q20) DBMS 中的 2NF 代表什麼?
第二正規化 (2NF)。
任何滿足以下兩個要求的表都被認為在 2NF 中
表在 1NF 中。
表的非主鍵屬性被認為完全函式依賴於其主鍵。
Q21) DBMS 中的 3NF 代表什麼?
第三正規化 (3NF)。
任何滿足以下兩個要求的表都被認為在 3NF 中
表在 2NF 中。
有人認為,表中的每個非主鍵屬性都非傳遞地依賴於每個表鍵。
Q22) BCNF 在 DBMS 中是什麼?問題 #22?
Boyce-Codd 正規化 (BCNF) 比 3NF 更嚴格。
任何滿足以下兩個條件的表都稱為 BCNF
該表符合 3NF。
對於任何存在的函式依賴 X->Y,X 是表的超鍵。
Q23) SQL 中的 CLAUSE 指的是什麼?
它與 SQL 查詢一起使用,根據使用者的需求和 SQL 定義的約束來獲取指定的資料。這對於從整個記錄集中選擇某些記錄特別有用。
例如,有包含 WHERE 條件的查詢和包含 HAVING 子句的查詢。
Q24) 如何在 SQL 中檢索表中的奇數記錄?
答案 − 可以使用以下查詢檢索奇數:
SELECT EmpId from (SELECT rowno,EmpId from Emp) WHERE mod(rowno,2)=1;
可以使用以下查詢檢索偶數:
SELECT EmpId from (SELECT rowno,EmpId from Emp) WHERE mod(rowno,2)=0;
Q25) SQL 如何處理模式匹配?
SQL 中的 LIKE 運算子使得模式匹配成為可能。
當 LIKE 運算子匹配 0 個或多個字元時,它使用字元 "%",當它只匹配一個字元時,它使用字元 "_"。
示例
SELECT * from Emp WHERE name like 'b%';
SELECT * from Emp WHERE name like 'hans_';
Q26) SQL 中的連線是什麼意思?
連線是一種 SQL 語句,用於基於共享欄位或列組合來自兩個或多個表的資料或行。
Q27) SQL 連線有哪些不同型別?
有四種不同型別的 SQL 連線。
內連線 (Inner Join) − 此型別的連線用於檢索兩個表都共享的表中的資訊。
左連線 (Left Join) − 這隻返回連線右側表中的匹配行,返回連線左側表中的所有行。
右連線 (Right Join) − 這隻返回連線左側表中的匹配行,不返回連線右側表中的所有行。
全連線 (Full Join) − 這將檢索應用連線條件的每個表中的所有行,而不匹配的行具有空值。
Q28) “觸發器”這個術語是什麼意思?
答案是,觸發器是關鍵指令碼或程式之一,它會自動響應表或檢視中發生的事件而執行。例如,每當向員工資料庫新增新記錄時,資料就會自動生成在相關的表中,例如角色表、部門表和薪酬表。
Q29) 什麼是儲存過程?(問題 29)
儲存過程是一組組織成函式的 SQL 語句,這些語句儲存在關係資料庫管理系統 (RDBMS) 中,並在需要時訪問。
Q30) 什麼是 RDBMS?(問題 30)
RDBMS 代表關係資料庫管理系統。它是一種資料庫管理系統,透過使用在不同表中找到的公共欄位來訪問資料。
Q31) DBMS 支援哪些不同型別的關聯?
在 DBMS 中,關係顯示錶如何相互關聯。
各種型別的關係包括
一對一 (One-to-One) − 這基本上表示在表之間應該只有一條記錄,或一對一的關係。例如,已婚夫婦每人只能有一個配偶。
一對多 (One-to-Many) − 主鍵表只有一條記錄,但根據一對多關係理論,關聯表中可能有許多、一條或沒有記錄。一位母親可以有很多孩子。
多對多 (Many-to-Many) − 根據此理論,兩個表都可以與多個其他表關聯。例如:兄弟姐妹可以有很多,而且通常有很多。