Trước hết, tôi đánh giá cao bài báo khoa học trong đó Tiến sĩ Edgar Frank Codd đã xuất bản khung quan hệ ra công chúng vào năm 1970, tức là Mô hình dữ liệu quan hệ cho các ngân hàng dữ liệu chia sẻ lớn . Ở đó, trong phần 1.1, Giới thiệu về Giới tính, Tiến sĩ Codd tự nói rằng:
Bài viết này liên quan đến việc áp dụng lý thuyết quan hệ cơ bản cho các hệ thống cung cấp quyền truy cập chung vào các ngân hàng lớn của dữ liệu được định dạng.
© Hiệp hội Máy móc Máy tính. Truyền thông của ACM , Tập 13, Số 6 (trang 377-387), tháng 6 năm 1970.
Vì vậy, vâng, các điều khoản quan hệ và (do đó) quan hệ đến từ một nền tảng toán học. Tiến sĩ Codd hèwho, ngoài các thông tin học thuật và nghiên cứu của mình, đã có khoảng 20 năm kinh nghiệm đầu tiên về điện toán và xử lý thông tin. .
Tôi không phải là nhà toán học, nhưng về cơ bản, mối quan hệ là mối quan hệ giữa các tập hợp , tập hợp là tập hợp các phần tử ( tài nguyên bên ngoài này đưa ra định nghĩa về quan hệ toán học có thể giúp hiểu nó từ một quan điểm khác). Khi làm việc với sự trợ giúp của hệ thống quản lý cơ sở dữ liệu SQL (DBMS for brevity), một xấp xỉ nổi tiếng của một mối quan hệ là một bảng , trong trường hợp đó sự liên kết diễn ra giữa các loại cột của nó . Rõ ràng, trong các nền tảng SQL có hỗ trợ DOMAIN (ví dụ: Firebird và PostgreQuery ), sự liên kết xảy ra giữacác miền cố định cho các cột của bảng trong câu hỏi; xem các phần dưới đây để biết chi tiết quan trọng
Về mặt đó, tôi sẽ trích dẫn lại Tiến sĩ Codd, người trong phần 1.3, Một quan điểm quan hệ về dữ liệu, khẳng định rằng:
Thuật ngữ quan hệ được sử dụng ở đây theo nghĩa toán học được chấp nhận của nó. Cho các tập hợp S 1 , S 2 ,, S n , (không nhất thiết phải khác biệt), R là mối quan hệ trên n tập hợp này nếu nó là tập hợp n -tuples mỗi tập hợp có phần tử đầu tiên từ S 1 , phần tử thứ hai của nó từ S 2 , v.v. 1 Chúng tôi sẽ đề cập đến S j là j thứ miền của R . Như đã định nghĩa ở trên, R được cho là có độ n. Mối quan hệ của mức độ 1 thường được gọi là unary , độ 2 nhị phân , độ 3 bậc ba và độ n n-ary .
1 Chính xác hơn, R là tập con của sản phẩm Cartesian S 1 × S 2 × S 3 × S n .
© Hiệp hội Máy móc Máy tính. Truyền thông của ACM , Tập 13, Số 6 (trang 377-387), tháng 6 năm 1970.
Và tôi đồng ý với các câu trả lời khác ở chỗ rất phù hợp khi chỉ ra rằng Tiến sĩ Codd đã thực hiện một số điều chỉnh cho mối quan hệ toán học để tận dụng tối đa nó liên quan đến quản lý dữ liệu và chúng được giải thích trong bài báo được đề cập trước đó và trong thư mục phong phú của mình .
Mối quan hệ và mối quan hệ
Một tình huống đáng để đưa ra là, khi làm việc với các đối tượng này, có thể phát sinh sự nhầm lẫn do sự tương đồng tồn tại liên quan đến các định nghĩa hàng ngày (phi toán học, phi kỹ thuật) về mối quan hệ và mối quan hệ , như một người không người bản ngữ nói tiếng Anh, tôi thấy đặc biệt dễ hiểu.
Khung nhìn quan hệ thực thể và mô hình quan hệ
Một yếu tố khác mà tôi nghĩ cũng có thể gây nhầm lẫn (và liên quan chặt chẽ với ý nghĩa kỹ thuật của hai thuật ngữ nêu trên) là, khi học thiết kế cơ sở dữ liệu, một sinh viên hoặc học viên thường được giới thiệu trước tiên về phương pháp do Tiến sĩ đề xuất Peter Pin-Shan Chen trong chế độ xem dữ liệu mối quan hệ thực thể (xuất bản năm 1976), trong đó gợi ý hai hàm ý khác nhau (nghĩa là thực thể và mối quan hệ ) để phân định một lược đồ khái niệm , và sau đó, chỉ sau định nghĩa của lược đồ đã nói ổn định, học sinh hoặc học viên được giới thiệu các thuật ngữ và công cụ quan hệ (ví dụ: quan hệ ) khi khai báobố trí hợp lý của cơ sở dữ liệu thích hợp. Trong khung khái niệm của tài liệu tham khảo, mối quan hệ giữ ý nghĩa gần gũi hơn nhiều với ý nghĩa hàng ngày của từ này.
Sau đó, có lẽ, hoàn cảnh đó cũng làm tăng thêm vấn đề về mối quan hệ và mối quan hệ, nhưng trình tự xác định sơ đồ khái niệm trước tiên và sau đó tuyên bố thiết kế logic tương ứng là điều khá phù hợp, vì tôi sẽ trình bày chi tiết trong các phần sau đây.
Phản hồi cho từng câu hỏi con của bạn
Tôi nghĩ rằng việc bao gồm ba câu hỏi con đó thực sự thích hợp bởi vì chúng thiết lập bối cảnh rộng hơn cho bài viết, vì vậy chúng không nên bị bỏ qua. Theo cách này, ngoài việc giải quyết riêng tại sao các thuật ngữ quan hệ và quan hệ được sử dụng (điều này chắc chắn rất quan trọng và là tiêu đề của bài đăng, nhưng nó không phải là toàn bộ bài đăng), các câu hỏi con có thể hỗ trợ trong việc hiểu thêm về phạm vi của các mối quan hệ và mô hình quan hệ khi ai được tham gia vào một dự án quản lý toàn bộ thông tin (khá phù hợp vì đây một trang web về quản lý cơ sở dữ liệu) và do đó đang làm việc tại khác nhau mức độ trừu tượng. Theo cách này, tôi sẽ chia sẻ quan điểm của tôi về những chi tiết dưới đây.
Câu hỏi không. 1
Tại sao, ví dụ, một Người, được coi là "mối quan hệ"? Trong tiếng Anh, một mối quan hệ là một danh từ mô tả cách hai thực thể được liên kết. Nó không đề cập đến chính các thực thể. Trong ngữ cảnh của cơ sở dữ liệu quan hệ, "quan hệ" đề cập đến chính các thực thể. Tại sao?
Cấp khái niệm
Trong một môi trường kinh doanh nhất định, Person có thể được coi là một loại thực thể tùy thuộc vào cách những người làm việc ở đó (chuyên gia kinh doanh và nhà thiết kế cơ sở dữ liệu) khái niệm hóa nó. Và, vâng, trong môi trường kinh doanh đó, có thể có các thuộc tính quan tâm khác nhau đối với loại thực thể Người , ví dụ: Tên , Ngày sinh , Giới tính , v.v.
Hơn nữa, Người loại thực thể có thể giữ một số mối quan hệ (hoặc hiệp hội hoặc kết nối ) các loại với chính nó hoặc các loại thực thể khác; ví dụ: Person có thể được liên kết với một loại thực thể có tên UserProfile , do đó có thể có các thuộc tính quan tâm riêng, giả sử tên người dùng và mật khẩu .
Nhưng, (a) các loại thực thể, (b) các thuộc tính tương ứng của chúng, (c) các loại mối quan hệ giữa các loại thực thể và (d) các mối quan hệ giữa các thuộc tính đó là các khái niệm mà thuộc về môi trường kinh doanh cụ thể mà chúng thuộc được coi là quan trọng. Chúng là các thiết bị được sử dụng bởi các nhà thiết kế cơ sở dữ liệu làm việc chặt chẽ với các chuyên gia kinh doanh để xác định lược đồ khái niệm cụ thể theo ngữ cảnh , ở giai đoạn thiết kế.
Do đó, ở cấp độ khái niệm, về cơ bản chúng tôi làm việc với cấu trúc của các ý tưởng nảy sinh trong phân đoạn lợi ích của thế giới thực, tức là (1) nguyên mẫu của sự vật và (2) nguyên mẫu về mối quan hệ giữa các nguyên mẫu của sự vật , chúng tôi không làm việc với (3) các mối quan hệ trong việc ứng dụng thuật ngữ cuối cùng này theo nghĩa của khung quan hệ của dữ liệu.
Mức logic
After Person được mô tả chính xác như một loại thực thể ở cấp độ khái niệm và nếu một người muốn thực hiện một cơ sở dữ liệu quan hệ truyền đạt ý nghĩa của Người và tất cả các khái niệm liên quan đến nó, thì có thể quản lý các sự kiện về loại thực thể đó. về một mối quan hệ toán học ở cấp độ logic và tận dụng các hoạt động dựa trên khoa học có thể được thực hiện trên cấu trúc trừu tượng đó (nghĩa là xác định nó, hạn chế nó và thao tác nó).
Đúng, người ta có thể đặt tên cho một Người có quan hệ nhất định khi xác định sự sắp xếp logic của cơ sở dữ liệu, nhưng điều đó không biến khái niệm Người thực tế của thế giới thành một mối quan hệ, người ta tiếp cận nó như vậy vì những lợi ích thu được khi quản lý thông tin về nó, ví dụ, áp dụng các phép toán đại số quan hệ trên nó để rút ra các mối quan hệ mới (và do đó, người ta đang lấy được thông tin của New new). Các lợi ích đã nói trở nên rõ ràng hơn khi tính đến thực tế là các thực thể của một loại nhất định tạo thành một tập hợp và các giá trị của một thuộc tính nhất định cũng tạo thành một tập hợp.
Và, vâng, như đã đề cập trong các đoạn trước và trong các câu trả lời khác, một trong những khía cạnh tối quan trọng của mối quan hệ là sự kết nối tồn tại giữa các miền của nó màthththat thường được sử dụng để thể hiện các thuộc tính của các loại thực thể hoặc liên kết là một phần của một lược đồ khái niệm. Ví dụ: chúng ta hãy nói rằng chúng ta đã khai báo mối quan hệ (ternary) sau đây:
Salary (PersonNumber, EffectiveDate, Amount)
Và chúng ta hãy giả sử rằng, trong môi trường kinh doanh đang được đề cập, tuple Mạnhwhich (i) là viết tắt của một thực thể cụ thể , ví dụ, một thể hiện của một loại thực thể từ lược đồ khái niệm có thể áp dụng và (ii) có đối tác SQL là hàng -
Khoan sẽ mang ý nghĩa
- “Các Mức lương payed để Người xác định bởi PersonNumber
x
trên EFFECTIVEDATE y
tương ứng với Số tiền z
” .
Theo đó, Wapto mô tả mọi thứ theo cách gần đúng, kết nối giữa ba miền có tầm quan trọng hàng đầu, tất cả chúng đều liên quan (và, vâng, một mối quan hệ đơn phương sẽ chỉ liên quan đến một tên miền). Sự kết nối giữa tất cả các giá trị của một miền nhất định cũng rất quan trọng, vì chúng tạo thành một tập hợp của một loại chính xác . Ngoài ra, nội dung của từng bộ dữ liệu của Salary
mối quan hệ phải phù hợp với cấu trúc của khẳng định được minh họa ở trên.
Khái niệm cấp mối quan hệ và logic cấp quan hệ
Như đã chứng minh, bây giờ tôi đã xử lý việc quản lý cơ sở dữ liệu ở hai mức độ trừu tượng khác nhau, đó là khái niệm và logic logic và vẫn có một mức độ thấp hơn được gọi là mức vật lý , trong các DBMS SQL thường bao gồm, ví dụ: chỉ mục, trang, phạm vi, v.v.
Vì vậy, theo các khái niệm đã được giải thích trước đó, ở cấp độ logic, người ta chỉ làm việc với (a) các mối quan hệ toán học, trong đó (b) các mối quan hệ hoặc liên kết khái niệm được biểu thị bằng (c) các giá trị chứa trong các bộ dữ liệu của các quan hệ toán học đó, và các giá trị cho biết thường được phân định thông qua các ràng buộc FOREIGN KEY để chúng có thể thể hiện chính xác các mối quan hệ áp dụng.
Và, vâng, các thực thể kết hợp , ví dụ, các trường hợp của các loại mối quan hệ với tỷ lệ số lượng nhiều-nhiều (M: N), có thể được chuyển tải bằng cách sử dụng các bộ dữ liệu của một mối quan hệ toán học duy nhất với các ràng buộc tương ứng được khai báo một cách thích hợp, của khóa học-.
Câu hỏi không. 2
Tôi hiểu rằng mô hình quan hệ xuất hiện sau mô hình mạng phân cấp và mạng. Nhưng trong các mô hình đó, các thực thể cũng có quan hệ với nhau. Vậy tại sao gọi mô hình này là mô hình quan hệ? Có một cụm từ / thuật ngữ cụ thể hơn? Hoặc có lẽ chúng ta nên nói rằng cả ba mô hình đều là mô hình quan hệ, nhưng mô hình mạng phân cấp và mô hình là các loại mô hình quan hệ cụ thể?
DBMS mạng và phân cấp đi trước hỗ trợ lý thuyết chính thức của họ
Thật là cơ hội để chỉ ra rằng sự hỗ trợ về mặt lý thuyết xung quanh các cách tiếp cận phân cấp và mạng , trên thực tế, được tạo ra theo các DBMS hiện có trước đây , với mục đích, trong số các khía cạnh khác, thử nghiệm và thiết lập tính đúng đắn của (1) của phần mềm và (2) các thực tiễn quản lý dữ liệu được liên kết Hiện tượng lộn ngược, theo quan điểm của tôi.
Không đầy đủ so với khung quan hệ
Điều đó đang được nói, mặc dù có các DBMS phân cấp và mạng có trước mô hình quan hệ, và ngay cả khi Tiến sĩ Codd gọi mỗi phương pháp đó là một mô hình, thì không có định nghĩa nào giống như khuôn khổ quan hệ. Mô hình quan hệ cung cấp các cấu trúc khoa học cho định nghĩa (i), (ii) hạn chế và (iii) thao tác dữ liệu, và các phương pháp tiếp cận phân cấp và mạng thiếu hỗ trợ lý thuyết đầy đủ để bao quát cả ba loại cấu trúc đã đề cập trước đây.
Tính năng mạng và phân cấp
Ngoài ra, như đã nêu trước đây, các loại thực thể và mối quan hệ là các thiết bị ở cấp độ khái niệm, chúng không thuộc các cách tiếp cận phân cấp hoặc mạng, mỗi loại cung cấp các cơ chế cụ thể để thể hiện các khía cạnh nói:
Mô hình mạng đòi hỏi hai thiết bị để biểu diễn dữ liệu, tức là các nút và cung (và đặc điểm đó tất nhiên bao hàm hai loại thao tác thao tác dữ liệu khác nhau), khi tương phản với mô hình quan hệ (theo nguyên tắc thông tin ) chỉ cần một cấu trúc (mối quan hệ), làm cho rõ ràng sự phức tạp không cần thiết mà làm việc trong một thời trang mạng liên quan. Chẳng hạn, do nó sử dụng hai công cụ đại diện, cách tiếp cận mạng áp đặt sai lệch truy vấn không thực tế gây cản trở thao tác dữ liệu.
Về phần mình, chế độ xem phân cấp đề xuất biểu thị dữ liệu bằng các tệp (vật lý!) Được tạo thành từ các bản ghi (bao gồm các trường ) được sắp xếp theo ba cách ; tức là, một trong những cha mẹ kỷ lục xích với khả năng nhiều đứa trẻ đối tác thông qua con trỏ , trong đó sản xuất một chất đường truy cập liên quan đến thao tác dữ liệu với. Cách tiếp cận này cũng không thuận lợi vì nó thể hiện sự vướng mắc giữa các khía cạnh khái niệm và vật lý, do đó, những thay đổi trong sắp xếp lưu trữ vật lý đòi hỏi phải sắp xếp lại các cấu trúc dữ liệu, do đó đòi hỏi phải thay đổi các hoạt động thao tác dữ liệu liên quan.
Như đã trình bày, quan điểm thứ bậc và mạng áp đặt các cấu trúc của họ trên các dữ liệu được quản lý, trong khi mô hình quan hệ đề xuất quản lý dữ liệu thanh lịch trong cấu trúc tự nhiên của nó bằng phương tiện của bộ liên quan đến sự kiện (từ đó n loại tiếp theo của bộ, không dự đoán tại giai đoạn thiết kế, có thể được bắt nguồn và như vậy!).
Mô hình quan hệ không có mô hình phụ
Và, khá quan trọng, cả các chế độ xem phân cấp và mạng đều là các kiểu mô hình quan hệ cụ thể, chúng chỉ đơn giản là các mô hình khác mà ai đó có thể tuân theo (a) xây dựng DBMS và để (b) tạo cơ sở dữ liệu, nhưng xin lưu ý rằng hệ thống phân cấp và cách tiếp cận mạng được coi là lỗi thời trong nhiều thập kỷ nay.
Câu hỏi không. 3
Điều gì xảy ra nếu chúng ta có các thực thể độc lập không liên quan đến nhau. Nói, Người, Cửa và Cây. Có phải thuật ngữ "quan hệ (al)" vẫn được áp dụng không?
Có, hoàn toàn có thể áp dụng nếu một (1) quản lý thông tin về các loại thực thể đó bằng các mối quan hệ toán học thích nghi và (2) thực hiện các hoạt động quan hệ có thể áp dụng ở mức logic trong một cơ sở dữ liệu nhất định được hỗ trợ bởi một DBMS quan hệ nhất định .
Không quan trọng nếu ở cấp độ khái niệm, các loại thực thể cho biết không có loại mối quan hệ nào với các loại thực thể khác (và đáng chú ý là một loại thực thể có thể có mối quan hệ tỷ lệ giữa một và một hoặc nhiều hoặc nhiều với chính nó), và do đó, người ta không truyền đạt hay thực thi bất kỳ mối quan hệ nào giữa các giá trị của bộ dữ liệu của các mối quan hệ đang được xem xét.