Chương 1. KHÁI QUÁT VỀ CƠ SỞ DỮ LIỆU Chương này chủ yếu trình bày về các khái niệm cơ bản của cơ sở dữ liệu như hệ cơ sở dữ liệu, hệ quản trị cơ sở dữ liệu, mô hình dữ liệu, kiến trúc ba mức trừu tượng của hệ cơ sở dữ liệu, lược đồ và thể hiện cơ sở dữ liệu cũng như sự độc lập dữ liệu. Cuối cùng của chương trình bày về các vai trò của con người trong một hệ cơ sở dữ liệu. Hệ cơ sở dữ liệu Cơ sở dữ liệu (CSDL) là một tập hợp các dữ liệu có liên quan với nhau chứa thông tin về một tổ chức nào đó, chẳng hạn như trường đại học, ngân hàng, công ty,.
được lưu trữ trên các thiết bị nhớ thứ cấp nhằm đáp ứng nhu cầu khai thác thông tin của nhiều người sử dụng (NSD) với nhiều mục đích khác nhau. Như vậy, CSDL phải phản ánh được thông tin về hoạt động của một tổ chức nhất định. Thông tin lưu trữ trong CSDL phải được chia sẻ cho nhiều NSD cũng như nhiều ứng dụng khác nhau. Trước đây khoảng đầu những năm 60, khi khái niệm CSDL chưa ra đời, mỗi chương trình ứng dụng đều có một tệp dữ liệu tương ứng và mỗi khi chương trình cần được sửa đổi thì tệp dữ liệu tương ứng cũng phải thay đổi theo.
Việc lưu trữ thông tin của một tổ chức trong một hệ xử lý tệp dữ liệu như vậy có những nhược điểm chính như sau: • Dư thừa dữ liệu và dữ liệu không nhất quán: một dữ liệu có thể được lưu trữ trong nhiều tệp dữ liệu khác nhau, khi đó việc cập nhật dữ liệu có thể sẽ bỏ sót và dẫn đến dữ liệu không nhất quán. • Truy cập dữ liệu khó khăn: môi trường xử lý tệp dữ liệu truyền thống không cho phép dữ liệu được tìm kiếm theo cách thức thuận 9 tiện và hiệu quả. • Dữ liệu cô lập: dữ liệu nằm rải rác trong nhiều tệp và các tệp có thể có cấu trúc khác nhau nên khó viết các chương trình ứng dụng mới để tìm các dữ liệu thích hợp. • Các vấn đề về toàn vẹn dữ liệu: khi thêm các ràng buộc mới, khó có thể thay đổi các chương trình để có thể tuân thủ chúng.
• Các vấn đề về tính nguyên tố của các giao dịch: với hệ xử lý tệp dữ liệu truyền thống, khó có thể đảm bảo được tính chất “hoặc thực hiện hoàn toàn hoặc không thực hiện gì” và khó đưa được hệ thống trở về trạng thái ban đầu khi xảy ra sự cố. • Các vấn đề về an toàn dữ liệu: thường thì mỗi NSD CSDL chỉ được phép truy cập một phần của CSDL, điều này làm cho dữ liệu trong CSDL được an toàn. Tuy nhiên, đối với hệ xử lý tệp dữ liệu truyền thống tính chất này thường không được đảm bảo. Những vấn đề trên sẽ không còn tồn tại nữa khi khái niệm CSDL ra đời.
Một phần mềm cho phép NSD giao tiếp với CSDL, cung cấp một môi trường thuận lợi và hiệu quả để tìm kiếm và lưu trữ thông tin của CSDL được gọi là hệ quản trị CSDL. Một CSDL cùng với hệ quản trị CSDL để truy cập CSDL đó thường được gọi là hệ CSDL. Mục đích chính của một hệ CSDL là cung cấp cho NSD một cách nhìn trừu tượng về dữ liệu, nghĩa là hệ thống che dấu những chi tiết phức tạp về cách dữ liệu được lưu trữ và bảo trì. Chính vì vậy, trong cuộc sống hiện đại ngày nay việc sử dụng CSDL trở nên phổ biến và quen thuộc đến mức nhiều lúc NSD xem đó là hiển nhiên.
Chẳng hạn, khi chúng ta muốn đặt chỗ cho chuyến bay sắp tới của mình, nhân viên đại lý bán vé hàng không sẽ nhanh chóng cung cấp những thông tin cần thiết giúp chúng ta có thể quyết định chọn chuyến bay để đăng ký và họ cũng sẽ ghi nhận sự đăng ký của chúng ta như một thông tin cập nhật vào tập hợp dữ liệu được lưu trữ. Hoặc khi đến thư viện tìm mượn sách, nhờ máy tính ít nhất chúng ta có thể biết được thông tin chi tiết về sách của thư viện, 10 thông tin về sách đã có người xếp hàng đặt mượn. Sự phát triển mạnh mẽ của Internet ở thập kỷ cuối thế kỷ 20 đã làm số người truy nhập và khai thác thông tin trong các CSDL tăng lên nhanh chóng. Với các giao diện Web, người ta có thể đăng ký các khóa học ở một trường đại học, có thể xem số dư trong tài khoản của mình ở một ngân hàng, có thể tìm hiểu chi tiết về một mặt hàng nào đó,.
càng ngày việc truy xuất thông tin trong các CSDL càng trở thành một bộ phận thiết yếu trong cuộc sống của mỗi người. Vì nhiều NSD CSDL không thuộc giới chuyên tin, nên những người phát triển hệ thống đã che dấu không cho người dùng biết sự phức tạp của việc lưu trữ và bảo trì dữ liệu thông qua các mức trừu tượng hóa dữ liệu, nhằm làm đơn giản những tương tác của người dùng với hệ thống. Kiến trúc ba mức trừu tượng của một hệ cơ sở dữ liệu Theo ANSI-PARC (American National Standards Institute-Planning and Requirements Committee: Viện tiêu chuẩn quốc gia Mỹ-Ban nhu cầu và kế hoạch Mỹ), có ba mức trừu tượng hóa dữ liệu trong một hệ CSDL như sau: • Mức vật lý (hay mức trong): mức này mô tả dữ liệu được thực sự lưu trữ như thế nào trong CSDL. Đây là mức trừu tượng thấp nhất, thể hiện các cài đặt có tính chất vật lý của CSDL.
Nó cũng phản ánh các cấu trúc dữ liệu, các tổ chức tệp được dùng cho việc lưu trữ dữ liệu trên các thiết bị nhớ thứ cấp. • Mức logic (hay mức khái niệm): cho biết dữ liệu nào được lưu trữ trong CSDL và các mối quan hệ giữa chúng. Cụ thể biểu diễn các thực thể, các thuộc tính và các mối quan hệ giữa các thực thể đó. Mức này chỉ quan tâm đến cái gì được lưu trữ trong CSDL chứ không quan tâm đến cách thức lưu trữ chúng.
• Mức khung nhìn (hay mức ngoài): mức này thể hiện một phần 11 CSDL mà NSD cần khai thác. Đây là mức trừu tượng cao nhất. Mức này bao gồm một số khung nhìn của NSD trong toàn bộ thông tin của hệ CSDL mà NSD cần quan tâm. Khung nhìn này gồm các thực thể, thuộc tính và các mối quan hệ giữa thực thể.
Một số khung nhìn có thể chứa các dữ liệu suy diễn ra được hay tính toán được, những dữ liệu này vốn không được thực sự lưu trữ trong CSDL.1: Ba mức trừu tượng hóa dữ liệu trong CSDL Tóm lại, mức khung nhìn là cách cảm nhận của NSD về dữ liệu, mức vật lý là cách cảm nhận của hệ CSDL và hệ điều hành về dữ liệu. Cuối cùng mức logic là cách cảm nhận của toàn thể cộng đồng NSD về dữ liệu. Tại mức logic tồn tại hai ánh xạ đến hai mức còn lại, tạo nên một sự độc lập đối với nhau của hai mức đó. Lược đồ và thể hiện của cơ sở dữ liệu Lược đồ CSDL là toàn bộ mô tả của CSDL.
Tương ứng với ba mức trừu tượng hóa dữ liệu chúng ta có ba loại lược đồ. Ở mức khung nhìn ta có nhiều lược đồ con thường gọi là lược đồ ngoài, ở mức logic ta có lược đồ 12 khái niệm và cuối cùng ở mức vật lý ta có lược đồ trong. Thường thì các hệ CSDL hỗ trợ một lược đồ trong, một lược đồ khái niệm và nhiều lược đồ con. Lược đồ CSDL được xác định trong quá trình thiết kế CSDL và thông thường người ta không muốn nó thường xuyên thay đổi.
Trong khi đó, bản thân CSDL sẽ thay đổi theo thời gian do dữ liệu thêm vào, xóa đi hay sửa đổi. Toàn bộ dữ liệu được lưu trữ trong CSDL tại một thời điểm nhất định được gọi là một thể hiện của CSDL. Như vậy, với một lược đồ CSDL có thể có cùng nhiều thể hiện của CSDL. Sau đây là các lược đồ trong CSDL: 1.
Sự độc lập của dữ liệu Mục đích của kiến trúc ba mức trừu tượng hóa dữ liệu trong CSDL còn có thể hiểu theo nghĩa là sự độc lập của dữ liệu, đó là các lược đồ ở mức 13 trên không bị ảnh hưởng khi có sự thay đổi các lược đồ ở mức dưới. Chúng ta có hai loại độc lập dữ liệu: độc lập dữ liệu vật lý và độc lập dữ liệu logic. • Độc lập dữ liệu vật lý là khả năng sửa đổi lược đồ trong mà không làm thay đổi lược đồ khái niệm và do đó không đòi hỏi phải viết lại các chương trình ứng dụng. Để tăng hiệu quả nhiều khi chúng ta cần có những thay đổi ở mức vật lý, chẳng hạn tổ chức tệp khác trước, thay đổi các chỉ mục hay thay đổi thuật toán băm,.
• Độc lập dữ liệu logic là khả năng sửa đổi lược đồ khái niệm mà không làm thay đổi các lược đồ ngoài (khung nhìn) và do đó cũng có nghĩa không đòi hỏi phải viết lại các chương trình ứng dụng. Các sửa đổi ở mức logic là cần thiết mỗi khi cấu trúc logic của CSDL cần phải thay đổi, chẳng hạn cần thêm hay bớt một thực thể nào đó, các thuộc tính hay các mối quan hệ của chúng. Sau đây là kiến trúc ba mức ANSI-SPARC về sự độc lập dữ liệu: Hình 1.2: Kiến trúc ba mức về sự độc lập dữ liệu Độc lập dữ liệu logic khó thực hiện hơn độc lập dữ liệu vật lý, vì các chương trình ứng dụng phụ thuộc nhiều vào cấu trúc logic của dữ 14 liệu mà chúng truy cập. Khái niệm độc lập dữ liệu trong nhiều khía cạnh nó tương tự với khái niệm kiểu dữ liệu trừu tượng trong các ngôn ngữ lập trình hiện đại.
Đó là cả hai đều che dấu NSD những chi tiết cài đặt, chỉ cho phép NSD tập trung vào cấu trúc chung hơn là tập trung vào chi tiết cài đặt ở mức thấp. Các cách tiếp cận cơ sở dữ liệu Trên thực tế, một lược đồ được viết trong ngôn ngữ định nghĩa dữ liệu của một hệ quản trị CSDL cụ thể. Tuy nhiên, để mô tả các yêu cầu về dữ liệu của một tổ chức sao cho mô tả đó dễ hiểu đối với NSD thì ngôn ngữ đó lại ở mức quá thấp. Điều này dẫn đến cần phải có mô tả lược đồ ở mức cao hơn, mô tả như thế này được hiểu là một mô hình dữ liệu.
Một cách hình thức mô hình dữ liệu là một hệ toán học gồm hai phần: (i) Một tập hợp các ký hiệu để mô tả dữ liệu. (ii) Một tập hợp các phép toán thao tác trên dữ liệu đó.