TRƯ Ờ NG ĐẠ I HỌ C HÀNG HẢ I

KHOA CÔNG NGHỆ THÔNG TIN
BÀI GIẢ NG
CƠ SỞ DỮ LIỆ U NÂNG CAO
Biên soạ n: Th.S Nguyễ n Trung Đứ c
Hả i Phòng – 2008
http://www.ebook.edu.vn
1
BỘ GIAO THÔNG VẬ N TẢ I
TRƯ Ờ NG ĐẠ I HỌ C HÀNG HẢ I
BỘ MÔN: HỆ THỐ NG THÔNG TIN
KHOA: CÔNG NGHỆ THÔNG TIN
BÀI GIẢ NG
CƠ SỞ DỮ LIỆ U NÂNG CAO
TÊN HỌ C PHẦ N : CƠ SỞ DỮ LIỆ U NÂNG CAO
MÃ HỌ C PHẦ N : 17406
TRÌNH ĐỘ ĐÀO TẠ O : ĐẠ I HỌ C CHÍNH QUY
DÙNG CHO SV NGÀNH : CÔNG NGHỆ THÔNG TIN
HẢ I PHÒNG - 2008
http://www.ebook.edu.vn
2
Tên họ c phầ n: Cơ sở dữ liệ u nâng cao Loạ i họ c phầ n: 2
Bộ môn phụ trách giả ng dạ y: Hệ thố ng Thông tin Khoa phụ trách: CNTT.
Mã họ c phầ n: 17406 Tổ ng số TC: 2
TS tiế t Lý thuyế t Thự c hành/Xemina Tự họ c Bài tậ p lớ n Đồ án môn họ c
45 30 15 0 0 0
Điề u kiệ n tiên quyế t:
Sinh viên phả i họ c và thi đạ t các họ c phầ n sau mớ i đư ợ c đăng ký họ c họ c phầ n này:
Cơ sở dữ liệ u.
Mụ c tiêu củ a họ c phầ n:
Cung cấ p kiế n thứ c nâng cao về mô hình cơ sở dữ liệ u quan hệ , các phư ơ ng pháp thiế t kế cơ
sở dữ liệ u khác nhau.
Nộ i dung chủ yế u:
Giớ i thiệ u về các hệ quả n trị dữ liệ u; Các mô hình mạ ng, mô hình phân cấ p; Điề u khiể n tư ơ ng
tranh trong hệ quả n trị cơ sở dữ liệ u; An toàn và xử lý sai sót; Mô hình cơ sở dữ liệ u hư ớ ng đố i
tư ợ ng; Mô hình cơ sở dữ liệ u phân tán.
Nộ i dung chi tiế t:
PHÂN PHỐ I SỐ TIẾ T
TÊN CHƯ Ơ NG MỤ C TS LT TH BT KT
Chư ơ ng 1. Hệ quả n trị cơ sở dữ liệ u và lịch sử phát
triể n
3 3
1.1. Quan niệ m về CSDL
1.2. Ứ ng dụ ng củ a hệ quả n trị CSDL
1.3. Lịch sử củ a các hệ quả n trị dữ liệ u
Chư ơ ng 2. Mô hình mạ ng, mô hình phân cấ p 3 3
2.1. Mô hình mạ ng
2.1.1. Giớ i thiệ u
2.1.2. Các khái niệ m
2.2. Mô hình phân cấ p
2.2.1. Giớ i thiệ u
2.2.2. Các khái niệ m
Chư ơ ng 3. Thiế t kế cơ sở dữ liệ u khái niệ m 3 3
3.1. Giớ i thiệ u
3.2. Trừ u tư ợ ng hoá trong thiế t kế CSDL
3.3. Các thuộ c tính tư ơ ng xứ ng giữ a các lớ p
3.4. Các mô hình dữ liệ u
3.5. Mô hình thự c thể quan hệ
Chư ơ ng 4. Điề u khiể n khai thác tư ơ ng tranh 3 3
4.1. Giớ i thiệ u
4.2. Mộ t số khái niệ m
4.3. Đặ c tính củ a khai thác không xung độ t
4.3.1. Mộ t số khái niệ m
4.3.2. Khai thác có thứ tự
4.3.3. Đồ thị về thứ tự thự c hiệ n các giao tác
Chư ơ ng 5. An toàn dữ liệ u và xử lý sai sót 3 3
5.1. An toàn trong CSDL
5.1.1. Phạ m vi an toàn dữ liệ u
5.1.2. Các yêu cầ u bả o vệ CSDL
5.1.3. Các dạ ng sai sót
5.2. Các điề u khiể n an toàn dữ liệ u
5.2.1. Điề u khiể n luồ ng thông tin
http://www.ebook.edu.vn
3
PHÂN PHỐ I SỐ TIẾ T
TÊN CHƯ Ơ NG MỤ C TS LT TH BT KT
5.2.2. Điề u khiể n suy diễ n
5.2.3. Điề u khiể n truy nhậ p
Chư ơ ng 6. Đánh giá câu hỏ i 3 2 1
6.1. Phân tích câu hỏ i
6.1.1. Phân tích cú pháp
6.1.2. Phân tích ngữ nghĩa
6.2. Cấ u trúc đạ i số câu hỏ i
6.2.1. Cây đạ i số quan hệ
6.2.2. Các luậ t biế n đổ i cây đạ i số quan hệ
6.2.3. Các bư ớ c tố i ư u cây đạ i số quan hệ
6.3. Phân rã câu hỏ i
Chư ơ ng 7. Cơ sở dữ liệ u hư ớ ng đố i tư ợ ng 12 5 6 1
7.1. Giớ i thiệ u về hư ớ ng đố i tư ợ ng
7.1.1. Các khái niệ m hư ớ ng đố i tư ợ ng
7.1.2. Mô hình hoá việ c phân tích hư ớ ng đố i tư ợ ng
7.1.3. Mô hình hóa dữ liệ u
7.2. Nguyên tác củ a các mô hình hư ớ ng đố i tư ợ ng
7.2.1. Mô hình hoá các đố i tư ợ ng
7.2.2. Phư ơ ng pháp
7.2.3. Xác định dạ ng dữ liệ u
7.2.4. Các liên kế t thừ a kế giữ a các lớ p
7.2.5. Đa cấ u và sự áp đặ t
7.2.6. Xác định tậ p các đố i tư ợ ng
7.2.7. Khía cạ nh độ ng
7.2.8. Lư ợ c đồ CSDL hư ớ ng đố i tư ợ ng
7.3. Tính bề n vữ ng các các đố i tư ợ ng
7.3.1. CSDL hư ớ ng đố i tư ợ ng
7.3.2. Quả n lý tính bề n vữ ng
7.3.3. Kế thừ a tính bề n vữ ng
7.3.4. Tính bề n vữ ng do tham chiế u
7.3.5. Tích hợ p vớ i ngôn ngữ lậ p trình
7.4. Đạ i số vớ i các đố i tư ợ ng phứ c tạ p
7.4.1. Mở rộ ng đạ i số quan hệ theo đư ờ ng dẫ n và các
phư ơ ng pháp
7.4.2. Các phép toán đạ i số
7.4.3. Các phép toán nhóm
7.4.4. Đồ thị các phép toán
Chư ơ ng 8. Cơ sở dữ liệ u phân tán 15 5 9 1
8.1. Cấ u trúc CSDL phân tán
8.2. Đánh giá CSDL phân tán
8.3. Thiế t kế CSDL phân tán
8.3.1. Bả n sao dữ liệ u
8.3.2. Chia nhỏ dữ liệ u
8.4. Tính thông suố t và tính tự trị củ a CSDL phân tán
8.5. Xử lý câu hỏ i
8.6. Khôi phụ c sai sót trong CSDL phân tán
Nhiệ m vụ củ a sinh viên:
Tham dự các buổ i họ c lý thuyế t và thự c hành, làm các bài tậ p đư ợ c giao, làm các bài kiể m tra
giữ a kỳ và bài thi kế t thúc họ c phầ n theo đúng quy định.
http://www.ebook.edu.vn
4
Tài liệ u họ c tậ p:
1. Nguyễ n Xuân Huy, Giáo trình về cơ sở dữ liệ u, Đạ i họ c Quố c Gia Hà Nộ i, 2000.
2. Nguyễ n Xuân Huy-Lê Hoài Bắ c, Bài tậ p cơ sở dữ liệ u, Nhà xuấ t bả n Thố ng kê, 2003.
3. Phạ m Hữ u Khang, Đoàn Thiệ n Ngân, Quả n trị SQL Server 2000, Nhà xuấ t bả n Thố ng kê,
2004.
Hình thứ c và tiêu chuẩ n đánh giá sinh viên:
- Hình thứ c thi: thi viế t.
- Tiêu chuẩ n đánh giá sinh viên: dự a trên thái độ tham dự các buổ i họ c lý thuyế t và thự c hành,
kế t quả làm các bài tậ p đư ợ c giao, các bài kiể m tra giữ a kỳ và bài thi kế t thúc họ c phầ n.
Thang điể m: Thang điể m chữ A,B,C,D,F.
Điể m đánh giá họ c phầ n: Z=0,3X+0,7Y
Bài giả ng này là tài liệ u chính thứ c và thố ng nhấ t củ a Bộ môn Hệ thố ng Thông tin,
Khoa Công nghệ Thông tin và đư ợ c dùng để giả ng dạ y cho sinh viên.
Ngày phê duyệ t: / /
Trư ở ng Bộ môn
http://www.ebook.edu.vn
5
MỤ C LỤ C
Chư ơ ng 1. Hệ quả n trị cơ sở dữ liệ u ............................................................................ 7
1.1. Quan niệ m về CSDL......................................................................................... 7
1.2. Các khả năng củ a mộ t hệ quả n trị cơ sở dữ liệ u. ............................................... 7
Chư ơ ng 2. Cơ sở dữ liệ u hư ớ ng đố i tư ợ ng................................................................... 9
2.1. Nhu cầ u về hệ thố ng cơ sở dữ liệ u hư ớ ng đố i tư ợ ng ......................................... 9
2.1.1. Các đố i tư ợ ng phứ c tạ p .............................................................................. 9
2.1.2. Quả n lý các tri thứ c.................................................................................... 9
2.1.3. Quả n trị các dữ liệ u phân tán.................................................................... 10
2.1.4. Nhu cầ u về hệ thố ng cơ sở dữ liệ u hư ớ ng đố i tư ợ ng................................. 10
2.2. Khái niệ m về hư ớ ng đố i tư ợ ng........................................................................ 11
2.2.1. Đố i tư ợ ng................................................................................................. 12
2.2.2. Lớ p đố i tư ợ ng .......................................................................................... 12
2.2.3. Cá thể ....................................................................................................... 13
2.2.4. Kế thừ a .................................................................................................... 13
2.3. Cơ sở dữ liệ u hư ớ ng đố i tư ợ ng........................................................................ 13
2.4. Thiế t kế cơ sở dữ liệ u hư ớ ng đố i tư ợ ng........................................................... 14
2.4.1. Phân lớ p................................................................................................... 14
2.4.2. Tổ ng quát hóa và đặ c biệ t hóa.................................................................. 14
2.4.3. Gộ p.......................................................................................................... 15
2.5. Xây dự ng cơ sở dữ liệ u hư ớ ng đố i tư ợ ng ........................................................ 15
Chư ơ ng 3. Cơ sở dữ liệ u phân tán.............................................................................. 17
3.1. Các phư ơ ng pháp phân tán dữ liệ u.................................................................. 17
3.1.1. Khái niệ m về phân tán dữ liệ u.................................................................. 17
3.1.1.1. Các lý do phân mả nh......................................................................... 17
3.1.1.2. Các kiể u phân mả nh .......................................................................... 17
3.1.1.3. Mứ c độ phân mả nh............................................................................ 19
3.1.1.4. Quy tắ c phân mả nh đúng đắ n ............................................................ 19
3.1.1.5. Các kiể u cấ p phát .............................................................................. 19
3.1.1.6. Các yêu cầ u thông tin........................................................................ 19
3.1.2. Phân mả nh ngang..................................................................................... 20
3.1.2.1. Yêu cầ u thông tin củ a phân mả nh ngang. .......................................... 20
3.1.2.2. Phân mả nh ngang nguyên thủ y. ......................................................... 21
3.1.2.3. Phân mả nh ngang dẫ n xuấ t ................................................................ 23
3.1.3. Phân mả nh dọ c......................................................................................... 24
3.1.4. Cấ p phát................................................................................................... 24
3.2. Kiể m soát dữ liệ u ngữ nghĩa ........................................................................... 26
3.2.1. Quả n lý khung nhìn.................................................................................. 26
3.2.1.1. Khung nhìn trong quả n lý tậ p trung................................................... 26
3.2.1.2. Cậ p nhậ t qua các khung nhìn............................................................. 26
3.2.1.3. Khung nhìn trong cơ sở dữ liệ u phân tán ........................................... 27
3.2.2. An toàn dữ liệ u ........................................................................................ 27
3.2.2.1. Kiể m soát cấ p quyề n tậ p trung .......................................................... 27
3.2.2.2. Kiể m soát cấ p quyề n phân tán ........................................................... 28
3.3. Quả n lý giao dịch và điể u khiề n đồ ng thờ i phân tán........................................ 28
3.3.1. Các khái niệ m cơ bả n về giao dịch........................................................... 28
3.3.1.1. Tính nguyên tử .................................................................................. 29
3.3.1.2. Mụ c dữ liệ u....................................................................................... 29
http://www.ebook.edu.vn
6
3.3.1.3. Khóa ................................................................................................. 30
3.3.1.4. Kiể m soát hoạ t độ ng đồ ng thờ i bằ ng khóa ......................................... 30
3.3.1.5. Khóa số ng (livelock) ......................................................................... 31
3.3.1.6. Khóa “cứ ng” (deadlock) .................................................................... 31
3.3.1.7. Tính khả tuầ n tự củ a lịch biể u. .......................................................... 32
3.3.1.8. Bộ xế p lịch........................................................................................ 33
3.3.1.9. Nghi thứ c .......................................................................................... 33
3.3.2. Mô hình giao dịch đơ n giả n...................................................................... 33
3.3.2.1. Ý nghĩa củ a giao dịch – hàm đặ c trư ng.............................................. 33
3.3.2.2. Kiể m tra tính khả tuầ n tự bằ ng đồ thị có hư ớ ng. ................................ 35
3.3.3. Nghi thứ c khóa 2 pha ............................................................................... 35
3.3.4. Mô hình khóa đọ c và khóa ghi ................................................................. 36
3.3.4.1. Ý nghĩa củ a giao dịch vớ i khóa đọ c và khóa ghi................................ 36
3.3.4.2. Đồ thị tuầ n tự hóa trong các giao dịch Rlock và Wlock ..................... 36
Chư ơ ng 4. Hệ trợ giúp ra quyế t định ......................................................................... 38
4.1. Giớ i thiệ u về hệ trợ giúp ra quyế t định............................................................ 38
4.2. Thiế t kế cơ sở dữ liệ u cho hệ trợ giúp ra quyế t định........................................ 39
4.2.1. Thiế t kế logic. .......................................................................................... 39
4.2.2. Thiế t kế vậ t lý .......................................................................................... 40
4.3. Kho dữ liệ u và kho dữ liệ u chuyên đề ............................................................. 40
4.3.1. Kho dữ liệ u .............................................................................................. 41
4.3.2. Kho dữ liệ u chuyên đề . ............................................................................ 41
4.3.3. Các lư ợ c đồ về chiề u. ............................................................................... 42
4.4. Xử lý phân tích trự c tuyế n............................................................................... 43
4.4.1. Giớ i thiệ u. ................................................................................................ 43
4.4.2. Bả ng chéo ................................................................................................ 43
4.4.3. Cơ sở dữ liệ u nhiề u chiề u......................................................................... 44
4.5. Khai phá dữ liệ u.............................................................................................. 44
http://www.ebook.edu.vn
7
Chư ơ ng 1. Hệ quả n trị cơ sở dữ liệ u
1.1. Quan niệ m về Cơ sở dữ liệ u
Cơ sở dữ liệ u (CSDL) là gì?
Định nghĩa: Mộ t cơ sở dữ liệ u (Database) là mộ t tậ p hợ p có cấ u trúc các dữ liệ u tác nghiệ p đư ợ c
lư u trữ lạ i và đư ợ c các hệ ứ ng dụ ng cụ thể sử dụ ng.
Ngày nay CSDL tồ n tạ i trong hầ u hế t các ứ ng dụ ng, ví dụ :
- Ứ ng dụ ng quả n lý kho hàng;
- Hệ thố ng đặ t chỗ máy bay;
- Quả n lý nguồ n nhân lự c…
Hệ quả n trị cơ sở dữ liệ u là gì?
Định nghĩa: Hệ quả n trị cơ sở dữ liệ u (Database Management System - DBMS) là mộ t hệ thố ng
phầ n mề m cho phép tạ o lậ p CSDL và điề u khiể n mọ i truy nhậ p đố i vớ i CSDL đó.
Hệ cơ sở dữ liệ u là gì?
Hệ CSDL là mộ t hệ thố ng bao gồ m 4 thành phầ n:
- CSDL hợ p nhấ t: CSDL củ a hệ có hai tính chấ t tố i thiể u hóa dư thừ a và đư ợ c chia sẻ .
- Nhữ ng ngư ờ i sử dụ ng: Ngư ờ i sử dụ ng củ a hệ là bấ t kỳ mộ t ngư ờ i nào có nhu cầ u truy nhậ p
vào CSDL, bao gồ m tấ t cả nhữ ng ngư ờ i sử dụ ng cuố i, nhữ ng ngư ờ i viế t chư ơ ng trình ứ ng dụ ng và
nhữ ng ngư ờ i điề u khiể n toàn bộ hệ thố ng hay còn gọ i là ngư ờ i quả n trị CSDL.
- Phầ n mề m quả n trị CSDL.
- Phầ n cứ ng củ a hệ bao gồ m các thiế t bị nhớ thứ cấ p đư ợ c sử dụ ng để lư u trữ CSDL.
1.2. Các khả năng củ a mộ t hệ quả n trị CSDL.
Có hai khả năng cho phép phân biệ t các hệ quả n trị CSDL vớ i các kiể u hệ thố ng lậ p trình khác:
- Khả năng quả n lý dữ liệ u tồ n tạ i lâu dài;
- Khả năng truy nhậ p các khố i lư ợ ng dữ liệ u lớ n mộ t cách hiệ u quả .
Đặ c điể m thứ nhấ t chỉ ra rằ ng có mộ t CSDL tồ n tạ i trong mộ t thờ i gian dài, nộ i dung củ a CSDL
này là các dữ liệ u mà mộ t hệ quả n trị CSDL truy nhậ p và quả n lý. Đặ c điể m thứ hai phân biệ t mộ t
hệ quả n trị vớ i mộ t hệ thố ng xử lý tệ p cũ ng quả n lý dữ liệ u tồ n tạ i lâu dài như ng nói chung không
cung cấ p các truy nhậ p nhanh chóng đế n các bộ phậ n dữ liệ u tùy ý.
Các khả năng củ a mộ t hệ quả n trị CSDL hầ u hế t là cầ n thiế t khi khố i lư ợ ng dữ liệ u cầ n lư u trữ
là rấ t lớ n, bở i vì các khố i lư ợ ng dữ liệ u nhỏ thì các kỹ thuậ t truy nhậ p đơ n giả n, chẳ ng hạ n quét tuầ n
tự các dữ liệ u là thích hợ p.
Khi xem xét hai đặ c điể m trên củ a mộ t hệ quả n trị CSDL là cơ bả n, còn mộ t số các khả năng
khác mà có thể thấ y trong hầ u hế t các hệ quả n trị CSDL thư ơ ng mạ i, đó là:
- Hỗ trợ ít nhấ t mộ t mô hình dữ liệ u hay mộ t sự trừ u tư ợ ng toán họ c mà qua đó ngư ờ i sử dụ ng
có thể quan sát dữ liệ u.
http://www.ebook.edu.vn
8
- Đả m bả o tính độ c lậ p dữ liệ u hay sự bấ t biế n củ a các chư ơ ng trình ứ ng dụ ng đố i vớ i các thay
đổ i về cấ u trúc trong mô hình dữ liệ u.
- Hỗ trợ các ngôn ngữ cấ p cao nhấ t định cho phép ngư ờ i sử dụ ng định nghĩa cấ u trúc củ a dữ
liệ u, truy nhậ p dữ liệ u và thao tác dữ liệ u.
- Quả n trị giao dịch, có nghĩa là khả năng cung cấ p các truy cậ p đồ ng thờ i, đúng đắ n đố i vớ i
CSDL từ nhiề u ngư ờ i sử dụ ng tạ i cùng mộ t thờ i điể m.
- Điề u khiể n truy cậ p, có nghĩa là khả năng hạ n chế truy nhậ p đế n dữ liệ u bở i nhữ ng ngư ờ i sử
dụ ng không đư ợ c cấ p phép và khả năng kiể m tra tính đúng đắ n củ a dữ liệ u.
- Phụ c hồ i dữ liệ u, có nghĩa là khả năng phụ hồ i, không làm mấ t mát dữ liệ u đố i vớ i các lỗ i củ a
hệ thố ng.
http://www.ebook.edu.vn
9
Chư ơ ng 2. Cơ sở dữ liệ u hư ớ ng đố i tư ợ ng
2.1. Nhu cầ u về hệ thố ng CSDL hư ớ ng đố i tư ợ ng
Nhìn chung hệ quả n trị CSDL quan hệ đư ợ c sử dụ ng nhiề u như ng chư a đáp ứ ng đư ợ c hế t các
yêu cầ u củ a thự c thế . Bên cạ nh mô hình quan hệ , mô hình mạ ng và phân cấ p vẫ n tồ n tạ i. Mộ t số
hạ n chế củ a hệ quả n trị CSDL quan hệ .
2.1.1. Các đố i tư ợ ng phứ c tạ p
Mộ t cách hình thứ c, mộ t đố i tư ợ ng nhằ m xác định mộ t cấ u trúc phứ c tạ p. Ví dụ : Các đố i tư ợ ng
có cấ u trúc phứ c tạ p thư ờ ng thấ y là mộ t siêu văn bả n, mộ t lư ợ c đồ , bứ c ả nh hay chư ơ ng trình. Sự
phứ c tạ p củ a các đố i tư ợ ng này thể hiệ n qua: - Cấ u trúc củ a đố i tư ợ ng; - Mô hình hóa các đố i tư ợ ng;
- Ngôn ngữ hỏ i trên các đố i tư ợ ng.
Bình thư ờ ng, CSDL quan hệ xử lý các loạ i dữ liệ u quen thuộ c như số , chữ , ngày tháng, logic.
Vớ i các loạ i dữ liệ u này, chư a thể thể hiệ n các loạ i dữ liệ u định tính hay mộ t danh sách.
Chính vì vậ y ngư ờ i ta đòi hỏ i mô hình hóa các đố i tư ợ ng phứ c tạ p và xử lý chúng trong hệ quả n
trị nhờ ngôn ngữ chư ơ ng trình. Các đố i tư ợ ng phứ c tạ p đư ợ c coi như các kí tự , các dữ liệ u phứ c.
Trong chư ơ ng trình, chúng đư ợ c mô tả theo các kiể u đặ c biệ t. Giả i pháp này đụ ng chạ m đế n các
khái niệ m cũ ng quan trọ ng khác là hiệ n tư ợ ng dư thừ a mã khi mô tả các đố i tư ợ ng phứ c tạ p trong
chư ơ ng trình ứ ng dụ ng, đụ ng chạ m đế n sự phụ thuộ c chư ơ ng trình/dữ liệ u. Như vậ y việ c xử lý các
dữ liệ u phứ c, có kích thư ớ c lớ n theo giả i pháp đó là không hiệ u quả .
Hơ n nữ a, do cấ u trúc dữ liệ u hiệ n tạ i là quá đơ n giả n, không thể dùng cho mô hình hóa các đố i
tư ợ ng phứ c tạ p, thí dụ đố i tư ợ ng trong hệ thố ng phân cấ p hay đồ thị.
Ví dụ 2.1. Mộ t đố i tư ợ ng phứ c tạ p, chẳ ng hạ n trong CAD, thư ờ ng đư ợ c phân rã và đặ t trong các
quan hệ nhỏ ; chính vì vậ y mà thông tin ngữ nghĩa sẵ n có trong mộ t vấ n đề bị chia nhỏ ra, phân tán
dư ớ i dạ ng các giá trị trong các quan hệ . Điề u này khiế n ngư ờ i sử dụ ng phả i nhìn thế giớ i củ a bài
toán theo cách nhìn củ a CSDL quan hệ . Để có thể khôi phụ c các ngữ nghĩa ban đầ u, không tránh
đư ợ c việ c yêu cầ u các phép kế t nố i quan hệ , là phép toán tố n kém tài nguyên để thự c hiệ n.
Ngoài việ c mô hình hóa, việ c truy vấ n CSDL thông qua ngôn ngữ cũ ng cầ n phả i xem xét. Khó
có thể có ngôn ngữ lý tư ở ng trên các đố i tư ợ ng phứ c tạ p. Cũ ng có thể sử dụ ng các ngôn ngữ lậ p
trình để giả i quyế t như ng sẽ gặ p khó khăn về sự khác biệ t giữ a kiể u dữ liệ u và cách khai thác dữ
liệ u củ a ngôn ngữ lậ p trình và ngôn ngữ CSDL. Ngôn ngữ truy vấ n CSDL thì dự a trên cơ sở tậ p
hợ p, trong khi ngôn ngữ lậ p trình dự a trên các thủ tụ c.
Các ứ ng dụ ng về CSDL đư ợ c nhìn nhậ n theo hai khía cạ nh:
- Khía cạ nh tĩnh: thể hiệ n qua các dữ liệ u.
- Khía cạ nh độ ng: thể hiệ n qua các phép xử lý tác độ ng lên dữ liệ u.
Ngư ờ i ta thấ y nhữ ng đố i tư ợ ng đư ợ c hệ quả n trị CSDL quan hệ xử lý đặ c biệ t là dữ liệ u tĩnh.
Phầ n tác độ ng củ a chúng, tứ c các hoạ t độ ng, đư ợ c mô tả riêng biệ t thông qua các chư ơ ng trình ứ ng
dụ ng tác độ ng lên các dữ liệ u. Ngư ờ i lậ p trình phả i biế t cấ u trúc quan hệ củ a các đố i tư ợ ng, bở i lẽ
hệ quả n trị CSDL quan hệ không đáp ứ ng nhữ ng nhu cầ u về các đố i tư ợ ng độ ng.
2.1.2. Quả n lý các tri thứ c
http://www.ebook.edu.vn
10
Mộ t quan hệ đư ợ c tổ chứ c như mộ t tậ p các n-bộ , thể hiệ n nhữ ng sự kiệ n. Mộ t hệ quả n trị
CSDL quan hệ cho phép xử lý các sự kiệ n, các tri thứ c dư ớ i dạ ng tổ ng quát và trừ u tư ợ ng.
Ngư ờ i ta sử dụ ng tri thứ c này theo hai khía cạ nh, ứ ng vớ i hai cách suy luậ n:
- Đư a ra sự kiệ n mớ i, dự a trên các sự kiệ n và các tri thứ c đã biế t.
- Sử dụ ng để trả lờ i các câu hỏ i cầ n đế n suy luậ n.
Do vậ y việ c quả n lý các tri thứ c trong CSDL là nhu cầ u thự c tế , nhấ t là đố i vớ i các ứ ng dụ ng
cầ n đế n các kiế n thứ c chuyên gia.
Hệ quả n trị CSDL sử dụ ng các điề u kiệ n toàn vẹ n. Điề u kiệ n ràng buộ c dư ớ i dạ ng các tri thứ c
cầ n giớ i thiệ u loạ i dữ liệ u đặ c biệ t là tri thứ c trong cả các chứ c năng quả n trị và ngôn ngữ ngư ờ i sử
dụ ng. Khi đư a tri thứ c vào ngôn ngữ hỏ i dữ liệ u hay ngôn ngữ chư ơ ng trình ngư ờ i ta cầ n giả i quyế t:
- Tri thứ c đư ợ c mã hóa trong chư ơ ng trình ứ ng dụ ng thư ờ ng hay mắ c như ợ c điể m là mô tả dữ
liệ u trùng lặ p.
- Việ c quả n lý mố i liên hệ giữ a nhữ ng ngư ờ i sử dụ ng có dùng tri thứ c khó có thể tố t như việ c
quả n lý trong trư ờ ng hợ p chỉ sử dụ ng các dữ liệ u định lư ợ ng.
- Việ c suy luậ n vớ i khố i lư ợ ng lớ n các thông tin như các sự kiệ n và tri thứ c trong hệ quả n trị
CSDL có thể nặ ng nề , dẫ n đế n việ c làm mấ t tính hiệ u quả củ a toàn bộ hệ thố ng.
2.1.3. Quả n trị các dữ liệ u phân tán
Mộ t hệ quả n trị CSDL thông thư ờ ng đư ợ c tổ chứ c như mộ t phầ n mề m cổ điể n và đư ợ c cài đặ t
trên mộ t máy tính tậ p trung. Hiệ n nay môi trư ờ ng tin họ c phụ c vụ các công tác đa dạ ng vớ i các đố i
tư ợ ng phứ c tạ p hơ n, khiế n ngư ờ i ta phả i dùng đế n hệ thố ng không tậ p trung và xử lý song song.
Như vậ y cầ n có công cụ khác là hệ quả n trị CSDL phân tán.
Hệ phân tán tạ o lậ p do việ c tậ p hợ p các máy nố i nhau theo mạ ng truyề n thông dùng cho mộ t
công việ c tổ ng thể và đư ợ c quả n lý trên địa bàn rộ ng lớ n. Yêu cầ u đặ t ra ở đây là quả n trị và xử lý
nhữ ng dữ liệ u phân tán tạ i các máy độ c lậ p. Các trạ m độ c lậ p ấ y đã có các hệ quả n trị, như ng không
hoàn toàn giố ng nhau.
Để khai thác dữ liệ u theo hệ thố ng quả n trị CSDL phân tán, ngư ờ i ta không thể không thay đổ i
hệ quả n trị cũ . Ít ra cũ ng phả i mở rộ ng hệ quả n trị CSDL tậ p trung. Hệ thố ng phân tán cũ ng đòi hỏ i
các chứ c năng xử lý song song.
Các hệ thố ng vớ i các chứ c năng xử lý song song đư ợ c thiế t lậ p để khai thác các khả năng xử lý
song song củ a máy đa bộ xử lý. Đi đôi vớ i các thiế t bị cho phép xử lý dữ liệ u mộ t cách song song,
cũ ng có các ngôn ngữ bậ c cao cho phép mô tả dữ liệ u phân tán và mô tả song song các chứ c năng
xử lý.
Như ợ c điể m củ a các hệ quả n trị CSDL thế hệ hai đòi hỏ i đư a ra các hệ thố ng tiên tiế n. Đó là các
CSDL hư ớ ng đố i tư ợ ng, CSDL suy diễ n và CSDL phân tán.
2.1.4. Nhu cầ u về hệ thố ng CSDL hư ớ ng đố i tư ợ ng
Các thí dụ về CSDL thư ờ ng lấ y từ lĩnh vự c xử lý dữ liệ u truyề n thố ng. Mộ t ứ ng dụ ng xử lý dữ
liệ u có đặ c trư ng là dùng các tệ p dữ liệ u, xử lý dữ liệ u tệ p để đáp ứ ng các yêu cầ u. Các công nghệ
CSDL quan hệ , mạ ng hay phân cấ p đề u thể hiệ n các tiế p cậ n khác nhau nhằ m tích hợ p các tệ p dữ
liệ u để đáp ứ ng nhu cầ u ứ ng dụ ng. Các điể m mạ nh củ a CSDL quan hệ đã khiế n chúng chiế m ư u thế
trên thị trư ờ ng CSDL. Tuy nhiên việ c tăng tính khái quát, trừ u tư ợ ng củ a các kiể u dữ liệ u do máy
xử lý lạ i là điể m yế u củ a công nghệ quan hệ . Trư ớ c khi đề cậ p vấ n đề hư ớ ng đố i tư ợ ng trong
http://www.ebook.edu.vn
11
CSDL, bên cạ nh các hạ n chế củ a CSDL quan hệ , ngư ờ i ta còn thấ y các hạ n chế nêu trên về hệ
thố ng CSDL nói chung, về phạ m vi ngữ nghĩa, về cấ u trúc dữ liệ u, về tính chủ độ ng và tính toàn
vẹ n dữ liệ u.
1. Phạ m vi ngữ nghĩa: Lý thuyế t quan hệ chỉ hỗ trợ mộ t phầ n các khái niệ m ngữ nghĩa. Nhiề u
khái niệ m về ngữ nghĩa không thể hiệ n qua mô hình quan hệ đư ợ c.
2. Cấ u trúc dữ liệ u: Các hệ thố ng quan hệ bị hạ n chế bớ t về cấ u trúc dữ liệ u. Trong hệ thố ng
quan hệ các dữ liệ u đư ợ c tổ chứ c thành bả ng gồ m các thuộ c tính đơ n. Nhiề u kiể u thông tin không
phù hợ p vớ i cách thể hiệ n này.
3. Tính thụ độ ng củ a dữ liệ u: Trong hệ thố ng quan hệ , dữ liệ u hầ u hế t là thụ độ ng. Các chư ơ ng
trình ứ ng dụ ng có vai trò kích hoạ t các dữ liệ u này, để dữ liệ u trở nên linh độ ng. Trong mô hình
hư ớ ng đố i tư ợ ng, ngư ờ i ta có thể biế t đư ợ c hành vi cũ ng như cấ u trúc dữ liệ u.
4. Toàn vẹ n ngữ nghĩa: Đả m bả o tính toàn vẹ n ngữ nghĩa là có thể giữ đư ợ c tính bề n vữ ng củ a
ngữ nghĩa CSDL dư ớ i tác độ ng củ a các chư ơ ng trình. Hệ thố ng quan hệ quả n lý hành vi củ a dữ liệ u
theo các chư ơ ng trình ứ ng dụ ng. Cùng mộ t dữ liệ u có thể mang các hành vi khác nhau, nên dữ liệ u
cầ n có ý nghĩa khác nhau tùy theo chư ơ ng trình sử dụ ng, dễ gây nên tình trạ ng vi phạ m tính toàn
vẹ n dữ liệ u. Nhữ ng tình huố ng kém khả năng như vậ y củ a CSDL quan hệ sẽ đư ợ c CSDL hư ớ ng đố i
tư ợ ng khắ c phụ c, nhấ t là đố i vớ i các đố i tư ợ ng dữ liệ u phứ c tạ p và có khố i lư ợ ng lớ n các thông tin
ngữ nghĩa. Các lĩnh vự c điể n hình cầ n đế n CSDL hư ớ ng đố i tư ợ ng là:
- CSDL đa phư ơ ng tiệ n, cầ n lư u trữ khố i lư ợ ng lớ n các tín hiệ u âm thanh, hình ả nh và văn bả n;
cầ n liên kế t nhiề u kiể u dữ liệ u.
- Các hệ thố ng thông tin địa lý, cầ n xử lý nhiề u loạ i dữ liệ u thố ng kê, bả n đồ ; các dữ liệ u đư ợ c
thu thậ p từ nhiề u vùng khác nhau.
- Các CSDL phụ c vụ thiế t kế gồ m các sơ đồ , nhiề u thành phầ n dữ liệ u phứ c tạ p liên kế t nhau.
Mộ t thiế t kế đòi hỏ i xử lý qua nhiề u giai đoạ n, nhiề u thế hệ .
2.2. Khái niệ m về hư ớ ng đố i tư ợ ng
Để thấ y quan điể m về hư ớ ng đố i tư ợ ng, hãy xét mộ t vậ t trong thế giớ i thự c là chiế c ghế . Ghế là
mộ t phầ n tử , hay là mộ t thể hiệ n củ a lớ p rộ ng hơ n gọ i là đồ đạ c. Mộ t tậ p các thuộ c tính liên kế t vớ i
đố i tư ợ ng trong lớ p đồ đạ c, chẳ ng hạ n giá thành, kích thư ớ c, trọ ng lư ợ ng, vị trí và mầ u sắ c. Nhữ ng
điề u này đư ợ c áp dụ ng mỗ i khi ngư ờ i ta nói về cái bàn hay cái ghế , tủ …. Bở i vì ghế là thành viên
củ a lớ p đồ đạ c, nó thừ a kế tấ t cả các thuộ c tính đã xác định cho lớ p.
Mỗ i đố i tư ợ ng trong lớ p đồ đạ c có thể đư ợ c xử lý theo nhiề u cách. Mỗ i phép xử lý này sẽ thay
đổ i mộ t hay nhiề u thuộ c tính củ a đố i tư ợ ng và chúng đư ợ c gọ i là dịch vụ hay phư ơ ng pháp trên đố i
tư ợ ng.
Các đố i tư ợ ng sẽ bao bọ c:
- Dữ liệ u thông qua giá trị thuộ c tính.
- Các phép toán như các hoạ t độ ng có tác dụ ng thay đổ i giá trị thuộ c tính.
- Các đố i tư ợ ng khác, như là các đố i tư ợ ng phứ c tạ p.
- Các hằ ng số , như các giá trị mặ c định.
- Các thông tin liên quan.
http://www.ebook.edu.vn
12
Việ c bao bọ c thông tin củ a các đố i tư ợ ng có nghĩa là tấ t cả thông tin này đư ợ c thu gọ n lạ i
dư ớ i mộ t tên và có thể đư ợ c dùng như mộ t đặ c tả hay mộ t thành phầ n chư ơ ng trình.
2.2.1. Đố i tư ợ ng
Khái niệ m về đố i tư ợ ng là khái niệ m sinh ra từ việ c nhậ n thứ c thế giớ i thự c. Mộ t đố i tư ợ ng có
các đặ c tính sau:
- Mang tên duy nhấ t, không thay đổ i.
- Thuộ c về mộ t lớ p.
- Có thể gử i các thông báo đế n các đố i tư ợ ng khác.
- Có trạ ng thái riêng.
Định nghĩa 2.1. Đố i tư ợ ng là mộ t thự c thể có vai trò xác định rõ ràng trong lĩnh vự c ứ ng dụ ng,
có trạ ng thái, hành vi và đư ợ c xác định tên.
Ví dụ về các đố i tư ợ ng thuộ c lớ p Ngư ờ i. Chúng liên lạ c vớ i nhau thông qua thông báo. Thông
báo là dạ ng các thao tác áp dụ ng lên đố i tư ợ ng. Thao tác trong môi trư ờ ng hư ớ ng đố i tư ợ ng đư ợ c
gọ i là phư ơ ng pháp. Chẳ ng hạ n phư ơ ng pháp kế t hôn tác độ ng lên đố i tư ợ ng để biế t đố i tư ợ ng này
kế t hôn vớ i ai.
Định nghĩa 2.2. Trạ ng thái bao gồ m tính chấ t củ a đố i tư ợ ng, như là thuộ c tính và các mố i quan
hệ , và nhữ ng giá trị gán cho các tính chấ t đó.
Định nghĩa 2.3. Phép toán là mộ t hàm số hay mộ t dịch vụ mà tấ t cả các thể hiệ n củ a lớ p đề u
chấ p nhậ n.
Định nghĩa 2.4. Phư ơ ng pháp là việ c thự c hiệ n củ a mộ t phép toán.
Hành vi và cấ u trúc củ a mộ t đố i tư ợ ng trong môi trư ờ ng lậ p trình hư ớ ng đố i tư ợ ng hoàn toàn do
lớ p đố i tư ợ ng xác định. Lớ p là khái niệ m cơ bả n trong tiế p cậ n hư ớ ng đố i tư ợ ng.
Định nghĩa 2.5. Hành vi là thể hiệ n cách thứ c tác độ ng củ a mộ t mộ t đố i tư ợ ng.
2.2.2. Lớ p đố i tư ợ ng
Mộ t lớ p đố i tư ợ ng có giao diệ n và miề n riêng. Giao diệ n củ a đố i tư ợ ng là cái mà các đố i tư ợ ng
khác thấ y đư ợ c. Giao diệ n lớ p đố i tư ợ ng gồ m hai thành phầ n sau:
1. Thuộ c tính củ a lớ p: Trong chừ ng mự c nào đó các thuộ c tính củ a lớ p đư ợ c coi tư ơ ng đư ơ ng
vớ i các thuộ c tính củ a quan hệ . Đư ơ ng nhiên thông qua thuộ c tính lớ p ngư ờ i ta có thể thể hiệ n các
liên kế t giữ a các đố i tư ợ ng, hay trong lớ p cũ ng có thuộ c tính ả o, chẳ ng hạ n thuộ c tính tuổ i có giá trị
tùy thuộ c vào thuộ c tính ngày sinh. Đố i vớ i lớ p, không có hạ n chế gì về cách thứ c cấ u trúc thuộ c
tính hay cách liên kế t vớ i nhau. Các thuộ c tính có thể là đố i tư ợ ng, dùng để tạ o đố i tư ợ ng phứ c tạ p
hơ n. Ngư ờ i ta không xử lý trự c tiế p các giá trị thuộ c tính củ a đố i tư ợ ng mà xử lý thông qua các
phư ơ ng pháp liên kế t vớ i lớ p đố i tư ợ ng.
2. Phư ơ ng pháp gắ n vớ i lớ p đố i tư ợ ng: Các thông báo chuyể n đế n lớ p đố i tư ợ ng nhờ phư ơ ng
pháp gắ n vớ i lớ p đố i tư ợ ng. Chúng thư ờ ng có dạ ng các phép toán, các hàm vớ i các tham số . Các
đố i tư ợ ng trong mộ t lớ p chỉ có thể đư ợ c truy cậ p thông qua các phư ơ ng pháp. Tạ i mứ c giao diệ n,
phầ n hiệ n rõ là tên phư ơ ng pháp và các tham số cầ n cho phư ơ ng pháp này.
Định nghĩa 2.6. Lớ p đố i tư ợ ng là tậ p các đố i tư ợ ng có chung cấ u trúc và hành vi.
http://www.ebook.edu.vn
13
Định nghĩa 2.7. Sơ đồ lớ p cho biế t cấ u trúc tĩnh củ a mô hình hư ớ ng đố i tư ợ ng, đó là các lớ p
đố i tư ợ ng, cấ u trúc bên trong củ a chúng, và mố i quan hệ mà chúng tham gia.
Miề n riêng củ a lớ p đố i tư ợ ng là phầ n xác định lớ p, như ng không hiệ n ra cho đố i tư ợ ng khác
thấ y. Miề n này có thể gồ m các thông tin chi tiế t về cấ u trúc củ a lớ p đố i tư ợ ng. Trong chư ơ ng trình
ngư ờ i ta có thể cài đặ t che giấ u các giá trị, ngay cả các liên kế t cũ ng bị che giấ u, cũ ng như không
thấ y đư ợ c các thông báo. Việ c bả o vệ thông tin làm việ c bên trong cùng vớ i các giá trị đố i tư ợ ng
trư ớ c các sử dụ ng thông thư ờ ng này đư ợ c gọ i là che dấ u thông tin.
Mộ t khái niệ m quan trọ ng trọ ng trong OOP là bao bọ c, có nghĩa mọ i vấ n đề về đố i tư ợ ng đề u
đư ợ c nhậ n biế t thông qua định nghĩa lớ p đố i tư ợ ng. Ngư ờ i ta truy cậ p khái niệ m nhờ giao diệ n lớ p
và xác định các hành vi thông qua việ c xác định lớ p.
Định nghĩa 2.8. Sơ đồ đố i tư ợ ng là đồ thị gồ m các thể hiệ n củ a đố i tư ợ ng, tư ơ ng thích vớ i sơ đồ
lớ p.
Định nghĩa 2.9. Bao gói, hay bao bọ c là kĩ thuậ t che giấ u, làm ẩ n nhữ ng chi tiế t về cài đặ t bên
trong củ a đố i tư ợ ng đố i vớ i các truy cậ p từ bên ngoài.
2.2.3. Cá thể
Cá thể hóa là quá trình khẳ ng định sự tồ n tạ i củ a các đố i tư ợ ng trong môi trư ờ ng hư ớ ng đố i
tư ợ ng, bằ ng việ c xác định lớ p củ a chúng. Mỗ i đố i tư ợ ng là mộ t cá thể củ a lớ p; thư ờ ng đư ợ c dùng
vớ i thuậ t ngữ thể hiệ n củ a lớ p.
2.2.4. Kế thừ a
Khái niệ m kế thừ a là khái niệ m quan trọ ng trong tiế p cậ n hư ớ ng đố i tư ợ ng. Ngư ờ i ta thư ờ ng
dụ ng thuậ t ngữ này khi chỉ định lớ p đố i tư ợ ng này tiế p thụ , thừ a kế các thuộ c tính củ a lớ p đố i tư ợ ng
khác. Tuy nhiên mỗ i lớ p con có thể mạ ng mộ t số thuộ c tính hay phư ơ ng pháp riêng.
Định nghĩa 2.l0. Kế thừ a là tính chấ t cho phép các lớ p con kế thừ a nhữ ng thuộ c tính, phép toán
củ a lớ p cha.
Việ c kế thừ a nhiề u lầ n xẩ y ra khi mộ t lớ p kế thừ a từ nhiề u lớ p.
2.3. CSDL hư ớ ng đố i tư ợ ng
Dù có nhiề u ngôn ngữ hư ớ ng đố i tư ợ ng, đa số CSDL hư ớ ng đố i tư ợ ng dự a trên C++. Lự a chọ n
này là do tính hiệ u quả và thông dụ ng củ a C++.
Thự c tế CSDL hư ớ ng đố i tư ợ ng có các ư u điể m:
- Cho phép xét các liên kế t đố i tư ợ ng dư ớ i dạ ng các phép lư u trữ vớ i các đố i tư ợ ng.
- Các đố i tư ợ ng đư ợ c phép dùng chung cho nhiề u ngư ờ i sử dụ ng.
- Khả năng phát triể n kho tri thứ c bằ ng cách thêm các đố i tư ợ ng mớ i và các phép xử lý kèm
theo.
- Phát triể n hệ quả n trị CSDL dự a trên việ c xử lý các đố i tư ợ ng phứ c tạ p, thiế t kế giao diệ n
chư ơ ng trình, mô tả đố i tư ợ ng độ ng và trừ u tư ợ ng.
Hệ quả n trị CSDL hư ớ ng đố i tư ợ ng là hệ quả n trị cho phép lư u trữ và chia sẻ các đố i tư ợ ng vớ i
nhiề u ứ ng dụ ng. Hệ thố ng hư ớ ng đố i tư ợ ng là sự mở rộ ng có ý nghĩa củ a lậ p trình hư ớ ng đố i tư ợ ng.
Trong môi trư ờ ng OOP các đố i tư ợ ng đư ợ c coi như các biế n chư ơ ng trình, chỉ tồ n tạ i vớ i vòng đờ i
củ a chư ơ ng trình đã tạ o ra và sử dụ ng đố i tư ợ ng. Còn trong hệ thố ng CSDL hư ớ ng đố i tư ợ ng, các
đố i tư ợ ng là bề n vữ ng hơ n. Thuậ t ngữ bề n vữ ng đư ợ c dùng vớ i nghĩa đố i tư ợ ng tồ n tạ i không lệ
http://www.ebook.edu.vn
14
thuộ c vào vòng đờ i củ a chư ơ ng trình tạ o ra nó. Chư ơ ng trình khác có thể truy cậ p hay hủ y bỏ đố i
tư ợ ng này. Hệ thố ng CSDL hư ớ ng đố i tư ợ ng có các nét đặ c trư ng sau:
- Ngôn ngữ CSDL có khả năng mô tả lớ p đố i tư ợ ng, tao sinh, lư u trữ và xóa đố i tư ợ ng.
- Các đố i tư ợ ng cho phép chư ơ ng trình ứ ng dụ ng truy cậ p. Mỗ i đố i tư ợ ng trong kho các đố i
tư ợ ng có tên duy nhấ t OID. Khái niệ m OID khác vớ i khái niệ m khóa chính trong cơ sở dữ liêu quan
hệ . Khóa chính là tậ p các thuộ c tính xác định duy nhấ t bộ dữ liệ u, mang giá trị có thể thay đổ i đư ợ c.
Trong hệ thố ng hư ớ ng đố i tư ợ ng, OID thư ờ ng là chuỗ i 64, 128bit hoặ c cao hơ n và mang giá trị
không thay đổ i.. Mộ t đố i tư ợ ng cũ ng có thể có các thuộ c tính mang vai trò như khóa chính trong
CSDL quan hệ . Điề u này hoàn toàn phụ thuộ c vào việ c xác định lớ p. Việ c gán OID hoàn toàn do hệ
quả n trị CSDL hư ớ ng đố i tư ợ ng thự c hiệ n.
Kho đố i tư ợ ng là nơ i chứ a dữ liệ u tạ o nên CSDL hư ớ ng đố i tư ợ ng. Hệ quả n trị CSDL hư ớ ng
đố i tư ợ ng cầ n có các chứ c năng cơ bả n như hệ quả n trị CSDL bình thư ờ ng, như điề u khiể n tư ơ ng
tranh, an toàn dữ liệ u, toàn vẹ n dữ liệ u… Thự c ra, hệ quả n trị CSDL hư ớ ng đố i tư ợ ng hoạ t độ ng
như hệ quả n trị thư ờ ng, vớ i sự tham giá củ a phầ n mề m hư ớ ng đố i tư ợ ng để truy cậ p các đố i tư ợ ng.
2.4. Thiế t kế CSDL hư ớ ng đố i tư ợ ng
Để xác định rõ việ c thự c hiệ n CSDL hư ớ ng đố i tư ợ ng theo các dạ ng tiế p cầ n, trư ớ c hế t cầ n xác
định cách thứ c thiế t kế mộ t hệ thố ng hư ớ ng đố i tư ợ ng.
Mộ t CSDL hư ớ ng đố i tư ợ ng gồ m các đố i tư ợ ng; tấ t cả các thứ thuộ c về lớ p. Để xây dự ng mô
hình khái niệ m cho CSDL hư ớ ng đố i tư ợ ng, ngư ờ i ta cầ n xác định tậ p các lớ p đố i tư ợ ng.
Lớ p đố i tư ợ ng đư ợ c xác định nhờ các thuộ c tính và phư ơ ng thứ c thứ c. Ngư ờ i ta cũ ng phả i xác
định sự tư ơ ng tác giữ a các lớ p. Khái niệ m về lớ p cũ ng tư ơ ng tự như kiể u dữ liệ u đã giớ i thiệ u trư ớ c
đây.
2.4.1. Phân lớ p
Quá trình phân lớ p liên quan đế n việ c định tên đố i tư ợ ng vớ i các thuộ c tính, hành vi tư ơ ng tự
nhau và nhóm các đố i tư ợ ng vào cùng mộ t lớ p. Theo thí dụ về sơ đồ ngư ờ i ta xác định sơ đồ vớ i các
thuộ c tính tên, ngày tạ o, hình vẽ . Các phép toán chung là lư u trữ tìm kiế m, vẽ .
Trong đoạ n chư ơ ng trình trên, danh sách các trư ờ ng và các kiể u dữ liệ u đơ n giả n dùng cho các
sơ đồ đư ợ c liệ t kê trong mụ c thuộ c tính. Tiế p theo là các phư ơ ng thứ c, có tên và các tham số . Có
mộ t số phư ơ ng thứ c như tạ o mớ i, xóa… áp dụ ng cho tấ t cả các đố i tư ợ ng trong CSDL.
Tấ t cả các định nghĩa về giao diệ n lớ p đố i tư ợ ng cầ n có phép toán tạ o mớ i và hủ y bỏ đố i tư ợ ng.
Quá trình phân lớ p sẽ tạ o ra lớ p củ a các đố i tư ợ ng có các thuộ c tính, phư ơ ng thứ c chung, và mộ t vài
đố i tư ợ ng có thuộ c tính và phư ơ ng thứ c riêng. Lúc đó ngư ờ i ta cầ n đế n khái niệ m tổ ng quát hóa và
chuyên biệ t hóa.
2.4.2. Tổ ng quát hóa và đặ c biệ t hóa
Tổ ng quát hóa là quá trình xác định lớ p đố i tư ợ ng mang các thuộ c tính tư ơ ng tự và theo sự
tư ơ ng tự này ngư ờ i ta có thể trừ u tư ợ ng hóa để đư ợ c lớ p cao hơ n, hay lớ p cha. Chẳ ng hạ n ban đầ u
ngư ờ i ta xác định lớ p hình tam giác, hình vuông, hình chữ nhậ t, và hình tròn rồ i trừ u tư ợ ng hóa
thành lớ p cao hơ n về sơ đồ , gồ m các thuộ c tính chung củ a tấ t cả các sơ đồ .
Định nghĩa 2.11. Lớ p trừ u tư ợ ng là lớ p không có thể hiệ n trự c tiế p, như ng các thành phân sau
nó có thể có thể hiệ n trự c tiế p.
Định nghĩa 2.12. Lớ p cụ thể là lớ p có thể có các thể hiệ n trự c tiế p.
http://www.ebook.edu.vn
15
Chuyên biệ t hóa là quá trịnh ngư ợ c lạ i vớ i tổ ng quát hóa. Bắ t đầ u từ lớ p sơ đồ , ngư ờ i ta có thể
xác định lớ p con để phân biệ t các loạ i sơ đồ khác nhau; mỗ i lớ p con chia sẻ thuộ c tính và phư ơ ng
thứ c chung trong lớ p sơ đồ như ng có các thuộ c tính và phư ơ ng thứ c dùng riêng.
Ngư ờ i ta dùng cây phân cấ p để thể hiệ n quá trình tổ ng quát hóa. Phân cấ p nả rấ t có ý nghĩa
trong hệ thố ng hư ớ ng đố i tư ợ ng, để chỉ ra dãy các thừ a kế . Khi mô tả các lớ p, ngư ờ i ta cầ n chỉ ra sự
tham gia củ a lớ p vào dãy kế thừ a này.
Hai định nghĩa lớ p đố i tư ợ ng này đề u tham chiế u đế n lớ p đố i tư ợ ng cha bằ ng câu lệ nh kế thừ a.
Lớ p tam giác thừ a kế tấ t cả các thuộ c tính và phư ơ ng thứ c củ a sơ đồ . Các thuộ c tính bổ sung cũ ng
đư ợ c mô tả ngay. Phư ơ ng thứ c tạ o mớ i đư ợ c mô tả lạ i, tính đế n các đặ c trư ng riêng củ a hình tam
giác. Phư ơ ng thứ c Diệ n tích cũ ng là phư ơ ng thứ c dùng riêng cho hình tam giác. Còn lớ p đố i tư ợ ng
Hình đề u cạ nh thì thừ a kế t tính chấ t củ lớ p Tam giác. Điề u này có nghĩa nó thừ a kế t các tính chấ t
củ a lớ p tam giác và lớ p so đồ . Lớ p đố i tư ợ ng này cũ ng có thuộ c tính riêng. Ngư ờ i ta mô tả lạ i các
phư ơ ng thứ c để phù hợ p vớ i loạ i hình này.
2.4.3. Gộ p
Gộ p là quá trình liên kế t các lớ p đố i tư ợ ng vớ i nhau để tạ o lên mộ t lớ p gộ p. Chẳ ng hạ n CSDL
ngân hàng gồ m khách hàng, tài khoả n, chi nhánh và mố i quan hệ giữ a chúng. Khi thự c hiệ n CSDL
này theo kĩ thuậ t quan hệ , ngư ờ i ta tạ o các các quan hệ tách biệ t đố i vớ i mỗ i thự c thể và dùng khái
niệ m khóa ngoài để thể hiệ n mố i quan hệ 1-n. Ngư ờ i ta cũ ng dùng quan hệ khác có khóa ngoài để
thể hiệ n quan hệ m-n giữ a khách hàng và tài khoả n. Để thiế t lậ p khung nhìn về tấ t cả thông tin liên
quan đế n mộ t tài khoả n nào đó, ngư ờ i ta cầ n nố i 4 bả ng cơ sở .
Trong CSDL hư ớ ng đố i tư ợ ng ngư ờ i ta giả i quyế t vấ n đề này nhở lớ p đố i tư ợ ng gộ p. Lớ p đăng
ký đư ợ c tạ o, liên kế t các đố i tư ợ ng kiể u khác hàng, tài khoả n, và chi nhánh. Mỗ i đố i tư ợ ng đăng ký
sẽ liên kế t mộ t khách hàng vớ i mộ t tài khoả n, có thuộ c tính đặ c biệ t cho biế t thờ i gian thự c hiệ n
đăng ký này.
2.5. Xây dự ng CSDL hư ớ ng đố i tư ợ ng
Mộ t số điề u liên quan đế n lư ợ c đồ CSDL hư ớ ng đố i tư ợ ng xuấ t hiệ n khi phân lớ p đố i tư ợ ng,
tổ ng quát hóa, đặ c biệ t hóa và gộ p. Các vấ n đề này xả y ra song song. Ngư ờ i ta không trình bày quá
trình chuyể n từ mô hình thự c thể E/R sang mô hình hư ớ ng đố i tư ợ ng bở i lẽ không có điể m tư ơ ng tự
giữ a mộ t bên là thự c thể và mố i quan hệ , mộ t bên là lớ p đố i tư ợ ng. Hơ n nữ a, mô hình E/R hầ u như
hư ớ ng dữ liệ u chứ không cho biế t về hành vi củ a thự c thể khi dự a vào hạ ng củ a quan hệ mà thự c
thể tham gia.
Sơ đồ
Hình chữ nhậ t Hình tam giác Hình tròn
Hình vuông Tam giác đề u
http://www.ebook.edu.vn
16
Việ c chuyể n hóa mô hình đố i tư ợ ng ngữ nghĩa sang CSDL hư ớ ng đố i tư ợ ng đư ợ c thự c hiệ n
như sau:
- Đố i vớ i mỗ i đố i tư ợ ng ngữ nghĩa, ngư ờ i ta tạ o mộ t lớ p đố i tư ợ ng.
- Khi có quan hệ cha con giữ a hai đố i tư ợ ng ngữ nghĩa, ngư ờ i ta thự c hiệ n liên kế t thừ a kế giữ a
lớ p đố i tư ợ ng thể hiệ n kiể u con và lớ p đố i tư ợ ng thể hiệ n kiể u cha.
- Tiế n hành gộ p và liên kế t các đố i tư ợ ng ngữ nghĩa về kiể u đố i tư ợ ng để đư ợ c các lớ p đố i
tư ợ ng gộ p.
- Giữ tính toàn vẹ n về hạ ng giữ a các đố i tư ợ ng ngữ nghĩa, duy trì việ c hợ p nhóm củ a các đố i
tư ợ ng ngữ nghĩa và phân rã kiể u con bằ ng các phư ơ ng thứ c.
Vòng đờ i phát triể n hư ớ ng đố i tư ợ ng gồ m ba pha:
- Pha phân tích: ngư ờ i ta phát triể n mô hình ứ ng dụ ng trên thế giớ i thự c, chỉ ra các thuộ c tính
quan trọ ng. Cầ n xác định các khái niệ m trừ u tư ợ ng về mô hình xuấ t phát từ lĩnh vự c ứ ng dụ ng và
các mô tả về hệ thố ng. Ngư ờ i ta xác định các hành vi chứ c năng củ a hệ thố ng, độ c lậ p vớ i môi
trư ờ ng sẽ thự c hiệ n hư ớ ng đố i tư ợ ng.
Pha thiế t kế : Cho phép xác định cách thứ c sẽ thự c hiệ n mô hình phân tích hư ớ ng đố i tư ợ ng.
Pha thự c hiệ n: Ngư ờ i ta xác định và khả o sát tấ t cả các kế t quả củ a việ c thự c hiệ n thiế t kế . Tấ t
cả các quyế t định thiế t kế chiế n lư ợ c, như là cách thứ c tích hợ p hệ quả n trị CSDL, cách liên lạ c giữ a
các đố i tư ợ ng, cách xử lý sai sót… đề u đư ợ c triể n khai. Tiế p theo ngư ờ i ta tích hợ p các quyế t định
này vào mô hình thiế t kế ban đầ u, rồ i hình thứ c hóa mô hình thiế t kế để các đố i tư ợ ng có thể tư ơ ng
tác vớ i các đố i tư ợ ng khác theo các kịch bả n.
http://www.ebook.edu.vn
17
Chư ơ ng 3. Cơ sở dữ liệ u phân tán
Thiế t kế hệ thố ng thông tin có CSDL phân tán bao gồ m:
- Phân tán và chọ n nhữ ng vị trí đặ t dữ liệ u;
- Các chư ơ ng trình ứ ng dụ ng tạ i các điể m;
- Thiế t kế tổ chứ c khai thác hệ thố ng đó trên nề n mạ ng.
3.1. Các phư ơ ng pháp phân tán dữ liệ u
3.1.1. Khái niệ m về phân tán dữ liệ u
Khi thiế t kế các hệ thố ng CSDL phân tán ngư ờ i ta thư ờ ng tậ p trung xoay quanh các câu hỏ i?
- Tạ i sao lạ i cầ n phả i phân mả nh?
- Làm thế nào để thự c hiệ n phân mả nh?
- Phân mả nh nên thự c hiệ n đế n mứ c độ nào?
- Có cách gì kiể m tra tính đúng đắ n củ a việ c phân mả nh?
- Các mả nh sẽ đư ợ c cấ p phát trên mạ ng như thế nào?
- Nhữ ng thông tin nào sẽ cầ n thiế t cho việ c phân mả nh và cấ p phát?
3.1.1.1. Các lý do phân mả nh
Trư ớ c tiên việ c phân tán dữ liệ u đư ợ c thự c hiệ n trên cơ sở cấ p phát các tậ p tin cho các nút trên
mộ t mạ ng máy tính. Các nút mạ ng thư ờ ng nằ m ở các vị trí địa lý khác nhau trả i rộ ng trên mộ t diệ n
tích lớ n. Do vậ y để tố i ư u việ c khai thác thông tin thì dữ liệ u không thể để tậ p trung mà phả i phân
tán trên các nút củ a mạ ng.
Hơ n nữ a mộ t quan hệ không phả i là mộ t đơ n vị truy xuấ t dữ liệ u tố t nhấ t. Ví dụ như , nế u ứ ng
dụ ng đư ợ c thự c hiệ n trên mộ t bộ phậ n nhỏ các dữ liệ u củ a quan hệ mà quan hệ đó nằ m tạ i các vị trí
khác nhau thì có thể gây ra nhữ ng truy xuấ t thừ a và hơ n thế việ c nhân bả n các quan hệ làm tố n
không gian bộ nhớ . Do vậ y phân rã mộ t quan hệ thành nhiề u mả nh, mỗ i mả nh đư ợ c xử lý như mộ t
đơ n vị sẽ cho phép thự c hiệ n nhiề u giao dịch đồ ng thờ i. Mộ t câu truy vấ n ban đầ u có thể đư ợ c chia
ra thành mộ t tậ p các truy vấ n con, các truy vấ n này có thể đư ợ c thự c hiệ n song song trên các mả nh
sẽ giúp cả i thiệ n tố c độ hoạ t độ ng củ a hệ thố ng.
Tuy nhiên chúng ta cũ ng sẽ gặ p nhữ ng rắ c rố i củ a việ c phân mả nh, ví dụ nế u các ứ ng dụ ng có
nhữ ng xung độ t sẽ ngăn cả n hoặ c gây khó khăn cho việ c truy xuấ t dữ liệ u. Phân rã các mả nh nói
chung làm tăng chi phí trong việ c truy xuấ t dữ liệ u. Mộ t vấ n đề nữ a liên quan đế n việ c kiể m soát
ngữ nghĩa và tính toàn vẹ n dữ liệ u.
3.1.1.2. Các kiể u phân mả nh
Thể hiệ n củ a các quan hệ chính là các bả ng, vì thế vấ n đề là tìm nhữ ng cách khác nhau để chia
mộ t bả ng thành nhiề u bả ng nhỏ hơ n. Rõ ràng có hai phư ơ ng pháp khác nhau: Chia bả ng theo chiề u
dọ c và chia bả ng theo chiề u ngang. Chia dọ c ta đư ợ c các quan hệ con mà mỗ i quan hệ chứ a mộ t tậ p
con các thuộ c tính củ a quan hệ gố c – gọ i là phân mả nh dọ c. Chia ngang mộ t quan hệ ta đư ợ c các
quan hệ con mà mỗ i quan hệ chứ a mộ t số bộ củ a quan hệ gố c - gọ i là phân mả nh ngang.
http://www.ebook.edu.vn
18
Ngoài ra còn có mộ t khả năng hỗ n hợ p, đó là phân mả nh kế t hợ p cách phân mả nh ngang và
dọ c. Tấ t nhiên quá trình phân mả nh gắ n liế n vớ i vấ n đề cấ p phát và bài toán cụ thể .
Ví dụ 3.1.
Trong ví dụ này chúng ta sử dụ ng mộ t CSDL củ a mộ t công ty máy tính thự c hiệ n các dự án
phầ n mề m gồ m các quan hệ :
DuAn(MaDuAn, Ten, KinhPhi, ViTri);
NhanVien(MaNV, Ten, ChucVu);
TrachNhiem(MaNV, MaDuAn, TrachNhiem, ThoiGianTG);
Luong(ChucVu, Luong).
Hình 3.1. Dữ liệ u củ a các bả ng
NhanVien TrachNhiem
MaNV Ten ChucVu MaNV MaDuAn TrachNhiem ThoiGianTG
E1 Hoàng Lan Ks Điệ n E1 P1 Quả n lý 12
E2 Đình Vư ợ ng Phân tích hệ thố ng E2 P1 Phân tích 24
E3 Minh Tài Ks Máy E2 P2 Phân tích 6
E4 Dư ơ ng Hà Lậ p trình viên E3 P3 Tư vấ n 10
E5 Minh Hoa Phân tích hệ thố ng E3 P4 Kỹ sư 48
E6 Văn Hiề n Ks Điệ n E4 P2 Lậ p trình viên 18
E7 Hoài Nam Ks Máy E5 P2 Quả n lý 24
E8 Vân Dũ ng Phân tích hệ thố ng E6 P4 Quả n lý 48
E7 P3 Kỹ sư 36
E8 P3 Quả n lý 40
DuAn Luong
MaDuAn Ten KinhPhi Vitri ChucVu Luong
P1 Trang thiế t bị 150000 Hà Nộ i Ks Điệ n 4000
P2 CSDL 135000 Hả i Phòng Phân tích hệ thố ng 10000
P3 CAD/CAM 250000 Hà Nộ i Ks Máy 3500
P4 Bả o Trì 310000 Quả ng Ninh Lậ p trình viên 4100
Ngư ờ i ta có thể chia ngang quan hệ DuAn Thành các quan hệ con DuAn1, DuAn2. DuAn1 chứ a
nhữ ng thông tin về các dự án có ngân sách dư ớ i 200000$, còn DuAn2 lư u các thông tin về các dự
án có ngân sách trên 200000$.
Hình 3.2. Phân mả nh ngang quan hệ DuAn
DuAn1
MaDuAn Ten KinhPhi Vitri
P1 Trang thiế t bị 150000 Hà Nộ i
P2 CSDL 135000 Hả i Phòng
DuAn2
MaDuAn Ten KinhPhi Vitri
P3 CAD/CAM 250000 Hà Nộ i
P4 Bả o Trì 310000 Quả ng Ninh
Ngoài ra cũ ng có thể phân mả nh dọ c quan hệ DuAn thành hai quan hệ DuAn3, DuAn4. DuAn3
chỉ chứ a thông tin về ngân sách củ a các dự án, còn DuAn4 lư u thông tin về tên và vị trí dự án. Điề u
cầ n lư u ý là khóa củ a quan hệ DuAn phả i xuấ t hiệ n trong cả hai mả nh.
Hình 3.3. Phân mả nh dọ c quan hệ DuAn
http://www.ebook.edu.vn
19
DuAn3 DuAn4
MaDuAn KinhPhi MaDuAn Ten Vitri
P1 150000 P1 Trang thiế t bị Hà Nộ i
P2 135000 P2 CSDL Hả i Phòng
P3 250000 P3 CAD/CAM Hà Nộ i
P4 310000 P4 Bả o Trì Quả ng Ninh
3.1.1.3. Mứ c độ phân mả nh
Phân mả nh CSDL đế n mứ c độ nào là mộ t quyế t định rấ t quan trong có ả nh hư ở ng đế n hiệ u năng
thự c hiệ n vấ n tin. Mứ c độ phân mả nh có thể là từ thái cự c không phân mả nh nào đế n thái cự c phân
mả nh thành từ ng bộ hoặ c từ ng thuộ c tính. Tuy nhiên nế u phân mả nh quá nhỏ sẽ có nhữ ng tác độ ng
không tố t đế n hoạ t độ ng khai thác CSDL. Vậ y cầ n phả i định ra đư ợ c mộ t mứ c độ phân mả nh thích
hợ p. Mứ c độ này sẽ tùy thuộ c vào từ ng CSDL và các ứ ng dụ ng CSDL cụ thể .
3.1.1.4. Quy tắ c phân mả nh đúng đắ n
Chúng ta sẽ phả i tuân thủ ba qui tắ c trong khi phân mả nh mà chúng sẽ đả m bả o CSDL không có
thay đổ i nào về mặ t ngữ nghĩa sau khi phân mả nh.
1. Tính đầ y đủ : Nế u mộ t quan hệ R đư ợ c phân mả nh thành các mả nh R
1
, R
2
,…, R
N
thì mỗ i mụ c
dữ liệ u có trong R phả i có mặ t trong mộ t hoặ c nhiề u mả nh R
i
.
2. Tính tái thiế t đư ợ c: Nế u mộ t quan hệ R đư ợ c phân mả nh thành R
1
, R
2
,…, R
N
thì cầ n phả i
định nghĩa mộ t toán tử tái thiế t O sao cho:
R = OR
i
, i = 1..N.
Toán tử O thay đổ i tùy theo từ ng loạ i phân mả nh; thông thư ờ ng khi phân mả nh ngang thì O là
phép toán hợ p còn phân mả nh dọ c là phép toán kế t nố i.
3. Tính tách biệ t: Nế u quan hệ R đư ợ c phân mả nh ngang thành các mả nh R
1
, R
2
,…, R
N
và mụ c
dữ liệ u t
i
nằ m trong mả nh r
i
, thì nó sẽ không nằ m trong các mả nh R
k
vớ i k = j. Tiêu chuẩ n này đả m
bả o rằ ng các mả nh ngang sẽ tách biệ t vớ i nhau. Nế u quan hệ đư ợ c phân mả nh dọ c, các thuộ c tính
khóa chính phả i đư ợ c lặ p lạ i trong mỗ i mả nh. Vì thế trong trư ờ ng hợ p phân mả nh dọ c, tính tách biệ t
chỉ đư ợ c định nghĩa trên các trư ờ ng không phả i là khóa chính củ a mộ t quan hệ .
3.1.1.5. Các kiể u cấ p phát
Giả sử CSDL đã đư ợ c phân mả nh hợ p lý và cầ n quyế t định cấ p phát các mả nh cho các vị trí trên
mạ ng. Khi dữ liệ u đư ợ c cấ p phát, nó có thể đư ợ c nhân bả n hoặ c duy trì mộ t bả n duy nhấ t.
Lý do cầ n phả i nhân bả n là nhằ m đả m bả o độ tin cậ y và hiệ u quả cho các câu vấ n tin chỉ đọ c.
Nế u có nhiề u bả n sao củ a mộ t mụ c dữ liệ u thì chúng ta vẫ n có cơ hộ i truy xuấ t đư ợ c dữ liệ u đố
ngay cả khi hệ thố ng xẩ y ra sự cố . Hơ n nữ a các câu vấ n tin chỉ đọ c truy xuấ t đế n cùng mộ t mụ c dữ
liệ u có thể cho thự c hiệ n song song bở i vì các bả n sao có mặ t tạ i nhiề u vị trí. Ngư ợ c lạ i câu vấ n tin
cậ p nhậ t có thể gây ra nhiề u rắ c rố i bở i vì hệ thố ng phả i bả o đả m rằ ng tấ t cả các bả n sao phả i đư ợ c
cậ p nhậ t chính xác. Vì vậ y quyế t định nhân bả n cầ n đư ợ c cân nhắ c và phụ thuộ c vào tỷ lệ giữ a các
câu vấ n tin chỉ đọ c và câu vấ n tin cậ p nhậ t. Quyế t định này có ả nh hư ở ng đế n tấ t cả các thuộ c toán
củ a hệ quả n trị CSDL phân tán và các chứ c năng kiể m soát khác.
3.1.1.6. Các yêu cầ u thông tin
Mộ t điề u cầ n lư u ý trong việ c thiế t kế phân tán là quá nhiề u yế u tố có ả nh hư ở ng đế n mộ t thiế t
kế tố i ư u. Tổ chứ c logic củ a CSDL, vị trí các ứ ng dụ ng, đặ c tính truy xuấ t củ a các ứ ng dụ ng đế n
http://www.ebook.edu.vn
20
CSDL, và các đặ c tính củ a hệ thố ng máy tính tạ i mỗ i vị trí đề u có ả nh hư ở ng đế n các quyế t định
phân tán.
3.1.2. Phân mả nh ngang
Trong phầ n ngày chúng ta sẽ bàn đế n hai chiế n lư ợ c phân mả nh:
- Phân mả nh ngang nguyên thủ y: Phân mả nh ngang nguyên thủ y củ a mộ t quan hệ đư ợ c thự c
hiệ n dự a trên các vị từ đư ợ c định nghĩa trên quan hệ đó.
- Phân mả nh ngang dẫ n xuấ t: Là phân mả nh mộ t quan hệ dự a vào các vị từ đư ợ c định nghĩa trên
mộ t quan hệ khác.
3.1.2.1. Yêu cầ u thông tin củ a phân mả nh ngang.
1. Thông tin về CSDL
Thông tin về CSDL là lư ợ c đồ toàn cụ c và các quan hệ gố c. Trong ngữ cả nh này chúng ta cầ n
biế t đư ợ c các quan hệ sẽ kế t lạ i vớ i nhau bằ ng phép kế t nố i hay phép tính khác. Để thể hiệ n ngư ờ i
ta thư ờ ng dụ ng mô hình thự c thể để biể u diễ n các quan hệ vớ i các mỗ i liên kế t giữ a chúng.
Thông tin định lư ợ ng cầ n có là lự c lư ợ ng củ a mỗ i quan hệ R, đó là số bộ có trong R đư ợ c ký
hiệ u là card(R).
2. Thông tin về ứ ng dụ ng
Để phân tán ngoài thông tin định lư ợ ng Card(R) ta còn cầ n thông tin định tính cơ bả n gồ m các
vị từ đư ợ c dùng trong các câu vấ n tin. Lư ợ ng thông tin này phụ thuộ c vào bài toán cụ thể .
Cho lư ợ c đồ quan hệ R(U), U = A
1
, A
2
,…, A
N
trong đó mỗ i A
i
là mộ t thuộ c tính có miề n giá trị
dom(A
i
). Mộ t vị từ đơ n giả n P đư ợ c định nghĩa trên R có dạ ng:
P: A
i
u <giá trị>
Trong đó u e {=, <, <=, >=, >, <>}, A
i
là mộ t thuộ c tính, <giá trị> e dom(A
i
).
Như vậ y cho trư ớ c mộ t lư ợ c đồ R, nế u các miề n giá trị dom(A
i
) là hữ u hạ n chúng ta có thể xác
định đư ợ c tậ p tấ t cả các vị từ đơ n giả n trên R.
Ví dụ : Vớ i hình 3.1. các vị từ đơ n giả n củ a quan hệ DuAn:
P1: Ten = “Bả o trì”
P2: KinhPhi <= 200000
Trong các bài toán thứ c tế các câu vấ n tin thư ờ ng chứ a nhiề u vị từ phứ c tạ p hơ n, là tổ hợ p củ a
các vị từ đơ n giả n. Ví dụ vị từ hộ i sơ cấ p củ a các vị từ đơ n giả n. Bở i mộ t biể u thứ c boolean luôn có
thê biế n đổ i đư ợ c thành dạ ng chuẩ n hộ i cho nên chúng ta sử dụ ng hộ i sơ cấ p để biể u diễ n các vị từ
phứ c tạ p.
Cho lư ợ c đồ quan hệ R(U), U = A
1
, A
2
,…, A
N
trong đó mỗ i A
i
là mộ t thuộ c tính có miề n giá trị
dom(A
i
). Pr = {p
1
, p
2
,…, p
t
}. Tậ p các vị từ hộ i sơ cấ p M = {m
1
, m
2
,…, m
k
} đư ợ c định nghĩa như
sau:
m
i
= . p

j
vớ i 1 s j s t
Trong đó p

j
= p
j
hoặ c p

j
= ÷p
j
Lư u ý: Phép lấ y phủ định mộ t vị từ không phả i lúc nào cũ ng thự c hiệ n đư ợ c.
Theo nhữ ng thông tin định tính về các ứ ng dụ ng chúng ta cầ n biế t hai tậ p dữ liệ u:
http://www.ebook.edu.vn
21
1.. Số lư ợ ng các bộ có quan hệ sẽ đư ợ c truy xuấ t bở i câu vấ n tin đư ợ c đặ c tả theo mộ t vị từ
hộ i sơ cấ p đã cho.
3. Tầ n số truy xuấ t và trong mộ t số trư ờ ng hợ p là số truy xuấ t. Nế u Q = {q
1
, q
2
,…, q
N
} là các
câu vấ n tin, acc(q
i
) biể u thị cho số truy xuấ t củ a q
i
trong mộ t khoả ng thờ i gian đã cho hoặ c trong
quan hệ cụ thể .
3.1.2.2. Phân mả nh ngang nguyên thủ y.
Phân mả nh ngang nguyên thủ y đư ợ c định nghĩa bằ ng mộ t phép toán chọ n trên các quan hệ chủ
củ a mộ t lư ợ c đồ CSDL. Vì thế cho quan hệ R, các mả nh ngang củ a R là các R
i
vớ i R
i
= R(E
i
), 1 s i
s k
Trong đó E
i
là công thứ c chọ n (hộ i sơ cấ p) đư ợ c sử dụ ng để có thể có đư ợ c mả nh R
i
. Chú ý rằ ng
nế u E
i
có dạ ng chuẩ n hộ i, nó là mộ t vị từ hộ i sơ cấ p m
i
. R
i
là các bộ củ a R thỏ a mãn E
i
.
Ví dụ :
Phân rã quan hệ DuAn thành các mả nh ngang DuAn1, DuAn2 trong hình 3.1. đư ợ c định nghĩa
như sau:
DuAn1 = DuAn(KinhPhi s 200000)
DuAn2 = DuAn(KinhPhi > 200000)
Mộ t mả nh ngang R
i
củ a quan hệ R có chứ a tấ t cả các bộ R thỏ a vị từ hộ i sơ cấ p m
i
. Vì vậ y cho
mộ t tậ p các vị từ hộ i sơ cấ p M, số lư ợ ng các mả nh ngang cũ ng bằ ng số lư ợ ng các vị từ hộ i sơ cấ p
(tấ t nhiên mộ t mả nh ngang có thể rỗ ng nế u vị từ không truy xuấ t đế n bộ nào củ a quan hệ , các mả nh
ngang có thể bằ ng nhau nế u các vị từ tư ơ ng đư ơ ng). Tậ p các mả nh ngang này cũ ng thư ờ ng đư ợ c
gọ i là tậ p các mả nh hộ i sơ cấ p.
Rõ ràng việ c định nghĩa các mả nh ngang phụ thuộ c vào cá vị từ hộ i sơ cấ p. Vì thế bư ớ c đầ u tiên
củ a mọ i thuậ t toán phân mả nh là phả i xác định tậ p các vị từ đơ n giả n sẽ tạ o ra các vị từ hộ i sơ cấ p.
Tậ p vi từ này nói chung phụ thuộ c vào mụ c tiêu và yêu cầ u củ a bài toán.
Mộ t số khái niệ m quan trọ ng củ a các vị từ đơ n giả n là tính đầ y đủ và cự c tiể u củ a tậ p các vị từ .
Tậ p các vị từ đơ n giả n Pr đư ợ c gọ i là đầ y đủ nế u và chỉ nế u xác suấ t củ a mỗ i bộ củ a R(hoặ c củ a
các mả nh R
i
) đư ợ c truy xuấ t bở i các vị từ p e Pr đề u bằ ng nhau.
Lý do cầ n phả i bả o đả m tính đầ y đủ là vì các mả nh thu đư ợ c theo tậ p vị từ đầ y đủ sẽ nhấ t quán
về mặ t logic do tấ t cả chúng đề u thỏ a vị từ hộ i sơ cấ p. Chúng cũ ng đồ ng nhấ t và đầ y đủ về mặ t
thố ng kê theo cách mà ứ ng dụ ng truy xuấ t chúng.
Đặ c tính thứ hai củ a tậ p vị từ là tính cự c tiể u. Đây là mộ t đặ c tính cả m tính. Vị từ đơ n giả n phái
có liên đớ i trong việ c xác định mộ t phân mả nh. Mộ t vị từ mà không tham gia vào mộ t tậ p phân
mả nh nào thì có thể coi vị từ đó là thừ a. Nế u tấ t cả các vị từ củ a Pr đề u có liên đớ i và không có các
vị từ tư ơ ng đư ơ ng thì Pr là cự u tiể u.
Chúng ta quy ư ớ c:
Thuậ t toán 3.1. COM-MIN Thuậ t toán tìm tậ p vị từ đầ y đủ và cự c tiể u
Vào: Quan hệ R, tậ p các vị từ đơ n giả n Pr
Ra: Pr’ – tậ p các vị từ đơ n giả n đầ y đủ và cự c tiể u
Phư ơ ng pháp:
http://www.ebook.edu.vn
22
0. Gọ i F tậ p các mả nh hộ i sơ cấ p
Pr’ = C, F = C
1. ¬p e Pr, nế u p phân hoạ ch R theo quy tắ c 1
- Pr’ = Pr’ {p}
- Pr = Pr – {p}
- F = F {f} vớ i f là mộ t mả nh hộ i sơ cấ p theo p
2. ¬p e Pr nế u p phân hoạ ch mộ t mả nh f e F theo quy tắ c 1
- Pr’ = Pr’ {p}
- Pr = Pr – {p}
- F = F {f} vớ i f là mộ t mả nh hộ i sơ cấ p theo p
Lặ p lạ i bư ớ c 2 cho đế n khi nào không -p e Pr’ phân hoạ ch mộ t mả nh f e F
3. ¬p e Pr’ nế u -p’ mà p tư ơ ng đư ơ ng vớ i p’
- Pr’ = Pr’ – {p}
- F = F – {f} vớ i f là mộ t mả nh hộ i sơ cấ p theo p
Sau bư ớ c 3 Pr’ là tậ p vị từ đầ y đủ và tố i thiể u cầ n tìm.
Bư ớ c tiế p theo củ a thiế t kế phân mả nh ngang nguyên thủ y là suy dẫ n ra tậ p các vị từ hộ i sơ cấ p
có thể đư ợ c định nghĩa trên các vị từ trong tậ p Pr’. Các vị từ hộ i sơ cấ p này xác định các mả nh cho
bư ớ c cấ p phát.
Bư ớ c cuố i củ a quá trình thiế t kế là loạ i bỏ mộ t số mả nh vô nghĩa. Điề u này đư ợ c thự c hiệ n bằ ng
cách xác định nhữ ng vị từ mâu thuẫ n vớ i tậ p các phép kéo theo I. Chẳ ng hạ n, nế u Pr’ = (P1, P2),
trong đó
P1: A = giá trị 1
P2: A = giá trị 2
Và miề n biế n thiên củ a A là {giá trị 1, giá trị 2} rõ ràng I chứ a hai phép kéo theo vớ i khẳ ng
định:
i1: (A = giá trị 1) ÷÷ (A = giá trị 2)
i2: ÷(A = giá trị 1) ÷ (A = giá trị 2)
Bố n vị từ hộ i sơ cấ p sau đây đư ợ c định nghĩa theo Pr’
m1: (A = giá trị 1) . (A = giá trị 2)
m2: (A = giá trị 1) . ÷(A = giá trị 2)
m3: ÷(A = giá trị 1) . (A = giá trị 2)
m4: ÷(A = giá trị 1) . ÷(A = giá trị 2)
Trong trư ờ ng hợ p này các vị từ hộ i sơ cấ p m1 và m4 mâu thuẫ n vớ i phép kéo theo I và vì thế bị
loạ i khỏ i M
Thuậ t toán 3.2. Thuậ t toán phân mả nh ngang nguyên thủ y
http://www.ebook.edu.vn
23
Vào: Quan hệ R, tậ p các vị từ đơ n giả n Pr
Ra: M– tậ p các vị từ hộ i sơ cấ p
Phư ơ ng pháp:
0. Pr’ = COM-MIN(R,Pr)
Xác định tậ p M các vị từ hộ i sơ cấ p
Xác định tậ p I các phép kéo theo giữ a các P
i
e Pr’
1. ¬m
i
e M nế u m
i
mâu thuẫ n vớ i I
M = M– {m
i
}
Sau bư ớ c này M là tậ p các vị từ hộ i sơ cấ p.
3.1.2.3. Phân mả nh ngang dẫ n xuấ t
Phân mả nh ngang dẫ n xuấ t đư ợ c định nghĩa trên mộ t quan hệ thành viên củ a mộ t đư ờ ng nố i dự a
theo phép toán chọ n trên quan hệ chủ nhân củ a đư ờ ng nố i đó. Như thế nế u cho trư ớ c mộ t liên kế t L,
trong đó owner(L) = S và member(L) = R, các mả nh ngang dẫ n xuấ t củ a R đư ợ c định nghĩa là:
R
i
= R S
i
, 1 s i s k
Trong đó k là số lư ợ ng các mả nh đư ợ c định nghĩa trên R, và S
i
= S(E
i
), vớ i E
i
là công thứ c định
nghĩa phân mả nh ngang nguyên thủ y S
i
.
Ví dụ : Xét liên kế t giữ a bả ng Luong và NhanVien. Chúng ta có thể nhóm các nhân viên thành
hai nhóm tùy theo lư ơ ng. Giả sử nhóm có lư ợ ng từ 4000$ trở xuố ng và nhóm lư ơ ng trên 4000$. Hai
mả nh NhanVien1 và NhanVien2 đư ợ c định nghĩa như sau:
NhanVien1 = NhanVien Luong1
NhanVien2 = NhanVien Luong2
Trong đó
Luong1 = Luong(Luong s 4000)
Luong2 = Luong(Luong > 4000)
Kế t quả thu đư ợ c như sau:
NhanVien1 NhanVien2
MaNV Ten ChucVu MaNV Ten ChucVu
E1 Hoàng Lan Ks Điệ n E2 Đình Vư ợ ng Phân tích hệ thố ng
E3 Minh Tài Ks Máy E4 Dư ơ ng Hà Lậ p trình viên
E6 Văn Hiề n Ks Điệ n E5 Minh Hoa Phân tích hệ thố ng
E7 Hoài Nam Ks Máy E8 Vân Dũ ng Phân tích hệ thố ng
Muố n thự c hiệ n phân mả nh ngang dẫ n xuấ t chúng ta cầ n ba nguyên liệ u: Tậ p các phân hoạ ch
củ a quan hệ chủ (chẳ ng hạ n Luong1 và Luong2 trong ví dụ trên), quan hệ thành viên, và tậ p các vị
từ nố i giữ a quan hệ chủ và quan hệ thành viên (chẳ ng hạ n NhanVien.ChucVu = Luong.ChucVu).
Cũ ng có mộ t vấ n đề phứ c tạ p phả i chú ý, trong lư ợ c đồ CSDL chúng ta hay gặ p nhiề u đư ờ ng nố i
đế n mộ t quan hệ R. Như thế có thể có nhiề u cách phân mả nh ngang dẫ n xuấ t cho R. Quyế t định
chọ n cách phân mả nh nào cầ n dự a trên hai tiêu chuẩ n sau:
1. Phân mả nh có đặ c tính nố i tố t hơ n;
2. Phân mả nh đư ợ c sử dụ ng trong nhiề u ứ ng dụ ng hơ n.
http://www.ebook.edu.vn
24
3.1.2.4. Kiể m tra tính đúng đắ n củ a phân mả nh ngang
1. Tính đầ y đủ
Tính đầ y đủ củ a mộ t phân mả nh ngang nguyên thủ y dự a vào các vị từ chọ n đư ợ c dùng. Vớ i
điề u kiệ n các vị từ chọ n là đầ y đủ , phân mả nh thu đư ợ c cung đư ợ c bả o đả m là đầ y đủ , bở i vì cơ sở
củ a thuậ t toán phân mả nh là mộ t tậ p các vị từ cự c tiể u và đầ y đủ . Tính đầ y đủ sẽ đư ợ c bả o đả m vớ i
điề u kiệ n là không có sai sót xẩ y ra khi định nghĩa tậ p vị từ đầ y đủ và cự c tiể u Pr. Tính đầ y đủ củ a
phân mả nh ngang dẫ n xuấ t có hơ i khác. Khó khăn là do vị từ định nghĩa phân mả nh có liên quan
đế n hai quan hệ .
Gọ i R là quan hệ thành viên củ a mộ t liên kế t mà chủ là quan hệ S đư ợ c phân mả nh thành F
s
=
{S
1
, S
2
,…, S
N
}. A là thuộ c tính nố i giữ a R và S. Vậ y đố i vớ i mỗ i bộ t củ a R, phả i có mộ t bộ t’ sao
cho t.A = t’.A
Quy tắ c này đư ợ c gọ i là ràng buộ c toàn vẹ n hay toàn vẹ n tham chiế u, bả o đả m mọ i bộ trong các
mả nh củ a quan hệ thành viên đề u nằ m trong quan hệ chủ .
2. Tính tái thiế t đư ợ c
Tái thiế t mộ t quan hệ toàn cụ c từ các mả nh đư ợ c thự c hiệ n bằ ng toán tử hợ p trong cả phân
mả nh ngang nguyên thủ y lẫ n dẫ n xuấ t. Vì thế mộ t quan hệ R vớ i phân mả nh F
R
= {R
1
, R
2
,…, R
N
},
chúng ta có R = R
i
, ¬R
i
e F
R
.
3. Tính tách biệ t
Chúng ta có thể dễ dạ ng thấ y rằ ng tính tách rờ i củ a phân mả nh nguyên thủ y là rõ ràng theo cách
phân mả nh củ a ta. Vớ i phân mả nh dẫ n xuấ t, tính tách rờ i sẽ đư ợ c bả o đả m nế u các vị từ hộ i sơ cấ p
xác đinh phân mả nh có tính loài trừ lẫ n nhau.
3.1.3. Phân mả nh dọ c.
Phân mả nh dọ c mộ t quan hệ r sẽ sinh ra các mả nh r
1
, r
2
,…, r
N
mỗ i mả nh chứ a mộ t tậ p con thuộ c
tính củ a R và cả khóa củ a r. Mụ c đích củ a phân mả nh dọ c là phân hoạ ch mộ t quan hệ thành mộ t tậ p
các quan hệ nhỏ hơ n để nhiề u ứ ng dụ ng có thể chỉ chạ y trên mộ t quan hệ . Trong ngữ cả nh này, mộ t
phân mả nh tố i ư u là mộ t phân mả nh sinh ra mộ t lư ợ c đồ phân mả nh cho phép giả m đế n tố i da thờ i
gian thự c thi các ứ ng dụ ng chạ y trên các mả nh đó.
Phân mả nh dọ c đã đư ợ c nghiên cứ u trong ngữ cả nh củ a các hệ CSDL tậ p trung. Lý do chính là
sử dụ ng nó làm mộ t công cụ thiế t kế cho phép các vấ n tin làm việ c trên các quan hệ nhỏ hơ n vì thế
giả m bớ t số truy xuấ t và tiế t kiệ m bộ nhớ . Mộ t trong số các phư ơ ng pháp phân mả nh dọ c đã nghiên
cứ u trong mô hình CSDL quan hệ là việ c chuẩ n hóa các quan hệ về các dạ ng chuẩ n cấ p cao.
Bên cạ nh phư ơ ng pháp chuẩ n hóa các quan hệ còn có nhữ ng phư ơ ng pháp khác và chúng
thư ờ ng gắ n vớ i mụ c tiêu củ a bài toán.
3.1.4. Cấ p phát.
Bài toán cấ p phát:
Giả sử rằ ng có mộ t tậ p các mả nh F = {F
1
, F
2
,…, F
N
} và mộ t mạ ng máy tính bao gồ m các vị trị S
= {S
1
, S
2
,…, S
M
} trên đó có mộ t tậ p các ứ ng dụ ng dạ ng Q = {q
1
, q
2
,…, q
k
} đang chạ y. Bài toán cấ p
phát là tìm mộ t phân phố i “tố i ư u” củ a F cho S.
Tính tố i ư u có thể đư ợ c định nghĩa ứ ng vớ i hai số đo:
http://www.ebook.edu.vn
25
- Chi phí nhỏ nhấ t: Hàm chi phí gồ m có chi phí lư u mỗ i mả nh F
i
tạ i vị trí S
j
, chi phí vấ n tin F
i
tạ i vị trí S
j
, chi phí cậ p nhậ t F
i
tạ i tấ t cả mọ i vị trí chứ a nó và chi phí truyề n dữ liệ u. Vì thế bài toán
cấ p phát cố gắ ng tìm mộ t lư ợ c đồ cấ p phát vớ i hàm chi phí tổ hợ p thấ p nhấ t.
- Hiệ u quả : Chiế n lư ợ c cấ p phát đư ợ c thiế t kế nhằ m duy trì mộ t hiệ u quả lớ n nhấ t đó là hạ thấ p
thờ i gian đáp ứ ng và tăng tố i đa lư u lư ợ ng hệ thố ng tạ i mỗ i vị trí.
Nói chung bài toán cấ p phát tổ ng quát là bài toán phứ c tạ p, vì thế các nghiên cứ u đề u tậ p trung
tìm ra các giả i thuậ t heuristic tố t để có thể có đư ợ c các lờ i giả i tố i ư u. Để phân biệ t bài toán cấ p
phát tậ p tin truyề n thố ng vớ i cấ p phát mả nh trong các thiế t kế CSDL phân tán, chúng ta gọ i bài toán
thứ nhấ t là bài toán cấ p phát tậ p tin, và bài toán sau là bài toán cấ p phát CSDL.
Hiệ n không có mộ t mô hình heuristic tổ ng quát nào nhậ n mộ t tậ p các mả nh và sinh ra mộ t chiế n
lư ợ c cấ p phát gầ n tố i ư u ứ ng vớ i các loạ i ràng buộ c. Các mô hình đã đư ợ c phát triể n chỉ mớ i đư a ra
mộ t số giả thiế t đơ n giả n hóa và dễ áp dụ ng cho mộ t số cách đặ t vấ n đề cụ thể .
Thông tin cho cấ p phát:
Thông tin về CSDL:
Để thự c hiệ n phân mả nh ngang, chúng ta đã định nghĩa độ tuyể n hộ i sơ cấ p. Bây giờ chúng ta
cầ n mở rộ ng định nghĩa đó cho các mả nh và định nghĩa độ tuyể n củ a mộ t mả nh F
j
ứ ng vớ i câu vấ n
tin q
i
. Đây là số lư ợ ng các bộ củ a F
j
cầ n đư ợ c truy xuấ t để xử lý q
i
. Giá trị này đư ợ c ký hiệ u là
Sel
i
(F
j
).
Mộ t loạ i thông tin khác trên các mả nh là kích thư ớ c củ a chúng. Kích thư ớ c mộ t mả nh F
j
đư ợ c
cho bở i: size(F
j
) = card(F
j
) * Length(F
j
)
Trong đó length(F
j
) là chiề u dài tính theo byte củ a mộ t bộ trong mả nh F
j
Thông tin về ứ ng dụ ng:
Phầ n lớ n các thông tin có liên quan đế n ứ ng dụ ng đề u đã đư ợ c biên dịch trong khi thự c hiệ n
phân mả nh như ng cung cầ n mộ t số ít nữ a cho mô hình cấ p phát. Hai số liệ u quan trọ ng là số truy
xuấ t đọ c do câu vấ n tin q
i
thự c hiệ n trên mả nh F
j
trong mỗ i lầ n chạ y củ a nó – ký hiệ u là RR
ij
. Và
tư ơ ng ứ ng là các truy xuấ t cậ p nhậ t – ký hiệ u là UR
ij
.
Chúng ta định nghĩa hai ma trậ n UM và RM vớ i các phầ n tử tư ơ ng ứ ng u
ij
và r
ij
đư ợ c đặ c tả như
sau
- u
ij
= 1 nế u vấ n tin q
i
có cậ p nhậ t mả nh F
j
, ngư ợ c lạ i sẽ bằ ng 0
- r
ij
= 1 nế u vầ n tin q
i
cầ n đọ c mả nh F
j
, ngư ợ c lạ i sẽ băng 0.
Mộ t vectơ O gồ m các giá trị 0(i) cũ ng đư ợ c định nghĩa, vớ i 0(i) đặ c tả vị trí đư a ra câu vấ n tin
q
i
. Cuố i cúng để định nghĩa ràng buộ c thờ i gian đáp ứ ng, thờ i gian đáp ứ ng tố i đa đư ợ c phép củ a
mỗ i ứ ng dụ ng cũ ng cầ n phả i đư ợ c đặ c tả .
Thông tin về vị trí:
Vớ i mỗ i vị trí chúng ta cầ n biế t về khả năng lư u trữ và xử lý củ a nó. Hiể n nhiên là nhữ ng giá trị
này có thể đư ợ c tính bằ ng các hàm thích hợ p hoặ c bằ ng các phư ơ ng pháp đánh giá đơ n giả n. Chi
phí đơ n vị để lư u trữ dữ liệ u tạ i các vị trị S
j
đư ợ c ký hiệ u là USC
j
. Cũ ng cầ n phả i đặ c tả số đo chi
phí LPC
j
là chi phí xử lý mộ t đơ n vị công việ c tạ i vị trí S
j
. Đơ n vị công việ c cầ n phả i giố ng vớ i đơ n
vị củ a RR và UR.
Thông tin về mạ ng:
http://www.ebook.edu.vn
26
Trong mô hình đang xét, chúng ta giả sử có tồ n tạ i mộ t mạ ng đơ n giả n, trong đó chi phí
truyề n mỗ i bó giữ a hai vị trí S
i
và S
j
. Để có thể tính đư ợ c số lư ợ ng thông báo, chúng ta dùng fsize
làm kích thư ớ c (tính theo byte) củ a mộ t bó dữ liệ u.
3.2. Kiể m soát dữ liệ u ngữ nghĩa
3.2.1. Quả n lý khung nhìn
Mộ t trong nhữ ng ư u điể m củ a mô hình quan hệ là nó cung cấ p đư ợ c tính độ c lậ p dữ liệ u logic
Trong mộ t hệ thố ng quan hệ , khung nhìn đư ợ c định nghĩa như là kế t quả vấ n tin trên quan hệ cơ sở
hoặ c quan hệ thự c, như ng không đư ợ c vậ t chấ t hóa như mộ t quan hệ cơ sở , nghĩa là không đư ợ c lư u
thự c sự trong CSDL. Mộ t khung nhìn là mộ t cử a sổ độ ng theo nghĩa là nó phả n ánh tấ t cả mọ i cậ p
nhậ t trên CSDL. Mộ t lư ợ c đồ ngoài có thể đư ợ c định nghĩa là mộ t tậ p các khung nhìn. Bên cạ nh
việ c sử dụ ng chúng trong lư ợ c đồ ngoài, các khung nhìn còn có tác dụ ng bả o đả m đư ợ c tính an toàn
dữ liệ u bằ ng mộ t cách rấ t đơ n giả n. Nhờ chọ n ra mộ t tậ p con củ a CSDL, các khung nhìn đã che dấ u
đi mộ t số dữ liệ u. Nế u ngư ờ i sử dụ ng chỉ đư ợ c phép truy xuấ t CSDL qua các khung nhìn, họ không
thể thấ y hoặ c thao tác trên các dữ liệ u ẩ n vì thế chúng đư ợ c bả o vệ .
Cầ n chú ý trong môi trư ờ ng phân tán, mộ t khung nhìn có thể lấ y dữ liệ u từ các quan hệ phân tán
và việ c truy xuấ t mộ t khung nhìn đòi hỏ i phả i thự c thi câu vấ n tin phân tán tư ơ ng ứ ng vớ i định
nghĩa khung nhìn.
Khung nhìn trong CSDL phân tán
Các khung nhìn trong hệ thố ng phân tán có thể đư ợ c dẫ n xuấ t từ các quan hệ đã phân mả nh
đư ợ c lư u ở nhiề u vị trí khác nhau. Bở i vì khung nhìn có thể đư ợ c sử dụ ng làm quan hệ cơ sở trong
các ứ ng dụ ng, định nghĩa củ a chúng phả i đư ợ c lư u trong các thư mụ c giố ng như các mô tả củ a quan
hệ cơ sở . Tùy vào mứ c độ tự trị củ a vị trí đư ợ c đư a ra bở i hệ thố ng, các định nghĩa khung nhìn có
thể đư ợ c tậ p trung tạ i mộ t vị trí, đư ợ c nhân bả n mộ t phầ n hoặ c toàn bộ . Trong mỗ i trư ờ ng hợ p,
thông tin liên kế t khung nhìn vớ i vị trí định nghĩa củ a nó phả i đư ợ c nhân bả n. Nế u định nghĩa
khung nhìn không có tạ i vị trí đư a ra câu vấ n tin thì sẽ phả i truy xuấ t từ xa đế n vị trí có định nghĩa
khung nhìn đó.
Trong phầ n trư ớ c chúng ta đã xem xét các phân mả nh củ a quan hệ , xét theo mộ t khía cạ nh nào
đó các phân mả nh thự c sự rấ t giố ng định nghĩa các khung nhìn cụ thể .
3.2.1.1. Khung nhìn trong quả n lý tậ p trung
Phầ n lớ n các hệ quả n trị CSQL quan hệ đề u sử dụ ng cơ chế khung nhìn. Mộ t khung nhìn là mộ t
quan hệ đư ợ c dẫ n xuấ t từ các quan hệ cơ sở như kế t quả củ a mộ t vấ n tin quan hệ . Nó đư ợ c định
nghĩa bằ ng cách gán tên củ a khung nhìn cho câu vấ n tin.
Ví dụ : Khung nhìn SYSAN (nhân viên phân tích hệ thố ng) đư ợ c dẫ n xuấ t từ quan hệ NhanVien
có thể đư ợ c định nghĩa như sau:
CREATE VIEW SYSAN
AS SELECT MaNV, TenNv FROM NhanVien WHERE ChucVu = “Phân tích hệ thố ng”
Tác dụ ng củ a câu lệ nh này là định nghĩa khung nhìn SYSAN, và nó có thể đư ợ c sử dụ ng như
mộ t quan hệ cơ sở (bả ng).
3.2.1.2. Cậ p nhậ t qua các khung nhìn
Khung nhìn có thể đư ợ c định nghĩa bằ ng các câu truy vấ n phứ c tạ p vớ i các phép chọ n, chiế u,
kế t nố i, các hàm gộ p… Và tấ t cả các khung nhìn có thể đư ợ c truy xuấ t như mộ t quan hệ cơ sở ,
http://www.ebook.edu.vn
27
như ng không phả i tấ t cả chúng có khả năng cậ p nhậ t. Cậ p nhậ t qua khung nhìn chỉ đư ợ c xử lý tự
độ ng nế u chúng có thể đư ợ c lan truyề n chính xác đế n các quan hệ cơ sở . Hiệ n nay hầ u hế t các hệ
quả n trị CSDL quan hệ hiệ n đạ i đề u hỗ trợ cậ p nhậ t dữ liệ u qua khung nhìn bằ ng cách sử dụ ng các
cơ chế xử lý ngầ m, ví dụ như trigger.
3.2.1.3. Khung nhìn trong CSDL phân tán
Định nghĩa khung nhìn đề u giố ng nhau trong các hệ quả n trị CSDL tậ p trung hay phân tán. Tuy
nhiên khung nhìn trong các hệ thố ng phân tán có thể đư ợ c dẫ n xuấ t từ các quan hệ đã đư ợ c phân
mả nh đư ợ c lư u ở nhiề u vị trí khác nhau. Khi mộ t khung nhìn đư ợ c định nghĩa, tên và câu vấ n tin
truy xuấ t củ a nó sẽ đư ợ c lư u hồ sơ cấ u trúc củ a CSDL.
Bở i vì khung nhìn có thể đư ợ c sử dụ ng làm quan hệ cơ sở trong các ứ ng dụ ng, định nghĩa củ a
chúng phả i đư ợ c lư u trong CSDL giố ng như các quan hệ cơ sở . Tùy thuộ c vào mứ c độ tự trị củ a vị
trí đư ợ c đư a ra bở i hệ thố ng, các định nghĩa khung nhìn có thể đư ợ c tậ p trung tạ i mộ t vị trí, đư ợ c
nhân bả n mộ t phầ n hoặ c toàn bộ . Trong mỗ i trư ờ ng hợ p, thông tin liên kế t tên khung nhìn vớ i vị trí
định nghĩa củ a nó phả i đư ợ c nhân bả n. Nế u định nghĩa khung nhìn không có tạ i vị trí định nghĩa
củ a nó phả i đư ợ c nhân bả n. Nế u định nghĩa khung nhìn không có tạ i vị trí đư a ra câu vấ n tin thì sẽ
phả i truy xuấ t từ xa đế n vị trí có định nghĩa khung nhìn đó.
3.2.2. An toàn dữ liệ u
An toàn CSDL là mộ t nhiệ n vụ quan trọ ng củ a hệ thố ng CSDL nhằ m bả o vệ dữ liệ u không bị
truy xuấ t “bấ t hợ p pháp”. An toàn dữ liệ u bao gồ m hai vấ n đề : bả o vệ dữ liệ u và kiể m soát cấ p
quyề n.
Bả o vệ dữ liệ u nhằ m tránh cho nhữ ng ngư ờ i “không có phân sự ” hiể u đư ợ c nộ i dung vậ t lý củ a
dữ liệ u. Chứ c năng này do hệ thố ng tậ p tin đả m trách trong các hệ điề u hành tậ p trung và phân tán.
Phư ơ ng pháp chính là mã hóa dữ liệ u, đư ợ c dùng cho cả các thông tin đư ợ c lư u trên đĩa lẫ n thông
tin trao đổ i trên mạ ng. Dữ liệ u đã mã hóa chỉ có thể đư ợ c “giả i mã” bở i nhữ ng ngư ờ i sử dụ ng đư ợ c
quyề n.
Kiể m soát cấ p quyề n phả i đả m bả o rằ ng chỉ nhữ ng ngư ờ i đư ợ c phép mớ i đư ợ c thự c hiệ n các
thao tác trên CSDL. Nhữ ng ngư ờ i sử dụ ng khác nhau có thể có quyề n truy xuấ t đế n mộ t lư ơ ng lớ n
dữ liệ u dư ớ i sự kiể m soát thố ng nhấ t củ a mộ t hệ thố ng tậ p trung hay phân tán. Vì thế các DBMS
phân tán hay tậ p trung phả i có khả năng hạ n chế truy xuấ t mộ t phầ n dữ liệ u đố i vớ i mộ t tậ p con
nhữ ng ngư ờ i sử dụ ng.
3.2.2.1. Kiể m soát cấ p quyề n tậ p trung
Ba tác nhân chính có liên quan đế n việ c kiể m soát cấ p quyề n là: ngư ờ i sử dụ ng, là ngư ờ i kích
hoạ t các chư ơ ng trình ứ ng dụ ng; các thao tác đư ợ c gắ n vào ứ ng dụ ng; và các đố i tư ợ ng CSDL sẽ
đư ợ c các thao tác tác độ ng.
Kiể m soát cấ p quyề n bao gồ m việ c xem bộ ba (ngư ờ i sử dụ ng, thao tác, đố i tư ợ ng) có đư ợ c
phép tiế n hành hay không? Mộ t quyề n hạ n xác định rằ ng ngư ờ i sử dụ ng có quyề n thự c hiệ n mộ t
thao tác thuộ c loạ i nào trên mộ t đố i tư ợ ng.
Khai báo mộ t ngư ờ i sử dụ ng (hay nhóm ngư ờ i sử dụ ng) vớ i hệ thố ng thư ờ ng đư ợ c thự c hiệ n
bằ ng mộ t cặ p (tên ngư ờ i sử dụ ng, mậ t khẩ u). Cả tên và mậ t khẩ u đề u phả i trình ra khi đăng nhậ p
vào hệ thố ng. Điề u đó ngăn chặ n nhữ ng ngư ờ i không có thẩ m quyề n xâm nhậ p vào hệ thố ng.
Quyề n hạ n biể u thị mố i liên hệ giữ a nhữ ng ngư ờ i sử dụ ng và mộ t đố i tư ợ ng ứ ng vớ i mộ t tậ p các
thao tác cụ thể . Trong các hệ quả n trị CSDL dự a trên SQL, mộ t thao tác là mộ t câu lệ nh bậ c cao
http://www.ebook.edu.vn
28
như SELECT, INSERT, UPDATE, hoặ c DELETE… Các quyề n đư ợ c định nghĩa hoặ c thu hồ i
bằ ng các lệ nh:
GRANT <thao tác> ON <đố i tư ợ ng> TO <Ngư ờ i sử dụ ng>
REVOKE <thao tác> FROM <đố i tư ợ ng> TO <Ngư ờ i sử dụ ng>
3.2.2.2. Kiể m soát cấ p quyề n phân tán
Các vấ n đề củ a kiể m soát cấ p quyề n trong môi trư ờ ng phân tán có nguồ n gố c từ sự kiệ n là các
đố i tư ợ ng và các chủ thể đề phân tán. Nhữ ng vấ n đề này bao gồ m: cấ p quyề n cho ngư ờ i sử dụ ng ở
xa, quả n lý các quy tắ c cấ p quyề n phân tán và việ c xử lý các khung nhìn và các nhóm ngư ờ i sử
dụ ng. Có hai giả i pháp cho vấ n đề này:
1. Thố ng tin xác nhậ n ngư ờ i sử dụ ng đư ợ c nhân bả n tạ i tấ t cả các vị trí trong mạ ng. Các chư ơ ng
trình cụ bộ cũ ng phả i chỉ rõ tên và mậ t khẩ u củ a ngư ờ i sử dụ ng.
2. Tấ t cả các vị trí trong hệ thố ng phân tán cũ ng nhậ n diệ n và xác nhậ n nhau tư ơ ng tự như cách
ngư ờ i sử dụ ng thự c hiệ n. Giao tiế p giữ a các vị trí đư ợ c bả o vệ bằ ng cách sử dụ ng mậ t khẩ u củ a vị
trí. Mộ t khi vị trí đã đư ợ c xác nhậ n thì không cầ n phả i xác nhậ n ngư ờ i sử dụ ng củ a chúng.
Các quy tắ c cấ p quyề n phân tán đư ợ c diễ n tả theo cùng phư ơ ng thứ c như trong hệ tậ p trung.
Giố ng như các định nghĩa khung nhìn, chúng phả i đư ợ c lư u vào trong hồ cơ cấ u trúc củ a CSDL.
Chúng có thể đư ợ c nhân bả n hoàn toàn tạ i mỗ i vị trí hoặ c lư u tạ i các vị trí củ a các đố i tư ợ ng cầ n
truy xuấ t. Ư u điể m chính củ a lố i tiế p cậ n nhân bả n hoàn toàn là việ c cấ p quyề n có thể đư ợ c xử lý
bằ ng kỹ thuậ t hiể u chỉnh vấ n tin vào lúc biên dịch. Giả i pháp thứ hai tố t hơ n trong trư ờ ng hợ p tính
chấ t cụ c bộ củ a tham chiế u rấ t cao. Tuy nhiên việ c cấ p quyề n phân tán không thể kiể m soát đư ợ c
vào lúc biên dịch.
Khung nhìn có thể đư ợ c xem như các đố i tư ợ ng củ a cơ chế cấ p quyề n. Khung nhìn là nhữ ng đố i
tư ợ ng phứ c tạ p, nghĩa là nó đư ợ c cấ p tạ o bở i nhữ ng đố i tư ợ ng cơ sở khác. Vì thế trao quyề n truy
xuấ t đế n mộ t khung nhìn đư ợ c dịch thành trao quyề n truy xuấ t đế n các đố i tư ợ ng cơ sở . Nế u định
nghĩa khung nhìn và các quy tắ c cấ p quyề n đư ợ c nhân bả n hoàn toàn thì việ c biên dịch này khá đơ n
giả n và có thể thự c hiệ n tạ i chỗ .
Nhóm các ngư ờ i sử dụ ng dùng cấ p quyề n chung làm đơ n giả n công việ c quả n lý CSDL phân
tán. Trong các DBMS tậ p trung, khái niệ m “mọ i ngư ờ i sử dụ ng” có thể đư ợ c xem là nhóm công
cộ ng. Trong môi trư ờ ng phân tán, nhóm công cộ ng biể u thị cho tấ t cả mọ i ngư ờ i sử dụ ng củ a hệ
thố ng. Tuy nhiên, ngư ờ i ta thư ờ ng đư a ra mộ t mứ c trung gian nhằ m mô tả nhóm công cộ ng tạ i mộ t
vị trí cụ thể .
Quả n lý các nhóm trong môi trư ờ ng phân tán đặ t ra mộ t số vấ n đề phả i giả i quyế t bở i vì các chủ
thể củ a mộ t nhóm có thể cư ngụ tạ i nhiề u vị trí khác nhau và quyề n truy xuấ t đế n mộ t đố i tư ợ ng có
thể đư ợ c trao cho nhiề u nhóm, mà bả n thân chúng lạ i phân tán. Nế u thông tin củ a nhóm và các quy
tắ c cấ p quyề n đư ợ c nhân bả n hoàn toàn tạ i tấ t cả mọ i vị trí thì việ c duy trì quyề n truy xuấ t tư ơ ng tự
như trong hệ thố ng tậ p trung. Tuy nhiên việ c duy trì các bả n sao này hế t sứ c tố n kém.
3.3. Quả n lý giao dịch và điể u khiề n đồ ng thờ i phân tán
3.3.1. Các khái niệ m cơ bả n về giao dịch
Giao dịch là mộ t lầ n thự c hiệ n chư ơ ng trình. Đôi khi để biể u thị mộ t giao dịch T ta viế t T:
begin…end. Giữ a begin và end là nhữ ng bư ớ c cơ bả n củ a giao dịch. Chư ơ ng trình này có thể là mộ t
câu vấ n tin hoặ c mộ t chư ơ ng trình ngôn ngữ chủ vớ i các lờ i gọ i đư ợ c gắ n vào mộ t câu vấ n tin. Có
http://www.ebook.edu.vn
29
nhiề u thự c hiệ n độ c lậ p củ a cùng mộ t chư ơ ng trình T đư ợ c tiế n hành đồ ng thờ i ở nhiề u vị trí
khác nhau trên mạ ng; mỗ i thự c hiệ n này là mộ t giao dịch khác nhau.
Mộ t giao dịch sẽ đọ c dữ liệ u và ghi dữ liệ u vào CSDL, qua mộ t vùng làm việ c riêng (private) –
gọ i là vùng bộ nhớ tính toán tạ m thờ i. Cụ thể là các tính toán do giao dịch thự c hiệ n sẽ không có tác
dụ ng trên CSDL cho đế n khi các giá trị mớ i đư ợ c ghi vào CSDL.
Ví dụ chúng ta có giao dịch T:
Begin
Read A
A = A + 100
Read A
A = A + 2
Write A
End
Khi đó trong CSDL giá trị củ a A chỉ đư ợ c tăng lên 2, vì phép toán A = A + 100 chỉ làm việ c
trong vùng bộ nhớ tính toán tạ m thờ i.
3.3.1.1. Tính nguyên tử
Trên quan điể m về quả n lý đư ợ c, quả n lý giao dịch là mộ t có gắ p nhằ m làm cho các thao tác
phứ c tạ p xuấ t hiệ n dư ớ i dạ ng các nguyên tử . Nghĩa là thao tác xả y ra trọ n vẹ n hoặ c không xả y ra.
Nế u xả y ra, không có biế n cố hay giao dịch nào cùng xả y ra trong suố t thờ i gian tồ n tạ i củ a nó. Mỗ i
nguyên tử về sau ta sẽ gọ i là mộ t bư ớ c cơ bả n hoặ c mộ t thao tác cơ bả n. Cách thông dụ ng nhằ m
đả m bả o đư ợ c tính nguyên tử củ a các giao dịch là phư ơ ng pháp tuầ n tự hóa. Phư ơ ng pháp này làm
cho các giao dịch đư ợ c thự c hiệ n mộ t cách tuầ n tự . Mộ t giao dịch không có tính nguyên tử nế u:
1, Trong hệ thố ng phân chia thờ i gian, thờ i gian cho giao dịch T có thê kế t thúc trong khi T
đang tính toán và các hoạ t độ ng củ a mộ t giao dịch khác sẽ đư ợ c thự c hiệ n trư ớ c khi T hoàn tấ t.
2, Mộ t giao dịch có thể không hoàn tấ t đư ợ c, chẳ ng hạ n có khi nó phả i chấ m dứ t giữ a chứ ng, có
thể vì nó thự c hiệ n mộ t phép tính không hợ p lệ (ví dụ phép chia cho 0), hoặ c có thể do nó đòi hỏ i
nhữ ng dữ liệ u không đư ợ c quyề n truy xuấ t. Bả n thân hệ thố ng CSDL có thể buộ c giao dịch này
ngừ ng lạ i vì nhiề u lý do. Chẳ ng hạ n giao dịch đó có thể bị kẹ t trong mộ t khóa “cứ ng” (deadlock)
Trong trư ờ ng hợ p (1), nhiệ m vụ củ a hệ thố ng CSDL là phả i bả o đả m rằ ng cho dù bấ t kỳ điề u gì
xả y ra ngay giữ a mộ t giao dịch, tác dụ ng củ a giao dịch trên CSDL không bị ả nh hư ở ng củ a nhữ ng
biế n cố bấ t ngờ này. Trong trư ờ ng hợ p (2), hệ thố ng phả i bả o đả m rằ ng giao dịch bị hủ y bỏ không
ả nh hư ờ ng gì trên CSDL hoặ c các giao dịch khác
Trong thự c tế , mỗ i giao dịch đề u có mộ t chuỗ i các bư ớ c cơ bả n như : đọ c hay ghi mộ t mụ c dữ
liệ u vào CSDL hoặ c thự c hiệ n các phép toán số họ c đơ n giả n trong vùng làm việ c riêng, hoặ c
nhữ ng bư ớ c sơ đẳ ng khác như các bư ớ c khóa, mở khóa, ủ y thác hoàn tấ t giao dịch… Chúng ta luôn
giả sử rằ ng nhữ ng bư ớ c sở đằ ng này là nguyên tử . Thậ m chí thao tác tính toán kế t thúc sau khi thờ i
gian dành cho nó đã hế t cũ ng có thể xem là nguyên tử , bở i vì các phép tính toán xả y ra khi đang
làm việ c trong vùng dữ liệ u cụ c bộ và không thể ả nh hư ở ng đế n vùng làm việ c đó cho đế n khi giao
dịch đang thự c hiệ n dở phép tính số họ c đư ợ c tái hoạ t độ ng trở lạ i.
3.3.1.2. Mụ c dữ liệ u
http://www.ebook.edu.vn
30
Để quả n lý các hoạ t độ ng đồ ng thờ i, CSDL phả i đư ợ c phân nhỏ thành các mụ c dữ liệ u, đó là
nhữ ng đơ n vị dữ liệ u cầ n đư ợ c truy xuấ t có điề u khiể n. Bả n chấ t và kích thư ớ c các mụ c dữ liệ u do
nhà thiế t kế hệ thố ng chọ n lự a. Chẳ ng hạ n trong mô hình dữ liệ u quan hệ , chúng ta có thể chọ n các
mụ c lớ n như các quan hệ , hoặ c các mụ c nhỏ như các bộ hay thành phầ n củ a các bộ . Chúng ta cũ ng
có thể chọ n lự a các mụ c có kích thư ớ c trung gian, như mộ t khố i củ a quan hệ . Kích thư ớ c củ a các
mụ c dữ liệ u đư ợ c hệ thố ng sử dụ ng gọ i là độ mịn củ a hệ thố ng. Mộ t hệ thố ng đư ợ c gọ i là hạ t mịn,
nế u nó sử dụ ng các mụ c dữ liệ u nhỏ và hệ thố ng là hạ t thô nế u nó sử dụ ng các mụ c dữ liệ u lớ n.
Phư ơ ng pháp thông dụ ng nhấ t để điề u khiể n việ c truy xuấ t các mụ c là sử dụ ng khóa. Bộ quả n lý
khóa là thành phầ n củ a hệ quả n trị chịu trách nhiệ m theo dõi xem mộ t mụ c I hiệ n có giao dịch nào
đang đọ c ghi vào các phầ n củ a I hay không. Nế u có thì bộ quả n lý khóa sẽ ngăn cả n không cho các
giao dịch khác truy xuấ t I trong trư ờ ng hợ p truy xuấ t đó có thể gây ra xung độ t.
Chọ n chế độ hạ t thô sẽ làm giả m đi tổ ng chi phí cầ n để duy trì các khóa, bở i vì chúng ta cầ n ít
chỗ để lư u các khóa, và chúng ta tiế t kiệ m đư ợ c thờ i gian bở i vì hệ thố ng chỉ phả i thự c hiệ n rấ t ít
hành độ ng đóng mở khóa. Tuy nhiệ n độ hạ t mịn cho phép nhiề u giao dịch hoạ t độ ng song song, bở i
vì xác xuấ t các giao dịch yêu cầ u khóa trên cùng mộ t mụ c sẽ thấ p.
3.3.1.3. Khóa
Như chúng ta đã khẳ ng định, khóa là mộ t đặ c quyề n truy xuấ t trên mộ t mụ c dữ liệ u mà bộ quả n
lý khóa có thể trao cho mộ t giao dịch hay thu hồ i lạ i. Có thể có nhiề u kiể u khóa, ví dụ như khóa
đọ c, khóa ghi… Thông thư ờ ng tạ i mỗ i thờ i điể m, chỉ có mộ t tậ p con các mụ c bị khóa, vì vậ y bộ
quả n lý khóa có thể lư u các khóa hiệ n hành trong mộ t bả ng khóa vơ i các mẫ u tin: (I, L, T) – giao
dịch T có mộ t khóa kiể u L trên mụ c I.
3.3.1.4. Kiể m soát hoạ t độ ng đồ ng thờ i bằ ng khóa
Để thấ y đư ợ c nhu cầ u phả i sử dụ ng khóa chúng ta xem xét ví dụ sau đây:
Xét hai giao dịch T1 và T2. Mỗ i giao dịch truy xuấ t mộ t mụ c dữ liệ u A đư ợ c giả sử là mang giá
trị nguyên, rồ i cộ ng thêm 1 vào A. hai giao dịch này thự c hiệ n chư ơ ng trình P.
P: Begin
Read A
A = A + 1
Write A
End
Chúng ta thự c hiệ n hai giao dịch T1 và T2 như sau:
A trong csdl 5 5 5 5 6 6
T1 Read A A = A + 1 Write A
T2 Read A A = A + 1 Write A
A trong vùng làm việ c củ a T1 5 5 6 6 6 6
A trong vùng làm việ c củ a T2 5 5 5 6 6
Giá trị củ a A tồ n tạ i trong CSDL, vớ i mỗ i giao dịch P đọ c A vào vùng làm việ c, cộ ng 1 vào giá
trị này rồ i ghi kế t quả vào trong CSDL. Chúng ta nhậ n thấ y rằ ng, mặ c dù hai giao dịch đề u đã cộ ng
thêm 1 vào A, giá trị củ a A trong CSDL chỉ tăng 1.
Giả i pháp thông dụ ng nhấ t cho vấ n đề đư ợ c trình bày trong ví dụ trên là cung cấ p mộ t khóa trên
A. Trư ớ c khi đọ c A, mộ t giao dịch T phả i khóa A lạ i, ngăn cả n không cho giao dịch khác truy xuấ t
A cho đế n khi T hoàn tấ t xong thao tác trên A. Hơ n nữ a T khóa đư ợ c mụ c A chỉ khi trư ớ c đó A
http://www.ebook.edu.vn
31
không bị khóa bở i mộ t giao dịch khác. Nế u A đã bị khóa, T phả i đợ i đế n khi giao dịch mở khóa
cho A.
Vậ y để ngăn cả n nhữ ng trư ờ ng hợ p đáng tiế c xẩ y ra ta phả i dùng khóa. Như vậ y trong nhữ ng
chư ơ ng trình giao dịch phả i có khóa và mở khóa. Ta giả sử rằ ng mộ t khóa phả i đư ợ c đặ t trên mộ t
mụ c trư ớ c khi đọ c hay ghi nó, và thao tác khóa hành độ ng như mộ t hàm đồ ng bộ hóa. Nghĩa là nế u
mộ t giao dịch khóa mộ t mụ c đã đư ợ c khóa, nó không thể tiế n hành cho đế n khi khóa này đư ợ c giả i
phóng bằ ng mộ t lệ nh mở khóa đư ợ c thự c hiệ n bở i giao dịch đang giữ khóa. Ta cũ ng giả sử rằ ng
mỗ i giao dịch đề u có thể mở đư ợ c mọ i khóa do chính nó khóa. Mộ t lịch biể u chứ a cá thao tác cơ
bả n củ a nhiề u giao dịch tuân theo các quy tắ c củ a khóa đư ợ c gọ i là hợ p lệ .
Ví dụ :
Chư ơ ng trình P củ a ví dụ trên đư ợ c viế t lạ i vớ i các khóa như sau:
P: begin
Lock A
Read A
A = A + 1
Write A
Unlock A
End
Giả sử T1 và T2 là hai giao dịch thự c hiệ n P. Nế u T1 bắ t đầ u trư ớ c, nó yêu cầ u khóa trên A. Giả
sử rằ ng không có giao dịch nào đang khóa, bộ quả n lý khóa sẽ cho nó khóa mụ c A. Bây giờ chỉ có
T1 mớ i có thể truy xuấ t A, nế u T2 bắ t đầ u trư ớ c khi T1 chấ m dứ t thì khi T2 thự c hiệ n lệ nh khóa A,
hệ thố ng buộ c T2 phả i đợ i. Chi khi T1 thự c hiệ n lệ nh Unlock A, hệ thố ng mớ i cho phép T2 tiế n
hành. Kế t quả là điề u bấ t thư ờ ng không xả y ra; T1 hoặ c T2 sẽ hoàn tấ t trư ớ c khi giao dịch kia bắ t
đầ u, và kế t quả chung củ a chúng là cộ ng 2 vào A.
3.3.1.5. Khóa số ng (livelock)
Hệ thố ng quả n lý khóa trao và buộ c khóa các mụ c dữ liệ u không thể hoạ t độ ng mộ t cách tùy
tiệ n. Giả sử trong ví dụ trên, khi T1 giả i phóng khóa trên A, trong khi T2 đang đợ i nhậ n khóa, mộ t
giao dịch T3 khác cùng xin mộ t khóa trên A, và T3 đư ợ c trao khóa này trư ớ c T2. Tư ơ ng tự sau khi
T3 mở khóa cho A thì lạ i có giao dịch T4 xin khóa A… Và rấ t có thể T2 phả i đợ i rấ t lâu hoặ c
không bao giờ nhậ n đư ợ c khóa trên A.
Tình huố ng này gọ i là khóa số ng. Vậ y khóa số ng trên mụ c A củ a giao dịch T là T không khóa
đư ợ c A vì A luôn bị khóa bở i mộ t giao dịch khác. Rấ t nhiề u giả i pháp đã đư ợ c các nhà thiế t kế hệ
điề u hành đề xuấ t để giả i quyế t vấ n đề khóa số ng, ví dụ như các giao dịch khi khóa mộ t mụ c phả i
đăng ký thứ tự , và bộ quả n lý khóa sẽ lầ n lư ợ t trao quyề n khóa mụ c A khi mụ c này không bị khóa
theo thứ tự đã xác định trư ớ c.
3.3.1.6. Khóa “cứ ng” (deadlock)
Mộ t vấ n đề khác có thể xẩ y ra trong điề u khiể n các hoạ t độ ng đồ ng thờ i, đó là vấ n đề khóa
“cứ ng” (deadlock). Đó là các giao dịch khóa chéo lẫ n nhau các mụ c cầ n để hoàn thiệ n giao dịch.
Ví dụ :
Giả sử chúng ta có hai giao dịch đồ ng thờ i T1 và T2 như sau:
http://www.ebook.edu.vn
32
T1: begin T2:begin
Lock A
Lock B
Unlock A
Unlock B
end
Lock B
Lock A
Unlock B
Unlock A
end
Giả sử T1 và T2 đư ợ c thự c hiệ n cùng lúc. T1 yêu cầ u khóa A và đư ợ c trao quyề n khóa trên A,
còn T2 yêu cầ u và đư ợ c trao quyề n khóa trên B. Do đó khi T1 yêu cầ u khóa trên B thì nó phả i đợ i
vị T2 đã khóa B. Tư ơ ng tự khi T2 yêu cầ u khó trên A, nó cũ ng buộ c phả i đợ i vì T1 đã khóa A. Kế t
quả là không mộ t giao dịch nào tiế p tụ c hoạ t độ ng đư ợ c, mỗ i giao dịch đề u phả i đợ i cho giao dịch
kia mở khóa, và chúng đề u phả i đợ i như ng chẳ ng bao giờ nhậ n đư ợ c khó như yêu cầ u.
Như vậ y khóa “cứ ng” là mộ t tình huố ng mà trong đó mỗ i thành viên T
i
củ a mộ t tậ p giao dịch T
= {T
1
, T
2
,…, T
N
} đang đợ i nhậ n khóa củ a mộ t mụ c hiệ n đang bị khóa bở i mộ t giao dịch khác trong
tậ p T. Bở i vì mỗ i giao dịch trong tậ p T đề u đang đợ i, nói không thể mở khóa cho mụ c mà mộ t giao
dịch khác đang cầ n, vì vậ y tấ t cả vẫ n tiế p tụ c đợ i mãi mãi.
Mộ t số giả i pháp cho vấ n đề khóa “cứ ng”:
1. Yêu cầ u các giao dịch phả i đư a tấ t cả mọ i yêu cầ u khóa cùng mộ t lúc, và bộ quả n lý khóa trao
tấ t cả các khóa cho chúng nế u đư ợ c, hoặ c không trao và cho giao dịch này đợ i nế u mộ t hay nhiề u
khóa đang đư ợ c giữ bở i mộ t giao dịch khác.
2. Gán mộ t thứ tự tuyế n tính cho các mụ c, buộ c tấ t cả các giao dịch phả i xin khóa theo thứ tự
này.
Mộ t cách khác nhằ m xử lý các khóa “cứ ng” là không ngăn cả n chúng. Và cứ sau mỗ i khoả ng
thờ i gian nhấ t định ,hệ thố ng sẽ kiể m tra yêu cầ u khóa và tìm xem có xả y ra khóa “cứ ng” hay
không. Nế u chúng ta sử dụ ng đồ thị chờ đợ i, vớ i các nút là cá giao dịch và các cung T1 ÷ T2 biể u
thị cho T2 đang đợ i nhậ n khóa trên mộ t mụ c đang đư ợ c T1 giữ . Thế thì mỗ i chu trình trong đồ thị
chờ sẽ biể u thị cho mộ t khóa “cứ ng”, và nế u không có chu trình thì kế t luậ t là không có khóa
“cứ ng”. Nế u mộ t khóa “cứ ng” đư ợ c phát hiệ n, thì hệ thố ng phả i khở i độ ng lạ i và các tác dụ ng trên
CSĐL củ a giao dịch khóa “cứ ng” đó phả i bỏ đi. Quá trình hủ y bỏ và tái khở i độ ng có thể gặ p rắ c
rố i nế u chúng ta không biế t đư ợ c cách thứ c các giao dịch ghi vào CSDL trư ớ c khi chúng hoàn
thành.
3.3.1.7. Tính khả tuầ n tự củ a lịch biể u.
Giả sử chúng ta có mộ t tậ p các giao dịch T = {T
1
, T
2
,…, T
N
}. Chúng ta thấ y ngay rằ ng nế u các
giao dịch thự c hiệ n tuầ n tự theo mộ t thứ tự nào đó, giao dịch nọ nố i tiế p giao dịch kia thì các sự cố
tranh chấ p chắ c chắ n không xẩ y ra và trong CSDL chúng ta có mộ t kế t quả nào đó.
Giả sử chúng ta có tậ p giao dịch T = {T
1
, T
2
,…, T
N
}, tư ơ ng ứ ng vớ i T ta có N! các lịch biể u
tuầ n tự khác nhau. Bở i vậ y chúng ta giả sử rằ ng hoạ t độ ng củ a các giao dịch đồ ng thờ i l à đúng đắ n
nế u và chỉ nế u tác dụ ng cả u nó giố ng như tác dụ ng có đư ợ c củ a mộ t lịch biể u tuầ n tự .
Chúng ta định nghĩa mộ t lịch biể u S cho mộ t tậ p cá giao dịch T là thứ tự (có thể xen kẽ ) các
bư ớ c cơ bả n củ a các giao dịch (khóa, đọ c, ghi, …) đư ợ c thự c hiệ n.
Các bư ớ c củ a mộ t giao dịch đã cho phả i xuấ t hiệ n trong lịch biể u theo đúng thứ tự xả y ra trong
giao dịch đó.
http://www.ebook.edu.vn
33
Vậ y mộ t lịch biể u S củ a tậ p giao dịch T đư ợ c gọ i là hợ p lệ và đúng đắ n nế u các bư ớ c cơ bả n
củ a mộ t giao dịch T
i
đã cho phả i xuấ t hiệ n trong lịch biể u S theo đúng thứ tự xả y ra trong giao dịch
T
i
và các bư ớ c cơ bả n củ a các giao dịch tuân theo các quy tắ c củ a khóa.
Mộ t lịch biể u S củ a các giao dịch trong T là mộ t hoán vị củ a các bư ớ c cơ bả n củ a T
i
e T. Giả sử
trong T có k bư ớ c cơ bả n nên chúng ta có k! hoán vị khác nhau củ a các bư ớ c cơ bả n. Vậ y vớ i tậ p
giao dịch T ta có k! lịch biể u S khác nhau. Tuy nhiên trong số đó có nhiề u lịch biể u vô nghĩa và
không đúng đắ n hoặ c không hợ p lệ .
Việ c quả n lý các giao dịch là quả n lý các lịch biể u đúng đắ n và hợ p lệ tư ơ ng đơ n vớ i mộ t lịch
biể u tuầ n tự nào đó. Lịch biể u đư ợ c gọ i là khả tuầ n tự nế u tác dụ ng củ a nó giố ng vớ i tác dụ ng củ a
mộ t lịch biể u tuầ n tự ngư ợ c lạ i gọ i là bấ t khả tuầ n tự .
Hai lịch biể u đư ợ c gọ i là tư ơ ng đư ơ ng nế u chúng cho kế t quả giố ng nhau.
3.3.1.8. Bộ xế p lịch
Chúng ta nhậ n thấ y rằ ng khi thự c hiệ n hoạ t độ ng đồ ng thờ i các giao dịch có thể gây ra t ình
trạ ng khóa số ng, khóa “cứ ng” và vấ n đề bấ t khả tuầ n tự . Để loạ i bỏ nhữ ng vấ n đề n này, chúng ta sẽ
dùng bộ xép lịch và các nghi thứ c.
Bộ xế p lịch là thành phầ n củ a hệ thố ng CSDL, có vai trò làm trọ ng tài phân xử các yêu cầ u đang
có xung độ t. Chẳ ng hạ n chúng ta đã biế t cách loạ i bỏ khác số ng củ a mộ t bộ xép lịch “đế n trư ớ c
phụ c vụ trư ớ c”. Mộ t bộ xế p lịch cũ ng có thể xử lý các khóa “cứ ng” và tính bấ t khả tuầ n tự bằ ng
cách”
1. Buộ c mộ t giao dịch phả i đợ i, chẳ ng hạ n cho đế n khi khóa đang đư ợ c yêu cầ u phả i giả i phóng.
2. Buộ c mộ t giao dịch ngừ ng lạ i và tái khở i độ ng.
3.3.1.9. Nghi thứ c
Chúng ta cũ ng có thể sử dụ ng mộ t công cụ khác để xử lý khóa gài và tính bấ t khả tuầ n tự . Công
cụ đó là các nghi thứ c mà tấ t cả các giao dịch phả i tuân theo.
Mộ t nghi thứ c, theo nghĩa tổ ng quát nhấ t, chỉ là mộ t hạ n chế trên chuỗ i các bư ớ c cơ bả n mà mộ t
giao dịch có thể thự c hiệ n.
3.3.2. Mô hình giao dịch đơ n giả n
3.3.2.1. Ý nghĩa củ a giao dịch – hàm đặ c trư ng
Về nguyên tắ c, ý nghĩa củ a giao dịch T
i
chính là tác dụ ng củ a chư ơ ng trình P tư ơ ng ứ ng trên
CSDL. Về hình thứ c, chúng ta gán mộ t hàm f đặ c trư ng cho mỗ i cặ p Lock A và Unlock A.
Hàm f nhậ n đố i là các giá trị củ a tấ t cả các mụ c bị khóa bở i giao dịch T trư ớ c khi mở khóa cho
A, và giá trị củ a f là giá trị mớ i củ a A sau khi mở khóa A. Chú ý rằ ng mộ t giao dịch có thể có nhiề u
hàm như thế đố i vớ i mộ t mụ c A, bở i vì chúng ta có thể khóa và mở khóa mộ t mụ c A nhiề u lầ n.
Vậ y gọ i A
0
là giá trị ban đầ u củ a A trư ớ c khi các giao dịch bắ t đầ u thự c hiệ n, như vậ y giá trị củ a
hàm f(A
0
,….) sau khi Unlock A là giá trị mớ i củ a A. Mộ t cách tổ ng quát gọ i A là giá trị củ a mụ c A
trư ớ c khi lock A thì giá trị mớ i củ a A sau khi Unlock A là f(A,…) ta ký hiệ u: lock A….unlock A
f(A,…).
Các giá trị mà A có thể nhậ n trong khi thự c hiệ n giao dịch là nhữ ng công thứ c đư ợ c xây dự ng
bằ ng cách áp dụ ng nhữ ng hàm này cho các giá trị ban đầ u củ a các mụ c.
http://www.ebook.edu.vn
34
Hai công thứ c khác nhau đư ợ c coi là nhữ ng giá trị khác nhau. Hai lịch biể u là tư ơ ng đư ơ ng
nế u các công thứ c cho giá trị cuố i cùng củ a mỗ i mụ c giố ng nhau trong cả hai lịch biể u.
Ta xét ví dụ sau:
T1: begin T2: begin T3: begin
Lock A
Lock A
Unlock A f
1
(A,B)
Unlock B f
2
(A,B)
End
Lock B
Lock C
Unlock B f
3
(B,C)
Lock A
Unlock C f
4
(A,B,C)
Unlock A f
5
(A,B,C)
End
Lock A
Lock B
Unlock C f
6
(A,C)
Unlock A f
7
(A,C)
End
Chúng ta có ba giao dịch và nhữ ng hàm đặ c trư ng có liên quan vớ i mỗ i cặ p Lock – Unlock; là
nhữ ng hàm xuấ t hiệ n trên cùng mộ t dòng vớ i Unlock. Chẳ ng hạ n f
1
, nhậ n A và B làm đố i số , bở i
vậ y là nhữ ng mụ c trong Lock A – Unlock A củ a T
1
. Hàm f
3
chỉ nhậ n B và C làm đố i số bở i vì T
2
mở khóa B, và trong Lock B – Unlock B có B và C.
Hình sau trình bày mộ t lịch biể u củ a nhữ ng giao dịch này và tác dụ ng củ a chúng trên các mụ c
A, B, và C.
Bư ớ c Thao tác A B C
1 T1:Lock A A
0
B
0
C
0
2 T2: Lock B A
0
B
0
C
0
3 T2: Lock C A
0
B
0
C
0
4 T2: UnLock B A
0
f
3
(B
0
,C
0
) C
0
5 T1: Lock B A
0
f
3
(B
0
,C
0
) C
0
6 T1: UnLock A f
1
(A
0
,f
3
(B
0
,C
0
)) f
3
(B
0
,C
0
) C
0
7 T2: Lock A f
1
(A
0
,f
3
(B
0
,C
0
)) f
3
(B
0
,C
0
) C
0
8 T2: UnLock C f
1
(A
0
,f
3
(B
0
,C
0
)) f
3
(B
0
,C
0
) (i)
9 T2: UnLock A (ii) f
3
(B
0
,C
0
) (i)
10 T3: Lock A (ii) f
3
(B
0
,C
0
) (i)
11 T3: Lock C (ii) f
3
(B
0
,C
0
) (i)
12 T1: UnLock B (ii) f
2
(A
0
,f3(B
0
,C
0
)) (i)
13 T3: UnLock C (ii) f
2
(A
0
,f3(B
0
,C
0
)) (iii)
14 T3: UnLock A (iv) f
2
(A
0
,f3(B
0
,C
0
)) (iii)
Ký hiệ u:
(i) = f
4
(f
1
(A
0
,f
3
(B
0
,C
0
)),B
0
,C
0
)
(ii) = f
5
(f
1
(A
0
,f
3
(B
0
,C
0
)),B
0
,C
0
)
(iii) = f
6
((ii), (i))
(iv) = f
7
((ii),(i))
Chúng ta có thể nhậ n xét rằ ng lịch biể u này là không có đặ c tính khả tuầ n tự . Thậ t vậ y, giả sử
rằ ng nó khả tuầ n tự . Thế thì nế u T
1
thự c hiệ n trư ớ c T
2
trong lịch biể u tuầ n tự , giá trị cuố i cùng củ a
B sẽ là: f
3
(f
2
(A
0
,B
0
),C
0
) chứ không phả i f
2
(A
0
, f
3
(B
0
,C
0
)).
Chúng ta thấ y rằ ng giả thiế t các công thứ c củ a hàm f sinh ra mộ t giá trị duy nhấ t là mấ u chố t lậ p
luậ n, thậ t vậ y điề u gì sẽ xẩ y ra chẳ ng hạ n nế u tồ n tạ i:
f
3
(f
2
(A
0
,B
0
),C
0
) = f
3
(A
0
,f3(B
0
,C
0
))
Trong trư ờ ng hợ p này chúng ta không thể kế t luậ n lịch biể u bấ t khả tuầ n tự đư ợ c.
Cầ n lư u ý rằ ng phép kiể m tra tính khả tuầ n tự bằ ng hàm đặ c trư ng là mộ t phư ơ ng pháp phứ c tạ p
vớ i nhữ ng tậ p nhiề u giao dịch và nhiề u thao tác. hơ n nữ a phép kiể m tra này là mộ t phư ơ ng pháp
http://www.ebook.edu.vn
35
yế u vì hai công thứ c củ a các hàm đặ c trư ng có thể khác nhau như ng giá trị củ a chúng có thể
giố ng nhau.
3.3.2.2. Kiể m tra tính khả tuầ n tự bằ ng đồ thị có hư ớ ng.
Để xác định rằ ng mộ t bộ xế p lịch nào đó là đúng, chúng ta phả i chứ ng minh rằ ng mỗ i lịch biể u
S đư ợ c nó cho phép đề u có đặ c tính khả tuầ n tự . Vì vậ y chúng ta cầ n có mộ t phép kiể m tra đơ n giả n
về tính khả tuầ n tự củ a mộ t lịch biể u.
Thuậ t toán 3.3. Kiể m tra tính khả tuầ n tự mộ t lịch biể u S
Vào: Mộ t lịch biể u S củ a mộ t tậ p các giao dịch T
1
, T
2
,…, T
k
Ra: Khẳ ng định S có khả tuầ n tự hay không. Nế u có thì đư a ra mộ t lịch biể u tuầ n tự tư ơ ng
đư ơ ng vớ i S.
Phư ơ ng pháp:
Xây dự ng mộ t đồ thị có hư ớ ng G (đư ợ c gọ i là đồ thị tuầ n tự hóa) có các nút là các giao dịch T
i
.
Để xác định các cung củ a đồ thị G, gọ i (a
1
, a
2
,…, a
N
) là tậ p các bư ớ c cơ bả n trong S. Trong đó mỗ i
a
i
là mộ t thao tác có dạ ng
T
j
: Lock A hoặ c T
j
: Unlock A
Nế u a
j
là thao tác kiể u Unlock A thì tìm thao tác a
p
kế tiế p sau a
j
có dạ ng T
s
: Lock A. Nế u có
mộ t cặ p thao tác như thế và s = j, chúng ta vẽ mộ t cung từ T
j
đế n T
s
(T
j
÷ T
s
). Cung này có ý nghĩa
là trong mộ t lịch biể u tuầ n tự tư ơ ng đư ơ ng vớ i S, T
j
phả i thự c hiệ n trư ớ c trư ớ c T
s
.
Nế u G có mộ t chu trình thì S là bấ t khả tuầ n tự , ngư ợ c lạ i nế u G không có chu trình thì S là khả
tuầ n tự và chúng ta tìm mộ t thứ tự tuyế n tính cho các giao dịch cho T
i
bằ ng mộ t quá trình gọ i là sắ p
xế p topo củ a đồ thị G như sau:
Sắ p xế p Topo đồ thị có hư ớ ng G không có chu trình
Ta biế t rằ ng trong G phả i có mộ t nút T
j
nào đó không có cung đế n, nế u không G có mộ t chu
trình. Liệ t kê T
j
rồ i loạ i T
j
ra khỏ i G. Sau đó lặ p lạ i quá trình này trên đồ thị còn lạ i cho đế n khi
không còn nút nào nữ a. Thứ tự các nút đư ợ c liệ t kê trong danh sách là mộ t thứ tự tuầ n tự củ a các
giao dịch. Thứ tự đó tạ o nên lịch biể u tuầ n tự tư ơ ng dư ơ ng vớ i S.
3.3.3. Nghi thứ c khóa 2 pha
Chúng ta cầ n phả i hiể u rõ nhữ ng điề u kiệ n để mộ t lịch biể u là khả tuầ n tự nhằ m tìm đư ợ c mộ t
bộ xế p lịch và mộ t nghi thứ c, đả m bả o rằ ng mọ i lịch biể u mà chúng ta cho phép đề u khả tuầ n tự .
Nghi thứ c đư ợ c gọ i là nghi thứ c hai phai, nế u mọ i giao dịch thự c hiệ n tấ t cả các thao tác khóa
trư ớ c tấ t cả các thao tác mở khóa. Các giao dịch tuân thủ theo nghi thứ c này đư ợ c gọ i là các giao
dịch hai pha: pha đầ u là khóa và pha thứ hai là pha mở khóa.
Nghi thứ c hai pha có đặ c điể m là mọ i tậ p giao dịch tuân theo nghi thứ c này đề u có các lịch biể u
khả tuầ n tự . Trư ớ c tiên chúng ta sẽ chứ ng minh rằ ng nghi thứ c hai pha bả o đả m đư ợ c tính khả tuầ n
tự .
Định lý 3.1. Nế u S là mộ t lịch biể u củ a các giao dịch hai pha thì S là khả tuầ n tự .
Chứ ng minh:
Giả sử khẳ ng định trên không đúng. Vậ y đồ thị G củ a lịch biể u S sẽ có mộ t chu trình
T
i1
÷ T
i2
÷…. ÷ T
in
÷ T
i1
http://www.ebook.edu.vn
36
Do đó có mộ t thao tác khóa do T
i2
sẽ đi sau mộ t thao tác mở khóa do T
i1
, mộ t thao tác kho do
T
i3
sẽ đi sau mộ t thao tác mở khóa T
i2
… Cuố i cùng mộ t thao tác khóa T
i1
sẽ đi sau mộ t thao tác mở
khóa T
i1
. Điề u này mâu thuẫ n vớ i giả thiế t T
i1
là giao dịch hai pha.
Vậ y khẳ ng định trên là đúng.
3.3.4. Mô hình khóa đọ c và khóa ghi
Nế u chúng ta phân biệ t mộ t truy xuấ t chỉ đọ c và mộ t truy xuấ t đọ c – ghi, chúng ta có thể phát
triể n mộ t mô hình chi tiế t hơ n cho các giao dịch loạ i đọ c ghi này. Trong mộ t số trư ờ ng hợ p mô hình
này cho phép sử dụ ng mộ t số hoạ t độ ng đồ ng thờ i bị cấ m ví dụ như nhiề u giao dịch có thể cùng giữ
khóa đọ c mộ t mụ c A.
Chúng ta phân biệ t hai loạ i khóa.
1. Khóa đọ c Rlock. Mộ t giao dịch T chỉ đọ c mộ t mụ c A sẽ thự c hiệ n lệ nh Rlock A, ngăn không
cho bấ t kỳ giao dịch khác ghi giá trị mớ i lên A, tuy nhiên các giao dịch khác vẫ n có thể giữ mộ t
khóa đọ c trên A cùng lúc vớ i T.
2.Khóa ghi Wlock. Khi mộ t giao dịch muố n thay đổ i giá trị củ a mụ c A đầ u tiên sẽ lấ y khóa ghi
bằ ng cách thự c hiệ n lệ nh Wlock A, khi mộ t giao dịch đang giữ khóa ghi trên mộ t mụ c, nhữ ng giao
dịch khác không thể lấ y đư ợ c khóa đọ c hoặ c khóa ghi trên mụ c đó.
Như vậ y khóa đọ c mụ c A chỉ cám các giao dịch khác ghi dữ liệ u vào a, còn khóa ghi trên mụ c
cấ m các giao dịch khác cả ghi hoặ c đọ c mụ c A.
3.3.4.1. Ý nghĩa củ a giao dịch vớ i khóa đọ c và khóa ghi
Chúng ta giả sử mỗ i lầ n áp dụ ng khóa ghi cho mộ t mụ c A sẽ có mộ t hàm duy nhấ t đi kèm vớ i
khóa đó và nó tạ o ra mộ t giá trị mớ i cho A; hàm đó phụ thuộ c vào tấ t cả các mụ c bị khóa trư ớ c khi
mở khóa A. Tuy nhiên chúng ta giả sử rằ ng mộ t khóa đọ c trên A không làm thay đổ i A.
Giả sử rằ ng mụ c A có mộ t giá trị ban đầ u A
0
và tác dụ ng củ a mộ t lịch biể u trên CSDL có thể
đư ợ c diễ n tả bằ ng nhữ ng công thứ c củ a các hàm đặ c tư ng f, là nhữ ng giá trị củ a mỗ i mụ c đư ợ c ghi
ít nhấ t là mộ t lầ n bở i các giao dịch. Tuy nhiên vì có thể có mộ t giao địch đọ c các mụ c như ng không
ghi gì hoặ c đọ c mộ t số mụ c chỉ sau khi ghi vào lầ n cuố i cùng, vì thế nhữ ng giá trị mà mỗ i mụ c đang
có khi mộ t giao dịch chỉ đọ c nó cũ ng đư ợ c xử lý như giá trị cũ . Vì vậ y chúng ta có thể nói hai lịch
biể u là tư ơ ng đư ơ ng nế u:
1. Chúng sinh ra cùng giá trị cho mỗ i mụ c.
2. Mỗ i khóa đọ c đư ợ c áp dụ ng bở i mỗ i giao dịch trong cả hai lịch biể u vào nhữ ng lúc mụ c bị
khóa có cùng giá trị.
3.3.4.2. Đồ thị tuầ n tự hóa trong các giao dịch Rlock và Wlock
Chúng ta xét nhữ ng điề u kiệ n mà trong đó, từ ý nghĩa củ a các giao dịch và các lịch biể u, ta có
thể suy ra đư ợ c khi nào mộ t giao dịch phả i đi trư ớ c mộ t giao dịch khác trong mộ t lịch biể u tuầ n tự
tư ơ ng đư ơ ng. Giả sử rằ ng có mộ t lịch biể u S trong đó mộ t khóa ghi mụ c A bở i giao dịch T
1
, và gọ i
f là hàm đi kèm vớ i khóa ghi đó. Sau khi T
1
mở khóa A, gọ i T
2
là mộ t trong nhữ ng giao dịch kế tiế p
nhậ n khóa đọ c A trư ớ c khi mộ t giao dịch khác nhân khóa ghi A. Chắ c chắ n rằ ng T
1
phả i thự c hiệ n
trư ớ c T
2
trong mộ t lịch biể u tuầ n tự tư ơ ng đư ơ ng vớ i S. Nế u không thì T
2
đọ c mộ t tía trì củ a A
không chứ a hàm f. Tư ơ ng tự , nế u T
3
là giao dịch kế tiế p sau T
1
nhậ n khóa ghi A thì T
1
phả i thự c
hiệ n trư ớ c T
3
.
http://www.ebook.edu.vn
37
Bây giờ ta giả sử rằ ng T
4
là mộ t giao dịch nhậ n khóa đọ c A trư ớ c khi T
1
khóa ghi A. Nế u T
1
xuấ t hiệ n trư ớ c T
4
trong lịch biể u tuầ n tự thì T
4
đọ c mộ t giá trị củ a A có chứ a hàm f, còn trong lịch
biể u S, giá trị đư ợ c đọ c bở i T
4
không chứ a f. Vì vậ y, T
4
phả i thự c hiệ n trư ớ c T
1
trong mộ t lịch biể u
tuầ n tự tư ơ ng đư ơ ng vớ i S. Suy luậ n duy nhấ t không thê thự c hiệ n đư ợ c là nế u trong S hai giao dịch
cùng nhầ n khóa đọ c mộ t mụ c A theo mộ t thứ tự nào đó thì nhữ ng giao dịch này phả i xuấ t hiệ n theo
thứ tự đó trong mộ t lịch biể u tuầ n tự . Đúng ra thứ tự tư ơ ng đố i này là củ a các khóa đọ c không tạ o ra
sẹ khác biệ t nào trên các giá trị đư ợ c tạ o ra bở i các giao dịch thự c hiệ n đồ ng thờ i.
Thuậ t toán 3.4. Kiể m tra tính khả tuầ n tự củ a các lịch biể u vớ i các khóa đọ c/ghi.
Vào: Mộ t lịch biể u S cho mộ t tậ p các giao dịch T
1
, T
2
,…, T
N
Ra: Khẳ ng định S có khả tuầ n tự hay không, nế u đư ợ c sẽ đư a ra mộ t lịch biể u tuầ n tự tư ơ ng
ứ ng.
Phư ơ ng pháp:
Chúng ta xây dự ng mộ t đồ thị G như sau. Các nút tư ơ ng ứ ng là các giao dịch. Các cung đư ợ c
xác định bằ ng quy tắ c sau:
1. Giả sử trong S, giao dịch T
i
nhậ n khóa đọ c hoặ c khóa A. T
j
là giao dịch kế tiế p khóa ghi A,
và i = j. Khi đó chúng ta đặ t mộ t cung từ T
i
đế n T
j
.
2. Giả sử trong S, giao dịch T
i
khóa ghi A. Gọ i T
m
vớ i m = i là mộ t giao dịch khác khóa đọ c A
sau khi T
i
mở khóa A nhữ ng trư ớ c các giao dịch khác khóa ghi A. Chúng ta vẽ mộ cung từ T
i
đế n
T
m
.
Nế u G có chu trình thi S là bấ t khả tuầ n tự , ngư ợ c lạ i thì mộ t sắ p xế p topo củ a G là thứ tự tuầ n
tự cho các giao dịch này.
http://www.ebook.edu.vn
38
Chư ơ ng 4. Hệ trợ giúp ra quyế t định
4.1. Giớ i thiệ u về hệ trợ giúp ra quyế t định
Các hệ thố ng trợ giúp ra quyế t định là các hệ thố ng giúp việ c quả n lý xác định đúng vấ n đề , ra
quyế t định mộ t cách thông minh. Hệ thố ng như vậ y cầ n đế n lý thuyế t tố i ư u, lý thuyế t về hành vi
quả n lý, điề u khiể n quá trình thố ng kê…
Cuố i nhữ ng năm 60, ngư ờ i ta dùng máy tính trong quá trình ra quyế t định. ban đầ u là tự độ ng
hóa công việ c lậ p các báo cáo và đôi lúc là tính toán, phân tích. Các hệ thố ng đó đư ợ c gọ i là hệ
thố ng quyế t định quả n lý, về sau đư ợ c xây dự ng thành nhữ ng hệ thố ng thông tin quả n lý.
Vào nhữ ng năm 70, ngư ờ i ta phát triể n nhữ ng ngôn ngữ hỏ i, và xây dự ng trên nhữ ng ngôn ngữ
này mộ t số hệ thố ng trợ giúp ra quyế t định chuyên dùng. Các hệ thố ng như vậ y là nhữ ng bư ớ c đầ u
tiên cho phép ngư ờ i dùng có kĩ năng truy vấ n trự c tiế p dữ liệ u, tự hình thành các câu hỏ i liên quan
đế n kinh doanh mà không cầ n đế n sự trợ giúp củ a các chuyên gia tin họ c.
Ngày nay các sả n phẩ n củ a ngôn ngữ hỏ i SQL đư ợ c dùng mộ t cách rộ ng rãi, ý tư ợ ng xử lý tách
biệ t, tứ c là việ c sao chế p các dữ liệ u từ môi trư ờ ng đang hoạ t độ ng sang mộ t môi trư ờ ng khác, vẫ n
rấ t quan trọ ng. Ý tư ở ng này cho phép ngư ờ i ta thao tác vớ i các dữ liệ u đư ợ c trích ra theo các yêuc
cầ u mà không cầ n quá trình suy luậ n trong môi trư ờ ng đang hoạ t độ ng. Đư ơ ng nhiên trong quá
trình ra quyế t định, ngư ờ i ta có thể chỉ sử dụ ng mộ t phầ n chiế t suấ t củ a dữ liệ u chứ không cầ n tấ t
cả .
Khác vớ i hệ thố ng CSDL, hệ thố ng trợ giúp ra quyế t định chư a có lý thuyế t riêng và hoàn
chỉnh. Ngư ờ i ta thư ờ ng yêu cầ u mô hình logic đố i vớ i các hệ thố ng như hệ trợ giúp ra uyế t định.
Như ng không phân biệ t đư ợ c rõ mô hình logic vớ i mô hình vậ t lý.
Các khía cạ nh về trợ giúp ra quyế t định
Các CSDL trợ giúp ra quyế t định thể hiệ n các đặ c tính đặ c biệ t là chỉ đọ c CSDL. Tuy điề u này
không áp đặ t cho tấ t cả các hệ thố ng trợ giúp ra quyế t định. Do vậ y, các phép toán xử lý dữ liệ u như
cậ p nhậ t dữ liệ u, rấ t hiế m khi đư ợ c sử dụ ng; ngư ờ i ta thư ờ ng tả i lạ i dữ liệ u hay làm tư ơ i dữ liệ u
thay cho việ c cậ p nhậ t trự c tiế p. Đôi khi trên nhữ ng bả ng trung gian, ngư ờ i ta có thể thự c hiệ n các
phép toán cậ p nhậ t dữ liệ u, như ng quá trình ra quyế t định bình thư ờ ng không bao giờ cậ p nhậ t
CSDL trợ giúp quyế t định.
Có sáu đặ c tính củ a hệ thố ng trợ giúp quyế t định, ba đặ c tính đầ u liên quan đế n khía cạ nh logic
và ba đặ c tính còn lạ i liên quan đế n khía cạ nh vậ t lý. Các khái niệ m như dòng, cộ t đư ợ c dùng theo
nghĩa củ a CSDL quan hệ .
1. Các cộ t đư ợ c dùng theo nghĩa tổ hợ p củ a nhiề u thuộ c tính.
2. Nói chung hệ trợ giúp ra quyế t định không đề cậ p đế n tính toàn vẹ n dữ liệ u, do các dữ liệ u đã
đư ợ c coi như đúng
3. Các khóa thư ờ ng mang yế u tố thờ i gian.
4. Kích thư ớ c CSDL có xu hư ớ ng ngày càng lớ n.
5. Các bả ng chi số dùng trong CSDL thư ờ ng có kích thư ớ c lớ n và nặ ng nề .
http://www.ebook.edu.vn
39
6. CSDL thư ờ ng sử dụ ng nhiề u loạ i dư thừ a dữ liệ u, như ng các dư thừ a này đư ợ c hệ thố ng
kiể m soát.
Các câu hỏ i trong hệ thố ng trợ giúp quyế t định cũ ng có đặ c tính riêng, thư ờ ng là rấ t phứ c tạ p.
1. Tính phứ c tạ p củ a biể u thứ c logic. Các câu hỏ i trợ giúp ra quyế t định thư ờ ng yêu cầ u các biể u
thứ c phứ c tạ p trong câu lệ nh dẫ n đế n khó viế t, khó hiể u.
2. Tính phứ c tạ p củ a phép toán kế t nố i quan hệ . Các câu hỏ i trợ giúp quyế t định thư ờ ng truy cậ p
nhiề u loạ i sự kiệ n. Trong mộ t CSDL đư ợ c chuẩ n hóa thì các câu hỏ i loạ i này thư ờ ng yêu cầ u rấ t
nhiề u phép kế t nố i. Do vậ y, ngư ờ i thiế t kế thư ờ ng phả i phi chuẩ n CSDL bằ ng cách tiế n hành trư ớ c
mộ t số phép kế t nố i trên các bả ng.
3. Tính phứ c tạ p củ a các hàm số . Các câu hỏ i trong hệ trợ giúp ra quyế t định thư ờ ng sử dụ ng
các hàm thố ng kê, hàm toán họ c. Chỉ mộ t số ít các hệ thố ng đáp ứ ng đư ợ c các loạ i câu hỏ i dạ ng
này. Thư ờ ng thì ngư ờ i thiế t kế cho phép câu hỏ i gọ i đế n đoạ n chư ơ ng trình đư ợ c viế t trong mộ t
ngôn ngữ lậ p trình hoặ c ngôn ngữ khai thác dữ liệ u khác.
4. Tính phứ c tạ p về phân tích. Để trả lờ i các câu hỏ i trong hệ trợ giúp ra quyế t định, ngư ờ i ta
cầ n phả i sử dụ ng nhiêu câu hỏ i con. Điề u này gây khó khăn cho cả ngư ờ i sử dụ ng và hệ thố ng.
4.2. Thiế t kế CSDL cho hệ trợ giúp ra quyế t định
Việ c thiế t kế CSDL cho hệ trợ giúp ra quyế t định đư ợ c thự c hiệ n ít nhấ t qua hai bư ớ c là bư ớ c
thiế t kế logic và thiế t kế vậ t lý:
1. Thiế t kế logic: tậ p trung vào việ c chỉnh lý các quan niệ m theo lý thuyế t quan hệ . Các bả ng dữ
liệ u ứ ng vớ i các quan hệ . Ngư ờ i ta xác định các miề n ứ ng vớ i các kiể u dữ liệ u, xác định các mố i
liên kế t giữ a các cộ t cả u bả ng. Tiế p theo là việ c chuẩ n hóa các bả ng và xác định các điề u kiệ n ràng
buộ c dữ liệ u.
2. Bư ớ c thiế t kế vậ t lý: tậ p trung vào tính hiệ u quả củ a lư u trữ và hiệ u suấ t củ a hệ thố ng. Về
nguyên tắ c, ngư ờ i ta có thể lự a chọ n bấ t kì mộ t cách tổ chứ c dữ liệ u nào, như ng việ c chuyể n hóa
mô hình logic sang mô hình vậ t lý theo đạ i số quan hệ là hợ p lý hơ n cả .
4.2.1. Thiế t kế logic.
Các quy luậ t thiế t kế logic không phụ thuộ c vào việ c sử dụ ng CSDL, tứ c là không phụ thuộ c
vào loạ i ứ ng dụ ng trên CSDL. Do vậ y thiế t kế cho hệ thố ng tác nghiệ p hay cho hệ trợ giúp quyế t
định như sau:
1. Tổ hợ p các cộ t và ít phụ thuộ c: Các câu hỏ i trợ giúp quyế t định thư ờ ng xử lý tổ hợ p các cộ t,
chứ không dùng các cộ t đơ n. Có thể gọ i tổ hợ p các cộ t như mộ t cộ t tổ hợ p. Theo quan điể m thiế t kế
logic, các cộ t tổ hợ p có tư cách như cộ t bình tư hờ ng. Điề u này có tác dụ ng giả m số các phụ thuộ c
hàm giữ a các cộ t đơ n. Việ c này dẫ n đế n thiế t kế logic đơ n giả n hơ n, cũ ng như tạ o thuậ n lợ i đố i vớ i
nhữ ng kiể u dữ liệ u do ngư ờ i dùng xác định.
2. Các ràng buộ c về tính toàn vẹ n: hệ trợ giúp quyế t định là hệ thố ng cho phép chỉ đọ c dữ liệ u
và tính toàn vẹ n dữ liệ u chỉ đư ợ c kiể m tra lúc tả i dữ liệ u cho nên trong lư ợ c đồ logic ngư ờ i ta không
đặ t ra các điể m kiể m tra tính toán vẹ n.
3. Các khóa về thờ i gian: Các CSDL tác nghiệ p thư ờ ng chỉ cầ n các dữ liệ u hiệ n tạ i. Các CSDL
trợ giúp quyế t đinh thư ờ ng cầ n đế n các dữ liệ u lịch sử , nên ngư ờ i ta cầ n tính đế n việ c đánh dấ u thờ i
gian trên hầ u hế t các dữ liệ u hay trên mộ t vài dữ liệ u. Để quả n lý các mố c thờ i gian, các thuộ c tính
http://www.ebook.edu.vn
40
khóa cũ ng cầ n đư ợ c đánh dấ u thờ i gian. Việ c làm này cầ n đư ợ c quá trình thiế t kế logic lư u ý khi
xác định các phụ thuộ c hàm giữ a các cộ t đánh dấ u mớ i và các cộ t trong bả ng.
4.2.2. Thiế t kế vậ t lý
CSDL trong hệ thố ng trợ giúp quyế t định có xu hư ớ ng nặ ng nề , kích thư ớ c lớ n, và đòi hỏ i nhiề u
loạ i dư thừ a dữ liệ u có kiể m soát. ngư ờ i ta thư ơ ng đề cậ p khái niệ m phân đoạ n và chỉ số hoá. Việ c
phân đoạ n nhằ m vào CSDL lơ n, chia các bả ng dữ liệ u thanh tậ p các phầ n, hay các đoạ n rờ i nhau,
phù hợ p vớ i công việ c lư u trữ vậ t lý. Công việ c này giúp ngư ờ i ta quả n lý và trả lờ i các câu hỏ i trên
các bả ng dễ hơ n. Điể n hình là mỗ i đoạ n dữ liệ u gắ n vớ i mộ t số tài nguyên tin họ c như phầ n cứ ng,
thờ i gian, bộ xử lý trung tâm. Điề u này có thể giả m thiể u các cạ nh tranh về tài nguyên trên mỗ i
đoạ n dữ liệ u.
Việ c dùng các bả ng chỉ số giả m đư ợ c thờ i gian vào/ra khi cầ n truy cậ p dữ liệ u. Nhiề u sả n phẩ m
hệ quả n trị CSDL cung cấ p cho ngư ờ i dùng chỉ mộ t loạ i chỉ số là cây cân đố i, như ng còn có nhiề u
loạ i chỉ số khác đư ợ c dùng trong hệ thố ng trợ giúp quyế t định là bả ng bit, hàm băm.
Dư thừ a dữ liệ u có điề u khiể n là công cụ quan trọ ng để giả m các thao tác vào/ra và tố i thiể u hoá
các nộ i dung. Tính dư thừ a dữ liệ u đư ợ c hệ quả n trị CSDL quả n lý mà ngư ờ i dùng không cầ n quan
tâm:
1. Quả n lý các bả n sao chính các củ a dữ liệ u cơ bả n và quả n lý các bả n sao.
2. Quả n lý các dữ liệ u suy diễ n bên cạ nh dữ liệ u cơ bả n. Thông thư ờ ng ngư ờ i ta sử dụ ng các
bả ng tổ ng hợ p và /hoặ c các cộ t thu đư ợ c bằ ng cách tính toán hay suy diễ n.
4.3. Kho dữ liệ u và kho dữ liệ u chuyên đề
Các hệ thố ng điề u hành thư ờ ng xuyên yêu cầ u chặ t chẽ về hiệ u suấ t, về kích thư ớ c giao tác, về
tính hoạ t độ ng theo kế hoạ ch, tính ứ ng dụ ng cao. Ngư ợ c lạ i các hệ thố ng trợ giúp quyế t định có
nhữ ng yêu cầ u đa dạ ng về hiệ u suấ t, không biế t trư ớ c về công việ c sẽ làm, kích thư ớ c giao tác lơ n,
đư ợ c sử dụ ng tuỳ theo cả m tính củ a ngư ờ i quả n lý. Nhữ ng khác biệ t này gây nên không ít khó khăn
cho việ c tích hợ p các xử lý điề u hành vớ i việ c trợ giúp quyế t định trong mộ t hệ thố ng đơ n mà vẫ n
phả i đáp ứ ng các yêu cầ u về kế hoạ ch, quả n lý tài nguyên, và điề u chỉnh đư ợ c hiệ u suấ t củ a hệ
thố ng. Do vậ y, ngư ờ i quả n trị hệ thố ng điề u hành thư ờ ng miễ n cư ỡ ng chấ p nhậ n các hoạ t độ ng trợ
giúp quyế t định trong hệ thố ng củ a họ .
Phầ n này đề cậ p mộ t quan tâm củ a các hệ trợ giúp ra quyế t định. Đó là việ c truy cậ p dữ liệ u từ
nhiề u nguồ n khác nhau, từ nhiề u hệ thố ng điề u hành khác nhau. Nhữ ng dữ liệ u dùng để ra quyế t
định đư ợ c lư u trữ theo cách thứ c riêng trong kho dữ liệ u
Hình 4.1. Kiế n trúc tổ ng quan củ a kho dữ liệ u
Trích dữ liệ u
Làm sạ ch dữ liệ u
Chuyể n hoá dữ liệ u
Tả i dữ liệ u
Làm tư ơ i dữ liệ u
CSDL
Tác
nghiệ p
Kho dữ
liệ u
Môi trư ờ ng trợ giúp ra
quyế t định
http://www.ebook.edu.vn
41
4.3.1. Kho dữ liệ u
Thuậ t ngữ kho dữ liệ u đư ợ c dùng từ cuố i nhữ ng năm 80 củ a thế kỷ XX. Kho dữ liệ u đư ợ c dùng
cho công tác ra quyế t định trong quả n lý, là tậ p hợ p các dữ liệ u thay đổ i theo thờ i gian, không cho
phép cậ p nhậ t, đư ợ c tích hợ p hư ớ ng chủ đề . Khái niệ m không thể cậ p nhậ t đư ợ c giả i thích kĩ hơ n là
mộ t khi đư ợ c bổ sung, dữ liệ u sẽ không thay đổ i, dù rằ ng nó có thể bị xoá. Lí do đề xuấ t khái niệ m
mớ i như kho dữ liệ u là:
1. Ngư ờ i ta cầ n sử dụ ng nguồ n dữ liệ u đơ n, sạ ch, bề n vữ ng để trợ giúp việ c ra quyế t định
2. Hệ thố ng trợ giúp ra quyế t định không chịu tác độ ng củ a các hệ thố ng điề u hành.
Đ/N. Kho dữ liệ u (dataware house). Kho dữ liệ u là nơ i chứ a các dữ liệ u có yế u tố thờ i gian,
không bị thay đổ i, hư ớ ng chủ đề , dùng để trợ giúp việ c ra quyế t định.
Đ/N. Kho dữ liệ u xí nghiệ p (Enterprise datawarehouse). Kho dữ liệ u xí nghiệ p là kho dữ liệ u
tích hợ p, tậ p trung, là nguồ n dữ liệ u đư ợ c điề u khiể n dùng cho việ c ra quyế t định củ a ngư ờ i sử
dụ ng.
Mụ c đích củ a kho dữ liệ u là ra quyế t định, nên đư ợ c tăng cư ờ ng các chứ c năgn hỏ i dữ liệ u và
kích thư ớ c củ a kho dữ liệ u thư ờ ng có xu hư ớ ng lớ n.
Đ/N. Tính hạ n chế phạ m vi. Tính hạ n chế phạ m vi khi xét nhiề u yế u tố cho phép xét mộ t yế u tố
mà không quan tâm đế n các yế u tố khác, tứ c là giả thiế t các yế u tố khác là không thay đổ i.
Ngư ờ i ta thấ y rằ ng có mộ t số vấ n đề dẫ n đế n việ c khả o sát và dùng khả năng hạ n chế phạ m vi
trong hệ trợ giúp ra quyế t định
- Các sai sót về thiế t kế CSDL;
- Sự không hiệ u quả củ a các phép toán quan hệ ;
- Khả năng không đủ mạ nh củ a các hệ quả n trị CSDL theo mô hình quan hệ ;
- Các lỗ i về thiế t kế kiế n trúc làm hạ n chế khả năng củ a hệ thố ng.
4.3.2. Kho dữ liệ u chuyên đề .
Các kho dữ liệ u nhằ m cung cấ p nguồ n đơ n chấ t củ a các dữ liệ u dùng cho các hoạ t độ ng trợ giúp
ra quyế t đinh. Tuy nhiên, khi các kho dữ liệ u trở nên thông dụ ng, ngư ờ i ta thấ y ngư ờ i sử dụ ng
thư ờ ng thự c hiệ n các thao tác phân tích dữ liệ u và ra báo cáo trên mộ t phầ n nhỏ củ a kho dữ liệ u.
Hơ n nữ a ngư ờ i sử dụ ng hay lặ p lạ i cùng mộ t thao tác trên các phầ n nhỏ củ a kho dữ liệ u. Việ c thự c
hiệ n nhiề u lầ n mộ t thao tác trên toàn bộ kho dữ liệ u là không hiệ u quả , cho nên ngư ờ i ta cầ n đế n
loạ i kho dữ liệ u chuyên dụ ng, đư ợ c ngư ờ i sử dụ ng xây dự ng theo yêu cầ u xử lý riêng. Có như vậ y
thì việ c truy cậ p các dữ liệ u đồ ng bộ vớ i kho dữ liệ u mớ i nhanh.
Đ/N. Kho dữ liệ u chuyên đề (data mart). Kho dữ liệ u chuyên đề có vai trò như kho dữ liệ u,
như ng các dữ liệ u trong đó cho phép cậ p nhậ t và dùng cho trợ giúp quyế t định vớ i mụ c đích đặ c
biệ t hơ n.
Kho dữ liệ u chuyên đề là kho dữ liệ u hạ n chế , gồ m các dữ liệ u đư ợ c tuyể n chọ n và tổ ng hợ p từ
kho dữ liệ u củ a xí nghiệ p.
Để tạ o ra đư ợ c mộ t kho dữ liệ u chuyên đề , ngư ờ i ta thư ờ ng theo ba cách tiế p cậ n sau:
1. Trích dữ liệ u từ kho dữ liệ u. Các dữ liệ u đư ợ c trích từ kho dữ liệ u để đạ t đư ợ c hiệ n suấ t phụ c
vụ cao và có tính hạ n chế phạ m vi. Thông thư ờ ng các dữ liệ u trích ra này đư ợ c tả i vào CSDL có
http://www.ebook.edu.vn
42
lư ợ c đồ vậ t lý gầ n giố ng vớ i phầ n ứ ng dụ ng củ a kho dữ liệ u. Do tính đặ c biệ t hơ n củ a kho dữ
liệ u chuyên đề so vớ i kho dữ liệ u, lư ợ c đồ vậ t lý củ a dữ liệ u có thể đơ n giả n hơ n.
2. Tạ o ra kho dữ liệ u chuyên đề riêng biệ t. Tiế p cậ n này xuấ t phát từ tính đơ n thể củ a kho dữ
liệ u, không trích dữ liệ u từ kho dữ liệ u và không truy cậ p kho dữ liệ u do mộ t vài nguyên nhân.
3. Coi kho dữ liệ u chuyên đề là nề n tả ng củ a kho dữ liệ u. Mộ t vài phát triể n hệ thố ng trợ giúp ra
quyế t định đã xây dự ng các kho dữ liệ u chuyên đề trư ớ c tiên, mỗ i khi cầ n thiế t. Kho dữ liệ u sẽ đư ợ c
tao ra bằ ng cách tậ p hợ p các kho dữ liệ u chuyên đề .
Đ/N. Tính chia hạ t. Tính chia hạ t trong cơ ở dữ liệ u đề cậ p khả năng lư u trữ đư ợ c phầ n tử nhỏ
nhấ t cả u dữ liệ u gộ p trong CSDL.
Liên quan đế n việ c thiế t kế kho dữ liệ u chuyên đề , ngư ờ i ta nhậ n thấ y mộ t yế u tố quan trọ ng đố i
vớ i bấ t kì CSDL trợ giúp ra quyế t định nào là tính chia nhỏ thành hạ t củ a CSDL. Sớ m hay muôn thì
các kho dữ liệ u dùng để ra quyế t định đề u yêu cầ u truy cậ p dữ liệ u chi tiế t nhấ t, nên yêu cầ u chi
thành hạ t đố i vớ i kho dữ liệ u không gây ra vấ n đề lớ n như đố i vớ i kho dữ liệ u chuyên đề . Nế u kho
dữ liệ u chuyên đề đư ợ c xây dự ng bằ ng cách trích các dữ liệ u từ kho dữ liệ u mà không biế t các ứ ng
dụ ng có nhu cầ u thư ờ ng xuyên về các dữ liệ u ở mứ c hạ t hay không, thì việ c trích dữ liệ u và cậ p
nhậ t các dữ liệ u ở mứ c hạ t sẽ tố n kém nhiề u.
4.3.3. Các lư ợ c đồ về chiề u.
Các hệ thố ng trợ giúp ra quyế t định thư ờ ng cầ n đế n kế t quả phân tích về lịch sử củ a các giao
dịch tác nghiệ p. Thông tin này đư ợ c lư u trong các tệ p và đư ợ c truy cậ p tuầ n tự . Do nhu cầ u, đế n
mộ t lúc nào đó ngư ờ i ta cầ n trự c tiế p truy cậ p các thông tin này chỉ theo mộ t số góc cạ nh cầ n quan
tâm. Chẳ ng hạ n đố i vớ i thông tin về sả n lư ợ ng rư ợ u vang, ngư ờ i ta cầ n biế t về sả n lư ợ ng, về ngư ờ i
sả n xuấ t,về tuổ i củ a rư ợ u… Để trợ giúp nhu cầ u truy cậ p này, ngư ờ i ta dùng CSDL có nhiề u bả ng
tra cứ u. Cơ sỏ dữ liệ u như vậ y có tệ p dữ liệ u trung tâm chứ a cá dữ liệ u về các hoạ t độ ng tác và
nhiề u bả ng tra cứ u về sả n lư ợ ng, ngư ờ i sả n xuấ t, tuổ i củ a rư ợ u. Các bả ng này tự a như bả ng chỉ số
vì chúng có con trỏ trỏ đế n các bả n ghi trong tệ p dữ liệ u, như ng khác vớ i bả ng chỉ số ở chỗ ngư ờ i
dùng co thể tác độ ng đế n các bả ng tra cứ u theo cách tư ờ ng minh và bả ng tra cứ u có thể mang các
thông tin phụ , chẳ ng hạ n như địa chỉ củ a nhà sả n xuấ t.
Các tổ chứ c nhiề u bả ng tra cứ u có ư u điể m hơ n so vớ i việ c dùng mộ t tệ p tra cứ u, cả về không
gian nhớ lẫ n thờ i gian vào/ra. Khi dùng tiế p cậ n này trong cơ sỏ dữ liệ u quan hệ , tệ p dữ liệ u và các
tệ p tra cứ u trở thành các bả ng, tứ c là ả nh củ a các tệ p; các con trỏ trong tệ p tra cứ u trở thành khoá
chính củ a bả ng tra cư u; nhữ ng tên trong tệ p dữ liệ u trở thành cá khoá ngoài trong bả nh ả nh củ a tệ p
dữ liệ u. Trư ờ ng hợ p điể n hình là các khoá chính và khoá ngoài đề u đư ợ c chỉ số hoá. Theo phư ơ ng
thứ c này, ả nh củ a tệ p dữ liệ u đư ợ c gọ i là bả ng sự kiệ n và các ả nh củ a tệ p tra cứ u đư ợ c gọ i là các
bả ng về chiề u. Thiế t kế tổ ng thể phù hợ p đư ợ c gọ i là lư ợ c đồ hình sao, hay lư ợ c đồ về chiề u, vì
trong thiế t kế thự c thể quan hệ ngư ờ i ta nớ i rộ ng các bả ng sự kiệ n, để nố i vớ i cá bả ng về chiề u.
Ví dụ CSDL RUOU(TenRuou, NhaSX, NamSX, SoLuong) trong đó thuộ c tính NamSX đư ợ c
mô tả bằ ng khoả ng từ năm t
1
đế n năm t
2
. Theo thuậ t ngữ lư ợ c đồ hình sao thì bả ng RUOU đư ợ c gọ i
là bả ng sự kiệ n còn bả ng SanXuat(Nam, NamBD, NamKT) đư ợ c gọ i là bả ng về chiề u.
Ruou TenRuou NhaSX NamSX SoLuong SanXuat Nam NamBD NamKT
Lúa mớ i Hà Nộ i 1980 200 1980 1980 1985
Thăng
Long
Hà Nộ i 1990 300 1990 1986 1992
Đ/N. Lư ợ c đồ hình sao. Lư ợ c đồ hình sao là thiế t kế CSDL đơ n giả n, trong đó các dữ liệ u về
chiề u đư ợ c tách khỏ i các dữ liệ u về sự kiệ n. Mô hình về chiề u là tên gọ i khác củ a lư ợ c đồ hình sao.
http://www.ebook.edu.vn
43
Câu hỏ i trên CSDL theo lư ợ c đồ hình sao cầ n đế n các bả ng về chiề u để phát hiệ n tấ t cả
nhữ ng tổ hợ p khoá ngoài cầ n thiế t, rồ i dùng tổ hợ p này để truy cậ p bả ng sự kiệ n. Giả sử việ c truy
cậ p các bả ng về chiề u và truy cậ p bả ng sự kiệ n đư ợ c thể hiệ n gọ n trong mộ t câu hỏ i đơ n, thì cách
tố t nhấ t để thự c hiệ n câu hỏ i này thư ớ c theo kế t nố i hình sao.
Kế t nố i hình sao là chiế n thuậ t đặ c biệ t để thự c hiệ n phép kế t nố i đư ợ c thự c hiệ n theo hai bư ớ c.
1. Tiế n hành phép tích đề các đố i vớ i các bả ng về chiề u. Lư u ý rằ ng khi tố i ư u hoá câu hỏ i,
ngư ờ i ta thư ờ ng tránh sử dụ ng phép tích đề các. Trong trư ờ ng hợ p này, các bả ng kích thư ớ c nhỏ
tham giá trư ớ c vào phép tích đề các.
2. Dùng kế t quả củ a tích đề các để quả n lý bả ng sự kiệ n theo kĩ thuậ t chỉ số hoá. Kĩ thuậ t chỉ số
hoá cho phép chiế n thuậ t này hiệ u quả hơ n.
Mộ t biế n dạ ng củ a lư ợ c đồ hình sao là lư ợ c đồ hoa tuyế t, thự c hiệ n việ c chuẩ n hoá các bả ng
chiề u.
Đ/N. Lư ợ c đồ hoa tuyế t. Lư ợ c đồ hoa tuyế t là biế n dạ ng củ a lư ợ c đồ hình sao, trong đó các
bả ng đư ợ c chuẩ n hoá.
4.4. Xử lý phân tích trự c tuyế n
4.4.1. Giớ i thiệ u.
Thuậ t ngữ xử lý phân tích trự c luyế n OLAP nhằ m vào quá trình tư ơ ng tác vớ i hệ thố ng, bao
gồ m các thao tác tạ o mớ i, quả n lý, phân tích và lậ p các báo cáo về dữ liệ u, thông qua các câu lệ nh
yêu cầ u tìm kiế m, và xử lý dữ liệ u trong bả ng dữ liệ u nhiề u chiề u.
Đ/N. Xử lý phân tích trự c tuyế n. Xử lý phân tích trự c tuyế n là mở rộ ng củ a lĩnh vự c CSDL quan
hệ để trợ giúp các mô hình kinh doanh. Quá trình OLAP dùng các qui luậ t để truy cậ p nhanh và tiệ n
lợ i đế n các dữ liệ u cho các hệ thố ng quả n lý thông tin hay trợ giúp ra quyế t định. OLAP là việ c sử
dụ ng tậ p các công cụ đồ hoạ để ngư ờ i dụ ng thấ y đư ợ c nhiề u chiề u củ a dữ liệ u, cho phép phân tích
các dữ liệ u.
Quá trình phân tích yêu cầ u gộ p dữ liệ u, theo nhiề u cách, tuỳ theo cách thứ c nhóm dữ liệ u khác
nhau. Mộ t trong nhữ ng khía cạ nh cơ bả n củ a xử lý phân tích trự c tuyế n là số khả năng nhóm dữ liệ u
nhiề u lên rấ t nhanh, và ngư ờ i dùng cầ n xem xét tấ t cả các khả năng đó.
4.4.2. Bả ng chéo
Các kế t quả củ a quá trình phân tích trự c tuyế n đư a ra thư ờ ng không theo dạ ng bả ng quan hệ , mà
theo bả ng hai chiề u, đư ợ c gọ i là bả ng chéo. Xét câu hỏ i “Tìm tổ ng số rư ợ u do nhữ ng công ty rư ợ u
cung cấ p trên bả ng dư ớ i đây:
Ruou Ten CongTy Nam SoLuong
Lúa mớ i Hà Nộ i 1980 200
Vang Hà Nộ i 1995 350
Vang Huda Huế 1990 450
Lúa mớ i Hà Bắ c 1990 320
Ngư ờ i ta xây dự ng mộ t bả ng mớ i gọ i là bả ng chéo để thể hiệ n câu trả lờ i. Bả ng chéo khác vớ i
bả ng quan hệ ở chỗ , số các cộ t phụ thuộ c vào dữ liệ u thự c, tứ c là cấ u trúc củ a bả ng lẫ n ý nghĩa củ a
các dòng đề u phụ thuộ c vào giá trị thự c củ a dữ liệ u. Do vậ y bả ng chéo không phả i là quan hệ , mà
chỉ là mộ t báo cáo có hình thứ c như ma trậ n hai chiề u. Ví dụ :
Lúa mớ i Vang Tổ ng
Hà Nộ i 200 350 550
Huda Huế 0 450 450
http://www.ebook.edu.vn
44
Hà Bắ c 320 0 320
Tổ ng 520 800 1320
4.4.3. CSDL nhiề u chiề u
Quá trình xử lý phân tích trự c tuyế n có thể đư ợ c đặ t trong môi trư ờ ng quan hệ , và quá trình này
còn đư ợ c gọ i là OLAP quan hệ viế t tắ t là ROLAP. Trong thự c tế nhiề u ngư ờ i nhậ n thấ y có cách tiế p
cậ n tố t hơ n, là OLAP nhiề u chiề u viế t tắ t là MOLAP.
MOLAP cầ n đế n CSDL nhiề u chiề u. Việ c lư u trữ này đư ợ c gọ i là lư u trữ theo quan niệ m. Để
hình dung thấ y nhiề u chiề u, như ng trong các hệ thố ng thự c tế thì tổ chứ c vậ t lý củ a MOLAP rấ t gầ n
vớ i tổ chứ c logic. Hệ quả n trị CSDL trong trư ờ ng hợ p này đư ợ c gọ i là hệ quả n trị CSDL nhiề u
chiề u. Các CSDL có thể đư ợ c thể hiệ n trong bả ng hai, ba chiề u.
4.5. Khai phá dữ liệ u
Khai phá dữ liệ u, mụ c đích củ a nó là nhìn vào phân đáng quan tâm củ a dữ liệ u, nhữ ng phầ n
đư ợ c dùng để thiế t lậ p chiế n lư ợ c kinh doanh hay để xác định hành vi khác thư ờ ng.
Đ/N. Khai phá dữ liệ u. Khai phá dữ liệ u là quá trình trích ra nhữ ng thông tin dùng đư ợ c, đúng
và chư a biế t trư ớ c từ CSDL lơ n, rồ i dùng thông tin này để ra các quyế t định.
Các công cụ khai phá dữ liệ u dùng các kĩ thuậ t thố ng kê đố i vớ i khố i lư ợ ng dữ liệ u lớ n để tìm ra
nhữ ng phầ n dữ liệ u cầ n thiế t. Các CSDL trong khai phá dữ liệ u thư ờ ng rấ t lớ n, do vậ y có xu hư ớ ng
đơ n giả n hoá các thuậ t toán. Mộ t số thuậ t ngữ dùng trong khai phá dữ liệ u như “dân số ” để chỉ các
thao tác có thể thự c hiệ n trong mộ t bả ng dữ liệ u, “luậ t liên kế t” để chỉ sự phụ thuộ c giữ a các dữ liệ u
khi xét các giao tác… Luậ t liên kế t đư ợ c phát hiệ n do áp dụ ng các phép toán gộ p phù hợ p. Mộ t số
qui luậ t khác đư ợ c xác định như luậ t “tư ơ ng quan tuầ n tự ”, luậ t “phân loạ i”.

Sign up to vote on this title
UsefulNot useful