Java面試題(三)數據庫


  博主馬上要面對幾家公司的面試,故自己准備了點面試題,僅供參考!

1,三范式?
答:每個屬性都不可再分,屬性完全依賴於主鍵,第三范式就是屬性不依賴於其它非主屬性。
2,如何理解超鍵、候選鍵、主鍵、外鍵的含義?
超鍵有無關屬性,主鍵是唯一且不能再分,外鍵是主鍵的引用,主鍵是在候選鍵中產生的
3,什么是存儲過程?有哪些優缺點?
存儲過程是一個預編譯的有名稱的代碼塊。
優點:執行效率比較高,降低網絡通信量,提高通信速率,一定程度上確保數據安全
缺點:開發過程中維護有一定難度。
4,存儲過程和函數區別?
存儲過程相當於業務層。函數相當於dao層。業務層中可以調用多個dao,那么在存儲過程的代碼中可以調用
多個函數,函數都是有返回值的。
5,索引是什么(可以理解為字典的索引)?有什么作用以及優缺點?
索引是對數據庫表中一或多個列的值進行排序的結構,是幫助SQL高效獲取數據的數據結構。
MySQL數據庫幾個基本的索引類型:普通索引、唯一索引、主鍵索引、全文索引
好處就是提高速度。缺點就是需要占物理和數據空間
6,什么是事務?
事務(Transaction)是並發控制的基本單位。
事務,它是一個操作序列,這些操作要么都執行,要么都不執行,它是一個不可分割的工作單位。

7,事務的四大特性?ACID
原子性(Atomicity)[同時成功或失敗],一致性(Consistency)[數據守恆],
隔離性(Isolation)[並發],持久性(Durability)[commit一旦提交不能再回滾]

8,隔離級別有哪幾種?
① Serializable (串行化):可避免臟讀、不可重復讀、幻讀的發生。
② Repeatable read (可重復讀):可避免臟讀、不可重復讀的發生。
③ Read committed (讀已提交):可避免臟讀的發生。
④ Read uncommitted (讀未提交):最低級別,任何情況都無法保證。
最高的是Serializable級別,最低的是Read uncommitted級別,當然級別越高,執行效率就越低
9,MySQL數據庫中默認的隔離級別?
答:為Repeatable read (可重復讀)
10,oracle的隔離級別有幾種?
答:2種 。
Oracle只支持Serializable (串行化)級別和Read committed (讀已提交)這兩種級別,
其中默認的為Read committed級別
11,樂觀鎖和悲觀銷
樂觀並發控制(樂觀鎖)和悲觀並發控制(悲觀鎖)是並發控制主要采用的技術手段。
悲觀鎖:假定會發生並發沖突,屏蔽一切可能違反數據完整性的操作
樂觀鎖:假設不會發生並發沖突,只在提交操作時檢查是否違反數據完整性
12,使用索引查詢一定能提高查詢的性能嗎?為什么
索引需要空間來存儲,也需要定期維護, 每當有記錄在表中增減或索引列被修改時,
索引本身也會被修改. 這意味着每條記錄的INSERT,DELETE,UPDATE將為此多付出4,5 次的磁盤I/O.
因為索引需要額外的存儲空間和處理,那些不必要的索引反而會使查詢反應時間變慢.
使用索引查詢不一定能提高查詢性能
13,簡單說一說drop、delete與truncate的區別
truncate 和 delete 只刪除數據不刪除表的結構(定義)
drop 語句將刪除表的結構被依賴的約束(constrain)、觸發器(trigger)、索引(index);
依賴於該表的存儲過程/函數將保留,但是變為 invalid 狀態。

14,DML、DDL、DCL的區別?
DML(data manipulation language)數據操縱語言:
  就是我們最經常用到的 SELECT、UPDATE、INSERT、DELETE。 主要用來對數據庫的數據進行一些操作
DDL(data definition language)數據庫定義語言:
  其實就是我們在創建表的時候用到的一些sql,比如說:CREATE、ALTER、DROP等。
    DDL主要是用在定義或改變表的結構,數據類型,表之間的鏈接和約束等初始化工作上
DCL(Data Control Language)數據庫控制語言:
  是用來設置或更改數據庫用戶或角色權限的語句,包括(grant,deny,revoke等)語句。
15,什么是視圖?以及視圖的使用場景有哪些?
視圖是一種虛擬的表,對視圖的修改不影響基本表,
(只暴露部分字段給訪問者,所以就建一個虛表,就是視圖。
查詢的數據來源於不同的表,而查詢者希望以統一的方式查詢,
這樣也可以建立一個視圖,把多個表查詢結果聯合起來,查詢者只需要直接從視圖中獲取數據,
不必考慮數據來源於不同表所帶來的差異)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM