數(shù)據(jù)庫程序員面試分類真題3_第1頁
數(shù)據(jù)庫程序員面試分類真題3_第2頁
數(shù)據(jù)庫程序員面試分類真題3_第3頁
數(shù)據(jù)庫程序員面試分類真題3_第4頁
數(shù)據(jù)庫程序員面試分類真題3_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

數(shù)據(jù)庫程序員面試分類真題3簡答題1.

SAPIQ屬于行式還是列式數(shù)據(jù)庫?正確答案:SAPIQ屬于列式數(shù)據(jù)庫。SAPIQ是SAP(SystemsApplicationsandProduc(江南博哥)tsinDataProcessing)收購的原屬Sybase的產(chǎn)品。Sybase在2004年左右就推出了列存儲(chǔ)的SAPIQ(曾用名SybaseIQ)數(shù)據(jù)庫系統(tǒng),主要用于在線分析、數(shù)據(jù)挖掘、商業(yè)智能等查詢密集型應(yīng)用。不同于傳統(tǒng)的數(shù)據(jù)庫,SAPIQ擁有列式存儲(chǔ)、網(wǎng)格架構(gòu)、專利的數(shù)據(jù)壓縮和先進(jìn)的查詢優(yōu)化器。需要注意的是,由于SAPIQ采用關(guān)系模型,所以,IQ數(shù)據(jù)庫依然屬于關(guān)系型數(shù)據(jù)庫。IQ的架構(gòu)與大多數(shù)關(guān)系型數(shù)據(jù)庫不同,它的設(shè)計(jì)主要用以支持大量并發(fā)用戶的即時(shí)查詢,其設(shè)計(jì)與執(zhí)行進(jìn)程優(yōu)先考慮查詢性能,其次是完成批量數(shù)據(jù)更新的速度。而傳統(tǒng)關(guān)系型數(shù)據(jù)庫引擎的設(shè)計(jì)既考慮在線的事務(wù)進(jìn)程又考慮數(shù)據(jù)倉庫(而事實(shí)上,往往更多地關(guān)注事務(wù)進(jìn)程)。[考點(diǎn)]行存儲(chǔ)和列存儲(chǔ)

2.

什么是網(wǎng)狀數(shù)據(jù)庫和層次數(shù)據(jù)庫?正確答案:數(shù)據(jù)庫若按照使用的數(shù)據(jù)存儲(chǔ)模型來劃分,則可以把數(shù)據(jù)庫分為網(wǎng)狀數(shù)據(jù)庫(NetworkDatabase)、關(guān)系型數(shù)據(jù)庫(RelationalDatabase)和層次數(shù)據(jù)庫(HierarchicalDatabase)。其中,商業(yè)中使用最廣泛的數(shù)據(jù)庫主要是關(guān)系型數(shù)據(jù)庫,例如,Oracle、MySQL、DB2、SQLServer等。

網(wǎng)狀數(shù)據(jù)庫是指處理以記錄類型為結(jié)點(diǎn)的網(wǎng)狀數(shù)據(jù)模型的數(shù)據(jù)庫,處理方法是將網(wǎng)狀結(jié)構(gòu)分解成若干棵二級(jí)樹結(jié)構(gòu),稱為系,其代表是DBTG(DataBaseTaskGroup,數(shù)據(jù)庫任務(wù)組)系統(tǒng)。系類型是兩個(gè)或兩個(gè)以上的記錄類型之間聯(lián)系的一種描述。在一個(gè)系類型中,有一個(gè)記錄類型處于主導(dǎo)地位,稱為系主記錄類型,其他稱為成員記錄類型。系主和成員之間的聯(lián)系是一對(duì)多的關(guān)系。1969年美國的CODASYL組織提出了一份“DBTG報(bào)告”,之后,根據(jù)DBTG報(bào)告實(shí)現(xiàn)的系統(tǒng)一般稱為DBTG系統(tǒng)?,F(xiàn)有的網(wǎng)狀數(shù)據(jù)庫系統(tǒng)大都是采用DBTG方案。DBTG系統(tǒng)是典型的三級(jí)結(jié)構(gòu)體系:子模式、模式和存儲(chǔ)模式。相應(yīng)的數(shù)據(jù)定義語言分別稱為子模式定義語言SSDDL(SubSchemaDataDefinitionLanguage)、模式定義語言SDDL(SchemaDataDefinitionLanguage)、設(shè)備介質(zhì)控制語言DMCL(DeviceMediumControlLanguage),另外,還有數(shù)據(jù)操縱語言DML(DataManipulationLanguage)。

層次數(shù)據(jù)庫也叫樹狀數(shù)據(jù)庫,它是將數(shù)據(jù)組織成有向有序的樹結(jié)構(gòu),并用“一對(duì)多”的關(guān)系聯(lián)結(jié)不同層次的數(shù)據(jù)庫。最著名最典型的層次數(shù)據(jù)庫是IBM公司的IMS(InformarionManagement,System)數(shù)據(jù)庫。IMS是IBM公司研制的最早的大型數(shù)據(jù)庫管理系統(tǒng),其數(shù)據(jù)庫模式是多個(gè)物理數(shù)據(jù)庫記錄型(PhysicalDataBaseRecord,PDBR)的集合。每個(gè)PDBR對(duì)應(yīng)層次數(shù)據(jù)模型的一個(gè)層次模式。各個(gè)用戶所需數(shù)據(jù)的邏輯結(jié)構(gòu)稱為外模式,每個(gè)外模式是一組邏輯數(shù)據(jù)庫記錄型(LogicalDataBaseRecord,LDBR)的集合。LDBR是應(yīng)用程序所需的局部邏輯結(jié)構(gòu)。[考點(diǎn)]網(wǎng)狀和層次數(shù)據(jù)庫

3.

什么是時(shí)間序列數(shù)據(jù)庫?正確答案:時(shí)間序列數(shù)據(jù)庫(TimeSeriesDB),簡稱TSDB。它是一個(gè)比較特殊的數(shù)據(jù)庫,主要存放時(shí)間序列數(shù)據(jù)。時(shí)間序列數(shù)據(jù)就是數(shù)據(jù)格式里包含timestamp字段的數(shù)據(jù),例如股票市場的價(jià)格、環(huán)境中的溫度、主機(jī)的CPU使用率等。時(shí)間序列數(shù)據(jù)最重要的一個(gè)問題就是如何去查詢它。在查詢的時(shí)候,對(duì)于時(shí)間序列總是會(huì)帶上一個(gè)時(shí)間范圍去過濾數(shù)據(jù)。同時(shí)查詢的結(jié)果里也總是會(huì)包含timestamp字段。時(shí)間序列數(shù)據(jù)不同于傳統(tǒng)數(shù)據(jù),它有兩大特點(diǎn):①數(shù)據(jù)結(jié)構(gòu)簡單;②數(shù)據(jù)量大。[考點(diǎn)]時(shí)間序列數(shù)據(jù)庫

4.

時(shí)間序列數(shù)據(jù)庫有哪些典型的特征?正確答案:TSDB的典型特征包括:

1)數(shù)據(jù)庫90%以上的工作量是高頻高容量的寫入。

2)寫操作通常是隨著時(shí)間追加到現(xiàn)有的表中。

3)這些寫操作通常是按一定時(shí)序的,例如,每秒或者每分鐘。

4)更新單個(gè)點(diǎn)數(shù)據(jù)的操作很少。

5)幾乎總是跨越大的時(shí)間范圍(日、月或年)刪除數(shù)據(jù)。

6)數(shù)據(jù)庫查詢操作通常是在某序列中有序的,可能是按時(shí)間排序或者按某功能排序,執(zhí)行并行讀取或者多組讀取是常見的。[考點(diǎn)]時(shí)間序列數(shù)據(jù)庫

5.

時(shí)間序列數(shù)據(jù)庫有哪些代表數(shù)據(jù)庫?正確答案:因?yàn)闀r(shí)間序列數(shù)據(jù)自身的特點(diǎn),傳統(tǒng)的數(shù)據(jù)庫有些顯得力不從心,所以近年來涌現(xiàn)了很多優(yōu)秀的時(shí)間序列數(shù)據(jù)庫,例如InfluxDB、RRDtool、Graphite、OpenTSDB、Druid、Prometheus和Kdb+等,其中Kdb+也是關(guān)系型數(shù)據(jù)庫。TSDB其實(shí)在自動(dòng)化、石油、化工等其他行業(yè)早已經(jīng)普及使用。對(duì)于大部分DBA而言,TSDB使用在監(jiān)控上,將監(jiān)控?cái)?shù)據(jù)存放到TSDB中,便于分析和報(bào)警。[考點(diǎn)]時(shí)間序列數(shù)據(jù)庫

6.

什么是NewSQL數(shù)據(jù)庫?正確答案:近年來,隨著數(shù)據(jù)庫技術(shù)的發(fā)展,NoSQL和新生階段的NewSQL增長勢頭十分強(qiáng)勁。NewSQL是對(duì)各種新型可擴(kuò)展、高性能數(shù)據(jù)庫的簡稱,它們不僅有NoSQL對(duì)海量數(shù)據(jù)庫的存儲(chǔ)管理能力,還保持了傳統(tǒng)數(shù)據(jù)庫支持ACID和SQL等特性。這類新式的關(guān)系型數(shù)據(jù)庫針對(duì)OLTP(讀-寫)工作負(fù)載,追求提供和NoSQL系統(tǒng)相同的擴(kuò)展性能。目前所熟知的NewSQL數(shù)據(jù)庫包括Google的Spanner、Amazon的Aurora等。數(shù)據(jù)庫的發(fā)展從SQL(關(guān)系數(shù)據(jù)庫)到NoSQL(非關(guān)系數(shù)據(jù)庫),又到NewSQL(關(guān)系數(shù)據(jù)庫),每個(gè)發(fā)展階段都是由于業(yè)務(wù)的發(fā)展需要所推動(dòng)的。

由于傳統(tǒng)數(shù)據(jù)庫是基于磁盤的體系設(shè)計(jì)的,所以,在很多方面都無法突破,只能進(jìn)行修補(bǔ),難以有大的飛躍。NewSQL能夠結(jié)合傳統(tǒng)關(guān)系型數(shù)據(jù)庫和NoSQL的優(yōu)勢,且容易橫向擴(kuò)展,這是數(shù)據(jù)庫發(fā)展的必然方向。但目前市場上大多數(shù)NewSQL數(shù)據(jù)庫都被作為疊加方案使用,以彌補(bǔ)已有數(shù)據(jù)庫的不足,企業(yè)在選用時(shí)還需根據(jù)自身情況,考慮整體方案做出決策。對(duì)于技術(shù)資源并不豐富的企業(yè),選用供應(yīng)商提供的整合成熟方案也是一種不錯(cuò)的選擇。[考點(diǎn)]NewSQL和區(qū)塊鏈

7.

NewSQL數(shù)據(jù)庫目前分為哪幾類?正確答案:目前NewSQL系統(tǒng)大致分三類:

1)第一類型的NewSQL系統(tǒng)是全新的數(shù)據(jù)庫平臺(tái),它們均采取了不同的設(shè)計(jì)方法。它們大概分兩類:①這類數(shù)據(jù)庫工作在一個(gè)分布式集群的節(jié)點(diǎn)上,其中每個(gè)節(jié)點(diǎn)擁有一個(gè)數(shù)據(jù)子集。SQL查詢被分成查詢片段發(fā)送給自己所在的數(shù)據(jù)節(jié)點(diǎn)上執(zhí)行。這些數(shù)據(jù)庫可以通過添加額外的節(jié)點(diǎn)來線性擴(kuò)展?,F(xiàn)有的這類數(shù)據(jù)庫有GoogleSpanner、VoltDB、Clustrix、NuoDB。②這些數(shù)據(jù)庫系統(tǒng)通常有一個(gè)單一的主節(jié)點(diǎn)的數(shù)據(jù)源,它們有一組節(jié)點(diǎn)用來做事務(wù)處理,這些節(jié)點(diǎn)接到特定的SQL查詢后,會(huì)把它所需的所有數(shù)據(jù)從主節(jié)點(diǎn)上取回來后執(zhí)行SQL查詢,再返回結(jié)果。

2)第二類是高度優(yōu)化的SQL存儲(chǔ)引擎。這些系統(tǒng)提供了與MySQL相同的編程接口,但擴(kuò)展性比內(nèi)置的引擎InnoDB更好。這類數(shù)據(jù)庫系統(tǒng)有TokuDB、MemSQL。

3)第三類系統(tǒng)提供了分片的中間件層,數(shù)據(jù)庫自動(dòng)分割在多個(gè)節(jié)點(diǎn)運(yùn)行。這類數(shù)據(jù)庫包括ScaleBase、dbShards和Scalearc。[考點(diǎn)]NewSQL和區(qū)塊鏈

8.

NewSQL數(shù)據(jù)庫的典型代表數(shù)據(jù)庫有哪些?正確答案:在NewSQL數(shù)據(jù)庫中,TiDB是基于GoogleSpanner&F1實(shí)現(xiàn)的分布式NewSQL數(shù)據(jù)庫,目標(biāo)定位支持100%的OLTP+80%的OLAP,除了底層的RocksDB存儲(chǔ)引擎之外,分布式SQL解析層、分布式KV存儲(chǔ)引擎(TiKV)完全自主設(shè)計(jì)和研發(fā)。TiDB是開源且網(wǎng)絡(luò)接口和語法是與MySQL兼容的,可以簡單理解為一個(gè)可以無限水平擴(kuò)展的MySQL,提供分布式事務(wù)、跨節(jié)點(diǎn)JOIN、保證跨數(shù)據(jù)中心的數(shù)據(jù)的強(qiáng)一致性(ACID跨行事務(wù)支持)、故障自恢復(fù)的高可用、提供更快的查詢和寫入吞吐;對(duì)業(yè)務(wù)沒有任何侵入性,簡化開發(fā),利于維護(hù)和平滑遷移。[考點(diǎn)]NewSQL和區(qū)塊鏈

9.

區(qū)塊鏈?zhǔn)鞘裁?正確答案:區(qū)塊鏈就是一個(gè)去中心化的信任機(jī)制。區(qū)塊鏈技術(shù)是指一種全民參與記賬的方式,所有的系統(tǒng)背后都有一個(gè)數(shù)據(jù)庫,可以把數(shù)據(jù)庫看成是一個(gè)大賬本,而目前是各自記各自的賬。也可以把區(qū)塊鏈看成是一種分布式公共數(shù)據(jù)庫,它能永久保存數(shù)字交易的記錄。換言之,區(qū)塊鏈?zhǔn)且环N存儲(chǔ)所有數(shù)字交易且不可更改的日志文件。這個(gè)分布式數(shù)據(jù)庫并非由中心管理員控制,而是由重復(fù)數(shù)據(jù)庫組成的網(wǎng)絡(luò)控制的(意味著網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)都存儲(chǔ)了區(qū)塊鏈的一份重復(fù)項(xiàng)),該數(shù)據(jù)庫在同一網(wǎng)絡(luò)內(nèi)可見可共享。目前,區(qū)塊鏈技術(shù)處于一個(gè)非常早期的階段,不僅尚未形成統(tǒng)一的技術(shù)標(biāo)準(zhǔn),而且各種技術(shù)方案還在快速發(fā)展中。[考點(diǎn)]NewSQL和區(qū)塊鏈

10.

區(qū)塊鏈技術(shù)和比特幣有什么區(qū)別?正確答案:區(qū)塊鏈技術(shù)是比特幣(比特幣是一種使用P2P技術(shù)的去中心化數(shù)字貨幣)的底層技術(shù),比特幣在沒有任何中心化機(jī)構(gòu)運(yùn)營和管理的情況下,多年運(yùn)行非常穩(wěn)定,沒有出現(xiàn)過任何問題,所以有人注意到了它的底層技術(shù),把比特幣技術(shù)抽象提取出來,稱之為區(qū)塊鏈技術(shù),或者分布式賬本技術(shù)。區(qū)塊鏈技術(shù)不局限于比特幣,它可以用于創(chuàng)造任何其他加密貨幣,比如以太坊和萊特幣,每種都有它們各自的區(qū)塊鏈。[考點(diǎn)]NewSQL和區(qū)塊鏈

11.

區(qū)塊鏈技術(shù)主要可以用在哪些行業(yè)?正確答案:區(qū)塊鏈主要的優(yōu)勢是無須中介參與、過程高效透明且成本很低、數(shù)據(jù)高度安全。所以,如果在這三個(gè)方面有任意一個(gè)需求的行業(yè)都有機(jī)會(huì)使用區(qū)鏈技術(shù)。[考點(diǎn)]NewSQL和區(qū)塊鏈

12.

區(qū)塊鏈和云計(jì)算云存儲(chǔ)有什么關(guān)系?正確答案:云計(jì)算通常定義為通過互聯(lián)網(wǎng)來提供動(dòng)態(tài)易擴(kuò)展且經(jīng)常是虛擬化的資源,但是提供云計(jì)算平臺(tái)的往往是一個(gè)中心化機(jī)構(gòu)。而區(qū)塊鏈組成的網(wǎng)絡(luò)一般是沒有特定的機(jī)構(gòu),所以區(qū)塊鏈更接近分布式計(jì)算系統(tǒng)的定義,屬于分布式計(jì)算的一種。[考點(diǎn)]NewSQL和區(qū)塊鏈

13.

比特幣和Q幣有什么區(qū)別?正確答案:Q幣是一種中心化的電子貨幣,包括總量、發(fā)行方式都是由騰訊公司控制的。而比特幣的總量、發(fā)行方式都是由程序和加密算法預(yù)先設(shè)定后,在全世界的多個(gè)節(jié)點(diǎn)上運(yùn)行,沒有任何人和機(jī)構(gòu)可以修改,不受任何單一人或者機(jī)構(gòu)來控制。一般稱Q幣為電子貨幣,或者企業(yè)代幣,稱比特幣為數(shù)字貨幣或者加密數(shù)字貨幣。[考點(diǎn)]NewSQL和區(qū)塊鏈

14.

什么是范式?范式的優(yōu)缺點(diǎn)有哪些?正確答案:當(dāng)設(shè)計(jì)關(guān)系型數(shù)據(jù)庫時(shí),需要遵從不同的規(guī)范要求,設(shè)計(jì)出合理的關(guān)系型數(shù)據(jù)庫,這些不同的規(guī)范要求被稱為不同的范式(NormalForm),越高的范式數(shù)據(jù)庫冗余越小。應(yīng)用數(shù)據(jù)庫范式可以帶來許多好處,但是最主要的目的是消除重復(fù)數(shù)據(jù),減少數(shù)據(jù)冗余,讓數(shù)據(jù)庫內(nèi)的數(shù)據(jù)更好地組織,讓磁盤空間得到更有效的利用。范式的缺點(diǎn):范式使查詢變得相當(dāng)復(fù)雜,在查詢時(shí)需要更多的連接,一些復(fù)合索引的列由于范式化的需要被分割到不同的表中,導(dǎo)致索引策略不佳。[考點(diǎn)]范式

15.

設(shè)有關(guān)系模式R(職工名,項(xiàng)目名,工資,部門名,部門經(jīng)理)。

如果規(guī)定,每個(gè)職工可參加多個(gè)項(xiàng)目,各領(lǐng)一份工資;每個(gè)項(xiàng)目只屬于一個(gè)部門管理;每個(gè)部門只有一個(gè)經(jīng)理。

1)寫出關(guān)系模式R的基本函數(shù)依賴和主碼。

2)說明R不是2NF模式的理由,并把R分解成2NF。

3)進(jìn)而將R分解成3NF,并說明理由。正確答案:1)根據(jù)題意,可知有如下的函數(shù)依賴關(guān)系:

(職工名,項(xiàng)目名)→工資

項(xiàng)目名→部門名

部門名→部門經(jīng)理

所以,主鍵為(職工名,項(xiàng)目名)。

2)根據(jù)1),由于部門名、部門經(jīng)理只是部分依賴于主鍵,所以該關(guān)系模式不是2NF。應(yīng)該做如下分解:

R1(項(xiàng)目名,部門名,部門經(jīng)理)

R2(職工名,項(xiàng)目名,工資)

以上兩個(gè)關(guān)系模式都是2NF模式。

3)R2已經(jīng)是3NF,但R1不是,因?yàn)椴块T經(jīng)理傳遞依賴于項(xiàng)目名,故應(yīng)該做如下分解:

R11(項(xiàng)目名,部門名)

R12(部門名,部門經(jīng)理)

分解后形成的三個(gè)關(guān)系模式R11、R12、R2均是3NF模式。[考點(diǎn)]范式

設(shè)有關(guān)系模式R(A,B,C,D,E,F(xiàn)),其函數(shù)依賴集為F={E→D,C→B,CE→F,B→A}。16.

指出R的所有候選碼并說明原因。正確答案:由題可知A、B、D、F四個(gè)屬性均不是決定因素,所以只有C和E有可能構(gòu)成該關(guān)系模式的主鍵,而C、E之間沒有函數(shù)依賴關(guān)系,且根據(jù)己知的函數(shù)依賴可知,CE→ABCDEF,所以R的主鍵是CE。[考點(diǎn)]范式

17.

R最高屬于第幾范式,為什么?正確答案:由于D部分依賴于主鍵CE,A、B部分依賴于主鍵CE,所以R最高屬于INF。

18.

分解R為3NF。正確答案:將一個(gè)不滿足2NF的關(guān)系模式分解成3NF,總的原則是將滿足范式要求的函數(shù)依賴中包含的屬性分解為一個(gè)關(guān)系模式,將不滿足范式要求的函數(shù)依賴中所包含的屬性分別分解為多個(gè)關(guān)系模式。首先將R分解為2NF,分解如下:R1(E,D),R2(C,B,A),R3(C,E,F(xiàn))。上述三個(gè)模式中,R1、R3都已經(jīng)屬于3NF,但在R2中,A傳遞依賴于C,故應(yīng)該繼續(xù)分解為3NF,分解如下:R21(C,B),R22(B,A),將R分解為R1、R21、R22、R3四個(gè)模式后,都屬于3NF。

設(shè)有關(guān)系模式R(A,B,C,D,E),其函數(shù)依賴集為F={A→B,CE→A,E→D}。

請回答如下問題:19.

指出R的所有候選碼,并說明理由。正確答案:R的候選碼為(C,E),根據(jù)已知的函數(shù)依賴可知,CE

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論