BÀI GIẢNG CƠ SỞ DỮ LIỆU NÂNG CAO · PDF fileCƠ SỞ DỮ LIỆU...

45
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

Transcript of BÀI GIẢNG CƠ SỞ DỮ LIỆU NÂNG CAO · PDF fileCƠ SỞ DỮ LIỆU...

Page 1: BÀI GIẢNG CƠ SỞ DỮ LIỆU NÂNG CAO · PDF fileCƠ SỞ DỮ LIỆU NÂNG CAO Biên soạn: Th.S Nguyễn ... Cung cấp kiến thức nâng cao về mô hình cơ sở dữ

TRƯỜNG ĐẠI HỌC HÀNG HẢIKHOA CÔNG NGHỆ THÔNG TIN

BÀI GIẢNGCƠ SỞ DỮ LIỆU NÂNG CAO

Biên soạn: Th.S Nguyễn Trung Đức

Hải Phòng – 2008

Page 2: BÀI GIẢNG CƠ SỞ DỮ LIỆU NÂNG CAO · PDF fileCƠ SỞ DỮ LIỆU NÂNG CAO Biên soạn: Th.S Nguyễn ... Cung cấp kiến thức nâng cao về mô hình cơ sở dữ

http://www.ebook.edu.vn 1

BỘ GIAO THÔNG VẬN TẢI TRƯỜNG ĐẠI HỌC HÀNG HẢI

BỘ MÔN: HỆ THỐNG THÔNG TIN KHOA: CÔNG NGHỆ THÔNG TIN

BÀI GIẢNG

CƠ SỞ DỮ LIỆU NÂNG CAO

TÊN HỌC PHẦN : CƠ SỞ DỮ LIỆU NÂNG CAOMÃ HỌC PHẦN : 17406TRÌNH ĐỘ ĐÀO TẠO : ĐẠI HỌC CHÍNH QUYDÙNG CHO SV NGÀNH : CÔNG NGHỆ THÔNG TIN

HẢI PHÒNG - 2008

Page 3: BÀI GIẢNG CƠ SỞ DỮ LIỆU NÂNG CAO · PDF fileCƠ SỞ DỮ LIỆU NÂNG CAO Biên soạn: Th.S Nguyễn ... Cung cấp kiến thức nâng cao về mô hình cơ sở dữ

http://www.ebook.edu.vn 2Tên học phần: Cơ sở dữ liệu nâng cao Loại học phần: 2Bộ 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ọc45 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ươngtranh 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 đốitượ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ẾTTÊ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áttriển

3 3

1.1. Quan niệm về CSDL1.2. Ứng dụng của hệ quản trị CSDL1.3. Lịch sử của các hệ quản trị dữ liệuChương 2. Mô hình mạng, mô hình phân cấp 3 32.1. Mô hình mạng2.1.1. Giới thiệu2.1.2. Các khái niệm2.2. Mô hình phân cấp2.2.1. Giới thiệu2.2.2. Các khái niệmChương 3. Thiết kế cơ sở dữ liệu khái niệm 3 33.1. Giới thiệu3.2. Trừu tượng hoá trong thiết kế CSDL3.3. Các thuộc tính tương xứng giữa các lớp3.4. Các mô hình dữ liệu3.5. Mô hình thực thể quan hệChương 4. Điều khiển khai thác tương tranh 3 34.1. Giới thiệu4.2. Một số khái niệm4.3. Đặc tính của khai thác không xung đột4.3.1. Một số khái niệm4.3.2. Khai thác có thứ tự4.3.3. Đồ thị về thứ tự thực hiện các giao tácChương 5. An toàn dữ liệu và xử lý sai sót 3 35.1. An toàn trong CSDL5.1.1. Phạm vi an toàn dữ liệu5.1.2. Các yêu cầu bảo vệ CSDL5.1.3. Các dạng sai sót5.2. Các điều khiển an toàn dữ liệu5.2.1. Điều khiển luồng thông tin

Page 4: BÀI GIẢNG CƠ SỞ DỮ LIỆU NÂNG CAO · PDF fileCƠ SỞ DỮ LIỆU NÂNG CAO Biên soạn: Th.S Nguyễn ... Cung cấp kiến thức nâng cao về mô hình cơ sở dữ

http://www.ebook.edu.vn 3PHÂN PHỐI SỐ TIẾT

TÊN CHƯƠNG MỤC TS LT TH BT KT5.2.2. Điều khiển suy diễn5.2.3. Điều khiển truy nhậpChương 6. Đánh giá câu hỏi 3 2 16.1. Phân tích câu hỏi6.1.1. Phân tích cú pháp6.1.2. Phân tích ngữ nghĩa6.2. Cấu trúc đại số câu hỏi6.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ỏiChương 7. Cơ sở dữ liệu hướng đối tượng 12 5 6 17.1. Giới thiệu về hướng đối tượng7.1.1. Các khái niệm hướng đối tượng7.1.2. Mô hình hoá việc phân tích hướng đối tượng7.1.3. Mô hình hóa dữ liệu7.2. Nguyên tác của các mô hình hướng đối tượng7.2.1. Mô hình hoá các đối tượng7.2.2. Phương pháp7.2.3. Xác định dạng dữ liệu7.2.4. Các liên kết thừa kế giữa các lớp7.2.5. Đa cấu và sự áp đặt7.2.6. Xác định tập các đối tượng7.2.7. Khía cạnh động7.2.8. Lược đồ CSDL hướng đối tượng7.3. Tính bền vững các các đối tượng7.3.1. CSDL hướng đối tượng7.3.2. Quản lý tính bền vững7.3.3. Kế thừa tính bền vững7.3.4. Tính bền vững do tham chiếu7.3.5. Tích hợp với ngôn ngữ lập trình7.4. Đại số với các đối tượng phức tạp7.4.1. Mở rộng đại số quan hệ theo đường dẫn và cácphương pháp7.4.2. Các phép toán đại số7.4.3. Các phép toán nhóm7.4.4. Đồ thị các phép toánChương 8. Cơ sở dữ liệu phân tán 15 5 9 18.1. Cấu trúc CSDL phân tán8.2. Đánh giá CSDL phân tán8.3. Thiết kế CSDL phân tán8.3.1. Bản sao dữ liệu8.3.2. Chia nhỏ dữ liệu8.4. Tính thông suốt và tính tự trị của CSDL phân tán8.5. Xử lý câu hỏi8.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.

Page 5: BÀI GIẢNG CƠ SỞ DỮ LIỆU NÂNG CAO · PDF fileCƠ SỞ DỮ LIỆU NÂNG CAO Biên soạn: Th.S Nguyễn ... Cung cấp kiến thức nâng cao về mô hình cơ sở dữ

http://www.ebook.edu.vn 4Tà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

Page 6: BÀI GIẢNG CƠ SỞ DỮ LIỆU NÂNG CAO · PDF fileCƠ SỞ DỮ LIỆU NÂNG CAO Biên soạn: Th.S Nguyễn ... Cung cấp kiến thức nâng cao về mô hình cơ sở dữ

http://www.ebook.edu.vn 5MỤC LỤC

Chương 1. Hệ quản trị cơ sở dữ liệu ............................................................................ 71.1. Quan niệm về CSDL ......................................................................................... 71.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 ................................................................... 92.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 .............................................................................. 92.1.2. Quản lý các tri thức .................................................................................... 92.1.3. Quản trị các dữ liệu phân tán .................................................................... 102.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........................................................................ 112.2.1. Đối tượng................................................................................................. 122.2.2. Lớp đối tượng .......................................................................................... 122.2.3. Cá thể....................................................................................................... 132.2.4. Kế thừa .................................................................................................... 13

2.3. Cơ sở dữ liệu hướng đối tượng........................................................................ 132.4. Thiết kế cơ sở dữ liệu hướng đối tượng........................................................... 14

2.4.1. Phân lớp................................................................................................... 142.4.2. Tổng quát hóa và đặc biệt hóa .................................................................. 142.4.3. Gộp .......................................................................................................... 15

2.5. Xây dựng cơ sở dữ liệu hướng đối tượng ........................................................ 15Chươ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 .................................................................. 173.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 ......................................................................... 173.1.1.2. Các kiểu phân mảnh .......................................................................... 173.1.1.3. Mức độ phân mảnh............................................................................ 193.1.1.4. Quy tắc phân mảnh đúng đắn ............................................................ 193.1.1.5. Các kiểu cấp phát .............................................................................. 193.1.1.6. Các yêu cầu thông tin ........................................................................ 19

3.1.2. Phân mảnh ngang..................................................................................... 203.1.2.1. Yêu cầu thông tin của phân mảnh ngang. .......................................... 203.1.2.2. Phân mảnh ngang nguyên thủy. ......................................................... 213.1.2.3. Phân mảnh ngang dẫn xuất ................................................................ 23

3.1.3. Phân mảnh dọc......................................................................................... 243.1.4. Cấp phát................................................................................................... 24

3.2. Kiểm soát dữ liệu ngữ nghĩa ........................................................................... 263.2.1. Quản lý khung nhìn.................................................................................. 26

3.2.1.1. Khung nhìn trong quản lý tập trung ................................................... 263.2.1.2. Cập nhật qua các khung nhìn............................................................. 263.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 ........................................................................................ 273.2.2.1. Kiểm soát cấp quyền tập trung .......................................................... 273.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 ........................................ 283.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ử .................................................................................. 293.3.1.2. Mục dữ liệu ....................................................................................... 29

Page 7: BÀI GIẢNG CƠ SỞ DỮ LIỆU NÂNG CAO · PDF fileCƠ SỞ DỮ LIỆU NÂNG CAO Biên soạn: Th.S Nguyễn ... Cung cấp kiến thức nâng cao về mô hình cơ sở dữ

http://www.ebook.edu.vn 63.3.1.3. Khóa ................................................................................................. 303.3.1.4. Kiểm soát hoạt động đồng thời bằng khóa ......................................... 303.3.1.5. Khóa sống (livelock) ......................................................................... 313.3.1.6. Khóa “cứng” (deadlock) .................................................................... 313.3.1.7. Tính khả tuần tự của lịch biểu. .......................................................... 323.3.1.8. Bộ xếp lịch ........................................................................................ 333.3.1.9. Nghi thức .......................................................................................... 33

3.3.2. Mô hình giao dịch đơn giản...................................................................... 333.3.2.1. Ý nghĩa của giao dịch – hàm đặc trưng.............................................. 333.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 ............................................................................... 353.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................................ 363.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 ......................................................................... 384.1. Giới thiệu về hệ trợ giúp ra quyết định ............................................................ 384.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. .......................................................................................... 394.2.2. Thiết kế vật lý .......................................................................................... 40

4.3. Kho dữ liệu và kho dữ liệu chuyên đề ............................................................. 404.3.1. Kho dữ liệu .............................................................................................. 414.3.2. Kho dữ liệu chuyên đề. ............................................................................ 414.3.3. Các lược đồ về chiều. ............................................................................... 42

4.4. Xử lý phân tích trực tuyến............................................................................... 434.4.1. Giới thiệu. ................................................................................................ 434.4.2. Bảng chéo ................................................................................................ 434.4.3. Cơ sở dữ liệu nhiều chiều ......................................................................... 44

4.5. Khai phá dữ liệu.............................................................................................. 44

Page 8: BÀI GIẢNG CƠ SỞ DỮ LIỆU NÂNG CAO · PDF fileCƠ SỞ DỮ LIỆU NÂNG CAO Biên soạn: Th.S Nguyễn ... Cung cấp kiến thức nâng cao về mô hình cơ sở dữ

http://www.ebook.edu.vn 7

Chương 1. Hệ quản trị cơ sở dữ liệu

1.1. Quan niệm về Cơ sở dữ liệu

Cơ sở dữ liệu (CSDL) là gì?

Định nghĩa: Một cơ sở dữ liệu (Database) là một tập hợp có cấu trúc các dữ liệu tác nghiệp đượclư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ốngphầ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ậpvà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 CSDLnà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ộthệ 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ôngcung 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ầntự 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ăngkhá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ụngcó thể quan sát dữ liệu.

Page 9: BÀI GIẢNG CƠ SỞ DỮ LIỆU NÂNG CAO · PDF fileCƠ SỞ DỮ LIỆU NÂNG CAO Biên soạn: Th.S Nguyễn ... Cung cấp kiến thức nâng cao về mô hình cơ sở dữ

http://www.ebook.edu.vn 8- Đảm bảo tính độc lập dữ liệu hay sự bất biến của các chương trình ứng dụng đối với các thay

đổi về cấu trúc trong mô hình dữ liệu.

- Hỗ trợ các ngôn ngữ cấp cao nhất định cho phép người sử dụng định nghĩa cấu trúc của dữliệu, truy nhập dữ liệu và thao tác dữ liệu.

- Quản trị giao dịch, có nghĩa là khả năng cung cấp các truy cập đồng thời, đúng đắn đối vớiCSDL 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ủahệ thống.

Page 10: BÀI GIẢNG CƠ SỞ DỮ LIỆU NÂNG CAO · PDF fileCƠ SỞ DỮ LIỆU NÂNG CAO Biên soạn: Th.S Nguyễn ... Cung cấp kiến thức nâng cao về mô hình cơ sở dữ

http://www.ebook.edu.vn 9

Chương 2. Cơ sở dữ liệu hướng đối tượng

2.1. Nhu cầu về hệ thống CSDL hướng đối tượng

Nhìn chung hệ quản trị CSDL quan hệ được sử dụng nhiều nhưng chưa đáp ứng được hết cácyê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ượngcó 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ảntrị 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áckhá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 trongchươ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ácdữ 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 đốitượ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ácquan 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ándướ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àitoá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ậptrì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ậphợ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 ứngdụ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

Page 11: BÀI GIẢNG CƠ SỞ DỮ LIỆU NÂNG CAO · PDF fileCƠ SỞ DỮ LIỆU NÂNG CAO Biên soạn: Th.S Nguyễn ... Cung cấp kiến thức nâng cao về mô hình cơ sở dữ

http://www.ebook.edu.vn 10Mộ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ụngcầ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ứccầ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ệcquả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 đặttrê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 đốitượ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ộtcô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ônghoà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 đổihệ 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ỏicá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ăngxử 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ácCSDL 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áyxử 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

Page 12: BÀI GIẢNG CƠ SỞ DỮ LIỆU NÂNG CAO · PDF fileCƠ SỞ DỮ LIỆU NÂNG CAO Biên soạn: Th.S Nguyễn ... Cung cấp kiến thức nâng cao về mô hình cơ sở dữ

http://www.ebook.edu.vn 11CSDL, 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ànvẹ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ềukhá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ốngquan 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ôngphù 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ươngtrì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ìnhhướ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ủangữ 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ệutheo 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ệucầ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ànvẹ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 đốitượ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 tinngữ 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 đượcthu 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êncủ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 đốitượ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.

Page 13: BÀI GIẢNG CƠ SỞ DỮ LIỆU NÂNG CAO · PDF fileCƠ SỞ DỮ LIỆU NÂNG CAO Biên soạn: Th.S Nguyễn ... Cung cấp kiến thức nâng cao về mô hình cơ sở dữ

http://www.ebook.edu.vn 12Việ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ôngbá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 đượcgọ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àykế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 quanhệ, 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 đềuchấ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 dolớ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ượngkhá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 đươngvớ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ácliê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ộctí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ạphơ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ácphươ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ươngphá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.

Page 14: BÀI GIẢNG CƠ SỞ DỮ LIỆU NÂNG CAO · PDF fileCƠ SỞ DỮ LIỆU NÂNG CAO Biên soạn: Th.S Nguyễn ... Cung cấp kiến thức nâng cao về mô hình cơ sở dữ

http://www.ebook.edu.vn 13Định nghĩa 2.7. Sơ đồ lớp cho biết cấu trúc tĩnh của mô hình hướng đối tượng, đó là các lớp

đối tượng, cấu trúc bên trong của chúng, và mối quan hệ mà chúng tham gia.

Miền riêng của lớp đối tượng là phần xác định lớp, nhưng không hiện ra cho đối tượng khácthấ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ìnhngườ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ôngthấ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ượngtrướ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ớpvà 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êntrong 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 đốitượ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ùngvớ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ườngdụ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ượngkhá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áncủ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ọnnà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èmtheo.

- 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ệnchươ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ớinhiề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 đờicủ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ệ

Page 15: BÀI GIẢNG CƠ SỞ DỮ LIỆU NÂNG CAO · PDF fileCƠ SỞ DỮ LIỆU NÂNG CAO Biên soạn: Th.S Nguyễn ... Cung cấp kiến thức nâng cao về mô hình cơ sở dữ

http://www.ebook.edu.vn 14thuộ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ỏ đốitượ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 đốitượ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 quanhệ. 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 trongCSDL 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ươngtranh, 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 độngnhư 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ácthuộ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ácsơ đồ đượ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 đầungườ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óathà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 saunó 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.

Page 16: BÀI GIẢNG CƠ SỞ DỮ LIỆU NÂNG CAO · PDF fileCƠ SỞ DỮ LIỆU NÂNG CAO Biên soạn: Th.S Nguyễn ... Cung cấp kiến thức nâng cao về mô hình cơ sở dữ

http://www.ebook.edu.vn 15

Chuyên biệt hóa là quá trịnh ngược lại với tổng quát hóa. Bắt đầu từ lớp sơ đồ, người ta có thểxác định lớp con để phân biệt các loại sơ đồ khác nhau; mỗi lớp con chia sẻ thuộc tính và phươngthứ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ĩatrong 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 tamgiá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ượngHì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ấtcủ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ácphươ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 CSDLngâ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 CSDLnà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áiniệ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ênquan đế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 đăngký đượ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ựcthể 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

Page 17: BÀI GIẢNG CƠ SỞ DỮ LIỆU NÂNG CAO · PDF fileCƠ SỞ DỮ LIỆU NÂNG CAO Biên soạn: Th.S Nguyễn ... Cung cấp kiến thức nâng cao về mô hình cơ sở dữ

http://www.ebook.edu.vn 16Việ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ữalớ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 đốitượ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 đốitượ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ínhquan 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ôitrườ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ấtcả 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ữacá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 địnhnà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ươngtác với các đối tượng khác theo các kịch bản.

Page 18: BÀI GIẢNG CƠ SỞ DỮ LIỆU NÂNG CAO · PDF fileCƠ SỞ DỮ LIỆU NÂNG CAO Biên soạn: Th.S Nguyễn ... Cung cấp kiến thức nâng cao về mô hình cơ sở dữ

http://www.ebook.edu.vn 17

Chương 3. Cơ sở dữ liệu phân tán

Thiết kế hệ thống thông tin có CSDL phân tán bao gồm:

- Phân tán và chọn những vị trí đặt dữ liệu;

- Các chương trình ứng dụng tại các điểm;

- Thiết kế tổ chức khai thác hệ thống đó trên nền mạng.

3.1. Các phương pháp phân tán dữ liệu3.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ênmộ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ệntí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ântá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 ứngdụ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ốnkhô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 chiara 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ảnhsẽ 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óichung 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átngữ 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 để chiamộ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ềudọ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ậpcon 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ácquan 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.

Page 19: BÀI GIẢNG CƠ SỞ DỮ LIỆU NÂNG CAO · PDF fileCƠ SỞ DỮ LIỆU NÂNG CAO Biên soạn: Th.S Nguyễn ... Cung cấp kiến thức nâng cao về mô hình cơ sở dữ

http://www.ebook.edu.vn 18Ngoà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ự ánphầ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 TrachNhiemMaNV Ten ChucVu MaNV MaDuAn TrachNhiem ThoiGianTG

E1 Hoàng Lan Ks Điện E1 P1 Quản lý 12E2 Đình Vượng Phân tích hệ thống E2 P1 Phân tích 24E3 Minh Tài Ks Máy E2 P2 Phân tích 6E4 Dương Hà Lập trình viên E3 P3 Tư vấn 10E5 Minh Hoa Phân tích hệ thống E3 P4 Kỹ sư 48E6 Văn Hiền Ks Điện E4 P2 Lập trình viên 18E7 Hoài Nam Ks Máy E5 P2 Quản lý 24E8 Vân Dũng Phân tích hệ thống E6 P4 Quản lý 48

E7 P3 Kỹ sư 36E8 P3 Quản lý 40

DuAn LuongMaDuAn Ten KinhPhi Vitri ChucVu Luong

P1 Trang thiết bị 150000 Hà Nội Ks Điện 4000P2 CSDL 135000 Hải Phòng Phân tích hệ thống 10000P3 CAD/CAM 250000 Hà Nội Ks Máy 3500P4 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ứanhữ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ệ DuAnDuAn1

MaDuAn Ten KinhPhi VitriP1 Trang thiết bị 150000 Hà NộiP2 CSDL 135000 Hải Phòng

DuAn2MaDuAn Ten KinhPhi Vitri

P3 CAD/CAM 250000 Hà NộiP4 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. DuAn3chỉ 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ềucầ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

Page 20: BÀI GIẢNG CƠ SỞ DỮ LIỆU NÂNG CAO · PDF fileCƠ SỞ DỮ LIỆU NÂNG CAO Biên soạn: Th.S Nguyễn ... Cung cấp kiến thức nâng cao về mô hình cơ sở dữ

http://www.ebook.edu.vn 19DuAn3 DuAn4

MaDuAn KinhPhi MaDuAn Ten VitriP1 150000 P1 Trang thiết bị Hà NộiP2 135000 P2 CSDL Hải PhòngP3 250000 P3 CAD/CAM Hà NộiP4 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ăngthự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ânmả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 độngkhô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íchhợ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 R1, R2,…, RN thì mỗi mụcdữ 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 R1, R2,…, RN thì cần phảiđịnh nghĩa một toán tử tái thiết sao cho:

R = Ri, i = 1..N.

Toán tử thay đổi tùy theo từng loại phân mảnh; thông thường khi phân mảnh ngang thì 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 R1, R2,…, RN và mụcdữ liệu ti nằm trong mảnh ri, thì nó sẽ không nằm trong các mảnh Rk với k j. Tiêu chuẩn này đảmbả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ínhkhó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ệtchỉ đượ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ênmạ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 tincậ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 đượccậ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áccâ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áncủ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ếtkế 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

Page 21: BÀI GIẢNG CƠ SỞ DỮ LIỆU NÂNG CAO · PDF fileCƠ SỞ DỮ LIỆU NÂNG CAO Biên soạn: Th.S Nguyễn ... Cung cấp kiến thức nâng cao về mô hình cơ sở dữ

http://www.ebook.edu.vn 20CSDL, 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 địnhphâ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ựchiệ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ênmộ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ầnbiế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ườita 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ácvị 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 = A1, A2,…, AN trong đó mỗi Ai là một thuộc tính có miền giá trịdom(Ai). Một vị từ đơn giản P được định nghĩa trên R có dạng:

P: Ai <giá trị>

Trong đó {=, <, <=, >=, >, <>}, Ai là một thuộc tính, <giá trị> dom(Ai).

Như vậy cho trước một lược đồ R, nếu các miền giá trị dom(Ai) 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ủacá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 = A1, A2,…, AN trong đó mỗi Ai là một thuộc tính có miền giá trịdom(Ai). Pr = {p1, p2,…, pt}. Tập các vị từ hội sơ cấp M = {m1, m2,…, mk} được định nghĩa nhưsau:

mi = p’j với 1 j t

Trong đó p’j = 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.

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:

Page 22: BÀI GIẢNG CƠ SỞ DỮ LIỆU NÂNG CAO · PDF fileCƠ SỞ DỮ LIỆU NÂNG CAO Biên soạn: Th.S Nguyễn ... Cung cấp kiến thức nâng cao về mô hình cơ sở dữ

http://www.ebook.edu.vn 211.. 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 = {q1, q2,…, qN} là cáccâu vấn tin, acc(qi) biểu thị cho số truy xuất của qi trong một khoảng thời gian đã cho hoặc trongquan 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 Ri với Ri = R(Ei), 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. Chú ý rằngnếu Ei có dạng chuẩn hội, nó là một vị từ hội sơ cấp mi. Ri là các bộ của R thỏa mãn Ei.

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ĩanhư 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ì vậy chomộ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ảnhngang 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 đượcgọ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êncủ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ủacác mảnh Ri) được truy xuất bởi các vị từ p 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ánvề 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ặtthố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áicó 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ânmả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ácvị 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:

Page 23: BÀI GIẢNG CƠ SỞ DỮ LIỆU NÂNG CAO · PDF fileCƠ SỞ DỮ LIỆU NÂNG CAO Biên soạn: Th.S Nguyễn ... Cung cấp kiến thức nâng cao về mô hình cơ sở dữ

http://www.ebook.edu.vn 220. Gọi F tập các mảnh hội sơ cấp

Pr’ = , F =

1. p 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 Pr nếu p phân hoạch một mảnh f 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 Pr’ phân hoạch một mảnh f F

3. p 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ấpcó 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 chobướ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ằngcá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

Page 24: BÀI GIẢNG CƠ SỞ DỮ LIỆU NÂNG CAO · PDF fileCƠ SỞ DỮ LIỆU NÂNG CAO Biên soạn: Th.S Nguyễn ... Cung cấp kiến thức nâng cao về mô hình cơ sở dữ

http://www.ebook.edu.vn 23Và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 Pi Pr’

1. mi M nếu mi mâu thuẫn với I

M = M – {mi}

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ựatheo 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à:

Ri = R Si, 1 i k

Trong đó k là số lượng các mảnh được định nghĩa trên R, và Si = S(Ei), với Ei là công thức địnhnghĩa phân mảnh ngang nguyên thủy Si.

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ànhhai 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$. Haimảnh NhanVien1 và NhanVien2 được định nghĩa như sau:

NhanVien1 = NhanVien Luong1

NhanVien2 = NhanVien Luong2

Trong đó

Luong1 = Luong(Luong 4000)

Luong2 = Luong(Luong > 4000)

Kết quả thu được như sau:NhanVien1 NhanVien2

MaNV Ten ChucVu MaNV Ten ChucVuE1 Hoàng Lan Ks Điện E2 Đình Vượng Phân tích hệ thốngE3 Minh Tài Ks Máy E4 Dương Hà Lập trình viênE6 Văn Hiền Ks Điện E5 Minh Hoa Phân tích hệ thốngE7 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ạchcủ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 địnhchọ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.

Page 25: BÀI GIẢNG CƠ SỞ DỮ LIỆU NÂNG CAO · PDF fileCƠ SỞ DỮ LIỆU NÂNG CAO Biên soạn: Th.S Nguyễn ... Cung cấp kiến thức nâng cao về mô hình cơ sở dữ

http://www.ebook.edu.vn 243.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ủaphâ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 Fs ={S1, S2,…, SN}. 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’ saocho 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ácmả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ânmả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 FR = {R1, R2,…, RN},chúng ta có R = Ri, Ri FR.

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áchphâ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ấpxá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 r1, r2,…, rN mỗi mảnh chứa một tập con thuộctí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ậpcá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ộtphâ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ờigian 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êncứ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úngthườ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 = {F1, F2,…, FN} và một mạng máy tính bao gồm các vị trị S= {S1, S2,…, SM} trên đó có một tập các ứng dụng dạng Q = {q1, q2,…, qk} đang chạy. Bài toán cấpphá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:

Page 26: BÀI GIẢNG CƠ SỞ DỮ LIỆU NÂNG CAO · PDF fileCƠ SỞ DỮ LIỆU NÂNG CAO Biên soạn: Th.S Nguyễn ... Cung cấp kiến thức nâng cao về mô hình cơ sở dữ

http://www.ebook.edu.vn 25- Chi phí nhỏ nhất: Hàm chi phí gồm có chi phí lưu mỗi mảnh Fi tại vị trí Sj, chi phí vấn tin Fi

tại vị trí Sj, 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. Vì thế bài toáncấ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ấpthờ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 trungtì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ấpphá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ánthứ 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ếnlượ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 ramộ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 tacầ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ấntin qi. Đây là số lượng các bộ của Fj cần được truy xuất để xử lý qi. Giá trị này được ký hiệu làSeli(Fj).

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 Fj đượccho 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ệnphâ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ố truyxuấ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. Vàtương ứng là các truy xuất cập nhật – ký hiệu là URij.

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

- uij = 1 nếu vấn tin qi có cập nhật mảnh Fj, ngược lại sẽ bằng 0

- rij = 1 nếu vần tin qi cần đọc mảnh Fj, 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 tinqi. 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ủamỗ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. Chiphí đơn vị để lưu trữ dữ liệu tại các vị trị Sj được ký hiệu là USCj. Cũng cần phải đặc tả số đo chiphí LPCj là chi phí xử lý một đơn vị công việc tại vị trí Sj. Đơn vị công việc cần phải giống với đơnvị của RR và UR.

Thông tin về mạng:

Page 27: BÀI GIẢNG CƠ SỞ DỮ LIỆU NÂNG CAO · PDF fileCƠ SỞ DỮ LIỆU NÂNG CAO Biên soạn: Th.S Nguyễn ... Cung cấp kiến thức nâng cao về mô hình cơ sở dữ

http://www.ebook.edu.vn 26Trong 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í Si và Sj. Để có thể tính được số lượng thông báo, chúng ta dùng fsizelà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ĩa3.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 logicTrong 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ưuthự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ậpnhậ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ạnhviệ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àndữ 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ôngthể 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ánvà 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 địnhnghĩ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ở trongcá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 quanhệ 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ĩakhung 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ĩakhung 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ộtquan 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 địnhnghĩ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ệ NhanViencó 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ở,

Page 28: BÀI GIẢNG CƠ SỞ DỮ LIỆU NÂNG CAO · PDF fileCƠ SỞ DỮ LIỆU NÂNG CAO Biên soạn: Th.S Nguyễn ... Cung cấp kiến thức nâng cao về mô hình cơ sở dữ

http://www.ebook.edu.vn 27như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áccơ 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. Tuynhiê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ânmả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 tintruy 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ủachú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í, đượcnhâ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ĩacủ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ấpquyề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ủadữ 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ôngtin 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 đượcquyề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ácthao 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ớndữ 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 DBMSphâ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 connhữ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íchhoạ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ó đượcphé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ộtthao 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ệnbằ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ậpvà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ácthao 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

Page 29: BÀI GIẢNG CƠ SỞ DỮ LIỆU NÂNG CAO · PDF fileCƠ SỞ DỮ LIỆU NÂNG CAO Biên soạn: Th.S Nguyễn ... Cung cấp kiến thức nâng cao về mô hình cơ sở dữ

http://www.ebook.edu.vn 28như SELECT, INSERT, UPDATE, hoặc DELETE… Các quyền được định nghĩa hoặc thu hồibằ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ươngtrì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áchngườ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ầntruy 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ínhchấ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 đượcvà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 đốitượ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 truyxuấ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 địnhnghĩ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á đơngiả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ântá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ôngcộ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ộtvị 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 quytắ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án3.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ộtcâ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ó

Page 30: BÀI GIẢNG CƠ SỞ DỮ LIỆU NÂNG CAO · PDF fileCƠ SỞ DỮ LIỆU NÂNG CAO Biên soạn: Th.S Nguyễn ... Cung cấp kiến thức nâng cao về mô hình cơ sở dữ

http://www.ebook.edu.vn 29nhiề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ácdụ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ệctrong 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ácphứ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ỗinguyê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àmcho 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ỏinhữ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àyngừ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ữngbiế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ặcnhữ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ôngiả 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ờigian 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 đanglà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 giaodị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

Page 31: BÀI GIẢNG CƠ SỞ DỮ LIỆU NÂNG CAO · PDF fileCƠ SỞ DỮ LIỆU NÂNG CAO Biên soạn: Th.S Nguyễn ... Cung cấp kiến thức nâng cao về mô hình cơ sở dữ

http://www.ebook.edu.vn 30Để quản lý các hoạt động đồng thời, CSDL phải được phân nhỏ thành các mục dữ liệu, đó là

những đơn vị dữ liệu cần được truy xuất có điều khiển. Bản chất và kích thước các mục dữ liệu donhà 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ácmụ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ũngcó 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ácmụ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ácgiao 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 ítchỗ để 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 íthà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ởivì 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ảnlý 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) – giaodị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 6T1 Read A A = A + 1 Write AT2 Read A A = A + 1 Write AA trong vùng làm việc của T1 5 5 6 6 6 6A 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ộngthê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ênA. 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ấtA 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

Page 32: BÀI GIẢNG CƠ SỞ DỮ LIỆU NÂNG CAO · PDF fileCƠ SỞ DỮ LIỆU NÂNG CAO Biên soạn: Th.S Nguyễn ... Cung cấp kiến thức nâng cao về mô hình cơ sở dữ

http://www.ebook.edu.vn 31khô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óacho 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ữngchươ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ộtmụ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ếumộ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ảiphó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ằngmỗ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ếnhà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ùytiệ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ộtgiao 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 khiT3 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ặckhô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óatheo 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:

Page 33: BÀI GIẢNG CƠ SỞ DỮ LIỆU NÂNG CAO · PDF fileCƠ SỞ DỮ LIỆU NÂNG CAO Biên soạn: Th.S Nguyễn ... Cung cấp kiến thức nâng cao về mô hình cơ sở dữ

http://www.ebook.edu.vn 32T1: begin T2:begin

Lock ALock BUnlock AUnlock B

end

Lock BLock AUnlock BUnlock 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 đợivị 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ếtquả 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ịchkia 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 Ti của một tập giao dịch T= {T1, T2,…, 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 trongtậ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 giaodị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 traotấ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ềukhó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ảngthờ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” haykhô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ểuthị 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ênCSĐ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ắcrố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ànthà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 = {T1, T2,…, TN}. Chúng ta thấy ngay rằng nếu cácgiao 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 = {T1, T2,…, TN}, tương ứng với T ta có N! các lịch biểutuầ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 đắnnế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ácbướ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 tronggiao dịch đó.

Page 34: BÀI GIẢNG CƠ SỞ DỮ LIỆU NÂNG CAO · PDF fileCƠ SỞ DỮ LIỆU NÂNG CAO Biên soạn: Th.S Nguyễn ... Cung cấp kiến thức nâng cao về mô hình cơ sở dữ

http://www.ebook.edu.vn 33Vậ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ịchTi 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 Ti 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ậpgiao 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ịchbiể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ủamộ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 ìnhtrạ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 đangcó 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ướcphụ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ằngcá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ôngcụ đó 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ộtgiao 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 Ti chính là tác dụng của chương trình P tương ứng trênCSDL. 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 choA, 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ềuhà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 A0 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ủahàm f(A0,….) 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 Atrướ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 Af(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ựngbằ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.

Page 35: BÀI GIẢNG CƠ SỞ DỮ LIỆU NÂNG CAO · PDF fileCƠ SỞ DỮ LIỆU NÂNG CAO Biên soạn: Th.S Nguyễn ... Cung cấp kiến thức nâng cao về mô hình cơ sở dữ

http://www.ebook.edu.vn 34Hai 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 ALock AUnlock A f1(A,B)Unlock B f2(A,B)

End

Lock BLock CUnlock B f3(B,C)Lock AUnlock C f4(A,B,C)Unlock A f5(A,B,C)

End

Lock ALock BUnlock C f6(A,C)Unlock A f7(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 f1, nhận A và B làm đối số, bởivậy là những mục trong Lock A – Unlock A của T1. Hàm f3 chỉ nhận B và C làm đối số bởi vì T2

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ụcA, B, và C.

Bước Thao tác A B C1 T1:Lock A A0 B0 C0

2 T2: Lock B A0 B0 C0

3 T2: Lock C A0 B0 C0

4 T2: UnLock B A0 f3(B0,C0) C0

5 T1: Lock B A0 f3(B0,C0) C0

6 T1: UnLock A f1(A0,f3(B0,C0)) f3(B0,C0) C0

7 T2: Lock A f1(A0,f3(B0,C0)) f3(B0,C0) C0

8 T2: UnLock C f1(A0,f3(B0,C0)) f3(B0,C0) (i)9 T2: UnLock A (ii) f3(B0,C0) (i)10 T3: Lock A (ii) f3(B0,C0) (i)11 T3: Lock C (ii) f3(B0,C0) (i)12 T1: UnLock B (ii) f2(A0,f3(B0,C0)) (i)13 T3: UnLock C (ii) f2(A0,f3(B0,C0)) (iii)14 T3: UnLock A (iv) f2(A0,f3(B0,C0)) (iii)

Ký hiệu:

(i) = f4(f1(A0,f3(B0,C0)),B0,C0)

(ii) = f5(f1(A0,f3(B0,C0)),B0,C0)

(iii) = f6((ii), (i))

(iv) = f7((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 T1 thực hiện trước T2 trong lịch biểu tuần tự, giá trị cuối cùng củaB sẽ là: f3(f2(A0,B0),C0) chứ không phải f2(A0, f3(B0,C0)).

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ậpluận, thật vậy điều gì sẽ xẩy ra chẳng hạn nếu tồn tại:

f3(f2(A0,B0),C0) = f3(A0,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ầ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ạpvớ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

Page 36: BÀI GIẢNG CƠ SỞ DỮ LIỆU NÂNG CAO · PDF fileCƠ SỞ DỮ LIỆU NÂNG CAO Biên soạn: Th.S Nguyễn ... Cung cấp kiến thức nâng cao về mô hình cơ sở dữ

http://www.ebook.edu.vn 35yế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ểuS đượ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ảnvề 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 T1, T2,…, Tk

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 Ti.Để xác định các cung của đồ thị G, gọi (a1, a2,…, aN) là tập các bước cơ bản trong S. Trong đó mỗiai 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. Nếu cómột cặp thao tác như thế và s j, chúng ta vẽ một cung từ Tj đến Ts (Tj Ts). Cung này có ý nghĩalà trong một lịch biểu tuần tự tương đương với S, 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ự, 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ắpxế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 Tj nào đó không có cung đến, nếu không G có một chutrình. Liệt kê Tj rồi loại Tj ra khỏi G. Sau đó lặp lại quá trình này trên đồ thị còn lại cho đến khikhô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ácgiao 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ộtbộ 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óatrướ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 giaodị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ểukhả 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ầntự.

Đị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

Ti1 Ti2 …. Tin Ti1

Page 37: BÀI GIẢNG CƠ SỞ DỮ LIỆU NÂNG CAO · PDF fileCƠ SỞ DỮ LIỆU NÂNG CAO Biên soạn: Th.S Nguyễn ... Cung cấp kiến thức nâng cao về mô hình cơ sở dữ

http://www.ebook.edu.vn 36Do đó có một thao tác khóa do Ti2 sẽ đi sau một thao tác mở khóa do Ti1, một thao tác kho do

Ti3 sẽ đi sau một thao tác mở khóa Ti2… Cuối cùng một thao tác khóa Ti1 sẽ đi sau một thao tác mởkhóa Ti1. Điều này mâu thuẫn với giả thiết Ti1 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áttriể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ìnhnà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ôngcho 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ộtkhó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 ghibằ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 giaodị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ụccấ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ớikhó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 khimở 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 A0 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ôngghi 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 đangcó 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ịchbiể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 T1, và gọif là hàm đi kèm với khóa ghi đó. Sau khi T1 mở khóa A, gọi T2 là một trong những giao dịch kế tiếpnhậ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 T1 phải thực hiệntrước T2 trong một lịch biểu tuần tự tương đương với S. Nếu không thì T2 đọc một tía trì của Akhông chứa hàm f. Tương tự, nếu T3 là giao dịch kế tiếp sau T1 nhận khóa ghi A thì T1 phải thựchiện trước T3.

Page 38: BÀI GIẢNG CƠ SỞ DỮ LIỆU NÂNG CAO · PDF fileCƠ SỞ DỮ LIỆU NÂNG CAO Biên soạn: Th.S Nguyễn ... Cung cấp kiến thức nâng cao về mô hình cơ sở dữ

http://www.ebook.edu.vn 37Bâ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. 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, còn trong lịchbiểu S, giá trị được đọc bởi T4 không chứa f. Vì vậy, T4 phải thực hiện trước T1 trong một lịch biểutuầ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ịchcù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 theothứ 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 rasẹ 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 T1, T2,…, TN

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 đượcxác định bằng quy tắc sau:

1. Giả sử trong S, giao dịch Ti nhận khóa đọc hoặc khóa A. Tj là giao dịch kế tiếp khóa ghi A,và i j. Khi đó chúng ta đặt một cung từ Ti đến Tj.

2. Giả sử trong S, giao dịch Ti khóa ghi A. Gọi Tm với m i là một giao dịch khác khóa đọc Asau khi Ti 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 đếnTm.

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ầntự cho các giao dịch này.

Page 39: BÀI GIẢNG CƠ SỞ DỮ LIỆU NÂNG CAO · PDF fileCƠ SỞ DỮ LIỆU NÂNG CAO Biên soạn: Th.S Nguyễn ... Cung cấp kiến thức nâng cao về mô hình cơ sở dữ

http://www.ebook.edu.vn 38

Chương 4. Hệ trợ giúp ra quyết định

4.1. Giới thiệu về hệ trợ giúp ra quyết định

Các hệ thống trợ giúp ra quyết định là các hệ thống giúp việc quản lý xác định đúng vấn đề, raquyế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 viquả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ự độnghó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 đầutiê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áchbiệ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ẫnrấ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êuccầ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ấtcả.

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ànchỉ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àykhô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ệuthay 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ácphé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ậtCSDL 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 logicvà 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 theonghĩ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ề.

Page 40: BÀI GIẢNG CƠ SỞ DỮ LIỆU NÂNG CAO · PDF fileCƠ SỞ DỮ LIỆU NÂNG CAO Biên soạn: Th.S Nguyễn ... Cung cấp kiến thức nâng cao về mô hình cơ sở dữ

http://www.ebook.edu.vn 396. 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ểuthứ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ậpnhiề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ấtnhiề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ướcmộ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ụngcá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ạngnà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ộtngô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 tacầ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ướcthiế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ốiliê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àngbuộ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óamô 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ộcvà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ộchà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ớinhữ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ệuvà 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 CSDLtrợ 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ờigian 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

Page 41: BÀI GIẢNG CƠ SỞ DỮ LIỆU NÂNG CAO · PDF fileCƠ SỞ DỮ LIỆU NÂNG CAO Biên soạn: Th.S Nguyễn ... Cung cấp kiến thức nâng cao về mô hình cơ sở dữ

http://www.ebook.edu.vn 40khó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 ý khixá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ềuloạ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ệcphâ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êncá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ẩmhệ 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ềuloạ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 quantâ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ácbả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ăncho 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ẫnphả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ệuLàm sạch dữ liệuChuyển hoá dữ liệuTải dữ liệuLàm tươi dữ liệu

CSDLTácnghiệp

Kho dữliệu

Môi trường trợ giúp raquyết định

Page 42: BÀI GIẢNG CƠ SỞ DỮ LIỆU NÂNG CAO · PDF fileCƠ SỞ DỮ LIỆU NÂNG CAO Biên soạn: Th.S Nguyễn ... Cung cấp kiến thức nâng cao về mô hình cơ sở dữ

http://www.ebook.edu.vn 414.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ùngcho 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 chophé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ệmmớ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ệutí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 vitrong 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úpra 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ụngthườ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ựchiệ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 đếnloạ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ậythì 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 đặcbiệ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ụcvụ 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ó

Page 43: BÀI GIẢNG CƠ SỞ DỮ LIỆU NÂNG CAO · PDF fileCƠ SỞ DỮ LIỆU NÂNG CAO Biên soạn: Th.S Nguyễn ... Cung cấp kiến thức nâng cao về mô hình cơ sở dữ

http://www.ebook.edu.vn 42lượ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 raquyế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ẽ đượctao 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 đốivớ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 chithà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 khodữ 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 ứngdụ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ậpnhậ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 giaodị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, đếnmộ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 quantâ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ườisả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ảngtra 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ườidù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ácthô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ônggian 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áctệ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ệpdữ 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ươngthứ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ácbả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 đượcmô tả bằng khoảng từ năm t1 đến năm t2. Theo thuật ngữ lược đồ hình sao thì bảng RUOU được gọilà 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 1985ThăngLong

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.

Page 44: BÀI GIẢNG CƠ SỞ DỮ LIỆU NÂNG CAO · PDF fileCƠ SỞ DỮ LIỆU NÂNG CAO Biên soạn: Th.S Nguyễn ... Cung cấp kiến thức nâng cao về mô hình cơ sở dữ

http://www.ebook.edu.vn 43Câ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 truycậ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áchtố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ảngchiề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ácbảng được chuẩn hoá.

4.4. Xử lý phân tích trực tuyến4.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, baogồ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ệnhyê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 quanhệ để 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ệnlợ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íchcá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ácnhau. 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ệunhiề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ượucung cấp trên bảng dưới đây:Ruou Ten CongTy Nam SoLuong

Lúa mới Hà Nội 1980 200Vang Hà Nội 1995 350Vang Huda Huế 1990 450Lú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ớibả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ủacá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ổngHà Nội 200 350 550Huda Huế 0 450 450

Page 45: BÀI GIẢNG CƠ SỞ DỮ LIỆU NÂNG CAO · PDF fileCƠ SỞ DỮ LIỆU NÂNG CAO Biên soạn: Th.S Nguyễn ... Cung cấp kiến thức nâng cao về mô hình cơ sở dữ

http://www.ebook.edu.vn 44Hà Bắc 320 0 320Tổ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àycò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ếpcậ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ầnvớ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ềuchiề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, đúngvà 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 ranhữ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ácthao 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ệukhi 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”.