CHÉM GIÓ, BÀN LUẬN VỀ KỸ THUẬT
Nhập môn cơ sở dữ liệu - Phần 2: Đặc điểm cách tiếp cận
13 Tháng Năm 2021
Trong cách tiếp cận cơ sở dữ liệu, một kho lưu trữ duy nhất dữ liệu được xác định một lần và sau đó được nhiều người dùng khác nhau truy cập lặp đi lặp lại thông qua các truy vấn, giao dịch và chương trình ứng dụng. Trong bài viết hôm nay chúng ta sẽ cùng tìm hiểu về các đặc điểm chính của cách tiếp cận cơ sở dữ liệu so với tệp truyền thống nhé
Self-Describing Nature of a Database System
Một đặc điểm cơ bản của cách tiếp cận cơ sở dữ liệu là hệ thống cơ sở dữ liệu không chỉ chứa bản thân cơ sở dữ liệu mà còn chứa một định nghĩa hoặc mô tả đầy đủ về cấu trúc cơ sở dữ liệu và các ràng buộc. Định nghĩa này được lưu trữ trong danh mục DBMS, chứa thông tin như cấu trúc của mỗi tệp, kiểu và định dạng lưu trữ của mỗi mục dữ liệu, và các ràng buộc khác nhau đối với dữ liệu. Thông tin được lưu trữ trong danh mục được gọi là meta-data, và nó mô tả cấu trúc của cơ sở dữ liệu chính. Điều quan trọng cần lưu ý là một số loại hệ thống cơ sở dữ liệu mới hơn, ví dụ như NOSQL, không yêu cầu meta-data. Thay vào đó, dữ liệu được lưu trữ dưới dạng dữ liệu tự mô tả bao gồm tên mục dữ liệu và giá trị dữ liệu cùng nhau trong một cấu trúc thường gọi là 1 document
Danh mục được sử dụng bởi phần mềm DBMS và cả những người sử dụng cơ sở dữ liệu, những người cần thông tin về cấu trúc cơ sở dữ liệu. Gói phần mềm DBMS có mục đích chung không được viết cho một ứng dụng cơ sở dữ liệu cụ thể. Do đó, nó phải tham khảo danh mục để biết cấu trúc của các tệp trong một cơ sở dữ liệu cụ thể, chẳng hạn như loại và định dạng dữ liệu mà nó sẽ truy cập. Phần mềm DBMS phải hoạt động tốt như nhau với bất kỳ số lượng ứng dụng cơ sở dữ liệu nào — ví dụ: cơ sở dữ liệu trường đại học, cơ sở dữ liệu ngân hàng hoặc cơ sở dữ liệu công ty — miễn là định nghĩa cơ sở dữ liệu được lưu trữ trong danh mục
Đối với ví dụ được hiển thị trong Hình 1, danh mục DBMS sẽ lưu trữ các định nghĩa của tất cả các tệp được hiển thị. Hình 2 cho thấy một số mục nhập trong danh mục cơ sở dữ liệu. Bất cứ khi nào có yêu cầu truy cập, chẳng hạn như Tên của bản ghi STUDENT , phần mềm DBMS sẽ tham chiếu đến danh mục để xác định cấu trúc của tệp STUDENT và vị trí và kích thước của mục dữ liệu NAME trong bản ghi STUDENT . Ngược lại, trong một ứng dụng xử lý tệp thông thường, cấu trúc tệp và trong trường hợp cực đoan, vị trí chính xác của Tên trong bản ghi STUDENT đã được mã hóa trong mỗi chương trình truy cập mục dữ liệu này.
Insulation between Programs and Data, and Data Abstraction
Trong xử lý tệp truyền thống, cấu trúc của tệp dữ liệu được nhúng trong các chương trình ứng dụng, vì vậy bất kỳ thay đổi nào đối với cấu trúc của tệp có thể yêu cầu thay đổi tất cả các chương trình truy cập tệp đó. Ngược lại, các chương trình truy cập DBMS không yêu cầu những thay đổi như vậy trong hầu hết các trường hợp. Cấu trúc của tệp dữ liệu được lưu trữ trong danh mục DBMS riêng biệt với các chương trình truy cập. Chúng ta gọi đây là thuộc tính độc lập dữ liệu chương trình
Ví dụ, một chương trình truy cập tệp có thể được viết theo cách mà nó chỉ có thể truy cập các bản ghi STUDENT của cấu trúc được chỉ ra trong hình ở ví dụ trên. Nếu chúng ta muốn thêm một phần dữ liệu khác vào mỗi bản ghi STUDENT, giả sử ngày sinh, chương trình như vậy sẽ không hoạt động nữa và phải được thay đổi. Ngược lại, trong môi trường DBMS, chúng ta chỉ cần thay đổi mô tả của các bản ghi STUDENT trong danh mục ở ví dụ trên để phản ánh việc đưa vào mục dữ liệu mới Birth_date; không có chương trình nào được thay đổi. Lần tới khi một chương trình DBMS đề cập đến danh mục, cấu trúc mới của các bản ghi STUDENT sẽ được truy cập và sử dụng.
Trong một số kiểu hệ thống cơ sở dữ liệu, chẳng hạn như hệ thống hướng đối tượng (object-oriented) và quan hệ đối tượng (object-relational), người dùng có thể định nghĩa các thao tác trên dữ liệu như một phần của định nghĩa cơ sở dữ liệu. Một thao tác (còn được gọi là một hàm hoặc phương thức) được chỉ định thành hai phần bao gồm tên thao tác và các kiểu dữ liệu của các tham số của nó. Việc thực hiện các thao tác được chỉ định riêng biệt và có thể được thay đổi mà không ảnh hưởng đến giao diện. Các chương trình ứng dụng của người dùng có thể hoạt động trên dữ liệu bằng cách gọi các thao tác này thông qua tên và đối số của chúng, bất kể các thao tác được thực hiện như thế nào. Điều này có thể được gọi là độc lập hoạt động chương trình.
Đặc tính cho phép độc lập chương trình-dữ liệu và độc lập hoạt động chương trình được gọi là tính trừu tượng hóa dữ liệu. DBMS cung cấp cho người dùng một biểu diễn khái niệm về dữ liệu không bao gồm nhiều chi tiết về cách dữ liệu được lưu trữ hoặc cách thực hiện các hoạt động. Một cách không chính thức, mô hình dữ liệu là một kiểu trừu tượng hóa dữ liệu được sử dụng để cung cấp biểu diễn khái niệm này. Mô hình dữ liệu sử dụng các khái niệm logic, chẳng hạn như các đối tượng, thuộc tính của chúng và mối quan hệ qua lại của chúng, có thể dễ hiểu hơn đối với hầu hết người dùng so với các khái niệm lưu trữ trên máy tính. Do đó, mô hình dữ liệu ẩn các chi tiết lưu trữ và triển khai không được hầu hết người dùng cơ sở dữ liệu quan tâm.
Support of Multiple Views of the Data
Một cơ sở dữ liệu thường có nhiều kiểu người dùng, mỗi kiểu người dùng có thể yêu cầu một góc nhìn hoặc cách nhìn khác nhau về cơ sở dữ liệu. Một view có thể là một tập hợp con của cơ sở dữ liệu hoặc nó có thể chứa dữ liệu ảo có nguồn gốc từ các tệp cơ sở dữ liệu nhưng không được lưu trữ rõ ràng. Một số người dùng có thể không cần biết liệu dữ liệu mà họ tham chiếu đến có được lưu trữ hay có nguồn gốc hay không. Một DBMS nhiều người dùng mà người dùng có nhiều ứng dụng riêng biệt khác nhau phải cung cấp các phương tiện để xác định nhiều dạng view. Ví dụ, một người sử dụng cơ sở dữ liệu ở ví dụ phần 1 có thể chỉ quan tâm đến việc truy cập và in bảng điểm của từng học sinh; chế độ view cho người dùng này được hiển thị trong hình đầu tiên bên dưới. Người dùng thứ hai, người chỉ quan tâm đến việc kiểm tra xem sinh viên đã thực hiện tất cả các điều kiện tiên quyết của mỗi khóa học mà sinh viên đăng ký hay chưa, có thể yêu cầu dạng xem trong hình tiếp theo
Sharing of Data and Multiuser Transaction Processing.
Một DBMS nhiều người dùng, như tên gọi của nó, phải cho phép nhiều người dùng truy cập cơ sở dữ liệu cùng một lúc. Điều này là cần thiết nếu dữ liệu cho nhiều ứng dụng được tích hợp và duy trì trong một cơ sở dữ liệu duy nhất. DBMS phải bao gồm phần mềm điều khiển đồng thời để đảm bảo rằng một số người dùng đang cố gắng cập nhật cùng một dữ liệu thực hiện theo cách có kiểm soát để kết quả của các bản cập nhật là chính xác. Ví dụ: khi một số đại lý đặt chỗ cố gắng chỉ định một chỗ ngồi trên một chuyến bay của hãng hàng không, DBMS phải đảm bảo rằng mỗi lần chỉ một đại lý có thể truy cập vào một chỗ ngồi để chỉ định cho hành khách. Các loại ứng dụng này thường được gọi là ứng dụng xử lý giao dịch trực tuyến (OLTP). Vai trò cơ bản của phần mềm DBMS đa người dùng là đảm bảo rằng các giao dịch đồng thời hoạt động chính xác và hiệu quả.
Khái niệm giao dịch (transaction) đã trở thành trọng tâm của nhiều ứng dụng cơ sở dữ liệu. Transaction là một chương trình hoặc quy trình đang thực thi bao gồm một hoặc nhiều quyền truy cập cơ sở dữ liệu, chẳng hạn như đọc hoặc cập nhật các bản ghi cơ sở dữ liệu. Mỗi transaction phải thực hiện một truy cập cơ sở dữ liệu chính xác một cách hợp lý nếu được thực thi toàn bộ mà không bị các transaction khác can thiệp. DBMS phải thực thi một số thuộc tính transaction. Thuộc tính cách ly đảm bảo rằng mỗi transaction dường như được thực hiện tách biệt với các transaction khác, ngay cả khi hàng trăm transaction có thể được thực hiện đồng thời. Thuộc tính atomicity đảm bảo rằng tất cả các hoạt động cơ sở dữ liệu trong một transaction được thực thi hoặc không có. Ví dụ khi bạn thực hiện thao lưu trữ hóa đơn bao gồm hai bảng hóa đơn và hóa đơn chi tiết, việc lưu trữ phải được đảm bảo lưu trữ thành công trên cả hai bảng hoặc thất bại hoàn toàn.
Tạm kết
Bài viết này mình đã giới thiệu sơ về các đặc điểm trong cách tiếp cận hệ quản trị cơ sở dữ liệu so với việc thao tác trên các file truyền thống (file text). Trong bài viết tiếp theo chúng ta sẽ tìm hiểu về các nhóm người dùng liên quan đến cơ sở dữ liệu. Chúc bạn đọc vui vẻ