intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Giáo trình: Hệ quản trị cơ sở dữ liệu - Nguyễn Trần Quốc Vinh

Chia sẻ: Ngô Thị Dung | Ngày: | Loại File: PDF | Số trang:0

292
lượt xem
61
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Giáo trình: Hệ quản trị cơ sở dữ liệu - Nguyễn Trần Quốc Vinh gồm 8 phần với nội dung: kiến thức cơ bản về cơ sở dữ liệu, tổ chức bên trong của HQT CSDL, HQT CSDL trong kiến trúc Client Server,....

Chủ đề:
Lưu

Nội dung Text: Giáo trình: Hệ quản trị cơ sở dữ liệu - Nguyễn Trần Quốc Vinh

  1. HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU – Bản Nháp 30-08-08 Xin cám ơn bạn đã dành sự quan tâm cho tài liệu này! Tài liệu này tôi tổng hợp từ nhiều quyển sách khác nhau. Tôi nghĩ nó có ích cho những người muốn hiểu các hệ quản trị cơ sở dữ liệu làm việc như thế nào. Trên cơ sở đó, người đọc có thể thiết kế các cơ sở dữ liệu v à tạo ra các hệ thống sử dụng c ơ sở dữ liệu quan hệ tốt hơn. Ngoài ra, tôi còn giới thiệu một số hướng đang được phát triển trên thế giới để các bạn tham khảo. Trong quá trình biên-dịch-soạn dựa trên kiến thức của mình, tôi đã rất cố gắng nhưng chắc chắn vẫn có nhiều hạn chế và sai sót. Nếu bạn phát hiện sai sót, hoặc có ý kiến đóng góp nhằm mục đích giúp tôi nâng cao chất lượng của tài liệu này cũng như hoàn thiện chính mình, mong bạn phản hồi về ntquocvinh@gmail.com , ntquocvinh@yahoo.com và ntquocvinh@due.edu.vn. Tôi sẽ cố gắng hoàn thiện tài liệu này, và tất nhiên, không thể thiếu những ý kiến phản hồi của các bạn. Nguyễn Trần Quốc Vinh http://elearning.due.edu.vn/course/view.php?id=7 Nguyễn Trần Quốc Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn} i
  2. HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU – Bản Nháp 30-08-08 MỤC LỤC Phần I Kiến thức cơ bản ....................................................................................................... 1 Chương I.1 CSDL và hệ thống tệp tin ............................................................................. 1 I.1.1 Hệ thống tệp tin ..................................................................................................... 3 I.1.1.1 Cấu trúc tệp tin .............................................................................................. 3 I.1.1.2 Đặt tên (gán nhãn) cho tệp tin ....................................................................... 4 I.1.1.3 Bảo vệ tệp tin ................................................................................................ 5 I.1.1.4 Chế độ truy cập nhiều người dùng ................................................................ 6 I.1.2 Lĩnh vực ứng dụng của tệp tin ............................................................................... 6 I.1.3 Yêu cầu của các hệ thống thông tin ....................................................................... 7 Chương I.2 Các chức năng của HQT CSDL. Tổ chức điển h ình của một HQT CSDL hiện đại 10 I.2.1 Các chức năng của HQT CSDL .......................................................................... 10 I.2.1.1 Quản trị dữ liệu trực tiếp trong bộ nhớ ngoài ............................................. 10 I.2.1.2 Quản trị các bộ nhớ đệm (buffers) trong RAM .......................................... 10 I.2.1.3 Điều khiển các giao tác ............................................................................... 11 I.2.1.4 Nhật ký ........................................................................................................ 12 I.2.1.5 Hỗ trợ các ngôn ngữ CSDL ........................................................................ 14 I.2.1.6 Các lợi ích khác........................................................................................... 15 I.2.2 Tổ chức điển hình của một HQT CSDL hiện đại ................................................ 16 Phần II Tổ chức bên trong của HQT CSDL ........................................................................ 18 Chương II.1 Tổ chức bên trong của HQT CSDL ............................................................ 18 II.1.1 Kiến trúc của một HQT CSDL .......................................................................... 18 II.1.2 Các cấu trúc bộ nhớ ngoài, các phương pháp tổ chức chỉ mục (index)............. 18 II.1.3 Lưu trữ quan hệ.................................................................................................. 19 II.1.4 Các chỉ mục ....................................................................................................... 22 II.1.4.1 B-tree........................................................................................................... 23 II.1.4.2 Băm (Hashing) ............................................................................................ 26 II.1.4.3 Thông tin nhật ký ........................................................................................ 27 II.1.4.4 Thông tin phục vụ ....................................................................................... 27 http://elearning.due.edu.vn/course/view.php?id=7 Nguyễn Trần Quốc Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn} ii
  3. HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU – Bản Nháp 30-08-08 Chương II.2 Giao tác và tính toàn vẹn CSDL ................................................................. 29 II.2.1 Ví dụ sự phá huỷ tính to àn vẹn CSDL............................................................... 29 II.2.2 Khái niệm giao tác ............................................................................................. 30 II.2.3 Phân loại giao tác ............................................................................................... 32 II.2.3.1 Giao tác tự chấp nhận (Autocommit mode) ................................................ 32 II.2.3.2 Giao tác được khai báo tường minh (Explicit) ........................................... 33 II.2.3.3 Giao tác giầm (Implicit ) ............................................................................. 34 II.2.3.4 Giao tác tự phục hồi (Auto rollback) .......................................................... 35 II.2.3.5 Giao tác lồng (Nested Transaction) ............................................................ 37 II.2.3.5.1 Khái niệm ............................................................................................... 37 II.2.3.5.2 Các quy tắc ............................................................................................. 37 II.2.3.5.3 Biến @@trancount trong HQT CSDL SQL Server ............................... 39 II.2.4 Ràng buộc tính toàn vẹn CSDL ......................................................................... 39 II.2.5 Phân loại ràng buộc tính toàn vẹn CSDL .......................................................... 41 II.2.5.1 Bằng các cách triển khai (realization) ......................................................... 42 II.2.5.2 Phân loại ràng buộc tính toàn vẹn theo thời điểm kiểm tra ........................ 44 II.2.5.3 Phân loại ràng buộc tính toàn vẹn theo không gian ứng dụng .................... 45 II.2.5.3.1 Ràng buộc Miền giá trị ........................................................................... 45 II.2.5.3.2 Ràng buộc thuộc tính.............................................................................. 45 II.2.5.3.3 Ràng buộc bản ghi .................................................................................. 46 II.2.5.3.4 Ràng buộc quan hệ ................................................................................. 50 II.2.5.3.5 Ràng buộc CSDL ................................................................................... 51 II.2.6 Triển khai ràng buộc tính toàn vẹn dạng định nghĩa bằng công cụ SQL .......... 52 II.2.6.1 Các nguyên tắc chung trong triển khai r àng buộc bằng các công cụ SQL . 52 II.2.6.2 Cú pháp ràng buộc theo chuẩn SQL ........................................................... 54 Chương II.3 Giao tác và tính song song (tính đ ối ngẫu) ................................................. 64 II.3.1 Đôi điều về công việc của giao tác .................................................................... 65 II.3.2 Các vấn đề thực hiện song song các giao tác .................................................... 66 II.3.2.1 Vấn đề mất kết quả cập nhật dữ liệu ........................................................... 66 II.3.2.2 Vấn đề phụ thuộc chưa cố định (đọc dữ liệu bẩn, đọc không chuẩn…) ..... 67 II.3.2.3 Vấn đề xung khắc trong phân tích .............................................................. 67 II.3.2.3.1 Đọc không lặp lại ................................................................................... 67 http://elearning.due.edu.vn/course/view.php?id=7 Nguyễn Trần Quốc Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn} iii
  4. HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU – Bản Nháp 30-08-08 II.3.2.3.2 Các phần tử ảo ........................................................................................ 68 II.3.2.3.3 Phân tích xung khắc thực chất................................................................ 69 II.3.2.3.4 Xung đột giữa các giao tác ..................................................................... 70 II.3.3 Đảm bảo thực thi song song (tính tuần tự) các giao tác .................................... 73 II.3.3.1 Định lý Esvaran về tính tuần tự .................................................................. 73 II.3.3.2 Chiếm lĩnh đồng bộ ..................................................................................... 75 II.3.3.2.1 Các phong toả ......................................................................................... 75 II.3.3.2.2 Giải quyết các vấn đề của tính song song bằng sự giúp đỡ của các phong toả 76 II.3.3.2.2.1 Vấn đề mất kết quả cập nhật ............................................................ 77 II.3.3.2.2.2 Vấn đề phụ thuộc không được cố định (đọc dữ liệu bẩn, đọc không chuẩn) 77 II.3.3.2.2.3 Vấn đề xung khắc trong phân tích ................................................... 78 II.3.3.2.2.4 Xung khắc thực chất trong phân tích ............................................... 80 II.3.3.2.2.5 Giải quyết (gỡ bỏ) các tình huống bế tắc ......................................... 81 II.3.3.2.2.6 Phong toả có chủ định (Chiếm lĩnh đồng bộ bằng cách tán nhỏ) .... 83 II.3.3.2.3 Phong toả theo mệnh đề ......................................................................... 88 II.3.3.2.4 Cơ chế tách phiên bản dữ liệu ................................................................ 89 II.3.3.3 Phương pháp mốc thời gian ........................................................................ 91 II.3.3.4 Triển khai tính cô lập các giao tác bằng các công cụ SQL ......................... 92 II.3.3.4.1 Các mức độ cô lập .................................................................................. 92 II.3.3.4.2 Cú pháp các lệnh SQL để định nghĩa mức độ cô lập ............................. 93 Chương II.4 Các giao tác và phục hồi dữ liệu ................................................................. 95 II.4.1 Nhật ký và ghi nhớ trung gian (buffering)......................................................... 96 II.4.2 Các kiểu phục hồi dữ liệu .................................................................................. 98 II.4.2.1 Rollback giao tác riêng biệt ........................................................................ 98 II.4.2.2 Phục hồi sau sự cố “mềm” .......................................................................... 99 II.4.2.3 Tính nhất quán vật lý của CSDL .............................................................. 101 II.4.2.4 Phục hồi sau sự cố “cứng” ........................................................................ 103 II.4.2.5 Phục hồi dữ liệu và chuẩn SQL ................................................................ 104 Chương II.5 Các trình biên dịch SQL. Các vấn đề tối ưu hoá ...................................... 105 II.5.1 Sơ đồ chung trong xử lý các truy vấn .............................................................. 105 http://elearning.due.edu.vn/course/view.php?id=7 Nguyễn Trần Quốc Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn} iv
  5. HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU – Bản Nháp 30-08-08 II.5.2 Tối ưu hoá cú pháp các truy vấn ...................................................................... 106 II.5.2.1 Biến đổi logic đơn giản các truy vấn ........................................................ 106 II.5.2.2 Biến đổi các truy vấn bằng cách thay đổi thứ tự các thao tác quan hệ ..... 106 II.5.2.3 Chuyển các truy vấn chứa các truy vấn lồng thành các truy vấn chứa các phép nối 107 II.5.3 Tối ưu ngữ nghĩa các truy vấn ......................................................................... 108 II.5.3.1 Biến đổi các truy vấn trên cơ sở thông tin mạng ngữ nghĩa ..................... 108 II.5.3.2 Sử dụng các thông tin mạng ngữ nghĩa trong tối ưu hoá các truy vấn ..... 108 II.5.4 Chọn và đánh giá các kế hoạch thực thi các truy vấn khác nhau .................... 108 II.5.4.1 Tạo ra các kế hoạch................................................................................... 108 II.5.4.2 Đánh giá trị giá các kế hoạch thực thi truy vấn ........................................ 108 II.5.4.3 Các đánh giá chính xác hơn ...................................................................... 108 Phần III HQT CSDL trong kiến trúc “Client−Server” .................................................... 109 Chương III.1 Kiến trúc “Client−Server” ........................................................................ 109 III.1.1 Các hệ thống mở .............................................................................................. 109 III.1.2 Các máy khách và máy chủ trong mạng cục bộ .............................................. 110 III.1.3 Kiến trúc hệ thống “khách-chủ” ...................................................................... 111 III.1.3.1 Khách thông minh (Smart Client) ............................................................. 113 III.1.4 Các máy chủ CSDL ......................................................................................... 115 III.1.4.1 Các nguyên tắc tương tác giữa phần khách và phần chủ .......................... 115 III.1.4.2 Các ưu điểm của giao thức gọi thủ tục từ xa ............................................ 115 III.1.4.3 Sự phân bố chức năng điển hình giữa khách và chủ................................. 116 III.1.4.4 Các yêu cầu khả năng phần cứng v à phần mềm nền tảng đối với khách và chủ 116 Phần IV Các khung nhìn thực .......................................................................................... 117 Chương IV.1 Khái niệm khung nhìn thực....................................................................... 117 Chương IV.2 Ứng dụng của KNT ................................................................................... 119 IV.2.1 Ứng dụng KNT trong các HQT CSDL th ương mại ........................................ 121 IV.2.2 Ứng dụng KNT nhằm đẩy nhanh tốc độ thực thi các truy vấn ........................ 122 IV.2.3 Ứng dụng KNT trong các kho dữ liệu ............................................................. 124 Chương IV.3 Cập nhật KNT ........................................................................................... 124 IV.3.1 Các cơ chế cập nhật KNT ................................................................................ 124 http://elearning.due.edu.vn/course/view.php?id=7 Nguyễn Trần Quốc Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn} v
  6. HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU – Bản Nháp 30-08-08 IV.3.2 Phân loại các thuật toán CNGT KNT .............................................................. 126 IV.3.2.1 CNGT có sử dụng đầy đủ thông tin (bảng KNT, các bảng gốc, văn bản truy vấn và văn bản truy vấn thao tác dữ liệu) ................................................................. 126 IV.3.2.2 CNGT KNT sử dụng một phần thông tin ................................................. 127 IV.3.2.3 Cập nhật trì hoãn ....................................................................................... 130 Chương IV.4 Ứng dụng ý tưởng KNT trong các HQT CSDL ch ưa hỗ trợ KNT ........... 131 IV.4.1 Ví dụ về hạn chế của KNT trong các HQT CSDL th ương mại....................... 131 IV.4.2 “KNT” trong các HQT CSDL không h ỗ trợ KNT .......................................... 134 Phần V Kho dữ liệu – DataWarehouse .............................................................................. 138 Phần VI CSDL phân tán .................................................................................................. 139 Chương VI.1 Các loại hình hệ thống phân tán ................................................................ 140 Chương VI.2 Các kiến trúc của HQT CSDL PT ............................................................ 142 VI.2.1 Các hệ thống khách-chủ .................................................................................. 142 VI.2.2 Các hệ thống máy chủ hợp tác ......................................................................... 142 VI.2.3 Các hệ thống tầng trung gian ........................................................................... 143 Chương VI.3 Lưu trữ dữ liệu trên HQT CSDL PT ......................................................... 144 VI.3.1 Phân mảnh (fragmentation) ............................................................................. 144 VI.3.2 Nhân bản (replication) ..................................................................................... 145 VI.3.2.1 Nhân bản đồng bộ ..................................................................................... 146 VI.3.2.2 Nhân bản không đồng bộ .......................................................................... 147 VI.3.2.2.1 Nhân bản theo nút chính và nhân bản ngang hàng ............................. 147 VI.3.3 Quản trị danh mục phân tán ............................................................................. 150 VI.3.3.1 Đặt tên cho các đối tượng ......................................................................... 150 VI.3.3.2 Cấu trúc danh mục phân tán ..................................................................... 151 VI.3.4 Tính độc lập của dữ liệu phân tán .................................................................... 152 Chương VI.4 Xử lý các truy vấn phân tán ...................................................................... 154 VI.4.1 Các thuật toán nối join ..................................................................................... 154 VI.4.1.1 Các truy vấn nonjoin ................................................................................. 154 VI.4.1.2 Thực thi phép nối trên HQT CSDL PT ..................................................... 155 VI.4.1.2.1 Rút ra những gì cần thiết..................................................................... 155 VI.4.1.2.2 Chuyển đến một nút ............................................................................ 155 VI.4.1.2.3 Semijoins và Bloomjoins .................................................................... 155 http://elearning.due.edu.vn/course/view.php?id=7 Nguyễn Trần Quốc Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn} vi
  7. HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU – Bản Nháp 30-08-08 VI.4.2 Biên dịch phân tán các truy vấn ....................................................................... 157 Chương VI.5 Quản trị các giao tác v à quá trình đồng bộ hoá ........................................ 159 VI.5.1 Giao thức cố định hai pha (2PC – Two-Phases Commit Protocol) ................. 159 VI.5.2 Các phương pháp quản trị ................................................................................ 161 VI.5.3 Các bế tắc phân tán .......................................................................................... 162 Chương VI.6 Khởi động lại sau sự cố............................................................................. 164 VI.6.1 Khởi động lại hệ thống sau sự cố .................................................................... 164 VI.6.2 Giao thức cố định 3 pha (3PC – Three Phases Commit Protocol) .................. 165 Chương VI.7 Các hệ thống tích hợp (hay liêng bang) và đa CSDL ............................... 168 Phần VII Các hướng nghiên cứu và phát triển hiện đại .................................................... 169 Chương VII.1 Các HQT CSDL thế hệ mới ..................................................................... 169 VII.1.1 Theo hướng mở rộng mô hình quan hệ ........................................................ 170 VII.1.2 Các kiểu dữ liệu trừu tượng.......................................................................... 172 VII.1.3 Tạo ra các hệ CSDL theo h ướng trình ứng dụng ......................................... 173 VII.1.4 Tối ưu các truy vấn được điều khiển bởi các quy luật ................................. 174 VII.1.5 Hỗ trợ các thông tin lịch sử và các truy vấn biểu thị thời gian .................... 175 Chương VII.2 Các HQT CSDL hướng đối tượng ........................................................... 178 VII.2.1 Mối liên hệ giữa HQT CSDL hướng đối tượng với khái niệm chung về cách tiếp cận hướng đối tượng .............................................................................................. 179 VII.2.2 Các mô hình dữ liệu hướng đối tượng ......................................................... 181 VII.2.3 Các ngôn ngữ lập trình các CSDL HĐT ...................................................... 184 VII.2.3.1 Sự đánh mất mối tương quan giữa các ngôn ngữ lập trình và các ngôn ngữ truy vấn trong HQT CSDL quan hệ .......................................................................... 184 VII.2.3.2 Các ngôn ngữ lập trình CSDL HĐT như là các ngôn ngữ HĐT hỗ trợ các đối tượng bền vững (persistent) ................................................................................ 185 VII.2.3.3 Các ví dụ ngôn ngữ lập trình CSDL HĐT ............................................... 186 VII.2.4 Các ngôn ngữ truy vấn CSDL HĐT ............................................................. 187 VII.2.4.1 Điều hướng (navigation) tường minh như là một công cụ vượt qua sự mất mát tính tương ứng .................................................................................................... 187 VII.2.4.2 Các ngôn ngữ truy vấn không-điều hướng (non-navigation) .................. 187 VII.2.4.3 Các vấn đề tối ưu hoá truy v ấn ................................................................ 189 VII.2.5 Các ví dụ HQT CSDL HĐT ......................................................................... 191 http://elearning.due.edu.vn/course/view.php?id=7 Nguyễn Trần Quốc Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn} vii
  8. HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU – Bản Nháp 30-08-08 VII.2.5.1 Dự án ORION .......................................................................................... 192 VII.2.5.2 Project O2................................................................................................. 193 Chương VII.3 Các hệ CSDL trên nền tảng các quy luật ................................................. 195 VII.3.1 Phần mở rộng và phần tăng cường của CSDL ............................................. 195 VII.3.2 Các CSDL năng động (chủ động – active DB) ............................................ 196 VII.3.3 CSDL suy diễn ............................................................................................. 197 Phần VIII Phụ lục ............................................................................................................... 199 A. MS SQL Server ......................................................................................................... 199 A.1 Kiến trúc của SQL Server ...................................................................................... 201 A.2 Cài đặt và khôi phục trong SQL Server ................................................................. 205 B. Oracle ........................................................................................................................ 205 B.1. Kiến trúc của Oracle ............................................................................................. 205 B.2. Cài đặt và khôi phục trong Oracle ........................................................................ 205 C. Các hình vẽ ............................................................................................................... 206 D. Các bảng.................................................................................................................... 207 Tài liệu tham khảo ............................................................................................................... 208 http://elearning.due.edu.vn/course/view.php?id=7 Nguyễn Trần Quốc Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn} viii
  9. HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU – Bản Nháp 30-08-08 http://elearning.due.edu.vn/course/view.php?id=7 Nguyễn Trần Quốc Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn} ix
  10. HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU – Bản Nháp 30-08-08 Kiến thức cơ bản Phần I Chương I.1 CSDL và hệ thống tệp tin Đầu tiên, chúng ta hãy xem qua ý tưởng chung của các khái niệm cơ sở dữ liệu (CSDL, DB – Database) và hệ quản trị cơ sở dữ liệu (HQT CSDL, DBMS – Databases Managerment System). CSDL là một tập hợp các dữ liệu mô tả một lĩnh vực ứng dụng n ào đó hoặc một lĩnh vực của thế giới thực. Ví dụ, CSDL về đào tạo của một trường đại học có thể chứa các thông tin về: – Các thực thể như sinh viên, giảng viên, các học phần, khoa, lớp, phòng học. – Các mối quan hệ giữa các thực thể, chẳng hạn nh ư sinh viên đăng ký một học phần, giảng viên phụ trách một học phần cho lớp nào đó, việc sử dụng các phòng học,… HQT CSDL là một hệ thống phần mềm đ ược thiết kế nhằm mục đích quản trị và khai thác một số lượng lớn các tập hợp lớn dữ liệu với khối l ượng có thể tăng lên rất nhanh. Từ buổi ban đầu của quá trình phát triển công nghệ tính toán, có hai định hướng chính trong việc sử dụng nó. Thứ nhất, đó là ứng dụng kỹ thuật tính toán để thực hiện các tính toán số mà nếu thực hiện thủ công thì rất lâu hoặc là không thể. Sự trưởng thành của định hướng này đã khơi dậy sự tăng cường các phương pháp giải quyết bằng tính toán các bài toán toán học phức tạp, sự phát triển của lớp c ác ngôn ngữ lập trình theo hướng đơn giản hoá cài đặt các thuật toán tính toán, và thiết đặt mối quan hệ ng ược lại với các nh à phát triển các kiến trúc máy điện toán mới. Định hướng thứ hai, đó là sử dụng các công cụ của kỹ thuật tính toán trong các hệ thống thông tin tự động hoặc là tự động hoá. Theo nghĩa rộng, hệ thống thông tin là một tổ hợp chương trình. Các chức năng của hệ thống thông tin chủ yếu là duy trì việc lưu trữ thông tin một cách tin cậy trong bộ nhớ của máy tính, thực hiện các biến đổi thông tin và/hoặc tính toán đặc thù cho một ứng dụng đã cho, và cung ứng cho người dùng một giao diện thuận tiện và dễ tiếp thu. Thường thì khối lượng thông tin mà các hệ thống đó cần phải quản lý/xử lý là rất lớn, và cấu trúc của chính dữ liệu cũng phức tạp. Ví dụ cổ điển của hệ thống thông tin là các hệ thống ngân hàng, các hệ thống đặt vé máy bay hoặc là vé tàu, đặt chỗ khách sạn, v.v… Trong thực tế, định hướng thứ hai xuất hiện muộn hơn bởi vì trong thời gian đầu của kỹ thuật tính toán các máy tính sở hữu các tính năng h ạn chế ở phần bộ nhớ. R õ ràng, chỉ có thể nói về việc lưu trữ thông tin một cách tin cậy và lâu dài khi có các thiết bị ghi nhớ lưu http://elearning.due.edu.vn/course/view.php?id=7 Nguyễn Trần Quốc Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn} 1
  11. HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU – Bản Nháp 30-08-08 giữ thông tin sau khi nguồn điện của máy tính bị cắt. Bộ nhớ tạm thời truy cập ngẫu nhiên (RAM – Random Access Memory) không có tính năng đó. Ban đầu có hai loại thiết bị bộ nhớ ngoài được sử dụng là băng từ và trống. Dung lượng của băng từ khá lớn nhưng nó chỉ cho phép truy cập nối tiếp đến dữ liệu. Các trống từ cho phép truy cập ngẫu nhiên đến dữ liệu giống như các đĩa từ ngày nay (với đầu đọc cố định) nhưng dung lư ợng lại nhỏ. Dễ thấy rằng, những giới hạn đã nêu trên không ảnh hưởng nhiều đến các tính toán thuần số. Thậm chí nếu chương trình cần phải xử lý một khối lượng lớn thông tin thì trong quá trình lập trình có thể nghĩ ra một các phân bố thông tin trong bộ nhớ ngoài để chương trìn làm việc nhanh hơn đến mức có thể. Mặt khác, cho các hệ thống thông tin mà trong đó người dùng yêu cầu trong các dữ liệu hiện tại, thì các băng từ và trống không đáp ứng yêu cầu. Ví dụ, một khách hàng muốn mua vé cần phải đứng chờ máy tính tua hết một băng từ. Một trong những yêu cầu rõ ràng đối với các hệ thống nh ư thế là thời gian trung bình để thực hiện một giao dịch cần phải nhanh. Có thể chính các yêu cầu trong kỹ thuật tính toán từ phía các ứng dụng không thuần tính toán số đã đưa đến sự xuất hiện các đĩa từ có thể tháo ra với các đầu đọc di động. Sự xuất hiện đó là cuộc cách mạng trong lịch sử kỹ thuật tính toán. Các thiết bị bộ nhớ ngo ài đó sở hữu dung lượng lớn hơn nhiều so với các trống từ, còn khả năng thay thế các đĩa trên thiết bị cho phép sở hữu kho dữ liệu gần nh ư không giới hạn về mặt dung lượng. Cũng tồn tại dạng đĩa đầu đọc cố định (Fixed-head), nghĩa là các đầu đọc không dịch chuyển. Trong các ổ đĩa đó có nhiều đầu đọc và một đầu riêng biệt cho mỗi rãnh. Sự sắp xếp này cho phép máy tính chuyển từ rãnh này sang rãnh khác mau chóng, không ph ải di chuyển đầu đọc-viết. Điều này làm giảm thiểu thời gian truy cập đĩa vì thời gian dịch chuyển đầu đọc giữa các rãnh trong ổ đĩa với đầu đọc di động chiếm phần lớn thời gian của cả quá trình truy cập đĩa. Tuy nhiên, cần một số rất lớn đầu đọc-viết cho loại ổ đĩa này,và như vậy giá của thiết bị bị nâng cao lên rất nhiều. Lịch sử các hệ thống quản trị dữ liệu trong bộ nhớ ngoài cũng được bắt đầu cùng với sự xuất hiện các đĩa từ. Trước đó, mỗi trình ứng dụng cần đến việc lưu trữ dữ liệu trên bộ nhớ ngoài cần phải tự xác định vị trí của từng phần dữ liệu trên băng từ hoặc trống, và phải tự thực hiện việc trao đổi thông tin giữa b ộ nhớ trong và bộ nhớ ngoài bằng sự giúp đỡ của các phương tiện lập trình bậc thấp. Chế độ làm việc này không cho phép hoặc rất làm trì trệ việc duy trì trên một phương tiện bên ngoài nhiều lưu trữ (archives) các thông tin cần lưu http://elearning.due.edu.vn/course/view.php?id=7 Nguyễn Trần Quốc Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn} 2
  12. HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU – Bản Nháp 30-08-08 trữ lâu dài. Ngoài ra, mỗi trình ứng dụng phải giải quyết vấn đề đặt tên (gắn nhãn) các phần dữ liệu và phải cấu trúc dữ liệu trong bộ nhớ ngo ài. I.1.1 Hệ thống tệp tin Chuyển sang sử dụng các hệ thống quản trị tệp tập trung là bước ngoặc lịch sử. Trên quan điểm trình ứng dụng, tệp là một vùng đã được đặt tên của bộ nhớ ngoài và có thể ghi dữ liệu lên hoặc đọc dữ liệu từ đó. Các quy luật đặt t ên tệp, cách thức truy cập dữ liệu được lưu trữ trong tệp, và cấu trúc các dữ liệu đó phụ thuộc vào một hệ thống quản lý tệp cụ thể, và có thể, phụ thuộc vào kiểu tệp. Hệ thống quản lý tệp chịu trách nhiệm phân bổ bộ nhớ ngoài, biểu diễn các tên tệp trên các địa chỉ tương ứng trong bộ nhớ ngoài và đảm bảo truy cập đến dữ liệu. Hệ thống tệp tin tiên tiến lần đầu tiên được phát triển ở công ty IBM. Chúng ta sẽ không xem xét nó bởi vì nó quá lỗi thời so với các hệ thống tệp bây giờ như Ext3, NTFS,... I.1.1.1 Cấu trúc tệp tin Bây giờ chúng ta xem xét kỹ những hệ thống tệp có tổ chức ti ên tiến hơn. Hiện tại, hầu như trong tất cả các máy tính hiện đại, thiết bị bộ nhớ ngoài chủ đạo là những đĩa từ có đầu đọc dịch chuyển, và chính chúng phục vụ cho việc lưu trữ tệp. Những đĩa từ như vậy thực tế là những “gói” các bản từ (bề mặt), giữa chúng là “gói” những đầu đọc từ di động. Bước chuyển động của gói đầu đọc là rời rạc (không liên tục, discrete), và mỗi vị trí của gói đầu đọc tương ứng một cách luận lý các trụ (cylinder) của các đĩa từ. Trên mỗi bề mặt, trụ vẽ ra một đường (track). Vì thế, mỗi bề mặt đĩa chứa số đường bằng số trụ. Trong quá trình định dạng đĩa, mỗi đường sẽ được chia thành các khối (block) với số lượng như nhau, và số lượng bytes có thể chứa tối đa trong mỗi khối l à như nhau. Như vậy, để trao đổi thông tin với đĩa từ trên cấp độ thiết bị cần phải chỉ ra số thứ tự của trụ, số thứ tự của bề mặt, số thứ tự của khối trên đường tương ứng và số lượng bytes cần ghi vào hoặc là đọc ra tính từ đầu khối. Tuy nhiên, khả năng trao đổi thông tin với các đĩa từ theo những phần nhỏ h ơn dung lượng của khối hiện tại không được sử dụng trong các hệ thống tệp. Điều đó liên quan đến hai điểm. Thứ nhất, quá trình trao đổi thông tin với đĩa của thiết bị được thực hiện theo ba thao tác chính: dịch chuyển đầu đọc đến đ ường cần thiết – bước chiếm phần lớn thời gian trong tổng thể, tìm trên đường đó khối cần thiết và trao đổi thông tính với khối đó. Thứ hai, để có thể làm việc với những phần của các khối, hệ thống tệp cần phải đảm bảo một dun g http://elearning.due.edu.vn/course/view.php?id=7 Nguyễn Trần Quốc Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn} 3
  13. HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU – Bản Nháp 30-08-08 lượng bộ nhớ tạm thời tương ứng, và điều đó làm phức tạp quá trình phân bổ bộ nhớ rất nhiều. Vì thế, trong tất cả các hệ thống tệp, hoặc l à trực tiếp, hoặc l à gián tiếp một cấp độ c ơ bản nào đó được phân ra. Cấp độ đó đảm bảo công việc với các tệp. Mỗi t ệp là một tổ hợp các khối có địa chỉ trong không gian địa chỉ của tệp. Kích thước các khối luận lý đó của tệp trùng hoặc là bội số kích thước của khối vật lý của đĩa, và thường được chọn bằng kích thước một trang bộ nhớ ảo (virtual memory). Bộ nhớ ảo này được duy trì bởi thiết bị máy tính cùng với hệ điều hành. Trong một vài hệ thống tệp cấp độ cơ bản là có thể truy cập được đối với người dùng, nhưng thường thì bị bao phủ bởi một cấp độ cao h ơn, và chuẩn hơn cho người dùng. Phổ biến hơn là hai cách tiếp cận chủ đạo sau. Cách thứ nhất, tệp là một chuỗi các bản ghi. Mỗi bản ghi là một chuỗi các bytes có kích thước cố định hoặc là thay đổi. Các bản ghi có thể được đọc hoặc ghi một cách nối tiếp hoặc có thể theo vị trí bằng số thứ tự của bản ghi trong tệp. Một vài hệ thống tệp cho phép cấu trúc hoá các bản ghi theo các trường và khai báo những trường nào đó là các khoá của bản ghi. Trong các hệ thống tệp đó có thể yêu cầu chọn ra một bản ghi từ một tệp theo khoá của nó. Rõ ràng, trong trường hợp này hệ thống tệp phải duy trì những cấu trúc dữ liệu bổ trợ, ẩn với người dùng. Các phương pháp tổ chức các tệp có khoá phổ biến dựa trên nền tảng kỹ thuật băm (hashing) và cây nhị phân (B-tree). Cũng tồn tại các phương pháp tổ chức tệp nhiều khoá. Cách tiếp cận thứ hai phổ biến song song cùng với hệ điều hành UNIX. Mà theo đó, mỗi tệp là một chuỗi các bytes. Từ một tệp có thể đọc một số cho tr ước các byte hoặc là bắt đầu từ đầu tệp, hoặc đầu tiên chuyển đến vị trí byte có số thứ tự cho tr ước. Tương tự, có thể ghi một số cho trước các byte vào cuối tệp, hoặc vào một vị trí nào đó. Chú ý rằng, dù là ẩn đối với người dùng, nhưng trong tất cả các biến thể của hệ thống tệp của hệ điều h ành UNIX là kiểu biểu diễn tệp theo khối. I.1.1.2 Đặt tên (gán nhãn) cho tệp tin Tất cả các hệ thống tệp hỗ trợ đặt tên các tệp theo nhiều tầng nhờ vào việc duy trì trong bộ nhớ ngoài những tệp bổ trợ có cấu trúc đặc biệt. Đó là các thư mục. Mỗi một thư mục chứa các tên của các thư mục khác hoặc/và các tệp được chứa trong thư mục đó. Như vậy, tên đầy đủ của tệp được cấu thành thừ tên của các thư mục cộng với tên tệp trong thư mục. Sự khác biệt giữa các phương pháp đặt tên tệp trong các hệ thống tệp khác nhau là ở http://elearning.due.edu.vn/course/view.php?id=7 Nguyễn Trần Quốc Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn} 4
  14. HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU – Bản Nháp 30-08-08 chỗ, từ cái gì chuỗi các tên đó được bắt đầu. Có hai phương án. Trong nhiều hệ thống quản lý tệp yêu cầu mỗi một lưu trữ các tệp (cây tra cứu đầy đủ) đều hoàn toàn phân bổ trên một gói đĩa, hoặc là trên một đĩa luận lý. Trong trường hợp đó, tên đầy đủ của một tệp được bắt đầu từ tên của thiết bị đĩa, mà trên đó đĩa tương ứng được cài đặt. Có thể gọi cách tổ chức đó là duy trì các hệ thống tệp cô lập. Trong một phương án khác, là hệ thống tệp của hệ điều hành Multics, nhiều ý tưởng gốc được phát triển, nhưng chúng ta chỉ quan tâm đến các đặc tính tổ chức lưu trữ các tệp. Trong hệ thống tệp đó, người dùng biểu diễn tổ hợp các thư mục và các tệp của mình dưới dạng một cây duy nhất. Tên đầy đủ của tệp được bắt đầu từ tên của thư mục gốc, và người dùng không phải quan tâm đến các thiết đặt các đĩa cụ thể tr ên thiết bị đĩa. Bản thân hệ thống sẽ hỏi về thiết đặt các đĩa cần thiết khi tìm một tệp theo tên của nó. Một hệ thống tệp như thế có thể nói là hoàn toàn tập trung hoá. Ví dụ, các hệ thống tệp của Windows. Tất nhiên, hầu hết các hệ thống tệp đ ược cô lập thuận tiện h ơn: hệ thống quản lý tệp đảm nhận hầu hết công việc. Nh ưng trong các hệ thống đó lại xuất hiện các vấn đề khá lớn, nếu như một ai đó cần chuyển một phần của cây hệ thống tệp đến một trạm điện toán khác. Một giải pháp thoả hiệp đã được áp dụng trong các hệ thống tệp hệ điều h ành UNIX. Các lưu trữ tệp cô lập được duy trì trên cấp độ cơ bản trong các hệ thống tệp. Một trong những lưu trữ đó sẽ được khai báo như là hệ thống tệp gốc (root). Sau khi hệ thống được khởi động, người dùng có thể lắp đặt (mount) hệ thống tệp gốc và hàng loạt các hệ thống tệp cô lập vào một hệ thống tệp duy nhất. Việc đó đ ược thực hiện bằng cách th êm vào hệ thống tệp gốc các thư mục rỗng một cách chủ ý. Một phân hệ của hệ điều hành sẽ làm nhiệm vụ kết nối thư mục gốc của lưu trữ tệp (hệ thống tệp) với một thư mục rỗng được tạo ra trước đó. Sau khi lắp ghép thành hệ thống tệp chung, việc đặt t ên cho các t ệp được diễn ra như là chính nó từ ban đầu đã được tập trung hoá. Nếu việc lắp đặt được diễn ra trong quá trình khởi động hệ thống, thì người dùng không cảm giác về quá trình phát sinh ban đầu của hệ thống tệp chung nhất. I.1.1.3 Bảo vệ tệp tin Bởi vì hệ thống tệp là kho lưu trữ chung của các tệp thuộc về nhiều người dùng khác nhau, nên hệ thống quản lý tệp phải đảm bảo việc xác thực quyền truy cập các tệp. Thường thì theo quan hệ với mỗi người dùng đã được đăng ký trong hệ thống máy tính, cho mỗi một tệp sẽ có thông tin về những quyền truy cập hoặc l à bị cấm đối với người dùng đó. http://elearning.due.edu.vn/course/view.php?id=7 Nguyễn Trần Quốc Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn} 5
  15. HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU – Bản Nháp 30-08-08 Trong hầu hết các hệ thống quản lý tệp hiện đại đều áp dụng biện pháp bảo vệ tệp. Đầu tiên được triển khai trong hệ điều hành UNIX. Trong hệ thống đó, mỗi một người dùng đã đăng ký tồn tại hai từ định danh: từ định danh của nhóm mà người đó thuộc về, và từ định danh của chính người dùng trong nhóm. Tương ứng, kèm theo mỗi tệp sẽ được lưu trữ từ định danh của người dùng đã tạo ra tệp đó, và đánh dấu những thao tác n ào người dùng đó có thể thực hiện với tệp, đánh dấu những thao tác nào các người dùng khác cùng nhóm đó có thể thực hiện với tệp, và những thao tác nào những người dùng khác thuộc các nhóm khác có thể thực hiện với tệp. I.1.1.4 Chế độ truy cập nhiều người dùng Nếu hệ điều hành hổ trợ chế độ nhiều người dùng, thì tình huống hai hoặc nhiều người dùng đồng thời muốn làm việc với cùng một tệp nào đó là hoàn toàn có thể. Nếu tất cả các người dùng đó chỉ định đọc tệp, th ì không có vấn đề gì để bàn cãi. Nhưng nếu chỉ cần một người trong họ thay đổi nội dung của tệp, thì để công việc của tất cả người dùng sử dụng tệp lúc đó được đúng đắn cần phải có sự đồng bộ qua lại. Thường thì trong các hệ thống tệp ứng dụng cách sau. Để bắt đầu một phiên làm việc với tệp, tiến trình (chương trình) cần phải thực hiện thao tác mở tệp. Trong thao tác mở tệp, ngoài những thông số cần thiết của hệ thống, cần phải chỉ ra chế độ l àm việc với tệp – mở chỉ để đọc hay là có sửa đổi. Nếu tại thời điểm tiến trình A tiến hành thao tác mở tệp X, tệp X đã được mở bởi tiến trình B, và chế độ mở tệp mà tiến trình A mong muốn không tương thích với chế độ mở tệp mà tiến trình B đã sử dụng, thì tuỳ thuộc vào các tính năng của hệ thống mà tiến trình A sẽ được thông báo về việc không thể mở tệp X trong chế độ mong muốn, hoặc là tiến trình A sẽ bị phong toả cho đến khi tiến tr ình B chưa thực hiện thao tác đóng tệp X. Trong các phiên bản mới của hệ điều hành UNIX có hỗ trợ chế độ đồng bộ hoá trong khi mở tệp. Thậm chí, tồn tại khả năng đồng bộ nhiều tiến trình cùng mở và sử đổi nội dung một tệp. Để thực hiện điều đó, một c ơ chế các phong toả đ ồng bộ các khoảng địa chỉ của tệp được mở được đưa vào áp dụng. I.1.2 Lĩnh vực ứng dụng của tệp tin Trước tiên, các tệp được sử dụng để lưu trữ các dữ liệu văn bản: tài liệu, mã nguồn chương trình,… Những tệp như vậy thường được tạo ra và được thao tác bởi các chương trình xử lý văn bản khác nhau. Cấu trúc của các tệp văn bản th ường rất đơn giản: hoặc là http://elearning.due.edu.vn/course/view.php?id=7 Nguyễn Trần Quốc Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn} 6
  16. HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU – Bản Nháp 30-08-08 một chuỗi các bản ghi chứa các xâu ký tự, hoặc l à chuỗi các bytes, mà trong chúng có thể gặp những ký tự đặc biệt, ví dụ các ký tự cuối câu. Các tệp chứa mã nguồn các chương trình được sử dụng là đầu vào của các trình biên dịch. Đến phiên mình, các trình biên dịch cũng tạo ra các tệp chứa các mô-đun đối tượng. Trên quan điểm hệ thống tệp, các tệp đối t ượng cũng sở hữu cấu trúc rất đ ơn giản – chuỗi các bản ghi hoặc các bytes. Hệ thống lập trình thiết đặt lên cấu trúc đó một cấu trúc mô-đun đối tượng phức tạp hơn và chuyên biệt cho hệ thống đó. Đó là cấu trúc luận lý (logic), và cấu trúc mô-đun đối tượng đó là “không hiểu” đối với hệ thống tệp. Tương tự với các tệp được tạo ra bởi các trình soạn thảo các liên kết và chứa các đoạn chương trình thực thi. Cấu trúc luận lý của các tệp như thể cũng chỉ “hiểu được” với trình soạn thảo các liên kết và trình khởi động của hệ điều hành. Với các tệp chứa thông tin đồ hoạ, âm thanh… cũng có tình huống như thế. Ví dụ, một tệp chứa ảnh có định dạng JPG thì chỉ có các trình soạn thảo, xem ảnh có chức năng xem ảnh định dạng JPG hiểu được. Như vậy, hệ thống tệp thường chỉ đảm bảo lưu trữ các thông tin đ ược cấu trúc yếu, và để phần cấu trúc hoá còn lại cho các trình ứng dụng. Điều đó thậm chí rất tốt trong các trường hợp sử dụng tệp đã nêu trên, bởi vì trong quá trình phát triển một hệ thống ứng dụng mới nào đó, chỉ cần dựa trên những công cụ chuẩn và đơn giản của hệ thống tệp có thể triển khai các cấu trúc lưu trữ. Các cấu trúc lưu trữ gần gủi với các đặc th ù của lĩnh vực ứng dụng của hệ thống hơn. I.1.3 Yêu cầu của các hệ thống thông tin Tuy nhiên, thực chất tình huống của các hệ thống thông tin khác biệt với các ứng dụng đã nêu trên. Các hệ thống này chủ yếu thiên về lưu trữ, lựa chọn và sửa đổi các thông tìn tồn tại vĩnh viễn. Cấu trúc thông tin thường rất phức tạp, và dù cấu trúc dữ liệu khác biệt nhau trong các hệ thống thông tin, nhưng giữa chúng thường tồn tại nhiều thứ chung. Ở giai đoạn đầu sử dụng kỹ thuật máy tính để quản trị thông tin, các vấn đề cấu trúc hoá dữ liệu được giải quyết riêng lẻ trong mỗi hệ thống thông tin. Nhưng bởi vì các hệ thống thông tin yêu cầu các cấu trúc dữ liệu phức tạp, các công cụ bổ trợ riêng lẽ để quản trị dữ liệu đó là một phần khá lớn của các hệ thống thông tin v à trên thực tế gần như lặp lại trong các hệ thống. Việc cố gắng phân ra và công bố phần chung của các hệ thống thông tin, phần chịu trách nhiệm quản trị các dữ liệu được cấu trúc phức tạp có thể được xem là nguyên nhân đầu tiên đánh thức việc cần thiết phải xây dựng HQT CSDL. Sau này thấy rằng, không thể bỏ http://elearning.due.edu.vn/course/view.php?id=7 Nguyễn Trần Quốc Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn} 7
  17. HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU – Bản Nháp 30-08-08 qua thư viện chương trình chung, mà trong đó các công cụ lưu trữ dữ liệu phức tạp h ơn được triển khai trên một hệ thống tệp chuẩn và căn bản. Ví dụ, chúng ta muốn triển khai một hệ thống thông tin đơn giản để hổ trợ quản lý nhân sự một tổ chức nào đó. Hệ thống cần phải có những tính năng sau: Cho xem danh sách nhân viên theo phòng ban, chuyển một nhân viên từ phòng ban này sang phòng ban khác, nhận nhân viên mới hoặc cho nghỉ việc một nhân viên. Ngoài ra, có thể tính tổng số nhân viên trong mỗi phòng ban, tổng số tiền lương cho mỗi phòng ban, cũng như tổng số tiền lương phải trả cho toàn cơ quan. Ngoài ra, với mỗi nhân viên có thể xem thông tin về họ, công việc họ đang làm, trách nhiệm quyền hạn họ đang nắm giữ,… Nếu chúng ta sử dụng hệ thống tệp để lưu trữ, nghĩa là tất cả thông tin được ghi vào một tệp văn bản dạng text, tất nhiên, phải phát triển thêm thư viện công cụ đặc biệt để làm việc với hệ thống tệp. Ở đây, đơn vị thông tin nhỏ nhất là nhân viên, vì thế mỗi bản ghi là một dòng lưu giữ tất cả mọi thông tin liên quan nhân viên. Với một hệ thống thông tin đơn giản như thế, trong trường hợp này đòi hỏi: 1) xây dựng các thiết đặt đủ phức tạp để truy cập đến các tệp theo nhiều khoá; 2) rõ ràng, tồn tại sự dư thừa rất lớn trong lưu trữ dữ liệu, và phải thực hiện quá nhiều phép chọn và tính toán để thu được thông tin tổng kết về một phòng ban. Ngoài ra, trong quá trình khai thác hệ thống, nếu muốn đưa vào thêm chức năng đơn giản, chẳng hạn như cho xem danh sách những nhân viên được hưởng mức lương cho trước, chúng ta phải đọc toàn bộ tệp, hoặc là phải cấu trúc lại tệp để thêm khoá. Cũng có thể l àm việc trực tiếp tr ên nền tảng hệ thống tệp, nh ưng chúng ta chia t ệp đó thành nhiều tệp. Và khi đó, những sự bất tiện v à khó khăn nêu trên s ẽ được vượt qua, nh ưng rõ ràng hệ thống thông tin của chúng ta bây giờ phải sở hữu những tính năng mới trong th ư viện các công cụ, và bước chuyển này đã làm hệ thống tiến gần đến HQT CSDL. Trước tiên, hệ thống phải biết rằng, nó đang làm việc với nhiều tệp khác nhau chứa thông tin liên quan mật thiết với nhau, v à biết được ý nghĩa (ngữ nghĩa) của từng tr ường. Và rằng, nếu thay đổi thông tin trong một tệp th ì cũng phải tự động thay đổi tương ứng ở những tệp khác chứa thông tin liên quan. Khái niệm tính nhất quán dữ liệu (tính toàn vẹn) là khái niệm mang tính chìa khoá của CSDL. Thực tế, nếu hệ thống thông tin hỗ trợ l ưu trữ dữ liệu một cách nhất quán trong nhiều tệp, th ì có th ể nói rằng, nó đã đảm bảo tính nhất quán, v à có thể gọi nó là hệ quản trị cơ sở dữ liệu (HQT CSDL). Dù bây giờ chỉ yêu cầu duy trì tính nhất quán dữ liệu trong nhiều tệp, nh ưng thư viện các chức năng (công cụ) của chúng ta cũng không thể bỏ đi. Vì hệ thống như thế cần phải có những dữ liệu của riêng nó, đó là http://elearning.due.edu.vn/course/view.php?id=7 Nguyễn Trần Quốc Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn} 8
  18. HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU – Bản Nháp 30-08-08 những siêu dữ liệu (meta-data), và thậm chí những tri thức định nghĩa tính nhất quán của dữ liệu. Nhưng đó cũng chưa phải là tất cả những gì đòi hỏi từ một HQT CSDL. Thứ nhất, rõ ràng trong hệ thống thông tin đơn giản đó cũng rất khó để triển khai những truy vấn rất đơn giản kiểu như “cho xem số lượng nhân viên trong phòng ban mà nhân viên A làm trưởng”. Suy ra, HQT CSDL cần phải hỗ trợ một ngôn ngữ gần với ngôn ngữ con người và cho phép tạo ra các truy vấn một cách đơn giản, và người dùng không cần quan tâm cần phải thực thi truy vấn như thế nào. Những ngôn ngữ như thế gọi là ngôn ngữ truy vấn đến CSDL. SQL (Structured Query Language) cho mô hình dữ liệu quan hệ là một ngôn ngữ như thế. Thứ hai, HQT CSDL phải nhận trách nhiệm về tính nhất quán củ a dữ liệu. Nếu chúng ta làm việc trực tiếp trên nền tảng hệ thống tệp bằng th ư viện các công cụ mở rộng để làm việc với tệp, và phân tách CSDL ra làm nhiều tệp khác nhau; khi cần sửa đổi dữ liệu ở một tệp thì tất nhiên cũng phải thực hiện những thay đổi t ương ứng trong những tệp chứa dữ liệu liên quan. Nếu trong quá trình đó, chúng ta không kịp thực hiện các thay đổi cần thiết trong tất cả các tệp liên quan và trong hệ thống xảy ra sự cố, ví dụ mất điện, thì sau khi hệ thống khởi động lại, CSDL được chứa trong các tệp của chúng ta không c òn nằm trong trạng thái nhất quán nữa. Các HQT CSDL hiện đại nhận tất cả các trách nhiệm đó, nó đảm bảo CSDL sẽ được khôi phục lại trạng thái nhất quán sau khi xảy ra sự cố và người dùng cũng như trình ứng dụng không cần phải quan tâm đến vấn đề đó. Và cuối cùng, nếu chúng ta muốn đảm bảo công việc song song của nhiều ng ười dùng đồng thời trên CSDL, và chúng ta chỉ dựa trên việc sử dụng trực tiếp các tệp, thì để đảm bảo tính đúng đắn trong công việc trong cả thời gian sửa đổi dữ liệu bởi một người dùng nào đó trong một trong số các tệp chứa thông tin liên quan, thì việc truy cập của tất cả các người dùng còn lại đến tệp đó bị phong toả (nh ư đã nói ở trên). Như vậy, thời gian để thực hiện một truy vấn dù là trên các dữ liệu không liên quan cũng bị kéo dài. Các HQT CSDL hiện đại đảm bảo cơ chế mềm dẽo hơn nhiều để đồng bộ hoá truy cập đồng thời đến dữ liệu. Và như thế, HQT CSDL giải quyết nhiều vấn đề mà hầu như không thể giải quyết được hoặc rất khó nều giải quyết bằng việc sử dụng hệ thống tệp. Trong khi đó cũng tồn tại nhiều trình ứng dụng, mà đối với chúng các tệp là đủ; hoặc cần phải xác định cho chúng mức độ cần thiết để làm việc với dữ liệu được lưu trữ trong bộ nhớ ngoài; hoặc là đối với chúng, HQT CSDL là cần thiết vô điều kiện. http://elearning.due.edu.vn/course/view.php?id=7 Nguyễn Trần Quốc Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn} 9
  19. HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU – Bản Nháp 30-08-08 Chương I.2 Các chức năng của HQT CSDL. Tổ chức điển hình của một HQT CSDL hiện đại Như đã chứng minh ở trên, các tính năng truyền thống của hệ thống tệp không đủ để xây dựng một hệ thống thông tin, d ù là đơn giản. Chúng ta đã chỉ ra những yêu cầu mà hệ thống tệp không thể đáp ứng được: Hỗ trợ tính nhất quán luận lý của tổ hợp các tệp; đảm bảo ngôn ngữ thao tác và truy vấn dữ liệu; khôi phục dữ liệu sau các sự cố khác nhau; v à đảm bảo công việc song song giữa các ng ười dùng khác nhau. Có thể nói rằng, nếu một hệ thống thông tin ứng dụng n ào đó dựa trên một hệ thống quản trị dữ liệu sở hữu các tính năng trên, thì hệ quản trị dữ liệu đó có thể đ ược gọi là HQT CSDL. I.2.1 Các chức năng của HQT CSDL I.2.1.1 Quản trị dữ liệu trực tiếp trong bộ nhớ ngo ài Chức năng này bao gồm sự đảm bảo các cấu trúc cần thiết của bộ nhớ ngoài để lưu trữ dữ liệu l à dữ liệu của CSDL, v à cả cho các mục đích phục dịch (phục vụ) khác, ví dụ, để đẩy nhanh quá trình truy cập đến dữ liệu trong một số tr ường hợp nào đó. Trong một vài phiên bản HQT CSDL các tính năng của hệ thống tệp được sử dụng rất tích cực, nhưng trong vài phiên bản khác công việc được thực hiện trên cấp độ các thiết bị bộ nhớ ngoài. Nhưng trong các HQT CSDL tiên tiến, người dùng không cần biết HQT CSDL sử dụng hệ thống tệp hay không, và nếu sử dụng, thì người dùng không cần biết các tệp được tổ chức như thế nào. Thông thường, HQT CSDL đảm bảo hệ thống chuyên biệt của mình để đặt tên các đối tượng của CSDL. I.2.1.2 Quản trị các bộ nhớ đệm (buffers) trong RAM HQT CSDL thường làm việc với các CSDL có kích thước rất lớn, thường thì kích thước đó lớn hơn gấp nhiều lần so với dung l ượng RAM có thể truy cập. Nhưng rõ ràng, nếu mỗi truy cập đến các phần tử dữ liệu đều đ ược thực hiện trực tiếp bằng một trao đổi với bộ nhớ ngoài, thì cả hệ thống sẽ làm việc với tốc độ của thiết bị bộ nhớ ngo ài. Chỉ có một cách duy nhất để nâng cao tốc độ làm việc của hệ thống, đó là đệm hoá (bufferring) dữ liệu trong RAM. Khi đó, thậm chí nếu hệ điều hành thực hiện đệm hoá chung cho cả hệ thống, như trong trường hợp UNIX, thì cũng đủ cho các mục đích của HQT CSDL. Bởi vì HQT CSDL phân bổ phần lớn những thông tin về lợi ích của bufferring phần n ày hay phần kia của http://elearning.due.edu.vn/course/view.php?id=7 Nguyễn Trần Quốc Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn} 10
  20. HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU – Bản Nháp 30-08-08 CSDL. Vì thế trong các HQT CSDL tiên tiến, một tổ hợp bộ nhớ đệm RAM của chính nó cùng với các nguyên tắc trao đổi/thay đổi bộ đệm của riêng nó được duy tr ì. Cũng tồn tại một lớp HQT CSDL ri êng hướng đến việc luôn tồn tại cả CSDL trong RAM. Hướng này dựa trên nền tảng giả thuyết rằng, dung lượng RAM trong tương lai là không giới hạn hoặc lớn đến mức nào đó, để cho phép không quan tâm đến đệm hoá nữa. Hiện tại các công trình theo hướng này đang nằm trong giai đoạn nghiên cứu. I.2.1.3 Điều khiển các giao tác Giao tác là một chuỗi nối tiếp các thao tác trên CSDL, và các thao tác đó xem HQT CSDL là một thể thống nhất. Giao tác hoặc là được thực thi hoàn toàn, và HQT CSDL cố định (COMMIT) trong bộ nhớ ngoài các thay đổi trong CSDL bởi giao tác đó; hoặc là không có bất cứ một thay đổi nào do nó gây nên được thể hiện trong trạng thái của CSDL. Khái niệm giao tác cần thiết để đảm bảo tính nhất quán luận lý của CSDL. Trong trường hợp sử dụng hệ thống tệp và lưu trữ các bảng trong các tệp như đã nêu trên (?), cách duy nhất để đảm bảo tính nhất quán CSDL khi thực thi một sửa đổi dữ liệu và dẫn tới cần thiết phải sử đổi trên các tệp có thông tin liên quan, đó là liên kết tất cả các thao tác đó vào một “gói” gọi là giao tác. Như vậy, duy trì cơ chế giao tác là điều kiện cần, thậm chí trong các HQT CSDL với chế độ một người dùng. Khái niệm giao tác còn quan trong hơn rất nhiều trong các HQT CSDL cho phép nhiều người dùng làm việc đồng thời. Tính chất mỗi giao tác được bắt đầu trong trạng thái toàn vẹn của CSDL và cũng để lại một trạng thái toàn vẹn CSDL khi kết thúc, cho phép sử dụng giao tác như là một đơn vị hoạt động của người dùng trong quan hệ với CSDL. Dưới một sự điều khiển tương ứng việc thực thi song song các giao tác đồng thời của HQT CSDL, hầu như mỗi một trong số các người dùng cảm giác như họ là người dùng duy nhất trong HQT CSDL. Chỉ trong một số trường hợp đặc biệt, ng ười dùng mới cảm giác rằng c òn có nh ững người khác cũng l àm việc trên HQT CSDL như mình. Cùng với khái niệm điều khiển các giao tác trong HQT CSDL nhiều người dùng liên quan đến các khái niệm rất quan trọng, đó là khái niệm tuần tự hoá (serialization) các giao tác và khái niệm kế hoạch tuần tự thực thi hỗn hợp các giao tác. Khái niệm tuần tự hoá các giao tác được hiểu là thứ tự hoá kế hoạch thực hiện công việc của chúng, mà kết quả (hiệu quả) cuối cùng thực thi của hỗn hợp cá c giao tác tương đương v ới kết quả thực thi chúng theo một thứ tự nối tiếp nào đó. Kế hoạch tuần tự thực thi hỗn hợp các giao tác là một kế http://elearning.due.edu.vn/course/view.php?id=7 Nguyễn Trần Quốc Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn} 11
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
3=>0