李莉 廣東白云學(xué)院
隨著當(dāng)前我國信息技術(shù)的不斷發(fā)展和進(jìn)步,其對(duì)當(dāng)代人的生活和工作也帶來了非常大的改變,翻天覆地的變革產(chǎn)生的同時(shí)也隨機(jī)產(chǎn)生了很多的數(shù)據(jù)需要進(jìn)行管理,從而衍生了數(shù)據(jù)庫技術(shù)、大數(shù)據(jù)技術(shù)、數(shù)據(jù)挖掘技術(shù)等先進(jìn)的數(shù)據(jù)處理與管理技術(shù),其中數(shù)據(jù)庫技術(shù)是一種較為便利和高效的數(shù)據(jù)管理工具,主要可以分為關(guān)系型數(shù)據(jù)庫和非關(guān)系型數(shù)據(jù)庫兩種技術(shù),相對(duì)而言,關(guān)系型數(shù)據(jù)庫的產(chǎn)生更早,通過模型來進(jìn)行數(shù)據(jù)組織,在應(yīng)用范圍上較為廣泛,而非關(guān)系型數(shù)據(jù)庫在設(shè)計(jì)模式時(shí)主要采用分布式非關(guān)系型,并且不提供數(shù)據(jù)庫事務(wù)處理基本要素ACID,也具有突出的特點(diǎn)。
關(guān)系型數(shù)據(jù)庫通過運(yùn)用數(shù)據(jù)庫管理系統(tǒng),能夠結(jié)合管理目標(biāo)和工作項(xiàng)目進(jìn)行專門的設(shè)計(jì),從形成分散獨(dú)立的數(shù)據(jù)庫方便使用,當(dāng)項(xiàng)目進(jìn)行拓展時(shí),也能夠通過數(shù)據(jù)庫靈活使用滿足需求。但是需要注意的是,在進(jìn)行數(shù)據(jù)庫選取時(shí),必須進(jìn)行預(yù)先籌劃,如果未能合理規(guī)劃,便容易造成存儲(chǔ)和使用過程無法保障的問題,使得數(shù)據(jù)庫的維護(hù)和拓展過程難以正常實(shí)現(xiàn)。關(guān)系型數(shù)據(jù)庫主要以數(shù)據(jù)關(guān)聯(lián)性為基礎(chǔ),通常包含的數(shù)據(jù)量非常大,因此在數(shù)據(jù)查找時(shí)會(huì)消耗較多的時(shí)間,從而對(duì)使用效率產(chǎn)生一定的影響,當(dāng)數(shù)據(jù)量過于龐大時(shí),使用關(guān)系型數(shù)據(jù)庫保證效率較為困難。隨著當(dāng)前互聯(lián)網(wǎng)技術(shù)的發(fā)展,非關(guān)系型數(shù)據(jù)庫逐步進(jìn)入人們的生活中,并得到了業(yè)內(nèi)研究者的廣泛關(guān)注和應(yīng)用,特別是在規(guī)模非常龐大的社交網(wǎng)站中具有突出的應(yīng)用,能夠解決關(guān)系型數(shù)據(jù)庫暴露的諸多問題,相對(duì)來說在數(shù)據(jù)庫讀寫需求較大、存儲(chǔ)訪問需求較多、擴(kuò)展性需求較高的條件下更為適用。同時(shí),關(guān)系型數(shù)據(jù)庫在多表關(guān)聯(lián)查詢、實(shí)時(shí)讀寫、事務(wù)一致性等方面的要求也更高,當(dāng)相關(guān)網(wǎng)站難以實(shí)現(xiàn)此類條件時(shí),便無法正確發(fā)揮其功能,因此業(yè)內(nèi)為了解決這一問題,初步探索和使用非關(guān)系型數(shù)據(jù)庫,取得了一定的應(yīng)用。但是當(dāng)前依然也存在一些使用中的不足,非關(guān)系型數(shù)據(jù)庫的產(chǎn)生較晚,加之使用多樣性和復(fù)雜性,因此也存在一定的使用難度,通常需要針對(duì)不同問題而針對(duì)性分析和設(shè)計(jì)。
在信息量逐步龐大的時(shí)代背景下,傳統(tǒng)的人工數(shù)據(jù)管理方式已經(jīng)難以滿足現(xiàn)代化管理的需求,必須借助數(shù)據(jù)庫技術(shù)得以優(yōu)化運(yùn)用。通過對(duì)大量數(shù)據(jù)信息進(jìn)行結(jié)構(gòu)化的處理,實(shí)現(xiàn)的管理和存儲(chǔ)能夠?qū)崿F(xiàn)數(shù)據(jù)倉庫的優(yōu)化運(yùn)用,因此我們可以將數(shù)據(jù)庫看作是各類數(shù)據(jù)和文件的電子化文件柜,用戶能夠便捷地進(jìn)行電子文件的查找、增加、刪除、修改等操作。為了更好地實(shí)現(xiàn)數(shù)據(jù)庫相關(guān)功能,需要日常對(duì)數(shù)據(jù)庫進(jìn)行常態(tài)化的管理。在進(jìn)行數(shù)據(jù)庫管理前,首先需要對(duì)數(shù)據(jù)進(jìn)行錄入或?qū)?,通過完整的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)庫相關(guān)功能,實(shí)現(xiàn)后期的查詢等一系列操作,通過運(yùn)用計(jì)算機(jī)技術(shù)對(duì)數(shù)據(jù)庫進(jìn)行相應(yīng)的管理和操作,能夠顯著提升日常辦公和使用效率,因此,數(shù)據(jù)庫技術(shù)主要應(yīng)當(dāng)具備如下五個(gè)特點(diǎn):一是滿足數(shù)據(jù)共享的需要,要保證不同用戶在同一時(shí)間對(duì)數(shù)據(jù)庫中數(shù)據(jù)的讀取和寫入,通過各類接口設(shè)備的使用,能夠避免用戶大量重復(fù)數(shù)據(jù)的產(chǎn)生,導(dǎo)致數(shù)據(jù)冗余,也能夠避免數(shù)據(jù)的不一致和不相容。二是保證數(shù)據(jù)的獨(dú)立性,如邏輯獨(dú)立性和物理獨(dú)立性等,邏輯獨(dú)立性需要數(shù)據(jù)庫中的數(shù)據(jù)與用戶應(yīng)用程序相對(duì)獨(dú)立,使用應(yīng)用程序進(jìn)行修改不會(huì)對(duì)數(shù)據(jù)內(nèi)容產(chǎn)生影響;而物理獨(dú)立性主要指數(shù)據(jù)的物理結(jié)構(gòu)發(fā)生變化不會(huì)影響數(shù)據(jù)的邏輯。三是實(shí)現(xiàn)數(shù)據(jù)的集中控制,與傳統(tǒng)管理文件的方法有所不同的是,數(shù)據(jù)庫技術(shù)能夠?qū)崿F(xiàn)對(duì)文件數(shù)據(jù)的集中管理與控制,整個(gè)過程不再處于分散狀態(tài),能夠使用更好更高效的數(shù)據(jù)模型展示數(shù)據(jù)間的關(guān)系。四是保證數(shù)據(jù)的可維護(hù)性和一致性,對(duì)數(shù)據(jù)庫中的數(shù)據(jù)要進(jìn)行適當(dāng)?shù)耐暾钥刂?、安全性控制等操作,以防出現(xiàn)數(shù)據(jù)的錯(cuò)誤、更新和丟失,從而保證其有效性和正確性,特別是在對(duì)一段時(shí)間周期內(nèi)進(jìn)行多路存取數(shù)據(jù),要防止用戶之間出現(xiàn)不正常交互,從而切實(shí)保障數(shù)據(jù)的安全性。五是數(shù)據(jù)庫應(yīng)當(dāng)具備故障恢復(fù)能力和條件,當(dāng)數(shù)據(jù)庫系統(tǒng)出現(xiàn)邏輯上或物理上的故障,應(yīng)當(dāng)能夠盡快恢復(fù)數(shù)據(jù)庫系統(tǒng),防止其被破壞或產(chǎn)生毀滅性的損傷。
關(guān)系型數(shù)據(jù)庫一般是在二維表數(shù)據(jù)模型的基礎(chǔ)上創(chuàng)建得到的。通過二維表格存放關(guān)系模型中相應(yīng)的數(shù)據(jù)實(shí)現(xiàn)數(shù)據(jù)的集合,因此將二維表稱作關(guān)系,用來表示存儲(chǔ)數(shù)據(jù)對(duì)象與代表之間的關(guān)系,通過行和列不同的組成形式,展現(xiàn)出多對(duì)多、一對(duì)多、一對(duì)一等不同的關(guān)聯(lián)方法,因此關(guān)系型數(shù)據(jù)庫通常是二維表互相關(guān)聯(lián)得到的綜合數(shù)據(jù)結(jié)構(gòu)。SQL是一種結(jié)構(gòu)化查詢語言,是進(jìn)行數(shù)據(jù)庫編輯設(shè)計(jì)的語言,同時(shí)也是數(shù)據(jù)庫腳本文件,能夠?qū)崿F(xiàn)數(shù)據(jù)控制語言、數(shù)據(jù)操縱語言、數(shù)據(jù)查詢語言和數(shù)據(jù)定義語言的統(tǒng)一體,從而實(shí)現(xiàn)對(duì)數(shù)據(jù)庫內(nèi)容的全部操作,從查詢到錄入到修改和刪除等全過程都可以在SQL語言的幫助下實(shí)現(xiàn),用戶僅需為計(jì)算機(jī)提供需要操作的指令,不再需要為其設(shè)置操作的過程便可以實(shí)現(xiàn)系統(tǒng)的自動(dòng)控制,從而提高了數(shù)據(jù)的獨(dú)立性,減少了用戶的工作量。在關(guān)系型數(shù)據(jù)庫中,一般采用SQL作為標(biāo)準(zhǔn)數(shù)據(jù)查詢語言,從而形成簡單易懂?dāng)?shù)據(jù)庫管理模式。在數(shù)十年的發(fā)展經(jīng)歷中,關(guān)系型數(shù)據(jù)庫形成了豐富的理論基礎(chǔ)和技術(shù)產(chǎn)品,是當(dāng)前數(shù)據(jù)庫領(lǐng)域的主要組成部分,并且具有隔離性、持久性、一致性、原子性的特征,能夠解決一系列數(shù)據(jù)庫問題,因此在實(shí)際運(yùn)用中非常廣泛,但是關(guān)系型數(shù)據(jù)庫由于其結(jié)構(gòu)特點(diǎn)的限制,在進(jìn)行高效擴(kuò)展架構(gòu)時(shí)會(huì)受到一定的影響,因此非關(guān)系型數(shù)據(jù)庫也得到了大家的關(guān)注。
業(yè)內(nèi)將非關(guān)系型數(shù)據(jù)庫也稱為NoSQL。主要是指非關(guān)系型數(shù)據(jù)庫,不僅僅依靠結(jié)構(gòu)化查詢語言,通過非關(guān)系型模型中的適當(dāng)設(shè)置,使其不僅能夠具有ACID的有關(guān)特性,而且能夠在關(guān)系型傳統(tǒng)數(shù)據(jù)模型基礎(chǔ)上更好地滿足互聯(lián)網(wǎng)需求,將開源免費(fèi)資源更加簡單便捷地向用戶提供,一方面擁有橫縱雙向的擴(kuò)展能力,在多個(gè)服務(wù)器上布置結(jié)構(gòu)特性,另一方面能夠保持結(jié)構(gòu)自由,使得其能夠更好地融入云計(jì)算環(huán)境,為云服務(wù)提供可能。
關(guān)系型數(shù)據(jù)庫與非關(guān)系型數(shù)據(jù)庫在具體使用過程中存在較大的差別,因此在各個(gè)領(lǐng)域應(yīng)用時(shí),需要充分考慮實(shí)際情況,并發(fā)揮出數(shù)據(jù)庫的特有優(yōu)勢(shì)。如關(guān)系型數(shù)據(jù)庫具有邏輯清晰、結(jié)構(gòu)簡單的特點(diǎn),便于理解。通過位表的使用能夠在表與表之間建立復(fù)雜的數(shù)據(jù)查詢結(jié)構(gòu),因此在學(xué)習(xí)時(shí)更加的便捷,同時(shí)其具有一致性和完整性的突出特點(diǎn),在維護(hù)時(shí)較為方便。但是關(guān)系型數(shù)據(jù)庫同時(shí)存在結(jié)構(gòu)固定、海量數(shù)據(jù)讀寫效率不足,受一致性影響嚴(yán)重的特點(diǎn)。
非關(guān)系型數(shù)據(jù)庫具有讀寫性高、格式靈活、數(shù)據(jù)種類多樣的特點(diǎn),因其不再需要SQL進(jìn)行解析,所以在擴(kuò)展方面較為便捷,具有較好的數(shù)據(jù)性能。但是由于其不提供SQL支持,因此學(xué)習(xí)時(shí)具有較高的成本,并且事物處理相關(guān)功能比較欠缺。
從目前業(yè)內(nèi)情況來看,應(yīng)用關(guān)系型數(shù)據(jù)庫已經(jīng)較為成熟,但是在非關(guān)系型數(shù)據(jù)庫的應(yīng)用上尚顯不足。在當(dāng)前民眾對(duì)數(shù)據(jù)處理相應(yīng)需求不斷提升的背景下,給數(shù)據(jù)的高擴(kuò)展性提出了越來越多的要求,因此,業(yè)內(nèi)亟須探索從關(guān)系型數(shù)據(jù)庫向非關(guān)系型數(shù)據(jù)庫的過渡,更好地適應(yīng)不同場景的應(yīng)用。
對(duì)于非關(guān)系型數(shù)據(jù)庫,業(yè)內(nèi)的理解有許多方式,很多人認(rèn)為其可以看作數(shù)據(jù)結(jié)構(gòu)化存儲(chǔ)方法的集合,而擺脫了嚴(yán)格意義上數(shù)據(jù)庫的概念,其應(yīng)用的場景主要包括如下一些種類:
通過流的方式形成列式存儲(chǔ),能夠?qū)崿F(xiàn)對(duì)數(shù)據(jù)的存儲(chǔ)過程,同時(shí)形成快速索引,幫助便捷查找數(shù)據(jù),通過行檢索快速匹配列值,能夠?qū)崿F(xiàn)行的重組,使得系統(tǒng)具有較高的可擴(kuò)展性,操作也較為方便,此類方法對(duì)海量數(shù)據(jù)的適應(yīng)性較好,能夠良好的滿足云計(jì)算的相關(guān)需求,如當(dāng)前廣泛使用的Google BigTable等。
在非關(guān)系型數(shù)據(jù)庫中,最簡單的存儲(chǔ)方式是鍵值對(duì)存儲(chǔ)方式,它可以看作是一個(gè)鍵值集合,每一個(gè)鍵分別對(duì)應(yīng)一個(gè)值,存儲(chǔ)數(shù)據(jù)類型受限制較少,既可以是數(shù)字,也可以是字符串或封裝對(duì)象,通過組件的操作可以實(shí)現(xiàn)查詢與修改的完成,從而對(duì)大量數(shù)據(jù)實(shí)現(xiàn)存放和查找,在現(xiàn)實(shí)中有很多的應(yīng)用,如MemcacheDB、Redis數(shù)據(jù)庫等。
在進(jìn)行文檔存儲(chǔ)時(shí),可以采用鍵值對(duì)存儲(chǔ)的形式,也可以讓每個(gè)key與相應(yīng)的value對(duì)應(yīng),雖然這種方式更加的復(fù)雜,但是其在文檔存儲(chǔ)時(shí)具有一定的優(yōu)勢(shì),可以將特定文檔結(jié)構(gòu)通過特定模式完成存儲(chǔ),便于后期進(jìn)行復(fù)雜計(jì)算與查詢,當(dāng)前業(yè)內(nèi)的應(yīng)用典型包括MongoDB、CouchDB等。
當(dāng)數(shù)據(jù)庫所要面臨的問題與圖相關(guān)時(shí),便涉及圖數(shù)據(jù)庫,該圖數(shù)據(jù)庫能夠給用戶提供網(wǎng)狀分布數(shù)據(jù)管理平臺(tái),用來管理復(fù)雜的數(shù)據(jù)結(jié)構(gòu),基于圖模型提供數(shù)據(jù)管理解決方案,分為開源和閉源兩種,在社交網(wǎng)絡(luò)環(huán)境中廣泛應(yīng)用,如FrockDB、OrientDB等。
在當(dāng)前網(wǎng)絡(luò)信息技術(shù)不斷發(fā)展、數(shù)據(jù)規(guī)模不斷擴(kuò)大、數(shù)據(jù)復(fù)雜程度不斷提升的背景下,傳統(tǒng)的關(guān)系型數(shù)據(jù)庫在面對(duì)新型的網(wǎng)絡(luò)環(huán)境和數(shù)據(jù)結(jié)構(gòu)時(shí),經(jīng)常表現(xiàn)出不足,因此,應(yīng)當(dāng)更多的探索非關(guān)系型數(shù)據(jù)庫,借助其靈活性、高性能和易拓展的特點(diǎn),使數(shù)據(jù)模型得到充分的發(fā)展,更好地突出企業(yè)具備的優(yōu)勢(shì),雖然非關(guān)系型數(shù)據(jù)庫不支持SQL語言,導(dǎo)致學(xué)習(xí)和使用成本有所提升,在數(shù)據(jù)完整性和一致性方面也有所不足,但是如果使用時(shí)能夠充分考慮場景特點(diǎn),將關(guān)系型數(shù)據(jù)庫與非關(guān)系型數(shù)據(jù)庫合理選擇和應(yīng)用,便可以實(shí)現(xiàn)優(yōu)勢(shì)互補(bǔ),充分發(fā)揮各自的特點(diǎn),使其互相之間成為補(bǔ)充,更好的完善數(shù)據(jù)庫技術(shù)的發(fā)展與應(yīng)用。