Kiểm soát dữ liệu ngữ nghĩa
(Semantic Data Control)
Dữ liệu ngữ nghĩa
Dữ liệu về các đối tượng trong CSDL
Tables , View, …
Dữ liệu về an toàn hệ thống
Người dùng – quyền truy cập của người dùng
Dữ liệu và bảo đảm tính nhất quán
Ràng buộc tòan vẹn
Các thông tin này được lưu trữ trong Catalogue
Kiểm soát dữ liệu ngữ nghĩa
Mục tiêu :
Bảo đảm cho phép các người thực hiện các tác vụ
(operations) lên CSDL phải bảo đảm tính nhất quán
dữ liệu của CSDL
Các công việc liên quan
Quản lý khung nhìn (View)
Kiểm sóat an toàn dữ liệu (data security)
Kiểm sóat tính nhất quán (integrity) dữ liệu
Quản lý khung nhìn
Khung nhìn là một quan hệ ảo (Virtual relation)
Được tạo ra từ kết quả một câu truy vấn (query)
Ví dụ : NV(MSNV, HT ,MSPB)
TG(MSNV,MSDT,NVU)
CREATE VIEW NV_IT
AS
SELECT MSNV, HT
FROM NV
WHERE MSPB = « IT »
Khung nhìn có thể được thao tác như đối với quan hệ cơ sở
View có thể được sử dụng như một giải pháp bảo đảm tính trong suốt
vị trí
Biến đổi câu truy vấn
Cấu truy vấn trên khung nhìn => câu truy vấn
tương đương trên các quan hệ cơ sở
Ví dụ :
SELECT HT, MSDT, NVU
FROM NV_IT, TG
WHERE NV_IT.MSNV = TG.MSNV
SELECT HT, MSDT, NVU
FROM NV, TG
WHERE NV.MSNV = TG.MSNV
AND MSPB=«IT»
Cập nhật khung nhìn
Một khung nhìn được gọi là có thể cập nhật
(updatable) nếu các thao tác trên khung nhìn có
thể lan truyền chính xác đến các quan hệ cơ sở
(không có sự nhập nhằng ngữ nghĩa)
CREATE VIEW NV_IT
AS
SELECT MSNV,HT
FROM NV
WHERE MSPB = ‘IT’
CREATE VIEW V1
AS
SELECT HT,NVU
FROM NV,TG
WHERE NV.MSNV = TG.MSNV
Khung nhìn trong CSDL phân tán
Có thể được xây dựng từ các phân mảnh
(Fragments)
Quản lý khung nhìn như đối với các quan hệ cơ sở
Các loại khung nhìn
Snapshot
Materialized View
Một ví dụ
R1
R4 = R1
V= R1 |x| R2
R2
Mạng
Các thuật toán refresh View
Thuật toán refresh trực tiếp : Tính lại toàn bộ
khung nhìn
Ví dụ V = R1 |x| R2
R1 => R1’, R2 => R2’
thì V=> V’ = R1’ |x| R2’
Thuật toán refresh phần thay đổi
giả sử R1’ = R1 + ∆R1; R2’ = R2 + ∆R2
∆V = ∆R1|x| R2 + ∆R2 |x| R1 - ∆R1 |x| ∆R2
Kiểm sóat an tòan dữ liệu
Kiểm sóat an tòan dữ liệu
Kiểm soát quyền đăng nhập
=> bảo đảm chỉ những người được cấp phép mới
có thể đăng nhập vào CSDL
Kiểm sóat quyền thao tác
=> bảo đảm các người có quyền đăng nhập chỉ
thao tác đúng với ngững gì mình được phép
Mã hóa dữ liệu
=> Ngăn chận các đăng nhập « bất hợp pháp »
Môi trường phân tán
Người dùng phân tán
Quyền đăng nhập cục bộ
Quyền đăng nhập từ xa
=> Vấn đề quản lý thông tin xác nhận người dùng
Đối tượng phân tán
⇒
Cấp quyền thao tác tập trung hay phân cấp ?
⇒
Vấn đề quản lý thông tin về các đối tượng
Quản lý thông tin người dùng
Mỗi node lưu trữ một bản thông thông người dùng
trên các đối tượng của hệ thống.
=> Mỗi người dùng riêng lẽ có thể kết nối trực tiếp
đến server từ xa
Mỗi node quản lý thông tin người dùng cục bộ và
các liên kết đến các node khác.
=> Một người dùng chỉ có thể truy xuất server từ xa
thông qua ‘đại diện’ là server cục bộ
Kiểm soát ràng buộc toàn vẹn
Đặc tả ràng buộc toàn vẹn
Ràng buộc toàn vẹn là một điều kiện bất biến trên
CSDL được biểu diễn dưới dạng một vị từ biến
bộ(tuple relational calculus).
Biến liên kết với lượng từ ( )∀ hoặc ( )∃
3 loại RBTV
Được định nghĩa trước (Predifined)
Được dịch trước (Precompiled)
Ràng buộc tổng quát
Đặc tả ràng buộc toàn vẹn (tt)
RBTV được định nghĩa trước
Not null
Unique
Foreign key
Function Dependency
RBTV được dịch
RBTV miền giá trị
RBTV về thay đổi giá trị của thuộc tính
RBTV tổng quát
RBTV liên thuộc tính
RBTV trên các phép gộp
Bảo đảm ràng buộc toàn vẹn
Bảo đảm RBTV là hủy các cập nhật làm vi phạm các
RBTV
Hai phương pháp để bảo đảm RBTV
Phát hiện
Thực hiện thay đổi D -> D’
Nếu RBTV bị vi phạm, thì hiểu chỉnh D->D’’ hoặc huỷ D’ và khôi
phục lại D
Ngăn ngừa
Thực hiện thay đổi D ->D’ chỉ nếu RBTV được bảo đảm
Bảo đảm RBTV phân tán
3 loại RBTV trên môi trường phân tán
RBTV cá thể ( bối cảnh 1 quan hệ)
Chỉ liên quan đến một quan hệ, một biến
Chỉ quan tâm đến bộ bị thay đổi
RBTV tập thể (bối cảnh nhiều quan hệ)
RBTV liên quan đến các phép gộp
Khó khăn trong bảm đảm RBTV phân tán
Làm sao định nghĩa ràng buộc ?
RBTV sẽ được lưu trữ ở đâu ?
Làm thế nào để bảo đảm RBTV ?
Định nghĩa và lưu trữ RBTV
Định nghĩa một RBTV mới có thể được thực hiện tại
vị trí chứa quan hệ có liên quan đến RBTV, nhưng
sau đó phải lan truyền đến các vị trí có chứa các
phân mảnh liên quan
RBTV cá thể (có bối cảnh một quan hệ) : RBTV
được gởi đi tất cả các vị trí có chứa phân mảnh của
quan hệ liên quan đến ràng buộc
RBTV tập thể (có bối cảnh nhiều quan hệ) : tiến
hành phép kết các phân mảnh hoạc quan hệ
Bảo đảm RBTV phân tán
Phức tạp hơn bảo đảm RBTV trên môi trường tạp trung
Xác định vị trí tại đó RBTV được kiểm tra
Tùy thuộc vào
Loại ràng buộc
Loại cập nhật
Ví trí tại đó yêu cầu cập nhật được phát ra
Loại RBTV cá thể
Thêm ( insert) : kiểm tra tại vị trí nơi update được phát ra
Sửa đổi (Update) : gởi đi tất cả các vị trí có chứa các phân mảnh của quan hệ
Loại RBTV tập thể
Di chuyển dữ liệu để thực hiện kết nối
Rồi gởi kết quả về vị trí mà yêu cầu cập nhật phát sinh
QUẢN LÝ DỮ LiỆU PHÂN TÁN VỚI
ORACLE
ORACLE NAME SERVER
Quản lý catalog tòan cục (a global directory
service)
Tên tòan cục của CSLD (Global Database
Names)
Mỗi CSDL có một tên tòan cục duy nhất
Tên CSDL.tên internet
Ví dụ sales.division.acme.com
Tên toàn cục của đối tượng dữ liệu
sheme.sheme_object@global_database_name
Ví dụ :
Database Link
Định nghĩa một truyền tin một chiều (one-way
communication) từ CSDL này đến CSDL khác
Một liên kết (link) đến một CSDL khác phải được tạo
trước khi thao tác
Tất cả các liên kết sẽ phải được DBA tạo trước
Database Link (tt)
Các loại liên kết
Private
Public
Global