Chính xác thì công cụ cơ sở dữ liệu là gì?


14

Tôi đã trải qua định nghĩa trên http://en.wikipedia.org/wiki/Database_engine nhiều lần:

Công cụ cơ sở dữ liệu (hoặc "công cụ lưu trữ") là thành phần phần mềm cơ bản mà hệ thống quản lý cơ sở dữ liệu (DBMS) sử dụng để tạo, đọc, cập nhật và xóa dữ liệu (CRUD) khỏi cơ sở dữ liệu.

Những gì tôi không hiểu là những gì còn lại để làm, không phải là CRUD tất cả những gì cơ sở dữ liệu làm?

Nếu công cụ cơ sở dữ liệu thực hiện các chức năng này, phần còn lại của cơ sở dữ liệu sẽ làm gì?


Để có câu trả lời trực tiếp cho câu hỏi được in đậm ( phần còn lại của cơ sở dữ liệu làm gì? ), Hãy xem câu trả lời của Bryan. Để rõ hơn về những gì một công cụ cơ sở dữ liệu làm, ngoài CRUD, hãy xem câu trả lời của Leigh.
nealmcb

Câu trả lời:


15

CRUD có nghĩa là để xác định các đặc điểm cần thiết cho cơ sở dữ liệu vì nó liên quan đến lưu trữ liên tục. Nó không có nghĩa là để mô tả tất cả mọi thứ có thể được thực hiện bởi một công cụ cơ sở dữ liệu.

Để so sánh, về cơ bản một chiếc xe là một thiết bị được sử dụng để vận chuyển. Mặc dù đúng, định nghĩa này chắc chắn không bao gồm tất cả các chi tiết đòi hỏi trong một chiếc ô tô hiện đại.

Một công cụ cơ sở dữ liệu có thể xử lý nhiều người dùng, giao dịch , MVCC (Điều khiển đồng thời đa đảo ngược) , bộ đệm và bộ đệm, ACID (tính nguyên tử, tính nhất quán, cách ly, độ bền) , cũng như các mức cách ly khác nhau . Việc đọc có thể lấy dữ liệu từ bộ nhớ, cơ sở dữ liệu từ xa và nhiều bảng trên đĩa xử lý nó bằng SQL thông qua nhiều đường dẫn mã rõ ràng và / hoặc ẩn để trình bày nó cho ứng dụng yêu cầu. Một tạo có thể phân bổ lưu trữ, cấu trúc cung cấp, gán giá trị và tự xử lý trước khi lưu trữ dữ liệu. Vân vân.


Đây là một câu trả lời rất nhỏ gọn, nhưng đầy đủ. +1 !!!
RolandoMySQLDBA

BTW Tương tự đẹp về xe so với loại xe cụ thể.
RolandoMySQLDBA

Theo tôi, Giao dịch, bảo đảm ACID, mức cô lập, Kiểm soát đồng thời, bộ đệm, bộ đệm đều được xử lý bởi chính Cơ sở dữ liệu. Tại sao tôi nói vậy? ... Hãy xem linux.org/threads/an-int sinhtion
to

@Leigh, Không phải là sự tương tranh (thiếu) một tính năng của công cụ lưu trữ chứ không phải của DBMS? Nếu đó là một tính năng của DBMS, thì tại sao MariaDB / MySQL không thể thực hiện giao dịch cho các công cụ lưu trữ nhất định như MyISAM?
Pacerier

@Pacerier - Điều này có thể đúng với các hệ thống tạo sự tách biệt giữa DBMS và công cụ lưu trữ, đối với những người khác, sự khác biệt là vô nghĩa.
Leigh Riffel

12

Một số cơ sở dữ liệu có thể chạy nhiều công cụ, tùy thuộc vào sự phù hợp nhất cho công việc. Ví dụ: nhiều ứng dụng của tôi sử dụng InnoDB cho hầu hết dữ liệu (ràng buộc khóa và khóa cấp hàng), MyISAM cho dữ liệu phiên (nhanh, ít xử lý) và ArchiveDB cho đường dẫn kiểm toán (chỉ nén và chèn / chọn, không cập nhật / xóa).

"Phần còn lại" của phần mềm cơ sở dữ liệu cung cấp giao diện chung để sử dụng thông qua API hoặc thiết bị đầu cuối, cho phép các hành động phức tạp (như tham gia, truy vấn con, v.v.) và quản lý tình trạng / trạng thái và cấu hình của các công cụ đi kèm. Có rất nhiều việc cho ăn và chăm sóc một động cơ, và phần mềm cơ sở dữ liệu che giấu tất cả sự phức tạp đó.


Cảm ơn vì đã thực sự trả lời câu hỏi đặt ra in đậm!
nealmcb
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.