時間:2023-03-07 15:01:23
導(dǎo)語:在數(shù)據(jù)庫系統(tǒng)的撰寫旅程中,學(xué)習(xí)并吸收他人佳作的精髓是一條寶貴的路徑,好期刊匯集了九篇優(yōu)秀范文,愿這些內(nèi)容能夠啟發(fā)您的創(chuàng)作靈感,引領(lǐng)您探索更多的創(chuàng)作可能。
【 關(guān)鍵詞 】 數(shù)據(jù)庫系統(tǒng);開發(fā)優(yōu)化;查詢優(yōu)化;優(yōu)化舉措
Try to Talk About The Database System Optimization Measures
Li Cong-hui
(GuangdongShaoguan Senior Technicians school GuangdongShaoguan 512023)
【 Abstract 】 this paper mainly in the database query optimization system are discussed, the goal for the minimum price probe execution (time and cost) strategy, optimization system performance. The application of optimization method choice must be appropriate, and scientific weigh the cost and the execution convenient degree, so as to determine the best optimization scheme, and improve the system ZhiHangLv.
【 Keywords 】 database system; development optimization; query optimization; optimization measures
0 引言
完善信息系統(tǒng)管理的重中之重即建立高效數(shù)據(jù)庫管理系統(tǒng)。各種建立在數(shù)據(jù)庫基礎(chǔ)上的聯(lián)機事務(wù)分析與聯(lián)機事務(wù)操作對當(dāng)今社會的計算機應(yīng)用發(fā)展起到至關(guān)重要的作用。我們都知道對數(shù)據(jù)庫系統(tǒng)可以進行多種操作,其中查詢操作是應(yīng)用最廣泛的一項。SELECT語句是組成SQL語句的一部分,而針對查詢系統(tǒng)來講,SELECT語句則作為其中最大代價語句而發(fā)揮其作用。在現(xiàn)實工作中,不管是數(shù)據(jù)庫系統(tǒng)的查詢系統(tǒng)的升級或者是針對數(shù)據(jù)庫應(yīng)用系統(tǒng)的改進都始終是人們關(guān)注的焦點。文章主要針對數(shù)據(jù)庫查詢系統(tǒng)的優(yōu)化進行淺談。
1 影響數(shù)據(jù)庫性能的主要因素
服務(wù)器的硬件配置與操作系統(tǒng)的參數(shù)設(shè)置決定了數(shù)據(jù)庫性能的發(fā)揮,其中硬件主要包括CPU、內(nèi)存、存儲空間、網(wǎng)絡(luò)條件等。一般情況下,設(shè)計系統(tǒng)時會留有部分余地,所以對系統(tǒng)的硬件改動相對較少。系統(tǒng)參數(shù)對數(shù)據(jù)庫性能的影響主要表現(xiàn)在數(shù)據(jù)庫系統(tǒng)長期運行可能出現(xiàn)表空間不足、回滾段不夠、CPU占有率過高,性能急劇下降等異常現(xiàn)象,嚴重的時候甚至?xí)斐蓴?shù)據(jù)丟失。這些異??赡苁怯捎贠racle系統(tǒng)的初始化參數(shù)設(shè)置不合理造成的,例如系統(tǒng)內(nèi)存過小,表空間和回滾段大小固定不能自動擴展;也可能是由于對數(shù)據(jù)庫的應(yīng)用造成的,例如不必要的全表搜索導(dǎo)致大量不必要的I/O讀寫,從而降低了整個數(shù)據(jù)庫的性能,這些影響因素又可以分為信息系統(tǒng)參數(shù)和系統(tǒng)運行后的參數(shù)。
信息系統(tǒng)參數(shù)在開發(fā)信息系統(tǒng)之前完成,主要有數(shù)據(jù)結(jié)構(gòu)和應(yīng)用程序結(jié)構(gòu)設(shè)計以及硬盤I/O調(diào)整。調(diào)整數(shù)據(jù)結(jié)構(gòu)的設(shè)計時,程序員需要考慮是否使用Oracle數(shù)據(jù)庫的分區(qū)功能,對于經(jīng)常訪問的數(shù)據(jù)庫表是否需要建立索引等;調(diào)整應(yīng)用程序結(jié)構(gòu)設(shè)計時,需要考慮應(yīng)用程序使用什么樣的體系結(jié)構(gòu),是使用傳統(tǒng)的Client/Server兩層體系結(jié)構(gòu),還是使用Browser/Web/Database的三層體系結(jié)構(gòu);硬盤I/O調(diào)整,在數(shù)據(jù)庫開發(fā)時可以將組成同一個表空間的數(shù)據(jù)文件存放在不同的硬盤上,實現(xiàn)硬盤之間I/O負載均衡。
2 數(shù)據(jù)庫開發(fā)模式優(yōu)化策略
2.1 避免訪問回滾段
如果某個用戶對數(shù)據(jù)庫進行查詢時,而訪問的數(shù)據(jù)正處于管理員用戶修改狀態(tài),為維護數(shù)據(jù)庫的一致性,需要訪問回滾段來讀取查詢語句執(zhí)行時刻的數(shù)據(jù)值。如果應(yīng)用程序需要經(jīng)常讀取正在被其它用戶修改的數(shù)據(jù),數(shù)據(jù)庫系統(tǒng)為了得到一個數(shù)據(jù),不得不多次訪問磁盤。數(shù)據(jù)庫管理員可通過配置回滾段來減少查詢時“snapshot too old”錯誤的發(fā)生,但解決這個問題的根本方法還是需要重新修改應(yīng)用程序設(shè)計,合理對事務(wù)進行劃分,避免訪問回滾段。
2.2 使用表的分區(qū)和并行技術(shù)
如果必須要在數(shù)據(jù)庫運行特別耗時的操作,應(yīng)盡量地把這樣的操作分解,嚴格限制操作所涉及的記錄數(shù),并設(shè)法使操作并行,充分地提高執(zhí)行效率。
2.2.1 使用分區(qū)
分區(qū)技術(shù)有兩個潛在的好處:提高查詢性能和提高數(shù)據(jù)庫可用性。數(shù)據(jù)庫查詢時,優(yōu)化器知道哪些分區(qū)包含查詢所要的數(shù)據(jù),而其它分區(qū)數(shù)據(jù)將不會被讀取,從而使查詢?nèi)蝿?wù)更快完成。許多管理工作可只在一個分區(qū)上進行,而不影響其它分區(qū)的數(shù)據(jù),例如可以選擇刪除一個表分區(qū)中的數(shù)據(jù),而刪除的同時仍然可以使用其余分區(qū)的數(shù)據(jù)。也可對表分區(qū)進行再分割,把一個表分區(qū)遷移到不同的表空間上。不管實際應(yīng)用時選用何種分區(qū)方式,提高了系統(tǒng)的性能可以說是使用分區(qū)的最大優(yōu)點。
2.2.2 使用并行
Oracle數(shù)據(jù)庫中幾乎所有的操作都支持并行特性,包括查詢、插入和數(shù)據(jù)加載。并行選項可以使多個處理器同時處理一條命令,在創(chuàng)建數(shù)據(jù)庫對象時可以設(shè)定并行參數(shù),也可在查詢語句中重新設(shè)。
3 數(shù)據(jù)庫系統(tǒng)的優(yōu)化舉措
關(guān)鍵詞:數(shù)據(jù)庫系統(tǒng);安全技術(shù)
信息系統(tǒng)中,數(shù)據(jù)庫系統(tǒng)是十分重要的組成部分,由于數(shù)據(jù)庫系統(tǒng)中含有很多重要的、敏感的信息數(shù)據(jù),例如個人隱私、商業(yè)機密、國家軍事機密等十分重要的內(nèi)容,由于儲存比較集中,如果數(shù)據(jù)庫系統(tǒng)受到攻擊會造成極為嚴重的后果,因此必須要加強數(shù)據(jù)庫系統(tǒng)的安全管理,采用先進的安全技術(shù),維護數(shù)據(jù)庫系統(tǒng)的安全,保證信息數(shù)據(jù)不受威脅,維護利益。
一、數(shù)據(jù)庫安全技術(shù)的種類
1、身份認證
當(dāng)前數(shù)據(jù)庫網(wǎng)絡(luò)系統(tǒng)具有一定的開放性以及共享性,數(shù)據(jù)庫系統(tǒng)需要對用戶進行身份的認證,主要是為了保證進入數(shù)據(jù)庫系統(tǒng)用戶是被授權(quán)的合法用戶,避免非法用戶訪問數(shù)據(jù)庫系統(tǒng)。身份認證中使用比較普遍的方法就是每一個合法用戶有一個ID號和密碼[1],但是如果密切比較簡單就很容易被破解。因此對于安全要求比較好的數(shù)據(jù)庫系統(tǒng)而言是不適用的。近年來,還有很多新的身份認證方式出現(xiàn),如智能卡技術(shù)、生物特征的認證技術(shù)。
2、訪問控制
訪問控制技術(shù)就在訪問中,主體需要對客體的訪問權(quán)限進行檢查,保證訪問系統(tǒng)資源的用戶都是滿足安全訪問控制的規(guī)則,對于沒有授權(quán)的訪問是拒絕的,提高數(shù)據(jù)的保密性,保證數(shù)據(jù)的完整,并提高其可用性。
3、信息流控制
不同于訪問控制,信息流控制是注重客體間信息的傳輸,并且信息流控制可以對程序中的變量進行直接利用,但是訪問控制只是用于文件、進程等比較粗粒度的客體中。訪問控制只能對信息的直接流動進行控制,信息流控制還能夠?qū)π畔⒌拈g接流動進行控制和處理。近年來研究的信息流控制模型以在網(wǎng)絡(luò)模型的基礎(chǔ)上,使用靜態(tài)可以證明程序信息流屬性的安全類型語言[2],這種方式是通過顯式的程序?qū)π畔⒘飨拗七M行描述,對于違反限制的程序,程序編譯以及運行的環(huán)境會拒絕處理。
4、加密控制
加密控制技術(shù)能夠使系統(tǒng)中擁有正確密碼,并且被授權(quán)的用戶才能夠獲得、理解敏感的信息,非法用戶是不可理解的。數(shù)據(jù)庫加密技術(shù)相比于傳統(tǒng)的加密技術(shù),數(shù)據(jù)保存的時間更長,為了保證數(shù)據(jù)的安全性,可以適當(dāng)?shù)淖儞Q系統(tǒng)的密鑰方案。不能隨意改變數(shù)據(jù)庫的結(jié)構(gòu),要對密文數(shù)據(jù)的長度進行限制,保證密文能夠被儲存在原有的數(shù)據(jù)庫中。用戶一般可以對數(shù)據(jù)庫中數(shù)據(jù)進行隨機的儲存和提取,因此需要保證加密和解密的過程更加高效,避免數(shù)據(jù)庫可用性受到影響。將授權(quán)機制與加密機制相結(jié)合,實現(xiàn)用戶數(shù)據(jù)的共享。加密機制應(yīng)減少對數(shù)據(jù)庫擦做的影響,保證加密之后的數(shù)據(jù)庫也能夠高效、便利的進行檢索、查詢以及修改等。
5、推理控制
這種推理控制技術(shù)是避免通過推理的形式將敏感的信息間接地泄露出去,對于一些比較敏感的、安全級數(shù)多的數(shù)據(jù)庫而言,只進行訪問和信息流控制并不夠,還需要進行推理控制。
6、審計
對數(shù)據(jù)庫系統(tǒng)進行審計就是對數(shù)據(jù)庫系統(tǒng)運行期間的操作進行記錄,為今后的查詢提供便利,并對記錄的信息進行分析,將其以清晰、能夠被理解的形式進行展示,從而更加及時的將系統(tǒng)中的安全漏洞進行發(fā)現(xiàn)和解決。
二、數(shù)據(jù)庫系統(tǒng)的安全防范對策
1、物理安全防護
采用措施對數(shù)據(jù)庫系統(tǒng)物理裝備的威脅進行抵抗,如自然災(zāi)害、工作環(huán)境等方面的影響,使數(shù)據(jù)庫中的信息數(shù)據(jù)不會被破壞,或者是遭到破壞時也能夠及時恢復(fù)。使用物理安全防護的策略需要根據(jù)系統(tǒng)、信息以及網(wǎng)絡(luò)等方面差異有有所不同。主要的方式有隔離系統(tǒng)、防輻射、防水、防火、數(shù)據(jù)備份恢復(fù)等[3]。
2、網(wǎng)絡(luò)防護
當(dāng)前信息技術(shù)不斷發(fā)展,網(wǎng)絡(luò)數(shù)據(jù)庫系統(tǒng)也逐漸增多,在數(shù)據(jù)庫運行中,網(wǎng)絡(luò)是十分重要的組成部分,需要通過網(wǎng)絡(luò)用戶才能夠獲得數(shù)據(jù)庫的信息,并且對于數(shù)據(jù)庫的入侵也是通過網(wǎng)絡(luò)進行的,因此網(wǎng)絡(luò)的安全性對于數(shù)據(jù)庫安全是有極大影響的。因此需要做好網(wǎng)絡(luò)安全防護工作,保證數(shù)據(jù)庫的安全穩(wěn)定運行。網(wǎng)絡(luò)安全防護中,防火墻技術(shù)是使用比較廣泛的技術(shù),是在內(nèi)外網(wǎng)絡(luò)、專用以及公用網(wǎng)絡(luò)間的保護屏障,能夠?qū)W(wǎng)絡(luò)進行監(jiān)控,對非法訪問進行攔截,保證數(shù)據(jù)的安全。防火墻比較簡單實用,有很高的透明度,能夠部隊原有網(wǎng)絡(luò)應(yīng)用系統(tǒng)改變的前提下就實現(xiàn)安全的需要,但是這種技術(shù)也不是萬能的,對于網(wǎng)絡(luò)內(nèi)部的非法操作就無法攔截。防病毒技術(shù)。病毒就是對于復(fù)雜系統(tǒng)中的錯誤、漏洞進行網(wǎng)絡(luò)攻擊,進而對信息進行竊取、篡改,復(fù)雜系統(tǒng)中的錯誤、漏洞是無法避免的,病毒的存在會給網(wǎng)絡(luò)安全造成極大的影響。因此必須要防范病毒,加強管理,以預(yù)防為主,加入多樣化的防范技術(shù)對病毒進行處理。
3、管理防護
管理安全防護其實是綜合性的防護,就是建立多層次的安全防護體系進行有效防護,提升其有效性。計算機的安全一般都是人進行控制和管理的,數(shù)據(jù)庫的維護以及計算機網(wǎng)絡(luò)的安全也是由人進行的,因此需要加強安全管理,提高管理人員的計算機安全教育和操作管理水平,保證數(shù)據(jù)庫系統(tǒng)的安全得到有效地控制與管理。
結(jié)束語
新時期,信息技術(shù)快速發(fā)展,數(shù)據(jù)庫系統(tǒng)技術(shù)也日漸更新,其遇到的攻擊形式也逐漸多樣化,為了更好地保證數(shù)據(jù)庫系統(tǒng)的運行與安全,需要加強數(shù)據(jù)庫系統(tǒng)的安全管理,采用先進的安全技術(shù)以及防護策略,根據(jù)技術(shù)以及管理的需要不斷更新與審計,數(shù)據(jù)庫安全是數(shù)據(jù)庫系統(tǒng)技術(shù)的重要內(nèi)容,保證數(shù)據(jù)庫系統(tǒng)的安全能夠提高系統(tǒng)內(nèi)信息的有效性,使數(shù)據(jù)系統(tǒng)能夠安全運行。
參考文獻:
[1]肖飛,黃正東,王琳.當(dāng)代信息技術(shù)條件下數(shù)據(jù)庫安全技術(shù)研究[J].醫(yī)療衛(wèi)生裝備,2010,10:51-54.
[2]李宗濤,羅朝宇,王福新.信息系統(tǒng)數(shù)據(jù)庫安全防護技術(shù)的應(yīng)用研究[J].電力信息與通信技術(shù),2014,08:126-129.
關(guān)鍵詞:人工智能;自動優(yōu)化;sql語句優(yōu)化
一個數(shù)據(jù)庫系統(tǒng)的生命周期可以分成:設(shè)計、開發(fā)和成品三個階段。在設(shè)計階段進行數(shù)據(jù)庫性能優(yōu)化的成本最低,收益最大。在成品階段進行數(shù)據(jù)庫性能優(yōu)化的成本最高,收益最小。數(shù)據(jù)庫的優(yōu)化通常可以通過對網(wǎng)絡(luò)、硬件、操作系統(tǒng)、數(shù)據(jù)庫參數(shù)和應(yīng)用程序的優(yōu)化來進行。最常見的優(yōu)化手段就是對硬件的升級。根據(jù)統(tǒng)計,對網(wǎng)絡(luò)、硬件、操作系統(tǒng)、數(shù)據(jù)庫參數(shù)進行優(yōu)化所獲得的性能提升,全部加起來只占數(shù)據(jù)庫系統(tǒng)性能提升的40%左右,其余的60%系統(tǒng)性能提升來自對應(yīng)用程序的優(yōu)化。許多優(yōu)化專家認為,對應(yīng)用程序的優(yōu)化可以得到80%的系統(tǒng)性能的提升。應(yīng)用程序的優(yōu)化通??煞譃閮蓚€方面:源代碼和sql語句。由于涉及到對程序邏輯的改變,源代碼的優(yōu)化在時間成本和風(fēng)險上代價很高,而對數(shù)據(jù)庫系統(tǒng)性能的提升收效有限。
1.1為什么要優(yōu)化sql語句
第一、sql語句是對數(shù)據(jù)庫進行操作的惟一途徑,對數(shù)據(jù)庫系統(tǒng)的性能起著決定性的作用。
第二、sql語句消耗了70%至90%的數(shù)據(jù)庫資源。
第三、sql語句獨立于程序設(shè)計邏輯,對sql語句進行優(yōu)化不會影響程序邏輯。
第四、sql語句有不同的寫法,在性能上的差異非常大。
第五、sql語句易學(xué),但難精通。
優(yōu)化sql語句的傳統(tǒng)方法是通過手工重寫來對sql語句進行優(yōu)化。dba或資深程序員通過對sql語句執(zhí)行計劃的分析,依靠經(jīng)驗,嘗試重寫sql語句,然后對結(jié)果和性能進行比較,以試圖找到性能較佳的sql語句。這種傳統(tǒng)上的作法無法找出sql語句的所有可能寫法,且依賴于人的經(jīng)驗,非常耗費時間。
1.2 sql優(yōu)化技術(shù)的發(fā)展歷程
第一代sql優(yōu)化工具是執(zhí)行計劃分析工具。這類工具針對輸入的sql語句,從數(shù)據(jù)庫提取執(zhí)行計劃,并解釋執(zhí)行計劃中關(guān)鍵字的含義。
第二代sql優(yōu)化工具只能提供增加索引的建議,它通過對輸入的sql語句的執(zhí)行計劃的分析,來產(chǎn)生是否要增加索引的建議。
第三代sql優(yōu)化工具不僅分析輸入sql語句的執(zhí)行計劃,還對輸入的sql語句本身進行語法分析,經(jīng)過分析產(chǎn)生寫法上的改進建議。
1.3人工智能自動sql優(yōu)化
人工智能自動sql優(yōu)化出現(xiàn)在90年代末。目前在商用數(shù)據(jù)庫領(lǐng)域,lecco technology limited(靈高科研有限公司)擁有該技術(shù),并提供使用該技術(shù)的自動優(yōu)化產(chǎn)品lecco sql expert,它支持oracle、sybase、ms sql server和ibm db2數(shù)據(jù)庫平臺。該產(chǎn)品針對數(shù)據(jù)庫應(yīng)用的開發(fā)和維護階段提供的模塊有:sql語法優(yōu)化器、pl/sql集成化開發(fā)調(diào)試環(huán)境(ide)、掃描器、數(shù)據(jù)庫監(jiān)視器等。其核心模塊sql 語法優(yōu)化器的工作原理為:①輸入一條源sql語句;②“人工智能反饋式搜索引擎”對輸入的sql語句,結(jié)合檢測到的數(shù)據(jù)庫結(jié)構(gòu)和索引進行重寫,產(chǎn)生n條等效的sql語句輸出;③產(chǎn)生的n條等效sql語句再送入“人工智能反饋式搜索引擎”進行重寫,直至無法產(chǎn)生新的輸出或搜索限額滿;④對輸出的sql語句進行過濾,選出具有不同執(zhí)行計劃的sql語句;⑤對得到的sql語句進行批量測試,找出性能最好的sql語句。
2 lecco sql expert自動優(yōu)化實例
2.1假設(shè)我們從源代碼中抽取出這條sql語句(也可以通過內(nèi)帶的掃描器或監(jiān)視器獲得sql語句):
select count(*)
from employee
swheresexists (select 'x'
from department
swheresemp_dept=dpt_id
and dpt_name like 'ac%')
and emp_id in (select sal_emp_id
from emp_sal_hist b
swheressal_salary > 70000)
按下“優(yōu)化”按鈕后,經(jīng)過10幾秒,sql expert就完成了優(yōu)化的過程,并在這10幾秒的時間里重寫產(chǎn)生了2267 條等價的sql語句,其中136條sql語句有不同的執(zhí)行計劃。
接下來,我們可以對自動重寫產(chǎn)生的136條sql語句進行批運行測試,以選出性能最佳的等效sql語句。按下“批運行” 按鈕,在“終止條件” 頁選擇“最佳運行時間sql語句”,按“確定”。
經(jīng)過幾分鐘的測試運行后,我們可以發(fā)現(xiàn)sql124的運行時間和反應(yīng)時間最短。運行速度約有22.75倍的提升(源sql語句運行時間為2.73秒,sql124運行時間為0.12秒)?,F(xiàn)在我們就可以把sql124放入源代碼中,結(jié)束一條sql語句的優(yōu)化工作了。
2.2“邊做邊學(xué)式訓(xùn)練”提升sql開發(fā)水平
lecco sql expert不僅能夠找到最佳的sql語句,它所提供的“邊做邊學(xué)式訓(xùn)練”還能夠教開發(fā)人員和數(shù)據(jù)庫管理員如何寫出性能最好的sql語句。lecco sql expert的“sql比較器”可以標(biāo)明源sql和待選sql間的不同之處。
以上面優(yōu)化的結(jié)果為例,為了查看源sql語句和sql124在寫法上有什么不同,我們可以按下“比較器” 按鈕,對sql124和源sql語句進行比較。“sql 比較器”將sql124相對于源sql語句的不同之處以藍顏色表示了出來。如果選擇“雙向比較”復(fù)選框,“sql 比較器”可以將兩條sql語句的不同之處以藍色表示。當(dāng)然,我們也可以從源語句和重寫后的sql 語句中任選兩條進行比較。
從比較的結(jié)果可以看到,重寫后的sql124把第一個exists改寫成了in;在字段dpt_id上進行了合并空字符串的操作,以誘導(dǎo)數(shù)據(jù)庫先執(zhí)行子查詢中的
(select dpt_id||''
from department
where dpt_name like 'ac%')
在子查詢完成后,再與employee表進行嵌套循環(huán)連接(nested loop join)。
如果覺得對寫法的改變難以理解,還可以點中“執(zhí)行計劃”復(fù)選框,通過比較兩條sql語句的執(zhí)行計劃的不同,來了解其中的差異。在查看執(zhí)行計劃過程中,如果有什么不明白的地方,可以點中“sql信息按鈕”,再點擊執(zhí)行計劃看不明白的地方,lecco sql expert的上下文敏感幫助系統(tǒng)將提供執(zhí)行計劃該處的解釋。
在“sql比較器”中,選中“統(tǒng)計信息”復(fù)選框后,可得到詳細的兩條sql語句運行時的統(tǒng)計信息比較,這對于學(xué)習(xí)不同的sql寫法對數(shù)據(jù)庫資源的消耗很有幫助。
2.3 lecco sql expert優(yōu)化模塊的特點
lecco sql expert優(yōu)化模塊的特點主要表現(xiàn)為:自動優(yōu)化sql語句;以獨家的人工智能知識庫“反饋式搜索引擎”來重寫性能優(yōu)異的sql語句;找出所有等效的sql語句及可能的執(zhí)行計劃;保證產(chǎn)生相同的結(jié)果;先進的sql語法分析器能處理最復(fù)雜的sql語句;可以重寫select、select into、update、insert和delete語句;通過測試運行,為應(yīng)用程序和數(shù)據(jù)庫自動找到性能最好的sql語句;提供微秒級的計時,能夠優(yōu)化web應(yīng)用程序和有大量用戶的在線事務(wù)處理中運行時間很短的sql語句;為開發(fā)人員提供“邊做邊學(xué)式訓(xùn)練”,迅速提高開發(fā)人員的sql編程技能;提供上下文敏感的執(zhí)行計劃幫助系統(tǒng)和sql運行狀態(tài)幫助;不是猜測或建議,而是獨一無二的sql重寫解決方案。
2.4寫出專家級的sql語句
lecco sql expert的出現(xiàn),使sql的優(yōu)化變得極其簡單,只要能夠?qū)懗鰏ql語句,它就能幫用戶找到最好性能的寫法。lecco sql expert不僅能在很短的時間內(nèi)找到所有可能的優(yōu)化方案,而且能夠通過實際測試,確定最有效的優(yōu)化方案。同以往的數(shù)據(jù)庫優(yōu)化手段相比較,lecco sql expert將數(shù)據(jù)庫優(yōu)化技術(shù)帶到了一個嶄新的技術(shù)高度,依賴人的經(jīng)驗、耗費大量時間、受人的思維束縛的數(shù)據(jù)庫優(yōu)化手段已經(jīng)被高效、省時且準確的自動優(yōu)化軟件所取代了。通過內(nèi)建的“l(fā)ecco小助手”的幫助,即使是sql的開發(fā)新手,也能快速且簡單地寫出專家級的sql語句。
參考文獻
1張孔倚.關(guān)于人工智能技術(shù)在情報檢索中的應(yīng)用.山西大學(xué)學(xué)報,2007(3)
2涂序彥.人工智能及其應(yīng)用.北京:清華大學(xué)出版社,2006
關(guān)鍵詞:雙語教學(xué);數(shù)據(jù)庫系統(tǒng)原理;教學(xué)模式
教育部在2001年第4號文《關(guān)于加強高等學(xué)校本科教學(xué)工作提高教學(xué)質(zhì)量的若干意見》和2005年第1號文《關(guān)于進一步加強高等學(xué)校本科教學(xué)工作的若干意見》中先后要求大學(xué)在本科階段逐步實施雙語教學(xué),力爭到2004年外語教學(xué)課程達到所開設(shè)課程的5%至10%,并引進原版教材和提高師資水平。我校更是把在各學(xué)科中融入雙語教學(xué)列為了教學(xué)改革的重點。數(shù)據(jù)庫技術(shù)在各個領(lǐng)域都有十分廣泛的應(yīng)用,現(xiàn)已經(jīng)成為現(xiàn)代計算機技術(shù)的一個重要分支,掌握數(shù)據(jù)庫技術(shù)是計算機專業(yè)學(xué)生必須具備的技能之一。數(shù)據(jù)庫系統(tǒng)原理具有一定的國際共通性,詞義、專業(yè)術(shù)語的理解和詮釋遵循國際慣例,有既定的國際標(biāo)準,更有必要進行雙語教學(xué)[1-2]。
1雙語教學(xué)及其重要性
雙語教學(xué)在英語中稱為“Bilingual Education”。英國朗曼出版社的《朗曼應(yīng)用語言學(xué)詞典》給出Bilingual的定義為:A person who knows and uses two languages(一個能運用兩種語言的人)。In everyday use the word bilingual usually means a person who speaks, reads, or understands two languages equally well(a balanced bilingual), but a bilingual person usually has a better knowledge of one language than of the other(他的日常生活中能將一門外語和本族語基本等同地運用于聽、說、讀和寫,當(dāng)然他的母語語言知識和能力通常是大于第二種語言的)。雙語教學(xué)(Bilingual education)的定義為:The use of a second or foreign language in school for the teaching of content subjects (能在學(xué)校里使用第二種語言進行各門學(xué)科的教學(xué))。“雙語”和“雙語教學(xué)”的要求是將學(xué)生的外語或第二語言,通過教學(xué)和環(huán)境,經(jīng)過若干階段的訓(xùn)練,使之能代替或接近母語的表達水平。
隨著世界經(jīng)濟加快全球化,中國加入WTO以及互聯(lián)網(wǎng)技術(shù)的迅猛發(fā)展,越來越需要高校培養(yǎng)出高質(zhì)量國際型人才。與國際接軌,開展雙語教學(xué)就成了當(dāng)前教育改革的重點[3]。首先,開展雙語教學(xué),有利于全面提高學(xué)生外語的“聽、說、讀、寫”能力,全方位拓展學(xué)生學(xué)習(xí)外語的途徑。其次,開展外語教學(xué),有利于實現(xiàn)從純語言學(xué)習(xí)到語言運用的過渡。高校學(xué)生已經(jīng)具備多年的外語學(xué)習(xí)經(jīng)歷,雙語教學(xué)使學(xué)生有機會在專業(yè)課學(xué)習(xí)中大量接觸外語,這為學(xué)生進一步學(xué)習(xí)專業(yè)知識打下了良好的外語基礎(chǔ)。最后,開展雙語教學(xué),有利于提高教師的外語運用能力,從而有利于教師了解本專業(yè)在國際上的最新知識,使教師有能力及時更新教學(xué)內(nèi)容。這對提高教學(xué)質(zhì)量具有十分積極的意義。
2數(shù)據(jù)庫系統(tǒng)原理雙語教學(xué)模式
數(shù)據(jù)庫系統(tǒng)原理是計算機學(xué)科的一個重要分支,是程序設(shè)計和軟件開發(fā)的重要組成部分,主要討論數(shù)據(jù)庫系統(tǒng)的基本概念、基本原理、基本方法以及有關(guān)的應(yīng)用[4]。數(shù)據(jù)庫系統(tǒng)原理教學(xué)在國際上普遍受到高度重視,課程內(nèi)容和教學(xué)體系日新月異,其教學(xué)質(zhì)量的高低對計算機科學(xué)相關(guān)專業(yè)的教學(xué)起著至關(guān)重要的作用。數(shù)據(jù)庫系統(tǒng)原理采用雙語教學(xué)對跟蹤本學(xué)科的發(fā)展前沿,使教學(xué)內(nèi)容和水平與國際接軌,提高教學(xué)質(zhì)量,促進學(xué)生能力和綜合素質(zhì)的全面提高有重要意義。與其他的課程相比,該課程具有實踐性強、綜合性高、應(yīng)用范圍廣等特點,一般在第6個學(xué)期開設(shè),此時學(xué)生已具備了一定的專業(yè)基礎(chǔ)知識和英語應(yīng)用水平,為該門課的雙語教學(xué)打下了基礎(chǔ)。
在雙語教學(xué)中,學(xué)科知識的獲得是主要目的,同時也給學(xué)習(xí)者創(chuàng)造了學(xué)習(xí)和使用第二語言的空間,使學(xué)生在掌握學(xué)科知識的同時能夠盡可能多地使用需要他們掌握的第二語言。我國在實施雙語教學(xué)的過程中,采用英語(外語)作為教學(xué)語言,目的是提高學(xué)生的英語水平,掌握漢語和英語兩門語言,成為漢/英雙語人才。為了能真正達到雙語教學(xué)的目的,要做好以下幾個方面的工作。
2.1教材選擇
雙語教學(xué)一定要選擇英文原版教材。沒有原版教材,雙語教學(xué)就成了無源之水,無本之木。沒有原版教材,教師和學(xué)生都無法接觸到“原汁原味”的外語,甚至有時還會因為教師翻譯的不準確誤導(dǎo)學(xué)生。另外,如果讓教師通過查詢外語專業(yè)用語,將統(tǒng)編教材“翻譯”成外語,再用外語授課,這對教師來說實在是勉為其難,根本無法進行實質(zhì)性的雙語教學(xué)。再則,如果沒有英文版教材和相關(guān)的英文資料,學(xué)生也缺乏學(xué)習(xí)的目的性、動力和壓力,課下不能很好地鞏固。
數(shù)據(jù)庫系統(tǒng)原理課程的教材更新很快。近年來,各大出版社紛紛引進各種數(shù)據(jù)庫方面的優(yōu)秀原版教材。這些教材的結(jié)構(gòu)安排更適合學(xué)生的學(xué)習(xí)過程,且內(nèi)容更新、更實用。教材作者大多是資深教授和軟件工程師,他們處于計算機科學(xué)發(fā)展的最前沿,具有得天獨厚的編寫內(nèi)容更新、更實用教材的條件。從中選擇出有利于課程目標(biāo)實現(xiàn),又合適學(xué)時安排的教材很重要。其中世界名校美國斯坦福大學(xué)的教材《A First Course in Database Systems》 就是一本非常適合數(shù)據(jù)庫系統(tǒng)原理雙語教學(xué)的教材。該書具有易于理解、面向應(yīng)用的特點,非常適合數(shù)據(jù)庫系統(tǒng)知識的入門學(xué)習(xí)。此外,該書還有相應(yīng)網(wǎng)站,其中提供了斯坦福大學(xué)該課程歷年的教學(xué)方案,包括電子教案、部分習(xí)題解答、歷年試卷和學(xué)生的研究項目。這樣,教師能夠了解斯坦福大學(xué)的教育方式,根據(jù)學(xué)生的實際情況適當(dāng)調(diào)整自己的教學(xué)方法,與世界接軌;而學(xué)生也能夠通過網(wǎng)站的內(nèi)容鍛煉英語水平,自我考核學(xué)習(xí)情況。
2.2教學(xué)組織
(1) 采用多媒體教學(xué)。由于原版教材內(nèi)容廣、信息量大,為了不影響教學(xué)進度,必須用多媒體教學(xué),不但生動直觀,還可加大教學(xué)容量,提高教學(xué)質(zhì)量。而且,數(shù)據(jù)庫系統(tǒng)原理是一門專業(yè)性很強的學(xué)科,很多內(nèi)容單靠老師和黑板很難講解清楚,用形象而生動的多媒體課件作為輔助工具,加上數(shù)據(jù)庫管理軟件的演示,學(xué)生更容易理解。
制作電子教案的另一個突出優(yōu)點是學(xué)生可以隨時下載教案,上課時就不必忙于記筆記,而可以專心聽講。為了讓學(xué)生課下更好地消化、理解所學(xué)內(nèi)容,我們制作了中文版和英文版兩套課件,放在網(wǎng)站上,供大家預(yù)習(xí)和復(fù)習(xí)時使用。
(2) 英漢交替講解。采用雙語教學(xué),并不是要在課堂上均衡地使用兩種語言。課堂上英文與中文各占多少比例,要根據(jù)具體情況而定。一般來說我們主張用英文板書,包括專業(yè)術(shù)語及關(guān)鍵句子。對其中容易理解的內(nèi)容用英文講授,對理論性較強、較難理解的重點和難點,用英語解釋不容易理解時就采用中文講解。學(xué)習(xí)完每章內(nèi)容之后,教師用英文作總結(jié),然后逐漸過渡到由學(xué)生作總結(jié)。鼓勵學(xué)生用英文提問,實在無法表達時,亦允許用中文進行表述,然后由教師或別的同學(xué)用英文復(fù)述。鼓勵學(xué)生用英文解答作業(yè)和考試題。
(3) 激發(fā)學(xué)生的學(xué)習(xí)動力。學(xué)生作為雙語教學(xué)的主體,他們自身的素質(zhì)和對雙語教學(xué)的態(tài)度、興趣等對雙語教學(xué)的順利開展起著重要的作用。為了提高學(xué)生的學(xué)習(xí)積極性,教師必須不斷改進教學(xué)方法,提高教學(xué)質(zhì)量,吸引學(xué)生去學(xué)習(xí)。如營造良好的學(xué)習(xí)氣氛,增強教學(xué)的互動,鼓勵學(xué)生開展討論,提出不同的解決方案,有意識地鼓勵學(xué)生“開口說,動腦想”,使學(xué)生積極地參與到教學(xué)中來,對學(xué)習(xí)產(chǎn)生濃厚的興趣,并內(nèi)化為學(xué)習(xí)動力。
(4) 增加專題講座,拓展學(xué)生知識面。數(shù)據(jù)庫系統(tǒng)原理原版教材信息量非常大,對傳統(tǒng)的關(guān)于數(shù)據(jù)庫的理論、設(shè)計與實現(xiàn)均作了較為深入的介紹,并且對數(shù)據(jù)庫領(lǐng)域的新技術(shù),如面向?qū)ο蟮臄?shù)據(jù)庫、對象關(guān)系數(shù)據(jù)庫、分布式數(shù)據(jù)庫、并行數(shù)據(jù)庫、數(shù)據(jù)倉庫和數(shù)據(jù)挖掘等都作了大量的介紹,而且有一些屬于數(shù)據(jù)庫方向的前沿研究領(lǐng)域,在課堂上系統(tǒng)地講述這些內(nèi)容是不現(xiàn)實的。為了在有限的時間內(nèi),讓學(xué)生了解數(shù)據(jù)庫技術(shù)的最新進展,可以專題講座的形式向?qū)W生介紹數(shù)據(jù)庫的新技術(shù)和新進展,這樣既拓展了學(xué)生的知識面,又緩解了內(nèi)容多學(xué)時少的矛盾,還提供了學(xué)生與專家交流的機會。
2.3考核方式和教學(xué)效果評價
雙語教學(xué)效果的考核應(yīng)該區(qū)別于單語教學(xué)慣用的試卷考核,采取多樣化的考核方式。由于雙語教學(xué)強調(diào)學(xué)生的參與和自主學(xué)習(xí),因此我們將學(xué)生課堂教學(xué)中參與教學(xué)活動的表現(xiàn)、實踐課上完成任務(wù)及與同伴合作的情況、課外搜索資料撰寫調(diào)查報告的情況和期末試卷的考核結(jié)合起來,綜合評定學(xué)生的學(xué)習(xí)成績。比如平時布置的作業(yè)題取自于原版教材,占總評成績的10%,要求學(xué)生用英文完成作業(yè)。課堂討論占總評成績的10%,由淺入深,鼓勵學(xué)生用英語交流,盡可能用英語完成調(diào)查報告、資料總結(jié)報告等。實驗成績占15%,要求學(xué)生盡可能用英文完成實驗預(yù)習(xí)報告和實驗報告。期末考試占總評成績的65%,采用英文命題,要求學(xué)生用英文作答,確實有困難時再用漢語。這樣既可以加深鞏固學(xué)生對所學(xué)內(nèi)容的理解,又可以提高其英語寫作水平,還可為英文考試奠定基礎(chǔ),學(xué)生的英文表達及寫作能力逐漸提高。這種評定方法使學(xué)生積極參與到教學(xué)活動的各個環(huán)節(jié)中,進一步提高了雙語教學(xué)的效果,同時也促進了教師去了解國外最新的教學(xué)和科研內(nèi)容,有利于及時更新,提高教學(xué)質(zhì)量,促進教師學(xué)術(shù)水平的提高和科研工作的進展。
3結(jié)語
雙語教學(xué)是促進教與學(xué)雙贏的教學(xué)模式,數(shù)據(jù)庫系統(tǒng)原理的雙語教學(xué)課程建設(shè)在計算機專業(yè)建設(shè)中具有舉足輕重的作用。如何科學(xué)、合理地開展數(shù)據(jù)庫系統(tǒng)原理的雙語教學(xué)改革,引進、吸收國外先進的教學(xué)模式,建立相應(yīng)的雙語教學(xué)評價體系,對改良本土教育,培養(yǎng)出符合社會和時代需要的國際化計算機人才有著重要的意義,也是值得我們不斷研究和探索的課題。
參考文獻:
[1] 張虹. 雙語教學(xué)綜述[J]. 大慶高等??茖W(xué)校學(xué)報,2004(3):107-110.
[2] 古天龍,魏銀霞,磨玉峰. 教學(xué)型高校培養(yǎng)目標(biāo)定位研究[J]. 中國高教研究,2009(1):69-71.
[3] 翟玉慶.“雙語教學(xué)”與國際化計算機專業(yè)人才培養(yǎng)[J]. 計算機教育,2004(6):11.
[4] 周麗娟. 數(shù)據(jù)庫教學(xué)體系改革與優(yōu)化[J]. 高教論壇,2009(1):59-61.
Research on Bilingual Teaching Model for Database System Theory
LI Feng-ying, HOU Jie, WEI Qian-jin
(School of Computer and Control Science, Guilin University of Electronic Technology, Guilin 541004,China)
1 數(shù)據(jù)庫系統(tǒng)表
為了維護數(shù)據(jù)庫系統(tǒng)的正常運轉(zhuǎn),數(shù)據(jù)庫管理系統(tǒng)中設(shè)計了一系列的系統(tǒng)數(shù)據(jù)表,用于跟蹤數(shù)據(jù)庫的總體信息。當(dāng)用戶建立數(shù)據(jù)庫及數(shù)據(jù)表時,系統(tǒng)表將自動記錄下相關(guān)信息。這里僅介紹SSA數(shù)據(jù)庫中與實現(xiàn)多表關(guān)聯(lián)查詢技術(shù)相關(guān)的三個系統(tǒng)表及其主要列:
表pbcattbl:存儲數(shù)據(jù)庫中所有用戶表的信息。列pbt_tnam存放表名。
表pbcatcol:存儲所有用戶表的列信息。列pbc_tnam 存放表名;pbc_cnam存放列名。
表sysforeignkeys:存儲具有關(guān)聯(lián)性的兩個表的相關(guān)信息。列foreign_tname存放外表表名;primary_tname存放主表表名;columns存放兩表關(guān)聯(lián)的關(guān)鍵字。
2 多表關(guān)聯(lián)查詢算法
①用表pbcattbl,在數(shù)據(jù)窗口(簡稱DW)中顯示所有用戶表的表名;
②用戶在DW中進行多表選擇,系統(tǒng)通過表Sysforeignkeys判斷所選表的關(guān)聯(lián)性。如非關(guān)聯(lián),給出提示并返回②,否則③;
③動態(tài)地創(chuàng)建相應(yīng)數(shù)量的DW,利用表pbcatcol,在每個DW中顯示其中一張所選表的所有列名;
④用戶根據(jù)實際需求,從這些DW中選擇任意多個列名,系統(tǒng)自動生成一張由這些列組成的新表;
⑤對生成的新關(guān)聯(lián)表進行多條件的組合查詢。
3 關(guān)鍵代碼的實現(xiàn)
3.1 表名顯示
用select pbt_tnam from pbcattbl從系統(tǒng)表中選出所有表名,并顯示在DW中。
3.2 判斷所選表的關(guān)聯(lián)性
定義變量
integer sum //選中表的個數(shù)
integer num //關(guān)聯(lián)表的個數(shù)
integer ipos //字段起始位
string lst[] //關(guān)聯(lián)表名
string pm[] //存放關(guān)聯(lián)等式
string col[] //讀取關(guān)聯(lián)信息
if sum>1 then num=1
for i=1 to sum
for j=1 to i-1
k=k+1
select columns into:col[k] from sysforeignkeys where foreign_tname=:lst[j] and primary_tname=:lst[i];
if isnull(col[k]) or col[k]= '' then
select columns into: col[k] from sysforeignkeys where foreign_tname=:lst[i] and primary_tname=:lst[j];
if isnull(col[k]) or col[k]= '' then pm[k]= ''
else
ipos=pos(col[k], ' IS ')
pm[k]=lst[i]+'.'+left(col[k],ipos)+'='+lst[j]+'.'+right(col[k],len(col[k])-ipos-3)
num=num+1
end if
else
ipos=pos(col[k], ' IS ')
pm[k]=lst[j]+'.'+left(col[k],ipos)+'='+lst[i]+'.'+right(col[k],len(col[k]-ipos-3)
num=num+1
end if
next
next
if num
messagebox("warning","所選表不關(guān)聯(lián),請重選")
return
end if
end if
3.3 列名顯示
通過select pbc_cnam from pbcatcol where pbc_tnam= lst[i](所選表名)來實現(xiàn)。
3.4 關(guān)聯(lián)表的組合查詢
參考通用組合查詢算法[1],可實現(xiàn)=、> 、< 、=、like等多重組合查詢。
4 結(jié)束語
本文提出的查詢方法,可直接從數(shù)據(jù)庫系統(tǒng)表中讀取信息,而系統(tǒng)表由數(shù)據(jù)庫服務(wù)器自動維護,因此提高了應(yīng)用程序的運行性能。對于不同的數(shù)據(jù)庫系統(tǒng),只需修改程序中系統(tǒng)表的表列名稱即可,程序具有通用性。
參考文獻
[1] 嚴懷成,王敏.基于PowerBuilder的通用查詢的設(shè)計與實現(xiàn).微機發(fā)展.2005.6:124-126.
(黃淮學(xué)院信息工程學(xué)院,駐馬店 463000)
摘要: 本文從體系結(jié)構(gòu),內(nèi)部函數(shù),外部接口,索引算法等方面對SQLite進行了改進與優(yōu)化;針對信息家電特點重新設(shè)計了實時數(shù)據(jù)庫的存儲方式,利用主動規(guī)則庫來提高系統(tǒng)的實時性能,并基于SQLite對家庭網(wǎng)關(guān)進行了CGI程序設(shè)計。
關(guān)鍵詞 : SQLite;家庭網(wǎng)關(guān);嵌入式Linux;內(nèi)存數(shù)據(jù)庫
中圖分類號:TP311.1 文獻標(biāo)識碼:A 文章編號:1006-4311(2015)26-0069-03
作者簡介:李宏升(1973-),男,河南新蔡人,講師,工學(xué)碩士,主要從事互聯(lián)網(wǎng)與嵌入式應(yīng)用研究方向。
0 引言
在信息家電系統(tǒng)中,要用遙控器對各類信息家電主動控制,并隨家庭環(huán)境的變化對信息家電進行自動控制,整個系統(tǒng)中存在著大量實時數(shù)據(jù)的采集和處理需求。目前對數(shù)據(jù)的處理通常采用基于數(shù)據(jù)庫的方式,所以構(gòu)建具有實時性能的嵌入式數(shù)據(jù)庫系統(tǒng)是家庭網(wǎng)關(guān)設(shè)計環(huán)節(jié)必須要解決的問題。
結(jié)合國內(nèi)外家庭網(wǎng)關(guān)研究的現(xiàn)狀和進展,如何改進嵌入式實時數(shù)據(jù)庫對信息家電狀態(tài)信息的采集處理效率;如何優(yōu)化數(shù)據(jù)庫系統(tǒng)的資源占用,成為家庭網(wǎng)關(guān)系統(tǒng)設(shè)計的重要環(huán)節(jié)。
1 家庭網(wǎng)關(guān)的發(fā)展與演進
作為智能家居的大腦,家庭網(wǎng)關(guān)的作用至關(guān)重要。本文主要針對家庭網(wǎng)關(guān)數(shù)據(jù)庫平臺進行研究,選擇合適的數(shù)據(jù)庫架構(gòu),改進、移植相關(guān)軟件,搭建網(wǎng)關(guān)的軟件系統(tǒng),設(shè)計網(wǎng)關(guān)系統(tǒng)中心主模塊和web服務(wù)程序,實現(xiàn)嵌入式web 服務(wù)器的基本功能。
2 嵌入式開發(fā)環(huán)境的選擇
要想保證系統(tǒng)能夠真正地發(fā)揮自身功能,選擇合適的操作系統(tǒng)至關(guān)重要。現(xiàn)階段比較成熟的嵌入式系統(tǒng)主要有:Windows CE、Unix、Linux、QNX等。從家庭網(wǎng)關(guān)平臺日后的系統(tǒng)升級、維護和功能擴展這些角度出發(fā),本文中的家庭網(wǎng)關(guān)平臺采用Linux2.6版本作為軟件開發(fā)平臺。
Linux2.6內(nèi)核擁有更多的新特性:性能方面,采用了新的內(nèi)核搶占式算法和新的I/O調(diào)度算法;穩(wěn)定性方面,改進了內(nèi)核加載和導(dǎo)出機制,提高了平臺的穩(wěn)定性和可靠性。設(shè)備支持方面,系統(tǒng)內(nèi)核取消了對大型系統(tǒng)的限制,支持更多的控制器和設(shè)備;文件系統(tǒng)方面,擴展了文件的屬性,保證了系統(tǒng)的信息安全,增強了PCI總線支持,對USB、藍牙等外設(shè)總線進行功能擴展,滿足多種短距離無線傳輸,方便家庭網(wǎng)關(guān)的內(nèi)部組網(wǎng)。[1]
3 嵌入式網(wǎng)關(guān)系統(tǒng)的模塊化設(shè)計
家庭網(wǎng)關(guān)軟件系統(tǒng)采用模塊化設(shè)計,包括系統(tǒng)定制、系統(tǒng)服務(wù)、設(shè)備模塊、控制模塊、顯示模塊、軟件開發(fā)控制等。其中系統(tǒng)定制模塊包括系統(tǒng)移植、內(nèi)核定制、驅(qū)動開發(fā)等部分;系統(tǒng)服務(wù)模塊由系統(tǒng)中心、可移植層、設(shè)備管理器、維護管理器、存儲系統(tǒng)組成,如圖1所示;設(shè)備模塊主要包括視頻模塊、Zigbee模塊、網(wǎng)絡(luò)模塊等;控制模塊主要由web 服務(wù)器和各種應(yīng)用服務(wù)器組成[2]。
4 SQLite數(shù)據(jù)庫的改進與移植
4.1 數(shù)據(jù)庫的選型
家庭網(wǎng)關(guān)中的嵌入式實時數(shù)據(jù)庫是為了完成家電狀態(tài)信息的管理而設(shè)計的小型數(shù)據(jù)庫。應(yīng)具備如下功能:支持多種數(shù)據(jù)類型;支持創(chuàng)建和刪除多個表;支持對記錄進行插入刪除修改和查詢操作;支持表的索引操作;支持觸發(fā)操作,以滿足信息家電之間的統(tǒng)一協(xié)作。
基于嵌入式linux系統(tǒng)的數(shù)據(jù)庫非常多,常用的有以下幾種:
Oracle Database Lite;DB2 Everyplace;Berkeley DB;Firebird;MySQL;SQLite。本文選取的SQLite數(shù)據(jù)庫系統(tǒng)是一個簡單易用、開放源碼的輕量級嵌入式數(shù)據(jù)庫管理系統(tǒng)。它具有以下優(yōu)勢:支持ACID事務(wù);不需要安裝配置、支持大部分SQL92;數(shù)據(jù)存儲在單一的磁盤文件中;最大支持數(shù)據(jù)庫到2TB;內(nèi)核精小;數(shù)據(jù)操作速度快等。
4.2 SQLite的應(yīng)用系統(tǒng)設(shè)計
SQLite系統(tǒng)的體系結(jié)構(gòu)包括8個主要模塊,如圖2所示。
應(yīng)用程序接口是SQLite的公共接口,通過main.c,table.c,legaey.c,vdbeapi.c程序來實現(xiàn)。詞法分析器負責(zé)將原始的SQL語句按順序傳送到語法分析器里。語法分析器是一個基于上下文環(huán)境的輸入語法解釋器,采用非終結(jié)符析構(gòu)器的概念,大大降低了出錯的幾率。通過調(diào)用代碼生成器,可生成SQL查詢所需的虛擬機代碼。虛擬機是使用堆棧存儲指令來實現(xiàn)處理代碼生成器產(chǎn)生代碼的虛擬引擎。B-樹驅(qū)動器通過表和索引中的B-tree創(chuàng)建相應(yīng)的數(shù)據(jù)庫實例。B-tree模塊在磁盤建立1024字節(jié)大小的頁面緩存,進行讀寫緩沖,管理數(shù)據(jù)庫文件的讀/寫鎖定的權(quán)限。SQLite通過Linux系統(tǒng)的操作系統(tǒng)接口來打開和關(guān)閉、刪除和創(chuàng)建文件,釋放磁盤的緩沖。[3]
SQLite系統(tǒng)與Linux的外部接口的具體應(yīng)用集成在一起,由程序調(diào)用相應(yīng)的核心API函數(shù)去實現(xiàn)對數(shù)據(jù)的存取操作。Sqlite3_open()可以打開數(shù)據(jù)庫文件,建立SQLite引擎;sqlite3_exec()對查詢結(jié)果進行處理;sqlite3_close()用來關(guān)閉數(shù)據(jù)庫文件,釋放SQLite引擎。
4.3 對SQLite存儲結(jié)構(gòu)及索引機制的改進
由于SQLite所有數(shù)據(jù)都保存在設(shè)備的flash中,為了減少FO操作,延長Flash的壽命,對數(shù)據(jù)的操作都設(shè)計為在內(nèi)存中完成,只在設(shè)備啟動和修改保存數(shù)據(jù)時才進行FO操作。將SQLite改進為基于內(nèi)存的嵌入式關(guān)系型數(shù)據(jù)庫,提高數(shù)據(jù)操作效率,增強實時性能。
4.4 優(yōu)化SQL數(shù)據(jù)在內(nèi)存中的存儲結(jié)構(gòu)
在內(nèi)存中采用區(qū)段式結(jié)構(gòu)進行內(nèi)存數(shù)據(jù)的組織管理,將存儲空間邏輯地劃分為多個分區(qū)。每個分區(qū)存儲一個關(guān)系。區(qū)段式數(shù)據(jù)組織管理機制如圖3所示。
為保證數(shù)據(jù)結(jié)構(gòu)的緊湊性,內(nèi)存數(shù)據(jù)庫中的關(guān)系表按編號登記在分區(qū)表中。當(dāng)有新數(shù)據(jù)段插入時,在分區(qū)表或段表中找到插入點,插入點后的所有表項都往后移動一項;而刪除一個表項時,則刪除點之后的所有表項都往前移動一項。
為節(jié)省內(nèi)存占用,分區(qū)表和段表均采用動態(tài)數(shù)組結(jié)構(gòu),具體操作是:創(chuàng)建時都先申請適當(dāng)大小的表項空間,數(shù)據(jù)的增加使得區(qū)段表不斷增長,當(dāng)表項空間不夠時,再申請一定數(shù)量的空間。相反,數(shù)據(jù)的刪除操作使得區(qū)段表不斷縮短,當(dāng)其尾部出現(xiàn)大量的空表項時,回收空表項占用的內(nèi)存。[4]
4.5 優(yōu)化內(nèi)存數(shù)據(jù)庫的索引機制
為適應(yīng)智能家居中對實時數(shù)據(jù)頻繁的查找和更新需求,進一步改進高效的索引機制加速操作的執(zhí)行速度,需優(yōu)化內(nèi)存數(shù)據(jù)庫的索引機制。SQLite系統(tǒng)采用是基于改進的Hybrid-HT的H-T索引機制,本文通過優(yōu)化H-T機制中的哈希函數(shù),通過對哈希表長的控制,分散了鍵值對記錄指針和哈希地址的操作范圍,從而高效率利用內(nèi)存空間,提高查詢、修改的操作速度。[5]
5 家庭網(wǎng)關(guān)數(shù)據(jù)庫系統(tǒng)的設(shè)計
本文構(gòu)造的嵌入式家庭網(wǎng)關(guān),是以S3C440系列嵌入式微處理器為中心,uCLinux嵌入式操作系統(tǒng)作為家庭網(wǎng)關(guān)的底層,移植部分功能模塊作為家庭網(wǎng)關(guān)硬件平臺。信息家電通過IAIDL接口向家庭網(wǎng)關(guān)注冊,每個家電的注冊信息、參數(shù)和狀態(tài)信息都存放在SQLite數(shù)據(jù)庫中,如圖4所示。
信息家電接口定義語言(IAIDL)是一種用來定義智能家居網(wǎng)絡(luò)中信息家電的說明性語言,是對設(shè)備資源信息的描述。
以某公司生產(chǎn)的某信息空調(diào)為例,其IAIDL描述如下:
美的空調(diào) is <空調(diào)>
{
enum type=(slow,normal,quick);
enum switch=(on,off);
attribute廠家=美的電器公司;
attribute功率=1.5P;
state溫度狀態(tài)Temp int(29:<20:the_min_value>,<40:the_max_value>);
state風(fēng)速狀態(tài)fan type(normal,normal);
function設(shè)置溫度void ST Temp(in int st(20,40)):
function設(shè)置風(fēng)速void ST Fan(in type ff);
function開關(guān)void On Off(in switch 00);
}
SQLite中家電信息表的生成
IAIDL定義了家庭網(wǎng)絡(luò)中設(shè)備之間的互操作,詳細描述信息家電的屬性和功能。家庭網(wǎng)關(guān)利用編譯器提取設(shè)備所發(fā)送的IAIDL描述內(nèi)容進行解析,利用API函數(shù)將相關(guān)信息存儲在SQLite數(shù)據(jù)表中。SQLite庫中的信息表包含設(shè)備類型表、設(shè)備列表、設(shè)備屬性表、設(shè)備接口表、事件通道表五種表格。由系統(tǒng)將設(shè)備類型號作為關(guān)鍵字,作為每類設(shè)備的唯一標(biāo)識,如圖5所示。[6]
編譯器對設(shè)備IAIDL完成分析掃描后,通過API函數(shù)接口生成數(shù)據(jù)庫文件。信息家電啟動時,系統(tǒng)會在內(nèi)存區(qū)域生成設(shè)備狀態(tài)表的副本作為設(shè)備運行狀態(tài)表。這些文件不會隨著時間的變化而發(fā)生改變,真正實時變化是處于運行狀態(tài)的設(shè)備狀態(tài)信息。
實時監(jiān)控系統(tǒng)按一定的掃描頻率對內(nèi)存中的設(shè)備運行狀態(tài)表進行掃描,數(shù)據(jù)采集模塊按照設(shè)定的頻率對外部信號進行采集,經(jīng)數(shù)據(jù)處理模塊將數(shù)據(jù)存入內(nèi)存中的設(shè)備運行狀態(tài)表,獲取最新的狀態(tài)數(shù)據(jù),完成對設(shè)備狀態(tài)的實時更新和控制。
信息家電中的黑色家電是供人們娛樂休閑用的,如電視機、VCD、音響等。黑色家電的狀態(tài)絕大多數(shù)情況下不會發(fā)生改變,所以設(shè)定所有的黑色家電都沒有實時狀態(tài)信息,在內(nèi)存中不生成設(shè)備運行狀態(tài)表,需要查詢時可以從flash中讀取。
而白色家電的狀態(tài)會隨著時間的變化而不斷變化,數(shù)據(jù)的實時性要求很高,如空調(diào)、電冰箱等,是改善生活環(huán)境提高物質(zhì)生活水平的。白色家電啟動后在內(nèi)存中生成設(shè)備運行狀態(tài)表,可以隨時監(jiān)視到設(shè)備狀態(tài)。
在系統(tǒng)中構(gòu)建主動規(guī)則庫對設(shè)備的實時狀態(tài)進行監(jiān)控,當(dāng)設(shè)備狀態(tài)變化時對家電進行自動控制,或設(shè)備狀態(tài)異常進行報警,由ECA規(guī)則來實現(xiàn)。一旦信息家電出現(xiàn)異常情況,就要進行報警操作。信息家電在滿足這些設(shè)定的事件時,系統(tǒng)能自動執(zhí)行規(guī)定好的動作。[7]
在設(shè)備運行過程中,數(shù)據(jù)隨著各種設(shè)備的運行不斷產(chǎn)生,系統(tǒng)將新的狀態(tài)數(shù)據(jù)寫入內(nèi)存,實時數(shù)據(jù)會轉(zhuǎn)儲為歷史數(shù)據(jù)。為保證系統(tǒng)的穩(wěn)定性,系統(tǒng)中的實時數(shù)據(jù)備份模塊負責(zé)周期性將內(nèi)存中設(shè)備狀態(tài)表數(shù)據(jù)保存到Flash中。當(dāng)設(shè)備運行故障時,可以從歷史數(shù)據(jù)庫中進行恢復(fù)。
6 家庭網(wǎng)關(guān)WEB服務(wù)器的設(shè)計
家庭網(wǎng)關(guān)中各種動態(tài)信息需要服務(wù)器實時創(chuàng)建,服務(wù)器程序與客戶端瀏覽器有較強的交互能力。本文采用BOA+CGI應(yīng)用程序構(gòu)建WEB服務(wù)器。CGI是外部擴展應(yīng)用程序與Web服務(wù)器交互的一個標(biāo)準接口。Web服務(wù)器通過調(diào)用CGI程序?qū)崿F(xiàn)和Web瀏覽器的交互,處理來自客戶端瀏覽器輸入的數(shù)據(jù),從而完成客戶端與服務(wù)器的交互,實現(xiàn)動態(tài)Web技術(shù)。[8]
WEB服務(wù)器從SQL查詢結(jié)果中讀取信息,同時把這些信息返回給客戶端。CGI應(yīng)用程序可以使用printf()函數(shù)將查詢結(jié)果以HTML的形式輸出到客戶端,向客戶端返回動態(tài)頁面,實現(xiàn)用戶WEB服務(wù)器與數(shù)據(jù)庫SQLite的交互。
總之,整個家庭網(wǎng)關(guān)程序設(shè)計都以嵌入式數(shù)據(jù)庫實時SQLite為核心,可有效滿足家庭網(wǎng)關(guān)對信息家電實時數(shù)據(jù)管理要求。
7 結(jié)論
本文針對嵌入式設(shè)備的實時性特點,結(jié)合家庭網(wǎng)關(guān)的實際應(yīng)用需求,對SQLite數(shù)據(jù)庫系統(tǒng)的體系結(jié)構(gòu)、內(nèi)部函數(shù)、外部接口、索引算法等方面進行了改進與優(yōu)化。提高了系統(tǒng)整體實時性能;完善了數(shù)據(jù)庫的安全性;降低了系統(tǒng)資源占用,良好的匹配了現(xiàn)有ARM架構(gòu)的家庭網(wǎng)關(guān)硬件體系,完全能滿足家庭網(wǎng)關(guān)對信息家電實時數(shù)據(jù)管理的要求。
由于自身水平、設(shè)備條件有限,本文還有很多需進一步改進的地方,如事務(wù)處理的調(diào)度和執(zhí)行策略方面;身份驗證、數(shù)據(jù)加密等安全性研究方面,對報警庫,CA庫,ECA庫的詳細設(shè)計方面還有待于進一步的充實和完善。
參考文獻:
[1]宋安,習(xí)勇,魏急波.基于μCLinux的NAT設(shè)備的設(shè)計與開發(fā)[J].電子工程師,2005-05-15.
[2]徐葉,袁敏,李國軍.嵌入式Web服務(wù)器遠程監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)[J].計算機與現(xiàn)代化,2013-02-27.
[3]王俊,郭書軍.嵌入式Web服務(wù)器的實現(xiàn)及其CGI應(yīng)用[J]. 電子設(shè)計工程,2011-11-05.
[4]高建國,崔業(yè)勤.ARTs-EDB的內(nèi)存數(shù)據(jù)存儲管理[J].微計算機信息,2010-01-25.
[5]陳嘉.嵌入式主存數(shù)據(jù)庫索引機制的研究與改進[D].湖南師范大學(xué),2006:278-282.
[6]劉志東.基于嵌入式Web技術(shù)的遠程射頻識別系統(tǒng)的設(shè)計與實現(xiàn)[D].西北民族大學(xué)碩士論文,2012-04-01.
【關(guān)鍵詞】IBM存儲 RAID 氣象數(shù)據(jù)庫系統(tǒng)
目前氣象數(shù)據(jù)庫系統(tǒng)服務(wù)器IBMP650和作為備份IBMP510,負責(zé)所有氣象信息的收集、轉(zhuǎn)發(fā)、加工和處理。把信息經(jīng)過處理以后,變成產(chǎn)品。隨著氣象資料數(shù)據(jù)量越來越大,現(xiàn)有的存儲空間成為保持業(yè)務(wù)能夠連續(xù)運轉(zhuǎn)非常重要的問題。考慮到業(yè)務(wù)將來的發(fā)展需要,引用IBM存儲DS4700作為IBMP650服務(wù)器上磁盤空間,將ORACLE整個牽至IBM存儲DS4700,大力提升IBMP650服務(wù)器的性能以及運行穩(wěn)定的保障,更快速實現(xiàn)氣象資料進行實時交換,實行資源共享。
1 IBM DS4700存儲應(yīng)用以及 RAID 5、LUN、HBA介紹
DS4700 支持16塊內(nèi)置熱插撥磁盤,最大支持4.8T裸數(shù)據(jù)容量,同時連接6個EXP710/EXP810擴展單元,最大支持112個FC磁盤33.6磁盤裸數(shù)據(jù)容量(我現(xiàn)在用磁盤類型)陣列(帶 2GB 緩存) 1萬5千轉(zhuǎn)磁盤,有2 個管理軟件/存儲分區(qū)支持對本地和聯(lián)網(wǎng)。可以從基于瀏覽器的界面快速配置和監(jiān)控存儲系統(tǒng) ,可在不中斷數(shù)據(jù)訪問的情況下配置卷、進行日常維護。
RAID 5 是一種存儲性能、數(shù)據(jù)安全和存儲成本兼顧的存儲解決方案。RAID 5可以為系統(tǒng)提供數(shù)據(jù)安全保障,但保障程度要比Mirror低而磁盤空間利用率要比Mirror高。
LUN的全稱是Logical Unit Number,也就是邏輯單元號。
HBA光纖存儲卡,用于服務(wù)器與光纖陣列的連接。
2 IBM存儲DS4700管理與磁盤劃分
4.2 日常維護
IBM存儲DS4700亮黃燈,(正常狀態(tài)下綠燈常亮,黃燈閃(有IO操作)故障盤一般都是黃燈常亮,綠燈滅)
在AIX中執(zhí)行:"errpt -a"可以查看相關(guān)提示
可以連接到存儲上查看,可能存在硬盤、電源、風(fēng)扇有問題;或者通過recovery guru查看真正的問題,看日志說哪個地方出錯。
如何修改IBM存儲DS4700盤陣控制器的默認IP地址
通過默認管理口IP:192.168.128.101/102連接進行管理。在存儲子系統(tǒng)管理界面右側(cè)的物理視圖中右鍵點擊任意控制器,在彈出菜單中選擇change>network configuration ,在彈出的對話框中配置,修改以太網(wǎng)口。
IBM存儲DS4700添加新硬盤
對DS4700系統(tǒng)中的數(shù)據(jù)進行完全備份;確認當(dāng)前系統(tǒng)的控制器微碼;確認當(dāng)前DS4700中的硬盤處于最佳(optimal)狀態(tài);保存當(dāng)前DS4700配置信息;添加硬盤前,檢查硬盤與當(dāng)前DS4700系統(tǒng)的兼容性(試用于添加新硬盤)
IBM存儲DS4700中FC硬盤SATA混插
在一個DS4700中或者EXP(磁盤箱)里面是可以混插的,但是考慮性能角度考慮還是把兩種硬盤放置在不同(磁盤箱)。
IBM DS4700 時間不同步
通過IBM存儲配置軟件配置磁盤柜(從磁盤柜背面的管理端口連接)的時候可以設(shè)置時間同步的,也可以通過這個手動修改。
5 小結(jié)
總之,隨著氣象數(shù)據(jù)庫系統(tǒng)業(yè)務(wù)快速發(fā)展,DS4700 磁盤陣列成為氣象數(shù)據(jù)庫系統(tǒng)重要組成部分,可以在不影響應(yīng)用情況下,實現(xiàn)系統(tǒng)擴展。是高性能的存儲設(shè)備,可以從基于瀏覽器的界面快速配置和監(jiān)控存儲系統(tǒng) ,可在不中斷數(shù)據(jù)訪問的情況下配置卷、進行日常維護以及添加新機柜和容量 ,同時光纖通道連接單元,具有很高 I/O 速率。為氣象數(shù)據(jù)庫系統(tǒng)實現(xiàn)更新、交換、共享,提供有力的保障儲存空間,大力提升氣象數(shù)據(jù)庫系統(tǒng)的利用效率和服務(wù)
【關(guān)鍵詞】藥品;量子;信息系統(tǒng);數(shù)據(jù)挖掘;設(shè)計
1 藥品信息量子化
量子的概念源自物理學(xué),普朗克是“量子物理學(xué)”的開創(chuàng)者和奠基人。1900年普朗克拋棄“能量是連續(xù)的”這一傳統(tǒng)經(jīng)典物理學(xué)觀念,證明了物質(zhì)輻射的能量是不連續(xù)的,只能是某一最小能量的整數(shù)倍,普朗克把這一最小能量單位稱為“能量子”,簡稱“量子” [1]。
藥品信息“量子化”是指將紛繁復(fù)雜的、模糊有噪聲的藥品信息合理解析成具有獨立內(nèi)涵的、不可再分的最小信息單位,即“量子”。將藥品原始數(shù)據(jù)“量子化”的方法,使藥品復(fù)雜數(shù)據(jù)簡潔化、精確化、規(guī)范化,提高了計算機的數(shù)據(jù)處理速度,為數(shù)據(jù)庫知識發(fā)現(xiàn)奠定基礎(chǔ)。
2 醫(yī)院藥品量子信息數(shù)據(jù)庫系統(tǒng)的分析
2.1系統(tǒng)的功能分析
2.1.1智能化檢索功能 為方便醫(yī)護人員等查找需要的藥品信息,系統(tǒng)檢索功能必不可少,本系統(tǒng)不僅可以通過輸入關(guān)鍵詞進行普通檢索和高級檢索,還可通過下拉列表選擇相關(guān)“量子”進行智能化檢索。
2.1.2 輔助實現(xiàn)數(shù)據(jù)挖掘功能 藥品數(shù)據(jù)最大的特點是“數(shù)據(jù)海量,信息缺乏”。如何從海量的、有噪聲的、模糊的醫(yī)藥學(xué)數(shù)據(jù)中,提取出隱含其中的、人們事先未知又潛在有用、能輔助臨床用藥決策的信息,是數(shù)據(jù)挖掘(DM)最終解決的問題。而數(shù)據(jù)挖掘過程中一個關(guān)鍵步驟就是數(shù)據(jù)的預(yù)處理,即數(shù)據(jù)的清洗、集成、轉(zhuǎn)化和消減等。本文提出的藥品信息“量子化”即是數(shù)據(jù)的預(yù)處理過程,它為醫(yī)藥學(xué)數(shù)據(jù)挖掘的實現(xiàn)邁出關(guān)鍵性的一步。
2.1.3 數(shù)據(jù)維護功能 包括數(shù)據(jù)更新、備份和恢復(fù)功能。數(shù)據(jù)更新包括藥品數(shù)據(jù)的修改、刪除、添加等,以便保證當(dāng)前藥品信息的實時性和準確性。對于一個完整的系統(tǒng)而言,備份和恢復(fù)功能也是必不可少的組成部分,當(dāng)應(yīng)用系統(tǒng)發(fā)生災(zāi)難性錯誤時,備份和恢復(fù)功能可使系統(tǒng)避免數(shù)據(jù)丟失帶來的巨大損失。而即便系統(tǒng)沒有數(shù)據(jù)丟失或破壞,備份和恢復(fù)功能仍具有重大意義,它為我們進行歷史數(shù)據(jù)的查詢、統(tǒng)計和分析,以及重要信息歸檔保存提供了可能[2]。
2.2 系統(tǒng)的優(yōu)勢分析
2.2.1更快捷的計算機處理速度 國內(nèi)大多數(shù)醫(yī)院藥品信息數(shù)據(jù)庫僅是藥品說明書等的簡單堆砌,并未對藥品信息進行有效的預(yù)處理,這顯然會影響計算機的處理速度。本系統(tǒng)將這些復(fù)雜模糊、不規(guī)范的藥品信息經(jīng)專業(yè)人員處理成簡潔、精確、規(guī)范的“量子”,并歸類編碼建立量子數(shù)據(jù)庫后,計算機便可對這些“量子”進行快速處理。藥品量子信息數(shù)據(jù)庫系統(tǒng)較普通數(shù)據(jù)庫系統(tǒng)有更快捷的處理速度。
2.2.2更智能的客戶端檢索模式 普通客戶端檢索模式不能滿足信息多元化檢索需求,本系統(tǒng)除一般數(shù)據(jù)庫系統(tǒng)所具有的普通檢索和高級檢索外,還特別設(shè)計了量子檢索模塊。這種量子檢索模塊不僅能幫助用戶迅速檢索出同時滿足多種條件的精確信息,且由于各種藥品信息均已進行精確的量子歸類,便于計算機處理。
2.2.3更前瞻性的為數(shù)據(jù)挖掘服務(wù) 數(shù)據(jù)挖掘技術(shù)的應(yīng)用對臨床用藥決策及醫(yī)藥學(xué)研究等具有重要的意義。如,根據(jù)病人反饋使用某些藥品后產(chǎn)生的不良反應(yīng)數(shù)據(jù),通過數(shù)據(jù)挖掘技術(shù)發(fā)現(xiàn),聯(lián)合用藥可能導(dǎo)致某些不良反應(yīng),或聯(lián)合用藥可能減少某些不良反應(yīng),或者同一種藥品由不同性別、年齡、體質(zhì)的患者使用可能產(chǎn)生不同的反應(yīng)等,這些將為醫(yī)師指導(dǎo)患者臨床用藥提供重要幫助。藥品信息“量子化”為醫(yī)藥學(xué)數(shù)據(jù)挖掘的實現(xiàn)奠定基礎(chǔ)。
3 醫(yī)院藥品說明書數(shù)據(jù)庫系統(tǒng)的設(shè)計
3.1系統(tǒng)的總體架構(gòu)設(shè)計本系統(tǒng)采用分布式多層體系結(jié)構(gòu)。實現(xiàn)分布式應(yīng)用的成熟技術(shù)主要有COM/DCOM和CORBA ,由于本系統(tǒng)在Windows平臺上運行,所以選用COM/DCOM為實現(xiàn)系統(tǒng)的標(biāo)準。采用多層結(jié)構(gòu)后,為了避免在WEB應(yīng)用程序中進行直接數(shù)據(jù)庫操作和事務(wù)管理,將數(shù)據(jù)庫操作和事務(wù)管理轉(zhuǎn)移到中間件中處理。即第一層是客戶層,客戶可以通過使用GUI與應(yīng)用程序進行交互;第二層是中間層,通常由一個和多個應(yīng)用服務(wù)器組成。應(yīng)用服務(wù)器處理客戶的請求,然后將結(jié)果返回客戶層;第三層是數(shù)據(jù)層,用于駐留業(yè)務(wù)數(shù)據(jù)的地方,在處理業(yè)務(wù)數(shù)據(jù)時,由中間層訪問數(shù)據(jù)層[3]。
3.2系統(tǒng)的功能模塊設(shè)計
本系統(tǒng)的主要構(gòu)成模塊,如圖1所示。
參考文獻
[1]趙凱華,羅蔚茵.量子物理[M].北京:高等教育出版社,2006:1-10.
[關(guān)鍵詞]數(shù)據(jù)庫;教學(xué)方法;關(guān)系模型
[中圖分類號] G642 [文獻標(biāo)識碼] A [文章編號] 2095-3437(2017)02-0070-02
當(dāng)前的應(yīng)試教育存在很多弊端,造成相當(dāng)多的學(xué)生在不同階段和層次上成為被淘汰的對象;出現(xiàn)了學(xué)生圍著分數(shù)學(xué),教師圍著分數(shù)教的現(xiàn)象;一些教師只注重學(xué)生的應(yīng)試能力,教學(xué)過程缺乏應(yīng)有的深度和廣度。這些現(xiàn)象挫傷了學(xué)生的學(xué)習(xí)興趣,也很難培養(yǎng)出有素質(zhì)和能力的人才。教師應(yīng)該采用符合人才和知識發(fā)展規(guī)律的教學(xué)方法,在數(shù)據(jù)庫系統(tǒng)的教學(xué)過程中也應(yīng)該以循序漸進的方式介紹該領(lǐng)域的知識,使學(xué)生理解知識之間的關(guān)聯(lián)性。首先要講解清楚知識產(chǎn)生的原因,然后介紹該領(lǐng)域的具體知識,最后要說明知識之間的連貫性和系統(tǒng)性,使學(xué)生認識到將來還有很大的學(xué)習(xí)和探索空間。
一、數(shù)據(jù)庫技術(shù)產(chǎn)生的原因
隨著計算技術(shù)在各個領(lǐng)域的廣泛應(yīng)用,數(shù)據(jù)量變得越來越大,比如騰訊、百度、谷歌等公司的很多應(yīng)用,每天都有大量的數(shù)據(jù)產(chǎn)生。紐約證券交易所每天產(chǎn)生1TB的交易數(shù)據(jù);著名社交網(wǎng)站Facebook的主機存儲著約100億張照片,占PB級存儲空間;家譜網(wǎng)站存儲著2.5PB數(shù)據(jù);互聯(lián)網(wǎng)檔案館(The Internet Archive)存儲著2PB的數(shù)據(jù),并以每月至少20TB的速度增長;瑞士日內(nèi)瓦附近大型強子對撞機每年產(chǎn)生約15PB的數(shù)據(jù)。據(jù)IDC統(tǒng)計,到2011年全球數(shù)據(jù)總量已達到1.8ZB,并且數(shù)據(jù)量仍在快速地增長。[1]如此海量的數(shù)據(jù)應(yīng)該如何組織和管理,需要新的技術(shù)來解決這一難題。在這種背景下,數(shù)據(jù)庫技術(shù)誕生了。比如目前學(xué)生都會使用到的網(wǎng)上選課系統(tǒng)。該系統(tǒng)中主要涉及與學(xué)生、教師和課程相關(guān)的數(shù)據(jù)。那么這些數(shù)據(jù)應(yīng)該按照一種什么樣的方式來組織,才能更有效地支持上層應(yīng)用程序的實施?數(shù)據(jù)庫技術(shù)就在此背景下誕生了。這種傳授知識的方式描述了數(shù)據(jù)庫技術(shù)產(chǎn)生的原因是為了解決社會的需求。學(xué)習(xí)了這些知識,學(xué)生清楚了數(shù)據(jù)技術(shù)的意義,這樣能夠更好地激發(fā)學(xué)生對該技術(shù)的興趣,有助于學(xué)生對本領(lǐng)域知識的探索和學(xué)習(xí)。
二、數(shù)據(jù)的概念模型描述方式
■
圖1 選課場景的E-R圖
社會實際的應(yīng)用中涉及多個實體對象、多種關(guān)系,這些對象和他們之間復(fù)雜的關(guān)系用什么方式來表達,導(dǎo)致出現(xiàn)了數(shù)據(jù)的概念模型,概念模型是對現(xiàn)實世界事物的一種抽象描述。對于現(xiàn)實生活中的選課情形,在概念層面上對其應(yīng)該如何描述,如何構(gòu)建模,才能夠清晰地指導(dǎo)數(shù)據(jù)庫的構(gòu)建。于是出現(xiàn)了概念模型的建模方法――E-R圖[2],對于選課情形的E-R圖如圖1所示。把選課系統(tǒng)的學(xué)生、課程實體用矩形表示;每個實體的屬性用橢圓形表示學(xué)生具有學(xué)號、姓名和專業(yè)等屬性;實體和實體之間的聯(lián)系用菱形表示,如學(xué)生和課程之間的選修關(guān)系;實體和實體之間的聯(lián)系的本身也可以有自己的屬性,如選修具有成績和選修時間這兩個屬性。有了這個E-R圖之后就可以很方便地得到數(shù)據(jù)庫的邏輯模型。如果數(shù)據(jù)庫是關(guān)系型數(shù)據(jù)庫,可以把E-R圖中每個實體轉(zhuǎn)化成數(shù)據(jù)庫中的一個表,實體和實體之間的聯(lián)系也可以轉(zhuǎn)化成與之對應(yīng)的一張二維表。如此講解之后學(xué)生能夠很好地理解E-R圖建模工具出現(xiàn)的原因,以及它在數(shù)據(jù)庫構(gòu)建過程中所起的作用。
三、數(shù)據(jù)的邏輯模型
有了數(shù)據(jù)的概念模型之后,這些數(shù)據(jù)在邏輯上應(yīng)該按照一種什么形式組織,軟件才能更好地操縱它們,這些是很多學(xué)者研究的內(nèi)容之一,于是出現(xiàn)了多種數(shù)據(jù)邏輯模型。如常見的層次數(shù)據(jù)模型、網(wǎng)狀數(shù)據(jù)模型和關(guān)系型數(shù)據(jù)模型等。對于上述的選課應(yīng)用情形,數(shù)據(jù)分別采用網(wǎng)狀數(shù)據(jù)模型和關(guān)系型數(shù)據(jù)模型組織,情況分別如圖2和圖3所示。[3]現(xiàn)在如果實體個數(shù)很多,并且實體與實體之間有很復(fù)雜的聯(lián)系,如果采用網(wǎng)狀數(shù)據(jù)模型,最終它們會形成復(fù)雜的網(wǎng)絡(luò),那么處理這些數(shù)據(jù)及關(guān)系,就需要與之相適應(yīng)的軟件工具來支持;如果采用關(guān)系型數(shù)據(jù)模型,最終在數(shù)據(jù)庫中會形成多個二維表,如圖2所示,對這些數(shù)據(jù)的操作也需要相應(yīng)的軟件工具來處理。這樣能夠使學(xué)生認識到數(shù)據(jù)的邏輯模型可以有多種不同的組織方式,采用不同的數(shù)據(jù)模型需要不同的數(shù)據(jù)處理技術(shù),還能使其認識到這些內(nèi)容都是科研工作者需要研究的內(nèi)容。
■
圖2 選課系統(tǒng)的網(wǎng)狀數(shù)據(jù)模型
■
圖3 選課系統(tǒng)的關(guān)系數(shù)據(jù)模型
四、數(shù)據(jù)模型的存儲結(jié)構(gòu)
■
圖4 網(wǎng)狀數(shù)據(jù)模型的存儲結(jié)構(gòu)
上面介紹的這些數(shù)據(jù)的邏輯模型,以及這些數(shù)據(jù)在物理形式上應(yīng)該如何組織,是數(shù)據(jù)的物理存儲結(jié)構(gòu)研究的范疇。比如對于圖2中網(wǎng)狀數(shù)據(jù)模型的存儲結(jié)構(gòu)可以采用圖4所示的存儲結(jié)構(gòu);現(xiàn)在如果想查看學(xué)生S1選修了哪些課程,成績分別是多少,可以從S1出發(fā),沿著S1的指針向前走,可以走到(S1 C1 A)記錄,可知S1選修了課程C1,該門課程的成績?yōu)锳;然后繼續(xù)往前走,走到記錄(S1 C2 A),可知S1選修了課程C2,該門課程的成績也為A;然后再往前走,又回到了S1,即可知學(xué)生S1總計選修了課程C1、C2,課程C1的成績是A,課程C2的成績是C2。按照同樣的方法,從C1出發(fā),走一圈,可以得到課程C1被哪些學(xué)生選修,成績?yōu)槎嗌?。同樣如果學(xué)生現(xiàn)在想退選某門課程,那么從上圖中刪除數(shù)據(jù)又該怎么操作,查找、修改圖中的數(shù)據(jù)又該怎么操作,這些都是值得研究的問題。同時,網(wǎng)狀數(shù)據(jù)模型還可以采用其他的存儲結(jié)構(gòu),同樣對于關(guān)系模型也有著多種存儲方式,對不同的存儲結(jié)構(gòu)又有著不同的數(shù)據(jù)操縱方法。這樣講解之后能夠擴寬學(xué)生的知識面,使學(xué)生認識到哪些知識點是值得深入研究和學(xué)習(xí)的內(nèi)容,畝培養(yǎng)學(xué)生的研究興趣。
五、闡述知識的系統(tǒng)性
日常使用的選課系統(tǒng)涉及數(shù)據(jù)庫的概念結(jié)構(gòu)、邏輯結(jié)構(gòu)和物理結(jié)構(gòu)。對于數(shù)據(jù)庫的概念結(jié)構(gòu),使用E-R圖進行建模;關(guān)于數(shù)據(jù)的邏輯結(jié)構(gòu),使用關(guān)系模型;關(guān)于數(shù)據(jù)的物理結(jié)構(gòu),可以使用文件存儲方式來存放數(shù)據(jù);數(shù)據(jù)的操作需要多方面的技術(shù)來支持。介紹這些知識之后,使學(xué)生認識到自己所學(xué)的知識原來是這樣相互關(guān)聯(lián)的,具有系統(tǒng)性。教師在系統(tǒng)性地講解現(xiàn)有知識時,還要點出即將出現(xiàn)的新問題和新技術(shù)。如海量數(shù)據(jù)的出現(xiàn),導(dǎo)致已有的數(shù)據(jù)庫技術(shù)不能很好地適用各種場景。對海量數(shù)據(jù)的存儲、計算和傳輸,促成了現(xiàn)在的固態(tài)硬盤技術(shù)、分布式計算、并行計算技術(shù)、光纖通信技術(shù)的出現(xiàn)。這樣使學(xué)生對知識有一個系統(tǒng)性的認識,能夠很好地激發(fā)學(xué)生探索和學(xué)習(xí)新知識的興趣。
[ 參 考 文 獻 ]
[1] Tom White. Hadoop權(quán)威指南[M].北京:清華大學(xué)出版社,2015.
[2] 吳開軍,鄭衛(wèi)東.選課系統(tǒng)的設(shè)計與實現(xiàn)[J].電腦開發(fā)與應(yīng)用,1996.