?

視圖在實踐中的應用

2016-05-19 13:34劉新亮孫忠林
電腦知識與技術 2016年7期
關鍵詞:視點視圖數據庫

劉新亮++孫忠林

摘要:共享數據是存在安全性問題的,由于數據量很大,實際應用中用戶只關心部分數據,因此,如何提高數據共享、保證數據安全性和提升軟件系統運行效率在實踐應用中是復雜的。該文結合實際,給出視圖的一種應用方法,應用表明能解決數據共享、數據安全和提升軟件系統運行效率的問題。

關鍵詞:視圖;數據庫;權限;緩存;視點

中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2016)07-0019-02

The Application of View in Practice

LIU Xin-liang,SUN Zhong-lin

(Shandong University of Science and Technology,Qingdao 266590,China)

Abstract: Shared data exits security problems.And because the volume of date is very large,users usually only concern parts of it. How to improve data sharing, how to ensure the data security,and how to make the software system run efficiently are complicated in real life. With practice,this paper provides an application method of view. The practice shows that it can solve the problems of data sharing,data security and improving of software system operating efficiency.

Key words: view; database; jurisdiction; cache; viewpoint

1 概述

視圖是數據庫系統提供給用戶以多種角度觀察數據庫中數據的重要機制。視圖是從一個或多個基本表(或視圖)導出的表,它是一個虛表。數據庫中只存放視圖的定義,而不存放視圖對應的數據,這些數據仍存放在原來的基本表中。

目前,視圖的應用十分普遍。對于需要多次固定查詢數據庫的操作,可以通過設計視圖來簡化查詢;對于某些重要數據或者隱私數據,可以通過視圖來限制對物理表的訪問,從而保證數據的安全;分布式數據庫中,通過引用視圖可以將不同服務器的表格簡單的連接起來。以當前流行的框架SSH為例,視圖的使用還可以提升其訪問數據庫的效率。

2 視圖應用的方法

2.1集中用戶視點

隨著當前互聯網的發展,用戶信息越來越多,存儲到數據庫的數據量越來越大,對于數據的管理越來越復雜。數據庫表格的設計往往不能滿足所有角色的需求,因為不同的角色,關心的數據屬性也是不同的,很可能這些數據屬性會分布在不同的數據庫表格中。在分布式數據庫中,某角色可能還需要集成分布在不同數據源的數據,遇到這種情況,應用視圖可以很好地解決相應的問題。物理表結構的變動對于已經開發的項目會帶來不可估量的影響,而應用視圖,可以在不改變表結構的情況下,任意組合數據庫物理表格的信息,這就可以很方便地為不同的角色設計不同的視圖。

在數據字段比較多的表格中,可能會存在某角色只關心其中的幾個屬性,如果將所有的屬性全部列舉出來,那么就會造成用戶的視點不集中。用戶需要自己去過濾不需要的信息,使得系統的友好度降低。利用視圖,可以將該角色感興趣的屬性集合在一起,從而提升系統的友好度。

在UML建模中,可以根據系統類圖利用數據庫正向工程生成物理表,這就使得一個物理表格往往是設計過程中抽象的一個類。因此,物理表格存放的信息只是一個抽象類的信息。例如,客戶信息表中只存放客戶信息,而不會存放收費信息。那就可能會存在某角色需要不同表格中的信息。如果單獨為該角色設計表格,就會使數據冗余。而利用視圖,可以將不同表格中的數據連接在一起,集中顯示給用戶。由于視圖本質是數據庫的查詢語句,視圖展示的內容仍然存放在物理表中,因此,數據庫的數據并沒有冗余。使用視圖,可以查詢不同物理表格中的數據而不冗余數據。

在分布式數據庫中,分布式分區視圖能使來自一個或是多個SQL Server數據庫中的數據簡潔的連接起來,使用戶可以查詢不同數據源的數據。

2.2 控制權限,增強安全性

在項目實踐過程中,權限的控制關系到數據安全,因此,權限的控制非常重要。軟件系統中特定的角色只能操作部分數據,如果角色的權限過高,那么軟件系統就會相當不安全??蛻羧绻軌虿僮髯约旱氖召M信息,那么,軟件系統將完全無法應用。利用視圖,可以將用戶與物理表格隔離,從而可以使對數據權限的控制更加簡便、準確。視圖隱藏了物理表格的表結構,從而大大增強了安全性,用戶只能看到視圖提供的數據。使用視圖,還可以在不改變物理表結構的情況下,為新增的角色定制新的視圖,通過授予用戶視圖的權限來控制對物理表的訪問,使得軟件系統在保證安全的前提下,可擴展性得到了保障。

2.3 減小軟件系統緩存

數據庫內的物理表格之間會有各種關聯,通過主外鍵關系來進行結構化表格之間信息的共享。而以目前流行的框架SSH為例,Hibernate在數據持久化過程中,會將結構化的數據庫的表格對象化,利用面向對象的方法來處理數據庫表格,因此,當表格中存在外鍵時,那么在Hibernate的實體層讀取出的實體會包含該外鍵對象的所有信息,如果外鍵對象中仍有外鍵,那么還會繼續讀取。隨著數據量的增大,需要讀取的數據量就會急劇增長,從而降低了對數據庫的訪問效率。而如果使用視圖,打斷物理表格之間的關聯,那么,Hibernate讀取的實體只有視圖中的屬性,而不會讀取其他屬性,軟件系統需要的緩存就會減小,使得軟件系統性能得到優化。

3 視圖應用的實踐

本文結合作者的實踐經歷,將結合視圖在抄表收費系統中的應用解釋視圖如何應用到軟件系統中。

3.1視圖集中視點的應用

在抄表收費系統中,根據權限分配了許多角色。其中,客戶檔案管理員只需要管理客戶信息表中的信息,而抄表員抄表時同時需要客戶信息表和水表卡信息表中的客戶編號、客戶姓名、手機號、客戶地址、水表卡編號、抄表方式和抄表底數,客戶信息表如表1,水表卡信息表如表2。抄表員需要的數據分布在多個表格中,如果此時專門設立一張物理表來適應抄表員的需求,會使得數據庫數據冗余,軟件系統訪問數據庫效率降低。此時,可以通過建立視圖來解決該問題。如表3,將抄表員所需要的分布在各個表中的信息通過建立視圖的方法,集中到一起,抄表員可以根據視圖中的信息對客戶進行抄表工作。此視圖的應用,體現了視圖在集中用戶視點、查詢多表信息方面的作用。

3.2視圖控制權限的應用

在抄表收費系統中,客戶可以查詢自己在客戶信息表中的客戶編號、客戶姓名、客戶地址、手機號、水費賬戶和收費信息表中的上月繳費金額、滯納金金額信息??蛻粜畔⒈砣绫?所示,收費表如表4所示。但是,客戶并沒有修改自己的收費信息的權限。此時,建立一張視圖,就可以將兩個物理表中的信息合并展現給客戶,授予客戶對客戶繳費視圖的訪問權限,通過利用視圖將客戶與收費信息表進行隔離,而且作為多表視圖,只允許查詢操作,并不允許修改、增加、刪除等操作。因此,通過應用視圖,解決了軟件系統中權限控制的問題。建立的客戶繳費視圖如表5所示。

3.3視圖減小軟件系統緩存的應用

在抄表收費系統中,水表卡信息表中包含外鍵客戶編號和水表編號,水表卡信息表如表2所示,客戶信息表如表1所示,水表信息表如表6所示。那么,在Hibernate讀取的實體中,水表卡的實體對象中客戶信息表和水表信息表分別作為水表卡的一個子對象出現。因此,客戶信息表和水表信息表中的全部屬性都會讀取出來,而客戶信息表中又包含客戶狀態、優惠類型等外鍵,水表信息表中又包含水表狀態等外鍵,這些外鍵所對應的屬性也都需要將實體讀取出來。在數據量小的情況下,運行效率沒有太大差別,而當數據量增大時,就會大大的消耗不必要的緩存,從而使軟件系統的運行效率降低。如果建立一個視圖,將客戶信息表和水表中的主鍵作為視圖的屬性,系統在讀取實體的時候,只是讀取了視圖中的主鍵,而不會繼續讀取客戶的其他屬性,這樣,就減輕了讀取實體時產生的緩存消耗,使得系統在數據量大的情況下仍然可以較快的訪問數據庫。

4 結束語

本文介紹了視圖在集中視點、控制權限和減小軟件系統緩存方面的作用,希望該文能讓讀者了解如何應用視圖去解決上述問題。

參考文獻:

[1] 陳增祥.基于SQL Server視圖的數據庫安全模型的研究[J]. 電腦與電信,2012 (Z1):51-52.

[2] 劉曉娜,杜永文,藺國梁. 移動數據庫中組合視圖對隱私保護的應用[J]. 計算機光盤軟件與應用,2013(13):13-14.

[3] 王珊,薩師煊. 數據庫系統概論[M]. 北京:高等教育出版社,2014.

[4] 涂云杰. 視圖在數據庫安全中的應用[J]. 電子測試,2015(8):81-82.

[5] 張賀,胡婕,劉夢赤. 信息網數據庫管理系統的視圖設計與實現[J]. 小型微型計算機系統,2015(10):2203-2208.

[6] 李強. 數據庫中視圖的應用[J].才智,2012(28):55.

[7] Fritchey, Grant.Dynamic Management Views in Azure SQL Database v12[C].SQL Server Pro,2015.

[8] Tamir Tassa,Ehud Gudes.Secure distributed computation of anonymized views of shared databases[J].ACM Trans.Database Syst.,2012,37(2):1.

猜你喜歡
視點視圖數據庫
視圖
Y—20重型運輸機多視圖
SA2型76毫米車載高炮多視圖
視點
兩會視點
尋找新的視點
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合