Mô hình đƣợc đề xuất bởi hai tác giả Jajodia và Sandhu năm 1991. Mô hình là sự mở rộng mô hình quan hệ chuẩn, quan tâm các phân lớp an toàn và hình thức hoá mô hình mở rộng.
3.8.1. Quan hệ đa mức
Để giải quyết vấn đề dữ liệu đa mức, mô hình này mở rộng mô hình quan hệ chuẩn. Mô hình mà đƣợc mở rộng cùng với sự phân chia an ninh, đƣợc đƣa ra nhƣ một quan hệ đa mức. Hệ đa mức bao gồm hai phần sau:
(1) Sơ đồ hệ đa mức dạng độc lập R(A1,C1,…,An,Cn,TC), trong đó mỗi Ai là một biến dữ liệu đƣợc xác định qua tên miền Di, mỗi Ci là một thuộc tính phân chia cho Ai, và TC là thuộc tính của cả bộ dữ liệu. Miền giá trị của Ci đƣợc xác định trong [Li,Hi] mà định nghĩa giới hạn các lớp truy nhập trong phạm vi từ Li đến Hi. Thông thƣờng, miền của TC là [lub{Li:i=1,…,n}, lub{Hi:i=1,…,n}]
(2) Tập hợp các trƣờng hợp quan hệ phụ thuộc Ri(A1,C1,…,An,Cn,TC), cho mỗi lớp truy nhập c trong giới hạn giả định. Mỗi trƣờng hợp là một tập riêng theo dạng (a1,c1,…,an,cn,tc) trong đó ai là giá trị của miền Di hay giá trị null, mỗi ci thuộc [Li,Hi], tc = lub{ci: i=1,…,n}
Trƣờng hợp của quan hệ tại lớp giả định biểu thị quan hệ tại lớp đó. Về cơ bản, mỗi thành phần t[Ai] trong bộ dữ liệu t là ẩn trong trƣờng hợp tại lớp truy nhập t[Ci] hay cao hơn; t[Ai] đƣợc thay thế bởi giá trị null trong trƣờng hợp tại lớp truy nhập thấp hơn.
3.8.1.1 Các đặc trưng
Tiến trình đọc và viết trong hệ thống đƣợc kiểm soát và giới hạn để thoả mãn nguyên tắc No Read - Up và No Write - Down.
Để chắc chắn thoả mãn chính sách bắt buộc, những ràng buộc khác đƣợc đặt vào sự phân chia của các thành phần trong hệ đa mức và điều chỉnh đa thể hiện.
(1) Toàn vẹn thực thế
Giả sử AK là khóa thấy đƣợc của quan hệ R. Quan hệ đa mức R thoả mãn tính toàn vẹn của thực thể khi và chỉ khi đối với tất cả các thể hiện Ri của R và t Ri
Ví dụ về quan hệ đa mức
Name CName Departmen t CDepartmen t Salary CSalary TC Bob S Dept1 S 10K S S Ann S Dept2 S 20K TS TS Sam TS Dept2 TS 30K TS TS
90 Có thể mô tả nhƣ sau:
(1) Ai AK => t[Ai ] ≠ null (2) Ai, Aj AK => t[Ci ]= t[Cj ] (3) Ai AK t[Ci ] >= t[CAK ]
Đặc tính là sự mở rộng của tính toàn vẹn thực thể của quan hệ chuẩn để giải quyết sự phân chia an ninh.
- Yêu cầu đầu tiên xuất phát trực tiếp từ mô hình quan hệ chuẩn và không có bộ nào trong Rc có giá trị null cho bất kỳ thuộc tính nào trong khóa thấy đƣợc.
- Yêu cầu thứ hai khẳng định rằng tất cả các khóa chính là hoặc ẩn hoàn toàn hoặc là toàn vẹn null tại lớp truy nhập c.
- Cuối cùng, yêu cầu thứ ba phát biểu rằng trong bất kỳ bộ nào, thuộc tính không khóa phải đƣợc chế ngự bởi khóa chính.
Những yêu cầu này đảm bảo rằng những thuộc tính không null sẽ không bao giờ bị kết hợp cùng khóa chính null.
Trong hệ đa mức, những giá trị null có thể có hai nghĩa. Giá trị null trong trƣờng hợp giả định có thể tƣơng ứng với giá trị null thực hoặc tƣơng ứng với các biến tại sự phân chia cao hơn là lớp phân chia của trƣờng hợp đó.
(2) Toàn vẹn null
Quan hệ đa mức R thoả mãn tính toàn vẹn null nếu và chỉ nếu đối với mỗi thể hiện Rc của R tất cả các điều kiện phải đƣợc thoả mãn:
(1) Mỗi t Ri t[Ai] = null => t[Ci]=t[CAK]
(2) Ri là sự kết hợp tùy ý với ý nghĩa là nó không bao gồm hai bộ riêng biệt gộp thành một bộ khác.
Đặc tính này yêu cầu các giá trị null trong bộ đƣợc phân chia tại cấp độ tƣơng đƣơng thuộc tính khóa của bộ và giá trị null đƣợc gộp bởi giá trị không null độc lập phân chia giá trị không null này.
(3) Toàn vẹn bên trong thể hiện
Quan hệ đa mức R thoả mãn tính toàn vẹn trong mỗi thể hiện nếu và chỉ nếu mọi giá trị c‟ < c thì Rc= (Rc,c‟).
(4) Thuộc tính toàn vẹn Polyinstantialion
Quan hệ đa mức R thoả mãn tính toàn vẹn Polyinstantialion nếu và chỉ nếu mọi quan hệ Rc‟ và mọi thuộc tính Ai đều thỏa mãn: AK, CAK, Ci →Ai.
91
3.8.1.2 Truy cập vào mô hình đa mức.
Một số phép toán
- Phép toán Insert:
Cú pháp: INSERT INTO Rc[(Ai [,Aj]...)] VALUE (ai [, aj]...) Phép toán đƣợc thực hiện nếu và chỉ nếu:
- t[AK] không chứa bất kỳ giá trị rỗng nào - u Rc: u[AK] ≠ t[AK] - Phép toán Update Cú pháp: UPDATE Rc SET Ai=si [,Aj=sj]... [WHERE P] - Phép toán Delete Cú pháp: DELETE FROM Rc [WHERE P] 3.8.2. Mở rộng của mô hình
Một vài mở rộng đã đƣợc đƣa ra cho mô hình nhằm giải quyết vấn đề tính đa mức. Mô hình Sandhu và Jajodia (1992) giới thiệu 3 kỹ thuật cơ bản để loại bỏ tính đa mức của thực thể và biến. Nhớ rằng tính đa mức của thực thể liên quan tới các bộ dữ liệu với giá trị thuộc tính giống nhau.
Giải pháp để loại bỏ tính đa mức nhƣ sau: Tính đa mức của thực thể
(1) Tạo tất cả các khóa ẩn. Trong cách tiếp cận này chỉ rõ khóa chính của quan hệ phải luôn có lớp truy cập bằng với lớp thấp nhất tại lớp mà quan hệ đƣợc ẩn.
(2) Phân chia miền khóa chính. Trong cách tiếp cận này miền của khóa chính phải đƣợc phân chia dọc qua các lớp truy cập khác. Điều này loại bỏ khả năng rằng hai ngƣời dùng ở hai điểm truy cập khác nhau có thể cùng thêm các bộ dữ liệu có cùng khóa chính.
(3) Giới hạn của việc thêm vào đƣợc hoàn thành nhờ các chủ thể thật. Trong cách tiếp cận này, tất cả việc thêm vào phải đƣợc hoàn thành bởi ngƣời dùng hệ thống cao (hay ngƣời dùng mà tất cả các dạng đƣợc ẩn vào đó) với việc write down xảy ra nhƣ một phần của hoạt động thêm vào.
92 (4) Sử dụng giá trị đƣợc giới hạn. Cách tiếp cận này dựa trên việc giới thiệu các giá trị đặc biệt gọi là giá trị đƣợc giới hạn. Khi thuộc tính có giá trị tại lớp giả định, giá trị của thuộc tính sẽ đƣợc giới hạn tại bất kỳ lớp truy cập nào đƣợc chế ngự hay không thể so sánh đƣợc với lớp giá trị thật. Giá trị bị giới hạn không thể đƣợc cập nhật.
Mô hình J-S không yêu cầu phụ thuộc đa mức nhƣ Sea View với sự toàn vẹn đa mức. Mô hình J-S nắm quyền đọc sử dụng nguyên lý không đọc lên (No Read-up) của mô hình Bell-LaPadula. Mô hình J-S nắm quyền ghi sử dụng nguyên lý không ghi xuống (No Write-down).
93
3.9. MÔ HÌNH SMITH AND WINSLELT
Mô hình chính sách an ninh bắt buộc trong cơ sở dữ liệu quan hệ đƣợc Smith và Winslett đề xuất năm 1992. Mô hình dựa trên tƣ tƣởng của “niềm tin” (belief).
3.9.1. Các đặc trƣng cơ bản
Một cơ sở dữ liệu (CSDL) đa mức đƣợc nhìn nhận nhƣ là một tập hợp có tổ chức của các CSDL quan hệ, mỗi một CSDL ứng với một mức trong mạng lƣới an ninh. Tất cả CSDL chia sẻ trong một lƣợc đồ và mỗi CSDL đƣợc đảm nhiệm một mức hay lớp an ninh. CSDL đƣợc đƣa ra ở mỗi mức chứa đựng tất cả các belief của các chủ thể (s ở mức đó về trạng thái của thế giới phản ánh trong lƣợc đồ. Một chủ thể tin tƣởng vào nội dung của CSDL ở chính mức của nó. Một chủ thể nhìn thấy những gì mà nó và các chủ thể ở mức thấp hơn tin tƣởng. Một chủ thể có thể nhìn thấy các bản ghi mà nó không tự tin tƣởng.
Giá trị null trong một bản ghi là chủ thể ở mức tin tƣởng có giá trị trùng với thuộc tính, nhƣng không biết giá trị đó.
Các tiên đề quy định việc truy nhập của các chủ thể đến CSDL nhƣ sau:
(1) Update access
Yêu cầu cập nhật CSDL (insert, delete, update) từ một chủ thể có thể chỉ sửa đổi dữ liệu trong thể hiện của chính mức của chủ thể đó. Dữ liệu ở mức thành phần có thể chỉ đƣợc sửa đổi bởi các chủ thể ở mức đó.
Luật truy nhập cập nhật phù hợp với lý thuyết No Write – Down. Tuy nhiên, nó mạnh hơn Bell-La Padula trong việc ghi dữ liệu là không đƣợc phép. Trạng thái luật truy cập cập nhật đó chủ thể có thể thay đổi niềm tin của chính nó, nhƣng không thay đổi đƣợc bất cứ cái khác.
(2) Read access
Một truy vấn từ một chủ thể ở một mức l có thể truy cập dữ liệu từ CSDL nhãn của chúng đƣợc thống trị bởi l.
Luật truy nhập đọc phù hợp với lý thuyết No Read –up của Bell-La Padula: một chủ thể có thể lấy lại chính xác những gì nó có thể nhìn thấy mà ai đó tin tƣởng.
* Quan hệ đa mức
Không giống nhƣ mô hình See View; Jajodia và Sandhu, mô hình Smith và Winslett không phân loại ở mức của mỗi thuộc tính. Truy nhập lớp có thể đƣợc chỉ định bởi một thuộc tính khóa và tới bản ghi. Giống nhƣ cách phân lớp bản ghi, cách này hữu ích hơn cho phân loại thuộc tính.
94 Quan hệ đa mức đƣợc ký hiệu bằng lƣợc đồ R(K, KC, A1, …, An, TC), trong đó: - K là tập các thuộc tính khóa
- Mỗi A1,…,An là một thuộc tính trong quan hệ
- KC, TC lần lƣợt là mức an ninh của thuộc tính khóa và của bản ghi. - Cả K, KC đƣợc xem xét nhƣ là nhận biết của thực thể
Định nghĩa thuộc tính quan hệ đa mức:
Thuộc tính khóa và bản ghi phân loại: Lƣợc đồ cho mọi quan hệ R phải bao gồm thuộc tính khóa phân loại (Key classification – KC), biểu diễn mức an ninh của thông tin trong K, và một thuộc tính bản ghi phân loại (tuple classification – TC), biểu diễn mức an ninh của phần còn lại của bản ghi: R(K,KC, A1,…,An,TC). Phạm vi của TC và KC là tập các mức an ninh, với sự hạn chế trong một phần bản ghi, giá trị thuộc tính TC phải trội hơn giá trị thuộc tính KC. Hơn nữa, K|KC|TC phải định rõ tất cả các thuộc tính của R và cùng với khóa của quan hệ R.
Một ví dụ của quan hệ đa mức:
Name KC Department Salary TC
Bob U Dept1 10K U
Ann U Dept1 10K U
Ann U Dept2 20K C
Sam S Dept2 20K S
Bảng 3.10 Ví dụ về một quan hệ đa mức EMPLOYEE
Mỗi mức quan hệ đƣợc ánh xạ vào quan hệ mức đơn tại các lớp truy nhập khác nhau. Lƣợc đồ quan hệ của các quan hệ mức đơn tất cả bằng nhau và bằng lƣợc đồ quan hệ đa mức, ngoại trừ thuộc tính TC bị bỏ qua. Thể hiện của R tại mức l đạt đƣợc bởi việc chọn tất cả các bản ghi của R có giá trị l cho bản ghi TC.
Liên quan đến quan hệ đa mức EMPLOYEE ở ví dụ trên. Nó đƣợc giải thích rõ ở các mức khác nhau trong bảng 3.11.
Trong mô hình dựa trên sự tin tƣởng, các bản ghi với các giá trị nhƣ nhau nhƣng có thuộc tính khóa khác nhau đƣợc biểu diễn các thực thể thế giới thực khác nhau. Các bản ghi với các giá trị và thuộc tính khóa phân loại nhƣ nhau nhƣng phân loại khác nhau bởi các thuộc tính không khóa biểu diễn sự tin tƣởng khác nhau về cùng một thực thể trong thế giới thực.
95 Một bản ghi ở mức l chứa tất cả các giá trị null ngoại trừ công dụng của thực thể, nghĩa là các chủ thể ở mức l tin tƣởng rằng thực thể tồn tại, nhƣng không có niềm tin vào giá trị của nó là gì. Nếu không có bản ghi xuất hiện ở mức l, thì các chủ thể ở mức đó không tin tƣởng rằng thực thể tồn tại. Khi đó, một thực thể đa mức đầu tiên xuất hiện trong CSDL, nó phải là bản ghi cơ sở, giống nhƣ bản ghi khi lớp khóa và lớp bản ghi bằng nhau. Một bản ghi cơ sở là ở mức thấp nhất của bản ghi CSDL khi đó thực thể đƣợc xác nhận. Name KC Departm ent Salary Bob U Dept1 10K Ann U Dept1 10K U-Instance Name KC Departm ent Salary Ann U Dept2 20K C-Instance Name KC Departm ent Salary Sam S Dept2 20K S-Instance
3.9.2. Truy nhập tới quan hệ đa mức
Các phép toán trong mô hình:
Phép toán Select
Cú pháp của câu lệnh Select nhƣ sau: SELECT Ai [Aj] *
FROM Rk [Rl]
WHERE P
[BELIEVED BY L]
96 Thuộc tính TC có thể không xuất hiện trong mệnh đề select
Mệnh đề BELIEVED BY cho biết mức của dữ liệu khi truy vấn đƣợc tính toán. Câu lệnh select có thể không có mệnh đề BELIEVED BY. Nguyên nhân là phát hiện kết nối giữa các bản ghi với mức an ninh khác nhau. L là danh sách của một hoặc nhiều mức an ninh. Biến “Self” và “anyone” đƣợc sử dụng để thay thế danh sách này. Biến “self” cho biết mức của ngƣời sử dụng yêu cầu select. Biến “anyone” dùng cho tất cả mức an ninh.
Toàn bộ truy vấn (ngoại trừ mệnh đề BELIEVED BY) đƣợc tính toán riêng biệt trong CSDL ở mức L. Mỗi câu trả lời đƣợc đƣa vào bản ghi lớp TC của mức trong CSDL. Cuối cùng, các bản ghi tìm đƣợc kết nối lại với nhau
Phép toán này có thể thực hiện đƣợc trực tiếp trên một quan hệ đa mức. Ví dụ sử dụng cho quan hệ đa mức EMPLOYEE ở bảng 3.10:
SELECT All
FROM Employee WHERE Name = “Ann” BELIEVED BY Anyone
Truy vấn trả ra bản ghi (Ann(U), Dept1, 10K(U)) ở U-user
Truy vấn trả ra bản ghi (Ann(U), Dept1, 10K(U)) và (Ann(U), Dept2, 20K(C)) ở C-user hoặc cao hơn.
Phép toán Insert
Cú pháp:
INSERT INTO R[(Ai [,Aj] *)]
VALUE V
Trong đó, V là tập các giá trị bản ghi của (ai [,aj] *)
Phép toán Insert xác nhận tình trạng thực của một thực thể mới ở mức của ngƣời dùng yêu cầu chèn. Với mỗi giá trị bản ghi trong V, một bản ghi mới đƣợc chèn vào. Khóa và bản ghi phân loại đƣợc đặt bằng lớp của ngƣời dùng yêu cầu chèn.
Ví dụ với quan hệ đa mức ở bảng 3.10 và trƣờng hợp S-user yêu cầu chèn nhƣ sau:
INSERT INTO Employee
97 Vì thực thể “Ann(S)” chƣa tồn tại, bản ghi thỏa mãn để chèn. Kết quả sau khi chèn nhƣ sau:
Name KC Department Salary TC
Bob U Dept1 10K U
Ann U Dept1 10K U
Ann U Dept2 20K C
Ann S Dept2 30K S
Sam S Dept2 20K S
Bảng 3.12 Quan hệ đa mức EMPLOYEE sau khi chèn
Phép toán Update
Cú pháp: UPDATE R
SET Ai=ai [,Aj=aj] *
WHERE P
[BELIEVED BY L]
Phép toán update thay đổi sự tin tƣởng liên quan đến sự tồn tại thực thể đa mức tại mức của ngƣời sử dụng yêu cầu update. Chỉ những bản ghi với cùng mức của ngƣời dùng mới có thể thay đổi. Tập các bản ghi update có thể là tập con của các bản ghi thỏa mãn điều kiện trong câu lệnh.
Nếu không tồn tại bản ghi trong quan hệ thì một bản ghi mới đƣợc chèn vào CSDL ở mức của miêu tả trong mệnh đề SET. Liên quan đến thực thể E thỏa mãn mệnh đề WHERE và BELIEVED BY. Với mỗi biến ai trong mệnh đề SET, xử lý update ai trong thực thể E nhƣ sau:
(1) Nếu mức của ngƣời dùng chứa trong L, một giá trị đƣợc tìm trong bản ghi thỏa mãn điều kiện ở mức của ngƣời dùng
(2) Nếu không có giá trị nào tồn tại ở mức ngƣời dùng và danh sách các mức đƣợc đƣa ra trong mệnh đề BELIEVED BY, danh sách đƣợc tìm kiếm tuần tự. Với mỗi biến quan hệ trong ai, giá trị đƣợc sử dụng là mức đầu tiên chứa bản ghi cung cấp một giá trị.
(3) Nếu biến an ninh “anyone” đƣợc sử dụng, một lƣới con an ninh đƣợc chiếm bởi ngƣời dùng tạo ra. Thứ tự có thể đƣợc quyết định bởi DBMS hoặc bởi ngƣời dùng
(4) Nếu không tạo ra một giá trị nào phù hợp trong miêu tả ai, thực thể E không đƣợc update.
98 Ví dụ1: câu lệnh update có thể sinh ra bản ghi mới ở quan hệ đa mức bảng 3.10 và trƣờng hợp S-user yêu cầu:
UPDATE Employee SET Salary = “30K” WHERE Salary = “20K” BELIEVED BY anyone
Khi thực hiện câu lệnh này thì tất cả nhân viên kiếm đƣợc “20K”, bây giờ đƣợc tin là kiếm đƣợc “30K” bởi S-user. Nhân viên “Ann” thỏa mãn điều kiện trong câu lệnh. Tuy nhiên, S-user không có niềm tin vào nó. Vì vậy, một bản ghi mới đƣợc chèn cho “Ann” ở mức S. Giống nhƣ nhân viên Sam, giá trị của thuộc tính đƣợc update.