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
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
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
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.
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
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
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
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.
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.
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
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
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.
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.
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ệ
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.
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
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.
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.
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
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
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:
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:
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
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.
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:
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:
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ở ,
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
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ó
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
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
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:
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 đó.
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.
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
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
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
.
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.
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ề .
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
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
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ó
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.
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
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”.

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 MÃ HỌC PHẦN TRÌNH ĐỘ ĐÀO TẠO DÙNG CHO SV NGÀNH

: CƠ SỞ DỮ LIỆU NÂNG CAO : 17406 : ĐẠI HỌC CHÍNH QUY : CÔNG NGHỆ THÔNG TIN

HẢI PHÒNG - 2008

2
Tên học phần: Cơ sở dữ liệu nâng cao Bộ môn phụ trách giảng dạy: Hệ thống Thông tin Mã học phần: 17406 TS tiết 45 Lý thuyết 30 Thực hành/Xemina 15 Tự học 0 Loại học phần: 2 Khoa phụ trách: CNTT. Tổng số TC: 2 Bài tập lớn 0 Đồ án môn học 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 3 3 triển 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

3
TÊN CHƯƠNG MỤC 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 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 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 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 PHÂN PHỐI SỐ TIẾT TS LT TH BT KT

3

2

1

12

5

6

1

15

5

9

1

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.

kết quả làm các bài tập được giao.4 Tài liệu học tập: 1. Bài tập cơ sở dữ liệu. Khoa Công nghệ Thông tin và được dùng để giảng dạy cho sinh viên. . Đoàn Thiện Ngân. các bài kiểm tra giữa kỳ và bài thi kết thúc học phần. 2.D. 2004.C. 3. 2000. Nhà xuất bản Thống kê. Phạm Hữu Khang. Hình thức và tiêu chuẩn đánh giá sinh viên: . Đại học Quốc Gia Hà Nội.B.F. Nguyễn Xuân Huy. Thang điểm: Thang điểm chữ A. Giáo trình về cơ sở dữ liệu.3X+0. Nguyễn Xuân Huy-Lê Hoài Bắc. Quản trị SQL Server 2000. Ngày phê duyệt: / / Trưởng Bộ môn . Điểm đánh giá học phần: Z=0.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.Hình thức thi: thi viết. 2003. Nhà xuất bản Thống kê.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.

..................... 28 3.....................2....................................................3.............. An toàn dữ liệu ................. 14 2...2.....................................1.........4. Khung nhìn trong quản lý tập trung ...... Xây dựng cơ sở dữ liệu hướng đối tượng .......3.......................................... 19 3....... Các phương pháp phân tán dữ liệu ..................... Lớp đối tượng ....................... Các đối tượng phức tạp ................. ......1.2......3..........................1.......................... Mục dữ liệu ........ 9 2....................1.......................................... Yêu cầu thông tin của phân mảnh ngang.............................................2............................................................ Các kiểu phân mảnh ........... Cấp phát................. Các yêu cầu thông tin ...1.......................1.................1........................................... 27 3....6..................................... Khung nhìn trong cơ sở dữ liệu phân tán .........................1............... Nhu cầu về hệ thống cơ sở dữ liệu hướng đối tượng..1................ Kiểm soát dữ liệu ngữ nghĩa .... 7 1....... Các khái niệm cơ bản về giao dịch ....................4. 28 3... 9 2.........................2..............................................2............ 29 3.................... Phân mảnh ngang dẫn xuất ....3.. Đối tượng............................. 17 3............ 19 3..................1. 28 3......5......5.............1............................................................... Cơ sở dữ liệu hướng đối tượng...............2...4....1................................... 19 3...................2...............1........................................... 17 3........... 26 3............ 15 2................... 9 2................. Quản trị các dữ liệu phân tán....1............ Gộp................3.... 12 2.....................3..... Các khả năng của một hệ quản trị cơ sở dữ liệu............................................. Quản lý giao dịch và điểu khiền đồng thời phân tán .3.........4......3.....................................................4..................................... Cơ sở dữ liệu hướng đối tượng............. Cập nhật qua các khung nhìn........2.... Hệ quản trị cơ sở dữ liệu .......3......................................................3.. 9 2..........................5 MỤC LỤC Chương 1.......1..... 10 2....................... Kế thừa ..............1............1...............3.....1........2... 21 3................ Khái niệm về hướng đối tượng..... Thiết kế cơ sở dữ liệu hướng đối tượng............................... 7 1......1......................................1.. 29 ...........1................................................ 15 Chương 3................................. 13 2.1.................. 14 2....... Phân mảnh ngang........1...... 27 3..................... 26 3...............2....................................2.....1.....2.......................................... 24 3................2..........4...............1................................ Phân mảnh ngang nguyên thủy............ 17 3..........................2..................................................... Các kiểu cấp phát ............................................2.......2....................................................... 20 3.................. ....................................2.......... 12 2.........................1.......... Kiểm soát cấp quyền phân tán ....... Cơ sở dữ liệu phân tán............2.............................................................................4.............. 24 3............2....2..... Nhu cầu về hệ thống cơ sở dữ liệu hướng đối tượng ............ 7 Chương 2.............................................1......................1....1..................1. Quản lý khung nhìn.......................................................................... 26 3..........2..... 19 3..................1...................1............................... 14 2...................................2............... Các lý do phân mảnh ..... 27 3......................... 23 3........................................ Tổng quát hóa và đặc biệt hóa .................................1................. Khái niệm về phân tán dữ liệu................. Quy tắc phân mảnh đúng đắn ........ Kiểm soát cấp quyền tập trung .......................................................2.................................. 20 3................ Quan niệm về CSDL.. 13 2................. 10 2............................................3.....1................... 17 3....................................1...... Cá thể.........1................................. Tính nguyên tử ..2.....................1...1..............................2.1.... 17 3............ 26 3......1...... Quản lý các tri thức ...1......................................................2................... Phân lớp........ Mức độ phân mảnh............... 13 2.......... Phân mảnh dọc.........................2...........1......4...... 11 2..............2..... ............

....................... Thiết kế cơ sở dữ liệu cho hệ trợ giúp ra quyết định ...3.....5............. 30 3....... 31 3...............................4.....3........3........... Nghi thức ................................................................................................1.......................................... Thiết kế vật lý ... Cơ sở dữ liệu nhiều chiều.... 36 3............................. ......4............3........... Các lược đồ về chiều..............3.. 38 4..........9...........................1................3.................3................1.................... Khóa “cứng” (deadlock) .......3....3.........4......3..... Mô hình khóa đọc và khóa ghi ................3.. ...........................3................................................. 43 4...1......7............ Ý nghĩa của giao dịch với khóa đọc và khóa ghi................2..........2..............5.3.............2......................... 33 3...... 36 Chương 4........... 32 3........... .........................................................2.... 38 4.........................................................2............6.................... Kho dữ liệu chuyên đề............................. Bảng chéo ... Kho dữ liệu và kho dữ liệu chuyên đề .........................................3.................... 35 3........ Hệ trợ giúp ra quyết định ....... 41 4.......... 39 4...............................3..................... ...............6 3......3.2................ Giới thiệu.. Khóa sống (livelock) . ................. Giới thiệu về hệ trợ giúp ra quyết định ..... ........................... Bộ xếp lịch ............................................ Kiểm soát hoạt động đồng thời bằng khóa ..2............................ 33 3....4.................................. Thiết kế logic........... Kiểm tra tính khả tuần tự bằng đồ thị có hướng.......... Xử lý phân tích trực tuyến.3........... Nghi thức khóa 2 pha ................... 39 4.........................1.....................1.4................1...................... 44 4..............4............1....2.................. 36 3................................. Mô hình giao dịch đơn giản............................. Ý nghĩa của giao dịch – hàm đặc trưng.3. 41 4............................. Tính khả tuần tự của lịch biểu..............3.............. Khai phá dữ liệu................... 44 .................................................... Đồ thị tuần tự hóa trong các giao dịch Rlock và Wlock ..................4........2...........1............8....... 31 3...............................2........... Kho dữ liệu ............................................4.................................. 35 3..........1..... 33 3.....................................3...................3.......1.................1.... 30 3.. 40 4...................1................... 42 4...................... 40 4....2............................................................ 33 3............................. 43 4.......................... 43 4......3.......... Khóa .

Đặ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 ý.Khả năng truy nhập các khối lượng dữ liệu lớn một cách hiệu quả. đó là: .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 đó. .2. .Ứng dụng quản lý kho hàng. Hệ quản trị cơ sở dữ liệu 1. ví dụ: . chẳng hạn quét tuần tự các dữ liệu là thích hợp. . 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.1.Khả năng quản lý dữ liệu tồn tại lâu dài.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. Đặ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. Ngày nay CSDL tồn tại trong hầu hết các ứng dụng.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. 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. . 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. Khi xem xét hai đặc điểm trên của một hệ quản trị CSDL là cơ bản.Phần mềm quản trị CSDL.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 . 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: . . 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. .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. bao gồm tất cả những người sử dụng cuối. Hệ cơ sở dữ liệu là gì? Hệ CSDL là một hệ thống bao gồm 4 thành phần: . Các khả năng của một hệ quản trị CSDL. 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. 1.7 Chương 1. . 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ý.

Phục hồi dữ liệu. .Đ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.Quản trị giao dịch.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. có nghĩa là khả năng cung cấp các truy cập đồng thời. truy nhập dữ liệu và thao tác dữ liệu. có nghĩa là khả năng phụ hồ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. không làm mất mát dữ liệu đối với các lỗi của hệ thống. .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.

Để có thể khôi phục các ngữ nghĩa ban đầu. Đ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ệ. Như vậy việc xử lý các dữ liệu phức. là phép toán tốn kém tài nguyên để thực hiện. một đối tượng nhằm xác định một cấu trúc phức tạp. Một số hạn chế của hệ quản trị CSDL quan hệ. Sự phức tạp của các đối tượng này thể hiện qua: . phân tán dưới dạng các giá trị trong các quan hệ. tức các hoạt động. 2. logic. mô hình mạng và phân cấp vẫn tồn tại. Phần tác động của chúng. 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.Khía cạnh tĩnh: thể hiện qua các dữ liệu. không thể dùng cho mô hình hóa các đối tượng phức tạp.1.Ngôn ngữ hỏi trên 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. các dữ liệu phức. Bên cạnh mô hình quan hệ. một lược đồ. ngày tháng. Ngôn ngữ truy vấn CSDL thì dựa trên cơ sở tập hợp. đụng chạm đến sự phụ thuộc chương trình/dữ liệu. Các ứng dụng về CSDL được nhìn nhận theo hai khía cạnh: . Các đối tượng phức tạp được coi như các kí tự. . chưa thể thể hiện các loại dữ liệu định tính hay một danh sách. chữ. không tránh được việc yêu cầu các phép kết nối quan hệ. chúng được mô tả theo các kiểu đặc biệt.Mô hình hóa các đối tượng. trong khi ngôn ngữ lập trình dựa trên các thủ tục. Ví dụ 2. Một đối tượng phức tạp. . đượ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. Quản lý các tri thức . .2.Khía cạnh động: thể hiện qua các phép xử lý tác động lên dữ liệu. chính vì vậy mà thông tin ngữ nghĩa sẵn có trong một vấn đề bị chia nhỏ ra. do cấu trúc dữ liệu hiện tại là quá đơn giản. Bình thường. Trong chương trình.1. Cơ sở dữ liệu hướng đối tượng 2. Các đối tượng phức tạp Một cách hình thức.1. 2.1. Khó có thể có ngôn ngữ lý tưởng trên các đối tượng phức tạp. bức ảnh hay chương trình. 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. Hơn nữa. Ngoài việc mô hình hóa.Cấu trúc của đối tượng. việc truy vấn CSDL thông qua ngôn ngữ cũng cần phải xem xét.9 Chương 2. thường được phân rã và đặt trong các quan hệ nhỏ. CSDL quan hệ xử lý các loại dữ liệu quen thuộc như số. 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.1. có kích thước lớn theo giải pháp đó là không hiệu quả. Với các loại dữ liệu này. chẳng hạn trong CAD. 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. thí dụ đối tượng trong hệ thống phân cấp hay đồ thị. 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. 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ế.

thể hiện những sự kiện. Ít ra cũng phải mở rộng hệ quản trị CSDL tập trung. Đ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. 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ý. Một hệ quản trị CSDL quan hệ cho phép xử lý các sự kiện.10 Một quan hệ được tổ chức như một tập các n-bộ. người ta không thể không thay đổi hệ quản trị cũ. nhưng không hoàn toàn giống nhau. CSDL suy diễn và CSDL phân tán.4. 2. . 2. Các trạm độc lập ấy đã có các hệ quản trị. 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. . 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. Do vậy việc quản lý các tri thức trong CSDL là nhu cầu thực tế. Hệ quản trị CSDL sử dụng các điều kiện toàn vẹn. Một ứng dụng xử lý dữ liệu có đặc trưng là dùng các tệp dữ liệu.1. 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. 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. 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. Đi đôi với các thiết bị cho phép xử lý dữ liệu một cách song song. 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: .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.3. ứng với hai cách suy luận: .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ề. Như vậy cần có công cụ khác là hệ quản trị CSDL phân tán. Trước khi đề cập vấn đề hướng đối tượng trong . . Người ta sử dụng tri thức này theo hai khía cạnh. các tri thức dưới dạng tổng quát và trừu tượng. Tuy nhiên việc tăng tính khái quát. Hệ thống phân tán cũng đòi hỏi các chức năng xử lý song song.Đưa ra sự kiện mới. 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.1. 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ệ. Đó là các CSDL hướng đối tượng. xử lý dữ liệu tệp để đáp ứng các yêu cầu. 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ý. dẫn đến việc làm mất tính hiệu quả của toàn bộ hệ thống. nhất là đối với các ứng dụng cần đến các kiến thức chuyên gia.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. Các công nghệ CSDL quan hệ. khiến người ta phải dùng đến hệ thống không tập trung và xử lý song song. Để khai thác dữ liệu theo hệ thống quản trị CSDL phân tán. 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. 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.

chẳng hạn giá thành.Các đối tượng khác. tủ…. vị trí và mầu sắc. 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. 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. nên dữ liệu cần có ý nghĩa khác nhau tùy theo chương trình sử dụng. hãy xét một vật trong thế giới thực là chiếc ghế. Trong mô hình hướng đối tượng. về phạm vi ngữ nghĩa. nhiều thành phần dữ liệu phức tạp liên kết nhau. để dữ liệu trở nên linh động. Các lĩnh vực điển hình cần đến CSDL hướng đối tượng là: .Các hằng số. kích thước. nhiều thế hệ. cần xử lý nhiều loại dữ liệu thống kê. hay là một thể hiện của lớp rộng hơn gọi là đồ đạc.Dữ liệu thông qua giá trị thuộc tính.2. Một tập các thuộc tính liên kết với đối tượng trong lớp đồ đạ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ế. người ta còn thấy các hạn chế nêu trên về hệ thống CSDL nói chung. . 1. Bởi vì ghế là thành viên của lớp đồ đạc.11 CSDL. 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. 2. cần liên kết nhiều kiểu dữ liệu. 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. Một thiết kế đòi hỏi xử lý qua nhiều giai đoạn. như các giá trị mặc định. Nhiều kiểu thông tin không phù hợp với cách thể hiện này. Nhiều khái niệm về ngữ nghĩa không thể hiện qua mô hình quan hệ được. Mỗi đối tượng trong lớp đồ đạc có thể được xử lý theo nhiều cách. hình ảnh và văn bản. Cùng một dữ liệu có thể mang các hành vi khác nhau. nó thừa kế tất cả các thuộc tính đã xác định cho lớp.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. 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. Ghế là một phần tử. . 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. . 3. .Các CSDL phục vụ thiết kế gồm các sơ đồ. các dữ liệu được thu thập từ nhiều vùng khác nhau.Các hệ thống thông tin địa lý. 2. . dữ liệu hầu hết là thụ động. như là các đối tượng phức tạp. Các chương trình ứng dụng có vai trò kích hoạt các dữ liệu này. . về tính chủ động và tính toàn vẹn dữ liệu. dễ gây nên tình trạng vi phạm tính toàn vẹn dữ liệu. Khái niệm về hướng đối tượng Để thấy quan điểm về hướng đối tượng. bên cạnh các hạn chế của CSDL quan hệ. về cấu trúc dữ liệu. cần lưu trữ khối lượng lớn các tín hiệu âm thanh. người ta có thể biết được hành vi cũng như cấu trúc dữ liệu. Các đối tượng sẽ bao bọc: . trọng lượng. 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. . bản đồ. 4. Tính thụ động của dữ liệu: Trong hệ thống quan hệ. 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.CSDL đa phương tiện.Các thông tin liên quan.

các hàm với các tham số.Có thể gửi các thông báo đến các đối tượng khác. .2.3. Đối với lớp. Lớp là khái niệm cơ bản trong tiếp cận hướng đối tượng. 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. 2. Định nghĩa 2.6. Đươ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. 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. không thay đổi. Giao diện lớp đối tượng gồm hai thành phần sau: 1. 2. Chúng liên lạc với nhau thông qua thông báo. Chúng thường có dạng các phép toán. Định nghĩa 2.2.2.1. 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. 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.Mang tên duy nhất. Ví dụ về các đối tượng thuộc lớp Người. Giao diện của đối tượng là cái mà các đối tượng khác thấy được.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. có trạng thái.4. 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. Định nghĩa 2. Một đối tượng có các đặc tính sau: . 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. Định nghĩa 2. Lớp đối tượng Một lớp đối tượng có giao diện và miền riêng. hay trong lớp cũng có thuộc tính ảo.Có trạng thái riêng. 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. Định nghĩa 2. dùng để tạo đối tượng phức tạp hơn. Đố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.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ệ.2. . Thông báo là dạng các thao tác áp dụng lên đối tượng. Hành vi là thể hiện cách thức tác động của một một đối tượng. 2.5. 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. và những giá trị gán cho các tính chất đó. như là thuộc tính và các mối quan hệ. Tại mức giao diện. hành vi và được xác định tên. Thao tác trong môi trường hướng đối tượng được gọi là phương pháp. Các thuộc tính có thể là đối tượng. Lớp đối tượng là tập các đối tượng có chung cấu trúc và hành vi. Phương pháp là việc thực hiện của một phép toán. Định nghĩa 2. 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. . . Trạng thái bao gồm tính chất của đối tượng. Đố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.Thuộc về một lớp.

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. 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. Một khái niệm quan trọng trọng trong OOP là bao bọc. Miền riêng của lớp đối tượng là phần xác định lớp. đó là các lớp đối tượng. . 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. Định nghĩa 2. các đối tượng là bền vững hơn. 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.Các đối tượng được phép dùng chung cho nhiều người sử dụng. 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. 2.2.3.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. 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ụ.3. đa số CSDL hướng đối tượng dựa trên C++. Trong chương trình người ta có thể cài đặt che giấu các giá trị. .2. Thực tế CSDL hướng đối tượng có các ưu điểm: . mô tả đối tượng động và trừu tượng. 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.9.l0. phép toán của lớp cha. Mỗi đối tượng là một cá thể của lớp. cũng như không thấy được các thông báo. nhưng không hiện ra cho đối tượng khác thấy. hay bao bọc là kĩ thuật che giấu.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. bằng việc xác định lớp của chúng.7. CSDL hướng đối tượng Dù có nhiều ngôn ngữ hướng đối tượng. Lựa chọn này là do tính hiệu quả và thông dụng của C++. Sơ đồ đối tượng là đồ thị gồm các thể hiện của đối tượng.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. và mối quan hệ mà chúng tham gia. thừa kế các thuộc tính của lớp đối tượng khác. Định nghĩa 2.4. Thuật ngữ bền vững được dùng với nghĩa đối tượng tồn tại không lệ . Trong môi trường OOP các đối tượng được coi như các biến chương trình. .8. thường được dùng với thuật ngữ thể hiện của lớp. ngay cả các liên kết cũng bị che giấu. 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. tương thích với sơ đồ lớp. thiết kế giao diện chương trình. 2. 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. 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. Bao gói. Còn trong hệ thống CSDL hướng đối tượng. 2. cấu trúc bên trong của chú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. Sơ đồ lớp cho biết cấu trúc tĩnh của mô hình hướng đối tượng.13 Định nghĩa 2. 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. 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. 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.

hình chữ nhật. 2.4. 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. Một CSDL hướng đối tượng gồm các đối tượng. Lớp trừu tượng là lớp không có thể hiện trực tiếp. 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. Định nghĩa 2. 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. như điều khiển tương tranh. Chẳng hạn ban đầu người ta xác định lớp hình tam giác. xóa… áp dụng cho tất cả các đối tượng trong CSDL. 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. Điều này hoàn toàn phụ thuộc vào việc xác định lớp. ngày tạo. lưu trữ và xóa đối tượng. Lớp cụ thể là lớp có thể có các thể hiện trực tiếp.14 thuộc vào vòng đời của chương trình tạo ra 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. mang giá trị có thể thay đổi được. Định nghĩa 2. an toàn dữ liệu. Người ta cũng phải xác định sự tương tác giữa các 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. Để xây dựng mô hình khái niệm cho CSDL hướng đối tượng. Trong đoạn chương trình trên. tao sinh. vẽ. với sự tham giá của phần mềm hướng đối tượng để truy cập các đối tượng. Khóa chính là tập các thuộc tính xác định duy nhất bộ dữ liệu. 128bit hoặc cao hơn và mang giá trị không thay đổi. . Hệ thống CSDL hướng đối tượng có các nét đặc trưng sau: . phương thức chung. tất cả các thứ thuộc về lớp. hay lớp cha. người ta cần xác định tập các lớp đố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. hệ quản trị CSDL hướng đối tượng hoạt động như hệ quản trị thường. 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. 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. Tiếp theo là các phương thức. gồm các thuộc tính chung của tất cả các sơ đồ. toàn vẹn dữ liệu… Thực ra.Ngôn ngữ CSDL có khả năng mô tả lớp đối tượng. 2. Có một số phương thức như tạo mới. Chương trình khác có thể truy cập hay hủy bỏ đối tượng này.4. Theo thí dụ về sơ đồ người ta xác định sơ đồ với các thuộc tính tên. nhưng các thành phân sau nó có thể có thể hiện trực tiế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.12. . 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ệ. Kho đối tượng là nơi chứa dữ liệu tạo nên CSDL hướng đối tượng. Trong hệ thống hướng đối tượng.1.4. OID thường là chuỗi 64. 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ệ. và một vài đối tượng có thuộc tính và phương thức riêng.Các đối tượng cho phép chương trình ứng dụng truy cập. Các phép toán chung là lưu trữ tìm kiếm. hình vuông. có tên và các tham số. Mỗi đối tượng trong kho các đối tượng có tên duy nhất OID. 2. và hình tròn rồi trừu tượng hóa thành lớp cao hơn về sơ đồ.11.. 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.2. hình vẽ. Lớp đối tượng được xác định nhờ các thuộc tính và phương thức thức.

Bắt đầu từ lớp sơ đồ. 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ế. tính đến các đặc trưng riêng của hình tam giác. tài khoản. 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. liên kết các đối tượng kiểu khác hàng. tổng quát hóa. 2.15 Sơ đồ Hình chữ nhật Hình tam giác Hình tròn Hình vuông Tam giác đều Chuyên biệt hóa là quá trịnh ngược lại với tổng quát hóa. Để 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 đó. có thuộc tính đặc biệt cho biết thời gian thực hiện đăng ký này. Khi thực hiện CSDL này theo kĩ thuật quan hệ. Các vấn đề này xảy ra song song. Người ta dùng cây phân cấp để thể hiện quá trình tổng quát hóa. Hơn nữa. chi nhánh và mối quan hệ giữa chúng. người ta cần chỉ ra sự tham gia của lớp vào dãy kế thừa này. 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. 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.4. Các thuộc tính bổ sung cũng được mô tả ngay.3. Lớp đăng ký được tạo. người ta có thể xác định lớp con để phân biệt các loại sơ đồ khác nhau. Người ta mô tả lại các phương thức để phù hợp với loại hình này. Đ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 đồ. tài khoản. 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. Chẳng hạn CSDL ngân hàng gồm khách hàng. 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. người ta cần nối 4 bảng cơ sở. 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. 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. Phương thức tạo mới được mô tả lại. 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. Khi mô tả các lớp. 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. đặc biệt hóa và gộp. Lớp đối tượng này cũng có thuộc tính riêng. . 2. 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. 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ệ. 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.5. một bên là lớp đối tượng. 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ơ đồ.

.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. Vòng đời phát triển hướng đối tượng gồm ba pha: . 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. . Tất cả các quyết định thiết kế chiến lược.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. 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. 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.Giữ tính toàn vẹn về hạng giữa các đối tượng ngữ nghĩa. như là cách thức tích hợp hệ quản trị CSDL. 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ế.Khi có quan hệ cha con giữa hai đối tượng ngữ nghĩa. . người ta tạo một lớp đối tượng. cách liên lạc giữa các đối tượng.Đối với mỗi đối tượng ngữ nghĩa. . 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. độc lập với môi trường sẽ thực hiện hướng đối tượng. Người ta xác định các hành vi chức năng của hệ thống.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: . cách xử lý sai sót… đều được triển khai. 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. 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.

1. 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: . 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. Do vậy phân rã một quan hệ thành nhiều mảnh.1.Làm thế nào để thực hiện phân mảnh? . 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.Có cách gì kiểm tra tính đúng đắn của việc phân 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.Phân mảnh nên thực hiện đến mức độ nào? . 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. 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.2. 3. 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.Tại sao lại cần phải phân mảnh? . 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.1. 3. . 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. 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. 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? .1.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.Các chương trình ứng dụng tại các điểm.1. 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.1. . 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ớ. 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.17 Chương 3.1. Các phương pháp phân tán dữ liệu 3.gọi là phân mảnh ngang. 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. 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.Thiết kế tổ chức khai thác hệ thống đó trên nền mạng. 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 .Phân tán và chọn những vị trí đặt dữ liệu.Các mảnh sẽ được cấp phát trên mạng như thế nào? . 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í dụ như.1. 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.

TrachNhiem(MaNV.2. Luong(ChucVu. DuAn4. 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ể. KinhPhi. MaDuAn.1.3.1. Hình 3. ChucVu). DuAn1 chứa những thông tin về các dự án có ngân sách dưới 200000$. Dữ liệu của các bảng NhanVien Ten ChucVu Hoàng Lan Ks Điện Đình Vượng Phân tích hệ thống Minh Tài Ks Máy Dương Hà Lập trình viên Minh Hoa Phân tích hệ thống Văn Hiền Ks Điện Hoài Nam Ks Máy Vân Dũng Phân tích hệ thống TrachNhiem MaNV MaDuAn TrachNhiem ThoiGianTG E1 P1 Quản lý 12 E2 P1 Phân tích 24 E2 P2 Phân tích 6 E3 P3 Tư vấn 10 E3 P4 Kỹ sư 48 E4 P2 Lập trình viên 18 E5 P2 Quản lý 24 E6 P4 Quản lý 48 E7 P3 Kỹ sư 36 E8 P3 Quản lý 40 Luong ChucVu Luong Ks Điện 4000 Phân tích hệ thống 10000 Ks Máy 3500 Lập trình viên 4100 MaNV E1 E2 E3 E4 E5 E6 E7 E8 DuAn MaDuAn Ten KinhPhi Vitri P1 Trang thiết bị 150000 Hà Nội P2 CSDL 135000 Hải Phòng P3 CAD/CAM 250000 Hà Nội P4 Bảo Trì 310000 Quảng Ninh Người ta có thể chia ngang quan hệ DuAn Thành các quan hệ con DuAn1. ViTri). DuAn3 chỉ chứa thông tin về ngân sách của các dự án. Ten. DuAn2. Phân mảnh dọc quan hệ DuAn . Ten. đó là phân mảnh kết hợp cách phân mảnh ngang và dọc.18 Ngoài ra còn có một khả năng hỗn hợp. Đ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. ThoiGianTG). NhanVien(MaNV. Hình 3. còn DuAn2 lưu các thông tin về các dự án có ngân sách trên 200000$. còn DuAn4 lưu thông tin về tên và vị trí dự án. 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. Phân mảnh ngang quan hệ DuAn DuAn1 MaDuAn Ten KinhPhi P1 Trang thiết bị 150000 P2 CSDL 135000 Vitri Hà Nội Hải Phòng MaDuAn P3 P4 DuAn2 Ten KinhPhi Vitri CAD/CAM 250000 Hà Nội 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. Hình 3. Luong). Ví dụ 3. TrachNhiem.

Mức độ này sẽ tùy thuộc vào từng CSDL và các ứng dụng CSDL cụ thể. Tính đầy đủ: Nếu một quan hệ R được phân mảnh thành các mảnh R1. R2. Tính tái thiết được: Nếu một quan hệ R được phân mảnh thành R1. 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. 1. 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. 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. R2.….1.N. đặc tính truy xuất của các ứng dụng đến . 3.1. i = 1. Toán tử thay đổi tùy theo từng loại phân mảnh. 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. các thuộc tính khóa chính phải được lặp lại trong mỗi mảnh.19 DuAn3 MaDuAn KinhPhi P1 150000 P2 135000 P3 250000 P4 310000 MaDuAn P1 P2 P3 P4 DuAn4 Ten Trang thiết bị CSDL CAD/CAM Bảo Trì Vitri Hà Nội Hải Phòng Hà Nội Quảng Ninh 3. 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ệ.1. 3. Tiêu chuẩn này đảm bảo rằng các mảnh ngang sẽ tách biệt với nhau. 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. 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ố.1.1.…. RN 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. Nếu quan hệ được phân mảnh dọc. RN và mục dữ liệu ti nằm trong mảnh ri. 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.5. 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.4.1. 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í. 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. nó có thể được nhân bản hoặc duy trì một bản duy nhất. R2.3. Vì thế trong trường hợp phân mảnh dọc. 3. là 3. thông thường khi phân mảnh ngang thì phép toán hợp còn phân mảnh dọc là phép toán kết nối. thì nó sẽ không nằm trong các mảnh Rk với k j.. vị trí các ứng dụng. Tính tách biệt: Nếu quan hệ R được phân mảnh ngang thành các mảnh R1. RN thì cần phải định nghĩa một toán tử tái thiết sao cho: R = Ri.6.1. 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.1. Tổ chức logic của CSDL. Vậy cần phải định ra được một mức độ phân mảnh thích hợp. 2.

Ai là một thuộc tính. U = A1. mk} được định nghĩa như sau: mi = p’j với 1 p’j j t Trong đó = pj hoặc p’j = pj 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. AN trong đó mỗi Ai là một thuộc tính có miền giá trị dom(Ai). Cho lược đồ quan hệ R(U). Thông tin định lượng cần có là lực lượng của mỗi quan hệ R. U = A1.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. đó là số bộ có trong R được ký hiệu là card(R). Thông tin về CSDL Thông tin về CSDL là lược đồ toàn cục và các quan hệ gốc.1. là tổ hợp của các vị từ đơn giản. Cho lược đồ quan hệ R(U).…. p2. <giá trị> dom(Ai). AN trong đó mỗi Ai là một thuộc tính có miền giá trị dom(Ai).1.20 CSDL. <>}.1. 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.…. 2. >. 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.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ệ đó.…. A2. 1. 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. Ví dụ: Với hình 3. Yêu cầu thông tin của phân mảnh ngang. pt}.2. >=. 3. Trong đó Như vậy cho trước một lược đồ R. m2. Tập các vị từ hội sơ cấp M = {m1. 3. . 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. Để 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. 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.…. Lượng thông tin này phụ thuộc vào bài toán cụ thể. 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. Ví dụ vị từ hội sơ cấp của các vị từ đơn giản.2. 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: . Pr = {p1. <. 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: . <=. A2.1. Một vị từ đơn giản P được định nghĩa trên R có dạng: P: Ai <giá trị> {=.

Tần số truy xuất và trong một số trường hợp là số truy xuất. 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. 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: . 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.1. Ví dụ: Phân rã quan hệ DuAn thành các mảnh ngang DuAn1. Vị từ đơn giản phái có liên đới trong việc xác định một phân mảnh. 3. 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. 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. Chúng ta quy ước: Thuật toán 3. các mảnh ngang của R là các Ri với Ri = R(Ei). acc(qi) 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ể. Chú ý rằng nếu Ei có dạng chuẩn hội. 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. 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. Đặc tính thứ hai của tập vị từ là tính cực tiểu. COM-MIN Thuật toán tìm tập vị từ đầy đủ và cực tiểu Vào: Quan hệ R.…. Vì vậy cho một tập các vị từ hội sơ cấp M.2. Phân mảnh ngang nguyên thủy.1.2. 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. 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. q2. 1 i k Trong đó Ei là công thức chọn (hội sơ cấp) được sử dụng để có thể có được mảnh Ri. 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ệ. 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 Ri) được truy xuất bởi các vị từ p Pr đều bằng nhau. Ri là các bộ của R thỏa mãn Ei. 3. Đây là một đặc tính cảm tính. 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. nó là một vị từ hội sơ cấp mi. Nếu Q = {q1.. 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ừ. được định nghĩa như sau: DuAn1 = DuAn(KinhPhi 200000) DuAn2 = DuAn(KinhPhi > 200000) Một mảnh ngang Ri của quan hệ R có chứa tất cả các bộ R thỏa vị từ hội sơ cấp mi. Vì thế cho quan hệ R. DuAn2 trong hình 3. 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. qN} là các câu vấn tin.1.21 1.

nếu p phân hoạch R theo quy tắc 1 {p} . Đ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.Pr = Pr – {p} -F=F 2. nếu Pr’ = (P1. Gọi F tập các mảnh hội sơ cấp Pr’ = 1.Pr’ = Pr’ . 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.Pr’ = Pr’ – {p} . P2).Pr’ = Pr’ .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.2. 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. p Pr’ nếu p’ mà p tương đương với p’ . p . Bước cuối của quá trình thiết kế là loại bỏ một số mảnh vô nghĩa. p {f} với f là một mảnh hội sơ cấp theo p F theo quy tắc 1 Pr nếu p phân hoạch một mảnh f {p} .F= Pr.22 0.Pr = Pr – {p} -F=F {f} với f là một mảnh hội sơ cấp theo p Pr’ phân hoạch một mảnh f F Lặp lại bước 2 cho đến khi nào không p 3. 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) i2: (A = giá trị 1) (A = giá trị 2) (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) m2: (A = giá trị 1) m3: (A = giá trị 1) m4: (A = giá trị 1) (A = giá trị 2) (A = giá trị 2) (A = giá trị 2) (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. Chẳng hạn. 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’. Thuật toán phân mảnh ngang nguyên thủy .

ChucVu). 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. Pr’ = COM-MIN(R. Phân mảnh được sử dụng trong nhiều ứng dụng hơn. Ví dụ: Xét liên kết giữa bảng Luong và NhanVien. với Ei là công thức định nghĩa phân mảnh ngang nguyên thủy Si.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 1. 1 i k Trong đó k là số lượng các mảnh được định nghĩa trên R. mi M nếu mi mâu thuẫn với I Pr’ M = M – {mi} Sau bước này M là tập các vị từ hội sơ cấp. 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.ChucVu = Luong. 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 đó.3. Như thế nếu cho trước một liên kết L. 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. quan hệ thành viên. và Si = S(Ei). Như thế có thể có nhiều cách phân mảnh ngang dẫn xuất cho R. Giả sử nhóm có lượng từ 4000$ trở xuống và nhóm lương trên 4000$. Cũng có một vấn đề phức tạp phải chú ý. 3. Hai mảnh NhanVien1 và NhanVien2 được định nghĩa như sau: NhanVien1 = NhanVien NhanVien2 = NhanVien Trong đó Luong1 = Luong(Luong 4000) Luong1 Luong2 Luong2 = Luong(Luong > 4000) Kết quả thu được như sau: NhanVien1 MaNV Ten E1 Hoàng Lan E3 Minh Tài E6 Văn Hiền E7 Hoài Nam ChucVu Ks Điện Ks Máy Ks Điện Ks Máy NhanVien2 MaNV Ten ChucVu E2 Đình Vượng Phân tích hệ thống E4 Dương Hà Lập trình viên E5 Minh Hoa Phân tích hệ thống 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).1.2. các mảnh ngang dẫn xuất của R được định nghĩa là: Ri = R Si. . Phân mảnh có đặc tính nối tốt hơn. 2. trong lược đồ CSDL chúng ta hay gặp nhiều đường nối đến một quan hệ R.23 Vào: Quan hệ R. trong đó owner(L) = S và member(L) = R. Chúng ta có thể nhóm các nhân viên thành hai nhóm tùy theo lương.

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. SM} trên đó có một tập các ứng dụng dạng Q = {q 1. Tính đầy đủ của phân mảnh ngang dẫn xuất có hơi khác.4.….4.1. phân mảnh thu được cung được bảo đảm là đầy đủ. RN}. Với điều kiện các vị từ chọn là đầy đủ. FN} và một mạng máy tính bao gồm các vị trị S = {S1. rN 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ộ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. 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. chúng ta có R = Ri. R2. 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.…. Ri FR. S2.1. Phân mảnh dọc. qk} đang chạy. Phân mảnh dọc một quan hệ r sẽ sinh ra các mảnh r1. 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. S2. 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ệ. A là thuộc tính nối giữa R và S. 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 đó. 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ớ. F2. 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. 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 Fs = {S1. 3.24 3. Trong ngữ cảnh này.A = t’. phải có một bộ t’ sao cho t. 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ủ. q2. 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. SN}. 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. Kiểm tra tính đúng đắn của phân mảnh ngang 1.1. Bài toán cấp phát: Giả sử rằng có một tập các mảnh F = {F 1.….2.3. r2. Phân mảnh dọc đã được nghiên cứu trong ngữ cảnh của các hệ CSDL tập trung.…. 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 đủ. 3. Vì thế một quan hệ R với phân mảnh F R = {R1. Tính tối ưu có thể được định nghĩa ứng với hai số đo: . 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ậy đối với mỗi bộ t của R. 3.…. Khó khăn là do vị từ định nghĩa phân mảnh có liên quan đến hai quan hệ. Cấp phát.

chi phí cập nhật Fi tại tất cả mọi vị trí chứa nó và chi phí truyền dữ liệu. 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ể. ngược lại sẽ băng 0. 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. 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. Một vectơ O gồm các giá trị 0(i) cũng được định nghĩa. Chúng ta định nghĩa hai ma trận UM và RM với các phần tử tương ứng uij và rij được đặc tả như sau . Đây là số lượng các bộ của Fj cần được truy xuất để xử lý qi. 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 Fj ứng với câu vấn tin qi. 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ới 0(i) đặc tả vị trí đưa ra câu vấn tin qi.Chi phí nhỏ nhất: Hàm chi phí gồm có chi phí lưu mỗi mảnh Fi tại vị trí Sj. Cuối cúng để định nghĩa ràng buộc thời gian đáp ứng. 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ó. Cũng cần phải đặc tả số đo chi phí LPCj là chi phí xử lý một đơn vị công việc tại vị trí Sj.uij = 1 nếu vấn tin qi có cập nhật mảnh Fj. Giá trị này được ký hiệu là Seli(Fj). và bài toán sau là bài toán cấp phát CSDL. Thông tin về mạng: . chúng ta đã định nghĩa độ tuyển hội sơ cấp. 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. Kích thước một mảnh Fj được cho bởi: size(Fj) = card(Fj) * Length(Fj) Trong đó length(Fj) là chiều dài tính theo byte của một bộ trong mảnh Fj 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.25 . Và tương ứng là các truy xuất cập nhật – ký hiệu là URij. Thông tin cho cấp phát: Thông tin về CSDL: Để thực hiện phân mảnh ngang. Chi phí đơn vị để lưu trữ dữ liệu tại các vị trị S j được ký hiệu là USCj. ngược lại sẽ bằng 0 . Nói chung bài toán cấp phát tổng quát là bài toán phức tạp. Một loại thông tin khác trên các mảnh là kích thước của chúng. 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í vấn tin Fi tại vị trí Sj. Đơn vị công việc cần phải giống với đơn vị của RR và UR. 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ả. Hai số liệu quan trọng là số truy xuất đọc do câu vấn tin qi thực hiện trên mảnh Fj trong mỗi lần chạy của nó – ký hiệu là RRij.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í. Để 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. .rij = 1 nếu vần tin qi cần đọc mảnh Fj.

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. và nó có thể được sử dụng như một quan hệ cơ sở (bảng). Kiểm soát dữ liệu ngữ nghĩa 3.1. 3. Nếu người sử dụng chỉ được phép truy xuất CSDL qua các khung nhìn.1. Để có thể tính được số lượng thông báo. 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ệ. 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.1.2. Nhờ chọn ra một tập con của CSDL. chúng ta giả sử có tồn tại một mạng đơn giản. 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. . 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. 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. 3. 3. 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 đó.1. Trong mỗi trường hợp.2. 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. kết nối. các định nghĩa khung nhìn có thể được tập trung tại một vị trí. Cần chú ý trong môi trường phân tán. được nhân bản một phần hoặc toàn bộ.2. trong đó chi phí truyền mỗi bó giữa hai vị trí S i và Sj. Bên cạnh việc sử dụng chúng trong lược đồ ngoài. chiếu. Một lược đồ ngoài có thể được định nghĩa là một tập các khung nhì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.2. chúng ta dùng fsize làm kích thước (tính theo byte) của một bó dữ liệu. 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ể.2. 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ở. 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ệ. 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. nhưng không được vật chất hóa như một quan hệ cơ sở. Bởi vì khung nhìn có thể được sử dụng làm quan hệ cơ sở trong các ứng dụng. 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ệ. Tùy vào mức độ tự trị của vị trí được đưa ra bởi hệ thống.26 Trong mô hình đang xét. 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. nghĩa là không được lưu thực sự trong CSDL. Trong phần trước chúng ta đã xem xét các phân mảnh của quan hệ. các khung nhìn đã che dấu đi một số dữ liệu. Nó được định nghĩa bằng cách gán tên của khung nhìn cho câu vấn tin. đị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ở. 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.

3. thao tác. mật khẩu).27 nhưng không phải tất cả chúng có khả năng cập nhật. 3. 3. Đ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. các định nghĩa khung nhìn có thể được tập trung tại một vị trí.2.2. 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. 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. 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. 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. Cả tên và mật khẩu đều phải trình ra khi đăng nhập vào hệ thống. 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 đó. Khi một khung nhìn được định nghĩa. Phương pháp chính là mã hóa dữ liệu. ví dụ như trigger.1.2.1. định nghĩa của chúng phải được lưu trong CSDL giống như các quan hệ cơ sở. 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. 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ở. 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. 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. 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.2. Trong mỗi trường hợp. 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. và các đối tượng CSDL sẽ được các thao tác tác động. được nhân bản một phần hoặc toàn bộ. 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. 3. 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ể. các thao tác được gắn vào ứng dụng. Bởi vì khung nhìn có thể được sử dụng làm quan hệ cơ sở trong các ứng dụng. Kiểm soát cấp quyền bao gồm việc xem bộ ba (người sử dụng. Trong các hệ quản trị CSDL dựa trên SQL. đố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. là người kích hoạt các chương trình ứng dụng.2. 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. 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. đượ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. một thao tác là một câu lệnh bậc cao . Tùy thuộc vào mức độ tự trị của vị trí được đưa ra bởi hệ thống. 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. 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. 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”.

Trong môi trường phân tán. Tuy nhiên việc duy trì các bản sao này hết sức tốn kém. Tuy nhiên. 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. khái niệm “mọi người sử dụng” có thể được xem là nhóm công cộng. mà bản thân chúng lại phân tán. Đôi khi để biểu thị một giao dịch T ta viết T: begin…end.2. nghĩa là nó được cấp tạo bởi những đối tượng cơ sở khác. 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. Ư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.3. 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ể. UPDATE. 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í. Khung nhìn là những đối tượng phức tạp. Trong các DBMS tập trung. 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. chúng phải được lưu vào trong hồ cơ cấu trúc của CSDL. 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ở. Có hai giải pháp cho vấn đề này: 1. 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. 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ộ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. 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. 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. 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.2. Những vấn đề này bao gồm: cấp quyền cho người sử dụng ở xa. 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.1. Giữa begin và end là những bước cơ bản của giao dịch. 3. Khung nhìn có thể được xem như các đối tượng của cơ chế cấp quyền. 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. 2.3.2. 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. Có . INSERT. 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ỗ. 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. Quản lý giao dịch và điểu khiền đồng thời phân tán 3. Giống như các định nghĩa khung nhìn.28 như SELECT. 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ó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. 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.

1. ủ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ử.1. Nghĩa là thao tác xảy ra trọn vẹn hoặc không xảy ra. 3. hoặc những bước sơ đẳng khác như các bước khóa. 2. 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ử. Trong trường hợp (2). 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). 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. Một giao dịch sẽ đọc dữ liệu và ghi dữ liệu vào CSDL.1. 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ó. chẳng hạn có khi nó phải chấm dứt giữa chứng. mỗi thực hiện này là một giao dịch khác nhau. 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.2.3. Trong hệ thống phân chia thời gian. 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. 3. 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. 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. hoặc có thể do nó đ òi hỏi những dữ liệu không được quyền truy xuất. 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ử. 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. 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. 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. Tính nguyên tử Trên quan điểm về quản lý được. 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. Nếu xảy ra. 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ỗ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.3.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. 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). 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. Một giao dịch có thể không hoàn tất được. Một giao dịch không có tính nguyên tử nếu: 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. Mục dữ liệu . mở khóa. 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ế.

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. một giao dịch T phải khóa A lại.4. đó là những đơn vị dữ liệu cần được truy xuất có điều khiển. Chúng ta nhận thấy rằng. 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. hoặc các mục nhỏ như các bộ hay thành phần của các bộ. 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. rồi cộng thêm 1 vào A. 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. T) – giao dịch T có một khóa kiểu L trên mục I. cộng 1 vào giá trị này rồi ghi kết quả vào trong CSDL. với mỗi giao dịch P đọc A vào vùng làm việc. 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. 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. bởi vì chúng ta cần ít chỗ để lưu các khóa. 3. Trước khi đọc A. 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.1. 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. Có thể có nhiều kiểu khóa. 3. hai giao dịch này thực hiện chương trình P. L. 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.30 Để quản lý các hoạt động đồng thời. Chọn chế độ hạt thô sẽ làm giảm đi tổng chi phí cần để duy trì các khóa. giá trị của A trong CSDL chỉ tăng 1.1. như một khối của quan hệ. Một hệ thống được gọi là hạt mịn. chỉ có một tập con các mục bị khóa. khóa ghi… Thông thường tại mỗi thời điểm. Tuy nhiện độ hạt mịn cho phép nhiều giao dịch hoạt động song song. mặc dù hai giao dịch đều đã cộng thêm 1 vào A. 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. Khóa Như chúng ta đã khẳng định. 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.3. CSDL phải được phân nhỏ thành các mục dữ liệu. Hơn nữa T khóa được mục A chỉ khi trước đó A .3. chúng ta có thể chọn các mục lớn như các quan hệ. 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. Chẳng hạn trong mô hình dữ liệu quan hệ. ví dụ nh ư khóa đọc. Chúng ta cũng có thể chọn lựa các mục có kích thước trung gian. 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.3. 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. 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.

Bây giờ chỉ có T1 mới có thể truy xuất A. và T3 được trao khóa này trước T2. bộ quản lý khóa sẽ cho nó khóa mục A. khi T1 giải phóng khóa trên 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ậy để ngăn cản những trường hợp đáng tiếc xẩy ra ta phải dùng khóa. Giả sử trong ví dụ trên. 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. 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.3.1. và kết quả chung của chúng là cộng 2 vào A. 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. và thao tác khóa hành động như một hàm đồng bộ hóa. hệ thống buộc T2 phải đợi. T phải đợi đến khi giao dịch mở khóa cho A. 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. 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. 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. Giả sử rằng không có giao dịch nào đang khóa.1. một giao dịch T3 khác cùng xin một khóa trên A. Nếu T1 bắt đầu trước. 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.3. đó là vấn đề khóa “cứng” (deadlock). Nếu A đã bị khóa.6. Như vậy trong những chương trình giao dịch phải có khóa và mở khóa. nó yêu cầu khóa trên A. 3. 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.31 không bị khóa bởi một giao dịch khác. 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.5. Ví dụ: Giả sử chúng ta có hai giao dịch đồng thời T1 và T2 như sau: . trong khi T2 đang đợi nhận khóa. hệ thống mới cho phép T2 tiến hành. Đó 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. 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ệ. 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. 3. Kết quả là điều bất thường không xảy ra. Tình huống này gọi là khóa sống. T1 hoặc T2 sẽ hoàn tất trước khi giao dịch kia bắt đầu. Nghĩa là nếu một giao dịch khóa một mục đã được khóa. Chi khi T1 thực hiện lệnh Unlock A. ví dụ như các giao dịch khi khóa một mục phải đăng ký thứ tự.

Giả sử chúng ta có tập giao dịch T = {T1. 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 đó. và bộ quản lý khóa trao tất cả các khóa cho chúng nếu được.…. ghi. 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. Thế thì mỗi chu trình trong đồ thị chờ sẽ biểu thị cho một khóa “cứng”. 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 đó.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. …) được thực hiện. Tương tự khi T2 yêu cầu khó trên A. 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.32 T1: begin Lock A Lock B Unlock A Unlock B end T2:begin Lock B Lock A Unlock B Unlock A end Giả sử T1 và T2 được thực hiện cùng lúc. TN}.…. Gán một thứ tự tuyến tính cho các mục.1. vì vậy tất cả vẫn tiếp tục đợi mãi mãi. và nếu không có chu trình thì kết luật là không có khóa “cứng”. mỗi giao dịch đều phải đợi cho giao dịch kia mở khóa. T2. Nếu chúng ta sử dụng đồ thị chờ đợi. Một số giải pháp cho vấn đề khóa “cứng”: 1. tương ứng với T ta có N! các lịch biểu tuần tự khác nhau. nó cũng buộc phải đợi vì T1 đã khóa A. buộc tất cả các giao dịch phải xin khóa theo thứ tự này. Nếu một khóa “cứng” được phát hiện.3. T2. Như vậy khóa “cứng” là một tình huống mà trong đó mỗi thành viên Ti của một tập giao dịch T = {T1. T2. Và cứ sau mỗi khoảng thời gian nhất định . T1 yêu cầu khóa A và được trao quyền khóa trên A. Bởi vì mỗi giao dịch trong tập T đều đang đợi. . 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 đó.…. nói không thể mở khóa cho mục mà một giao dịch khác đang cần. Do đó khi T1 yêu cầu khóa trên B thì nó phải đợi vị T2 đã khóa B. Tính khả tuần tự của lịch biểu. 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. 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. 2. TN} đ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. 3. Giả sử chúng ta có một tập các giao dịch T = {T 1. 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ự. đọc. TN}. 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.7. 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. và chúng đều phải đợi nhưng chẳng bao giờ nhận được khó như yêu cầu. 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ữ. còn T2 yêu cầu và được trao quyền khóa trên B. Kết quả là không một giao dịch nào tiếp tục hoạt động được.

Ý nghĩa của giao dịch – hàm đặc trưng Về nguyên tắc. 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. bởi vì chúng ta có thể khóa và mở khóa một mục A nhiều lần. 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ự. 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. Buộc một giao dịch phải đợi. . 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. 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. 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 đó. 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 Ti T.3.…. 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.2. theo nghĩa tổng quát nhấ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”.1. Bộ xếp lịch là thành phần của hệ thống CSDL. 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. như vậy giá trị của hàm f(A0. Mô hình giao dịch đơn giản 3.3. 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. 3. 2.unlock A f(A.8. 3. có vai trò làm trọng tài phân xử các yêu cầu đang có xung đột.9.3. Một nghi thức.) sau khi Unlock A là giá trị mới của A. Vậy gọi A0 là giá trị ban đầu của A trước khi các giao dịch bắt đầu thực hiện. ý 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. khóa “cứng” và vấn đề bất khả tuần tự. Buộc một giao dịch ngừng lại và tái khởi động. chúng ta sẽ dùng bộ xép lịch và các nghi thức. Để loại bỏ những vấn đền này. Vậy với tập giao dịch T ta có k! lịch biểu S khác nhau.3. Hai lịch biểu được gọi là tương đương nếu chúng cho kết quả giống 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ệ.…). và giá trị của f là giá trị mới của A sau khi mở khóa A. 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ề hình thức.2.…) ta ký hiệu: lock A…. 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ự. Công cụ đó là các nghi thức mà tất cả các giao dịch phải tuân theo. chẳng hạn cho đến khi khóa đang được yêu cầu phải giải phóng. chúng ta gán một hàm f đặc trưng cho mỗi cặp Lock A và Unlock A. 3.1.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 Ti đã cho phải xuất hiện trong lịch biểu S theo đúng thứ tự xảy ra trong giao dịch Ti 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.1.

f3(B0. hơn nữa phép kiểm tra này là một phương pháp .C0)) f1(A0. 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.C0) (ii) = f5(f1(A0.C) Unlock A f7(A.C0) f3(B0.B0).f3(B0. Thật vậy.C) End T3: begin Lock A Lock B Unlock C f6(A.C0) (iii) = f6((ii). (i)) (iv) = f7((ii). và trong Lock B – Unlock B có B và C. là những hàm xuất hiện trên cùng một dòng với Unlock.C0)) f1(A0. 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. giá trị cuối cùng của B sẽ là: f3(f2(A0.C0) f3(B0.f3(B0. và C.C0)) (ii) (ii) (ii) (ii) (ii) (iv) B B0 B0 B0 f3(B0.C0)) 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) 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.f3(B0.C0)). Bước 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Thao tác T1:Lock A T2: Lock B T2: Lock C T2: UnLock B T1: Lock B T1: UnLock A T2: Lock A T2: UnLock C T2: UnLock A T3: Lock A T3: Lock C T1: UnLock B T3: UnLock C T3: UnLock A A A0 A0 A0 A0 A0 f1(A0.C0) f2(A0.C0) = f3(A0.C0)) C C0 C0 C0 C0 C0 C0 C0 (i) (i) (i) (i) (i) (iii) (iii) Ký hiệu: (i) = f4(f1(A0. giả sử rằng nó khả tuần tự.C0)).B) End T2: begin Lock B Lock C Unlock B f3(B.f3(B0.B. 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. nhận A và B làm đối số.f3(B0.C0)) f2(A0.B) Unlock B f2(A.C0) chứ không phải f2(A0.(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ự. Hàm f3 chỉ nhận B và C làm đối số bởi vì T2 mở khóa B. Chẳng hạn f 1. 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.C0)) f2(A0.C0)).C0) f3(B0.34 Hai công thức khác nhau được coi là những giá trị khác nhau. bởi vậy là những mục trong Lock A – Unlock A của T1.f3(B0.C0) f3(B0.B.C0) f3(B0. Thế thì nếu T1 thực hiện trước T2 trong lịch biểu tuần tự.C0) f3(B0.C) Lock A Unlock C f4(A.C) Unlock A f5(A.B0). Ta xét ví dụ sau: T1: begin Lock A Lock A Unlock A f1(A. f3(B0. thật vậy điều gì sẽ xẩy ra chẳng hạn nếu tồn tại: f3(f2(A0.f3(B0.C0) f3(B0. B.f3(B0.B0.B0.

Cung này có ý nghĩa là trong một lịch biểu tuần tự tương đương với S. Tk Ra: Khẳng định S có khả tuần tự hay không. Nếu có một cặp thao tác như thế và s j. Nghi thức được gọi là nghi thức hai phai.2.2. 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. Liệt kê Tj rồi loại Tj ra khỏi G. 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ự.…. Thuật toán 3. 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. 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. a2. Nếu có thì đưa ra một lịch biểu tuần tự tương đương với S. Trong đó mỗi ai là một thao tác có dạng Tj: Lock A hoặc Tj: Unlock A Nếu aj là thao tác kiểu Unlock A thì tìm thao tác ap kế tiếp sau aj có dạng Ts: Lock A. 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. aN) là tập các bước cơ bản trong 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 Ti. Để xác định các cung của đồ thị G. Tj phải thực hiện trước trước Ts. Nếu G có một chu trình thì S là bất khả tuần tự.3.1.3. 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.3. 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. gọi (a 1. nếu không G có một chu trình. Thứ tự đó tạo nên lịch biểu tuần tự tương dương với S. Tin Ti1 . 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 Ti 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. Chứng minh: Giả sử khẳng định trên không đúng. đảm bảo rằng mọi lịch biểu mà chúng ta cho phép đều khả tuần tự. Kiểm tra tính khả tuần tự bằng đồ thị có hướng. 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ự. T2. 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ự. 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.3. Vậy đồ thị G của lịch biểu S sẽ có một chu trình Ti1 Ti2 …. 3. 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ự. chúng ta vẽ một cung từ Tj đến Ts (Tj Ts). Để xác định rằng một bộ xếp lịch nào đó là đúng. 3. Định lý 3.….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.

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. 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. 3. 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ũ. từ ý nghĩa của các giao dịch và các lịch biểu.36 Do đó có một thao tác khóa do Ti2 sẽ đi sau một thao tác mở khóa do T i1. Chúng sinh ra cùng giá trị cho mỗi mục.2.3.Khóa ghi Wlock. Nếu không thì T2 đọc một tía trì của A không chứa hàm f.4.3. hàm đó phụ thuộc vào tất cả các mục bị khóa trước khi mở khóa 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. Vậy khẳng định trên là đúng. 3. 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. Chắc chắn rằng T 1 phải thực hiện trước T2 trong một lịch biểu tuần tự tương đương với S. 3. nếu T3 là giao dịch kế tiếp sau T1 nhận khóa ghi A thì T1 phải thực hiện trước T3. 1. 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. 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. 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.4. 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. 2. 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. 2. ngăn không cho bất kỳ giao dịch khác ghi giá trị mới lên A. và gọi f là hàm đi kèm với khóa ghi đó. Vì vậy chúng ta có thể nói hai lịch biểu là tương đương nếu: 1.4. 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. Điều này mâu thuẫn với giả thiết Ti1 là giao dịch hai pha. Tương tự. 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. 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. Chúng ta phân biệt hai loại khóa. Sau khi T1 mở khóa A. gọi T2 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. một thao tác kho do Ti3 sẽ đi sau một thao tác mở khóa T i2… Cuối cùng một thao tác khóa Ti1 sẽ đi sau một thao tác mở khóa Ti1. Ý 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.1. . 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. Đồ 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 đó. 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. Một giao dịch T chỉ đọc một mục A sẽ thực hiện lệnh Rlock A. 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 đó. Khóa đọc Rlock.

Gọi Tm với m i là một giao dịch khác khóa đọc A sau khi Ti mở khóa A những trước các giao dịch khác khóa ghi A. giao dịch T i nhận khóa đọc hoặc khóa A. 2. giao dịch T i khóa ghi A. Nếu T1 xuất hiện trước T4 trong lịch biểu tuần tự thì T4 đọc một giá trị của A có chứa hàm f.4. Đú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. T2. . nếu được sẽ đưa ra một lịch biểu tuần tự tương ứng. Giả sử trong S.….37 Bây giờ ta giả sử rằng T4 là một giao dịch nhận khóa đọc A trước khi T1 khóa ghi A. TN Ra: Khẳng định S có khả tuần tự hay không. T4 phải thực hiện trước T1 trong một lịch biểu tuần tự tương đương với S. 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ì vậy. Giả sử trong S. Thuật toán 3. còn trong lịch biểu S. giá trị được đọc bởi T4 không chứa f. 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ự. Chúng ta vẽ mộ cung từ T i đến Tm. Khi đó chúng ta đặt một cung từ Ti đến Tj. Vào: Một lịch biểu S cho một tập các giao dịch T 1. 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. Các nút tương ứng là các giao dịch. Phương pháp: Chúng ta xây dựng một đồ thị G như sau. T j là giao dịch kế tiếp khóa ghi A. Nếu G có chu trình thi S là bất khả tuần tự. Các cung được xác định bằng quy tắc sau: và i 1. j.

cột được dùng theo nghĩa của CSDL quan hệ. 5. Các cột được dùng theo nghĩa tổ hợp của nhiều thuộc tính. 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. Kích thước CSDL có xu hướng ngày càng lớn. 1. 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. 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ả.1. Các hệ thống đó được gọi là hệ thống quyết định quản lý. hệ thống trợ giúp ra quyết định chưa có lý thuyết riêng và hoàn chỉnh. ý tượng xử lý tách biệt. phân tích. 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. Hệ trợ giúp ra quyết định 4. Hệ thống như vậy cần đến lý thuyết tối ưu. người ta dùng máy tính trong quá trình ra quyết định. ra quyết định một cách thông minh. Khác với hệ thống CSDL. điều khiển quá trình thống kê… Cuối những năm 60. người ta có thể thực hiện các phép toán cập nhật dữ liệu. 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. về sau được xây dựng thành những hệ thống thông tin quản lý. rất hiếm khi được sử dụng. Các khái niệm như dòng. 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ác phép toán xử lý dữ liệu như cập nhật dữ liệu. Các khóa thường mang yếu tố thời gian. 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ười ta phát triển những ngôn ngữ hỏi. 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ý. vẫn rất quan trọng. 2.38 Chương 4. 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. 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. Vào những năm 70. Đôi khi trên những bảng trung gian. . Có sáu đặc tính của hệ thống trợ giúp quyết định. 4. Ý 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. 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 bảng chi số dùng trong CSDL thường có kích thước lớn và nặng nề. 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. 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. 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 đề. Do vậy. do các dữ liệu đã được coi như đúng 3. Đương nhiên trong quá trình ra quyết định. Nhưng không phân biệt được rõ mô hình logic với mô hình vật lý. 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. lý thuyết về hành vi quản lý.

khó hiểu. Tính phức tạp của phép toán kết nối quan hệ. Các bảng dữ liệu ứng với các quan hệ. 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. Tính phức tạp của biểu thức logic. các cột tổ hợp có tư cách như cột bình tưhờng.2. 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. nhưng các dư thừa này được hệ thống kiểm soát. 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. Các quy luật thiết kế logic không phụ thuộc vào việc sử dụng CSDL. 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. 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. 4. 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. Thiết kế logic. Do vậy. Người ta xác định các miền ứng với các kiểu dữ liệu. Đ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.39 6. 2. các thuộc tính . 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. Theo quan điểm thiết kế logic. CSDL thường sử dụng nhiều loại dư thừa dữ liệu. 4. Việc này dẫn đến thiết kế logic đơn giản hơn. người ta cần phải sử dụng nhiêu câu hỏi con. 2. người ta có thể lựa chọn bất kì một cách tổ chức dữ liệu nào. tức là không phụ thuộc vào loại ứng dụng trên CSDL. Các câu hỏi trong hệ thống trợ giúp quyết định cũng có đặc tính riêng. 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. 2. xác định các mối liên kết giữa các cột cảu bảng. 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. Điều này gây khó khăn cho cả người sử dụng và hệ thống. chứ không dùng các cột đơn. 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. 3. Để trả lời các câu hỏi trong hệ trợ giúp ra quyết định.1. Để quản lý các mốc thời gian. Tính phức tạp của các hàm số. thường là rất phức tạp. hàm toán học. Các CSDL trợ giúp quyết đinh thường cần đến các dữ liệu lịch sử. Các câu hỏi trợ giúp quyết định thường truy cập nhiều loại sự kiện. 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ó thể gọi tổ hợp các cột như một cột tổ hợp. 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ê. 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ính phức tạp về phân tích. 3. 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. Về nguyên tắc. 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ả.2. 1. 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. 4. 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.

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. 2. 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. Đó 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.3. về kích thước giao tác. 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. kích thước giao tác lơ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. Thiết kế vật lý CSDL trong hệ thống trợ giúp quyết định có xu hướng nặng nề. và đòi hỏi nhiều loại dư thừa dữ liệu có kiểm soát. 4. về tính hoạt động theo kế hoạch. Quản lý các dữ liệu suy diễn bên cạnh dữ liệu cơ bản. Đ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. Kiến trúc tổng quan của kho dữ liệu Môi trường trợ giúp ra quyết định CSDL Tác nghiệp 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 Kho dữ liệu . người ta thương đề cập khái niệm phân đoạn và chỉ số hoá. 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. kích thước lớn. 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. hàm băm. 4. Phần này đề cập một quan tâm của các hệ trợ giúp ra quyết định. 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. 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. Việc phân đoạn nhằm vào CSDL lơn.1. Do vậy. tính ứng dụng cao.2. 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. bộ xử lý trung tâm. 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. 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. 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ọ. được sử dụng tuỳ theo cảm tính của người quản lý. chia các bảng dữ liệu thanh tập các phần. thời gian.2. và điều chỉnh được hiệu suất của hệ thống. hay các đoạn rời nhau. quản lý tài nguyên. 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. 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. 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. không biết trước về công việc sẽ làm.40 khóa cũng cần được đánh dấu thời gian. phù hợp với công việc lưu trữ vật lý.

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. 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. 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. . không cho phép cập nhật. Kho dữ liệu chuyên đề có vai trò như kho dữ liệu. bền vững để trợ giúp việc ra quyết định 2.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.2. Người ta cần sử dụng nguồn dữ liệu đơn. 4.Khả năng không đủ mạnh của các hệ quản trị CSDL theo mô hình quan hệ. Trích dữ liệu từ kho dữ liệu. hướng chủ đề. cho nên người ta cần đến loại kho dữ liệu chuyên dụng. không bị thay đổi. tức là giả thiết các yếu tố khác là không thay đổi. .Sự không hiệu quả của các phép toán quan hệ. 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 . Kho dữ liệu chuyên đề là kho dữ liệu hạn chế. 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. là tập hợp các dữ liệu thay đổi theo thời gian. Kho dữ liệu chuyên đề. Mục đích của kho dữ liệu là ra quyết định. được tích hợp hướng chủ đề. dùng để trợ giúp việc ra quyết định. Kho dữ liệu (dataware house). Kho dữ liệu được dùng cho công tác ra quyết định trong quản lý. Kho dữ liệu xí nghiệp là kho dữ liệu tích hợp. được người sử dụng xây dựng theo yêu cầu xử lý riêng. Thông thường các dữ liệu trích ra này được tải vào CSDL có . 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ả. người ta thường theo ba cách tiếp cận sau: 1. 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ính hạn chế phạm vi. dù rằng nó có thể bị xoá. 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. Đ/N. Lí do đề xuất khái niệm mới như kho dữ liệu là: 1. 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.1. 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. 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.41 4. khi các kho dữ liệu trở nên thông dụng. dữ liệu sẽ không thay đổi. Kho dữ liệu là nơi chứa các dữ liệu có yếu tố thời gian. tập trung.3. Đ/N. Đ/N. . Tuy nhiên. Đ/N. Kho dữ liệu chuyên đề (data mart). sạch.3. 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. 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. Kho dữ liệu xí nghiệp (Enterprise datawarehouse).Các sai sót về thiết kế CSDL. 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. Để tạo ra được một kho dữ liệu chuyên đề. 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.

Trường hợp điển hình là các khoá chính và khoá ngoài đều được chỉ số hoá. . 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. tệp dữ liệu và các tệp tra cứu trở thành các bảng. 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. Các lược đồ về chiều. mỗi khi cần thiết. NhaSX. ả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. Thông tin này được lưu trong các tệp và được truy cập tuần tự. Mô hình về chiều là tên gọi khác của lược đồ hình sao. 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. 4. 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ối với cá bảng về chiều. Ví dụ CSDL RUOU(TenRuou. Liên quan đến việc thiết kế kho dữ liệu chuyên đề. hay lược đồ về chiều. tuổi của rượu. tức là ảnh của các tệp. trong đó các dữ liệu về chiều được tách khỏi các dữ liệu về sự kiện. 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. Thiết kế tổng thể phù hợp được gọi là lược đồ hình sao. về người sản xuất. 2. các con trỏ trong tệp tra cứu trở thành khoá chính của bảng tra cưu. 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. Do nhu cầu. người sản xuất. Do tính đặc biệt hơn của kho dữ liệu chuyên đề so với kho dữ liệu. NamKT) được gọi là bảng về chiều. người ta cần biết về sản lượng. 3.về tuổi của rượu… Để trợ giúp nhu cầu truy cập này. Khi dùng tiếp cận này trong cơ sỏ dữ liệu quan hệ. 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. Lược đồ hình sao. NamBD. người ta dùng CSDL có nhiều bảng tra cứu. cả về không gian nhớ lẫn thời gian vào/ra. SoLuong) trong đó thuộc tính NamSX được mô tả bằng khoảng từ năm t1 đến năm t2. Đ/N. 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. 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. vì trong thiết kế thực thể quan hệ người ta nới rộng các bảng sự kiện. Ruou TenRuou Lúa mới Thăng Long NhaSX Hà Nội Hà Nội NamSX 1980 1990 SoLuong 200 300 SanXuat Nam 1980 1990 NamBD NamKT 1980 1985 1986 1992 Đ/N. 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. Chẳng hạn đối với thông tin về sản lượng rượu vang. Tạo ra kho dữ liệu chuyên đề riêng biệ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 đề. lược đồ vật lý của dữ liệu có thể đơn giản hơn. 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. 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.3. NamSX. chẳng hạn như địa chỉ của nhà sản xuất. 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ụ. 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.42 lược đồ vật lý gần giống với phần ứng dụng của kho dữ liệu. Tiếp cận này xuất phát từ tính đơn thể của kho dữ liệu. Tính chia hạt.3. đế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. 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. Theo phương thức này. Lược đồ hình sao là thiết kế CSDL đơn giản. Coi kho dữ liệu chuyên đề là nền tảng của kho dữ liệu.

4.4. Giới thiệu. mà theo bảng hai chiều. Một biến dạng của lược đồ hình sao là lược đồ hoa tuyết. trong đó các bảng được chuẩn hoá. 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ệ. rồi dùng tổ hợp này để truy cập bảng sự kiện. phân tích và lập các báo cáo về dữ liệu. 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. và người dùng cần xem xét tất cả các khả năng đó. 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. Tiến hành phép tích đề các đối với các bảng về chiều. Đ/N. Đ/N. số các cột phụ thuộc vào dữ liệu thực. thông qua các câu lệnh yêu cầu tìm kiếm. 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.2. mà chỉ là một báo cáo có hình thức như ma trận hai chiều. bao gồm các thao tác tạo mới. thực hiện việc chuẩn hoá các bảng chiều. Kĩ thuật chỉ số hoá cho phép chiến thuật này hiệu quả hơn. 4. quản lý. 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. theo nhiều cách. tuỳ theo cách thức nhóm dữ liệu khác nhau. Xử lý phân tích trực tuyến 4.1. 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. 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. được gọi là bảng chéo. Trong trường hợp này. cho phép phân tích các dữ liệu. 2. Lưu ý rằng khi tối ưu hoá câu hỏi. 4. 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 Lúa mới Vang Vang Lúa mới CongTy Hà Nội Hà Nội Huda Huế Hà Bắc Nam 1980 1995 1990 1990 SoLuong 200 350 450 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. 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á. người ta thường tránh sử dụng phép tích đề các. Quá trình phân tích yêu cầu gộp dữ liệu.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. Ví dụ: Lúa mới Vang Tổng Hà Nội 200 350 550 Huda Huế 0 450 450 .4. 1. Do vậy bảng chéo không phải là quan hệ. Lược đồ hoa tuyết. và xử lý dữ liệu trong bảng dữ liệu nhiều chiều. Xử lý phân tích trực tuyến. 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. Lược đồ hoa tuyết là biến dạng của lược đồ hình sao. 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. 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. Bảng chéo khác với bảng quan hệ ở chỗ. các bảng kích thước nhỏ tham giá trước vào phép tích đề các.

Trong thực tế nhiều người nhận thấy có cách tiếp cận tốt hơn. Khai phá dữ liệu là quá trình trích ra những thông tin dùng được.5. luật “phân loại”.44 Hà Bắc Tổng 320 520 0 800 320 1320 4. 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. và quá trình này còn được gọi là OLAP quan hệ viết tắt là ROLAP. 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. Để hình dung thấy nhiều chiều. 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ệ. 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. 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. “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. đúng và chưa biết trước từ CSDL lơn. MOLAP cần đến CSDL nhiều chiều. là OLAP nhiều chiều viết tắt là MOLAP. 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 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. Đ/N. rồi dùng thông tin này để ra các quyết định. mục đích của nó là nhìn vào phân đáng quan tâm của dữ liệu. Các CSDL có thể được thể hiện trong bảng hai. Một số qui luật khác được xác định như luật “tương quan tuần tự”.4. Khai phá dữ liệu Khai phá dữ liệu.3. Việc lưu trữ này được gọi là lưu trữ theo quan niệm. 4. ba chiều. Khai phá dữ liệu. .

Sign up to vote on this title
UsefulNot useful