• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      論數(shù)據(jù)庫的可視化操作

      2019-05-24 14:12陳鋒朱建風(fēng)
      電腦知識與技術(shù) 2019年7期
      關(guān)鍵詞:運算數(shù)據(jù)庫動作

      陳鋒 朱建風(fēng)

      摘要:使用計算機輔助工程,利用計算機數(shù)據(jù)庫、軟件開發(fā)、圖形化技術(shù)等專業(yè)知識技能,通過實踐使用者的需求,將數(shù)據(jù)庫SQL語句間接的應(yīng)用計算機操作,供使用者人性化的應(yīng)用。避免數(shù)據(jù)庫直接操作SQL語句的攻擊和煩瑣應(yīng)用,提高使用者的工作效益、數(shù)據(jù)使用價值及數(shù)據(jù)庫安全性。

      關(guān)鍵詞:數(shù)據(jù)庫;SQL語句;運算;動作;可視化操作

      中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A

      文章編號:1009-3044(2019)07-0005-03

      1 引言

      隨著互聯(lián)網(wǎng)技術(shù)和大數(shù)據(jù)的高速發(fā)展,數(shù)據(jù)庫驅(qū)動的WEB應(yīng)用得到廣泛的普及。目前,很多單位和機構(gòu)都是基本架構(gòu)一個數(shù)據(jù)庫和N個面向用戶業(yè)務(wù)的WEB交互網(wǎng)頁,通過WEB頁面后臺腳本來獲取用戶交互界面提供的特定數(shù)據(jù)信息。但由于系統(tǒng)軟件研發(fā)人員在實現(xiàn)系統(tǒng)模塊功能時,往往會忽悠或輕視系統(tǒng)的安全性,在系統(tǒng)中留有大量的GUG (漏洞),給各業(yè)務(wù)系統(tǒng)留下了很大的安全隱患。

      可視化的意義,不但展現(xiàn)全貌,增強理解、便于對話、探索、交流,還簡化復(fù)雜性,增強審視。繼而,數(shù)據(jù)庫的可視化操作是使用者得以接受的可行性方案和最佳選擇。

      2 可視化操作

      2.1 數(shù)據(jù)庫連接池

      數(shù)據(jù)庫的連接池專門負(fù)責(zé)分配、管理和釋放數(shù)據(jù)庫的連接。它允許應(yīng)用程序重用現(xiàn)有的數(shù)據(jù)庫連接,而不必重新建立一個全新的連接,并釋放出最大空閑的空間給更多的數(shù)據(jù)庫來連接,因為沒有釋放數(shù)據(jù)庫的連接。因此,該技術(shù)可以顯著提升數(shù)據(jù)庫操作的性能。

      在Java語言程序開發(fā)中,由于它采用開源Java數(shù)據(jù)庫連接池,管理的是享元模式。因此,簡單的連接池設(shè)計思路如下:

      (1)連接池配置屬性“DBbean”:主要存儲一些可以配置的屬性;

      (2)連接池接口“IConnectionPool”:主要定義一些獲取連接的基本方法;

      (3)實現(xiàn)接口“ConnectionPool”:對連接池接口的操作進(jìn)行具體的實現(xiàn),并添加一些其他方法;

      (4)連接池的管理“ConnectionPoolManager”:主要是管理全部的不同的連接池,全部的連接都是通過這個連接池來獲得的連接;

      (5)另外還有幾個測試類和連接信息模擬的類,這里就不進(jìn)行XML和配置文件信息的讀取。

      2.2 運算片段

      2.2.1 交集比對

      交集比對的前提條件必須是兩張及兩張以上的數(shù)據(jù)表,數(shù)據(jù)表是通過數(shù)據(jù)庫連接池獲取。看似兩步很簡單的過程,實際需要后臺開發(fā)語言將前端展現(xiàn)的表,運用在開發(fā)語言后臺編譯中,規(guī)范定義這些數(shù)據(jù)控制語言,對控制語言歸類建立,且把表變量化。

      如JAVA中取交集的常用方法是retainAll,有兩個集合newCoures、oldCourses,怎樣判斷這兩個集合是否包含有相同的對象或元素,通常都使用retainAll方法:oldCourses.retainAll(newCoures)。如果存在相同元素,oldCourses中僅保留相同的元素。如果不存在相同元素,oldCourse會變?yōu)榭?。如果有多個集合oldCourses1、oldCourses2、oldCourses3等,分別與newCourses比較,應(yīng)該將newCourses統(tǒng)一放在后面,像這樣:

      oldCourses1.retainAll(newCoures);

      oldCourses2.retainAll(newCoures);

      oldCourses3.retainAll(newCoures);

      public class Test {

      public static void main(String[] args) {

      List list1 = new ArrayList();

      List list2 = new ArrayList();

      List list3 = new ArrayList();

      for (inti = 0; i< 20; i++) {

      list1.add(i+"");

      if(i%2 == 0) {

      list2.add(i+"");

      }

      list3.add(i+"@");

      }

      // list1 與 list2 存在相同元素,list1集合只保留list2中存在的元素

      list1.retainAll(list2);

      if(list1.isEmpty()) {

      System.out.println("不包含");

      } else {

      System.out.println("包含");

      }

      System.out.println(list1);

      // list1 與 list3 不存在相同元素,list1集合變?yōu)榭?/p>

      list1.retainAll(list3);

      if(list1.isEmpty()) {

      System.out.println("不包含");

      } else {

      System.out.println("包含");

      }

      System.out.println(list1);

      }

      }

      2.2.2 條件碰撞

      條件碰撞的前提條件必須是兩張及兩張以上的數(shù)據(jù)表,數(shù)據(jù)表是通過數(shù)據(jù)庫連接池獲取。較為復(fù)雜的條件碰撞方法,是需要根據(jù)使用者的輸入條件來判斷某個參數(shù)是否合法,如果合法的話,才能當(dāng)作過濾的條件,常規(guī)做法就是在查詢SQL語句中賦值給一個字符串變量,然后再根據(jù)判斷條件動態(tài)的拼接where條件來進(jìn)行查詢,通過不確定的字段名稱,而產(chǎn)生的SQL字符串拼接,例如有家公司要做一個系統(tǒng),需要支持多種語言,這個時候就要將語言信息存儲在數(shù)據(jù)庫當(dāng)中。然后,再根據(jù)客戶所選擇的查詢對應(yīng)語言字段來進(jìn)行具體顯示。

      考慮到系統(tǒng)的性能,可能會使用存儲過程來減少網(wǎng)絡(luò)通信量和提高響應(yīng)的速度。那么,在存儲過程中,通常會傳入一個參數(shù),然后再根據(jù)這個參數(shù)來查詢指定的語言字段,當(dāng)把SQL語句拼好,最后傳給數(shù)據(jù)庫執(zhí)行,具體實現(xiàn)的寫法如下:

      DECLARE @sqlNVARCHAR(100);

      DECLARE @paraNVARCHAR(20);

      SET @para = 'Chinese';

      SET @sql = 'select ID, ' + @para + ' from SysLanguage'

      print @sql

      exec(@sql)

      2.2.3 數(shù)據(jù)合并

      數(shù)據(jù)合并的前提條件必須是兩張及兩張以上的數(shù)據(jù)表,數(shù)據(jù)表是通過數(shù)據(jù)庫連接池獲取。如何進(jìn)行數(shù)據(jù)合并工作,大數(shù)據(jù)時代的到來,讓數(shù)據(jù)量級的增加不可與以往相比,而且數(shù)據(jù)往往分布在數(shù)據(jù)庫的不同表中,想把這些數(shù)據(jù)變成有價值的信息,需要進(jìn)行數(shù)據(jù)合并處理的工作,而這個過程并不容易。

      面對一堆無序的數(shù)據(jù)時,很多時候很難有效地開展工作,需要對不同數(shù)據(jù)進(jìn)行數(shù)據(jù)收集、整理、清洗,加載到一個新的數(shù)據(jù)表中,為數(shù)據(jù)使用者提供一個統(tǒng)一的數(shù)據(jù)視圖,這樣才便于管理,而這個過程就是數(shù)據(jù)整合。數(shù)據(jù)整合的過程自然是少不了數(shù)據(jù)合并,無論格式或大小如何,都能隨時通過重復(fù)數(shù)據(jù)刪除,驗證,標(biāo)準(zhǔn)化和豐富數(shù)據(jù),干凈,高質(zhì)量的數(shù)據(jù)就此生成,可以用于數(shù)據(jù)訪問,數(shù)據(jù)報告和數(shù)據(jù)分析。

      數(shù)據(jù)合并是通過使用者對原來的數(shù)據(jù),通過使用者對新業(yè)務(wù)需求的掌握和理解,將原有的數(shù)據(jù)進(jìn)行提煉,卻棄糟粕、取其精華的過程。

      數(shù)據(jù)合并主要是將設(shè)置的條件轉(zhuǎn)換為特定數(shù)據(jù)庫的SQL語句,并執(zhí)行這些語句。數(shù)據(jù)合并所涉及的關(guān)鍵技術(shù)包括幾個方面,異構(gòu)數(shù)據(jù)的連接方式、自增主鍵的合并處理、數(shù)據(jù)覆蓋方式。

      2.2.4 差集比對

      通常來說A、B是兩個集合,則全部屬于A且不屬于B的元素所構(gòu)成的集合,叫作集合A減集合B或者集合A與集合B之差,依此類推,對于集合A、B,我們把集合x∣x∈A,且x?B叫作A與B的差集。在做差集比對前,輸入的數(shù)據(jù)表(兩張或兩張以上)是具備單表字段的條件篩選處理,且是可視化操作按鈕來實現(xiàn)。在此之后,才使用可視化差集比對按鈕控件來對前面數(shù)據(jù)表處理的結(jié)果數(shù)據(jù),進(jìn)行差集比對,最終形成差集比對的結(jié)果。

      如果開發(fā)語言中需要對其實現(xiàn)差集,可以參考如下腳本編譯:

      兩個集合R和S的差集通常表述成R-S,其運算結(jié)果也是一個與R和S同結(jié)構(gòu)的集合,其成員是屬于R但不屬于S的元組的集合。

      2.2.5 數(shù)據(jù)清洗

      數(shù)據(jù)清洗的前提條件是一張數(shù)據(jù)表的輸入,不能對兩張及以上數(shù)據(jù)表進(jìn)行清洗處理,數(shù)據(jù)表是通過數(shù)據(jù)庫連接池獲取。數(shù)據(jù)清洗原理是利用有關(guān)技術(shù)如數(shù)理統(tǒng)計、數(shù)據(jù)挖掘或預(yù)定義的清理規(guī)則將臟數(shù)據(jù)轉(zhuǎn)化為滿足數(shù)據(jù)質(zhì)量要求的數(shù)據(jù),清洗需要經(jīng)歷兩個步驟,第一個步驟是數(shù)據(jù)去重,首先是去重字段,然后再去掉重復(fù)值;第二個步驟才是數(shù)據(jù)清洗,清洗的原則如身份證有小寫字母的,全部自動改為大寫,身份證不符合十八位的全部干掉等。

      數(shù)據(jù)清洗的方法一般來說,是將數(shù)據(jù)庫精簡以除去重復(fù)的記錄,且使剩余的部分轉(zhuǎn)換成標(biāo)準(zhǔn)的可接收的格式過程。標(biāo)準(zhǔn)模型則是將數(shù)據(jù)錄入到數(shù)據(jù)清理處理的容器中,通過一系列的步驟進(jìn)行“清理”數(shù)據(jù),然后在以期望的格式輸出清理過的數(shù)據(jù)。數(shù)據(jù)清理從數(shù)據(jù)的唯一性、一致性、完整性、適時性、有效性、準(zhǔn)確性來處理數(shù)據(jù)的越界值、丟失值、重復(fù)數(shù)據(jù)、不一致代碼等問題。

      2.2.6 數(shù)據(jù)排序

      數(shù)據(jù)排序的前提條件是一張數(shù)據(jù)表的輸入,不能對兩張及以上數(shù)據(jù)表進(jìn)行排序處理,數(shù)據(jù)表是通過數(shù)據(jù)庫連接池獲取。寓意是將一張數(shù)據(jù)庫表通過可視化界面操作條件查詢出來的數(shù)據(jù)結(jié)果,連通后使用數(shù)據(jù)排序運算法則,對其產(chǎn)生的臨時結(jié)果進(jìn)行排序,排序的原則是所有字段可以任意挑選和組合,然后再按排序產(chǎn)生結(jié)果數(shù)據(jù)集,排序有升序和降序。

      數(shù)據(jù)排序是按一定的順序?qū)?shù)據(jù)進(jìn)行排列,以方便使用者通過預(yù)覽數(shù)據(jù)來發(fā)現(xiàn)一些明顯的特征或趨勢,便于找到解決問題的線索。除此之外,排序還有助于對數(shù)據(jù)進(jìn)行檢查和糾錯,以及為重新歸類或分組等提供便利。在特點場景中,排序本身就是分析的目的之一,例如了解究竟誰是中國汽車生產(chǎn)的三巨頭,對于汽車生產(chǎn)廠商而言不論它是作為伙伴還是競爭者,都是很有用的信息。

      好的排序方法可以有效提高排序速度,提高排序效果。在計算機領(lǐng)域,主要使用數(shù)據(jù)排序的方法,根據(jù)占用內(nèi)存的方式不同,一般可以分為兩大類,即內(nèi)部排序方法、外部排序方法。

      2.2.7 數(shù)據(jù)篩選

      大數(shù)據(jù)環(huán)境下,數(shù)據(jù)量的快速積累,若想要分析出海量數(shù)據(jù)所蘊含的價值,并篩選出具有價值的數(shù)據(jù),相當(dāng)重要。然而數(shù)據(jù)篩選在整個數(shù)據(jù)處理中,又是處于至關(guān)重要的地位上。數(shù)據(jù)量的增加及結(jié)構(gòu)的復(fù)雜化,這使得面向大數(shù)據(jù)的數(shù)據(jù)篩選必然會耗費很大的資源。因此,想要快速準(zhǔn)確的篩選出有價值的數(shù)據(jù),那么選擇合適的算法就十分必要。然而每個算法都有著自己特定的環(huán)境,大數(shù)據(jù)環(huán)境下,數(shù)據(jù)復(fù)雜度的增加提升了選擇合適算法的困難;其次,大數(shù)據(jù)的巨大數(shù)據(jù)量也使得通過單一算法分析出有價值的數(shù)據(jù)是越來越困難。

      編輯數(shù)據(jù)篩選中數(shù)據(jù)挖掘的算法分析,主要有三種,分類算法分析、聚類算法分析、關(guān)聯(lián)算法分析。關(guān)聯(lián)算法的數(shù)據(jù)挖掘通常會分為兩步,第一步就是在集合中尋找出現(xiàn)頻率較高的項目組,這些項目組相當(dāng)于整體記錄而言必須達(dá)到一定水平。通常會認(rèn)為設(shè)置要分析實體間的支持度,如果兩實體間支持度大于設(shè)定值,那么稱二者為高頻項目組。第二步是利用第一步找出的高頻項目組來確定二者間的關(guān)系,這種關(guān)系通常由二者間的概率表示。即計算A事件出現(xiàn)時B事件出現(xiàn)的概率,公式為(A與B同時出現(xiàn)的概率)/(A出現(xiàn)的概率),當(dāng)比值滿足既定的概率時,才能說明兩事件相關(guān)聯(lián)。關(guān)聯(lián)分析能夠從數(shù)據(jù)庫中找出已有數(shù)據(jù)間的隱含關(guān)系,從而利用數(shù)據(jù)獲得潛在價值。

      2.2.8 分類統(tǒng)計

      分類統(tǒng)計兼有兩方面(分與合)的含義,是將總體區(qū)分為性質(zhì)相異的若干部分,將性質(zhì)相同的許多個體合成一個類。

      統(tǒng)計整理的任務(wù)是使零散數(shù)據(jù)系統(tǒng)化,但怎樣使數(shù)據(jù)系統(tǒng)化,本著什么去歸類,這就取決于統(tǒng)計分類。在取得完整、正確的統(tǒng)計數(shù)據(jù)前提下,統(tǒng)計分類的優(yōu)劣是決定整個統(tǒng)計數(shù)據(jù)研究成敗的關(guān)鍵,它直接關(guān)系到統(tǒng)計分析數(shù)據(jù)的質(zhì)量。

      例如:將一所學(xué)校的人,根據(jù)老師、學(xué)生、男性、女性、年齡、成績、特點等標(biāo)識,進(jìn)行分類統(tǒng)計。

      目的就是保持分類內(nèi),統(tǒng)計數(shù)據(jù)的一致性和組之間數(shù)據(jù)的差異性,便于運用所有的統(tǒng)計方法來研究現(xiàn)象的數(shù)量表現(xiàn)和數(shù)量關(guān)系,從而正確地認(rèn)識事物的本質(zhì)規(guī)律。

      本案在做分類統(tǒng)計前,輸入的數(shù)據(jù)表(一張)是具備單表字段的條件篩選處理,且是可視化操作按鈕來實現(xiàn)。

      2.2.9 SQL編程

      SQL可視化編程針對數(shù)據(jù)庫表,采用系統(tǒng)開發(fā)的SQL編譯控制臺,對其編寫SQL語言,由系統(tǒng)控制臺轉(zhuǎn)譯成數(shù)據(jù)庫可識別的SQL命令,并把執(zhí)行的結(jié)果和情況,由SQL編譯控制臺對其接收,將結(jié)果和情況可視化的反饋給使用者。此功能并非是使用數(shù)據(jù)庫或第三方數(shù)據(jù)庫工具,通過直接連接數(shù)據(jù)庫后編輯SQL語句而執(zhí)行的結(jié)果。

      2.3 結(jié)果處理片段

      通過運算片段,將運算片段執(zhí)行的結(jié)果,在結(jié)果區(qū)域內(nèi)展現(xiàn)出來。在出結(jié)果前,需要將具體的運算進(jìn)行分類。在以上的運算中,有針對一張表的運算,也有針對兩張表的運算,更有針對兩張表以上的運算。那么結(jié)果出來之后,很有可能再選擇運算進(jìn)行處理,然后再出執(zhí)行結(jié)果,這一問題該如何處理呢?所以,需要將數(shù)據(jù)表、數(shù)據(jù)表操作、運算、結(jié)果進(jìn)行分析。

      考慮到以上問題,需要對運算的種類進(jìn)行分類和定義,可以看出,一張數(shù)據(jù)表可視化操作的運算,定義為單動作運算(有數(shù)據(jù)清洗、數(shù)據(jù)排序、數(shù)據(jù)篩選、分類統(tǒng)計);兩張數(shù)據(jù)表及兩張數(shù)據(jù)表以上的運算,定義為多動作運算(有交集比對、條件碰撞、數(shù)據(jù)合并、差集比對)。另外一種就是獨立的SQL編程控制臺,此定義是不涉及運算的定義,僅僅為使用者提供通用編譯SQL語言的應(yīng)用平臺而已。

      那么,單動作運算所出的結(jié)果同樣可以成為另外一個動作運算的輸入,也有可能是另外一個多動作運算的輸入,在這些不同的組合中,又有多少規(guī)律可循了?

      首先,任何單動作和多動作的處理和執(zhí)行,歸納總結(jié)均是一端輸入,中間是動作處理,另一端是輸出的結(jié)果,如下圖1所示。

      再有就是結(jié)果成為新的輸入端,使用動作后成為新的結(jié)果,如下圖2所示。

      如果將上圖1和上圖2進(jìn)行合并,最終的規(guī)律如下圖3所示。

      由上圖3可以看出,核心是動作前后條件的處理,由此可以得出,針對單動作的輸入,只能有一個條件輸入,兩個條件的輸入就會成為多動作,最終動作執(zhí)行的結(jié)果就是唯一的一個。

      3 結(jié)論

      數(shù)據(jù)庫可視化操作如今成為很多項目的必備功能,是數(shù)據(jù)探索以及數(shù)據(jù)表現(xiàn)的重要形式。然而,對于數(shù)據(jù)庫可視化操作的開發(fā)者來說,仍然有很多挑戰(zhàn)需要去面對。迎接這些挑戰(zhàn)的方法,必是很多專業(yè)的數(shù)據(jù)庫可視化操作開發(fā)者不愿意讓別人知道的秘密。

      數(shù)據(jù)庫可視化操作可以產(chǎn)生一些分析結(jié)果,不過需要指出的是,數(shù)據(jù)庫可視化操作是一個輔助分析的工具,而不是數(shù)據(jù)分析的替代,更不是統(tǒng)計的替代。不過,要得出存在這些差異和相關(guān)性的可靠結(jié)論,還需要運用統(tǒng)計學(xué)的方法。要對數(shù)據(jù)庫中的數(shù)據(jù)真正的掌握和了解,還需要有分析的技能以及專業(yè)的知識。

      參考文獻(xiàn):

      [1] 劉娜,奚玲,岳春生.基于模板的跨平臺可視化界面開發(fā)系統(tǒng)設(shè)計[J].電子科技,2017(8).

      [2] 林子雨,賴永炫,林琛,等.云數(shù)據(jù)庫研究[J].軟件學(xué)報,2012(2).

      [3] 黃鋒,吳華瑞.基于J2EE應(yīng)用的SQL注入分析與防范[J].計算機工程與設(shè)計,2012(10).

      【通聯(lián)編輯:代影】

      猜你喜歡
      運算數(shù)據(jù)庫動作
      重視運算與推理,解決數(shù)列求和題
      有趣的運算
      動作描寫要具體
      “整式的乘法與因式分解”知識歸納
      沂源县| 赫章县| 东至县| 德惠市| 革吉县| 绥宁县| 正镶白旗| 富平县| 竹山县| 宁南县| 钟祥市| 临城县| 遂川县| 衡东县| 西和县| 伊宁市| 秦皇岛市| 光泽县| 滨州市| 河源市| 富蕴县| 历史| 缙云县| 吉水县| 东明县| 宁津县| 广平县| 德令哈市| 安岳县| 延边| 汝州市| 龙南县| 连云港市| 镇原县| 伊春市| 芜湖市| 改则县| 霍邱县| 合阳县| 水富县| 许昌县|