張雅棋
(天津泰達(dá)水業(yè)有限公司 天津300457)
數(shù)據(jù)庫實(shí)現(xiàn)了對(duì)海量數(shù)據(jù)的存儲(chǔ)和管理,現(xiàn)代數(shù)據(jù)庫還實(shí)現(xiàn)了對(duì)數(shù)據(jù)的查詢及收集功能,為研究人員提供主要的數(shù)據(jù)情報(bào)支持。隨著大數(shù)據(jù)時(shí)代的到來,數(shù)據(jù)管理和操作的重要性也更為人們所重視。目前水務(wù)系統(tǒng)中最為常用的3個(gè)數(shù)據(jù)庫為SQL Sever、MySQL和Oracle,其優(yōu)勢(shì)與對(duì)應(yīng)人群也各有不同。
MySQL是由瑞典MySQL AB公司開發(fā)的關(guān)系型數(shù)據(jù)庫系統(tǒng),關(guān)系數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表單中,而不是像SQL Server或Oracle將所有數(shù)據(jù)放在一個(gè)大倉庫內(nèi),可極大提升速度和靈活性。MySQL采用雙授權(quán)政策可分為社區(qū)版和商業(yè)版,其體積小,速度快,總體擁有成本低,且可開放源代碼,更適合用于中小型網(wǎng)站開發(fā)。
MySQL是一個(gè)多用戶多線程SQL數(shù)據(jù)庫服務(wù)器,也是一個(gè)客戶機(jī)/服務(wù)器結(jié)構(gòu)的實(shí)現(xiàn),由一個(gè)服務(wù)器守護(hù)程序MySQL和許多不同的客戶程序及庫組成。其主要目標(biāo)是快速和易用,可提供C、C++、Java和TCL等API接口,并有多平臺(tái)支持。MySQL的核心功能主要存在于第二層架構(gòu),例如查詢、分析、優(yōu)化、緩存及所有內(nèi)置函數(shù),大部分跨存儲(chǔ)引擎功能亦可在此層實(shí)現(xiàn)。
根據(jù)MySQL開發(fā)公司稱,MySQL是目前得到數(shù)據(jù)速度最快的數(shù)據(jù)庫之一,除了技術(shù)上的原因外,這一數(shù)據(jù)庫還精簡了一些對(duì)中小水務(wù)或環(huán)境企業(yè)不必要或不常用功能。相對(duì)于Oracle、SQL Server,通常情況下,證書數(shù)字和字符串等均用多種長度來表示,MySQL則提供了enum和set以前均不常用的枚舉類型,可運(yùn)用在多個(gè)環(huán)境之中。同時(shí),在正確使用這兩個(gè)字段類型的基礎(chǔ)上,這個(gè)程序設(shè)計(jì)可以有效地省去諸多表單的鏈接,有效提高程序性能。
MySQL更多的是對(duì)SQL標(biāo)準(zhǔn)的補(bǔ)充,增添了一些擴(kuò)展功能使其更符合中小企業(yè)業(yè)務(wù)系統(tǒng)需求,而相對(duì)于需要大量水務(wù)系統(tǒng)數(shù)據(jù)支持的水務(wù)公司則顯得頗有限制性。水務(wù)公司需要數(shù)據(jù)庫有極強(qiáng)的數(shù)據(jù)靈活性與運(yùn)用性,在查詢、刪減與更改數(shù)據(jù)方面要求數(shù)據(jù)庫有絕對(duì)優(yōu)勢(shì)并且有相對(duì)高的安全性,MySQL雖然有相對(duì)豐富的功能,但由于是開源數(shù)據(jù)庫,在數(shù)據(jù)的運(yùn)用性能上更為減弱,故對(duì)于水務(wù)公司也不甚理想。
在費(fèi)用方面,MySQL的價(jià)格相對(duì)其他兩種數(shù)據(jù)庫更為便宜,同時(shí)也隨著平臺(tái)和安裝方式的變化而發(fā)生改變。MySQL版本中除了Windows NT和9X不免費(fèi)外,任何Unix變種的MySQL若由用戶自己或系統(tǒng)管理員安裝都是免費(fèi)的。
SQL Server數(shù)據(jù)庫提供了基于實(shí)物的企業(yè)級(jí)信息管理系統(tǒng)方案,是一個(gè)可擴(kuò)展、高性能、為分布式客戶機(jī)或服務(wù)器設(shè)計(jì)的數(shù)據(jù)庫管理系統(tǒng)。SQL Server最初是由美國Microsoft公司、Sybase和Ashton-Tate 3家公司共同開發(fā)推出的關(guān)系型數(shù)據(jù)庫系統(tǒng),后由Microsoft為主專注開發(fā)推廣SQL Server的Windows NT版本,先后推出了SQL Server 2000、2005、2008、2012、2014版本,逐步推進(jìn)且突破自身局限性,為要求最高的數(shù)據(jù)庫應(yīng)用系統(tǒng)提供關(guān)鍵性業(yè)務(wù)需求。
SQL Server數(shù)據(jù)庫具有信息數(shù)據(jù)管理、匯總及統(tǒng)計(jì)等功能,可對(duì)數(shù)據(jù)進(jìn)行針對(duì)性分類及歸納統(tǒng)計(jì),實(shí)現(xiàn)數(shù)據(jù)間的聯(lián)系和匯總并以合理的方式進(jìn)行存儲(chǔ),以此提高數(shù)據(jù)庫的工作效率[1]。
可支持Windows圖形化管理工具,本地和遠(yuǎn)程的系統(tǒng)管理及配置,擁有先進(jìn)的系統(tǒng)管理功能,并且擁有自主語言SQL,支持對(duì)稱處理器結(jié)構(gòu)、存儲(chǔ)過程,是一個(gè)出眾的相對(duì)大型的數(shù)據(jù)庫。
SQL Server相對(duì)于My SQL數(shù)據(jù)庫可存儲(chǔ)信息量更大且運(yùn)行相對(duì)快速、穩(wěn)定。因需要對(duì)大量內(nèi)容復(fù)雜的數(shù)據(jù)進(jìn)行查詢,SQL Server數(shù)據(jù)庫可利用自身優(yōu)勢(shì)對(duì)數(shù)據(jù)完整性進(jìn)行保護(hù),確保增刪改及查詢等基本操作不會(huì)對(duì)數(shù)據(jù)造成影響,且數(shù)據(jù)庫的歷史信息、數(shù)據(jù)和瀏覽均在不可編輯下執(zhí)行,查詢功能設(shè)有對(duì)應(yīng)權(quán)限,否則操作提示失敗[2]。
SQL Server在我國眾多水務(wù)集團(tuán)中被廣泛使用,其主要原因不外乎它的高可用性技術(shù),包括:集群、復(fù)制、鏡像、日志傳送,AlwaysOn可用性組及其他如文件組備份還原,在線重建索引等單實(shí)例的高可用性技術(shù)[3]。目前我公司使用的均為SQL Server數(shù)據(jù)庫,其強(qiáng)大的數(shù)據(jù)復(fù)制、增刪、修改模式及表單錄入系統(tǒng)為職能部門的日常辦公生活提供了極大便捷。此外,針對(duì)水務(wù)公司必不可少的地理信息系統(tǒng)(Geographic Information System,簡稱GIS)而建立的數(shù)據(jù)庫管理系統(tǒng),更是對(duì)數(shù)據(jù)庫的存儲(chǔ)、檢索、分析和顯示空間數(shù)據(jù)等功能提出了更精細(xì)的要求,以達(dá)到通過對(duì)空間地理信息和數(shù)據(jù)庫信息的綜合管理,為相關(guān)部門提供全面的決策支持、動(dòng)態(tài)模擬、統(tǒng)計(jì)分析和預(yù)測(cè)預(yù)報(bào)等服務(wù)。在相關(guān)營業(yè)系統(tǒng)中,SQL Server也因其強(qiáng)大的存儲(chǔ)及檢索功能為公司的客戶管理、日常收費(fèi)等工作提供了諸多支持。
在擴(kuò)展性方面SQL明顯弱于Oracle,強(qiáng)于MySQL。SQL Server是當(dāng)前國內(nèi)水務(wù)行業(yè)最流行的數(shù)據(jù)庫之一,主要由于其易操作性及相對(duì)簡單的界面,并且SQL Server與其他數(shù)據(jù)庫如Access、FoxPro、Excel等有良好的ODBC接口,可將上述數(shù)據(jù)庫轉(zhuǎn)為SQL Server數(shù)據(jù)庫。前文中提到MySQL數(shù)據(jù)庫不支持事務(wù)處理,沒有識(shí)圖,沒有存儲(chǔ)過程和觸發(fā)器,沒有數(shù)據(jù)庫端的用戶自定義函數(shù)也不能完全使用標(biāo)準(zhǔn)SQL語言,其在擴(kuò)展性方面明顯弱于使用方便、伸縮性好且與軟件集成度高的SQL Server,二者難以相提并論[3]。Oracle數(shù)據(jù)庫比起SQL Server則擁有更多的優(yōu)勢(shì),它可在所有主流平臺(tái)上運(yùn)行且完全支持所有的工業(yè)標(biāo)準(zhǔn),可任由客戶選擇最合適自身的解決方案,在專業(yè)技術(shù)方面的拓展性完全強(qiáng)于SQL Server,但最大劣勢(shì)則在于價(jià)格方面更為昂貴,因此對(duì)于需要長期使用且對(duì)開放性、聯(lián)結(jié)性要求不高的中小型水務(wù)企業(yè)而言,價(jià)格相對(duì)居中的SQL Server更為合適。
Oracle數(shù)據(jù)庫也稱為Oracle RDBMS,是目前世界上流行的關(guān)系數(shù)據(jù)庫管理系統(tǒng),系統(tǒng)可移植性好,使用方便,功能強(qiáng)勁,可用于各類大中小微機(jī)環(huán)境,是一種高效率、可靠性好、適應(yīng)高吞吐量的數(shù)據(jù)庫解決方案。
Oracle數(shù)據(jù)庫具有完整的數(shù)據(jù)管理功能,相對(duì)于其他兩種數(shù)據(jù)庫類型(MySQL和SQL Server)可存儲(chǔ)更大量的數(shù)據(jù),且數(shù)據(jù)保存的持久性相對(duì)穩(wěn)定,同時(shí)使數(shù)據(jù)具有可靠性及共享性。在數(shù)據(jù)的穩(wěn)定方面,Oracle可按條件把文本數(shù)據(jù)導(dǎo)入,數(shù)據(jù)導(dǎo)入工具Sqlload.exe比SQL Server的Bcp功能更好,且安全機(jī)制相對(duì)更為完善,進(jìn)行大數(shù)據(jù)處理的模塊Oracle具有更強(qiáng)大的運(yùn)行機(jī)制,處理數(shù)據(jù)速度更為快捷精準(zhǔn)。
Oracle作為公認(rèn)的數(shù)據(jù)庫廠商,主要以多平臺(tái)兼容的特性為主,其產(chǎn)品可運(yùn)行各大主流操作平臺(tái),比起SQL Server專注于Windows平臺(tái)的單一性操作,提供了更多樣性的操作。Oracle的優(yōu)化效果較好,但數(shù)據(jù)庫比較復(fù)雜,因此在數(shù)據(jù)庫開發(fā)與管理人員的選擇上更為重要,在相關(guān)技術(shù)人員選擇的費(fèi)用上也相對(duì)更高。數(shù)據(jù)庫設(shè)計(jì)越復(fù)雜完善,其提高的效果也越明顯,相對(duì)其他數(shù)據(jù)庫而言,Oracle提供了更復(fù)雜的優(yōu)化內(nèi)容,包括對(duì)表空間及存儲(chǔ)文件的規(guī)劃等。
目前在我國各大水務(wù)系統(tǒng)中僅有少部分南方水務(wù)公司使用Oracle數(shù)據(jù)庫,其主要原因在于費(fèi)用與需求不相符。大部分水務(wù)公司對(duì)于數(shù)據(jù)庫的需求主要集中在數(shù)據(jù)的增刪減管理及提取調(diào)用方面,需要數(shù)據(jù)庫能夠保證數(shù)據(jù)的共享性、穩(wěn)定性及安全性,對(duì)于數(shù)據(jù)庫在主流平臺(tái)的兼容性并無過高要求。而Oracle數(shù)據(jù)庫的主要優(yōu)勢(shì)在于其兼容性,因其基于Java語言故可采用完全開放策略,使客戶選擇最適合的解決方案。但對(duì)于水務(wù)系統(tǒng)公司而言,開放式的數(shù)據(jù)平臺(tái)可提供一定的方便但卻不是必需存在的功能,且Oracle數(shù)據(jù)庫的價(jià)格更為昂貴,因此在選擇時(shí),對(duì)價(jià)格更昂貴且實(shí)用性相同的Oracle數(shù)據(jù)庫,大部分水務(wù)集團(tuán)會(huì)選用MySql或Sql Server。
據(jù)資料了解,目前SQL Server和MySQL數(shù)據(jù)庫在我國水務(wù)公司中的使用率高于Oracle數(shù)據(jù)庫,其基本原因在于水務(wù)系統(tǒng)公司對(duì)于數(shù)據(jù)庫的平臺(tái)兼容性需求低于其他類型的公司,且在數(shù)據(jù)庫的費(fèi)用投資上相對(duì)保守?;谝陨蟽蓚€(gè)條件,各大水務(wù)集團(tuán)更傾向于居中的SQL Server數(shù)據(jù)庫,其利用率及安全性也更有保障,更值得推薦給中小型的水務(wù)系統(tǒng)使用。