CHƯƠNG 1 TỔNG QUAN VỀ HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU 1. Một số khái niệm 1. Cơ sở dữ liệu Dữ liệu là những sự kiện có thể ghi lại được, và thường không có ý nghĩa. Dữ liệu được gọi là thông tin sau khi được người sử dụng xử lý trong một ngữ cảnh cụ thể để trở nên có ý nghĩa.
Cơ sở dữ liệu (CSDL) là tập hợp các dữ liệu có mối liên hệ với nhau về mặt ý nghĩa, được lưu trữ trên các thiết bị thứ cấp để thỏa mãn nhu cầu khai thác thông tin của nhiều người sử dụng hoặc nhiều chương trình ứng dụng. Góc nhìn dữ liệu Tính hiệu quả của hệ thống đòi hỏi phải thiết kế các cấu trúc dữ liệu phức tạp để biểu diễn dữ liệu trong CSDL. Các nhà phát triển che dấu sự phức tạp này thông qua các mức trừu tượng nhằm đơn giản hóa sự trao đổi của người sử dụng với hệ thống: - Mức vật lý: Mô tả cách thức lưu trữ dữ liệu trong thiết bị thứ cấp. - Mức ngữ nghĩa: Mô tả cách tổ chức dữ liệu trong CSDL và các mối liên hệ giữa các dữ liệu với nhau.
- Mức khung nhìn: Mô tả chỉ một phần của CSDL theo góc nhìn hay nhu cầu của người sử dụng. Mô hình dữ liệu Mô hình kiến trúc ba mức của hệ CSDL bao gồm: Mô hình mức ngoài được dùng để mô tả dữ liệu ở mức luận lý và mức khung nhìn. Chúng cung cấp khả năng cấu trúc linh hoạt và cho phép các ràng buộc dữ liệu được xác định một cách tường minh. Mô hình mức khái niệm được dùng để mô tả dữ liệu ở mức luận lý hay mức khung nhìn.
Chúng được dùng để xác định cấu trúc luận lý tổng thể CSDL và cung cấp sự mô tả chi tiết cấu trúc của dữ liệu. 1 Mô hình mức trong được dùng để mô tả dữ liệu ở mức thấp nhất. Hai mô hình dữ liệu vật lý được biết rộng rãi nhất là mô hình hợp nhất (unifying model) và mô hình khung- bộ nhớ (frame-memory model ). Ngôn ngữ dữ liệu Ngôn ngữ định nghĩa dữ liệu (data definition language) là loại ngôn ngữ được sử dụng để định nghĩa cấu trúc của các thành phần trong CSDL.
Ngôn ngữ thao tác dữ liệu (data manipulation language ) là loại ngôn ngữ được sử dụng để thực hiện các thao tác như thu thập, chèn, sửa, và xóa dữ liệu. Ngôn ngữ điều khiển dữ liệu (data controlling language) là loại ngôn ngữ được sử dụng để để thực hiện các khai báo bảo mật thông tin và cấp quyền hạn khai thác CSDL cho những người sử dụng khác trong hệ thống. Kiến trúc hệ cơ sở dữ liệu Kiến trúc hệ CSDL bị ảnh hưởng nhiều bởi hệ thống máy tính cài đặt chúng. Ba loại kiến trúc phổ biến là kiến trúc khách – chủ, song song và phân tán.
- Kiến trúc khách chủ (client – server) cho phép thực hiện một số công việc trên một hệ thống các máy chủ (server), một số công việc trên các máy trạm (client). - Kiến trúc song song cho phép thực hiện cùng lúc nhiều truy vấn dữ liệu, qua đó làm tăng tốc độ các hoạt động của hệ CSDL, phản hồi các giao dịch nhanh hơn. - Kiến trúc phân tán được phát triển để quản lý dữ liệu phân tán, trên phương diện địa lý hay quản trị, trải rộng trên nhiều hệ CSDL. Lịch sử phát triển của hệ quản trị cơ sở dữ liệu Trong gần 50 năm, hệ quản trị CSDL đã trải qua nhiều giai đoạn phát triển.
Giai đoạn đầu những năm 1960 (giai đoạn tiền CSDL – hệ thống hướng tập tin). Dữ liệu được tổ chức lưu trữ trên các tập tin và được xử lý thông qua ngôn ngữ lập trình thế hệ thứ ba (ngôn ngữ bậc cao) như COBOL, BASIC. Mỗi chương trình máy tính hay ứng dụng phần mềm làm việc với dữ liệu của riêng mình. Do đó, sự trùng lặp dữ liệu, không chia sẻ, khó khăn trong việc nâng cấp là đặc điểm chung của các hệ thống hướng tập tin.
Giai đoạn này chưa có sự hiện diện của các hệ quản trị CSDL. 2 Giai đoạn 1968 – 1980 ghi nhận sự xuất hiện của hệ quản trị CSDL đầu tiên của công ty IBM mang tên IMS, trong đó sử dụng mô hình CSDL phân cấp. Bên cạnh đó, phần mềm IDMS, hệ quản trị CSDL với mô hình CSDL mạng CODASYL, cũng được sử dụng phổ biến trong giai đoạn này. Hạn chế cơ bản của các hệ quản trị CSDL này, cũng là hạn chế của hai mô hình CSDL nói trên, là người sử dụng, đội ngũ phát triển ứng dụng, phải nắm vững cấu trúc vật lý của CSDL với có thể truy xuất được thông tin.
Giai đoạn 1970 đến nay (giai đoạn CSDL quan hệ - relational database). Người đặt nền tảng cho mô hình dữ liệu quan hệ là E. Codd (1972) khi đề xuất tách tổ chức logic của CSDL khỏi các phương pháp lưu trữ vật lý. Quan điểm này cho đến nay vẫn được đánh giá là đúng đắn và nhận được sự quan tâm phát triển trong suốt thời gian qua.
Đi tiên phong trong lĩnh vực CSDL, vào đầu những năm 1980, IBM giới thiệu hệ quản trị CSDL DB2, một trong những sản phẩm cốt lõi của IBM từ khi xuất hiện cho đến nay. Sự bùng nổ của công nghệ thông tin là động lực thúc đẩy sự phát triển của hàng loạt hãng sản xuất phần mềm quản trị CSDL như Oracle, PARADOX, OS/2 Database Manager, DBase, FoxBase, FoxPro (Visual FoxPro), Sysbase, Informix,. Sự xuất hiện của mô hình clien – server trong tính toán vào đầu những năm 1990 trở thành chuẩn mực cho việc phát triển hệ thống thông tin với ngôn ngữ lập trình hướng đối tượng. Điều này thúc đẩy sự ra đời của dòng hệ quản trị CSDL hướng đối tượng (Object Database Management System – ODBMS).
Từ giữa những năm 1990, Internet ra đời và thúc đẩy thị trường ứng dụng Web kết nối CSDL tăng trưởng mạnh mẽ. Nhiều hệ quản trị CSDL mã nguồn mở xuất hiện trong giai đoạn này, tiêu biểu là MySQL và ProgreSQL. Giai đoạn 2000 đến nay (giai đoạn CSDL phi quan hệ - nonrelational database). Trong bối cảnh các ứng dụng dựa trên Web phải luôn trực tuyến, và phải hỗ trợ một số lượng lớn các hoạt động đồng thời, việc duy trì một hệ quản trị CSDL theo mô hình quan hệ là không phù hợp.
Đồng thời, người ta cho rằng quá tốn kém để vận hành một hệ quản trị CSDL đầy đủ tính năng như Oracle, SQLServer, DB2 hay MySQL chỉ để quản lý một kho dữ liệu. Tương tự, việc sử dụng SQL là quá mức cần thiết cho các yêu cầu tra cứu dữ liệu đơn giản. Kết quả là sự ra đời của mô hình dữ liệu NoSQL. Các hệ quản trị CSDL sử dụng mô hình dữ liệu NoSQL tiêu biểu là MongoDB, Apache Cassandra, và Redis.
Các chức năng của hệ quản trị cơ sở dữ liệu Hệ quản trị CSDL là một gói phần mềm có chức năng xác định, thao tác, truy xuất, quản lý toàn bộ dữ liệu trong CSDL. Các chức năng chính của hệ quản trị CSDL bao gồm: - Định nghĩa dữ liệu: Cung cấp khả năng định nghĩa dữ liệu, các cấu trúc lưu trữ và tổ chức dữ liệu cũng như mối liên hệ giữa các thành phần dữ liệu. - Truy xuất và thao tác dữ liệu: Cho phép thực hiện các thao tác truy xuất, bổ sung và cập nhật dữ liệu. - Điều khiển truy cập: Cấp phát và kiểm soát các thao tác của người sử dụng dữ liệu, đảm bảo an toàn cho dữ liệu.
- Đảm bảo toàn vẹn dữ liệu: Cung cấp các công cụ để đảm bảo tính hợp lệ và chính xác của dữ liệu trước thao tác cập nhật cũng như các lỗi của hệ thống. Cấu trúc tổng thể của hệ quản trị cơ sở dữ liệu Cấu trúc tổng thể của một hệ quản trị CSDL được phác họa trong Hình 1.1 với các thành phần sau đây: - CSDL lưu trữ: CSDL được lưu trữ tại thiết bị nhớ thứ cấp (ổ đĩa cứng) hoặc cấp 3 (Đĩa CDs, thiết bị nhớ di động, .) - Siêu dữ liệu (meta data): Dữ liệu về dữ liệu, mô tả các thành phần dữ liệu của CSDL - Bộ quản lý lưu trữ: Quản lý việc lưu trữ trực tiếp trên ổ đĩa. - Bộ xử lý truy vấn: Thực hiện điều khiển không chỉ các câu hỏi mà cả các yêu cầu thay đổi dữ liệu hay siêu dữ liệu nhằm tìm ra cách tốt nhất để thực hiện một thao tác. - Bộ quản lý giao dịch: Đảm bảo tính nguyên tố, tính nhất quá, tính biệt lập và tính duy trì xuyên suốt trong quá trình thao tác đối với dữ liệu.
- Thao tác của người dùng: Hệ quản trị CSDL đáp ứng các thao tác sau đây từ phía người sử dụng: o Truy vấn dữ liệu: hỏi đáp về dữ liệu lưu trữ, được tạo ra theo giao diện truy vấn hoặc qua giao diện chương trình ứng dụng. o Cập nhật dữ liệu: thao tác thay đổi dữ liệu như thêm, sửa, xoá dữ liệu lưu trữ, được tạo ra theo hai cách như trên. 4 o Thay đổi lược đồ: thao tác thay đổi cấu trúc logic của dữ liệu, được tạo ra bởi nhân viên thiết kế (trong quá trình phát triển ứng dụng) hoặc nhân viên quản trị (trong quá trình khai thác ứng dụng). Cấu trúc tổng thể của Hệ quản trị CSDL 1.
Các xu hướng mới về hệ quản trị cơ sở dữ liệu Các khái niệm trong quản trị CSDL hầu như không thuộc về loại thay đổi dễ dàng, do chi phí chuyển đổi giữa các phương pháp tiếp cận công nghệ sẽ áp đảo các nhà sản xuất, quản lý và thiết kế. Tuy nhiên, có một số xu hướng trong quản trị CSDL và biết cách tận dụng chúng sẽ mang lại lợi ích cho tổ chức. Sau đây là một số xu hướng hiện tại: CSDL kết nối SQL/NoSQL. Xu hướng mới nhất trong các sản phẩm CSDL là các sản phẩm không chỉ bao gồm một cấu trúc CSDL duy nhất.
Thay vào đó, CSDL kết nối SQL và NoSQL được kết hợp nhằm mang lại cho người dùng những khả năng tốt nhất được cung cấp bởi cả hai. Các sản phẩm loại này cho phép người dùng truy cập CSDL NoSQL theo cách tương tự như CSDL quan hệ. CSDL trên đám mây/nền tảng như là dịch vụ. Khi các nhà phát triển tiếp tục thúc đẩy các doanh nghiệp của họ lên đám mây, các tổ chức đang cân nhắc cẩn thận giữa sự cân bằng giữa công khai và riêng tư.
Các nhà phát triển cũng đang xác định cách kết hợp các dịch vụ đám mây với các ứng dụng và cơ sở hạ tầng hiện có. Các nhà cung cấp dịch vụ đám mây đưa ra nhiều tùy chọn cho người quản trị CSDL.