1) Tối đa là có n vai của R đợc gán đồng thời cho cùng một ngời dùng thuộc trong khoảng thời gian U (I, P). Biểu thức: UAS1-num = ( , I P, UAS1-n , , U R) Trong đó UAS1-n ::= Π2list(u_assigned(u, r, t)) ≤ n.
Đặc biệt khi n = 1, ta có ràng buộc SoD Không có hai vai nào của có thể đồng : R
thời đợc gán cho cùng một ngời dùng của U trong khoảng thời gian (I, P). Biểu thức UAS1-SoD = (I P, , UAS1 , , U R) với UAS1 ::= Π2list(u_assigned(u, r, t)) ≤ 1. UAS1-SoD ngăn chặn một ngời dùng đợc gán đồng thời vào hai vai mâu thuẫn.
2) Tối đa là có ngời dùng của n U đợc gán đồng thời vào cùng một vai thuộc trong khoảng thời gian R (I, P). Biểu thức: UAS2-num = ( , I P, UAS2-n , , U R) Trong đó UAS2-n ::= Π1list(u_assigned(u, r, t)) ≤ n.
Đặc biệt khi n = 1, ta có ràng buộc SoD: Không có hai ngời dùng nào thuộc U có thể đồng thời đợc gán vào cùng một vai của R trong khoảng thời gian (I, P). Biểu thức UAS2-SoD = (I P, , UAS2 , , U R)với UAS2 ::= Π1list(u_assigned(u, r, t)) ≤ 1. UAS2-SoD ngăn chặn các ngời dùng mâu thuẫn đợc gán đồng thời vào cùng một vai.
Một số ràng buộc SoD khác:
1) Những ngời dùng khác nhau thuộc U không thể đồng thời đợc gán vào các vai khác nhau của R trong khoảng thời gian (I, P).
Biểu thức: UAS3-SoD = (I P, , UAS3 , , U R). Trong đó:
UAS3 ::= (( Π1list(u_assigned(u, r, t)) ≥1)∧( Π2list(u_assigned(u, r, t)) = 1)) ((∨ Π2list(u_assigned(u, r, t)) ≥1)∧( Π1list(u_assigned(u, r, t)) = 1))
2) Các vai của chỉ có thể đồng thời đợc gán vào một ngời dùng R thuộc U
trong khoảng thời gian (I, P). Biểu thức: UAS4-SoD = (I P, , UAS4 , U, R). Trong đó: UAS4 ::= ( Π2list(u_assigned(u, r, t)) ≥1)∧( Π1list(u_assigned(u, r, t)) = 1)
3) Những ngời dùng khác nhau thuộc U chỉ có thể đồng thời đợc gán vào một vai của trong khoảng thời gian R (I, P).
Biểu thức: UAS5-SoD = (I P, , UAS5 , , U R). Trong đó:
UAS5 ::= ( Π1list(u_assigned(u, r, t)) ≥1)∧( Π2list(u_assigned(u, r, t)) = 1) 4) Một vai của chỉ có thể đợc gán vào một ngời dùng R thuộc U(và ngợc lại tại một thời điểm trong khoảng thời gian ) (I, P).
Biểu thức: UAS6-SoD = (I P, , UAS6 , , U R). Trong đó:
UAS6 ::= ( Π2list(u_assigned(u, r, t)) ≤1) ∧ ( Π1list(u_assigned(u, r, t)) ≤ 1)
Ví dụ: Trong một tổ chức, ràng buộc (I, P, UAS3 , , U R) không cho phép hai ngời dùng có quan hệ họ hàng (cha con, vợ- -chồng, anh-em...) đợc gán vào hai vai khác nhau có khả năng tạo ra gian lận làm phơng hại đến tổ chức, nh: vai kế toán trởng và vai thủ quỹ, vai thủ trởng ký mua hàng và vai nhân viên đi mua hàng.
Định lý 2.9:
Các ràng buộc SoD thời gian gán ng ời dùng vào vai sau là t ơng đ ơng: 1) UAS4-SoD ⇔ UAS2-SoD ∧UAS3-SoD
2) UAS5-SoD ⇔ UAS1-SoD ∧UAS3-SoD 3) UAS6-SoD ⇔ UAS1-SoD ∧UAS2-SoD Chứng minh :
1) Trớc hết ta chứng minh rằng: UAS4 ⇔UAS 2 ∧UAS3 Thật vậy ta có: UAS2 ∧UAS3
(⇔ Π1list(u_assigned(u, r, t)) ≤1) ∧
((( Π1list(u_assigned(u, r, t)) ≥1)∧( Π2list(u_assigned(u, r, t)) = 1)) ∨
((⇔ Π1list(u_assigned(u, r, t)) ≤1)∧
( Π1list(u_assigned(u, r, t)) ≥1)∧( Π2list(u_assigned(u, r, t)) = 1)) ∨
(( Π1list(u_assigned(u, r, t)) ≤1)∧
( Π2list(u_assigned(u, r, t)) ≥1)∧( Π1list(u_assigned(u, r, t)) = 1)) ((⇔ Π2list(u_assigned(u, r, t)) = 1)∧( Π1list(u_assigned(u, r, t)) = 1)) ∨
(( Π2list(u_assigned(u, r, t)) ≥1)∧( Π1list(u_assigned(u, r, t)) = 1))
⇔ ( Π2list(u_assigned(u, r, t)) ≥1)∧( Π1list(u_assigned(u, r, t)) = 1)
⇔ UAS4
Suy ra: ( , , I P UAS4, , U R) ⇔ ( , , I P UAS2∧UAS3, , U R)
( , , ⇔ I P UAS2, , U R)∧( , , I P UAS3, , U R) Vậy ta đợc: UAS4-SoD ⇔UAS2-SoD ∧UAS3-SoD.
2) Tơng tự phần 1), để chứng minh: UAS5-SoD ⇔UAS 1-SoD ∧UAS3-SoD chỉ cần chứng tỏ rằng: UAS5 ⇔UAS1 ∧UAS3
Ta có: UAS1 ∧UAS3
(⇔ Π2list(u_assigned(u, r, t)) ≤1) ∧
((( Π1list(u_assigned(u, r, t)) ≥1)∧( Π2list(u_assigned(u, r, t)) = 1)) ∨
(( Π2list(u_assigned(u, r, t)) ≥1)∧( Π1list(u_assigned(u, r, t)) = 1))) ((⇔ Π2list(u_assigned(u, r, t)) ≤1)∧
( Π1list(u_assigned(u, r, t)) ≥1)∧( Π2list(u_assigned(u, r, t)) = 1)) ∨
(( Π2list(u_assigned(u, r, t)) ≤1)∧
( Π2list(u_assigned(u, r, t)) ≥1)∧( Π1list(u_assigned(u, r, t)) = 1)) ((⇔ Π1list(u_assigned(u, r, t)) ≥1)∧( Π2list(u_assigned(u, r, t)) = 1)) ∨
(( Π1list(u_assigned(u, r, t)) = 1)∧( Π2list(u_assigned(u, r, t)) = 1))
⇔ ( Π1list(u_assigned(u, r, t)) ≥1)∧( Π2list(u_assigned(u, r, t)) = 1)
⇔ UAS5
Vậy ta đợc: UAS5 ⇔UAS1 ∧UAS3.
3) Tơng tự ần 1), để chứng minhph : UAS6-SoD ⇔UAS 1-SoD ∧UAS2-SoD chỉ cần chứng tỏ rằng: UAS6 ⇔UAS1 ∧UAS2. Nhng điều này là hiển nhiên vì: UAS1∧UAS2⇔( Π2list(u_assigned(u, r, t)) ≤1)∧( Π1list(u_assigned(u, r, t)) ≤1)