Bài giảng Đại cương về các hệ Cơ sở dữ liệu - Nguyễn Hồng Phương (ĐHBKHN)

Người đăng

Ẩn danh
53
0
0

Phí lưu trữ

30 Point

Tóm tắt

I. Tổng quan hệ cơ sở dữ liệu Nền tảng cốt lõi thời đại 4

Trong kỷ nguyên số, dữ liệu được xem là tài sản quý giá nhất. Hệ cơ sở dữ liệu (Database System) chính là công nghệ nền tảng cho phép lưu trữ, quản lý và khai thác tài sản đó một cách hiệu quả. Một hệ CSDL hoàn chỉnh không chỉ là nơi chứa dữ liệu mà là một hệ thống phức tạp bao gồm phần cứng, phần mềm và con người, phối hợp với nhau để đáp ứng nhu cầu thông tin của tổ chức. Trung tâm của hệ thống này là Hệ quản trị cơ sở dữ liệu (DBMS), một bộ phần mềm chuyên dụng hoạt động như một lớp trung gian, che giấu sự phức tạp của việc lưu trữ vật lý và cung cấp cho người dùng các công cụ mạnh mẽ để định nghĩa, thao tác và kiểm soát dữ liệu. Sự ra đời của các hệ CSDL đã tạo ra một cuộc cách mạng so với phương pháp xử lý tệp truyền thống, giải quyết các vấn đề cố hữu về dư thừa, không nhất quán và khó khăn trong truy cập dữ liệu. Hiểu rõ về đại cương các hệ cơ sở dữ liệu là yêu cầu cơ bản đối với bất kỳ ai làm việc trong lĩnh vực công nghệ thông tin, từ lập trình viên, nhà phân tích dữ liệu đến các Người quản trị CSDL (DBA).

1.1. Khái niệm CSDL và Hệ quản trị cơ sở dữ liệu DBMS là gì

Một Cơ sở dữ liệu (Database) là một tập hợp các dữ liệu có liên quan logic với nhau, được tổ chức và lưu trữ một cách có hệ thống để phục vụ cho một mục đích cụ thể. Dữ liệu này biểu diễn các khía cạnh của thế giới thực. Ví dụ, CSDL của một trường đại học chứa thông tin về sinh viên, môn học, và điểm số. Trong khi đó, Hệ quản trị cơ sở dữ liệu (DBMS) là một hệ thống phần mềm toàn diện cho phép người dùng tạo, quản lý và tương tác với CSDL. Câu hỏi DBMS là gì có thể được trả lời rằng: đó là công cụ cung cấp các chức năng cốt lõi như định nghĩa cấu trúc dữ liệu (DDL), thao tác dữ liệu (DML) như truy vấn, cập nhật, và điều khiển truy cập (DCL). Các DBMS phổ biến bao gồm MySQL, PostgreSQL, SQL ServerMongoDB. Theo Nguyễn Kim Anh (2004), CSDL là "một bộ sưu tập các dữ liệu tác nghiệp được lưu trữ và sử dụng bởi các hệ ứng dụng của một xí nghiệp".

1.2. Phân biệt rõ ràng giữa CSDL DBMS và Hệ CSDL

Để tránh nhầm lẫn, cần phân biệt rõ ba khái niệm này. Cơ sở dữ liệu (CSDL) chỉ là tập hợp dữ liệu được lưu trữ. Hệ quản trị cơ sở dữ liệu (DBMS) là phần mềm dùng để quản lý CSDL đó. Còn Hệ cơ sở dữ liệu là một hệ thống hoàn chỉnh bao gồm bốn thành phần chính: (1) CSDL, (2) Hệ quản trị CSDL (DBMS), (3) Phần mềm ứng dụng được xây dựng trên DBMS, và (4) Người dùng (bao gồm người dùng cuối, lập trình viên, và người quản trị). Ví dụ, hệ thống quản lý đào tạo của một trường đại học là một hệ CSDL. Nó bao gồm dữ liệu sinh viên (CSDL), phần mềm Oracle hoặc SQL Server (DBMS), các ứng dụng web/desktop cho sinh viên và giáo vụ (phần mềm ứng dụng), và chính sinh viên, giáo vụ là người dùng. Sự kết hợp này tạo ra một môi trường quản lý thông tin tập trung, hiệu quả và an toàn.

II. Thách thức của hệ tệp truyền thống Lý do hệ CSDL ra đời

Trước khi các hệ cơ sở dữ liệu hiện đại ra đời, việc lưu trữ và xử lý dữ liệu chủ yếu dựa vào các hệ thống tệp truyền thống. Trong mô hình này, mỗi chương trình ứng dụng tự định nghĩa và quản lý các tệp dữ liệu của riêng nó. Ví dụ, phòng kế toán có tệp nhanvien_ketoan.dat trong khi phòng nhân sự lại có tệp nhanvien_nhansu.dat. Cách tiếp cận phân mảnh và thiếu kế hoạch tổng thể này đã bộc lộ nhiều hạn chế nghiêm trọng khi quy mô dữ liệu và độ phức tạp của ứng dụng tăng lên. Những vấn đề này không chỉ làm giảm hiệu quả hoạt động mà còn gây ra rủi ro lớn về tính chính xác và an toàn của dữ liệu. Chính những thách thức này đã thúc đẩy sự phát triển của các Hệ quản trị cơ sở dữ liệu (DBMS), cung cấp một giải pháp tập trung, nhất quán và hiệu quả hơn để quản lý tài nguyên thông tin của một tổ chức. Việc chuyển đổi từ hệ tệp sang hệ CSDL là một bước tiến tất yếu trong quá trình tin học hóa doanh nghiệp.

2.1. Vấn đề dư thừa và không nhất quán dữ liệu

Hạn chế lớn nhất của hệ thống tệp là sự dư thừa và không nhất quán dữ liệu. Khi mỗi ứng dụng lưu trữ dữ liệu riêng, thông tin về cùng một thực thể (ví dụ: một nhân viên) có thể bị lặp lại ở nhiều tệp khác nhau. Điều này không chỉ gây lãng phí không gian lưu trữ mà còn dẫn đến tình trạng không nhất quán. Khi thông tin của nhân viên thay đổi (ví dụ: địa chỉ), việc cập nhật phải được thực hiện trên tất cả các tệp liên quan. Nếu một tệp bị bỏ sót, dữ liệu sẽ trở nên mâu thuẫn. Hệ quản trị CSDL giải quyết vấn đề này bằng cách lưu trữ mỗi mẩu thông tin một lần duy nhất tại một nơi tập trung, đảm bảo tính nhất quán trên toàn hệ thống.

2.2. Khó khăn trong truy nhập và cô lập dữ liệu

Trong hệ thống tệp, việc truy xuất thông tin phức tạp đòi hỏi phải viết một chương trình ứng dụng mới. Ví dụ, để tìm "danh sách sinh viên K47 tốt nghiệp loại giỏi", người lập trình phải tạo ra một chương trình riêng để đọc và xử lý nhiều tệp khác nhau. Dữ liệu bị "cô lập" trong các tệp riêng lẻ, khiến việc chia sẻ và kết hợp thông tin giữa các phòng ban trở nên cực kỳ khó khăn. Các hệ CSDL cung cấp các ngôn ngữ truy vấn dữ liệu bậc cao như SQL (Structured Query Language), cho phép người dùng (kể cả những người không phải lập trình viên) có thể dễ dàng truy xuất thông tin phức tạp một cách linh hoạt và hiệu quả mà không cần viết mã chương trình.

2.3. Ràng buộc toàn vẹn và các vấn đề an toàn bảo mật

Các hệ thống tệp truyền thống thiếu cơ chế để thực thi các ràng buộc toàn vẹn dữ liệu. Ví dụ, không có cách nào dễ dàng để đảm bảo rằng điểm của sinh viên phải nằm trong khoảng từ 0 đến 10. Các quy tắc này phải được lập trình cứng trong từng ứng dụng, dẫn đến sự trùng lặp và khó bảo trì. Vấn đề an toàn cũng là một thách thức lớn. Việc kiểm soát quyền truy cập vào dữ liệu rất khó khăn và thường chỉ dừng lại ở mức hệ điều hành. Ngược lại, một DBMS cung cấp các cơ chế mạnh mẽ để định nghĩa và thực thi các ràng buộc toàn vẹn, cũng như quản lý quyền truy cập chi tiết cho từng người dùng, đảm bảo dữ liệu luôn chính xác và an toàn.

III. Khám phá kiến trúc hệ cơ sở dữ liệu 3 mức trừu tượng hóa

Một trong những ưu điểm vượt trội của hệ cơ sở dữ liệu so với hệ tệp là tính độc lập dữ liệu, đạt được thông qua một kiến trúc nhiều lớp. Kiến trúc hệ cơ sở dữ liệu tiêu chuẩn thường được mô tả qua ba mức trừu tượng hóa, giúp tách biệt cách người dùng nhìn nhận dữ liệu khỏi cách dữ liệu được lưu trữ vật lý trên máy tính. Kiến trúc này không chỉ giúp đơn giản hóa việc phát triển ứng dụng mà còn cho phép các Người quản trị CSDL (DBA) có thể thay đổi cấu trúc lưu trữ bên trong mà không ảnh hưởng đến các chương trình ứng dụng đang hoạt động. Sự phân chia này là nền tảng cho tính linh hoạt và khả năng bảo trì của các hệ thống thông tin hiện đại. Việc nắm vững kiến trúc này là điều cần thiết để hiểu cách một Hệ quản trị cơ sở dữ liệu hoạt động và tối ưu hóa hiệu năng của nó.

3.1. Phân tích kiến trúc 3 mức Vật lý Khái niệm Khung nhìn

Kiến trúc hệ cơ sở dữ liệu ba mức bao gồm: Mức vật lý (trong), Mức khái niệm (logic), và Mức khung nhìn (ngoài). Mức vật lý mô tả cách dữ liệu thực sự được lưu trữ trên các thiết bị như đĩa cứng, bao gồm các cấu trúc file, chỉ mục (index). Mức này được che giấu khỏi người dùng thông thường. Mức khái niệm mô tả toàn bộ cấu trúc logic của CSDL, bao gồm các thực thể, thuộc tính và mối quan hệ giữa chúng, độc lập với cách lưu trữ vật lý. Đây là cấp độ làm việc của các nhà thiết kế CSDL. Cuối cùng, Mức khung nhìn (view) mô tả một phần của CSDL mà một nhóm người dùng cụ thể quan tâm. Mỗi khung nhìn có thể che giấu một số dữ liệu và chỉ hiển thị những gì cần thiết, giúp tăng cường bảo mật và đơn giản hóa tương tác.

3.2. Ngôn ngữ trong hệ CSDL DDL DML và DCL

Để tương tác với các mức trong kiến trúc, Hệ quản trị CSDL cung cấp một tập hợp các ngôn ngữ chuyên dụng. Ngôn ngữ Định nghĩa Dữ liệu (Data Definition Language - DDL) được sử dụng để định nghĩa lược đồ ở mức khái niệm, ví dụ như tạo bảng, định nghĩa các cột và các ràng buộc toàn vẹn. Ngôn ngữ Thao tác Dữ liệu (Data Manipulation Language - DML) được dùng để truy vấn và cập nhật dữ liệu, bao gồm các lệnh như chèn, xóa, sửa. SQL (Structured Query Language) là ngôn ngữ tích hợp cả DDL và DML. Ngoài ra, còn có Ngôn ngữ Điều khiển Dữ liệu (Data Control Language - DCL) dùng để quản lý quyền truy cập và các vấn đề bảo mật, đảm bảo chỉ những người dùng được ủy quyền mới có thể thực hiện các thao tác nhất định trên dữ liệu.

IV. Hướng dẫn chọn mô hình dữ liệu SQL so với NoSQL phổ biến

Lựa chọn mô hình dữ liệu phù hợp là một trong những quyết định quan trọng nhất khi thiết kế một hệ cơ sở dữ liệu. Mô hình dữ liệu là một tập hợp các khái niệm dùng để mô tả cấu trúc, ngữ nghĩa và các mối quan hệ của dữ liệu. Lịch sử phát triển CSDL đã chứng kiến sự ra đời của nhiều mô hình khác nhau, từ mô hình phân cấp, mô hình mạng cho đến mô hình quan hệ. Trong nhiều thập kỷ, cơ sở dữ liệu quan hệ (RDBMS) với ngôn ngữ SQL đã thống trị tuyệt đối. Tuy nhiên, với sự bùng nổ của Big Data và các ứng dụng web quy mô lớn, các hệ thống NoSQL với mô hình dữ liệu linh hoạt hơn đã nổi lên như một giải pháp thay thế mạnh mẽ. Việc hiểu rõ ưu và nhược điểm của từng mô hình sẽ giúp lựa chọn công nghệ phù hợp nhất cho bài toán cụ thể.

4.1. Mô hình cơ sở dữ liệu quan hệ RDBMS và Ngôn ngữ SQL

Cơ sở dữ liệu quan hệ (RDBMS), do E.F. Codd đề xuất vào năm 1970, tổ chức dữ liệu dưới dạng các bảng (quan hệ) gồm các hàng (bộ) và cột (thuộc tính). Mô hình này dựa trên nền tảng lý thuyết tập hợp vững chắc, giúp đảm bảo tính nhất quán và toàn vẹn dữ liệu thông qua các khái niệm như khóa chính, khóa ngoại và chuẩn hóa dữ liệu. SQL (Structured Query Language) là ngôn ngữ tiêu chuẩn để tương tác với RDBMS. Sức mạnh của RDBMS nằm ở khả năng xử lý các giao dịch phức tạp và đảm bảo các tính chất ACID. Các hệ thống như MySQL, PostgreSQL, SQL Server là những ví dụ điển hình của RDBMS.

4.2. Mô hình thực thể kết hợp ER Công cụ thiết kế CSDL

Trước khi triển khai CSDL quan hệ, các nhà thiết kế thường sử dụng Mô hình thực thể kết hợp (ER) để mô hình hóa dữ liệu ở mức khái niệm. Mô hình ER (Entity-Relationship) mô tả thế giới thực thông qua các thực thể (entities), thuộc tính (attributes) và các mối liên kết (relationships) giữa chúng. Sơ đồ ER cung cấp một cái nhìn trực quan, dễ hiểu về cấu trúc dữ liệu và các quy tắc nghiệp vụ. Sau khi hoàn thành, sơ đồ ER có thể được ánh xạ một cách hệ thống sang lược đồ của cơ sở dữ liệu quan hệ, tạo thành các bảng, cột và các khóa ngoại tương ứng. Đây là một công cụ thiết kế không thể thiếu trong quá trình xây dựng các hệ thống thông tin phức tạp.

4.3. Sự trỗi dậy của NoSQL và các hệ thống CSDL hiện đại

NoSQL (thường được hiểu là "Not Only SQL") là một thuật ngữ bao trùm nhiều loại CSDL không tuân theo mô hình quan hệ truyền thống. Các hệ thống NoSQL được thiết kế để giải quyết các vấn đề về hiệu năng, khả năng mở rộng và tính linh hoạt mà RDBMS gặp phải khi xử lý Big Data. Có nhiều loại CSDL NoSQL, bao gồm CSDL tài liệu (document stores) như MongoDB, CSDL cột rộng (wide-column stores), CSDL key-value, và CSDL đồ thị (graph databases). Ưu điểm của NoSQL là lược đồ linh hoạt, khả năng mở rộng theo chiều ngang dễ dàng và hiệu năng cao cho các tác vụ đọc/ghi lớn. Tuy nhiên, chúng thường đánh đổi bằng việc nới lỏng các tính chất ACID để đạt được hiệu suất.

V. TOP hệ quản trị CSDL phổ biến và ứng dụng trong thực tiễn

Lý thuyết về hệ cơ sở dữ liệu được hiện thực hóa qua các Hệ quản trị cơ sở dữ liệu (DBMS) cụ thể. Thị trường hiện nay cung cấp một loạt các lựa chọn, từ các hệ thống mã nguồn mở miễn phí đến các giải pháp thương mại mạnh mẽ, phục vụ cho các nhu cầu đa dạng. Việc lựa chọn một DBMS phù hợp phụ thuộc vào nhiều yếu tố như quy mô ứng dụng, yêu cầu về hiệu năng, tính nhất quán của dữ liệu và ngân sách. Các hệ thống RDBMS như MySQL hay SQL Server vẫn là lựa chọn hàng đầu cho các ứng dụng doanh nghiệp truyền thống, thương mại điện tử và các hệ thống đòi hỏi tính toàn vẹn dữ liệu cao. Trong khi đó, các hệ thống NoSQL như MongoDB lại chiếm ưu thế trong các lĩnh vực như mạng xã hội, IoT và phân tích Big Data, nơi tốc độ và khả năng mở rộng là ưu tiên hàng đầu. Hiểu rõ các khái niệm cốt lõi như giao dịch (transaction)tính chất ACID là chìa khóa để khai thác tối đa sức mạnh của các hệ thống này.

5.1. Các hệ CSDL quan hệ hàng đầu MySQL PostgreSQL SQL Server

MySQL là hệ quản trị CSDL quan hệ mã nguồn mở phổ biến nhất thế giới, nổi tiếng với tốc độ, sự ổn định và dễ sử dụng, là lựa chọn ưa thích cho các ứng dụng web. PostgreSQL cũng là một hệ CSDL mã nguồn mở mạnh mẽ, được biết đến với khả năng tuân thủ chuẩn SQL nghiêm ngặt và hỗ trợ các kiểu dữ liệu phức tạp. SQL Server của Microsoft là một giải pháp thương mại toàn diện, tích hợp sâu với hệ sinh thái Windows và cung cấp các công cụ phân tích kinh doanh mạnh mẽ. Cả ba hệ thống này đều là những đại diện tiêu biểu cho sức mạnh và sự trưởng thành của cơ sở dữ liệu quan hệ.

5.2. MongoDB Đại diện tiêu biểu cho hệ CSDL NoSQL

MongoDB là một trong những hệ quản trị CSDL NoSQL dạng tài liệu (document-oriented) hàng đầu. Thay vì lưu dữ liệu trong các bảng và hàng, MongoDB lưu trữ dữ liệu dưới dạng các tài liệu JSON-like (gọi là BSON), cho phép cấu trúc dữ liệu linh hoạt và phân cấp. Điều này giúp việc lập trình và phát triển ứng dụng trở nên nhanh chóng hơn, đặc biệt với các ngôn ngữ lập trình hướng đối tượng. MongoDB có khả năng mở rộng theo chiều ngang rất tốt, phù hợp cho các ứng dụng cần xử lý lượng dữ liệu lớn và tốc độ truy cập cao.

5.3. Giao dịch Transaction và các tính chất ACID quan trọng

Một giao dịch (Transaction) là một tập hợp các thao tác được thực hiện trên CSDL và được xem như một đơn vị công việc duy nhất, không thể chia cắt. Một giao dịch hoặc phải thành công hoàn toàn, hoặc phải thất bại hoàn toàn (không có trạng thái lưng chừng). Để đảm bảo tính toàn vẹn dữ liệu trong môi trường nhiều người dùng, các giao dịch trong các hệ RDBMS phải tuân thủ bốn tính chất ACID: Tính nguyên tử (Atomicity), Tính nhất quán (Consistency), Tính cô lập (Isolation), và Tính bền vững (Durability). Các tính chất này đảm bảo rằng ngay cả khi có lỗi hệ thống hoặc nhiều giao dịch chạy đồng thời, CSDL vẫn luôn ở trạng thái chính xác và hợp lệ.

VI. Tương lai của hệ CSDL Vai trò của DBA và thách thức Big Data

Lĩnh vực hệ cơ sở dữ liệu đang không ngừng phát triển để đáp ứng những thách thức mới, đặc biệt là sự bùng nổ của Big Data. Khối lượng dữ liệu khổng lồ, đa dạng và được tạo ra với tốc độ chóng mặt đòi hỏi các kiến trúc lưu trữ và xử lý mới, vượt ra ngoài khả năng của các hệ thống truyền thống. Trong bối cảnh này, vai trò của Người quản trị CSDL (DBA) ngày càng trở nên quan trọng hơn. Họ không chỉ chịu trách nhiệm bảo trì, sao lưu, phục hồi mà còn phải thiết kế, tối ưu hóa và đảm bảo an ninh cho các hệ thống dữ liệu ngày càng phức tạp. Tương lai của các hệ CSDL sẽ là sự kết hợp linh hoạt giữa các công nghệ SQLNoSQL (được gọi là hệ thống Polyglot Persistence), cho phép các tổ chức lựa chọn công cụ tốt nhất cho từng loại dữ liệu và bài toán cụ thể.

6.1. Vai trò không thể thiếu của Người quản trị CSDL DBA

Người quản trị CSDL (Database Administrator - DBA) là người chịu trách nhiệm toàn diện về một hệ cơ sở dữ liệu. Nhiệm vụ của họ bao gồm thiết kế và triển khai CSDL, cấp phát quyền truy cập, theo dõi hiệu năng và tối ưu hóa các câu truy vấn, lên kế hoạch sao lưu và phục hồi dữ liệu khi có sự cố, cũng như đảm bảo an toàn và bảo mật cho toàn bộ hệ thống. Trong môi trường dữ liệu phức tạp hiện nay, vai trò của DBA đòi hỏi kiến thức sâu rộng về nhiều loại DBMS khác nhau và các kỹ năng giải quyết vấn đề xuất sắc.

6.2. Xu hướng phát triển trong kỷ nguyên Big Data

Kỷ nguyên Big Data đang định hình lại tương lai của các hệ CSDL. Các xu hướng chính bao gồm sự phát triển của các hệ CSDL phân tán có khả năng mở rộng đến hàng ngàn máy chủ, các hệ thống xử lý dữ liệu thời gian thực (real-time data processing), và sự tích hợp ngày càng sâu giữa CSDL và các công cụ học máy (Machine Learning). Các công nghệ như CSDL trên bộ nhớ (In-memory databases) và NewSQL (hệ thống kết hợp khả năng mở rộng của NoSQL và các đảm bảo giao dịch của SQL) cũng đang ngày càng trở nên phổ biến để đáp ứng yêu cầu về tốc độ và quy mô.

17/07/2025