4.3 規範的設計和資料查詢處理
4.3.3 Data Handling Policy
國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
36
Condition RequestAccessVerify Policy
圖 六、透過 sameAs 限制實體相同的概念
在上述的 SWRL 規則中,假如使用者的資料使用情境符合 ACP 中所規範的 使用情境,則會將 Request 的 isEmpowered 關係所對應到的 BooleanValue 設定為 1,並授權可以使用的查詢模式?qt,最後啟動 DHP 去整合委外資料。而如果 BooleanValue 設定為 0,代表使用者不能使用資料,則會拒絕使用者查詢。
4.3.3 Data Handling Policy
DHP 負責讓資料的使用可以滿足資料擁有者的隱私偏好。首先將使用者的使 用
情境與 DHP 中資料擁有者設定的隱私偏好中的使用情境相比,假如兩者相同才 會從委外資料庫中整合相對應的資料;假如兩者並不相同則相對應的資料並不會 被整合。透過上述的概念讓委外資料的使用滿足於資料擁有者的隱私偏好。
企業在蒐集資料擁有者資料時,必須將設定隱私偏好的模板一併交給資料擁 有者,而資料擁有者將個人資料交給企業時,會一併將設定的隱私偏好交給企業,
而企業在使用資料前必須參考資料擁有者的隱私偏好,在符合的情況下才能使用 資料。本研究參考 P3P 裡的要素來建置隱私偏好中的使用情境要素,共有四項:
‧
DataUser、Action、Purpose 和 Location。每一個資料擁有者可以替自己的資料設 定一個以上的使用情境,以因應不同的使用情境揭露不同程度的資料,舉例來說 當醫生基於診療目的下可揭露 ID、Name、Gender、ZIP 和 Disease 這五個欄位,
而當醫療研究人員基於研究目的下只能揭露 Gender、ZIP 和 Disease 這三個欄位。
hasCondition boolean value isEmpowered
SQL String hasSQL
DataUser Action Location Data
hasPartOf 代表資料使用情境和使用情境要素。此外,DHP 使用 hasSQL 這個關 係將 DataPolicy 對應到 SQL String,SQL String 是兩個 SQL 查詢式構成,並且利 用其來整合委外資料。SQL 查詢式是用來查詢任一子資料庫中的查詢式,如下 所示:SELECT `ID` , `Name` , `Gender` , `DOB` FROM `p1` WHERE `IndexKey` =1
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
38
資料委外後,會將資料庫分成兩個以上的子資料庫,因此 SQL String 會是兩個 SQL 查詢式以上的結合,而在本研究中只分成兩個子資料庫,如下所示:
SELECT `ID` , `Name` , `Gender` , `DOB` FROM `p1` WHERE `IndexKey` =1 and
SELECT `ZIP` , `Disease` , `Doctor` , `Cholesterol` FROM `p2` WHERE
`IndexKey`=101
既有的資料委外中,對於分割處理的資料必須利用 IndexKey 值的對應來整 合資料。在本研究的情境中租用的雲端資料庫服務屬於 COMMUNICATING SERVERS,因此也需要額外的 IndexKeyTable 去紀錄 IndexKey 值的對應關係,
而本研究則將 IndexKey 值的對應記錄在 SQL String 當中,如同上述的 SQL String 裡的兩個 SQL 查詢式中都指定 IndexKey 值,並且因為 COMMUNICATING SERVERS 所以 IndexKey 值並不相同。此外,一個資料擁有者可能會對一筆資料 設定一個以上的隱私偏好,代表不同使用情境可以揭露的不同程度的資料,因此 在 SQL 查詢式中根據不同的使用情境而調整 SQL 查詢式中的查詢欄位。
DHP 的 SWRL 規則如下所示,它會比對使用者的使用情境與 DataPolicy 的 使用情境,並且將比對結果相同 DataPolicy 所屬的 SQL String 全數列出。系統再 根據列出的 SQL String 從委外的子資料庫中整合出完整資料庫的資料。在此完整 資料庫的資料並非全數都是使用者所需,必須在查詢改寫後經由使用者的查詢條 件挑選後才是使用者所需的資料。
Request(?r) ∧ hasCondition(?r, ?c) ∧ Condition(?c) ∧ DataPolicy(?dp)
∧hasCondition(?dp, ?dc) ∧ Condition(?dc) ∧ sameAs(?c, ?dc) ∧ hasSQL(?dp, ?s)
→ sqwrl:select(?s)
此外,不論使用者被授權使用 SBQ 或是 PBQ,DHP 只會根據使用者的使用情境
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
39
挑選該被整合的委外資料,SBQ 或 PBQ 的資料揭露限制會在 DRP 中處理。
在既有資料委外的研究[4],資料整合的處理不能於資料庫服務的伺服器中 進行,以免資料庫服務提供者藉機窺視資料。如圖三所示,本研究中資料是儲存 在雲端資料庫服務中,而資料查詢介面是由資料控制者如企業所建置。由於企業 會被允許觀視資料,因此整合資料的處理會在資料查詢介面中進行,也就是資料 並不會在委外資料庫中被整合,而是直到資料到達資料查詢介面的 Server 後才會 進行,經由資料查詢和 DRP 的推論後才將資料送往使用者所在的 Client 進行揭 露。