2013-07-26 67 views
19

Khi nói về mô hình dữ liệu và cơ sở dữ liệu, thuật ngữ Cardinality thường được sử dụng để mô tả số phần tử được cho phép trong một tập hợp nhất định.Đa dạng so với Cardinality

UML thường đề cập đến cùng một thuộc tính là Đa dạng.

Có sự khác biệt nào giữa hai cụm từ này hoặc chúng có đồng nghĩa không?

Trả lời

0

Lời giải thích đơn giản nhất sẽ nói:

Đa dạng = Cardinality + Tham gia

Cardinality: Cho biết số lượng tối đa mối quan hệ có thể là lần xuất hiện trong một thực thể nhất định.

Tham gia: Biểu thị nếu tất cả hoặc chỉ một số thực thể xuất hiện tham gia vào mối quan hệ (theo thuật ngữ đơn giản: ít nhất).

Ex: enter image description here

14

Martin Fowler đã nói về chủ đề này trên trang web của mình. Trích dẫn:

Khi phương pháp lập mô hình dữ liệu nói về mối quan hệ, họ sử dụng thuật ngữ cardinality để cho biết có bao nhiêu thực thể có thể được liên kết với nhau. Vì vậy, bạn có thể có mối quan hệ giữa đơn đặt hàng và khách hàng và nói rằng tính chất của mối quan hệ là một-nhiều. Hoặc bạn có thể nghe thấy rằng thẻ của khách hàng cho một đơn đặt hàng là 0 đến nhiều.

UML tránh thuật ngữ cardinality muốn sử dụng tính đa dạng. Thường thì những người có nền mô hình hóa dữ liệu ngạc nhiên vì điều này vì cardinality đã được sử dụng rộng rãi trong các vòng tròn lập mô hình dữ liệu.

Lý do thay đổi là định nghĩa từ điển của thẻ là "số phần tử trong một tập hợp cụ thể hoặc một nhóm khác " (OED). Theo cách sử dụng mô hình dữ liệu này thực sự là sai. Trong Hướng dẫn tham khảo UML tuyệt vời, Rumbaugh định nghĩa tính đa dạng là "Đặc điểm kỹ thuật của phạm vi các giá trị thẻ được phép - kích thước - mà một tập hợp có thể giả định". UML sử dụng tính đa dạng ở các vị trí khác nhau, cho thuộc tính (liên kết hoặc thuộc tính) và cũng là để hiển thị tính đa dạng của các phần trong cấu trúc hỗn hợp. Đó là được định nghĩa chính thức dưới dạng giới hạn dưới và trên. Liên kết (UML tương đương với mối quan hệ trong các vòng tròn lập mô hình dữ liệu) có số lượng cho mỗi hướng.

Source

15

một cách đơn giản: một đa được tạo thành từ một thấp hơn và một trên cardinality. Một cardinality là có bao nhiêu phần tử trong một tập hợp. Vì vậy, một bội số cho bạn biết các thành viên tối thiểu và tối đa cho phép của tập hợp. Họ không đồng nghĩa.

-1

Cảm ơn bạn đã đặt câu hỏi và câu trả lời ở trên.

Thực sự đã nhầm lẫn với các điều khoản này sáng nay (cà phê không giúp được).

Với ví dụ dưới đây:

0-1 ---------- 1- *

bội:

Đầu đa, cho các đối tượng bên trái : 0-1

đa Second, dành cho đối tượng đúng : 1- *

cardinalities cho đa dạng đầu tiên:

hạ cardinality: 0

Upper cardinality : 1

cardinalities cho đa dạng thứ hai:

hạ cardinality: 1

Upper cardinality: *

0

Các Multiplicity là hạn chế về bộ sưu tập của các đối tượng liên quan trong khi Cardinality là đếm các đối tượng có trong bộ sưu tập.

Tính đa dạng thực sự là ràng buộc đối với bản số.

+0

Điều này gần như là (tính không hợp lý không phải là giới hạn trên, đó là số phần tử thực tế có trong bộ sưu tập) một câu trả lời đúng, nhưng thiếu một chút nội dung và tham chiếu. Xem UML 2.5 § 7.5.3.2 Đa dạng –

+0

Cảm ơn bạn, tôi đã hơi bối rối và bây giờ tôi đã sửa lại câu trả lời của mình :-) –