Hệ thống Quản trị Cơ sở Dữ liệu (DBMS)
Đã giới thiệu| English | Ý nghĩa |
|---|---|
| DBMS/ˌdiː biː em ˈes/ | hệ quản trị cơ sở dữ liệu |
| view/vjuː/ | bản xem trước |
| backup/ˈbækʌp/ | sao lưu |
| data management/ˈdeɪtə ˈmænɪdʒmənt/ | quản lý dữ liệu |
| data dictionary/ˈdeɪtə ˈdɪkʃənəri/ | từ điển dữ liệu |
| data modelling/ˈdeɪtə ˈmɒdəlɪŋ/ | mô hình hóa dữ liệu |
| logical schema/ˈlɒdʒɪkl ˈskiːmə/ | sơ đồ logic |
| data integrity/ˈdeɪtə ɪnˈteɡrɪti/ | tính toàn vẹn của dữ liệu |
| data security/ˈdeɪtə sɪˈkjʊərɪti/ | an ninh dữ liệu |
| transaction/trænˈsækʃn/ | giao dịch |
| concurrent access/kənˈkʌrənt ˈækses/ | truy cập đồng thời |
| concurrency control/kənˈkʌrənsi kənˈtrəʊl/ | kiểm soát đồng thời |
| developer interface/dɪˈveləpə ˈɪntəfeɪs/ | giao diện nhà phát triển |
| query processor/ˈkwɪərɪ ˈprəʊsesə/ | bộ xử lý truy vấn |
Hai người, một ghế
- Năm 1960, American Airlines đã kích hoạt Sabre, hệ thống đặt chỗ bằng máy tính đầu tiên. Các nhân viên tại hàng chục thành phố có thể bán vé cho cùng một chuyến bay cùng lúc, và nhiệm vụ duy nhất quan trọng của hệ thống là đảm bảo không bao giờ có ghế nào được bán hai lần.
- Một tập tin chia sẻ không thể làm được điều đó: hai chương trình đọc "ghế 14C trống", cả hai đều ghi "đã bán", và hai hành khách đến cửa lên máy bay. Có thứ gì đó phải đứng giữa mỗi chương trình và dữ liệu để làm trọng tài.
- Trọng tài đó chính là DBMS. Mỗi tính năng trong bài học này là điều mà tập tin phẳng không thể làm: mô tả bản thân, giữ nhất quán góc nhìn của mọi người dùng, tuân thủ quy tắc, chịu được lỗi sập và cho phép một đội xây dựng ứng dụng trong khi đội khác đặt câu hỏi.
- Bài học này liệt kê các tính năng mà chương trình học yêu cầu và hai công cụ phần mềm cần mô tả.
Hệ quản trị cơ sở dữ liệu là gì
- Một hệ quản trị cơ sở dữ liệu là phần mềm quản lý cơ sở dữ liệu tập trung. Mọi chương trình và mọi người dùng chỉ truy cập dữ liệu thông qua nó.
- Nó giải quyết từng hạn chế của tập tin: một bản sao duy nhất của mỗi sự thật, do đó không có trùng lặp hoặc mâu thuẫn; tính độc lập của dữ liệu, giúp các chương trình không bị ràng buộc với cách lưu trữ; toàn vẹn, bảo mật, sao lưu và truy cập tập trung cho nhiều người dùng cùng lúc.
- Chương trình học nêu năm tính năng và hai công cụ. Hãy học từng cái như một việc DBMS làm.
Phòng thí nghiệm dịch vụ cơ sở dữ liệu
Xem cách DBMS chuyển đổi câu truy vấn thành quyền truy cập dữ liệu chia sẻ an toàn.
Ghép nối mỗi dịch vụ DBMS với chức năng của nó.
Difficulty 2/5 · 140 coins + a small bonus on first completion today
Một DBMS đóng gói các dịch vụ này lại để các chương trình không bao giờ tiếp cận trực tiếp vào các tập tin thô.
Quản trị dữ liệu và từ điển dữ liệu
- Quản trị dữ liệu là DBMS kiểm soát cách dữ liệu được lưu trữ, tổ chức, truy xuất và cập nhật, để các chương trình không bao giờ chạm trực tiếp vào tập tin.
- Nó duy trì một từ điển dữ liệu: mô tả về mỗi bảng, trường, kiểu dữ liệu, khóa, mối quan hệ và ràng buộc, plus ai được phép truy cập cái gì. Đó là dữ liệu về dữ liệu.
- Các chương trình truy vấn từ điển thay vì mã hóa cứng cấu trúc, nên việc thay đổi bảng sẽ không làm hỏng chúng. Nó cũng là thứ DBMS kiểm tra khi xác thực một bản ghi mới.
Từ điển dữ liệu trong DBMS chứa:
Difficulty 1/5 · 100 coins + a small bonus on first completion today
Từ điển dữ liệu mô tả cấu trúc cơ sở dữ liệu, nên các chương trình truy vấn nó thay vì mã hóa cứng bố cục.
Mô hình hóa dữ liệu và sơ đồ logic
- Mô hình hóa dữ liệu là xác định cấu trúc của dữ liệu: các thực thể, thuộc tính của chúng, khóa và mối quan hệ, giống như trong sơ đồ E-R.
- Kết quả là sơ đồ logic: thiết kế tổng thể về mặt logic của cơ sở dữ liệu, các bảng và mối quan hệ của nó, được mô tả độc lập với cách các byte được lưu trên đĩa.
- Vì sơ đồ logic tách biệt khỏi lưu trữ vật lý, cách lưu trữ có thể được tổ chức lại, lập chỉ mục hoặc di chuyển và các chương trình vẫn thấy cùng những bảng đó.

Các chương trình thấy bảng; DBMS thấy đĩa
Sơ đồ logic của cơ sở dữ liệu mô tả:
Difficulty 1/5 · 100 coins + a small bonus on first completion today
Thiết kế logic tách biệt khỏi lưu trữ vật lý, đó là điều cho phép thay đổi lưu trữ mà không cần các chương trình nhận ra.
Toàn vẹn dữ liệu và bảo mật dữ liệu
- Toàn vẹn dữ liệu: DBMS giữ dữ liệu chính xác và nhất quán bằng cách áp dụng các quy tắc tập trung: khóa chính duy nhất và không null, toàn vẹn tham chiếu trên mọi khóa ngoại, kiểu dữ liệu, và các ràng buộc xác thực như phạm vi hoặc giá trị từ danh sách.
- Bảo mật dữ liệu: DBMS kiểm soát ai có thể xem và thay đổi cái gì. Quyền truy cập được cấp cho từng người dùng hoặc nhóm, theo từng bảng, dưới dạng chỉ đọc, đọc và ghi, hoặc không truy cập; mật khẩu xác thực từng người dùng; dữ liệu lưu trữ có thể được mã hóa.
- Bảo mật còn có nghĩa là các thủ tục sao lưu: bản sao thường xuyên của cơ sở dữ liệu, kèm theo nhật ký thay đổi kể từ đó, để dữ liệu có thể được khôi phục sau khi xảy ra sự cố.
Những tính năng nào sau đây là tính năng bảo mật dữ liệu của DBMS? Chọn tất cả những đáp án đúng.
Difficulty 2/5 · 140 coins + a small bonus on first completion today
Ai có thể truy cập, và phục hồi sau mất mát, là vấn đề bảo mật. Chuẩn hóa là bước thiết kế chống lại sự trùng lặp.
Ví dụ minh họa: DBMS giữ dữ liệu an toàn như thế nào
- Mô tả cách DBMS cung cấp bảo mật dữ liệu. [4]
- Mỗi người dùng có tài khoản và mật khẩu, nên chỉ những người được ủy quyền mới đăng nhập. Quản trị viên cấp quyền truy cập cho từng người dùng hoặc nhóm đối với từng bảng: nhân viên có thể xem giá nhưng không được sửa; khách hàng không thể thấy bảng nhân viên. Một view (bảng ảo) có thể chỉ hiển thị cho người dùng những trường họ cần.
- DBMS chạy thủ tục sao lưu: bản sao thường xuyên của cơ sở dữ liệu lên phương tiện riêng biệt, kèm theo nhật ký giao dịch kể từ bản sao, nên sự cố hoặc tấn công sẽ không mất dữ liệu.
- Bảo mật nói về ai được truy cập; toàn vẹn nói về dữ liệu chính xác. Hãy tách biệt chúng khi câu hỏi nêu một trong hai.
Nhiều người dùng cùng lúc
- Truy cập đồng thời: nhiều người dùng làm việc với cơ sở dữ liệu cùng lúc. Kiểm soát độ đồng thời sử dụng khóa để hai người dùng không thể cập nhật cùng một bản ghi cùng lúc và làm hỏng nó: người thứ hai chờ đến khi người thứ nhất hoàn tất.
- Một giao dịch là một nhóm thao tác hoặc tất cả thành công hoặc tất cả thất bại, nên khi sập giữa chừng quá trình chuyển tiền sẽ không khiến tiền biến mất khỏi cả hai tài khoản.
- Một view (bảng ảo) là một bảng ảo, được xây dựng từ một truy vấn, hiển thị mỗi người dùng chỉ phần dữ liệu của họ.
Giao dịch cơ sở dữ liệu là:
Difficulty 1/5 · 100 coins + a small bonus on first completion today
Giao dịch mang tính nguyên tử (tất cả hoặc không có), nên cơ sở dữ liệu không bao giờ bị bỏ dở nửa chừng.
Kiểm soát đồng thời (khóa) cần thiết để:
Difficulty 1/5 · 100 coins + a small bonus on first completion today
Khóa ngăn hai lần cập nhật đồng thời xung đột và làm hỏng dữ liệu chung.
Một giao dịch mang tính tất cả hoặc không có: nó hoàn thành đầy đủ (commit) hoặc hoàn toàn đảo ngược (rollback), nên cơ sở dữ liệu không bao giờ bị bỏ dở nửa chừng.
Difficulty 1/5 · 100 coins + a small bonus on first completion today
Tính nguyên tử này là lý do tại sao chuyển tiền ngân hàng không thể khấu trừ một tài khoản mà không tín dụng tài khoản kia.
Một bảng ảo (thường là truy vấn đã lưu) hiển thị cho người dùng chỉ phần dữ liệu liên quan của họ được gọi là ______.
Difficulty 1/5 · 100 coins + a small bonus on first completion today
View cung cấp một phần dữ liệu được tùy chỉnh, thường bị hạn chế, mà không cần sao chép nó.
Xếp sắp các sự kiện của hai người dùng cập nhật cùng một bản ghi dưới sự kiểm soát đồng thời theo thứ tự.
Difficulty 3/5 · 200 coins + a small bonus on first completion today
Khóa tuần tự hóa hai lần cập nhật để không ai ghi đè lên thay đổi của người kia.
Các công cụ phần mềm
- Giao diện nhà phát triển là tập hợp các công cụ và giao diện lập trình để xây dựng ứng dụng trên cơ sở dữ liệu: trình tạo biểu mẫu nhập liệu, trình tạo báo cáo, trình tạo truy vấn, trình soạn thảo SQL, trình soạn thảo từ điển dữ liệu, và các API cho phép chương trình bằng Python hoặc Java gửi lệnh SQL và nhận kết quả.
- Bộ xử lý truy vấn nhận một truy vấn được viết bằng SQL, kiểm tra nó đối với từ điển dữ liệu, xác định cách thực thi hiệu quả nhất, chạy truy vấn và trả về tập kết quả.
- Người nhập truy vấn và người lập trình xây dựng biểu mẫu đặt phòng đều đang sử dụng hệ quản trị CSDL; người này thông qua bộ xử lý truy vấn, người kia thông qua giao diện nhà phát triển.
Ghép nối mỗi thành phần DBMS với nhiệm vụ của nó.
Difficulty 2/5 · 140 coins + a small bonus on first completion today
Chạy truy vấn, xây dựng ứng dụng, mô tả cấu trúc, và bản thiết kế: bốn khái niệm khác nhau mà đề thi liệt kê riêng biệt.
Ví dụ minh họa: hai công cụ đang được sử dụng
- CSDL của một cửa hàng được sử dụng bởi quản lý (cần tổng doanh số) và bởi một lập trình viên viết ứng dụng kiểm soát tồn kho. Hãy giải thích cách bộ xử lý truy vấn và giao diện nhà phát triển được sử dụng.
- Quản lý viết hoặc tạo truy vấn cho tổng doanh số; bộ xử lý truy vấn phân tích cú pháp, sử dụng từ điển dữ liệu để kiểm tra các bảng và trường có tồn tại không, chọn cách chạy nhanh nhất, thực thi và trả về kết quả.
- Lập trình viên sử dụng giao diện nhà phát triển: các trình tạo biểu mẫu và báo cáo để tạo màn hình tồn kho, và API để mã của ứng dụng có thể gửi SQL đến hệ quản trị CSDL và nhận lại các bản ghi.
- Hai điểm mỗi câu: công cụ đó là gì, và người này làm gì với nó.
Điểm số dễ mất
- Hệ quản trị CSDL là phần mềm, không phải dữ liệu. Câu "Hệ quản trị CSDL lưu trữ hồ sơ khách hàng" là sai; nó quản lý chúng.
- Từ điển dữ liệu chứa dữ liệu về dữ liệu: cấu trúc, kiểu, khóa, quyền hạn. Không phải chính các bản ghi.
- Sơ đồ logic là thiết kế không phụ thuộc vào lưu trữ vật lý. Hãy nói cụm từ này.
- Bảo mật là ai được phép truy cập; toàn vẹn là dữ liệu chính xác. sao lưu thuộc về bảo mật.
Bạn đã nắm vững
- Một hệ quản trị CSDL là phần mềm mà mọi chương trình đều phải đi qua: một bản sao duy nhất của mỗi sự thật, tính độc lập dữ liệu, quy tắc tập trung
- quản lý dữ liệu với từ điển dữ liệu (dữ liệu về dữ liệu) · mô hình hóa dữ liệu tạo ra sơ đồ logic (thiết kế độc lập với lưu trữ) · toàn vẹn dữ liệu (quy tắc được áp dụng) · bảo mật dữ liệu (quyền truy cập cho người dùng và nhóm, mật khẩu, mã hóa, sao lưu)
- kiểm soát đồng thời với khóa, giao dịch mang tính chất tất cả hoặc không, nhìn thấy hiển thị phần dữ liệu của người dùng
- công cụ: giao diện nhà phát triển để xây dựng ứng dụng, bộ xử lý truy vấn để chạy SQL