Top 6 # Ví Dụ Về Chức Năng Của Hệ Quản Trị Cơ Sở Dữ Liệu Xem Nhiều Nhất, Mới Nhất 1/2023 # Top Trend | Theindochinaproject.com

Cơ Sở Dữ Liệu Và Hệ Quản Trị Cơ Sở Dữ Liệu

Cơ Sở Dữ Liệu Là Gì

Cơ sở dữ liệu là tập hợp các dữ liệu được tổ chức theo một cấu trúc nhất định để có thể dễ dàng quản lý (đọc, thêm, xóa, sửa dữ liệu).

Ví dụ: Một danh sách sinh viên của một trường với 5 trường dữ liệu là họ và tên sinh viên, năm sinh, mã số sinh viên, lớp học và khóa học được coi là một cơ sở dữ liệu.

Sự khác biệt cơ bản giữa cơ sở dữ liệu và dữ liệu thông thường đó là tính cấu trúc sắp xếp có hệ thống. Dữ liệu không thôi có thể là bất cứ thông tin nào chưa được sắp xếp hay cấu trúc theo một trật tự cụ thể ví dụ văn bản trên một file được coi là dữ liệu, hay dữ liệu trên một video hay tập tin.

Ngược lại với cữ liệu, cơ sở dữ liệu bao gồm dữ liệu dược cấu trúc một cách rõ ràng. Một tập hợp dữ liệu không có cấu trúc hệ thống nhất định không được coi là một cơ sở dữ liệu.

Hệ Quản Trị Cơ Sở Dữ Liệu Là Gì

Bất cứ cơ sở dữ liệu nào sau khi được tạo ra cũng cần được lưu trữ lại. Quá trình lưu cơ sở dữ liệu này được thực hiện qua việc sử dụng hệ quản trị cơ sở dữ liệu. Hệ quản trị cơ sở dữ liệu là chương trình phần mềm giúp thực hiện việc lưu trữ cơ sở dữ liệu. Hệ quản trị trị cơ sở dữ liệu khi lưu trữ cơ sở dữ liệu cần đảm bảo được được tính cấu trúc trong cơ sở dữ liệu và ngoài ra cần phải hỗ trợ việc đọc, chỉnh sửa, thêm và xóa dữ liệu trên cơ sở dữ liệu một cách dễ dàng.

Như ở ví dụ trên chúng ta có thể lưu danh sách sinh viên này trên một bảng tính Excel hoặc một tập tin CSV. (CSV là viết tắt của cụm từ comma separated vlue, là một loại cấu trúc tập tin đơn giản sử dụng dấu phảy (,) để phân biệt giữa các trường dữ liệu). Tuy nhiên cả Excel và CSV không được coi là hệ quản trị cơ sở dữ liệu vì chúng không hỗ trợ việc đọc, xóa và chỉnh sửa thông tin một cách dễ dàng. Lấy ví dụ nếu bạn muốn đếm xem có bao nhiêu sinh viên có ngày sinh nhật trước ngày 20/09/1988 thì việc này rất khó thực hiện trên cả tập tin Excel và CSV.

Các hệ quản trị cơ sở dữ liệu phổ biến hiện này bao gồm: Microsoft Access, MySQL, Oracle, PostgreSQL, SQL Server…

Việc sử dụng các phần mềm (hệ quản trị cơ sở dữ liệu) này sẽ giúp các nhà quản trị hệ thống dễ dàng thực hiện các thao tác như tìm kiếm, lọc, xóa, chỉnh sửa hay tạo mới dữ liệu trên cơ sở dữ liệu. Để làm được điều này trên các hệ quản trị cơ sở dữ liệu các nhà quản trị hệ thống thường sử dụng ngôn ngữ truy vấn mang tính cấu trúc: Structured Query Language hay SQL.

Hệ Quản Trị Cơ Sở Dữ Liệu

MỤC ĐÍCH

Chương này trình bày một cái nhìn bao quát về cơ sở dữ liệu (CSDL/DB), về hệ quản trị cơ sở dữ liệu (HQTCSDL/DBMS) và về hệ cơ sở dữ liệu (HCSDL/DBS). Các đòi hỏi khi xây dựng một HQTCSDL đó cũng chính là những chức năng mà một HCSDL cần phải có. Một khái niệm quan trọng là khái niệm giao dịch (Transaction). Các tính chất một giao dịch phải có để đảm bảo một HQTCSDL, được xây dựng trên HCSDL tương ứng, trong suốt quá trình hoạt động sẽ luôn cho một CSDL tin cậy (dữ liệu luôn nhất quán). Quản trị giao dịch nhằm đảm bảo mọi giao dịch trong hệ thống có các tính chất mà một giao dịch phải có. Một điều cần chú ý là trong các tính chất của một giao dịch, tính chất nhất quán trước hết phải được đảm bảo bởi người lập trình-người viết ra giao dịch.

YÊU CẦU

Hiểu các khái niệm.

Hiểu các vấn đề đặt ra khi xây dựng một HQTCSDL: thiết kế CSDL, đảm bảo tính nhất quán của CSDL trong suốt cuộc sống của nó, nền tảng phần cứng trên đó một HQTCSDL được xây dựng.

Hiểu cấu trúc hệ thống tổng thể

Hiểu vai trò của các người sử dụng hệ thống.

MỘT SỐ KHÁI NIỆM

Một hệ quản trị cơ sở dữ liệu (HQTCSDL/ DBMS: DataBase Management System) là một hệ thống gồm một CSDL và các thao tác trên CSDL đó, được thiết kế trên một nền tảng phần cứng, phần mềm và với một kiến trúc nhất định.

Một hệ cơ sở dữ liệu (HCSDL/ DBS: DataBase System) là một phần mềm cho phép xây dựng một HQTCSDL.

Một số điểm bất lợi chính của việc lưu giữ thông tin có tổ chức trong hệ thống xử lý file thông thường:

Dư thừa dữ liệu và tính không nhất quán (Data redundancy and inconsistency): Do các file và các trình ứng dụng được tạo ra bởi các người lập trình khác nhau, nên các file có định dạng khác nhau, các chương trình được viết trong các ngôn ngữ lập trình khác nhau, cùng một thông tin có thể được lưu giữ trong các file khác nhau. Tính không thống nhất và dư thừa này sẽ làm tăng chi phí truy xuất và lưu trữ, hơn nũa, nó sẽ dẫn đến tính không nhất quán của dữ liệu: các bản sao của cùng một dữ liệu có thể không nhất quán.

Khó khăn trong việc truy xuất dữ liệu: Môi trường của hệ thống xử lý file thông thường không cung cấp các công cụ cho phép truy xuất thông tin một cách hiệu quả và thuận lợi.

Các vấn đề về tính nguyên tử (Atomicity problems): Tính nguyên tử của một hoạt động (giao dịch) là: hoặc nó được hoàn tất trọn vẹn hoặc không có gì cả. Điều này có nghĩa là một hoạt động (giao dịch) chỉ làm thay đổi các dữ liệu bền vững khi nó đã hoàn tất (kết thúc thành công) nếu không, giao dịch không để lại một dấu vết nào trên CSDL. Trong hệ thống xử lý file thông thường khó đảm bảo được tính chất này.

Tính bất thường trong truy xuất cạnh tranh: Một hệ thống cho phép nhiều người sử dụng cập nhật dữ liệu đồng thời, có thể dẫn đến kết quả là dữ liệu không nhất quán. Điều này đòi hỏi một sự giám sát. Hệ thống xử lý file thông thường không cung cấp chức năng này.

Vấn đề an toàn (Security problems): một người sử dụng hệ cơ sở dữ liệu không cần thiết và cũng không có quyền truy xuất tất cả các dữ liệu. Vấn đề này đòi hỏi hệ thống phải đảm bảo được tính phân quyền, chống truy xuất trái phép …

Các bất lợi nêu trên đã gợi mở sự phát triển các DBMS. Phần sau của giáo trình sẽ đề cập đến các quan niệm và các thuật toán được sử dụng để phát triển một hệ cơ sở dữ liệu nhằm giải quyết các vấn đề nêu trên. Một số khái niệm

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 cơ sở dữ liệu. 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ý ( Physical level ): Mức thấp nhất của sự trừu tượng, mô tả dữ liệu hiện được lưu trữ thế nào. Ở mức này, cấu trúc dữ liệu mức thấp, phức tạp được mô tả chi tiết.

Mức luận lý ( Logical level ): Mức kế cao hơn về sự trừu tượng, mô tả dữ liệu gì được lưu trữ trong cơ sở dữ liệu và các mối quan hệ gì giữa các dữ liệu này. Mức logic của sự trừu tượng được dùng bởi các người quản trị cơ sở dữ liệu.

Mức view chúng tôi 1view 2view n mức luận lýmức vật lý

Figure 1

Thể hiện và sơ đồ (instances and schemas): Tập hợp các thông tin được lưu trữ trong cơ sở dữ liệu tại một thời điểm được gọi là một thể hiện (instance) của cơ sở dữ liệu. Thiết kế tổng thể của cơ sở dữ liệu được gọi là sơ đồ (schema).

Một hệ cơ sở dữ liệu có một vài sơ đồ, được phân tương ứng với các mức trừu tượng. ở mức thấp nhất là sơ đồ vật lý (physical schema), ở mức trung gian là sơ đồ luận lý (logical schema), ở mức cao nhất là sơ đồ con (subschema). Nói chung một hệ cơ sở dữ liệu hỗ trợ một sơ đồ vật lý, một sơ đồ luận lý và một vài sơ đồ con.

Khả năng sửa đổi một định nghĩa ở một mức không ảnh hưởng một định nghĩa sơ đồ ở mức cao hơn được gọi là sự độc lập dữ liệu (data independence). Có hai mức độc lập dữ liệu:

Độc lập dữ liệu vật lý (Physical data independence) là khả năng sửa đổi sơ đồ vật lý không làm cho các chương trình ứng dụng phải viết lại. Các sửa đổi ở mức vật lý là cần thiết để cải thiện hiệu năng.

Độc lập dữ liệu luận lý (Logical data independence) là khả năng sửa đổi sơ đồ luận lý không làm cho các chương trình ứng dụng phải viết lại. Các sửa đổi ở mức luận lý là cần thiết khi cấu trúc luận lý của cơ sở dữ liệu bị thay thế.

Mô hình dữ liệu vật lý đượ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ìnhhợp nhất (unifying model) và mô hình khung-bộ nhớ ( frame-memory model ).

Một hệ cơ sở dữ liệu cung cấp hai kiểu ngôn ngữ khác nhau: một để xác định sơ đồ cơ sở dữ liệu, một để biểu diễn các vấn tin cơ sở dữ liệu và cập nhật.

Ngôn ngữ định nghĩa dữ liệu (Data Definition Language: DDL) cho phép định nghĩa sơ đồ cơ sở dữ liệu. Kết quả biên dịch các lệnh của DDL là tập hợp các bảng được lưu trữ trong một file đặc biệt được gọi là tự điển dữ liệu (data dictionary) hay thư mục dữ liệu (data directory). Tự điển dữ liệu là một file chứa metadata. File này được tra cứu trước khi dữ liệu hiện hành được đọc hay sửa đổi. Cấu trúc lưu trữ và phương pháp truy cập được sử dụng bởi hệ cơ sở dữ liệu được xác định bởi một tập hợp các định nghĩa trong một kiểu đặc biệt của DDL được gọi là ngôn ngữ định nghĩa và lưu trữ dữ liệu (data storage and definition language). Kết quả biên dịch của các định nghĩa này là một tập hợp các chỉ thị xác định sự thực hiện chi tiết của các sơ đồ cơ sở dữ liệu (thường được che dấu).

Thông thường, một số thao tác trên cơ sở dữ liệu tạo thành một đơn vị logic công việc. Ta hãy xét ví dụ chuyển khoản, trong đó một số tiền x được chuyển từ tài khoản A ( A:=A-x ) sang một tài khoản B ( B:=B+x ). Một yếu tố cần thiết là cả hai thao tác này hoặc cùng xảy ra hoặc không hoạt động nào xảy ra cả. Việc chuyển khoản phải xảy ra trong tính toàn thể của nó hoặc không. Đòi hỏi toàn thể-hoặc-không này được gọi là tính nguyên tử (atomicity). Một yếu tố cần thiết khác là sự thực hiện việc chuyển khoản bảo tồn tính nhất quán của cơ sở dữ liệu: giá trị của tổng A + B phải được bảo tồn. Đòi hỏi về tính chính xác này được gọi là tính nhất quán (consistency). Cuối cùng, sau khi thực hiện thành công hoạt động chuyển khoản, các giá trị của các tài khoản A và B phải bền vững cho dù có thể có sự cố hệ thống. Đòi hỏi về tính bền vững này được gọi là tính lâu bền (durability).

Một giao dịch là một tập các hoạt động thực hiện chỉ một chức năng logic trong một ứng dụng cơ sở dữ liệu. Mỗi giao dịch là một đơn vị mang cả tính nguyên tử lẫn tính nhất quán. Như vậy, các giao dịch phải không được vi phạm bất kỳ ràng buộc nhất quán nào: Nếu cơ sở dữ liệu là nhất quán khi một giao dịch khởi động thì nó cũng phải là nhất quán khi giao dịch kết thúc thành công. Tuy nhiên, trong khi đang thực hiện giao dịch, phải cho phép sự không nhất quán tạm thời. Sự không nhất quán tạm thời này tuy là cần thiết nhưng lại có thể dẫn đến các khó khăn nếu xảy ra sự cố.

Trách nhiệm của người lập trình là xác định đúng đắn các giao dịch sao cho mỗi một bảo tồn tính nhất quán của cơ sở dữ liệu.

Đảm bảo tính nguyên tử và tính lâu bền là trách nhiệm của hệ cơ sở dữ liệu nói chung và của thành phần quản trị giao dịch ( transaction-management component ) nói riêng. Nếu không có sự cố, tất cả giao dịch hoàn tất thành công và tính nguyên tử được hoàn thành dễ dàng. Tuy nhiên, do sự hiện diện của các sự cố, một giao dich có thể không hoàn tất thành công sự thực hiện của nó. Nếu tính nguyên tử được đảm bảo, một giao dịch thất bại không gây hiệu quả đến trạng thái của cơ sở dữ liệu. Như vậy, cơ sở dữ liệu phải được hoàn lại trạng thái của nó trước khi giao dịch bắt đầu. Hệ cơ sở dữ liệu phải có trách nhiệm phát hiện sự cố hệ thống và trả lại cơ sở dữ liệu về trạng thái trước khi xảy ra sự cố.

Khi một số giao dịch cạnh tranh cập nhật cơ sở dữ liệu, tính nhất quán của dữ liệu có thể không được bảo tồn, ngay cả khi mỗi giao dịch là chính xác. Bộ quản trị điều khiển cạnh tranh (concurency-control manager) có trách nhiệm điều khiển các trao đổi giữa các giao dịch cạnh tranh để đảm bảo tính thống nhất của CSDL.

Các CSDL đòi hỏi một khối lượng lớn không gian lưu trữ, có thể lên đến nhiều terabytes ( 1 terabyte=10 3 Gigabytes=10 6 Megabytes ). Các thông tin phải được lưu trữ trên lưu trữ ngoài (đĩa). Dữ liệu được di chuyển giữa lưu trữ đĩa và bộ nhớ chính khi cần thiết. Do việc di chuyển dữ liệu từ và lên đĩa tương đối chậm so với tốc độ của đơn vị xử lý trung tâm, điều này ép buộc hệ CSDL phải cấu trúc dữ liệu sao cho tối ưu hóa nhu cầu di chuyển dữ liệu giữa đĩa và bộ nhớ chính.

Mục đích của một hệ CSDL là làm đơn giản và dễ dàng việc truy xuất dữ liệu. Người sử dụng hệ thống có thể không cần quan tâm đến chi tiết vật lý của sự thực thi hệ thống. Phần lớn họ chỉ quan đến hiệu năng của hệ thống (thời gian trả lời một câu vấn tin …).

Bộ quản trị lưu trữ ( storage manager ) là một module chương trình cung cấp giao diện giữa dữ liệu mức thấp được lưu trữ trong CSDL với các chương trình ứng dụng và các câu vấn tin được đệ trình cho hệ thống. Bộ quản trị lưu trữ có trách nhiệm trao đổi với bộ quản trị file (file manager). Dữ liệu thô được lưu trữ trên đĩa sử dụng hệ thống file (file system), hệ thống này thường được cung cấp bởi hệ điều hành. Bộ quản trị lưu trữ dịch các câu lệnh DML thành các lệnh của hệ thống file mức thấp. Như vậy, bộ quản trị lưu trữ có nhiệm vụ lưu trữ, tìm lại và cập nhật dữ liệu trong CSDL.

Một trong các lý do chính đối với việc sử dụng DBMS là có sự điều khiển trung tâm cho cả dữ liệu lẫn các chương trình truy cập các dữ liệu này. Người điều khiển trung tâm trên toàn hệ thống như vậy gọi là nhà quản trị cơ sở dữ liệu (DataBase Administrator – DBA). Các chức năng của DBA như sau:

Định nghĩa sơ đồ: DBA tạo ra sơ đồ CSDL gốc bằng cách viết một tập các định nghĩa mà nó sẽ được dịch bởi trình biên dịch DDL thành một tập các bảng được lưu trữ thường trực trong tự điển dữ liệu.

Định nghĩa cấu trúc lưu trữ và phương pháp truy xuất: DBA tạo ra một cấu trúc lưu trữ thích hợp và các phương pháp truy xuất bằng cách viết một tập hợp các định nghĩa mà nó sẽ được dịch bởi trình biên dịch lưu trữ dữ liệu và ngôn ngữ định nghĩa dữ liệu.

Sửa đổi sơ đồ và tổ chức vật lý

Cấp quyền truy xuất dữ liệu: Việc cấp các dạng quyền truy cập khác nhau cho phép DBA điều hoà những phần của CSDL mà nhiều người có thể truy xuất. Thông tin về quyền được lưu giữ trong một cấu trúc hệ thống đặc biệt, nó được tham khảo bởi hệ CSDL mỗi khi có sự truy xuất dữ liệu của hệ thống.

Đặc tả ràng buộc toàn vẹn ( integrity-contraint ): Các giá trị dữ liệu được lưu trữ trong CSDL phải thoả mãn một số các ràng buộc nhất quán nhất định. Ví dụ số giờ làm việc của một nhân viên trong một tuần không thể vượt quá một giới hạn 80 giờ chẳng hạn. Một ràng buộc như vậy phải được đặc tả một cách tường minh bởi DBA. Các ràng buộc toàn vẹn được lưu giữ trong một cấu trúc hệ thống đặc biệt được tham khảo bởi hệ CSDL mỗi khi có sự cập nhật dữ liệu.

Mục đích đầu tiên của hệ CSDL là cung cấp một môi trường để tìm lại thông tin và lưu thông tin trong CSDL. Các người sử dụng cơ sở dữ liệu được phân thành bốn nhóm tuỳ theo cách thức họ trao đổi với hệ thống.

Các người lập trình ứng dụng: Là nhà chuyên môn máy tính người trao đổi với hệ thống thông qua các lời gọi DML được nhúng trong một chương trình được viết trong một ngôn ngữ chủ – host language (Pascal, C, Cobol …). Các chương trình này thường được tham khảo như các chương trình ứng dụng. Vì cú pháp DML thường rất khác với cú pháp của ngôn ngữ chủ, các lời gọi DML thường được bắt đầu bởi một ký tự đặc biệt như vậy mã thích hợp mới có thể được sinh. Một bộ tiền xử lý đặc biệt, được gọi là tiền biên dịch (precompiler) DML, chuyển các lệnh DML thành các lời gọi thủ tục chuẩn trong ngôn ngữ chủ. Bộ biên dịch ngôn ngữ chủ sẽ sinh mã đối tượng thích hợp. Có những ngôn ngữ lập trình phối hợp cấu trúc điều khiển của các ngôn ngữ giống như Pascal với cấu trúc điều khiển để thao tác đối tượng CSDL. Các ngôn ngữ này (đôi khi được gọi là ngôn ngữ thế hệ thứ tư) thường bao gồm các đặc điểm đặc biệt để làm dễ dàng việc sinh các dạng và hiển thị dữ liệu trên màn hình.

Các người sử dụng thành thạo ( Sophisticated users ): Trao đổi với hệ thống không qua viết trình. Thay vào đó họ đặt ra các yêu cầu của họ trong ngôn ngữ truy vấn CSDL ( Database query language ). Mỗi câu vấn tin như vậy được đệ trình cho bộ xử lý vấn tin, chức năng của bộ xử lý vấn tin là “dịch” các lệnh DML thành các chỉ thị mà bộ quản trị lưu trữ hiểu. Các nhà phân tích đệ trình các câu vấn tin thăm dò dữ liệu trong cơ sở dữ liệu thuộc vào phạm trù này.

Các người sử dụng chuyên biệt ( Specialized users ): Là các người sử dụng thành thạo, họ viết các ứng dụng CSDL chuyên biệt không nằm trong khung xử lý dữ liệu truyền thống. Trong đó, phải kể đến các hệ thống thiết kế được trợ giúp bởi máy tính (computer-aided design systems), Cơ sở tri thức (knowledge-base) và hệ chuyên gia (expert systems), các hệ thống lưu trữ dữ liệu với kiểu dữ liệu phức tạp (dữ liệu đồ họa, hình ảnh, âm thanh) và các hệ thống mô hình môi trường (environment-modeling systems)

Các người sử dụng ngây thơ ( Naive users ): là các người sử dụng không thành thạo, họ trao đổi với hệ thống bởi cầu dẫn một trong các chương trình ứng dụng thường trực đã được viết sẵn.

Một hệ CSDL được phân thành các module, mỗi một thực hiện một trách nhiệm trong hệ thống tổng thể. Một số chức năng của hệ CSDL có thể được cung cấp bởi hệ điều hành. Trong hầu hết các trường hợp, hệ điều hành chỉ cung cấp các dịch vụ cơ sở nhất, hệ CSDL phải xây dựng trên cơ sở đó. Như vậy, thiết kế hệ CSDL phải xem xét đến giao diện giữa hệ CSDL và hệ điều hành.

Các thành phần chức năng của hệ CSDL có thể được chia thành các thành phần xử lý vấn tin (query processor components) và các thành phần quản trị lưu trữ (storage manager components ).

Các thành phần xử lý vấn tin gồm:

Trình biên dịch DML ( DML compiler ): dịch các lệnh DML trong một ngôn ngữ vấn tin thành các chỉ thị mức thấp mà engine định giá vấn tin ( query evaluation engine ) có thể hiểu. Hơn nữa, Trình biên dịch DML phải biến đổi một yêu cầu của người sử dụng thành một đích tương đương nhưng ở dạng hiệu quả hơn có nghĩa là tìm một chiến lược tốt để thực hiện câu vấn tin.

Trình tiền biên dịch DML nhúng ( Embedded DML Precompiler ): biến đổi các lệnh DML được nhúng trong một chương trình ứng dụng thành các lời gọi thủ tục chuẩn trong ngôn ngữ chủ. Trình tiền biên dịch phải trao đổi với trình biên dịch DML để sinh mã thích hợp.

Bộ thông dịch DDL ( DDL interpreter ): thông dịch các lệnh DDL và ghi chúng vào một tập hợp các bảng chứa metadata.

Engine định giá vấn tin ( Query evaluation engine ): Thực hiện các chỉ thị mức thấp được sinh ra bởi trình biên dịch DML.

Các thành phần quản trị lưu trữ cung cấp các giao diện giữa dữ liệu mức thấp được lưu trữ trong CSDL và các chương trình ứng dụng, các vấn tin được đệ trình cho hệ thống. Các thành phần quản trị lưu trữ gồm:

Bộ quản trị quyền và tính toàn vẹn ( Authorization and integrity manager ): kiểm tra sự thoả mãn các ràng buộc toàn vẹn và kiểm tra quyền truy xuất dữ liệu của người sử dụng.

Bộ quản trị giao dịch ( Transaction manager ): Đảm bảo rằng CSDL được duy trì trong trạng thái nhất quán cho dù hệ thống có sự cố và đảm bảo rằng các thực hiện giao dịch cạnh tranh tiến triển không xung đột.

Bộ quản trị file ( File manager ): Quản trị cấp phát không gian trên lưu trữ đĩa và các cấu trúc dữ liệu được dùng để biểu diễn thông tin được lưu trữ trên đĩa.

Bộ quản trị bộ đệm ( Buffer manager ): có trách nhiệm đem dữ liệu từ lưu trữ đĩa vào bộ nhớ chính và quyết định dữ liệu nào trữ trong bộ nhớ.

Hơn nữa, một số cấu trúc dữ liệu được cần đến như bộ phận của sự thực thi hệ thống vật lý:

Các file dữ liệu: Lưu trữ CSDL

Tự điển dữ liệu ( Data Dictionary ): lưu metadata về cấu trúc CSDL.

Chỉ mục ( Indices ): cung cấp truy xuất nhanh đến các hạng mục dữ liệu chứa các giá trị tìm kiếm.

Dữ liệu thống kê ( Statistical data ): lưu trữ thông tin thống kê về dữ liệu trong cơ sở dữ liệu. Thông tin này được dùng bởi bộ xử lý vấn tin để chọn những phương pháp hiệu quả thực hiện câu vấn tin.

Sơ đồ các thành phần và các nối kết giữa chúng

Figure 2

Hệ Quản Trị Cơ Sở Dữ Liệu Là Gì? Những Loại Quản Trị Cơ Sở Dữ Liệu Phổ Biến

Một trong các khái niệm mà dân lập trình bắt buộc phải biết và cần nắm rõ đó là hệ quản trị cơ sở dữ liệu. Tuy nhiên, đối với những người mới bắt đầu học lập trình thì hệ quản trị cơ sở dữ liệu còn là một khái niệm khá mơ hồ đối với họ. Vì vậy, trong bài viết này chúng tôi sẽ giới thiệu với các bạn về hệ quản trị cơ sở dữ liệu là gì và các hệ quản trị cơ sở dữ liệu phổ biến hiện nay.

1. Hệ quản trị cơ sở dữ liệu là gì

Hệ quản trị cơ sở dữ liệu là một khái niệm trong lĩnh vực công nghệ thông tin. Đây là thuật ngữ được dùng để chỉ các chương trình, phần mềm có tác dụng lưu trữ dữ liệu mà vẫn đảm bảo được các tính chất của cấu trúc trong cơ sở dữ liệu. Bên cạnh đó, hệ quản trị cơ sở dữ liệu cũng cung cấp cho người sử dụng nhiều tính năng hữu ích để hỗ trợ quá trình đọc, thêm, xóa, sửa dữ liệu trên cơ sở dữ liệu.

Thực hiện lưu trữ các dữ liệu

Tạo và duy trì cơ sở dữ liệu

Cho phép cùng lúc nhiều người dùng truy xuất

Hỗ trợ bảo mật và riêng tư

Cho phép người dùng được xem và thực hiện xử lý dữ liệu

Cho phép người dùng được cập nhật và lưu trữ các dữ liệu sau khi đã cập nhập

Cung cấp tính nhất quán giữa các bản ghi khác nhau

Giúp việc truy cập các dữ liệu được chọn nhanh hơn bằng cách cung cấp một cơ chế chỉ mục index hiệu quả

Bảo vệ dữ liệu, tránh được tình trạng mất dữ liệu khi thực hiện sao lưu – backup hoặc phục hồi – recovery

2. Chức năng của hệ quản trị cơ sở dữ liệu

Cung cấp môi trường tạo lập cơ sở dữ liệu: Nhắc đến vai trò của hệ quản trị cơ sở dữ liệu thì không thể nhắc tới khả năng này. Vai trò của các hệ quản trị cơ sở dữ liệu đó chính là cung cấp cho người dùng một ngôn ngữ định nghĩa dữ liệu để cho họ có thể tự mô tả, khai báo kiểu và cấu trúc của dữ liệu

Cung cấp cách cập nhật và khai thác dữ liệu: Các hệ quản trị cơ sở dữ liệu sql có nhiệm vụ cung cấp cho người dùng ngôn ngữ thao tác dữ liệu để họ có thể diễn tả các yêu cầu cũng như thực hiện các thao tác cập nhật, khai thác CSDL. Những thao tác dữ liệu mà người dùng có thể thực hiện là nhập, sửa và xóa dữ liệu. Còn các khai thác dữ liệu bao gồm tìm kiếm và kết xuất dữ liệu

Cung cấp các công cụ kiểm soát và điều khiển các truy cập vào cơ sở dữ liệu: Đây là một trong các vai trò rất quan trọng của hệ quản trị cơ sở dữ liệu. Mục đích là để đảm bảo thực hiện một số yêu cầu cơ bản của hệ quản trị cơ sở dữ liệu. Các yêu cầu đó gồm:

Đảm bảo an ninh và kịp thời phát hiện, thực hiện các hành động để ngăn chặn sự truy cập bất hợp phát

Duy trì được tính nhất quán của dữ liệu

Tổ chức, điều khiển các truy cập dữ liệu

Có thể khôi phục lại được cơ sở dữ liệu khi xảy ra các sự cố về phần cứng hoặc phần mềm

Quản lý các mô tả dữ liệu

3. Vai trò của hệ quản trị cơ sở dữ liệu

Ở trên chúng tôi đã giới thiệu cho các bạn hệ cơ sở dữ liệu là gì và trong nội dung tiếp theo này chúng tôi sẽ chia sẻ cho các bạn biết vai trò của nó. Một hệ quản trị cơ sở dữ liệu có 3 vai trò chính, đó là:

4. Các vấn đề cần xử lý trong hệ quản trị cơ sở dữ liệu sql server

Hệ quản trị cơ sở dữ liệu sẽ cần phải lưu ý một số điểm sau bởi trong quá trình lưu giữ thông tin có tổ chức trong hệ thống xử lý file thông thường

Sự dư thừa dữ liệu và tính không nhất quán

Sự dư thừa dữ liệu và tính không nhất quán (Data redundancy and inconsistency): Có rất nhiều người dùng truy cập vào hệ quản trị cơ sở dữ liệu. Trong quá trình truy cập họ có thể tạo ra các file và các trình ứng dụng.

Do đó, các file có thể ở những định dạng không giống nhau và các chương trình cũng có thể được viết trong các ngôn ngữ lập trình khác nhau, các thông tin sẽ được lưu trữ tại nhiều file.

Truy xuất dữ liệu khó khăn: Việc truy xuất dữ liệu có thể gặp phải nhiều khó khăn do môi trường của hệ thống xử lý file thông thường không cung cấp các công cụ hỗ trợ để giúp việc truy xuất dữ liệu trở nên đơn giản, hiệu quả

Sự cô lập dữ liệu (Data isolation): Các giá trị dữ liệu muốn được lưu trong cơ sở dữ liệu thì bắt buộc nó phải thỏa mãn được một số yêu cầu ràng buộc về tính nhất quán của dữ liệu – consistency constraints.

Điều này tạo nên sự không thống nhất và dư thừa dữ liệu khiến cho chi phí truy xuất và lưu trữ tăng cao. Đồng thời nó cũng dẫn đến tình trạng không nhất quán dữ liệu, tức các bản sao cùng một dữ liệu có thể không nhất quán với nhau

Các vấn đề có thể kể tới như:

Các vấn đề về tính nguyên tử (Atomicity problems)

Đây cũng là một trong các vấn đề mà hệ quản trị cơ sở dữ liệu sql server cần xử lý. Trước hết các bạn cần phải hiểu được tính nguyên tử của một hoạt động hay giao dịch là nó được hoàn tất trọn vẹn hoặc không có gì cả.

Tính bất thường trong tuy xuất cạnh tranh: Như đã nói, hệ quản trị csdl cho phép nhiều người dùng có thể đồng thời sử dụng, truy cập và cập nhật dữ liệu. Cũng bởi vậy mà có thể dẫn tới việc dữ liệu không nhất quán. Do đó, cần tới một sự giám sát chặt chẽ. Tuy nhiên, hệ thống xử lý file thông thường không có chức năng này

Vấn đề an toàn (Security problems): Thông thường, một người khi sử dụng hệ cơ sở dữ liệu họ sẽ không cần thiết, đồng thời cũng không có quyền được truy xuất vào toàn bộ dữ liệu trên hệ cơ sở dữ liệu đó. Do đó, hệ thống phải đảm bảo được sự phân quyền cho người dùng, chống sự truy cập dữ liệu trái phép,…

Như vậy, một hoạt động hay giao dịch phải hoàn tất, tức đã kết thúc thành công mới có thể làm thay đổi được các dữ liệu bền vững.

Ngược lại, các hoạt động hay giao dịch sẽ không để lại trên cơ sở dữ liệu bất kỳ một dấu vết nào. Tuy nhiên, ở trên các hệ thống xử lý file thông thường tính chất này rất khó để đảm bảo

Chính các bất lợi cần phải được xử lý trong hệ quản trị cơ sở dữ liệu vừa nêu trên đã gợi mở cho sự phát triển của DBMS.

5. Các hệ quản trị cơ sở dữ liệu phổ biến

Hệ quản trị cơ sở dữ liệu sql thường gặp.

Một trong các hệ quản trị cơ sở dữ liệu sql được sử dụng vô cùng phổ biến đó chính là MySQL. Đây là một SQL Database do Swedish nghiên cứu và phát triển. Hệ quản trị này được xây dựng bởi mã nguồn mở. Ưu điểm của hệ quản trị cơ sở dữ liệu MySQL đó chính là nó có thể hỗ trợ trên rất nhiều nền tảng khác nhau, ví dụ như Microsoft, Linux, Windows, Mac OS X,…

Hiện nay, MySQL có cả gói miễn phí lẫn gói tính phí dành cho người dùng lựa chọn. Tùy theo mục đích và nhu cầu sử dụng của mỗi người mà các bạn có thể lựa cho mình gói MySQL phù hợp. Tuy nhiên, gói khuyến mãi sẽ có tương đối nhiều điểm hạn chế nên nếu các bạn không yêu cầu quá cao, nhu cầu sử dụng không lớn thì có thể gói miễn phí đã đủ đáp ứng nhu cầu sử dụng rồi.

Thông thường, hệ quản trị MySQL sẻ đi kèm với một SQL Database Server. Do đó, hệ quản trị này hoạt động rất nhanh, được tối ưu tốt và đa luồng, đa người dùng. Các tính năng và hoạt động hiệu quả hệ quản trị cơ sở dữ liệu này cũng rất tốt.

Hệ cơ sở dữ liệu MS Access dễ sử dụng.

Phần mềm này khi sử dụng cho các dự án có quy mô nhỏ chúng hoạt động vô cùng mạnh mẽ và hiệu quả. Tuy nhiên, mức chi phí để sở hữu phần mềm này thì không hề rẻ.

Hệ quản trị cơ sở dữ liệu này thường được đi kèm với MS Office package. Giao diện trực quan, dễ nhìn, dễ sử dụng và đặc biệt là luôn có đội ngũ forums hỗ trợ 24/7.

MS SQL Server cũng là một hệ quản trị cơ sở dữ liệu được sử dụng rất phổ biến. Hệ quản trị này được nghiên cứu và phát triển bởi Microsoft Inc.

MS SQL Server có khả năng quản trị cơ sở dữ liệu chuyên nghiệp.

Vào năm 1989, MS SQL Server chính thức được ra mắt. Ngôn ngữ truy vấn đầu tiên của hệ quản trị cơ sở dữ liệu này là T-SQL hay ANSI SQL. Sau nhiều năm, MS SQL Server vẫn luôn nằm trong top các hệ quản trị cơ sở dữ liệu được sử dụng phổ biến nhất.

– Có thể hoạt động tốt trên hệ điều hành Windows và Linux

– Có thể tương thích với Oracle

– Cung cấp và quản lý khối lượng công việc hiệu quả

– Cho phép cùng lúc nhiều người dùng chung một cơ sở dữ liệu

Oracle cũng là một hệ quản trị csdl được sử dụng rất phổ biến. Hệ quản trị csdl này lấy tên từ một hãng phần mềm. Sau nhiều năm phát triển, hệ quản trị csdl Oracle đã trở thành phần mềm vô cùng nổi tiếng.

Orale khởi đầu đầu từ một phần mềm cơ sở dữ liệu cách đây khoảng hơn 50 năm. Tính tới nay, bên cạnh Oracle Database Server thì Oracle còn phát triển và cung cấp rất nhiều sản phẩm khác để phục vụ cho các doanh nghiệp.

Hệ cơ sở dữ liệu SQlite được D.Richard Hipp thiết kế và ra mắt vào năm 2000. Đây là một hệ thống cơ sở dữ liệu tương đối nhỏ gọn nhưng vẫn rất hoàn chỉnh, cho phép cài đặt nhiều ứng dụng khác nhau ở bên trong. Hệ quản trị cơ sở dữ liệu này được viết bởi ngôn ngữ lập trình C.

Về cơ bản SQlite cũng tương tự như MySQL, PostgreSQL,… Phần mềm chưa tới 400KB và người dùng không cần cài đặt, cấu hình hay khởi động mà có thể sử dụng ngay.

Tuy nhiên, phần mềm này chỉ phù hợp với những quy mô nhỏ hoặc trong các cuộc thử nghiệm, phát triển, đặc biệt là cho người mới bắt đầu học về Database nó mới không tỏ ra yếu kém về chức năng và tốc độ.

Rất nhiều người lựa chọn sử dụng SQlite bởi nó không yêu cầu một tiến trình Server riêng rẽ để hoạt động, cũng không cần cấu hình, cài đặt và có thể dễ dàng lưu trữ trong một disk file đơn. Phần mềm này thường đã có sẵn trên UNIX (Linux, Mac OS-X, Android, iOS) và Windows (Win32, WinCE, WinRT).

Cũng nằm trong top các hệ quản trị cơ sở dữ liệu được sử dụng phổ biến đó chính là PostgreSql. Hệ quản trị csdl này thường kết hợp với module Postgis giúp hỗ trợ tốt trong việc lưu trữ dữ liệu không gian.

PostgreSql có một số tính năng cơ bản như: Đảm bảo an toàn cho dữ liệu, truy xuất nhanh dữ liệu, sử dụng csdl quan hệ đối tượng, có thể hoạt động tốt trên hệ điều hành Windows và Linux, có thể chia sẻ dữ liệu trang tổng quan nhanh,…

Hệ quản trị MongoDB là một mã nguồn mở, viết bởi ngôn ngữ C++. MongoDB dùng cơ chế NoSQL, có khả năng xử lý lượng dữ liệu lớn và cho phép người dùng được sử dụng bộ nhớ trong để truy cập dữ liệu dễ hơn.

Redis cũng là một hệ quản trị csdl được sử dụng phổ biến không kém 7 hệ quản trị csdl chúng tôi vừa giới thiệu. Hệ quản trị cơ sở dữ liệu này cũng được phát triển theo phong cách NoSQL. Đây được biết đến là một hệ thống lưu trữ key value.

Nó có rất nhiều tính năng hữu ích và được sử dụng vô cùng rộng rãi. Đặc điểm nổi bật nhất của hệ cơ sở dữ liệu Redis chính là có thể hỗ trợ nhiều cấu trúc cơ bản và cho phép scripting bằng ngôn ngữ lua.

Vừa rồi chúng tôi đã giới thiệu tới các bạn khái niệm hệ quản trị cơ sở dữ liệu và các chức năng, vai trò cũng như những hệ quản trị cơ sở dữ liệu đang được sử dụng phổ biến nhất hiện nay. Tùy vào nhu cầu và mục đích sử dụng của bản thân mà các bạn có thể cân nhắc lựa chọn sử dụng một hệ quản trị cơ sở dữ liệu phù hợp.

Đến đây, chắc bạn không phải thắc mắc hệ quản trị cơ sở dữ liệu là gì nữa đúng không nào. Hy vọng những kiến thức bổ ích từ bài viết của chúng tôi sẽ giúp bạn chọn được hệ quản trị cơ sở dữ liệu phù hợp.

Bài 2. Hệ Quản Trị Cơ Sở Dữ Liệu

BÀI 2HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU(2 TIẾT)

Ngôn ngữ truy vấn có cấu trúc (SQL) là ngôn ngữ chuẩn hóa để định nghĩa và xử lý dữ liệu trong một cơ sở dữ liệu quan hệ. Tất cả các hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) đều hiểu được SQL.

Bài tập về nhàBài 1: Sự giống nhau giữa ngôn ngữ CSDL và ngôn ngữ lập trình bậc cao.a./ Có quy tắc viết câu lệnh(cú pháp) chặt chẽ.b./Có thể thực hiện các phép tính số học, quan hệ và logic.c./ Cho phép sử dụng biểu thức số học, biểu thức quan hệ và logic.d./Tồn tại bộ ký hiệu nhất định được phép sử dụngf) Cả 4 đáp án trên.Bài tập về nhàBài 2.Lập bảng so sánh sự khác nhau giữa ngôn ngữ CSDL và ngôn ngữ lập trình bậc cao.

IV)CÁC BƯỚC XÂY DỰNG CƠ SỞ DỮ LiỆUBƯỚC 1.KHẢO SÁTTìm hiểu yêu cầu của công tác quản lý.Xác định dl cần lưu trữ, phân tích mối liên hệ dl.Phân tích các chức năng cần có của hệ thống khai thác tt, đáp ứng các yêu cầu đạt ra.Xác định khả năng phần cứng, phần mềm có thể khai thác, sử dụng.BƯỚC 2.THIẾT KẾThiết kế cơ sở dl.Lựa chọn hệ QTCSDL triển khai.Xây dựng hệ thống chương trình ứng dụng.BƯỚC 3.KiỂM THỬNhập dl cho csdl.Tiến hành chạy thử.Nếu hệ thống đáp ứng đầy đủ các yêu cầu đạt ra thì đưa hệ thống vào sd.Nếu hệ thống còn lỗi thì cần rà soát lại tất cả các bước đã thực hiện trước đó.Xem lỗi xuất hiện ở đâu để khắc phục.Tìm hiểu về hệ cơ sở dữ liệuBài 1:Tìm hiểu nội quy thư viện,thẻ thư viện,phiếu mượn trả sách,sổ quản lý sách,…của thư viện trung học phổ thôngNhóm 1: Nêu sự giống nhau giữa NNCSDL và ngôn ngữ lập trình bậc cao.Nhóm 2:Nêu sự khác nhau giữa NNCSDL và ngôn ngữ lập trình bậc cao.Nhóm 3: Cho ví dụ về khai báo biến thường, và khai báo có cấu trúc trong PascalSự giống nhau:-Viết câu lệnh(cú pháp) có quy tắt, chặt chẽ.-Có thực hiện các phép tính số học, quan hệ logic.-Biểu thức quan hệ,logic,số học được phép sử dụng.-Tồn tại bộ ký hiệu nhất định được phép sử dụng.Sự khác nhau:Ngôn ngữ CSDL:-Cung cấp nhiều phương tiện ,nhiều khuôn dạng phong phú đa dạng làm việc để kết xuất thông tin với tệp và bản ghi.-Các công cụ cho phép dễ dàng kiểm tra tích hợp thức của dl nhập vào.Ngôn ngữ lập trình bậc cao.Cung cấp:-Nhiều phương tiện dễ dàng mô tả thuật toán bất kỳ xử lý dl.-Những phép xử lý cơ sở khi làm việc với tệp.-Những khuôn dạng cơ sở để đưa thông tin ra bộ nhớ ngoài.