黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專(zhuān)注Java教育14年 全國(guó)咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁(yè) 學(xué)習(xí)攻略 職業(yè)指南 參與開(kāi)發(fā)面試的同學(xué),數(shù)據(jù)庫(kù)開(kāi)發(fā)面試題必看

參與開(kāi)發(fā)面試的同學(xué),數(shù)據(jù)庫(kù)開(kāi)發(fā)面試題必看

更新時(shí)間:2022-12-28 11:22:52 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1562次

1.三個(gè)范式是什么

第一范式(1NF):數(shù)據(jù)庫(kù)表中的字段都是單一屬性的,不可再分。這個(gè)單一屬性由基本類(lèi)型構(gòu)成,包括整型、實(shí)數(shù)、字符型、邏輯型、日期型等。 第二范式(2NF):數(shù)據(jù)庫(kù)表中不存在非關(guān)鍵字段對(duì)任一候選關(guān)鍵字段的部分函數(shù)依賴(lài)(部分函數(shù)依賴(lài)指的是存在組合關(guān)鍵字中的某些字段決定非關(guān)鍵字段的情況),也即所有非關(guān)鍵字段都完全依賴(lài)于任意一組候選關(guān)鍵字。

第三范式(3NF):在第二范式的基礎(chǔ)上,數(shù)據(jù)表中如果不存在非關(guān)鍵字段對(duì)任一候選關(guān)鍵字段的傳遞函數(shù)依賴(lài)則符合第三范式。所謂傳遞函數(shù)依賴(lài),指的是如果存在"A → B → C"的決定關(guān)系,則C傳遞函數(shù)依賴(lài)于A。因此,滿足第三范式的數(shù)據(jù)庫(kù)表應(yīng)該不存在如下依賴(lài)關(guān)系: 關(guān)鍵字段 → 非關(guān)鍵字段x → 非關(guān)鍵字段y

上面的文字我們肯定是看不懂的,也不愿意看下去的。接下來(lái)我就總結(jié)一下:

首先要明確的是:滿足著第三范式,那么就一定滿足第二范式、滿足著第二范式就一定滿足第一范式

第一范式:字段是最小的的單元不可再分 學(xué)生信息組成學(xué)生信息表,有年齡、性別、學(xué)號(hào)等信息組成。這些字段都不可再分,所以它是滿足第一范式的

第二范式:滿足第一范式,表中的字段必須完全依賴(lài)于全部主鍵而非部分主鍵。 其他字段組成的這行記錄和主鍵表示的是同一個(gè)東西,而主鍵是唯一的,它們只需要依賴(lài)于主鍵,也就成了唯一的 學(xué)號(hào)為1024的同學(xué),姓名為Java3y,年齡是22歲。姓名和年齡字段都依賴(lài)著學(xué)號(hào)主鍵。

第三范式:滿足第二范式,非主鍵外的所有字段必須互不依賴(lài) 就是數(shù)據(jù)只在一個(gè)地方存儲(chǔ),不重復(fù)出現(xiàn)在多張表中,可以認(rèn)為就是消除傳遞依賴(lài) 比如,我們大學(xué)分了很多系(中文系、英語(yǔ)系、計(jì)算機(jī)系……),這個(gè)系別管理表信息有以下字段組成:系編號(hào),系主任,系簡(jiǎn)介,系架構(gòu)。那我們能不能在學(xué)生信息表添加系編號(hào),系主任,系簡(jiǎn)介,系架構(gòu)字段呢?不行的,因?yàn)檫@樣就冗余了,非主鍵外的字段形成了依賴(lài)關(guān)系(依賴(lài)到學(xué)生信息表了)!正確的做法是:學(xué)生表就只能增加一個(gè)系編號(hào)字段。

2.什么是視圖?以及視圖的使用場(chǎng)景有哪些?

視圖是一種基于數(shù)據(jù)表的一種虛表

(1)視圖是一種虛表

(2)視圖建立在已有表的基礎(chǔ)上, 視圖賴(lài)以建立的這些表稱(chēng)為基表

(3)向視圖提供數(shù)據(jù)內(nèi)容的語(yǔ)句為 SELECT 語(yǔ)句,可以將視圖理解為存儲(chǔ)起來(lái)的 SELECT 語(yǔ)句

(4)視圖向用戶提供基表數(shù)據(jù)的另一種表現(xiàn)形式

(5)視圖沒(méi)有存儲(chǔ)真正的數(shù)據(jù),真正的數(shù)據(jù)還是存儲(chǔ)在基表中

(6)程序員雖然操作的是視圖,但最終視圖還會(huì)轉(zhuǎn)成操作基表

(7)一個(gè)基表可以有0個(gè)或多個(gè)視圖

有的時(shí)候,我們可能只關(guān)系一張數(shù)據(jù)表中的某些字段,而另外的一些人只關(guān)系同一張數(shù)據(jù)表的某些字段...

那么把全部的字段都都顯示給他們看,這是不合理的。

我們應(yīng)該做到:他們想看到什么樣的數(shù)據(jù),我們就給他們什么樣的數(shù)據(jù)...一方面就能夠讓他們只關(guān)注自己的數(shù)據(jù),另一方面,我們也保證數(shù)據(jù)表一些保密的數(shù)據(jù)不會(huì)泄露出來(lái)...

數(shù)據(jù)庫(kù)開(kāi)發(fā)面試題

我們?cè)诓樵償?shù)據(jù)的時(shí)候,常常需要編寫(xiě)非常長(zhǎng)的SQL語(yǔ)句,幾乎每次都要寫(xiě)很長(zhǎng)很長(zhǎng)....上面已經(jīng)說(shuō)了,視圖就是基于查詢的一種虛表,也就是說(shuō),視圖可以將查詢出來(lái)的數(shù)據(jù)進(jìn)行封裝。。。那么我們?cè)谑褂玫臅r(shí)候就會(huì)變得非常方便...

值得注意的是:使用視圖可以讓我們專(zhuān)注與邏輯,但不提高查詢效率

3.索引是什么?有什么作用以及優(yōu)缺點(diǎn)?

什么是索引【Index】

(1)是一種快速查詢表中內(nèi)容的機(jī)制,類(lèi)似于新華字典的目錄

(2)運(yùn)用在表中某個(gè)些字段上,但存儲(chǔ)時(shí),獨(dú)立于表之外

索引表把數(shù)據(jù)變成是有序的....

數(shù)據(jù)庫(kù)開(kāi)發(fā)面試題

快速定位到硬盤(pán)中的數(shù)據(jù)文件...

數(shù)據(jù)庫(kù)開(kāi)發(fā)面試題

4.什么是事務(wù)?

事務(wù)簡(jiǎn)單來(lái)說(shuō):一個(gè)Session中所進(jìn)行所有的操作,要么同時(shí)成功,要么同時(shí)失敗

ACID — 數(shù)據(jù)庫(kù)事務(wù)正確執(zhí)行的四個(gè)基本要素

包含:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持久性(Durability)。

一個(gè)支持事務(wù)(Transaction)中的數(shù)據(jù)庫(kù)系統(tǒng),必需要具有這四種特性,否則在事務(wù)過(guò)程(Transaction processing)當(dāng)中無(wú)法保證數(shù)據(jù)的正確性,交易過(guò)程極可能達(dá)不到交易。

舉個(gè)例子:A向B轉(zhuǎn)賬,轉(zhuǎn)賬這個(gè)流程中如果出現(xiàn)問(wèn)題,事務(wù)可以讓數(shù)據(jù)恢復(fù)成原來(lái)一樣【A賬戶的錢(qián)沒(méi)變,B賬戶的錢(qián)也沒(méi)變】。

事例說(shuō)明:

 
 
		/*
		* 我們來(lái)模擬A向B賬號(hào)轉(zhuǎn)賬的場(chǎng)景
		*   A和B賬戶都有1000塊,現(xiàn)在我讓A賬戶向B賬號(hào)轉(zhuǎn)500塊錢(qián)
		*
		* */
            //JDBC默認(rèn)的情況下是關(guān)閉事務(wù)的,下面我們看看關(guān)閉事務(wù)去操作轉(zhuǎn)賬操作有什么問(wèn)題
 
            //A賬戶減去500塊
            String sql = "UPDATE a SET money=money-500 ";
            preparedStatement = connection.prepareStatement(sql);
            preparedStatement.executeUpdate();
 
            //B賬戶多了500塊
            String sql2 = "UPDATE b SET money=money+500";
            preparedStatement = connection.prepareStatement(sql2);
            preparedStatement.executeUpdate();
 

從上面看,我們的確可以發(fā)現(xiàn)A向B轉(zhuǎn)賬,成功了。可是**如果A向B轉(zhuǎn)賬的過(guò)程中出現(xiàn)了問(wèn)題呢?**下面模擬一下

 
			//A賬戶減去500塊
            String sql = "UPDATE a SET money=money-500 ";
            preparedStatement = connection.prepareStatement(sql);
            preparedStatement.executeUpdate();
			
			//這里模擬出現(xiàn)問(wèn)題
            int a = 3 / 0;
 
 
            String sql2 = "UPDATE b SET money=money+500";
            preparedStatement = connection.prepareStatement(sql2);
            preparedStatement.executeUpdate();
 

顯然,上面代碼是會(huì)拋出異常的,我們?cè)賮?lái)查詢一下數(shù)據(jù)。A賬戶少了500塊錢(qián),B賬戶的錢(qián)沒(méi)有增加。這明顯是不合理的。

我們可以通過(guò)事務(wù)來(lái)解決上面出現(xiàn)的問(wèn)題

 
			//開(kāi)啟事務(wù),對(duì)數(shù)據(jù)的操作就不會(huì)立即生效。
            connection.setAutoCommit(false);
            
            //A賬戶減去500塊
            String sql = "UPDATE a SET money=money-500 ";
            preparedStatement = connection.prepareStatement(sql);
            preparedStatement.executeUpdate();
 
            //在轉(zhuǎn)賬過(guò)程中出現(xiàn)問(wèn)題
            int a = 3 / 0;
 
            //B賬戶多500塊
            String sql2 = "UPDATE b SET money=money+500";
            preparedStatement = connection.prepareStatement(sql2);
            preparedStatement.executeUpdate();
            
            //如果程序能執(zhí)行到這里,沒(méi)有拋出異常,我們就提交數(shù)據(jù)
            connection.commit();
 
			//關(guān)閉事務(wù)【自動(dòng)提交】
			connection.setAutoCommit(true);
            
 
        } catch (SQLException e) {
            try {
                //如果出現(xiàn)了異常,就會(huì)進(jìn)到這里來(lái),我們就把事務(wù)回滾【將數(shù)據(jù)變成原來(lái)那樣】
                connection.rollback();
                
                //關(guān)閉事務(wù)【自動(dòng)提交】
                connection.setAutoCommit(true);
            } catch (SQLException e1) {
                e1.printStackTrace();
            }
 

上面的程序也一樣拋出了異常,A賬戶錢(qián)沒(méi)有減少,B賬戶的錢(qián)也沒(méi)有增加。

注意:當(dāng)Connection遇到一個(gè)未處理的SQLException時(shí),系統(tǒng)會(huì)非正常退出,事務(wù)也會(huì)自動(dòng)回滾,但如果程序捕獲到了異常,是需要在catch中顯式回滾事務(wù)的。

以上就是“參與開(kāi)發(fā)面試的同學(xué),數(shù)據(jù)庫(kù)開(kāi)發(fā)面試題必看”,你能回答上來(lái)嗎?如果想要了解更多的Java面試題相關(guān)內(nèi)容,可以關(guān)注動(dòng)力節(jié)點(diǎn)Java官網(wǎng)。

提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 欧美日韩不卡在线 | 一级毛片成人免费看免费不卡 | 国产丝袜精品丝袜久久 | 中文一级黄色片 | 欧美日韩中文字幕在线视频 | 青青草国产免费 | 夜天干天干啦天干天天爽 | 丁香五月网久久综合 | 美尻在线| 狠狠色综合久久久久尤物 | 久久大香伊蕉在人线国产联合 | 制服丝袜在线看 | 爱搞视频首页在线 | 成年激情网 | 天天涩综合 | 久久精品a一国产成人免费网站 | 亚洲成综合人影院在院播放 | 天天综合天天做天天综合 | 日韩成人精品日本亚洲 | 久草热视频在线观看 | 欧美激情免费a视频 | 香蕉视频官网 | www.色.con| 毛片在线视频在线播放 | 我色综合| 日本久久不射 | 无遮挡无删动漫肉在线观看 | 狠狠燥 | 色黄网站aaaaaa级毛片 | 小黄视频免费观看 | 国产成人亚洲精品91专区高清 | 亚洲国产成人欧美激情 | 黄色网址免费在线播放 | 五月天婷婷综合网 | 99ri国产精品 | 午夜影院在线 | 日本天堂在线 | 中文字幕日韩一区二区三区不卡 | 日美黄色片 | 国产成人综合网 | 日韩欧免费一区二区三区 |