Mô hình dữ liệu và Ngôn ngữ truy vấn
Mô hình dữ liệu là các khuôn khổ khái niệm xác định cách dữ liệu được cấu trúc, liên kết và ràng buộc, còn ngôn ngữ truy vấn là các ký hiệu hình thức được sử dụng để truy xuất và thao tác dữ liệu trong các mô hình đó.
Definition
Mô hình dữ liệu là tập hợp các công cụ khái niệm để mô tả dữ liệu, các mối quan hệ dữ liệu, ngữ nghĩa dữ liệu và các ràng buộc nhất quán; ngôn ngữ truy vấn là một ký hiệu để yêu cầu thông tin từ và sửa đổi một cơ sở dữ liệu được thể hiện trong một mô hình như vậy.
Scope
Lĩnh vực này bao gồm các trừu tượng được sử dụng để mô tả dữ liệu — mô hình quan hệ, sơ đồ thực thể-quan hệ, và các mô hình bán cấu trúc và tài liệu — cùng với các ngôn ngữ khai báo và đại số, chủ yếu là đại số quan hệ và SQL, được sử dụng để thể hiện các truy vấn và cập nhật đối với chúng. Nó đề cập đến cách một mô hình định nghĩa lược đồ, các thể hiện, khóa và các ràng buộc toàn vẹn, và cách khả năng biểu đạt của ngôn ngữ truy vấn liên quan đến mô hình cơ bản. Nó không bao gồm việc lưu trữ vật lý, lập chỉ mục và thực thi các truy vấn (được đề cập trong xử lý và tối ưu hóa truy vấn) và kỷ luật thiết kế để tinh chỉnh lược đồ (được đề cập trong thiết kế cơ sở dữ liệu và chuẩn hóa).
Sub-topics
Core questions
- Mô hình dữ liệu biểu diễn các thực thể, mối quan hệ và ràng buộc như thế nào?
- Mối quan hệ giữa mô hình quan hệ và đại số quan hệ và SQL là gì?
- Một thiết kế thực thể-quan hệ khái niệm được ánh xạ tới một lược đồ quan hệ logic như thế nào?
- Các mô hình bán cấu trúc và tài liệu đánh đổi lược đồ cứng nhắc để lấy sự linh hoạt như thế nào?
- Điều gì xác định sức mạnh biểu đạt và giới hạn của một ngôn ngữ truy vấn?
Key concepts
- quan hệ, bộ và thuộc tính
- lược đồ và thể hiện
- khóa và ràng buộc toàn vẹn
- đại số quan hệ
- SQL
- sơ đồ thực thể-quan hệ
- dữ liệu bán cấu trúc
- mô hình tài liệu và JSON
- tính độc lập dữ liệu
Key theories
- Mô hình quan hệ
- Mô hình quan hệ của Codd biểu diễn tất cả dữ liệu dưới dạng các quan hệ (tập hợp các bộ trên các thuộc tính được đặt tên), tách biệt chế độ xem logic của dữ liệu khỏi lưu trữ vật lý của nó và cung cấp một nền tảng toán học dựa trên lý thuyết tập hợp và logic vị từ.
- Tính đầy đủ quan hệ
- Một ngôn ngữ truy vấn được gọi là đầy đủ quan hệ nếu nó có thể biểu diễn mọi truy vấn có thể biểu diễn trong đại số quan hệ; tiêu chí này, được Codd giới thiệu, đặt ra một tiêu chuẩn cơ bản cho sức mạnh biểu đạt của các ngôn ngữ thực tế như SQL.
- Mô hình thực thể-quan hệ
- Mô hình thực thể-quan hệ của Chen mô tả thế giới theo các thực thể, các thuộc tính của chúng và các mối quan hệ giữa chúng, cung cấp một ký hiệu thiết kế khái niệm cấp cao có thể được dịch một cách có hệ thống thành các lược đồ quan hệ.
Clinical relevance
Mô hình dữ liệu và ngôn ngữ truy vấn là nền tảng của hầu hết các hệ thống thông tin: mô hình quan hệ và SQL là nền tảng của các cơ sở dữ liệu doanh nghiệp, hệ thống tài chính và phần phụ trợ web, trong khi mô hình thực thể-quan hệ cấu trúc phân tích yêu cầu, và các mô hình tài liệu và bán cấu trúc hỗ trợ lưu trữ linh hoạt dữ liệu web, nhật ký và cấu hình.
History
Các cơ sở dữ liệu ban đầu sử dụng các mô hình phân cấp và mạng (CODASYL) với điều hướng gắn liền với lưu trữ vật lý. Mô hình quan hệ năm 1970 của Codd đã giới thiệu tính độc lập dữ liệu và một đại số khai báo; điều này đã dẫn đến System R và Ingres vào những năm 1970 và SQL, sau đó trở thành một tiêu chuẩn ISO. Mô hình thực thể-quan hệ năm 1976 của Chen đã bổ sung một lớp thiết kế khái niệm, và các mô hình bán cấu trúc và tài liệu đã xuất hiện cùng với web và XML vào cuối những năm 1990.
Key figures
- Edgar F. Codd
- Peter Chen
- Jeffrey D. Ullman
- Jennifer Widom
Related topics
Seminal works
- codd1970
- chen1976
- silberschatz2019
Frequently asked questions
- Sự khác biệt giữa đại số quan hệ và SQL là gì?
- Đại số quan hệ là một ngôn ngữ toán học thủ tục của các toán tử (chọn, chiếu, kết nối, hợp, v.v.) trên các quan hệ, được sử dụng để suy luận và tối ưu hóa các truy vấn. SQL là ngôn ngữ khai báo thực tế được sử dụng trong các hệ thống thực; nó dựa trên đại số và phép tính quan hệ nhưng bổ sung các tính năng như nhóm, tổng hợp, xử lý giá trị null và ngữ nghĩa đa tập hợp (bag).
- Tại sao phải mô hình hóa dữ liệu một cách khái niệm trước khi thiết kế bảng?
- Các mô hình khái niệm như sơ đồ thực thể-quan hệ nắm bắt các yêu cầu theo cách mà người dùng hiểu — các đối tượng và mối quan hệ giữa chúng — độc lập với việc triển khai. Việc dịch một thiết kế khái niệm đã được xác thực thành các bảng quan hệ giúp giảm sự dư thừa và lỗi thiết kế so với việc tạo bảng trực tiếp.