Tại sao thuật ngữ quan hệ của người dân (al)?


26

Trong tiếng Anh, chúng ta có thể nói về mối quan hệ giữa, giả sử, Bob và Tim. Có lẽ họ là anh em họ. Thuật ngữ "quan hệ" trong bối cảnh này có ý nghĩa với tôi.

Trong bối cảnh cơ sở dữ liệu quan hệ, tôi hiểu thuật ngữ này đề cập đến điều gì, nhưng tôi không hiểu tại sao nó được sử dụng. Tôi hiểu rằng việc hiểu tại sao nó được sử dụng sẽ giúp tôi hiểu rõ hơn về lĩnh vực này, vì vậy tôi muốn hiểu tại sao nó được sử dụng.

  • 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?
  • Tôi hiểu rằng mô hình quan hệ xuất hiện sau mô hình phân cấp và mạng (ví dụ: cha mẹ, hàng xóm). 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ể?
  • Đ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?

. thay vào đó sẽ tạo các câu hỏi riêng biệt.)


Chỉnh sửa: Sơ đồ này có thể hữu ích để hình dung rằng một mối quan hệ có liên quan đến các miền khác nhau:

nhập mô tả hình ảnh ở đây

Câu trả lời:


33

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ụ: FirebirdPostgreQuery ), 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 jj 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ệ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ệ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ể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ể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ệ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ảitoà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ệ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ùngmậ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 -

  • Salary (x, y, z)

Khoan sẽ mang ý nghĩa

  • “Các Mức lương payed để Người xác định bởi PersonNumber xtrên EFFECTIVEDATE ytươ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 Salarymố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ệmlogic 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ấpmạ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útcung (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 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.


1
Tôi không nghĩ việc trở thành một "người không nói tiếng Anh" là cần thiết để hiểu sai hoặc bị nhầm lẫn bởi thuật ngữ "quan hệ". Trừ khi bạn nghiên cứu về lĩnh vực toán học cụ thể đó, đó là một định nghĩa hoàn toàn xa lạ. Thành thật mà nói, nếu tôi không biết "mối quan hệ" nghĩa là gì trong bối cảnh này, câu trả lời này sẽ không đặc biệt hữu ích, mặc dù một số trong đó là.
IMSoP

1
@IMSoP Tôi chưa nhận thấy điều đó trước đây, nhưng ý định của tôi là viết "người nói tiếng Anh không phải là người bản xứ" vì vậy tôi đã hoàn thành đoạn trích có liên quan ngay bây giờ. Mặt khác, tôi không đồng ý, câu trả lời này đặc biệt hữu ích vì tôi đã giải quyết (1) tiêu đề của câu hỏi và (2) tất cả các câu hỏi có trong phần thân câu hỏi, bối cảnh bài đăng rộng hơn. Nhưng, tất nhiên, bạn có quyền với ý kiến ​​của riêng bạn.
MDCCL

16

Điều thú vị đằng sau 'cơ sở dữ liệu quan hệ' là, nó không (chủ yếu) đề cập đến mối quan hệ giữa các bảng, như bạn có thể mong đợi, nhưng nó đề cập đến mối quan hệ của nhiều thuộc tính (cột) trong một tuple. Một cơ sở dữ liệu quan hệ lưu trữ các bộ dữ liệu đó dưới dạng một hàng trong bảng.

Nó dựa trên đại số quan hệ được xác định bởi Alfred Tarski trong bài báo năm 1941 (!) Của ông về tính toán các mối quan hệ . Ông đã tóm tắt lịch sử của thuật ngữ và cách sử dụng trong logic biểu tượng nhưng đã xác định các hoạt động mà cuối cùng đã trở thành nền tảng cho SQL.

Codd đã biến điều này thành một định nghĩa cho những gì có thể hiểu là cơ sở dữ liệu quan hệ trong 12 điều răn của mình .


10

Thuật ngữ "quan hệ" xuất phát từ toán học và không liên quan gì đến mối quan hệ giữa các thực thể. Tôi không phải là nhà toán học (trong khi Codd có bằng tiến sĩ toán học) và vì vậy sẽ không giải thích chi tiết, nhưng sẽ chỉ cho bạn bài viết trên wikipedia này về quan hệ nhị phân . Mục nhập wikipedia về quan hệ (cơ sở dữ liệu) cung cấp thêm chi tiết về cách Codd điều chỉnh các khái niệm toán học để áp dụng cho quản lý dữ liệu. Về lý do tại sao cấu trúc toán học này được gọi là một mối quan hệ, tôi nghĩ rằng nó phải liên quan đến ý tưởng rằng có một "mối quan hệ" giữa các miền tạo nên mối quan hệ. Nguồn tốt nhất mà tôi biết để hiểu rõ hơn về suy nghĩ ban đầu của Codd là Fabian Pascal '. Chris Date cũng đã viết nhiều về RDM và trang Tuyên ngôn thứ ba của ông có một phần liệt kê các giấy tờ và sách. Cuốn sách Lý thuyết quan hệ cho các chuyên gia tính toán của ông là một giới thiệu tốt. Tôi hi vọng cái này giúp được.


7

Đó là một cái tên trực quan khi bạn nghĩ về chúng với các phím tự nhiên. Bạn có thể nghĩ về một giá trị ô là đại diện cho một thực thể.

Relation: Employee
|--------+------------+--------|
| name   | job        | boss   |
|--------+------------+--------|
| Mark   | owner      | NULL   |
| Bob    | manager    | Mark   |
| Jane   | supervisor | Bob    |
| Claire | supervisor | Bob    |
| John   | cashier    | Jane   |
| Jesse  | cashier    | Jane   |
| Jason  | cashier    | Claire |
|--------+------------+--------|
  • Tên nhân viên "Jane" có liên quan đến công việc "giám sát viên".
  • Tên nhân viên "John" có liên quan đến ông chủ "Jane".
  • Công việc "thu ngân" có liên quan đến tên nhân viên "John", "Jesse" và "Jason".
  • Công việc "thu ngân" có liên quan đến các ông chủ "Jane" và "Claire".

Tôi thấy câu trả lời này trực quan nhất, nhưng không toàn diện như MDCCL. Sự kết hợp của câu trả lời này cộng với câu trả lời của MDCCL rất thỏa mãn với tôi.
Adam Zerner

6

Bạn đã chấp nhận một câu trả lời rất dài phải nói rất nhiều về cơ sở dữ liệu, nhưng hãy để tôi trả lời câu hỏi bạn thực sự đã hỏi:

Tại sao thuật ngữ "quan hệ".

Bởi vì một bảng là một ví dụ cụ thể của "quan hệ" đối tượng toán học.

Chúng ta hãy xem Wikipedia nói gì về thuật ngữ "quan hệ" (trong toán học, không phải RDBMS), sau đó dịch nó sang cơ sở dữ liệu:

Chính thức, một mối quan hệ là một tập hợp n-tuples có mức độ bằng nhau. Do đó, một mối quan hệ nhị phân là một tập hợp các cặp, một mối quan hệ thứ ba là một bộ ba, v.v. Trong ngôn ngữ của lý thuyết tập hợp, mối quan hệ giữa hai bộ là một tập hợp con của sản phẩm Cartesian của họ.

Mathematics             | RDBMS
========================|===============
A relation is           | A table is
a set of                | a bunch of 
n-tuples                | rows
of equal degree.        | with the same cell (a.k.a. column) types and sizes.

Nó tiếp tục với lý thuyết tập hợp. Hãy nhớ rằng đây là toán học, trừu tượng hơn nhiều so với công cụ cơ sở dữ liệu. Câu cuối cùng là

một mối quan hệ giữa hai bộ là một tập hợp con của sản phẩm Cartesian của họ.

Điều này được chuyển đến một một bảng với hai cột:

  • Hãy gọi cột "tên". Tập toán học của nó Alà tập hợp tất cả các tên (con người).
  • Cột BI gọi "thành phố". Tập toán học của nó Blà tập hợp của tất cả các thành phố.
  • Các sản phẩm Descartes A x B(trong toán học) là một bộ mới, trong đó có của tất cả các cặp (aka, tupels) (a, b)nơi alà thành viên của A, và blà thành viên của B. Tức alà , là một cái tên và blà một thành phố. Ví dụ sẽ là (Alice, New York)hoặc (Bob, Hollywood). Nhưng sản phẩm của cartesian không chỉ là một vài trong số đó, mà là tất cả chúng. Một mối quan hệ, để đi đến điểm, là một tập hợp con của sản phẩm cartesian đó. Nói cách khác, mối quan hệ là (được xác định là) bất kỳ số lượng cặp (a, b)nào alà tên và blà một thành phố, thậm chí không có gì cả.

Bây giờ tôi hy vọng tất cả bắt đầu có ý nghĩa. Trong RDBMS, các hàng của bảng chỉ cần chọn tập hợp con của sản phẩm cartesian của tất cả các kết hợp có thể có trong các cột đó. Đó là, khi sử dụng RDBMS, hoàn toàn không quan trọng và không liên quan.

Nhưng kể từ Khoa học Máy tính, bao gồm cả cơ sở dữ liệu quan hệ, không có nguồn gốc từ trong toán học, chúng ta may mắn có thuật ngữ "quan hệ" ở đây. Nó hoàn toàn trừu tượng và không liên quan gì đến mối quan hệ giữa mọi người hoặc những gì có bạn.

Bên cạnh đó, thuật ngữ "quan hệ" đôi khi cũng được sử dụng cho "liên kết" và nó hoàn toàn giống nhau (ở đây, các tập hợp cơ bản của mối quan hệ là chính các mối quan hệ như được mô tả ở trên (còn gọi là bảng)).

Lưu ý: trong toán học, các mối quan hệ không phải là về cơ sở dữ liệu, mà là một số thứ giống như các hàm, chỉ chung chung hơn (xin vui lòng, tất cả các nhà toán học của bạn, đừng bắt đầu nitt bây giờ, chúng tôi đang ở dba.SE, không phải toán học. Tôi biết rằng đây là cách sai xung quanh :)). Một hàm giống như f(x)=x+1cũng có thể được biểu thị dưới dạng một bộ các bộ dữ liệu (1, 2), (2, 3), ..., nhưng nó chỉ có thể có mỗi số một lần, ở bên trái của bộ dữ liệu. Tức là, đây sẽ không phải là một chức năng hợp lệ : (1, 2), (1, 3), .... Nhưng sau này sẽ là một mối quan hệ hợp lệ; tức là bạn có thể có một Bob ở New York một Bob ở Hollywood.


5

Cơ sở dữ liệu quan hệ dựa trên mô hình quan hệ của EFCodd. Các đại số quan hệ mô tả phương pháp làm thế nào để truy vấn dữ liệu. Một mối quan hệ chỉ đơn giản là một tập hợp con của sản phẩm chéo của một số bộ (tên miền).

Thí dụ

Chúng tôi có các bộ sau:

DepIds = {1, 2, 3, ...}
EmpIds = {1, 2, 3, ...}
DepNames = {'Engineering', 'Finance', 'Sales', ...}
FirstNames = {'John', 'Walter', 'Mary', 'Roxane', ...}
LastNames = {'Smith', 'Bondy', 'Taylor', ...}
BirthDates = {..., 1950-01-01, 1950-01-02, ...}
Jobs = {'Accountant', 'Programmer', 'Database Administrator', ...}

Hơn nữa chúng ta có bộ tuples

departements = { 
    (1, 'Engineering'), 
    (2, 'Finance')}
employees = { 
    (1, 1, 'John', 'Taylor', 1985-03-22, 'Programmer'), 
    (2, 1, 'Walter', 'Bondy', 1997-09-11, 'Database Administrator'), 
    (3, 2, 'Roxane', 'Myers', 1987-12-19, 'Accountant')}

departements là một tập hợp con của

    DepIds x DepNames

và vì vậy nó là một mối quan hệ.

employees là một tập hợp con của

    EmpIds x DepIds x FirstNames x LastNames x BirthDates x Jobs

và vì vậy nó là một mối quan hệ, quá.

Rõ ràng là làm thế nào quan hệ có thể được thực hiện bằng các bảng.

Tại sao các nhà toán học gọi một tập hợp các bộ dữ liệu là một mối quan hệ?

Thông thường các thuộc tính như '2 nhỏ hơn 3', '4 bằng 4', '2 nằm trong khoảng từ 1 đến 3,4', '-1 là âm' được gọi là quan hệ.

Mối quan hệ 'nhỏ hơn' trên tập A = {1, 2, 3} được xác định bởi tập hợp con

{(1, 2), (1, 3), (2, 3) }

của

A x A = {1, 2, 3} x {1, 2, 3}=
{ (1, 1), (1, 2), (1, 3), 
  (2, 1), (2, 2), (2, 3), 
  (3, 1), (3, 2), (3, 3) } 

Theo cách tương tự, các mối quan hệ khác có thể được coi là một tập hợp con của một sản phẩm chéo. 'x nhỏ hơn y', 'x bằng y' là quan hệ nhị phân và do đó được xác định bởi một tập hợp các cặp. 'x giữa y một z' là một mối quan hệ ba chiều 'và do đó được xác định bởi một bộ ba. 'x là phủ định' là mối quan hệ đơn phương và do đó được xác định bởi một tập hợp các singletons.

Bộ tuple bộ chúng tôi xác định ở trên là quan hệ nhị phân, quan hệ nhân viên là quan hệ 6-ary.

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.