999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

關于文本數據庫查詢類程序的效益探討

2017-03-31 01:38:03達克江馬達尼亞提
卷宗 2016年9期

達克江?馬達尼亞提

摘 要:根據我團隊目前的研究成果做進一步研究,關于采用非傳統數據庫的查詢類程序與采用傳統數據庫的同類程序相比較,做其開發價值、實用性、可行性等方面的探討。

關鍵詞:PHP;JavaScript;AJAX;正則;實用性;拓展性;傳統數據庫;

本文為2015年度新疆警察學院科研基金資助項目研究成果,項目名稱:“公安院校在線成績查詢系統”項目編號:2015JYXSKJ02

我團隊采用純文本作為數據庫開發的成績查詢系統已經運行近一年,現該系統提供的服務已覆蓋我院全部在校生,并取得了成功。再次以我團隊成功的開發經驗探討下關于純文本數據庫查詢類程序的效益問題。

1 可行性

(一)PHP讀取文本的相關函數

采用PHP腳本語言開發以TXT文本文檔作為數據庫的成績查詢系統,其功能、效果及性能終須以PHP對文本文件的處理性能作為核心和基礎。因此PHP對文本文件具體操作的函數是否豐富,是否能滿足系統最基礎的功能需求是至關重要的。PHP作為一種非常受歡迎的WEB服務端腳本語言,顯然是能夠勝任的。

在PHP中,為開發者操作文本提供了非常豐富的函數,有:readfile()、fopen()、fread()、fgets()、feof()、fgetc()等等。

(二)實現文本數據庫的“按字段查詢”功能

對于采用傳統數據庫開發的查詢類程序而言,數據庫本身就是分字段、分表的存儲,在查詢時更可以通過數據庫本身的語言進行相關表、字段的操作,其程序開發上可以說是相當簡單。但是對于采用文本文檔替代傳統數據庫的查詢類程序而言,當然沒有如此便捷的接口供開發者調用開發,這也是大多數開發者不愿離開傳統數據庫的重要原因。另外如何保障文本數據庫查詢程序的性能、維護以及拓展數據庫帶來性能損耗都是一系列重要的問題。

我團隊采取的解決方案就在于“數據庫”結構的設計,只要能保證文本內容采用嚴格的二維結構,上述的一些列問題自然迎刃而解。再針對二維結構的文本類數據庫,程序采用按行處理條件查詢,從而實現系統條件查詢功能。

(三)實現文本數據庫的“按表查詢”功能

1.模擬“按表查詢”的必要性

按行處理的方式實現類似于傳統數據庫中字段查詢的功能,并且可以有效避免程序單次查詢時數據讀取量過大而導致程序崩潰的問題。但僅僅如此對于實現一個查詢類程序是遠遠不夠的,每個有經驗的開發者都知道,傳統數據庫查詢程序中不僅有對字段的查詢操作,還要有對表的查詢操作,解決程序的效率問題,防止程序出現“假死”現象。

2.模擬“按表查詢”的技術難度

對于實現模擬一個類似于表的操作就需要將文本數據庫實現提升一個維度。如何使程序在已知字段數據缺少表段數據時實現查詢是個客觀問題,中途返回用戶一個詢問或以某種特定的規則循環查詢。顯然這兩種實現方式的代價都太大,前者是犧牲的是系統友好性,后者犧牲的是系統性能。

3.我團隊模擬“按表查詢”的方案

我團隊在解決這一問題時,為系統開發引入AJAX技術將用戶的兩次交互操作“合并”為了一次,即用戶在表單填寫的過程中會“不知覺”的完成表段數據的選擇。這里所謂的“不知覺”是指在不刷新網頁的前提下完成一次客戶端與服務端的交互,從而避免系統有失友好性,同時解決程序對表段數據的操作需求,提升系統的整體性能,以非傳統數據庫查詢程序完善模擬了傳統數據庫查詢類程序所必須的基本功能模塊,為系統整體實現奠定基礎。

2 實用性

(一)功能效果

1.前臺界面

我團隊為提升系統友好性,利用PHP強大的客戶端信息采集函數“$_SERVER[‘HTTP_USER_AGENT]”組件了客戶端分析模塊,主要功能是分析判斷訪問來源即用戶的設備類型,再根據其不同的設備類型輸出相應的前臺頁面提升對用戶設備的契合程度。

2.反饋系統

我團隊非常重視來自用戶群體的反饋意見,一個團隊的思想是有限的,只有集思廣益才能發現更多沒有發現的問題,而只有不斷發現問題才能將項目做得更好、進步得更快。

反饋模塊的實現就是一個通過表單填寫反饋內容,待用戶提交后由系統利用PHPMailer類庫向管理員郵箱賬號(程序后臺設定)發送郵件的過程。

3.根據反饋做的優化

在二次開發中,依據用戶反饋的意見在最終顯示的頁面也加入了AJAX的微表單元素,在用戶查詢完本學期的成績后可通過該HTML元素直接選擇其他學期的成績,避免了用戶重復填寫表單的繁瑣過程,深受用戶好評。

同時,也是經過用戶群體強烈要求,加入了我院學生常用的(如假期家校聯系卡、統一格式實習鑒定表等)文件一鍵加密打包發送至郵箱等功能,完成了對系統功能的拓展,增強了系統實用性,也提高了代碼復用率(該功能亦用到了PHPMailer類庫,并且根據學院要求部分文件不能直接提供下載)。

(二)系統速度

在提升系統運行速度等方面我團隊經過多次測試,詳細總結了經驗教訓,大致通過以下三個方面提升系統運行速度:

1.編寫學號驗證正則

經測試發現,減少程序并發運行次數,以及減少不必要的、惡意的查詢可大大提升系統運行速度,因此我團隊仔細研究了我院學生的學號定義規則,根據實際編寫了驗證學號的正則程序。

采用了JavaScript+PHP的雙重驗證方式,從前后端雙重驗證,完美的解決了非我院學生惡意查詢帶來的不良影響,為系統正常運行提供了雙層保障。

2.AJAX實現多級關聯

相對傳統數據庫的查詢類程序而言,文本數據庫程序的運行效率與數據庫文件大小成反比,換句話說就是往后系統會越用越慢,這是文本數據庫體積不斷增加的結果。為避免該類現象的發生,我團隊采用了AJAX無刷新交互技術實現了多級文件夾關聯篩選,這種數據結構同時又是符合我院成績以班級為單位的數據類型。

3.少數民族學生姓名中間的分隔符

分析整理了大量反饋的反饋信息,其中占有很大比值的一部分就是來自少數民族同學姓名中的分隔符所引起的。在我國,具有55個少數民族,其中很多少數民族姓名中都有分隔符( “·”符號)。分析發現,本系統中采用的查詢是有雙條件的即姓名+學號的形式,一般來說姓名和學號的輸錯率不會高于3%,但少數民族同學輸錯率卻高達35%左右,究其原因就是該符號所引起的,并且在反復的嘗試中會時系統產生大量不必要的并發,在高峰期時所造成的影響是不容忽視的。

鑒于此,我團隊從前端程序和后臺程序雙管齊下,做了一系列的優化和規范措施。

(1)其中針對后臺程序,采用了正則程序加大容錯率:在獲取POST數據的第一層接口,加入了正則程序以替換各種預設不規范的分隔符為正確的分隔符,避免因用戶不清楚分隔符的正確輸入方式而造成查詢失敗,大大提高了少數民族學生查詢成功率。

(2)在提高了系統后臺程序的容錯率后,為防止出現未預設特殊符號再度引起該類問題,在前臺的表單頁面加入了JavaScript正則程序,即輸入任意不規則符號便能夠自動校正修改為正確的分隔符。

3 開發價值

(一)開發成本

在與同類程序相比較,PHP腳本語言完全免費開源,開源的優勢又使其具有非常豐富的拓展類庫,并且入門也比同類語言簡單。

可以說PHP集開放、免費、強大、簡易等諸多優點于一身,使其開發成本在同類程序中更具優勢。

(二)應用與維護成本

PHP的運行環境是Linux服務器,在當前Linux服務器的租賃相對來說比較便宜。并且在本系統中,并未涉及到數據庫的使用,因此在數據庫服務方面減少開支。就當前社會所流行的快速集成式APP而言,其應用與維護成本更低,相對其他語言更是不二的選擇。

(三)拓展性能

就拓展方面,PHP具有非常豐富而優秀的免費類庫,入手也相當容易,在功能拓展方面并不存在太大的問題。又如當前諸多流行應用對PHP都有發放的接口支持,例:微信平臺對PHP應用開放的接口支持等。

4 對比優劣勢

(一)文本數據庫的優勢

1.成本與效益優勢

當前網絡數據庫的收費報價都參差不齊,各類套餐五花八門,比如新浪云服務器數據庫服務最低報價15元/月、阿里云服務器RDS數據庫服務最低報價37元/月等,按均價幾十元算每年數據庫支出也近千元。

采用傳統數據庫時一般出于數據庫安全考慮,都會配購相應的數據庫防火墻服務。數據庫防火墻服務費用根據用戶需求及規模而異,年費用由千元至萬元不等。而文本數據庫因其性質則不需要此類開支,只要做好網站目錄的相應權限配置基本可以滿足用戶需求。

2.安全性

注入攻擊又稱SQL注入攻擊,是黑客對傳統數據庫進行攻擊的常用手段之一。是由于程序員的水平及經驗不足,沒有對用戶輸入數據的合法性進行判斷,使用戶可以提交某些數據庫查詢代碼,根據程序返回的結果,獲得某些他想得知的數據,這就是所謂的SQL Injection,即SQL注入。SQL注入攻擊屬于數據庫安全攻擊手段之一,會導致的數據庫安全風險包括:刷庫、拖庫、撞庫等。

但純文本數據庫作為非傳統數據庫,自然也就不存在這類安全隱患,因為我們采用的“數據庫”它本身就是一個TXT文本文檔,不能執行任何代碼,從根源上消除潛在安全隱患,這也是上面所提到的不需要防火墻服務的原因所在。

3.可移植性

可移植性也是文本數據庫的一大特點,因其本質上就是純文本文檔,在各種平臺及版本升遷過程中所造成的影響可以忽略不計。而傳統數據庫的應用程序則做不到,平臺的更換甚至版本遷移都可能導致一些致命錯誤的出現,必須得嚴格檢查其數據庫接口模塊是否正常工作,因此相對而言文本數據庫的可移植性是非常理想的。

(二)相比傳統數據庫的劣勢

1.數據庫結構不易更改

傳統數據庫的好處就是可以在后期程序的升級中重新調整數據庫結構,此操作只需將接口模塊重新調整使其匹配數據庫的新結構即可完成。而文本數據庫因其本身只是一個文本,不便于結構的更改操作,且數據庫結構的改變必然影響到程序的邏輯,不得不對代碼結構進行重新設計,以達到數據庫結構與程序直接的匹配關系。但一般來說只要程序一開始設計時能夠保證其拓展性和良好的性能,后期就并不需要改變數據庫結構。

2.批量導入、導出不方便

數據庫的數據來源一般為EXCEL表格或數據庫文件,傳統的數據庫都有其完善的導入接口,在批量導入、導出方面有著先天優勢。而文本數據庫因用戶自己設計的結構不同,操作難度也不同。如果想達到傳統數據庫那樣便捷的批量操作,要么由用戶自己設計一款配套的導入導出軟件,要么將數據庫結構設計的復合主流數據庫樣式,以方便用戶利用其它數據庫的對應接口進行操作(亦需要用戶設計一些簡單的輸出程序)。

5 總結

客觀來講,文本數據庫查詢類的程序其利與弊皆有,是否采用仍需開發者根據自身需求權衡決定,若能完善解決采用文本數據庫所帶來的諸多問題,其具備的優勢仍然不可忽視。

我團隊本著敢于創新的精神和服務學生的態度,為我院學生定位開發的成績查詢系統中采用了文本數據庫,同時用C#編程語言開發了相應的數據庫導入軟件簡化了數據庫批量操作,完善解決了采用文本數據庫所帶來的操作不便等問題。當前其簡易的操作和優秀的拓展性所帶來的效益是非常明顯的,該系統從測試運行到正式覆蓋全院在校生已近一年,深受同學們的喜愛。

參考文獻

[1]《基于C#的Excel數據導入導出研究與實現》.蔡小艷.智能計算機與應用.2014年10月

[2]《基于Excel的平時成績查詢系統設計及實現》.徐慧.軟件導刊. 2014年04期

作者簡介

達克江·馬達尼亞提(1994-),男,新疆維吾爾自治區,本科,職稱,治安學,新疆警察學院。

主站蜘蛛池模板: 欧美在线一二区| 国产精品毛片在线直播完整版| 国产亚洲视频中文字幕视频| 在线欧美日韩国产| 99热这里只有精品免费| 玖玖免费视频在线观看| 久久综合丝袜长腿丝袜| 亚洲自偷自拍另类小说| 爽爽影院十八禁在线观看| 亚洲中文无码h在线观看| 日本精品αv中文字幕| 国产超碰一区二区三区| 无码福利日韩神码福利片| 国产成人毛片| 欧美福利在线| 精品国产美女福到在线直播| 国产精品免费入口视频| 日韩欧美色综合| 欧美亚洲第一页| 人妻出轨无码中文一区二区| 狠狠色狠狠色综合久久第一次| 伊人久久婷婷| 三上悠亚一区二区| 亚洲男人的天堂网| 欧美精品三级在线| 亚洲无码视频一区二区三区| 久久一级电影| 久久久久久尹人网香蕉 | 日韩大乳视频中文字幕| 伊在人亚洲香蕉精品播放| 国产免费黄| 依依成人精品无v国产| 国产美女精品一区二区| 91视频国产高清| 9999在线视频| 国产精品尤物铁牛tv| 日韩精品少妇无码受不了| 亚洲无线一二三四区男男| 欧美视频在线播放观看免费福利资源| 99久久精品美女高潮喷水| 99热这里只有免费国产精品| 香蕉伊思人视频| 亚洲日本在线免费观看| 色AV色 综合网站| 色妞www精品视频一级下载| 欧美日本视频在线观看| 日韩精品久久无码中文字幕色欲| 久久semm亚洲国产| 欧美日韩一区二区在线免费观看 | 亚洲大学生视频在线播放| 毛片免费试看| 在线观看国产精品日本不卡网| 国产毛片不卡| WWW丫丫国产成人精品| 夜精品a一区二区三区| 日韩成人在线视频| 日韩精品免费在线视频| 无码国产伊人| 亚洲三级a| 视频一区视频二区中文精品| 色综合天天娱乐综合网| 国产极品粉嫩小泬免费看| 99er这里只有精品| 国产亚洲欧美在线中文bt天堂| 欧美成人二区| 日本欧美视频在线观看| 日韩在线欧美在线| 亚洲最大情网站在线观看| 日韩国产一区二区三区无码| 又黄又爽视频好爽视频| 国产噜噜在线视频观看| 欧美视频免费一区二区三区| 一区二区三区四区在线| 最新精品久久精品| 国产美女一级毛片| 97se综合| 亚洲va欧美ⅴa国产va影院| 精品午夜国产福利观看| 99草精品视频| 国产高清不卡| 色综合成人| 国产麻豆精品久久一二三|