為了讓您熟悉在求職面試中可能會提出的與資料庫管理系統相關的問題類型,我們將在這篇文章中探討最關鍵的DBMS 面試問題(DBMS) 。
DBMS(資料庫管理系統)的縮寫代表一個主要功能圍繞資料的應用系統。該系統使用戶能夠設計、保存、檢索和更新數據,以及儲存在資料庫中的有關數據的資訊。
簡單地說,資料庫是一組已經安排好的數據,使用者可以輕鬆地存取、管理和提交這些數據。
以下是 DBMS 的一些主要優點
受控冗餘 - DBMS 提供了一種防止保存重複資料的方法,因為所有資料都保存在單一資料庫中,從而消除了資料庫內的冗餘。
資料共用 - 由於相同資料庫將由所有使用者和各種應用程式共用,因此使用 DBMS 也可以同時在多個使用者之間共用資料。
備份和復原工具 - 透過提供稱為「備份和復原」的功能(自動產生資料備份並根據需要還原資料),DBMS 減輕了產生資料備份的痛苦。重複數據。
完整性約束的應用− 必須將完整性約束應用於數據,以便將經過精煉的資料保存在資料庫中,並由DBMS進行處理。
資料獨立性 - 資料獨立性基本上意味著您可以修改資料的結構而不改變任何底層應用程式的設計。
根據其獨特的功能依賴和主鍵進行的關係模式分析,以滿足特定標準的過程稱為規範化。
屬性包括:
減少資料的冗餘。
為了減少插入、刪除和更新例外狀況
在DBMS中,基本上有三種不同類型的語言,如下所示
DDL - 資料定義語言(DDL)是 SQL 查詢的集合,例如 CREATE、ALTER、TRUNCATE、DROP 和 RENAME,用於描述資料庫和模式結構。
DCL - 資料控制語言(DCL):DCL 是一系列 SQL 查詢,例如 GRANT 和 REVOKE,用於管理使用者對資料庫的存取。
DML − 資料操作語言(Data Manipulation Language),或DML,用於進行資料庫操作,包括使用一系列的SQL查詢語句(如select、insert、delete和update)插入、刪除和更新數據。
縮寫 SQL 代表結構化查詢語言,它用於透過輸入、更新和/或更改資料來與關聯式資料庫進行互動。
在資料庫表中,主鍵用於唯一標識每筆記錄,而外鍵(一個表中的特定字段或一組字段,用作另一個表的主鍵)主要用於連接兩個表或多張桌子在一起。
下面展示了幾種變化:
主鍵和唯一鍵之間的主要區別在於主鍵永遠不能包含空值,而唯一鍵可以。
在一個表中可以有多個唯一鍵,但每個表只能有一個主鍵。
答案 − 子查詢本質上是包含在另一個查詢中的查詢;它也被稱為內部查詢,因為它包含在外部查詢中。
可以使用 DDL 指令「DROP」從資料庫中刪除資料表、資料庫、索引或視圖。
在DROP、TRUNCATE和DELETE指令之間有三個主要差異:
可以使用DDL指令DROP和TRUNCATE從資料庫中刪除表,一旦表被銷毀,所有相關的權限和索引也會被刪除。這兩個過程無法撤銷,因此只有在絕對必要的情況下才應使用它們。
另一方面,DELETE 指令是一個 DML 指令,也可用於從表格中刪除資料列。
建議在使用DELETE指令時與"WHERE"子句結合使用,以防止整個資料表從資料庫中刪除。
當連接兩個或多個表的資料時,使用UNION和UNION ALL; UNION 合併表中的資料後消除重複行並選擇不同的行; UNION ALL 不這樣做;它只是從表中選擇所有數據。
原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)和持久性(Durability)特性的組合稱為ACID屬性。這些特徵使得多個人可以以安全可靠的方式共享資料。
原子性 - 這是基於「要麼全有,要麼全無」的思想,這本質上意味著如果發生資料庫更改,除了用戶和應用程式之外的每個人都應該可以訪問它,或者除了他們之外,任何人都不能訪問它。
一致性 − 這保證了資料庫在任何內部事務期間和之後都保持一致性。
隔離 - 顧名思義,此功能指定發生的每個交易都與其他交易隔離。例如,一個已經開始但尚未完成的事務應該與其他事務隔離,這樣其他事務就不會受到它的影響。
持久性 − 此功能指定資料應始終處於持久狀態,即任何已提交的資料都應在系統發生故障或重新啟動時以相同的狀態存取。
子查詢有時稱為巢狀查詢或編寫在另一個查詢內的查詢。當對外部查詢的每一行執行子查詢時,子查詢稱為關聯。
非相關子查詢的範例是 -
SELECT * from EMP WHERE 'AJITESH' IN (SELECT Name from DEPT WHERE EMP.EMPID=DEPT.EMPID);
在這種情況下,內部查詢不會針對外部查詢的每一行執行。
實體是現實中獨立存在的任何事物、地點或對象,其詳細資訊可以保存在資料庫中。例如,任何個人、書籍等。
實體類型是具有相似屬性的實體的組合。以學生表為例,每一行都是一個實體,儲存著學生的姓名、年齡和學生ID。因此,學生是具有相同屬性的實體類型。
具有相同類型的實體的分組是實體集。一個例子是公司的一組員工。
在DBMS中,有三層資料抽象化。
它們由
物理層級 - 物理層級描述了資料在資料庫中的儲存方式,是資料抽象的最低層級。
邏輯層級 - 作為資料抽象的下一個層級,邏輯層級描述了資料庫中保留的資料類型和資料之間的連接。
視圖級別 - 資料抽象的最高級別,稱為視圖級別,僅顯示或說明資料庫的一部分。
DBMS有兩個主要的完整性規則,確切地說。
如下
實體完整性:宣告了一個關鍵原則,主鍵的值永遠不能為 NULL
引用完整性:根據此規則,外鍵的值必須為 NULL,或必須充當所有其他關係的主鍵。
在 DBMS 中,E-R 模型被稱為實體關係模型,因為它建立在實體及其之間存在的關係的概念之上。
實質上,關係的各種性質之間的關係可以透過此限制來描述。
例如,如果一個名為"R1"的關係包含特徵"Y"和"Z",那麼這兩個屬性之間的函數依賴關係可以表示為"Y->Z",表示Z依賴於Y才能操作。
第一正規形式,或1NF,是正確的答案。
在這種規範化中,屬性的域應該只具有原子值,這是最簡單的。這樣做的目的是消除表中的任何重複列。
第二範式,或 2NF。
符合以下兩個要求的任何表格都被認為是具有第二範式(2NF)的:
表位於 1NF 中。
一個表的非主屬性被認為是完全函數依賴其主鍵。
第三範式,或 3NF。
任何滿足以下兩個要求的表格稱為具有第三範式(3NF):
表位於 2NF 中。
有人認為表中的每個非素數屬性都非傳遞地依賴每個表鍵。
Boyce Codd正規化範式,比第三範式更嚴格,稱為BCNF。
任何符合以下兩個要求的表都被認為是在 BCNF 中:
一張表處於第三範式。
X 是任何存在的函數依賴 X->Y 的表的超級鍵。
它與 SQL 查詢結合使用,根據使用者需求和 SQL 定義的限制來取得指定的資料。這對於從整個記錄集中選擇某些記錄特別有用。
作為一個例子,有一個帶有WHERE條件的查詢和一個帶有HAVING子句的查詢。
答案 − 可以使用以下搜尋來檢索奇數
#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;
SQL中的LIKE運算子使得匹配模式成為可能。
LIKE 運算子匹配 0 個或多個字元時,使用字元“%”,當僅匹配 1 個字元時,使用字元“.”
SELECT * from Emp WHERE name like 'b%';
SELECT * from Emp WHERE name like 'hans_';
联接是一种 SQL 语句,用于根据共享字段或列组合两个或多个表中的数据或行。
有四种不同类型的SQL连接。
内部联接 - 这种联接用于从两个表共享的表中检索信息。
Left Join − 这只返回连接操作右侧表中的匹配行,返回连接操作左侧表中的所有行。
Right Join - 这仅返回连接左侧表中的匹配行,而不是连接右侧表中的所有行。
完全联接 - 这会从已应用联接条件的每个表中检索所有行,并且不匹配的行具有空值。
答案是触发器是为了响应表或视图中发生的事件而自动运行的关键脚本或程序之一。例如,每当向员工数据库添加新记录时,相关表中都会自动生成数据,例如角色表、部门表和薪酬表。
存储过程是一组SQL语句的集合,组织成一个函数,保存在关系数据库管理系统(RDBMS)中,并在需要时可随时访问。
RDBMS 代表关系数据库管理系统。它是一个数据库管理系统,通过使用不同表中的公共字段来访问数据。
在数据库管理系统中,关系显示了表之间的关联。
各种类型的关系包括
一对一 - 这基本上表示每个表中应该有一条记录,或者表之间存在一对一的关系。例如,已婚夫妇只允许每人有一个配偶。
一对多 - 主键表只有一条记录,根据一对多连接理论,关联表中可能有许多、一个或零条记录。一个母亲可能有很多孩子。
多对多 - 据此,两个表都可以连接到其他几个表。示例:兄弟姐妹可以有很多,而且经常如此。
以上是DBMS 面試常見問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!