數(shù)據(jù)庫采購指南之除了功能還是功能!
原創(chuàng)【51CTO獨(dú)家譯文】我們?cè)?**個(gè)部分《數(shù)據(jù)庫采購指南之細(xì)說數(shù)據(jù)庫的類型和功能》中首先介紹了主要的數(shù)據(jù)庫類型,以及選購數(shù)據(jù)庫管理系統(tǒng)時(shí)要考慮的一些重要功能。這些功能包括存儲(chǔ)機(jī)制、數(shù)據(jù)完整性和支持的語言,范圍涵蓋SQL版本以及PL/TCL、PL/Perl和PL/python等編程語言。
本文將介紹數(shù)據(jù)庫管理系統(tǒng)其他額外的重要功能,你在作出決策之前***考慮到這些功能。
支持的數(shù)據(jù)類型
在過去的幾年,支持大對(duì)象的功能變得越來越受歡迎。常見的大對(duì)象包括:用戶定義的數(shù)據(jù)類型、名為地理信息系統(tǒng)(GIS)的地理特征、圖像和極大的或不受限制的文本字段。除了能夠存儲(chǔ)這類龐大而復(fù)雜的數(shù)據(jù)類型外,數(shù)據(jù)庫還要提供查找和檢索它們的辦法。一種辦法稱為基于內(nèi)容的圖像檢索(CBIR),這一類技術(shù)用于使用一個(gè)或多個(gè)實(shí)例圖像,從龐大圖像庫檢索信息。另一種技術(shù)使用索引關(guān)鍵字搜索。
性能監(jiān)控和調(diào)優(yōu)功能
你的數(shù)據(jù)模式越龐大、越復(fù)雜,性能監(jiān)控和調(diào)優(yōu)功能就變得越重要。要獲得***的查詢性能,就必須支持單列、多列和獨(dú)特的主鍵索引。為了從數(shù)據(jù)庫獲得***性能,分析工具就必不可少。我最近寫了幾篇文章來介紹MySQL分析工具:《用MySQL的分析工具來找出慢速查詢》(http://www.databasejournal.com/features/mysql/article.php/3921876/Identify-Slow-Queries-using-MySQLs-Analysis-Tools.htm),以及《用MySQL的分析工具來改進(jìn)查詢性能》(http://www.databasejournal.com/features/mysql/article.php/3925251/Using-MySQLs-Analysis-Tools-to-Improve-Query-Performance.htm)。
媒體大肆報(bào)道的一連串?dāng)?shù)據(jù)庫泄密事件使得安全成為數(shù)據(jù)庫領(lǐng)域關(guān)注的首要問題。下列功能將幫助你確保數(shù)據(jù)庫系統(tǒng)很安全,從而遠(yuǎn)離未授權(quán)訪問:加密、支持復(fù)制、定義用戶角色和用戶組的功能以及細(xì)粒度的權(quán)限授予等。你還得考慮數(shù)據(jù)庫實(shí)際上放在哪里。要是有人隨便進(jìn)來,就能拿走你的數(shù)據(jù),花巨資購買安全軟件又有啥用?! 如果牽涉大筆的錢,內(nèi)賊作案這種威脅比你想象的要常見得多!
不是所有數(shù)據(jù)庫都可以在每個(gè)平臺(tái)上運(yùn)行。甲骨文和DB2等一些比較大牌的廠商,甚至MySQL等一些比較小的廠商都銷售支持多種操作系統(tǒng)的數(shù)據(jù)庫。其他廠商只能支持某種特定的操作系統(tǒng)(如Windows或Linux)。評(píng)估跨平臺(tái)產(chǎn)品時(shí),要密切注意你在多個(gè)數(shù)據(jù)庫管理系統(tǒng)之間切換時(shí),每個(gè)軟件版本在運(yùn)行時(shí)怎么樣,包括工作流、導(dǎo)航操作和外觀感覺等方面的變化,因?yàn)檫@會(huì)影響每個(gè)新員工的適應(yīng)時(shí)間,還會(huì)影響現(xiàn)有的團(tuán)隊(duì)成員學(xué)用每種新數(shù)據(jù)庫管理系統(tǒng)的難易程度。
協(xié)作
如今在應(yīng)用程序的整個(gè)生命周期中,數(shù)據(jù)庫開發(fā)員和管理員的角色存在諸多重疊并不罕見。比如在我公司,程序員常常用Java動(dòng)態(tài)創(chuàng)建SQL語句,直接從應(yīng)用程序中針對(duì)數(shù)據(jù)庫來執(zhí)行。這僅僅是表明協(xié)作功能大有助益的一個(gè)例子。 數(shù)據(jù)庫工具還有助于管理團(tuán)隊(duì)、質(zhì)量保證團(tuán)隊(duì)和合作伙伴之間的協(xié)作和溝通,從而有助于營造聯(lián)系更緊密的環(huán)境。一些常見的用途包括:能夠找出問題并傳達(dá)下去,讓管理、開發(fā)和質(zhì)量保證等團(tuán)隊(duì)盡快了解情況。報(bào)告生成功能也非常有助于與管理團(tuán)隊(duì)及其他團(tuán)隊(duì)的成員進(jìn)行溝通。能夠在開發(fā)人員與生產(chǎn)人員之間分發(fā)日常的數(shù)據(jù)模式變化是協(xié)作工具的另一個(gè)用途。
一些數(shù)據(jù)庫管理系統(tǒng)甚至允許你只要點(diǎn)擊幾下鼠標(biāo),就可以把項(xiàng)目放在中心版本控制系統(tǒng)之下。我發(fā)現(xiàn),你的團(tuán)隊(duì)越龐大,平臺(tái)環(huán)境越復(fù)雜,版本控制就變得越重要。我的部門有兩個(gè)數(shù)據(jù)敏感程度不一的并行網(wǎng)絡(luò),每個(gè)有各自的開發(fā)、質(zhì)量保證和生產(chǎn)支持環(huán)境,使得版本控制必不可少。***但并非最不重要的是,評(píng)估數(shù)據(jù)庫工具時(shí),考慮每個(gè)工具會(huì)如何幫助你與公司內(nèi)外的有關(guān)方進(jìn)行協(xié)作和溝通很重要。
數(shù)據(jù)可視化
說到協(xié)作,數(shù)據(jù)可視化功能有助于主開發(fā)員/管理員和可能需要信息的其他人。人們喜歡怎樣分析信息可能完全因人而宜。一些人青睞圖形化方式,一些人需要原始數(shù)據(jù)流,而還有一些人得益于這兩種方法。弄清楚你自己團(tuán)隊(duì)成員的偏好,然后選擇相應(yīng)的工具。僅舉一例,過去幾年出現(xiàn)了新興的SQL調(diào)優(yōu)技術(shù),包括可視化SQL調(diào)優(yōu)(VST)。VST這種方法以圖形化方式呈現(xiàn)SQL語言,以便快速了解查詢的主要部分、查詢流程及***執(zhí)行路徑。這種類型的數(shù)據(jù)圖形化呈現(xiàn)方法可以改進(jìn)你的SQL調(diào)優(yōu),并充分利用團(tuán)隊(duì)員分析數(shù)據(jù)的不同方法。
性能和可用性
數(shù)據(jù)庫管理員和開發(fā)員都不斷受到壓力,需要提高數(shù)據(jù)庫和應(yīng)用程序的性能。這不無道理;因?yàn)橛脩粼娇煺业剿璧臄?shù)據(jù),就能處理越多的事務(wù),因而工作效率就越高。你應(yīng)該考慮使用能夠防止、查找和解決性能問題的工具,以便這些問題出現(xiàn)。負(fù)責(zé)應(yīng)對(duì)生產(chǎn)環(huán)境問題的數(shù)據(jù)庫管理員和開發(fā)員依賴24x7的監(jiān)控和警報(bào)機(jī)制,那樣他們就能及早發(fā)現(xiàn)問題,并迅速解決問題,以免系統(tǒng)停運(yùn)。大家很清楚,一旦出現(xiàn)危機(jī),能夠迅速找出并解決問題的重要性再怎么強(qiáng)調(diào)都不過分!想一想:在這個(gè)緊要關(guān)頭,只需看一眼性能儀表板與不得不翻閱幾十個(gè)屏幕,這之間的差別有多大?!
說到備份,開源數(shù)據(jù)庫也許無法完全滿足你的要求。有些數(shù)據(jù)庫對(duì)于數(shù)據(jù)庫數(shù)據(jù)和模式只能提供簡單的文本轉(zhuǎn)儲(chǔ)。其他解決方案還提供了進(jìn)行數(shù)據(jù)庫熱備份的方法,這種備份是指不用關(guān)閉數(shù)據(jù)庫,就能進(jìn)行備份。Vertias NetBackup或Tivoli TSM等許多商用備份工具還有代理軟件,提供了商用數(shù)據(jù)庫的在線備份功能。備份功能還包括數(shù)據(jù)庫崩潰和電源突然出現(xiàn)故障后,簡單的數(shù)據(jù)庫恢復(fù)。PostgreSQL等一些數(shù)據(jù)庫管理系統(tǒng)使用一種名為預(yù)寫式日志(Write Ahead Logging)的方法,提供數(shù)據(jù)庫一致性檢查功能;MySQL只針對(duì)InnoDB表類型提供數(shù)據(jù)庫一致性檢查功能。
數(shù)據(jù)遷移
許多數(shù)據(jù)庫管理系統(tǒng)解決方案含有數(shù)據(jù)庫遷移實(shí)用工具,有助于在其他流行的商用數(shù)據(jù)庫之間來回遷移數(shù)據(jù)。市面上還有第三方的實(shí)用工具,它們有的是開源工具,有的是商用工具。顯然,你的數(shù)據(jù)模式越復(fù)雜,轉(zhuǎn)換起來難度就越大;其中一些工具可能無法理想地全面遷移各種數(shù)據(jù),需要長時(shí)間的手動(dòng)操作。
結(jié)論
我知道我在這里已介紹了許多功能。我記得有好多回,別人請(qǐng)我修復(fù)一開始沒有正確評(píng)估數(shù)據(jù)需求造成的破壞。21世紀(jì)的Web 2.0世界最普遍性的問題之一就是溝通。因而,要特別關(guān)注讓你可以跨平臺(tái)和數(shù)據(jù)庫管理系統(tǒng)共享數(shù)據(jù)的選擇。這方面的有用功能包括能夠用不同的格式來導(dǎo)入和導(dǎo)出數(shù)據(jù),比如XML、JSON及其他與網(wǎng)絡(luò)/平臺(tái)無關(guān)的標(biāo)準(zhǔn)。
【編輯推薦】