一、“數(shù)據(jù)庫(kù)”領(lǐng)域里面的“數(shù)據(jù)字典”到底是什么
數(shù)據(jù)字典是一個(gè)存放有數(shù)據(jù)庫(kù)所用的有關(guān)信息,在數(shù)據(jù)庫(kù)設(shè)計(jì)的初期將數(shù)據(jù)庫(kù)中的各類(lèi)數(shù)據(jù)的描述集合在一起,用于在開(kāi)發(fā),維護(hù)或者其他需要的時(shí)候使用,可以類(lèi)比成我們現(xiàn)實(shí)中的字典。
數(shù)據(jù)字典通常包括:
數(shù)據(jù)項(xiàng);數(shù)據(jù)結(jié)構(gòu);數(shù)據(jù)流;數(shù)據(jù)存儲(chǔ);處理過(guò)程。其中數(shù)據(jù)項(xiàng)是數(shù)據(jù)的最小組成單位,若干個(gè)數(shù)據(jù)項(xiàng)可以組成一個(gè)數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)字典通過(guò)對(duì)數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)的定義來(lái)描述數(shù)據(jù)流和數(shù)據(jù)存儲(chǔ)的邏輯內(nèi)容。
而我們有的系統(tǒng)中,為系統(tǒng)的后臺(tái)提供的數(shù)據(jù)字典。以同樣的原則為用戶(hù)提供了一系列的標(biāo)準(zhǔn)。用于一些特定的數(shù)據(jù)的規(guī)范化處理。這些數(shù)據(jù)除了通過(guò)專(zhuān)門(mén)的維護(hù)入口對(duì)它進(jìn)行維護(hù)以外其他用戶(hù)是不允許對(duì)數(shù)據(jù)字典中的數(shù)據(jù)進(jìn)行操作的。
二、數(shù)據(jù)庫(kù)概述
1、定義
數(shù)據(jù)庫(kù)是存放數(shù)據(jù)的倉(cāng)庫(kù)。它的存儲(chǔ)空間很大,可以存放百萬(wàn)條、千萬(wàn)條、上億條數(shù)據(jù)。但是數(shù)據(jù)庫(kù)并不是隨意地將數(shù)據(jù)進(jìn)行存放,是有一定的規(guī)則的,否則查詢(xún)的效率會(huì)很低。當(dāng)今世界是一個(gè)充滿(mǎn)著數(shù)據(jù)的互聯(lián)網(wǎng)世界,充斥著大量的數(shù)據(jù)。即這個(gè)互聯(lián)網(wǎng)世界就是數(shù)據(jù)世界。數(shù)據(jù)的來(lái)源有很多,比如出行記錄、消費(fèi)記錄、瀏覽的網(wǎng)頁(yè)、發(fā)送的消息等等。除了文本類(lèi)型的數(shù)據(jù),圖像、音樂(lè)、聲音都是數(shù)據(jù)。
數(shù)據(jù)庫(kù)是一個(gè)按數(shù)據(jù)結(jié)構(gòu)來(lái)存儲(chǔ)和管理數(shù)據(jù)的計(jì)算機(jī)軟件系統(tǒng)。數(shù)據(jù)庫(kù)的概念實(shí)際包括兩層意思:
數(shù)據(jù)庫(kù)是一個(gè)實(shí)體,它是能夠合理保管數(shù)據(jù)的“倉(cāng)庫(kù)”,用戶(hù)在該“倉(cāng)庫(kù)”中存放要管理的事務(wù)數(shù)據(jù),“數(shù)據(jù)”和“庫(kù)”兩個(gè)概念結(jié)合成為數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)是數(shù)據(jù)管理的新方法和技術(shù),它能更合適的組織數(shù)據(jù)、更方便的維護(hù)數(shù)據(jù)、更嚴(yán)密的控制數(shù)據(jù)和更有效的利用數(shù)據(jù)。2、發(fā)展現(xiàn)狀
在數(shù)據(jù)庫(kù)的發(fā)展歷史上,數(shù)據(jù)庫(kù)先后經(jīng)歷了層次數(shù)據(jù)庫(kù)、網(wǎng)狀數(shù)據(jù)庫(kù)和關(guān)系數(shù)據(jù)庫(kù)等各個(gè)階段的發(fā)展,數(shù)據(jù)庫(kù)技術(shù)在各個(gè)方面的快速的發(fā)展。特別是關(guān)系型數(shù)據(jù)庫(kù)已經(jīng)成為目前數(shù)據(jù)庫(kù)產(chǎn)品中最重要的一員,80年代以來(lái), 幾乎所有的數(shù)據(jù)庫(kù)廠(chǎng)商新出的數(shù)據(jù)庫(kù)產(chǎn)品都支持關(guān)系型數(shù)據(jù)庫(kù),即使一些非關(guān)系數(shù)據(jù)庫(kù)產(chǎn)品也幾乎都有支持關(guān)系數(shù)據(jù)庫(kù)的接口。這主要是傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)可以比較好的解決管理和存儲(chǔ)關(guān)系型數(shù)據(jù)的問(wèn)題。
隨著云計(jì)算的發(fā)展和大數(shù)據(jù)時(shí)代的到來(lái),關(guān)系型數(shù)據(jù)庫(kù)越來(lái)越無(wú)法滿(mǎn)足需要,這主要是由于越來(lái)越多的半關(guān)系型和非關(guān)系型數(shù)據(jù)需要用數(shù)據(jù)庫(kù)進(jìn)行存儲(chǔ)管理,以此同時(shí),分布式技術(shù)等新技術(shù)的出現(xiàn)也對(duì)數(shù)據(jù)庫(kù)的技術(shù)提出了新的要求,于是越來(lái)越多的非關(guān)系型數(shù)據(jù)庫(kù)就開(kāi)始出現(xiàn),這類(lèi)數(shù)據(jù)庫(kù)與傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)在設(shè)計(jì)和數(shù)據(jù)結(jié)構(gòu)有了很大的不同, 它們更強(qiáng)調(diào)數(shù)據(jù)庫(kù)數(shù)據(jù)的高并發(fā)讀寫(xiě)和存儲(chǔ)大數(shù)據(jù),這類(lèi)數(shù)據(jù)庫(kù)一般被稱(chēng)為NoSQL(Not only SQL)數(shù)據(jù)庫(kù)。 而傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)在一些傳統(tǒng)領(lǐng)域依然保持了強(qiáng)大的生命力。
3、數(shù)據(jù)庫(kù)管理系統(tǒng)
數(shù)據(jù)庫(kù)管理系統(tǒng)是為管理數(shù)據(jù)庫(kù)而設(shè)計(jì)的電腦軟件系統(tǒng),一般具有存儲(chǔ)、截取、安全保障、備份等基礎(chǔ)功能。數(shù)據(jù)庫(kù)管理系統(tǒng)可以依據(jù)它所支持的數(shù)據(jù)庫(kù)模型來(lái)作分類(lèi),例如關(guān)系式、XML;或依據(jù)所支持的計(jì)算機(jī)類(lèi)型來(lái)作分類(lèi),例如服務(wù)器群集、移動(dòng)電話(huà);或依據(jù)所用查詢(xún)語(yǔ)言來(lái)作分類(lèi),例如SQL、XQuery;或依據(jù)性能沖量重點(diǎn)來(lái)作分類(lèi),例如最大規(guī)模、較高運(yùn)行速度;亦或其他的分類(lèi)方式。不論使用哪種分類(lèi)方式,一些DBMS能夠跨類(lèi)別,例如,同時(shí)支持多種查詢(xún)語(yǔ)言。
數(shù)據(jù)庫(kù)管理系統(tǒng)是數(shù)據(jù)庫(kù)系統(tǒng)的核心組成部分,主要完成對(duì)數(shù)據(jù)庫(kù)的操作與管理功能,實(shí)現(xiàn)數(shù)據(jù)庫(kù)對(duì)象的創(chuàng)建、數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù)的查詢(xún)、添加、修改與刪除操作和數(shù)據(jù)庫(kù)的用戶(hù)管理、權(quán)限管理等。它的安全直接關(guān)系到整個(gè)數(shù)據(jù)庫(kù)系統(tǒng)的安全,其防護(hù)手段主要有:
使用正版數(shù)據(jù)庫(kù)管理系統(tǒng)并及時(shí)安裝相關(guān)補(bǔ)丁。做好用戶(hù)賬戶(hù)管理,禁用默認(rèn)超級(jí)管理員賬戶(hù)或者為超級(jí)管理員賬戶(hù)設(shè)置復(fù)雜密碼;為應(yīng)用程序分別分配專(zhuān)用賬戶(hù)進(jìn)行訪(fǎng)問(wèn);設(shè)置用戶(hù)登錄時(shí)間及登錄失敗次數(shù)限制, 防止暴力破解用戶(hù)密碼。分配用戶(hù)訪(fǎng)問(wèn)權(quán)限時(shí),堅(jiān)持最小權(quán)限分配原則,并限制用戶(hù)只能訪(fǎng)問(wèn)特定數(shù)據(jù)庫(kù),不能同時(shí)訪(fǎng)問(wèn)其他數(shù)據(jù)庫(kù)。修改數(shù)據(jù)庫(kù)默認(rèn)訪(fǎng)問(wèn)端口,使用防火墻屏蔽掉對(duì) 外開(kāi)放的其他端口,禁止一切外部的端口探測(cè)行為。對(duì)數(shù)據(jù)庫(kù)內(nèi)存儲(chǔ)的重要數(shù)據(jù)、敏感數(shù)據(jù)進(jìn)行加密存儲(chǔ),防止數(shù)據(jù)庫(kù)備份或數(shù)據(jù)文件被盜而造成數(shù)據(jù)泄露。設(shè)置好數(shù)據(jù)庫(kù)的備份策略,保證數(shù)據(jù)庫(kù)被破壞后能迅速恢復(fù)。對(duì)數(shù)據(jù)庫(kù)內(nèi)的系統(tǒng)存儲(chǔ)過(guò)程進(jìn)行合理管理,禁用掉不必要的存儲(chǔ)過(guò)程,防止利用存儲(chǔ)過(guò)程進(jìn)行數(shù)據(jù)庫(kù)探測(cè)與攻擊。啟用數(shù)據(jù)庫(kù)審核功能,對(duì)數(shù)據(jù)庫(kù)進(jìn)行全面的事件跟蹤和日志記錄。4、類(lèi)型
關(guān)系數(shù)據(jù)庫(kù):關(guān)系型數(shù)據(jù)庫(kù)和常見(jiàn)的表格比較相似,關(guān)系型數(shù)據(jù)庫(kù)中表與表之間是有很多復(fù)雜的關(guān)聯(lián)關(guān)系的。 常見(jiàn)的關(guān)系型數(shù)據(jù)庫(kù)有Mysql,SqlServer等。在輕量或者小型的應(yīng)用中,使用不同的關(guān)系型數(shù)據(jù)庫(kù)對(duì)系統(tǒng)的性能影響不大,但是在構(gòu)建大型應(yīng)用時(shí),則需要根據(jù)應(yīng)用的業(yè)務(wù)需求和性能需求,選擇合適的關(guān)系型數(shù)據(jù)庫(kù)。非關(guān)系型數(shù)據(jù)庫(kù)(NoSQL):指的是分布式的、非關(guān)系型的、不保證遵循ACID原則的數(shù)據(jù)存儲(chǔ)系統(tǒng)。NoSQL數(shù)據(jù)庫(kù)技術(shù)與CAP理論、一致性哈希算法有密切關(guān)系。隨著近些年技術(shù)方向的不斷拓展,大量的NoSql數(shù)據(jù)庫(kù)如MongoDB、Redis、Memcache出于簡(jiǎn)化數(shù)據(jù)庫(kù)結(jié)構(gòu)、避免冗余、影響性能的表連接、摒棄復(fù)雜分布式的目的被設(shè)計(jì)。延伸閱讀1:數(shù)據(jù)字典的作用
數(shù)據(jù)字典最重要的作用是作為分析階段的工具,任何字典最重要的用途都是供人查詢(xún)對(duì)不了解的條目的解釋?zhuān)诮Y(jié)構(gòu)化分析中,數(shù)據(jù)字典的作用是給數(shù)據(jù)流圖上每個(gè)成分加以定義和說(shuō)明。換句話(huà)說(shuō),數(shù)據(jù)流圖上所有的成分的定義和解釋的文字集合就是數(shù)據(jù)字典,而且在數(shù)據(jù)字典中建立的一組嚴(yán)密一致的定義,很有助于改進(jìn)分析員和用戶(hù)的通信。